西門子S7-1200 PLC應(yīng)用技術(shù)項(xiàng)目教程(第3版) 課件 3.SCL語(yǔ)言基礎(chǔ)寬屏-(LAD+SCL)_第1頁(yè)
西門子S7-1200 PLC應(yīng)用技術(shù)項(xiàng)目教程(第3版) 課件 3.SCL語(yǔ)言基礎(chǔ)寬屏-(LAD+SCL)_第2頁(yè)
西門子S7-1200 PLC應(yīng)用技術(shù)項(xiàng)目教程(第3版) 課件 3.SCL語(yǔ)言基礎(chǔ)寬屏-(LAD+SCL)_第3頁(yè)
西門子S7-1200 PLC應(yīng)用技術(shù)項(xiàng)目教程(第3版) 課件 3.SCL語(yǔ)言基礎(chǔ)寬屏-(LAD+SCL)_第4頁(yè)
西門子S7-1200 PLC應(yīng)用技術(shù)項(xiàng)目教程(第3版) 課件 3.SCL語(yǔ)言基礎(chǔ)寬屏-(LAD+SCL)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目3SCL語(yǔ)言基礎(chǔ)123SCL語(yǔ)言簡(jiǎn)介SCL語(yǔ)言基礎(chǔ)SCL入門實(shí)驗(yàn)SCL編程語(yǔ)言簡(jiǎn)介

SCL(StructuredControlLanguage,結(jié)構(gòu)化控制語(yǔ)言)。這種語(yǔ)言是基于IEC61131-3的國(guó)際標(biāo)準(zhǔn),并獲得PLCopen基礎(chǔ)級(jí)認(rèn)證。SCL語(yǔ)言為PLC做了優(yōu)化處理,它不僅僅具有PLC典型的元素(例如輸入/輸出,定時(shí)器,計(jì)數(shù)器,符號(hào)表),而且具有高級(jí)語(yǔ)言的特性,例如:循環(huán)、選擇、分支、數(shù)組和高級(jí)函數(shù)等功能。相對(duì)于梯形圖編程,SCL語(yǔ)言非常適合于如下任務(wù):復(fù)雜數(shù)學(xué)運(yùn)算、數(shù)據(jù)管理、過(guò)程優(yōu)化、配方管理和任務(wù)統(tǒng)計(jì)等。在TIA博圖軟件中,SCL、梯形圖和FBD可以非常方便地整合在一個(gè)組織塊、函數(shù)或函數(shù)塊中。SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--標(biāo)識(shí)符標(biāo)識(shí)符是指定給S7-SCL語(yǔ)言對(duì)象的名字;即常量、變量、函數(shù)/函數(shù)塊的名字。標(biāo)識(shí)符最多24個(gè)字母、數(shù)字或下劃線組成,可以是任何順序,但首字符必須是字母或下劃線,不能是數(shù)字。S7-SCL標(biāo)識(shí)符不區(qū)分對(duì)大小寫(xiě)。用戶定義標(biāo)識(shí)符時(shí),不能使用保留字和標(biāo)準(zhǔn)標(biāo)識(shí)符。例如:A1、A_1、,a1、_XY,都是合法的標(biāo)識(shí)符;1A,ARRAY(數(shù)組的標(biāo)識(shí)符),A1(含空格),都是不合法的標(biāo)識(shí)符。SCL語(yǔ)言基礎(chǔ)

常用的保留字比如:AND、ARRAY、BYTE、BOOL、CASE、CHAR、CONTINE、CONST、DWORD、DATE、DINT、DIV、DO、ENO、END_IF、END_CASE、END_FOR、END_STRUCT、END_WHILE、EXIT、ELSE、ELSIF、FALSE、FOR、GOTO、IF、INT、MOD、POINTER、REAL、RETURN、STRING、STRUCT、THEN、TIME、TIMER、TO、TRUE、TYPE、VAR、VOID、WHILE、WORD、XOR等,被系統(tǒng)專用,用戶不能再定義為標(biāo)識(shí)符。標(biāo)準(zhǔn)標(biāo)識(shí)符,包括:塊標(biāo)識(shí)符,例DB0(數(shù)據(jù)塊)、FB1(函數(shù)塊)、FC1(函數(shù))、OB1(組織塊);地址標(biāo)識(shí)符,例:%I0.0、%Q1.0、%MB3,定時(shí)器和計(jì)數(shù)器等標(biāo)準(zhǔn)標(biāo)識(shí)符,用戶不能再定義為標(biāo)識(shí)符?;A(chǔ)知識(shí)--標(biāo)識(shí)符SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--運(yùn)算符類型名稱運(yùn)算符優(yōu)先級(jí)賦值運(yùn)算賦值運(yùn)算:=11算術(shù)運(yùn)算

一元加+2

一元減-冪運(yùn)算**3乘*4

除/模MOD整除DIV加+5減-SCL語(yǔ)言基礎(chǔ)類型名稱運(yùn)算符優(yōu)先級(jí)關(guān)系運(yùn)算大于>6大于等于>=小于<小于等于<=等于=7

不等于<>邏輯運(yùn)算非NOT3與AND或&8異或XOR9或OR10括號(hào)運(yùn)算括號(hào)()1基礎(chǔ)知識(shí)--運(yùn)算符SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--表達(dá)式

表達(dá)式,是由數(shù)字、運(yùn)算符、變量等以能求得數(shù)值的有意義排列方法所得的組合。表達(dá)式在程序運(yùn)行期間進(jìn)行運(yùn)算,然后返回一個(gè)值。一個(gè)表達(dá)式由操作數(shù)(如常數(shù)、變量或函數(shù)調(diào)用)和與之搭配的運(yùn)算符(如*、/、+或-)組成。通過(guò)運(yùn)算符可以將表達(dá)式連接在一起或相互嵌套。SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--表達(dá)式表達(dá)式將按照下列因素定義的特定順序進(jìn)行運(yùn)算:相關(guān)運(yùn)算符的優(yōu)先級(jí),優(yōu)先級(jí)數(shù)越小越優(yōu)先;同等優(yōu)先級(jí)運(yùn)算符的運(yùn)算順序按照從左到右的順序進(jìn)行;賦值運(yùn)算的計(jì)算按照從右到左的順序進(jìn)行;括號(hào)優(yōu)先級(jí)最高。表達(dá)式有算術(shù)表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式三種類型。例:“X*Y+3”為算術(shù)表達(dá)式;“X>Y”為關(guān)系表達(dá)式;“XANDNOTY”為邏輯表達(dá)式。SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--表達(dá)式--算術(shù)表達(dá)式算術(shù)表達(dá)式是最常用的表達(dá)式,又稱為數(shù)值表達(dá)式。它是通過(guò)算術(shù)運(yùn)算符來(lái)進(jìn)行運(yùn)算的數(shù)學(xué)公式。算術(shù)表達(dá)式既可以是一個(gè)數(shù)字值,也可以是由帶有算術(shù)運(yùn)算符的兩個(gè)值或表達(dá)式組合而成。算術(shù)運(yùn)算符可以處理當(dāng)前CPU所支持的各種數(shù)據(jù)類型。如果在該運(yùn)算中有2個(gè)操作數(shù)的數(shù)據(jù)類型不同,那么運(yùn)算結(jié)果的數(shù)據(jù)類型同長(zhǎng)度大的數(shù)據(jù)類型一致,如:Int+DInt=DInt、USInt+UDInt=UDInt、Int+Real=Real、Real+LReal=LReal。算術(shù)表達(dá)式如:A*B+X/Y-3SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--表達(dá)式--關(guān)系表達(dá)式關(guān)系表達(dá)式是用關(guān)系運(yùn)算符將操作數(shù)連接起來(lái)的式子。關(guān)系表達(dá)式的運(yùn)算結(jié)果是一個(gè)布爾值(BOOL)。如果關(guān)系成立,結(jié)果為真,可以用TRUE(或1)表示;否則,關(guān)系不成立,結(jié)果為假,可以用FALSE(或0)表示。關(guān)系表達(dá)式:a>b;A>20ANDB<20;X<>(YANDZ)SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--表達(dá)式--邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的有意義的式子稱為邏輯表達(dá)式。邏輯表達(dá)式的值是一個(gè)邏輯值,即“true”或“false”??梢杂脭?shù)字“1”表示“真”,以數(shù)字“0”表示“假”。邏輯表達(dá)式:"MyTag1"ANDNOT"MyTag2"

;XANDNOTYSCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--數(shù)組數(shù)組(Array)是有序的元素序列。若將有限個(gè)類型相同的變量的集合命名,那么這個(gè)名稱為數(shù)組名。組成數(shù)組的各個(gè)變量稱為數(shù)組的分量,也稱為數(shù)組的元素。用于區(qū)分?jǐn)?shù)組的各個(gè)元素的數(shù)字編號(hào)稱為下標(biāo)。在SCL中定義一維數(shù)組Array[lo..hi]oftype例如:Array[0..9]ofbyte,表示定義了一個(gè)一維數(shù)組,數(shù)組共10個(gè)元素,數(shù)組元素類型為字節(jié)類型。SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--賦值運(yùn)算賦值運(yùn)算,是將一個(gè)表達(dá)式的值分配給一個(gè)變量。賦值表達(dá)式的左側(cè)為變量,右側(cè)為表達(dá)式的值。函數(shù)名稱也可以作為表達(dá)式。賦值運(yùn)算將調(diào)用該函數(shù),并返回其函數(shù)值,賦給左側(cè)的變量。賦值運(yùn)算的數(shù)據(jù)類型取決于左邊變量的數(shù)據(jù)類型。右邊表達(dá)式的數(shù)據(jù)類型必須與該數(shù)據(jù)類型一致。賦值運(yùn)算的計(jì)算按照從右到左的順序進(jìn)行。SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--賦值運(yùn)算單賦值運(yùn)算:執(zhí)行單賦值運(yùn)算時(shí),僅將一個(gè)表達(dá)式或變量分配給單個(gè)變量。例如:a:=b;多賦值運(yùn)算:執(zhí)行多賦值運(yùn)算時(shí),一個(gè)指令中可執(zhí)行多個(gè)賦值運(yùn)算。例如:a:=b:=c;此時(shí),將執(zhí)行以下操作:b:=c;a:=b;組合賦值運(yùn)算:執(zhí)行組合賦值運(yùn)算時(shí),可在賦值運(yùn)算中組合使用操作符"+"、"-"、"*"和"/"。例如:a+=b;此時(shí),將執(zhí)行以下操作:a:=a+b;多次組合賦值運(yùn)算:a+=b+=c*=d;此時(shí),將按以下順序執(zhí)行賦值運(yùn)算:c:=c*d;b:=b+c;a:=a+b;SCL語(yǔ)言基礎(chǔ)1)"MyTag1":="MyTag2";變量賦值2)"MyTag1":="MyTag2"*"MyTag3";表達(dá)式賦值3)"MyTag":="MyFC"();調(diào)用一個(gè)函數(shù),并將函數(shù)值賦給"MyTag"變量4)#MyStruct.MyStructElement:="MyTag";將一個(gè)變量賦值給一個(gè)結(jié)構(gòu)元素5)#MyArray[2]:="MyTag";將一個(gè)變量賦值給一個(gè)ARRAY元素6)"MyTag1"-="MyTag2"+="MyTag3";"MyTag2"和"MyTag3"相加,將相加的結(jié)果賦值給操作數(shù)"MyTag2",再?gòu)?MyTag1"中減去"MyTag2",計(jì)算結(jié)果將賦值給"MyTag1"。基礎(chǔ)知識(shí)--賦值運(yùn)算SCL語(yǔ)言基礎(chǔ)基礎(chǔ)知識(shí)--注釋注釋是程序設(shè)計(jì)的基本要素,用于程序的解釋,更好地幫助讀者理解程序,注釋不生成代碼,不影響程序的執(zhí)行。注釋可以分行注釋和塊注釋兩種方式。注釋可以分行注釋和塊注釋兩種方式:行注釋:

#a:=0//給變a賦初值行塊注釋:(*這是一個(gè)星三角降壓?jiǎn)?dòng)的函數(shù),星型啟動(dòng)轉(zhuǎn)換到三角形運(yùn)行的時(shí)間,為輸入?yún)?shù),需從函數(shù)調(diào)用時(shí),進(jìn)行參數(shù)傳遞*)SCL基本指令SCL基本控制語(yǔ)句選擇語(yǔ)句(IF語(yǔ)句和CASE語(yǔ)句)循環(huán)語(yǔ)句(FOR語(yǔ)句、WHILE語(yǔ)句和REPEAT語(yǔ)句)跳轉(zhuǎn)語(yǔ)句(CONTINUE語(yǔ)句、EXIT語(yǔ)句、GOTO語(yǔ)句和RETURN語(yǔ)句)選擇語(yǔ)句--IF語(yǔ)句①IF<表達(dá)式>THEN<語(yǔ)句>END_IF;SCL基本指令【例1】按下啟動(dòng)按鈕,電機(jī)啟動(dòng);按下停止按鈕,電機(jī)停止。(相當(dāng)于實(shí)現(xiàn)“啟-保-?!惫δ埽㊣F"啟動(dòng)"THEN"電機(jī)":=1;END_IF;IF"停止"THEN"電機(jī)":=0;END_IF;選擇語(yǔ)句--IF語(yǔ)句IF<表達(dá)式>THEN語(yǔ)句1ELSE

語(yǔ)句2END_IF;SCL基本指令【例2】編寫(xiě)一個(gè)點(diǎn)動(dòng)的程序,按下點(diǎn)動(dòng)按鈕,電機(jī)啟動(dòng)運(yùn)行;釋放點(diǎn)動(dòng)按鈕,電機(jī)停止。IF"點(diǎn)動(dòng)"THEN"電機(jī)":=1;ELSE"電機(jī)":=0;END_IF;選擇語(yǔ)句--IF語(yǔ)句IF<表達(dá)式1>THEN語(yǔ)句1ELSIF<表達(dá)式2>THEN語(yǔ)句2ELSIF<表達(dá)式3>THEN語(yǔ)句3...ELSE語(yǔ)句nEND_IF;SCL基本指令選擇語(yǔ)句--IF語(yǔ)句SCL基本指令【例3】當(dāng)溫度小于0°C,黃燈亮;0°C~30°C,綠燈亮;大于30°C,紅燈亮。

IF#溫度<0THEN#黃燈:=1;

ELSIF#溫度<30THEN#綠燈:=1;

ELSE#紅燈:=1;END_IF;選擇語(yǔ)句--CASE語(yǔ)句SCL基本指令CASE<變量>OF<常數(shù)1>:<語(yǔ)句1><常數(shù)2>:<語(yǔ)句2>......<常數(shù)n>:<語(yǔ)句n>ELSE<語(yǔ)句>END_CASE;參數(shù)數(shù)據(jù)類型存儲(chǔ)區(qū)說(shuō)明<變量>整數(shù)位序列I、Q、MD、L與設(shè)定的常數(shù)值進(jìn)行比較的值。TIAPORTALV16開(kāi)始支持位序列數(shù)據(jù)類型的變量<常數(shù)>位序列

若為位序列,則常數(shù)可以為以下值:二進(jìn)制數(shù)(例如:2#10);八進(jìn)制數(shù)(例如:8#77);十六進(jìn)制數(shù)(例如:16#AD);未定型的常數(shù)(例如:1000)整數(shù)作為指令序列執(zhí)行條件的常數(shù)值。常數(shù)可以為以下值:整數(shù)(例如:5);整數(shù)范圍(例如:15~20);由整數(shù)和范圍組成的枚舉(例如:10,11,15~20)<語(yǔ)句>

當(dāng)表達(dá)式的值等于某個(gè)常數(shù)值時(shí),將執(zhí)行該常數(shù)后的指令,然后程序?qū)腅ND_CASE之后繼續(xù)執(zhí)行。如果表達(dá)式的值與所有設(shè)定的常數(shù)都不相等,則執(zhí)行ELSE后編寫(xiě)的指令。ELSE是一個(gè)可選項(xiàng),可以省略。選擇語(yǔ)句--CASE語(yǔ)句SCL基本指令選擇語(yǔ)句--CASE語(yǔ)句SCL基本指令【例4】下面是CASE語(yǔ)句的例子:

CASE“Tag_value"OF

0:“Tag_1”=1;

1,3,5:“Tag_2”=1;

2,4,6:“Tag_3”=1;

7..10:“Tag_4”=1;

16,17,20..25:“Tag_5”=1;

ELSE“Tag_6”=1;

END_CASE;選擇語(yǔ)句--CASE語(yǔ)句SCL基本指令“Tag_value"01,3,52,4,67,8,9,1016,17,20,21,22,23,24,25其他“Tag_1”1-----“Tag_2”-1----“Tag_3”--1---“Tag_4”---1--“Tag_5”----1-“Tag_6”-----1循環(huán)語(yǔ)句--FOR語(yǔ)句SCL基本指令FOR<運(yùn)行變量>:=<起始值>TO<結(jié)束值>BY<增量>DO<語(yǔ)句>;END_FOR;如果增量為1,可以簡(jiǎn)寫(xiě)為:FOR<運(yùn)行變量>:=<起始值>TO<結(jié)束值>DO

<語(yǔ)句>;END_FOR;FOR循環(huán)語(yǔ)句,可以通過(guò)"復(fù)查循環(huán)條件"(Continue)語(yǔ)句,終止當(dāng)前正在運(yùn)行的程序循環(huán)。通過(guò)"立即退出循環(huán)"(Exit)語(yǔ)句終止整個(gè)循環(huán)的執(zhí)行。循環(huán)語(yǔ)句--FOR語(yǔ)句SCL基本指令【例5】

FOR#i:=2TO6BY2DO

#a[#i]:=#T_value*#b[#i];

END_FOR;若數(shù)組元素#b[2]、#b[4]、#b[6]的值分別為1、2、3,#T_value的值為10,則數(shù)組元素#a[2]、#a[4]、#a[6]分別為:10、20、30。循環(huán)語(yǔ)句--WHILE語(yǔ)句SCL基本指令WHILE<條件>DO<語(yǔ)句>END_WHILE;執(zhí)行該語(yǔ)句時(shí),將對(duì)指定的表達(dá)式進(jìn)行運(yùn)算。如果表達(dá)式的值為True,則表示滿足該條件,執(zhí)行循環(huán)體內(nèi)的語(yǔ)句;如果其值為False,則表示不滿足該條件,退出循環(huán),執(zhí)行END_WHILE后面的語(yǔ)句。循環(huán)語(yǔ)句--WHILE語(yǔ)句SCL基本指令【例6】求1+2+3+...+100的和,程序如下:“SUM”:=0;“I”:=1;WHILE“I”<=100DO“SUM”:=“SUM”+“I”;“I”:=“I”+1;

END_WHILE;循環(huán)語(yǔ)句--REPEAT語(yǔ)句SCL基本指令當(dāng)不滿足條件時(shí),執(zhí)行REPEAT循環(huán),直到條件滿足時(shí)退出循環(huán)。如果表達(dá)式的值為True,則表示滿足該條件;如果其值為False,則表示不滿足該條件。REPEAT語(yǔ)句先執(zhí)行循環(huán),然后在判斷條件,因此,即使?jié)M足終止條件,至少也會(huì)執(zhí)行一次循環(huán)內(nèi)的語(yǔ)句REPEAT語(yǔ)句的語(yǔ)法格式如下:REPEAT<語(yǔ)句>UNTIL<條件>END_REPEAT;循環(huán)語(yǔ)句--REPEAT語(yǔ)句SCL基本指令【例7】某企業(yè)共有50種產(chǎn)品,數(shù)組#N_array存放產(chǎn)品序號(hào),在數(shù)組中查找序號(hào)為1000的產(chǎn)品,如果查到,則產(chǎn)品序號(hào)賦給變量#number,如果數(shù)組中查不到該序號(hào),則變量#number賦0。

#index:=0;

REPEAT

#index:=#index+1;

UNTIL#index>50OR#N_array[#index]=1000

END_REPEAT;

IF#index>50THEN

#number:=0;

ELSE#number:=#index;

END_IF;跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)語(yǔ)句:CONTINUE語(yǔ)句、EXIT語(yǔ)句、GOTO語(yǔ)句、RETURN語(yǔ)句SCL基本指令循環(huán)終止CONTINUE終止本次循環(huán)執(zhí)行,繼續(xù)執(zhí)行下次循環(huán)EXIT退出整個(gè)循環(huán)函數(shù)/函數(shù)塊終止RETURN退出正在執(zhí)行的函數(shù)/函數(shù)塊,返回調(diào)用處跳轉(zhuǎn)執(zhí)行GOTO跳轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行跳轉(zhuǎn)語(yǔ)句--CONTINUE語(yǔ)句CONTINUE語(yǔ)句也稱“復(fù)查循環(huán)條件語(yǔ)句”,其作用為結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判斷。CONTINUE語(yǔ)句用在FOR、WHILE或REPEAT循環(huán)中。語(yǔ)句格式為:CONTINUE;SCL基本指令跳轉(zhuǎn)語(yǔ)句--CONTINUE語(yǔ)句SCL基本指令【例8】把100~200之間的不能被3整除的數(shù),放到組數(shù)Array中。

程序如下:

#I:=0;

FOR#N:=100TO200DO

