當(dāng)一個(gè)值被指定,變量的當(dāng)前值被通過表達(dá)式指定的新的值代替。此表達(dá)式也能夠包含函數(shù)標(biāo)識(shí)符,其被語句激活,然后返回相應(yīng)的值(返回值)。
如下圖所示,在賦值符右邊的表達(dá)式被求值,且得到的值作為結(jié)果設(shè)定給其名字寫在賦值符左邊的變量。函數(shù)允許的變量如下圖所示:
能夠?qū)⑼愋偷牟煌兞恐付ńo基本數(shù)據(jù)類型的每個(gè)變量和每個(gè)表達(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 ;時(shí)間計(jì)時(shí)器
TIME_2 : TIME ;時(shí)間
DATE_1 : DATE ;日期
TIMEOFDAY_1 : TIME_OF_DAY ;時(shí)間和日期
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類型變量是表示一個(gè)完整結(jié)構(gòu)或一個(gè)結(jié)構(gòu)元素的結(jié)構(gòu)化變量。
下面是有效結(jié)構(gòu)變量的例子:
Image //結(jié)構(gòu)的標(biāo)識(shí)符
Image.element //結(jié)構(gòu)元素的標(biāo)識(shí)符
Image.arr //在一個(gè)結(jié)構(gòu)中的一維數(shù)組標(biāo)識(shí)符
Image.arr[2,5] //在一個(gè)結(jié)構(gòu)中的數(shù)組元素的標(biāo)識(shí)符
賦值一個(gè)完整結(jié)構(gòu)
一個(gè)完整結(jié)構(gòu)只能賦值給另一個(gè)完整結(jié)構(gòu),兩個(gè)結(jié)構(gòu)內(nèi)部的名稱和數(shù)據(jù)類型應(yīng)完全匹配。下面的賦值是有效的:
structname_1 := structname_2 ;
賦值結(jié)構(gòu)元素
能夠?qū)⒁粋€(gè)同類型變量、同類型表達(dá)式或另一個(gè)結(jié)構(gòu)部件賦值給任何結(jié)構(gòu)元素。
能夠通過說明結(jié)構(gòu)的標(biāo)識(shí)符來引用結(jié)構(gòu)元素,結(jié)構(gòu)元素的標(biāo)識(shí)符用一個(gè)句點(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
//賦值給一個(gè)完整結(jié)構(gòu)
MEASVAL := PROCVAL ;
//賦值給地個(gè)結(jié)構(gòu)元素
MEASVAL.VOLTAGE := PROCVAL.VOLTAGE ;
//將一個(gè)結(jié)構(gòu)元素賦值給同類型變量
AUXVAR := PROCVAL.RESISTANCE ;
//將一個(gè)常量賦值給結(jié)構(gòu)元素
MEASVAL.RESISTANCE := 4.5;
//將一個(gè)常量賦值給一維數(shù)組元素
MEASVAL.SIMPLEARR[1,2] := 4;
END_FUNCTION_BLOCK
編輯:lyn
-
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17057
原文標(biāo)題:SCL 語句的賦值
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論