0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

S7-1200集成PN接口MODBUS TCP通信概述

機器人及PLC自動化應(yīng)用 ? 來源:機器人及PLC自動化應(yīng)用 ? 2023-10-29 17:24 ? 次閱讀

S7-1200集成PN接口MODBUS TCP通信概述

Modbus TCP是標(biāo)準(zhǔn)的網(wǎng)絡(luò)通信協(xié)議,通過CPU上PN接口進(jìn)行TCP/IP通信,不需要額外的通信硬件模塊,Modbus TCP使用開放式用戶通信連接作為Modbus通信路徑,所支持的混合客戶機和服務(wù)器連接數(shù)最大為CPU所允許的最大開放式用戶通信連接數(shù)8個。

軟件 STEP7 V11 SP1版本開始,S7-1200CPU 從Firmware V1.0.2開始,不再需要安裝Modbus TCP的庫文件,可以直接調(diào)用Modbus TCP的庫指令“MB_CLIENT”和“MB_SERVER”使用實現(xiàn)Modbus TCP通信功能,如圖1所示。

df520ddc-7632-11ee-939d-92fbcf53809c.jpg

圖1. Modbus TCP的庫指令

S7-1200 做 Modbus Tcp Server(服務(wù)器)

“MB_SERVER”指令將處理Modbus TCP客戶機的連接請求、接收Modbus功能的請求并發(fā)送響應(yīng)。

1.調(diào)用MB_SERVER通信指令,進(jìn)入 “Program blocks” > “OB1” 主程序中調(diào)用,設(shè)置連接ID、IP端口參數(shù),如下圖2所示。

df60663e-7632-11ee-939d-92fbcf53809c.jpg

圖2.調(diào)用MB_SERVER通信指令

功能塊參數(shù)意義如下表5.

管腳 說明
DISCONNECT “MB_SERVER”指令建立與客戶機的被動連接:0-建立與指定IP地址和端口號的通訊連接,默認(rèn)為0;1-斷開通訊連接,在終止連接的過程中,不執(zhí)行任何其他功能;
CONNECT_ID 連接的ID號:每個連接只有一個唯一的ID號;
IP_PORT IP 端口號將定義Modbus 客戶機連接請求中要監(jiān)控的IP端口號,默認(rèn)值:502;
HB_HOLD_REG 指向“MB_SERVER”指令的Modbus保持寄存器的指針:保持寄存器可以是全局DB塊或M區(qū),如果是DB塊則需要定義為“標(biāo)準(zhǔn)與S7- 300/400兼容”的類型,如圖3所示,保持寄存器包含Modbus客戶機可通過Modbus功能 FC03(讀取)、FC06(寫入)和FC16(讀?。┰L問的值;
NDR 新數(shù)據(jù)就緒:0-沒有新數(shù)據(jù);1-從Modbus客戶機寫入新數(shù)據(jù);
DR 數(shù)據(jù)讀?。?-沒有讀取數(shù)據(jù);1-從Modbus客戶機讀取數(shù)據(jù);
ERROR 錯誤位:0-無錯誤;1-出現(xiàn)錯誤,錯誤原因查看STATUS;
STATUS 錯誤代碼;

表1. 功能塊“MB_SERVER”參數(shù)

2.MB_DATA_PTR數(shù)據(jù)塊的新建

通過“Program blocks”>“Add new block”,選擇“Data block”創(chuàng)建 DB 塊,選擇“標(biāo)準(zhǔn)與S7- 300/400兼容” ,點擊“OK”鍵,定義數(shù)據(jù)區(qū)為100個字的數(shù)組,如圖3所示。

df740fd6-7632-11ee-939d-92fbcf53809c.jpg

df88273c-7632-11ee-939d-92fbcf53809c.jpg

圖3.新建MB_DATA_PTR數(shù)據(jù)塊

3.Modbus地址的對應(yīng)關(guān)系

“MB_SERVER”指令允許到達(dá)的Modbus功能(FC01、FC02、FC04、FC05、FC15)直接讀取和寫入訪問S7-1200CPU的過程映像輸入/輸出區(qū)(數(shù)據(jù)類型:BOOL和WORD),通過Modbus功能代碼(FC03、FC06和FC16)將到達(dá)的Modbus消息寫入Modbus保持寄存器或從寄存器中讀?。赏ㄟ^MB_SERVER指令的參數(shù)“MB_HOLD_REG”指定保持寄存器),保持寄存器的大小(MB_HOLD_REG參數(shù))必須大于1個字節(jié),詳細(xì)參考表2.。

