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

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

3天内不再提示

S7-200SMART最新推出的Modbus TCP通信功能

1X4o_GKB1508 来源:未知 作者:李倩 2018-07-05 17:41 次阅读

上次给大家分享了S7-200 SMART的开放以太网通信,虽然可以实现SMART与第三方设备进行以太网通信,但是很多人始终觉得双边的通信程序书写时较为麻烦,能不能实现单边以太网通信呢?其实SMART还支持Modbus TCP通信,结合了TCP通信和Modbus RTU通信的优点,只是编写Modbus TCP通信的库并非软件标配的功能,需要另外购买西门子公司开发的库文件,最多包括8个客户端库和8个服务器库。

1.MB_Client指令库安装

打开STEP 7-Micro/WIN SMART V2.2及以上版本软件,鼠标右键项目树的“库”节点,并从快捷菜单中选择“打开库文件夹”,如图1-1所示。

图1-1打开库文件夹

1)将MB_Client指令库添加到打开的STEP 7-Micro/WINSMART库文件夹中,如图1-2所示。

图1-2添加MB_Client指令库

备注:STEP 7-Micro/WIN SMART库文件夹一般存储路径为C:\Users\Public\Documents\Siemens\STEP7-MicroWIN SMART\Lib可以通过软件修改。

关闭STEP 7-Micro/WIN SMART库文件夹,然后鼠标右键项目树的“库”节点,并从快捷菜单中选择“刷新库”。刷新后,您可以看见“MB_Client”指令库已经被添加到项目树的库节点下,如图1-3所示。。MB_Server服务器库添加方法类似。。

图1-3

2.通信程序编写

有了Modbus TCP通信库后,只需要调用库进行编程,使ModbusTCP通信程序变得非常简单,首先看客户端程序如何编写:

1)建立连接,如图1-4所示:

图1-4建立连接

MBC_Connect指令各个参数定义如下:

·EN使能:必须保证每一扫描周期都被使能。

·Connect:启动TCP 连接建立操作。

·Disconnect: 断开TCP连接操作。

·ConnID: TCP 连接标识。

注意:Modbus TCP 属于TCP通信,也是开放式用户通信中的一种,所以ConnID参数不能与其他TCP、ISO-on-TCP、UDP通信相同。

·IPaddr1~IPaddr4: Modbus TCP 客户端的IP地址,IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。

·RemPort: Modbus TCP 客户端的端口号。

·LocPort:本地设备上端口号。

·ConnectDone:Modbus TCP连接已经成功建立。

·Busy: 连接操作正在进行时。

·Error: 建立或断开连接时,发生错误。

·Status:如果指令置位“Error”输出,Status 输出会显示错误代码。该错误代码为参考开放式用户通信库指令错误代码,具体请参考STEP 7-Micro/WIN SMART在线帮助

注意:每个 MB_Client指令库只能创建一个Mdobus TCP连接,如果一个S7-200SMART需要连接多个Modbus TCP服务器,则需要购买多个名称不同的MB_Client指令库(例如MB_Client_0,MB_Client_1,MB_Client_2,MB_Client_3)

2)读写数据MBC_MSG,如图1-4所示:

图1-4读写数据

MBC_MSG指令各个参数定义如下:

·EN 使能:同一时刻只能有一条MB_Client_MSG指令使能,EN 输入参数必须一直接通直到MB_Client_MSG 指令 Done 位被置 1。

·First读写请求:每一条新的读写请求需要使用信号沿触发。

·RW读写请求:为 0 时,读请求;为 1 时,写请求。开关量输出线圈和保存寄存器支持读请求和写请求,开关量输入触点和模拟量输入通道只支持读请求。

·Addr读写Modbus 服务器的Modbus 地址: 00001 至 0XXXX 为开关量输出线圈;10001 至 1XXXX 为开关量输入触点; 30001 至 3XXXX 为模拟量输入通道; 40001 至 4XXXX 为保持寄存器。

·Count读写数据的个数:对于Modbus 地址 0XXXX、1XXXX ,Count 按位的个数计算;对于 Modbus 地址 3XXXX、4XXXX ,Count 按字的个数计算;一个 MB_Client_MSG 指令最多读取或写入 120 个字或 1920 个位数据。

·DataPtr数据指针:参数 DataPtr 是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器地址。对于读请求,DataPtr应指向用于存储从 Modbus 服务器读取的数据的第一个 CPU存储单元。对于写请求,DataPtr应指向要发送到 Modbus 服务器的数据的第一个 CPU 存储单元。

