【笔记】PLC设备中使用Modbus指令与实际操作步骤
文章目录
1.背景
以PLC作为主站,电脑(摩尔信使软件)作为从站,对Modbus指令进行使用
2.设备环境配置
需要PLC设备、RS485线、电脑端下载摩尔信使软件(可未做Modbus从站)、codesys软件(用来控制PLC并编写程序)
查看RS485线是否与电脑连接成功
1.保证PLC接线正常
2.RS485线 接线,在电脑 设备管理器-端口(COM和LPT)中查看是否有新增端口
电脑识别到新增端口COM6为成功
【注】并非所有识别出来端口均为COM6,设备不同 端口号可能不同,COM4/COM5/COM* 均可能
3.配置程序
1)codesys中配置
- 通过Devcie-添加设备
- 添加 以太网适配器-Ethernet
- 通过步骤2添加的以太网适配器-Ethernet,右键,添加设备,选择ModbusTCP Master
codesys中的程序
【前提】
使用Modbus程序,首先需要进行配置
使用ModbusRTU_Config 功能块,配合ModbusRTU_Master功能,后才可成功运行。
单独的ModbusRTU_Master功能块无法正常使用。
【描述】
PLC作为主站,电脑作为从站
codesys程序中,配置一个数组,用来读取电脑(从站)的数值
PROGRAM PLC_PRG
VAR
i:INT:=1;
Execute_0:BOOL:=FALSE;
Execute_1:BOOL:=FALSE;
port_0:BYTE:=3; //硬件端口号
DataBits_0:BYTE:=8;
StopBits_0: BYTE := 1;
Parity_0: BYTE := 0;
Baudrate_0: UDINT := 9600; //波特率
Done_0: BOOL;
Busy_0: BOOL;
Error_0: BOOL;
ErrorID_0: INT;
Coil_0:ARRAY[0..4] OF WORD;
modbus_master_0 : ModbusRTU_Master;
modbus_Config_0 : ModbusRTU_Config;
END_VAR
modbus_Config_0(
Execute:= Execute_0,
Port:= port_0,
DataBits:= DataBits_0,
StopBits:= StopBits_0,
Parity:= Parity_0,
Baudrate:= Baudrate_0,
Done=> ,
Busy=> ,
Error=> ,
ErrorID=> );
Done_0:=modbus_Config_0.Done;
Busy_0:=modbus_Config_0.Busy;
Error_0:=modbus_Config_0.Error;
ErrorID_0:=modbus_Config_0.ErrorID;
modbus_master_0(
Execute:= Execute_1,
SlaveID:= 1,
Timeout:= 1000,
FunctionCode:= 16#03,
DataAddress:= 0,
DataLength:= 5,
DataPTR:= ADR(Coil_0),
Done=> ,
Busy=> ,
Error=> ,
ErrorID=> );
2)摩尔信使软件配置
电脑下载摩尔信使软件,作为Modbus从站
配置
1.添加设备。通道应该与之前新增设备的通道COM口一致。设备类型选择从机
2.新增数据配置,添加5个保持寄存器。【注:添加几个,程序中的数组就对应几个】
3.添加完成后,点击配置
4.点击右上角的通道信息,查看通道是否连接成功
3)运行codesys程序
执行致为TRUE,主站成功读取从站的数值
改变从站数值(摩尔信使软件),codesys中的数值同步改变
新手笔记,欢迎指出错误之处