當(dāng)一個值被指定,變量的當(dāng)前值被通過表達(dá)式指定的新的值代替。此表達(dá)式也能夠包含函數(shù)標(biāo)識符,其被語句激活,然后返回相應(yīng)的值(返回值)。
如下圖所示,在賦值符右邊的表達(dá)式被求值,且得到的值作為結(jié)果設(shè)定給其名字寫在賦值符左邊的變量。函數(shù)允許的變量如下圖所示:

能夠?qū)⑼愋偷牟煌兞恐付ńo基本數(shù)據(jù)類型的每個變量和每個表達(dá)式。
例子(Example)
FUNCTION_BLOCK FB12
VAR 聲明變量類型
SWITCH_1 : INT ; 整數(shù)
SWITCH_2 : INT ;
SETPOINT_1 : REAL ;浮點(diǎn)數(shù)
SETPOINT_2 : REAL ;
QUERY_1 : BOOL ; 位
TIME_1 : S5TIME ;時間計時器
TIME_2 : TIME ;時間
DATE_1 : DATE ;日期
TIMEOFDAY_1 : TIME_OF_DAY ;時間和日期
END_VAR
BEGIN
// 給變量賦予常量值
SWITCH_1 := -17 ;
SETPOINT_1 := 100.1 ;
QUERY_1 := TRUE ;
TIME_1 := T#1H_20M_10S_30MS ;
TIME_2 := T#2D_1H_20M_10S_30MS ;
DATE_1 := D#1996-01-10 ;
// 給變量賦予變量值
SETPOINT_1 := SETPOINT_2 ;
SWITCH_2 := SWITCH_1 ;
// 給變量賦予表達(dá)式
SWITCH_2 := SWITCH_1 * 3 ;
END_FUNCTION_BLOCK
STRUCT和UDT類型變量的賦值
STRUCT和UDT類型變量是表示一個完整結(jié)構(gòu)或一個結(jié)構(gòu)元素的結(jié)構(gòu)化變量。
下面是有效結(jié)構(gòu)變量的例子:
Image //結(jié)構(gòu)的標(biāo)識符
Image.element //結(jié)構(gòu)元素的標(biāo)識符
Image.arr //在一個結(jié)構(gòu)中的一維數(shù)組標(biāo)識符
Image.arr[2,5] //在一個結(jié)構(gòu)中的數(shù)組元素的標(biāo)識符
賦值一個完整結(jié)構(gòu)
一個完整結(jié)構(gòu)只能賦值給另一個完整結(jié)構(gòu),兩個結(jié)構(gòu)內(nèi)部的名稱和數(shù)據(jù)類型應(yīng)完全匹配。下面的賦值是有效的:
structname_1 := structname_2 ;
賦值結(jié)構(gòu)元素
能夠?qū)⒁粋€同類型變量、同類型表達(dá)式或另一個結(jié)構(gòu)部件賦值給任何結(jié)構(gòu)元素。
能夠通過說明結(jié)構(gòu)的標(biāo)識符來引用結(jié)構(gòu)元素,結(jié)構(gòu)元素的標(biāo)識符用一個句點(diǎn)分開。下面的賦值是有效的:
structname_1.element1 := Value ;
structname_1.element1 := 20.0 ;
structname_1.element1 := structname_2.element1 ;
structname_1.arrname1 := structname_2.arrname2 ;
structname_1.arrname[10] := 100 ;
例子:
FUNCTION_BLOCK FB3
VAR
AUXVAR : REAL ;
MEASVAL : STRUCT //目標(biāo)結(jié)構(gòu)
VOLTAGE :REAL ;
RESISTANCE :REAL ;
SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;
END_STRUCT ;
PROCVAL : STRUCT //源結(jié)構(gòu)
VOLTAGE : REAL ;
RESISTANCE : REAL ;
SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;
END_STRUCT ;
END_VAR
BEGIN
//賦值給一個完整結(jié)構(gòu)
MEASVAL := PROCVAL ;
//賦值給地個結(jié)構(gòu)元素
MEASVAL.VOLTAGE := PROCVAL.VOLTAGE ;
//將一個結(jié)構(gòu)元素賦值給同類型變量
AUXVAR := PROCVAL.RESISTANCE ;
//將一個常量賦值給結(jié)構(gòu)元素
MEASVAL.RESISTANCE := 4.5;
//將一個常量賦值給一維數(shù)組元素
MEASVAL.SIMPLEARR[1,2] := 4;
END_FUNCTION_BLOCK
編輯:lyn
-
SCL
+關(guān)注
關(guān)注
1文章
244瀏覽量
18028
原文標(biāo)題:SCL 語句的賦值
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
在TIA Portal V21中基于S7-1200 G2使用SCL語言設(shè)計Modbus RTU輪詢程序
探索SCL3400-D01數(shù)字雙軸傾角儀:高精度與穩(wěn)定性的完美結(jié)合
條件的執(zhí)行語句
GD32F470使用__attribute__語句,keil編譯通過但是scons編譯不通過,為什么?
模擬I2C通信失敗,出現(xiàn)SCL、SDA line low錯誤怎么解決?
人工智能行業(yè)如何使用for循環(huán)語句進(jìn)行循環(huán)
matlab appdesigner 表格組件賦值問題,求助
基礎(chǔ)篇3:掌握Python中的條件語句與循環(huán)
詳解TIA Portal SCL編程語言中的IF語句
在testbench中如何使用阻塞賦值和非阻塞賦值
詳解SCL語句如何賦值
評論