
周平 (1981-)
男,湖北漢川人,學士,工程師,主要從事冶金、水處理行業(yè),自動控制開發(fā)、改造工作。
摘要:本文簡要介紹了Modbus-TCP協(xié)議,工業(yè)以太網On TCP 、On ISO。針對寶鋼長材坯料生產系統(tǒng)優(yōu)化工程水處理項目中遇到的Quantum與S7 PLC間以太網通訊協(xié)議不兼容問題,給出了解決方案,并詳細介紹了配置過程和主要程序。
關鍵詞:以太網;Modbus-TCP;工業(yè)以太網;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
隨著科學技術的發(fā)展,許多工業(yè)廠商開始將傳統(tǒng)的現(xiàn)場總線構架在以太網上,以太網技術正在逐漸從民用、商用應用于工程領域。從目前工業(yè)自動化控制領域的發(fā)展情況來看,以太網技術最終取代現(xiàn)場總線是工業(yè)控制網絡發(fā)展的必然趨勢。西門子和施耐德兩家的PLC在工程項目中經常遇到,西門子S7系列PLC支持On TCP 或On ISO 的以太網通訊,施耐德Quantum 和Premium PLC 支持Modbus TCP 通訊,但是兩個PLC之間通過以太網直接通訊一直未能解決。2008年,在上海金自天正信息技術有限公司從寶鋼承接的長材坯料生產系統(tǒng)優(yōu)化工程水處理項目中,需要應用這個技術,在施耐德公司技術服務的支持、查閱文檔,并不斷嘗試下,終于成功解決。
1 Modbus-TCP簡介
Modbus應用層協(xié)議由美國Modicon公司(現(xiàn)為施耐德電氣旗下品牌)與1979年開發(fā)的,由于其簡單易用,得到了廣大工業(yè)自動化儀器儀表企業(yè)的采納與支持,實際已成為了業(yè)界標準。Modbus 應用層協(xié)議位于ISO/OSI參考模型中的第7層,將它嵌入到不同的底層協(xié)議中形成了三種具體的通信方式:Modbus 串行鏈路、Modbus-Plus 和Modbus-TCP。Modbus-TCP實現(xiàn)了在TCP/IP以太網上以客戶/服務器方式的Modbus報文通信。這種通信模型是將Modbus 協(xié)議作為應用層協(xié)議嵌入到底層TCP/IP中構成的。與標準Modbus幀相比,Modbus-TCP幀中的尋址與校驗交有TCP/IP協(xié)議完成。
2 Industrial Ethernet On TCP or ISO簡介
Industrial Ethernet是西門子通訊系統(tǒng)的新名字,過去叫做SINEC H1網。Industrial Ethernet 包括了所有西門子PLC在以太網上的通訊協(xié)議:其中就有ISO layer4 和TCP/IP通訊。
3 Quantum與S7 PLC系統(tǒng)的通訊實現(xiàn)
3.1 控制系統(tǒng)組成
本系統(tǒng)整個結構為典型以太網星型結構,如圖 1所示。各PLC均為以太網上的獨立節(jié)點,包括多個施耐德Quantum PLC和西門子S7 PLC。其中Quantum PLC位于水處理電氣室,S7 PLC分布在連鑄、LF爐、電爐各電氣室,Quantum PLC作為公輔系統(tǒng)需與另外三套S7 PLC交換數據。
3.2 控制系統(tǒng)數據通信的配置
要實現(xiàn)各個PLC通過以太網進行數據傳輸,必須建立在協(xié)議統(tǒng)一的基礎上。Quantum PLC支持Modbus-TCP協(xié)議,而S7 PLC支持Industrial Ethernet On TCP協(xié)議,這兩個協(xié)議在應用層不同,但是低層協(xié)議是相同的。在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編程實現(xiàn):
(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”時,F(xiàn)B功能塊嘗試與遠程S7CPU建立連接,如果連接成功,Activity 和 Connected為“1”,Error ==0. |
SndRcvBufAddr |
UINT |
確定參數的起始地址,這個地址必須與變量表中定義的SndRcvBuf參數地址一致。 |
Path |
UINT |
指定連接序號。占用IPCOM配置時,對應通道中的某一個連接(共4個通道,每個通道可提供4個TCP連接) |
輸出參數,如表 2所示。
表 2
名稱 |
類型 |
描述 | |
Done |
BOOL |
確認功能塊執(zhí)行成功 | |
FetchedValues |
ANY_ARRAY_BYTE |
從S7 CPU 抓取的數據存放地址 | |
ErrorCode |
UINT |
相關S7通訊協(xié)議故障碼 | |
Error |
BOOL |
功能塊執(zhí)行錯誤 | |
Stat |
UINT |
相關IPCom通訊系統(tǒng)故障狀態(tài) | |
Activity |
BOOL |
IPCom正常執(zhí)行中時為“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”時,F(xiàn)B功能塊嘗試與遠程S7CPU建立連接,如果連接成功,Activity 和 Connected為“1”,Error ==0. |
SndRcvBufAddr |
UINT |
確定參數的起始地址,這個地址必須與變量表中定義的SndRcvBuf參數地址一致。 |
Path |
UINT |
指定連接序號。占用IPCOM配置時,對應通道中的某一個連接(共4個通道,每個通道可提供4個TCP連接) |
輸出參數,如表 4所示。
表 4
名稱 |
類型 |
描述 | |
Done |
BOOL |
確認功能塊執(zhí)行成功 | |
ErrorCode |
UINT |
相關S7通訊協(xié)議故障碼 | |
Error |
BOOL |
功能塊執(zhí)行錯誤 | |
Stat |
UINT |
相關IPCom通訊系統(tǒng)故障狀態(tài) | |
Activity |
BOOL |
IPCom正常執(zhí)行中時為“1” | |
Connected |
BOOL |
TCP 連接建立后,為“1” |
4 結束語
系統(tǒng)投用后,筆者成功地從三臺西門子PLC中讀寫到了數據,且數據響應正常、穩(wěn)定,達到了預期的效果。在統(tǒng)一的通訊協(xié)議下,整個網絡結構層次清晰、維護方便,為網絡的穩(wěn)定運行打下了良好基礎。應該指出的是,這種通訊方式還在起步階段,有些地方不夠成熟,仍需解決,比如:NWM10000通訊模板不支持冗余系統(tǒng)、配置軟件不能向下兼容、硬件升級后沒有相應的配置軟件等,這些問題仍待解決。
其他作者:
陳 偉(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.施耐德電氣.