【西门子案例】基于S7-1200 PLC的电机编号启动
1. 现有5台电机,进行电机1~5编号需要实现它们的随机间隔启动;
2. 5台电机对于5个选择开关,选择的顺序决定电机启动的顺序;比如先选择开关2,则2号电机最先启动,依次类推;未选择的电机不启动;
3. 按启动开关,电机按之前选择的顺序间隔启动,间隔时间为5秒
4.按下停止按钮,所有电机停止。
1.西门子PLC :S7-1214C DC/DC/DC
2.按钮2个,选择开关5个,控制电机继电器5个
软件:
1.西门子PLC编程软件:TIA 博途V16
03、I/O分配:
输入点 |
注释 |
输出点 |
注释 |
I0.0 |
开始按钮 |
Q0.0 |
1号电机 |
I0.1 |
停止按钮 |
Q0.1 |
2号电机 |
I0.2 |
选择开关1 |
Q0.2 |
3号电机 |
I0.3 |
选择开关2 |
Q0.3 |
4号电机 |
I0.4 |
选择开关3 |
Q0.4 |
5号电机 |
I0.5 |
选择开关4 |
||
I0.6 |
选择开关5 |
为便于后期修改,我们把程序做成一个FB块,并定义形式参数,将来在主程序调用赋值实际I/O点,如图:
并建立了一些中间变量,特别是一些数组变量,来完成程序逻辑,方便做循环控制:
接下来我们开始写程序:
为了方便做循环调用,建立一些数组变量,跟输入的形式参数做简单对应:
然后对所有标志位初始化,特别的是要对定时器做初始化,停止程序同理:
之后做编号程序,用FOR循环和数组简化重复程序量:
继续写电机判断编号动作程序,同样使用FOR循环简化重复程序:
程序后段把用到的数组中间变量对应输出形式参数:
最后程序块在主程序调用,赋值实际I/O点:
程序完成,简洁且实用!
赞 (0)