當一個值被指定,變量的當前值被通過表達式指定的新的值代替。此表達式也能夠包含函數標識符,其被語句激活,然后返回相應的值(返回值)。
如下圖所示,在賦值符右邊的表達式被求值,且得到的值作為結果設定給其名字寫在賦值符左邊的變量。函數允許的變量如下圖所示:
能夠將同類型的不同變量指定給基本數據類型的每個變量和每個表達式。
例子(Example)
FUNCTION_BLOCK FB12
VAR 聲明變量類型
SWITCH_1 : INT ; 整數
SWITCH_2 : INT ;
SETPOINT_1 : REAL ;浮點數
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 ;
// 給變量賦予表達式
SWITCH_2 := SWITCH_1 * 3 ;
END_FUNCTION_BLOCK
STRUCT和UDT類型變量的賦值
STRUCT和UDT類型變量是表示一個完整結構或一個結構元素的結構化變量。
下面是有效結構變量的例子:
Image //結構的標識符
Image.element //結構元素的標識符
Image.arr //在一個結構中的一維數組標識符
Image.arr[2,5] //在一個結構中的數組元素的標識符
賦值一個完整結構
一個完整結構只能賦值給另一個完整結構,兩個結構內部的名稱和數據類型應完全匹配。下面的賦值是有效的:
structname_1 := structname_2 ;
賦值結構元素
能夠將一個同類型變量、同類型表達式或另一個結構部件賦值給任何結構元素。
能夠通過說明結構的標識符來引用結構元素,結構元素的標識符用一個句點分開。下面的賦值是有效的:
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 //目標結構
VOLTAGE :REAL ;
RESISTANCE :REAL ;
SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;
END_STRUCT ;
PROCVAL : STRUCT //源結構
VOLTAGE : REAL ;
RESISTANCE : REAL ;
SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;
END_STRUCT ;
END_VAR
BEGIN
//賦值給一個完整結構
MEASVAL := PROCVAL ;
//賦值給地個結構元素
MEASVAL.VOLTAGE := PROCVAL.VOLTAGE ;
//將一個結構元素賦值給同類型變量
AUXVAR := PROCVAL.RESISTANCE ;
//將一個常量賦值給結構元素
MEASVAL.RESISTANCE := 4.5;
//將一個常量賦值給一維數組元素
MEASVAL.SIMPLEARR[1,2] := 4;
END_FUNCTION_BLOCK
編輯:lyn
-
SCL
+關注
關注
1文章
239瀏覽量
17040
原文標題:SCL 語句的賦值
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論