羅光耀 張龍剛 俞瑞昕
(秦川機(jī)床工具集團(tuán)股份公司液壓研究所)
LabVIEW與S7-1200系列PLC基于Modbus TCP/IP協(xié)議的通信方法
羅光耀 張龍剛 俞瑞昕
(秦川機(jī)床工具集團(tuán)股份公司液壓研究所)
虛擬儀器(LabVIEW)開發(fā)環(huán)境與PLC之間可通過RS-232、RS-485、以太網(wǎng)等多種接口進(jìn)行通信,通信協(xié)議可使用PLC廠家開發(fā)的非開放協(xié)議(如西門子公司的PPI協(xié)議),也可使用開放的協(xié)議如施耐德公司開發(fā)的Modbus。隨著越來越多的PLC本體集成以太網(wǎng)接口,采用Modbus TCP/IP協(xié)議的基于以太網(wǎng)接口的通信方式被廣泛應(yīng)用到電氣設(shè)備中。實(shí)踐證明,這種通信方式成本低廉,編程簡單,可大大縮短程序開發(fā)時(shí)間并降低電氣硬件成本。
LabVIEW Modbus協(xié)議 TCP/IP協(xié)議 PLC
隨著工業(yè)自動(dòng)化水平的提高,可編程邏輯控制器(Programmable Logic Controller,以下簡稱PLC)由于具有配置靈活方便、輸入輸出可任意編程控制等優(yōu)點(diǎn),現(xiàn)已發(fā)展成為自動(dòng)化設(shè)備的核心控制器件。但PLC一般不具備屏幕顯示,在一些需要配方管理、用戶管理、數(shù)據(jù)存儲、曲線顯示等功能的設(shè)備中不能完全實(shí)現(xiàn)設(shè)備的需求。在實(shí)際應(yīng)用中,常常將計(jì)算機(jī)作為上位機(jī)以實(shí)現(xiàn)人機(jī)交互功能,PLC作為下位機(jī)實(shí)現(xiàn)數(shù)字量和模擬量的輸入輸出功能。但隨之而來的計(jì)算機(jī)與PLC之間的通信方法便成為電氣設(shè)計(jì)人員首要解決的問題。鑒于此,本文介紹了一種LabVIEW開發(fā)環(huán)境和西門子S7-1200系列PLC之間基于Modbus TCP/IP協(xié)議的通信方法,并將之成功應(yīng)用于塑料機(jī)械內(nèi)嚙合齒輪油泵出廠試驗(yàn)臺的電氣系統(tǒng)中。通過這種方法,系統(tǒng)不僅實(shí)現(xiàn)了設(shè)備的自動(dòng)控制和數(shù)據(jù)的輸入輸出功能,同時(shí)還實(shí)現(xiàn)了油泵試驗(yàn)參數(shù)管理、試驗(yàn)過程監(jiān)控、試驗(yàn)數(shù)據(jù)存儲等功能,彌補(bǔ)了PLC在人機(jī)交互和顯示方面的不足。
Modbus協(xié)議是Modicon公司在1979年開發(fā)的一種消息結(jié)構(gòu),用來建立智能設(shè)備間的主-從/客戶機(jī)-服務(wù)器通信。Modbus協(xié)議是一種請求/應(yīng)答協(xié)議,在該協(xié)議中,Modbus主機(jī)(Modbus客戶端)發(fā)送請求,Modbus從機(jī)(Modbus服務(wù)器)返回響應(yīng)。Modbus請求/應(yīng)答協(xié)議模型如圖1所示。
圖1 Modbus請求/應(yīng)答協(xié)議模型
TCP/IP協(xié)議是一組協(xié)議簇,全稱是Transmission Control Protocol/Internet Protocol,即傳輸控制協(xié)議/網(wǎng)際協(xié)議,是國際互聯(lián)網(wǎng)Internet的核心傳輸協(xié)議。而以太網(wǎng)Ethernet作為TCP/IP協(xié)議簇的網(wǎng)絡(luò)接入層(對應(yīng)OSI參考模型中的物理層和數(shù)據(jù)鏈路層)協(xié)議之一,已成為商用計(jì)算機(jī)領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。隨著計(jì)算機(jī)的在工業(yè)現(xiàn)場的廣泛使用,應(yīng)用TCP/IP協(xié)議的以太網(wǎng)也成為工廠網(wǎng)絡(luò)(Factory Networking)的一種事實(shí)標(biāo)準(zhǔn)。
1996 年,施耐德公司推出了基于TCP/IP的Modbus協(xié)議,將Modbus幀簡單的嵌入到TCP幀中,開發(fā)容易,硬件成本低廉,適用于各種應(yīng)用的解決方案,已成為自動(dòng)化設(shè)備最廣泛支持的協(xié)議。
本文將通過Modbus TCP/IP技術(shù)實(shí)現(xiàn)計(jì)算機(jī)和西門子S7-1200 PLC之間的通信,達(dá)到計(jì)算機(jī)監(jiān)測和控制PLC的目的。
3.1 上位機(jī)
上位機(jī)采用工控機(jī)或商用計(jì)算機(jī)。由于本系統(tǒng)采用以太網(wǎng)連接,所以要求上位機(jī)必須安裝有以太網(wǎng)卡。
3.2 下位機(jī)
下位機(jī)使用西門子S7-1214C DC/DC/DC PLC,固件版本4.0。S7-1200系列PLC集成PROFINET接口,該接口可用于編程、HMI與PLC間通信、PC與PLC間通信,支持Modbus TCP/IP協(xié)議。計(jì)算機(jī)與PLC之間使用568B標(biāo)準(zhǔn)網(wǎng)線連接。
下位機(jī)程序開發(fā)步驟如下
4.1 為計(jì)算機(jī)和PLC手動(dòng)分配IP地址。兩個(gè)設(shè)備的IP地址必須位于同一網(wǎng)段內(nèi),子網(wǎng)掩碼均為255.255.255.0。
4.2 建立Modbus保持寄存器作為Modbus通信緩沖區(qū)。可新建一個(gè)標(biāo)準(zhǔn)全局?jǐn)?shù)據(jù)塊DB或使用一段 M儲存區(qū),儲存區(qū)用于保存值,允許Modbus客戶端使用Modbus寄存器功能3(讀)、6(寫)和16(寫)訪問這些值。
4.3 建立Modbus Server(Modbus從機(jī))。建立Modbus Server需使用MB_SERVER指令,且PLC在每個(gè)掃描周期執(zhí)行該指令一次。
編譯程序并檢查無錯(cuò)后將程序下載至PLC,PLC程序如圖2所示。
圖2 PLCModbus從機(jī)梯形圖
上位機(jī)程序開發(fā)步驟如下:
5.1 新建VI,創(chuàng)建Modbus主設(shè)備實(shí)例。使用Create Master Instance.vi,地址設(shè)置為PLC地址,手動(dòng)選擇多態(tài)實(shí)例為新建TCP主設(shè)備。
5.2 讀取DI輸入,使用Read Discrete Inputs.vi讀取連續(xù)離散輸入的值。
5.3 讀取DO輸出。使用Read Coils.vi讀取連續(xù)線圈的值。
5.4 寫入保存寄存器。使用W rite Multiple Holding Registers.vi寫入值至連續(xù)保持寄存器。
5.5 讀取保持寄存器。使用Read Holding Registers.vi讀取連續(xù)保持寄存器的值。
5.6 關(guān)閉Modbus連接。使用Close.vi關(guān)閉并銷毀Modbus主設(shè)備實(shí)例。
設(shè)計(jì)完成后的前面板如圖3所示,程序框圖如圖4所示。
圖3 LabVIEW前面板
圖4 LabVIEW程序框圖
經(jīng)過聯(lián)機(jī)測試,LabVIEW和PLC程序均運(yùn)行正常,上位機(jī)能實(shí)時(shí)監(jiān)測PLC I/O口狀態(tài),讀取模擬量輸入值,同時(shí)向PLC寫入控制數(shù)據(jù)。這種LabVIEW和西門子S7-1200系列PLC之間基于Modbus TCP協(xié)議的通信方法有以下優(yōu)點(diǎn):
編程簡單。上位機(jī)和下位機(jī)均只需簡單的指令即可實(shí)現(xiàn)對PLC離散量和保持寄存器的讀寫;
移植方便。圖4所示通信程序去掉while結(jié)構(gòu)后可封裝為一個(gè)子vi被任意主vi調(diào)用;
硬件成本低廉。PC和PLC均自帶以太網(wǎng)口,僅需一根網(wǎng)線即可建立Modbus TCP/IP連接。
實(shí)踐證明,這種采用Modbus TCP/IP協(xié)議的基于以太網(wǎng)接口的通信方式簡單易用,可在類似的計(jì)算機(jī)和PLC組成的電氣系統(tǒng)中推廣和使用。
[1]左昉,胡仁喜,閆聰聰?shù)?,《LabVIEW 2013中文版虛擬儀器從入門到精通》第4版.北京:機(jī)械工業(yè)出版社,2014
[2]鄧欣茹,丁建興,楊翼等,Modbus/TCP工業(yè)以太網(wǎng)的現(xiàn)狀與發(fā)展,《工業(yè)控制計(jì)算機(jī)》2004年第9期
[3]李宏宇,張慶廣,王云龍,S7-1200 PLC基于Modbus通信協(xié)議的數(shù)據(jù)采集及遠(yuǎn)程傳送應(yīng)用,《黑龍江冶金》2014年第4期
[4]姚金江,李欣,TCP/IP協(xié)議的由來與發(fā)展,《臨沂師范學(xué)院學(xué)報(bào)》2001年第4期
Themeans of communication for LabVIEW and S7-1200 PLC based on M odbus TCP/IP protocol
Luo Guangyao ZHang Longgang Yu Ruixin
(Hydraulic Institute Qinchuan Machine Tool and Tool Group Share Co.Ltd)
LabVIEW can communicate with PLC by RS-232、RS-485、Ethernet and so on,the communication protocol can use non open protocol(such as Simens’PPIprotocol),it also can use open protocol(such as Modbus that developed by Schneider).Asmore and more PLCs integration Ethernet interface,the means of communication using Modbus TCP/IP protocol based on Ethernet has been widely applied to electrical equipment.The practice has proved that thismeans of communication with low cost,programming simple,it also can greatly shorten the development time and reduce the cost of electrical hardware.
LabVIEW Modbus protocol TCP/IP protocol PLC