BECKHOFF TwinCat
TwinCAT Implementation Overview
This page lists all source code files of the exemplary TwinCAT implementation of the Automation Service Choreography Framework.
Disclaimer
The source code provided here is intended solely for illustration and to improve the comprehensibility of the mechanisms, concepts, and approaches described in the dissertation. It is explicitly not designed as production-ready or usable software library and should not be used in productive environments or safety-critical applications.
For further details, please refer to the license: Link to License
Active Choreography Participant - Implementation
| Name | Link | Description |
|---|---|---|
| ASCF_ParticipantManager | View | Core participant manager for choreography coordination |
| MTPChoreographyParticipantManager | View | MTP-specific choreography participant data structure |
Configurable Communication (OPC UA Client/Server)
Main Function Blocks
| Name | Link | Description |
|---|---|---|
| ASCF_OpcUaClientServerManager | View | OPC UA client-server communication manager |
| MTPOpcUaClientServerManager | View | MTP OPC UA client-server data structure |
Internal Implementation
| Name | Link | Description |
|---|---|---|
| ASCF_CC_OPCUACS_ConnectionConfig | View | OPC UA connection configuration |
| ASCF_CC_OPCUACS_ConnectionHandle | View | OPC UA connection handle |
| ASCF_CC_OPCUACS_ConnectionInterface | View | OPC UA connection interface |
| ASCF_CC_OPCUACS_Connections | View | OPC UA connections manager |
| ASCF_CC_OPCUACS_ConnectionStatus | View | OPC UA connection status |
| ASCF_CC_OPCUACS_Constants | View | OPC UA constants |
| ASCF_CC_OPCUACS_EnumConnectionHandleStates | View | Connection handle state enumeration |
| ASCF_CC_OPCUACS_EnumErrors | View | OPC UA error enumeration |
| ASCF_CC_OPCUACS_QuerySchedule | View | Query schedule function |
| ASCF_CC_OPCUACS_Reader | View | OPC UA reader function |
| ASCF_CC_OPCUACS_ReaderConfig | View | Reader configuration |
| ASCF_CC_OPCUACS_ReaderStatus | View | Reader status |
| ASCF_CC_OPCUACS_Reader_Interface | View | Reader interface |
| ASCF_CC_OPCUACS_Reader_Internals | View | Reader internal data |
| ASCF_CC_OPCUACS_Reader_Temp | View | Reader temporary data |
| ASCF_CC_OPCUACS_Reader_Temp_Bool | View | Boolean reader temporary data |
| ASCF_CC_OPCUACS_Reader_Temp_Dint | View | Double integer reader temporary data |
| ASCF_CC_OPCUACS_Reader_Temp_Dword | View | Double word reader temporary data |
| ASCF_CC_OPCUACS_Reader_Temp_Real | View | Real reader temporary data |
| ASCF_CC_OPCUACS_Reader_Temp_String | View | String reader temporary data |
| ASCF_CC_OPCUACS_ScheduleAlgorithmType1 | View | Schedule algorithm type 1 |
| ASCF_CC_OPCUACS_ScheduleAlgorithmType2 | View | Schedule algorithm type 2 |
| ASCF_CC_OPCUACS_ScheduleData | View | Schedule data structure |
| ASCF_CC_OPCUACS_ScheduleDataType1 | View | Schedule data type 1 |
| ASCF_CC_OPCUACS_ScheduleDataType2 | View | Schedule data type 2 |
| ASCF_CC_OPCUACS_Scheduler | View | OPC UA scheduler |
| ASCF_CC_OPCUACS_Writer | View | OPC UA writer function |
| ASCF_CC_OPCUACS_WriterConfig | View | Writer configuration |
| ASCF_CC_OPCUACS_WriterStatus | View | Writer status |
| ASCF_CC_OPCUACS_Writer_Interface | View | Writer interface |
| ASCF_CC_OPCUACS_Writer_Internals | View | Writer internal data |
| ASCF_CC_OPCUACS_Writer_Temp | View | Writer temporary data |
| ASCF_CC_OPCUACS_Writer_Temp_Bool | View | Boolean writer temporary data |
| ASCF_CC_OPCUACS_Writer_Temp_Dint | View | Double integer writer temporary data |
| ASCF_CC_OPCUACS_Writer_Temp_Dword | View | Double word writer temporary data |
| ASCF_CC_OPCUACS_Writer_Temp_Real | View | Real writer temporary data |
| ASCF_CC_OPCUACS_Writer_Temp_String | View | String writer temporary data |
Configurable Logic
Main Function Blocks
| Name | Link | Description |
|---|---|---|
| ASCF_ConfigurableLogic | View | Main configurable logic manager |
Internal Implementation - Arithmetic Operations
| Name | Link | Description |
|---|---|---|
| ASCF_CL_10_ADD | View | Addition operation |
| ASCF_CL_11_SUB | View | Subtraction operation |
| ASCF_CL_12_MUL | View | Multiplication operation |
| ASCF_CL_13_DIV | View | Division operation |
| ASCF_CL_14_MOD | View | Modulo operation |
Internal Implementation - Logical Operations
| Name | Link | Description |
|---|---|---|
| ASCF_CL_30_NOT | View | Logical NOT operation |
| ASCF_CL_31_AND | View | Logical AND operation |
| ASCF_CL_32_OR | View | Logical OR operation |
| ASCF_CL_33_NAND | View | Logical NAND operation |
| ASCF_CL_34_NOR | View | Logical NOR operation |
| ASCF_CL_35_XOR | View | Logical XOR operation |
| ASCF_CL_36_XNOR | View | Logical XNOR operation |
Internal Implementation - Comparison Operations
| Name | Link | Description |
|---|---|---|
| ASCF_CL_37_FE | View | Falling edge detection |
| ASCF_CL_38_RE | View | Rising edge detection |
| ASCF_CL_50_EE | View | Equal comparison |
| ASCF_CL_51_NE | View | Not equal comparison |
| ASCF_CL_52_GT | View | Greater than comparison |
| ASCF_CL_53_GTE | View | Greater than or equal comparison |
| ASCF_CL_54_LT | View | Less than comparison |
| ASCF_CL_55_LTE | View | Less than or equal comparison |
| ASCF_CL_56_EE_BIT | View | Bitwise equal comparison |
Internal Implementation - Control Structures
| Name | Link | Description |
|---|---|---|
| ASCF_CL_100_IF1 | View | Conditional logic function IF1 |
| ASCF_CL_101_IF2 | View | Conditional logic function IF2 |
| ASCF_CL_102_IF3 | View | Conditional logic function IF3 |
| ASCF_CL_103_IF4 | View | Conditional logic function IF4 |
| ASCF_CL_104_IF5 | View | Conditional logic function IF5 |
| ASCF_CL_105_IF6 | View | Conditional logic function IF6 |
| ASCF_CL_106_IF7 | View | Conditional logic function IF7 |
| ASCF_CL_107_IF8 | View | Conditional logic function IF8 |
| ASCF_CL_108_IF9 | View | Conditional logic function IF9 |
Internal Implementation - Data Types and Enumerations
| Name | Link | Description |
|---|---|---|
| ASCF_CL_ArgumentType | View | Argument type definition |
| ASCF_CL_EnumErrors | View | Configurable logic error enumeration |
| ASCF_CL_EnumFunctionTypes | View | Function type enumeration |
| ASCF_CL_EnumSourceTypes | View | Source type enumeration |
| ASCF_CL_FunctionType | View | Function type definition |
| ASCF_CL_FunctionTypeConfig | View | Function type configuration |
| ASCF_CL_OutputType | View | Output type definition |
| ASCF_CL_OutputTypeConfig | View | Output type configuration |
Base Components and Utilities
| Name | Link | Description |
|---|---|---|
| ASCF_CalcWQC | View | Quality code calculation function |
| ASCF_EnumErrors | View | Error code enumeration |
| ASCF_EnumUnionTypes | View | Union type enumeration |
| ASCF_GetValueOutputList | View | Generic value output list retrieval |
| ASCF_GetVBoolOutputList | View | Boolean value output list retrieval |
| ASCF_GetVDIntOutputList | View | Double integer value output list retrieval |
| ASCF_GetVDWordOutputList | View | Double word value output list retrieval |
| ASCF_GetVRealOutputList | View | Real value output list retrieval |
| ASCF_GetVStringOutputList | View | String value output list retrieval |
| ASCF_QualityCodes | View | Quality code definitions |
| ASCF_State_Internals | View | Internal state data structure |
| ASCF_UnionType | View | Union type data structure |
| ASCF_WriteValue | View | Value writing function |
| CreateDTL | View | Date and time creation utility |
| DeltaDTL | View | Date and time delta calculation |
| DTL | View | Date and time data structure |
| DTL_to_TIME | View | Date-time to time conversion |
| SYS_TIME_Store_DTL | View | System time storage utility |