[西门子] 1200PLC的MODBUS TCP通信核心重点!!!

[复制链接]
查看50 | 回复0 | 4 天前 | 显示全部楼层 |阅读模式
>

文末有55个实战案例资料

TIA博途软件为S7-1200CPU实现Modbus TCP通信提供了Modbus TCP客户端指令和ModbusTCP服务器指令供用户选择使用。

S7-1200CPU作为Modbus TCP客户端,可通过以太网与Modbus TCP服务器进行通信,通过客户端指令(MB_CLIENT)可实现与服务器之间建立连接,发送Modbus请求,接收响应。

S7-1200CPU作为Modbus TCP服务器时,可通过以太网与Modbus TCP的客户端进行通信,Modbus TCP服务器指令(MB_SERVER)用于处理Modbus TCP客户端的连接请求,接收和处理Modbus请求,并发送Modbus应答报文。

“MB_CLIENT”指令是一个综合性的指令,其内集成了“TCON”“TSEND”“TRCV”“TDICON”OUC通信的指令,因此Modbus TCP建立连接的方式与TCP通信建立连接方式相同。在指令选项卡的通信选项卡中,找到其它文件夹,从里面的“MODBUS TCP”文件夹中可选择通信Modbus TCP指令。

Ø CONNECT管脚地址定义

新建一个DB块,并命名为“Modbus Tcp,在该DB块中新建一个名称为“Connect”数据类型为“TCON_IP_v4”

:必须指定服务器的IP地址和服器器的端口号,可以不指定本地站的端口号

ulnterfaceld:端口硬件标识符

u ActiveEstablished: 1主动连接,0被动连接。

MODBUS TCP客户端指令使用注意事项

Modbus TCP客户端对同一个Modbus TCP服务器进行多次读写操作时,需要多次调用“MB_client”指令,每次调用“MB_client”指令是需要分配相同的背景数据块和相同的连接ID,且同一时刻只能有一个“MB_client”指令被触发。

Modbus TCP客户端需要连接多个ModbusTCP服务器,则需要调用多个“MB_client”指令,每个“MB_client”指令是需要分配不相同的背景数据块和不相同的连接ID,连接ID通过参数CONNECT指定。

Ø MB_Client指令背景数据块说明:

Modbus TCP通信程序设计时,经常会使用到Mb_client指令背景数据块中的两个变量,位于背景数据块的静态变量中

u MB_Unit_ID:表示Modbus TCP信息针的MBPA报头中的单元标识符,该单元标识符相对于串行通信中的从站地址。当S7-1200与作为Modbus RTU协议网关的Modbus TCP服务器通信时,则需要用到该地址。

u Connected:用于指示Modbus TCP的连接状态,设计程序时可通过对该位的判断来实现是否激活指令上的REQ管脚。

MODBUS TCP服务器指令

“MB_SERVER”指令是一个综合性的指令,其内集成了“TCON”“TSEND”“TRCV”“TDICON”OUC通信的指令,因此Modbus TCP建立连接的方式与TCP通信建立连接方式相同。

u NDR:0表示无新数据,1表示从客户端写入了新数据

u DR:0表示无数据读取,1表示有数据被客户端读取

CONNECT管脚地址定义

新建一个DB块,并命名为“Modbus Tcp,在该DB块中新建一个名称为“Connect”数据类型为“TCON_IP_v4”

:Modbus Tcp服务器如果需要连接多个Modbus TCP客户端时,则需要调用多个“MB_SERVER”指令,每个“MB_SERVER”指令需要分配不同的背景数据块和不同的连接ID

u ActiveEstablished:作为服务器使用时该值设置为0

u 无需指定远程设备的IP地址和端口号

u 需要指定本地端口号,默认本地端口为502

近有很多小伙伴说要案例书籍,说是手机上看文章不是很方便,我抽时间把55个实战案例全部整理出来,案例都是比较典型的,其中包括气缸控制程序、报警程序、程序框架、运动控制程序封装、模拟量控制变频器、通信等实战案例。需要的可以加我微信:biao467524527,如果加不上可以私信我。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则