日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

10通信端口感叹号_S71200 技术篇——MODBUS TCP通信

發布時間:2024/10/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10通信端口感叹号_S71200 技术篇——MODBUS TCP通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、S7-1200 Modbus TCP 通信指令塊

圖1. Modbus TCP V4.0 版本指令塊

二、S7-1200?Modbus TCP 實驗環境

下面以兩臺S7-1200之間進行 Modbus TCP 通信為例,詳細闡述客戶端與服務器側如何編程及通信的過程。

表1. Modbus TCP?通信雙方的基本配置

CPU類型

IP地址

端口號

硬件標識符

客戶端

CPU 1212C

192.168.0.6

0

64

服務器

CPU 1215C

192.168.0.4

502

64

硬件標識符是在“設備組態”中,雙擊 PROFINET 接口,然后在“屬性”中的“硬件標識符”中查看。

圖2. S7-1200設備的PROFINET接口硬件標識符

三、S7-1200?Modbus TCP 客戶端編程

S7-1200 客戶端側需要調用MB_CLIENT指令塊,該指令塊主要完成客戶機和服務器的TCP連接、發送命令消息、接收響應以及控制服務器斷開的工作任務。

(1)將MB_CLIENT 指令塊在“ 程序塊 -> OB1 ”中的程序段里調用,調用時會自動生成背景DB ,點擊確定即可。

圖3. Modbus TCP 客戶端側指令塊

該功能塊各個引腳定義如下:

表2. MB_CLIENT?各引腳定義說明

REQ

與服務器之間的通信請求,上升沿有效。

DISCONNECT

通過該參數,可以控制與 Modbus TCP服務器建立和終止連接。0(默認):建立連接;1:斷開連接。

MB_MODE

選擇 Modbus 請求模式(讀取、寫入或診斷)。0:讀;1:寫。

MB_DATA_ADDR

由“MB_CLIENT”指令所訪問數據的起始地址。

MB_DATA_LEN

數據長度:數據訪問的位或字的個數。

MB_DATA_PTR

指向 Modbus 數據寄存器的指針。

CONNECT

指向連接描述結構的指針。TCON_IP_v4(S7-1200)

DONE

最后一個作業成功完成,立即將輸出參數 DONE 置位為“1”。

BUSY

作業狀態位:0:無正在處理的“MB_CLIENT”作業;1:“MB_CLIENT”作業正在處理。

ERROR

錯誤位:0:無錯誤;1:出現錯誤,錯誤原因查看STATUS。

STATUS

指令的詳細狀態信息。

(2)CONNECT 引腳的指針類型

第一步,先創建一個新的全局數據塊 DB2:

圖4. 創建全局數據塊

第二步,雙擊打開新生成的DB塊,定義變量名稱為“aa",數據類型為“TCON_IP_v4”(可以將 TCON_IP_v4 拷貝到該對話框中),然后點擊“回車”按鍵。該數據類型結構創建完畢。如圖5所示:

圖5. 創建 MB_CLIENT 中的TCP連接結構的數據類型

各個引腳定義說明如下:

表3. TCON_IP_v4 數據結構的引腳定義

InterfaceId

硬件標識符。

ID

連接ID,取值范圍1~4095

Connection Type

連接類型。TCP連接默認為:16#0B

ActiveEstablished

建立連接。主動為1(客戶端),被動為0(服務器)。

ADDR

服務器側的IP地址

RemotePort

遠程端口號

LocalPort

本地端口號

本文遠程服務器的IP地址為192.168.0.4,遠程端口號設為502。所以客戶端側該數據結構的各項值為:

圖6. MB_CLIENT 側 CONNECT 引腳數據定義

注意:?CONNECT引腳的填寫需要用符號尋址的方式。

(3)創建 MB_DATA_PTR 數據緩沖區

第一步,創建一個全局數據塊 DB3,創建方法可以參考上面的圖3,數據塊的名稱如圖7所示:

圖7. 生成的兩個DB塊名稱

第二步,建議一個數組的數據類型,以便通信中存放數據,請參考圖8所示:

圖8. MB_DATA_PTR 數據緩沖區結構

