两台PMAC之间使用ModbusTcp做主从通讯

两台PMAC之间使用ModbusTcp做主从通讯

  • 服务端配置
  • 客户端配置
  • 连接服务端
  • 读取线圈
  • 写线圈
  • 读浮点数
  • 写浮点数

服务端配置

服务端IP:192.168.0.201
在这里插入图片描述
在global definitions.pmh文件开启Modbus服务,并设置几个用于线圈测试的变量
在这里插入图片描述
创建一个PLC程序modbus地址的转换请看这篇
两台PMAC之间使用ModbusTcp做主从通讯_第1张图片
Modbus poll软件连接画面
两台PMAC之间使用ModbusTcp做主从通讯_第2张图片

客户端配置

客户端IP:192.168.0.200
在global definitions.pmh文件写配置代码

#define umac1	1
//开启服务
Sys.ModbusServerEnable = 1
//定义端口及超时
Modbus[umac1].Config.ServerPort = 0 // (defaults to Modbus port 502)
Modbus[umac1].Config.ConnectTimeOut = 6000 // 0, defaults to OS timeout, minimum = 5200 msec timeout)
Modbus[umac1].Config.SendRecvTimeOut = 0 // 0, defaults to 6300 msec timeout 5 of 6 Retransmissions)
//设置需要连接的IP
Modbus[umac1].Config.ServerIpAddr[0]=192
Modbus[umac1].Config.ServerIpAddr[1]=168
Modbus[umac1].Config.ServerIpAddr[2]=0
Modbus[umac1].Config.ServerIpAddr[3]=201
//新建一个数组,用来存放读取到的值
global mbarray5(10)

连接服务端

ModbusConnect umac1  //(客户端终端输入)连接服务器

连接成功画面
在这里插入图片描述
在这里插入图片描述
如果未连接成功,使用ModbusLinuxError 1查看原因

读取线圈

读服务端one变量操作
两台PMAC之间使用ModbusTcp做主从通讯_第3张图片

ModbusCoilRead 1, 0,1,mbarray5(0) //客户端终端操作

在这里插入图片描述
读five操作

ModbusCoilRead 1, 24,1,mbarray5(2)

在这里插入图片描述

将服务端的five=1
修改后再读five操作

ModbusCoilRead 1, 24,1,mbarray5(2)

在这里插入图片描述

写线圈

两台PMAC之间使用ModbusTcp做主从通讯_第4张图片

在客户端新建一个变量global mbarray1(2)
并在终端赋值global mbarray1(0)=1
在服务端新建变量global seven
在plc中添加call ReadModbusBit(50,&seven);

客户端终端操作

ModbusCoilWrite 1,49,1,mbarray1(0)

在这里插入图片描述

读浮点数

两台PMAC之间使用ModbusTcp做主从通讯_第5张图片

服务端终端操作:M10=10
客户端终端操作

ModbusFloatRead 1,16405,1,mbarray1(0)

在这里插入图片描述

写浮点数

两台PMAC之间使用ModbusTcp做主从通讯_第6张图片

客户端终端操作

mbarray1(1)=11
ModbusFloatWrite 1,16405,1,mbarray1(1)

在这里插入图片描述

你可能感兴趣的:(两台PMAC之间使用ModbusTcp做主从通讯)