0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-10-29 17:24 次阅读

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

Modbus TCP是标准的网络通信协议,通过CPU上PN接口进行TCP/IP通信,不需要额外的通信硬件模块,Modbus TCP使用开放式用户通信连接作为Modbus通信路径,所支持的混合客户机和服务器连接数最大为CPU所允许的最大开放式用户通信连接数8个。

软件 STEP7 V11 SP1版本开始,S7-1200CPU 从Firmware V1.0.2开始,不再需要安装Modbus TCP的库文件,可以直接调用Modbus TCP的库指令“MB_CLIENT”和“MB_SERVER”使用实现Modbus TCP通信功能,如图1所示。

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

图1. Modbus TCP的库指令

S7-1200 做 Modbus Tcp Server(服务器)

“MB_SERVER”指令将处理Modbus TCP客户机的连接请求、接收Modbus功能的请求并发送响应。

1.调用MB_SERVER通信指令,进入 “Program blocks” > “OB1” 主程序中调用,设置连接ID、IP端口参数,如下图2所示。

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

图2.调用MB_SERVER通信指令

功能块参数意义如下表5.

管脚 说明
DISCONNECT “MB_SERVER”指令建立与客户机的被动连接:0-建立与指定IP地址和端口号的通讯连接,默认为0;1-断开通讯连接,在终止连接的过程中,不执行任何其他功能;
CONNECT_ID 连接的ID号:每个连接只有一个唯一的ID号;
IP_PORT IP 端口号将定义Modbus 客户机连接请求中要监控的IP端口号,默认值:502;
HB_HOLD_REG 指向“MB_SERVER”指令的Modbus保持寄存器的指针:保持寄存器可以是全局DB块或M区,如果是DB块则需要定义为“标准与S7- 300/400兼容”的类型,如图3所示,保持寄存器包含Modbus客户机可通过Modbus功能 FC03(读取)、FC06(写入)和FC16(读取)访问的值;
NDR 新数据就绪:0-没有新数据;1-从Modbus客户机写入新数据;
DR 数据读取:0-没有读取数据;1-从Modbus客户机读取数据;
ERROR 错误位:0-无错误;1-出现错误,错误原因查看STATUS;
STATUS 错误代码;

表1. 功能块“MB_SERVER”参数

2.MB_DATA_PTR数据块的新建

通过“Program blocks”>“Add new block”,选择“Data block”创建 DB 块,选择“标准与S7- 300/400兼容” ,点击“OK”键,定义数据区为100个字的数组,如图3所示。

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

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

图3.新建MB_DATA_PTR数据块

3.Modbus地址的对应关系

“MB_SERVER”指令允许到达的Modbus功能(FC01、FC02、FC04、FC05、FC15)直接读取和写入访问S7-1200CPU的过程映像输入/输出区(数据类型:BOOL和WORD),通过Modbus功能代码(FC03、FC06和FC16)将到达的Modbus消息写入Modbus保持寄存器或从寄存器中读取(可通过MB_SERVER指令的参数“MB_HOLD_REG”指定保持寄存器),保持寄存器的大小(MB_HOLD_REG参数)必须大于1个字节,详细参考表2.。

Modbus功能 S7-1200
代码 功能 数据区 地址空间 数据区 CPU地址
FC01 读取:位 Output 00001到08192 过程映像输出 Q0.0到Q1023.7
FC02 读取:位 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地址的对应关系

4.客户机端 Modscan32 软件设置

df958f08-7632-11ee-939d-92fbcf53809c.jpg注意:客户机采用Modscan32软件测试,Modscan32 做 Modbus TCP Client 测试软件,是第三方软件,可以从 internet 网络上下载。

将测试电脑的IP地址设置成192.168.0.210,打开Modscan32 软件,在Modscan32的“Setup->Data Definition”中设置功能码、起始地址、长度等,如图4所示。

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

图4.设置“Data Definition”参数

在“Connection->connect...”中打开连接属性对话框,选择“Remote modbus TCP Server”,设置服务器的IP地址,端口号,如图5所示。

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

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

图5.设置连接属性

df958f08-7632-11ee-939d-92fbcf53809c.jpg注意:用Modsscan32做客户机不需要考虑Device ID和服务器一致的情况,服务器自动响应客户机的Device ID。

5.通讯测试

S7-1200作服务器,客户机Modscan32用FC03功能码读取服务器的两个字,设置客户机和服务器的功能、起始地址、端口等参数相对应,具体设置如图5~6所示,

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

图6.S7-1200作服务器

通讯结果如下图7所示,Modscan32从服务器读到数据10,20到客户机的DB4.DBW0和DB4.DBW2区域。

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

图7.FC03通讯结果

用功能FC15向服务器的Q0.0~Q0.7写8位数据,设置连接参数,Modscan32设置结果如下图8所示。

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

图8.使用FC15通讯,设置Modscan32

测试结果,服务器侧直接对应过程映像输出区,00001~00008对应Q0.0~Q0.7,如下图9所示。

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

图9. 使用FC15通讯测试结果

6.HR_Start_Offset背景参数

HR_Start_Offset是类型为字,用于指定Modbus保持寄存器的起始地址,存储在MB_SERVER背景数据块中,默认值是0,可以通过编程将值写入HR_Start_Offset。以上面FC03功能读2个字为例,将HR_Start_Offset的偏移量设置成2,其他参数不修改,HR_Start_Offset偏移前后地址对应关系如下表7,编程调用和结果如图10~11所示。