Modbus功能 S7-1200
代碼 功能 數(shù)據(jù)區(qū) 地址空間 數(shù)據(jù)區(qū) CPU地址
FC01 讀?。何?/td> Output 00001到08192 過程映像輸出 Q0.0到Q1023.7
FC02 讀?。何?/td> Input 10001到18192 過程映像輸入 I0.0到I1023.7
FC04 讀取:字 Input 30001到30512 過程映像輸入 IW0到IW1022
FC05 寫入:位 Output 00001到08192 過程映像輸出 Q0.0到Q1023.7
FC15 寫多入:位 Output 00001到08192 過程映像輸出 Q0.0到Q1023.7

表2.Modbus地址的對應(yīng)關(guān)系

4.客戶機端 Modscan32 軟件設(shè)置

df958f08-7632-11ee-939d-92fbcf53809c.jpg注意:客戶機采用Modscan32軟件測試,Modscan32 做 Modbus TCP Client 測試軟件,是第三方軟件,可以從 internet 網(wǎng)絡(luò)上下載。

將測試電腦的IP地址設(shè)置成192.168.0.210,打開Modscan32 軟件,在Modscan32的“Setup->Data Definition”中設(shè)置功能碼、起始地址、長度等,如圖4所示。

dfa65fae-7632-11ee-939d-92fbcf53809c.jpg

圖4.設(shè)置“Data Definition”參數(shù)

在“Connection->connect...”中打開連接屬性對話框,選擇“Remote modbus TCP Server”,設(shè)置服務(wù)器的IP地址,端口號,如圖5所示。

dfb6fcec-7632-11ee-939d-92fbcf53809c.jpg

dfc3b306-7632-11ee-939d-92fbcf53809c.jpg

圖5.設(shè)置連接屬性

df958f08-7632-11ee-939d-92fbcf53809c.jpg注意:用Modsscan32做客戶機不需要考慮Device ID和服務(wù)器一致的情況,服務(wù)器自動響應(yīng)客戶機的Device ID。

5.通訊測試

S7-1200作服務(wù)器,客戶機Modscan32用FC03功能碼讀取服務(wù)器的兩個字,設(shè)置客戶機和服務(wù)器的功能、起始地址、端口等參數(shù)相對應(yīng),具體設(shè)置如圖5~6所示,

dfd87002-7632-11ee-939d-92fbcf53809c.jpg

圖6.S7-1200作服務(wù)器

通訊結(jié)果如下圖7所示,Modscan32從服務(wù)器讀到數(shù)據(jù)10,20到客戶機的DB4.DBW0和DB4.DBW2區(qū)域。

dfe89914-7632-11ee-939d-92fbcf53809c.jpg

圖7.FC03通訊結(jié)果

用功能FC15向服務(wù)器的Q0.0~Q0.7寫8位數(shù)據(jù),設(shè)置連接參數(shù),Modscan32設(shè)置結(jié)果如下圖8所示。

dffe4dae-7632-11ee-939d-92fbcf53809c.jpg

圖8.使用FC15通訊,設(shè)置Modscan32

測試結(jié)果,服務(wù)器側(cè)直接對應(yīng)過程映像輸出區(qū),00001~00008對應(yīng)Q0.0~Q0.7,如下圖9所示。

e011b736-7632-11ee-939d-92fbcf53809c.jpg

圖9. 使用FC15通訊測試結(jié)果

