上菜啦。



下面是旋转平台:


这个状态机有三中写法:
一种是把所有程序写在一个块里,但分别用两个stepNumber,但这样势必导致函数块的功能太多
另一种是把传送带和旋转平台分开写,它们之间的交互用全局变量通信。每个块功能单一,容易维护
第三中写法是基于第二中,转换条件都写在块外,也是很好的办法,但调试的时候会很麻烦,需要内外同时看
这里选择的是第二种。
尤其旋转平台中,一旦产生超时报警,就挂起步进程序,输出错误。等待故障恢复,按alarmReset后,继续上次的步进。另外比起以前的程序,增加了当前步的显示,可以了解到函数块中的步的执行情况。程序调试起来比较麻烦,很多信号要联动,我只是简单调试了一下,但也排除了很多错误。如果用于现场,后果自负。
我觉得尤其是旋转平台的设计,可以做成模版。方便其它步进程序的重用。个人感觉已经很完善了。如有必要可以再加个原位,作为输入管脚,条件写在函数块外,方便调试。
下面是我定义的步号,注意红色的数字:

大家有啥好的建议,在后期可以增加。