注意: MB_DATA_PTR指定的數據緩沖區可以為DB塊或M存儲區地址中。DB塊可以為優化的數據塊,也可以為標準的數據塊結構。若為優化的數據塊結構,編程時需要以符號尋址的方式填寫該引腳;若為標準的數據塊結構(可以右鍵單擊DB塊,“屬性”中將“優化的塊訪問”前面的勾去掉,如下圖9所示),需要以絕對地址的方式填寫該引腳。本文以標準的數據塊(默認)為例進行編程。

圖9. 修改 DB 塊屬性為標準的塊結構

(4)客戶端側完成指令塊編程

調用 MB_CLIENT 指令塊,實現從 Modbus TCP 通信服務器中讀取2個保持寄存器的值,如圖10所示:

圖10. MB_CLIENT 指令塊編程

(5)將整個項目下載到S7-1200

待Modbus TCP 服務器側準備就緒,給MB_CLIENT指令塊的REQ引腳一個上升沿,將讀取到的數據放入 MB_DATA_PTR引腳指定的DB 塊中。具體的實驗結果可以查看S7-1200 服務器側編程。

四、S7-1200?Modbus TCP?服務器編程

“MB_SERVER”指令將處理 Modbus TCP 客戶端的連接請求、接收并處理 Modbus 請求并發送響應。

(1)“ 程序塊-> OB 1"中調用“MB_SERVER”指令塊,然后會生成相應的背景DB塊,點擊確定,如圖11所示。

圖11. 調用MB_SERVER指令塊

該功能塊的各個引腳定義如下:

表4. MB_SERVER 各個引腳定義說明

DISCONNET

為0代表被動建立與客戶端的通信連接;為1代表終止連接。

MB_HOLD_REG

指向 Modbus 保持寄存器的指針。

CONNECT

指向連接描述結構的指針。TCON_IP_v4(S7-1200)

NDR

為0代表無數據;為1代表從 Modbus 客戶端寫入新的數據。

DR

為0代表無讀取的數據;為1代表從 Modbus 客戶端讀取的數據

ERROR

錯誤位:0:無錯誤;1:出現錯誤,錯誤原因查看STATUS。

STATUS

指令的詳細狀態信息。

(2)?CONNECT 引腳的指針類型

第一步,先創建一個新的全局數據塊 DB2,如圖12所示:

圖12. 創建全局數據塊

第二步,雙擊打開新生成的 DB2 數據塊,定義變量名稱為“ss",數據類型為“TCON_IP_v4”(可以將 TCON_IP_v4 拷貝到該對話框中),然后點擊“回車”按鍵。該數據類型結構創建完畢。如圖13所示:

圖13. 創建 MB_SERVER 中的 TCP 連接結構的數據類型

各個引腳定義說明如下:

表5. TCON_IP_v4 數據結構的引腳定義

InterfaceId

硬件標識符。(設備組態中查詢)

ID

連接ID,取值范圍1~4095

Connection Type

連接類型。TCP連接默認為:16#0B

ActiveEstablished

建立連接。主動為1(客戶端),被動為0(服務器)。

ADDR

服務器側的IP地址

RemotePort

遠程端口號

LocalPort

本地端口號

客戶端側的IP地址為192.168.0.6,端口號為0,所以 MB_SERVER 服務器側該數據結構的各項值如圖14所示。

圖14. MB_SERVER 服務器側的 CONNECT 數據結構定義

(3)S7-1200 服務器側 MB_SERVER 編程

調用MB_SERVER指令塊,實現被客戶端讀取2個保持寄存器的值,如圖15所示。

圖15. MB_SERVER 服務器側編程

注意:MB_HOLD_REG 指定的數據緩沖區可以設為 DB 塊或 M 存儲區地址。DB 塊可以為優化的數據塊,也可以為標準的數據塊結構。

五、S7-1200?Modbus TCP?通信調試

S7-1200 MODBUS TCP 服務器側準備數據,用于客戶端讀訪問,如圖16所示。

圖16. 服務器側監控表

S7-1200 MODBUS TCP 客戶端側,給 MB_CLIENT 指令塊中 REQ 引腳一個上升沿,監控數據讀取成功。如圖17所示。

圖17. 客戶端側監控表

如果您需要SMART編程軟件以及SMART LINE觸摸屏軟件,或有其他技術問題,可聯系微信號:13840121680(加微信號請備注公司+姓名)

總結

以上是生活随笔為你收集整理的10通信端口感叹号_S71200 技术篇——MODBUS TCP通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。