6.HR_Start_Offset背景參數(shù)

HR_Start_Offset是類型為字,用于指定Modbus保持寄存器的起始地址,存儲在MB_SERVER背景數(shù)據(jù)塊中,默認(rèn)值是0,可以通過編程將值寫入HR_Start_Offset。以上面FC03功能讀2個字為例,將HR_Start_Offset的偏移量設(shè)置成2,其他參數(shù)不修改,HR_Start_Offset偏移前后地址對應(yīng)關(guān)系如下表7,編程調(diào)用和結(jié)果如圖10~11所示。

HR_Start_Offset 地址 數(shù)據(jù)1 數(shù)據(jù)2
0 Modbus 地址(字) 40001 40002
S7-1200地址 DB4.DBW0 DB4.DBW2
2 Modbus 地址(字) 40003 40004
S7-1200地址 DB4.DBW0 DB4.DBW2

表3. HR_Start_Offset偏移前后地址對應(yīng)關(guān)系

編程調(diào)用如下圖10所示

e0208fe0-7632-11ee-939d-92fbcf53809c.jpg

e030e106-7632-11ee-939d-92fbcf53809c.jpg

圖10.HR_Start_Offset的偏移量設(shè)置

通訊結(jié)果如下圖11所示

e04286e0-7632-11ee-939d-92fbcf53809c.jpg

圖11. 通訊結(jié)果

7.MB_SERVER參數(shù)STATUS的查詢參考下面列表4.

