├── .gitignore
├── CONTRIBUTING.md
├── Error Codes.xlsx
├── LICENSE
├── README.md
├── tcl_BaseClasses.library
└── tcl_BaseClasses
├── tcl_BaseClasses.sln
└── tcl_BaseClasses
├── TrialLicense.tclrs
├── UnitTests
├── GVLs
│ └── GlobalNotifications.TcGVL
├── POUs
│ └── MAIN.TcPOU
├── PlcTask.TcTTO
├── Unit Tests
│ ├── Execution Result Aggregate
│ │ ├── Test_AggregateResult_Aborted.TcPOU
│ │ ├── Test_AggregateResult_Aborting.TcPOU
│ │ ├── Test_AggregateResult_Busy.TcPOU
│ │ ├── Test_AggregateResult_Done.TcPOU
│ │ ├── Test_AggregateResult_Error.TcPOU
│ │ ├── Test_AggregateResult_ErrorMsg.TcPOU
│ │ ├── Test_AggregateResult_Ready.TcPOU
│ │ └── Test_AggregateResult_Starting.TcPOU
│ ├── Execution
│ │ ├── Test_TExecutionWhenBusy_Abort_SelectsAborting.TcPOU
│ │ ├── Test_TExecutionWhenBusy_SetDone_SetsDone.TcPOU
│ │ ├── Test_TExecutionWhenReady_Start_SelectsStarting.TcPOU
│ │ └── Test_TExecution_SetErrorHandlesString_ErrorId.TcPOU
│ ├── Functions
│ │ ├── Test_ErrorIdToString.TcPOU
│ │ ├── Test_F_DINT_TO_UDINT_Conversion.TcPOU
│ │ ├── Test_F_Equals.TcPOU
│ │ ├── Test_F_NotEqual.TcPOU
│ │ └── Test_F_UDINT_TO_DINT_Conversion.TcPOU
│ ├── Notifications
│ │ ├── Test_MultipleNotificationsWithStringArgs.TcPOU
│ │ ├── Test_NotificationCountWithQueueingEnabled.TcPOU
│ │ ├── Test_NotificationHandlerOnlyAddedOnce.TcPOU
│ │ ├── Test_NotificationNoArgs.TcPOU
│ │ └── Test_NotificationWithStringArg.TcPOU
│ ├── Stream
│ │ ├── General
│ │ │ └── Test_TStreamBufferResizes.TcPOU
│ │ ├── With Arg Type Checking
│ │ │ ├── Test_TStreamAddReadArgType.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_BLOB.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_BOOL.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_BYTE.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_DINT.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_INT.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_LINT.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_LREAL.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_PVOID.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_REAL.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_STRING.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_Short_STRING.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_T_MaxString.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_UDINT.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_UINT.TcPOU
│ │ │ └── Test_TStreamAdd_Read_ULINT.TcPOU
│ │ └── With alignment checks
│ │ │ ├── Test_TStreamAddReadArgType_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_BLOB_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_DINT_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_INT_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_LINT_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_LREAL_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_PVOID_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_REAL_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_UDINT_CheckAlignment.TcPOU
│ │ │ ├── Test_TStreamAdd_Read_UINT_CheckAlignment.TcPOU
│ │ │ └── Test_TStreamAdd_Read_ULINT_CheckAlignment.TcPOU
│ └── T_TestSuite.TcPOU
├── UnitTests.plcproj
└── UnitTests.tmc
├── _Config
└── PLC
│ └── tcl_BaseClasses.xti
├── tcl_BaseClasses.tsproj
├── tcl_BaseClasses.tsproj.old
└── tcl_BaseClasses
├── Classes
├── Change Monitoring
│ ├── T_Monitor_DINT.TcPOU
│ ├── T_Monitor_INT.TcPOU
│ └── T_Monitor_Structure.TcPOU
├── Execution Result Aggregate
│ └── T_ResultAggregate.TcPOU
├── Execution
│ └── Execution
│ │ ├── I_Execution.TcIO
│ │ ├── I_ExecutionResult.TcIO
│ │ ├── T_Execution.TcPOU
│ │ └── T_ExecutionState.TcDUT
├── Function Block Wrappers
│ └── Classes
│ │ ├── T_Counter.TcPOU
│ │ ├── T_FallingEdge.TcPOU
│ │ ├── T_MonitoredValue.TcPOU
│ │ ├── T_OffTimer.TcPOU
│ │ ├── T_OnTimer.TcPOU
│ │ ├── T_PulseTimer.TcPOU
│ │ ├── T_RisingEdge.TcPOU
│ │ ├── T_SquareWave.TcPOU
│ │ ├── T_StructureCrcMonitor.TcPOU
│ │ ├── T_ValueMonitor.TcPOU
│ │ └── T_ValueMonitorEx.TcPOU
├── List Of Interfaces
│ ├── I_ListItem.TcIO
│ ├── I_ListOfInterfaces.TcIO
│ ├── T_ListOfInterfaces.TcPOU
│ └── T_TestIterator.TcPOU
├── Logger
│ └── I_Logger.TcIO
├── Notifications
│ ├── List Of Handlers
│ │ └── T_ListONotificationHandlers.TcPOU
│ ├── Notification Handler
│ │ ├── I_NotificationHandler.TcIO
│ │ └── T_NotificationHandler.TcPOU
│ └── Notification
│ │ ├── I_Notification.TcIO
│ │ └── T_Notification.TcPOU
├── Nullable Base Class
│ └── T_NullableBaseClass.TcPOU
├── Object base class
│ └── T_Object.TcPOU
└── Stream
│ ├── E_ArgTypeId.TcDUT
│ ├── I_StreamReader.TcIO
│ ├── I_StreamWriter.TcIO
│ └── T_Stream.TcPOU
├── Functions
├── F_ClearMem.TcPOU
├── F_CompareMem.TcPOU
├── F_CopyMem.TcPOU
├── F_DINT_TO_UDINT.TcPOU
├── F_DetectOnlineChange.TcPOU
├── F_Equals.TcPOU
├── F_ErrorIdToString.TcPOU
├── F_GetAdsPort.TcPOU
├── F_InLimits.TcPOU
├── F_Inc.TcPOU
├── F_LinearInterpolation.TcPOU
├── F_LogError.TcPOU
├── F_LogMessage.TcPOU
├── F_LogWarning.TcPOU
├── F_NotEqual.TcPOU
├── F_ReadFlag.TcPOU
├── F_TaskTime.TcPOU
├── F_Toggle.TcPOU
├── F_TypeClassToString.TcPOU
└── F_UDINT_TO_DINT.TcPOU
├── Version
└── Global_Version.TcGVL
├── tcl_BaseClasses.plcproj
└── tcl_BaseClasses.tmc
/.gitignore:
--------------------------------------------------------------------------------
1 | **/_Boot
2 | **/beckhoff automation gmbh
3 | **/system
4 | **/www.tcunit.org
5 | **/_Libraries
6 | *.tszip
7 | *.zip
8 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to tcl_BaseClasses
2 |
3 | All contributions are welcome:
4 | * Code changes should be submitted via a pull request.
5 | * Please follow the coding style of the existing code:
6 | 1. Use spaces not tabs. This can be configured in Visual Studio under **Tools→Options→TwinCAT→Plc Environment→Text Editor** by unchecking the 'Keep Tabs' checkbox. Tab width should be set to '4'
7 | 2. Do not prefix variable names according to their data type.
8 | 3. Use Separate LineIDs to minimise changes to POUs. This can be configured in Visula Studio under **Tools→Options→TwinCAT→Write Options→Separate LineIDs.**
9 |
10 | * Please report bugs using GitHub Issues
11 | * By contributing, you agree that your contributions will be licensed under the project's MIT License.
12 |
13 |
--------------------------------------------------------------------------------
/Error Codes.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RedRockControls/tcl_BaseClasses/39d1c29daf0f6aedf791e39fc70777fd58fd2bdc/Error Codes.xlsx
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 RedRockControls
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # tcl_BaseClasses
2 |
3 | This library is intended for use in Beckhoff TwinCAT3 projects.
4 |
5 | The main components are T_Execution and T_Notification
6 |
7 | These are described in the following blog posts:
8 |
9 | Motivation - [OO Architecture in TwinCAT3](https://www.redrockcontrols.co.uk/?p=588)
10 |
11 | T_Execution - [OOP in TwinCAT3 – Command Pattern](https://www.redrockcontrols.co.uk/?p=118)
12 |
13 | T_Notification - [OOP in TwinCAT3 – Asynchronous Notifications](https://www.redrockcontrols.co.uk/?p=723)
14 |
15 | Code automatically formatted using
16 |
17 | 
18 |
--------------------------------------------------------------------------------
/tcl_BaseClasses.library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RedRockControls/tcl_BaseClasses/39d1c29daf0f6aedf791e39fc70777fd58fd2bdc/tcl_BaseClasses.library
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/TrialLicense.tclrs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {CE2AF329-CAE6-C2E2-6F60-540193B2308F}
5 | 2023-11-09T08:49:00
6 | 2023-11-17T00:00:00
7 | b8e8d9736ba90b9a5048a8a7e455fe790d6cbd669bf48bee9da9087a1213f0caff95da9cc31da96596a83796d55d40010430797fb7c4a4248b290233541e1b8165fd96f5a47a88ff0c96874e923e316ce5fdc888290d68edc7d4a6b8ac744aee7a0720c0596a1444dce839802adc265bf0832e705a167b4fafa26379a89bcbaff5928065671e165a2406787a9ea2f5a4148ee1052ba3e383eaea7b7436e49c7e5b6b9fe5660c6f1b88d3f8997a35540aa5751b880622b0becc4b929511362d2462722ef3803b26ce3b71c3d896bb0ebacfe51009e306689a6345d6298d7f8195d45e8b16cf2ddceb83c24cce5f81bf9eec5db79719327261598cf261c766ecb0
8 |
9 | {4C256767-E6E6-4AF5-BD68-9F7ABAD0C200}
10 | TC3 ADS
11 | TC1000
12 |
13 |
14 | {3FF18E97-7754-401B-93FB-70544DE28A13}
15 | TC3 IO
16 | TC1100
17 |
18 |
19 | {66689887-CCBD-452C-AC9A-039D997C6E66}
20 | TC3 PLC
21 | TC1200
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/GVLs/GlobalNotifications.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/POUs/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 21
7 |
8 | MAIN
9 |
10 | {1494bfde-28b9-4da7-8bfc-95ebb1e850ed}
11 | {dd8c9284-8c9f-4c1a-bdfc-cd6ce60f6a7f}
12 | {77166c4f-86e4-4b12-b969-756f6c35c228}
13 | {efba7a37-76ff-4c6b-97dd-df7c625760e1}
14 | {fe276e8a-7eef-4734-8519-5279d906591b}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_Aborted.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
24 |
25 |
26 |
27 |
30 |
31 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_Aborting.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
24 |
25 |
26 |
27 |
30 |
31 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_Busy.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
23 |
24 |
25 |
26 |
29 |
30 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_Done.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
23 |
24 |
25 |
26 |
29 |
30 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_Error.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
23 |
24 |
25 |
26 |
29 |
30 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_ErrorMsg.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
23 |
24 |
25 |
26 |
29 |
30 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_Ready.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
24 |
25 |
26 |
27 |
30 |
31 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution Result Aggregate/Test_AggregateResult_Starting.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
24 |
25 |
26 |
27 |
30 |
31 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution/Test_TExecutionWhenBusy_Abort_SelectsAborting.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
19 |
20 |
21 |
22 |
25 |
26 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution/Test_TExecutionWhenBusy_SetDone_SetsDone.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
12 |
13 |
14 |
16 |
17 |
21 |
22 |
23 |
24 |
27 |
28 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution/Test_TExecutionWhenReady_Start_SelectsStarting.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
12 |
13 |
14 |
16 |
17 |
21 |
22 |
23 |
24 |
27 |
28 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Execution/Test_TExecution_SetErrorHandlesString_ErrorId.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Functions/Test_ErrorIdToString.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
20 |
21 |
22 |
23 |
24 |
25 |
28 |
29 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Functions/Test_F_DINT_TO_UDINT_Conversion.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Functions/Test_F_Equals.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Functions/Test_F_NotEqual.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Functions/Test_F_UDINT_TO_DINT_Conversion.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Notifications/Test_MultipleNotificationsWithStringArgs.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
16 |
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
30 |
31 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Notifications/Test_NotificationCountWithQueueingEnabled.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Notifications/Test_NotificationHandlerOnlyAddedOnce.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Notifications/Test_NotificationNoArgs.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Notifications/Test_NotificationWithStringArg.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
17 |
18 |
19 |
23 |
24 |
25 |
26 |
27 |
28 |
31 |
32 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/General/Test_TStreamBufferResizes.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAddReadArgType.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_BLOB.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
35 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_BOOL.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_BYTE.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_DINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_INT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_LINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_LREAL.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_PVOID.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_REAL.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_STRING.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_Short_STRING.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_T_MaxString.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_UDINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_UINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With Arg Type Checking/Test_TStreamAdd_Read_ULINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAddReadArgType_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_BLOB_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
35 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_DINT_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_INT_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_LINT_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_LREAL_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_PVOID_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_REAL_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_UDINT_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_UINT_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/UnitTests/Unit Tests/Stream/With alignment checks/Test_TStreamAdd_Read_ULINT_CheckAlignment.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/_Config/PLC/tcl_BaseClasses.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | tcl_BaseClasses Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 | 1
10 | Default
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses.tsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PLC_Exceptions
6 |
7 |
8 | NoNotificationHandlersLinked
9 |
10 | Warning
11 |
12 |
13 | LogCritical
14 |
15 | Critical
16 |
17 |
18 | LogError
19 |
20 | Error
21 |
22 |
23 | LogWarning
24 |
25 | Warning
26 |
27 |
28 | LogInfo
29 |
30 | Info
31 |
32 |
33 | LogDebug
34 |
35 | Verbose
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | PlcTask
50 |
51 |
52 | PlcTask1
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | UnitTests Instance
61 | {08500001-0000-0000-F000-000000000064}
62 |
63 |
64 | 0
65 | PlcTask
66 |
67 | #x02010040
68 |
69 | 21
70 | 10000000
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses.tsproj.old:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | PlcTask
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Change Monitoring/T_Monitor_DINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
25 |
26 |
28 |
29 |
30 |
31 |
32 |
37 |
38 | _CurrentValue;
39 | _CurrentValue := Value;
40 | CyclicUpdate := _Changed;
41 | ]]>
42 |
43 |
44 |
45 |
47 |
48 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Change Monitoring/T_Monitor_INT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
25 |
26 |
28 |
29 |
30 |
31 |
32 |
37 |
38 | _CurrentValue;
39 | _CurrentValue := Value;
40 | CyclicUpdate := _Changed;
41 | ]]>
42 |
43 |
44 |
45 |
47 |
48 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Change Monitoring/T_Monitor_Structure.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
19 |
20 |
23 |
24 |
26 |
27 |
28 |
29 |
30 |
39 |
40 | Stored_CRC);
44 | IF Changed THEN
45 | Stored_CRC := CRC;
46 | END_IF
47 | CyclicUpdate := _Changed;
48 | ]]>
49 |
50 |
51 |
52 |
56 |
57 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Execution/Execution/I_Execution.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
13 |
14 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
24 |
25 |
26 |
27 |
28 |
29 |
33 |
34 |
35 |
37 |
38 |
39 |
40 |
41 |
42 |
44 |
45 |
46 |
47 |
48 |
49 |
51 |
52 |
53 |
54 |
55 |
56 |
58 |
59 |
60 |
61 |
62 |
63 |
67 |
68 |
69 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Execution/Execution/I_ExecutionResult.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
13 |
14 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
24 |
25 |
26 |
27 |
28 |
29 |
31 |
32 |
33 |
34 |
35 |
36 |
38 |
39 |
40 |
41 |
42 |
43 |
45 |
46 |
47 |
48 |
49 |
50 |
52 |
53 |
54 |
55 |
56 |
57 |
59 |
60 |
61 |
62 |
63 |
64 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Execution/Execution/T_ExecutionState.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_Counter.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
21 |
22 |
23 |
24 |
28 |
29 |
32 |
33 |
34 |
35 |
40 |
41 |
43 |
44 |
45 |
46 |
50 |
51 |
53 |
54 |
55 |
56 |
58 |
59 |
62 |
63 |
65 |
66 |
67 |
68 |
69 |
71 |
72 |
75 |
76 |
78 |
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_FallingEdge.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
19 |
20 |
22 |
23 |
24 |
25 |
26 |
31 |
32 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_MonitoredValue.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
39 |
40 |
42 |
43 |
44 |
45 |
49 |
50 |
53 |
54 |
55 |
56 |
61 |
62 | _ChangeThreshold THEN
63 | _Value := Value;
64 | _Changed := TRUE;
65 | END_IF]]>
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_OffTimer.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
18 |
19 |
22 |
23 |
24 |
25 |
32 |
33 |
35 |
36 |
37 |
38 |
40 |
41 |
44 |
45 |
47 |
48 |
49 |
50 |
51 |
53 |
54 |
57 |
58 |
60 |
61 |
62 |
63 |
66 |
67 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_OnTimer.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
22 |
23 |
24 |
25 |
30 |
31 |
34 |
35 |
36 |
37 |
44 |
45 |
47 |
48 |
49 |
50 |
52 |
53 |
56 |
57 |
59 |
60 |
61 |
62 |
63 |
65 |
66 |
69 |
70 |
72 |
73 |
74 |
75 |
78 |
79 |
81 |
82 |
83 |
84 |
85 |
87 |
88 |
90 |
91 |
92 |
93 |
95 |
96 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_PulseTimer.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
20 |
21 |
23 |
24 |
25 |
26 |
28 |
29 |
32 |
33 |
35 |
36 |
37 |
38 |
39 |
41 |
42 |
45 |
46 |
48 |
49 |
50 |
51 |
54 |
55 |
57 |
58 |
59 |
60 |
61 |
66 |
67 |
70 |
71 |
72 |
73 |
75 |
76 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_RisingEdge.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
19 |
20 |
22 |
23 |
24 |
25 |
26 |
31 |
32 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_SquareWave.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
20 |
21 |
22 |
30 |
31 |
34 |
35 |
36 |
37 |
39 |
40 |
43 |
44 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_StructureCrcMonitor.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
17 |
18 |
21 |
22 |
24 |
25 |
26 |
27 |
28 |
32 |
33 |
35 |
36 |
37 |
38 |
46 |
47 | Stored_CRC);
52 |
53 | IF Changed THEN
54 | Stored_CRC := CRC;
55 | END_IF
56 |
57 | Test := _Changed;
58 | ]]>
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_ValueMonitor.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
22 |
23 |
25 |
26 |
27 |
28 |
29 |
31 |
32 |
35 |
36 |
38 |
39 |
40 |
41 |
42 |
44 |
45 |
48 |
49 |
51 |
52 |
53 |
54 |
55 |
59 |
60 |
63 |
64 |
65 |
66 |
71 |
72 | _CurrentValue;
73 | _PreviousValue := _CurrentValue;
74 | _CurrentValue := Value;
75 |
76 | Test := _Changed;
77 | ]]>
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Function Block Wrappers/Classes/T_ValueMonitorEx.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
17 |
18 |
21 |
22 |
24 |
25 |
26 |
27 |
28 |
32 |
33 |
37 |
38 |
39 |
40 |
45 |
46 |
47 | MEMCMP(pBuf1 := Value.pValue,
48 | pBuf2 := ADR(StoredValue),
49 | n := DINT_TO_UDINT(Value.diSize));
50 |
51 | IF _Changed THEN
52 | MEMCPY(destAddr := ADR(StoredValue),
53 | srcAddr := Value.pValue,
54 | n := DINT_TO_UDINT(Value.diSize));
55 | END_IF
56 |
57 | Test := _Changed;
58 | ]]>
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/List Of Interfaces/I_ListItem.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/List Of Interfaces/I_ListOfInterfaces.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
12 |
13 |
14 |
16 |
17 |
18 |
19 |
20 |
21 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/List Of Interfaces/T_ListOfInterfaces.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
25 |
26 | 0 THEN
36 | pInterface[_Count] := InterfacePointer;
37 | _Count := _Count + 1;
38 | END_IF
39 | ]]>
40 |
41 |
42 |
43 |
47 |
48 |
57 |
58 |
59 |
60 |
62 |
63 |
66 |
67 |
69 |
70 |
71 |
72 |
73 |
78 |
79 |
84 |
85 |
86 |
87 |
94 |
95 |
102 |
103 |
104 |
105 |
110 |
111 | = 0 THEN
112 | GetInterface := pInterface[Index];
113 | END_IF
114 | ]]>
115 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/List Of Interfaces/T_TestIterator.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
16 |
17 |
18 |
22 |
23 | 0 AND_THEN HasMore() THEN
24 | GetNext := List.GetTest(Index);
25 | Index := Index + 1;
26 | END_IF
27 | ]]>
28 |
29 |
30 |
31 |
35 |
36 | 0 AND_THEN (Index < List.Count and List.Count > 0);
37 | ]]>
38 |
39 |
40 |
41 |
46 |
47 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Logger/I_Logger.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
13 |
14 |
15 |
21 |
22 |
23 |
29 |
30 |
31 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Notifications/List Of Handlers/T_ListONotificationHandlers.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
48 |
49 |
50 |
51 |
55 |
56 |
59 |
60 |
61 |
62 |
64 |
65 |
68 |
69 |
71 |
72 |
73 |
74 |
75 |
80 |
81 |
86 |
87 |
88 |
89 |
96 |
97 |
103 |
104 |
105 |
106 |
111 |
112 | = 0 THEN
113 | GetHandler := pHandler[Index];
114 | END_IF
115 | ]]>
116 |
117 |
118 |
119 |
128 |
129 |
140 |
141 |
142 |
143 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Notifications/Notification Handler/I_NotificationHandler.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
12 |
13 |
14 |
15 |
16 |
17 |
19 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Notifications/Notification/I_Notification.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
14 |
15 |
16 |
18 |
19 |
20 |
21 |
22 |
23 |
27 |
28 |
29 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Notifications/Notification/T_Notification.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
28 |
29 |
30 |
31 |
33 |
34 |
37 |
38 |
40 |
41 |
42 |
43 |
44 |
46 |
47 |
50 |
51 |
52 |
53 |
59 |
60 | 0 THEN
61 | FOR i := 0 TO NotificationtHandlers.Count - 1 DO
62 | Handler := NotificationtHandlers.GetHandler(i);
63 | IF Handler <> 0 THEN
64 | Handler.RaiseNotification(NotificationArgs := NotificationArgs);
65 | END_IF
66 | END_FOR
67 | ELSIF NOT InhibitNoHandlersErrorMessage THEN
68 | InhibitNoHandlersErrorMessage := TRUE; // Only log 1 message
69 | F_LogWarning(Source := SUPER^._Name, Message := 'Notification has no notification handlers');
70 |
71 | _Message.CreateEx(TC_EVENTS.PLC_Exceptions.LogWarning,_Source);
72 | _Message.ipArguments.AddString('Notification has no notification handlers');
73 | _Message.Send(0);
74 | _Message.Release();
75 | END_IF
76 |
77 | NotificationArgs.Clear(); // to leave event args empty for next time event is raised
78 | ]]>
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | {ec6b18ef-cd41-4646-b1b3-985c60f930b9}
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Nullable Base Class/T_NullableBaseClass.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Object base class/T_Object.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
19 |
20 |
21 |
22 |
31 |
32 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Stream/E_ArgTypeId.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
26 |
27 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Stream/I_StreamReader.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
16 |
17 |
19 |
20 |
21 |
26 |
27 |
28 |
30 |
31 |
32 |
34 |
35 |
36 |
42 |
43 |
44 |
46 |
47 |
48 |
50 |
51 |
52 |
54 |
55 |
56 |
58 |
59 |
60 |
62 |
63 |
64 |
66 |
67 |
68 |
70 |
71 |
72 |
78 |
79 |
80 |
82 |
83 |
84 |
86 |
87 |
88 |
90 |
91 |
92 |
95 |
96 |
97 |
98 |
99 |
100 |
105 |
106 |
107 |
110 |
111 |
112 |
113 |
114 |
115 |
118 |
119 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Classes/Stream/I_StreamWriter.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
14 |
15 |
16 |
21 |
22 |
23 |
28 |
29 |
30 |
36 |
37 |
38 |
43 |
44 |
45 |
50 |
51 |
52 |
57 |
58 |
59 |
64 |
65 |
66 |
71 |
72 |
73 |
78 |
79 |
80 |
85 |
86 |
87 |
93 |
94 |
95 |
100 |
101 |
102 |
107 |
108 |
109 |
114 |
115 |
116 |
125 |
126 |
127 |
130 |
131 |
132 |
133 |
134 |
135 |
137 |
138 |
139 |
144 |
145 |
146 |
149 |
150 |
151 |
152 |
153 |
154 |
159 |
160 |
161 |
166 |
167 |
168 |
171 |
172 |
173 |
174 |
175 |
176 |
179 |
180 |
181 |
182 |
183 |
184 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_ClearMem.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_CompareMem.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_CopyMem.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 | 0 THEN
18 | memcpy(destAddr := Destination.pValue,
19 | srcAddr := Source.pValue,
20 | n := ByteCount);
21 | END_IF
22 | ]]>
23 |
24 |
25 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_DINT_TO_UDINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_DetectOnlineChange.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | StoredOnlineChangeCnt);
11 | StoredOnlineChangeCnt := TwinCAT_SystemInfoVarList._AppInfo.OnlineChangeCnt;
12 | ]]>
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_Equals.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_GetAdsPort.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | 0 THEN
12 | F_GetAdsPort := TwinCAT_SystemInfoVarList._AppInfo.AdsPort;
13 | END_IF
14 | ]]>
15 |
16 |
17 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_InLimits.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 | = LowLimit) AND (In <= HighLimit);]]>
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_Inc.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
23 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_LinearInterpolation.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_LogError.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_LogMessage.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_LogWarning.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_NotEqual.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 | Delta;
17 | ]]>
18 |
19 |
20 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_ReadFlag.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_TaskTime.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | 0 THEN
12 | F_TaskTime := UDINT_TO_LREAL(TwinCAT_SystemInfoVarList._taskInfo[TaskIndex].CycleTime) * LREAL#1E-7;
13 | END_IF
14 | ]]>
15 |
16 |
17 |
18 |
19 |
20 |
21 | "White"
22 | false
23 |
24 |
25 |
26 | System.Boolean
27 | {bb741845-1ec5-4be9-bb0d-2cf7058af574}
28 | System.String
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_Toggle.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_TypeClassToString.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Functions/F_UDINT_TO_DINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/tcl_BaseClasses/tcl_BaseClasses/tcl_BaseClasses/Version/Global_Version.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------