文章目录
前言
本文是基于B站上的《SCL核心应用课项目实战》课程,所做的笔记,主要包括程序代码和自己的理解注释。课程链接:SCL核心应用课项目实战(21课全)
陆杰锋老师讲得非常好,有理论讲解也有实战演练,需要具备一定的梯形图编程基础。
有空我会持续更新。
七、电机启停及模式转换程序设计
面向对象的程序设计。
功能要求:
A.一键启停模式:按一下启动,再按一下停止;
B.运行模式:按住启动按钮,延迟时间到了之后设备启动;按下停止按钮,设备停止;
C.模式切换后立即停机;
D.复用功能。
分析:首先,要求具备一键启停功能,则需要用到上升沿指令;有延迟时间要求,需要用到定时器指令。其次,输入引脚需要有模式切换、启动、停止、延迟时间设定。
编程步骤:
1.建立一个FB块M_Demo;
2.在M_Demo块中建立如下变量:
//1:运行模式;0:一键启停模式
#P1(CLK := #RUN); //启动上升沿
#P2(CLK := #MODE); //MODE上升沿
#N1(CLK := #MODE); //MODE下降沿
//定时器最好放在判定条件语句的外边
#RUN_IEC(IN := #MODE AND #RUN AND NOT #STOP, //处于运行模式,且按下启动按钮,没有按下停止按钮
PT := #RUN_TIME);
IF #MODE THEN //模式1
IF #RUN_IEC.Q THEN //延迟时间到了之后,设备启动
#KM := 1;
END_IF;
IF #STOP THEN //按下停止按钮,设备停止
#KM := 0;
END_IF;
ELSE
IF #P1.Q THEN //模式0
#KM := NOT #KM; //检测到启动信号上升沿,则运行线圈取反
END_IF;
END_IF;
IF #P2.Q OR #N1.Q THEN //检测到MODE上升沿或下降沿,立即停机
#KM := 0;
END_IF;
3.再建立一个FB块M_FB;
4.在M_FB块中调用M_Demo,有几个电机调用几次。可选择“多重实例”;
5.最后在主程序块Main中,调用M_FB。