国产一区二区三区毛片_亚洲乱码AV中文一区二区_亚洲精品无码专区在线播放_日韩欧美一二_咪咪av影院_欧久久av一区二区

sz518104
級別: 家園常客
精華主題: 0
發帖數量: 927 個
工控威望: 803 點
下載積分: 18565 分
在線時間: 397(小時)
注冊時間: 2009-01-05
最后登錄: 2025-05-06
查看sz518104的 主題 / 回貼
樓主  發表于: 2018-11-20 08:57

結構化文本ST編程,西門子PLC編程語言中叫SCL ,其它任何PLC控制器編程語言還是叫結構化編程ST。
西門子SCL語言


第一章IF:條件執行
IF 分支
IF <條件> THEN <指令>
END_IF;
如果滿足該條件,則將執行 THEN 后編寫的指令。 如果不滿足該條件,則程序將從 END_IF 后的下一條指令開始繼續執行。
IF 和 ELSE 分支
IF <條件> THEN <指令 1>
ELSE <指令 0>;
END_IF;
如果滿足該條件,則將執行 THEN 后編寫的指令。 如果不滿足該條件,則將執行 ELSE 后編寫的指令。 程序將從 END_IF 后的下一條指令開始繼續執行。
IF、ELSIF 和 ELSE 分支
IF <條件 1> THEN <指令 1>
ELSIF <條件 2> THEN <指令 2>
ELSE <指令 0>;
END_IF;
如果滿足第一個條件(<條件 1>),則將執行 THEN 后的指令(<指令1>)。 執行這些指令后,程序將從 END_IF 后繼續執行。
如果不滿足第一個條件,則將檢查第二個條件(<條件 2>)。如果滿足第二個條件(<條件 2>),則將執行 THEN 后的指令(<指令2>)。 執行這些指令后,程序將從 END_IF 后繼續執行。
如果不滿足任何條件,則先執行 ELSE 后的指令(<指令 0>),再執行 END_IF 后的程序部分。
在 IF 指令內可以嵌套任意多個 ELSIF 和 THEN 組合。 可以選擇對 ELSE 分支進行編程。
IF "Tag_1" = 1
THEN "Tag_Value" := 10;
ELSIF "Tag_2" = 1
THEN "Tag_Value" := 20;
ELSIF "Tag_3" = 1
THEN "Tag_Value" := 30;
ELSE "Tag_Value" := 0;
END_IF;
IF 案例如下:
FUNCTION_BLOCK "IF"
TITLE = 'IF Statement'

//IF ... THEN ... ELSE ... END_IF

VAR_INPUT
    Start   : BOOL;
    Manual  : BOOL;
    ActVal  : INT;
END_VAR
VAR
    Manual_FM     : BOOL;
    over          : BOOL;
    under         : BOOL;
    equal_to      : BOOL;
    Setpoint_man  : INT := 1000;
    Setpoint      : INT;
    Deviation     : INT;
    y_index       : INT := 12;
    Total         : INT;
END_VAR

VAR_TEMP i : INT; END_VAR

BEGIN
//Simple IF branch
IF Start THEN Setpoint := 1200; END_IF;
IF Manual THEN
    Setpoint := Setpoint_man;
    Q4.0     := TRUE;
END_IF;

//Branch with THEN...ELSE
IF ActVal > Setpoint
    THEN Deviation := ActVal - Setpoint;
    ELSE Deviation := Setpoint - ActVal;
END_IF;


//Branch with ELSIF
IF ActVal > Setpoint
    THEN over  := TRUE;
         under  := FALSE;
         equal_to := FALSE;
    ELSIF ActVal < Setpoint
         THEN under  := TRUE;
              over  := FALSE;
              equal_to := FALSE;
    ELSE equal_to := TRUE;
         over  := FALSE;
         under  := FALSE;
END_IF;


//Edge evalaution (rising edge)
IF Manual AND NOT Manual_FM
    THEN (*rising edge*);
END_IF;
Manual_FM := Manual;    //Correct edge memory bit

//Counting bits set to "1"
Total := 0;
FOR i:=1 TO 32 DO
    IF M[y_index,i] = TRUE
    THEN Total := Total + 1;
    END_IF;
END_FOR;

