海为PLC的PLSR指令,当用绝对定位模式时,如果目标值和当前值相等的时候,启动PLSR指令,就会出现脉冲输出完成标志位为OFF,之后也不会自动为ON的情况,这种现象导致程序无法执行下去,这算是个BUG吗?还是研发人员有意而为?还有海为PLC的编程软件能否像日系或者欧系一样,增加梯形图的自由组合,增加向下插入母线,删除母线等功能,快捷键能够自己定义,目前的编辑模式的确非常不习惯。(建议多借鉴下OMRON,三菱,西门子,施耐德等各大品牌的编程软件操作模式,毕竟它们进入中国市场的时间很早,广大养成了这种习惯)
楼主最近还看过
我认为这个执行是正常的。
1、首先这个SM100是脉冲执行完标志位。比如,上一次执行完脉冲输出
后,SM100为ON,下一次再执行高速输出指令的时候,这个状态位就会被
置为OFF。所以第二次运行这个PLSR指令的时候,SM100就为OFF。
2、“如果目标值和当前值相等的时候”,PLSR指令是不执行的,也就是参数是不对的,楼主此时可以监控下SV97的值,SV97应该是要等于1,SV97=1也就是
这些信息都可以在PLC软件 查看 PLC资源里看到
所以综上所述,PLSR执行了,所以SM100从ON变为OFF,PLSR执行了,因为绝对
定位的时候当前位置=等于设定位置,这个是没有意义的参数,所以指令报错,
也就是参数错误,执行不正确,并且参数错误代码SV97=1.
我
回复内容:
对: 董小姐 我认为这个执行是正常的。1、首先这个SM100是脉冲执... 内容的回复!
其实这种现象我觉得未必非要作为一个错误来处理,产生一个故障信息(我认为不影响系统的运行),你也说了这条运动指令没有意义,只需要后台检测当前位置=目标位置给出完成信号就行了(即SM100为ON)。很多PLC,包括运动控制器这种情况都不认为是一个错误,顶多不输出,然后给出执行完成信号就行。如果海为这么设置,降低了绝对定位的方便程度。比如我某轴在JOG模式下动作之后(也有可能并没有点动),切换为自动模式,程序里边可以直接给一条绝对定位指令让回到我要的位置,至于系统在什么位置,需要怎么执行那是系统内核的事情!如果按照目前这种操作方式,我在调用这条指令之前,我是需要一个条件判断的,假设当前位置=目标位置那么我就需要跳过这条指令(否者会产生错误)。