<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595
    公司新聞
    S7-1200 Modbus TCP 服務器
    發布時間: 2023-09-01 11:12 更新時間: 2024-12-27 09:10
    S7-1200 Modbus TCP 通信指令塊

    STEP 7 V13 SP1 軟件版本中的Modbus TCP庫指令目前Zui新的版本已升至V4.0,該版本的使用需要具備以下兩個條件:

    1. 軟件版本:STEP 7 V13 SP1及其以上

    2. 固件版本:S7-1200 CPU 的固件版本V4.1及其以上

    圖片

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

    S7-1200 Modbus TCP 實驗環境

    下面以兩臺S7-1200之間進行Modbus TCP 通信為例,詳細闡述客戶端與服務器側如何編程及通信的過程。表格列出了具體的實驗環境:

    操作系統

    WIN7 SP1 專業版 64位

    編程軟件

    STEP 7 Professional V13 SP1 Update 5

    系統硬件

    1.CPU1215C   6ES7215-1AG40-0XB0   V4.1

    2.CPU1212C   6ES7212-1AE40-0XB0   V4.1

    3.CSM1277    6GK7277-1aa10-0aa0

    表1. Modbus TCP 通信的實驗環境


    CPU類型

    IP地址

    端口號

    硬件標識符

    客戶端

    CPU 1212C

    192.168.0.6

    0

    64

    服務器

    CPU 1215C

    192.168.0.4

    502

    64

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

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

    圖片

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

    S7-1200 Modbus TCP 服務器編程

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

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

    圖片

    圖3. 調用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指令的詳細狀態信息。

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

    2. CONNECT 引腳的指針類型

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

    圖片

    圖4. 創建全局數據塊

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

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

    各個引腳定義說明如下:

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

    連接ID,取值范圍1~4095

    Connection Type連接類型。TCP連接默認為:16#0B
    ActiveEstablished建立連接。主動為1(客戶端),被動為0(服務器)。
    ADDR服務器側的IP地址
    RemotePort遠程端口號
    LocalPort本地端口號

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

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

    圖片

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

    3. S7-1200 服務器側 MB_SERVER 編程

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

    圖片

    圖7. MB_SERVER 服務器側編程

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

    S7-1200 MODBUS TCP 通信調試

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

    圖片

    圖8. 服務器側監控表

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

    圖片

    圖9. 客戶端側監控表


    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595