遼寧科技大學 許榮坤 彭安娜 崔建一 孫上千 鄒 朋 朱翔宇
在工業產業鏈日益完善的今天,單個PLC的工作能力已經遠遠無法滿足一條生產鏈的需求,往往需要多個PLC間的協同配合,共同來完成某一任務。因此PLC間的通訊就尤為重要。它不僅可以大大降低單個PLC的工作量,還能提高PLC的穩定性,從而提高該生產線的穩定性和生產效率。在工業自動化等多個領域,對PLC間數據傳輸的要求更高,需要PLC間滿足實時性和確定性。
單個PLC自身的數據處理量和處理速度和電腦一樣有極限點,所以要各個點分擔數據處理量,利用PLC之間的通訊,來加快程序的運行速度。在當今的工業生產中,需要處理的數據量越來越多且越來越復雜,因此通過PLC間的通訊,來增加數據處理的點,防止由于數據過多導致數據處理緩慢甚至PLC損壞,造成不必要的工業事故。
為確保數據處理的及時性,PLC間必須采用實時通訊保證數據處理的流暢性,實時是指系統在定義的時間內處理外部事件。通過PLC之間的實時通訊可解決許多問題,比如在極端環境下保持可靠的通訊網絡、在全天候保持可靠的數據交換、保證高效通訊的最大可用性等,這些都是在工業網絡中不可缺少的條件,所以,PLC之間的實時通訊在現在的工業中是非常必要的,在提高產量以及提高安全性方面都有著巨大的作用。
實時通信要求系統滿足兩個條件:實時性和確定性。實時要求系統在規定的時間內處理外部事件。確定性是指系統以可預測(確定的)方式進行反饋響應。PROFINET不僅符合工業以太網所要求具備的實時的確定性傳輸,還為實時通信提供了優化通道。用PROFINET來做確定的實時通信的優點:在規定的時間周期內傳輸對時間要求嚴格的數據,以及其他標準協議的通訊可以在同一網絡中不掉幀傳輸。PROFINET通信支持工程組態數據和診斷數據及中斷的非循環傳輸,以及用戶數據的循環傳輸。PROFINET 8個主要功能模塊之一,PROFINET分布式現場設備(PROFINET IO)。具有實時通信功能的PROFINET IO是集成I/O系統的最優解決方案。作為PROFINET的一部分,PROFINET IO更多的用于模塊化和分布式應用上。PROFINET IO也適用于符合PROFINET標準(IEC 61158-x-10)的可編程控制器之間。PROFINET IO在組態、編程和診斷方法上和PROFIBUS DP基本上相同,但PROFINET IO比PROFIBUS的性能更好。
在這里介紹一種PROFINET IO系統的搭建。如圖1所示,選定S7 1200(A)為IO控制器,S7 1200(B)為IO設備。圖中交換機選擇的是SCALANCE XB208,因為它是根據標準IEC 61158支持PROFINET標準的交換機。
圖1 網絡結構圖
首先用工業以太網線纜按照圖中所示,將各個設備連接起來,接通電源。將上位機的IP地址配置為192.168.10.254,子網掩碼改為255.255.255.0;利用PST工具將XB208的IP地址改為192.168.10.10。
在Portal軟件中創建一個項目,添加S7 1200 PLC,在項目信息中將名稱修改為“IOController”;在以太網地址中設置其IP地址和子網掩碼;在操作模式中,使用默認配置,即IO控制器;添加兩個BYTE數據類型變量,分別命名為Tag_1和Tag_2,地址分別為%QB2和%IB2;并將這兩個變量添加到監控表中,將格式分別設置為二進制和字符。
再添加一個S7 1200 PLC,命名為“IO-Device”;改地址,在操作模式中勾選”IO設備“,在”已分配的IO控制器“一欄下拉列表選擇IO控制器”IO-Controller.PROFINET接口_1“;添加兩個BYTE數據類型變量,分別命名為Tag_3和Tag_4,地址分別為%IB2和%QB3;并將這兩個變量添加到監控表中,將格式分別設置為二進制和字符。
最后設置傳輸區。在智能設備通信中雙擊兩次“新增“,添加兩個傳輸區,如圖2所示,單機箭頭,可改變傳輸方向。
圖2 傳輸區設置
通信測試。將IO-Controller和IO-Device分別下載并運行,點擊監控表中的“全部監視“按鈕;在IO控制器中,將Tag_1所在行的修改值的地方右擊,將其修改為1,則監視值變為與修改值一樣的數據,切換到IO設備的監控表中可以看到IO設備的%IB2地址的值也改變為一樣的值;將”Tag_4”的修改值設置為”w“,右擊,立即修改,則監視值變為與修改值一樣的數據,切換到IO控制器的監控表中可以看到IO控制器的%IB2地址的值也改變為一樣的值。
S7-1200 CPU的PROFINET通信口除了PROFINET IO,還支持以下通信協議及服務:S7通信,TCP,ISO on TCP,UDP,Modbus TCP,HMI通信,Web通信,OPC UA服務器,Email,安全TCP等。
以S7通訊為例,S7通訊在博途軟件中添加兩個S7-1200后,進行網絡配置,注意為同一子網下的不同IP,接著進行S7連接,在設備視圖的網絡視圖中選擇連接方式為S7連接,編譯下載,確保連接的在線狀態。在兩個PLC的程序塊中都需要創建兩個DB模塊,一個輸入,一個輸出。在指令選項下的通信中選擇S7通信下的GET和PUT兩條通信指令。PUT向遠程CPU寫入數據,GET從遠程CPU讀取數據。UDP通訊需要添加通信指令集下開放式用戶通信中的TSEND_C、TRCV_C指令,接著配置TURCV,TUSEND指令。TCP通信是用到開放式用戶通信中的TSEND,TRCY,TCON指令。TCON是建立以太網連接,TDISCON是斷開以太網連接,TSEND是TCP和ISO ON TCP使用的發送數據,TRCV是TCP和ISO ON TCP使用的接收數據,TUSEND是UDP使用的發送數據,TURCV是UDP使用的接收數據,TSEND_C是建立以太網連接并發送數據,TRCV_C建立以太網連接并接收數據。接下來根據設計的需要進行編程,程序將會很繁雜。而與這些通信方式相比,PROFINET IO通信建立連接的方式簡單,無需配置通信指令,更加高效易操作。
結語:隨著技術的進步,PLC間通信的方式也變得多種多樣。在工業實時控制中,延時越小越好。PROFINET直接在數據鏈路層進行封裝,大大提高了通訊的性能,PROFINET IO系統作為PLC間實時通信的一種方式,它操作簡單,容易理解也易上手。PROFINET的靈活性,高效性,高性能,在工業生產中,起到至關重要的作用。提高實時工廠的生產率,需要關注PROFINET技術的發展。