西門子S7-200 Smart和歐姆龍CP1H-E實現Modbus TCP以太網通信


 

PLC發燒友 昨天
 

以下文章來源於工控論壇 ,作者關普

工控論壇
工控論壇

中華工控網(www.gkong.com)最新活動信息、工控周刊、每日精華話題發布。工控論壇,自動化從業者的精神家園

↖戳上方 藍字  " PLC發燒友 ” 關注我們哦!

必備軟件和硬件


1、西門子STEP 7-MicroWIN SMART編程軟件

2、歐姆龍CX-Programmer編程軟件

3、Modbus Poll調試軟件

4、Modbus Slave調試軟件

5、以太網調試助手

6、西門子S7-200 Smart系列PLC

7、歐姆龍CP1H-E系列PLC

8、無線路由器

9、網線

 

通信實現目的


1、西門子S7-200 Smart讀取歐姆龍CP1H-E保持寄存器D0~D3並保持到自己的保持寄存器VW0~VW6里,使用Modbus之03功能碼實現;

2、西門子S7-200 Smart使用自己的保持寄存器VW8~VW14控制歐姆龍CP1H-E的保持寄存器D4~D7,使用Modbus之16功能碼實現。

 

通信連接說明


1、西門子S7-200 Smart本體自帶以太網口通過網線連接至無線路由器LAN接口;

2、歐姆龍CP1H-E本體自帶以太網口通過網線連接至無線路由器LAN接口。

 


Modbus TCP服務器通信參數


1、Modbus TCP服務器:歐姆龍CP1H-E

2、Modbus TCP服務器IP地址:192.168.1.160

3、Modbus TPC服務器子網掩碼:255.255.255.0

4、Modbus TCP服務器默認網關:192.168.1.1

5、Modbus TCP服務器端口號:502

 

Modbus TCP客戶端通信參數


1、Modbus TCP客戶端:西門子S7-200 Smart

2、Modbus TCP客戶端IP地址:192.168.1.150

3、Modbus TPC客戶端子網掩碼:255.255.255.0

4、Modbus TCP客戶端默認網關:192.168.1.1

5、Modbus TCP客戶端端口號:502

 

歐姆龍CP1H-E通信參數設置


1、歐姆龍CP1H-E通信參數設置如下所示:

圖片 圖片

2、歐姆龍CP1H-E設備編號和Modbus寄存器編號、地址對應表如下所示:

圖片

 

歐姆龍CP1H-E實現Modbus TCP服務器相關指令


1、Modbus TCP Server功能塊:

圖片

Modbus TCP Server功能塊各個參數定義如下所示:

(1) EN使能:必須保證每一掃描周期都被使能;

(2) LocalPort:端口號,一般默認為502;

(3) StartServer:啟動TCP建立連接操作;

(4) NoActivityDelay:延遲時間;

(5) ENO:使能輸出;

(6) Connected:客戶端連接標志;

(7) IP_Client:客戶端IP;

(8) Error:錯誤標志位;

(9) Error_Code:錯誤代碼;

(10) Except_Counter:異常錯誤計數;

(11) Recv_Counter:接收請求計數。

 

歐姆龍CP1H-E實現Modbus TCP服務器編程


Modbus TCP Server功能塊編制的程序如下所示:

1、初始化時,給保持寄存器D0、D1、D2、D3分別賦值0、1、2、3:

圖片 圖片

2、初始化時,給保持寄存器D4、D5、D6、D7分別賦值0、0、0、0:

圖片 圖片

3、每1分鍾給保持寄存器D0、D1、D2、D3做加1操作:

圖片 圖片

4、判斷保持寄存器D0、D1、D2、D3的值,如果大於6000,則各自進行清零操作:

圖片 圖片

5、初始化置位W0.00,延時2000ms后置位W0.01、復位W0.00

圖片

6、使用W0.01啟動Modbus TCP Server,端口號為502:

圖片

 

使用以太網調試助手測試歐姆龍CP1H-E之Modbus TCP服務器程序


1、Modbus之03功能碼測試,讀取歐姆龍CP1H-E保持寄存器D0~D3的值:

以太網調試助手發送:33 33 00 00 00 06 01 01 00 00 00 04

歐姆龍CP1H-E返回:33 33 00 00 00 0B 01 03 08 00 13 00 14 00 15 00 16

則此時歐姆龍CP1H-E保持寄存器D0、D1、D2、D3的數據依次為16#0013、16#0014、16#0015、16#0016,以太網調試助手測試截圖如下所示:

圖片

2、Modbus之16功能碼測試,將歐姆龍CP1H-E保持寄存器D4~D7依次設置為1、2、3、4

以太網調試助手發送:EE EE 00 00 00 0F 01 10 00 04 00 04 08 00 01 00 02 00 03 00 04

歐姆龍CP1H-E返回:EE EE 00 00 00 06 01 10 00 04 00 04

歐姆龍CP1H-E返回數據表明其保持寄存器D4、D5、D6、D7數據設置成功,以太網調試助手測試截圖如下所示:

圖片

3、測試總結:

以上Modbus之03和10功能碼測試通過,亦表明歐姆龍CP1H-E之Modbus TCP服務器程序正確無誤。此時可以斷開以太網調試助手和歐姆龍CP1H-E的通信連接。

 

西門子S7-200 Smart通信參數設置


西門子S7-200 Smart通信參數設置如下圖所示:

圖片

 

十一

西門子S7-200 Smart實現Modbus TCP客戶端相關指令


1、MBC_Connect指令:

圖片

指令參數說明如下所示:

(1) EN 使能:必須保證每一掃描周期都被使能。

(2) Connect:啟動TCP 連接建立操作;

(3) Disconnect: 斷開TCP連接操作;

(4) ConnID: TCP 連接標識。注意:Modbus TCP 屬於TCP通信,也是開放式用戶通信中的一種,所以ConnID參數不能與其他TCP、ISO-on-TCP、UDP通信相同;

(5) IPaddr1~IPaddr4: Modbus TCP 服務器的IP地址,IPaddr1 是 IP 地址的最高有效字節,IPaddr4 是 IP 地址的最低有效字節;

(6) RemPort: Modbus TCP 服務器的端口號;

(7) LocPort:本地設備(Modbus TCP客戶端)上端口號;

(8) ConnectDone:Modbus TCP連接已經成功建立;

(9) Busy: 連接操作正在進行時;

(10) Error: 建立或斷開連接時,發生錯誤;

(11) Status:如果指令置位 “Error” 輸出,Status 輸出會顯示錯誤代碼。該錯誤代碼為參考開放式用戶通信庫指令錯誤代碼,具體請參考STEP 7-Micro/WIN SMART在線幫助。

 

2、MBC_MSG指令:

圖片

指令參數說明如下所示:

(1) EN 使能:同一時刻只能有一條MB_Client_MSG指令使能,EN 輸入參數必須一直接通直到 MB_Client_MSG 指令 Done 位被置 1;

(2) First 讀寫請求:每一條新的讀寫請求需要使用信號沿觸發;

RW 讀寫請求:為 0 時,讀請求;為 1 時,寫請求。開關量輸出線圈和保存寄存器支持讀請求和寫請求,開關量輸入觸點和模擬量輸入通道只支持讀請求。

(3) Addr 讀寫Modbus 服務器的Modbus 地址:00001 至 0XXXX 為開關量輸出線圈;10001 至 1XXXX  為開關量輸入觸點;30001 至 3XXXX 為模擬量輸入通道;40001 至 4XXXX  為保持寄存器。

(4) Count 讀寫數據的個數:對於 Modbus 地址 0XXXX、1XXXX ,Count 按位的個數計算;對於 Modbus 地址 3XXXX、4XXXX ,Count 按字的個數計算;一個 MB_Client_MSG 指令最多讀取或寫入 120 個字或 1920 個位數據。

(5) DataPtr 數據指針:參數 DataPtr 是間接地址指針,指向 CPU 中與讀/寫請求相關的數據的 V 存儲器地址。對於讀請求,DataPtr 應指向用於存儲從 Modbus 服務器讀取的數據的第一個 CPU 存儲單元。對於寫請求,DataPtr 應指向要發送到 Modbus 服務器的數據的第一個 CPU 存儲單元。

