張繼川
摘 要:由于S7-200型可編程控制器預設的通信協(xié)議與SCL-61D超聲水表通信協(xié)議不兼容,若進行通信需要更換設備,增加了成本。因此,利用S7-200型PLC的自由口通信模式,通過編程實現(xiàn)了對智能超聲水表SCL-61D的數(shù)據(jù)讀取。重點研究了通信參數(shù)的初始化及自由口通信程序的設計,通過PLC讀數(shù)與SCL-61D超聲水表真實數(shù)據(jù)對比可知,具有穩(wěn)定性高、實時性好、安全可靠、成本低等特點,為PLC與智能儀器儀表通信協(xié)議不兼容問題,提供了解決思路。
關鍵詞: 超聲水表; 可編程控制器; XMT指令; 特殊存儲器
中圖分類號: TP 311
文獻標志碼: A
Abstract: Due to the incompatibility between the preset communication protocol of S7-200 PLC and the communication protocol of SCL-61d ultrasonic water meter, the equipment needs to be replaced for communication, but the cost is increased. Therefore, in this paper, the free port communication mode of S7-200 PLC is used to realize the data reading of intelligent ultrasonic water meter scl-61d by programming. This paper focuses on the initialization of communication parameters and the design of free port communication program. By comparing the PLC reading with the real data of SCL-61d ultrasonic water meter, it can be seen that this design has the characteristics of high stability, good real-time performance, safety and reliability, low cost, etc., which provides a solution to the incompatibility between PLC and intelligent instrument communication protocol.
Key words: ultrasonic water meter; PLC; XMT instruction; special memory
0 引言
選煤煤泥水處理工藝中,濃縮和浮選是主要的工藝環(huán)節(jié),濃縮和浮選效果會受到絮凝劑、起泡劑以及捕收劑等添加劑用量的重要影響,因此,需要掌握精確的煤泥水流量來設定添加劑的用量。在煤泥水處理流量檢測中,SCL-61D超聲水表因其具有精度高、靈敏度高、檢測穩(wěn)定性好等特點,應用十分廣泛。該水表采用SCL-6系列超聲水表通信協(xié)議,若要實現(xiàn)超聲水表數(shù)據(jù)自動讀取,需要連接可編程控制器。S7-200型PLC具有自由口通信模式,通過PLC內(nèi)軟件程序的設計可實現(xiàn)與SCL-61D超聲水表的通信,并自動讀取水表數(shù)據(jù)。
1 初始化通信參數(shù)
S7-200型可編程控制器具有自由口通信模式,可在用戶自定義通信協(xié)議的條件下實現(xiàn)與其他串行通信設備進行通信。在自由口通信模式,S7-200型可編程控制開啟RUN狀態(tài)后,通信端口和通信協(xié)議可被用戶程序完全控制。S7-200型PLC采用半雙工異步通信方式,接口通信標準具有RS-485特性,因此,設置通信參數(shù)和模式時需要在特殊存儲器上完成。
SCL-61D超聲水表具有與S7-200型可編程控制器電氣標準一樣的通信接口RS-485,因此,接口具有相同的電氣特性。在超聲水表與PLC連接過程中,只需將S7-200的PORT0口引腳3和引腳8分別連接到超聲水表的通信接口B和通信接口A,即可。SCL-61D超聲水表通信參數(shù)可設為默認(波特率),校驗位“無”、停止位“1”位、數(shù)據(jù)位“8”位。水表的通信協(xié)議命令分為兩種:響應命令和請求命令,對于的格式分別為:26H 41H 4AH LL(BCD碼)ZHH和2AH 41H 4AH。
SCL-61D超聲水表的BCD碼數(shù)據(jù)具有13字節(jié),字節(jié)內(nèi)容如表1所示。
數(shù)據(jù)校驗字節(jié)為ZZH,即不包括命令字節(jié)和控制字節(jié)的其他所有數(shù)據(jù)內(nèi)容按字節(jié)進行累加,不計超出FF的數(shù)值。
S7-200型可編程控制器的特色存儲器設置要按照超聲水表的通信參數(shù)進行設定。首先,選擇S7-200的通信端口為自由口通信模式,并在其SMB30控制器中設定校驗位、數(shù)據(jù)位、波特率和協(xié)議。根據(jù)上述超聲水表通信協(xié)議的“響應”和“請求”命令格式可知,超聲水表數(shù)據(jù)響應的前提是S7-200型可編程控制器發(fā)出請求命令。也就是說PLC下次發(fā)出請求命令和超聲水表做出響應這段時間內(nèi)容,通信總線空閑,因此,將空閑線檢測設為S7-200型可編程控制器接收數(shù)據(jù)的開始條件。使用字符間隔定時器設定數(shù)據(jù)接收的接收條件,即接收到數(shù)據(jù)字符后,字符間隔定時器重啟,如果SMW92設定的時間小于一個字符結尾至下一個字符結尾的間隔時間,則S7-200停止接收數(shù)據(jù),即接收結束。接收消息參數(shù)的設定在SMB87存儲器上完成,空閑總線時間(ms)在特殊存儲器SMW90上設定完成,即空閑總線時間后接收第一個字符即為新數(shù)據(jù)接收。SMW92特殊存儲器設定字符間隔超時時間(ms),如果超時則停止接收數(shù)據(jù)。最大字符數(shù)在特殊存儲器SMB94上進行設定,即255字節(jié)。如表2所示。
2 自由口通信程序設計
SCL-61D超聲水表與S7-200型可編程控制器自由口通信流程分為四個步驟:
步驟一:將S7-200型可編程控制器的PORT0口設定為自由口通信模式;
步驟二:將自由口通信模式參數(shù)進行初始化,即在PORT0端口的自由口特性存儲器中寫入通信參數(shù),并設定數(shù)據(jù)發(fā)送的中端條件,并將接收SCL-61D超聲水表數(shù)據(jù)的開始、結束條件規(guī)定好;
步驟三:向SCL-61D超聲水表定時執(zhí)行XMT發(fā)送指令,即將S7-200型可編程控制器發(fā)送數(shù)據(jù)請求的命令輸送給超聲水表;
步驟四:執(zhí)行XMT發(fā)送指令中端程序,并執(zhí)行RCV接收指令程序。數(shù)據(jù)接收完成后,S7-200校驗接收到是水表響應數(shù)據(jù),然后等待下一次執(zhí)行XMT發(fā)送指令。
自由口通信模式程序流程,如圖1所示。
RCV指令(接收)和XMT指令(發(fā)送)為SCL-61D超聲水表與S7-200型可編程控制器實現(xiàn)自由口通信的核心指令。XMT指令的程序編寫和參數(shù)設定比較簡單,用于在自由口模式下通過PLC的PORT0口發(fā)生數(shù)據(jù)。XMT指令數(shù)據(jù)緩沖區(qū)的第一個字節(jié)數(shù)據(jù)即為VB200中的“3”,即指明了發(fā)送數(shù)據(jù)的字節(jié)數(shù)。VB203中的“16#4A”、VB202中的“16#41”和VB201中的“16#2A”即為信息字符。在S7-200型可編程控制器的VB201~VB203中保持通過自由口模式向SCL-61D超聲水表發(fā)送的數(shù)據(jù)請求指令,即2AH 41H 4AH,該指令是通過執(zhí)行XMT來完成的,具體程序如下:
LD SM0.0
MOVB 3, VB200
MOVB 16#2A, VB201
MOVB 16#41, VB202
MOVB 16#4A, VB203
PLC主程序中,通過內(nèi)置定時器通過設定時間間隔向SCL-61D超聲水表發(fā)送數(shù)據(jù)請求,程序如下:
LD T100
EU
XMT VB200, 0
發(fā)送XMT指令后,需要判斷數(shù)據(jù)的發(fā)送情況,可利用發(fā)送完成中端來實現(xiàn)該功能。在S7-200型可編程控制器的PORT0端口中選用中斷事件9來產(chǎn)生中斷,通過執(zhí)行ATCH中斷連接指令開啟相應的INT-1中斷程序,程序如下:
ATCH INT_1: INT1, 9
ENI
當XMT指令發(fā)送數(shù)據(jù)接收請求指命令完成后,數(shù)據(jù)緩沖區(qū)的最后一個字節(jié)發(fā)送完成后產(chǎn)生中斷,并進入INT-1中斷程序,該程序可通過自由口接收RCV指令,完成超聲水表的數(shù)據(jù)接收響應。PLC的XMT指令請求完成后,即進入等待超聲水表響應階段,當S7-200的數(shù)據(jù)緩沖區(qū)接收到超聲水表的響應數(shù)據(jù)后,通過自由口RCV接收指令開始接收水表的數(shù)據(jù)并進行保持。程序如下:
LD SM0.0
RCV VB300, 0
XMT發(fā)送指令和自由口RCV接收指令的參數(shù)設置相同,RCV指令數(shù)據(jù)緩沖區(qū)的最大字節(jié)為255,VB300表示第一個接收的字符,如表3所示,其余為接收的數(shù)據(jù)字符。
按照SCL-61D超聲水表的通信協(xié)議,在S7-200型可編程控制器接收完數(shù)據(jù)后進行校驗。如果校驗后,接收的數(shù)據(jù)與水表通信協(xié)議一致,則說明數(shù)據(jù)接收正確,否則,S7-200接收的數(shù)據(jù)存在問題,需拋棄該數(shù)據(jù),等待水表的下一次數(shù)據(jù)響應,并進行接收。
S7-200型可編程控制器中超聲水表的響應數(shù)據(jù),如圖2所示。
超聲水表上顯示的瞬時、累計流量,如圖3所示。
由此看出,圖2中VB304~VB307的數(shù)據(jù)縮小千分之一后得到0.105,與圖3瞬時流量0.105 m3/h一致;圖2中VB308~VB311的數(shù)據(jù)縮小十分之一后得到9 432,與圖3累計流量943.2 m3/h一致。因此,本文設計的基于自由口
模式的SCL-61D超聲水表與S7-200型可編程控制器通信程序,可靠性較高、數(shù)據(jù)具有實時性、通信安全。
3 總結
針對SCL-61D超聲水表自身通信協(xié)議原因,無法被S7-200可編程控制器直接讀取數(shù)據(jù)的問題,本文提出了利用S7-200自由口通信模式實現(xiàn)與超聲水表進行數(shù)據(jù)通信的設計思路,解決了通信協(xié)議不兼容問題。該方法無需更換PLC或超聲水表等設備,只需改寫PLC程序即可實現(xiàn)。該技術具有穩(wěn)定性高、實時性好、安全可靠、成本低等特點,為S7-200型PLC與智能儀器儀表的數(shù)據(jù)通信提供了一種可靠的方法。
參考文獻
[1] 江寧,宋亞林.基于S7-200PLC的自由口通信在卷板機控制系統(tǒng)中的應用[J].重型機械,2018(1):81-86.
[2] 侯艷,葉昊,李宗睿,等.基于S7-200自由口的無線數(shù)據(jù)傳輸系統(tǒng)的實現(xiàn)[J].北華航天工業(yè)學院學報,2017,27(5):6-8.
[3] 孫晉璐.基于自由口通信的遠程供水系統(tǒng)通信程序設計[J].煤礦現(xiàn)代化,2016(6):74-76.
[4] 沃玉報,王玉明.S7-200PLC自由口通信在監(jiān)控系統(tǒng)的應用[J].水利建設與管理,2016,36(1):65-68.
[5] 李靜,董斌,熊聯(lián)友,等.基于西門子S7-200 PLC自由口通信的氣體分離實驗臺測控系統(tǒng)[J].低溫工程,2015(6):6-10.
[6] 韓建龍,郭凱.西門子S7-200PLC自由口串行通信應用分析[J].山東工業(yè)技術,2015(14):113.
(收稿日期: 2019.08.27)