
周平 (1981-)
男,湖北漢川人,學士,工程師,主要從事冶金、水處理行業,自動控制開發、改造工作。
摘要:本文簡要介紹了Modbus-TCP協議,工業以太網On TCP 、On ISO。針對寶鋼長材坯料生產系統優化工程水處理項目中遇到的Quantum與S7 PLC間以太網通訊協議不兼容問題,給出了解決方案,并詳細介紹了配置過程和主要程序。
關鍵詞:以太網;Modbus-TCP;工業以太網;IPCom;S7Com;Quantum;S7;PLC
Abstract: The article introduces the ModbusTCP protocol, Industrial Ethernet On TCP and On
ISO. Based on the incompatible problem of Ethernet communication protocol between Quantum
and S7 PLCs, we provide a solution to it. The configuration process and main program code
are introduced in detail.
Key words: Ethernet; Modbus-TCP; Industrial Ethernet; IPCom; S7Com; Quantum; S7; PLC
隨著科學技術的發展,許多工業廠商開始將傳統的現場總線構架在以太網上,以太網技術正在逐漸從民用、商用應用于工程領域。從目前工業自動化控制領域的發展情況來看,以太網技術最終取代現場總線是工業控制網絡發展的必然趨勢。西門子和施耐德兩家的PLC在工程項目中經常遇到,西門子S7系列PLC支持On TCP 或On ISO 的以太網通訊,施耐德Quantum 和Premium PLC 支持Modbus TCP 通訊,但是兩個PLC之間通過以太網直接通訊一直未能解決。2008年,在上海金自天正信息技術有限公司從寶鋼承接的長材坯料生產系統優化工程水處理項目中,需要應用這個技術,在施耐德公司技術服務的支持、查閱文檔,并不斷嘗試下,終于成功解決。
1 Modbus-TCP簡介
Modbus應用層協議由美國Modicon公司(現為施耐德電氣旗下品牌)與1979年開發的,由于其簡單易用,得到了廣大工業自動化儀器儀表企業的采納與支持,實際已成為了業界標準。Modbus 應用層協議位于ISO/OSI參考模型中的第7層,將它嵌入到不同的底層協議中形成了三種具體的通信方式:Modbus 串行鏈路、Modbus-Plus 和Modbus-TCP。Modbus-TCP實現了在TCP/IP以太網上以客戶/服務器方式的Modbus報文通信。這種通信模型是將Modbus 協議作為應用層協議嵌入到底層TCP/IP中構成的。與標準Modbus幀相比,Modbus-TCP幀中的尋址與校驗交有TCP/IP協議完成。
2 Industrial Ethernet On TCP or ISO簡介
Industrial Ethernet是西門子通訊系統的新名字,過去叫做SINEC H1網。Industrial Ethernet 包括了所有西門子PLC在以太網上的通訊協議:其中就有ISO layer4 和TCP/IP通訊。
3 Quantum與S7 PLC系統的通訊實現
3.1 控制系統組成
本系統整個結構為典型以太網星型結構,如圖 1所示。各PLC均為以太網上的獨立節點,包括多個施耐德Quantum PLC和西門子S7 PLC。其中Quantum PLC位于水處理電氣室,S7 PLC分布在連鑄、LF爐、電爐各電氣室,Quantum PLC作為公輔系統需與另外三套S7 PLC交換數據。
3.2 控制系統數據通信的配置
要實現各個PLC通過以太網進行數據傳輸,必須建立在協議統一的基礎上。Quantum PLC支持Modbus-TCP協議,而S7 PLC支持Industrial Ethernet On TCP協議,這兩個協議在應用層不同,但是低層協議是相同的。在Quantum PLC 方面,施耐德提供有140NWM10000型模板,該模板支持IPCom服務,可以直接在IP層從以太網其它PLC中獲得數據。西門子S7 PLC方面,只需要提供支持Fetch/Write功能的CP通訊卡,具備該功能的通訊卡,所有對PLC的數據取存都是透明的,不需其他編程工作。配置步驟如下:
(1) 配置140NWM10000模板,設置模板IP地址,如圖 2所示。
(2) 導入IPcom服務,并配置CPU與NWM10000傳輸通道占用的寄存器地址,如圖 3所示 。
注意:每個通道占用80個字,也就是說每個通道可以傳輸80個字,地址設置不要重復。
(3)配置西門子S7 PLC,在HW Manager中配置CP卡,打開Fetch/Write功能,如圖 4所示。
(4) 在Netpro中新建連接,連接對象選擇“Unspecified”,類型選擇“TCP Connection”,如圖 5所示。
(5) 配置完成的連接,如圖 6所示。
3.3 Unity編程實現:
(1) 導入擴展數據類型和擴展功能塊,如圖7所示。
(2) 建立IPCOM_BUF數據類型的變量,如圖8所示。
注意:每個IPCOM_BUF占用80個字的地址空間。
(3) 主要程序代碼,圖9為讀取S7 CPU DB塊中數值的代碼段。
S7FetchDB參數描述:
輸入參數,如表 1 所示。
表 1
名稱 |
類型 |
描述 |
Request_Org01 |
EBOOL |
上升沿時向S7請求讀取數據 |
StartAddr |
UINT |
DB塊起始地址 |
DBNR |
BYTE |
DB塊 |
IP1 .. IP4 |
BYTE |
要讀取的S7 IP地址:IP1.IP2.IP3.IP4. |
Port |
UINT |
S7站點指定的Fetch端口號 |
Connect |
BOOL |
為“1”時,FB功能塊嘗試與遠程S7CPU建立連接,如果連接成功,Activity 和 Connected為“1”,Error ==0. |
SndRcvBufAddr |
UINT |
確定參數的起始地址,這個地址必須與變量表中定義的SndRcvBuf參數地址一致。 |
Path |
UINT |
指定連接序號。占用IPCOM配置時,對應通道中的某一個連接(共4個通道,每個通道可提供4個TCP連接) |
輸出參數,如表 2所示。
表 2
名稱 |
類型 |
描述 | |
Done |
BOOL |
確認功能塊執行成功 | |
FetchedValues |
ANY_ARRAY_BYTE |
從S7 CPU 抓取的數據存放地址 | |
ErrorCode |
UINT |
相關S7通訊協議故障碼 | |
Error |
BOOL |
功能塊執行錯誤 | |
Stat |
UINT |
相關IPCom通訊系統故障狀態 | |
Activity |
BOOL |
IPCom正常執行中時為“1” | |
Connected |
BOOL |
TCP 連接建立后,為“1” |
(4) 主要程序代碼,圖 10為向S7 CPU中寫入數值。
S7WriteDB參數描述:
輸入參數,如表 3所示。
表 3
名稱 |
類型 |
描述 |
Request_Org01 |
EBOOL |
上升沿時向S7請求寫入數據 |
WriteValues |
ANY_ARRAY_BYTE |
向S7寫入的數據 |
StartAddr |
UINT |
DB塊起始地址 |
DBNR |
BYTE |
DB塊 |
IP1 .. IP4 |
BYTE |
要寫入的S7 IP地址:IP1.IP2.IP3.IP4. |
Port |
UINT |
S7站點指定的Write端口號 |
Connect |
BOOL |
為“1”時,FB功能塊嘗試與遠程S7CPU建立連接,如果連接成功,Activity 和 Connected為“1”,Error ==0. |
SndRcvBufAddr |
UINT |
確定參數的起始地址,這個地址必須與變量表中定義的SndRcvBuf參數地址一致。 |
Path |
UINT |
指定連接序號。占用IPCOM配置時,對應通道中的某一個連接(共4個通道,每個通道可提供4個TCP連接) |
輸出參數,如表 4所示。
表 4
名稱 |
類型 |
描述 | |
Done |
BOOL |
確認功能塊執行成功 | |
ErrorCode |
UINT |
相關S7通訊協議故障碼 | |
Error |
BOOL |
功能塊執行錯誤 | |
Stat |
UINT |
相關IPCom通訊系統故障狀態 | |
Activity |
BOOL |
IPCom正常執行中時為“1” | |
Connected |
BOOL |
TCP 連接建立后,為“1” |
4 結束語
系統投用后,筆者成功地從三臺西門子PLC中讀寫到了數據,且數據響應正常、穩定,達到了預期的效果。在統一的通訊協議下,整個網絡結構層次清晰、維護方便,為網絡的穩定運行打下了良好基礎。應該指出的是,這種通訊方式還在起步階段,有些地方不夠成熟,仍需解決,比如:NWM10000通訊模板不支持冗余系統、配置軟件不能向下兼容、硬件升級后沒有相應的配置軟件等,這些問題仍待解決。
其他作者:
陳 偉(1984-),男,江蘇南通人,學士,工程師;
么淑華(1970-),女,河北唐山人,學士,高級工程師。
參考文獻
[1] Modbus通信在PLC通道檢測中的應用[J].電氣時代,2005,6:78---80.
[2] UDP and TCP Communication for Quantum and Premium PLCs running Unity Pro Applications
System User Guide. 施耐德電氣.
[3] Data Exchange to Siemens S7 Controllers Quantum and Premium PLCs with S7Com Library
System User Guide.施耐德電氣.