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語言編程之電機順序啟動逆序停止的編程示例


分享到:


相關文章: