在就此主题进行了一些内部讨论后,我正在寻找其他一些意见。对于一个简单的序列,使用一些标准梯形图逻辑,您可以在梯级的开头处使用序列步骤位,并使梯级按顺序向下移动。您可以在梯级的末尾进行转换(通常将要转到的步骤编号移动到整数),它们也可以按顺序排列。当你有一个不能顺序流过的非平凡序列时,就会出现问题。
你是否组织了你的逻辑,所以左边的位(你在哪一步)是有序的,或者你组织它,以便你的右侧移动(你的过渡)是有序的。当您转换到多个步骤时,您是从一个步骤位进行多次移动,还是有多个位触发一次移动?
一个例子:
你在追求什么
in 6 and X go to step 10
in 7 and Y go to step 10
in 21 and Z go to step 10
按您在
中的步骤排序XIC(step.6) and X mov 10
XIC(step.7) and Y mov 10
XIC(step.8)...
...
XIC(step.21)and Z mov 10
按过渡排序
... mov 9
XIC(step.6)and X,XIC(step.7) and Y),XIC(step.21) and Z mov 10
...mov 11
答案 0 :(得分:0)
我强烈建议您将顺序功能图或Grafcet图作为设计工具,然后根据图表实现梯形逻辑。如果查看SFC简单转换,您将坐在STEP中并等待下一个转换条件转到序列中的下一步。
因此,我建议将梯形逻辑实现为您所处的“步骤”,以及任何转换条件逻辑,然后在该转换条件成立时将步长值设置为下一步。
这有什么好处,你可以通过查看步骤编号来查看“状态”你的“程序”,而不是查看步骤编号并确定哪个步骤试图转换为该步骤编号确定序列的状态。
答案 1 :(得分:0)
首先来看看这个:http://en.wikipedia.org/wiki/Sequential_function_chart 切换到该wiki页面的意大利语版本,其中我放置了示例图像和更多解释。
首先在一系列步骤和过渡中形式化您的问题,而不是轻易翻译:
(伪语言只是为了理解逻辑)
If(STEP_0 = true)AND(transition_0 = true) - > RESET STEP_0和SET STEP_1
If(STEP_1 = true)AND(transition_1 = true) - >重置STEP_1并设置STEP_2
依旧......