基础数据类型
| 类型 | 描述 | 示例 |
|---|---|---|
| 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