通过指令“D_ACT_DP”,可根据需要取消激活和激活所组态的 DP 从站/PROFINET IO 设备。另外,还可查询每个指定的 DP 从站或 PROFINET IO 设备当前是启用还是禁用。
如果CPU中组态了未安装或暂不需要使用的 DP 从站/PROFINET IO 设备,则 CPU 将不会按规定时间间隔访问这些 DP 从站/PROFINET IO 设备。在从站禁用后,将停止进一步的 CPU 访问。对于 PROFIBUS DP,采用这种方式可确保 DP 总线循环速度达到最高,从而避免错误事件的发生。
如果使用“D_ACT_DP”禁用一个 DP 从站/PROFINET IO 设备,则其过程输出会置为组态的替代值或 0(安全状态)。分配的 DP 主站/PROFINET IO 控制器不再继续寻址该组件。被禁用的 DP 从站/PROFINET IO 设备不会导致CPU的指示灯显示错误报警。
示例中的软件和硬件环境:
1.CPU1512C-1PN(6ES7 512-1CK00-0AB0),V2.6
2.ET200SP(6ES7 155-6AU00-0BN0),V3.3
3.TIA Portal V15.1
要求:已正确组态的PROFINET IO 网络系统。如图1所示:
图1.PROFINET IO系统
1、调用指令
在用户程序中调用D_ACT_DP指令。如图2所示:
图2.调用指令
D_ACT_DP指令的参数如表1所示:
REQ | BOOL | REQ=1:启用或禁用运行。 |
MODE | USINT | 0:请求寻址组件 启用或禁用的信息 (通过 RET_VAL 参数输出) 1:启用 DP 从站/PROFINET IO 设备 2:禁用 DP 从站/PROFINET IO 设备。 |
LADDR | HW_DEVICE | 从站的硬件标识符。 |
RET_VAL | WORD | 在指令执行过程中如果发生错误,则返回值将包含错误代码。 |
BUSY | BOOL | BUSY=1:作业仍处于激活状态。 BUSY=0:作业已终止。 |
表1.D_ACT_DP指令参数
2、取消激活IO从站
设置输入参数MODE的值为2,置位输入端REQ,执行禁用IO从站命令。如图3所示:
图3.取消激活IO从站
D_ACT_DP指令的输出BUSY由TRUE变为FALSE后,指令执行完成。网络视图中的IO从站 ET200sp的状态变为已禁用。ET200sp与CPU不再进行周期性数据通信。如图4所示:
图4.IO从站已禁用
此时ET200sp的子模块均处于禁用状态。如图5所示:
图5.IO从站模块已禁用
ET200SP从站中的输出模块状态保持为用户硬件组态时的"对CPU STOP模式的相应"设置值。如图6所示:
图6.输出模块设置
3、激活IO从站
设置输入参数MODE的值为1,置位输入端REQ,执行激活IO从站命令。如图7所示:
图7.激活IO从站
D_ACT_DP指令的输出BUSY由TRUE变为FALSE后,指令执行完成。网络视图中IO从站ET200sp恢复与CPU的周期性通信。如图8所示:
图8.IO从站已激活
ET200SP从站子模块由禁用状态恢复为正常工作状态。如图9所示:
图9.IO从站模块已激活
4、查询IO从站当前启用或禁用信息
当D_ACT_DP指令的输入参数MODE的值为0时,可以通过该指令查询IO从站当前的激活/取消激活的信息。此信息通过参数RET_VAL输出。如图所示:
RET_VAL的值为 16#0001时,DP 从站/PROFINET IO 设备处于启用状态。如图10所示:
图10.IO从站处于激活状态
RET_VAL的值为 16#0002时,DP 从站/PROFINET IO 设备处于禁用状态。如图11所示:
图11.IO从站处于禁用状态。
当D_ACT_DP指令的输入参数 MODE=1或MODE=2 时,RET_VAL输出指令运行时的故障代码。
更多信息请参考博途软件中D_ACT_DP的在线帮助。