ST編程(chéng)語言

9Y 包裝機(jī)論壇ST編程語言已關閉評論1,238字數 2033閱讀6分46秒閱讀模式

分界符 應用場合 備注和示例
空格 可以在PLC 程序中任何位置(zhì)插入空格 不允許在關鍵字、文字(zì)、標識(shí)符和枚(méi)舉值中直接插入空格。
TAB 可以在PLC 程序中(zhōng)任何位置插入TAB 不(bú)允許在關鍵(jiàn)字、文字、標識符和枚舉值中直接插入TAB。
(* 注釋開始 用戶自定義注釋,可以在程(chéng)序允許空格(gé)的任何位置輸入注
*) 注釋(shì)結束 釋,且 CoDeSys 可以通過設置允許注釋嵌套。
+ 十進製數的前綴(zhuì)符號(正數) +456;+1.23
+ 加操作符 23+11
– 十進製數的前綴符號(負數) -789
– 年-月-日(rì)的分隔符 D#1980-02-29
– 減操作符 11月19日
# 基底數的分隔符 2#1101;16#FF數據類型分隔(gé)符| SINT#123
# 時間文字的分隔符 T#200ms;TOD#05:30:35:28;t#14m_12s
. 正數和小數的分隔符 3.14;2.18
. 分級尋址地址符 %IX0.3
. 結(jié)構元素分隔符 Channel[0].type;abc.number
. 功能塊結構分(fèn)隔符 TON1.Q;SR_3.S1
E/e 指數分界符 1.0e+6;3.14E6
‘ 字符串開始/結束符 ‘Hello World!!’
$ 串中特殊字符的開始 ‘$L’表示換行(háng);’$R’表示回車
: 時刻文字分隔符 TOD#12:41:21.11
: 變量/類型分隔符 Test:INT
:= 初始化操作(zuò)符 Var1:INT:=3
:= 輸入變量鏈接操作符(fú) INT_2(SINGLE:=z2,PRIORITY:=1)
:= 賦(fù)值操作符 Var2:=45
( ) 枚舉(jǔ)表分界符 V:(B1_10V,UP_10V,IP_15V):= UP_10V
( ) 子範圍分(fèn)界(jiè)符 DATA:INT(-32768..32767)
( ) 初始化重複因子 ARRAY(1..2,1..3) OFINT:=1,2,3(4),6
( ) 指令表修(xiū)正符 (A>B)
( ) 函(hán)數(shù)自變量 Var2*LIMIT(Var1)
( ) 子表達式分級 (A*(B-C)+D)
( ) 功能塊輸入表(biǎo)分界符 TON_1(IN:=%IX5.1,PT:=T#500ms);
[] 數組下標分界符 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;
, 數組(zǔ)小標分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 被聲明變(biàn)量的分隔符 VAR_INPUT A,B,C:REAL; END_VAR
, 功能塊初始值分隔符 TON_1(IN:=%IX5.1,PT:=T#500ms);
, 功能塊輸入表分隔符 SR_1(S1:=%IX1.1,RESET:=%IX2.2);
, 操作數表分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 函數自變量(liàng)表分隔符 LIMIT(MN:=4,IN:=%IW0,MX:=20);
Case 至表分隔符 CASE STEP OF 1,5:DISPLAY:=FALSE;
; 類型分隔符 TYPE R:REAL;END_TYPE
; 語句分隔符(fú) QU:=5(A+B);QD:=4(A-B);
.. 子範圍分隔符 ARRAY(1..2,1..3);
Case 範圍(wéi)分隔符 CASE STEP OF (1..5):DISPLAY:=FALSE;
% 直接表示變量的前綴 %IW0
=> 輸出(chū)連接操作符 C10(CU:=bInput,Q=>Out);
PROGRAM 程(chéng)序(xù)段開始 EN ,ENO 使能輸入/輸出
END_PROGRAM 程序結束 EN ,ENO 使能輸入/輸出
FUNCTION 函數段開始(shǐ) TRUE 邏輯真
END_FUNCTION 函數段結束 FALSE 邏輯假
FUNCTION_BLOCK 功能塊段開始 TYPE 數據類型段開始
END_FUNCTION_BLOCK 功能塊段結束 END_TYPE 數據類型段結束
VAR 內部變量段開始 STRUCT 結構體(tǐ)開始(shǐ)
END_VAR 變量段結束 END_STRUCT 結構體結(jié)束
VAR_INPUT 輸入變量段開始 IF THEN EISIF IF 語句
END_VAR 變(biàn)量(liàng)段結束 ELSE END_IF IF語句結束
VAR_OUTPUT 輸出變(biàn)量段開始 CASE OF CASE 語句
END_VAR 變量段(duàn)結束 END_CASE CASE語句(jù)結束
VAR_IN_OUT 輸入輸出變(biàn)量段(duàn)開始 FOR TO BY DO FOR 循環語句
END_VAR 變量段結束 END_FOR
VAR_GLOBAL 全局變量段(duàn)開(kāi)始 REPEAT UNTIL REPEAT 循(xún)環語句
END_VAR 變量(liàng)段結(jié)束 END_REPEAT
CONSTANT 常數變量 WHILE DO WHILE 循環語句
END_WHILE
ARRAY OF 數組(zǔ) RETURN 跳轉返回符
AT 直接地址(zhǐ) NOT,AND,OR,XOR 邏輯操作符
POINTER TO 指針

2.1.1標準數據類型
數據大類 數據類型 關(guān)鍵字 位數 取值範圍
布爾 布爾 BOOL 1 FALSE(0)或TEUE(1)
整型 字節 BYTE 8 0~255
字 WORD 16 0~65535
雙字(zì) DWORD 32 0~4294967295
長字 LWORD 64 0~(2^64-1)
短整型 SINT 8 -128~127
無符號短整型 USINT 8 0~255
整型 INT 16 -32768~32767
無符號整(zhěng)型 UINT 16 0~65535
雙(shuāng)整型(xíng) DINT 32 -2147483648~2147483647
無符號雙整型 UDINT 32 0~4294967295
長整(zhěng)型 LINT 64 -2^63~(2^63-1)
實數 實數 REAL 32 1.175494351e-38~3.402823466e+38
長實(shí)數 LREAL 64 2.2250738585072014e-308~1.7976931348623158e+308
字符(fú)串 字符串 STRING 8*N
時間(jiān)數據(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

分界(jiè)符 應用場合 備注(zhù)和示例
空格 可以在PLC 程(chéng)序中任何位置插(chā)入空格 不允許在關鍵(jiàn)字、文字、標(biāo)識符和枚舉值中直接插入空格。
TAB 可以(yǐ)在PLC 程序中任何位置(zhì)插(chā)入TAB 不允許在關鍵(jiàn)字、文字、標識符和枚舉值中直接插入TAB。
(* 注釋開始 用戶自定義注釋,可以在程序允許空格的任何位置輸入注(zhù)
*) 注釋(shì)結束 釋,且 CoDeSys 可以通過設置允許注釋嵌套(tào)。
+ 十進製數的前綴符號(正數) +456;+1.23
+ 加(jiā)操作符 23+11
- 十進製數的前綴(zhuì)符號(負數) -789
- 年-月(yuè)-日的(de)分隔符(fú) D#1980-02-29
- 減操作符 11月19日
# 基底數的分隔符 2#1101;16#FF數據類型分隔(gé)符 SINT#123
# 時間(jiān)文字(zì)的(de)分隔符 T#200ms;TOD#05:30:35:28;t#14m_12s
. 正數和小數的分隔符(fú) 3.14;2.18
. 分級尋址地址符 %IX0.3
. 結構元素分隔(gé)符 Channel[0].type;abc.number
. 功能塊結(jié)構分隔符 TON1.Q;SR_3.S1
E/e 指(zhǐ)數分界符(fú) 1.0e+6;3.14E6
' 字符串開始/結束(shù)符 'Hello World!!'
$ 串中特殊字符(fú)的開始 '$L'表示換行;'$R'表示回車
: 時(shí)刻(kè)文字分(fèn)隔符(fú) TOD#12:41:21.11
: 變量(liàng)/類型分隔符 Test:INT
:= 初始化操作符 Var1:INT:=3
:= 輸入變量(liàng)鏈(liàn)接操作符(fú) INT_2(SINGLE:=z2,PRIORITY:=1)
:= 賦值操作符 Var2:=45
( ) 枚(méi)舉表分界符 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)
( ) 函數自變量 Var2*LIMIT(Var1)
( ) 子表達式分級 (A*(B-C)+D)
( ) 功能塊輸入表分界符 TON_1(IN:=%IX5.1,PT:=T#500ms);
[] 數組下標分界符 MOD_5_CFG.CH[5].Range:=BI_10V;
, 枚(méi)舉表分隔(gé)符 V:(BI_10V,Up_10V):=Up_1_5V;
, 初始值分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 數組小標分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 被聲明變(biàn)量的分隔符 VAR_INPUT A,B,C:REAL; END_VAR
, 功(gōng)能塊初始值分隔符 TON_1(IN:=%IX5.1,PT:=T#500ms);
, 功能塊輸入(rù)表分隔符(fú) SR_1(S1:=%IX1.1,RESET:=%IX2.2);
, 操作數(shù)表分隔符 ARRAY(1..2,1..3) OF INT:=1,2,3(4),6;
, 函數自變量表分隔符 LIMIT(MN:=4,IN:=%IW0,MX:=20);
Case 至表(biǎo)分隔符 CASE STEP OF 1,5:DISPLAY:=FALSE;
; 類型分隔符 TYPE R:REAL;END_TYPE
; 語句分隔符 QU:=5(A+B);QD:=4(A-B);
.. 子(zǐ)範圍分隔符 ARRAY(1..2,1..3);
Case 範圍分隔符 CASE STEP OF (1..5):DISPLAY:=FALSE;
% 直接表示變量的前綴 %IW0
=> 輸出連接操作符 C10(CU:=bInput,Q=>Out);

前綴符號 定義 約定數據類型
X 位(bit) BOOL
B 字節(BYTE) BYTE
W 字(WORD) WORD
D 雙字(DWORD) DWORD
L 長字(LWORD) LWORD
【例4.X】在程序中定義了變量(liàng)雙字型Var1,如需拿取該變量(liàng)其中的一部分數據,將其轉換成(chéng)布爾/字(zì)節/字類(lèi)型(xíng)的變量,其首地址為多少,該如何換算: VAR Var1 AT%ID48:DWORD; END_VAR
    %I 說明了該變量屬於(yú)輸入(rù)單元,具體的地址為%ID48。該(gāi)地址對應的內存映射詳見(jiàn)表(biǎo)4-x 所示。字(zì)地址%IW96 和%IW97 兩個(gè)字組合後對應(yīng)%ID48,因為48 2(字節)後的字節首地址為96。同樣的(de)道(dào)理,字(zì)節地(dì)址%IB192、%IB 193、%IB 194 和(hé)%IB 195 這四(sì)個字(zì)節變量組合後對應%ID48,因(yīn)為48 4(字節) 後(hòu)對應的(de)字節首地址(zhǐ)正(zhèng)好為192。表4.x 列出了CoDeSys V3.x 在尋址(zhǐ)時,根據(jù)數(shù)據類型的大小(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
映射關係: 1) %MX12.0:是%MB12 的第一(yī)位。 2) %IW4:表示(shì)輸入字單元4(字節單元8 和9)。 3) %Q*:輸(shū)出在一個為特定的位置。 4) %IX1.3:表述輸入第(dì)1 字節單元的(de)第三位。
標準數據(jù)類型
數據大類 數據類型(xíng) 關鍵字 位數 取值範圍
布爾 布爾 BOOL 1 FALSE(0)或(huò)TEUE(1)
整型 字節(jiē) BYTE 8 0~255
字 WORD 16 0~65535
雙字 DWORD 32 0~4294967295
長(zhǎng)字 LWORD 64 0~(2^64-1)
短整型 SINT 8 -128~127
無符號短(duǎn)整型 USINT 8 0~255
整型 INT 16 -32768~32767
無符號整型 UINT 16 0~65535
雙整(zhěng)型 DINT 32 -2147483648~2147483647
無符號雙整型 UDINT 32 0~4294967295
長(zhǎng)整型 LINT 64 -2^63~(2^63-1)
實數 實數 REAL 32 1.175494351e-38~3.402823466e+38
長實數 LREAL 64 2.2250738585072014e-308~1.7976931348623158e+308
字符串 字符串 STRING 8*N
時間數據 時間 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

繼續閱讀
我(wǒ)的(de)微信
這是我(wǒ)的微信掃一掃
weinxin
我的微信
微信號已複製
我的微信公眾(zhòng)號
我的微信公眾號掃一掃
weinxin
我的公眾號
公眾號已複製
 
如何通過參數化配方,一鍵切換螺絲與糖果(guǒ)的包裝模式? 包(bāo)裝機論壇

如何通過參數化配方,一鍵切換螺絲與糖果的包裝模式(shì)?

如何通過參數(shù)化配(pèi)方,一鍵切換螺絲與糖果的包裝模式? 在(zài)競爭日益激烈的製造業中,柔性生產能(néng)力已成為企業的核心優勢。今天您的產線還在包裝M4x10的(de)金屬螺絲,明天可能就需要切換至塑(sù)料件(jiàn)。傳統設備麵對這種跨...
AI如何“慧眼識(shí)珠”進行計數呢? 包裝機論壇(tán)

AI如何(hé)“慧眼識珠”進行計數呢?

在競爭日益激烈的製造業(yè)與電商領域,每一分成本都至(zhì)關重要。您是否還在為(wéi)產(chǎn)品計數環節而困(kùn)擾? 高價值小零件(如螺絲、珠寶、電子元件)的人工計數,效率低下且易(yì)出錯? 藥品、保健品瓶裝(zhuāng)前的計數,對(duì)精度有嚴苛(kē)要...
視覺計數包裝機終極指南:原理、優勢與選型全解析 | 氿億智能裝備 包裝機論壇

視覺計數包裝機終極指(zhǐ)南:原理、優勢與選型全解析 | 氿億智能(néng)裝備

視覺計數包裝機:重塑工業計數包裝的智能核心,選對是關鍵! 在工業製造與物流(liú)配(pèi)送領域(yù),螺絲、螺母、藥片、膠(jiāo)囊、電子(zǐ)元件(jiàn)等小型物料的計數包裝是一項高頻(pín)且關鍵的工序。傳統人工計數方式速度慢、易出錯,已成為製(zhì)...