SIMATIC TIA Portal
TIA Portal Implementation Overview
This page lists all source code files of the exemplary TIA Portal 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
Source Code Files
| Filename | Link | Description |
|---|---|---|
| ASCF_ParticipantManager.scl | View | Base manager for choreography participants |
| MTPChoreographyParticipantManager.scl | View | MTP-based choreography participant manager |
Configurable Communication (OPC UA Client/Server)
Main Function Blocks
| Filename | Link | Description |
|---|---|---|
| ASCF_OpcUaClientServerManager.scl | View | OPC UA Client/Server communication manager |
| MTPOpcUaClientServerManager.scl | View | MTP OPC UA communication manager |
Internal Implementation
| Filename | Link | Description |
|---|---|---|
| _ASCF_CC_OPCUACS_EnumConnectionHandleStates.scl | View | Enumeration for connection handle states |
| _ASCF_CC_OPCUACS_ScheduleAlgorithmType1.scl | View | Scheduling algorithm type 1 |
| _ASCF_CC_OPCUACS_ScheduleAlgorithmType2.scl | View | Scheduling algorithm type 2 |
| ASCF_CC_OPCUACS_ConnectionConfig.scl | View | Connection configuration for OPC UA |
| ASCF_CC_OPCUACS_ConnectionHandle.scl | View | Connection handle for OPC UA |
| ASCF_CC_OPCUACS_ConnectionInterface.scl | View | Connection interface |
| ASCF_CC_OPCUACS_Connections.scl | View | Connection management |
| ASCF_CC_OPCUACS_Connections_clean.scl | View | Clean connection implementation |
| ASCF_CC_OPCUACS_ConnectionStatus.scl | View | Connection status |
| ASCF_CC_OPCUACS_Constants.scl | View | Constants for OPC UA communication |
| ASCF_CC_OPCUACS_EnumErrors.scl | View | Error codes for OPC UA |
| ASCF_CC_OPCUACS_QuerySchedule.scl | View | Schedule query functionality |
| ASCF_CC_OPCUACS_Reader.scl | View | OPC UA reader functionality |
| ASCF_CC_OPCUACS_ReaderConfig.scl | View | Reader configuration |
| ASCF_CC_OPCUACS_ReaderStatus.scl | View | Reader status |
| ASCF_CC_OPCUACS_ScheduleData.scl | View | Schedule data |
| ASCF_CC_OPCUACS_ScheduleDataType1.scl | View | Schedule data type 1 |
| ASCF_CC_OPCUACS_ScheduleDataType2.scl | View | Schedule data type 2 |
| ASCF_CC_OPCUACS_Scheduler.scl | View | Communication scheduler |
| ASCF_CC_OPCUACS_Writer.scl | View | OPC UA writer functionality |
| ASCF_CC_OPCUACS_WriterConfig.scl | View | Writer configuration |
| ASCF_CC_OPCUACS_WriterStatus.scl | View | Writer status |
Configurable Logic
Main Function Blocks
| Filename | Link | Description |
|---|---|---|
| ASCF_ConfigurableLogic.scl | View | Main function block for configurable logic functions |
Internal Implementation - Arithmetic Operations
| Filename | Link | Description |
|---|---|---|
| ASCF_CL_10_ADD.scl | View | Addition |
| ASCF_CL_11_SUB.scl | View | Subtraction |
| ASCF_CL_12_MUL.scl | View | Multiplication |
| ASCF_CL_13_DIV.scl | View | Division |
| ASCF_CL_14_MOD.scl | View | Modulo |
Internal Implementation - Logical Operations
| Filename | Link | Description |
|---|---|---|
| ASCF_CL_30_NOT.scl | View | Logical NOT |
| ASCF_CL_31_AND.scl | View | Logical AND |
| ASCF_CL_32_OR.scl | View | Logical OR |
| ASCF_CL_33_NAND.scl | View | Logical NAND |
| ASCF_CL_34_NOR.scl | View | Logical NOR |
| ASCF_CL_35_XOR.scl | View | Logical XOR |
| ASCF_CL_36_XNOR.scl | View | Logical XNOR |
| ASCF_CL_37_FE.scl | View | Falling edge |
| ASCF_CL_38_RE.scl | View | Rising edge |
Internal Implementation - Comparison Operations
| Filename | Link | Description |
|---|---|---|
| ASCF_CL_50_EE.scl | View | Equality |
| ASCF_CL_51_NE.scl | View | Not equal |
| ASCF_CL_52_GT.scl | View | Greater than |
| ASCF_CL_53_GTE.scl | View | Greater than or equal |
| ASCF_CL_54_LT.scl | View | Less than |
| ASCF_CL_55_LTE.scl | View | Less than or equal |
| ASCF_CL_56_EE_BIT.scl | View | Bit equality |
Internal Implementation - Control Structures
| Filename | Link | Description |
|---|---|---|
| ASCF_CL_100_IF1.scl | View | IF condition type 1 |
| ASCF_CL_101_IF2.scl | View | IF condition type 2 |
| ASCF_CL_102_IF3.scl | View | IF condition type 3 |
| ASCF_CL_103_IF4.scl | View | IF condition type 4 |
| ASCF_CL_104_IF5.scl | View | IF condition type 5 |
| ASCF_CL_105_IF6.scl | View | IF condition type 6 |
| ASCF_CL_106_IF7.scl | View | IF condition type 7 |
| ASCF_CL_107_IF8.scl | View | IF condition type 8 |
| ASCF_CL_108_IF9.scl | View | IF condition type 9 |
Internal Implementation - Data Types and Enumerations
| Filename | Link | Description |
|---|---|---|
| ASCF_CL_ArgumentType.scl | View | Argument type definition |
| ASCF_CL_EnumErrors.scl | View | Error codes for configurable logic |
| ASCF_CL_EnumFunctionTypes.scl | View | Function type enumeration |
| ASCF_CL_EnumSourceTypes.scl | View | Source type enumeration |
| ASCF_CL_FunctionType.scl | View | Function type definition |
| ASCF_CL_FunctionTypeConfig.scl | View | Function type configuration |
| ASCF_CL_OutputType.scl | View | Output type definition |
External Leader Implementation
| Filename | Link | Description |
|---|---|---|
| ASCF_ExternalLeader.scl | View | External leadership logic for choreography participants |
Base Components and Utilities
| Filename | Link | Description |
|---|---|---|
| ASCF_CalcWQC.scl | View | Calculation of value quality codes |
| ASCF_EnumUnionTypes.scl | View | Enumeration types for union data structures |
| ASCF_GetValueOutputList.scl | View | Helper function for value output lists |
| ASCF_GetVBoolOutputList.scl | View | Extract boolean values from output lists |
| ASCF_GetVDIntOutputList.scl | View | Extract DInt values from output lists |
| ASCF_GetVDWordOutputList.scl | View | Extract DWord values from output lists |
| ASCF_GetVRealOutputList.scl | View | Extract Real values from output lists |
| ASCF_GetVStringOutputList.scl | View | Extract String values from output lists |
| ASCF_QualityCodes.scl | View | Quality code definitions |
| ASCF_UnionType.scl | View | Union data type for various value types |
| ASCF_WriteValue.scl | View | Helper function for writing values |