PLC1做服务端设置方法:
在“ 程序块-> OB 1″中调用“MB_SERVER”指令块,然后会生成相应的背景DB块.

|
DISCONNET |
为0代表被动建立与客户端的通信连接;为1代表终止连接。 |
|
MB_HOLD_REG |
指向 Modbus 保持寄存器的指针。 |
|
CONNECT |
指向连接描述结构的指针。TCON_IP_v4(S7-1200) |
|
NDR |
为0代表无数据;为1代表从 Modbus 客户端写入新的数据。 |
|
DR |
为0代表无读取的数据;为1代表从 Modbus 客户端读取的数据 |
|
ERROR |
错误位:0:无错误;1:出现错误,错误缘由查看STATUS。 |
|
STATUS |
指令的详细状态信息 |

1200PLC硬件符号一般为64.
|
InterfaceId |
硬件标识符。(设备组态中查询) |
|
ID |
连接ID,取值范围1~4095 |
|
Connection Type |
连接类型。TCP连接默认为:16#0B |
|
ActiveEstablished |
建立连接。主动为1(客户端),被动为0(服务器)。 |
|
ADDR |
服务器侧的IP地址 |
|
RemotePort |
远程端口号 |
|
LocalPort |
本地端口号 |
注意:MB_HOLD_REG 指定的数据缓冲区可以设为 DB 块或 M 存储区地址。DB 块可以为优化的数据块,也可以为标准的数据块结构。
PLC2做客户端设置方法:
将MB_CLIENT 指令块在“ 程序块 -> OB1 ”中的程序段里调用,调用时会自动生成背景DB

|
REQ |
与服务器之间的通信请求,上升沿有效。 |
|
DISCONNECT |
通过该参数,可以控制与 Modbus TCP服务器建立和终止连接。 0(默认):建立连接;1:断开连接。 |
|
MB_MODE |
选择 Modbus 请求模式(读取、写入或诊断)。0:读;1:写。 |
|
MB_DATA_ADDR |
由“MB_CLIENT”指令所访问数据的起始地址。 |
|
MB_DATA_LEN |
数据长度: 数据访问的位或字的个数。 |
|
MB_DATA_PTR |
指向 Modbus 数据寄存器的指针。 |
|
CONNECT |
指向连接描述结构的指针。TCON_IP_v4(S7-1200) |
|
DONE |
最后一个作业成功完成,立即将输出参数 DONE 置位为“1”。 |
|
BUSY |
作业状态位:0:无正在处理的“MB_CLIENT”作业;1:“MB_CLIENT”作业正在处理。 |
|
ERROR |
错误位:0:无错误;1:出现错误,错误缘由查看STATUS。 |
|
STATUS |
指令的详细状态信息。 |

S7-1200 CPU 作为 Modbus TCP 客户端与 Modbus TCP 服务器通信,当尝试访问比 Modbus TCP 服务器更低端的串行子网中的设备,会有报错 “无法建立连接”。
这种情况下, Modbus TCP 服务器作为 Modbus RTU 协议中的网关,”MB_Unit_ID” 参数相当于 Modbus RTU 协议中的从站地址。
Modbus TCP 客户端直接向 Modbus TCP 服务器发送请求,Modbus TCP 服务器通过识别 “MB_UNIT_ID” 参数,将请求转发到从站设备。

当 S7-1200 做客户端与电脑上的 Modbus TCP 调试软件 Modsim 通信时,会遇到如上“无法建立连接”的问题。
这时,修改调试软件 Modbus Poll 中Device Id 为255,使之等于 MB_Unit_ID 的值,即可建立联系。

注意:生产在线测试时,使用Modbus Poll测试时,注意会影响到其它TCP模块数据。














暂无评论内容