MBP-388: Safety Implementation - #23
aslanliafichev wants to merge 41 commits into
Conversation
dbb5f32 to
0b08f72
Compare
Updates DUT name from E_MCCSafetyFunctions to E_SafetyFunctions.
Adds LED state for safety controller
Removes unused DUTs and places DUTs in progress in WIP folder
Implements a hardware abstraction layer for safety I/O
Implements DUTs for decoding raw PNOZ EtherCAT input and output data into structs
Implements central DUT where all decoded raw input and output signals from the safety controller are gathered for structured access
Implements helper functions for handling raw input and to output raw data back to the safety controller.
Implements FB_MotionSafety for safety handling with communication diagnostics, reference linking, raw PNOZ EtherCAT input mapping, and cyclic output writes through mLinkRefs, mReadECATInput, and mWriteECATOutput.
Improves comments and keeps only necessary code to map input/output from the safety controller.
Include only the safety code required by tc_generic. Keep the implementation reusable across different MCCs.
|
The safety code has been updated to match the latest version currently running on ESTIA MCC3, MCC4, and MCC5. This branch contains the base safety-code template required across the different MCC projects. Notes about the structure
Thus The base code is simple and I think the focus of this PR is to find a suitable way to map information despite project differences. For example, MCC5 maps safety information from both the safety controller MCC-specific implementationsThe complete MCC-specific safety implementations are available in the
|
Add Zone_Monitoring and implement the I_SafetyProvider properties in FB_MotionSafety.
Extract generic logic into smaller methods to support reuse in the generic template.
This PR includes changes made MAIN related to SAFETY, the idea is that SAFETY functions from the safety controller PNOZmulti 2 will need to be configured by the programmer in TwinCAT depending on the instruments safety requirements and the specific safety functions written in the safety controller.
E_MMCSafetyFunctions is just an example of Safety Functions that are expected, furthermore MCC_SafetyFunctions includes structs describing what each incoming bit will represents.
For changes made to tc_mca_std_lib: https://github.com/EuropeanSpallationSource/tc_mca_std_lib/pull/54