Modbus通信協(xié)議在分布式控制系統中的應用
2、程序設計
ASCII模塊支持BASIC語(yǔ)言編程,此外,又附加了多條系統及函數指令,如接收、發(fā)送緩沖區操作指令、信息傳輸差錯控制CRC、LRC校驗函數指令和與CPU單元數據交換的讀寫(xiě)指令等。編程使用WINDOWS操作系統上附帶的Hyperterminal(超級終端)軟件,通過(guò)此軟件,PC機可與連接在網(wǎng)絡(luò )上的其它PC機或串口終端設備進(jìn)行文本文件的傳輸及顯示。編程時(shí),將PC機串口與ASCII模塊的RS232串口連接,運行該軟件,就能在其界面上對ASCII模塊進(jìn)行程序編寫(xiě)、上傳、下載和調試等工作。也可先通過(guò)WINDOWS系統的寫(xiě)字板編寫(xiě)程序,并保存為文本格式,然后再通過(guò)Hyperterminal將程序下載到ASCII模塊。通信程序的主工作流程見(jiàn)圖五。
部分程序代碼如下:
OPTION BASE 0 //定義數組
DIM R(128),FC(128)
R(48)=0:R(49)=1:R(50)=2:R(51)=3:R(52)=4:R(53)=5:R(54)=6:R(55)=7:R(56)=8
R(57)=9:R(65)=&h0a:R(66)=&h0b:R(67)=&h0c:R(68)=&h0d:R(69)=&h0e:R(70)=&h0f
R(97)=&h0a:R(98)=&h0b:R(99)=&h0c:R(100)=&h0d:R(101)=&h0e:R(102)=&h0f
OPEN #2,"COMU:19200,8,E,1" //設定串口參數
A%=LOC(2) //判斷接收緩沖區字符
IF A%=8 THEN
REX$=INPUT$(A%,#2)
……….
ENDIF
GOSUB *ZFCL //對信息進(jìn)行分解處理
IF ST=1 THEN *JAOY ELSE *BACK //判斷是否本站信息
*JAOY
GOSUB *CRC //CRC循環(huán)冗余校驗子程序
IF R=CRC THEN *WORK ELSE *BACK //信息校驗正確判斷
*WORK
IF (FU=3) THEN GOTO *DJS //讀功能碼判斷,調寫(xiě)操作子程序
IF (FU=6) THEN GOTO *XJS ELSE GOTO *BACK //寫(xiě)功能碼判斷,調讀操作子程序
*DJS //讀子程序
………
*XJS //寫(xiě)子程序
………
*CRC //CRC 校驗子程序
……….
*ZFCL //字符處理子程序
………
由于A(yíng)SCII模塊支持ASCII碼,而RTU則是基于二進(jìn)制碼的16進(jìn)制字符通信方式,所以在程序編程中增加了碼制轉換程序。
CH5$=MID$(REX$,5,1) :CH6$=MID$(REX$,6,1) //提取字符段
VOL=ASC(CH5$)×256+ASC(CH6$) //將ASCII碼字符轉換十進(jìn)制數
VOL$=HEX$(VOL) //將十進(jìn)制數轉換成十六進(jìn)制字符
3、程序優(yōu)化及安全措施
在A(yíng)SCII模塊與CPU單元數據交換程序部分,采取由ASCII模塊向CPU 單元主動(dòng)發(fā)送讀寫(xiě)請求信號,CPU單元在收到請求時(shí)才執行數據交換程序的方法。這樣,就縮短了PLC的掃描周期,提高了通信實(shí)時(shí)性。
在信息差錯控制部分,采用了CRC-16循環(huán)冗余校驗算法,該算法能使信息的差錯率低于10-14以下。如果信息校驗錯誤,程序將清除緩沖區,等待DCS信息重發(fā)。
根據生產(chǎn)需要,可在HMI上將現場(chǎng)按鈕等手控設備設為無(wú)效狀態(tài),所有手、自動(dòng)操作均在DCS上進(jìn)行??紤]到如通信網(wǎng)絡(luò )遭到癱瘓等嚴重故障時(shí),需保證現場(chǎng)電氣設備正常啟停,又增加了通信狀態(tài)定時(shí)偵測程序,在規定時(shí)間(10秒)內網(wǎng)絡(luò )上如無(wú)信號,PLC自動(dòng)將現場(chǎng)按鈕等手控設備設為有效,同時(shí)DCS故障報警,直到網(wǎng)絡(luò )恢復正常為止。
四、結束語(yǔ)
當前分布式控制系統通信網(wǎng)絡(luò )的設備、軟件及整體架構,大部分是由專(zhuān)業(yè)廠(chǎng)商生產(chǎn)提供的,其總體性能較好。但如前所述,它們也有系統配置可選性小、網(wǎng)絡(luò )架構適應面窄、價(jià)格較高等缺點(diǎn)。筆者采用Modbus協(xié)議這一成熟通信技術(shù),選用PLC的可編程模塊,進(jìn)行基于Modbus通信協(xié)議的自主程序設計,架構起本自控系統的通信網(wǎng)絡(luò )。該網(wǎng)絡(luò )易擴展、易維護,具有結構簡(jiǎn)單、應用靈活、編程方便、造價(jià)低廉等特點(diǎn)。這套系統在某化纖生產(chǎn)線(xiàn)一次投運成功,實(shí)際運行狀態(tài)良好,證明其穩定可靠,能完全滿(mǎn)足系統設計要求。到目前為止,該系統已在多個(gè)工程項目上投入使用,全部運行正常,取得了良好的經(jīng)濟效益。
本文創(chuàng )新點(diǎn):采用工業(yè)領(lǐng)域通用的Modbus通信協(xié)議標準,利用可編程的PLC特殊功能模塊,并進(jìn)行通信程序設計,低成本的解決了本系統的通信架構問(wèn)題,可為分布式控制系統通信網(wǎng)絡(luò )兼容性設計的一個(gè)思路。
評論