Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ Compare to:
* [CODESYS Matrix Library](https://us.store.codesys.com/matrix-library.html) ([docs](https://store.codesys.com/media/n98_media_assets/files/2111000003-D/4/Matrix%20Bibliothek_en.pdf))
* [Siemens Library of General Functions](https://support.industry.siemens.com/cs/document/109479728/library-of-general-functions-(lgf)-for-simatic-step-7-(tia-portal)-and-simatic-s7-1200-s7-1500) ([docs](https://cache.industry.siemens.com/dl/files/728/109479728/att_1019474/v3/109479728_LGF_TIAV16_DOC_V5_0_0_en.pdf))

## Known issues
TcMatrix for TwinCAT 4026 have disabled Method: GetSubMatrixAccessor and FillFromAt due to compiler issues. Otherwise this verision should have full functionallity.

## Contents

* [Installation](#twincat-3-installation)
Expand Down Expand Up @@ -333,4 +336,4 @@ Therefore, they are best used quickly then destroyed, all within the scope of a

* [TcTransform](https://github.com/BurksEngineering/TcTransform): Static memory 3x1, 3x3, and 4x4 matricies for common 3D coordinate system transformations
* The unit tests within this project provide a large number of simple examples and usages
* The ExternalStaticMatrix is one example of how to implement the StaticMatrix base class
* The ExternalStaticMatrix is one example of how to implement the StaticMatrix base class
46 changes: 28 additions & 18 deletions TcMatrix.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31605.320
# TcXaeShell Solution File, Format Version 11.00
VisualStudioVersion = 15.0.34829.251
MinimumVisualStudioVersion = 10.0.40219.1
Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "TcMatrixTest", "TcMatrixTest\TcMatrixTest.tsproj", "{E21DD48F-97CD-43F0-AA17-4340951B180B}"
EndProject
Expand All @@ -17,74 +17,84 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7)
Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2)
Debug|TwinCAT OS (x64) = Debug|TwinCAT OS (x64)
Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64)
Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86)
Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7)
Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2)
Release|TwinCAT OS (x64) = Release|TwinCAT OS (x64)
Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64)
Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86)
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMV8-A)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
{E21DD48F-97CD-43F0-AA17-4340951B180B}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMV8-A)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMV8-A)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
{D894BF7B-783C-4A82-8AF1-3D395565C311}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMV8-A)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMV8-A)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
Expand Down
4 changes: 4 additions & 0 deletions TcMatrix.~u
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
GR
DESKTOP-Q0CIJ49
1148
638720223980914128
2 changes: 1 addition & 1 deletion TcMatrix/TcMatrix.tspproj
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4024.22">
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12">
<Project ProjectGUID="{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}" Target64Bit="true" ShowHideConfigurations="#x106">
<Plc>
<Project GUID="{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}" Name="TcMatrix" PrjFilePath="TcMatrix\TcMatrix.plcproj" TmcFilePath="TcMatrix\TcMatrix.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e"/>
Expand Down
2 changes: 1 addition & 1 deletion TcMatrix/TcMatrix.tspproj.bak
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4024.20">
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4026.12">
<Project ProjectGUID="{85BE87FF-93A2-4C73-967A-8A4C6B2B95E6}" Target64Bit="true" ShowHideConfigurations="#x106">
<Plc>
<Project GUID="{C0F4BEF7-55D3-4B7E-A92A-8580425ECFB1}" Name="TcMatrix" PrjFilePath="TcMatrix\TcMatrix.plcproj" TmcFilePath="TcMatrix\TcMatrix.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.9">
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<POU Name="Matrix_DeterminateSquare" Id="{eb8e9d71-3179-0365-01f4-1666dd276213}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION Matrix_DeterminateSquare : BOOL
VAR_IN_OUT CONSTANT
Expand Down Expand Up @@ -30,7 +30,7 @@ ELSE
Sum := 0;
FOR Ci := 0 TO M.Cols-1 DO
Sign := ((UINT_TO_INT(Ci)+1) MOD 2)*2 -1;//even columns are positive, odd columns are negative
SubMatrix := M.GetShrunkMatrixAccessor(0,Ci);
M.GetShrunkMatrixAccessor(SubMatrix,0,Ci);
Sum := Sum + Sign * M.GetRC(0,Ci) * SubMatrix.GetDeterminant();//direct recursion is not accessible, but this should work
END_FOR
Res := Sum;
Expand Down
32 changes: 18 additions & 14 deletions TcMatrix/TcMatrix/POUs/Matrix.TcPOU
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.9">
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<POU Name="Matrix" Id="{37681762-a9e8-4dd1-b97b-ca342c51c659}" SpecialFunc="None">
<Declaration><![CDATA[(*
Matrix Base Class
Expand Down Expand Up @@ -254,7 +254,7 @@ VAR_INPUT
END_VAR

VAR
SubMatrix : SubMatrixAccessor;
//SubMatrix : SubMatrixAccessor;
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[IF M.IsEmpty THEN
Expand All @@ -277,8 +277,9 @@ IF CStart >= Cols THEN
RETURN;
END_IF

SubMatrix := GetSubMatrixAccessor(RStart,Rows-Rstart,CStart,Cols-CStart);
SubMatrix.FillFrom(M);]]></ST>
LogError('%s: Method not valid when running TwinCAT 4026 or higher'); //JSL
//JSL SubMatrix := GetSubMatrixAccessor(RStart,Rows-Rstart,CStart,Cols-CStart);
//JSL SubMatrix.FillFrom(M);]]></ST>
</Implementation>
</Method>
<Method Name="FillTrapezoidal" Id="{f5fa3a45-37d2-08ef-0015-41ed1be8ef4b}" FolderPath="Modifiers\">
Expand Down Expand Up @@ -384,14 +385,15 @@ END_IF]]></ST>
</Implementation>
</Method>
<Method Name="GetShrunkMatrixAccessor" Id="{a17e9bb7-2275-05d1-18ac-48a4fa653049}" FolderPath="Accessors\">
<Declaration><![CDATA[METHOD PUBLIC GetShrunkMatrixAccessor : ShrunkMatrixAccessor
<Declaration><![CDATA[METHOD PUBLIC GetShrunkMatrixAccessor
VAR_INPUT
ShrunkMatrix : REFERENCE TO ShrunkMatrixAccessor;
Row : UINT;
Col : UINT;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[GetShrunkMatrixAccessor.Init(THIS^,Row,Col);]]></ST>
<ST><![CDATA[ShrunkMatrix.Init(THIS^,Row,Col);]]></ST>
</Implementation>
</Method>
<Method Name="GetSize" Id="{61a33f57-364a-4e27-9ba3-9caf9ad98b8f}" FolderPath="Getters\">
Expand Down Expand Up @@ -432,7 +434,7 @@ END_VAR]]></Declaration>
</Implementation>
</Method>
<Method Name="GetSubMatrixAccessor" Id="{a144ad62-4358-0927-0b6b-026cfc4aa1d5}" FolderPath="Accessors\">
<Declaration><![CDATA[METHOD PUBLIC GetSubMatrixAccessor : SubMatrixAccessor
<Declaration><![CDATA[METHOD PUBLIC GetSubMatrixAccessor // : SubMatrixAccessor //JSL uncomment to avoid compile error
VAR_INPUT
RowStart : UINT;
RowCount : UINT;
Expand All @@ -441,16 +443,18 @@ VAR_INPUT
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[GetSubMatrixAccessor.Init(THIS^,RowStart,RowCount,ColStart,ColCount);]]></ST>
<ST><![CDATA[LogError('%s: Method not valid when running TwinCAT 4026 or higher');
//GetSubMatrixAccessor.Init(THIS^,RowStart,RowCount,ColStart,ColCount);]]></ST>
</Implementation>
</Method>
<Method Name="GetTransposeMatrixAccessor" Id="{5dc6f40a-ecba-0ce5-0744-b541aad5ef72}" FolderPath="Accessors\">
<Declaration><![CDATA[METHOD PUBLIC GetTransposeMatrixAccessor : TransposeMatrixAccessor
<Declaration><![CDATA[METHOD PUBLIC GetTransposeMatrixAccessor
VAR_INPUT
TransposeMatrix : REFERENCE TO TransposeMatrixAccessor;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[GetTransposeMatrixAccessor.Init(THIS^);]]></ST>
<ST><![CDATA[TransposeMatrix.Init(THIS^);]]></ST>
</Implementation>
</Method>
<Method Name="GetVectorDotProduct" Id="{1658fad0-9792-0d13-3da1-4022c6478285}" FolderPath="Getters\">
Expand Down Expand Up @@ -1237,7 +1241,7 @@ END_VAR
</LineIds>
<LineIds Name="Matrix.FillFromAt">
<LineId Id="89" Count="19" />
<LineId Id="7" Count="0" />
<LineId Id="110" Count="1" />
<LineId Id="109" Count="0" />
</LineIds>
<LineIds Name="Matrix.FillTrapezoidal">
Expand Down Expand Up @@ -1283,7 +1287,7 @@ END_VAR
<LineId Id="13" Count="0" />
</LineIds>
<LineIds Name="Matrix.GetShrunkMatrixAccessor">
<LineId Id="5" Count="0" />
<LineId Id="1" Count="0" />
</LineIds>
<LineIds Name="Matrix.GetSize">
<LineId Id="5" Count="0" />
Expand All @@ -1297,10 +1301,10 @@ END_VAR
<LineId Id="8" Count="0" />
</LineIds>
<LineIds Name="Matrix.GetSubMatrixAccessor">
<LineId Id="5" Count="0" />
<LineId Id="1" Count="1" />
</LineIds>
<LineIds Name="Matrix.GetTransposeMatrixAccessor">
<LineId Id="5" Count="0" />
<LineId Id="1" Count="0" />
</LineIds>
<LineIds Name="Matrix.GetVectorDotProduct">
<LineId Id="5" Count="0" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.9">
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<POU Name="ShrunkMatrixAccessor" Id="{f0bfcb10-4309-028c-1405-e53184e0781f}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK ShrunkMatrixAccessor EXTENDS MatrixAccessor
VAR_INPUT
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.9">
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.8">
<POU Name="SubMatrixAccessor" Id="{837da318-dc80-05cd-2c43-97c65ce7fbf9}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK SubMatrixAccessor EXTENDS MatrixAccessor
VAR_INPUT
Expand All @@ -14,7 +14,7 @@ VAR
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
<ST><![CDATA[LogError('%s: Method not valid when running TwinCAT 4026 or higher');]]></ST>
</Implementation>
<Folder Name="Initializers" Id="{c4ff6fb8-d426-06a0-2de0-6e817d8e8673}" />
<Folder Name="Overrides" Id="{db7b0a8d-ca29-0b51-32da-29239fddaa39}" />
Expand Down
Loading