(*********************************【Modbus_Comm_Load参数设置】********************************)
//Modbus_Comm_Load允许组态Modbus_RTU的通讯模块端口
#Modbus_Comm_Load_Instance.REQ := "第一个循环触发" OR #Re_Load_Master;
#Modbus_Comm_Load_Instance(REQ:= #Modbus_Comm_Load_Instance.REQ ,//触发位
"PORT":="Local~CM_PtP_RS422_485_HF_1",//CM 端口值,即“硬件 ID
BAUD:=57600,//波特率
PARITY:=0,//选择奇偶校验
FLOW_CTRL:=0,//选择流控制 默认)无流控制
RTS_ON_DLY:=0,//RTS 接通延迟选择,
RTS_OFF_DLY:=0,//RTS 关断延迟选择
RESP_TO:=1000,//响应超时
DONE=>#Modbus_Comm_Load_Instance.DONE,//完成并且没有错误
ERROR=>#Modbus_Comm_Load_Instance.ERROR,//完成出错
STATUS=>#Modbus_Comm_Load_Instance.STATUS,//完成出错代码
MB_DB:=#Modbus_Master_Instance.MB_DB);
IF #Re_Load_Master = 1 OR "第一个循环触发" THEN
IF #Modbus_Comm_Load_Instance.ERROR = 0 THEN
IF #Modbus_Comm_Load_Instance.DONE = 1 THEN
"流程控制_DB".#基础报警.Alarm_10 := 0;
#Re_Load_Master := 0;
END_IF;
END_IF;
END_IF;
//如果首次参数设置失败则退出MODBUS通讯块。
IF #Re_Load_Master OR "第一个循环触发" OR ("参数设定_DB".穿梭车状态.任务执行中=0 AND "触摸屏使用".维修.维修执行=0)
THEN
#伺服参数写入 := 1;
#伺服参数读取 := 0;
#W_DATA := 0;
#伺服读取无措完成 := 0;
#伺服读取无措完成 := 0;
#伸缩伺服动作开始 := 0;
RETURN;
END_IF;
(**************************************行走伺服参数设定**********************************)
IF "流程控制_DB".穿梭车状态.M_28 = 1 AND "触摸屏使用".维修.维修执行=0 THEN
IF #伺服读取无措完成 = 1 THEN
#伺服参数写入 := 1;
#伺服读取无措完成 := 0;
ELSIF #伺服写入无措完成 = 1 THEN
#伺服参数读取

本文介绍了一种基于Modbus_RTU协议的通讯模块配置方法,并详细阐述了如何通过Modbus通讯进行伺服参数的读写操作。文章覆盖了从初始化Modbus通讯到具体参数的设定过程。
最低0.47元/天 解锁文章
2231

被折叠的 条评论
为什么被折叠?



