做了个小程序,有点问题想问
labview吧
全部回复
仅看楼主
level 1
state2里,设置的是大于容量限制500,输出状态3,系统停止,此时,转存液罐不应该停在501吗,咋最终停在了600
2022年04月20日 09点04分 1
level 15
主要问题出在state 2:转液罐超过自身容量后没有立即停止state 2,而是需要手动停止后才会停止state 2,继而停止程序。另,state 2中移位寄存器的初始值应该给出,不应悬空。还有一些其他逻辑上的问题,一并改出,供参考。
2022年04月21日 03点04分 2
当超出容量限制,选择分支进入state3 触发stop信号,这样state1和state2里的for循环不就结束了吗,这时候为啥state2还能继续运行[小乖],这点还是没能理解
2022年04月21日 04点04分
@可芬达乐ლ 你写的state 2中含有一个带有条件端的for循环,由于你没有把该条件接线端和是否超出容量限制判断的结果关联,所以即便达到容量限制,该for循环也不会立即停止,而是需要等到该for循环次数达到(也就是主液罐降至0时),才会结束state 2。
2022年04月21日 04点04分
@Labview_VIP state2里的条件接线端,我连接了stop局部变量,当进入state3,不就触发了stop,进而触发了state2里的条件接线端了吗。是state3要在state2完成后才能运行的原因吗[柯基暗中观察]
2022年04月21日 06点04分
@可芬达乐ლ 比如主液罐是10,转存液罐还差3就超限了,但是按你的程序,必须把10全部倒給转存液罐(此时转存液罐已经过量7)for循环才能停止,for循环停止后才能结束state2,进入state3。state3是在state2结束后才有机会运行,且运行完state3后程序就结束。
2022年04月21日 06点04分
level 1
大佬,感谢感谢[呵呵]
2022年04月21日 04点04分 3
level 15
state 2改为如下则更清晰
2022年04月21日 04点04分 4
1