本案例使用按鈕依次切換8個輸出且可控制輸出通道,比如控制指示燈,可以輸入序號來點亮該序號指示燈,連接時鐘信號可以實現跑馬燈效果。點擊正向按鈕則正序依次切換指示燈,如此反復。點擊反向按鈕則逆序依次切換指示燈。
功能介紹
- 如果EN為FALSE,則所有輸出均為FALSE。輸入EN必須為TRUE,在E = TRUE時只有一個輸出Qn為TRUE。
- 當E = TRUE時,使用輸入UP從輸出Qn切換到Qn +1,而輸入DN將輸出Qn切換到Qn-1。
- 當E = TRUE時,可以由SET輸入和輸入IN值選擇主動輸出Q0..Q7。如SET=TRUE,IN=5將輸出Q5=TRUE,而所有其他輸出都設置為FALSE。
- 當E = TRUE時,輸入RST=TRUE將輸出Q0設置為TRUE,而所有其他輸出都設置為FALSE。
- 當E = TRUE時,狀態輸出總是顯示當前選擇了哪個輸出Qn;當E=FALSE時,狀態輸出保持不變,E再次變為TRUE時,Qn再次輸出。
SELECT_8源代碼
SELECT_8實現的是選擇器的功能,內部調用一個取模函數INC,詳見下面介紹取模運算(INC)以及其代碼。
01
取模運算(INC)
取模是除以兩個數字時查找余數的操作。因此,當你問“什么是2 mod 2?”時,你是在問 “當你把 2 除以 2 時,余數是多少?”
SELECT_8源代碼
FUNCTION_BLOCK "SELECT_8"
TITLE = 'SELECT_8'
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
E : Bool;
SET : Bool;
IN : Int;
UP : Bool;
DN : Bool;
RST : Bool;
END_VAR
VAR_OUTPUT
Q0 : Bool;
Q1 : Bool;
Q2 : Bool;
Q3 : Bool;
Q4 : Bool;
Q5 : Bool;
Q6 : Bool;
Q7 : Bool;
STATE : Int;
END_VAR
VAR
last_up : Bool;
last_dn : Bool;
END_VAR
BEGIN
IF #RST THEN
#STATE := 0;
ELSIF #SET THEN
#STATE := #IN;
ELSIF #UP AND NOT #last_up THEN
#STATE := "INC"(X := #STATE, D := 1, M := 7);
ELSIF #DN AND NOT #last_dn THEN
#STATE := "INC"(X := #STATE, D := -1, M := 7);
END_IF;
#last_up := #UP;
#last_dn := #DN;
#Q0 := FALSE;
#Q1 := FALSE;
#Q2 := FALSE;
#Q3 := FALSE;
#Q4 := FALSE;
#Q5 := FALSE;
#Q6 := FALSE;
#Q7 := FALSE;
IF #E THEN
CASE #STATE OF
0:
#Q0 := TRUE;
1:
#Q1 := TRUE;
2:
#Q2 := TRUE;
3:
#Q3 := TRUE;
4:
#Q4 := TRUE;
5:
#Q5 := TRUE;
6:
#Q6 := TRUE;
7:
#Q7 := TRUE;
END_CASE;
END_IF;
END_FUNCTION_BLOCK
INC源代碼
FUNCTION "INC" : Int
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
X : Int;
D : Int;
M : Int;
END_VAR
BEGIN
#INC := (#X + #D + #M + 1) MOD (#M + 1);
END_FUNCTION
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
指示燈
+關注
關注
3文章
403瀏覽量
28065 -
跑馬燈
+關注
關注
5文章
117瀏覽量
34477 -
RST
+關注
關注
0文章
30瀏覽量
7331 -
時鐘信號
+關注
關注
4文章
387瀏覽量
28199 -
選擇器
+關注
關注
0文章
105瀏覽量
14364
發布評論請先 登錄
相關推薦
關于stm32 6個pwm通道輸出
請問一下,我希望有6個pwm輸出通道,比如1,2,3,4,5,6,頻率相同,占空比50;但是我是每隔100ms選擇其中的兩個,任意兩個,由其
發表于 04-11 17:22
用于PLC的低側柵8通道24V低側數字輸出模塊
接口。此設計具有尺寸小的特點,能夠在所有 8 個通道上提供 0.5A 而不影響熱管理。主要特色高密度 8 通道 24V 低側數字
發表于 12-13 14:20
凌力爾特發表雙組輸出降壓切換穩壓器--LT3992
凌力爾特(Linear Technology)發表完整的雙組輸出降壓切換穩壓器--LT3992,此元件可從每通道提供3安培(A)連續輸出電流;3~60伏特(V)輸入電壓范圍
發表于 04-20 08:53
?476次閱讀
mcgs按鈕怎么切換畫面
第一個在執行Sleep時,窗口0里是不能運行任何東西的,比如按鈕之類的都不能好使了。所以我不喜歡用。而第二種就不會影響窗口里的東西,我一般是用第二個,然后窗口0里面在放一個按鈕,切換窗口,這樣用兩種方式
電機控制器的4種輸出模式
作用,松手無作用; ?自鎖:按下有作用,松手后依然有作用; ?互鎖:一般有兩個按鈕(比如A和B)控制輸出,當按下A鍵,松手后輸出依然有效;當按下B鍵,斷開與A相關的
發表于 10-15 16:42
?3615次閱讀
使用按鈕式數字電位計設計可調電壓輸出
本文介紹一種完整的解決方案,其中可通過按鈕式數字電位計簡單高效地控制高達20 V的電壓。完整的解決方案代表可調電源,可用于需要可調電壓輸出的各種應用。圖1所示為具有可變輸出功率的相應開
評論