(6) Done 完成位:讀寫功能完成或者出現錯誤時,該位會自動置1。多條 MBC_MSG 指令執行時,可以使用該完成位激活下一條 MBC_MSG 指令的執行。

(7) Error:錯誤代碼,只有在 Done 位為1時錯誤代碼有效。

 

十二

西門子S7-200 Smart實現Modbus TCP客戶端編程


1、 初始化標志位清零,如下圖所示:

圖片

2、初始化給保持寄存器VW0、VW2、VW4、VW6清零,如下圖所示:

圖片

3、初始化時給保持寄存器VW8、VW10、VW12、VW14分別賦值0、1、2、3,如下圖所示:

圖片

4、每一分鍾給保持寄存器VW8、VW10、VW12、VW14做加1操作,如下圖所示:

圖片

5、判斷保持寄存器VW8、VW10、VW12、VW14的值是否大於6000,如果大於6000,則進行清零操作,如下圖所示:

圖片

6、Modbus TCP Client連接成功標志位M0.2上升沿將M1.2置位,開始讀取Modbus TCP Server共計4路保持寄存器,如下圖所示:

圖片

7、Modbus TCP Client連接成功標志位M0.2下降沿復位各讀寫標志位,停止Modbus讀寫操作,如下圖所示:

圖片

8、Modbus TCP Client連接Modbus TCP Server初始化,如下圖所示:

圖片

9、讀取Modbus TCP服務器4路保持寄存器部分程序,功能碼03,M1.2被置位后開始讀取歐姆龍CP1H-E共計4路保持寄存器,成功讀取后將讀取到的4路保持寄存器數據轉存至VW0~VW6里,置位M1.3去執行寫多路保持寄存器程序段,如下圖所示:

圖片 圖片 圖片

10、寫入Modbus TCP服務器4路保持寄存器部分程序,功能碼16, 現將保持寄存器VW8~VW14數據轉存至發送緩沖區里,M1.3被置位后開始執行寫入,成功寫入后即會將西門子S7-200 Smart保持寄存器VW8~VW14的數據寫入到歐姆龍CP1H-E保持寄存器D4~D7里,之后置位M1.2,循環執行讀取保持寄存器命令,如下圖所示:

圖片 圖片 圖片

11、為MB_Client指令庫分配庫存儲器地址:

MB_Client指令庫需要占用 300個字節 V 存儲區用於庫存儲器地址分配。該庫存儲器分配地址不能與 MBC_MSG 指令參數DataPtr指向的 V 存儲器地址重疊,也不能與其它程序使用的地址有重疊,庫存儲器地址分配過程如下圖所示:

圖片

 

十三

西門子S7-200 Smart之Modbus TCP客戶端程序的監視


西門子S7-200 Smart和以太網調試助手建立連接成功后,以太網調試助手即可觀察到來自西門子S7-200 Smart發出的Modbus TCP命令,如下所示:

圖片

 

十四

西門子S7-200 Smart和歐姆龍CP1H-E實現Modbus TCP以太網通信測試


1、使用網線將西門子S7-200 Smart連接至無線路由器LAN口、使用網線將歐姆龍CP1H-E連接至無線路由器LAN口,完成硬件連接;

2、下載歐姆龍CP1H-E之Modbus TCP服務器通信程序;

3、下載西門子S7-200 Smart之Modbus TCP客戶端通信程序;

4、監控歐姆龍CP1H-E程序中W0.01是否置位,Modbus TCP服務器是否初始化完成;

5、監控西門子S7-200 Smart程序,並置位M0.0,建立與歐姆龍CP1H-E的Modbus連接。

6、按照既定要求觀察西門子S7-200 Smart和歐姆龍CP1H-E保持寄存器VW0~VW14、D0~D7,完成Modbus TCP以太網通信。

十五

總結


至此,西門子S7-200 Smart(Modbus TCP客戶端)和歐姆龍CP1H-E(Modbus TCP服務器)完美實現了Modbus TCP以太網通信。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM