可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

[西门子PLC]博途编程思路:电机随机启停控制案例


就像图上显示的那样,这设备上一共有 7 台电机。每台电机都对应着一个启动按钮。要是操作人员随便按下几个按钮,然后再按下总启动按钮,就会自动按照顺序一个接一个地启动操作人员之前按下按钮所对应的电机。每台电机启动的时间间隔是 2 秒。只要按下停止按钮,所有电机就会立刻都停下来。



程序设计:

1.在程序段 1 里,主要是判断到底是哪个按钮被按下了。只要按下了对应的按钮,就会把相关的线圈置位。这里总共有 7 个按钮,所以就有 7 个标志位线圈,而且这些标志位线圈用的是数组!




2.程序段 2 用的是加法指令。要是哪一个标志位接通了,数值就加 1 。要是 7 个按钮全都按下了,那 MW12 里的数值就等于 7 。

3.程序段 3 是通过 MOVE 指令来实现记住按钮先后顺序的功能。当 I0.1 被按下的时候,MW12 里的值就等于 1 ,接着把“1”传送给 MW14 寄存器,这时候 MW14 就记住了 MW12 的值。要是再按下 I0.2 按钮,那么 MW12 里的值就会变成 2 ,把数据传送给 MW16 ,也就同样记住了第二次按下按钮的编号,其他的情况也是照这样依次类推!


4.程序段 4 和 5 :当按下 I0.0 这个总启动按钮之后,会把“1”给到 MW30 寄存器里,同时还要判断 MW12 里的值是不是等于 0 。要是不等于 0 ,那就接通总启动标志位。总启动标志位接通以后,再判断 MW30 寄存器里的值,要是等于 1 就启动第一个电机,等于 2 就启动第 2 个电机,就这么依次类推。



5.程序段 6 :当按下停止按钮以后,会把输出点复位,把标志位复位,也会把寄存器里的数据复位。

6.程序段 7 :当总启动标志位接通之后,如果判断出 MW12 中的数据不等于 0 ,而且总启动编号小于等于 7 ,那么每延时 2 秒,就把 MW30 中的变量数据加 1 ,接着根据这个去判断程序段 5 中的数值,然后启动对应的电机。

编程思路拓展:电机随机启停控制案例 PLC论坛-全力打造可编程控制器专业技术论坛 -

编程思路拓展:电机随机启停控制案例

http://bbs.plcjs.com/forum.php?mod=viewthread&tid=505295&fromuid=42656

(出处: PLC论坛-全力打造可编程控制器专业技术论坛)

#非标自动化#

#西门子PLC#

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言