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