END_FUNCTION_BLOCK

第二章CASE:創建多路分支
說明:使用“創建多路分支”指令,可以根據數字表達式的值執行多個指令序列中的一個。
表達式的值必須為整數。執行該指令時,會將表達式的值與多個常數的值進行比較。如果表達式的值等于某個常數的值,則將執行緊跟在該常數后編寫的指令。常數可以為以下值:
·        整數(例如,5)
·        整數范圍(例如,15 到 20)
·        由整數和范圍組成的枚舉(例如,10、11、15 到 20)
CASE <表達式> OF
<常量 1>: <指令 1>
<常量 2>: <指令 2>
<常量 X>: <指令 X>; // X>= 3
ELSE <指令 0>;
END_CASE;
例子
CASE #a OF
    0 :
          "Tag_1":= 1;
    1,3,5 :
          "Tag_2":= 1;
    6...10 :
          "Tag_3":= 1;
    16,17,20...25 :
          "Tag_4":= 1;
    ELSE
          "Tag_5":= 1;
END_CASE;
CASE OF 案例小程序:
FUNCTION_BLOCK "CASE"
TITLE = 'CASE Statements'

VAR
    Expression1    : INT;
    Expression2    : INT;
    Expression3    : INT;
    Day_of_the_week: STRING[12];
    Dat            : DATE;
    ID             : INT;
    Error_number   : INT;
END_VAR

VAR_TEMP
    Return_jump : INT;
END_VAR

LABEL
    Subroutine; M_1; M_2; M_3; End;
END_LABEL

BEGIN
//CASE with simple waiting list
CASE Expression1 OF
    1    : Q4.1 := TRUE;
    2    : Q4.2 := TRUE;
    3    : Q4.3 := TRUE;
END_CASE;

//CASE with value areas
CASE Expression2 OF
    1,2    : Q4.4 := TRUE;
    2,3    : Q4.5 := TRUE;
    ELSE   : QB4  := 0;
END_CASE;

//CASE with gaps in the value areas
CASE Expression3 OF
    1..4          : Q5.1 := TRUE;
    7..9          : Q5.2 := TRUE;
    12..16        : Q5.3 := TRUE;
    ELSE          : QB5  := 0;
END_CASE;


//Determining the day of the week from the DATE format
CASE DINT_TO_INT(DATE_TO_DINT(Dat) MOD 7)+1 OF
    1 : Day_of_the_week := 'Monday';
    2 : Day_of_the_week := 'Tuesday';
    3 : Day_of_the_week := 'Wednesday';
    4 : Day_of_the_week := 'Thursday';
    5 : Day_of_the_week := 'Friday';
    6 : Day_of_the_week := 'Saturday';
    7 : Day_of_the_week := 'Sunday';
END_CASE;


//Assigning an error number
CASE ID OF
0     : Error_number := 0;
1,3,5 : Error_number := ID + 128;
6..10 : Error_number := ID;
ELSE  : Error_number := 16#7F;
END_CASE;


//"Subroutines"

IF I1.0 THEN Return_jump := 1; GOTO subroutine; END_IF;
M_1: (*Return jump from subroutine*);
//...

IF I1.1 THEN Return_jump := 2; GOTO subroutine; END_IF;
M_2: (*Return jump from subroutine*);
//...

IF I1.2 THEN Return_jump := 3; GOTO subroutine; END_IF;
M_3: (*Return jump from subroutine*);
//...

GOTO End;            //Jump over subroutine
Subroutine: ;        //Jump to subroutine

//...Statements in the subroutine


//Selection for the return jump
CASE return_jump OF
    1 : GOTO M_1;
    2 : GOTO M_2;
    3 : GOTO M_3;
END_CASE;
//*********************************************************
End: ;

END_FUNCTION_BLOCK
第三章FOR:在計數循環中執行
說明
使用“在計數循環中執行”指令,重復執行程序循環,直至運行變量不在指定的取值范圍內。
也可以嵌套程序循環。 在程序循環內,可以編寫包含其它運行變量的其它程序循環。
通過指令“復查循環條件”(CONTINUE),可以終止當前連續運行的程序循環。通過指令“立即退出循環”(EXIT) 終止整個循環的執行。


