基于PLC的主從式虛擬儀器測控系統(tǒng)
(2)VISA讀取函數(shù)。該函數(shù)為串口讀取子程序,從串行設(shè)備讀取數(shù)據(jù),為后續(xù)的數(shù)據(jù)處理提供條件。主要參數(shù)如圖3。
其中“字節(jié)總數(shù)”是要讀取的字節(jié)數(shù)量。“讀取緩沖區(qū)”包含從設(shè)備讀取的數(shù)據(jù)。“返回數(shù)”包含實際讀取的字節(jié)數(shù)。
(3)VISA寫入函數(shù)。該函數(shù)為串口寫子程序,用于對串口設(shè)備進行寫操作。主要參數(shù)如圖4所示。
其中“寫入緩沖區(qū)”包含要寫入設(shè)備的數(shù)據(jù)。“返回數(shù)”包含實際寫入的字節(jié)數(shù)。
此外,LabVIEW中與串口通信有關(guān)的還有VISA關(guān)閉函數(shù)與VISA串口字節(jié)數(shù)函數(shù),分別用于關(guān)閉串行設(shè)備的任務(wù)或事件和計算進入串口緩存區(qū)中的數(shù)據(jù)字節(jié)數(shù)。
2.2 LabVIEW與PLC串口通信實現(xiàn)
按照通信協(xié)議使用專用的九芯插頭和PC/PPI電纜,將PC機的COM1口與S7-200的自由通信口直接連接。由于電纜上帶有RS-232/RS485電平轉(zhuǎn)換器,連接十分方便。LabVIEW進行串口通信的基本步驟為:
(1)初始化端口。利用VISA配置串口函數(shù)設(shè)定進行串口通信的端口號、波特率、停止位、校驗、數(shù)據(jù)位。
(2)讀寫端口。利用VISA讀串口函數(shù)和VISA寫串口函數(shù)從串口中讀入或輸出數(shù)據(jù)。由于LabVIEW的串行通信子程序只允許對字符串的讀寫,因此在數(shù)據(jù)處理時,必須進行字符串與數(shù)字之間的正確轉(zhuǎn)換。
(3)關(guān)閉端口。當(dāng)對串口操作完成后,需要關(guān)閉串口,以釋放硬件資源。
3 串口通信實現(xiàn)
按照上述過程,設(shè)計了監(jiān)控系統(tǒng)程序,程序框圖與前面板分別如圖5、圖6所示。
其中PC機與PLC串口通信程序結(jié)構(gòu)分為3個部分:
(1)串口初始化。根據(jù)通信協(xié)議設(shè)定,通信端口:COM1,波特率:9600bps,1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗,無軟件握手協(xié)議。
(2)發(fā)送命令和讀取響應(yīng)將命令通過串口COM1發(fā)給PLC,并接收來自PLC的響應(yīng)信息,如果響應(yīng)正常(狀態(tài)信息為O1或02),就將所得數(shù)據(jù)做顯示、計算分析、存儲等后續(xù)處理,以便用于設(shè)備實時控制和在線狀態(tài)監(jiān)測;如果響應(yīng)不正常則退出程序(03或04),用戶重新輸入命令開始工作。
(3)關(guān)閉串口。調(diào)用LabVIEW提供的VISA關(guān)閉串口函數(shù)實現(xiàn)串口資源的釋放。
當(dāng)程序運行時,LabVIEW首先向PLC發(fā)出一個讀請求,然后檢測輸入緩存中的字節(jié)數(shù);當(dāng)達到預(yù)定字節(jié)數(shù)時,LabVIEW利用讀串口函數(shù)將輸入緩存中的字節(jié)一次性讀出,然后繼續(xù)發(fā)出一個讀請求到PLC。如此循環(huán),直至結(jié)束。本程序還采用了狀態(tài)機的方法進行狀態(tài)的判斷和選擇。
4 結(jié)論
PLC自由口通信方式具有與外圍設(shè)備通信方便、自由,易于微機控制等特點,這一通信方式被越來越多的監(jiān)控系統(tǒng)所采用。利用PC機或工控機的串口,按照自由通信協(xié)議,結(jié)合地址映射技術(shù)在LabVIEW平臺上開發(fā)出串行通信模塊,可以很方便地實現(xiàn)主機與PLC的串行通信,對PLC的內(nèi)存單元進行讀寫操作,從而實現(xiàn)對PLC的監(jiān)控。本文所提出的設(shè)計能夠方便地應(yīng)用于基于PLC的工業(yè)監(jiān)控,具有開發(fā)方便、擴展靈活的優(yōu)點。
評論