tom*_*ift 1 plc st structured-text iec61131-3
这就是我现在的情况
TYPE MyType: STRUCT
name: STRING[20];
input: INT;
output: INT;
END_STRUCT
END_TYPE
Run Code Online (Sandbox Code Playgroud)
PROGRAM PLC_PRG:
VAR
struct: MyType;
struct_NULL: MyType;
error: BOOL;
END_VAR
IF error THEN
struct := struct_NULL;
END_IF
END_PROGRAM
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法可以使结构无效,而无需声明和使用struct_NULL
只需使用SysMemSet(Codesys 库 SysMem)、MemSet(Codesys 库 MemoryUtils)或MEMSET(TwinCAT 3 库 Tc2_System)函数将所有数据设置为 0。
SysMemSet(
pDest := ADR(TestStruct),
udiValue := 0,
udiCount := SIZEOF(TestStruct)
);
Run Code Online (Sandbox Code Playgroud)
您可以为其编写一个简单的辅助函数:)
FUNCTION F_Clear : BOOL
VAR_INPUT
Target : ANY;
END_VAR
VAR
END_VAR
SysMemSet(
pDest := Target.pValue,
udiValue := 0,
udiCount := Target.diSize
);
Run Code Online (Sandbox Code Playgroud)
用法,适用于各种变量!
F_Clear(TestStruct);
Run Code Online (Sandbox Code Playgroud)