分享一个DeviceStates指令和D - ACT - DP指令的应用案例

发布时间:2020-07-27 09:51:40   来源:文档文库   
字号:

分享一个DeviceStates指令和D_ACT_DP指令的应用案例

背景:我们是一家设备生产商,我们的一台设备需要生产多种产品,每种产品对应一套模具。模具上有很多的传感器和执行机构。当需要生产不同的产品时,就需要更换模具。由于模具非常重,五百多公斤,而且空间也很有限,所以换起来很耗时。所以机械和电气的同事们就着力研究如何缩短这个更换的时间。以上两个指令就是用在了这个过程中。成功的将更换时间从之前的一两个小时,缩短到了现在的三四分钟。当然主要还是因为机械结构的大大优化,电气起到些辅助的作用。

远程站(ET200SP)的组态

为了换的更快,每套模具都安装了对应的ET200SP作为远程站。由于模具点数不用,所以远程站IO组态也不相同,主要还是穷,能省一点是一点,全都配成最大量也就没这些事了。在软件中组态上所有的不同的IO站。

软件中有四种组态,但是实际中只有两个模具能放到设备上,如何确定哪个站存在,就用到了DeviceStates指令。

DeviceStates 读取 IO 系统的模块状态信息

DeviceStates指令的参数说明如下图,我们使用的是DP通讯,所以截图里也都是DP通讯的。

我的DeviceStates指令使用过程中,比较需要注意的是MODE参数。由于我是结合D_ACT_DP(启用禁用IO)使用的,最开始我用模式2(诊断远程站是否故障来判断是否存在)。但是D_ACT_DP指令禁用掉某个站之后,会自动认为这个站不存在故障,所以诊断是否存在就不起作用了。后来改成了模式4(从站是否存在),就适合我的情况了。也是在调试过程中发现的。

对于DP通讯来说,远程站的DP地址是多少,那么这个STATE数组参数就选择多少

确定好是哪个模块在线之后,就可以根据需要各种赋值了。(这块是不是有更好的办法我还不太懂,我觉得软件里组态的远程IO通道都是唯一的,还是得赋值给变量去做运算)。

确定好哪个远程站在线以后,程序已经可以用了,但是不在线的远程站会使CPU报故障,红灯闪烁,这时用D_ACT_DP指令解决这个问题。

MODE1,代表启用,是2,代表禁用。使用IO诊断DeviceStates指令判断是给1还是2

本文来源:https://www.2haoxitong.net/k/doc/ea331b9e83c758f5f61fb7360b4c2e3f5627250b.html

《分享一个DeviceStates指令和D - ACT - DP指令的应用案例.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式