first commit

This commit is contained in:
2026-09-30 21:17:41 -06:00
commit 07244fc761
57 changed files with 30094 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
# 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.
```sh
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.