通过执行_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地址生效。
|