STATUS(W#16#) 發(fā)送到Modbus客戶端的響應(yīng)代碼(B#16#) 錯誤說明
7001 MB_SERVER 正在等待Modbus客戶機連接到指定的TCP端口,僅在第一次執(zhí)行連接或斷開操作時才報告此代碼
7002 MB_SERVER 正在等待Modbus客戶機連接到指定的TCP端口,等待連接或斷開操作完成時,將針對任何后續(xù)執(zhí)行報告此代碼
7003 斷開操作已成功完成(僅在一個PLC掃描周期內(nèi)有效)
8187 參數(shù)MB_HOLD_REG中的指針無效,數(shù)據(jù)區(qū)過小
818C 參數(shù)MB_HOLD_REG指向優(yōu)化的區(qū)域(必須為“標(biāo)準(zhǔn)與S7- 300/400兼容”的DB或M區(qū))或因執(zhí)行超時出錯(55秒)
8381 01 不支持此功能代碼
8382 03 數(shù)據(jù)長度錯誤
8383 02 數(shù)據(jù)地址錯誤或訪問了保持寄存器(MB_HOLD_REG參數(shù))地址以外的區(qū)域
8384 03 數(shù)據(jù)值錯誤
8385 03 不支持此數(shù)據(jù)診斷代碼值(功能FC08)

表4.MB_SERVER參數(shù)STATUS


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    840

    瀏覽量

    40215
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1347

    瀏覽量

    78933
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    331

    瀏覽量

    17875

原文標(biāo)題:S7-1200集成PN接口MODBUS TCP通信概述

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    西門子PLC s7-1200 1500 modbus-tcp通信實例編程詳細(xì)指導(dǎo)

    西門子PLC s7-1200 1500 modbus-tcp通信實例編程詳細(xì)指導(dǎo)
    發(fā)表于 11-24 12:24

    LabVIEW通過以太網(wǎng)與S7-1200 PLC通信

    :LabView、S7-1200、TCP、PLC、通信1、概述 西門子S7-1200 PLC支持多種協(xié)議通過以太網(wǎng)通訊方式,如OPC、
    發(fā)表于 07-02 06:30

    WinCC V7.2與S7-1200的PLC通訊

    自WinCC V7.2版本起,軟件新增加了 SIMATIC S7-1200, S7-1500 Channel通道,用于WinCC與 S7-1200/S7-1500 PLC之間的
    發(fā)表于 09-26 19:06 ?11次下載
    WinCC V7.2與<b class='flag-5'>S7-1200</b>的PLC通訊

    S7-1200與PROFINET的通信

    S7-1200 CPU 本體上集成了一個PROFINET 通信口,支持以太網(wǎng)和基于TCP/IP 的通信標(biāo)準(zhǔn)。使用這個
    發(fā)表于 09-29 18:58 ?38次下載
    <b class='flag-5'>S7-1200</b>與PROFINET的<b class='flag-5'>通信</b>

    基于S7-300400 CPU集成PN接口Modbus TCP在TIA Portal的使用入門教程

    基于S7-300400 CPU集成PN接口Modbus TCP在TIA Portal的使用入門
    的頭像 發(fā)表于 12-03 16:42 ?4194次閱讀

    S7-1200 Modbus TCP通信指令塊編程教程

    S7-1200 Modbus TCP通信指令塊編程教程免費下載。
    發(fā)表于 03-28 16:08 ?10次下載

    S7-1200S7-300 PN口之間的以太網(wǎng)通信方法

    S7-1200S7-300 PN 口之間的以太網(wǎng)通信可以通過 UDP 協(xié)議來實現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用
    的頭像 發(fā)表于 04-11 09:44 ?6919次閱讀

    S7-1200S7-300 PN/S7-400 PN UDP STEP7通信

    S7-1200S7-300 PN 口之間的以太網(wǎng)通信可以通過 UDP 協(xié)議來實現(xiàn),使用的通信指令是在雙方 CPU 調(diào)用
    的頭像 發(fā)表于 04-11 10:15 ?4475次閱讀

    TCP通信通過網(wǎng)絡(luò)調(diào)試助手與S7-1200建立TCP連接

    S7-1200 V4.5 版本開始支持網(wǎng)絡(luò)視圖組態(tài)開放式用戶通信連接,不需要在程序中調(diào)用 TCON 等建立連接指令,只需要調(diào)用發(fā)送接收指令即可實現(xiàn)數(shù)據(jù)的收發(fā)。下面以 TCP 通信為例,
    的頭像 發(fā)表于 07-06 15:39 ?1.1w次閱讀

    西門子S7-1200TCP通信配置過程及數(shù)據(jù)交換方式

    西門子S7-1200集成以太網(wǎng)接口,通過該接口可以與其它設(shè)備進(jìn)行以太網(wǎng)通信。S7-1200的以太
    的頭像 發(fā)表于 11-16 10:54 ?1.7w次閱讀

    S7-1200 Modbus RTU 從站通信組態(tài)及編程步驟

    S7-1200 支持Modbus RTU通信模式的模塊可作為Modbus RTU從站。以下以 CPU1215C DC/DC/DC和CM1241 RS485為例,介紹
    發(fā)表于 12-07 20:37 ?1.2w次閱讀

    WinCC與 S7-1200/S7-1500 PLC之間的通信解析

    自WinCC V7.2版本起,軟件新增加了 "SIMATIC S7-1200, S7-1500 Channel"通道,用于WinCC與 S7-1200/S7-1500 PLC之間的
    發(fā)表于 02-06 09:39 ?7822次閱讀

    S7-1200S7-300集成DP口的主從通信1200做主站,300做從站)

    使用 S7-1200S7-300 的集成 DP 接口進(jìn)行主從通信,這里是將 S7-1200
    的頭像 發(fā)表于 02-06 11:16 ?4740次閱讀

    S7-300/400集成PNMODBUS TCP通訊(TIA)

    下面以S7-300單站系統(tǒng)及Modbus Slave軟件為例,詳細(xì)介紹如何將S7-300單站系統(tǒng)CPU的集成PN口配置為Client,
    的頭像 發(fā)表于 03-08 11:24 ?6944次閱讀

    S7-1200 CPU與S7-200 SMART S7通信指南

    S7-1200 CPU 固件版本 V2.0 及其以上,本體集成的 PROFINET 通信接口可以做 S7
    的頭像 發(fā)表于 04-19 15:14 ?3028次閱讀