读取控制器厂商信息
例如,如果一个库只能特定设备上运行,那么您必须访问控制器上的制造商信息。 通常,功能受到“TargetType”限制。
- 创建标准项目并选择 CODESYS Control Win V3 作为设备。
- 通过网络扫描连接目标系统。

- 打开库管理器并添加以下库: SysTarget SysTypes2 interfaces

- 修改 PLC_PRG 如下:
声明
VAR
xRead : BOOL;
iecResult : SysTypes.RTS_IEC_RESULT;
dwType : DWORD;
dwTargetId : DWORD;
wsVendorName : WSTRING;
diVendorName : DINT := SIZEOF(wsVendorName);
wsDeviceName : WSTRING;
wsDev : DINT := SIZEOF(wsDeviceName);
dwVersion : DWORD;
wsNodeName : WSTRING;
udiNodeName : UDINT := SIZEOF(wsNodeName);
udiProcessorId : UDINT;
udiOsId : UDINT;
sSerialNumber : STRING;
psSerialNumber : POINTER TO STRING := ADR(sSerialNumber);
diSerialNumber : DINT := SIZEOF(sSerialNumber);
END_VAR
实现
IF xRead THEN
xRead := FALSE;
// Control WinV3: 4096 - 0000 0001
iecResult := SysTarget.SysTargetGetType(pulType := ADR(dwType));
iecResult := SysTarget.SysTargetGetId(pulTargetId := ADR(dwTargetId));
iecResult := SysTarget.SysTargetGetVendorName(pwszName := ADR(wsVendorName), pnMaxLength := ADR(diVendorName));
iecResult := SysTarget.SysTargetGetDeviceName(pwszName := ADR(wsDeviceName), pnMaxLength := ADR(wsDev));
iecResult := SysTarget.SysTargetGetVersion(pulVersion := ADR(dwVersion)); // V3.5.SP13.10 == > 50662666 = 16#03050D0A
iecResult := SysTarget.SysTargetGetNodeName(pwszName := ADR(wsNodeName), pnMaxLength := ADR(udiNodeName));
// SystemInfo
iecResult := SysTarget.SysTargetGetOperatingSystemId(pudiOperatingSystemId := ADR(udiOsId));
iecResult := SysTarget.SysTargetGetProcessorId(pudiProcessorId := ADR(udiProcessorId));
//Unique RT identifier
iecResult := SysTarget.SysTargetGetSerialNumber(ppsSerialNumber := ADR(psSerialNumber), pnMaxLen := ADR(diSerialNumber));
END_IF
- 启动项目并将 xRead 变量设置为 TRUE。

