库的应用-关于读取工程信息(库 CmpApp)

在 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、在线运行查看结果,暂不支持中文字符,可正常读取英文 / 数字信息。