郭愛華



摘要:MODBUS/TCP是MODBUS 通訊中的一種以太網通訊方式,MODBUS/TCP通訊對使用硬件要求低,應用廣泛。西門子PLC的S7-200可以設置為MODBUS/TCP通信方法,其中使用了兩個MODBUS/TCP命令“MB_CLIENT”指令和“MB_SERVER”指令,它們分別將PLC設置MODBUS客戶端和MODBUS服務器,本文重點介紹這兩個命令的設置方法。
Abstract: MODBUS/TCP is an Ethernet communication method in MODBUS communication. MODBUS/TCP communication has low hardware requirements and a wide range of uses. The Siemens PLC S7-1200 can be set to the MODBUS/TCP communication method, in which two MODBUS/TCP commands "MB_CLIENT" and "MB_SERVER" are used, which respectively set the PLC as a MODBUS client for industrial robots and MODBUS server for MES manufacturing process execution and management system. This paper focuses on the setting methods of these two commands.
關鍵詞:MODBUS/TCP;S7-1200;客戶端;服務器
Key words: MODBUS/TCP;S7-1200;client;server
中圖分類號:TP368.5 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1006-4311(2019)30-0204-03
0 ?引言
自動化系統包括多種通訊協定,它們是可以應用于工業控制器上的通用語言。通過多種協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它們有一定的成為工業標準。有了它們,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。
常見的通訊協定,例如三菱PLC常用的CC-LINK,西門子常用的PROFIBUS和PROFINET IO通訊方式,施耐德公司的MODBUS通訊方式,等等。西門子PLCS7-1200CPU可以使用的一種通訊方式是MODBUS/TCP方式,在西門子CPU中它是結合了MODBUS通訊方式和PROFINET通訊方式,可以使用PROFINET通訊來連接MODBUS客戶端或服務器。
在工業4.0信息技術產業時代的大背景下,借助互聯網或其他網絡,變革了全新的智能制造模式,網絡下單點單按需生產制造模式成為工業制造發展趨勢。MES制造企業生產過程執行管理系統可以成為其中的一環,結合西門子S7-1200CPU控制器,以及工業4.0必備的工業機器人搬運機構、料庫機構、機床生產機構共同組成智能化生產體系,本文中它們之間的主要通訊方式采用MODBUS/TCP通訊方式。
1 ?Modbus 協議的簡單介紹
Modbus 協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它是一種集散控制,工業控制器可以通過連網進行MODBUS通訊,它服從工業控制器網絡協議,是公開發表的,對外開放,易于操作,是工業控制設備之間比較常用的通訊方式。它描述了一控制器請求訪問其它設備的過程,如果回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。
當在一MODBUS網絡上通信時,此協議決定了每個控制器須要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成反饋信息并用MODBUS協議發出。在其它網絡上,包含了MODBUS協議的消息轉換為在此網絡上使用的幀或包結構。這種轉換也擴展了根據具體的網絡解決節地址、路由路徑及錯誤檢測的方法。
標準的MODBUS網絡通信,能設置為兩種傳輸模式(ASCII或RTU)中的任何一種,MODBUS/TCP采用了RTU傳輸模式。當控制器設為在MODBUS網絡上以RTU(遠程終端單元)模式通信,在消息中的每個8Bit字節包含兩個4Bit的十六進制字符。這種方式的主要優點是:在同樣的波特率下,可比ASCII方式傳送更多的數據。
2 ?MES制造企業生產過程執行管理系統
MES系統能根據不同操作者的用戶名和密碼登陸生成不同系統加工任務,即具有管理用戶的功能,并能判別糾錯;可以在工作任務中的進行零件的選擇以篩選零件類型,并能視具體情況進行零件加工任務的增減;
自動化智能制造系統應實現全自動化機器人生產線,云制造以及基于RFID的智慧工廠。MES系統的任務應包括項目管理、智能設計、智能工藝、智能編程、智能制造、智能測量、OEE設備監控、APS排產等多項業務及功能。
3 ?搬運工業機器人生產系統
工業機器人作為現代信息工業產業柔性制造系統重要的組成部分,在本例中負責搬運物料在倉庫與各機場設備之間,采用的是華中工控機器人,能與PLC使用MODBUS/TCP連接,交換數據,根據PLC提供的數據進行流程判斷每步的工作目的,是整個系統的重要執行部分,同時也是系統最主要的控制中心,MES系統在本例中只提供數據,PLC負責各部分的數據信息連接傳送,和少量對MES數據的分析,工業機器人負責將PLC輸送來的數據,通過流程進行分析,形成倉庫產品的加工軌跡,由它來生成整個加工過程的流程圖。
4 ?西門子PLCS7-1200CPU控制系統的選型介紹
本例使用了S7-1200 1215C DC/DC/DC的CPU的PLC,它的性能為有100 KB的工作存儲器;24VDC電源,板載DI14x24VDC漏型/源型,DQ10x24VDC及AI2和 AQ2,即14個數字量輸入,10個數字量輸出,2個模擬量輸入和2個模擬量輸出;板載6個高速計數器和4個脈沖輸出;信號板擴展板載I/O;多達3個通信模塊用于串行通信;多達8個信號模塊用于I/O擴展;0.04ms/1000條指令;2個PROFINET端口用于編程,HMI和PLC間的通信,本例中通過PROFINET接口連接MODBUS/TCP,作為MODBUS/TCP客戶端與工業機器人相連,再作為MODBUS/TCP服務器與MES制造過程管理系統相連接。
5 ?柔性制造系統MODBUS/TCP的程序實例
西門子PLC在工控方面性能可靠,本文介紹針對S7-1200的在MODBUS/TCP通訊方式,其中主要使用分別了兩個指令,“MB_CLIENT”指令負責作為MODBUS/TCP客戶端通過S7-1200 CPU的PROFINET連接工業機器人,能進行通信的通訊方式進行主動的連接。使用以太網系統可以在客戶端和服務器之間建立連接、發送請求、接收響應并控制Modbus TCP服務器的連接終端。而另一個指令“MB_SERVER”指令作為MODBUS/TCP服務器,通過S7-1200 CPU的PROFINET連接進行通信?!癕B_SERVER”指令將處理MODBUS/TCP客戶端MES制造企業生產過程執行系統的連接請求、接收MODBUS功能的請求并發送響應,客戶端可以對其數據進行訪問和更改。使用這兩個指令,無需其它任何硬件模塊。
第一種“MB_CLIENT”指令,西門子S7-1200為客戶端,訪問工業機器人數據的MODBUS/TCP通訊方式。
S7-1200讀取工業機器人數據:西門子PLC的以太網地址設為192.168.8.1,工業機器人的以太網地址設為192.168.8.2,將機器人內部的地址的1-16號數據(數據可以包括機器人的位置、狀態等)送到為機器人與PLC相互通訊時MB_CLIENT中PLC的數據塊的的全局數據塊DB2的DBW0至DBW30的16個字中,設M50.0的常開觸點為PLC讀取機器人數據的MODBUS/TCP服務器的通訊請求信號,其程序見圖1。
“MB_CLIENT”指令中輸入參數 MB_MODE、MB_DATA_ADDR 和 DATA_LEN 與相關 Modbus 功能的關系表如表1。
由表1可知MB_MODE=0、MB_DATA_ADDR=30001、DATA_LEN=16的組合指定MODBUS功能代碼為04,從機器人地址讀入16個字。
S7-1200向工業機器人寫入數據:以太網地址同讀取,將全局數據塊DB2的DBW32至DBW64(包括存于PLC中其他設備數據,如MES數據,倉庫數據,機床數據或命令)寫入到工業機器人MODBUS地址中,M50.1的常開觸點為PLC寫入機器人數據的MODBUS/TCP服務器的通訊請求信號,其程序如圖2。
由關系表可以讀出,MB_MODE=1、MB_DATA_ADDR
=40001、DATA_LEN=16的組合指定MODBUS功能代碼為16,向機器人地址寫入16個字。
第二種“MB_SERVER”指令,西門子S7-1200為MODBUS服務器,由MES系統訪問PLC數據的MODBUS/TCP通訊方式。本例中我們僅做MES發送命令給PLC的程序,“MB_SERVER”指令本身是可以允許到達的Modbus 功能(1、2、4、5和15)直接讀取和寫入訪問S7-1200 CPU 的過程映像輸入和輸出,但在本例中我們還是使用全局數據塊DB8來實現數據的讀寫,且由于數據塊的讀寫超過一個字,還是使用Modbus的功能3和16來讀寫數據塊,MB_SERVER指令中的MB_HOLD_REG參數中輸入的數據塊指針和長度對應了MODBUS客戶端從頭開始的地址數據,例如MB_HOLD_REG參數寫入P#DB8.DBX0.0 WORD 20,則DB8.DBW0對應MES的MODBUS首地址數據,之后共20個字的長度一一對應,見圖3。
為了能夠對不同狀態情況下的不同的數據進行按條件順序傳輸,建立一個通訊規則,可以使系統和各個設備之間能有序的進行溝通,按照操作步驟依次進行傳輸,回應,清零進行周期工作,使傳輸的數據更可靠,做以下的設置:第一步,先在MES中設置代表不同工作狀態的命令碼如0為復位,1為啟動,2為停止,3為設備運行,將它放入MODBUS首地址中傳入DB8.DBW0中,可在后續其他的地址中添加一些設備號,位置等數據信息,這步稱為MES發給PLC指令。第二步,將DB8.DBW0的數據傳入DB8.DBW10,將DB8.DBW10回傳給MES,這步稱為PLC響應MES的指令。第三步,MES對回應進行處理,確認命令碼正確傳輸后,送復位用的命令碼0給PLC,PLC清除DB8.DBW10,稱為MES清除PLC步驟數據,完成某步驟的數據傳輸共需這三步。以命令碼為3的數據傳輸為例的實際程序如圖4。
此程序完成了MES向PLC傳輸命令碼3,PLC回呼MES,MES傳回清零碼,進行清零的三個步驟,能使數據的傳輸更加有層次,更可靠。
可靠而方便的通訊方式,使自動化電氣設備與設備之間能更靈活的聯系起來,MODBUS通訊方式本身使應用比較自由而廣泛的,結合MES系統,西門子PLC控制器和工業機器人完成了三者之間的自動化系統通訊聯系。可以預計隨著移動互聯和工業4.0的推進,自動化通訊技術也將不斷的發展創新,未來的通訊方式會更廣泛,更靈活,更迅速,更準確。
參考文獻:
[1]樊啟永,廖小吉,田超.基于MES的料倉智能取料系統構建及機器人編程的實現[J].工業技術與職業教育,2019:11-13.
[2]吳玉文,蔡鎖寧,邱濤.基于Modbus/TCP的工業機器人與PLC通信研究[J].河南科技,2018(12):33-35.
[3]何永亞.基于prOpcKit的opc數據訪問服務器的設計與實現[J].價值工程,2012,31(05):172-174.