·Done完成位:读写功能完成或者出现错误时,该位会自动置1。多条 MBC_MSG 指令执行时,可以使用该完成位激活下一条 MBC_MSG 指令的执行。

·Error:错误代码,只有在 Done 位为1时错误代码有效。

如下表1-5所示:

MB_Client错误代码 描述
0 无错误
1 TCP 发送数据错误
2 TCP接收数据错误
3 Modbus 接收响应超时
4 请求参数出错:一个或多个输入参数(“从站”(Slave)、“读写”(RW)、“地址”(Addr) 或“计数”(Count))被设置为非法值。
5 TCP连接未成功建立
6 Modbus 正忙于处理另一请求。
7 Modbus响应出错,接收到的响应与请求不符合。
8 Modbus响应长度校验错误。
101 Modbus 服务器不支持该地址的请求功能。
102 Modbus 服务器不支持数据地址:“地址”(Addr) 加上“计数”(Count) 的请求地址范围超出服务器允许的地址范围。
103 Modbus服务器不支持数据类型:服务器设备不支持“地址”(Addr) 类型。
104 Modbus服务器设备故障

表1-5MB_Client错误代码

3)为MB_Client指令库分配库存储器地址。

MB_Client指令库需要占用 300个字节 V 存储区用于库存储器地址分配。该库存储器分配地址不能与 MBC_MSG 指令参数DataPtr指向的 V 存储器地址重叠,也不能与其它程序使用的地址有重叠,库存储器地址分配过程见图1-5所示。

图1-5为MB_Client分配库存储区

接下来就是服务端程序的编写了:

注意:每个 MB_Server指令库只能创建一个Mdobus TCP连接,如果一个S7-200 SMART 需要连接多个Modbus TCP 客户端,则需要购买多个名称不同的MB_Server指令库(例如MB_Server_0,MB_Server_1,MB_Server_2)

1)建立与客户端连接,如图1-6所示:

图1-6建立与客户端连接

MBS_Connect指令各个参数定义如下:

·EN使能:必须保证每一扫描周期都被使能。

·Connect:启动TCP 连接建立操作。

·Disconnect: 断开TCP连接操作。

·ConnID: TCP 连接标识。

注意:Modbus TCP 属于TCP通信,也是开放式用户通信中的一种,所以ConnID参数不能与其他TCP、ISO-on-TCP、UDP通信相同。

·IPaddr1~IPaddr4: Modbus TCP 客户端的IP地址,IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。如果不指定伙伴 IP ,则可以设置为0.0.0.0 。

·LocPort:本地设备上端口号

MaxHold: 用于设置 Modbus 地址 4xxxx 或 4yyyyy 可访问的 V 存储器中的字保持寄存器数。

· HoldStart:间接地址指针,指向 CPU 中 V 存储器中保持寄存器的起始地址,即40001从哪个地址开始。

· ConnectDone:Modbus TCP连接已经成功建立。

· Busy: 连接操作正在进行时。

· Error: 建立或断开连接时,发生错误。

· Status:如果指令置位“Error”输出,Status 输出会显示错误代码。

MB_Server指令库错误代码如表1-7所示。

表 1-7 MB_Server错误代码

2)收到客户端发来的命令要进行应答,如图1-8所示。

图1-8服务器应答

3)为MB_Server指令库分配库存储器地址。

MB_Server指令库需要占用 300个字节 V 存储区用于库存储器地址分配。该库存储器分配地址不能与 MBS_Connect 指令参数 HoadStart指向的 V 存储器地址重叠,也不能与其它程序使用的地址有重叠,否则可能导致通信故障无法实现通信,库存储器地址分配过程见图1-9所示。

图1-9 为MB_Server库分配存储器

耐心看完本文的小伙伴们,恭喜你已经学会了S7-200SMART最新推出的Modbus TCP通信功能啦,是不是迫不及待的想去测试一下呢?

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

    关注

    40

    文章

    5064

    浏览量

    166162
  • 西门子
    +关注

    关注

    91

    文章

    2843

    浏览量

    113720
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1265

    浏览量

    78259
  • S7-200
    +关注

    关注

    13

    文章

    405

    浏览量

    49555

原文标题:西门子S7-200SMART原来还支持Modbus TCP通信

