建立四模块 CMake 骨架与 line1 样例。
- compiler / vm 空静态库,host 可执行打印版本 - 顶层解开 add_subdirectory,tests 接入 CTest(host_version 通过) - examples/line1 落地 project.toml 与三个 .st - Types.h 注释补饱和规则,与 Doc/isa 一致 - .gitignore 忽略 Doc/会话记录.md
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
(* globals.st *)
|
||||
VAR_GLOBAL
|
||||
EmergencyStop : BOOL := FALSE;
|
||||
I0_0 : BOOL;
|
||||
I0_1 : BOOL;
|
||||
Q0_0 : BOOL;
|
||||
END_VAR
|
||||
@@ -0,0 +1,8 @@
|
||||
(* main.st *)
|
||||
PROGRAM MAIN
|
||||
VAR
|
||||
starter : MotorStarter;
|
||||
END_VAR
|
||||
starter(start := I0_0, stop := I0_1);
|
||||
Q0_0 := starter.Q;
|
||||
END_PROGRAM
|
||||
@@ -0,0 +1,13 @@
|
||||
(* motor.st *)
|
||||
FUNCTION_BLOCK MotorStarter
|
||||
VAR_EXTERNAL
|
||||
EmergencyStop : BOOL;
|
||||
END_VAR
|
||||
VAR_INPUT
|
||||
start, stop : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Q : BOOL;
|
||||
END_VAR
|
||||
Q := start AND NOT stop AND NOT EmergencyStop;
|
||||
END_FUNCTION_BLOCK
|
||||
@@ -0,0 +1,28 @@
|
||||
[project]
|
||||
name = "line1"
|
||||
entry = "program MAIN"
|
||||
cycle_limit = 100000
|
||||
dt_ms = 10
|
||||
|
||||
[files]
|
||||
st = ["globals.st", "motor.st", "main.st"]
|
||||
|
||||
# 全工程只允许这一处出现 VAR_GLOBAL(第一版:单个文件)
|
||||
[gvl]
|
||||
file = "globals.st"
|
||||
|
||||
# 可选:I/O 绑定。不创造变量,var 必须已在 GVL 里声明
|
||||
[[io.input]]
|
||||
var = "EmergencyStop"
|
||||
channel = 0
|
||||
bit = 2
|
||||
|
||||
[[io.input]]
|
||||
var = "I0_0"
|
||||
channel = 0
|
||||
bit = 0
|
||||
|
||||
[[io.output]]
|
||||
var = "Q0_0"
|
||||
channel = 0
|
||||
bit = 0
|
||||
Reference in New Issue
Block a user