提供一个思路,用两个字节或者字来做状态转换,一个是当前状态,一个是下次状态,在不需要分支的情况下两个字节可以做到256步(0-255);
我思考过实现顺序功能的指令(200/smart200)用专用的S区(步号)
SCR S##.# 步开始,SCRT S##.#步转移,SCRE 步结束;
我对步进指令进行过分析,以下是我个人理解,一家之言
PLC专门用一个区来表示步号,西门子(200/smart200)用S0.0-S31.7共256个步号,应该还有个区用来存储步的激活状态当然这个步状态我们是看不到的;下面说说步进指令的实现方法
SCR S##.#:步开始指令,首先将S##.#步号写入当前活动步寄存器中(当然西门子这个寄存器我们是看不到,三菱的PLC有这个寄存器),然后检测步号S##.#是否为ON,再检测存储的当前步状态,如果两者都为ON的话,则执行SCR ##.#到SCRE之间的程序
SCRT S##.#指令,如果SCRT S##.#的步状态为ON,则将S##.#置ON,同时读取当前活动步号,将这个活动的步号置OFF,如此完成步状态转移
SCRE 步结束指令,表示一个步结束,
三菱的步状态与西门子有点不同,三棱的指令STL S###(S0-S999),每个步进段没有结束指令,在整个步进程序结束时写上RET指令来结束步进状态,转移是用OUT S###或者SET S###