基础数据类型

类型 描述 示例
BOOL 布尔值 TRUE, FALSE
INT 16 位有符号整数 -32768..32767
DINT 32 位有符号整数 -2^31..2^31-1
REAL 32 位浮点数 3.14
STRING 字符串 ‘hello’
TIME 时间 T#500ms

程序结构

PROGRAM MyProgram
VAR
    input1 : BOOL;
    output1 : BOOL := FALSE;
    counter : INT := 0;
END_VAR

// 主逻辑
IF input1 THEN
    counter := counter + 1;
    output1 := TRUE;
ELSE
    output1 := FALSE;
END_IF

控制结构

IF 语句

IF condition THEN
    // do something
ELSIF condition2 THEN
    // do something else
ELSE
    // fallback
END_IF

FOR 循环

FOR i := 0 TO 100 BY 1 DO
    // loop body
END_FOR

WHILE 循环

WHILE condition DO
    // loop body
END_WHILE

CASE 语句

CASE value OF
    1: action1;
    2: action2;
    3: action3;
ELSE
    default_action;
END_CASE

功能块

功能块是带状态的程序单元,使用 FUNCTION_BLOCK 关键字定义。

FUNCTION_BLOCK Timer
VAR_INPUT
    enable : BOOL;
    preset : TIME;
END_VAR
VAR_OUTPUT
    done : BOOL;
END_VAR
VAR
    elapsed : TIME;
END_VAR

IF enable THEN
    elapsed := elapsed + T#10ms;
    done := elapsed >= preset;
ELSE
    elapsed := T#0s;
    done := FALSE;
END_IF
END_FUNCTION_BLOCK