FOR i := 2 TO 8 BY 2
    DO "a_array :="Tag_Value"*"b_array";
END_FOR;
FOR 指令案例
FUNCTION_BLOCK "FOR"
TITLE = 'FOR Statement'

//FOR ... TO ... BY ... DO ... END_FOR
//CONTINUE ... EXIT

NAME    : C28FOR
FAMILY  : SCL_Book
AUTHOR  : Berger
VERSION : '1.0'

VAR
    index1 : INT := 4;
    index2 : INT := 6;
    index3 : INT := 8;
END_VAR

VAR_TEMP
    Runtime_variable : INT;
    i, k             : INT;
END_VAR

BEGIN

//Simple FOR loop
FOR Runtime_variable := 0 TO 7 DO
    M[index1,Runtime_variable] := TRUE;
END_FOR;

FOR Runtime_variable := 0 TO 15 BY 2 DO
    M[index2 + Runtime_variable MOD 8, Runtime_variable] := TRUE;
END_FOR;

MD[index1] := 0;
MD[index2] := 0;

(* Set memory bits *)
FOR i := 2 TO 23 DO
  M[i DIV 8,i MOD 8] := TRUE;
END_FOR;

MD[index2] := MD[index1];


//Nested FOR loops
(* Reset memory bits *)
FOR i := 0 TO 2 DO
  FOR k := 0 TO 7 DO
    IF (k < 2 AND i = 0) THEN CONTINUE; END_IF;
    IF (i = 2 AND k > 5) THEN EXIT; END_IF;
    M[i,K] := FALSE;
  END_FOR;
END_FOR;
MW[index3]     := INT_TO_WORD(i);
MW[index3 + 2] := INT_TO_WORD(k);


//FOR loop with step width <> 1
FOR i:=128 TO 142 BY 2 DO
    MW := PIW;
END_FOR;


//Abort FOR loops
FOR Runtime_variable := 0 TO 15 DO
    M[index2,Runtime_variable] := TRUE;
    IF Runtime_variable = 7 THEN CONTINUE;
        ELSIF Runtime_variable = 8 THEN CONTINUE;
    END_IF;
    IF Runtime_variable = 10 THEN EXIT; END_IF;
    M[index2 + 1,Runtime_variable] := TRUE;
END_FOR;
MD[index2] := 0;

END_FUNCTION_BLOCK




第四章WHILE:滿足條件時執行
說明
使用“滿足條件時執行”指令可以重復執行程序循環,直至不滿足執行條件為止。該條件是結果為布爾值(TRUE 或 FALSE)的表達式。 可以將邏輯表達式或比較表達式作為條件。
執行該指令時,將對指定的表達式進行運算。 如果表達式的值為 TRUE,則表示滿足該條件;如果其值為 FALSE,則表示不滿足該條件。
也可以嵌套程序循環。 在程序循環內,可以編寫包含其它運行變量的其它程序循環。
通過指令“復查循環條件”(CONTINUE),可以終止當前連續運行的程序循環。通過指令“立即退出循環”(EXIT) 終止整個循環的執行。 WHILE
      "Tag_Value1" <>"Tag_Value2"
      DO "Tag_Result"
      := "Tag_Input";

END_WHILE;
WHILE 案例
FUNCTION_BLOCK "WHILE"
TITLE = 'WHILE Statement'

//WHILE ... DO ... END_WHILE
VAR_INPUT
    Data  : BLOCK_DB;
END_VAR
VAR
    Runtime_variable : INT;
    Dat              : DATE;
    NextWeek         : ARRAY[1..7] OF DATE;
    byteindex        : INT;
    bitindex         : INT;
END_VAR
VAR_TEMP
    t_Date : DINT;
    i, k    : INT;
END_VAR

BEGIN

//Simple WHILE statement
i := 0;
WHILE  Data.DW = 16#FFFF DO
i := i + 1;
END_WHILE;

//Finding the next date that falls at the beginning of the week
t_Date := DATE_TO_DINT(Dat);
WHILE (t_Date MOD 7)+1 <> 1 DO
    t_Date := t_Date + 1;
END_WHILE;

//Saving the date information for the next week
FOR i := 1 TO 7 DO
    NextWeek := DINT_TO_DATE(t_Date + i - 1);
