在 CODESYS® 工程开发与设备运维中,读取工程名称、版本、作者、描述、最后修改时间等项目信息,是版本管理、程序追溯、现场验收的常用需求。借助系统库 CmpApp,可直接通过 IEC 程序读取工程内置信息,本文将详细说明实现方法与代码示例。
案例: 读取工程信息
1、创建新工程,设置工程信息。
2、添加库CmpApp和SysTypes2 Interfaces。
3、在 PLC_PRG 中编写程序,通过应用名称获取句柄,再读取工程详细信息。
PROGRAM PLC_PRGVAR
sAppName : STRING := 'Application'; // 必须与工程创建的应用同名
iecResult : RTS_IEC_RESULT;
xInit : BOOL := TRUE;
pApp : POINTER TO CmpApp.APPLICATION;
stAppInfo : CmpApp.APPLICATION_INFO;
pstAppInfo : POINTER TO CmpApp.APPLICATION_INFO := ADR(stAppInfo);
sProjectName: STRING;
sAuthor : STRING;
sVersion : STRING;
sDesc : STRING;
sLastChange : STRING;
END_VAR
IF xInit THEN
pApp := CmpApp.AppFindApplicationByName(pszString := sAppName,
pResult := ADR(iecResult));
pstAppInfo := CmpApp.AppGetApplicationInfo(pApp := pApp,
pResult := ADR(iecResult));
IF iecResult = 0 THEN
sProjectName := pstAppInfo^.pstProjectName^;
sAuthor := pstAppInfo^.pstAuthor^;
sVersion := pstAppInfo^.pstVersion^;
sDesc := pstAppInfo^.pstDescription^;
sLastChange := DT_TO_STRING(pstAppInfo^.dtLastChanges);
END_IF
xInit := False;
END_IF
4、在线运行查看结果,暂不支持中文字符,可正常读取英文 / 数字信息。


