Skip to content

[BUG] KUKA KRC5#1151

Merged
PTKu merged 3 commits into
devfrom
1148-bug-kuka-krc5
May 21, 2026
Merged

[BUG] KUKA KRC5#1151
PTKu merged 3 commits into
devfrom
1148-bug-kuka-krc5

Conversation

@TomKovac
Copy link
Copy Markdown
Collaborator

@TomKovac TomKovac commented May 21, 2026

Summary

  • KRC5-only fix for [BUG] missing alarms when coordinate mismatch, superfluous alarm not-in-auto, user-defined bytes #1148. AxoKrc5 gains raw application-defined passthrough members (DataFromPlcToRobot / DataFromRobotToPlc), per-axis coordinate-mirror diagnostics (task-potential IDs 1501–1506 / 1511–1516), and message 20002 (auto-mode lost mid-task) is downgraded ErrorInfo.
  • Showcase gains an "Exchange raw data with the robot" sequencer step; docs (AxoKrc5.md, TROUBLES.md, per-library + root CHANGELOG.md) updated to document the new surface and behaviour.
  • AxoKrc4 is intentionally left unchanged — KRC4 and KRC5 are no longer API/behaviour-identical, and the docs now state that divergence explicitly.

Changes from CHANGELOG

Workspace

[KUKA] KRC5 raw data exchange, coordinate-mirror diagnostics, and auto-mode severity fix

Note: KRC5-only change in src/components.kuka.robotics/. AxoKrc5 now diverges from AxoKrc4 in three respects — AxoKrc4 is intentionally left unchanged in this PR. Fixes #1148.

  • feat: AxoKrc5 exposes raw application-defined passthrough members DataFromPlcToRobot : ARRAY[0..19] OF BYTE (PLC → robot, output bytes _data[44..63]) and DataFromRobotToPlc : ARRAY[0..15] OF BYTE (robot → PLC, input bytes _data[48..63]). Both carry RenderIgnore; Run() transports them verbatim without interpretation. Wrapped in the new <AxoKrc5DataExchangeDeclaration> source region.
  • feat: AxoKrc5 adds per-axis coordinate-mirror task-potential identifiers 1501–1506 (StartMotorsProgramAndMovements) and 1511–1516 (StartMovements), raised via TaskMessenger while waiting for each Inputs.Coordinates.{X,Y,Z,Rx,Ry,Rz} to mirror the commanded value within 0.01 tolerance. Matching .NET twin entries added to both the TaskMessenger text list and errorDescriptionDict in AxoKrc5.cs.
  • fix: AxoKrc5 safety message 20002 (Inputs.Automatic = FALSE while a task is busy) is now raised as category Info instead of Error — losing auto mode mid-task is informational on KRC5, not a hard fault.
  • feat: Showcase AxoKrc5_v_5_x_x_Showcase.st gained an "Exchange raw data with the robot" sequencer step (in //<DataExchange> markers); Steps widened [0..19][0..20], _lastByteFromRobot status field added.
  • docs: AxoKrc5.md relaxed the "identical public API to AxoKrc4" wording, added a Data exchange section (library declaration + showcase usage refs), and a note listing the three KRC5-only differences. TROUBLES.md flags the per-class differences (1501–1516, 20002 severity split). Appended 0.54.0 entry to src/components.kuka.robotics/docs/CHANGELOG.md.

Impact:

  • Applications driving a KRC5 can now push and pull arbitrary byte payloads alongside the structured motion interface, without a library change.
  • Operators see which specific axis is holding up a movement (per-coordinate potential IDs) rather than a single "coordinates not mirrored" wait.
  • Dropping out of automatic mode mid-task no longer latches a KRC5 error state.

Risks/Review:

  • AxoKrc4 and AxoKrc5 are no longer API/behaviour-identical. Documentation now states the divergence explicitly; if a follow-up backports these changes to AxoKrc4, the "KRC5-only" wording in AxoKrc5.md / TROUBLES.md must be reverted.
  • The PLC→robot (44..63) and robot→PLC (48..63) windows overlap on the same physical I/O block in opposite directions — verify the controller-side mapping matches before relying on the passthrough.

Testing:

  • apax ib in src/showcase/app/ — the new KRC5 data-exchange sequencer step builds and runs through to CompleteSequence.
  • dotnet build on src/showcase/app/ix-blazor/showcase.blazor/ — the AxoKrc5.cs messenger/error-dictionary additions compile.
  • scripts/_build_documentation.ps1 — the new [!code-pascal[]] (showcase DataExchange) and [!code-smalltalk[]] (AxoKrc5DataExchangeDeclaration) directives resolve.

Commits

Other

Diff stat

 CHANGELOG.md                                       | 24 ++++++
 .../ctrl/src/AxoKrc5/v_5_x_x/AxoKrc5.st            | 97 +++++++++++++++++++++-
 src/components.kuka.robotics/docs/AxoKrc5.md       | 56 +++++++++++--
 src/components.kuka.robotics/docs/CHANGELOG.md     | 44 ++++++++++
 src/components.kuka.robotics/docs/TROUBLES.md      | 31 +++++--
 .../AxoKrc5/v_5_x_x/AxoKrc5.cs                     | 30 +++++++
 .../Documentation/AxoKrc5_v_5_x_x_Showcase.st      | 36 ++++++--
 7 files changed, 295 insertions(+), 23 deletions(-)

Note: the AxoKrc5.st / AxoKrc5.cs source fix is committed; the docs, showcase, and CHANGELOG changes above are currently in the working tree and still need to be committed and pushed before they appear in this PR.

Test plan

  • PLC code compiles via apax build; affected sequences exercised in PLCSIM Advanced
  • CHANGELOG entry covers all branch commits and flags breaking changes

Generated by /pr-description-update. Last regenerated: 2026-05-21.

@TomKovac
Copy link
Copy Markdown
Collaborator Author

Freely configurable user byte array added.

@TomKovac TomKovac self-assigned this May 21, 2026
@TomKovac TomKovac marked this pull request as ready for review May 21, 2026 10:15
…ate-mirror diagnostics

- Introduced `DataFromPlcToRobot` and `DataFromRobotToPlc` for application-defined data exchange.
- Added per-axis coordinate-mirror task-`potential` identifiers for improved diagnostics.
- Updated safety message handling to reflect informational status on KRC5.
- Revised documentation to clarify API divergence from AxoKrc4 and added new data exchange section.
@PTKu PTKu merged commit fb29600 into dev May 21, 2026
3 checks passed
@PTKu PTKu deleted the 1148-bug-kuka-krc5 branch May 21, 2026 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] missing alarms when coordinate mismatch, superfluous alarm not-in-auto, user-defined bytes

3 participants