12.20 通过示例学习三菱ST语言编程之电机顺序启动逆序停止的编程示例

今天跟大家分享的是一个比较经典的示例,电机顺序启动逆序停止的示例。通过本示例来学习ST编程的条件语句和移位指令的综合应用。

一、功能要求:

用按钮控制6台电机的启动和停止,要求当按下启动按钮,启动信号灯亮,而后每隔2s启动一台电机,直到6台电机全部启动。

当按下停止按钮,停止信号灯亮,而后每隔2s电机逆序停止。

二、编程的思路:从功能要求来看,我们很容易想到使用移位指令来实现本示例的功能。

在三菱PLC中的移位指令是SFTL和SFTR指令,

指令格式:


通过示例学习三菱ST语言编程之电机顺序启动逆序停止的编程示例

指令说明:

1、SFTL:对于以d起始的n1位(移位寄存器的长度)数据,左移n2位。移位后,将s开始的n2位数据传送到从d开始的n2位中。 如下面的语句:

SFTL( TON_OUT ,启动信号灯 , K6, K1 , 电机1 );

2、SFTR:对于以d起始的n1位(移位寄存器的长度)数据,右移n2位。移位后,将s开始n2位数据传送到从d+n1-n2开始的n2位中。 如下面语句:

SFTR( TON_OUT2, 启动信号灯 , K6 , K1 ,电机1);

对于本例:

1、启动条件:就是当按下启动按钮(没按停止按钮),启动信号灯亮,停止信号灯灭。

IF 启动 AND NOT 停止 THEN 启动信号灯:=1;停止信号灯:=0;

END_IF ;

2、当启动信号灯亮,启动定时器,延时2秒后启动第一台电机,并利用定时器输出值取反,来作为定时器启动的条件。同时利用定时器的输出值来使能左移位指令(也就是说每隔2s移位1次)

TON_1(IN:= 启动信号灯 AND NOT 停止 AND NOT TON_OUT AND NOT 电机6 ,PT:= T#2S ,Q:= TON_OUT );

SFTL( TON_OUT ,启动信号灯 , K6, K1 , 电机1 );

3、停止条件:当按下停止按钮(没按启动按钮),停止信号灯亮。启动信号灯灭。

IF 停止 AND 电机1 THEN 停止信号灯:=1;启动信号灯:=0; END_IF ;

4、当停止信号灯亮,启动定时器,延时2s后停最后一台电机,并利用定时器输出值取反,来作为定时器启动的条件。同时利用定时器的输出值来使能右移位指令(也就是说每隔2s移位1次)

TON_2( IN:= 停止信号灯 AND 电机1 AND NOT TON_OUT2 ,PT:= T#2S ,Q:= TON_OUT2 );

SFTR( TON_OUT2, 启动信号灯 , K6 , K1 ,电机1);

本示例的完整程序如下图所示:

通过示例学习三菱ST语言编程之电机顺序启动逆序停止的编程示例

三、示例仿真:
当按下启动按钮,电机顺序启动:

通过示例学习三菱ST语言编程之电机顺序启动逆序停止的编程示例

当按下停止按钮,电机逆序停止:


通过示例学习三菱ST语言编程之电机顺序启动逆序停止的编程示例


分享到:


相關文章: