亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

 

SCL作為一種編程語(yǔ)言,可以實(shí)現(xiàn)LAD/FBD所有的功能,大多數(shù)的指令與LAD/FBD都是相同的,只是在編輯器中的外形不同。只有一些指令使用是不太一樣的甚至LAD/FBD沒(méi)有的,這里只介紹這些不同的。

SCL特殊的指令有以下幾種,如圖1-3紅框中的指令:

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖1 讀寫存儲(chǔ)器


西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖2 轉(zhuǎn)換操作


西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖3 程序控制指令

在這三部分中,讀寫存儲(chǔ)器的PEEK POKE指令可以參考鏈接,轉(zhuǎn)換操作可以參考鏈接,這里只介紹圖3的程序控制指令。

程序控制指令

程序控制指令見(jiàn)以下表格。

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

程序控制指令是SCL編程的基礎(chǔ),接近高級(jí)語(yǔ)言的指令,雖然這些功能通過(guò)LAD/FBD也可以實(shí)現(xiàn),但使用SCL編寫會(huì)更加方便,邏輯條理也更加清晰。

IF:條件執(zhí)行

說(shuō)明:使用"條件執(zhí)行"指令,可以根據(jù)條件控制程序流的分支。該條件是結(jié)果為布爾值(True 或 False)的表達(dá)式。可以將Bool變量、邏輯表達(dá)式或比較表達(dá)式作為條件。

執(zhí)行該條件執(zhí)行指令時(shí),將對(duì)指定的表達(dá)式進(jìn)行運(yùn)算。如果表達(dá)式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。

參數(shù)

根據(jù)分支的類型,可以對(duì)以下形式的指令進(jìn)行編程:

  • IF...THEN... 分支:IF <條件>THEN <語(yǔ)句1>END_IF;
西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖4 IF...THEN... 分支

如果滿足該條件,則將執(zhí)行 THEN 后編寫的指令。如果不滿足該條件,則程序?qū)?END_IF 后的下一條指令開(kāi)始繼續(xù)執(zhí)行。

  • IF...THEN... ELSE...分支:IF <條件>THEN <語(yǔ)句1>ELSE <語(yǔ)句2>END_IF;
西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖5 IF...THEN... ELSE...分支

如果滿足該條件,則將執(zhí)行 THEN 后編寫的語(yǔ)句。如果不滿足該條件,則將執(zhí)行 ELSE 后編寫的語(yǔ)句。不論執(zhí)行哪一個(gè)語(yǔ)句,之后都將從 END_IF 后的下一條指令開(kāi)始繼續(xù)執(zhí)行。

  • IF...THEN... ELSIF...分支:IF <條件1>THEN <語(yǔ)句1>ELSIF <條件2>THEN <語(yǔ)句2>END_IF;
西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖6 IF...THEN... ELSIF...分支

如果滿足條件1,則將執(zhí)行 THEN 后的語(yǔ)句1,執(zhí)行這些語(yǔ)句后,程序?qū)?END_IF 后繼續(xù)執(zhí)行。

如果不滿足條件1,則將檢查條件2。如果滿足條件2,則將執(zhí)行 THEN 后的語(yǔ)句2。執(zhí)行這些語(yǔ)句后,程序?qū)?END_IF 后繼續(xù)執(zhí)行。

如果不滿足任何條件,則直接執(zhí)行 END_IF 后的程序部分。

在 IF 指令內(nèi)可以嵌套任意多個(gè) ELSIF 和 THEN 組合。可以選擇對(duì) ELSE 分支進(jìn)行編程。

參數(shù)

下表列出了該指令的參數(shù):

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖7 IF示例

下表展示了不同的操作數(shù)數(shù)值對(duì)目標(biāo)變量的影響:

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

CASE:創(chuàng)建多路分支

說(shuō)明:使用"創(chuàng)建多路分支"指令,可以根據(jù)數(shù)字表達(dá)式的值執(zhí)行多個(gè)指令序列中的一個(gè)。

按如下方式聲明此指令:

CASE <變量> OF

<常數(shù)1>: <語(yǔ)句1>;

<常數(shù)2>: <語(yǔ)句2>;

......

<常數(shù)n>: <語(yǔ)句n>;

ELSE <語(yǔ)句>;

END_CASE;

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖8 CASE語(yǔ)句

參數(shù)

下表列出了該指令的參數(shù):

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

* TIA PORTAL V16開(kāi)始支持位序列數(shù)據(jù)類型的變量

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖9 CASE示例

下表展示了不同的操作數(shù)數(shù)值對(duì)目標(biāo)變量的影響:

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

FOR:在計(jì)數(shù)循環(huán)中執(zhí)行

說(shuō)明:使用"在計(jì)數(shù)循環(huán)中執(zhí)行"指令,重復(fù)執(zhí)行程序循環(huán),直至運(yùn)行變量不在指定的取值范圍內(nèi)。

也可以嵌套程序循環(huán)。在程序循環(huán)內(nèi),可以編寫包含其它運(yùn)行變量的其它程序循環(huán)。

通過(guò)指令"復(fù)查循環(huán)條件"(Continue),可以終止當(dāng)前正在運(yùn)行的程序循環(huán)。通過(guò)指令"立即退出循環(huán)"(Exit)終止整個(gè)循環(huán)的執(zhí)行。

注意:

有關(guān)運(yùn)行次數(shù)和運(yùn)行變量的信息:

程序運(yùn)行時(shí)無(wú)法更改運(yùn)行次數(shù)。出于性能原因,應(yīng)在塊接口的"Temp"部分中聲明運(yùn)行變量。在循環(huán)中,該運(yùn)行變量無(wú)法更改。

按如下方式聲明此指令:

FOR <運(yùn)行變量> := <起始值> TO <結(jié)束值> BY <增量> DO

<語(yǔ)句>;

END_FOR;

如果增量為1,可以簡(jiǎn)寫為:

FOR <運(yùn)行變量> := <起始值> TO <結(jié)束值> DO

<語(yǔ)句>;

END_FOR;

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖10 FOR語(yǔ)句

下表列出了該指令的參數(shù):

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

*TIA PORTAL V16開(kāi)始支持無(wú)符號(hào)整數(shù)類型的變量

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖11 FOR示例

Tag_Value 操作數(shù)乘以b_array 數(shù)組變量的元素 (2, 4, 6, 8)。并將計(jì)算結(jié)果讀入到a_array 數(shù)組變量的元素 (2, 4, 6, 8) 中。

下表展示了給定 Tag_Value 與 b_array[i] 的值得到 a_array[i] 的結(jié)果:

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

WHILE:滿足條件時(shí)執(zhí)行

說(shuō)明:使用"滿足條件時(shí)執(zhí)行"指令可以重復(fù)執(zhí)行程序循環(huán),直至不滿足執(zhí)行條件為止。該條件是結(jié)果為布爾值(True 或 False)的表達(dá)式。可以將邏輯表達(dá)式或比較表達(dá)式作為條件。

執(zhí)行該指令時(shí),將對(duì)指定的表達(dá)式進(jìn)行運(yùn)算。如果表達(dá)式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。

也可以嵌套程序循環(huán)。在程序循環(huán)內(nèi),可以編寫包含其它運(yùn)行變量的其它程序循環(huán)。

通過(guò)指令"復(fù)查循環(huán)條件"(Continue),可以終止當(dāng)前連續(xù)運(yùn)行的程序循環(huán)。通過(guò)指令"立即退出循環(huán)"(Exit)終止整個(gè)循環(huán)的執(zhí)行。

可按如下方式聲明此指令:

WHILE <條件>

DO <語(yǔ)句>;

END_WHILE;

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖12 WHILE語(yǔ)句

參數(shù)

下表列出了該指令的參數(shù):

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖13 WHILE示例

下表展示了循環(huán)初始和循環(huán)結(jié)束時(shí)變量值的變化

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

REPEAT:不滿足條件時(shí)執(zhí)行

說(shuō)明:使用"不滿足條件時(shí)執(zhí)行"指令可以重復(fù)執(zhí)行程序循環(huán),直至不滿足執(zhí)行條件為止。該條件是結(jié)果為布爾值(True 或 False)的表達(dá)式。可以將邏輯表達(dá)式或比較表達(dá)式作為條件。

執(zhí)行該指令時(shí),將對(duì)指定的表達(dá)式進(jìn)行運(yùn)算。如果表達(dá)式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。

即使?jié)M足終止條件,至少也會(huì)執(zhí)行一次循環(huán)內(nèi)的語(yǔ)句。

也可以嵌套程序循環(huán)。在程序循環(huán)內(nèi),可以編寫包含其它運(yùn)行變量的其它程序循環(huán)。

通過(guò)指令"復(fù)查循環(huán)條件"(Continue),可以終止當(dāng)前連續(xù)運(yùn)行的程序循環(huán)。通過(guò)指令"立即退出循環(huán)"(Exit)終止整個(gè)循環(huán)的執(zhí)行。

可按如下方式聲明此指令:

REPEAT <語(yǔ)句>;

UNTIL <條件>

END_REPEAT;

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖14 REPEAT語(yǔ)句

參數(shù)

下表列出了該指令的參數(shù):

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖15 REPEAT示例

下表展示了循環(huán)初始和循環(huán)結(jié)束時(shí)變量值的變化

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

CONTINUE:復(fù)查循環(huán)條件

