分界符 應(yīng)用場合 備注和示例
空格 可以在PLC 程序中任何位置插入空格 不允許在關(guān)鍵字、文字、標(biāo)識(shí)符和枚舉值中直接插入空格。
TAB 可以在PLC 程序中任何位置插入TAB 不允許在關(guān)鍵字、文字、標(biāo)識(shí)符和枚舉值中直接插入TAB。
(* 注釋開始 用戶自定義注釋,可以在程序允許空格的任何位置輸入注
*) 注釋結(jié)束 釋,且 CoDeSys 可以通過設(shè)置允許注釋嵌套。
+ 十進(jìn)制數(shù)的前綴符號(正數(shù)) +456;+1.23
+ 加操作符 23+11
– 十進(jìn)制數(shù)的前綴符號(負(fù)數(shù)) -789
– 年-月-日的分隔符 D#1980-02-29
– 減操作符 11月19日
# 基底數(shù)的分隔符 2#1101;16#FF數(shù)據(jù)類型分隔符| SINT#123
# 時(shí)間文字的分隔符 T#200ms;TOD#05:30:35:28;t#14m_12s
. 正數(shù)和小數(shù)的分隔符 3.14;2.18
. 分級尋址地址符 %IX0.3
. 結(jié)構(gòu)元素分隔符 Channel[0].type;abc.number
. 功能塊結(jié)構(gòu)分隔符 TON1.Q;SR_3.S1
E/e 指數(shù)分界符 1.0e+6;3.14E6
‘ 字符串開始/結(jié)束符 ‘Hello World!!’
$ 串中特殊字符的開始 ‘$L’表示換行;’$R’表示回車
: 時(shí)刻文字分隔符 TOD#12:41:21.11
: 變量/類型分隔符 Test:INT
:= 初始化操作符 Var1:INT:=3
:= 輸入變量鏈接操作符 INT_2(SINGLE:=z2,PRIORITY:=1)
:= 賦值操作符 Var2:=45
( ) 枚舉表分界符 V:(B1_10V,UP_10V,IP_15V):= UP_10V
( ) 子范圍分界符 DATA:INT(-32768..32767)
( ) 初始化重復(fù)因子 ARRAY(1..2,1..3) OFINT:=1,2,3(4),6
( ) 指令表修正符 (A>B)
( ) 函數(shù)自變量 Var2*LIMIT(Var1)
( ) 子表達(dá)式分級 (A*(B-C)+D)
( ) 功能塊輸入表分界符 TON_1(IN:=%IX5.1,PT:=T#500ms);
[] 數(shù)組下標(biāo)分界符 MOD_5_CFG.CH[5].Range:=BI_10V;
, 枚舉表分隔符 V:(BI_10V,Up_10V):=Up_1_5V;
, 初始值分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 數(shù)組小標(biāo)分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 被聲明變量的分隔符 VAR_INPUT A,B,C:REAL; END_VAR
, 功能塊初始值分隔符 TON_1(IN:=%IX5.1,PT:=T#500ms);
, 功能塊輸入表分隔符 SR_1(S1:=%IX1.1,RESET:=%IX2.2);
, 操作數(shù)表分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 函數(shù)自變量表分隔符 LIMIT(MN:=4,IN:=%IW0,MX:=20);
Case 至表分隔符 CASE STEP OF 1,5:DISPLAY:=FALSE;
; 類型分隔符 TYPE R:REAL;END_TYPE
; 語句分隔符 QU:=5(A+B);QD:=4(A-B);
.. 子范圍分隔符 ARRAY(1..2,1..3);
Case 范圍分隔符 CASE STEP OF (1..5):DISPLAY:=FALSE;
% 直接表示變量的前綴 %IW0
=> 輸出連接操作符 C10(CU:=bInput,Q=>Out);
PROGRAM 程序段開始 EN ,ENO 使能輸入/輸出
END_PROGRAM 程序結(jié)束 EN ,ENO 使能輸入/輸出
FUNCTION 函數(shù)段開始 TRUE 邏輯真
END_FUNCTION 函數(shù)段結(jié)束 FALSE 邏輯假
FUNCTION_BLOCK 功能塊段開始 TYPE 數(shù)據(jù)類型段開始
END_FUNCTION_BLOCK 功能塊段結(jié)束 END_TYPE 數(shù)據(jù)類型段結(jié)束
VAR 內(nèi)部變量段開始 STRUCT 結(jié)構(gòu)體開始
END_VAR 變量段結(jié)束 END_STRUCT 結(jié)構(gòu)體結(jié)束
VAR_INPUT 輸入變量段開始 IF THEN EISIF IF 語句
END_VAR 變量段結(jié)束 ELSE END_IF IF語句結(jié)束
VAR_OUTPUT 輸出變量段開始 CASE OF CASE 語句
END_VAR 變量段結(jié)束 END_CASE CASE語句結(jié)束
VAR_IN_OUT 輸入輸出變量段開始 FOR TO BY DO FOR 循環(huán)語句
END_VAR 變量段結(jié)束 END_FOR
VAR_GLOBAL 全局變量段開始 REPEAT UNTIL REPEAT 循環(huán)語句
END_VAR 變量段結(jié)束 END_REPEAT
CONSTANT 常數(shù)變量 WHILE DO WHILE 循環(huán)語句
END_WHILE
ARRAY OF 數(shù)組 RETURN 跳轉(zhuǎn)返回符
AT 直接地址 NOT,AND,OR,XOR 邏輯操作符
POINTER TO 指針
2.1.1標(biāo)準(zhǔn)數(shù)據(jù)類型
數(shù)據(jù)大類 數(shù)據(jù)類型 關(guān)鍵字 位數(shù) 取值范圍
布爾 布爾 BOOL 1 FALSE(0)或TEUE(1)
整型 字節(jié) BYTE 8 0~255
字 WORD 16 0~65535
雙字 DWORD 32 0~4294967295
長字 LWORD 64 0~(2^64-1)
短整型 SINT 8 -128~127
無符號短整型 USINT 8 0~255
整型 INT 16 -32768~32767
無符號整型 UINT 16 0~65535
雙整型 DINT 32 -2147483648~2147483647
無符號雙整型 UDINT 32 0~4294967295
長整型 LINT 64 -2^63~(2^63-1)
實(shí)數(shù) 實(shí)數(shù) REAL 32 1.175494351e-38~3.402823466e+38
長實(shí)數(shù) LREAL 64 2.2250738585072014e-308~1.7976931348623158e+308
字符串 字符串 STRING 8*N
時(shí)間數(shù)據(jù) 時(shí)間 TIME 32 T#0ms~T#71582m47s295ms
32 TIME_OF_DAY TOD#0:0:0~TOD#1193:02:47.295
32 DATE D#1970-1-1~D#2106-02-06
32 DATE_AND_TIME DT#1970-1-1-0:0:0 ~DT#2106-02-06-06:28:15
分界符 應(yīng)用場合 備注和示例
空格 可以在PLC 程序中任何位置插入空格 不允許在關(guān)鍵字、文字、標(biāo)識(shí)符和枚舉值中直接插入空格。
TAB 可以在PLC 程序中任何位置插入TAB 不允許在關(guān)鍵字、文字、標(biāo)識(shí)符和枚舉值中直接插入TAB。
(* 注釋開始 用戶自定義注釋,可以在程序允許空格的任何位置輸入注
*) 注釋結(jié)束 釋,且 CoDeSys 可以通過設(shè)置允許注釋嵌套。
+ 十進(jìn)制數(shù)的前綴符號(正數(shù)) +456;+1.23
+ 加操作符 23+11
- 十進(jìn)制數(shù)的前綴符號(負(fù)數(shù)) -789
- 年-月-日的分隔符 D#1980-02-29
- 減操作符 11月19日
# 基底數(shù)的分隔符 2#1101;16#FF數(shù)據(jù)類型分隔符 SINT#123
# 時(shí)間文字的分隔符 T#200ms;TOD#05:30:35:28;t#14m_12s
. 正數(shù)和小數(shù)的分隔符 3.14;2.18
. 分級尋址地址符 %IX0.3
. 結(jié)構(gòu)元素分隔符 Channel[0].type;abc.number
. 功能塊結(jié)構(gòu)分隔符 TON1.Q;SR_3.S1
E/e 指數(shù)分界符 1.0e+6;3.14E6
' 字符串開始/結(jié)束符 'Hello World!!'
$ 串中特殊字符的開始 '$L'表示換行;'$R'表示回車
: 時(shí)刻文字分隔符 TOD#12:41:21.11
: 變量/類型分隔符 Test:INT
:= 初始化操作符 Var1:INT:=3
:= 輸入變量鏈接操作符 INT_2(SINGLE:=z2,PRIORITY:=1)
:= 賦值操作符 Var2:=45
( ) 枚舉表分界符 V:(B1_10V,UP_10V,IP_15V):= UP_10V
( ) 子范圍分界符 DATA:INT(-32768..32767)
( ) 初始化重復(fù)因子 ARRAY(1..2,1..3) OFINT:=1,2,3(4),6
( ) 指令表修正符 (A>B)
( ) 函數(shù)自變量 Var2*LIMIT(Var1)
( ) 子表達(dá)式分級 (A*(B-C)+D)
( ) 功能塊輸入表分界符 TON_1(IN:=%IX5.1,PT:=T#500ms);
[] 數(shù)組下標(biāo)分界符 MOD_5_CFG.CH[5].Range:=BI_10V;
, 枚舉表分隔符 V:(BI_10V,Up_10V):=Up_1_5V;
, 初始值分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 數(shù)組小標(biāo)分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 被聲明變量的分隔符 VAR_INPUT A,B,C:REAL; END_VAR
, 功能塊初始值分隔符 TON_1(IN:=%IX5.1,PT:=T#500ms);
, 功能塊輸入表分隔符 SR_1(S1:=%IX1.1,RESET:=%IX2.2);
, 操作數(shù)表分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 函數(shù)自變量表分隔符 LIMIT(MN:=4,IN:=%IW0,MX:=20);
Case 至表分隔符 CASE STEP OF 1,5:DISPLAY:=FALSE;
; 類型分隔符 TYPE R:REAL;END_TYPE
; 語句分隔符 QU:=5(A+B);QD:=4(A-B);
.. 子范圍分隔符 ARRAY(1..2,1..3);
Case 范圍分隔符 CASE STEP OF (1..5):DISPLAY:=FALSE;
% 直接表示變量的前綴 %IW0
=> 輸出連接操作符 C10(CU:=bInput,Q=>Out);
前綴符號 定義 約定數(shù)據(jù)類型
X 位(bit) BOOL
B 字節(jié)(BYTE) BYTE
W 字(WORD) WORD
D 雙字(DWORD) DWORD
L 長字(LWORD) LWORD
【例4.X】在程序中定義了變量雙字型Var1,如需拿取該變量其中的一部分?jǐn)?shù)據(jù),將其轉(zhuǎn)換成布爾/字節(jié)/字類型的變量,其首地址為多少,該如何換算: VAR Var1 AT%ID48:DWORD; END_VAR
????%I 說明了該變量屬于輸入單元,具體的地址為%ID48。該地址對應(yīng)的內(nèi)存映射詳見表4-x 所示。字地址%IW96 和%IW97 兩個(gè)字組合后對應(yīng)%ID48,因?yàn)?8?2(字節(jié))后的字節(jié)首地址為96。同樣的道理,字節(jié)地址%IB192、%IB 193、%IB 194 和%IB 195 這四個(gè)字節(jié)變量組合后對應(yīng)%ID48,因?yàn)?8?4(字節(jié)) 后對應(yīng)的字節(jié)首地址正好為192。表4.x 列出了CoDeSys V3.x 在尋址時(shí),根據(jù)數(shù)據(jù)類型的大小(X:bit,B:byte,W:word,D:dword)。
%IX 96.0 - 96.7 96.8 - 192.15 97.0 - 97.7 97.8 - 97.15
%IB 192 193 194 195
%IW 96 96 97 97
%ID 48 48 48 48
映射關(guān)系: 1) %MX12.0:是%MB12 的第一位。 2) %IW4:表示輸入字單元4(字節(jié)單元8 和9)。 3) %Q*:輸出在一個(gè)為特定的位置。 4) %IX1.3:表述輸入第1 字節(jié)單元的第三位。
標(biāo)準(zhǔn)數(shù)據(jù)類型
數(shù)據(jù)大類 數(shù)據(jù)類型 關(guān)鍵字 位數(shù) 取值范圍
布爾 布爾 BOOL 1 FALSE(0)或TEUE(1)
整型 字節(jié) BYTE 8 0~255
字 WORD 16 0~65535
雙字 DWORD 32 0~4294967295
長字 LWORD 64 0~(2^64-1)
短整型 SINT 8 -128~127
無符號短整型 USINT 8 0~255
整型 INT 16 -32768~32767
無符號整型 UINT 16 0~65535
雙整型 DINT 32 -2147483648~2147483647
無符號雙整型 UDINT 32 0~4294967295
長整型 LINT 64 -2^63~(2^63-1)
實(shí)數(shù) 實(shí)數(shù) REAL 32 1.175494351e-38~3.402823466e+38
長實(shí)數(shù) LREAL 64 2.2250738585072014e-308~1.7976931348623158e+308
字符串 字符串 STRING 8*N
時(shí)間數(shù)據(jù) 時(shí)間 TIME 32 T#0ms~T#71582m47s295ms
32 TIME_OF_DAY TOD#0:0:0~TOD#1193:02:47.295
32 DATE D#1970-1-1~D#2106-02-06
32 DATE_AND_TIME DT#1970-1-1-0:0:0 ~DT#2106-02-06-06:28:15
評論