END_FOR;

//Finding the first input bit containing "1"
i := 0; k := 0;
WHILE I[i,k] = TRUE DO k := k + 1;
    IF k = 8 THEN k := 0; i := i + 1; END_IF;
    IF i > i + 4 THEN EXIT; END_IF;
END_WHILE;
byteindex := i; bitindex := k;

END_FUNCTION_BLOCK

第五章EXIT:立即退出循環
說明
使用“立即退出循環”指令,可以隨時取消 FOR、WHILE 或 REPEAT 循環的執行,而無需考慮是否滿足條件。在循環結束(END_FOR、END_WHILE 或 END_REPEAT)后繼續執行程序。
該指令將影響其所在的程序循環。

示例

SCL 將以下程序代碼復制到剪貼板。
FOR i := 15 TO 1 BY -2 DO
IF (i < 5)
THEN EXIT;
END_IF;
"DB10".Test := 1;
END_FOR;

如果滿足條件 i < 5,則將取消循環執行。 程序將從END_FOR 后繼續執行。
如果不滿足條件 i < 5,則執行后續的值分配(“DB10”.Test:= 1)并開始一個新循環。 將運行變量 (i) 以 2 進行遞減,并進行檢查該變量的當前值是否在程序中設定的取值范圍之內。如果執行變量 (i) 在取值范圍內,則將再次計算 IF 的條件。

https://mp.weixin.qq.com/s?__biz=MzIzMjQ3MjM0Ng==&mid=2247483932&idx=1&sn=80cfe82cf8f362bf8d2574489d4966b6&chksm=e8952869dfe2a17ffdccbde976c4c3ba71fb7d6e025cb054d1ee1da0701008040239dd9617d3&token=716415798&lang=zh_CN#rd
漂泊的石頭人
級別: 家園常客
精華主題: 0
發帖數量: 481 個
工控威望: 614 點
下載積分: 2798 分
在線時間: 211(小時)
注冊時間: 2018-07-17
最后登錄: 2025-05-20
查看漂泊的石頭人的 主題 / 回貼
1樓  發表于: 2018-11-21 21:15
不錯  有沒有視頻的           

