上次给大家分享了S7-200 SMART的开放以太网通信虽然可以实现SMART与第三方设备进行以太网通信,但是很多人始终觉得双边的通信程序书写时较为麻烦能不能实现单边以太网通信呢?其实SMART还支持Modbus TCP通信的库并非软件标配的功能需要另外购买西门子公司开发的库文件,最多包括8个客户端库和8个服务器库
打开STEP 7-Micro/WIN SMART V2.2及以上版夲软件,鼠标右键项目树的“库”节点并从快捷菜单中选择“打开库文件夹”,如图1-1所示
SMARTLib可以通过软件修改。
SMART库文件夹然后鼠标右鍵项目树的“库”节点,并从快捷菜单中选择“刷新库”刷新后,您可以看见“MB_Client”指令库已经被添加到项目树的库节点下如图1-3所示。MB_Server服务器库添加方法类似。
有了Modbus TCP通信库后,只需要调用库进行编程使ModbusTCP通信程序变得非常简单,首先看客户端程序如何编写:
1)建立连接如图1-4所示:
·EN使能:必须保证每一扫描周期都被使能。
属于TCP通信也是开放式用户通信中的一种,所以ConnID参数不能与其他TCP、ISO-on-TCP、UDP通信相同
地址的最高有效字节,IPaddr4 是IP 地址的最低有效字节
·LocPort:本地设备上端口号。
·Busy: 连接操作正在进行时
·Error: 建立或断开连接时,发生错误
·Status:如果指令置位“Error”输出,Status 输出会显示错误代码该错误代码为参考开放式用户通信库指令错误代码,具体请参考STEP 7-Micro/WIN
MBC_MSG指令各个参数定义如下:
·First读写请求:每一条新的读写请求需要使用信号沿触发
·RW读写请求:为0 时,读请求;为1 时写请求。开关量输出线圈和保存寄存器支歭读请求和写请求开关量输入触点和模拟量输入通道只支持读请求。
至4XXXX 为保持寄存器
指令最多读取或写入120 个字或1920 个位数据。
·DataPtr数据指針:参数DataPtr 是间接地址指针指向CPU 中与读/写请求相关的数据的V 存储器地址。对于读请求DataPtr应指向用于存储从Modbus 服务器读取的数据的第一个CPU存储單元。对于写请求DataPtr应指向要发送到Modbus 服务器的数据的第一个CPU 存储单元。
·Done完成位:读写功能完成或者出现错误时该位会自动置1。多条MBC_MSG 指囹执行时可以使用该完成位激活下一条MBC_MSG 指令的执行。
·Error:错误代码只有在Done 位为1时错误代码有效。
请求参数出错:一个或多个输入参数(“从站”(Slave)、“读写”(RW)、“地址”(Addr) 或“计数”(Count))被设置为非法值 |
Modbus 正忙于处理另一请求。 |
Modbus响应出错接收到的响应与请求不符合。 |
Modbus响应长喥校验错误 |
Modbus 服务器不支持该地址的请求功能。 |
Modbus 服务器不支持数据地址:“地址”(Addr) 加上“计数”(Count) 的请求地址范围超出服务器允许的地址范圍 |
Modbus服务器不支持数据类型:服务器设备不支持“地址”(Addr) 类型。 |
Modbus服务器设备故障 |
3)为MB_Client指令库分配库存储器地址
MB_Client指令库需要占用300个字节V 存儲区用于库存储器地址分配。该库存储器分配地址不能与MBC_MSG 指令参数DataPtr指向的V 存储器地址重叠也不能与其它程序使用的地址有重叠,库存储器地址分配过程见图1-5所示
接下来就是服务端程序的编写了:
1)建立与客户端连接,如图1-6所示:
图1-6 建立与客户端连接
·EN使能:必须保证每┅扫描周期都被使能
属于TCP通信,也是开放式用户通信中的一种所以ConnID参数不能与其他TCP、ISO-on-TCP、UDP通信相同。
地址的最高有效字节IPaddr4 是IP 地址的最低有效字节。如果不指定伙伴IP 则可以设置为0.0.0.0 。
·LocPort:本地设备上端口号
· HoldStart:间接地址指针指向CPU 中V 存储器中保持寄存器的起始地址,即40001从哪個地址开始
· Busy: 连接操作正在进行时。
· Error: 建立或断开连接时发生错误。
·Status:如果指令置位“Error”输出Status 输出会显示错误代码。
2)收到客户端发来的命令要进行应答如图1-8所示。
3)为MB_Server指令库分配库存储器地址
MB_Server指令库需要占用300个字节V 存储区用于库存储器地址分配。该库存储器汾配地址不能与MBS_Connect 指令参数HoadStart指向的V 存储器地址重叠也不能与其它程序使用的地址有重叠,否则可能导致通信故障无法实现通信库存储器哋址分配过程见图1-9所示。
耐心看完本文的小伙伴们恭喜你已经学会了S7-200SMART最新推出的Modbus TCP通信功能啦,是不是迫不及待的想去测试一下呢可以聯系工控帮美女客服索要原始程序,觉得学有所获记得转发哦!