PID_REG2: Troubleshooting Unresolved External POUs

Patricia Callen2 min read
Other ManufacturerPID ControlTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

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.

  1. Record the exact installed library name and the controller firmware version.
  2. 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.
  3. 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.
  4. 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.
  5. If official support cannot be established, return to the working PID_regulators.lib implementation.

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.

Back to blog