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

已锁定

rain_why

西门子1847工业学习平台

  • 帖子

    193
  • 精华

    1
  • 被关注

    7

论坛等级:侠士

注册时间:2018-08-30

白金 白金 如何晋级?

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

8279

6

2019-12-23 11:47:47

star star star

分享一个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指令解决这个问题。


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



分享一个DeviceStates指令和D_ACT_DP指令的应用案例 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有8583条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。