一、西门子S7-200 SMART PLC的MODBUS TCP通讯参数
S7-200 SMART 支持做 Modbus TCP 的客户端或者服务器,可以实现 PLC 之间通信,也可以实现与支持此通信协议的第三方设备通信。通信伙伴数量比较多的时候,可以使用交换机,扩展以太网接口。
V2.4以下版本的SMART需要手动安装MODBUS TCP库,从V2.4开始软件集成了该库。STEP 7-MicroWIN SMART的库
Connect,BOOL,=1:服务器接受来自客户端的请求;=0:服务器可以断开已经建立的连接
IP_Port,WORD,服务器本地端口号
MaxIQ,WORD,对应数字量输入/输出点(对应Modbus 地址参数0xxxx或者1xxxx)
可设置范围:0-256,=0表示禁用对输入和输出的所有读取和写入。建议将 MaxIQ 值设置为 256。
MaxAI,WORD,对应模拟量输入参数(对应Modbus 地址参数 3xxxx)可设置范围:0-56。= 0表示禁用对模拟量输入的读取。要允许访问所有 CPU 模拟量输入,MaxAI 的建议值如下:对于 CPU CR40 和 CR60,为 0,对于所有其它 CPU 型号,为 56
MaxHold,WORD,用于 Modbus 地址 4xxxx 或 4yyyyy 的 V 存储器中的字保持寄存器数。
HoldStart,Dword,指向 V 存储器中保持寄存器起始位置的指针
Done,BOOL,TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收 Modbus 响应;发生错误FALSE:客户端正忙于建立连接或等待来自服务器的 Modbus 响应。
Error,BOOL,出现错误,仅一个周期有效
MBUS_CLIENT客户端,最多调用8个。
程序执行周期每次扫描都必须调用 MBUS_CLIENT,直到 Done 输出为 TRUE。在每个周期中,MBUS_CLIENT 均会退出,以便程序可以继续运行。客户端完成请求时,MBUS_CLIENT 将 Done 设置为 TRUE。
REQ,位,=0无通信请求,=1向服务器请求通信
CONNECT,位,=1:尝试与分配的IP地址及端口号建立连接;=0:尝试断开已经建立的连接,忽略Req的任何请求
IP_OCTET_1-4,字节,要通信的服务器的IP地址
IP_PORT,字,默认值502,服务器的IP端口号
RW,字节,模式选择,=0读,=1写
ADDR,双字,要进行读写的参数的 Modbus 起始地址
COUNT,字,数据长度,数据访问的位数或字数。数字量输入/输出Count=1表示1 bit,最大1920位,对于模拟量输入和保持寄存器,最大 Count 值为 120 字。
DATAPTR,指针,数据寄存器地址指针,指向本地用于读/写操作的数据地址区域的首地址DONE,位,请求已经完成且没有出错后,DONE位保持TRUE一个扫描周期的时间
BUSY,位,=1操作正在进行
ERROR,位,错误,保持为TRUE一个扫描周期的时间
STATUS,字,状态,用于输出错误代码
S7-200 SMART 做 Modbus TCP 通信,可以支持的功能码及功能描述及所占用的地址区,如表4.所示。客户端会主动的发送请求,服务器响应。在通信指令填写参数中没有直接填写功能码,而是通过多个参数填写共同确定功能码的。
表4.功能码概况说明
举例:和Modbus TCP服务器交换数据参数支持功能码:03,在客户端指令中设置两个参数确定03功能码:
RW=0:确定读取数据,(筛选出可能会使用的功能码:01,02,03,04),
Addr:40001-49999/400001-465535,表示交换数据为寄存器类型的数据。
二、200SMART的服务器端设置
1、系统块中设置服务器的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图所示。
2、鼠标点击 MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 服务器指令 MBUS_SERVER,鼠标双击,指令出现在程序段1中,操作如图所示。
4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图所示。
5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图所示。
通信测试结果
由于客户端要读取服务器的数据,在状态图表中修改当前值,如图所示
1、系统块中设置客户端的IP地址。设置方法如图所示。
2、鼠标点击 MAIN 主程序的程序段1的编程区域,从库文件夹下找到 Modbus TCP 客户端指令 MBUS_CLIENT,鼠标双击,指令出现在程序段1中,操作如图3.所示。
4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如下图所示。
5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5000开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如下图所示。
将M0.0置位为1,然后在状态图表中创建变量,VW20-VW30 共6个字,监视值如图7.所示。