周日,帮电脑瘦身,发现以前做的一纯逻辑的小程序,觉得还有点意思,拿上来贡献余热。系统如下:
一共有1#,2#,3#,4#,4只油缸,每一油缸有伸出和缩回两动作,分别各由一只电磁阀控制,每只油缸各有2限位开关作伸出和缩回到位检测用,当有外部主令信号开始按钮触发时,如果4只缩回到位行程开关都是到位状态,要求按1#,2#,3#,4#的次序依次执行以下动作,
油缸臂伸出——伸出到位——延时10s加料——延时完毕——油缸臂缩回——缩回到位——
^
下一油缸
—————————————————————————————————————-
伸出和缩回动作的同时要输出控制伸出和缩回的电磁阀的线圈,还有共用的一只液压电机和一只溢流阀,但是在延时10s的这段时间内,液压电机不停机,溢流阀要失电进行卸压;液压在程序执行过程中,要求开始按钮的触发不起作用,只有等4#完成后行程开关满足条件,才能再次触发(或者做成触发记忆的形式);停止按钮按下时如果4组动作周期没有执行完也不会停止。原程序是用欧姆龙的CP1E和CP1L系列的PLC做的,由于有间接位寻址功能,所以做起来简约一些,4只油缸臂的动作是完全一样的,只不过动作执行的触发元件和输出元件的地址不同(地址分配没有任何限制),所以就直接做了个功能块(类似子程序),输入和输出的元件采用间接寻址的方式,块内部的时间,考虑到移植性,采用的是内部脉冲+移位指令+比较指令的组合,而没有采用计时器或者内部脉冲+计数器的组合方式。
另外如果我们要方便监控查看8个电磁阀的状态和8只限位行程开关的状态的话,又当如何做?
现在想请大家考虑考虑,用S7-200 PLC怎么实现上述功能。S7_200 PLC没有位寻址的功能,如果不是4只油缸,要是有1000只,我们又应该如何组织和编写我们的程序?
还请大家暢所欲言,各显神通。