關欣 裴銳
【摘要】 應用InduSoft組態(tài)軟件的MODBU驅動組件,實現串口與下位機硬件的連接。通過Modbus Slave仿真下位機硬件設備與InduSoft上位機組態(tài)進行通信測試,驗證了0X、1X、3X、4X、FP及DW命令寄存器讀寫操作的可行性。
【關鍵詞】 MODBU;RTU;InduSoft;組態(tài);串口
【DOI編碼】 10.3969/j.issn.1674-4977.2019.01.010
Abstract: The connection between serial port and lower computer hardware is realized by using the MODBU drive component of InduSoft configuration software. The feasibility of read-write operation of 0X,1X,3X,4X,FP and DW command register was verified through the communication test between the lower computer hardware device of Modbus Slave simulation and the upper unit state of InduSoft.
Key words: MODBU;RTU;InduSoft;configuration software;serial port
InduSoft Web Studio V7.1軟件是一套功能強大的自動化整合開發(fā)工具,包含所有開發(fā)一個全方位的SCADA(Supervisory Control and Data Acquisition)、HMI(Human-Machine Interface)、嵌入式控制系統(tǒng)所需的基本組件。InduSoft組態(tài)軟件的驅動程序(Dll文件形式),通過多種通信協(xié)議與下位機設備連接,例如PLC、回路測試、變送器等。工業(yè)現場應用中使用最為廣泛的就是MODBUS(RTU和ASCII)協(xié)議。在InduSoft軟件中調用MODBU和MOTCP驅動文件以實現串口和網口的設備連接。
1 驅動安裝
1.1 設備設置
串行通訊是按電力接口標準及通訊協(xié)議來做區(qū)分的,而通訊接口包括RS-232-C、RS-422、RS-485、USB等。而其中RS-485串行通訊因為通訊質量較為穩(wěn)定且通訊距離較長,所以被廣泛的應用于工業(yè)控制系統(tǒng)上的通訊,泓格科技提供各種RS-485的解決方案。下位機設備有多種配置以實現串口通信,但是為了便于上位機的調試和應用,推薦采用默認配置如下:
Protocol:RTU
Baud Rate:9600
Data Bits:8
Stop Bits:1
Parity:None
RS-485串行通訊,僅對接口的電力特性做出規(guī)范,其中不會涉及到通訊協(xié)議,例如Modbus RTU/ASCII、DCON等通訊協(xié)議是通過RS-485來進行通訊。需要注意的是當模塊通訊距離過長,在高波特率傳輸情況下,數據可能會受到外界的干擾程度而隨之變高,長距離傳輸時傳輸能力也不夠,這種情況可以采用泓格的RS-485 Repeater加強信號。通常工業(yè)環(huán)境存在著許多的干擾源(EMI/RFI),泓格還具有RS-485接口轉光纖接口的解決方案,由于光纖對上述干擾具有免疫力,可以大大提高信號的穩(wěn)定性和傳輸距離,對系統(tǒng)開發(fā)者來說可以更加便捷可靠。
1.2 InduSoft設置
在InduSoft軟件Communication頁的Drivers目錄樹下,右鍵點擊添加驅動。在列表中選擇MODBU驅動添加至Selected drivers,右鍵Settings中配置9600-8-n-1與設備側串口配置參數保持一致,如圖1、圖2所示。
2 驅動表單
MODBU驅動包含一個Main Driver Sheet和一個或多個Standard Driver Worksheet。Main Driver Sheet驅動表單在工程運行階段一直運行采集下位機數據,而Standard Driver Worksheet表單可以根據自定義變量的觸發(fā)變化來采集下位機的數據[1]。
2.1 主驅動表單(Main Driver Sheet)
主驅動表單Disable項表達式為空或者等于0時,Main Driver Sheet表單執(zhí)行采集操作,否則表單中的配置不起作用;Read Completed項中的變量在表單讀取操作結束以后進行Toggle;Write Completed項中的變量在表單讀取操作結束以后進行Toggle; Read Status項讀取操作返回值賦給變量;Write Status項讀取操作返回值賦給變量;Action項填寫read(連續(xù)不斷的一直讀取更新變量)、write(當變量值變化時將其寫入下位機設備)、read&write(兼顧讀寫功能);Scan項填寫Always(不斷讀取用于監(jiān)控告警記錄等變量)、Screen(界面顯示用到的變量)、Auto(自動判斷Always或者Screen),Station項是設備地址,而IO Address項是命令類型及地址值,如圖3所示。
2.2 標準驅動表單(Standard Driver Worksheet)
標準驅動表單Increase Priority項當表格動作被觸發(fā)時,讀和寫操作放在隊列的最前面。但是需要注意的是一旦勾選,表單就會不斷的觸發(fā)東西,會造成其他表單操作不執(zhí)行。Read Tagger項變量發(fā)生變化時,觸發(fā)表格的讀取操作;Enable Read When idle項變量值大于0時觸發(fā)表格的讀取操作。Write Trigger項變量發(fā)生變化時觸發(fā)表格的寫入操作;Enable Write On Tag Trigger項的變量值大于0時,Write Trigger項功能才有效,Station項是設備地址,而Type:Address Reference項是命令類型及地址值,如下圖4所示[2]。
3 Modbus slave測試
為了驗證InduSoft組態(tài)軟件調用MODBU驅動配置及應用的正確性,選用Modbus slave軟件模擬0X、1X、3X、4X、FP及DW的從機數據類型,如同下位機設備的串口默認配置,同樣將串口配置成9600-8-n-1,如圖5所示[3]。
以0X為例,仿真00001至00010的下位機設備開關量IO狀態(tài),測試InduSoft界面是否可以正確的讀寫寄存器參數,如圖6、圖7所示,Enable Main Driver Sheet勾選后觸發(fā)主驅動表單;Enable Read When Idle觸發(fā)標準驅動表單;Enable Write On Tag Change使寫入操作有效[4-5]。
4 結論
應用InduSoft組態(tài)軟件的MODBU驅動開發(fā)上位機組態(tài)界面,Modbus Slave仿真下位機硬件,通過0X、1X、3X、4X、FP及DW命令的讀寫操作驗證了MODBU驅動應用的可行性,驅動寄存器測試如表1所示。經過測試,組態(tài)軟件讀寫穩(wěn)定可靠,易于操作,達到了預期的效果。
【參考文獻】
[1] 朱桂鳳,田鶯,田宇.基于MSComm的串口通訊及PLC系統(tǒng)監(jiān)控軟件開發(fā)[J].計算機工程與設計,2006(6):1101-1104.
[2] 翟希述,王寶興,范淼.基于Visual C#的串口通信程序設計[J].電子科技,2011(2):24-26.
[3] 詹根基,郭厚焜.基于Visual Basic的數據采集卡控制技術[J].華東交通大學學報,2005(4):81-83.
[4] 呂小師,毋琦,呂小慈,等.基于Visual Basic語言的隧道爆破設計系統(tǒng)[J].價值工程,2012(24):225-226..
[5] 潘偉.Visual Basic編寫布氏硬度檢測系統(tǒng)的設計[J].電子技術與軟件工程.2014(13):123-124.