这两天碰到一个很奇怪的问题,三条输送线,分别为前中后三条输送线,当中后输送线动作时,前输送线不允许把托盘送到中输送上,当中的托盘送到后输送上且光电感应到,后输送立马停止,但前输送此时会立马把托盘送到中输送上,说来程序也简单,但实际写,碰到的问题是,托盘到达后输送上后,线圈失电,但中输送会开始接前输送的托盘,此时会置位,但此时,一旦中托盘的触发条件失电,置位马上就会复位。
今天简单模拟一下,程序简化如下:
中后输送才有的是线圈,线圈满足条件就触发,到达就复位。
前中两条输送线采用的是置位(由于前输送采用的是流程步写法,所以采用置位写法,保持中输送的启动信号)
因为前中输送的启动和中后输送的停止是同步进行,仿真如下:
中后输送启动,现在是vb_电机启动为true
此时前中输送条件触发,置位vb_电机启动,可以看到vb_电机启动是置位的
此时,我把vb_请求进入成立 信号取消,vb_电机启动 置位信号也跟着取消了,案例来说,置位一般是配合复位来使用,但这里有点奇怪,置位的条件取消,置位也跟着取消了。
trace监控图形如下:
观察波形,增加中间变量,让置位输出和线圈输出控制不同的中间变量,让两者互不影响。
修改后的程序如下:
后面想了想,vb_输送出去成立 条件不成立时,相当于是复位,一直在复位vb_电机启动 ,其他条件虽然在置位,但置位条件一旦取消,vb_电机启动 也复位了。
希望各位老师傅指点一下,为什么会这样。