Post by rmaas on Strange Behavior on Raspberry Pi
CODESYS Forge
talk
(Post)
Hello, what you are seeing is not strange behavior. The problem is that everyting is happening in the same program cycle. After the variable Stepnumber is changed from 10 to 20 for example then you want the program to wait with the next EQ until the next program cycle. Else every EQ will be be true because in every line the variable Stepnumber is increased. When the program arrives (still in the same cycle) at the line with the timer, the Stepnumber has been increased to 30 in the meantime and the timer will allway be ON because even though the variable is written to 10 in this line in the next cycle it starts with 10 and will be 30 again before reaching the timer in line 8. Not very good at explaining stuff but i hope you get the problem. See screenshot below for an example of one way you could solve this...
Last updated: 2024-06-18
Post by svenkaro on Codesyscontrol.service stoppt nach 30s
CODESYS Forge
talk
(Post)
Wie Du schon vermutet hast, es meint, die Hardware/Firmware sei nicht kompatibel ... ooops... this runtime was built for RASPBERRYPI. Hardware version or firmware version not supported! (-18, 0x00000BB8, 0xFFFFFFFB) Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: ARM Model name: Cortex-A72 Model: 3 Thread(s) per core: 1 Core(s) per cluster: 4 Socket(s): - Cluster(s): 1 Stepping: r0p3 CPU(s) scaling MHz: 40% CPU max MHz: 1500.0000 CPU min MHz: 600.0000 BogoMIPS: 108.00 Flags: fp asimd evtstrm crc32 cpuid Caches (sum of all): L1d: 128 KiB (4 instances) L1i: 192 KiB (4 instances) L2: 1 MiB (1 instance) Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Retbleed: Not affected Spec rstack overflow: Not affected Spec store bypass: Vulnerable Spectre v1: Mitigation; __user pointer sanitization Spectre v2: Vulnerable Srbds: Not affected Tsx async abort: Not affected Allerdings habe ich schon reichlich Firmware versionen getestet.
Last updated: 2024-06-21
Post by timvh on Toradex and CODESYS and licensing
CODESYS Forge
talk
(Post)
For the Virtual Control you need to use a "Network license". The Virtual Control has parameters of which one is the reference to the license server. This can be the device itself, but you need to activate the license on the host system (not in the container). For this, CODESYS has a Network License server with WBM (web based management). See for the Network License configuration: https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_license_controller_linux.html If it is only for evaluation, I would advise to use a CODESYS (USB) key and activate the license on the key. Then you still have to install the CODESYS Network License server on the host, but you don't have to activate the license as soft license on the device. The benefit is that you can easily move your license to another device when needed. Off course your device must have a free USB port available to be able to do this.
Last updated: 2025-10-20
Post by derpaul on Official MQTT-Client: MAX_RECEIVE_BUFFER_SIZE_EXCEEDED
CODESYS Forge
talk
(Post)
Here is the output Codesyscontrol.log ;**************************************************************** ;<loggername>/tmp/codesyscontrol.log</loggername> ;<logoptions> ; <enable>1</enable> ; <type>normal</type> ; <timestamp>rtc</timestamp> ; <deactivatable>0</deactivatable> ; <dump>always</dump> ; <filter>0x0000000f<filter> ; <maxentries>1000</maxentries> ; <maxfiles>1</maxfiles> ; <maxfilesize>1000000</maxfilesize> ;</logoptions> ;<entries> ;Timestamp, CmpId, ClassId, ErrorId, InfoId, InfoText ;ClassId: LOG_INFO =1 ;ClassId: LOG_WARNING =2 ;ClassId: LOG_ERROR =4 ;ClassId: LOG_EXCEPTION =8 ;ClassId: LOG_DEBUG =16 ;ClassId: LOG_PRINTF =32 ;ClassId: LOG_COM =64 ;</entries> ;**************************************************************** 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <logoptions> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <bEnable>1</bEnable> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <type>normal</type> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <timestamp>rtc</timestamp> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <disableable>0</disableable> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <Filter>0x0000000f</Filter> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <MaxEntries>1000</MaxEntries> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <MaxFiles>1</MaxFiles> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, <MaxFileSize>1000000</MaxFileSize> 2023-09-12T21:11:41Z, 0x00000013, 1, 0, 0, </logoptions> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 4, CODESYS Control for PFC200 SL 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 4, OS=Linux, CPU=ARM, Arch=32Bit, Coding=C 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 6, <version>3.5.16.40</version> <builddate>Mar 2 2021</builddate> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 5, Copyright (c) 3S - Smart Software Solutions GmbH 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>CM</cmp>, <id>0x00000001</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>CmpMemPool</cmp>, <id>0x0000001e</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>CmpLog</cmp>, <id>0x00000013</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>CmpSettings</cmp>, <id>0x0000001a</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysFile</cmp>, <id>0x00000104</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysCom</cmp>, <id>0x00000100</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysCpuHandling</cmp>, <id>0x00000101</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysDir</cmp>, <id>0x0000011b</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysEthernet</cmp>, <id>0x0000011c</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysEvent</cmp>, <id>0x00000102</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysExcept</cmp>, <id>0x00000103</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysInternalLib</cmp>, <id>0x00000107</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysMem</cmp>, <id>0x00000108</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysModule</cmp>, <id>0x00000109</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysMsgQ</cmp>, <id>0x0000010a</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysMutex</cmp>, <id>0x0000013a</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysOut</cmp>, <id>0x0000010b</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysProcess</cmp>, <id>0x0000010e</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysSem</cmp>, <id>0x0000010f</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysSemCount</cmp>, <id>0x00000139</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysSemProcess</cmp>, <id>0x00000119</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysShm</cmp>, <id>0x00000110</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysSocket</cmp>, <id>0x00000111</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysTarget</cmp>, <id>0x00000112</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysTask</cmp>, <id>0x00000114</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysTime</cmp>, <id>0x00000115</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysTimeRtc</cmp>, <id>0x00000127</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, System: <cmp>SysTimer</cmp>, <id>0x00000116</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpAlarmManager</cmp>, <id>0x0000007c</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpApp</cmp>, <id>0x00000002</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpAppBP</cmp>, <id>0x00000073</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpAppForce</cmp>, <id>0x00000074</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpAsyncMgr</cmp>, <id>0x0000005f</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpBinTagUtil</cmp>, <id>0x00000004</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpBinTagUtilIec</cmp>, <id>0x0000005c</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpBitmapPool</cmp>, <id>0x00000050</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpBlkDrvTcp</cmp>, <id>0x00000030</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpBlkDrvUdp</cmp>, <id>0x00000007</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAAAsyncMan</cmp>, <id>0x00004007</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAABehaviourModel</cmp>, <id>0x00004015</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAACallback</cmp>, <id>0x00004001</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAACanL2</cmp>, <id>0x00004004</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAADTUtil</cmp>, <id>0x00004013</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAAFile</cmp>, <id>0x00004008</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAAMemBlockMan</cmp>, <id>0x00004003</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAANetBaseServices</cmp>, <id>0x00004018</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAARealTimeClock</cmp>, <id>0x00004014</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAASdoClient</cmp>, <id>0x00004011</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAASdoServer</cmp>, <id>0x00004017</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAASegBufferMan</cmp>, <id>0x00004019</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAASerialCom</cmp>, <id>0x00004012</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAAStorage</cmp>, <id>0x0000007e</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAATick</cmp>, <id>0x00004009</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAATickUtil</cmp>, <id>0x00004010</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAATimer</cmp>, <id>0x00004016</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCAATypes</cmp>, <id>0x00004006</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpChannelClient</cmp>, <id>0x00000008</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpChannelClientIec</cmp>, <id>0x0000005d</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpChannelMgr</cmp>, <id>0x00000009</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpChannelServer</cmp>, <id>0x0000000a</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCharDevice</cmp>, <id>0x00000300</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpChecksum</cmp>, <id>0x0000000b</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCodeMeter</cmp>, <id>0x0000007a</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCommunicationLib</cmp>, <id>0x0000000c</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCoreDump</cmp>, <id>0x00000083</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpCryptMD5</cmp>, <id>0x0000006a</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpDevice</cmp>, <id>0x0000000e</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpDynamicText</cmp>, <id>0x00000051</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpEL6751CanDrv</cmp>, <id>0x00005f0b</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpEventMgr</cmp>, <id>0x0000005b</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpFileTransfer</cmp>, <id>0x0000005e</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpIecStringUtils</cmp>, <id>0x0000007f</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpIecTask</cmp>, <id>0x00000011</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpIecVarAccess</cmp>, <id>0x00000060</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpIoDrvIec</cmp>, <id>0x0000005a</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpIoMgr</cmp>, <id>0x00000012</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpKbus</cmp>, <id>0x0000008a</id> <ver>4.0.1.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpKnxStack</cmp>, <id>0x0000004d</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpMonitor2</cmp>, <id>0x00000032</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpNameServiceClient</cmp>, <id>0x00000015</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpNameServiceClientIec</cmp>, <id>0x0000011d</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpNameServiceServer</cmp>, <id>0x00000016</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpOPCUAClient</cmp>, <id>0x00000096</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpOPCUAProviderIecVarAccess</cmp>, <id>0x00000126</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpOPCUAServer</cmp>, <id>0x00000124</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpOPCUAStack</cmp>, <id>0x0000008d</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpOpenSSL</cmp>, <id>0x00000033</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpPfcx00</cmp>, <id>0x00000088</id> <ver>4.0.1.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpPlcShell</cmp>, <id>0x00000128</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpRedundancy</cmp>, <id>0x00000129</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpRedundancyConnectionIP</cmp>, <id>0x0000ff03</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpRetain</cmp>, <id>0x00000017</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpRouter</cmp>, <id>0x00000018</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpSchedule</cmp>, <id>0x00000019</id> <ver>3.5.16.30</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpSecureChannel</cmp>, <id>0x00000090</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpSecurityManager</cmp>, <id>0x0000008e</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpSessionInformation</cmp>, <id>0x00000097</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpSocketCanDrv</cmp>, <id>0x00005f0d</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpSrv</cmp>, <id>0x0000001c</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpTraceMgr</cmp>, <id>0x00000070</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpUserDBFile</cmp>, <id>0x00000098</id> <ver>3.5.16.20</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpUserGroupsDBFile</cmp>, <id>0x00000099</id> <ver>3.5.16.20</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpUserMgr</cmp>, <id>0x00000061</id> <ver>3.5.16.40</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpUserObjectsDBFile</cmp>, <id>0x0000009c</id> <ver>3.5.16.20</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpVisuHandler</cmp>, <id>0x00000054</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpVisuServer</cmp>, <id>0x00000057</id> <ver>3.5.16.10</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpWebServer</cmp>, <id>0x00000071</id> <ver>3.5.16.0</ver> 2023-09-12T21:11:41Z, 0x00000001, 1, 0, 10, <cmp>CmpWebServerHandlerV3</cmp>, <id>0x00000072</id> <ver>3.5.16.0</ver> 2023-09-12T21:12:16Z, 0x00000007, 1, 0, 6, Network interface: <ipaddress>192.168.1.17</ipaddress>, subnetmask <subnetmask>255.255.255.0</subnetmask> 2023-09-12T21:12:16Z, 0x00000018, 1, 0, 4, Network interface <interface>ether 4</interface> at router <instance>0</instance> registered 2023-09-12T21:12:16Z, 0x00000009, 1, 0, 2, Running as network server 2023-09-12T21:12:16Z, 0x00000009, 1, 0, 1, Running as network client 2023-09-12T21:12:16Z, 0x0000000a, 1, 0, 0, <NumOfChannels>4</NumOfChannels> channels available, each of the size <BufferSize>100000</BufferSize> Bytes 2023-09-12T21:12:16Z, 0x00000129, 1, 0, 0, Debug Messages not activated 2023-09-12T21:12:16Z, 0x0000ff03, 1, 0, 0, Read connection settings... 2023-09-12T21:12:16Z, 0x00000030, 1, 0, 6, Local network address: <ipaddress>192.168.1.17</ipaddress> 2023-09-12T21:12:16Z, 0x00000018, 1, 0, 4, Network interface <interface>BlkDrvTcp</interface> at router <instance>2</instance> registered 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, No certificate for the OPC UA server available. 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, Security policy allows plain text communication. Secure communication is deactivated. 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, ************************************************************** 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, OPC UA Server Started: 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, Hostname: PFC200, Port: 4840 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, URL: opc.tcp://PFC200:4840 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, Loopbackadapter activated. 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, All available networkadapters are used. 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, ************************************************************** 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, Provider CODESYS_DefaultProvider with Version 0x3051028 registerd at the OPC UA server. 2023-09-12T21:12:16Z, 0x00000124, 1, 0, 0, Provider CmpOPCUAProviderIecVarAccess with Version 0x3051028 registerd at the OPC UA server. 2023-09-12T21:12:17Z, 0x00000126, 1, 0, 0, Valid license found for OPC UA IecVarAccess provider. 2023-09-12T21:12:17Z, 0x00000002, 1, 0, 7, Retains matched to bootproject of application [<app>Application</app>] 2023-09-12T21:12:17Z, 0x00000002, 1, 0, 6, Bootproject of application [<app>Application</app>] loaded 2023-09-12T21:12:17Z, 0x00000018, 1, 0, 1, Setting router <instance>0</instance> address to <address>(0011)</address> 2023-09-12T21:12:17Z, 0x00000018, 1, 16, 8, Network interface for mainnet=<mainnet>ether 5</mainnet> not found 2023-09-12T21:12:17Z, 0x00000018, 1, 0, 1, Setting router <instance>1</instance> address to <address>(0000)</address> 2023-09-12T21:12:17Z, 0x00000018, 1, 0, 1, Setting router <instance>2</instance> address to <address>(2ddc:c0a8:0111)</address> 2023-09-12T21:12:17Z, 0x00000002, 1, 0, 10, Application [<app>Application</app>] started 2023-09-12T21:12:17Z, 0x00000001, 1, 0, 34, CODESYS Control ready 2023-09-12T21:13:37Z, 0x00000001, 1, 0, 0, runtime licensed 2023-09-12T21:17:17Z, 0x00000002, 1, 0, 2, Application [<app>Application</app>] loaded via [OnlineChange] 2023-09-13T01:38:17Z, 0x00000009, 1, 418, 0, Channel timeout (<curtime>16012264</curtime>, <lasttime>15982259</lasttime>) 2023-09-13T01:38:17Z, 0x00000009, 1, 418, 0, Closing connection to <address>0329:032e</address> 2023-09-23T14:46:00Z, 0x00000002, 1, 0, 2, Application [<app>Application</app>] loaded via [OnlineChange] 2023-09-23T14:48:57Z, 0x00000002, 1, 0, 2, Application [<app>Application</app>] loaded via [OnlineChange]
Last updated: 2023-09-27
Post by frank1001 on Codesys läuft nicht hoch
CODESYS Forge
talk
(Post)
Bin Neuling bei Codesys. Habe Codesys 64 Bit installiert (3.5.1) Nach dem Starten geht nur ein EIngabefenster auf mit folgenden Inhalt. Weiter passiert nichts. Was kann ich machen ? //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// _/_/_/_/ _/_/_/_/ _/_/_/_/_/ _/_/_/_/_/_/ _/_/_/_/_/ _/_/ _/_/ _/_/_/_/_/ _/ _/_/_/_/_/_/ _/_/_/_/_/_/ _/_/_/_/_/_/ _/_/_/_/_/_/ _/_/_/_/_/_/ _/_/ _/_/ _/_/_/_/_/_/ _/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/ // // // // // //// //// //// //// /////// // // // // // // // // // // ///// ////// ////// ////// ////// ////// // ////// /// //// //// ///// ////// ///// // ///// _/ //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>CM</cmp>, <id>0x00000001</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>CmpMemPool</cmp>, <id>0x0000001e</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>CmpLog</cmp>, <id>0x00000013</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>CmpSettings</cmp>, <id>0x0000001a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysFile</cmp>, <id>0x00000104</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>CmpMemGC</cmp>, <id>0x0000001f</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysCom</cmp>, <id>0x00000100</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysCpuBreakpoints</cmp>, <id>0x00000305</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysCpuHandling</cmp>, <id>0x00000101</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysCrypto</cmp>, <id>0x00000141</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysDir</cmp>, <id>0x0000011b</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysEthernet</cmp>, <id>0x0000011c</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysEvent</cmp>, <id>0x00000102</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysExcept</cmp>, <id>0x00000103</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysFileStream</cmp>, <id>0x00000120</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysGraphicGDIPlus</cmp>, <id>0x0000012a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysInt</cmp>, <id>0x00000106</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysInternalLib</cmp>, <id>0x00000107</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysMem</cmp>, <id>0x00000108</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysModule</cmp>, <id>0x00000109</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysMsgQ</cmp>, <id>0x0000010a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysMutex</cmp>, <id>0x0000013a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysNativeCommonControls</cmp>, <id>0x00000138</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysNativeControl</cmp>, <id>0x0000012f</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysOut</cmp>, <id>0x0000010b</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysPci</cmp>, <id>0x0000010c</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysPort</cmp>, <id>0x0000010d</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysProcess</cmp>, <id>0x0000010e</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysSem</cmp>, <id>0x0000010f</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysSemCount</cmp>, <id>0x00000139</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysSemProcess</cmp>, <id>0x00000119</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysShm</cmp>, <id>0x00000110</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysSocket</cmp>, <id>0x00000111</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysTarget</cmp>, <id>0x00000112</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysTask</cmp>, <id>0x00000114</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysTime</cmp>, <id>0x00000115</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysTimeRtc</cmp>, <id>0x00000127</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysTimer</cmp>, <id>0x00000116</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysWindow</cmp>, <id>0x00000117</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System: <cmp>SysWindowFileDialog</cmp>, <id>0x0000011a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System|Dynamic: <cmp>SysTargetSoftMotion</cmp>, <id>0x00000112</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System|Dynamic: <cmp>SysCpuMultiCore</cmp>, <id>0x0000013d</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= System|Dynamic: <cmp>SysReadWriteLock</cmp>, <id>0x0000013e</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpAlarmManager</cmp>, <id>0x0000007c</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpApp</cmp>, <id>0x00000002</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpAppBP</cmp>, <id>0x00000073</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpAppForce</cmp>, <id>0x00000074</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpAsyncMgr</cmp>, <id>0x0000005f</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpAuditLog</cmp>, <id>0x000000a1</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpBinTagUtil</cmp>, <id>0x00000004</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpBinTagUtilIec</cmp>, <id>0x0000005c</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpBitmapPool</cmp>, <id>0x00000050</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpBlkDrvCom</cmp>, <id>0x00000006</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpBlkDrvShm</cmp>, <id>0x00000068</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpBlkDrvTcp</cmp>, <id>0x00000030</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpBlkDrvUdp</cmp>, <id>0x00000007</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAAAsyncMan</cmp>, <id>0x00004007</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAABehaviourModel</cmp>, <id>0x00004015</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAACallback</cmp>, <id>0x00004001</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAACanL2</cmp>, <id>0x00004004</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAADTUtil</cmp>, <id>0x00004013</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAAFile</cmp>, <id>0x00004008</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAAMemBlockMan</cmp>, <id>0x00004003</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAANetBaseServices</cmp>, <id>0x00004018</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAARealTimeClock</cmp>, <id>0x00004014</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAASdoClient</cmp>, <id>0x00004011</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAASdoServer</cmp>, <id>0x00004017</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAASegBufferMan</cmp>, <id>0x00004019</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAASerialCom</cmp>, <id>0x00004012</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAAStorage</cmp>, <id>0x0000007e</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAATick</cmp>, <id>0x00004009</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAATickUtil</cmp>, <id>0x00004010</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAATimer</cmp>, <id>0x00004016</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCAATypes</cmp>, <id>0x00004006</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpChannelClient</cmp>, <id>0x00000008</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpChannelClientIec</cmp>, <id>0x0000005d</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpChannelMgr</cmp>, <id>0x00000009</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpChannelServer</cmp>, <id>0x0000000a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpChecksum</cmp>, <id>0x0000000b</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCodeMeter</cmp>, <id>0x0000007a</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCommunicationLib</cmp>, <id>0x0000000c</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCoreDump</cmp>, <id>0x00000083</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpCryptMD5</cmp>, <id>0x0000006a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpDevice</cmp>, <id>0x0000000e</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpDynamicText</cmp>, <id>0x00000051</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpEventMgr</cmp>, <id>0x0000005b</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpFileTransfer</cmp>, <id>0x0000005e</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpIecStringUtils</cmp>, <id>0x0000007f</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpIecTask</cmp>, <id>0x00000011</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpIecVarAccess</cmp>, <id>0x00000060</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpIoDrvC</cmp>, <id>0x00000066</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpIoDrvIec</cmp>, <id>0x0000005a</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpIoMgr</cmp>, <id>0x00000012</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpIpc</cmp>, <id>0x0000001d</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpMonitor</cmp>, <id>0x00000014</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpMonitor2</cmp>, <id>0x00000032</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpNameServiceClient</cmp>, <id>0x00000015</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpNameServiceClientIec</cmp>, <id>0x0000011d</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpNameServiceServer</cmp>, <id>0x00000016</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpOPCUAClient</cmp>, <id>0x00000096</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpOPCUAProviderIecVarAccess</cmp>, <id>0x00000126</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpOPCUAServer</cmp>, <id>0x00000124</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpOPCUAStack</cmp>, <id>0x0000008d</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpObjectMgr</cmp>, <id>0x00000080</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpOpenSSL</cmp>, <id>0x00000033</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpPlcShell</cmp>, <id>0x00000128</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpRedundancy</cmp>, <id>0x00000129</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpRedundancyConnectionIP</cmp>, <id>0x0000ff03</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpRetain</cmp>, <id>0x00000017</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpRouter</cmp>, <id>0x00000018</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpSchedule</cmp>, <id>0x00000019</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpSecureChannel</cmp>, <id>0x00000090</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpSecurityManager</cmp>, <id>0x0000008e</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpSercos3Master</cmp>, <id>0x0000004c</id> <ver>3.1.2.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpSessionInformation</cmp>, <id>0x00000097</id> <ver>3.5.19.20</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpSrv</cmp>, <id>0x0000001c</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpSupervisor</cmp>, <id>0x0000008f</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpTraceMgr</cmp>, <id>0x00000070</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpUserDBFile</cmp>, <id>0x00000098</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpUserGroupsDBFile</cmp>, <id>0x00000099</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpUserMgr</cmp>, <id>0x00000061</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpUserObjectsDBFile</cmp>, <id>0x0000009c</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpVisuClientControllerHost</cmp>, <id>0x00000132</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpVisuHandler</cmp>, <id>0x00000054</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpVisuServer</cmp>, <id>0x00000057</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= <cmp>CmpXMLParser</cmp>, <id>0x00000058</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= Dynamic: <cmp>CmpTargetVisuStub</cmp>, <id>0x00000053</id> <ver>3.5.19.0</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= Dynamic: <cmp>CmpWebServer</cmp>, <id>0x00000071</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.025Z: Cmp=CM, Class=1, Error=0, Info=10, pszInfo= Dynamic: <cmp>CmpWebServerHandlerV3</cmp>, <id>0x00000072</id> <ver>3.5.19.10</ver> 2023-09-19T08:02:04.045Z: Cmp=SysCpuMultiCore, Class=1, Error=0, Info=4, pszInfo= MultiCore support: [activated], all cores are used 2023-09-19T08:02:04.045Z: Cmp=SysCpuMultiCore, Class=1, Error=0, Info=4, pszInfo= Number of available cores: 8 2023-09-19T08:02:04.076Z: Cmp=CmpBlkDrvUdp, Class=1, Error=0, Info=6, pszInfo= Network interface: <ipaddress>192.168.1.167</ipaddress>, subnetmask <subnetmask>255.255.255.0</subnetmask> 2023-09-19T08:02:04.076Z: Cmp=CmpRouter, Class=1, Error=0, Info=4, pszInfo= Network interface <interface>ether 0</interface> at router <instance>0</instance> registered 2023-09-19T08:02:04.076Z: Cmp=CmpBlkDrvUdp, Class=1, Error=0, Info=6, pszInfo= Network interface: <ipaddress>192.168.56.1</ipaddress>, subnetmask <subnetmask>255.255.255.0</subnetmask> 2023-09-19T08:02:04.076Z: Cmp=CmpRouter, Class=1, Error=0, Info=4, pszInfo= Network interface <interface>ether 3</interface> at router <instance>1</instance> registered 2023-09-19T08:02:04.076Z: Cmp=CmpChannelMgr, Class=1, Error=0, Info=2, pszInfo= Running as network server 2023-09-19T08:02:04.076Z: Cmp=CmpChannelMgr, Class=1, Error=0, Info=1, pszInfo= Running as network client 2023-09-19T08:02:04.077Z: Cmp=CmpChannelServer, Class=1, Error=0, Info=0, pszInfo= <numofchannels>4</numofchannels> channels available, each of the size <buffersize>100000</buffersize> Bytes 2023-09-19T08:02:04.265Z: Cmp=CmpRedundancy, Class=1, Error=0, Info=0, pszInfo= Debug Messages not activated 2023-09-19T08:02:04.266Z: Cmp=CmpRedundancyConnectionIP, Class=1, Error=0, Info=0, pszInfo= Read connection settings... 2023-09-19T08:02:05.456Z: Cmp=CmpRouter, Class=1, Error=0, Info=4, pszInfo= Network interface <interface>BlkDrvShm</interface> at router <instance>2</instance> registered 2023-09-19T08:02:05.456Z: Cmp=CmpBlkDrvShm, Class=1, Error=0, Info=9, pszInfo= Local address (BlkDrvShm) set to 1 2023-09-19T08:02:05.463Z: Cmp=CmpBlkDrvTcp, Class=1, Error=0, Info=6, pszInfo= Local network address: <ipaddress>192.168.56.1</ipaddress> 2023-09-19T08:02:05.464Z: Cmp=CmpRouter, Class=1, Error=0, Info=4, pszInfo= Network interface <interface>BlkDrvTcp</interface> at router <instance>3</instance> registered 2023-09-19T08:02:05.507Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= No certificate for the OPC UA server available. 2023-09-19T08:02:05.507Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Security policy allows plain text communication. Secure communication is deactivated. 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= ********** 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= OPC UA Server Started: 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Hostname: SIEMENS, Port: 4840 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= URL: opc.tcp://SIEMENS:4840 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Loopbackadapter activated. 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= All available networkadapters are used. 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Multithreading activated. 7 workers used. 2023-09-19T08:02:05.508Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= ************ 2023-09-19T08:02:05.513Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Provider 'CODESYS_DefaultProvider' (version 0x3051300) registered at the OPC UA server. 2023-09-19T08:02:05.522Z: Cmp=CM, Class=1, Error=0, Info=0, pszInfo= ========================================================================= 2023-09-19T08:02:05.522Z: Cmp=CM, Class=1, Error=0, Info=4, pszInfo= CODESYS SoftMotion Win V3 x64 2023-09-19T08:02:05.522Z: Cmp=CM, Class=1, Error=0, Info=4, pszInfo= OS=Windows, CPU=x86, Arch=64Bit, Coding=C 2023-09-19T08:02:05.522Z: Cmp=CM, Class=1, Error=0, Info=6, pszInfo= <version>3.5.19.20</version> <builddate>Aug 1 2023</builddate> 2023-09-19T08:02:05.522Z: Cmp=CM, Class=1, Error=0, Info=5, pszInfo= Copyright CODESYS Development GmbH 2023-09-19T08:02:05.522Z: Cmp=CM, Class=1, Error=0, Info=0, pszInfo= ========================================================================= 2023-09-19T08:02:05.529Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Provider 'AddressSpaceFragment Provider' (version 0x3051314) registered at the OPC UA server. 2023-09-19T08:02:05.530Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Provider 'OPC UA for IEC-61131-3' (version 0x3051314) registered at the OPC UA server. 2023-09-19T08:02:05.530Z: Cmp=CmpOPCUAServer, Class=1, Error=0, Info=0, pszInfo= Provider 'AlarmManager' (version 0x3051314) registered at the OPC UA server. 2023-09-19T08:02:05.606Z: Cmp=CmpRouter, Class=1, Error=0, Info=1, pszInfo= Setting router <instance>0</instance> address to (00a7) 2023-09-19T08:02:05.606Z: Cmp=CmpRouter, Class=1, Error=0, Info=1, pszInfo= Setting router <instance>1</instance> address to (0001) 2023-09-19T08:02:05.606Z: Cmp=CmpRouter, Class=1, Error=0, Info=1, pszInfo= Setting router <instance>2</instance> address to (0001) 2023-09-19T08:02:05.606Z: Cmp=CmpRouter, Class=1, Error=0, Info=1, pszInfo= Setting router <instance>3</instance> address to (2ddc:c0a8:3801) 2023-09-19T08:02:05.611Z: Cmp=CM, Class=1, Error=0, Info=34, pszInfo= CODESYS Control ready 2023-09-19T08:02:05.796Z: Cmp=CM, Class=2, Error=0, Info=0, pszInfo=!!!! no runtime license - running in demo mode(~2 hours)
Last updated: 2023-09-19
Post by darko7417 on When running as a service, CodesysControl doesn't write log files to the disk (and other CmpLog related issuess)
CODESYS Forge
talk
(Post)
I run CODESYS runtime as a service and use CmpLog (the LogAdd2 function) to log different events to a file. I have done this many times before on various projects and hardware, and it works fine. On this particular system, I have CODESYS 3.5.20.40 running on a Windows 11 PC. The CODESYSControlService autostarts (with Local System credentials, the default), and the application runs fine. However, the configuration file is not read (or at least not the one that should be, or not the CmpLog section), and log files are not written to the disk. I would be thankful if anyone knew why this is happening and how to fix it. A note to CODESYS people: you must provide more information on the codesys configuration file, CODESYSControlService.exe and other major components and system behaviour. You created the service and various features (i.e. logging), but haven't explained how they work, which, in my opinion, is below standard for industrial automation software. These are my observations: - When running as a service, the config file is not read (none of them), or at least the CmpLog section is not read. I checked the log using Codesys IDE, and the CmpLog parameters are not the ones I have set in any of the config files. Which CmpLog config values does the service use, and where does it read them from? I have no idea, but it's not the config files. Here are the codesys config files I located on the PC's disk: o C:\Program Files (x86)\CODESYS 3.5.20.40\GatewayPLC\CODESYSControl.cfg (only 2 lines in this config) o C:\Program Files (x86)\CODESYS 3.5.20.40\GatewayPLC\AppDataFiles\CODESYSControlWinV3\CODESYSControl.cfg o C:\Users\SRV\AppData\Roaming\CODESYS\CODESYSControlWinV3\C4DBB537\CODESYSControl.cfg o C:\Program Files (x86)\CODESYS 3.5.20.40\GatewayPLC\tempCFG\CODESYSControl.cfg - When I run codesys as an app (e.g. by clicking the icon), this config file is read C:\Users\SRV\AppData\Roaming\CODESYS\CODESYSControlWinV3\C4DBB537\CODESYSControl.cfg and log files are written ok. The icon target is "C:\Program Files (x86)\CODESYS 3.5.20.40\GatewayPLC\CODESYSControlService.exe" -d o the -d option, I think, starts a cmd-like window showing service debug output (the output shown in log in the IDE) o the -i option, again I think, means install the service - I tried adding -d to service start parameters in the registry, but it started only once and after that it refused to start. Knowing what -d does and which other options are available would be great (e.g. can I make the service read a different config file). - Syslog UDP logging works fine in any case. - These are my CmpLog parameters ~~~ [CmpLog] Logger.0.Name=PlcLog3 Logger.0.Filter=0xFFFFFFFF Logger.0.Enable=1 Logger.0.MaxEntries=10003 Logger.0.MaxFileSize=50003 Logger.0.MaxFiles=33 Logger.0.Backend.0.ClassId=0x0000010B ;sends logger messages to SysOut Logger.0.Backend.1.ClassId=0x00000104 ;writes logger messages in a file Logger.0.Backend.2.ClassId=0x00000135 ;sends logger messages as UDP syslog Logger.0.Type=0x314 ;Set the timestamp to RTC ~~~
Last updated: 2025-02-27
Post by francesco86 on Script python for write in a file Project information
CODESYS Forge
talk
(Post)
Dear all, My python script can read a Codesys project and save in file the different POU, but the problem is that I don't able to read the project info from the obj list. Following of this message there is my python script. Can you help my? Best regards Francesco # encoding:utf-8 # We enable the new python 3 print syntax from __future__ import print_function import os import shutil import time import sys from datetime import datetime print("--- Saving files in the project: ---") print("sys.argv: ", len(sys.argv), " elements:") for arg in sys.argv: print(" - ", arg) if (len(sys.argv)>1): folderExportName = sys.argv[1] print(" folderExportName: ", folderExportName) exportPath = sys.argv[2]+ sys.argv[3]+ "\\"+ sys.argv[1] print(" File path: ", exportPath) # git has_repo=False #save_folder=r'E:\Tmp\ControlPlugins\ControlPlugins\Export' save_folder = exportPath if not os.path.exists(save_folder): os.makedirs(save_folder) else: a=os.listdir(save_folder) for f in a: if not f.startswith("."): sub_path= os.path.join(save_folder,f) if os.path.isdir(sub_path): shutil.rmtree(sub_path) else: os.remove(sub_path) elif f==".git": has_repo=True info={} type_dist={ '792f2eb6-721e-4e64-ba20-bc98351056db':'pm', #property method '2db5746d-d284-4425-9f7f-2663a34b0ebc':'dut', #dut 'adb5cb65-8e1d-4a00-b70a-375ea27582f3':'lib', #lib manager 'f89f7675-27f1-46b3-8abb-b7da8e774ffd':'m', #method no ret '8ac092e5-3128-4e26-9e7e-11016c6684f2':'act', #action '6f9dac99-8de1-4efc-8465-68ac443b7d08':'pou', #pou '6654496c-404d-479a-aad2-8551054e5f1e':'itf', #interface '738bea1e-99bb-4f04-90bb-a7a567e74e3a':'', #folder 'ffbfa93a-b94d-45fc-a329-229860183b1d':'gvl', #global var '5a3b8626-d3e9-4f37-98b5-66420063d91e':'prop', #property '2bef0454-1bd3-412a-ac2c-af0f31dbc40f':'tl', #textlist '63784cbb-9ba0-45e6-9d69-babf3f040511':'gtl', #global textlist '225bfe47-7336-4dbc-9419-4105a7c831fa':'dev', #device 'ae1de277-a207-4a28-9efb-456c06bd52f3':'tc', #task configuration 'f8a58466-d7f6-439f-bbb8-d4600e41d099':'m', #method with ret '261bd6e6-249c-4232-bb6f-84c2fbeef430':'gvl', #gvl_Persistent '98a2708a-9b18-4f31-82ed-a1465b24fa2d':'task', #task '085afe48-c5d8-4ea5-ab0d-b35701fa6009':'progInfo'#project information }; def save(text,path,name,tp): if not tp: tp='' else: tp='.'+tp+'.txt' with open(os.path.join(path,name+tp),'w') as f: f.write(text.encode('utf-8')) def print_tree(treeobj, depth, path): global info #record current Path curpath=path isfolder=False t='' #text tp='' #type # get object name name = treeobj.get_name(False) id = treeobj.type.ToString() if id in type_dist: tp = type_dist[treeobj.type.ToString()] #Print all type of objects #print("--Name: ", tp) else: info[id]=name if treeobj.is_device: deviceid = treeobj.get_device_identification() t = 'type='+str(deviceid.type) +'\nid=' +str(deviceid.id) + '\nver='+ str(deviceid.version) if tp == "progInfo": print("-- There is prog info, ", tp) print("-- It has textual declaration: , ", treeobj.has_textual_declaration) print("-- It has textual implementation: , ", treeobj.has_textual_implementation) print("-- It is folder: , ", treeobj.is_folder) print("-- It is children: , ", treeobj.get_children(False)) print("-- It is children len: , ", len(treeobj.get_children(False))) print("-- It is progInfo type: , ", type(treeobj.ScriptProject)) #for child in treeobj.get_children(False): # print_tree(child, depth+1,curpath) try: if treeobj.is_folder : #system.ui.prompt('folder:'+u, PromptChoice.YesNo, PromptResult.Yes) isfolder=true pass except: pass if treeobj.has_textual_declaration : t=t+'(*#-#-#-#-#-#-#-#-#-#---Declaration---#-#-#-#-#-#-#-#-#-#-#-#-#*)\r\n' a=treeobj.textual_declaration t=t+a.text if treeobj.has_textual_implementation: t=t+'(*#-#-#-#-#-#-#-#-#-#---Implementation---#-#-#-#-#-#-#-#-#-#-#-#-#*)\r\n' a=treeobj.textual_implementation t=t+a.text if treeobj.has_textual_declaration and not treeobj.has_textual_implementation: t=t+'(*#-#-#-#-#-#-#-#-#-#---NOT Implementation visible---#-#-#-#-#-#-#-#-#-#-#-#-#*)\r\n' if treeobj.is_task : exports=[treeobj] projects.primary.export_native(exports,os.path.join(curpath,name+'.task')) if treeobj.is_libman: exports=[treeobj] projects.primary.export_native(exports,os.path.join(curpath,name+'.lib')) if treeobj.is_textlist: treeobj.export(os.path.join(curpath,name+'.tl')) children = treeobj.get_children(False) if children or isfolder: if tp: curpath=os.path.join(curpath,name+'.'+tp) else: curpath=os.path.join(curpath,name) if not os.path.exists(curpath): os.makedirs(curpath) if t: save(t,curpath,name,tp) for child in treeobj.get_children(False): print_tree(child, depth+1,curpath) for obj in projects.primary.get_children(): print_tree(obj,0,save_folder) with open(os.path.join(save_folder,'ExportInfo.txt'),'w') as f: now = datetime.now() infTimeExecution = now.strftime("%Y-%m-%d %H:%M:%S") f.write("Export date and time: "+infTimeExecution + "\r\n" + str(info)) print("--- Script finished. ---") #system.ui.info('save ok') projects.primary.close()
Last updated: 2024-04-30
Post by francesco86 on Script python for write in a file Project information
CODESYS Forge
talk
(Post)
Dear all, My python script can read a Codesys project and save in file the different POU, but the problem is that I don't able to read the project info from the obj list. Following of this message there is my python script. Can you help my? Best regards Francesco # encoding:utf-8 # We enable the new python 3 print syntax from __future__ import print_function import os import shutil import time import sys from datetime import datetime print("--- Saving files in the project: ---") print("sys.argv: ", len(sys.argv), " elements:") for arg in sys.argv: print(" - ", arg) if (len(sys.argv)>1): folderExportName = sys.argv[1] print(" folderExportName: ", folderExportName) exportPath = sys.argv[2]+ sys.argv[3]+ "\\"+ sys.argv[1] print(" File path: ", exportPath) # git has_repo=False #save_folder=r'E:\Tmp\ControlPlugins\ControlPlugins\Export' save_folder = exportPath if not os.path.exists(save_folder): os.makedirs(save_folder) else: a=os.listdir(save_folder) for f in a: if not f.startswith("."): sub_path= os.path.join(save_folder,f) if os.path.isdir(sub_path): shutil.rmtree(sub_path) else: os.remove(sub_path) elif f==".git": has_repo=True info={} type_dist={ '792f2eb6-721e-4e64-ba20-bc98351056db':'pm', #property method '2db5746d-d284-4425-9f7f-2663a34b0ebc':'dut', #dut 'adb5cb65-8e1d-4a00-b70a-375ea27582f3':'lib', #lib manager 'f89f7675-27f1-46b3-8abb-b7da8e774ffd':'m', #method no ret '8ac092e5-3128-4e26-9e7e-11016c6684f2':'act', #action '6f9dac99-8de1-4efc-8465-68ac443b7d08':'pou', #pou '6654496c-404d-479a-aad2-8551054e5f1e':'itf', #interface '738bea1e-99bb-4f04-90bb-a7a567e74e3a':'', #folder 'ffbfa93a-b94d-45fc-a329-229860183b1d':'gvl', #global var '5a3b8626-d3e9-4f37-98b5-66420063d91e':'prop', #property '2bef0454-1bd3-412a-ac2c-af0f31dbc40f':'tl', #textlist '63784cbb-9ba0-45e6-9d69-babf3f040511':'gtl', #global textlist '225bfe47-7336-4dbc-9419-4105a7c831fa':'dev', #device 'ae1de277-a207-4a28-9efb-456c06bd52f3':'tc', #task configuration 'f8a58466-d7f6-439f-bbb8-d4600e41d099':'m', #method with ret '261bd6e6-249c-4232-bb6f-84c2fbeef430':'gvl', #gvl_Persistent '98a2708a-9b18-4f31-82ed-a1465b24fa2d':'task', #task '085afe48-c5d8-4ea5-ab0d-b35701fa6009':'progInfo'#project information }; def save(text,path,name,tp): if not tp: tp='' else: tp='.'+tp+'.txt' with open(os.path.join(path,name+tp),'w') as f: f.write(text.encode('utf-8')) def print_tree(treeobj, depth, path): global info #record current Path curpath=path isfolder=False t='' #text tp='' #type # get object name name = treeobj.get_name(False) id = treeobj.type.ToString() if id in type_dist: tp = type_dist[treeobj.type.ToString()] #Print all type of objects #print("--Name: ", tp) else: info[id]=name if treeobj.is_device: deviceid = treeobj.get_device_identification() t = 'type='+str(deviceid.type) +'\nid=' +str(deviceid.id) + '\nver='+ str(deviceid.version) if tp == "progInfo": print("-- There is prog info, ", tp) print("-- It has textual declaration: , ", treeobj.has_textual_declaration) print("-- It has textual implementation: , ", treeobj.has_textual_implementation) print("-- It is folder: , ", treeobj.is_folder) print("-- It is children: , ", treeobj.get_children(False)) print("-- It is children len: , ", len(treeobj.get_children(False))) print("-- It is progInfo type: , ", type(treeobj.ScriptProject)) #for child in treeobj.get_children(False): # print_tree(child, depth+1,curpath) try: if treeobj.is_folder : #system.ui.prompt('folder:'+u, PromptChoice.YesNo, PromptResult.Yes) isfolder=true pass except: pass if treeobj.has_textual_declaration : t=t+'(*#-#-#-#-#-#-#-#-#-#---Declaration---#-#-#-#-#-#-#-#-#-#-#-#-#*)\r\n' a=treeobj.textual_declaration t=t+a.text if treeobj.has_textual_implementation: t=t+'(*#-#-#-#-#-#-#-#-#-#---Implementation---#-#-#-#-#-#-#-#-#-#-#-#-#*)\r\n' a=treeobj.textual_implementation t=t+a.text if treeobj.has_textual_declaration and not treeobj.has_textual_implementation: t=t+'(*#-#-#-#-#-#-#-#-#-#---NOT Implementation visible---#-#-#-#-#-#-#-#-#-#-#-#-#*)\r\n' if treeobj.is_task : exports=[treeobj] projects.primary.export_native(exports,os.path.join(curpath,name+'.task')) if treeobj.is_libman: exports=[treeobj] projects.primary.export_native(exports,os.path.join(curpath,name+'.lib')) if treeobj.is_textlist: treeobj.export(os.path.join(curpath,name+'.tl')) children = treeobj.get_children(False) if children or isfolder: if tp: curpath=os.path.join(curpath,name+'.'+tp) else: curpath=os.path.join(curpath,name) if not os.path.exists(curpath): os.makedirs(curpath) if t: save(t,curpath,name,tp) for child in treeobj.get_children(False): print_tree(child, depth+1,curpath) for obj in projects.primary.get_children(): print_tree(obj,0,save_folder) with open(os.path.join(save_folder,'ExportInfo.txt'),'w') as f: now = datetime.now() infTimeExecution = now.strftime("%Y-%m-%d %H:%M:%S") f.write("Export date and time: "+infTimeExecution + "\r\n" + str(info)) print("--- Script finished. ---") #system.ui.info('save ok') projects.primary.close()
Last updated: 2024-04-30
Post by thommy54 on Raspi-Cam: CameraStream.project nicht zum Laufen zu bringen
CODESYS Forge
talk
(Post)
Hallo, Ich bringe das CameraStream.project nicht zum Laufen. Ich sehe die Ursache darin, das das Beispielprogramm sehr sparsam mit Programm-Kommentaren umgeht (von der Hilfe gar nicht zu reden). Ich habe beide Varianten bei der zu ändernden Zielvariable getestet: //copy video.htm to the webserver; //the location of the webserver depends on the used Apache version as mentioned in online help hDirHtmlTest:=SysDirOpen( szDir:='/var/www', pDirInfo:= ADR(dirInfo), diMaxDirEntry:=iMaxDirEntry, szDirEntry:=szDirEntry, pResult:=ADR(iDirHtmlError)); IF (iDirHtmlError = 0) THEN SysDirClose(hDir:=hDirHtmlTest); SysFileCopy('/var/www/video.htm', '$$PlcLogic$$/Application/video.htm', ADR(dwCopySize)); ELSE .... als auch hDirHtmlTest:=SysDirOpen( szDir:='/var/www/html', pDirInfo:= ADR(dirInfo), diMaxDirEntry:=iMaxDirEntry, szDirEntry:=szDirEntry, pResult:=ADR(iDirHtmlError)); IF (iDirHtmlError = 0) THEN SysDirClose(hDir:=hDirHtmlTest); SysFileCopy('/var/www/html/video.htm', '$$PlcLogic$$/Application/video.htm', ADR(dwCopySize)); ELSE .... Die Url-Streams habe ich gelassen wie sie vorgegeben waren: urlStream := CONCAT('http://', CONCAT(sIPAddress, '/video.htm')); urlPicture := CONCAT('http://', CONCAT(sIPAddress, '/cam_pic.php')); In der Webvisu im Browser komme ich maximal dahin wie im Screeshot Video_Visu_1 zu sehen. Also scheint der Link zu video.htm zu klappen. Das der zu cam_pic.php nicht klappt, wundert mich nicht, denn es existiert nicht und wird auch nicht evtl. am rechten Ort angelegt. Ich bin mir vollkommen im Unklaren: muss da was auf dem Raspberry Pi im Hintergrund laufen , z.B. raspivid . Welcher Programmteil bedient die Cam ? Ich erkenne auch nicht, wo ein einzelnes picture entstehen soll. Wäre dankbar, wenn ich hier etwas Hilfe bekommen könnte. Evtl. gibt es Probleme mit der von mir verwendeten Codesys-Version 3.5.20.1 ? Ich benutze einen Raspberry 4 Rev.1.2. Grüße Thomas
Last updated: 2024-07-04
Post by steven-schalm on Github Actions CI/CD tasks - development topic
CODESYS Forge
talk
(Post)
hello kevinrn, I've been looking for a solution to the CI/CD issue for a long time. Briefly about me... I am 32 and software architect for Codesys V3 and fullstack dev for web (VueJS, NestJS) in a small company in Erfurt (Germany). https://www.rex-at.de/. Through my web part, we already have CI/CD running well via GitLab (YAML-based configuration file (.gitlab-ci.yml), which defines which pipelines and jobs are executed when certain events occur) with everything you know. Stages for npm packages - prepare (GitVersion, npm install or whatever) - build (vite, tsc or whatever) - testing (vitest, jest or whatever) - deploy (npm packages) And similar for monorepo's or backend services (in NestJS) as DockerImages. For Codesys we have been building an OOP framework for years (~50 libraries now), which is currently managed via SVN and a specially written Svn-Watcher (in Python) gets commits and runs and builds everything together and deploys it to an FTP server and network drive. Why do we still have SVN? Because we are unfortunately still tied to the safety integration of Codesys and can therefore only go to SP15 at most with our controller/Eckelmann. But soon there will be an update and there will be no more obstacles to using Git. Hence my questions: 1. the basic idea is to run a local Windows Runner on some machine? 2. install Codesys on the machine where the runner is running? 3. powershell & python scripts are then used to execute builds (compile, build, sign libraries) & deploys? 4. can the Github action also be used in GitLab? ChatGPT has already told me that it's not the same, but it doesn't hurt to ask. Do you have any ideas on this? Greetings :D
Last updated: 2024-08-20
Post by timo on String nach erlaubten/unerlaubten Zeichen durchsuchen
CODESYS Forge
talk
(Post)
Hallo, Ich bastele gerade an einer möglichst einfachen Möglichkeit mit der ich prüfen kann ob ein String Sonderzeichen enthält. Mein Ansatz ist ein ST FB mit einer Case Schrittkette. Ich vergleiche jedes Zeichen des Strings mit allen Zeichen eines vorher definierten Strings erlaubter Zeichen, der A-Z, a-z und 0-9 enthält und ggf angepasst werden kann, wenn ich weitere Zeichen erlaube. Leider wird meine j Zählervariable nicht richtig ausgeführt. Hat da jemand eine Idee? Oder gibt es eine einfachere Lösung/einen fertigen FB den ich mir anschauen kann? FUNCTION_BLOCK Sonderzeichen_Check VAR_INPUT inputString : STRING; // Zu prüfender String startCheck : BOOL; // Startsignal END_VAR VAR_OUTPUT ok : BOOL; // TRUE, wenn keine ungültigen Zeichen END_VAR VAR i : INT := 1; // Input-String Zähler j : INT := 1; // erlaubte Zeichen Zähler allowedChars: STRING := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; // Erlaubte Zeichen currentChar : STRING[1]; // Aktuelles Zeichen step : INT := 0; // Schritt END_VAR CASE step OF 0: // Warten auf Start IF startCheck THEN step := 10; END_IF 10: // Initialisierungen i := 1; j := 1; ok := TRUE; // Standard: ok step := 20; 20: // Durchgehen des Eingangs-Strings IF i <= LEN(inputString) THEN currentChar := MID(inputString, i, 1); // Aktuelles Zeichen step := 30; ELSE step := 70; // Alle Zeichen ok END_IF 30: // Durchgehen der erlaubten Zeichen IF j <= LEN(allowedChars) THEN step := 40; // Zu Schritt 40 ELSE step := 60; // Ungültiges Zeichen END_IF 40: // Vergleich IF currentChar = MID(allowedChars, j, 1) THEN i := i + 1; // Nächstes Zeichen im Input step := 20; ELSE j := j + 1; // Nächstes erlaubtes Zeichen step := 30; END_IF 60: // Ungültiges Zeichen ok := FALSE; // Setze auf FALSE step := 0; 70: // Alle Zeichen ok step := 0; END_CASE
Last updated: 2025-01-20
Post by fmon on Modbus : dis- / re-connect cable: modbus does not re-start
CODESYS Forge
talk
(Post)
Hello, I am using codesys Modbus TCP client (4.4.0.0) to communicate with a python modbus server (package pyModbusTCP). I first start my python server on the distant machine. After a fresh codesys compilation, a plc connection/transfer and a PLC run, the modbus connection is OK. Every time in this context the connection is created correctly. When I shut down the server, the modbus connection falls, that is normal. When I restart the python server, impossible to recreate the modbus connexion. With the client autoreconnection, I see on my server that the client tries to connect but unsuccesfully. I have the following message : DEBUG:pyModbusTCP.server:accept new connection from ClientInfo(address='192.168.1.20', port=33476) DEBUG:pyModbusTCP.server:Exception during request handling: NetworkError('recv return null') I tried to stop the codesys client and to restart it with these commands : Modbus_TCP_Client.xStop := True; // Or False Modbus_TCP_Client.Enable := True; // Or False Modbus_TCP_Server.Enable := True; // Or False I tried to confirm the error manually to force reconnection with: Modbus_TCP_Server_Motors.xConfirmError := TRUE; I tried also this command to STOP/RESET/START client and server (codesys side) but nothing happens : status_client := Modbus_TCP_Client.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.STOP); // .RESET & .START The answer of this function when executed is "status_client = NOT_SUPPORTED" It seems that is a socket problem, but I do not understand if it is on the client or server side. I tried a modbus simulator called "ananas.exe" and the result is the same. Impossible to get a modbus reconnection. What is different at the first connection and at a reconnection attempt ? Thanks for your help
Last updated: 2025-03-14
Post by trusty-squire on SysProcessCreate2 on Linux runtime
CODESYS Forge
talk
(Post)
Hi, I'm trying to launch a continuously running python script from Codesys and monitor the script status inside the Codesys runtime (running on a Linux enviroment). For now I'm testing with the below to emulate a continuously running Python script: #test.py i = 0 while True: i += 1 I'm able to successfully run the script using SysProcessExecuteCommand2 (I can see the Python process running in the task manager). However, this "freezes" the Codesys execution of the task - it sits on that command and will not continue until the Python script ends. I've proven this works by using the task monitor to kill the process, then Codesys continues on happily through the task. What I want to do is use SysProcessCreate2 to set up the Python script as a background task and monitor the process using SysProcessGetState. This always results in the error "ERR_OPERATION_DENIED". I know that I'm able to execute commands (as above), so my config should be correct. Is SysProcessCreate2 functional on a Linux environment? Is there something in the config file I'm missing? Here's my "working" code that uses SysProcessExecuteCommand2: VAR bTest : BOOL; sCommand : STRING := '/usr/bin/python3 /var/opt/codesys/PlcLogic/Application/test.py'; refCommand : REFERENCE TO STRING REF= sCommand; sOutput : STRING; refOutput : REFERENCE TO STRING REF= sOutput; result : RTS_IEC_RESULT; END_VAR IF bTest THEN SysProcessExecuteCommand2( pszCommand:= refCommand, pszStdOut:= refOutput, udiStdOutLen:= SIZEOF(sOutput), pResult:= ADR(result) ); bTest:= FALSE; END_IF And here's the code that always results in the ERR_OPERATION_DENIED error: VAR bTest : BOOL; sApp : STRING := '/usr/bin/python3'; sCommand : STRING := '/var/opt/codesys/PlcLogic/Application/test.py'; refApp : REFERENCE TO STRING REF= sApp; refCommand : REFERENCE TO STRING REF= sCommand; hResult : SysProcess.RTS_IEC_RESULT; hHandle : SysProcess.RTS_IEC_HANDLE; END_VAR IF bTest THEN hHandle := SysProcessCreate2( pszApplication:= refApp, pszCommandLine:= refCommand, ulFlags:=SYSPROCESS_CREATEFLAG_HIDDEN, pResult:= ADR(hResult) ); bTest:= FALSE; END_IF Here's the relevant section from the config file at /etc/codesyscontrol/CODESYSControl.cfg: [SysProcess] Command=AllowAll Appreciate any support or ideas. Thanks!
Last updated: 2025-03-16
Post by fmon on Modbus TCP client reconnection problem
CODESYS Forge
talk
(Post)
Hello, I am using codesys Modbus TCP client (4.4.0.0) to communicate with a python modbus server (package pyModbusTCP). I first start my python server on the distant machine. After a fresh codesys compilation, a plc connection/transfer and a PLC run, the modbus connection is OK. Every time in this context the connection is created correctly. When I shut down the server, the modbus connection falls, that is normal. When I restart the python server, impossible to recreate the modbus connexion. With the client autoreconnection, I see on my server that the client tries to connect but unsuccesfully. I have the following message : DEBUG:pyModbusTCP.server:accept new connection from ClientInfo(address='192.168.1.20', port=33476) DEBUG:pyModbusTCP.server:Exception during request handling: NetworkError('recv return null') I tried to stop the codesys client and to restart it with these commands : Modbus_TCP_Client.xStop := True; // Or False Modbus_TCP_Client.Enable := True; // Or False Modbus_TCP_Server.Enable := True; // Or False I tried to confirm the error manually to force reconnection with: Modbus_TCP_Server_Motors.xConfirmError := TRUE; I tried also this command to STOP/RESET/START client and server (codesys side) but nothing happens : status_client := Modbus_TCP_Client.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.STOP); // .RESET & .START The answer of this function when executed is "status_client = NOT_SUPPORTED". Is it normal ? It seems that is a socket problem, but I do not understand if it is on the client or server side. I tried a modbus simulator called "ananas.exe" and the result is the same. Impossible to get a modbus client reconnection. What is different at the first client connection and at a reconnection attempt ? Thanks for your help
Last updated: 2025-03-17
Post by jeindhoven on Deploying to raspberry pi 5 hangs
CODESYS Forge
talk
(Post)
Hi CoDeSys support forum, hope that this is the correct place to ask this. Might be double as i am new to Codesys and dont know all terminology. I am trying to test Codesys with a virtual plc on a raspberry pi 5. Already figured that i need Tools -> Deploy Control SL, enter Communication parameters. Codesys says "Connected". Then tab "Deployment", there i select "CODESYS Control for Raspberri Pi SL" and "4.16.0.0 (all)". Click "Install" and the gui turns grey and unresponsive. The titlebar says "Untitled1.project - CODESYS (Not Responding)" as well. Restarting Codesys and checking shows no package was installed. How to deploy the runtime? Thank you in advance for your time. Edit: After some patience, an error showed up: "Error when sending ssh heartbeat: Session operation has timed out" "Error installing codesyscontrol" Any pointers to what remote command might have failed, or log of some sort, would be welcome. Software versions: Codesys version 3.5.21.10 Raspberry pi 5 (deployment machine): $ uname -a Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye $ apt list --installed | grep openssh-server openssh-server/oldstable,now 1:8.4p1-5+deb11u3 arm64 Development machine: $ uname -a Linux 2B 6.1.0-35-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.137-1 (2025-05-07) x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm VirtualBox Version 7.0.26 r168464 (Qt5.15.8) Virtual OS: Windows 10 Pro 64-bit (10.0, Build 19045) .NET version 4.0.30319.42000
Last updated: 2025-06-22
Post by rajatdas2005 on Codesys Virtual control SL
CODESYS Forge
talk
(Post)
Dear All, This is regarding Codesys Virtual control SL demo version. I am facing one issue. First I will describe the steps what I have followed till now. 1. In a PC I have Windows OS. Here Codesys IDE is installed, and also using the installer option of IDE I have also installed Codesys Virtual control SL. 2. A edge-gateway is also running in the same windows PC as local host. 3. Next I have a seperate PC with Ubuntu OS with docker installed. This machine is in the same network. 4. Now I have created a project in Windows machine using device "Codesys Virtual control SL". 5. In the Ubuntu machine I am running the Codesys Virtual control SL as docker and it is using the ubuntu machine network only. 6. Next using the localhost edge-gateway when I am searching the virtual control SL docker it is able to detect it. (screenshot attached) 7. But after creating the creadentials it is telling No Device is responding. 8. I have also checked the wireshark logs and able to see that in destination port 11740 data is coming. 9. From windows PC telnet ip 11740 is also working. 10. Ping is also working ===========================================LOGS ========================= sudo ss -tlnp | grep -E "(443|1217|4840|8080|11740)" LISTEN 0 10 10.135.114.142:4840 0.0.0.0: users:(("codesyscontrol.",pid=41864,fd=21)) LISTEN 0 10 172.18.0.1:4840 0.0.0.0: users:(("codesyscontrol.",pid=41864,fd=24)) LISTEN 0 10 172.17.0.1:4840 0.0.0.0: users:(("codesyscontrol.",pid=41864,fd=23)) LISTEN 0 10 127.0.0.1:4840 0.0.0.0: users:(("codesyscontrol.",pid=41864,fd=26)) LISTEN 0 10 192.168.122.1:4840 0.0.0.0: users:(("codesyscontrol.",pid=41864,fd=22)) LISTEN 0 5 0.0.0.0:11740 0.0.0.0: users:(("codesyscontrol.",pid=41864,fd=20)) LISTEN 0 128 0.0.0.0:8080 0.0.0.0: users:(("python3",pid=1280,fd=4)) LISTEN 0 10 172.19.0.1:4840 0.0.0.0: users:(("codesyscontrol.",pid=41864,fd=25))
Last updated: 2025-08-06
Post by gunstr on CODESYS control on RPi starts, shortly runs, then exits
CODESYS Forge
talk
(Post)
Thank you very much for the quick answer! The RPi hw were delivered last week so it's probably a resent version. I found an old scrapped board (2 years or so) with a broken GPIO that I tested with the same SD card image and with that board Codeys can run for the full 2h demo period without issues. Then I went back the the new board to test the 4.17.0.0 release but the installation fails... [INFORMATION] Standard output: create and install daemon [INFORMATION] Standard output: codesyscontrol started [WARNING] Unable to detect Raspberry Pi Architecture. Setting armv6l as default, you can change this through the settings panel. [INFORMATION] Standard output: codesyscontrol stopped [ERROR] Expected exit value of command failed: expected 0, received 1 [WARNING] Error setting the Raspberry Pi Architecture [ERROR] Error installing codesyscontrol Do you have any idea what could be the reason? I'm using an OS image including Python drivers for LCD and some I/O:s from last year to keep things stable, but also after upgrading with sudo apt update && sudo apt upgrade I still get the same error Reverting back to 4.15.00 works fine: [INFORMATION] Standard output: create and install daemon [INFORMATION] Standard output: codesysedge started [INFORMATION] Successfully installed codesyscontrol [INFORMATION] Successfully started CODESYS Edge Gateway for Linux [INFORMATION] Successfully started CODESYS Control for Raspberry Pi SL but as before the Codesys services stops after 30 seconds. And I noticed that the Codesys control stops and is not reachable also if I have no application loaded.
Last updated: 2025-09-02
Post by mp9876 on Device logon problem following fresh install
CODESYS Forge
talk
(Post)
All screenshots are enclosed in MS Word document. NOTE; 4 questions features at the end. Any assistance would be greatly appreciated! Hi everyone, I am still having device logon problem following a fresh install Here are the STEPS I went through following a FRESH CODESYS Win 64 3.5.19.60 install on a different computer. ‘Gateway not configured properly’ when attempting to REFRESH from the Users and Groups. Then did Gateway manage and confirmed it was ok: This message popped out as it was a fresh install: YES then: Initially went with Administrator twice (user & password) but it did not like it. No device is responding to …: Continued by setting a new user Pressed OK and obtained the following message: Stopped and Restarted PLC at that point: Obtained the following: Attempted to login a 2nd time without success. Then I scanned the network to see if matching device can be detected: Only way to get it detected was to remove the tick in the ‘Hide non-matching devices…’ Attempted a WINK but got a return like this one: REFRESH either @ Users and Groups or @ Access Rights returns: Then created user ‘mp’ at Project level ang logged in: Understandably device user mp9876 was not valid for the Project. Device information A few questions comes to my mind following these connection attempts: 1- Gateway not configured properly message pops out because of a non-compatible device ? 2- Why would the device not be compatible ? 3- Any way to make the device compatible ? 4- Any ideas on how to get this connectivity problem to the device solved ?
Last updated: 2024-03-17
Post by gustavocsw on MQTT memory leak problem
CODESYS Forge
talk
(Post)
Hello everyone, I'm using the IoT Library to implement the MQTT communication with my local broker server in order to publish and subscribe at specifics topics to share and consume information about my application. But, it seems that are occurring some memory leak problem in a "high" frequency (more than 10 Hz) subscribe process. I follow the same method as in IoT Lib exemples, and at first looks perfect but my PLC was rebooting frequently and when I check its memory usage that was increasing as fast as the subscribe massage was sent. I'm using a WEG PLC410 and a WEG PLC500, and this error occurred in both of them (including in CODESYS Control Win x64). The application sends to the system a message JSON with the float payload Ex. {"data" : 0.8500}, but this happens with a INT, or BOL as well. I use the follow code in my application to find the value: //FindFirstValueByKey VARs PROGRAM JSON_VELO VAR //------Setting the JSON Subscriber to Set the Relay Value jsonDataVelo : JSON.JSONData; jsonByteArrayReaderVelo : JSON.JSONByteArrayReader; xST1okVelo : BOOL; FindFirstValueByKeyVelo : JSON.FindFirstValueByKey; jsonElementVelo : JSON.JSONElement; xDoneReaderVelo : BOOL; xDoneFindVelo : BOOL; //STRING and WSTRING for Subscribe the massage sPayloadJsonVelo : STRING := 'opa'; psPayloadJsonVelo : POINTER TO BYTE := ADR(sPayloadJsonVelo); //wsPayloadJsonRelaySet : WSTRING := "opa"; wsPayloadJsonVelo : WSTRING := STRING_TO_WSTRING('opa'); pwsPayloadJsonVelo : POINTER TO WORD := ADR(wsPayloadJsonVelo); lrVelo : LREAL; xKeepAliveVelo : BOOL; xSetVelo : BOOL; RSSet : RS; LIMPAR : STRING; //Find the msg end sFindVelo : STRING := '}'; psFindVelo : POINTER TO STRING := ADR(sFindVelo); iLenVelo : INT; iSizeVelo : INT := 12; udiContMsg : UDINT; END_VAR // FindFirstValueByKey CODE // Relay Set configuration xSetVelo := MQTT_SUBSCRIBER.RSVelo.Q1; IF xSetVelo THEN xKeepAliveVelo := TRUE; END_IF IF xKeepAliveVelo THEN udiContMsg := udiContMsg + 1; iLenVelo := TO_INT(StrLenA(psPayloadJsonVelo)); iSizeVelo := iLenVelo - TO_INT(MQTT_SUBSCRIBER.udiPayloadSizeVelo); StrDeleteA(psPayloadJsonVelo,iSizeVelo,iLenVelo); wsPayloadJsonVelo := STRING_TO_WSTRING(sPayloadJsonVelo); pwsPayloadJsonVelo := ADR(wsPayloadJsonVelo); //MQTT.ConvertUTF8toUTF16(sourceStart:= ADR(sPayloadJsonVelo), targetStart:= ADR(wsPayloadJsonVelo), dwTargetBufferSize:= TAM, bStrictConversion:= 1); //Reset jsonByteArrayReader jsonByteArrayReaderVelo ( xExecute := TRUE, pwData := pwsPayloadJsonVelo, jsonData := jsonDataVelo, xDone => xDoneReaderVelo ); FindFirstValueByKeyVelo( xExecute := xDoneReaderVelo, wsKey := "data", diStartIndex:= 0, jsonData := jsonDataVelo, jsonElement => jsonElementVelo, xDone => xDoneFindVelo ); IF xDoneFindVelo THEN lrVelo := jsonElementVelo.value.lrValue; //Reset jsonByteArrayReader jsonByteArrayReaderVelo ( xExecute := FALSE, pwData := pwsPayloadJsonVelo, jsonData := jsonDataVelo, xDone => xDoneReaderVelo ); FindFirstValueByKeyVelo( xExecute := FALSE, wsKey := "data", diStartIndex:= 1, jsonData := jsonDataVelo, jsonElement => jsonElementVelo, xDone => xDoneFindVelo ); xKeepAliveVelo := FALSE; GVL.xSetVeloRead := TRUE; END_IF END_IF And this to subscribe at the topic: //SUBSCRIBE VAR: //----------------- Subscribe Velocity ----------------------- MQTTSubscribeVelo : MQTT.MQTTSubscribe;//Variable MQTTSubscriber block -X - function-X wsTopicSubscribeVelo : WSTRING(1024) := "CORE/odometry/GET/data/simp"; // Topic to publish a message sSubscribeMassageVelo : STRING; udiPayloadSizeVelo : UDINT; xSDoneVelo : BOOL; xSErrorVelo : BOOL; xReceiveVelo : BOOL; eSTypeVelo : MQTT.MQTT_ERROR; eSMQTTErrorVelo : MQTT.MQTT_ERROR; RSVelo : RS; udiCont : UDINT; //SUBSCRIBE CODE: MQTTSubscribeVelo( xEnable:= MQTT_CLIENT.xConnection_Broker AND NOT xSErrorVelo AND NOT JSON_VELO.xKeepAliveVelo, pbPayload:= JSON_VELO.psPayloadJsonVelo, udiMaxPayloadSize:= SIZEOF(JSON_VELO.sPayloadJsonVelo), udiPayloadSize => udiPayloadSizeVelo, mqttClient:= MQTT_CLIENT.ClientMQTT, wsTopicFilter:=wsTopicSubscribeVelo, xDone => xSDoneVelo, xError=> xSErrorVelo, xReceived => xReceiveVelo, eMQTTError=> eSMQTTErrorVelo ); RSVelo(SET := xReceiveVelo, RESET1 := JSON_VELO.xKeepAliveVelo);
Last updated: 2024-09-09
Post by alex-at-xana on EThercat Dynamic configuration
CODESYS Forge
talk
(Post)
Hi Everyone, For a fast monitoring system I am using Ethercat oversampling and timestamping inputs. As the customers has a lot of different configurations out in the field, we went for a dynamic Ethercat configuration. Already got the whole detection chain working but now I am stuck since two days in debugging the configuration. Here are my quesitons: I extended the dynamic config example for the EL3632 16#0E303052: //EL3632 pSlave^.SetDCSettings(TRUE,TRUE,80,80,TRUE,4000,0,0); pSlave^.AddSyncManager(16#1000,128,16#26,TRUE,3); pSlave^.AddSyncManager(16#1080,128,16#22,TRUE,2); pSlave^.AddSyncManager(16#1100,0,16#4,TRUE,1); pSlave^.AddSyncManager(16#1110,214,16#20,TRUE,0); pSlave^.AddFMMU(0,214,0,7,16#1110,0,1,1); pSlave^.AddFMMU(0,1,0,0,16#80D,0,1,1); xKnown := TRUE; This leads to a PLL Error for these devices. I double and triple checked the configuraton, but cannot find the issue. There seems to be one difference: the config dialog creates a startup parameter: 16#10F3:16#05, Name: Command_0, Value:0. Bitlen: 16, Stop on fault: false, jumpt at fault: false: next line: 0 a) I do not find information on how to set this in my code. Can you help me there? b) Without trying to set the value, I get a PLL error for these devices in the master log. Is the config wrong? c) Do I need to set the Master to Autoconfigure or Manual? I used autoconfigure for my tests. The stack creates input data addresses for the slaves input data range (pSlaves[i].InputData) which are different from those created when I use the Engineering tools dialogs to configure Ethercat. Specifically, the addresses seem to be aligned at 16 byte boundaries when they are created using the engineering tool, but may appear at uneven addresses when I use the script in dynamic config. I did not try to access ULINT at uneven addresses yet, but I am suspecting this may be a problem. Do I need to manually align the addresses ? Any help is appreciated...
Last updated: 2024-09-10
Post by struccc on Application failing to boot after system reboot
CODESYS Forge
talk
(Post)
I started to experience the same issue, after upgrading to 3.5.19 , and still persists with 3.5.20.3 , using CodesysControlWinV3 x64 on Windows. Unfortunately, this is a live application, normally it is running for months without interruption - so it was a surprise at the last cold start... It was not possible to go online with the original version, so I couldn't see the application, or system status, just the log message. First time I manually clean the Application from the PlcLogic directory (there was no coredump file in there), then I could start the runtime service, and do a fresh download, and set the bootproject. I could not try a cold system reboot - it's in a 24/7 production environment, and I was under heavy pressure to start... What I did, I have created a backup from the * complete * runtime directory, from the failed, and fixed version - before and after download. This directory in my case C:\ProgramData\CODESYS\CODESYSControlWinV3x64\55096128 - At the next shutdown, it was sufficient to copy back this backup completely, and could start the runtime service afterwards. Ugly, but local staff with some skills can do it without programming tool... I don't store any live data, configuration, log files, persistent data in this directory - the only reason I need this is to edit the CodesysControl... .cfg file.... And to see the logfiles in emergencies like this. The application concerned doesn't use any retain area. - exactly for these reasons - Maybe that is causing the problem with the newer runtime versions As far as I see, this problem occurs only if the power of the Windows PLC is interrupted without a proper shutdown. Unfortunately, this can happen sometimes. The newer versions, seems tp modify CodesysControl.cfg on the fly, and register the applications, and bootproject information after download. (I don't really see CodesysControl.cfg a proper location for this... but that's just my feeling) So now I had a look at CodesysCotrol.cfg on my laptop and I found: [CmpRetain] ;Retain.SRAM.Size=0x200200 ;Retain.SRAM.Address=0xFA3C5776 ;SimulateSRAM=1 [CmpApp] ;Bootproject.CreateOnDownload=0 ;Bootproject.StoreOnlyOnDownload=0 ;Bootproject.InvalidateByRename=1 ;Bootproject.InvalidateBySetting=1 ;Bootproject.InvalidateNever=0 ;PersistentForce=0 ;RetainType.Applications=InSRAM ;RetainType.Applications=OnPowerfail ;RetainType.Applications=None ;Exception.Hardware.GlobalStop=1 Application.1=MyTestAppNoRetain The last line appeared after download and boot project creation. Maybe... Should set RetainType.Applications=None? I wonder about all these settings, but... Will write separately about it. I hope this helps a little...
Last updated: 2024-11-21
Post by jonasz on Device diagnosis ( EtherCAT IO card )
CODESYS Forge
talk
(Post)
Hi, I'll link to the topic not wanting to start a new one. In the application I am building, I wanted to use the diagnostics described in the CAA Device Diagnosis library. In principle, everything is ok, except for the elements related to ModbusTCP. Despite the fact that ModbusTCP is taken into account in the documentation, it is not recognised via the interfaces. FUNCTION_BLOCK NET_HW_DIAG VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR (* Referencja do struktury z danymi dla HMI ASTRAADA.*) Visu: REFERENCE TO VISU; (* Wskaźnik na mastera EtherCAT.*) pEtherCATMaster : POINTER TO IoDrvEtherCAT; (* Wskaźnik na slave EtherCAT.*) pEtherCATSlave : POINTER TO EtcSlave; (* Interfejs dla węzła w drzewie urządzeń.*) _itfNode: DED.INode; (* Ogólny interfejs magistrali. Zapewnia podstawowe informacje o magistrali polowej.*) _itfBus: DED.IBus; (* Interfejs urządzenia. Zapewnia rozszerzone informacje o urządzeniu (magistralowym).*) _itfDevice2: DED.IDevice2; (* Ogólny interfejs magistrali. Zapewnia podstawowe informacje o magistrali polowej.*) _itfStack: DED.IStack; (* Numer węzła w drzewie urządzeń.*) uiNodes: UINT; (* Operator jest rozszerzeniem normy IEC 61131-3. W czasie wykonywania operator wykonuje konwersję typu odwołania do interfejsu na inny typ. Operator zwraca wynik BOOL. Wartość TRUE oznacza, że CODESYS pomyślnie wykonał konwersję. *) xQueryResultBus: BOOL; xQueryResultDevice2: BOOL; xQueryResultStack: BOOL; (* Struktura danych dotyczących węzłów w drzewie urządzeń.*) NetHwDiag: NW_HW_STAT; ModbusTcpClientDeviceInfo: IoDrvModbusTCP.DED.DEVICE_INFO; ModbusTcpClientDeviceState: IoDrvModbusTCP.DED.DEVICE_STATE; ModbusTcpDeviceInfo: IoDrvModbusTCP.DED.DEVICE_INFO; ModbusTcpDeviceState: IoDrvModbusTCP.DED.DEVICE_STATE; END_VAR (* Pobranie wskaźników dla pierwszego mastera i pierwszego slave w sieci EtherCAT.*) pEtherCATMaster := g_pFirstMaster; pEtherCATSlave := pEtherCATMaster^.FirstSlave; (* Diagnostyka sieci EtherCAT.*) pEtherCATMaster := g_pFirstMaster; pEtherCATSlave := pEtherCATMaster^.FirstSlave; NetHwDiag.xConfigFinished := pEtherCATMaster^.xConfigFinished; NetHwDiag.xDistributedClockInSync := pEtherCATMaster^.xDistributedClockInSync; NetHwDiag.xError := pEtherCATMaster^.xError; NetHwDiag.xSyncInWindow := pEtherCATMaster^.xSyncInWindow; NetHwDiag.sLastMessage := pEtherCATMaster^.LastMessage; NetHwDiag.LastError := pEtherCATMaster^.LastError; (* Diagnostyka drzewa urządzeń.*) uiNodes := 0; _itfNode := DED.GetRoot(); REPEAT NetHwDiag.asDeviceName[uiNodes] := DED.GetDeviceNameString(itfNode := _itfNode); xQueryResultBus := __QUERYINTERFACE(_itfNode,_itfBus); IF xQueryResultBus THEN _itfBus.GetBusInfo(buiInfo := NetHwDiag.aBusInfo[uiNodes]); NetHwDiag.aBusState[uiNodes] := _itfBus.GetBusState(); END_IF xQueryResultDevice2 := __QUERYINTERFACE(_itfNode,_itfDevice2); IF xQueryResultDevice2 THEN _itfDevice2.GetDeviceInfo(deiInfo := NetHwDiag.aDeviceInfo[uiNodes]); NetHwDiag.aDeviceState[uiNodes] := _itfDevice2.GetDeviceState(); IF pEtherCATSlave <>0 THEN pEtherCATSlave^(); IF pEtherCATSlave^.SlaveAddr = NetHwDiag.aDeviceInfo[uiNodes].idSystem THEN NetHwDiag.aAlStatus[uiNodes] := pEtherCATSlave^.ALStatus; pEtherCATSlave := pEtherCATSlave^.NextInstance; END_IF END_IF ELSE xQueryResultStack := __QUERYINTERFACE(_itfNode,_itfStack); IF xQueryResultStack THEN _itfStack.GetDeviceInfo(deiInfo := NetHwDiag.aDeviceInfo[uiNodes]); NetHwDiag.aDeviceState[uiNodes] := _itfStack.GetDeviceState(); END_IF END_IF uiNodes := uiNodes + 1; _itfNode := DED.GetNextNode(_itfNode); UNTIL _itfNode = 0 END_REPEAT (* Diagnostyka Modbus.*) Modbus_TCP_Client.GetDeviceInfo(deiInfo := ModbusTcpClientDeviceInfo); ModbusTcpClientDeviceState := Modbus_TCP_Client.GetDeviceState(); PAC_3200T.GetDeviceInfo(deiInfo := ModbusTcpDeviceInfo); ModbusTcpDeviceState := PAC_3200T.GetDeviceState(); Of course, you can take the easy way out and refer directly to the devices, but I wanted a reusable component. Any constructive help is very welcome Best regards Jonasz
Last updated: 2025-07-15
Post by ara32 on CODESYS 4 Linux:
CODESYS Forge
talk
(Post)
Hello! I managed to correctly launch CODESYS Developer Studio 3.5.17, almost all functionality works. The only issue remaining is that when connecting to a device and obtaining its public key, the NCryptEncrypt function is called, which is not fully implemented in the DLL source code, resulting in the connection not being established. Currently, the code of this function in the Wine repository looks like this: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG || flags & NCRYPT_PAD_OAEP_FLAG) { FIXME("No padding and oaep padding not supported\n"); return NTE_NOT_SUPPORTED; } if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } The program crashes due to the NCRYPT_PAD_OAEP_FLAG flag. I'm not proficient in C++, but I attempted to add handling myself, and here's the result: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG) { FIXME("No padding not supported\n"); return NTE_NOT_SUPPORTED; } BCRYPT_OAEP_PADDING_INFO oaepInfo = { 0 }; oaepInfo.pszAlgId = BCRYPT_SHA1_ALGORITHM; NTSTATUS status = BCryptEncrypt(key_object->key.bcrypt_key, input, insize, &oaepInfo, NULL, 0, output, outsize, result, flags); if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } Now, when calling the connection, it crashes with the error "bcrypt:BCryptEncrypt flags 0x4 not implemented." Can anyone help with enhancing this functionality or at least point me in the right direction?
Last updated: 2024-03-22
Post by alexgooi on OPC-UA and other communication questions
CODESYS Forge
talk
(Post)
Dear forum, I currently have a big question mark above my head, and maybe this forum can shine some light on the situation. I recently updated to Codesys 3.15 SP19 Patch 6. And now I’m trying to setup the OPC-UA server, besides that I’m trying to connect to the controller with the Codesys V3 (Ethernet) protocol. OPC-UA I have installed the correct licenses on my controller (Runtime and communication). I’m able to connect to the controller with an OPC-UA client, and I’m able to browse the tags, so far so good. Therefore I’m assuming that the OPC-UA server is running on the controller. But now the strange part, in the device security settings I have set the communication Policy to BASCI256SHA256 ( I also have tried the other ones) and the communication mode is set to secure if possible (I also have tried all the other ones) (see picture). With these settings I would assume that I would only be able to login with a Basic256SHA256 policy with a client. But the opposite is true, I am able to login using the no policy mode and when I set it to Basic256SHA256 the client (UA-Expert) notes that this policy is not available on the server. I then check the certificates and I noted that there is no certificate for the OPC-UA server, I tried to generate one but it gave the error that the certificate has not been created by the device (See picture). To summarize I have no clue what is going on, and the controller does the opposite of what I would expect. Codesys Ethernet V3 driver I have a HMI connected to the same controller using the Ethernet V3 driver. But this will not connect. I tried all the Protocols (see picture), with and without the username and password enabled. But it will not connect, when I scan the available servers I can see the controller with the port number that I am expecting, so I’m assuming that the Codesys V3 ethernet driver is up on the controller. Does anyone can give me some direction, because the stuff that I tried doesn’t make sense to me. Thank you in advance
Last updated: 2024-04-02
Post by dandyk on Dynamic Images
CODESYS Forge
talk
(Post)
Hello, I have very similar problem, but it seems that your solution does not work for me. I am using TwinCAT XAE Shell v3.1.4024.55 and TwinCAT Runtime. Sorry for writing here on codesys forge, but since I found the only relevant topic here and since TwinCAT is almost the same with CODESYS in many applications, I chose to write here. I simply need to dynamically update image in visualization based on camera trigger (I am doing a machine vision application). Camera triggers an image, my program processes it (applies thresholding, draws contours etc...) and saves the processed image in the runtime location (the same one you were mentioning). This was done successfully. I need to make it work at runtime, while the program is executing and I need to refresh the image in the visualization each time camera triggers a new image and program processes it. When I create image element in the visualization and define the bitmap ID variable as STRING which contains the image ID defined in the image pool, then it displays the image in the image pool, but does not work at runtime, while the program is executing. I also used the Bitmap Version. I declared it in Global variable list as integer with initial value of 0 and wrote the variable in the bitmap version in the image element in visualization. Each time new image is saved to the runtime location, I wrote a program to increment Bitmap Version by 1. It increments and the image does not update in the visualization, unfortunately. I think that bitmap version is working correctly and deletes the cached image as it is supposed to, but the Image Pool does not update the image ID with the new image... the path to the image is always the same... only the actual image changes with the same file name. Image Pool is not dynamic and cannot refresh the image in the path to the actual one at runtime. How can I refresh the image ID in the image pool at runtime? Bitmap version only deletes cached image and reloads the image from the image ID, but the image ID has the same image, because image pool won't update at runtime. Do you know any solution to this problem?
Last updated: 2024-04-06
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND or OR.