Robotics and Automation Consulting
burksengineering / tcmatrix Goto Github PK
View Code? Open in Web Editor NEWMatrix Math Library for Beckhoff TwinCAT 3 PLC Environment
License: MIT License
Matrix Math Library for Beckhoff TwinCAT 3 PLC Environment
License: MIT License
Robotics and Automation Consulting
Hi! We implemented a package manager for TwinCAT, similarly to nuget.
https://github.com/zeugwerk/twinpack
It is integrated in TcXAEShell and Visual Studio and also offers a simple command line interface for downloading and uploading packages on CI environments. Ultimately we want to make DevOps more accessible in the PLC world and having an open source package manager is our first step towards this goal.
Would you upload TcMatrix (and TcTransform) to Twinpack to facility the installation of it for TwinCAT users?
Computing the determinant of a 6x6 matrix bumps my PlcTask from 788
to 15222
micro seconds.
Maybe there is a bunch of copies made using the recursion from here.
The title is pretty self-explanatory! I have posted the error log from TwinCAT XAE. Installed from source by using using the step-by-step guide. I am a 2 day veteran with TwinCAT and PLC, so yeah it could very be my undoing ;)
Severity Code Description Project File Line Suppression State
Error 1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33
Error 1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3
Error 1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33
Error 1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================
Error 1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========
Error 1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15
Error 1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========
Error 1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15
Error 1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36
Error 1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36
Error 1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3
Error 1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================
Error 1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct
Severity Code Description Project File Line Suppression State
Error 1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33
Error 1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3
Error 1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33
Error 1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================
Error 1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========
Error 1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15
Error 1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========
Error 1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15
Error 1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36
Error 1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36
Error 1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct
Error 1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3
Error 1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================
Error 1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct
Error 1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct
Warning 1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350): ÒÝ�System
Warning 1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350): ÒÝ�System
Warning 1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350): ÒÝ�Ðß½3ï4Ù��
Warning 1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350): ÒÝ�System
Warning 1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350): ÒÝ�System
Warning 1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350): ÒÝ�Ðß½3ï4Ù��
Message generate boot information... TcMatrixTest (TcMatrixTest\TcMatrixTest) PLC.TcMatrixTest 0
Message Import symbol information ... 0
Message The application is up to date 0
Message Generate TMC information ... 0
Message Build complete -- 0 errors, 0 warnings : ready for download! 0
Message 1/30/2023 4:16:56 PM 419 ms | 'PlcTask' (350): | Test suite ID=0 'PRG_TEST.fbDynamicMatrix'
Message 1/30/2023 4:16:58 PM 699 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataAssignable
Message 1/30/2023 4:16:57 PM 039 ms | 'PlcTask' (350): | Test name=MarkdownExample1
Message 1/30/2023 4:16:58 PM 199 ms | 'PlcTask' (350): | Test name=WhenColumnsExpectError
Message 1/30/2023 4:16:58 PM 539 ms | 'PlcTask' (350): | Test name=WhenMatchingSizeExpectResult
Message 1/30/2023 4:16:57 PM 699 ms | 'PlcTask' (350): | ID=6 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:57 PM 419 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow
Message 1/30/2023 4:16:58 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate
Message 1/30/2023 4:16:58 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 399 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:56 PM 419 ms | 'PlcTask' (350): | Test suite ID=0 'PRG_TEST.fbDynamicMatrix'
Message 1/30/2023 4:16:58 PM 839 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 039 ms | 'PlcTask' (350): | Test name=MarkdownExample1
Message 1/30/2023 4:16:56 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:56 PM 859 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:56 PM 519 ms | 'PlcTask' (350): | Test name=WhenInitiallyResizedExpectMemoryAllocated
Message 1/30/2023 4:16:58 PM 219 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:56 PM 999 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray
Message 1/30/2023 4:16:57 PM 519 ms | 'PlcTask' (350): | Test suite ID=5 'PRG_TEST.fbMatrixShrink'
Message 1/30/2023 4:16:58 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose
Message 1/30/2023 4:16:57 PM 379 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:59 PM 199 ms | 'PlcTask' (350): | Test suite ID=14 'PRG_TEST.fbCsvReadWrite'
Message 1/30/2023 4:16:57 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray
Message 1/30/2023 4:16:57 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:56 PM 999 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray
Message 1/30/2023 4:16:58 PM 979 ms | 'PlcTask' (350): | Test suite ID=13 'PRG_TEST.fbMatrixInvert'
Message 1/30/2023 4:16:58 PM 459 ms | 'PlcTask' (350): | ID=10 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:57 PM 299 ms | 'PlcTask' (350): | Test suite ID=4 'PRG_TEST.fbMatrixGrow'
Message 1/30/2023 4:16:56 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:58 PM 259 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectScalar
Message 1/30/2023 4:16:58 PM 919 ms | 'PlcTask' (350): | Test name=WhenStaticRectangleExpectTranspose
Message 1/30/2023 4:16:57 PM 819 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 979 ms | 'PlcTask' (350): | Test suite ID=13 'PRG_TEST.fbMatrixInvert'
Message 1/30/2023 4:16:58 PM 759 ms | 'PlcTask' (350): | Test suite ID=12 'PRG_TEST.fbMatrixTranspose'
Message 1/30/2023 4:16:58 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 779 ms | 'PlcTask' (350): | ID=12 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:57 PM 579 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink
Message 1/30/2023 4:16:58 PM 419 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:56 PM 879 ms | 'PlcTask' (350): | Test suite ID=1 'PRG_TEST.fbArray'
Message 1/30/2023 4:16:58 PM 099 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult
Message 1/30/2023 4:16:55 PM 802 ms | 'TwinCAT System' (10000): TcIo Server started: TcIo.
Message 1/30/2023 4:16:58 PM 819 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose
Message 1/30/2023 4:16:57 PM 359 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow
Message 1/30/2023 4:16:58 PM 659 ms | 'PlcTask' (350): | Test suite ID=11 'PRG_TEST.fbStaticMatrix'
Message 1/30/2023 4:16:57 PM 719 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError
Message 1/30/2023 4:16:56 PM 659 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4
Message 1/30/2023 4:16:58 PM 799 ms | 'PlcTask' (350): | Test name=WhenSquareExpectTranspose
Message 1/30/2023 4:16:58 PM 599 ms | 'PlcTask' (350): | Test name=WhenBackwardsExpectOppositeResult
Message 1/30/2023 4:16:57 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink
Message 1/30/2023 4:16:58 PM 879 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose
Message 1/30/2023 4:16:57 PM 119 ms | 'PlcTask' (350): | ID=2 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:56 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=5
Message 1/30/2023 4:16:56 PM 579 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct
Message 1/30/2023 4:16:57 PM 199 ms | 'PlcTask' (350): | Test suite ID=3 'PRG_TEST.fbMatrixSubmatrix'
Message 1/30/2023 4:16:57 PM 779 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult
Message 1/30/2023 4:16:57 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixSubmatrix
Message 1/30/2023 4:16:59 PM 019 ms | 'PlcTask' (350): | Test name=WhenIdentityExpectIdentity
Message 1/30/2023 4:16:57 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=10
Message 1/30/2023 4:16:56 PM 759 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4
Message 1/30/2023 4:16:57 PM 139 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectMagicProperties
Message 1/30/2023 4:16:56 PM 799 ms | 'PlcTask' (350): | Test assert type=ULINT
Message 1/30/2023 4:16:59 PM 219 ms | 'PlcTask' (350): | ID=14 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:58 PM 759 ms | 'PlcTask' (350): | Test suite ID=12 'PRG_TEST.fbMatrixTranspose'
Message 1/30/2023 4:16:55 PM 779 ms | 'TwinCAT System' (10000): Loading configuration of COM server TcEventLogger !
Message 1/30/2023 4:16:58 PM 139 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:56 PM 879 ms | 'PlcTask' (350): | Test suite ID=1 'PRG_TEST.fbArray'
Message 1/30/2023 4:16:56 PM 519 ms | 'PlcTask' (350): | Test name=WhenInitiallyResizedExpectMemoryAllocated
Message 1/30/2023 4:16:59 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert
Message 1/30/2023 4:16:57 PM 799 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum
Message 1/30/2023 4:16:58 PM 819 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose
Message 1/30/2023 4:16:57 PM 599 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:59 PM 059 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:53 PM 969 ms | 'TwinCAT System' (10000): Shutting down COM Server TcEventLogger !
Message 1/30/2023 4:16:56 PM 919 ms | 'PlcTask' (350): | Test name=WhenDynamicInitializedExpectValuesCopied
Message 1/30/2023 4:16:58 PM 039 ms | 'PlcTask' (350): | Test name=WhenNotSquareExpectError
Message 1/30/2023 4:16:57 PM 859 ms | 'PlcTask' (350): | ID=7 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:58 PM 279 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:58 PM 799 ms | 'PlcTask' (350): | Test name=WhenSquareExpectTranspose
Message 1/30/2023 4:16:58 PM 399 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:57 PM 599 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 179 ms | 'PlcTask' (350): | ID=9 number of tests=4, number of failed tests=0
Message 1/30/2023 4:16:57 PM 959 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct
Message 1/30/2023 4:16:59 PM 219 ms | 'PlcTask' (350): | ID=14 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:59 PM 119 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:59 PM 139 ms | 'PlcTask' (350): | Test name=WhenSolvableExpectSolution
Message 1/30/2023 4:16:58 PM 439 ms | 'PlcTask' (350): | Test suite ID=10 'PRG_TEST.fbVectorCrossProdcut'
Message 1/30/2023 4:16:56 PM 559 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=3
Message 1/30/2023 4:16:58 PM 999 ms | 'PlcTask' (350): | ID=13 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:57 PM 559 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectError
Message 1/30/2023 4:16:56 PM 539 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:57 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=6
Message 1/30/2023 4:16:57 PM 379 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 439 ms | 'PlcTask' (350): | Test suite ID=10 'PRG_TEST.fbVectorCrossProdcut'
Message 1/30/2023 4:16:57 PM 959 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct
Message 1/30/2023 4:16:58 PM 379 ms | 'PlcTask' (350): | Test name=WhenWithIdentityExpectSame
Message 1/30/2023 4:16:57 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow
Message 1/30/2023 4:16:58 PM 519 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:56 PM 699 ms | 'PlcTask' (350): | Test assert type=ULINT
Message 1/30/2023 4:16:56 PM 619 ms | 'PlcTask' (350): | Test name=WhenResizedBiggerExpectMoreMemoryAllocated
Message 1/30/2023 4:16:57 PM 319 ms | 'PlcTask' (350): | ID=4 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:59 PM 099 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert
Message 1/30/2023 4:16:59 PM 239 ms | 'PlcTask' (350): | Test name=WhenWrittenThenReadExpectSame
Message 1/30/2023 4:16:58 PM 559 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut
Message 1/30/2023 4:16:57 PM 219 ms | 'PlcTask' (350): | ID=3 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:58 PM 099 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult
Message 1/30/2023 4:16:55 PM 802 ms | 'TwinCAT System' (10000): TcIo Server started: TcIo.
Message 1/30/2023 4:16:59 PM 139 ms | 'PlcTask' (350): | Test name=WhenSolvableExpectSolution
Message 1/30/2023 4:16:56 PM 619 ms | 'PlcTask' (350): | Test name=WhenResizedBiggerExpectMoreMemoryAllocated
Message 1/30/2023 4:16:58 PM 239 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:57 PM 939 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult
Message 1/30/2023 4:16:58 PM 279 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:59 PM 079 ms | 'PlcTask' (350): | Test name=WhenSingularExpectError
Message 1/30/2023 4:16:56 PM 839 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:56 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:59 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 399 ms | 'PlcTask' (350): | Test name=WhenGrownExpectDataRetained
Message 1/30/2023 4:16:57 PM 899 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct
Message 1/30/2023 4:16:57 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:57 PM 979 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:56 PM 719 ms | 'PlcTask' (350): | Test name=WhenResizedSmallerExpectLessMemoryAllocated
Message 1/30/2023 4:16:58 PM 139 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 939 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult
Message 1/30/2023 4:16:57 PM 199 ms | 'PlcTask' (350): | Test suite ID=3 'PRG_TEST.fbMatrixSubmatrix'
Message 1/30/2023 4:16:58 PM 019 ms | 'PlcTask' (350): | ID=8 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:56 PM 899 ms | 'PlcTask' (350): | ID=1 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:58 PM 119 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate
Message 1/30/2023 4:16:57 PM 759 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:59 PM 099 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert
Message 1/30/2023 4:16:55 PM 820 ms | 'TwinCAT System' (10000): TcRtsObjects Server started: TcRtsObjects.
Message 1/30/2023 4:16:57 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=10
Message 1/30/2023 4:16:58 PM 039 ms | 'PlcTask' (350): | Test name=WhenNotSquareExpectError
Message 1/30/2023 4:16:58 PM 019 ms | 'PlcTask' (350): | ID=8 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:56 PM 779 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct
Message 1/30/2023 4:16:57 PM 539 ms | 'PlcTask' (350): | ID=5 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:56 PM 699 ms | 'PlcTask' (350): | Test assert type=ULINT
Message 1/30/2023 4:16:57 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=6
Message 1/30/2023 4:16:56 PM 779 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct
Message 1/30/2023 4:16:57 PM 019 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:57 PM 119 ms | 'PlcTask' (350): | ID=2 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:57 PM 799 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum
Message 1/30/2023 4:16:56 PM 819 ms | 'PlcTask' (350): | Test name=WhenResizedToZeroExpectNoMemoryAllocated
Message 1/30/2023 4:16:55 PM 812 ms | 'TwinCAT System' (10000): TcPlc30 Server started: TcPlc30.
Message 1/30/2023 4:16:58 PM 219 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:53 PM 969 ms | 'TwinCAT System' (10000): Shutting down COM Server TcEventLogger !
Message 1/30/2023 4:16:58 PM 159 ms | 'PlcTask' (350): | Test suite ID=9 'PRG_TEST.fbMatrixMatrixProduct'
Message 1/30/2023 4:16:57 PM 839 ms | 'PlcTask' (350): | Test suite ID=7 'PRG_TEST.fbMatrixElementProduct'
Message 1/30/2023 4:16:56 PM 559 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=3
Message 1/30/2023 4:16:57 PM 359 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow
Message 1/30/2023 4:16:55 PM 780 ms | 'TwinCAT System' (10000): Initializing COM Server TcEventLogger !
Message 1/30/2023 4:16:59 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert
Message 1/30/2023 4:16:57 PM 659 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 339 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:57 PM 679 ms | 'PlcTask' (350): | Test suite ID=6 'PRG_TEST.fbMatrixElementSum'
Message 1/30/2023 4:16:58 PM 199 ms | 'PlcTask' (350): | Test name=WhenColumnsExpectError
Message 1/30/2023 4:16:56 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 839 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 499 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut
Message 1/30/2023 4:16:57 PM 879 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError
Message 1/30/2023 4:16:57 PM 719 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError
Message 1/30/2023 4:16:57 PM 579 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink
Message 1/30/2023 4:16:57 PM 519 ms | 'PlcTask' (350): | Test suite ID=5 'PRG_TEST.fbMatrixShrink'
Message 1/30/2023 4:16:56 PM 289 ms | 'TwinCAT System' (10000): Starting COM Server TcEventLogger !
Message 1/30/2023 4:16:57 PM 919 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:56 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:56 PM 859 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:56 PM 759 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4
Message 1/30/2023 4:16:57 PM 299 ms | 'PlcTask' (350): | Test suite ID=4 'PRG_TEST.fbMatrixGrow'
Message 1/30/2023 4:16:59 PM 039 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert
Message 1/30/2023 4:16:57 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:56 PM 839 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:58 PM 739 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 999 ms | 'PlcTask' (350): | ID=13 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:56 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:57 PM 619 ms | 'PlcTask' (350): | Test name=WhenShrunkExpectDataRetained
Message 1/30/2023 4:16:57 PM 819 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:59 PM 199 ms | 'PlcTask' (350): | Test suite ID=14 'PRG_TEST.fbCsvReadWrite'
Message 1/30/2023 4:16:59 PM 079 ms | 'PlcTask' (350): | Test name=WhenSingularExpectError
Message 1/30/2023 4:16:57 PM 619 ms | 'PlcTask' (350): | Test name=WhenShrunkExpectDataRetained
Message 1/30/2023 4:16:58 PM 659 ms | 'PlcTask' (350): | Test suite ID=11 'PRG_TEST.fbStaticMatrix'
Message 1/30/2023 4:16:59 PM 039 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert
Message 1/30/2023 4:16:57 PM 459 ms | 'PlcTask' (350): | Test name=WhenGrownExpectNewDataFilled
Message 1/30/2023 4:16:56 PM 459 ms | 'PlcTask' (350): | Test name=WhenDeclaredExpectNoMemoryAllocated
Message 1/30/2023 4:16:57 PM 419 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow
Message 1/30/2023 4:16:58 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate
Message 1/30/2023 4:16:57 PM 699 ms | 'PlcTask' (350): | ID=6 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:57 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixSubmatrix
Message 1/30/2023 4:16:57 PM 839 ms | 'PlcTask' (350): | Test suite ID=7 'PRG_TEST.fbMatrixElementProduct'
Message 1/30/2023 4:16:59 PM 059 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 259 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectScalar
Message 1/30/2023 4:16:57 PM 999 ms | 'PlcTask' (350): | Test suite ID=8 'PRG_TEST.fbMatrixDeterminate'
Message 1/30/2023 4:16:58 PM 559 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut
Message 1/30/2023 4:16:58 PM 699 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataAssignable
Message 1/30/2023 4:16:58 PM 179 ms | 'PlcTask' (350): | ID=9 number of tests=4, number of failed tests=0
Message 1/30/2023 4:16:58 PM 319 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectSquare
Message 1/30/2023 4:16:56 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:57 PM 099 ms | 'PlcTask' (350): | Test suite ID=2 'PRG_TEST.fbMatrixGetMagicSquare'
Message 1/30/2023 4:16:57 PM 559 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectError
Message 1/30/2023 4:16:56 PM 899 ms | 'PlcTask' (350): | ID=1 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:55 PM 828 ms | 'TwinCAT System' (10000): TcRTime Server started: TcRTime.
Message 1/30/2023 4:16:57 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum
Message 1/30/2023 4:16:57 PM 019 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:58 PM 719 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbStaticMatrix
Message 1/30/2023 4:16:58 PM 899 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 319 ms | 'PlcTask' (350): | ID=4 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:57 PM 879 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError
Message 1/30/2023 4:16:58 PM 919 ms | 'PlcTask' (350): | Test name=WhenStaticRectangleExpectTranspose
Message 1/30/2023 4:16:58 PM 779 ms | 'PlcTask' (350): | ID=12 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:58 PM 639 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:56 PM 679 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct
Message 1/30/2023 4:16:58 PM 339 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct
Message 1/30/2023 4:16:58 PM 119 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate
Message 1/30/2023 4:16:59 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3
Message 1/30/2023 4:16:58 PM 379 ms | 'PlcTask' (350): | Test name=WhenWithIdentityExpectSame
Message 1/30/2023 4:16:57 PM 439 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 779 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult
Message 1/30/2023 4:16:58 PM 239 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 619 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut
Message 1/30/2023 4:16:56 PM 659 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4
Message 1/30/2023 4:16:59 PM 019 ms | 'PlcTask' (350): | Test name=WhenIdentityExpectIdentity
Message 1/30/2023 4:16:56 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray
Message 1/30/2023 4:16:58 PM 739 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 479 ms | 'PlcTask' (350): | Test name=WhenWrongSizeExpectError
Message 1/30/2023 4:16:57 PM 139 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectMagicProperties
Message 1/30/2023 4:16:56 PM 719 ms | 'PlcTask' (350): | Test name=WhenResizedSmallerExpectLessMemoryAllocated
Message 1/30/2023 4:16:56 PM 979 ms | 'PlcTask' (350): | Test name=WhenStaticInitializedExpectValuesCopied
Message 1/30/2023 4:16:56 PM 979 ms | 'PlcTask' (350): | Test name=WhenStaticInitializedExpectValuesCopied
Message 1/30/2023 4:16:58 PM 499 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut
Message 1/30/2023 4:16:59 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 539 ms | 'PlcTask' (350): | ID=5 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:58 PM 579 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 459 ms | 'PlcTask' (350): | ID=10 number of tests=3, number of failed tests=0
Message 1/30/2023 4:16:57 PM 219 ms | 'PlcTask' (350): | ID=3 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:58 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 399 ms | 'PlcTask' (350): | Test name=WhenGrownExpectDataRetained
Message 1/30/2023 4:16:57 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray
Message 1/30/2023 4:16:58 PM 859 ms | 'PlcTask' (350): | Test name=WhenDynamicRectangleExpectTranspose
Message 1/30/2023 4:16:56 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 599 ms | 'PlcTask' (350): | Test name=WhenBackwardsExpectOppositeResult
Message 1/30/2023 4:16:58 PM 519 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:57 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow
Message 1/30/2023 4:16:57 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum
Message 1/30/2023 4:16:58 PM 899 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:59 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbCsvReadWrite
Message 1/30/2023 4:16:53 PM 766 ms | 'TwinCAT System' (10000): Saving configuration of COM server TcEventLogger !
Message 1/30/2023 4:16:58 PM 579 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 759 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:58 PM 619 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut
Message 1/30/2023 4:16:57 PM 979 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:56 PM 439 ms | 'PlcTask' (350): | ID=0 number of tests=5, number of failed tests=3
Message 1/30/2023 4:16:58 PM 539 ms | 'PlcTask' (350): | Test name=WhenMatchingSizeExpectResult
Message 1/30/2023 4:16:58 PM 639 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:59 PM 239 ms | 'PlcTask' (350): | Test name=WhenWrittenThenReadExpectSame
Message 1/30/2023 4:16:57 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGetMagicSquare
Message 1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350): 3x3 Magic Square
[ 4.0, 3.0, 8.0 ;
9.0, 5.0, 1.0 ;
2.0, 7.0, 6.0 ]
Message 1/30/2023 4:16:53 PM 648 ms | 'TwinCAT System' (10000): TwinCAT System Restart initiated from AmsNetId: 192.168.0.193.1.1 port 32856.
Message 1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350): 3x3 Magic Square
[ 4.0, 3.0, 8.0 ;
9.0, 5.0, 1.0 ;
2.0, 7.0, 6.0 ]
Message 1/30/2023 4:16:58 PM 879 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose
Message 1/30/2023 4:16:57 PM 459 ms | 'PlcTask' (350): | Test name=WhenGrownExpectNewDataFilled
Message 1/30/2023 4:16:58 PM 299 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3
Message 1/30/2023 4:16:57 PM 339 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectNoError
Message 1/30/2023 4:16:56 PM 579 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct
Message 1/30/2023 4:16:58 PM 859 ms | 'PlcTask' (350): | Test name=WhenDynamicRectangleExpectTranspose
Message 1/30/2023 4:16:56 PM 919 ms | 'PlcTask' (350): | Test name=WhenDynamicInitializedExpectValuesCopied
Message 1/30/2023 4:16:58 PM 679 ms | 'PlcTask' (350): | ID=11 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:55 PM 780 ms | 'TwinCAT System' (10000): Initializing COM Server TcEventLogger !
Message 1/30/2023 4:16:57 PM 859 ms | 'PlcTask' (350): | ID=7 number of tests=2, number of failed tests=0
Message 1/30/2023 4:16:57 PM 999 ms | 'PlcTask' (350): | Test suite ID=8 'PRG_TEST.fbMatrixDeterminate'
Message 1/30/2023 4:16:55 PM 940 ms | 'License Server' (30): license validation status is Valid(3)
Message 1/30/2023 4:16:55 PM 940 ms | 'License Server' (30): license validation status is Valid(3)
Message 1/30/2023 4:16:55 PM 820 ms | 'TwinCAT System' (10000): TcRtsObjects Server started: TcRtsObjects.
Message 1/30/2023 4:16:58 PM 359 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3
Message 1/30/2023 4:16:57 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4
Message 1/30/2023 4:16:56 PM 799 ms | 'PlcTask' (350): | Test assert type=ULINT
Message 1/30/2023 4:16:58 PM 359 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3
Message 1/30/2023 4:16:58 PM 159 ms | 'PlcTask' (350): | Test suite ID=9 'PRG_TEST.fbMatrixMatrixProduct'
Message 1/30/2023 4:16:57 PM 439 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 239 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataRetained
Message 1/30/2023 4:16:56 PM 439 ms | 'PlcTask' (350): | ID=0 number of tests=5, number of failed tests=3
Message 1/30/2023 4:16:53 PM 648 ms | 'TwinCAT System' (10000): TwinCAT System Restart initiated from AmsNetId: 192.168.0.193.1.1 port 32856.
Message 1/30/2023 4:16:57 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink
Message 1/30/2023 4:16:58 PM 419 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:58 PM 679 ms | 'PlcTask' (350): | ID=11 number of tests=1, number of failed tests=0
Message 1/30/2023 4:16:58 PM 299 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3
Message 1/30/2023 4:16:56 PM 599 ms | 'PlcTask' (350): | Test assert type=ULINT
Message 1/30/2023 4:16:57 PM 659 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2
Message 1/30/2023 4:16:57 PM 099 ms | 'PlcTask' (350): | Test suite ID=2 'PRG_TEST.fbMatrixGetMagicSquare'
Message 1/30/2023 4:16:57 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGetMagicSquare
Message 1/30/2023 4:16:56 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray
Message 1/30/2023 4:16:59 PM 119 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:56 PM 289 ms | 'TwinCAT System' (10000): Starting COM Server TcEventLogger !
Message 1/30/2023 4:16:58 PM 719 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbStaticMatrix
Message 1/30/2023 4:16:55 PM 828 ms | 'TwinCAT System' (10000): TcRTime Server started: TcRTime.
Message 1/30/2023 4:16:59 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3
Message 1/30/2023 4:16:57 PM 679 ms | 'PlcTask' (350): | Test suite ID=6 'PRG_TEST.fbMatrixElementSum'
Message 1/30/2023 4:16:58 PM 479 ms | 'PlcTask' (350): | Test name=WhenWrongSizeExpectError
Message 1/30/2023 4:16:58 PM 319 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectSquare
Message 1/30/2023 4:16:55 PM 779 ms | 'TwinCAT System' (10000): Loading configuration of COM server TcEventLogger !
Message 1/30/2023 4:16:56 PM 599 ms | 'PlcTask' (350): | Test assert type=ULINT
Message 1/30/2023 4:16:57 PM 919 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1
Message 1/30/2023 4:16:56 PM 819 ms | 'PlcTask' (350): | Test name=WhenResizedToZeroExpectNoMemoryAllocated
Message 1/30/2023 4:16:56 PM 459 ms | 'PlcTask' (350): | Test name=WhenDeclaredExpectNoMemoryAllocated
Message 1/30/2023 4:16:55 PM 812 ms | 'TwinCAT System' (10000): TcPlc30 Server started: TcPlc30.
Message 1/30/2023 4:16:53 PM 766 ms | 'TwinCAT System' (10000): Saving configuration of COM server TcEventLogger !
Message 1/30/2023 4:16:56 PM 539 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix
Message 1/30/2023 4:16:56 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=5
Message 1/30/2023 4:16:58 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose
Message 1/30/2023 4:16:56 PM 679 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct
Message 1/30/2023 4:16:57 PM 339 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectNoError
Message 1/30/2023 4:16:57 PM 899 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct
Message 1/30/2023 4:16:57 PM 239 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataRetained
Message 1/30/2023 4:16:59 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbCsvReadWrite
Hi,
When I build projects that use TcMatrix I often get a fair few warnings like these:
I've seen these in TwinCAT 3.1.4024.17, .29, and .44.
In case the image doesn't upload properly, here's a text version:
Severity Code Description Project File Line Suppression State
Warning Compatibility warning: FB_Exit is now called in Vector_CrossProduct for FB instance M_Vectors which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)] Vector_CrossProduct 0
Warning Compatibility warning: FB_Exit is now called in Grow for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)] DynamicMatrix.Grow 0
Warning Compatibility warning: FB_Exit is now called in Shrink for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)] DynamicMatrix.Shrink 0
Warning Compatibility warning: FB_Exit is now called in Transpose for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)] DynamicMatrix.Transpose 0
Warning Compatibility warning: FB_Exit is now called in TransposeSquare for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)] Matrix.TransposeSquare 0
The issue appears to arise from a new compiler warning added to CoDeSys in V3.5.9.70. (You are probably aware that the TwinCAT PLC module is based on CoDeSys. New CoDeSys features and bug fixes generally show up in a new TwinCAT release after a while....) Luckily for us, CoDeSys actually publishes release notes, unlike Beckhoff.
FB_Exit should be called to destroy local instances CDS-383
FB_EXIT is now called for instances allocated on the stack before the owning scope returns.
A warning has been added to inform users about the change of semantics in these cases.
In order to suppress the warning, decorate the POU declaring the local instance with the warning disable
macro for the warning code C0394 ("{warning disable C0394}")
Basically, this {warning disable C0394}
attribute needs to be attached to the Function or Method or Property getter/setter which allocates the temporary FB.
I have tested that the warning suppression works on my machine; it does. I can submit a PR if it would be helpful. I haven't been through the whole library yet to locate every POU which allocates an FB instance on the stack, though.
However I'm less confident in my belief that suppressing the warning is the correct thing to do in all cases. Do you think there are any situations in TcMatrix (or TcTransform) where calling FB_Exit()
for temporary stack-allocated FB instances will cause problems? What's your minimum TwinCAT support version? If it's less than 4022.0, are code changes necessary to make sure that those stack-allocated FBs are cleaned up properly in the absence of a compiler-enforced call to FB_Exit()
?
Hi,
I am using this library to perform matrix functions. It's working great except when I am using the following code.
vMatrix.IsEmpty is true. vMatrix.Rows = 3. vMatrix.Cols = 0.
This looks similar to the quick start example given.
VAR
v: ARRAY[1..3, 1..1] OF LREAL;
vMatrix : Array2DStaticMatrix;
END_VAR
v[1, 1] := 1;
v[2, 1] := 2;
v[3, 1] := 3;
vMatrix(Data := v);
Coming from a backgound of C++, so this might not be possible in PLC.
I am trying to initialize a Vector3 from the position component of an HMatrix. This fails to compile because the component is read only and the method CopyFrom and function Matrix_Copy could be written to. This could be resolved by changing the VAR_INPUT to be constant. In the mean time, I can store the component to a new vector.
// MAIN
PROGRAM MAIN
VAR
v : Vector3;
Hm: HMatrix;
END_VAR
...
// Initialize v with position component from Homogenous transform matrix
v.CopyFrom(M:=Hm.Vector3Component);
// Error from compilation :
// VAR_IN_OUT parameter 'M' of 'CopyFrom' needs variable with write access as input
// Alternate
Matrix_SubMatrix(M_Super:=Hm, M_Sub:=v, RowStart:=0, RowCount:=3, ColStart:=3, ColCount:=1);
Every function/method that does not change an input should be marked as constant. For e.g. :
// Matrix.CopyFrom
METHOD PUBLIC CopyFrom : BOOL//Returns true if the prerequisites were met and the data was copied, false otherwise
VAR_INPUT CONSTANT
M : REFERENCE TO Matrix;//Source of the copy operation
END_VAR
...
CopyFrom := Matrix_Copy(M,THIS^);
Thanks for the awesome library by the way :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.