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