引用 努力学习者 的回复内容:引用 miy_gongkong 的回复内容:引用 EBN战略军团-小刘 的回复内容:打开DB块在“视图”菜单下选择:数据视图在“编辑”菜单下选择:将数据块初始化保存DB块,下载DB块,选择覆盖。GAME over!楼主是说 在程序的任意地方, 动态初始化 ,这个就只能用 MOVE 块 了! 对,就是这意思,我程序好长的,设计参数相当多,用MOVE那岂不是又要拉大好大一串,可以用STL么,直接L 0 然后T 给其它的参数?
其实楼主 可以再FB块内部 做一段初始化程序, 假设 做一个 输入变量 init , 当init 为1 时,就给变量赋值为0,其他程序不执行,当 init 为 0 时,不进行初始化,其他程序正常执行, 也就是说 外部参数 控制 init 变量进行初始化,在一个扫描周期内完成;
我原来做的 程序(SCL)示例 如下:
VAR_INPUT
Init:BOOL;
END_VAR
VAR_IN_OUT
bInit:BOOL; // temp
END_VAR
BEGIN
(*初始化段*)
IF Init=TRUE THEN
IF bInit=FALSE THEN
bInit:=TRUE; (* 确保 每次初始化程序 只执行 一个扫描周期 *);
LastOFFValue:=0;
dReg:=0;
dReg2:=0;
dReg3:=0;
EncodeOut:=0;
dResetValue:=0;
END_IF;
ELSE
(* 程序处理段*)
.............
.................
END_IF;