每個變數在可編程邏輯控制器中都會自動獲得正確的資料類型。轉換只需在介面中設定即可。本章將說明Antcas Control中的各種類型。
此類型僅能有兩種狀態:真或假。在應用程式中,可以使用TRUE(真)或FALSE(假)來定義值,而非變數。
此外,還使用特殊類型NULL。此狀態在初始化變數時設定,即未寫入的變數。此外,NULL還可用於特殊功能。例如,當不得將值通訊至介面時。
整數是一個整數,例如0或26。此外,值也可以為負數。Antcas Control使用64位元可編程邏輯控制器,可計算非常大的數字。最大的數字由常數INT_MAX(9223372036854775807)定義。最小的數字在INT_MIN或INT_MAX+1,因為符號使用一位元。所有超出範圍的數字將以帶有指數的浮點數表示。計算結果則不精確。
整數可以獲得值-0,它不等於FALSE。然而,使用函數EQ(-0,0)的檢查結果為TRUE。-0僅可作為字串'-0'定義。
也可以直接定義十六進位值。它以0x或0X開頭。例如,0xFF變為255。
浮點數或實數是一個小數,例如0.1或22.005(使用點號)。指數也受到支援。例如,10E2代表1'000或10e-2代表0.1。大小寫不影響結果。系統會嘗試將數字轉換為整數,因為這樣對可編程邏輯控制器更簡單。可能發生在大數字上計算時不精確的情況。最大小數位數固定限制為14,以提高可編程邏輯控制器效能。
浮點數有限制的精度。儘管這取決於系統,但Antcas Control通常使用
此外,存在基於10的浮點數可以精確表示的有理數,例如0.1或0.7,但它們沒有基於2的浮點數精確表示法。然而,內部使用基於2的浮點數表示法,無論尾數大小如何。因此,它們無法轉換為其內部二進位表示法而不損失少量精度。這可能導致混淆結果:FLOOR((0.1+0.7)*10)通常會產生7,而非預期的8,因為內部表示法類似於7.9999999999999991118。
因此,永遠不要依賴浮點數的最後一位小數,並且永遠不要直接檢查浮點數是否相等。
字串或稱作字串,使用單引號' '或雙引號" "定義。例如'Text 1'或。使用功能區塊CONCAT可合併多個字串。
換行符或新行可以使用CTRL+Enter創建。然後以箭頭↵表示。
在字串本身中指定'或"的轉義字元不需要。字串可直接使用"Da ist ein " Zeichen"指定。
可以聲明特殊字符。為此,在字串內部使用雙引號指定以下序列:
| 轉義序列 | ASCII縮寫 |
|---|---|
| \\ | Escaped \ |
| \n | LF |
| \r | CR |
| \r\n | CRLF |
| \0 | NUL |
| \t | TAB |
| \e | ESC |
| \f | FORMFEED |
| \x## | 任意位元組 |
例如,要聲明任意位元組126或7E作為十六進位數字,使用以下表達式:"\x7E"。此字串對應於"~"。
在此,7E作為占位符值。可以指定所有在十六進位值00到FF之間的值。請注意,UTF-8 BOM"\xEF\xBB\xBF"會被大多數瀏覽器自動移除。可以掩蓋字串。為此,使用前導反斜線:"\\x7E",這對應於'\x7E'。
注意:所有超出UTF-8範圍的字串都無法永久儲存。在即時視圖中,這些會以深紫色顯示。
請參閱文章字串轉換為數字。
使用DT#定義日期和時間,例如DT#2016-03-25-22:12:00。時間轉換為從日期1970年1月1日(此值在UTC/GMT時區)開始的毫秒整數。
使用D#定義從午夜開始的日期,例如D#2016-03-25。時間轉換為從日期1970年1月1日(此值在UTC/GMT時區)開始的毫秒整數。
使用T#定義以毫秒為單位的時間,例如T#5d3h5m11s500ms。時間轉換為毫秒整數。
無法直接定義陣列。然而,可以使用點號對變數進行分配。請參閱變數。
非常重要:永遠不要在陣列中定義下方的值。例如set和set.p - 可編程邏輯控制器將在此處崩潰並停止運行。此外,這可能會導致意外錯誤。