基于虛擬儀器的PLC監(jiān)控系統(tǒng)設(shè)計(jì)
1.3 自由口模式的注意事項(xiàng)
自由口模式通信要注意以下問題:
(1)CPU通信口工作在自由口模式時(shí),通信口就不支持其它通信協(xié)議。CPU停止時(shí),自由口不能工作,編程軟件就可以與CPU通信。
(2)此通信模式下,發(fā)送和接收指令是程序的核心指令,用戶程序不能直接控制通訊芯片而必須通過操作系統(tǒng)。
(3)用戶程序中應(yīng)考慮電纜的切換時(shí)間。CPU接收到RS-232設(shè)備的請求到它發(fā)送響應(yīng)的延遲時(shí)間必須大于等于電纜的切換時(shí)間,可用定時(shí)中斷實(shí)現(xiàn)切換延時(shí)。
(4)在自由口模式下,通信雙方的通信參數(shù)是由用戶自行設(shè)定的,通信雙方的波特率一定要設(shè)置相同。另外,在PLC網(wǎng)絡(luò)中主站個(gè)數(shù)越少,通信速度越快:波特率越大,通信速度也越快,但抗干擾能力降低。因此對于本系統(tǒng)這種單主站的網(wǎng)絡(luò),要注意波特率不宜設(shè)置得過大。
2 虛擬儀器程序設(shè)計(jì)
LabVIEW是美國國家儀器公司開發(fā)的虛擬儀器開發(fā)平臺軟件,功能強(qiáng)大、靈活,廣泛應(yīng)用于自動測量系統(tǒng)以及工業(yè)過程自動化等各個(gè)領(lǐng)域。
在LabVIEW編程語言中串口通信采用虛擬儀器體系結(jié)構(gòu)VISA (Virtual Instrument Software Architecture)標(biāo)準(zhǔn)編程。VISA是儀器驅(qū)動的一個(gè)工業(yè)標(biāo)準(zhǔn),其內(nèi)部是一個(gè)面向?qū)ο蟮慕Y(jié)構(gòu),這一結(jié)構(gòu)使得VISA和在它之前的I/O控制軟件相比,在接口無關(guān)性、可擴(kuò)展性方面都有很大提高。VISA標(biāo)準(zhǔn)的推出,統(tǒng)一了儀器工業(yè)的軟件接口標(biāo)準(zhǔn),使得儀器驅(qū)動程序兼容性強(qiáng)并且可適應(yīng)未來軟硬件的發(fā)展需要。
2.1 LabVIEW中的串口通信函數(shù)
(1)VISA配置串口。該函數(shù)主要用于串口的初始化。主要參數(shù)如圖2所示。本文引用地址:http://www.ex-cimer.com/article/156975.htm
其中“VISA資源名稱”指定要打開的資源。該控件也可指定會話句柄和類。“波特率”是傳輸速率,默認(rèn)值為9600。“數(shù)據(jù)比特”是輸入數(shù)據(jù)的位數(shù),默認(rèn)值為8。“奇偶”指定要傳輸或接收的每一幀所使用的奇偶校驗(yàn)。“停止位”指定用于表示幀結(jié)束的停止位的數(shù)量。“流控制”設(shè)置傳輸機(jī)制使用的控制類型。“VISA資源名稱輸出”是由VISA函數(shù)返回的VISA資源名稱的副本。
(2)VISA讀取函數(shù)。該函數(shù)為串口讀取子程序,從串行設(shè)備讀取數(shù)據(jù),為后續(xù)的數(shù)據(jù)處理提供條件。主要參數(shù)如圖3。
其中“字節(jié)總數(shù)”是要讀取的字節(jié)數(shù)量。“讀取緩沖區(qū)”包含從設(shè)備讀取的數(shù)據(jù)。“返回?cái)?shù)”包含實(shí)際讀取的字節(jié)數(shù)。
(3)VISA寫入函數(shù)。該函數(shù)為串口寫子程序,用于對串口設(shè)備進(jìn)行寫操作。主要參數(shù)如圖4所示。
其中“寫入緩沖區(qū)”包含要寫入設(shè)備的數(shù)據(jù)。“返回?cái)?shù)”包含實(shí)際寫入的字節(jié)數(shù)。
此外,LabVIEW中與串口通信有關(guān)的還有VISA關(guān)閉函數(shù)與VISA串口字節(jié)數(shù)函數(shù),分別用于關(guān)閉串行設(shè)備的任務(wù)或事件和計(jì)算進(jìn)入串口緩存區(qū)中的數(shù)據(jù)字節(jié)數(shù)。
2.2 LabVIEW與PLC串口通信實(shí)現(xiàn)
按照通信協(xié)議使用專用的九芯插頭和PC/PPI電纜,將PC機(jī)的COM1口與S7-200的自由通信口直接連接。由于電纜上帶有RS-232/RS485電平轉(zhuǎn)換器,連接十分方便。LabVIEW進(jìn)行串口通信的基本步驟為:
(1)初始化端口。利用VISA配置串口函數(shù)設(shè)定進(jìn)行串口通信的端口號、波特率、停止位、校驗(yàn)、數(shù)據(jù)位。
(2)讀寫端口。利用VISA讀串口函數(shù)和VISA寫串口函數(shù)從串口中讀入或輸出數(shù)據(jù)。由于LabVIEW的串行通信子程序只允許對字符串的讀寫,因此在數(shù)據(jù)處理時(shí),必須進(jìn)行字符串與數(shù)字之間的正確轉(zhuǎn)換。
(3)關(guān)閉端口。當(dāng)對串口操作完成后,需要關(guān)閉串口,以釋放硬件資源。
3 串口通信實(shí)現(xiàn)
按照上述過程,設(shè)計(jì)了監(jiān)控系統(tǒng)程序,程序框圖與前面板分別如圖5、圖6所示。
評論