AB-PLC之間通訊
AB-PLC之間進行通訊比較常用的方法有兩種:
第一種:使用生產者/消費者,通過設置數據類型方式進行通信
第二種:使用MSG指令,進行通信
兩種通訊方式有什么區別?
在生產者/消費者通信中,生產者數據所在的plc必須在消費者plc網絡組態中,而使用MSG指令進行數據交換則沒有此項要求。
使用生產者-消費者數據通訊:
所謂消費者就是需要接收的數據、主動讀取數據的那一方,生產者就是被讀取數據、發送數據那一方。下面定義plc-a為生產者plc,plc-b為消費者plc,通訊步驟如下:
(1) plc-a控制器標簽中定義需要發送的數據區,數據類型為生產型;plc-b控制器標簽中定義接收數據區,數據類型為消費
(2) 設置plc-b中消費者標簽的連接屬性,在remote data屬性中填寫對應於plc-a中生產者變量名稱即可
PS:這里需要注意,標簽必須創建在控制器區域,全局數據區;傳送數據的標簽不能超過500個字節,如果是通過ControlNet網絡數據交換,數據標簽則不能超過480 個字節,這是受限於ControNet 網絡的數據包的尺寸;如果Produce幾個數據到同一個控制器,將幾個數據合並在一個用戶自定義結構的數據標簽中,這樣可以減少連接數,合並后的數據會用相同的RPI;標簽只能使用DINT和REAL,或它們的數組,或者用戶自定義結構數據,因為對外操作數據必須是32位的;如果有SINT和INT的數據需要傳送,將它們組合在用戶自定義結構中傳送;Produce的標簽和Consume的標簽數據格式必須一致,才能確保數據的准確。
使用MSG指令通訊:
(1)建立數據類型為MESSSAGE結構的標簽,每一條MSG指令調用之前都要分配一個標簽,這個標簽將記錄本條指令的通訊組態和執行情況
只有為指令分配了標簽后,點擊 方可進入組態界面:
說明:
• 對控制器以外的各種設備傳送信息,它的信息類型如下所列:
-CIP Data Table Read/Write 對ControlLogix控制器進行讀寫
-PLC5 Typed Read/Write 對PLC5處理器進行讀寫
-PLC5 Word Range Read/Write 對類似PLC5處理器地址進行讀寫
-Block Transfer Read/Write 對塊傳送模塊進行讀寫
-PLC2 Unprotected Read/Write 對PLC2處理器及類似PLC2地址(寄存器地址)的設備進行讀寫。
-PLC3 Typed Read/Write對PLC3處理器進行讀寫
-PLC3 Word Range Read/Write,對類似PLC3處理器地址進行讀寫。
-SLC Typed Read/Write對SLC處理器進行讀寫
-Module Reconfigure 在模塊仍然連接時,對模塊進行重新組態 。
-CIP Generic 對任何設備的服務性操作。
• 本指令執行的狀態
-Enable 指令級條件成立,指令被使能,開始工作。
-Enable Waiting 信息傳送請求被送到緩沖區,等待傳送。
-Start 緩沖區排隊輪到,開始傳送數據。
-Done 數據傳送完畢,指令置位完成。
-Done Length 實際完成的數據塊長度
-Error Code 如指令執行失敗,此處給出16進制的錯誤代碼00XX。
-Extended Error Code 給出16進制的擴展錯誤代碼XXXX。
-Tined Out 設置超時請求,此項選擇,當發生超時,終止MSG傳送過程。
(2)以 ControlLogix 控制器與ControlLogix 控制器的通訊為例
源或目標的標簽地址不是引用Tag名,而是Tag的第一個元素,否則認為是語法錯誤,梯級不能接受。
元素個數最多可有65335個,盡管ControlNet 的數據包最多只有500個字節,MSG指令可將數據塊拆開,分成一個以上的數據包送走。
Communication 頁面要求輸入兩個控制器之間的通訊路徑,如果在I/O組態中有該控制器,亦可通過Browse獲得路徑,倘若僅僅是為了建立MSG路徑而在I/O組態中加入控制器,則沒有必要,那樣將占用內存空間,建議書寫路徑,路徑書寫規則:
路徑是段和段的連接,段由x,y組成,段和段之間用逗號分離。
• X 背板為1;網絡為2。
• Y 槽號;站號,ControlNet網絡1-99號,EtherNet網絡為IP地址。
上面書寫的路徑是:背板(1)—CNB(位於5槽)—ControlNet網絡(2)—對方CNB(站號3號)— 背板(1) — 控制器(位於0槽)。
路徑還可以是動態的,在信息塊的結構數據中,有Path一項,這是個字符串結構,更換字符串數據即更換了路徑,字符串的長度最大82個,足夠表達路徑了。
,此項建立了MSG指令的連接,缺省是選擇的,也就是說MSG指令占用一個固定的連接;如果釋放此項,只有在MSG指令執行的時候才占用連接,是一個活動的連接,可編制程序,令多條MSG指令共同使用一個連接,這對緩和資源的運用是有好處的。
更多自動化知識,關注微信公眾號:工控自動化老王,不定期分享!