前言:AB PLC控制器系列很多,主要分為小型MicroLogix和Micro800系列、中型CompactLogix系列、大型ControlLogix系列,而大、中型又統稱為LOGIX 5000控制器。在項目實行過程中,控制器之間數據交互是經常涉及到的課題,LOGIX 5000控制器之間數據交互主要有兩種方式,一是通過MSG指令,二是生產者/消費者標簽。今天,本文介紹的是第一種方式,而選用的控制器為CompactLogix與ControlLogix控制器,非常具有代表性,希望能幫助有需要的朋友。
一、實現功能
1. CompactLogix控制器:1769-L33ERM,IP地址:192.168.1.20
2. ControlLogix控制器:1756-L72+1756-EN2TR,IP地址:192.168.1.10
3. 網絡連接:1769-L33ERM與1756-L72通過網線或交換機連接
4. 實現功能:兩台控制器之間通過MSG指令實現數據交互
二、軟件環境
1. 操作系統:Windows7 旗艦版 SP1 64位
2. 編程軟件:Studio 5000 V30.00.00
3. 通信軟件:RSLinx Classic Gateway 3.90.00
三、MSG編程(在CompactLogix端實現)
1. 打開Studio 5000軟件,新建項目名稱為“CMP”,控制器選擇1769-L33ERM,版本為30,如下圖所示,已經創建好的項目.
2. 在項目CMP的控制器標簽,新建4個標簽:
(1) MSG_Rd,數據類型MESSAGE,從1756-L72中讀取數據的通信指令結構體;
(2) MSG_Wr,數據類型MESSAGE,把數據寫到1756-L72的通信指令結構體;
(3) Read_tag,數據類型DINT[5],存儲從1756-L72讀取的數據;
(4) Write_tag,數據類型DINT[5],把這五個數據發送到1756-L72.
3. 再次打開Studio 5000軟件,新建項目名稱為“CTL”,控制器選擇1756-L72,添加以太網通信模塊1756-EN2TR,命名為EN2T, 並在控制器標簽里面創建2個標簽,Write_tag,Read_tag,數據類型均為DINT[5],將程序下載到控制器並在線.
4. 在EXCEL中,編制數據通信協議表,這步很重要,尤其是大量數據交互時,編程通信表讓數據清晰明了,建議大家在程序開發時,養成多用EXCEL的習慣.
5. 在項目CMP(1769-L33ERM)里面調用MSG指令,編寫讀取、發送數據的程序,詳見下圖.
6. 指令MSG_Rd用來1769-L33ERM讀取1756-L72里面的數據,詳細配置見下圖:
(1) Message Type:選擇CIP DataTable Read,從另一控制器中讀取數據;
(2) Source Element:源對象,填寫通信伙伴中的標簽起始地址,本文為1756-L72中的Write_tag[0];
(3) Destination Element:目標對象,填寫本地控制器存儲數據標簽起始地址,本文為1769-L33ERM中的Read_tag[0];
(4) Number of Element:交換數據的數量,本文為5,注意:Source 和 Destination 的類型必須匹配;
(5) 通信路徑:2,192.168.1.10,1,0
7. 指令MSG_Wr用於1769-L33ERM發送數據到1756-L72,詳細配置見下圖:
8. 功能測試,將項目CMP中的程序下載並在線,在CMP標簽Write_tag寫入數據,控制器CTL中的標簽Read_tag數據立即發生變化與之相同;在CTL標簽Write_tag寫入數據,控制器CMP中的標簽Read_tag數據立即發生變化與之相同,說明通信成功.
四、MSG編程(在ControlLogix端實現)
1. 在項目CTL(1756-L72)控制器,再創建2個標簽:
(1) MSG_Rd,數據類型MESSAGE,從1769-L33ERM中讀取數據的通信指令結構體;
(2) MSG_Wr,數據類型MESSAGE,把數據寫到1769-L33ERM的通信指令結構體.
2. 編寫通信程序,調用MSG指令,與在項目CMP的指令完全相同.
3. 指令MSG_Rd用來讀取1769-L33ERM數據,詳細配置見下圖:
(1) Message Type等參數與CMP程序配置相同,請參考前面表述;
(2) 通信路徑:EN2T,2,192.168.1.20,1,0
4. 指令MSG_Wr用來發送數據到1769-L33ERM,其中Message Type等參數與CMP程序配置相同,請參考前面表述,通信路徑:EN2T,2,192.168.1.20,1,0(注意:符號為英文符號,前面也是).
5. 功能測試,將項目CTL中的程序下載並在線,在CMP標簽Write_tag寫入數據,控制器CTL中的標簽Read_tag數據立即發生變化與之相同;在CTL標簽Write_tag寫入數據,控制器CMP中的標簽Read_tag數據立即發生變化與之相同,說明通信成功.
五、資料下載
1. MSG指令的應用非常廣泛,不僅限於LOGIX 5000控制器之間進行數據交換,同樣適用於LOGIX 5000控制器與其他系列控制器.
2. MSG指令,其難點在於通信路徑的設置,本文案例就非常典型.
3. 如果,你需要了解更多關於MSG指令的詳細說明,請下載以下官方資料:
• 《1756-rm003_-zh-p》,LOGIX 5000通用指令集,中文,2018年3月
• 《1756-pm012_-en-p》,LOGIX 5000 Message指令,英文,2018年12月
4. 下載方法:點擊左下角“閱讀原文”,提取碼:9zx3
結語:綜上所述,本文詳細介紹了AB LOGIX 5000控制器之間通過MSG指令交互數據,而通信伙伴選用的具體代表性的CompactLogix與ContolLogix控制器,其難點在於通信路徑的配置,大家在配置的時候需要注意。另外,CompactLogix控制之間、ContolLogix控制器之間進行數據交互,其MSG通信路徑的配置,請自行研究,不在累述。
________________________________________
【AB PLC工作室】
微信公眾號ID:abseme
堅持原創 注重實用
________________________________________
如果本文,對您有一點幫助或啟示。
請分享給更多的朋友,對小編以示鼓勵,謝謝!