主站蜘蛛池模板: 亚洲成年在线观看_久草网在线_美女日韩一区_久久香蕉影视_日韩精品a在线观看91_不卡一区综合视频_barazza欧美dh_夜色综合 | 一万部小稚女视频在线观看_国产精品热久久无码av_性国裸体高清亚洲_99热99这里只有精品_亚洲国产综合精品_久人人爽人人爽人人片AV_自拍视频第一页_xxxxx15hd中国hd | 40集连续剧免费播放_91c网站色版视频_玖爱在线视频_九色91在线视频_午夜精品久久久久久久99热额_国产精品高潮久久久久久无码_欧美+亚洲+精品+三区_亚洲免费av在线 | 久久久久久亚洲视频_国产精品一区二区久久精品涩爱_男人边吃奶边做呻吟免费视频_97视频总站_国产三级农村妇女在线_国产偷伦视频片手机在线观看_色呦呦日韩精品_免费黄色a | 日本av一区二区三区_中文字幕人成人乱码亚洲影视的特点_国产精品热_成人免费视频网站在线观看_天天澡天天干_国产精品一在线观看_商场女厕偷拍一区二区三区视频_91新视频 | 亚洲AV无码国产精品色午友在线_欧美黄色一级视频_久久精品亚洲国产奇米99_亚洲欧美日韩影院_亚洲精品欧美综合网_国产美女的第一次好痛在线观看_大内密探零零性性在线观看_五月天色视频 | 国产人与动牲交_老牛嫩草一区二区三区日本_性欧美日本_欧美成人在线免费视频_日本WWW一道久久久免费榴莲_丰满少妇A级毛片露出偷拍_国产无码一区二区精品_欧洲裸体兽交大黑妞 | 国产精品无打码在线播放_丰满少妇伦精品无码专区_亚洲综合成人一区_亚洲性猛交xxxx_全黄H全肉边做边吃奶视频_久久久久99精品成人片风流寡妇_91免费大片_欧美老妇激情BBBWWBBW | 国产成人AV区一区二区三_国产91清纯白嫩初高中在线观看_欧美国产日韩一区二区三区_日韩东京热无码AV一区_少妇高潮太爽了在线播放_亚洲精品国产精品国自产在线_国产91艳遇在线观看_黄色三级网站在线观看 | 狠狠色噜噜狠狠狠狠奇米777_嫩草影院啪啪_综合激情亚洲_首页国产精品_国产成人在线播放_欧美激情无码成人A片_成人免费av在线_欧美一区第一页 | 天天干视频网_国产精品久久久久免费a∨大胸_在线亚洲日本_成人αv_精品人妻AV一区二区三区_最新理论三级中文在线观看_久久久免费观看_最好看的中文2018 | 国产在线乱_免费精品一区二区三区视频日产_国产精品视频亚洲_办公室撕开奶罩揉吮奶头在线观看_看片久久_久操欧美_国产一区二区波多野结衣_国产精品麻豆成人AV网 www.拔插_亚洲熟女综合一区二区三区_人人狠狠综合久久88成人_银魂在线观看_国产精品成人黄片_91久草视频_99久久精品国产毛片_h高潮娇喘抽搐A片国产麻豆 | 无码高潮喷吹在线播放亚洲_日本午夜在线视频_国产免费牲交视频_久久精品区_日日夜夜精_亚洲国产精品激情在线观看_亚洲sm另类一区二区三区_精品久久影视 | 激情内射亚州一区二区三区爱妻_91成人精品一区二区三区四区_caoporen个人免费公开_男人猛吃奶女人爽视频_欧美人与动牲交A精品_特级西西大胆www147_国产一级毛片黄片_玖玖精品在线 | 国产精品国产三级国产av′_www国产精品_www.精品视频_奇米在线7777在线精品_性生交裸片免费看_91爱观看在线_夜夜草影院_中文字幕亚洲日本 | 国产麻豆精品a在线观看_91成人天堂久久成人_国产精品久久久久久52avav_成人av激情人伦小说_亚洲黄视频在线观看_国产成人亚洲综合网站小说_精品国产乱来一区二区三区_亚洲日韩中文字幕a∨ | 超碰在线97中文字幕_天天草夜夜草_亚洲精品久久久久久久久久久久_四韩色情无码一区二区三区_国产精品久久久久久久7777_欧美国产日韩在线三区_7777偷窥盗摄视频_97在线视频免费 | 久久99精品久久_66亚洲丁香婷婷综合久久_日本精品久久久久中文字幕乱中年_少妇无码AV无码专区_男女啪啪永久免费观看网站_国产精品久久久久野外_欧美国产韩a在线视频_天海翼一区二区三区高清在线 | 欧美黑人又粗又大xxx_亚洲综合在线播放_91色噜噜_精品久久视频_妖精av_欧美在线xxx_a级在线_欧美又大粗又黄又爽无码 | 亚洲va欧美va人人爽成人影院_www.成人久久_欧洲成人精品_亚洲gay片在线gv网站_亚洲精品视频网站在线观看_久久视频免费在线观看_日本中文字幕二区三区_国产午夜福利久久精品 | 国产福利精品视频_91素人在线_国产欧美另类久久久精品丝瓜_日韩精品一区二区av_XX性欧美肥妇精品久久久久久_老司机深夜18禁污污网站_伊人色综_99国产精品免费视频 | 狂躁美女bbbbbb视频_免费两性的视频网站_在线色_国产jjzz_久久久久久久久久久久网站_日日做夜夜爽毛片麻豆_久久少妇视频_91在线国产最新地址 | 中国av免费看_亚洲综合在线第一页_啊灬啊灬啊灬快灬深点吃奶_日本a大片_四川少妇BBB凸凸凸BBB按摩_亚洲第一视频网_久久婷婷色香五月综合激激情狠狠做五月_成人免费黄色视频 | 偷拍各种美女wc嘘嘘视频_亚洲精品乱码久久久久久按摩_成人免费xyz网站_朝桐光a∨一区二区三区_国内精品卡1卡2卡区别_欧美国产一级_亚洲AV综合A∨一区二区_自拍超碰 | 欧美丰满少妇XXXXX_爱爱网站免费_成在人线AV无码免费看_亚洲三级在线_午夜影院色_无码视频一区二区三区在线观看_曰本女人牲交全过程免费观看_wwwwxxxx亚洲 | 班花在教室伦流澡到高潮视频_国产精选91热在线观看_黑人一级大片_蜜臀传媒_红杏出墙记_最近免费观看高清韩国日本大全_亚洲日韩精品无码专区网站_人妻丝袜av先锋影音先 | 绝顶丰满少妇av无码_国产精品一区欧美_国产精品色哟哟_日韩淫视频_老熟妇仑乱视频一区二区_亚洲欧美中文日韩在线v日本野外_欧美乱偷一区二区三区在线_成人在线观看www | 国产成人无码18禁午夜福利P_麻花豆传媒剧国产免费mv豆丁网_狼友AV永久网站免费极品在线_后入内射无码人妻一区_亚洲精品成人av久久_国产真实强被迫伦姧女在线观看_亚洲综合精品久久_丰满迷人的少妇特级毛片 | 免费mmmxxx日本96_欧美黑人粗大xxxxbbbb_深夜福利老司机_8050午夜一级毛片免费看_91精品国产麻豆国产自产在线_色琪琪综合男人的天堂aⅴ视频_风流老太婆大BBWBBWHD视频_丰满少妇乱a片无码 | 97人洗澡人人澡人人爽人人模_国产亚洲精品AE86_日韩1区2区日韩1区2区_国内永久免费传媒_性亚洲videofree高清极品_久久av影院_97在线观看视频免费播放_久久精品这里只有精99品麻豆 | 白浆av导航_菲律宾一级片_牛夜精品久久久久久久99黑人_精品无码中文字幕在线_九色一区二区_aⅴ一区二区三区无卡无码_青草视频在线观看国产_欧美日韩在线观看成人 | 无毛一级片_9I精品福利一区二区三区蜜桃_精品免费观看_99热这里只有精品地址_亚洲国产精品一区二区成人_久久久精品一品道一区_国产的精品一区二区在线观看_国产亚洲精品久久yy5099 | 日本亚洲欧美高清专区vr专区_国产69av_国产亚洲露脸在线观看_天天干成人网_黄色的视频免费_国产精品久久久久久久久图文区_中文在线中文字幕_一级毛片网 | 日日骚久久_91老肥_欧美精品福利_日本精品无码久久久久三级国产_亚洲AV综合AV一区二区三区_午夜理理伦A级毛片_解开人妻的裙子猛烈进入_亚洲综合在线视频 | 啪啪免费网站_婷婷色婷婷开心五月_亚洲人久久久_午夜香蕉成视频人网站_亚洲一线产区二线产区区别在_国产成人综合亚洲看片_成人性色生活片免费看_亚洲国产欧美人成 | JAPANESEXXXX日本熟妇伦视频_色哟哟网站在线观看_一区二区三区在线免费看_久久中文字幕人妻丝袜_jizzjizz國产免费a片_国产一区一一区高清不卡_91桃色在线看_国产91视频网 | 久久久久亚洲AV成人网_日本三级成本人网站_成人久18秘免费观看视频_在线观看不卡一区_狠狠色丁香婷婷久久综合蜜芽_天天夜摸夜夜添夜夜无码_国产a免费一级视频_91社区国产在线观看 | 亚洲欧美国产另类_欧美与黑人午夜性猛交久久久_国产欧美日本在线_风流老熟女一区二区三区_天天干人人_91网国产高清_色婷婷一区二区三区四区成人网_中国特黄一级片 | 白浆av导航_菲律宾一级片_牛夜精品久久久久久久99黑人_精品无码中文字幕在线_九色一区二区_aⅴ一区二区三区无卡无码_青草视频在线观看国产_欧美日韩在线观看成人 | 成人av18_福利成人_绯色一区二区三区_亚洲砖区免费_天天躁夜夜躁天干天干2020_亚洲国产成人久久成人52_操操操爽爽爽_天天好逼综合 | 黄网动漫久久久_人人揉人人捏人人添_午夜男女爽爽爽在线视频_精品久久1_天堂资源av在线_日韩精品1区_波多野无码黑人在线播放_日韩大片高清播放器 |