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

    文章

    5331

    浏览量

    170662
  • 西门子
    +关注

    关注

    93

    文章

    2986

    浏览量

    115405
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1342

    浏览量

    78901
  • S7-200
    +关注

    关注

    13

    文章

    407

    浏览量

    50265

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    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>方式与<b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b> PLC<b class='flag-5'>通信</b>视频教程免费下载

    S7-200smart 与台达变频器通讯功能及参数程序

    S7-200smart 与台达变频器通讯控制程序
    的头像 发表于 07-27 08:59 2.5w次阅读
    <b class='flag-5'>S7-200smart</b> 与台达变频器通讯<b class='flag-5'>功能</b>及参数程序

    西门子S7-200SMART接入BL102 PLC网关

    ,BL102网关采集西门子S7-200SMART的数据通过 WAN 口连接 4G 路由器 R40,使用 R40 的路由功能将数据上传到各个云平台。 注:WAN 口和 LAN 口都可以采集设备,示例是介绍
    发表于 10-28 17:08 1887次阅读
    西门子<b class='flag-5'>S7-200SMART</b>接入BL102 PLC网关

    PLC网关采集西门子S7-200SMART数据配置流程

    PLC网关采集西门子S7-200SMART数据配置流程
    发表于 11-04 11:37 3961次阅读
    PLC网关采集西门子<b class='flag-5'>S7-200SMART</b>数据配置流程

    西门子S7-200SMART如何接入MQTT云平台

    西门子S7-200SMART如何接入MQTT云平台
    发表于 11-10 16:49 3258次阅读

    S7-200 SMART与调试助手之间TCP通信

    TCP 通信为面向连接的通信,需要双方都调用指令以建立连接及交换数据。S7-200 SMARTS7
    的头像 发表于 03-14 10:08 4911次阅读

    组态王与S7-200SMART PLC以太网通信

    组态王与S7-200SMART PLC以太网通信,对于刚接触者有点难度,不知如何进行配置,如何通信,那么接下来教大家来一步一步来做通信
    的头像 发表于 09-07 16:26 5101次阅读

    西门子s7-200smarts7-1200PLC通信技术

    S7-1200与S7-200SMART S7 通讯的另外一种方法是S7-200SAMRT PLC做客服端,S7-1200做服务器。该方式需要
    发表于 11-17 20:16 7800次阅读

    以西门子S7-200/S7-200SMART/和S7-1200为例对Modbus地址进行说明

    门子S7-200/S7-200SMART/和S7-1200为例来说明: 第一种情况:西门子PLC作Modbus主站,Modbus地址和PLC
    的头像 发表于 03-16 15:16 1.1w次阅读

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

    本方案是组态软件与西门子 S7-200 Smart 进行无线 MODBUS 通信的实现方法。此方案可以作为西门子 S7-200
    的头像 发表于 04-04 09:46 1579次阅读
    组态王软件与<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 3843次阅读
    西门子<b class='flag-5'>S7-200Smart</b>如何转换<b class='flag-5'>Modbus</b>

    如何实现 S7-200smart系列PLC的本地数采及云端数采?

    客户创造更多的价值。S7-200SMARTCPU支持多种通信协议,可与PLC、触摸屏、变频器、伺服驱动器、上位机等连网通信S7-200SMART在工业场景应用广泛
    的头像 发表于 10-12 18:08 1174次阅读
    如何实现 <b class='flag-5'>S7-200smart</b>系列PLC的本地数采及云端数采?

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

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

    PLC西门子S7-200smartS7-1200的区别?

    PLC西门子S7-200smartS7-1200的区别? 西门子S7-200 smartS7-1200是西门子公司
    的头像 发表于 11-17 11:41 9399次阅读