程序员开发实例大全宝库

网站首页 > 编程文章 正文

1200PLC Modbus TCP 通讯(1200的modbus tcp)

zazugpt 2024-10-16 18:24:48 编程文章 42 ℃ 0 评论

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

指令的详细状态信息


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模块数据。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表