【笔记】PLC设备中使用Modbus指令与实际操作步骤ModbusTCP_Slave指令
文章目录
1.背景
以PLC作为从站,电脑(摩尔信使软件MThings)作为主站,对Modbus指令进行使用
ModbusTCP_Slave
2.设备环境配置
需要PLC设备、RS485线、电脑端下载摩尔信使软件(可未做Modbus从站)、codesys软件(用来控制PLC并编写程序)
查看RS485线是否与电脑连接成功
1.保证PLC接线正常
2.RS485线 接线,在电脑 设备管理器-端口(COM和LPT)中查看是否有新增端口
电脑识别到新增端口COM6为成功
【注】并非所有识别出来端口均为COM6,设备不同 端口号可能不同,COM4/COM5/COM* 均可能
3.配置程序
1)codesys中配置
- 使用ModbusTCP_Slave功能块,就是将PLC作为从站,(当PLC作为从站时,无需添加其他设备)
codesys中的程序
【前提】
使用Modbus程序,首先需要搭配ModbusRTU_Config使用
ModbusRTU_Config 功能块,配合ModbusTCP_Slave功能,后才可成功运行。
单独的ModbusTCP_Slave功能块无法正常使用。
【描述】
PLC作为从站,电脑(摩尔信使)作为主站
codesys程序中,配置一组变量并分配地址(数量自己定),其作用就是当电脑(摩尔信使)作为主站去读取从站数据时,需要配置开始地址
PROGRAM POU4
VAR
Execute_0 : BOOL:=FALSE;
Execute_1 : BOOL:=FALSE;
dis0 AT %QX8.0 :BOOL;
dis1 AT %QX8.1 :BOOL;
dis2 AT %QX8.2 :BOOL;
dis3 AT %QX8.3 :BOOL;
dis4 AT %QX8.4 :BOOL;
dis5 AT %QX8.5 :BOOL;
dis6 AT %QX8.6 :BOOL;
dis7 AT %QX8.7 :BOOL;
modbusrtu_config_0:ModbusRTU_Config;
modbustcp_slave_0: ModbusTCP_Slave;
END_VAR
modbusrtu_config_0(
Execute:= Execute_0,
Port:= 3,
DataBits:= 8,
StopBits:= 1,
Parity:= 2,
Baudrate:= 9600,
Done=> ,
Busy=> ,
Error=> ,
ErrorID=> );
modbustcp_slave_0(
Enable:=Execute_1 ,
Port:=502,
UintID:=1,
Valid=> ,
Error=> ,
ErrorID=> );
2)摩尔信使软件配置
电脑下载摩尔信使软件MThings,作为Modbus主站
摩尔信使中的配置
1.添加设备。通道,设备类型选择NET000或者NET001,模拟主机,起始1,结束1
2.新增数据配置,添加8个线圈状态。
【注:摩尔信使中添加几个,codesys程序中的就对应添加几个变量,相互对应,详情见代码】,同时需要配置线圈的地址,应该与codesys程序中设置的变量地址对应,才可以读取到
例如:
dis0 AT %QX8.0 :BOOL;对应到摩尔信使中的地址应该64
dis1 AT %QX8.1 :BOOL;对应到摩尔信使中的地址应该65
3.添加完成后,点击配置
4.点击右上角的通道信息,配置参数
- TCP客户端是主站
- 本地IP配置电脑的IP(主站IP)
- 目标IP配置PLC的IP(从站IP)
- 目标端口与codesys程序中配置一致502
5.查看是否连接成功
3)运行codesys程序
执行致为TRUE,电脑主站(摩尔信使)成功读取从站(codesys)的数值
改变从站数值(codesys程序中设置的变量数值改为TRUE),主站(摩尔信使)中的数值同步改变
1.确保codesys程序的modbus_Config与ModbusTCP_Slave执行成功未报错
2.摩尔信使点击批量读,循环
3.修改codesys程序中coil的值
4.可以在摩尔信使中同步查看更新
新手笔记,欢迎指出错误之处