没事在找答案上看到一个问题
http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=151260&cid=1029
“DB1.DBX0.0到DB1.DBX1.3这12位是互锁的,只允许一位为1,在程序里只要将任何一位置1,其他各位都要清0。现在想要在发生变化时,比如说DB1.DBX0.2=1,现在DB1.DBX0.5=1了,同时DB1.DBX0.2也会清0。想要在状态发生变化的时候给个脉冲,把0move给MD40,请问这在程序里该怎么做啊?”
自己没事编程序试试,没想到找到一个比较简单的方法
就是判断这个字是不是变化了,如果变化了,那就直接用新的数值减去原来的值,这样就能保证是1位了
不过

这样基本就实现了他的要求
然后新的问题来了
如果,应该会有这种如果,一个扫描周期,结果两个点同时变化了怎么办?
用梯形图不好实现了,然后用语句表,由于对语句表指令不熟悉,试了N次才终于编出来
程序如下图:还是MW0相当于输入,MW2是输出

那还有一个问题,比如8台电机的情况,这一台启动了,其他的7台不能启动,要想启动别的,必须启动的停止运行
呃,感觉把自己绕进去了,试着编写了一会儿,都没实现,先休息明天再考虑看看
或许用SCL编写能简单点.....