IF#NMOD3=0THEN

CONTINUE;

END_IF;

#Array[#I]:=#N;

#I:=#I+1;

END_FOR;跳轉(zhuǎn)語(yǔ)句--EXIT語(yǔ)句EXIT語(yǔ)句也稱為"立即退出循環(huán)"語(yǔ)句,可以隨時(shí)取消FOR、WHILE或REPEAT循環(huán)的執(zhí)行,而無(wú)需考慮是否滿足條件,并在循環(huán)結(jié)束,執(zhí)行END_FOR、END_WHILE或END_REPEAT后繼續(xù)執(zhí)行程序。語(yǔ)句格式為:EXIT;SCL基本指令跳轉(zhuǎn)語(yǔ)句--EXIT語(yǔ)句SCL基本指令【例9】數(shù)組Array共20個(gè)元素,給前十個(gè)元素賦初值100,后十個(gè)元素的值保持不變。程序如下:

FOR#I:=0TO10DO

IF(#I>=10)THEN

EXIT;

END_IF;

#Array[#I]:=100;

END_FOR;跳轉(zhuǎn)語(yǔ)句--CONTINUE語(yǔ)句和EXIT語(yǔ)句的區(qū)別SCL基本指令CONTINUE只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行;而EXIT語(yǔ)句是結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷執(zhí)行循環(huán)的條件是否成立。WHILE<條件1>DO<語(yǔ)句>...IF<條件2>THEN

CONTINUE;END_IF;...END_WHILE;WHILE<條件1>DO<語(yǔ)句>...IF<條件2>THEN

CONTINUE;END_IF;...END_WHILE;跳轉(zhuǎn)語(yǔ)句--CONTINUE語(yǔ)句和EXIT語(yǔ)句的區(qū)別SCL基本指令跳轉(zhuǎn)語(yǔ)句--GOTO語(yǔ)句SCL基本指令一般GOTO語(yǔ)句的格式如下:GOTO<跳轉(zhuǎn)標(biāo)簽>;...

<跳轉(zhuǎn)標(biāo)簽>:<語(yǔ)句>GOTO語(yǔ)句,也稱跳轉(zhuǎn)語(yǔ)句,可以使程序跳轉(zhuǎn)到指定的標(biāo)號(hào)處,開(kāi)始繼續(xù)執(zhí)行程序。跳轉(zhuǎn)標(biāo)簽和"跳轉(zhuǎn)"指令必須在同一個(gè)程序塊中。在一個(gè)程序塊中,跳轉(zhuǎn)標(biāo)簽的名稱只能指定一次。每個(gè)跳轉(zhuǎn)標(biāo)簽可以是多個(gè)跳轉(zhuǎn)指令的目標(biāo)。不允許從"外部"跳轉(zhuǎn)到程序循環(huán)內(nèi),但允許從循環(huán)內(nèi)跳轉(zhuǎn)到"外部"。跳轉(zhuǎn)語(yǔ)句--GOTO語(yǔ)句SCL基本指令【例10】判斷INT類型的變量#A的值,如果大于27648,則報(bào)警變量ALARM為1,否則報(bào)警變量ALARM為0,電機(jī)輸出MOTOR始終為1,程序如下:IF#A>27648THENGOTOL1;ELSE#ALARM:=0;GOTOL2;END_IF;L1:#ALARM:=1;L2:#MOTOR:=1;跳轉(zhuǎn)語(yǔ)句--RETURN語(yǔ)句SCL基本指令RETURN語(yǔ)句的一般格式為:RETURN;RETURN語(yǔ)句也稱塊退出語(yǔ)句,用于終止當(dāng)前的程序塊(OB、FC、FB)的執(zhí)行,并返回到上一級(jí)的塊調(diào)用處繼續(xù)執(zhí)行程序。如果RETURN語(yǔ)句出現(xiàn)在塊結(jié)尾處,則可以忽略RETURN語(yǔ)句。跳轉(zhuǎn)語(yǔ)句--RETURN語(yǔ)句SCL基本指令【例11】當(dāng)檢測(cè)到錯(cuò)誤標(biāo)志信號(hào)#FLAG_ERROR時(shí),退出當(dāng)前函數(shù),程序如下所示:

IF#FLAG_ERROR<>0THEN

RETURN;

END_IF;如果#FLAG_ERROR操作數(shù)的信號(hào)狀態(tài)不為0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論