說(shuō)明:使用"復(fù)查循環(huán)條件"指令,可以結(jié)束 FOR、WHILE 或 REPEAT 循環(huán)的當(dāng)前程序運(yùn)行。

執(zhí)行該指令后,將再次計(jì)算繼續(xù)執(zhí)行程序循環(huán)的條件。該指令將影響其所在的程序循環(huán)。

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖16 CONTINUE用在FOR循環(huán)


西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖17 CONTINUE用在WHILE循環(huán)


西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖18 CONTINUE用在REPEAT循環(huán)

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖19 CONTINUE示例

下表展示了計(jì)算結(jié)果:

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

如果滿足條件 i < 5,則不執(zhí)行后續(xù)值分配 ("DB10".Test[i] := 1)。運(yùn)行變量 (i) 以增量"1"遞增,然后檢查其當(dāng)前值是否在設(shè)定的循環(huán)取值范圍內(nèi)。如果執(zhí)行變量在循環(huán)取值范圍內(nèi),則將再次計(jì)算 IF 的條件。

如果不滿足條件 i < 5,則將執(zhí)行后續(xù)值分配 ("DB10".Test[i] := 1) 并開(kāi)始一個(gè)新循環(huán)。在這種情況下,執(zhí)行變量也會(huì)以增量"1"進(jìn)行遞增并接受檢查。

EXIT:立即退出循環(huán)

說(shuō)明:使用"立即退出循環(huán)"指令,可以隨時(shí)取消 FOR、WHILE 或 REPEAT 循環(huán)的執(zhí)行,而無(wú)需考慮是否滿足條件,并在循環(huán)結(jié)束(END_FOR、END_WHILE 或 END_REPEAT)后繼續(xù)執(zhí)行程序。

該指令將影響其所在的程序循環(huán)。

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖20 EXIT語(yǔ)句

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖21 EXIT示例

下表展示了計(jì)算結(jié)果:

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

如果滿足條件 i > 5,則將取消循環(huán)執(zhí)行。程序?qū)?END_FOR 后繼續(xù)執(zhí)行。

如果不滿足條件 i <= 5,則將執(zhí)行后續(xù)值分配 ("DB10".Test[i] :=1) 并開(kāi)始一個(gè)新循環(huán)。將運(yùn)行變量 (i) 以 1 進(jìn)行遞增,并進(jìn)行檢查該變量的當(dāng)前值是否在程序中設(shè)定的循環(huán)取值范圍之內(nèi)。如果執(zhí)行變量 (i) 在循環(huán)取值范圍內(nèi),則將再次計(jì)算 IF 的條件。

GOTO:跳轉(zhuǎn)

說(shuō)明:使用"跳轉(zhuǎn)"指令,可以從標(biāo)注為跳轉(zhuǎn)標(biāo)簽的指定點(diǎn)開(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)到"外部"。

注意:

LAD/FBD語(yǔ)言內(nèi)的SCL段,不能使用GOTO指令。

跳轉(zhuǎn)標(biāo)簽遵循以下語(yǔ)法規(guī)則:

  • 字母(a 至 z,A 至 Z)
  • 字母和數(shù)字組合;請(qǐng)必須字母為開(kāi)始

可按如下方式聲明此指令:

GOTO <跳轉(zhuǎn)標(biāo)簽>;

...

<跳轉(zhuǎn)標(biāo)簽>: <語(yǔ)句>

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖22 GOTO示例

下表展示了每個(gè)操作數(shù)數(shù)值對(duì)目標(biāo)變量的變化影響:

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

 

根據(jù)"Tag_Value"操作數(shù)的值,程序?qū)膶?duì)應(yīng)的跳轉(zhuǎn)標(biāo)簽標(biāo)識(shí)點(diǎn)開(kāi)始繼續(xù)執(zhí)行。例如,如果"Tag_Value"操作數(shù)的值為 2,則程序?qū)奶D(zhuǎn)標(biāo)簽"MyLABEL2"開(kāi)始繼續(xù)執(zhí)行。在這種情況下,將跳過(guò)"MyLABEL1"跳轉(zhuǎn)標(biāo)簽所標(biāo)識(shí)的程序行。

RETURN:退出塊

說(shuō)明:使用"退出塊"指令,可以終止當(dāng)前處理塊中的程序執(zhí)行,并在調(diào)用塊中繼續(xù)執(zhí)行。

如果該指令出現(xiàn)在塊結(jié)尾處,則可以跳過(guò)。

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖23 RETURN語(yǔ)句

示例

西門子SCL語(yǔ)言編程,常用指令介紹(收藏了)

圖24 RETURN示例

如果"Tag_Error"操作數(shù)的信號(hào)狀態(tài)不為 0,則將終止當(dāng)前處理塊中的程序執(zhí)行。

 

分享到:
標(biāo)簽:語(yǔ)言 編程
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定