Files
Codesys-Library-Atom-Modbus/docs/TROUBLESHOOTING.md
T
2026-09-30 21:17:41 -06:00

1.3 KiB

Troubleshooting

On the user's Pi the active runtime log is /var/log/codesyscontrol.log. /var/opt/codesys/codesyscontrol.log contained old logs. Check timestamps.

sudo /etc/init.d/codesyscontrol status
sudo tail -n 100 /var/log/codesyscontrol.log
file component/out/libCmpAtomModbus.so
nm -D component/out/libCmpAtomModbus.so

Look for CmpAtomModbus, undefined symbol, signature mismatch or load errors. ComponentEntry and atmbcall_cext must be exported. The observed manual load was component ID 0xffff2001, version 0.2.0.0. Ensure custom component IDs do not collide.

External function signature: 0x709EE65B, API version: 0x00020000. A valid component load does not prove the request scheduler or device I/O works.

AccessViolation in processAllRequests: use the current export with zero-count, bounds and null checks and do a full download. Nonzero stale pointers still need lifecycle investigation. Keep requests and their data arrays alive for the client lifetime, and do not change a registered request's client while running.

Use one IEC task for all native clients. Handles must not be retained/persistent. For STOP/download, disable the client and let a scan run, or call release(). See compat/README.md for lifecycle limitations and uncertain-write handling.