資料型態
Ex:變數資料型態指定時,型態如下,這裡不討論Timer, Counter, Float
- Word (Unsigned)
- Word (signed)
- Double Word (Unsigned)
- Double Word (signed)
函數資料型態
- Word
- Double Word
- INT
- DINT
- STRING
- ANY16
- ANY16_S
- ANY16_U
- ANY32
- ANY32_S
- ANY32_U
以下錯誤範例
解說:
D213 標籤型態為 {{% callout warning %}} Unsigned Word {{% /callout %}} MEAN 輸出型態為 {{% callout warning %}} ANY16_S {{% /callout %}} 型態不符,必須做型態轉換。但D213 標籤作為數值使用標籤,不可使用 [INT_TO_WORD],要使用 [INT2UINT]
[INT_TO_WORD] 會受內部記憶體改,影響數值顯示。原因:轉換後高位元不定數值,清除高位元可得正確數值,但高位元何時會再被修改不可知,且當使用變數名稱時,高位元無法正確解析設定,數值超過255即會使用高位元,數值無法正確轉換。
解法
挑選正確函數,[MEAN_U],避免資料型態轉換或挑選正確資料轉換函式。使用無號資料格式務必挑選帶有 [ _U ] 的函式。
無號轉有號,務必確認數值最大值不超過 32,767(16 bit),2,147,483,647(32 bit),否則數值出錯