通过 ST 语言实现 SIMOTION 的 DP 从站地址修改

n

问题:
如何通过 ST 语言实现 SIMOTION 的 DP从站地址修改?

回答:
通过执行_setDpSlaveAddress程序可以实现SIMOTION的DP从站地址修改。n

实现方法:n

(1)首先打开HW config 硬件组态,配置接口为DP从站:nflower n

图01. 设置DP 接口为从站n

(2)配置DP从站通信的IO地址如下图:n

flower
图02. 配置DP从站通信的IO地址

(3)查询DP 诊断地址用于后续编程时填写参数使用:

flower

图03. 查询该接口的诊断地址

(4)编写如下程序

VAR_GLOBAL
locDpSlaveAddress : SINT := 8; // 需要使用的PROFIBUS地址
retDpSlaveAddress : structRetDpSlaveAddress; // 返回值变量
locRetVal : DINT;
neededSetDpAddress : DINT := 0;
startChange :BOOL;
END_VAR
END_INTERFACE
IMPLEMENTATION
PROGRAM bkgChangDPaddress
IF startChange THEN
// 读取当前的DP从站地址
retDpSlaveAddress := _getActiveDpSlaveAddress (
logicalAddressCommunicationAdapter := 16382 // 步骤3查询的接口诊断地址
);
IF (0 = retDpSlaveAddress.functionResult) THEN
// 检查是否需要更新DP地址,如果当前地址与地址locDpSlaveAddress 不相同,则执行更新
IF (retDpSlaveAddress.dpSlaveAddress <> locDpSlaveAddress) THEN
neededSetDpAddress := 1;
ELSE
;
END_IF;
END_IF;
IF (1 = neededSetDpAddress) THEN
// 设置新的DP地址
locRetVal := _setDpSlaveAddress (
logicalAddressCommunicationAdapter := 16382, // 步骤3查询的接口诊断地址
dpSlaveAddress := locDpSlaveAddress
// PROFIBUS address of the local slot
);
IF (0 = locRetVal) THEN
locRetVal := _activateDpSlaveAddress (
logicalAddressCommunicationAdapter := 16382 // 步骤3查询的接口诊断地址
);
ELSE
;
END_IF;
END_IF;
END_IF;

(5)修改startChange为1,程序执行成功会导致SIMOTION重新启动,随后新的DP地址生效。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论