电子元器件
采购信息平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 公众号

    电子元器件

    采购信息平台

  • 移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

如何通过ST语言实现SIMOTION的DP从站地址修改? -解决方案-

来源: 作者:华仔 浏览:253

标签:

摘要:通过执行_setDpSlaveAddress程序可以实现SIMOTION的DP从站地址修改。 实现方法: (1)首先打开HW config 硬件组态,配置接口为DP从站: 图01. 设置DP 接口为从站 (2)配置DP从站通信的IO地址如下图:图02. 配置DP从站通信的IO地址(3)查询DP 诊断地址用于后续编程时填写参数使用:图03. 查询该接口的诊断地址(4)编写如下程序VAR_GLOBAL

通过执行_setDpSlaveAddress程序可以实现SIMOTION的DP从站地址修改。
实现方法:
(1)首先打开HW config 硬件组态,配置接口为DP从站:


图01. 设置DP 接口为从站
(2)配置DP从站通信的IO地址如下图:


图02. 配置DP从站通信的IO地址
(3)查询DP 诊断地址用于后续编程时填写参数使用:


图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地址生效。

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67
Baidu
map