ST編程語言

    分界符 應用場合 備注和示例
    空格 可以在PLC 程序中任何位置插入空格 不允許在關鍵字、文字、標識符和枚舉值中直接插入空格。
    TAB 可以在PLC 程序中任何位置插入TAB 不允許在關鍵字、文字、標識符和枚舉值中直接插入TAB。
    (* 注釋開始 用戶自定義注釋,可以在程序允許空格的任何位置輸入注
    *) 注釋結束 釋,且 CoDeSys 可以通過設置允許注釋嵌套。
    + 十進制數的前綴符號(正數) +456;+1.23
    + 加操作符 23+11
    – 十進制數的前綴符號(負數) -789
    – 年-月-日的分隔符 D#1980-02-29
    – 減操作符 11月19日
    # 基底數的分隔符 2#1101;16#FF數據類型分隔符| SINT#123
    # 時間文字的分隔符 T#200ms;TOD#05:30:35:28;t#14m_12s
    . 正數和小數的分隔符 3.14;2.18
    . 分級尋址地址符 %IX0.3
    . 結構元素分隔符 Channel[0].type;abc.number
    . 功能塊結構分隔符 TON1.Q;SR_3.S1
    E/e 指數分界符 1.0e+6;3.14E6
    ‘ 字符串開始/結束符 ‘Hello World!!’
    $ 串中特殊字符的開始 ‘$L’表示換行;’$R’表示回車
    : 時刻文字分隔符 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)
    ( ) 初始化重復因子 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;
    , 枚舉表分隔符 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;
    , 被聲明變量的分隔符 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;
    , 函數自變量表分隔符 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 程序結束 EN ,ENO 使能輸入/輸出
    FUNCTION 函數段開始 TRUE 邏輯真
    END_FUNCTION 函數段結束 FALSE 邏輯假
    FUNCTION_BLOCK 功能塊段開始 TYPE 數據類型段開始
    END_FUNCTION_BLOCK 功能塊段結束 END_TYPE 數據類型段結束
    VAR 內部變量段開始 STRUCT 結構體開始
    END_VAR 變量段結束 END_STRUCT 結構體結束
    VAR_INPUT 輸入變量段開始 IF THEN EISIF IF 語句
    END_VAR 變量段結束 ELSE END_IF IF語句結束
    VAR_OUTPUT 輸出變量段開始 CASE OF CASE 語句
    END_VAR 變量段結束 END_CASE CASE語句結束
    VAR_IN_OUT 輸入輸出變量段開始 FOR TO BY DO FOR 循環語句
    END_VAR 變量段結束 END_FOR
    VAR_GLOBAL 全局變量段開始 REPEAT UNTIL REPEAT 循環語句
    END_VAR 變量段結束 END_REPEAT
    CONSTANT 常數變量 WHILE DO WHILE 循環語句
    END_WHILE
    ARRAY OF 數組 RETURN 跳轉返回符
    AT 直接地址 NOT,AND,OR,XOR 邏輯操作符
    POINTER TO 指針

    2.1.1標準數據類型
    數據大類 數據類型 關鍵字 位數 取值范圍
    布爾 布爾 BOOL 1 FALSE(0)或TEUE(1)
    整型 字節 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)
    實數 實數 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

    分界符 應用場合 備注和示例
    空格 可以在PLC 程序中任何位置插入空格 不允許在關鍵字、文字、標識符和枚舉值中直接插入空格。
    TAB 可以在PLC 程序中任何位置插入TAB 不允許在關鍵字、文字、標識符和枚舉值中直接插入TAB。
    (* 注釋開始 用戶自定義注釋,可以在程序允許空格的任何位置輸入注
    *) 注釋結束 釋,且 CoDeSys 可以通過設置允許注釋嵌套。
    + 十進制數的前綴符號(正數) +456;+1.23
    + 加操作符 23+11
    - 十進制數的前綴符號(負數) -789
    - 年-月-日的分隔符 D#1980-02-29
    - 減操作符 11月19日
    # 基底數的分隔符 2#1101;16#FF數據類型分隔符 SINT#123
    # 時間文字的分隔符 T#200ms;TOD#05:30:35:28;t#14m_12s
    . 正數和小數的分隔符 3.14;2.18
    . 分級尋址地址符 %IX0.3
    . 結構元素分隔符 Channel[0].type;abc.number
    . 功能塊結構分隔符 TON1.Q;SR_3.S1
    E/e 指數分界符 1.0e+6;3.14E6
    ' 字符串開始/結束符 'Hello World!!'
    $ 串中特殊字符的開始 '$L'表示換行;'$R'表示回車
    : 時刻文字分隔符 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)
    ( ) 初始化重復因子 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;
    , 枚舉表分隔符 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;
    , 被聲明變量的分隔符 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;
    , 函數自變量表分隔符 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);

    前綴符號 定義 約定數據類型
    X 位(bit) BOOL
    B 字節(BYTE) BYTE
    W 字(WORD) WORD
    D 雙字(DWORD) DWORD
    L 長字(LWORD) LWORD
    【例4.X】在程序中定義了變量雙字型Var1,如需拿取該變量其中的一部分數據,將其轉換成布爾/字節/字類型的變量,其首地址為多少,該如何換算: VAR Var1 AT%ID48:DWORD; END_VAR
    ????%I 說明了該變量屬于輸入單元,具體的地址為%ID48。該地址對應的內存映射詳見表4-x 所示。字地址%IW96 和%IW97 兩個字組合后對應%ID48,因為48?2(字節)后的字節首地址為96。同樣的道理,字節地址%IB192、%IB 193、%IB 194 和%IB 195 這四個字節變量組合后對應%ID48,因為48?4(字節) 后對應的字節首地址正好為192。表4.x 列出了CoDeSys V3.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 的第一位。 2) %IW4:表示輸入字單元4(字節單元8 和9)。 3) %Q*:輸出在一個為特定的位置。 4) %IX1.3:表述輸入第1 字節單元的第三位。
    標準數據類型
    數據大類 數據類型 關鍵字 位數 取值范圍
    布爾 布爾 BOOL 1 FALSE(0)或TEUE(1)
    整型 字節 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)
    實數 實數 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

    繼續閱讀
    • 我的微信
    • 這是我的微信掃一掃
    • weinxin
    • 我的微信公眾號
    • 我的微信公眾號掃一掃
    • weinxin
    連卷預開口袋包裝機 包裝機論壇

    連卷預開口袋包裝機

      1.包裝機采用整體集成方案。 2.包裝機軟件與打印機采用直接交互方式,是同類產品最先采用集成化技術。 3.包裝機與打印機軟件集成化設計,集成到一臺工業電腦上顯示。 4.自主開發包裝機軟件...
    橡膠密封圈包裝一體機 包裝機論壇

    橡膠密封圈包裝一體機

    1.包裝機采用整體集成設計方案。 2.包裝機軟件與打印機采用直接交互方式,是同類產品先采用集成化技術。 3.包裝機與打印機軟件集成化設計,集成到一臺工業電腦上顯示,良好的交互操作,讓操作都更方便,簡單...
    安徽密封圈打印一體包裝機應用 包裝機論壇

    安徽密封圈打印一體包裝機應用

    1.廈門氿億智能包裝設備有限公司一直致力于為客戶提高效率,追求穩定及產品的極致為經營理念,所擁有的自動化設備廣泛應用于密封圈,橡膠,注塑件,五金、螺絲、螺母、家具配件等行業。 2.優質高效的包裝設備不...
    廈門密封圈 包裝機論壇

    廈門密封圈

    1.打印包裝一體機,適用與視覺品檢機,密封圈品檢機,密封圈篩選機,視覺計數,稱重,注塑機,及機械手,電子電容,配套使用,適用大批量包裝,或機械手夾取包裝方式,對設備穩定性要求高的應用場合。 2.打印機...