diff --git a/.vscode/launch.json b/.vscode/launch.json index aed97de..af50aab 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,6 +4,13 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug ST tests", + "program": "bin/axunit-llvm/tests.exe", + "terminal": "console" + }, { "type": "lldb", "request": "launch", diff --git a/apax-lock.json b/apax-lock.json index 88fe0b6..149d196 100644 --- a/apax-lock.json +++ b/apax-lock.json @@ -1,624 +1,774 @@ { - "@ax/apax-build": { - "version": "1.0.0", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/apax-build/-/apax-build-1.0.0.tgz", - "integrity": "sha512-JxtOn/Mc7bYOjhIbu2FV4c+FvMLuC8kcb6mVleldl7uAID8qAxTZZsM1M+1wJnqe4v0RzO4BHIjdY3qsnikKhg==", + "name": "@simatic-ax/axftcmlib", + "version": "0.0.0-placeholder", + "lockFileVersion": "2", + "installStrategy": "overridable", + "root": { + "name": "@simatic-ax/axftcmlib", + "version": "0.0.0-placeholder", "dependencies": { - "@ax/simatic-package-tool": "^1.0.3", - "@ax/st-resources.stc-plugin": "^1.0.3" - } - }, - "@ax/axunitst": { - "version": "5.0.74", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst/-/axunitst-5.0.74.tgz", - "integrity": "sha512-MPHR89HABeJW9ypbcBKZLWlY23OIq5dw4Z1leGckwuK4GWGU1MUnw+yzzJ6zpw9xXWVHTIwZ45p7Oj/LQsqBhw==", - "dependencies": { - "@ax/axunitst-docs": "5.0.74", - "@ax/axunitst-library": "5.0.74", - "@ax/axunitst-test-director": "5.0.74", - "@ax/build-native": "16.0.3" - } - }, - "@ax/axunitst-docs": { - "version": "5.0.74", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-docs/-/axunitst-docs-5.0.74.tgz", - "integrity": "sha512-QitNPL5avajAf8U4w8QlZnFaHev1ohxnKe5t07/H00rDlczn3y4ofEhe3VLdqSNak49i7uwSzUiEf/y7dJLRNw==" - }, - "@ax/axunitst-library": { - "version": "5.0.74", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-library/-/axunitst-library-5.0.74.tgz", - "integrity": "sha512-JA8f0tido8yggMfKBFBcVQ2XUWfu8Ts0egqeAVkZVD4O2DjCnf1kWMLjCrn/nT9ruLvilaobq9AqV4/ry1dErw==", - "dependencies": { - "@ax/system-strings": "^7.0.17" - } - }, - "@ax/axunitst-ls-contrib": { - "version": "5.0.74", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-ls-contrib/-/axunitst-ls-contrib-5.0.74.tgz", - "integrity": "sha512-WnUPub5PgxXbq0QfKVi9b73fKVSDwlM/Ibz1wXwJdtoFYqiHQrk2L+7/EQyrJfTQXnNeuLAMXpmjsoHnxd09/w==" - }, - "@ax/axunitst-test-director": { - "version": "5.0.74", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-test-director/-/axunitst-test-director-5.0.74.tgz", - "integrity": "sha512-Y8IfFPrFliUPzDcbvWM6o1JjOWozbcoZNaoefLZ2d+q5d1in6d3MElLoHGR7o0alyFyuqght8leEj82bwSbglw==", - "dependencies": { - "@ax/axunitst-test-director-linux-x64": "5.0.74", - "@ax/axunitst-test-director-win-x64": "5.0.74" - } - }, - "@ax/axunitst-test-director-linux-x64": { - "version": "5.0.74", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-test-director-linux-x64/-/axunitst-test-director-linux-x64-5.0.74.tgz", - "integrity": "sha512-iQk6c74Zyu3tcEJRtGZaihIGJ20VHXllZ/9lFkQ9ly6LfaijFBEnRgiY8i+Ho31AltfN8Q5STp3FeP26+6ooMw==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/axunitst-test-director-win-x64": { - "version": "5.0.74", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-test-director-win-x64/-/axunitst-test-director-win-x64-5.0.74.tgz", - "integrity": "sha512-H2+LHDhLRmRDOr3T5XhCcHAnHG5WfQ6SJ2Jdx6cjqDp1OVtmiGnOU10L4S5gcg8UfV1JNeQIJ2VffgwDy0GpXA==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/build-native": { - "version": "16.0.3", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/build-native/-/build-native-16.0.3.tgz", - "integrity": "sha512-d7I0ICUaIwW/8v030Xw8H6fMMOD2FB9ON7pmq+XV+YXCPorTUJ7rCvq4+710B78QJn2ac+xJgpb1EhI1fiK40w==", - "dependencies": { - "@ax/build-native-linux": "16.0.3", - "@ax/build-native-winx64": "16.0.3" - } - }, - "@ax/build-native-linux": { - "version": "16.0.3", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/build-native-linux/-/build-native-linux-16.0.3.tgz", - "integrity": "sha512-CfqbzR+wPnocP0+pDpb3cYBxdefkS6WvHbGaDNGAoCkK3Y8WnNfWbxXr37e5XIi7iPMZ8BONWaRFIN5h4RMeOA==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/build-native-winx64": { - "version": "16.0.3", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/build-native-winx64/-/build-native-winx64-16.0.3.tgz", - "integrity": "sha512-M1qk2yNNsGzz6NXKB0miyfOO4bpYkVcfnGhkHirXcJSLFnWDSx7hnRi0yhLp6jny99RkXEcRn9Cwx8lqynmUDg==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/certificate-management": { - "version": "1.1.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/certificate-management/-/certificate-management-1.1.2.tgz", - "integrity": "sha512-BBEJUjE+WjldDxzeCdVBTXkXtWEO3HK+fdS1frKiIOqmmpeAGfJ01P0qRhNcdzF+ORApQvkBBYorP9Son0nUWA==", - "dependencies": { - "@ax/certificate-management-linux-x64": "1.1.2", - "@ax/certificate-management-win-x64": "1.1.2" - } - }, - "@ax/certificate-management-linux-x64": { - "version": "1.1.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/certificate-management-linux-x64/-/certificate-management-linux-x64-1.1.2.tgz", - "integrity": "sha512-Z3blxeHA57omgrAogE27FDhOQQk+JhlYyvzDmITUg1vnsxxO9fR936mukqeBOWydlt9N/+hQc2Xt/2NOGrcEKw==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/certificate-management-win-x64": { - "version": "1.1.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/certificate-management-win-x64/-/certificate-management-win-x64-1.1.2.tgz", - "integrity": "sha512-E1esAH64ib93jdIqOJElSRK5jh5zFNRuEfm8ZpwRIhuMe446DyQpjHFH+QrnDYSS9feZtLzJhFxEqhgQb7EP3w==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/diagnostic-buffer": { - "version": "1.3.1", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/diagnostic-buffer/-/diagnostic-buffer-1.3.1.tgz", - "integrity": "sha512-BcaeNIDHYaqjLnCqHKa+LrWm/wQf7wt0q7ET7Yxk9sTbePsKF5+1QBm+PjQZCqn/XfqPnDzSj4YKLMNdP7fGgQ==", - "dependencies": { - "@ax/diagnostic-buffer-linux-x64": "1.3.1", - "@ax/diagnostic-buffer-win-x64": "1.3.1" - } - }, - "@ax/diagnostic-buffer-linux-x64": { - "version": "1.3.1", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/diagnostic-buffer-linux-x64/-/diagnostic-buffer-linux-x64-1.3.1.tgz", - "integrity": "sha512-CA3gr8L64up2p0BWo0DEvTbYJPgie23MIix1ShG8UXWtPE+yxvRDYt5BnsDPN9RMZCIp6odl8xYO7E9f/ib3OQ==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/diagnostic-buffer-win-x64": { - "version": "1.3.1", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/diagnostic-buffer-win-x64/-/diagnostic-buffer-win-x64-1.3.1.tgz", - "integrity": "sha512-KmHQgAUPCm1+dQgThqxZOyjMmeQYhUyJpl+HZk3TWkVu2WqtAT5/In0whcUWfIJhO3i9nL44pu0Yz8uHqqjURw==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/hwc": { - "version": "1.0.225", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwc/-/hwc-1.0.225.tgz", - "integrity": "sha512-fesFsmJoCzMHUJDVltN3dlp2xUtZPrme2GYxddVYf1Qayn6Qc+iXvA3k8Wul7WYlDqjfYITwpwSv+EzmxFNhWA==", - "dependencies": { - "@ax/hwc-linux-x64": "1.0.225", - "@ax/hwc-win-x64": "1.0.225" - } - }, - "@ax/hwc-linux-x64": { - "version": "1.0.225", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwc-linux-x64/-/hwc-linux-x64-1.0.225.tgz", - "integrity": "sha512-3K1CUuL6Hsi7lXxjmxXtNGcZLDJvjZ5M/BDbiezA+/JYGkuYeFJJUQ3/oBVgHZqzSVwRr6h/emd1masBExSxdg==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/hwc-win-x64": { - "version": "1.0.225", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwc-win-x64/-/hwc-win-x64-1.0.225.tgz", - "integrity": "sha512-ga6JbYVmgujGDOmT41mB/vGgGnRUMne0+5CHEQhjw5gckLW7C5P2CFzGmZySYCAJV4i3PCOnPxuNX/3Yqahxzw==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/hwld": { - "version": "1.0.75", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwld/-/hwld-1.0.75.tgz", - "integrity": "sha512-hIL04LpIP80oIIK0bTSaGKYItdbGyQR9GXCdo6eeFRgQiN8sLJvG0/If0nmv22QFNYwpjjRbqUF9sVHrMneinA==", - "cpu": [ - "x64" - ] - }, - "@ax/mod": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/mod/-/mod-1.2.2.tgz", - "integrity": "sha512-X5hmfil9iQoe7s+8hxUN90n9+x7RGMaCJ5an2xP6t3Ch1BolhoPe5oZPt79z/4p1kXIef4bO7/7l5cNoVf1INA==", - "dependencies": { - "@ax/mod-linux-x64": "1.2.2", - "@ax/mod-win-x64": "1.2.2" - } - }, - "@ax/mod-linux-x64": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/mod-linux-x64/-/mod-linux-x64-1.2.2.tgz", - "integrity": "sha512-7I5w57z7mfKen9RpAaIsfw7m+dT5C1ey6lvJxwnRHDaPYWEi7ZBu2KSCvzRA1MD6nxpGpPhv9idb0gMX+yCslA==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/mod-win-x64": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/mod-win-x64/-/mod-win-x64-1.2.2.tgz", - "integrity": "sha512-WLtXvWWc73YFX4FNnETftcD552pSWqDMLwjo8h3oD8sY8oMvjBd0gcF0x4EjZ+gSYv2XCVGi6O2PyHF1zuvmCQ==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/mon": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/mon/-/mon-1.2.2.tgz", - "integrity": "sha512-JPI5kMod5iNwVHX7HmW7+VP6CC9MpLH/vSPWBMWOqwO5egl82BJ7bzjBvqs8cxLGUg0DXLph39f5kxLeH+hZLg==", - "dependencies": { - "@ax/mon-linux-x64": "1.2.2", - "@ax/mon-win-x64": "1.2.2" - } - }, - "@ax/mon-linux-x64": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/mon-linux-x64/-/mon-linux-x64-1.2.2.tgz", - "integrity": "sha512-0E72/PJiANdykEwSe+JlKMIG+gVIYdp2FbNCUvrcC0PMzh+B0g6CkAWdicYEFzl99EM9RHjZBBuqk0j8PlKDKg==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/mon-win-x64": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/mon-win-x64/-/mon-win-x64-1.2.2.tgz", - "integrity": "sha512-a9V7Ivb6I9iaP5gyNsVb2FCO7n9uBWNVmXQTqta9OMoDVgR96+7BDNOcKNy/QSCDDEeLBf8e2G/WI5Y/DdsByg==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/performance-info": { - "version": "1.1.1", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/performance-info/-/performance-info-1.1.1.tgz", - "integrity": "sha512-jfegiHImUyE0RH0wMRXLoF72QGoNjLN5DB6pIih+6jj5CxA/5xwfA57j85RUEk8CZMySibvT2nQVzJHOeSWvGw==", - "dependencies": { - "@ax/performance-info-linux-x64": "1.1.1", - "@ax/performance-info-win-x64": "1.1.1" - } - }, - "@ax/performance-info-linux-x64": { - "version": "1.1.1", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/performance-info-linux-x64/-/performance-info-linux-x64-1.1.1.tgz", - "integrity": "sha512-Hw7+kegtXUyhbYo5XGESBhYyOmrcHoJHnv8hm+lTL4dITNtnI0wx+NTNTavwHZM2S+N3vro9W8QaatN+9QNuuA==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/performance-info-win-x64": { - "version": "1.1.1", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/performance-info-win-x64/-/performance-info-win-x64-1.1.1.tgz", - "integrity": "sha512-KABLJCTUtv27Esi/xOMW8iFA3kDF5ytv0/++YHdCK8C88wm3Q2lqW/Kahi0CkumncK9bZzsDD8awvLtrjDfC1g==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/plc-info": { - "version": "2.4.0", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/plc-info/-/plc-info-2.4.0.tgz", - "integrity": "sha512-dOdzSN7yGCdLeKv1ET1BWlNqg+mskhNoe4WYmOA25Dq5OWvkgCnnHGjjRgo7bw4ZGWctPzE/vKjlX9diNAa6Og==", - "dependencies": { - "@ax/plc-info-linux-x64": "2.4.0", - "@ax/plc-info-win-x64": "2.4.0" - } - }, - "@ax/plc-info-linux-x64": { - "version": "2.4.0", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/plc-info-linux-x64/-/plc-info-linux-x64-2.4.0.tgz", - "integrity": "sha512-xb1/9gaOZeqJeLil3crkbluj6oHxI895YhgqZljjOlvJ/lYqJd9zkZHUOHb6nK686/pEejbLMfvGRTspGDRlLQ==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/plc-info-win-x64": { - "version": "2.4.0", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/plc-info-win-x64/-/plc-info-win-x64-2.4.0.tgz", - "integrity": "sha512-4S4uhfYb+yYVIDuN4Nid9ei0mpsTdSKcCv2ZeVo5mLpYWLCh0KfSk8XIoS6zxjD1TlQYcEc+Cnn1+5rdjhpldQ==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/sdb": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdb/-/sdb-1.2.2.tgz", - "integrity": "sha512-Yi8STvJfVnP2ucIcySe8K0wWhfb0nNCSgDvcHan9Yr6pbYibmfLu0VaaJ/rvxIrP882Ssu2QNoDXdmKfYFmDEA==", - "dependencies": { - "@ax/sdb-linux-x64": "1.2.2", - "@ax/sdb-win-x64": "1.2.2" - } - }, - "@ax/sdb-linux-x64": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdb-linux-x64/-/sdb-linux-x64-1.2.2.tgz", - "integrity": "sha512-ekRXF7Id+4SQeyQKlzqQEJy95r6Srv1Yo6oQaylj3Ebn44K4+R87ZFqHDFCCDwcuHm4qswVHdmd7fEw8r+Z3Dw==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/sdb-win-x64": { - "version": "1.2.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdb-win-x64/-/sdb-win-x64-1.2.2.tgz", - "integrity": "sha512-WusrkIHXT0UJWoU+lbiFNYBqMHJcg7EkVLATw9wmwlR3RmvufoZAkH1bGSEBPDjIR9D3rIJn5ZvAPdkNIrao1g==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/sdk": { - "version": "2405.0.0", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdk/-/sdk-2405.0.0.tgz", - "integrity": "sha512-Gm+Et1l37wDwHr4tpa0TqB71TwudQaXJpR53NI7PGh+uEljyu1xzArZorj0NUiMSi/GMj2xi//JWsfS8iWDkbg==", - "dependencies": { - "@ax/apax-build": "1.0.0", - "@ax/axunitst": "5.0.74", - "@ax/axunitst-ls-contrib": "5.0.74", - "@ax/certificate-management": "1.1.2", - "@ax/diagnostic-buffer": "1.3.1", - "@ax/hwc": "1.0.225", - "@ax/hwld": "1.0.75", - "@ax/mod": "1.2.2", - "@ax/mon": "1.2.2", - "@ax/performance-info": "1.1.1", - "@ax/plc-info": "2.4.0", - "@ax/sdb": "1.2.2", - "@ax/simatic-pragma-stc-plugin": "4.0.18", - "@ax/sld": "2.5.7", - "@ax/st-ls": "7.0.52", - "@ax/stc": "7.0.52", - "@ax/target-llvm": "7.0.52", - "@ax/target-mc7plus": "7.0.52", - "@ax/trace": "2.7.2" - } - }, - "@ax/simatic-1500-clocks": { - "version": "7.0.4", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/simatic-1500-clocks/-/simatic-1500-clocks-7.0.4.tgz", - "integrity": "sha512-tJ9zlHOYpAsr9RYZEhpQojmSqw6Ja8aYPpZH94OCXaEggSdArpgQWr4Kyvw7w2NHx5TC3LnmED/BoBCilwCBaA==" - }, - "@ax/simatic-package-tool": { - "version": "1.0.3", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/simatic-package-tool/-/simatic-package-tool-1.0.3.tgz", - "integrity": "sha512-5f5k9y/fNSK657l/zszQxaj16SR9nYk+k4iskuuoPsScRFWr4joVvDfuCgPQ3EBzdyJDzkbXu2rItkoS2Dy84A==" - }, - "@ax/simatic-pragma-stc-plugin": { - "version": "4.0.18", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/simatic-pragma-stc-plugin/-/simatic-pragma-stc-plugin-4.0.18.tgz", - "integrity": "sha512-gm+r3VCKHSBrjA7/kTb4IEOj4MgPEeeTfCHjj/RwvyEoUO/ZxvFU0NzkkxYsR9eXnfabRRMpLGC5SvrRWjcZkA==" - }, - "@ax/sld": { - "version": "2.5.7", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/sld/-/sld-2.5.7.tgz", - "integrity": "sha512-LSa6MtCF/l1J/S5c8NsaQTE84X+nAHoLjdqwRRLX97zHs3GVuan6sfC+VhyniiXrI201Bvwky4po18pT7IeY2Q==", - "cpu": [ - "x64" - ] - }, - "@ax/st-docs": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-docs/-/st-docs-7.0.52.tgz", - "integrity": "sha512-iKLQAGv6Au/CsImP/RmCy0nRIUCQMjrAdgo/AmWrH3+MvPLjhowbsNSQsq1YUP34PbYI0ThH6tQjkUta2dFc7A==" - }, - "@ax/st-ls": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-ls/-/st-ls-7.0.52.tgz", - "integrity": "sha512-PAIQe3+uaXLMGS6U8Ve38JHCS+HjmRWgXzxCoOFZN1ITc7/TCZLWa6otHXEPn6Nx/82iFuQ2x+USWTxNAy5Vmg==", - "dependencies": { - "@ax/st-ls-linux-x64": "7.0.52", - "@ax/st-ls-win-x64": "7.0.52" - } - }, - "@ax/st-ls-linux-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-ls-linux-x64/-/st-ls-linux-x64-7.0.52.tgz", - "integrity": "sha512-x4IJ9epvLq9erqlTn7c0S900txMIMg3SPRS0vG/mZ1vg5E6UJXc9QscUS7YBMLzvsMpLeBQ2MmPoTu33zMPkKg==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/st-ls-win-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-ls-win-x64/-/st-ls-win-x64-7.0.52.tgz", - "integrity": "sha512-TfuesPZqWGkqjvdaY74JQJqnvi1AoLIiM1NX/13c9avaMqlsDtS+OaKDdV8cufwQqEZo1qADGFMQBo6nzuOe3g==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/st-resources.stc-plugin": { - "version": "1.0.5", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-resources.stc-plugin/-/st-resources.stc-plugin-1.0.5.tgz", - "integrity": "sha512-8qEF0A8qtmDMLpikoj52FcQzsF7gkrZWRFUCUtejNFgaRgAYTNI/VWKic3dWROrL3deflSha80lxzPJAeCQD0A==" - }, - "@ax/stc": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/stc/-/stc-7.0.52.tgz", - "integrity": "sha512-In7WOUL6lAdWwDURKUBu6ixwboVcS6JTzWdDZc2I2BO7ro77owa1QxJPnC8ljgbN+DPvLTCoAyIHlJWUsa3KkA==", - "dependencies": { - "@ax/stc-linux-x64": "7.0.52", - "@ax/stc-win-x64": "7.0.52" - } - }, - "@ax/stc-linux-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/stc-linux-x64/-/stc-linux-x64-7.0.52.tgz", - "integrity": "sha512-sZwilTZdTMbtE4Zrxw0y1bbLoOJogWBTQ2dAPRSS5eXSdXUfma/6Bw/YJky6uN0zGa2/aGfj7KOIxPC33m3yJQ==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ], - "dependencies": { - "@ax/st-docs": "7.0.52" - } - }, - "@ax/stc-win-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/stc-win-x64/-/stc-win-x64-7.0.52.tgz", - "integrity": "sha512-lQigUjqIVZw8odW/OGsVQK674B9jnoO1aVnZlsvrTDCmiGQ1NDrwJusA+t8uFJ0I0tjGlgoH5NV/nisiStj5pg==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ], - "dependencies": { - "@ax/st-docs": "7.0.52" - } - }, - "@ax/system-datetime": { - "version": "7.0.17", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-datetime/-/system-datetime-7.0.17.tgz", - "integrity": "sha512-mgB6+Ln5eLXsGJb4nl6/sW7SwAipSrFvttMWGAJMOym3qx7F1MuAdcZ6NaRS0rV0mpyyTEzgG3sk2voMN1OK1Q==" - }, - "@ax/system-math": { - "version": "7.0.17", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-math/-/system-math-7.0.17.tgz", - "integrity": "sha512-nHwRWg5Skzq3dgV29XVa7wni0ZQkn/ff6csYxrS7IsNKGb2nKOAJQFb/WzrfcxbsTYhTPOyifI6ulDgMu50Y6w==" - }, - "@ax/system-strings": { - "version": "7.0.17", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-strings/-/system-strings-7.0.17.tgz", - "integrity": "sha512-xrT2GzVqeTXVF5Nq7wXKwYTb9FqIV3F5DWWGGEUwZvrm5t2unyFqsBDXoFBWDicPuhUFaH0FUwp1NqvMSN95pQ==", - "dependencies": { - "@ax/system-datetime": "7.0.17", - "@ax/system-math": "7.0.17" - } - }, - "@ax/system-timer": { - "version": "7.0.17", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-timer/-/system-timer-7.0.17.tgz", - "integrity": "sha512-JC2qA1x0C1loDgzyTO3T3GxT5a7VjXWhRMBovIhoTwbXmY/hs1nD28DvpIPCU1hNz6vxCV0s/BDw+ZwkZXx6hA==" - }, - "@ax/target-llvm": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-llvm/-/target-llvm-7.0.52.tgz", - "integrity": "sha512-6TVqe2iQjx+qtktdwEm6o3MFLN+62wsKt/d2JzeL6gDLdZ7Y8m2zOgvF0UNVUad1eoHYDef/zakgziePOGh4oQ==", - "dependencies": { - "@ax/target-llvm-linux-x64": "7.0.52", - "@ax/target-llvm-win-x64": "7.0.52" - } - }, - "@ax/target-llvm-linux-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-llvm-linux-x64/-/target-llvm-linux-x64-7.0.52.tgz", - "integrity": "sha512-+7mQstKt1SQkHeAqtBjCedrEYYTQ8iyLZpJHBN5fA7SORa1Pqe+sAnqKMQ565mukAJtI4D/DVI3LLzTOFeh3Vg==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/target-llvm-win-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-llvm-win-x64/-/target-llvm-win-x64-7.0.52.tgz", - "integrity": "sha512-Njdzy1BSWhOwZxbU1UVdhvGhIQ0h350h+R8s/SttXUtHqd5PZPqDHnjrfGvd9kmNCwxEWWzYhylpQ5AjpmyWdQ==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/target-mc7plus": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-mc7plus/-/target-mc7plus-7.0.52.tgz", - "integrity": "sha512-z4FpDsG/zMYKSB6kiTtKedIlXrooouZKfV7DZf5h/X7vxWmY6Fvl3clzQbS7EwB8pbvJoRXoaedKuUeU8NQDYw==", - "dependencies": { - "@ax/target-mc7plus-linux-x64": "7.0.52", - "@ax/target-mc7plus-win-x64": "7.0.52" - } - }, - "@ax/target-mc7plus-linux-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-mc7plus-linux-x64/-/target-mc7plus-linux-x64-7.0.52.tgz", - "integrity": "sha512-GTWsmwdW7sBPQyEQO/UnhL1KdSSW/1eeCkgD9RUt6IspnSoe93/51dXnwu9VHQbb4dFFcV9WWWfViUV978DE4w==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/target-mc7plus-win-x64": { - "version": "7.0.52", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-mc7plus-win-x64/-/target-mc7plus-win-x64-7.0.52.tgz", - "integrity": "sha512-lPrJnulhkp2ib2LUxAu+845HlqY/xTtdZlnI01ZQRCpkPj+sA6lmLdbCifs1wgYVq8c5yoXBjj2tTct+3gFMKw==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@ax/trace": { - "version": "2.7.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/trace/-/trace-2.7.2.tgz", - "integrity": "sha512-mFunruP/lt1Kcwb/DKIAlB1nyzMxB2FR1AXw1iq+rBEUyZwAVjWkbXk3PKSGzO2naI+/fm+xNAkGvQGU+3513Q==", - "dependencies": { - "@ax/trace-linux-x64": "2.7.2", - "@ax/trace-win-x64": "2.7.2" - } - }, - "@ax/trace-linux-x64": { - "version": "2.7.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/trace-linux-x64/-/trace-linux-x64-2.7.2.tgz", - "integrity": "sha512-MKLEEHrJp6NzOVHHdh9s+aZkIvHhFkrsWkqtR1rySvobh8EjiWhT1ceQzMz3NOkJgaPPDwtRvdioleuuYTHoCg==", - "os": [ - "linux" - ], - "cpu": [ - "x64" - ] - }, - "@ax/trace-win-x64": { - "version": "2.7.2", - "resolved": "https://registry.simatic-ax.siemens.io/@ax/trace-win-x64/-/trace-win-x64-2.7.2.tgz", - "integrity": "sha512-brmFDkA8Rd9OQy6Gxb7BXre7TlKVO03aHVTFEgU7aCuCuQtdr7D5vNv+RJk2J/F/GZ5SQ0f4UxpUYxOTHSsBvg==", - "os": [ - "win32" - ], - "cpu": [ - "x64" - ] - }, - "@simatic-ax/io": { - "version": "6.0.0", - "resolved": "https://npm.pkg.github.com/download/@simatic-ax/io/6.0.0/a41b213542c3e91485f6500466bba00cc630cd61", - "integrity": "sha512-4HoXkzHNubr/tksNCbYNdyPHyl3iY2HuWfalvBLyomqthIh262k/MAdk9yjURoTI91Uzd88s3TTHrS2wWFI0mQ==", - "dependencies": { - "@ax/system-timer": "7.0.17" + "@ax/simatic-1500-clocks": "7.0.4", + "@simatic-ax/simple-control-modules": "6.0.0", + "@simatic-ax/io": "6.0.0", + "@ax/system-timer": "7.0.17", + "@simatic-ax/commands": "1.0.0", + "@simatic-ax/statemachine": "^6.0.1" + }, + "devDependencies": { + "@ax/sdk": "2405.0.0", + "@ax/axunitst": "^5.1.23", + "@simatic-ax/snippetscollection": "1.0.0" } }, - "@simatic-ax/simple-control-modules": { - "version": "6.0.0", - "resolved": "https://npm.pkg.github.com/download/@simatic-ax/simple-control-modules/6.0.0/c9b1263348fbb676e4bae43efaf1f9ebfd660e9f", - "integrity": "sha512-1VPYgkwxNljCJTITTR9ns7WGw+HMn4xq7zuSYTSrDQygomkuXDfydNYgu1/iTqk0Jv3OlPaMC3SuASZlc2XVRA==", - "dependencies": { - "@ax/system-timer": "7.0.17", - "@simatic-ax/io": "6.0.0" + "packages": { + "@ax/sdk": { + "name": "@ax/sdk", + "version": "2405.0.0", + "integrity": "sha512-Gm+Et1l37wDwHr4tpa0TqB71TwudQaXJpR53NI7PGh+uEljyu1xzArZorj0NUiMSi/GMj2xi//JWsfS8iWDkbg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdk/-/sdk-2405.0.0.tgz", + "dependencies": { + "@ax/apax-build": "1.0.0", + "@ax/axunitst": "5.0.74", + "@ax/axunitst-ls-contrib": "5.0.74", + "@ax/certificate-management": "1.1.2", + "@ax/diagnostic-buffer": "1.3.1", + "@ax/hwc": "1.0.225", + "@ax/hwld": "1.0.75", + "@ax/mod": "1.2.2", + "@ax/mon": "1.2.2", + "@ax/performance-info": "1.1.1", + "@ax/plc-info": "2.4.0", + "@ax/sdb": "1.2.2", + "@ax/simatic-pragma-stc-plugin": "4.0.18", + "@ax/sld": "2.5.7", + "@ax/st-ls": "7.0.52", + "@ax/stc": "7.0.52", + "@ax/target-llvm": "7.0.52", + "@ax/target-mc7plus": "7.0.52", + "@ax/trace": "2.7.2" + } + }, + "@ax/axunitst": { + "name": "@ax/axunitst", + "version": "5.1.23", + "integrity": "sha512-SAfV92MvnhERKpyZ3rH3gh91ymcrhvU3CRaezbuyVFt2HhZblR/4heF+wQ4mC+dj0Z1U4NHrCiyN1R0N7VuNkg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst/-/axunitst-5.1.23.tgz", + "dependencies": { + "@ax/axunitst-library": "5.1.23", + "@ax/axunitst-test-director": "5.1.23", + "@ax/axunitst-docs": "5.1.23", + "@ax/build-native": "16.0.3" + }, + "deprecated": "" + }, + "@simatic-ax/snippetscollection": { + "name": "@simatic-ax/snippetscollection", + "version": "1.0.0", + "integrity": "sha512-8BNldIIGZuuLSiMjJxcBmHt7sL7kSlc0dss88BcrfnL/7iXPmHwhlnh4XobcVoOHXaz5f8cbMbXCUrffBIwecQ==", + "resolved": "https://npm.pkg.github.com/download/@simatic-ax/snippetscollection/1.0.0/60302d7e0da15a914ce0126503398063a42e1917", + "dependencies": {} + }, + "@ax/simatic-1500-clocks": { + "name": "@ax/simatic-1500-clocks", + "version": "7.0.4", + "integrity": "sha512-tJ9zlHOYpAsr9RYZEhpQojmSqw6Ja8aYPpZH94OCXaEggSdArpgQWr4Kyvw7w2NHx5TC3LnmED/BoBCilwCBaA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/simatic-1500-clocks/-/simatic-1500-clocks-7.0.4.tgz", + "dependencies": {} + }, + "@simatic-ax/simple-control-modules": { + "name": "@simatic-ax/simple-control-modules", + "version": "6.0.0", + "integrity": "sha512-1VPYgkwxNljCJTITTR9ns7WGw+HMn4xq7zuSYTSrDQygomkuXDfydNYgu1/iTqk0Jv3OlPaMC3SuASZlc2XVRA==", + "resolved": "https://npm.pkg.github.com/download/@simatic-ax/simple-control-modules/6.0.0/c9b1263348fbb676e4bae43efaf1f9ebfd660e9f", + "dependencies": { + "@ax/system-timer": "7.0.17", + "@simatic-ax/io": "6.0.0" + } + }, + "@simatic-ax/io": { + "name": "@simatic-ax/io", + "version": "6.0.0", + "integrity": "sha512-4HoXkzHNubr/tksNCbYNdyPHyl3iY2HuWfalvBLyomqthIh262k/MAdk9yjURoTI91Uzd88s3TTHrS2wWFI0mQ==", + "resolved": "https://npm.pkg.github.com/download/@simatic-ax/io/6.0.0/a41b213542c3e91485f6500466bba00cc630cd61", + "dependencies": { + "@ax/system-timer": "7.0.17" + } + }, + "@ax/system-timer": { + "name": "@ax/system-timer", + "version": "7.0.17", + "integrity": "sha512-JC2qA1x0C1loDgzyTO3T3GxT5a7VjXWhRMBovIhoTwbXmY/hs1nD28DvpIPCU1hNz6vxCV0s/BDw+ZwkZXx6hA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-timer/-/system-timer-7.0.17.tgz", + "dependencies": {} + }, + "@simatic-ax/commands": { + "name": "@simatic-ax/commands", + "version": "1.0.0", + "integrity": "sha512-gswlRfdCNdlR7XCMmz2LsL1954t3y16oNTCuU+dvXV2PeezfsmEC6laXpoCt2juZtIwQkQSS3MstAM9lG3WLOA==", + "resolved": "https://npm.pkg.github.com/download/@simatic-ax/commands/1.0.0/a5ef0dd9beee71acb9582de8ec45342b5acb8765", + "dependencies": {} + }, + "@simatic-ax/statemachine": { + "name": "@simatic-ax/statemachine", + "version": "6.0.1", + "integrity": "sha512-bsD59xTjWNWMEDIT9mWZLvw4EL90jFC5IYVhHMPgHf4ZgW0PyMgAhUU9DruLxm4f8pDkVgn5NkLOaOEjxM51Mg==", + "resolved": "https://npm.pkg.github.com/download/@simatic-ax/statemachine/6.0.1/a1dc020219f945a697b95aca4a3c52c674cf0b59", + "dependencies": { + "@ax/system-timer": "7.0.17" + } + }, + "@ax/apax-build": { + "name": "@ax/apax-build", + "version": "1.0.0", + "integrity": "sha512-JxtOn/Mc7bYOjhIbu2FV4c+FvMLuC8kcb6mVleldl7uAID8qAxTZZsM1M+1wJnqe4v0RzO4BHIjdY3qsnikKhg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/apax-build/-/apax-build-1.0.0.tgz", + "dependencies": { + "@ax/simatic-package-tool": "^1.0.3", + "@ax/st-resources.stc-plugin": "^1.0.3" + } + }, + "@ax/axunitst-ls-contrib": { + "name": "@ax/axunitst-ls-contrib", + "version": "5.0.74", + "integrity": "sha512-WnUPub5PgxXbq0QfKVi9b73fKVSDwlM/Ibz1wXwJdtoFYqiHQrk2L+7/EQyrJfTQXnNeuLAMXpmjsoHnxd09/w==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-ls-contrib/-/axunitst-ls-contrib-5.0.74.tgz", + "dependencies": {} + }, + "@ax/certificate-management": { + "name": "@ax/certificate-management", + "version": "1.1.2", + "integrity": "sha512-BBEJUjE+WjldDxzeCdVBTXkXtWEO3HK+fdS1frKiIOqmmpeAGfJ01P0qRhNcdzF+ORApQvkBBYorP9Son0nUWA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/certificate-management/-/certificate-management-1.1.2.tgz", + "dependencies": { + "@ax/certificate-management-win-x64": "1.1.2", + "@ax/certificate-management-linux-x64": "1.1.2" + } + }, + "@ax/diagnostic-buffer": { + "name": "@ax/diagnostic-buffer", + "version": "1.3.1", + "integrity": "sha512-BcaeNIDHYaqjLnCqHKa+LrWm/wQf7wt0q7ET7Yxk9sTbePsKF5+1QBm+PjQZCqn/XfqPnDzSj4YKLMNdP7fGgQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/diagnostic-buffer/-/diagnostic-buffer-1.3.1.tgz", + "dependencies": { + "@ax/diagnostic-buffer-win-x64": "1.3.1", + "@ax/diagnostic-buffer-linux-x64": "1.3.1" + } + }, + "@ax/hwc": { + "name": "@ax/hwc", + "version": "1.0.225", + "integrity": "sha512-fesFsmJoCzMHUJDVltN3dlp2xUtZPrme2GYxddVYf1Qayn6Qc+iXvA3k8Wul7WYlDqjfYITwpwSv+EzmxFNhWA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwc/-/hwc-1.0.225.tgz", + "dependencies": { + "@ax/hwc-win-x64": "1.0.225", + "@ax/hwc-linux-x64": "1.0.225" + } + }, + "@ax/hwld": { + "name": "@ax/hwld", + "version": "1.0.75", + "integrity": "sha512-hIL04LpIP80oIIK0bTSaGKYItdbGyQR9GXCdo6eeFRgQiN8sLJvG0/If0nmv22QFNYwpjjRbqUF9sVHrMneinA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwld/-/hwld-1.0.75.tgz", + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/mod": { + "name": "@ax/mod", + "version": "1.2.2", + "integrity": "sha512-X5hmfil9iQoe7s+8hxUN90n9+x7RGMaCJ5an2xP6t3Ch1BolhoPe5oZPt79z/4p1kXIef4bO7/7l5cNoVf1INA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/mod/-/mod-1.2.2.tgz", + "dependencies": { + "@ax/mod-win-x64": "1.2.2", + "@ax/mod-linux-x64": "1.2.2" + } + }, + "@ax/mon": { + "name": "@ax/mon", + "version": "1.2.2", + "integrity": "sha512-JPI5kMod5iNwVHX7HmW7+VP6CC9MpLH/vSPWBMWOqwO5egl82BJ7bzjBvqs8cxLGUg0DXLph39f5kxLeH+hZLg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/mon/-/mon-1.2.2.tgz", + "dependencies": { + "@ax/mon-win-x64": "1.2.2", + "@ax/mon-linux-x64": "1.2.2" + } + }, + "@ax/performance-info": { + "name": "@ax/performance-info", + "version": "1.1.1", + "integrity": "sha512-jfegiHImUyE0RH0wMRXLoF72QGoNjLN5DB6pIih+6jj5CxA/5xwfA57j85RUEk8CZMySibvT2nQVzJHOeSWvGw==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/performance-info/-/performance-info-1.1.1.tgz", + "dependencies": { + "@ax/performance-info-win-x64": "1.1.1", + "@ax/performance-info-linux-x64": "1.1.1" + } + }, + "@ax/plc-info": { + "name": "@ax/plc-info", + "version": "2.4.0", + "integrity": "sha512-dOdzSN7yGCdLeKv1ET1BWlNqg+mskhNoe4WYmOA25Dq5OWvkgCnnHGjjRgo7bw4ZGWctPzE/vKjlX9diNAa6Og==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/plc-info/-/plc-info-2.4.0.tgz", + "dependencies": { + "@ax/plc-info-linux-x64": "2.4.0", + "@ax/plc-info-win-x64": "2.4.0" + } + }, + "@ax/sdb": { + "name": "@ax/sdb", + "version": "1.2.2", + "integrity": "sha512-Yi8STvJfVnP2ucIcySe8K0wWhfb0nNCSgDvcHan9Yr6pbYibmfLu0VaaJ/rvxIrP882Ssu2QNoDXdmKfYFmDEA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdb/-/sdb-1.2.2.tgz", + "dependencies": { + "@ax/sdb-win-x64": "1.2.2", + "@ax/sdb-linux-x64": "1.2.2" + } + }, + "@ax/simatic-pragma-stc-plugin": { + "name": "@ax/simatic-pragma-stc-plugin", + "version": "4.0.18", + "integrity": "sha512-gm+r3VCKHSBrjA7/kTb4IEOj4MgPEeeTfCHjj/RwvyEoUO/ZxvFU0NzkkxYsR9eXnfabRRMpLGC5SvrRWjcZkA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/simatic-pragma-stc-plugin/-/simatic-pragma-stc-plugin-4.0.18.tgz", + "dependencies": {} + }, + "@ax/sld": { + "name": "@ax/sld", + "version": "2.5.7", + "integrity": "sha512-LSa6MtCF/l1J/S5c8NsaQTE84X+nAHoLjdqwRRLX97zHs3GVuan6sfC+VhyniiXrI201Bvwky4po18pT7IeY2Q==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/sld/-/sld-2.5.7.tgz", + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/st-ls": { + "name": "@ax/st-ls", + "version": "7.0.52", + "integrity": "sha512-PAIQe3+uaXLMGS6U8Ve38JHCS+HjmRWgXzxCoOFZN1ITc7/TCZLWa6otHXEPn6Nx/82iFuQ2x+USWTxNAy5Vmg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-ls/-/st-ls-7.0.52.tgz", + "dependencies": { + "@ax/st-ls-win-x64": "7.0.52", + "@ax/st-ls-linux-x64": "7.0.52" + } + }, + "@ax/stc": { + "name": "@ax/stc", + "version": "7.0.52", + "integrity": "sha512-In7WOUL6lAdWwDURKUBu6ixwboVcS6JTzWdDZc2I2BO7ro77owa1QxJPnC8ljgbN+DPvLTCoAyIHlJWUsa3KkA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/stc/-/stc-7.0.52.tgz", + "dependencies": { + "@ax/stc-win-x64": "7.0.52", + "@ax/stc-linux-x64": "7.0.52" + } + }, + "@ax/target-llvm": { + "name": "@ax/target-llvm", + "version": "7.0.52", + "integrity": "sha512-6TVqe2iQjx+qtktdwEm6o3MFLN+62wsKt/d2JzeL6gDLdZ7Y8m2zOgvF0UNVUad1eoHYDef/zakgziePOGh4oQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-llvm/-/target-llvm-7.0.52.tgz", + "dependencies": { + "@ax/target-llvm-win-x64": "7.0.52", + "@ax/target-llvm-linux-x64": "7.0.52" + } + }, + "@ax/target-mc7plus": { + "name": "@ax/target-mc7plus", + "version": "7.0.52", + "integrity": "sha512-z4FpDsG/zMYKSB6kiTtKedIlXrooouZKfV7DZf5h/X7vxWmY6Fvl3clzQbS7EwB8pbvJoRXoaedKuUeU8NQDYw==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-mc7plus/-/target-mc7plus-7.0.52.tgz", + "dependencies": { + "@ax/target-mc7plus-win-x64": "7.0.52", + "@ax/target-mc7plus-linux-x64": "7.0.52" + } + }, + "@ax/trace": { + "name": "@ax/trace", + "version": "2.7.2", + "integrity": "sha512-mFunruP/lt1Kcwb/DKIAlB1nyzMxB2FR1AXw1iq+rBEUyZwAVjWkbXk3PKSGzO2naI+/fm+xNAkGvQGU+3513Q==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/trace/-/trace-2.7.2.tgz", + "dependencies": { + "@ax/trace-win-x64": "2.7.2", + "@ax/trace-linux-x64": "2.7.2" + } + }, + "@ax/axunitst-library": { + "name": "@ax/axunitst-library", + "version": "5.1.23", + "integrity": "sha512-0D0FFFqVLHgHDDSde8xZJx84Zvx4YnoGmxcq+H0x1D9hEwJIsOVQFSVsmR4MfomNNaE5840kQ5rMh9gR0FRR5Q==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-library/-/axunitst-library-5.1.23.tgz", + "dependencies": { + "@ax/system-strings": "^7.0.17" + } + }, + "@ax/axunitst-test-director": { + "name": "@ax/axunitst-test-director", + "version": "5.1.23", + "integrity": "sha512-ezbqpJdHyU7ig8cfiAtvb90CkAEhQVbmki1XPnCaS4XStixao0sTa06qcfLzzYZC2EVa1CxzRIfgXtyHgu+nMQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-test-director/-/axunitst-test-director-5.1.23.tgz", + "dependencies": { + "@ax/axunitst-test-director-linux-x64": "5.1.23", + "@ax/axunitst-test-director-win-x64": "5.1.23" + } + }, + "@ax/axunitst-docs": { + "name": "@ax/axunitst-docs", + "version": "5.1.23", + "integrity": "sha512-nUjL4G8k0d+JKVSy+/alN947dZOgITDagj4uKSAnFib+BfyqDJsuX4afzv8hizUMpGTlepDODhVYJ75DMvu/Ug==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-docs/-/axunitst-docs-5.1.23.tgz", + "dependencies": {}, + "deprecated": "" + }, + "@ax/build-native": { + "name": "@ax/build-native", + "version": "16.0.3", + "integrity": "sha512-d7I0ICUaIwW/8v030Xw8H6fMMOD2FB9ON7pmq+XV+YXCPorTUJ7rCvq4+710B78QJn2ac+xJgpb1EhI1fiK40w==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/build-native/-/build-native-16.0.3.tgz", + "dependencies": { + "@ax/build-native-winx64": "16.0.3", + "@ax/build-native-linux": "16.0.3" + } + }, + "@ax/system-strings": { + "name": "@ax/system-strings", + "version": "7.0.17", + "integrity": "sha512-xrT2GzVqeTXVF5Nq7wXKwYTb9FqIV3F5DWWGGEUwZvrm5t2unyFqsBDXoFBWDicPuhUFaH0FUwp1NqvMSN95pQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-strings/-/system-strings-7.0.17.tgz", + "dependencies": { + "@ax/system-math": "7.0.17", + "@ax/system-datetime": "7.0.17" + } + }, + "@ax/axunitst-test-director-linux-x64": { + "name": "@ax/axunitst-test-director-linux-x64", + "version": "5.1.23", + "integrity": "sha512-vHEj+8zr5nsfg6tSC5dVLqYVgTtusYW9O0Rkx02ttiPdJa3seRcNgqMDmgdFp1QAb/YcsmhOTohWbvi8cPQcHg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-test-director-linux-x64/-/axunitst-test-director-linux-x64-5.1.23.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/axunitst-test-director-win-x64": { + "name": "@ax/axunitst-test-director-win-x64", + "version": "5.1.23", + "integrity": "sha512-J/QImr7Fa9Gk+y+df9gp3md0f57HqsEOTdU/19yrOCvQ077PNjs4zl4E2uzWFlVbYo0Cer3JrL/8ARIXuKedpA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/axunitst-test-director-win-x64/-/axunitst-test-director-win-x64-5.1.23.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/build-native-winx64": { + "name": "@ax/build-native-winx64", + "version": "16.0.3", + "integrity": "sha512-M1qk2yNNsGzz6NXKB0miyfOO4bpYkVcfnGhkHirXcJSLFnWDSx7hnRi0yhLp6jny99RkXEcRn9Cwx8lqynmUDg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/build-native-winx64/-/build-native-winx64-16.0.3.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/build-native-linux": { + "name": "@ax/build-native-linux", + "version": "16.0.3", + "integrity": "sha512-CfqbzR+wPnocP0+pDpb3cYBxdefkS6WvHbGaDNGAoCkK3Y8WnNfWbxXr37e5XIi7iPMZ8BONWaRFIN5h4RMeOA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/build-native-linux/-/build-native-linux-16.0.3.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/simatic-package-tool": { + "name": "@ax/simatic-package-tool", + "version": "1.0.3", + "integrity": "sha512-5f5k9y/fNSK657l/zszQxaj16SR9nYk+k4iskuuoPsScRFWr4joVvDfuCgPQ3EBzdyJDzkbXu2rItkoS2Dy84A==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/simatic-package-tool/-/simatic-package-tool-1.0.3.tgz", + "dependencies": {} + }, + "@ax/st-resources.stc-plugin": { + "name": "@ax/st-resources.stc-plugin", + "version": "1.0.5", + "integrity": "sha512-8qEF0A8qtmDMLpikoj52FcQzsF7gkrZWRFUCUtejNFgaRgAYTNI/VWKic3dWROrL3deflSha80lxzPJAeCQD0A==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-resources.stc-plugin/-/st-resources.stc-plugin-1.0.5.tgz", + "dependencies": {} + }, + "@ax/certificate-management-win-x64": { + "name": "@ax/certificate-management-win-x64", + "version": "1.1.2", + "integrity": "sha512-E1esAH64ib93jdIqOJElSRK5jh5zFNRuEfm8ZpwRIhuMe446DyQpjHFH+QrnDYSS9feZtLzJhFxEqhgQb7EP3w==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/certificate-management-win-x64/-/certificate-management-win-x64-1.1.2.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/certificate-management-linux-x64": { + "name": "@ax/certificate-management-linux-x64", + "version": "1.1.2", + "integrity": "sha512-Z3blxeHA57omgrAogE27FDhOQQk+JhlYyvzDmITUg1vnsxxO9fR936mukqeBOWydlt9N/+hQc2Xt/2NOGrcEKw==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/certificate-management-linux-x64/-/certificate-management-linux-x64-1.1.2.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/diagnostic-buffer-win-x64": { + "name": "@ax/diagnostic-buffer-win-x64", + "version": "1.3.1", + "integrity": "sha512-KmHQgAUPCm1+dQgThqxZOyjMmeQYhUyJpl+HZk3TWkVu2WqtAT5/In0whcUWfIJhO3i9nL44pu0Yz8uHqqjURw==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/diagnostic-buffer-win-x64/-/diagnostic-buffer-win-x64-1.3.1.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/diagnostic-buffer-linux-x64": { + "name": "@ax/diagnostic-buffer-linux-x64", + "version": "1.3.1", + "integrity": "sha512-CA3gr8L64up2p0BWo0DEvTbYJPgie23MIix1ShG8UXWtPE+yxvRDYt5BnsDPN9RMZCIp6odl8xYO7E9f/ib3OQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/diagnostic-buffer-linux-x64/-/diagnostic-buffer-linux-x64-1.3.1.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/hwc-win-x64": { + "name": "@ax/hwc-win-x64", + "version": "1.0.225", + "integrity": "sha512-ga6JbYVmgujGDOmT41mB/vGgGnRUMne0+5CHEQhjw5gckLW7C5P2CFzGmZySYCAJV4i3PCOnPxuNX/3Yqahxzw==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwc-win-x64/-/hwc-win-x64-1.0.225.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/hwc-linux-x64": { + "name": "@ax/hwc-linux-x64", + "version": "1.0.225", + "integrity": "sha512-3K1CUuL6Hsi7lXxjmxXtNGcZLDJvjZ5M/BDbiezA+/JYGkuYeFJJUQ3/oBVgHZqzSVwRr6h/emd1masBExSxdg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/hwc-linux-x64/-/hwc-linux-x64-1.0.225.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/mod-win-x64": { + "name": "@ax/mod-win-x64", + "version": "1.2.2", + "integrity": "sha512-WLtXvWWc73YFX4FNnETftcD552pSWqDMLwjo8h3oD8sY8oMvjBd0gcF0x4EjZ+gSYv2XCVGi6O2PyHF1zuvmCQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/mod-win-x64/-/mod-win-x64-1.2.2.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/mod-linux-x64": { + "name": "@ax/mod-linux-x64", + "version": "1.2.2", + "integrity": "sha512-7I5w57z7mfKen9RpAaIsfw7m+dT5C1ey6lvJxwnRHDaPYWEi7ZBu2KSCvzRA1MD6nxpGpPhv9idb0gMX+yCslA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/mod-linux-x64/-/mod-linux-x64-1.2.2.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/mon-win-x64": { + "name": "@ax/mon-win-x64", + "version": "1.2.2", + "integrity": "sha512-a9V7Ivb6I9iaP5gyNsVb2FCO7n9uBWNVmXQTqta9OMoDVgR96+7BDNOcKNy/QSCDDEeLBf8e2G/WI5Y/DdsByg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/mon-win-x64/-/mon-win-x64-1.2.2.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/mon-linux-x64": { + "name": "@ax/mon-linux-x64", + "version": "1.2.2", + "integrity": "sha512-0E72/PJiANdykEwSe+JlKMIG+gVIYdp2FbNCUvrcC0PMzh+B0g6CkAWdicYEFzl99EM9RHjZBBuqk0j8PlKDKg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/mon-linux-x64/-/mon-linux-x64-1.2.2.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/performance-info-win-x64": { + "name": "@ax/performance-info-win-x64", + "version": "1.1.1", + "integrity": "sha512-KABLJCTUtv27Esi/xOMW8iFA3kDF5ytv0/++YHdCK8C88wm3Q2lqW/Kahi0CkumncK9bZzsDD8awvLtrjDfC1g==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/performance-info-win-x64/-/performance-info-win-x64-1.1.1.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/performance-info-linux-x64": { + "name": "@ax/performance-info-linux-x64", + "version": "1.1.1", + "integrity": "sha512-Hw7+kegtXUyhbYo5XGESBhYyOmrcHoJHnv8hm+lTL4dITNtnI0wx+NTNTavwHZM2S+N3vro9W8QaatN+9QNuuA==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/performance-info-linux-x64/-/performance-info-linux-x64-1.1.1.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/plc-info-linux-x64": { + "name": "@ax/plc-info-linux-x64", + "version": "2.4.0", + "integrity": "sha512-xb1/9gaOZeqJeLil3crkbluj6oHxI895YhgqZljjOlvJ/lYqJd9zkZHUOHb6nK686/pEejbLMfvGRTspGDRlLQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/plc-info-linux-x64/-/plc-info-linux-x64-2.4.0.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/plc-info-win-x64": { + "name": "@ax/plc-info-win-x64", + "version": "2.4.0", + "integrity": "sha512-4S4uhfYb+yYVIDuN4Nid9ei0mpsTdSKcCv2ZeVo5mLpYWLCh0KfSk8XIoS6zxjD1TlQYcEc+Cnn1+5rdjhpldQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/plc-info-win-x64/-/plc-info-win-x64-2.4.0.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/sdb-win-x64": { + "name": "@ax/sdb-win-x64", + "version": "1.2.2", + "integrity": "sha512-WusrkIHXT0UJWoU+lbiFNYBqMHJcg7EkVLATw9wmwlR3RmvufoZAkH1bGSEBPDjIR9D3rIJn5ZvAPdkNIrao1g==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdb-win-x64/-/sdb-win-x64-1.2.2.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/sdb-linux-x64": { + "name": "@ax/sdb-linux-x64", + "version": "1.2.2", + "integrity": "sha512-ekRXF7Id+4SQeyQKlzqQEJy95r6Srv1Yo6oQaylj3Ebn44K4+R87ZFqHDFCCDwcuHm4qswVHdmd7fEw8r+Z3Dw==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/sdb-linux-x64/-/sdb-linux-x64-1.2.2.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/st-ls-win-x64": { + "name": "@ax/st-ls-win-x64", + "version": "7.0.52", + "integrity": "sha512-TfuesPZqWGkqjvdaY74JQJqnvi1AoLIiM1NX/13c9avaMqlsDtS+OaKDdV8cufwQqEZo1qADGFMQBo6nzuOe3g==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-ls-win-x64/-/st-ls-win-x64-7.0.52.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/st-ls-linux-x64": { + "name": "@ax/st-ls-linux-x64", + "version": "7.0.52", + "integrity": "sha512-x4IJ9epvLq9erqlTn7c0S900txMIMg3SPRS0vG/mZ1vg5E6UJXc9QscUS7YBMLzvsMpLeBQ2MmPoTu33zMPkKg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-ls-linux-x64/-/st-ls-linux-x64-7.0.52.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/stc-win-x64": { + "name": "@ax/stc-win-x64", + "version": "7.0.52", + "integrity": "sha512-lQigUjqIVZw8odW/OGsVQK674B9jnoO1aVnZlsvrTDCmiGQ1NDrwJusA+t8uFJ0I0tjGlgoH5NV/nisiStj5pg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/stc-win-x64/-/stc-win-x64-7.0.52.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": { + "@ax/st-docs": "7.0.52" + } + }, + "@ax/stc-linux-x64": { + "name": "@ax/stc-linux-x64", + "version": "7.0.52", + "integrity": "sha512-sZwilTZdTMbtE4Zrxw0y1bbLoOJogWBTQ2dAPRSS5eXSdXUfma/6Bw/YJky6uN0zGa2/aGfj7KOIxPC33m3yJQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/stc-linux-x64/-/stc-linux-x64-7.0.52.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": { + "@ax/st-docs": "7.0.52" + } + }, + "@ax/target-llvm-win-x64": { + "name": "@ax/target-llvm-win-x64", + "version": "7.0.52", + "integrity": "sha512-Njdzy1BSWhOwZxbU1UVdhvGhIQ0h350h+R8s/SttXUtHqd5PZPqDHnjrfGvd9kmNCwxEWWzYhylpQ5AjpmyWdQ==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-llvm-win-x64/-/target-llvm-win-x64-7.0.52.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/target-llvm-linux-x64": { + "name": "@ax/target-llvm-linux-x64", + "version": "7.0.52", + "integrity": "sha512-+7mQstKt1SQkHeAqtBjCedrEYYTQ8iyLZpJHBN5fA7SORa1Pqe+sAnqKMQ565mukAJtI4D/DVI3LLzTOFeh3Vg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-llvm-linux-x64/-/target-llvm-linux-x64-7.0.52.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/target-mc7plus-win-x64": { + "name": "@ax/target-mc7plus-win-x64", + "version": "7.0.52", + "integrity": "sha512-lPrJnulhkp2ib2LUxAu+845HlqY/xTtdZlnI01ZQRCpkPj+sA6lmLdbCifs1wgYVq8c5yoXBjj2tTct+3gFMKw==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-mc7plus-win-x64/-/target-mc7plus-win-x64-7.0.52.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/target-mc7plus-linux-x64": { + "name": "@ax/target-mc7plus-linux-x64", + "version": "7.0.52", + "integrity": "sha512-GTWsmwdW7sBPQyEQO/UnhL1KdSSW/1eeCkgD9RUt6IspnSoe93/51dXnwu9VHQbb4dFFcV9WWWfViUV978DE4w==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/target-mc7plus-linux-x64/-/target-mc7plus-linux-x64-7.0.52.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/trace-win-x64": { + "name": "@ax/trace-win-x64", + "version": "2.7.2", + "integrity": "sha512-brmFDkA8Rd9OQy6Gxb7BXre7TlKVO03aHVTFEgU7aCuCuQtdr7D5vNv+RJk2J/F/GZ5SQ0f4UxpUYxOTHSsBvg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/trace-win-x64/-/trace-win-x64-2.7.2.tgz", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/trace-linux-x64": { + "name": "@ax/trace-linux-x64", + "version": "2.7.2", + "integrity": "sha512-MKLEEHrJp6NzOVHHdh9s+aZkIvHhFkrsWkqtR1rySvobh8EjiWhT1ceQzMz3NOkJgaPPDwtRvdioleuuYTHoCg==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/trace-linux-x64/-/trace-linux-x64-2.7.2.tgz", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "dependencies": {} + }, + "@ax/st-docs": { + "name": "@ax/st-docs", + "version": "7.0.52", + "integrity": "sha512-iKLQAGv6Au/CsImP/RmCy0nRIUCQMjrAdgo/AmWrH3+MvPLjhowbsNSQsq1YUP34PbYI0ThH6tQjkUta2dFc7A==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/st-docs/-/st-docs-7.0.52.tgz", + "dependencies": {}, + "deprecated": "" + }, + "@ax/system-math": { + "name": "@ax/system-math", + "version": "7.0.17", + "integrity": "sha512-nHwRWg5Skzq3dgV29XVa7wni0ZQkn/ff6csYxrS7IsNKGb2nKOAJQFb/WzrfcxbsTYhTPOyifI6ulDgMu50Y6w==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-math/-/system-math-7.0.17.tgz", + "dependencies": {} + }, + "@ax/system-datetime": { + "name": "@ax/system-datetime", + "version": "7.0.17", + "integrity": "sha512-mgB6+Ln5eLXsGJb4nl6/sW7SwAipSrFvttMWGAJMOym3qx7F1MuAdcZ6NaRS0rV0mpyyTEzgG3sk2voMN1OK1Q==", + "resolved": "https://registry.simatic-ax.siemens.io/@ax/system-datetime/-/system-datetime-7.0.17.tgz", + "dependencies": {}, + "deprecated": "" } }, - "@simatic-ax/snippetscollection": { - "version": "1.0.0", - "resolved": "https://npm.pkg.github.com/download/@simatic-ax/snippetscollection/1.0.0/60302d7e0da15a914ce0126503398063a42e1917", - "integrity": "sha512-8BNldIIGZuuLSiMjJxcBmHt7sL7kSlc0dss88BcrfnL/7iXPmHwhlnh4XobcVoOHXaz5f8cbMbXCUrffBIwecQ==" - } + "workspaces": {} } diff --git a/apax.yml b/apax.yml index 75f9f23..ef96370 100644 --- a/apax.yml +++ b/apax.yml @@ -20,17 +20,12 @@ targets: - '1500' - 'llvm' # Install Setting -installStrategy: strict apaxVersion: 3.2.1 # Dependencies devDependencies: '@ax/sdk': 2405.0.0 + "@ax/axunitst": ^5.1.23 "@simatic-ax/snippetscollection": 1.0.0 -dependencies: - "@ax/simatic-1500-clocks": 7.0.4 - "@simatic-ax/simple-control-modules": 6.0.0 - "@simatic-ax/io": 6.0.0 - "@ax/system-timer": 7.0.17 # Files, which will be shipped with the library files: - 'README.md' @@ -38,3 +33,11 @@ files: - 'doc' - 'src' - 'snippets' +dependencies: + "@ax/simatic-1500-clocks": 7.0.4 + "@simatic-ax/simple-control-modules": 6.0.0 + "@simatic-ax/io": 6.0.0 + "@ax/system-timer": 7.0.17 + "@simatic-ax/commands": 1.0.0 + "@simatic-ax/statemachine": ^6.0.1 +installStrategy: overridable diff --git a/log.txt b/log.txt new file mode 100644 index 0000000..991637d --- /dev/null +++ b/log.txt @@ -0,0 +1,907 @@ +[info]: 🏃 Following AxunitST dependency workflow +[debug]: Subsbcribed to topic siemens.axunit/test-discovery +[info]: 🏃 Tests run initiated using LLVM +[debug]: Starting test execution for selected tests +[info]: Running tests... +[debug]: Creating temp playlist in 'c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\9120052d-ebab-493e-92b9-facc6d56aba1\playlist.xml' +[debug]: apax test,-e=llvm,-l=debug +[debug]: Engine used: LLVM +[debug]: - Verifying signatures... +[debug]: +[debug]: i Skipping signature check for @simatic-ax. No public key provided in apax.yml. +[debug]: √ Package verification succeeded. +[debug]: 🐞[DEBUG]: Args used: --machine-readable,--nologo,--playlist-file,"c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\9120052d-ebab-493e-92b9-facc6d56aba1\playlist.xml",-i,d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib +[debug]: 🐞[DEBUG]: Node Version: v18.15.0 +[debug]: Current loglevel: Debug +[debug]: 👉 Used engine: llvm +[debug]: +[debug]: 👉 Paths set. +[debug]: Testprojectdir: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts +[debug]: Testresultfolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\test-results +[debug]: EningeFolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm +[debug]: +[debug]: +[debug]: _ _ _ _ _ ____ _____ +[debug]: / \ __ _| | | |_ __ (_) |_ / ___|_ _| +[debug]: / _ \ \ \/ / | | | '_ \| | __|___\___ \ | | +[debug]: / ___ \ > <| |_| | | | | | ||_____|__) || | +[debug]: /_/ \_\/_/\_\\___/|_| |_|_|\__| |____/ |_| +[debug]: +[debug]: 👉 Paths set. +[debug]: Testprojectdir: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts +[debug]: Testresultfolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\test-results +[debug]: EningeFolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm +[debug]: +[debug]: 💡 Engine: Llvm +[debug]: +[debug]: 💡 The active log level is: Debug +[debug]: +[debug]: 🕐 Starting test process... +[debug]: +[debug]: 🕑 Prepare test environment... +[debug]: +[debug]: +[debug]: ⏳ Create folder structure for tests. +[debug]: +[debug]: 14:15:15 warn: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] ⚠️ [Warning] Target path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts' already exists. Trying to delete directory, to have a clean state. +[debug]: +[debug]: 14:15:16 warn: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] ⚠️ [Warning] Access to the path 'apax-build' is denied. +[debug]: 14:15:16 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Creating target path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts'. +[debug]: +[debug]: 14:15:16 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Copying src folder from 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib' to 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts'. +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\ColorSensor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\ControlModuleAbstract.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\ActuatorStates.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\ActuatorTimeBased.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\IActuator.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\AxisBase.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\axisTypes.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\itfAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\TO.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\Legacy\Axis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\Legacy\IAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\commandHomeDirect.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\commandMoveRelative.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\itfPosAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\PosAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\commandMoveVelovity.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\commandStop.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\itfSpeedAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\SpeedAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Compressor\IPneumaticCompressor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Compressor\PneumaticCompressor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\ITimeprovider.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\TimeBasedEncoder.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\Timeprovider.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Motor\IMotor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Motor\Motor.st +[debug]: +[debug]: 14:15:16 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Copy apax.yml from d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib to d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts. +[debug]: +[debug]: Folder structure created in 1 seconds +[debug]: +[debug]: 14:15:16 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:15:16 dbug: ApaxTestDirector.Cli.MultiProjectWorkspaceHandler[0] The directory d:\Git\AxCommunity\axftcmlib-workspace is a workspace project. +[debug]: +[debug]: 14:15:16 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:15:16 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: +[debug]: 🕒 Getting information about tests... +[debug]: +[debug]: +[debug]: ⏳ Create apax.yml to generate symbol info. +[debug]: +[debug]: 14:15:17 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:15:17 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 👉 apax.yml generation for symbol info finished in 0 seconds +[debug]: +[debug]: ⏳ Starting apax install for symbolInfo +[debug]: +[debug]: Envoking:install tooks: 42sec +[debug]: +[debug]: 👉 apax install output +[debug]: +[debug]: +[debug]: +[debug]: +[debug]: 👉 Apax install for generating symbol-info finished in 42 seconds +[debug]: +[debug]: ⏳ Executing first apax build. +[debug]: +[debug]: Envoking:build tooks: 16sec +[debug]: +[debug]: 👉 apax build output +[debug]: using targets +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' │ +[debug]: └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:7:17 'Motor' does not exist or is invalid in current context. +[debug]: info: stc[0] +[debug]: Compile finished with 5 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:14:18 'oStateLess' is not of type MotorFT. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:28:15 'PowerOff' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:27:15 'PowerOn' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:21:15 'PowerOn' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:15:15 'Attach' does not exist or is invalid in current context. +[debug]: info: stc[0] +[debug]: Compile finished with 9 error(s). +[debug]: +[debug]: +[debug]: +[debug]: ❌apax build for symbolInfo failed!- Verifying signatures... +[debug]: +[debug]: i Skipping signature check for @simatic-ax. No public key provided in apax.yml. +[debug]: √ Package verification succeeded. +[debug]: ✘ An error occurred while attempting to run apax-build. Exitcode: 9 +[debug]: +[debug]: using targets +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' │ +[debug]: └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[debug]: ─────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:7:17 'Motor' does not exist or is invalid in current context. +[debug]: info: stc[0] +[debug]: Compile finished with 5 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:14:18 'oStateLess' is not of type MotorFT. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:28:15 'PowerOff' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:27:15 'PowerOn' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:21:15 'PowerOn' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:15:15 'Attach' does not exist or is invalid in current context. +[debug]: info: stc[0] +[debug]: Compile finished with 9 error(s). +[debug]: +[debug]: +[debug]: +[debug]: [ERROR]: apax build for symbolInfo failed!- Verifying signatures... +[debug]: +[debug]: i Skipping signature check for @simatic-ax. No public key provided in apax.yml. +[debug]: V Package verification succeeded. +[debug]: ? An error occurred while attempting to run apax-build. Exitcode: 9 +[debug]: +[debug]: using targets +[debug]: ����������������������������������������������������������������������������������������������������������������������������������������������Ŀ +[debug]: � (index) � Values � +[debug]: ����������������������������������������������������������������������������������������������������������������������������������������������Ĵ +[debug]: � 0 � 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' � +[debug]: � 1 � 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' � +[debug]: ������������������������������������������������������������������������������������������������������������������������������������������������ +[debug]: using stc plugins +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ŀ +[debug]: � (index) � Values � +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ĵ +[debug]: � 0 � 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' � +[debug]: � 1 � 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' � +[debug]: ��������������������������������������������������������������������������������������������������������������������������������������������������� +[debug]: using stc plugins +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ŀ +[debug]: � (index) � Values � +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ĵ +[debug]: � 0 � 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib +[debug]: [ERROR]: \\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' � +[debug]: � 1 � 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' � +[debug]: ��������������������������������������������������������������������������������������������������������������������������������������������������� +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:7:17 'Motor' does not exist or is invalid in current context. +[debug]: info: stc[0] +[debug]: Compile finished with 5 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:14:18 'oStateLess' is not of type MotorFT. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:36:35 'MakeAxisAbstract' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:36:35 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl.MakeAxisAbstract' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motion\testAxis.st:34:11 'AxisBaseTestImpl' is already in use in the current context. +[debug]: See: +[debug]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:34:11 Declaration of 'Simatic.Ax.axftcmlib.Motion.AxisBaseTestImpl' +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:28:15 'PowerOff' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:27:15 'PowerOn' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:21:15 'PowerOn' does not exist or is invalid in current context. +[debug]: [Error]: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test\Motor\testMotor.st:15:15 'Attach' does not exist or is invalid in current context. +[debug]: info: stc[0] +[debug]: Compile finished with 9 error(s). +[debug]: +[debug]: +[debug]: i using apax version: 3.3.1 +[debug]: Usage Error: An error occurred while attempting to run apax-test. Exitcode: 2147483647 +[debug]: +[debug]: $ apax test [--ignore-scripts] [-e,--engine #0] [-t,--targetIP #0] [-u,--username #0] [--password #0] [-C,--certificate #0] [-p,--playlist #0] [-c,--coverage] [-l,--loglevel #0] [-f,--filter #0] +[debug]: Exiting compile operation +[info]: ⚠️⚠️⚠️Test(s) run resulted in error(s)⚠️⚠️⚠️. Please scroll up and look for error(❌) messages. +[info]: 🏁 Tests run completed +[info]: 🏃 Tests run initiated using LLVM +[debug]: Starting test execution for selected tests +[info]: Running tests... +[debug]: Creating temp playlist in 'c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\4f35f3b9-576b-471f-a33b-1f499601a22a\playlist.xml' +[debug]: apax test,-e=llvm,-l=debug +[debug]: Engine used: LLVM +[debug]: - Verifying signatures... +[debug]: +[debug]: i Skipping signature check for @simatic-ax. No public key provided in apax.yml. +[debug]: √ Package verification succeeded. +[debug]: 🐞[DEBUG]: Args used: --machine-readable,--nologo,--playlist-file,"c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\4f35f3b9-576b-471f-a33b-1f499601a22a\playlist.xml",-i,d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib +[debug]: 🐞[DEBUG]: Node Version: v18.15.0 +[debug]: Current loglevel: Debug +[debug]: 👉 Used engine: llvm +[debug]: +[debug]: 👉 Paths set. +[debug]: Testprojectdir: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts +[debug]: Testresultfolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\test-results +[debug]: EningeFolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm +[debug]: +[debug]: +[debug]: _ _ _ _ _ ____ _____ +[debug]: / \ __ _| | | |_ __ (_) |_ / ___|_ _| +[debug]: / _ \ \ \/ / | | | '_ \| | __|___\___ \ | | +[debug]: / ___ \ > <| |_| | | | | | ||_____|__) || | +[debug]: /_/ \_\/_/\_\\___/|_| |_|_|\__| |____/ |_| +[debug]: +[debug]: 👉 Paths set. +[debug]: Testprojectdir: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts +[debug]: Testresultfolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\test-results +[debug]: EningeFolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm +[debug]: +[debug]: 💡 Engine: Llvm +[debug]: +[debug]: 💡 The active log level is: Debug +[debug]: +[debug]: 🕐 Starting test process... +[debug]: +[debug]: 🕑 Prepare test environment... +[debug]: +[debug]: +[debug]: ⏳ Create folder structure for tests. +[debug]: +[debug]: 14:20:57 warn: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] ⚠️ [Warning] Target path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts' already exists. Trying to delete directory, to have a clean state. +[debug]: +[debug]: 14:20:57 warn: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] ⚠️ [Warning] Access to the path 'apax-build' is denied. +[debug]: 14:20:57 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Creating target path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts'. +[debug]: +[debug]: 14:20:57 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Copying src folder from 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib' to 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts'. +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\ColorSensor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\ControlModuleAbstract.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\ActuatorStates.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\ActuatorTimeBased.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\IActuator.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\AxisBase.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\axisTypes.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\itfAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\TO.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\Legacy\Axis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\Legacy\IAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\commandHomeDirect.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\commandMoveRelative.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\itfPosAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\PosAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\commandMoveVelovity.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\commandStop.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\itfSpeedAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\SpeedAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Compressor\IPneumaticCompressor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Compressor\PneumaticCompressor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\ITimeprovider.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\TimeBasedEncoder.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\Timeprovider.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Motor\IMotor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Motor\Motor.st +[debug]: +[debug]: 14:20:57 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Copy apax.yml from d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib to d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts. +[debug]: +[debug]: Folder structure created in 0 seconds +[debug]: +[debug]: 14:20:58 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:20:58 dbug: ApaxTestDirector.Cli.MultiProjectWorkspaceHandler[0] The directory d:\Git\AxCommunity\axftcmlib-workspace is a workspace project. +[debug]: +[debug]: 14:20:58 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:20:58 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: +[debug]: 🕒 Getting information about tests... +[debug]: +[debug]: +[debug]: ⏳ Create apax.yml to generate symbol info. +[debug]: +[debug]: 14:20:58 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:20:58 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 👉 apax.yml generation for symbol info finished in 0 seconds +[debug]: +[debug]: ⏳ Starting apax install for symbolInfo +[debug]: +[debug]: Envoking:install tooks: 49sec +[debug]: +[debug]: 👉 apax install output +[debug]: +[debug]: +[debug]: +[debug]: +[debug]: 👉 Apax install for generating symbol-info finished in 49 seconds +[debug]: +[debug]: ⏳ Executing first apax build. +[debug]: +[debug]: Envoking:build tooks: 30sec +[debug]: +[debug]: 👉 apax build output +[debug]: using targets +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' │ +[debug]: │ 1 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' │ +[debug]: └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────── +[debug]: ─────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: +[debug]: 👉 apax build to get meta-information finisehd in 30 seconds +[debug]: +[debug]: 🕔 Creating test environment... +[debug]: +[debug]: +[debug]: ⏳ Generating axunit.st: -input: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm, -output: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp, -engine: Llvm, -playlist: c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\4f35f3b9-576b-471f-a33b-1f499601a22a\playlist.xml, -filter: , --coverage: False +[debug]: +[debug]: Test meta written to: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp\TestCasesMeta.xml +[debug]: +[debug]: +[debug]: Test environment written to: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp\axunit.st +[debug]: +[debug]: +[debug]: 👉 Generating our test app finished in 1 seconds +[debug]: +[debug]: +[debug]: 🕗 Creating test application... +[debug]: +[debug]: ⏳ Create apax.yml for the test execution. +[debug]: +[debug]: 14:22:19 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 👉 Creating apax.yml for testing finished in 0 seconds +[debug]: +[debug]: ⏳ Start apax build for the test project. +[debug]: +[debug]: Envoking:build tooks: 37sec +[debug]: +[debug]: +[debug]: ❌apax build for testing failed!- Verifying signatures... +[debug]: +[debug]: i Skipping signature check for @simatic-ax. No public key provided in apax.yml. +[debug]: √ Package verification succeeded. +[debug]: ✘ An error occurred while attempting to run apax-build. Exitcode: 2147483647 +[debug]: +[debug]: using targets +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' │ +[debug]: │ 1 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' │ +[debug]: └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────── +[debug]: ───────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to app:simatic-ax-axftcmlib-symbolinfogeneration-testingstep-testingstep:0.0.0-placeholder --debug -i D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to app:simatic-ax-axftcmlib-symbolinfogeneration-testingstep-testingstep:0.0.0-placeholder --debug -i D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: fail: stc[0] +[debug]: Access to the path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\obj\Simatic.Ax.IO.Input.LRealInput.ReadCyclic.pfc' is denied. +[debug]: +[debug]: +[debug]: +[debug]: [ERROR]: apax build for testing failed!- Verifying signatures... +[debug]: +[debug]: i Skipping signature check for @simatic-ax. No public key provided in apax.yml. +[debug]: V Package verification succeeded. +[debug]: ? An error occurred while attempting to run apax-build. Exitcode: 2147483647 +[debug]: +[debug]: using targets +[debug]: ����������������������������������������������������������������������������������������������������������������������������������������������Ŀ +[debug]: � (index) � Values � +[debug]: ����������������������������������������������������������������������������������������������������������������������������������������������Ĵ +[debug]: � 0 � 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' � +[debug]: � 1 � 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' � +[debug]: ������������������������������������������������������������������������������������������������������������������������������������������������ +[debug]: using stc plugins +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ŀ +[debug]: � (index) � Values � +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ĵ +[debug]: � 0 � 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' � +[debug]: � 1 � 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' � +[debug]: ��������������������������������������������������������������������������������������������������������������������������������������������������� +[debug]: using stc plugins +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ŀ +[debug]: � (index) � Values +[debug]: [ERROR]: � +[debug]: �������������������������������������������������������������������������������������������������������������������������������������������������Ĵ +[debug]: � 0 � 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' � +[debug]: � 1 � 'D:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' � +[debug]: ��������������������������������������������������������������������������������������������������������������������������������������������������� +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to app:simatic-ax-axftcmlib-symbolinfogeneration-testingstep-testingstep:0.0.0-placeholder --debug -i D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to app:simatic-ax-axftcmlib-symbolinfogeneration-testingstep-testingstep:0.0.0-placeholder --debug -i D:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: fail: stc[0] +[debug]: Access to the path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\obj\Simatic.Ax.IO.Input.LRealInput.ReadCyclic.pfc' is denied. +[debug]: +[debug]: +[debug]: Usage Error: An error occurred while attempting to run apax-test. Exitcode: 2147483647 +[debug]: +[debug]: $ apax test [--ignore-scripts] [-e,--engine #0] [-t,--targetIP #0] [-u,--username #0] [--password #0] [-C,--certificate #0] [-p,--playlist #0] [-c,--coverage] [-l,--loglevel #0] [-f,--filter #0] +[debug]: i using apax version: 3.3.1 +[debug]: Exiting compile operation +[info]: ⚠️⚠️⚠️Test(s) run resulted in error(s)⚠️⚠️⚠️. Please scroll up and look for error(❌) messages. +[info]: 🏁 Tests run completed +[info]: 🏃 Tests run initiated using LLVM +[debug]: Starting test execution for selected tests +[info]: Running tests... +[debug]: Creating temp playlist in 'c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\cafc770e-9e8e-44a3-ac49-dcf351e51dd9\playlist.xml' +[debug]: apax test,-e=llvm,-l=debug +[debug]: Engine used: LLVM +[debug]: - Verifying signatures... +[debug]: +[debug]: i Skipping signature check for @simatic-ax. No public key provided in apax.yml. +[debug]: √ Package verification succeeded. +[debug]: 🐞[DEBUG]: Args used: --machine-readable,--nologo,--playlist-file,"c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\cafc770e-9e8e-44a3-ac49-dcf351e51dd9\playlist.xml",-i,d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib +[debug]: 🐞[DEBUG]: Node Version: v18.15.0 +[debug]: Current loglevel: Debug +[debug]: 👉 Used engine: llvm +[debug]: +[debug]: 👉 Paths set. +[debug]: Testprojectdir: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts +[debug]: Testresultfolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\test-results +[debug]: EningeFolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm +[debug]: +[debug]: +[debug]: _ _ _ _ _ ____ _____ +[debug]: / \ __ _| | | |_ __ (_) |_ / ___|_ _| +[debug]: / _ \ \ \/ / | | | '_ \| | __|___\___ \ | | +[debug]: / ___ \ > <| |_| | | | | | ||_____|__) || | +[debug]: /_/ \_\/_/\_\\___/|_| |_|_|\__| |____/ |_| +[debug]: +[debug]: 👉 Paths set. +[debug]: Testprojectdir: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts +[debug]: Testresultfolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\test-results +[debug]: EningeFolder: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm +[debug]: +[debug]: 💡 Engine: Llvm +[debug]: +[debug]: 💡 The active log level is: Debug +[debug]: +[debug]: 🕐 Starting test process... +[debug]: +[debug]: 🕑 Prepare test environment... +[debug]: +[debug]: +[debug]: ⏳ Create folder structure for tests. +[debug]: +[debug]: 14:28:09 warn: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] ⚠️ [Warning] Target path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts' already exists. Trying to delete directory, to have a clean state. +[debug]: +[debug]: 14:28:11 warn: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] ⚠️ [Warning] Access to the path 'apax-build' is denied. +[debug]: 14:28:11 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Creating target path 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts'. +[debug]: +[debug]: 14:28:11 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Copying src folder from 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib' to 'd:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts'. +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\ColorSensor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\ControlModuleAbstract.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\ActuatorStates.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\ActuatorTimeBased.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Actuator\IActuator.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\AxisBase.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\axisTypes.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\itfAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\AxisBase\TO.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\Legacy\Axis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\Legacy\IAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\commandHomeDirect.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\commandMoveRelative.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\itfPosAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\PosAxis\PosAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\commandMoveVelovity.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\commandStop.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\itfSpeedAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Axis\SpeedAxis\SpeedAxis.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Compressor\IPneumaticCompressor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Compressor\PneumaticCompressor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\ITimeprovider.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\TimeBasedEncoder.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Encoder\Timeprovider.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Motor\IMotor.st +[debug]: +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src\Motor\Motor.st +[debug]: +[debug]: 14:28:11 dbug: ApaxTestDirector.Cli.Steps.TestProjectPreparation[0] Copy apax.yml from d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib to d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts. +[debug]: +[debug]: Folder structure created in 2 seconds +[debug]: +[debug]: 14:28:12 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:28:12 dbug: ApaxTestDirector.Cli.MultiProjectWorkspaceHandler[0] The directory d:\Git\AxCommunity\axftcmlib-workspace is a workspace project. +[debug]: +[debug]: 14:28:12 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:28:12 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: +[debug]: 🕒 Getting information about tests... +[debug]: +[debug]: +[debug]: ⏳ Create apax.yml to generate symbol info. +[debug]: +[debug]: 14:28:12 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 14:28:12 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 👉 apax.yml generation for symbol info finished in 0 seconds +[debug]: +[debug]: ⏳ Starting apax install for symbolInfo +[debug]: +[debug]: Envoking:install tooks: 43sec +[debug]: +[debug]: 👉 apax install output +[debug]: +[debug]: +[debug]: +[debug]: +[debug]: 👉 Apax install for generating symbol-info finished in 43 seconds +[debug]: +[debug]: ⏳ Executing first apax build. +[debug]: +[debug]: Envoking:build tooks: 24sec +[debug]: +[debug]: 👉 apax build output +[debug]: using targets +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' │ +[debug]: └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to lib:simatic-ax-axftcmlib-symbolinfogeneration:0.0.0-placeholder --debug -fskip-code-gen -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: +[debug]: 👉 apax build to get meta-information finisehd in 24 seconds +[debug]: +[debug]: +[debug]: 🕔 Creating test environment... +[debug]: +[debug]: +[debug]: ⏳ Generating axunit.st: -input: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm, -output: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp, -engine: Llvm, -playlist: c:\Users\sjuergen\AppData\Roaming\AX Code\User\workspaceStorage\0dfc52b241436e9a1bbdd0fe5cdd5d64\siemens.axunit-vscode\cafc770e-9e8e-44a3-ac49-dcf351e51dd9\playlist.xml, -filter: , --coverage: False +[debug]: +[debug]: Test meta written to: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp\TestCasesMeta.xml +[debug]: +[debug]: +[debug]: Test environment written to: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp\axunit.st +[debug]: +[debug]: +[debug]: 👉 Generating our test app finished in 0 seconds +[debug]: +[debug]: +[debug]: 🕗 Creating test application... +[debug]: +[debug]: ⏳ Create apax.yml for the test execution. +[debug]: +[debug]: 14:29:20 dbug: ApaxTestDirector.Cli.Yml.ApaxYmlReader[0] The apax.yml file has been parsed. +[debug]: +[debug]: 👉 Creating apax.yml for testing finished in 0 seconds +[debug]: +[debug]: ⏳ Start apax build for the test project. +[debug]: +[debug]: Envoking:build tooks: 44sec +[debug]: +[debug]: 👉 apax build output +[debug]: using targets +[debug]: ┌─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-llvm-win-x64\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\target-mc7plus-win-x64\\bin\\' │ +[debug]: └─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: using stc plugins +[debug]: ┌─────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +[debug]: │ (index) │ Values │ +[debug]: ├─────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +[debug]: │ 0 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\simatic-pragma-stc-plugin\\bin\\' │ +[debug]: │ 1 │ 'd:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\bin\\axunit-artifacts\\.apax\\packages\\@ax\\st-resources.stc-plugin\\bin\\' │ +[debug]: └─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\1500\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\1500\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\1500\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\1500\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\1500\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\1500\ax-system-datetime.lib --target s7generic --output bin\1500 --compile-to app:simatic-ax-axftcmlib-symbolinfogeneration-testingstep:0.0.0-placeholder --debug -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: stc --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\src --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\simple-control-modules\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\io\src\ --input d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@simatic-ax\commands\src\ --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\simatic-1500-clocks\bin\llvm\ax-simatic-1500-clocks.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-timer\bin\llvm\ax-system-timer.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\axunitst-library\bin\llvm\ax-axunitst-library.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-strings\bin\llvm\ax-system-strings.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-math\bin\llvm\ax-system-math.lib --lib d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\.apax\packages\@ax\system-datetime\bin\llvm\ax-system-datetime.lib --target llvm --output bin\llvm --compile-to app:simatic-ax-axftcmlib-symbolinfogeneration-testingstep:0.0.0-placeholder --debug -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\test -i d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\tmp +[debug]: AX Structured Text (ST) compiler V7.0.52.28545. +[debug]: info: stc[0] +[debug]: Compile finished with 0 error(s). +[debug]: +[debug]: +[debug]: 👉 apax build for our test app finished in 104 seconds +[debug]: +[debug]: +[debug]: ⏳ Generating the llvm build native. +[debug]: +[debug]: 👉 Generating llvm build native output +[debug]: +[debug]: +[debug]: Envoking:compile-app d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm\simatic-ax-axftcmlib-symbolinfogeneration-testingstep.app d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm\llvm_app.c -o d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm\tests.exe tooks: 30sec +[debug]: +[debug]: Build test.exe +[debug]: compile-app called with +[debug]: profile: false +[debug]: app: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm\simatic-ax-axftcmlib-symbolinfogeneration-testingstep.app +[debug]: additional arguments: d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm\llvm_app.c,-o,d:\Git\AxCommunity\axftcmlib-workspace\axftcmlib\bin\axunit-artifacts\bin\llvm\tests.exe +[debug]: unpacking to folder: C:\Users\sjuergen\AppData\Local\Temp\ax-app-extractedfoUieB +[debug]: compiling to native +[debug]: +[debug]: 👉 Generating llvm build native finished in 30 seconds +[debug]: +[debug]: 🕙 Executing the tests... +[debug]: +[debug]: {"testResults":[{"testCase":11,"status":"passed","name":"Simatic.Ax.axftcmlib.MyColorSensorTest.TestDetectionUnknown_Expect_True","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":12,"status":"passed","name":"Simatic.Ax.axftcmlib.MyColorSensorTest.TestDetectionWhite_Expect_True","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":10,"status":"passed","name":"Simatic.Ax.axftcmlib.MyColorSensorTest.TestDetectionRed_Expect_True","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":9,"status":"passed","name":"Simatic.Ax.axftcmlib.MyColorSensorTest.TestDetectionBlue_Expect_True","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":14,"status":"passed","name":"Simatic.Ax.axftcmlib.MyCompressorTest.TestTurnCompressorOn_Expect_state_is_On","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":13,"status":"passed","name":"Simatic.Ax.axftcmlib.MyCompressorTest.TestTurnCompressorOff_Expect_state_is_Off","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":16,"status":"passed","name":"Simatic.Ax.axftcmlib.MyCylinderTest.TestTurnPneumaticCylinderPush_Expect_state_is_On","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":17,"status":"passed","name":"Simatic.Ax.axftcmlib.MyCylinderTest.TestTurnPneumaticCylinderRetract_Expect_state_is_Off","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":18,"status":"passed","name":"Simatic.Ax.axftcmlib.MyCylinderTest.TestZylinderNotAsigned_Expected_ErrorFound_is_True","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":15,"status":"passed","name":"Simatic.Ax.axftcmlib.MyCylinderTest.TestPneumaticCylinderError_Expected_ErrorFound_TRUE","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":1,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.TestAxis.PowerOn_Leads_To_Powered_Axis","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":0,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.TestAxis.PowerOff_Leads_To_Off_Powered_Axis","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":6,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.TestSpeedAxis.MoveVelocity_WithoutPower_LeadsToAnError","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":7,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.TestSpeedAxis.MoveVelocity_Withpower_StartsAxis","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":8,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.TestSpeedAxis.StopARunningAxis","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":5,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.TestMotor.StartMotorPos","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":4,"status":"failed","name":"Simatic.Ax.axftcmlib.Motion.TestMotor.StartMotorNeg","parameters":"","message":"Expected false, but found true","assertLocation":{"SourceName":"d:\\Git\\AxCommunity\\axftcmlib-workspace\\axftcmlib\\test\\Motor\\testMotor.st","StartLine":36}},{"testCase":3,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.testCommandHome.CommandHome_To_100_Set_Position_to_100","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}},{"testCase":2,"status":"passed","name":"Simatic.Ax.axftcmlib.Motion.testCommandHome.An_running_Axis_cant_be_homed","parameters":"","message":"","assertLocation":{"SourceName":"","StartLine":-1}}]} +[debug]: 👉 Executing tests finished in 4 seconds +[debug]: Copying d:\Git\AxCommunity\axftcmlib-workspace\TestResult.xml +[debug]: +[debug]: +[debug]: 🕛 Testing finished in 211 seconds +[debug]: +[debug]: +[debug]: ❗️ At least 1 failing test has been found! ❗️ +[debug]: +[debug]: i using apax version: 3.3.1 +[debug]: Usage Error: An error occurred while attempting to run apax-test. Exitcode: 255 +[debug]: +[debug]: $ apax test [--ignore-scripts] [-e,--engine #0] [-t,--targetIP #0] [-u,--username #0] [--password #0] [-C,--certificate #0] [-p,--playlist #0] [-c,--coverage] [-l,--loglevel #0] [-f,--filter #0] +[debug]: Exiting compile operation +[info]: 🏁 Tests run completed diff --git a/src/Actuator/ActuatorTimeBased.st b/src/Actuator/ActuatorTimeBased.st index a3e8f19..dd10c35 100644 --- a/src/Actuator/ActuatorTimeBased.st +++ b/src/Actuator/ActuatorTimeBased.st @@ -1,8 +1,8 @@ +USING Simatic.Ax.Commands; USING System.Timer; USING Simatic.Ax.Io.Output; NAMESPACE Simatic.Ax.axftcmlib - CLASS ActuatorTimeBased EXTENDS ControlModuleAbstract IMPLEMENTS IActuator @@ -15,11 +15,11 @@ NAMESPACE Simatic.Ax.axftcmlib _state : ActuatorState; END_VAR - METHOD PROTECTED OVERRIDE _constructor + METHOD PROTECTED OVERRIDE _initmethod ; END_METHOD - METHOD PROTECTED OVERRIDE _runCyclicCustom + METHOD PROTECTED OVERRIDE _executeCustom IF (ControlPush = NULL) THEN THIS.SetError(WORD#16#8101); RETURN; @@ -42,9 +42,16 @@ NAMESPACE Simatic.Ax.axftcmlib ActuatorState#Retracting: ControlPush.SetOff(); _state := ActuatorState#Retracted; + THIS.SetDone(); END_CASE; END_METHOD + METHOD PUBLIC Start : itfCommand + THIS.InitState(); + THIS.Enable(); + Start := THIS; + END_METHOD + METHOD PUBLIC Enable _state := ActuatorState#Activating; END_METHOD @@ -56,6 +63,7 @@ NAMESPACE Simatic.Ax.axftcmlib METHOD PUBLIC GetState : ActuatorState GetState := _state; END_METHOD + END_CLASS END_NAMESPACE diff --git a/src/Axis/AxisBase/AxisBase.st b/src/Axis/AxisBase/AxisBase.st new file mode 100644 index 0000000..cb4312d --- /dev/null +++ b/src/Axis/AxisBase/AxisBase.st @@ -0,0 +1,33 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS INTERNAL ABSTRACT AxisBase IMPLEMENTS itfAxis + VAR PROTECTED + _AxisRef : REF_TO TO_Axis; + END_VAR + + METHOD PROTECTED ABSTRACT MakeAxisAbstract END_METHOD + + METHOD PUBLIC Attach + VAR_INPUT + axis : REF_TO TO_Axis; + END_VAR + _AxisRef := axis; + END_METHOD + + METHOD PROTECTED IsAttached : BOOL + IsAttached := _AxisRef <> NULL; + END_METHOD + + METHOD PUBLIC PowerOn + _AxisRef^.isPowerdOn := TRUE; + END_METHOD + + METHOD PUBLIC PowerOff + _AxisRef^.isPowerdOn := FALSE; + END_METHOD + + END_CLASS + +END_NAMESPACE \ No newline at end of file diff --git a/src/Axis/AxisBase/TO.st b/src/Axis/AxisBase/TO.st new file mode 100644 index 0000000..1d43cca --- /dev/null +++ b/src/Axis/AxisBase/TO.st @@ -0,0 +1,102 @@ +USING Simatic.Ax.SimpleControlModules; +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS INTERNAL TO_Axis + VAR PUBLIC + isPowerdOn : BOOL; // Axis is powered on + END_VAR + END_CLASS + + CLASS TO_SpeedAxis EXTENDS TO_Axis + VAR PUBLIC + Velocity : LReal := LReal#100.0; + Direction : Direction := Direction#PositiveDirection; + Motor : IMotor; + END_VAR + VAR PROTECTED + _isRuning : BOOL; + END_VAR + METHOD PUBLIC Run + VAR_INPUT + exec : BOOL; + END_VAR + + _isRuning := exec; + + IF (Motor <> NULL) THEN + IF (_isRuning) THEN + // Motor.Move(direction := Direction, velocity := Velocity); + Motor.Move(velocity := Velocity, direction := Direction); + ELSE + Motor.Halt(); + END_IF; + END_IF; + + END_METHOD + METHOD PUBLIC IsRunning : BOOL + IsRunning := _isRuning; + END_METHOD + END_CLASS + + CLASS TO_PosAxis EXTENDS TO_SpeedAxis + VAR PUBLIC + Encoder : IEncoder; + EncoderResolution : LREAL := 1.0; //mm / pulse + END_VAR + VAR PRIVATE + _position : LREAL; + _isHomed : BOOL; + END_VAR + VAR PROTECTED + END_VAR + + METHOD PUBLIC SetPosition : BOOL + VAR_INPUT + value : LREAL; + END_VAR + + VAR_TEMP + _pulses : LINT; + END_VAR + + IF (Encoder <> NULL) THEN + IF EncoderResolution = 0.0 THEN + SetPosition := FALSE; + RETURN; + END_IF; + _pulses := TO_LINT(value / EncoderResolution); + Encoder.SetValue(value := _pulses); + SetPosition := TRUE; + _isHomed := TRUE; + END_IF; + END_METHOD + + + METHOD PUBLIC GetRelativePosition : LREAL + VAR_TEMP + _pulses : LINT; + END_VAR + + IF (Encoder <> NULL) THEN + _pulses := Encoder.RelativeCount(); + GetRelativePosition := EncoderResolution * TO_LREAL(_pulses); + END_IF; + END_METHOD + + METHOD PUBLIC GetPosition : LREAL + VAR_TEMP + _pulses : LINT; + END_VAR + + IF (Encoder <> NULL) THEN + _pulses := Encoder.GetValue(); + GetPosition := EncoderResolution * TO_LREAL(_pulses); + END_IF; + END_METHOD + METHOD PUBLIC IsHomed : BOOL + IsHomed := _isHomed; + END_METHOD + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/Axis/AxisBase/axisTypes.st b/src/Axis/AxisBase/axisTypes.st new file mode 100644 index 0000000..5e6ba1f --- /dev/null +++ b/src/Axis/AxisBase/axisTypes.st @@ -0,0 +1,7 @@ +NAMESPACE Simatic.Ax.axftcmlib.Motion + + TYPE + Direction : (PositiveDirection, NegativeDirection) := PositiveDirection; + END_TYPE +END_NAMESPACE + diff --git a/src/Axis/AxisBase/itfAxis.st b/src/Axis/AxisBase/itfAxis.st new file mode 100644 index 0000000..f91bf42 --- /dev/null +++ b/src/Axis/AxisBase/itfAxis.st @@ -0,0 +1,11 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + INTERFACE itfAxis EXTENDS itfObject + METHOD PowerOn + END_METHOD + METHOD PowerOff + END_METHOD + END_INTERFACE +END_NAMESPACE \ No newline at end of file diff --git a/src/Axis/Axis.st b/src/Axis/Legacy/Axis.st similarity index 96% rename from src/Axis/Axis.st rename to src/Axis/Legacy/Axis.st index 0556792..5db9762 100644 --- a/src/Axis/Axis.st +++ b/src/Axis/Legacy/Axis.st @@ -2,7 +2,7 @@ USING Simatic.Ax.IO.Input; USING System.Timer; USING Simatic.Ax.SimpleControlModules; -NAMESPACE Simatic.Ax.axftcmlib +NAMESPACE Simatic.Ax.axftcmlib.Motion TYPE INTERNAL StatesHoming : (Idle, MoveOutOfSensor, FindReferenceSensor, Done) := Idle; END_TYPE @@ -22,7 +22,7 @@ NAMESPACE Simatic.Ax.axftcmlib ///Class contains all functions necessary for realisng a motion axis ///The motor is used for "powering" the axis ///The encoder is needed to monitor the current position - CLASS Axis + CLASS Axis2 IMPLEMENTS IAxis VAR PUBLIC Motor : IMotor; @@ -257,10 +257,10 @@ NAMESPACE Simatic.Ax.axftcmlib VAR_INPUT direction : Direction; END_VAR - IF (direction = Direction#Forward) THEN - _oppositDirection := Direction#Reverse; + IF (direction = Direction#PositiveDirection) THEN + _oppositDirection := Direction#NegativeDirection; ELSE - _oppositDirection := Direction#Forward; + _oppositDirection := Direction#PositiveDirection; END_IF; END_METHOD @@ -271,9 +271,9 @@ NAMESPACE Simatic.Ax.axftcmlib setpoint : LINT; END_VAR IF (setpoint >= enc.GetValue()) THEN - DecideDirection := Direction#Forward; + DecideDirection := Direction#PositiveDirection; ELSE - DecideDirection := Direction#Reverse; + DecideDirection := Direction#NegativeDirection; END_IF; END_METHOD diff --git a/src/Axis/IAxis.st b/src/Axis/Legacy/IAxis.st similarity index 92% rename from src/Axis/IAxis.st rename to src/Axis/Legacy/IAxis.st index 8506178..33edde0 100644 --- a/src/Axis/IAxis.st +++ b/src/Axis/Legacy/IAxis.st @@ -1,8 +1,4 @@ -NAMESPACE Simatic.Ax.axftcmlib - - TYPE - Direction : (Forward, Reverse, Undefined) := Forward; - END_TYPE +NAMESPACE Simatic.Ax.axftcmlib.Motion ///Interface for implementing an axis ///Contains basic functions needed for realising an axis @@ -52,4 +48,4 @@ NAMESPACE Simatic.Ax.axftcmlib END_METHOD END_INTERFACE -END_NAMESPACE \ No newline at end of file +END_NAMESPACE diff --git a/src/Axis/PosAxis/PosAxis.st b/src/Axis/PosAxis/PosAxis.st new file mode 100644 index 0000000..51cb407 --- /dev/null +++ b/src/Axis/PosAxis/PosAxis.st @@ -0,0 +1,61 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS PosAxis + EXTENDS PosAxisImpl + + METHOD PUBLIC Attach : BOOL + VAR_INPUT + axis : REF_TO TO_PosAxis; + END_VAR + ; + _PosAxisRef := axis; + _SpeedAxisRef := axis; + SUPER.Attach(axis); + Attach := THIS.IsAttached(); + END_METHOD + END_CLASS + + CLASS INTERNAL PosAxisImpl + EXTENDS SpeedAxisImpl + IMPLEMENTS itfPosAxis + VAR PROTECTED + _PosAxisRef : REF_TO TO_PosAxis; + _commandMoveRelative : commandMoveRelative; + _commandMoveAbsolute : commandMoveAbsolute; + _commandHomeDirect : commandHomeDirect; + END_VAR + + METHOD PROTECTED OVERRIDE MakeAxisAbstract + ; + END_METHOD + + METHOD PUBLIC MoveAbsolute : itfCommand + VAR_INPUT + Position : LREAL; + Velocity : LREAL := 100.0; + END_VAR + MoveAbsolute := _commandMoveAbsolute.Start(AxisRef := _PosAxisRef, Position := Position, Velocity := Velocity); + ; + END_METHOD + + METHOD PUBLIC MoveRelative : itfCommand + VAR_INPUT + Distance : LREAL := 0.0; + Velocity : LREAL := 100.0; + END_VAR + MoveRelative := _commandMoveRelative.Start(AxisRef := _PosAxisRef, Distance := Distance, Velocity := Velocity); + ; + END_METHOD + + METHOD PUBLIC HomeDirect : itfCommand + VAR_INPUT + Position : LREAL; + END_VAR + HomeDirect := _commandHomeDirect.Start(AxisRef := _PosAxisRef, Position := Position); + + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/src/Axis/PosAxis/commandHomeDirect.st b/src/Axis/PosAxis/commandHomeDirect.st new file mode 100644 index 0000000..202f66c --- /dev/null +++ b/src/Axis/PosAxis/commandHomeDirect.st @@ -0,0 +1,51 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS INTERNAL commandHomeDirect + EXTENDS ExecuteCommand + VAR + _AxisRef : REF_TO TO_PosAxis; + _position : LReal; + END_VAR + + + METHOD PUBLIC Start : itfCommand + VAR_INPUT + AxisRef : REF_TO TO_PosAxis; + Position : LREAL := 0.0; + END_VAR + _AxisRef := AxisRef; + _position := Position; + THIS.ExecuteWithRisingEdge(); + Start := THIS; + END_METHOD + + METHOD PROTECTED OVERRIDE Execute + IF (NOT _AxisRef^.isPowerdOn) THEN + THIS.SetError(WORD#16#8001); + ELSE + ; + END_IF; + END_METHOD + + METHOD PROTECTED OVERRIDE SetExecute + VAR_INPUT + exec : BOOL; + END_VAR + IF (_AxisRef = NULL) THEN + RETURN; + END_IF; + IF (NOT _AxisRef^.isPowerdOn) THEN + THIS.SetError(WORD#16#8001); + ELSIF (_AxisRef^.IsRunning()) THEN + THIS.SetError(WORD#16#8002); // Con not be homed because axis is not stillstanding + ELSE + _Done := _AxisRef^.SetPosition(value := _position); + + END_IF; + + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/src/Axis/PosAxis/commandMoveAbsolute.st b/src/Axis/PosAxis/commandMoveAbsolute.st new file mode 100644 index 0000000..8604e16 --- /dev/null +++ b/src/Axis/PosAxis/commandMoveAbsolute.st @@ -0,0 +1,80 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS INTERNAL commandMoveAbsolute + EXTENDS ExecuteCommand + VAR + _AxisRef : REF_TO TO_PosAxis; + _velocity : LREAL; + _position : LREAL; + END_VAR + VAR PRIVATE + _execute : BOOL; + END_VAR + + METHOD PUBLIC Start : itfCommand + VAR_INPUT + AxisRef : REF_TO TO_PosAxis; + Velocity : LREAL := LREAL#100.0; + Position : LREAL := 0.0; + END_VAR + _AxisRef := AxisRef; + _velocity := Velocity; + _position := Position; + // Determine Direction + IF (_position < THIS._AxisRef^.GetPosition()) THEN + _AxisRef^.Direction := Direction#NegativeDirection; + ELSIF (_position > THIS._AxisRef^.GetPosition()) THEN + _AxisRef^.Direction := Direction#PositiveDirection; + ELSE // distance = 0 --> do nothing + THIS.SetDone(); + RETURN; + END_IF; + THIS.ExecuteWithRisingEdge(); + Start := THIS; + END_METHOD + + METHOD PROTECTED OVERRIDE Execute + VAR_TEMP + _x : LREAL; + END_VAR + IF NOT (_execute) THEN + THIS._Done := FALSE; + THIS._Error := FALSE; + RETURN; + END_IF; + + // Axis must be powerd on and homed + IF (NOT _AxisRef^.isPowerdOn) THEN + THIS.SetError(WORD#16#8001); + RETURN; + ELSIF (NOT _AxisRef^.IsHomed()) THEN + THIS.SetError(WORD#16#8003); + RETURN; + END_IF; + _AxisRef^.Velocity := _velocity; + _AxisRef^.Run(TRUE); + _x := _AxisRef^.GetPosition(); + IF (_AxisRef^.Direction = Direction#NegativeDirection) THEN + IF (_AxisRef^.GetPosition() <= _position) THEN + THIS.SetDone(); + _AxisRef^.Run(FALSE); + END_IF; + ELSE + IF (_AxisRef^.GetPosition() >= _position) THEN + THIS.SetDone(); + _AxisRef^.Run(FALSE); + END_IF; + END_IF; + END_METHOD + + METHOD PROTECTED OVERRIDE SetExecute + VAR_INPUT + exec : BOOL; + END_VAR + _execute := exec; + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/src/Axis/PosAxis/commandMoveRelative.st b/src/Axis/PosAxis/commandMoveRelative.st new file mode 100644 index 0000000..e635821 --- /dev/null +++ b/src/Axis/PosAxis/commandMoveRelative.st @@ -0,0 +1,82 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS INTERNAL commandMoveRelative + EXTENDS ExecuteCommand + VAR + _AxisRef : REF_TO TO_PosAxis; + _velocity : LREAL; + _distance : LREAL; + END_VAR + VAR PRIVATE + _execute : BOOL; + END_VAR + + METHOD PUBLIC Start : itfCommand + VAR_INPUT + AxisRef : REF_TO TO_PosAxis; + Velocity : LREAL := LREAL#100.0; + Distance : LREAL := 0.0; + END_VAR + THIS._Done := FALSE; + THIS._Error := FALSE; + _AxisRef := AxisRef; + _velocity := Velocity; + _distance := Distance; + _AxisRef^.Encoder.ResetRelative(); // Reset Reletive postioning counter + // Determine Direction + IF (_distance < 0.0) THEN + _AxisRef^.Direction := Direction#NegativeDirection; + ELSIF (_distance > 0.0) THEN + _AxisRef^.Direction := Direction#PositiveDirection; + ELSE // distance = 0 --> do nothing + THIS.SetDone(); + Start := THIS; + RETURN; + END_IF; + THIS.ExecuteWithRisingEdge(); + Start := THIS; + _AxisRef^.Encoder.ResetRelative(); + END_METHOD + + METHOD PROTECTED OVERRIDE Execute + VAR_TEMP + _x : LREAL; + END_VAR + IF NOT (_execute) THEN + RETURN; + END_IF; + // Axis must be powerd on and homed + IF (NOT _AxisRef^.isPowerdOn) THEN + THIS.SetError(WORD#16#8001); + RETURN; + ELSIF (NOT _AxisRef^.IsHomed()) THEN + THIS.SetError(WORD#16#8003); + RETURN; + END_IF; + _AxisRef^.Velocity := _velocity; + _AxisRef^.Run(TRUE); + _x := _AxisRef^.GetRelativePosition(); + IF (_AxisRef^.Direction = Direction#NegativeDirection) THEN + IF (_AxisRef^.GetRelativePosition() <= _distance) THEN + THIS.SetDone(); + _AxisRef^.Run(FALSE); + END_IF; + ELSE + IF (_AxisRef^.GetRelativePosition() >= _distance) THEN + THIS.SetDone(); + _AxisRef^.Run(FALSE); + END_IF; + END_IF; + END_METHOD + + METHOD PROTECTED OVERRIDE SetExecute + VAR_INPUT + exec : BOOL; + END_VAR + _execute := exec; + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/src/Axis/PosAxis/itfPosAxis.st b/src/Axis/PosAxis/itfPosAxis.st new file mode 100644 index 0000000..74fa549 --- /dev/null +++ b/src/Axis/PosAxis/itfPosAxis.st @@ -0,0 +1,30 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + INTERFACE itfPosAxis EXTENDS itfSpeedAxis + + METHOD MoveAbsolute : itfCommand + VAR_INPUT + Position : LREAL; // Absolute target position + Velocity : LReal := 100.0; + END_VAR + END_METHOD + + METHOD MoveRelative : itfCommand + VAR_INPUT + Distance : LREAL; // Distance for the positioning process (negative or positive) + Velocity : LReal := 100.0; + END_VAR + END_METHOD + + METHOD HomeDirect : itfCommand + VAR_INPUT + Position : LREAL; // Distance for the positioning process (negative or positive) + END_VAR + END_METHOD + + +END_INTERFACE + +END_NAMESPACE \ No newline at end of file diff --git a/src/Axis/SpeedAxis/SpeedAxis.st b/src/Axis/SpeedAxis/SpeedAxis.st new file mode 100644 index 0000000..cc25822 --- /dev/null +++ b/src/Axis/SpeedAxis/SpeedAxis.st @@ -0,0 +1,44 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS SpeedAxis + EXTENDS SpeedAxisImpl + + METHOD PUBLIC Attach : BOOL + VAR_INPUT + axis : REF_TO TO_SpeedAxis; + END_VAR + _SpeedAxisRef := axis; + SUPER.Attach(axis); + Attach := THIS.IsAttached(); + END_METHOD + END_CLASS + + CLASS INTERNAL SpeedAxisImpl + EXTENDS AxisBase + IMPLEMENTS itfSpeedAxis + VAR PROTECTED + _SpeedAxisRef : REF_TO TO_SpeedAxis; + _commandMoveVelocity : commandMoveVelovity; + _commandStop : commandStop; + END_VAR + + METHOD PUBLIC MoveVelocity : itfCommand + VAR_INPUT + Velocity : LREAL := 100.0; + Direction : Direction := Direction#PositiveDirection; + END_VAR + MoveVelocity := _commandMoveVelocity.Start(AxisRef := _SpeedAxisRef, Velocity := Velocity, Direction := Direction); + END_METHOD + + METHOD PUBLIC Stop : itfCommand + Stop := _commandStop.Start(AxisRef := _SpeedAxisRef); + END_METHOD + + METHOD PROTECTED OVERRIDE MakeAxisAbstract + ; + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/src/Axis/SpeedAxis/commandMoveVelovity.st b/src/Axis/SpeedAxis/commandMoveVelovity.st new file mode 100644 index 0000000..bbbc0d4 --- /dev/null +++ b/src/Axis/SpeedAxis/commandMoveVelovity.st @@ -0,0 +1,50 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS INTERNAL commandMoveVelovity + EXTENDS ExecuteCommand + VAR + _AxisRef : REF_TO TO_SpeedAxis; + _velocity : LReal; + _direction : Direction; + END_VAR + + + METHOD PUBLIC Start : itfCommand + VAR_INPUT + AxisRef : REF_TO TO_SpeedAxis; + Velocity : LReal := LReal#100.0; + Direction : Direction := Direction#PositiveDirection; + END_VAR + _AxisRef := AxisRef; + _velocity := Velocity; + _direction := Direction; + THIS.ExecuteWithRisingEdge(); + Start := THIS; + END_METHOD + + METHOD PROTECTED OVERRIDE Execute + IF (NOT _AxisRef^.isPowerdOn) THEN + THIS.SetError(WORD#16#8001); + ELSE + ; + END_IF; + END_METHOD + + METHOD PROTECTED OVERRIDE SetExecute + VAR_INPUT + exec : BOOL; + END_VAR + IF (NOT _AxisRef^.isPowerdOn) THEN + THIS.SetError(WORD#16#8001); + ELSE + _AxisRef^.Run(TRUE); + _AxisRef^.Velocity := _velocity; + _AxisRef^.Direction := _direction; + END_IF; + + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/src/Axis/SpeedAxis/commandStop.st b/src/Axis/SpeedAxis/commandStop.st new file mode 100644 index 0000000..e04a4e2 --- /dev/null +++ b/src/Axis/SpeedAxis/commandStop.st @@ -0,0 +1,36 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + CLASS INTERNAL commandStop + EXTENDS ExecuteCommand + VAR + _AxisRef : REF_TO TO_SpeedAxis; + END_VAR + + + METHOD PUBLIC Start : itfCommand + VAR_INPUT + AxisRef : REF_TO TO_SpeedAxis; + END_VAR + _AxisRef := AxisRef; + THIS.ExecuteWithRisingEdge(); + Start := THIS; + END_METHOD + + METHOD PROTECTED OVERRIDE Execute + ; + END_METHOD + + METHOD PROTECTED OVERRIDE SetExecute + VAR_INPUT + exec : BOOL; + END_VAR + + _AxisRef^.Run(FALSE); + THIS.SetDone(); + + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/src/Axis/SpeedAxis/itfSpeedAxis.st b/src/Axis/SpeedAxis/itfSpeedAxis.st new file mode 100644 index 0000000..90fa0a0 --- /dev/null +++ b/src/Axis/SpeedAxis/itfSpeedAxis.st @@ -0,0 +1,19 @@ +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + INTERFACE itfSpeedAxis EXTENDS itfAxis + + METHOD MoveVelocity : itfCommand + VAR_INPUT + Velocity : LReal := 100.0; + Direction : Direction := Direction#PositiveDirection; + END_VAR + END_METHOD + + METHOD Stop : itfCommand + END_METHOD + +END_INTERFACE + +END_NAMESPACE \ No newline at end of file diff --git a/src/ControlModuleAbstract.st b/src/ControlModuleAbstract.st index 462d9d4..d9a714b 100644 --- a/src/ControlModuleAbstract.st +++ b/src/ControlModuleAbstract.st @@ -1,7 +1,9 @@ +USING Simatic.Ax.Commands; + NAMESPACE Simatic.Ax.axftcmlib ///Provides basic functionality for programming on a plc /// has acces to the protected Methods and "Contructors" of the classes - CLASS ABSTRACT ControlModuleAbstract + CLASS ABSTRACT ControlModuleAbstract EXTENDS ExecuteCommand VAR PUBLIC END_VAR @@ -9,47 +11,38 @@ NAMESPACE Simatic.Ax.axftcmlib _init : BOOL; _hasError : BOOL; _errorState : WORD; + _exec : BOOL; END_VAR - METHOD PUBLIC RunCyclic + METHOD PROTECTED OVERRIDE Execute IF (NOT _init) THEN - THIS._constructor(); + THIS._initmethod(); _init := TRUE; END_IF; - THIS._runCyclicCustom(); + THIS._executeCustom(); ; END_METHOD - METHOD PROTECTED ABSTRACT _runCyclicCustom - - END_METHOD - - METHOD PROTECTED ABSTRACT _constructor - - END_METHOD - - METHOD PROTECTED SetError + METHOD PROTECTED OVERRIDE SetExecute VAR_INPUT - ErrorCode : WORD; + exec : BOOL; END_VAR - _errorState := ErrorCode; - _hasError := TRUE; + _exec := exec; + IF (_exec) THEN + THIS.InitState(); + END_IF; ; END_METHOD - METHOD PROTECTED SetError - VAR_INPUT - Set : BOOL; - END_VAR - _hasError := Set; - ; + METHOD PROTECTED ABSTRACT _executeCustom + END_METHOD - // control module has an error - METHOD PUBLIC HasError : BOOL; - HasError := _hasError; + METHOD PROTECTED ABSTRACT _initmethod + END_METHOD + METHOD PUBLIC GetErrorStatus : WORD GetErrorStatus := _errorState; END_METHOD diff --git a/src/Encoder/TimeBasedEncoder.st b/src/Encoder/TimeBasedEncoder.st index 502096c..5c455e5 100644 --- a/src/Encoder/TimeBasedEncoder.st +++ b/src/Encoder/TimeBasedEncoder.st @@ -1,7 +1,9 @@ +USING Simatic.Ax.axftcmlib.Motion; USING Simatic.Ax.SimpleControlModules; USING Simatic.Ax.IO.Output; USING Simatic.Ax.IO.Input; USING System.Timer; +USING Simatic.Ax.axftcmlib.Motion; NAMESPACE Simatic.Ax.axftcmlib ///Used to track the Position of the axis based on time @@ -10,11 +12,12 @@ NAMESPACE Simatic.Ax.axftcmlib CLASS TimeBasedEncoder IMPLEMENTS IEncoder VAR PUBLIC Velocity : LREAL; // m/s - EncoderAxis : IAxis; + TO_Axis : REF_TO TO_PosAxis; TimeProvider : ITimeprovider; END_VAR VAR PROTECTED _position : LREAL; // pos in [m]eter + _positionRelative : LREAL; END_VAR /// Reset encoder position to zero @@ -44,9 +47,14 @@ NAMESPACE Simatic.Ax.axftcmlib END_VAR dt := TimeProvider.GetElapsedSeconds(); //time passed in seconds ds := Velocity * dt; - IF (EncoderAxis <> NULL) THEN - IF (EncoderAxis.IsRunning()) THEN //If Axis is running + + IF (TO_Axis^.Direction = Motion.Direction#NegativeDirection) THEN + ds := ds * -1.0; + END_IF; + IF (TO_Axis <> NULL) THEN + IF (TO_Axis^.IsRunning()) THEN //If Axis is running _position := _position + ds; + _positionRelative := _positionRelative + ds; END_IF; END_IF; END_METHOD @@ -58,11 +66,11 @@ NAMESPACE Simatic.Ax.axftcmlib END_METHOD METHOD PUBLIC RelativeCount : LINT - ; + RelativeCount := TO_LINT(_positionRelative * 1000.0);; END_METHOD METHOD PUBLIC ResetRelative - ; + _positionRelative := 0.0; END_METHOD METHOD PUBLIC SetDirection diff --git a/src/Motor/IMotor.st b/src/Motor/IMotor.st index a338347..40fffa7 100644 --- a/src/Motor/IMotor.st +++ b/src/Motor/IMotor.st @@ -1,5 +1,5 @@ -NAMESPACE Simatic.Ax.axftcmlib +NAMESPACE Simatic.Ax.axftcmlib.Motion ///This interface can be used to implement a motor for the axis /// It contains basic functions that are needed for the axis INTERFACE IMotor diff --git a/src/Motor/Motor.st b/src/Motor/Motor.st index 2d0f965..90862c5 100644 --- a/src/Motor/Motor.st +++ b/src/Motor/Motor.st @@ -1,7 +1,7 @@ USING Simatic.Ax.IO.Output; USING Simatic.Ax.axftcmlib; -NAMESPACE Simatic.Ax.axftcmlib +NAMESPACE Simatic.Ax.axftcmlib.Motion ///Class for creating a basic Motor /// It supports two directions @@ -19,7 +19,7 @@ NAMESPACE Simatic.Ax.axftcmlib velocity : LREAL; direction : Direction; END_VAR - IF (direction = Direction#Forward) THEN + IF (direction = Direction#PositiveDirection) THEN Forward.SetOn(); Reverse.SetOff(); ELSE diff --git a/test/Axis_Mock.st b/test/Axis_Mock.st deleted file mode 100644 index 6879b13..0000000 --- a/test/Axis_Mock.st +++ /dev/null @@ -1,69 +0,0 @@ -USING Simatic.Ax.IO.Input; -USING System.Timer; -USING Simatic.Ax.SimpleControlModules; - -NAMESPACE Simatic.Ax.axftcmlib - CLASS Axis_Mock - IMPLEMENTS IAxis - VAR PUBLIC - State : PlcOpenState; - END_VAR - - VAR PROTECTED - - END_VAR - - METHOD PUBLIC MoveVelocity - VAR_INPUT - velocity : LREAL; - direction : Direction; - END_VAR - ; - END_METHOD - METHOD PUBLIC MoveRelative : BOOL - VAR_INPUT - velocity : LREAL; - distance : LINT; - END_VAR -; - END_METHOD - METHOD PUBLIC MoveAbsolute : BOOL - VAR_INPUT - velocity : LREAL; - position : LINT; - END_VAR -; - END_METHOD - METHOD PUBLIC Homing : BOOL - VAR_INPUT - velocity : LREAL; - direction : Direction; - END_VAR - ; - END_METHOD - - METHOD PUBLIC Homing : BOOL - VAR_INPUT - Position : LINT; - END_VAR - ; - END_METHOD - - METHOD PUBLIC Halt - ; - END_METHOD - METHOD PUBLIC IsHomed : BOOL - ; - END_METHOD - - - - METHOD PUBLIC IsRunning : BOOL - IsRunning := State = PlcOpenstate#Busy; - END_METHOD - -END_CLASS - -END_NAMESPACE - - diff --git a/test/Cylinder_test.st b/test/Cylinder_test.st index 2c233ed..84e4e66 100644 --- a/test/Cylinder_test.st +++ b/test/Cylinder_test.st @@ -1,64 +1,63 @@ -//USING Simatic.Ax.Cylinder; -USING Simatic.Ax.axftcmlib; -USING Simatic.Ax.IO.Output; -USING AxUnit.Assert; - -NAMESPACE Simatic.Ax.axftcmlib - - {TestFixture} - CLASS MyCylinderTest - VAR PROTECTED - _actuator : ActuatorTimeBased; - _actuatorStateLess : ActuatorTimeBased; - _output : BinOutput; - END_VAR - - {TestSetup} - METHOD PUBLIC SetUp - _actuator := _actuatorStateLess; - _actuator.ControlPush := _output; - END_METHOD - - {Test} - METHOD PUBLIC TestTurnPneumaticCylinderPush_Expect_state_is_On - THIS.SetUp(); - _actuator.Enable(); - _actuator.RunCyclic(); - AxUnit.Assert.Equal(expected := TRUE, actual := _output.IsOn()); - END_METHOD - - {Test} - METHOD PUBLIC TestTurnPneumaticCylinderRetract_Expect_state_is_Off - THIS.SetUp(); - THIS.TestTurnPneumaticCylinderPush_Expect_state_is_On(); - _actuator.Disable(); - _actuator.RunCyclic(); - AxUnit.Assert.Equal(expected := FALSE, actual := _output.IsOn()); - END_METHOD - - {Test} - METHOD PUBLIC TestZylinderNotAsigned_Expected_ErrorFound_is_True - VAR - Test : BOOL; - END_VAR - _actuator.ControlPush := NULL; - _actuator.RunCyclic(); - AxUnit.Assert.Equal(Expected := TRUE, actual := _actuator.HasError()); - ; - END_METHOD - - {Test} - METHOD PUBLIC TestPneumaticCylinderError_Expected_ErrorFound_TRUE - VAR - Test : BOOL; - END_VAR - - THIS.SetUp(); - Test := _actuator.HasError(); - AxUnit.Assert.Equal(Expected := FALSE, actual := Test); - ; - END_METHOD - - END_CLASS - -END_NAMESPACE +// USING Simatic.Ax.axftcmlib; +// USING Simatic.Ax.IO.Output; +// USING AxUnit.Assert; + +// NAMESPACE Simatic.Ax.axftcmlib + +// {TestFixture} +// CLASS MyCylinderTest +// VAR PROTECTED +// _actuator : ActuatorTimeBased; +// _actuatorStateLess : ActuatorTimeBased; +// _output : BinOutput; +// END_VAR + +// {TestSetup} +// METHOD PUBLIC SetUp +// _actuator := _actuatorStateLess; +// _actuator.ControlPush := _output; +// END_METHOD + +// {Test} +// METHOD PUBLIC TestTurnPneumaticCylinderPush_Expect_state_is_On +// THIS.SetUp(); +// _actuator.Enable(); +// _actuator.Busy(); +// AxUnit.Assert.Equal(expected := TRUE, actual := _output.IsOn()); +// END_METHOD + +// {Test} +// METHOD PUBLIC TestTurnPneumaticCylinderRetract_Expect_state_is_Off +// THIS.SetUp(); +// THIS.TestTurnPneumaticCylinderPush_Expect_state_is_On(); +// _actuator.Disable(); +// _actuator.Busy(); +// AxUnit.Assert.Equal(expected := FALSE, actual := _output.IsOn()); +// END_METHOD + +// {Test} +// METHOD PUBLIC TestZylinderNotAsigned_Expected_ErrorFound_is_True +// VAR +// Test : BOOL; +// END_VAR +// _actuator.ControlPush := NULL; +// _actuator.Busy(); +// AxUnit.Assert.Equal(Expected := TRUE, actual := _actuator.Error()); +// ; +// END_METHOD + +// {Test} +// METHOD PUBLIC TestPneumaticCylinderError_Expected_ErrorFound_TRUE +// VAR +// Test : BOOL; +// END_VAR + +// THIS.SetUp(); +// Test := _actuator.Error(); +// AxUnit.Assert.Equal(Expected := FALSE, actual := Test); +// ; +// END_METHOD + +// END_CLASS + +// END_NAMESPACE diff --git a/test/Encoder_test.st b/test/Encoder_test.st deleted file mode 100644 index c8d813a..0000000 --- a/test/Encoder_test.st +++ /dev/null @@ -1,43 +0,0 @@ -USING Simatic.Ax.axftcmlib; - -NAMESPACE Simatic.Ax.axftcmlib - - {TestFixture} - CLASS MyEncoderTest - VAR PROTECTED - _testEncoderStatic : TimeBasedEncoder; - _staticTimeProvider : TimeProviderMOCK_100ms_const; - _staticAxis : Axis_Mock := (State := PlcOpenState#Busy); - END_VAR - - METHOD PUBLIC SetUp - VAR - velocity : LREAL; - END_VAR - velocity := 1.0; - _testEncoderStatic.velocity := 1.0; - _testEncoderStatic.TimeProvider := _staticTimeProvider; - _testEncoderStatic.EncoderAxis := _staticAxis; - _testEncoderStatic.EncoderAxis.MoveVelocity(velocity, Direction#Forward); - END_METHOD - - {Test} - METHOD PUBLIC TestPositionAfter100ms_Expect_position_equal - THIS.SetUp(); - _testEncoderStatic.Reset(); - _testEncoderStatic.Evaluate(); - AxUnit.Assert.Equal(expected := 100, actual := _testEncoderStatic.GetValue()); - _testEncoderStatic.Evaluate(); - AxUnit.Assert.Equal(expected := 200, actual := _testEncoderStatic.GetValue()); - // Set Axis to stop - _staticAxis.State := PlcOpenState#Done; - _testEncoderStatic.Evaluate(); - AxUnit.Assert.Equal(expected := 200, actual := _testEncoderStatic.GetValue()); // dont integrate when axis is stopped - // After Reset the GetValue should be 0 - _testEncoderStatic.Reset(); - AxUnit.Assert.Equal(expected := 0, actual := _testEncoderStatic.GetValue()); - - END_METHOD - END_CLASS - -END_NAMESPACE diff --git a/test/Motion/commands/dummy.st b/test/Motion/commands/dummy.st new file mode 100644 index 0000000..df9c844 --- /dev/null +++ b/test/Motion/commands/dummy.st @@ -0,0 +1,23 @@ +USING AxUnit.Assert; +USING Simatic.Ax.Commands; +USING Simatic.Ax.SimpleControlModules; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + {TestFixture} + CLASS dummy + VAR + + END_VAR + + {TestSetup} + METHOD PUBLIC TestSetup + ; + END_METHOD + + {Test} + METHOD PUBLIC TestMethod + ; + END_METHOD + END_CLASS +END_NAMESPACE diff --git a/test/Motion/commands/testCommandHome.st b/test/Motion/commands/testCommandHome.st new file mode 100644 index 0000000..5317006 --- /dev/null +++ b/test/Motion/commands/testCommandHome.st @@ -0,0 +1,101 @@ +USING AxUnit.Assert; +USING Simatic.Ax.Commands; +USING Simatic.Ax.SimpleControlModules; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + {TestFixture} + CLASS testCommandHome + VAR + axis : PosAxis; + axisStateLess : PosAxis; + toAxis : TO_PosAxis; + toAxisStateLess : TO_PosAxis; + command : itfCommand; + cmdHomeDirect : commandHomeDirect; + encoder : MockEncoder; + END_VAR + + {TestSetup} + METHOD PUBLIC TestSetup + axis := axisStateLess; + toAxis := toAxisStateLess; + toAxis.Encoder := encoder; + ; + END_METHOD + + {Test} + METHOD PUBLIC CommandHome_To_100_Set_Position_to_100 + axis.Attach(REF(toAxis)); + axis.PowerOn(); + command := cmdHomeDirect.Start(AxisRef := REF(toAxis), Position := 100.0); + Equal(expected := 100.0, actual := toAxis.GetPosition()); + END_METHOD + {Test} + METHOD PUBLIC An_running_Axis_cant_be_homed + axis.Attach(REF(toAxis)); + axis.PowerOn(); + axis.MoveVelocity(100.0, Direction#PositiveDirection); + command := cmdHomeDirect.Start(AxisRef := REF(toAxis), Position := 100.0); + Equal(expected := TRUE, actual := command.Error()); + NotEqual(expected := WORD#0000, actual := command.ErrorID()); + Equal(expected := 0.0, actual := toAxis.GetPosition()); + END_METHOD + END_CLASS + + CLASS MockEncoder IMPLEMENTS IEncoder + VAR PUBLIC + + END_VAR + VAR PROTECTED + _value : LINT; + _RelativeCount : LINT; + END_VAR + + METHOD PUBLIC MyMethod + ; + END_METHOD + + METHOD PUBLIC Evaluate + ; + END_METHOD + + METHOD PUBLIC Reset + ; + END_METHOD + + METHOD PUBLIC SetValue + VAR_INPUT + value : LINT; + END_VAR + _value := value; + _RelativeCount := value; + ; + END_METHOD + + METHOD PUBLIC GetValue : LINT + GetValue := _value; + END_METHOD + + METHOD PUBLIC SetDirection + VAR_INPUT + mode : CountMode; + END_VAR + + ; + END_METHOD + + METHOD PUBLIC RelativeCount : LINT + RelativeCount := _RelativeCount; + END_METHOD + + METHOD PUBLIC ResetRelative + _RelativeCount := LINT#0; + END_METHOD + + METHOD PUBLIC GetModulo : LINT + ; + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/test/Motion/commands/testMoveAbsolute.st b/test/Motion/commands/testMoveAbsolute.st new file mode 100644 index 0000000..65c552c --- /dev/null +++ b/test/Motion/commands/testMoveAbsolute.st @@ -0,0 +1,52 @@ +// USING AxUnit.Assert; +// USING Simatic.Ax.Commands; +// USING Simatic.Ax.SimpleControlModules; + +// NAMESPACE Simatic.Ax.axftcmlib.Motion + +// {TestFixture} +// CLASS testMoveAbsolute +// VAR +// to_pos : TO_PosAxis; +// to_pos_Stateless : TO_PosAxis; +// moveAbsolute : commandMoveAbsolute; +// moveAbsoluteStateLess : commandMoveAbsolute; +// cmd : itfCommand; +// encoder : MockEncoder; +// motor : MotorFT; +// END_VAR + +// {TestSetup} +// METHOD PUBLIC TestSetup +// to_pos := to_pos_Stateless; +// moveAbsolute := moveAbsoluteStateLess; +// to_pos.Motor := motor; +// to_pos.Encoder := encoder; +// END_METHOD + +// {Test} +// METHOD PUBLIC Start_not_homed_axis_returns_error +// to_pos.isPowerdOn := TRUE; +// cmd := moveAbsolute.Start(AxisRef := REF(to_pos)); +// Equal(expected := TRUE, actual := cmd.Error()); +// Equal(expected := WORD#16#8003, actual := cmd.ErrorID()); +// to_pos.SetPosition(0); +// cmd := moveAbsolute.Start(AxisRef := REF(to_pos), position := 100); +// Equal(expected := TRUE, actual := cmd.Busy()); +// ; +// END_METHOD + +// {Test} +// METHOD PUBLIC Start_Homed_Axis_with_Distance_100_returns_busy +// to_pos.isPowerdOn := TRUE; +// to_pos.SetPosition(0); +// cmd := moveAbsolute.Start(AxisRef := REF(to_pos), position := 100); +// Equal(expected := TRUE, actual := cmd.Busy()); +// Equal(expected := TRUE, actual := to_pos.IsRunning()); +// encoder.SetValue(100); +// Equal(expected := TRUE, actual := cmd.Done()); +// Equal(expected := FALSE, actual := to_pos.IsRunning()); +// ; +// END_METHOD +// END_CLASS +// END_NAMESPACE diff --git a/test/Motion/commands/testMoveRelative.st b/test/Motion/commands/testMoveRelative.st new file mode 100644 index 0000000..a7b7804 --- /dev/null +++ b/test/Motion/commands/testMoveRelative.st @@ -0,0 +1,64 @@ +USING Simatic.Ax.IO.Output; +USING AxUnit.Assert; +USING Simatic.Ax.Commands; +USING Simatic.Ax.SimpleControlModules; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + {TestFixture} + CLASS testMoveRelative + VAR + to_pos : TO_PosAxis; + to_pos_Stateless : TO_PosAxis; + moveRelative : commandMoveRelative; + moveRelativeStateLess : commandMoveRelative; + cmd : itfCommand; + encoder : MockEncoder; + motor : MotorFT; + qNeg : BinOutput; + qPos : BinOutput; + END_VAR + + {TestSetup} + METHOD PUBLIC TestSetup + to_pos := to_pos_Stateless; + moveRelative := moveRelativeStateLess; + motor.Forward := qPos; + motor.Reverse := qNeg; + to_pos.Motor := motor; + to_pos.Encoder := encoder; + END_METHOD + + {Test} + METHOD PUBLIC Start_not_homed_axis_returns_error + to_pos.isPowerdOn := TRUE; + cmd := moveRelative.Start(AxisRef := REF(to_pos), Distance := 100); + Equal(expected := TRUE, actual := cmd.Error()); + Equal(expected := WORD#16#8003, actual := cmd.ErrorID()); + to_pos.SetPosition(0); + cmd := moveRelative.Start(AxisRef := REF(to_pos), distance := 100); + Equal(expected := TRUE, actual := cmd.Busy()); + ; + END_METHOD + + {Test} + METHOD PUBLIC Start_Homed_Axis_with_Distance_100_returns_busy + to_pos.isPowerdOn := TRUE; + to_pos.SetPosition(0); + cmd := moveRelative.Start(AxisRef := REF(to_pos), distance := 100); + Equal(expected := TRUE, actual := cmd.Busy()); + Equal(expected := TRUE, actual := to_pos.IsRunning()); + encoder.SetValue(100); + Equal(expected := TRUE, actual := cmd.Done()); + Equal(expected := FALSE, actual := to_pos.IsRunning()); + + cmd := moveRelative.Start(AxisRef := REF(to_pos), distance := 100); + Equal(expected := TRUE, actual := cmd.Busy()); + Equal(expected := TRUE, actual := to_pos.IsRunning()); + encoder.SetValue(200); + Equal(expected := TRUE, actual := cmd.Done()); + Equal(expected := FALSE, actual := to_pos.IsRunning()); + ; + END_METHOD + END_CLASS +END_NAMESPACE diff --git a/test/Motion/testAxis.st b/test/Motion/testAxis.st new file mode 100644 index 0000000..122b1ce --- /dev/null +++ b/test/Motion/testAxis.st @@ -0,0 +1,41 @@ +USING AxUnit.Assert; +NAMESPACE Simatic.Ax.axftcmlib.Motion + + {TestFixture} + CLASS TestAxis + VAR + o : AxisBaseTestImpl; + oStateLess : AxisBaseTestImpl; + toAxis : TO_Axis; + END_VAR + + {TestSetup} + METHOD PUBLIC TestSetup + o := oStateLess; + o.Attach(REF(toAxis)); + ; + END_METHOD + + {Test} + METHOD PUBLIC PowerOn_Leads_To_Powered_Axis + o.PowerOn(); + Equal(expected := TRUE, actual := toAxis.isPowerdOn); + END_METHOD + + {Test} + METHOD PUBLIC PowerOff_Leads_To_Off_Powered_Axis + o.PowerOn(); + o.PowerOff(); + Equal(expected := FALSE, actual := toAxis.isPowerdOn); + END_METHOD + + END_CLASS + + CLASS AxisBaseTestImpl EXTENDS AxisBase + + METHOD PROTECTED OVERRIDE MakeAxisAbstract + ; + END_METHOD + END_CLASS + +END_NAMESPACE diff --git a/test/Motion/testPosAxis.st b/test/Motion/testPosAxis.st new file mode 100644 index 0000000..33206a7 --- /dev/null +++ b/test/Motion/testPosAxis.st @@ -0,0 +1,67 @@ +// USING AxUnit.Assert; +// USING Simatic.Ax.Commands; + +// NAMESPACE Simatic.Ax.axftcmlib.Motion + +// {TestFixture} +// CLASS TestPosAxis +// VAR +// axis : PosAxis; +// axisStateLess : PosAxis; +// toAxis : TO_PosAxis; +// toAxisStateLess : TO_PosAxis; +// command : itfCommand; +// END_VAR + +// {TestSetup} +// METHOD PUBLIC TestSetup +// axis := axisStateLess; +// toAxis := toAxisStateLess; +// axis.Attach(REF(toAxis)); + +// ; +// END_METHOD + +// {Test} +// METHOD PUBLIC MoveVelocity_WithoutPower_LeadsToAnError +// command := axis.MoveVelocity(); +// Equal(expected := TRUE, actual := command.Error()); +// Equal(expected := FALSE, actual := toAxis.IsRunning()); +// END_METHOD + +// {Test} +// METHOD PUBLIC MoveVelocity_Withpower_StartsAxis +// axis.PowerOn(); +// command := axis.MoveVelocity(); +// Equal(expected := TRUE, actual := command.Busy()); +// Equal(expected := TRUE, actual := toAxis.IsRunning()); +// END_METHOD + +// {Test} +// METHOD PUBLIC MoveRelative_WithPowered_StartsAxis +// axis.PowerOn(); +// command := axis.MoveRelative(); + +// Equal(expected := TRUE, actual := command.Busy()); +// Equal(expected := TRUE, actual := toAxis.IsRunning()); +// END_METHOD + +// {Test} +// METHOD PUBLIC StopARunningAxis +// THIS.MoveVelocity_Withpower_StartsAxis(); +// command := axis.Stop(); +// Equal(expected := TRUE, actual := command.Done()); +// Equal(expected := FALSE, actual := toAxis.IsRunning()); +// END_METHOD + +// {Test} +// METHOD PUBLIC DirectHoming_Returns_Done_when_finished +// axis.PowerOn(); +// command := axis.HomeDirect(Position := 100.0); +// Equal(expected := TRUE, actual := command.Done()); +// END_METHOD + +// END_CLASS + + +// END_NAMESPACE diff --git a/test/Motion/testSpeedAxis.st b/test/Motion/testSpeedAxis.st new file mode 100644 index 0000000..e81f765 --- /dev/null +++ b/test/Motion/testSpeedAxis.st @@ -0,0 +1,50 @@ +USING AxUnit.Assert; +USING Simatic.Ax.Commands; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + {TestFixture} + CLASS TestSpeedAxis + VAR + axis : SpeedAxis; + axisStateLess : SpeedAxis; + toAxis : TO_SpeedAxis; + command : itfCommand; + END_VAR + + {TestSetup} + METHOD PUBLIC TestSetup + axis := axisStateLess; + axis.Attach(REF(toAxis)); + ; + END_METHOD + + {Test} + METHOD PUBLIC MoveVelocity_WithoutPower_LeadsToAnError + command := axis.MoveVelocity(); + Equal(expected := TRUE, actual := command.Error()); + Equal(expected := FALSE, actual := toAxis.IsRunning()); + + + END_METHOD + + {Test} + METHOD PUBLIC MoveVelocity_Withpower_StartsAxis + axis.PowerOn(); + command := axis.MoveVelocity(); + Equal(expected := TRUE, actual := command.Busy()); + Equal(expected := TRUE, actual := toAxis.IsRunning()); + END_METHOD + + {Test} + METHOD PUBLIC StopARunningAxis + THIS.MoveVelocity_Withpower_StartsAxis(); + command := axis.Stop(); + Equal(expected := TRUE, actual := command.Done()); + Equal(expected := FALSE, actual := toAxis.IsRunning()); + END_METHOD + + END_CLASS + + +END_NAMESPACE diff --git a/test/Motor/testMotor.st b/test/Motor/testMotor.st new file mode 100644 index 0000000..9c3cc82 --- /dev/null +++ b/test/Motor/testMotor.st @@ -0,0 +1,47 @@ +USING AxUnit.Assert; +USING Simatic.Ax.IO.Output; + +NAMESPACE Simatic.Ax.axftcmlib.Motion + + {TestFixture} + CLASS TestMotor + VAR + o : MotorFT; + oStateless : MotorFT; + QPos : BinOutput; + QNeg : BinOutput; + QStateless : BinOutput; + END_VAR + + {TestSetup} + METHOD PUBLIC TestSetup + o := oStateLess; + o.Forward := QPos; + o.Reverse := QNeg; + QPos := QStateless; + QNeg := QStateless; + ; + END_METHOD + + {Test} + METHOD PUBLIC StartMotorPos + o.Move(direction := Direction#PositiveDirection); + Equal(expected := TRUE, actual := QPos.IsOn()); + Equal(expected := FALSE, actual := QNeg.IsOn()); + o.Halt(); + Equal(expected := FALSE, actual := QPos.IsOn()); + Equal(expected := FALSE, actual := QNeg.IsOn()); + END_METHOD + + {Test} + METHOD PUBLIC StartMotorNeg + o.Move(direction := Direction#NegativeDirection); + Equal(expected := FALSE, actual := QPos.IsOn()); + Equal(expected := TRUE, actual := QNeg.IsOn()); + o.Halt(); + Equal(expected := FALSE, actual := QPos.IsOn()); + Equal(expected := FALSE, actual := QNeg.IsOn()); + END_METHOD + + END_CLASS +END_NAMESPACE diff --git a/test/TestAxis.st b/test/TestAxis.st deleted file mode 100644 index 1cfda67..0000000 --- a/test/TestAxis.st +++ /dev/null @@ -1,104 +0,0 @@ -USING Simatic.Ax.IO.Output; -USING Simatic.Ax.IO.Input; -USING Simatic.Ax.axftcmlib; -USING AxUnit.Assert; - -// USING Simatic.Ax.SimpleControlModules; -NAMESPACE Simatic.Ax.Library - - {TestFixture} - CLASS TestAxisHoming - VAR PROTECTED - _axis : Axis; - _refSwitch : BinSignal; - _motor : MotorFT; - _fwd : BinOutput; - _rvs : BinOutput; - _encoder : Simatic.Ax.SimpleControlModules.EncoderAB; - END_VAR - METHOD PUBLIC Setup - _motor.Forward := _fwd; - _motor.Reverse := _rvs; - _axis.Motor := _motor; - _axis.Encoder := _encoder; - _axis.ReferenceSwitch := _refSwitch; - END_METHOD - {Test} - METHOD PUBLIC TestForwardDirection_Expect_Fwd_IsOn - THIS.Setup(); - _axis.MoveVelocity(direction := Direction#Forward); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - Equal(expected := TRUE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - END_METHOD - {Test} - METHOD PUBLIC Homing_from_outside_of_the_referecne_sensor_Move_reverse - THIS.Setup(); - _axis.Homing(direction := Direction#Reverse); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - _axis.RunCyclic(); - Equal(expected := FALSE, actual := _fwd.IsOn()); - Equal(expected := TRUE, actual := _rvs.IsOn()); - END_METHOD - - {Test} - METHOD PUBLIC Homing_from_outside_of_the_referecne_sensor_Move_forward - THIS.Setup(); - _axis.Homing(direction := Direction#Forward); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - END_METHOD - - {Test} - METHOD PUBLIC Homing_untilsensor_has_reached - VAR_TEMP - isHomed : BOOL; - END_VAR - THIS.Setup(); - - _axis.Homing(direction := Direction#Forward); - _axis.RunCyclic(); - - _refSwitch.ReadCyclic(signal := FALSE); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Error); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - Equal(expected := TRUE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - - _refSwitch.ReadCyclic(signal := FALSE); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Error); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - Equal(expected := TRUE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - - _refSwitch.ReadCyclic(signal := FALSE); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Error); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - Equal(expected := TRUE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - - _refSwitch.ReadCyclic(signal := TRUE); - _axis.RunCyclic(); - _axis.RunCyclic(); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Error); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - Equal(expected := FALSE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - Equal(expected := TRUE, actual := _axis.IsHomed()); - END_METHOD - - END_CLASS - -END_NAMESPACE diff --git a/test/TestAxisManualHoming.st b/test/TestAxisManualHoming.st deleted file mode 100644 index 66ce768..0000000 --- a/test/TestAxisManualHoming.st +++ /dev/null @@ -1,38 +0,0 @@ -USING Simatic.Ax.IO.Output; -USING Simatic.Ax.IO.Input; -USING Simatic.Ax.axftcmlib; -USING AxUnit.Assert; - -// USING Simatic.Ax.SimpleControlModules; -NAMESPACE Simatic.Ax.Library - - {TestFixture} - CLASS TestAxisManualHoming - VAR PROTECTED - _axis : Axis; - _refSwitch : BinSignal; - _motor : MotorFT; - _fwd : BinOutput; - _rvs : BinOutput; - _encoder : Simatic.Ax.SimpleControlModules.EncoderAB; - END_VAR - METHOD PUBLIC Setup - _motor.Forward := _fwd; - _motor.Reverse := _rvs; - _axis.Motor := _motor; - _axis.Encoder := _encoder; - _axis.ReferenceSwitch := _refSwitch; - END_METHOD - {Test} - METHOD PUBLIC AxisReturnes_IsHomed_when_Homing_Method_isCalled - THIS.Setup(); - Equal(expected := FALSE, actual := _axis.IsHomed()); - _axis.Homing(position := 100); - Equal(expected := TRUE, actual := _axis.IsHomed()); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - _axis.RunCyclic(); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - END_METHOD - END_CLASS - -END_NAMESPACE diff --git a/test/TestAxisMoveAbsolut.st b/test/TestAxisMoveAbsolut.st deleted file mode 100644 index af62a94..0000000 --- a/test/TestAxisMoveAbsolut.st +++ /dev/null @@ -1,112 +0,0 @@ -USING Simatic.Ax.IO.Output; -USING Simatic.Ax.IO.Input; -USING Simatic.Ax.axftcmlib; -USING AxUnit.Assert; - -// USING Simatic.Ax.SimpleControlModules; -NAMESPACE Simatic.Ax.Library - - {TestFixture} - CLASS TestAxisMoveAbsolut - VAR PROTECTED - _axis : Axis; - _axisStateLess : Axis; - _refSwitch : BinSignal; - _motor : MotorFT; - _fwd : BinOutput; - _rvs : BinOutput; - _encoder : Simatic.Ax.SimpleControlModules.EncoderAB; - END_VAR - {TestSetup} - METHOD PUBLIC Setup - _axisStateLess := _axis; - _motor.Forward := _fwd; - _motor.Reverse := _rvs; - _axis.Motor := _motor; - _axis.Encoder := _encoder; - _axis.ReferenceSwitch := _refSwitch; - END_METHOD - METHOD PUBLIC Home : BOOL - VAR_INPUT - axis : REF_TO Axis; - refSwitch : REF_TO BinSignal; - END_VAR - axis^.Homing(direction := Direction#Forward); - refSwitch^.ReadCyclic(signal := FALSE); - axis^.RunCyclic(); - refSwitch^.ReadCyclic(signal := TRUE); - axis^.RunCyclic(); - // one additional cycle to finalize the Homing - axis^.RunCyclic(); - Home := axis^.IsHomed(); - END_METHOD - // {Test} - // METHOD PUBLIC Test_MoveAbsolut_on_a_not_homed_axis_which_results_in_an_error - // VAR_TEMP - // isHomed : BOOL; - // END_VAR - // THIS.Setup(); - // _axis.MoveAbsolute(velocity := 100.0, position := LINT#100); - // _axis.RunCyclic(); - // Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - // Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Error); - // Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - // END_METHOD - // {Test} - // METHOD PUBLIC Test_MoveAbsolut_on_a_homed_axis - // VAR_TEMP - // isHomed : BOOL; - // END_VAR - // THIS.Setup(); - // isHomed := THIS.Home(axis := REF(_axis), refSwitch := REF(_refSwitch)); - // Equal(expected := TRUE, actual := isHomed); - // Equal(expected := FALSE, actual := _fwd.IsOn()); - // Equal(expected := FALSE, actual := _rvs.IsOn()); - // // start Axis to move to position 100 - // _axis.MoveAbsolute(velocity := 100.0, position := LINT#100); - // _axis.RunCyclic(); - // Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - // Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Error); - // Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - // Equal(expected := TRUE, actual := _fwd.IsOn()); - // Equal(expected := FALSE, actual := _rvs.IsOn()); - // // Axis is at position 99 - // _encoder.SetValue(value := LINT#99); - // _axis.RunCyclic(); - // Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - // // test axis in position - // _encoder.SetValue(value := LINT#100); - // _axis.RunCyclic(); - // _axis.RunCyclic(); - // Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - // Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - // Equal(expected := FALSE, actual := _fwd.IsOn()); - // Equal(expected := FALSE, actual := _rvs.IsOn()); // test axis in position - done after one cycle is false - // _encoder.SetValue(value := LINT#100); - // _axis.RunCyclic(); - // Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - // Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - // END_METHOD - {Test} - METHOD PUBLIC Move_Absolut_on_a_axis_which_is_already_inPos - VAR_TEMP - isHomed : BOOL; - END_VAR - THIS.Setup(); - isHomed := THIS.Home(axis := REF(_axis), refSwitch := REF(_refSwitch)); - Equal(expected := TRUE, actual := isHomed); - Equal(expected := FALSE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - // start Axis to move to position 100 - _encoder.SetValue(value := LINT#100); - _axis.MoveAbsolute(velocity := 100.0, position := LINT#100); - _axis.RunCyclic(); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Error); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - Equal(expected := FALSE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - END_METHOD - END_CLASS - -END_NAMESPACE diff --git a/test/TestMoveVelocity.st b/test/TestMoveVelocity.st deleted file mode 100644 index 86a3ecd..0000000 --- a/test/TestMoveVelocity.st +++ /dev/null @@ -1,56 +0,0 @@ -USING Simatic.Ax.IO.Output; -USING Simatic.Ax.IO.Input; -USING Simatic.Ax.axftcmlib; -USING AxUnit.Assert; - -// USING Simatic.Ax.SimpleControlModules; -NAMESPACE Simatic.Ax.Library - - {TestFixture} - CLASS TestMoveVelocity - VAR PROTECTED - _axis : Axis; - _refSwitch : BinSignal; - _motor : MotorFT; - _fwd : BinOutput; - _rvs : BinOutput; - _encoder : Simatic.Ax.SimpleControlModules.EncoderAB; - END_VAR - METHOD PUBLIC Setup - _motor.Forward := _fwd; - _motor.Reverse := _rvs; - _axis.Motor := _motor; - _axis.Encoder := _encoder; - _axis.ReferenceSwitch := _refSwitch; - END_METHOD - {Test} - METHOD PUBLIC MotorForward_IsOn_When_MoveVelocityIsCalled_With_Direction_Forward - THIS.Setup(); - _axis.MoveVelocity(direction := Direction#Forward); - _axis.RunCyclic(); - Equal(expected := TRUE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - END_METHOD - {Test} - METHOD PUBLIC MotorReverse_IsOn_When_MoveVelocityIsCalled_With_Direction_Reverse - THIS.Setup(); - _axis.MoveVelocity(direction := Direction#Reverse); - _axis.RunCyclic(); - Equal(expected := FALSE, actual := _fwd.IsOn()); - Equal(expected := TRUE, actual := _rvs.IsOn()); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Busy); - END_METHOD - {Test} - METHOD PUBLIC A_Moving_AxisStops_OnHalt; - THIS.MotorForward_IsOn_When_MoveVelocityIsCalled_With_Direction_Forward(); - _axis.Halt(); - Equal(expected := FALSE, actual := _fwd.IsOn()); - Equal(expected := FALSE, actual := _rvs.IsOn()); - Equal(expected := TRUE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - _axis.RunCyclic(); - Equal(expected := FALSE, actual := _axis.GetPlcOpenState() = PlcOpenState#Done); - END_METHOD - END_CLASS - -END_NAMESPACE