云南西門子S7-1500PLC模塊代理商(核心)

S7-200系列PLC自由通信口初始化及通信指令 西門子PLC
在該通信方式下,通信端口*由用戶程序所控制,通信協(xié)議也由用戶設(shè)定。PC機(jī)與PLC之間是主從關(guān)系,PC機(jī)始終處于主導(dǎo)地位。PLC的通信編程首先是對(duì)串口初始化,對(duì)S7-200PLC的初始化是通過對(duì)特殊標(biāo)志位SMB30(端口0)、SMB130(端口1)寫入通信控制字,設(shè)置通信的波特率,奇偶校驗(yàn)位、停止位和字符長度。顯然,這些設(shè)定必須與PC的設(shè)定相*。SMB30和SMB130的各位及含義如下:

其中,校驗(yàn)方式:00和11均為無校驗(yàn)、01為偶校驗(yàn)、10為奇校驗(yàn);字符長度:0為傳送字符有效數(shù)據(jù)是8位、1為有效數(shù)據(jù)是7位;波特率:000為38400baud、001為19200baud、010為9600baud、011為4800baud、100為2400baud、101為1200baud、110為600baud、111為300baud;通信協(xié)議:00為PPI協(xié)議從站模式、01為自由口協(xié)議、10為PPI協(xié)議主站模式、11為保留,缺省設(shè)置為PPI協(xié)議從站模式。
XMT及RCV命令分別用于PLC向外界發(fā)送與接收數(shù)據(jù)。當(dāng)PLC處于RUN狀態(tài)下時(shí),通信命令有效,當(dāng)PLC處于STOP狀態(tài)時(shí)通信命令無效。
XMT命令將存儲(chǔ)區(qū)內(nèi)的數(shù)據(jù)通過端口傳送出去,當(dāng)存儲(chǔ)區(qū)內(nèi)后一個(gè)字節(jié)傳送完畢,PLC將產(chǎn)生一個(gè)中斷,命令格式為 XMT TABLE,PORT,其中PORTPLC用于發(fā)送的通信端口,TABLE為是數(shù)據(jù)存儲(chǔ)區(qū)地址,其*個(gè)字節(jié)存放要傳送的字節(jié)數(shù),即數(shù)據(jù)長度,大為255。
RCV命令從的端口讀入數(shù)據(jù)存放在的數(shù)據(jù)存儲(chǔ)區(qū)內(nèi),當(dāng)后一個(gè)字節(jié)接收完畢,PLC也將產(chǎn)生一個(gè)中斷,命令格式為RCV TABLE,PO RT,PLC通過PORT端口接收數(shù)據(jù),并將數(shù)據(jù)存放在TBL數(shù)據(jù)存儲(chǔ)區(qū)內(nèi),TABLE的*個(gè)字節(jié)為接收的字節(jié)數(shù)。
在自由口通信方式下,還可以通過字符中斷控制來接收數(shù)據(jù),即PLC每接收一個(gè)字節(jié)的數(shù)據(jù)都將產(chǎn)生一個(gè)中斷。因而,PLC每接收一個(gè)字節(jié)的數(shù)據(jù)都可以在相應(yīng)的中斷程序中對(duì)接收的數(shù)據(jù)進(jìn)行處理。
無論P(yáng)LC控制系統(tǒng)有多么復(fù)雜,歸根到底,PLC用戶程序都是由大量基本編程指令所組成的集合。
設(shè)計(jì)者可以根據(jù)控制對(duì)象各部分的不同要求,通過對(duì)要求的分解,運(yùn)用基本指令編制出相應(yīng)的程序網(wǎng)絡(luò)(Network)或由幾個(gè)網(wǎng)絡(luò)組成的簡單“功能程序段”。在此基礎(chǔ)上,只要將這些程序網(wǎng)絡(luò)或功能程序段,按照控制系統(tǒng)的動(dòng)作要求,以S7程序規(guī)定的格式進(jìn)行排列與組合,就可以組成完整的PLC程序。
1.西門子S7-200的程序結(jié)構(gòu)
過程映像輸入/輸出(I/Q)、變量存儲(chǔ)器V、內(nèi)部存儲(chǔ)器位M、定時(shí)器T、計(jì)數(shù)器C等屬于全局變量。S7-200的程序組織單元(ProgramOrganizationalUnit,簡稱為POU)包括主程序、子程序和中斷程序。每個(gè)POU均有自己的64字節(jié)局部變量,局部變量只能在它所在的POU中使用。與此相反,全局變量可以在各POU中使用。
下面是子程序可以使用的局部變量:
1)TEMP(臨時(shí)變量)是暫時(shí)保存在局部數(shù)據(jù)區(qū)中的變量。只有在執(zhí)行該P(yáng)OU時(shí),定義的臨時(shí)變量才被使用,POU執(zhí)行完后,不再保存臨時(shí)變量的數(shù)值。
2)IN是由調(diào)用它的POU提供的輸入?yún)?shù)。
3)OUT是返回給調(diào)用它的POU的輸出參數(shù)(子程序的執(zhí)行結(jié)果)。
4)IN_OUT是輸入_輸出參數(shù),其初始值由調(diào)用它的POU傳送給子程序,并用同一變量將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU。
主程序和中斷程序的局部變量中只有臨時(shí)變量TEMP。
具有輸入、輸出參數(shù)和局部變量的子程序易于實(shí)現(xiàn)結(jié)構(gòu)化編程,對(duì)于*生產(chǎn)同類設(shè)備或生產(chǎn)線的廠家尤為有用。這些廠家的編程人員為設(shè)備的各組件或工藝功能編寫了大量的通用的子程序。即使不知道子程序的內(nèi)部代碼,只要知道子程序的功能和輸入、輸出參數(shù)的意義,就可以通過程序之間的調(diào)用快速“組裝”出滿足不同用戶要求的控制程序。就好像用數(shù)字集成電路芯片組成復(fù)雜的數(shù)字電路一樣。
子程序如果沒有輸入、輸出參數(shù),它和調(diào)用它的程序之間沒有清晰的接口,很難實(shí)現(xiàn)結(jié)構(gòu)化編程。
子程序如果沒有局部變量,它和調(diào)用它的程序之間只能通過全局變量來交換數(shù)據(jù),子程序內(nèi)部也只能使用全局變量。將子程序和中斷程序移植到別的項(xiàng)目時(shí),需要重新統(tǒng)一安排它們使用的全局變量,以保證不會(huì)出現(xiàn)地址沖突。當(dāng)程序很復(fù)雜,子程序和中斷程序很多時(shí),這種重新分配地址的工作量非常大。
如果子程序和中斷程序有局部變量,并且它們內(nèi)部只使用局部變量,不使用全局變量,因?yàn)榕c其他POU沒有地址沖突,不需作任何改動(dòng),就可以將子程序移植到別的項(xiàng)目中去。
2.西門子的S7-300/400的程序結(jié)構(gòu)
S7-300/400將子程序分為功能(Function,或稱為函數(shù))和功能塊(FunctionBlock)。
S7-300/400的功能與S7-200的子程序基本上相同。它們均有輸入、輸出參數(shù)和臨時(shí)變量,功能的局部數(shù)據(jù)中的返回值實(shí)際上屬于輸出參數(shù)。它們沒有的存儲(chǔ)區(qū),功能執(zhí)行結(jié)束后,不再保存臨時(shí)變量中的數(shù)據(jù)。
可以用全局變量來保存那些在功能執(zhí)行結(jié)束后需要保存的數(shù)據(jù),但是會(huì)影響到功能的可移植性。
功能塊是用戶編寫的有自己的存儲(chǔ)區(qū)(即背景數(shù)據(jù)塊)的程序塊,功能塊的輸入、輸出參數(shù)和靜態(tài)變量存放在的背景數(shù)據(jù)塊中,臨時(shí)變量存儲(chǔ)在局部數(shù)據(jù)堆棧中。每次調(diào)用功能塊時(shí),都要一個(gè)背景數(shù)據(jù)塊。功能塊執(zhí)行完后,背景數(shù)據(jù)塊中的數(shù)據(jù)不會(huì)丟失,但是不會(huì)保存局部數(shù)據(jù)堆棧中的數(shù)據(jù)。
功能塊采用了類似于C 的封裝的概念,將程序和數(shù)據(jù)封裝在一起,具有很好的可移植性。
S7-300/400的共享數(shù)據(jù)塊可供所有的邏輯塊使用。
系統(tǒng)通訊簡易框圖如圖一:
圖一:系統(tǒng)通訊框圖
上圖中,PM-160在PROFIBUS側(cè)作為通訊的響應(yīng)方,被動(dòng)接收PLC的讀請(qǐng)求及寫請(qǐng)求;而在RS232串口側(cè),PM-160則作為通訊的發(fā)起者,主動(dòng)發(fā)送請(qǐng)求并且接收電子稱返回的響應(yīng)。
天平支持RS232通訊,通訊波特率可選,通訊模式為ASCII,通訊指令如圖二所示:
圖二:電子天平通訊指令表
本現(xiàn)場實(shí)現(xiàn)了中控室采集現(xiàn)場電子天平的當(dāng)前單位下穩(wěn)定的重量值,在控制室可以通過按鍵來控制數(shù)據(jù)采集的頻率(即按一次按鍵,數(shù)據(jù)采集一次);這樣客戶無需復(fù)雜的程序處理,即可根據(jù)需求實(shí)時(shí)監(jiān)控到現(xiàn)場電子天平的計(jì)量值;操作方便、快捷、性能穩(wěn)定。
1. PM-160參數(shù)配置介紹
由于該現(xiàn)場電子天平通訊協(xié)議不符合Modbus規(guī)約,所以采用了PM-160的通用模式進(jìn)行通訊。該模式的配置界面如圖三所示:
圖三:PM-160通用模式配置界面
上圖中,協(xié)議類型選擇為“通用模式”,串口參數(shù)包括波特率、校驗(yàn)位、數(shù)據(jù)位、停止位等跟電子稱的RS232串口設(shè)置保持*,斷幀方式選擇為“字符超時(shí)”,通訊接口選擇為“RS232”。
2.PM-160通用模式工作原理介紹
PM-160在通用模式下實(shí)現(xiàn)PROFIBUS與RS232之間的數(shù)據(jù)交換,PROFIBUS-DP與RS232之間的數(shù)據(jù)交換是雙向傳輸?shù)?。PROFIBUS輸出數(shù)據(jù)通過RS232口發(fā)送給對(duì)應(yīng)的電子天平稱,同時(shí)接收該稱返回的響應(yīng),并且存放到PROFIBUS的數(shù)據(jù)輸入?yún)^(qū)。數(shù)據(jù)交換格式如圖四所示:
Eo是PROFIBUS輸出數(shù)據(jù)的事務(wù)號(hào),該字節(jié)由PM-160定義,PM-160會(huì)通過對(duì)比該字節(jié)是否發(fā)生變化來決定是否通過RS232口給串口設(shè)備發(fā)送數(shù)據(jù);i是輸出數(shù)據(jù)個(gè)數(shù),該字節(jié)也由PM-160定義,PM-160會(huì)通過判別該字節(jié)來決定通過RS232口給串口設(shè)備發(fā)送數(shù)據(jù)的字節(jié)個(gè)數(shù);D1-Di是PM-160通過RS232口發(fā)送的數(shù)據(jù)。
Ei是PROFIBUS輸入數(shù)據(jù)的事務(wù)號(hào),該字節(jié)由PM-160定義,PM-160的RS232口每接收到一幀新的數(shù)據(jù),該字節(jié)就會(huì)加1;j是輸入數(shù)據(jù)個(gè)數(shù),該字節(jié)也由PM-160定義,表示PM-160的RS232口接收到的串口的數(shù)據(jù)字節(jié)長度(該字節(jié)是否顯示出來可以通過配置軟件設(shè)置);D1-Dj是PM-160的串口接收到的數(shù)據(jù)。
圖四:PM-160通用模式數(shù)據(jù)交換格式
3.STEP7組態(tài)介紹
PM-160作為PROFIBUS從站,有其對(duì)應(yīng)的GSD文件。在組態(tài)時(shí),需要將GSD文件正確添加到PROFIBUS主站,對(duì)于PROFIBUS側(cè)輸入輸出字節(jié)數(shù)的添加,滿足實(shí)際需求即可。STEP7組態(tài)界面如圖五所示:
圖五:STEP7組態(tài)界面
4.現(xiàn)場通訊報(bào)文實(shí)例
PROFIBUS側(cè)發(fā)送請(qǐng)求:
11 04 53 55 0D 0A 【HEX】
SU【ASCII】----------【利用當(dāng)前顯示單位發(fā)送穩(wěn)定的重量值】
其中,“11”為事務(wù)號(hào),“04”為要通過串口發(fā)送的數(shù)據(jù)長度。
PROFIBUS側(cè)接收響應(yīng):
S S 39.7 g【ASCII】
其中,“A1”為事務(wù)號(hào)。
該系統(tǒng)的應(yīng)用,成功解決了遠(yuǎn)程監(jiān)控現(xiàn)場原料投放量的問題。該系統(tǒng)已投入運(yùn)行一年多時(shí)間,未發(fā)生任何硬件故障。其性能的穩(wěn)定可靠,保證了現(xiàn)場生產(chǎn)工作的有序運(yùn)行,取得了業(yè)主的*好評(píng)。
云南西門子S7-1500PLC模塊代理商(核心)