HR_Start_Offset 地址 数据1 数据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偏移前后地址对应关系

编程调用如下图10所示

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

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

图10.HR_Start_Offset的偏移量设置

通讯结果如下图11所示

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

图11. 通讯结果

7.MB_SERVER参数STATUS的查询参考下面列表4.

STATUS(W#16#) 发送到Modbus客户端的响应代码(B#16#) 错误说明
7001 MB_SERVER 正在等待Modbus客户机连接到指定的TCP端口,仅在第一次执行连接或断开操作时才报告此代码
7002 MB_SERVER 正在等待Modbus客户机连接到指定的TCP端口,等待连接或断开操作完成时,将针对任何后续执行报告此代码
7003 断开操作已成功完成(仅在一个PLC扫描周期内有效)
8187 参数MB_HOLD_REG中的指针无效,数据区过小
818C 参数MB_HOLD_REG指向优化的区域(必须为“标准与S7- 300/400兼容”的DB或M区)或因执行超时出错(55秒)
8381 01 不支持此功能代码
8382 03 数据长度错误
8383 02 数据地址错误或访问了保持寄存器(MB_HOLD_REG参数)地址以外的区域
8384 03 数据值错误
8385 03 不支持此数据诊断代码值(功能FC08)

表4.MB_SERVER参数STATUS


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信协议
    +关注

    关注

    28

    文章

    739

    浏览量

    39749
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1272

    浏览量

    78299
  • S7-1200
    +关注

    关注

    11

    文章

    329

    浏览量

    17223

原文标题:S7-1200集成PN接口MODBUS TCP通信概述

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子PLC s7-1200 1500 modbus-rtu通信实例编程详细指导

    西门子PLC s7-1200 1500 modbus-rtu通信实例编程详细指导
    发表于 11-24 12:23

    西门子PLC s7-1200 1500 modbus-tcp通信实例编程详细指导

    西门子PLC s7-1200 1500 modbus-tcp通信实例编程详细指导
    发表于 11-24 12:24

    LabVIEW通过以太网与S7-1200 PLC通信

    :LabView、S7-1200TCP、PLC、通信1、概述 西门子S7-1200 PLC支持多种协议通过以太网通讯方式,如OPC、
    发表于 07-02 06:30

    S7-1200系统概述

    第一章1.1 S7-1200系统概述(1)PLC 运用领域(2)S7-1200外观(3)西门子系列分类1.2博途软件1.3 S7-1200系列PLC的硬件介绍(1)CPU及扩展模块(2
    发表于 09-02 07:29

    LabVIEW是怎样通过TCPS7-1200 PLC通信

    LabVIEW是怎样通过TCPS7-1200 PLC通信的?如何判断PLC是否正确接收到LabVIEW所发送的数据?
    发表于 09-30 07:34

    西门子S7-1200以太网接口通信功能分享

    。3.S7-1200S7-300/400采用ISO-ON-TCPTCP连接的以太网通信S7-
    发表于 02-24 19:59

    介绍一种组态软件与西门子S7-1200进行无线MODBUS通信的实现方法

      本方案是组态软件与西门子 S7-1200进行无线 MODBUS 通信的实现方法。此方案可以作为西门子 S7-1200与组态软件的无线 MODBU
    发表于 03-09 11:45

    介绍S7-1200 Modbus RTU主站通信组态及编程步骤

      S7-1200 支持Modbus RTU通信模式的模块可作为Modbus RTU主站。以下以 CPU1215C DC/DC/DC和CM1241 RS485模块为例,介绍
    发表于 03-15 16:13

    S7-1200与PROFINET的通信

    S7-1200 CPU 本体上集成了一个PROFINET 通信口,支持以太网和基于TCP/IP 的通信标准。使用这个
    发表于 09-29 18:58 38次下载
    <b class='flag-5'>S7-1200</b>与PROFINET的<b class='flag-5'>通信</b>

    基于集成PN接口Modbus TCP通讯概述

    Modbus数据在TCP/IP以太网上传输,支持Ethernet II和802.3两种帧格式,Modbus TCP数据帧包含报文头、功能代码和数据3部分,MBAP报文头(
    的头像 发表于 03-09 17:55 4696次阅读

    S7-1200 Modbus TCP通信指令块编程教程

    S7-1200 Modbus TCP通信指令块编程教程免费下载。
    发表于 03-28 16:08 10次下载

    MODBUS TCP通信功能的使用概述

    Modbus TCP是标准的网络通信协议,通过CPU上PN接口进行TCP/IP
    的头像 发表于 08-03 11:16 5610次阅读

    西门子S7-1200TCP通信配置过程及数据交换方式

    西门子S7-1200集成以太网接口,通过该接口可以与其它设备进行以太网通信S7-1200的以太
    的头像 发表于 11-16 10:54 1.5w次阅读

    S7-1200 Modbus RTU 从站通信组态及编程步骤

    S7-1200 支持Modbus RTU通信模式的模块可作为Modbus RTU从站。以下以 CPU1215C DC/DC/DC和CM1241 RS485为例,介绍
    发表于 12-07 20:37 7884次阅读

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

    使用 S7-1200 与 S7-300 的集成 DP 接口进行主从通信,这里是将 S7-1200 做为主站,将 S7-300 做为从站,即:
    的头像 发表于 02-06 11:16 3672次阅读