步骤4:用例 21_var_temp(VAR_TEMP 每周期重置语义)+ 文档更新 + 修复 store_target STORE 缺 func 隐藏 bug

This commit is contained in:
2026-08-26 18:01:08 +08:00
parent 536ad1a96b
commit 92e91350cc
12 changed files with 80 additions and 7 deletions
+8
View File
@@ -0,0 +1,8 @@
# 期望:编译通过;VAR_TEMP 每周期重置,VAR 跨周期持久
- FB Foo`tmp`VAR_TEMP 初值 100)每周期重置 → `tmp := tmp + 1` 恒为 101
`persist`VAR)跨周期累积 1、2、3…
`out = tmp * 100 + persist` = 10101、10102、10103…
- MAIN`t`(VAR_TEMP 初值 5)每周期重置 → `t := t + 1` 恒为 6
- 全局 `a = f.out + t`:周期 1/2/3 = 10107 / 10108 / 10109(差 1 仅来自 persist
tmp 与 t 若不重置则偏差 100 / 1)
+4
View File
@@ -0,0 +1,4 @@
(* globals.st *)
VAR_GLOBAL
a : INT;
END_VAR
+12
View File
@@ -0,0 +1,12 @@
(* main.st *)
PROGRAM MAIN
VAR
f : Foo;
END_VAR
VAR_TEMP
t : INT := 5;
END_VAR
t := t + 1;
f(in := TRUE);
a := f.out + t;
END_PROGRAM
+18
View File
@@ -0,0 +1,18 @@
(* motor.st *)
FUNCTION_BLOCK Foo
VAR_INPUT
in : BOOL;
END_VAR
VAR_OUTPUT
out : INT;
END_VAR
VAR
persist : INT;
END_VAR
VAR_TEMP
tmp : INT := 100;
END_VAR
tmp := tmp + 1;
persist := persist + 1;
out := tmp * 100 + persist;
END_FUNCTION_BLOCK
+11
View File
@@ -0,0 +1,11 @@
[project]
name = "case21"
entry = "program MAIN"
cycle_limit = 1000
dt_ms = 10
[files]
st = ["globals.st", "motor.st", "main.st"]
[gvl]
file = "globals.st"