恭喜,你发布的帖子
发布于 2022-07-14 13:14:07
25楼
我好像没理解错啊,这就是类似Smart200的Modbus的MSG指令,上一个的Done触发下一个的En啊。
这就是一个很简单的状态字编程思想而已啊,还远远没达到某标准万泉河的那种想搞PLC OS的高度。
逻辑无非就是当检En测到上升沿,那么VW0=1(当前实例),然后Done=False,这时候其它的实例因为是手拖手所以En永远是False永远不会修改VW0,所以依然还是执行VW=1的当前实例在干活。当前活干完了,VW=0且Done=True。然后下一个实例就会得到En=1,他就成为了当前实例,又是VW=1、Done=false,他后面的实例又是没得到En不会修改VW0.....整个大循环如此不停循环循环循环。
讲真,这逻辑是很简单的啊,你们为啥会想得这么复杂呢?这都还没牵扯到RTOS需要的程序SP指针,没牵扯到编译器的当前行号等这些RTOS层面的东西....
这种做法的优点就是简单直观清晰明了;
缺点是逻辑固定死了不灵活,不能实现像通讯需要写优先。
问题是,当参数是一致的两次调用,完成位如何正确的输出到对应的调用块引脚上?你如果觉得简单,可以试着把这个程序写出来,我目前还没有看到一个人完成。
请填写推广理由:
分享
只看
楼主