S7-200 SMART Modbus TCP服务器指令

描述

S7-200 SMART Modbus TCP 服务器指令

STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。如图1.Modbus TCP库指令所示。

指令分为客户端和服务器两种,目前指令版本为 V1.0。客户端指令会占用开放式用户通信资源主动连接,最多8个;服务器指令会占用开放式用户通信资源的被动连接资源,最多也是8个。

MODBUS

图1.Modbus TCP库指令

实验环境及通信任务

下面以两台S7-200 SMART 之间进行Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。具体的实验环境见表1.;通信任务见表2:

表1.实验环境

操作系统 WIN7 SP1 专业版 64位
编程软件 STEP7-Micro/WIN SMART V2.4版本
硬件 SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本
ST20:6ES7288-1ST20-0AA0 固件:V2.4版本
交换机:CSM 127 6GK7 277-1AA10-0AA0

表2.通信任务

硬件 通信角色 IP地址 端口号 读/写 数据区域
SR60 客户端 192.168.0.60 0 VB20-VB31
ST20 服务器 192.168.0.20 502 响应 VB0-VB11

服务器侧指令编程

1、系统块中设置服务器的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图2.所示。

MODBUS

图2.系统块设置IP地址

2、鼠标点击 MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 服务器指令 MBUS_SERVER,鼠标双击,指令出现在程序段1中,操作如图3.所示。

MODBUS

图3.添加服务器指令

3、填写服务器指令参数,如图4.所示。

MODBUS

图4.填写服务器参数

参数及类型 数据类型 说明
Connect IN BOOL =1:服务器接受来自客户端的请求;=0:服务器可以断开已经建立的连接
IP_Port IN WORD 服务器本地端口号
MaxIQ IN WORD 对应数字量输入/输出点(对应Modbus 地址参数0xxxx或者1xxxx)
可设置范围:0-256,
=0表示禁用对输入和输出的所有读取和写入。
建议将 MaxIQ 值设置为 256。
MaxAI IN WORD 对应模拟量输入参数(对应Modbus 地址参数 3xxxx)
可设置范围:0-56。
= 0表示禁用对模拟量输入的读取。
要允许访问所有 CPU 模拟量输入,MaxAI 的建议值如下:
对于 CPU CR40 和 CR60,为 0
对于所有其它 CPU 型号,为 56
MaxHold IN WORD 用于 Modbus 地址 4xxxx 或 4yyyyy 的 V 存储器中的字保持寄存器数。
HoldStart IN Dword 指向 V 存储器中保持寄存器起始位置的指针
Done OUT BOOL TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误
FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。
Error OUT BOOL 出现错误,仅一个周期有效

4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图5.所示。

MODBUS

图5.点击库存储器

5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图6.所示。

MODBUS

图6.库存储区地址分配

6、编译项目,下载程序。

通信测试结果

由于客户端要读取服务器的数据,在状态图表中修改当前值,如图7.所示

MODBUS

图7.状态图表赋值

审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分