文章出处:【微信号:GKB1508,微信公众号:工控帮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    025跟我学:S7-200 SMART Modbus RTU通信(3)下载测试#硬声创作季

    MODBUSSMARTS7-200
    或许
    发布于 :2023年06月07日 11:54:49

    LABVIEW能通过以太网和西门子S7-200smart通讯吗?

    LABVIEW能通过以太网和西门子S7-200smart通讯吗?如果能,应该怎么做?
    发表于 09-19 16:44

    多台S7-200Smart之间无线通讯例程

    本帖最后由 一只耳朵怪 于 2018-5-29 15:52 编辑 一、方案基本情况该方案可适用于3台以上西门子PLC,S7-200S7-200Smart之间实现一主多从Modbus通讯协议
    发表于 05-29 15:47

    S7-200SMART开放以太网通信,不知道你就out了

    ?别担心,西门子马上推出S7-200SMART来替代S7-200,在继承了S7-200大部分优点基础上又优化增加了很多新功能
    发表于 11-15 14:18

    labview与S7-200smart的PPI通讯

    S7-200smart plc是否可以使用PPI通讯方式与labview通讯
    发表于 01-06 13:27

    回收西门子s7-200SMART系列

    15580500760王姗姗收购西门子CPU模块DP丛站模块 回收西门子工控自动化产品,主要回收西门子模块,触摸屏,回收s7-200SMART系列CPU标准型模块,经济型模块,扩展模块,数字量模块
    发表于 06-29 11:57

    佛山回收西门子PLC模块 S7-200SMART模块SR60

    欢迎咨询***同步微信,,大量回收西门子S7-200SMART可编程控制器CPU模块、西门子6ES7288-1SR60-0AA0 6ES7288-1SR40-0AA0可编程控制器plc模块
    发表于 08-09 12:51

    西门子s7-200smart modbus-tcp通信实例编程详细指导

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

    S7-200SMARTS7-200的区别是什么

    ,运动自如  S7-200 SMART PLC的CPU模块本体最多集成3路高速脉冲输出,频率高达100KHz,支持PWM/PO输出方式以及多种运动模式,可自由设置运动包络。配以方便易用的向导设置功能
    发表于 12-04 16:21

    IGT-DSER智能网关的网口2连接S7-200Smart

    IGT-DSER智能网关模块有哪些功能?IGT-DSER智能网关的网口2与S7-200Smart是如何进行连接的?
    发表于 09-23 06:27

    西门子plc S7-200smart数字量模块回收 专业回收

    西门子plc S7-200smart数字量模块回收 专业回收,回收热线***同步微信。回收西门子工控自动化产品,主要回收西门子模块,触摸屏,回收s7-200SMART系列,CPU标准型模块,经济型
    发表于 11-16 14:56

    winCC modbus TCP方式与S7-200 SMART PLC通信视频教程免费下载

    本文档的主要内容详细介绍的是winCC modbus TCP方式与S7-200 SMART PLC通信视频教程免费下载。
    发表于 12-07 08:00 101次下载
    winCC <b class='flag-5'>modbus</b> <b class='flag-5'>TCP</b>方式与S7-<b class='flag-5'>200</b> <b class='flag-5'>SMART</b> PLC<b class='flag-5'>通信</b>视频教程免费下载

    组态王软件与S7-200SMART无线MODBUS通信

    本方案是组态软件与西门子 S7-200 Smart 进行无线 MODBUS 通信的实现方法。此方案可以作为西门子 S7-200
    的头像 发表于 04-04 09:46 1038次阅读
    组态王软件与<b class='flag-5'>S7-200SMART</b>无线<b class='flag-5'>MODBUS</b><b class='flag-5'>通信</b>

    西门子S7-200Smart如何转换Modbus

    西门子S7-200Smart Modbus网关
    的头像 发表于 11-03 18:41 2642次阅读
    西门子<b class='flag-5'>S7-200Smart</b>如何转换<b class='flag-5'>Modbus</b>

    西门子S7-1200与S7-200SMART进行PN通信

    S7-200SMART编程软件自V2.4版本、CPU固件也是自2.4版本起起开始支持Profinet通信S7-200SMART即可以做IO控制器,也可以做IO设备。下面的例程以S7-200S
    的头像 发表于 07-10 16:05 3277次阅读
    西门子S7-1200与<b class='flag-5'>S7-200SMART</b>进行PN<b class='flag-5'>通信</b>!