A CoDeSys v2.3 project for a 2008 OWEN PLK 150U-L can compile with pid_reg2 yet fail during download with unresolved external POU messages. The evidence identifies controller firmware support—not ordinary application logic—as the primary compatibility boundary.
Identify the compatibility failure
The reported controller returns Unresolved external POUs APID-POS_VALV, APID_PWM, ... for the function blocks in the added library. This means the project references external implementations that the target runtime cannot resolve. The older PID_regulators.lib dated 28.12.06 already works in the same project, so retain it as the confirmed baseline while checking pid_reg2 compatibility.
| Item | Evidence | Engineering decision |
|---|---|---|
| Engineering environment | CoDeSys v2.3 | Do not treat the editor alone as proof of runtime compatibility. |
| Controller | OWEN PLK 150U-L from 2008 | Its original firmware does not support the added library. |
| Working library |
PID_regulators.lib, 28.12.06 |
Use as the known-working PID implementation. |
| New library | pid_reg2 |
Verify target firmware support before using its function blocks. |
Resolve the library and firmware mismatch
The evidence states that firmware supplied with 2008 controllers did not support this library. It also states that PID_rer2 was unofficially supported in firmware 2.14, while the library remained officially unsupported for the PLK1XX family. Because the evidence alternates between pid_reg2 and PID_rer2, verify whether the latter is a spelling error or a distinct library before making a firmware decision. No supported conclusion is available for firmware 2.10.5.
- Record the exact installed library name and the controller firmware version.
- Confirm whether the required library is officially supported by that firmware and the PLK 150U-L runtime. Do not infer support merely because CoDeSys accepts the library.
- If an approved firmware package is available, install its PC-side update utility and follow the firmware wizard. Preserve the working project and controller configuration before proceeding.
- Rebuild and download the application. Confirm that the unresolved POU list no longer contains
APID-POS_VALV,APID_PWM, or other blocks from the library. - If official support cannot be established, return to the working
PID_regulators.libimplementation.
Supply and verify PV_TIME
PV_TIME provides the measurement time used to calculate the integral component. For a controller-configured measurement channel, obtain it from the channel's measurement-time setting in the PLC configuration; the referenced description calls this Circular time from the UNIVERSAL sensor module.
Verify the value against measured channel-update timing before using it for integration.
Verification criteria
Accept the change only when the application downloads without unresolved external POUs, every required PID function block resolves on the target, and PV_TIME matches the actual measurement update interval. A successful library insertion or project compilation does not establish target compatibility.
FAQ
Why does pid_reg2 report unresolved external POUs on a PLK 150U-L?
The 2008 controller firmware does not provide the external implementations required by the library. Use a confirmed compatible runtime or retain the working PID_regulators.lib.
Does firmware 2.14 support pid_reg2?
The evidence reports unofficial support for a library written as PID_rer2, while also stating that it is not officially supported for PLK1XX. Confirm the exact library name and obtain an official compatibility decision before upgrading.
Where should PV_TIME come from?
For a configured measurement channel, use its measurement-time value from the PLC configuration, described as Circular time.