Post by gseidel on Scara3 kinematic robot error
CODESYS Forge
talk
(Post)
Hi aniket-b, the maximum cycle time of the EtherCAT_Task is very high, ca. 35 ms. Could you please check if this is just the first cycle after starting the application or if it happens during motion? (You can reset the times in the task configuration by right-clicking in the "monitoring" tab.) Another thing to try: put the SoftMotion_Planning task on a different core. Best regards, Georg
Last updated: 2026-01-07
Post by suyash on Device User Logon
CODESYS Forge
talk
(Post)
Thanks for your reply @eschwellinger. Update : the is problem is resolved. It was done by renaming the User database file (/var/opt/codesys/.UserDatabase.csv) as deleting it was risky. After restart the IDE asked me to create new user. On doing that the problem got resolved. Reference for members facing similar problem/s : sudo systemctl stop codesyscontrol sudo mv /var/opt/codesys/.UserDatabase.csv_ /var/opt/codesys/.UserDatabase.csv_.old sudo systemctl start codesyscontrol
Last updated: 2026-05-14
Post by ph0010421 on ModbusTCP_FunctionCode06
CODESYS Forge
talk
(Post)
Hi You can add a channel to the standard Modbus TCP library with FC06. From the device tree, add Ethernet device, ModbusTCP master then finally a ModbusTCP slave (your power meter). You can add read/write channels (for any FC) in here. As you add these devices, the necessary libraries will be inserted for you. Alternatively, I have a ModbusTCP client/server library if your RT doesn't have Modbus (I think they all do these days?)
Last updated: 2026-05-18
Post by charly29160 on WebVisu scaling regression in V3.5.22 P2: frame size jumps when switching visualizations
CODESYS Forge
talk
(Post)
Environment: - CODESYS V3.5.22 Patch 2 - CODESYS Control for Raspberry Pi MC SL - WebVisu in browser Problem: When switching between visualizations using a Register element (Registerkarten), the displayed frame size jumps incorrectly after returning to a previously viewed visualization. This behavior was introduced in V3.5.22 Patch 2. The same project worked correctly in V3.5.21 Patch 4. WebVisu settings in V3.5.21 (working): - Scaling: Isotropisch - Automatisch ermittelte Clientgröße verwenden: active - All visualizations: Automatisch erkannte Visualisierungsgröße Workaround?
Last updated: 2026-06-15
Post by baltzer on ICertificateVerifier.VerifyCertificate doesn't appear to override an ERR_CERT_HAS_EXPIRED rejection in TCP_Client.Upgrade()
CODESYS Forge
talk
(Post)
Setup: Net Base Services (NBS), TCP_Client + TLSContext, ePurpose := CLIENT_SIDE, connecting to a third-party embedded device (Velux KLF200 home automation gateway) whose factory-installed TLS certificate expired on 2026-07-12 and has no user-facing renewal path. Tested on both CODESYS Control for Raspberry Pi SL (3.5.19.0) and CODESYS Control Win V3 x64, with identical results on both. Goal: Accept the peer's expired certificate via a custom ICertificateVerifier implementation, since the certificate itself can never be replaced. Implementation: FUNCTION_BLOCK FB_MyCertVerifier IMPLEMENTS NBS.ICertificateVerifier VAR udiCallCount : UDINT; aeCurStateLog : ARRAY[0..9] OF NBS.RTS_IEC_RESULT; END_VAR METHOD VerifyCertificate : UDINT VAR_INPUT hCert : NBS.RTS_IEC_HANDLE; eCurState : NBS.RTS_IEC_RESULT; END_VAR IF udiCallCount < 10 THEN aeCurStateLog[udiCallCount] := eCurState; END_IF udiCallCount := udiCallCount + 1; VerifyCertificate := 0; // also tried: VerifyCertificate := eCurState; Wired in via tlsContext.itfCertVerifer := certVerifier at declaration time, alongside itfTLSContext := tlsContext set at TCP_Client's own declaration (per an earlier forum thread here on ensuring inline start-values on FB-typed variables are actually honored when nested one level deep - that fix was needed and worked correctly for getting the handshake to start at all). Observed: - VerifyCertificate is confirmed called exactly once per connection attempt (via the call counter above). - eCurState passed in = 0x709 = ERR_CERT_HAS_EXPIRED - correctly reflecting the actual state of the peer's certificate. - Packet capture confirms the full TLS 1.2 handshake completes correctly at the wire level: ClientHello -> ServerHello -> Certificate -> ServerKeyExchange -> ServerHelloDone -> our ClientKeyExchange/ChangeCipherSpec/Finished -> server's ChangeCipherSpec/Finished. Both sides successfully complete the cryptographic handshake. - Despite this, TCP_Client.Upgrade() subsequently returns NBS.ERROR.CONNECTION_ERROR, and the connection is torn down with a plain TCP FIN (not a TLS alert) roughly 7-8ms after our side ACKs the server's Finished message. - TCP_Client.eErrorID (inherited from LCon) remains NO_ERROR throughout - the failure is only visible via Upgrade()'s return value. - Returning 0 (ERR_OK/ERR_CERT_OK - confirmed via the CmpErrors2 Interfaces documentation that these are literally the same value) makes no difference. - Echoing eCurState back unchanged (on the theory that this callback might work like mbedTLS's native verify callback, where the incoming state is a flags value to be cleared/modified and returned, rather than paired with a separate fixed "accept" sentinel) also makes no difference. - Identical result across udiVerificationMode := 0, 1, and 2. - Importing the peer's certificate into the runtime's trusted certificate store via cert-import trusted makes no difference either. - With itfCertVerifer left at its default (no custom verifier) and udiVerificationMode := 2, the underlying engine sends its own fatal TLS alert (handshake_failure) immediately after receiving the peer's Certificate message - suggesting built-in validation may reject at the record layer independent of whether a custom verifier is even present. Questions: 1. Is there an additional step required for a custom ICertificateVerifier to actually override an ERR_CERT_HAS_EXPIRED (or more generally, any ERR_CERT_*) rejection, or is certificate validation enforced unconditionally for a CLIENT_SIDE TLSContext regardless of what the verifier returns? 2. Is 0/ERR_OK genuinely the correct "accept" return value for VerifyCertificate, or does it expect something else (a specific bit pattern, a different constant, a value that must be computed from hCert itself)? 3. Is there a supported way to connect to a peer presenting a certificate that is both self-signed and expired, short of the peer issuing a new certificate? Happy to share the full packet captures or additional test combinations if useful. Also worth noting for anyone finding this thread later: a maintained Node-RED library for this same device (node-red-contrib-velux-klf200, forked to handle this exact expired-certificate situation) solves it by disabling built-in TLS validation entirely (rejectUnauthorized: false) and doing fingerprint-based pinning by hand after the handshake completes, rather than relying on a validation callback - which may be the more realistic approach here too if ICertificateVerifier genuinely can't override this class of rejection. Thanks in advance /Jørgen Disclosure: most of the CODESYS code and this investigation was developed with the help of Claude (Anthropic's AI assistant) - the state machine design, SLIP/checksum implementation, and debugging methodology (including the packet capture analysis) were worked through in an extended back-and-forth with it. Posting here because we've run out of self-serviceable options and this now looks like it needs input from someone with visibility into NBS's actual implementation.
Last updated: 2026-07-26
Post by winki on Error in licence activation
CODESYS Forge
talk
(Post)
Hello, Despite receiving an activation message after entering the license number, I don’t have any license installed on my gateway. I went to check in /var/opt/codesys/ and there is no License file. I searched the entire gateway for a .lic file and found no license. I’m really stuck—how can I fix this, please? When I am using the licence tools I got this picture: But nothing that have been activated. Loic,
Last updated: 2026-02-03
Post by winki on Error in licence activation
CODESYS Forge
talk
(Post)
Hello, Despite receiving an activation message after entering the license number, I don’t have any license installed on my gateway. I went to check in /var/opt/codesys/ and there is no License file. I searched the entire gateway for a .lic file and found no license. I’m really stuck—how can I fix this, please? When I am using the licence tools I got this picture: But nothing that have been activated. Loic,
Last updated: 2026-02-03
Post by william on Unit testing support / libraries for EcoStruxure Machine Expert (CODESYS)
CODESYS Forge
talk
(Post)
Hi, We are investigating available libraries and frameworks for automated PLC unit testing in Schneider EcoStruxure Machine Expert. Specifically, we are looking for: Assertion libraries or test frameworks compatible with Machine Expert CODESYS‑based solutions that are not TwinCAT‑specific Any official or community‑recommended approach for unit testing FB/FC logic offline We have found several open‑source examples, but many appear to be TwinCAT‑dependent and therefore not compatible. Are there any known libraries, best practices, or recommended approaches for implementing unit tests in Machine Expert? Thanks in advance.
Last updated: 2026-02-19
Post by alexgooi on No Bootproject possible
CODESYS Forge
talk
(Post)
Dear Forum, When using a online-change I often get the following message: No Bootproject possible in this state: application out of memory. Perform full download first. I'm using Codesys virtual control for linux SL running on a docker server with plenty of memory available, therefore I’m not expecting a hardware limitation. Is there a setting available to for example reserve more memory, so the controller is not that quick out of memory? thank you in advance. Alex
Last updated: 2026-03-27
Post by darwin03 on Mismatch between coordinate monitor and actual motion using SMC_GroupJog2, MC_MoveLinearAbsolute (6DOF)
CODESYS Forge
talk
(Post)
Hi Guys!!! I am experiencing an issue when trying to move 6DOF using SMC_GroupJog2 and MC_MoveLinearAbsolute, but I don't understand why, when I jog only X or Y, the coordinate I monitor just changes the X or Y value. It's true, but in reality, Joint6 is still running like the video. Am I wrong somewhere? Many thanks for considering my request.! Video: https://drive.google.com/drive/folders/1vRHQ3AtTO3mijptqZgn5OcP9pyi527Jm?usp=sharing
Last updated: 2026-04-06
Post by gseidel on Problem with keeping up the distance between two axes
CODESYS Forge
talk
(Post)
Hi alex-n, are there any errors before the crash happens: MC_Phasing.Error, MC_Phasing.CommandAborted, what does the PLC log show before the crash? Does one of the drives show an error? You can achieve the same effect as MC_Phasing by using MC_GearIn and MC_MoveSuperImposed. But probably there is some problem in your application independent of MC_Phasing that can lead to the crash. Best regards, Georg
Last updated: 2026-06-10
Post by eschwellinger on cannot connect ot linux runtime: device does not answer the scanrequest
CODESYS Forge
talk
(Post)
for me looks like you do not use latest CODESYS IDE version, there is a known bug if you use a newer runtime your are forced to use a more complex password as user for the login. The old IDE version does not show this problem on login. so either update CODESYS or use a pw which meet the complexity requirements.
Last updated: 2026-06-11
Post by fabiodasilveira on Static Analysis Error SA0026
CODESYS Forge
talk
(Post)
Hello Everyone, I am really struggling to understand why codesys would present an error regarding the following: VAR strByte1: STRING(10):= '192'; strByte2: STRING(10):= '168'; strByte3: STRING(10):= '1'; strByte4: STRING(10):= '0'; strIPAddress: STRING:= '192.168.1.1'; END_VAR //Updating Variables strByte1:= BYTE_TO_STRING(GVL.abyPSsIpAddress[0]); strByte2:= BYTE_TO_STRING(GVL.abyPSsIpAddress[1]); strByte3:= BYTE_TO_STRING(GVL.abyPSsIpAddress[2]); strByte4:= BYTE_TO_STRING(GVL.abyPSsIpAddress[3]); strIPAddress:= CONCAT(strByte1, CONCAT('.', CONCAT(strByte2, CONCAT('.', CONCAT(strByte3, CONCAT('.', strByte4)))))); Any help would be much appreciated.
Last updated: 2026-07-27
Post by wallandreas008 on OPC-Server V3 - keine Items zu sehen...
CODESYS Forge
talk
(Post)
Hallo ich habe ebenfalls Probleme mit dem Verbindungsaufbau zu 3 ABB SPSen nach einem Windows Update. hier meine OPCServer.ini [Server] updaterate=200 publicgroups=0 logevents=1 syncinit=1 PLCs=3 PLC0=PLC1 PLC1=PLC2 PLC2=PLC3 [PLC:PLC1] interfacetype=GATEWAY motorola=1 nologin=0 timeout=10000 tries=3 buffersize=4800 project=ZE_PC01 reconnecttime=10 waittime=12 active=1 logevents=1 logfilter=0 gateway=Tcp/Ip gatewayaddress=localhost gatewayport=1210 parameters=3 device=Tcp/Ip instance=TCPIP_0_101 parameter0=Address value0=192.168.0.101 parameter1=Port value1=1201 parameter2=Motorola byteorder value2=Yes [PLC:PLC2] interfacetype=GATEWAY motorola=1 nologin=0 timeout=10000 tries=3 buffersize=4800 project=ZE_PC02 reconnecttime=15 waittime=10 active=1 logevents=1 logfilter=10 gateway=Tcp/Ip gatewayaddress=localhost gatewayport=1210 parameters=3 device=Tcp/Ip instance=TCPIP_0_102_ parameter0=Address value0=192.168.0.102 parameter1=Port value1=1201 parameter2=Motorola byteorder value2=Yes [PLC:PLC3] interfacetype=GATEWAY motorola=1 nologin=0 timeout=10000 tries=3 buffersize=4800 project=ZE_PC03 reconnecttime=15 waittime=10 active=1 logevents=1 logfilter=10 gateway=Tcp/Ip gatewayaddress=localhost gatewayport=1210 parameters=3 device=Tcp/Ip instance=TCPIP_0_103_ parameter0=Address value0=192.168.0.103 parameter1=Port value1=1201 parameter2=Motorola byteorder value2=Yes [Redundancy] NumOfGroups=0 Im Logfile habe ich immer diese Meldungen: ;********* ;<loggername>OPCServer.log</loggername> ;<logoptions> ; <maxfiles>0</maxfiles> ; <maxfilesize>1048576</maxfilesize> ;</logoptions> ;********* 2026-09-29T12:01:40.598+0200, OPC-Server V3.5.20.0 by CODESYS Development GmbH. 2026-09-29T12:01:40.598+0200, Path for ini-File: C:\ProgramData\CODESYSOPC\OPCServer.ini 2026-09-29T12:01:40.598+0200, Path for AE-Config: C:\Program Files (x86)\CODESYS 3.5.20.0\CODESYS OPC Server 3\OPCServerA.ini 2026-09-29T12:01:40.598+0200, AE-Configuration unused. 2026-09-29T12:01:40.598+0200, 3 PLCs configured 2026-09-29T12:01:40.598+0200, [PLC1]: Try to open connection... 2026-09-29T12:01:40.599+0200, [PLC2]: Try to open connection... 2026-09-29T12:01:40.599+0200, [PLC3]: Try to open connection... 2026-09-29T12:01:40.599+0200, [PLC1]: Open communication successful 2026-09-29T12:01:40.600+0200, [__CommState] : Initially added implicit variable. 2026-09-29T12:01:40.601+0200, [__CommStateOK] : Initially added implicit variable. 2026-09-29T12:01:40.601+0200, [PLC1]: ---------- Configuration ---------- 2026-09-29T12:01:40.601+0200, [PLC2]: Open communication successful 2026-09-29T12:01:40.601+0200, [__CommState] : Initially added implicit variable. 2026-09-29T12:01:40.601+0200, [PLC1]: PLCHandler Version: 3.5.20.0 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->ulId = 0, m_pPlcConfig->pszName = PLC1 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->it = IT_GATEWAY, m_pPlcConfig->bActive = 1 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->bLogToFile = 1, m_pPlcConfig->ulLogFilter = 0xF 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->bMotorola = 1, m_pPlcConfig->bLogin = 1 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->ulBufferSize = 4800, m_pPlcConfig->bPreCheckIdentity = 0 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->ulHwVersion = 0 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->ulTimeout = 10000, m_pPlcConfig->ulNumTries = 3 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->ulWaitTime = 12000, m_pPlcConfig->ulReconnectTime = 10000 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->pszProjectName = ZE_PC01 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->gwc->pszDeviceName = Tcp/Ip 2026-09-29T12:01:40.601+0200, [PLC1]: m_pPlcConfig->gwc->pszAddress = localhost, m_pPlcConfig->gwc->ulPort = 1210 2026-09-29T12:01:40.601+0200, [__CommStateOK] : Initially added implicit variable. 2026-09-29T12:01:40.601+0200, [PLC2]: ---------- Configuration ---------- 2026-09-29T12:01:40.601+0200, [PLC3]: Open communication successful 2026-09-29T12:01:40.601+0200, [PLC2]: PLCHandler Version: 3.5.20.0 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->ulId = 1, m_pPlcConfig->pszName = PLC2 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->it = IT_GATEWAY, m_pPlcConfig->bActive = 1 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->bLogToFile = 1, m_pPlcConfig->ulLogFilter = 0xF 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->bMotorola = 1, m_pPlcConfig->bLogin = 1 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->ulBufferSize = 4800, m_pPlcConfig->bPreCheckIdentity = 0 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->ulHwVersion = 0 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->ulTimeout = 10000, m_pPlcConfig->ulNumTries = 3 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->ulWaitTime = 10000, m_pPlcConfig->ulReconnectTime = 15000 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->pszProjectName = ZE_PC02 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->gwc->pszDeviceName = Tcp/Ip 2026-09-29T12:01:40.601+0200, [PLC2]: m_pPlcConfig->gwc->pszAddress = localhost, m_pPlcConfig->gwc->ulPort = 1210 2026-09-29T12:01:40.601+0200, [PLC2]: m_pDeviceDesc->pszName = Tcp/Ip 2026-09-29T12:01:40.601+0200, [__CommState] : Initially added implicit variable. 2026-09-29T12:01:40.601+0200, [PLC2]: m_pDeviceDesc->pszInstance = TCPIP_0_102_ 2026-09-29T12:01:40.601+0200, [PLC2]: m_pDeviceDesc->ulNumParams = 5 2026-09-29T12:01:40.601+0200, [PLC2]: parameter0 = Address, value0 = 192.168.0.102 2026-09-29T12:01:40.601+0200, [PLC2]: parameter1 = Port, value1 = 1201 2026-09-29T12:01:40.601+0200, [PLC2]: parameter2 = Motorola byteorder, value2 = Yes 2026-09-29T12:01:40.601+0200, [PLC2]: parameter3 = SymbolFilePath, value3 = C:\Windows\system32\ 2026-09-29T12:01:40.601+0200, [PLC2]: parameter4 = WriteThroughReadCache, value4 = 1 2026-09-29T12:01:40.601+0200, [PLC2]: ----------------------------------- 2026-09-29T12:01:40.601+0200, [PLC2]: CPLCHandler: Interface: IT_GATEWAY used 2026-09-29T12:01:40.602+0200, [PLC1]: m_pDeviceDesc->pszName = Tcp/Ip 2026-09-29T12:01:40.602+0200, [PLC1]: m_pDeviceDesc->pszInstance = TCPIP_0_101 2026-09-29T12:01:40.602+0200, [__CommStateOK] : Initially added implicit variable. 2026-09-29T12:01:40.602+0200, [PLC3]: ---------- Configuration ---------- 2026-09-29T12:01:40.602+0200, [PLC3]: PLCHandler Version: 3.5.20.0 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->ulId = 2, m_pPlcConfig->pszName = PLC3 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->it = IT_GATEWAY, m_pPlcConfig->bActive = 1 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->bLogToFile = 1, m_pPlcConfig->ulLogFilter = 0xF 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->bMotorola = 1, m_pPlcConfig->bLogin = 1 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->ulBufferSize = 4800, m_pPlcConfig->bPreCheckIdentity = 0 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->ulHwVersion = 0 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->ulTimeout = 10000, m_pPlcConfig->ulNumTries = 3 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->ulWaitTime = 10000, m_pPlcConfig->ulReconnectTime = 15000 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->pszProjectName = ZE_PC03 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->gwc->pszDeviceName = Tcp/Ip 2026-09-29T12:01:40.602+0200, [PLC3]: m_pPlcConfig->gwc->pszAddress = localhost, m_pPlcConfig->gwc->ulPort = 1210 2026-09-29T12:01:40.602+0200, [PLC3]: m_pDeviceDesc->pszName = Tcp/Ip 2026-09-29T12:01:40.602+0200, [PLC3]: m_pDeviceDesc->pszInstance = TCPIP_0_103_ 2026-09-29T12:01:40.602+0200, [PLC3]: m_pDeviceDesc->ulNumParams = 5 2026-09-29T12:01:40.602+0200, [PLC3]: parameter0 = Address, value0 = 192.168.0.103 2026-09-29T12:01:40.602+0200, [PLC3]: parameter1 = Port, value1 = 1201 2026-09-29T12:01:40.602+0200, [PLC3]: parameter2 = Motorola byteorder, value2 = Yes 2026-09-29T12:01:40.602+0200, [PLC3]: parameter3 = SymbolFilePath, value3 = C:\Windows\system32\ 2026-09-29T12:01:40.602+0200, [PLC3]: parameter4 = WriteThroughReadCache, value4 = 1 2026-09-29T12:01:40.602+0200, [PLC3]: ----------------------------------- 2026-09-29T12:01:40.602+0200, [PLC3]: CPLCHandler: Interface: IT_GATEWAY used 2026-09-29T12:01:40.603+0200, [PLC1]: m_pDeviceDesc->ulNumParams = 5 2026-09-29T12:01:40.603+0200, [PLC1]: parameter0 = Address, value0 = 192.168.0.101 2026-09-29T12:01:40.603+0200, [PLC1]: parameter1 = Port, value1 = 1201 2026-09-29T12:01:40.603+0200, [PLC1]: parameter2 = Motorola byteorder, value2 = Yes 2026-09-29T12:01:40.603+0200, [PLC1]: parameter3 = SymbolFilePath, value3 = C:\Windows\system32\ 2026-09-29T12:01:40.603+0200, [PLC1]: parameter4 = WriteThroughReadCache, value4 = 1 2026-09-29T12:01:40.603+0200, [PLC1]: ----------------------------------- 2026-09-29T12:01:40.603+0200, [PLC1]: CPLCHandler: Interface: IT_GATEWAY used 2026-09-29T12:01:40.623+0200, [PLC2]: CPLCHandler: Reconnect[1]: Reconnect cycle begin... 2026-09-29T12:01:40.623+0200, [PLC3]: CPLCHandler: Reconnect[1]: Reconnect cycle begin... 2026-09-29T12:01:40.623+0200, [PLC1]: CPLCHandler: Reconnect[1]: Reconnect cycle begin... 2026-09-29T12:01:40.623+0200, [PLC1]: CPLCHandler: Reconnect[1]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:01:40.623+0200, [PLC3]: CPLCHandler: Reconnect[1]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:01:40.625+0200, [PLC2]: CPLCHandler: Reconnect[1]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:01:40.850+0200, * ERROR: [PLC2]: CPLCHandler: Reconnect[1]: FAILED! Symbols were loaded offline 2026-09-29T12:01:40.850+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[1]: FAILED! Symbols were loaded offline 2026-09-29T12:01:40.851+0200, [PLC2]: Open communication successful 2026-09-29T12:01:40.851+0200, [PLC2]: Starting adding new symbols 746... 2026-09-29T12:01:40.852+0200, [PLC3]: Open communication successful 2026-09-29T12:01:40.852+0200, [PLC3]: Starting adding new symbols 1168... 2026-09-29T12:01:40.875+0200, [PLC2]: Adding symbols finished 2026-09-29T12:01:40.875+0200, [PLC2]: CPLCHandler: Reconnect[1]: Reconnect cycle end 2026-09-29T12:01:40.881+0200, [PLC3]: Adding symbols finished 2026-09-29T12:01:40.881+0200, [PLC3]: CPLCHandler: Reconnect[1]: Reconnect cycle end 2026-09-29T12:01:45.928+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[1]: FAILED! Symbols were loaded offline 2026-09-29T12:01:45.928+0200, [PLC1]: Open communication successful 2026-09-29T12:01:45.929+0200, [PLC1]: Starting adding new symbols 499... 2026-09-29T12:01:45.933+0200, [PLC1]: Adding symbols finished 2026-09-29T12:01:45.933+0200, [PLC1]: CPLCHandler: Reconnect[1]: Reconnect cycle end 2026-09-29T12:01:46.110+0200, OPC-Server started successful. 2026-09-29T12:01:50.625+0200, [PLC1]: CPLCHandler: Reconnect[2]: Reconnect cycle begin... 2026-09-29T12:01:50.625+0200, [PLC1]: CPLCHandler: Reconnect[2]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:01:55.625+0200, [PLC3]: CPLCHandler: Reconnect[2]: Reconnect cycle begin... 2026-09-29T12:01:55.625+0200, [PLC2]: CPLCHandler: Reconnect[2]: Reconnect cycle begin... 2026-09-29T12:01:55.625+0200, [PLC2]: CPLCHandler: Reconnect[2]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:01:55.625+0200, [PLC3]: CPLCHandler: Reconnect[2]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:01:55.625+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[2]: FAILED! 2026-09-29T12:01:55.625+0200, [PLC3]: CPLCHandler: Reconnect[2]: Reconnect cycle end 2026-09-29T12:01:55.699+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[2]: FAILED! 2026-09-29T12:01:55.699+0200, [PLC1]: CPLCHandler: Reconnect[2]: Reconnect cycle end 2026-09-29T12:01:59.341+0200, ERROR: [PLC2]: CPLCHandler: Reconnect[2]: FAILED! 2026-09-29T12:01:59.341+0200, [PLC2]: CPLCHandler: Reconnect[2]: Reconnect cycle end 2026-09-29T12:02:00.626+0200, [PLC1]: CPLCHandler: Reconnect[3]: Reconnect cycle begin... 2026-09-29T12:02:00.626+0200, [PLC1]: CPLCHandler: Reconnect[3]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:05.700+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[3]: FAILED! 2026-09-29T12:02:05.700+0200, [PLC1]: CPLCHandler: Reconnect[3]: Reconnect cycle end 2026-09-29T12:02:10.626+0200, [PLC3]: CPLCHandler: Reconnect[3]: Reconnect cycle begin... 2026-09-29T12:02:10.626+0200, [PLC2]: CPLCHandler: Reconnect[3]: Reconnect cycle begin... 2026-09-29T12:02:10.626+0200, [PLC3]: CPLCHandler: Reconnect[3]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:10.626+0200, [PLC2]: CPLCHandler: Reconnect[3]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:10.626+0200, ERROR: [PLC2]: CPLCHandler: Reconnect[3]: FAILED! 2026-09-29T12:02:10.626+0200, [PLC2]: CPLCHandler: Reconnect[3]: Reconnect cycle end 2026-09-29T12:02:10.627+0200, [PLC1]: CPLCHandler: Reconnect[4]: Reconnect cycle begin... 2026-09-29T12:02:10.627+0200, [PLC1]: CPLCHandler: Reconnect[4]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:10.627+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[4]: FAILED! 2026-09-29T12:02:10.627+0200, [PLC1]: CPLCHandler: Reconnect[4]: Reconnect cycle end 2026-09-29T12:02:15.693+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[3]: FAILED! 2026-09-29T12:02:15.693+0200, [PLC3]: CPLCHandler: Reconnect[3]: Reconnect cycle end 2026-09-29T12:02:20.627+0200, [PLC1]: CPLCHandler: Reconnect[5]: Reconnect cycle begin... 2026-09-29T12:02:20.627+0200, [PLC1]: CPLCHandler: Reconnect[5]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:25.626+0200, [PLC3]: CPLCHandler: Reconnect[4]: Reconnect cycle begin... 2026-09-29T12:02:25.626+0200, [PLC2]: CPLCHandler: Reconnect[4]: Reconnect cycle begin... 2026-09-29T12:02:25.626+0200, [PLC2]: CPLCHandler: Reconnect[4]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:25.626+0200, [PLC3]: CPLCHandler: Reconnect[4]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:25.626+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[4]: FAILED! 2026-09-29T12:02:25.626+0200, [PLC3]: CPLCHandler: Reconnect[4]: Reconnect cycle end 2026-09-29T12:02:25.699+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[5]: FAILED! 2026-09-29T12:02:25.699+0200, [PLC1]: CPLCHandler: Reconnect[5]: Reconnect cycle end 2026-09-29T12:02:30.629+0200, [PLC1]: CPLCHandler: Reconnect[6]: Reconnect cycle begin... 2026-09-29T12:02:30.629+0200, [PLC1]: CPLCHandler: Reconnect[6]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:30.675+0200, ERROR: [PLC2]: CPLCHandler: Reconnect[4]: FAILED! 2026-09-29T12:02:30.675+0200, [PLC2]: CPLCHandler: Reconnect[4]: Reconnect cycle end 2026-09-29T12:02:34.710+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[6]: FAILED! 2026-09-29T12:02:34.710+0200, [PLC1]: CPLCHandler: Reconnect[6]: Reconnect cycle end 2026-09-29T12:02:40.627+0200, [PLC2]: CPLCHandler: Reconnect[5]: Reconnect cycle begin... 2026-09-29T12:02:40.627+0200, [PLC2]: CPLCHandler: Reconnect[5]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:40.628+0200, [PLC3]: CPLCHandler: Reconnect[5]: Reconnect cycle begin... 2026-09-29T12:02:40.628+0200, [PLC3]: CPLCHandler: Reconnect[5]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:40.628+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[5]: FAILED! 2026-09-29T12:02:40.628+0200, [PLC3]: CPLCHandler: Reconnect[5]: Reconnect cycle end 2026-09-29T12:02:40.630+0200, [PLC1]: CPLCHandler: Reconnect[7]: Reconnect cycle begin... 2026-09-29T12:02:40.630+0200, [PLC1]: CPLCHandler: Reconnect[7]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:40.630+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[7]: FAILED! 2026-09-29T12:02:40.630+0200, [PLC1]: CPLCHandler: Reconnect[7]: Reconnect cycle end 2026-09-29T12:02:44.711+0200, ERROR: [PLC2]: CPLCHandler: Reconnect[5]: FAILED! 2026-09-29T12:02:44.711+0200, [PLC2]: CPLCHandler: Reconnect[5]: Reconnect cycle end 2026-09-29T12:02:50.631+0200, [PLC1]: CPLCHandler: Reconnect[8]: Reconnect cycle begin... 2026-09-29T12:02:50.631+0200, [PLC1]: CPLCHandler: Reconnect[8]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:55.628+0200, [PLC2]: CPLCHandler: Reconnect[6]: Reconnect cycle begin... 2026-09-29T12:02:55.628+0200, [PLC2]: CPLCHandler: Reconnect[6]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:55.629+0200, [PLC3]: CPLCHandler: Reconnect[6]: Reconnect cycle begin... 2026-09-29T12:02:55.629+0200, [PLC3]: CPLCHandler: Reconnect[6]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:02:55.629+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[6]: FAILED! 2026-09-29T12:02:55.629+0200, [PLC3]: CPLCHandler: Reconnect[6]: Reconnect cycle end 2026-09-29T12:02:55.690+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[8]: FAILED! 2026-09-29T12:02:55.690+0200, [PLC1]: CPLCHandler: Reconnect[8]: Reconnect cycle end 2026-09-29T12:02:59.692+0200, ERROR: [PLC2]: CPLCHandler: Reconnect[6]: FAILED! 2026-09-29T12:02:59.692+0200, [PLC2]: CPLCHandler: Reconnect[6]: Reconnect cycle end 2026-09-29T12:03:00.632+0200, [PLC1]: CPLCHandler: Reconnect[9]: Reconnect cycle begin... 2026-09-29T12:03:00.632+0200, [PLC1]: CPLCHandler: Reconnect[9]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:04.716+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[9]: FAILED! 2026-09-29T12:03:04.716+0200, [PLC1]: CPLCHandler: Reconnect[9]: Reconnect cycle end 2026-09-29T12:03:10.628+0200, [PLC2]: CPLCHandler: Reconnect[7]: Reconnect cycle begin... 2026-09-29T12:03:10.628+0200, [PLC2]: CPLCHandler: Reconnect[7]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:10.629+0200, [PLC3]: CPLCHandler: Reconnect[7]: Reconnect cycle begin... 2026-09-29T12:03:10.629+0200, [PLC3]: CPLCHandler: Reconnect[7]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:10.629+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[7]: FAILED! 2026-09-29T12:03:10.629+0200, [PLC3]: CPLCHandler: Reconnect[7]: Reconnect cycle end 2026-09-29T12:03:10.632+0200, [PLC1]: CPLCHandler: Reconnect[10]: Reconnect cycle begin... 2026-09-29T12:03:10.632+0200, [PLC1]: CPLCHandler: Reconnect[10]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:10.632+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[10]: FAILED! 2026-09-29T12:03:10.633+0200, [PLC1]: CPLCHandler: Reconnect[10]: Reconnect cycle end 2026-09-29T12:03:14.762+0200, ERROR: [PLC2]: CPLCHandler: Reconnect[7]: FAILED! 2026-09-29T12:03:14.762+0200, [PLC2]: CPLCHandler: Reconnect[7]: Reconnect cycle end 2026-09-29T12:03:20.634+0200, [PLC1]: CPLCHandler: Reconnect[11]: Reconnect cycle begin... 2026-09-29T12:03:20.634+0200, [PLC1]: CPLCHandler: Reconnect[11]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:24.730+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[11]: FAILED! 2026-09-29T12:03:24.730+0200, [PLC1]: CPLCHandler: Reconnect[11]: Reconnect cycle end 2026-09-29T12:03:25.630+0200, [PLC2]: CPLCHandler: Reconnect[8]: Reconnect cycle begin... 2026-09-29T12:03:25.630+0200, [PLC2]: CPLCHandler: Reconnect[8]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:25.631+0200, [PLC3]: CPLCHandler: Reconnect[8]: Reconnect cycle begin... 2026-09-29T12:03:25.631+0200, [PLC3]: CPLCHandler: Reconnect[8]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:25.631+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[8]: FAILED! 2026-09-29T12:03:25.631+0200, [PLC3]: CPLCHandler: Reconnect[8]: Reconnect cycle end 2026-09-29T12:03:29.742+0200, ERROR: [PLC2]: CPLCHandler: Reconnect[8]: FAILED! 2026-09-29T12:03:29.742+0200, [PLC2]: CPLCHandler: Reconnect[8]: Reconnect cycle end 2026-09-29T12:03:30.635+0200, [PLC1]: CPLCHandler: Reconnect[12]: Reconnect cycle begin... 2026-09-29T12:03:30.635+0200, [PLC1]: CPLCHandler: Reconnect[12]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:34.717+0200, ERROR: [PLC1]: CPLCHandler: Reconnect[12]: FAILED! 2026-09-29T12:03:34.718+0200, [PLC1]: CPLCHandler: Reconnect[12]: Reconnect cycle end 2026-09-29T12:03:40.630+0200, [PLC2]: CPLCHandler: Reconnect[9]: Reconnect cycle begin... 2026-09-29T12:03:40.630+0200, [PLC2]: CPLCHandler: Reconnect[9]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:40.631+0200, [PLC3]: CPLCHandler: Reconnect[9]: Reconnect cycle begin... 2026-09-29T12:03:40.632+0200, [PLC3]: CPLCHandler: Reconnect[9]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:40.632+0200, ERROR: [PLC3]: CPLCHandler: Reconnect[9]: FAILED! 2026-09-29T12:03:40.632+0200, [PLC3]: CPLCHandler: Reconnect[9]: Reconnect cycle end 2026-09-29T12:03:40.637+0200, [PLC1]: CPLCHandler: Reconnect[13]: Reconnect cycle begin... 2026-09-29T12:03:40.637+0200, [PLC1]: CPLCHandler: Reconnect[13]: STATE_PLC_NOT_CONNECTED: tries to open channel... 2026-09-29T12:03:40.637+0200, * ERROR: [PLC1]: CPLCHandler: Reconnect[13]: FAILED! 2026-09-29T12:03:40.637+0200, [PLC1]: CPLCHandler: Reconnect[13]: Reconnect cycle end Ich kenne mich nicht so gut aus mit dem Thema OPC. Aber bis vor dem Windows Update hat es funktioniert.. Bin mit meiner Fehlersuche langsam am Ende...!
Last updated: 2026-09-29
Post by adamrobotic on llcallback() iec exception caught cmpid=0x00000002, eventid=0x00010008
CODESYS Forge
talk
(Post)
Hi All, Recently I have been experiencing a issue in CodeSys SP16 Patch 3, with a exception which comes up after I have made several online changes. callcallback() iec exception caught cmpid=0x00000002, eventid=0x00010008, after I experience this fault then I receive a error message for any subsequent online change "online change failed, no task gap within 10000ms". To recover either the controller needs a orgin reset, which will allow online edits thereafter until falling back into the loop. I am using a TURCK TX707 product which is controlling robot trajectory, We have hard coded the coordinate data rather than using persistence variables so hence the need to do online changes consistently. I have read on the forum other people have experienced similar issue with the online task gap, but I have no task which have same priority and also monitored the CPU usage and have not seen it go above 13%. Anyones help would be much appreciated, thankyou.
Last updated: 2023-08-18
Post by timvh on Detect "Cancel" Press in FileOpenSave Dialog
CODESYS Forge
talk
(Post)
Maybe there is a better way, but a long time ago I created a test application that worked like this: With a button I opened the dialog and I added a "Input configuration - OnDialogClosed" "Execute ST-Code" action to this same button which called the following Function when the dialog was closed: F_OnFileDialogClosed(pClientData); Below this Function which handled the result: // This function is called from the visualization when the dialog is closed. FUNCTION F_OnFileDialogClosed : BOOL VAR_INPUT pClientData : POINTER TO VisuElems.VisuStructClientData; END_VAR VAR dialogMan : VisuElems.IDialogManager; FileOpenCloseDialog : VisuElems.IVisualisationDialog; result : VisuElems.Visu_DialogResult; _sFileName : STRING(255); END_VAR // the DialogManager is provided via the implicitly available VisuManager dialogMan := VisuElems.g_VisuManager.GetDialogManager(); IF dialogMan <> 0 AND pClientData <> 0 THEN FileOpenCloseDialog := dialogMan.GetDialog('VisuDialogs.FileOpenSave'); // gets the FileOpenSave dialog IF FileOpenCloseDialog <> 0 THEN result := FileOpenCloseDialog.GetResult(); // gets the result (OK, Cancel) of the dialog IF result = VisuElems.Visu_DialogResult.OK THEN // Original code gvlFile.FileListProvider(); _sFileName := CONCAT(gvlFile.FileListProvider._stDirectory, gvlFile.FileListProvider.stFile); // do something with this file name... END_IF END_IF END_IF
Last updated: 2023-09-19
Post by ewi04 on Git with visu
CODESYS Forge
talk
(Post)
Hi, I have several problems with the git extension. Situation: I am working with Codesys v3.5 SP19 Patch 1 and Git V1.2.1.0. The remote repository is GitLab Community Edition v16.1.2. I am working on a project with one other person. Problems: 1: After each start of Codesys all of the visu pages are marked as modified. So we have to discard all changes first. Otherwise the history is not clean and the merge request becomes more complex. I tested it with a new project and only local. I made the observation, that a page is not marked as modified when it is committed a second time (after a restart of codesys). But this is necessary after every change of a page. However, since we are working in a team, it seems we are playing ping-pong and so all pages are marked as modified on each startup. 2: Each image pool causes a parent child conflict. Also in my local project. The only solution that I have found, is to ignore the issue. Does anyone have the same problems? I think it looks more like bugs. Thanks ewi04
Last updated: 2023-11-22
Post by psychoengineer on Cannot Save CSV File on Windows Computer Using CODESYS and Control Win
CODESYS Forge
talk
(Post)
I am currently working on a project using CODESYS and Control Win on a Windows computer. I've encountered an issue where I am unable to save a CSV file. I have followed the standard procedures and used the appropriate file handling functions, but the file is not being created or saved as expected. IF xStartTest THEN sFileName := '\logs.txt'; sFileName := CONCAT(gvl.g_sMainDirectory, sFileName); sFileNameCopy := '\CAAFileCopy.txt'; sFileNameCopy := CONCAT(gvl.g_sMainDirectory, sFileNameCopy); //eWriteState := FILE_OPEN_TRIGGER; xTestDone := FALSE; xError := FALSE; xStartTest := FALSE; END_IF VAR_GLOBAL g_sMainDirectory : STRING := 'C:\LogFiles'; // file path for CSV file END_VAR Despite this, the file does not appear in the specified directory, and no error messages are being generated. I've checked the directory permissions and ensured that the path is correct. Has anyone else experienced a similar issue or have any suggestions on how to resolve this? Any help would be greatly appreciated. Thank you!
Last updated: 2024-07-04
Post by to-ke on Errors with VisuUserManagement library
CODESYS Forge
talk
(Post)
Hallo zusammen, hi all, ich habe den gleichen Fehler. Auf einem Raspberry Pi geht der Fehler weg, wenn ich alles bereinige und dann vollständig übersetze. Wenn das Projekt im Codesys Development System wieder neu geladen wird ist der Fehler aber wieder da. Mit eine Win V3 x64 PLC kann ich den Fehler nur unterbinden wenn ich auf der HMI das VUM_Login einbinde. Dieses brauche ich aber nicht, da ich die HMI für das User Management selbst gestaltet habe. Das funktioniert auch. I have the same error. On a Raspberry Pi the error goes away if I clean everything and then compile completely. When the project is reloaded in the Codesys Development System, the error returns. With a Win V3 x64 PLC I can only prevent the error if I integrate the VUM_Login on the HMI. But I don't need this because I designed the HMI for user management myself. That works too. Anyone have an idea to fix this problem. Many thanks
Last updated: 2024-07-09
Post by solve-it on SysFileOpenAsync
CODESYS Forge
talk
(Post)
Just realized that it is the /dev/input/js0 file. Don't think this is a prob either. Found the ConfigFile. Where and how to add /dev/input/js0? raspberry [SysFile] FilePath.1=/etc/, 3S.dat PlcLogicPrefix=1 [SysTarget] TargetVersionMask=0 TargetVersionCompatibilityMask=0xFFFF0000 [CmpLog] Logger.0.Name=/tmp/codesyscontrol.log Logger.0.Filter=0x0000000F Logger.0.Enable=1 Logger.0.MaxEntries=1000 Logger.0.MaxFileSize=1000000 Logger.0.MaxFiles=1 Logger.0.Backend.0.ClassId=0x00000104 ;writes logger messages in a file Logger.0.Type=0x314 ;Set the timestamp to RTC [CmpSettings] FileReference.0=SysFileMap.cfg, SysFileMap FileReference.1=/etc/CODESYSControl_User.cfg [SysExcept] Linux.DisableFpuOverflowException=1 Linux.DisableFpuUnderflowException=1 Linux.DisableFpuInvalidOperationException=1 [CmpWebServer] ConnectionType=0 [CmpOpenSSL] WebServer.Cert=server.cer WebServer.PrivateKey=server.key WebServer.CipherList=HIGH [SysMem] Linux.Memlock=0 [CmpCodeMeter] InitLicenseFile.0=3SLicense.wbb [SysEthernet] Linux.ProtocolFilter=3 [CmpSchedule] ProcessorLoad.Enable=1 ProcessorLoad.Maximum=95 ProcessorLoad.Interval=5000 DisableOmittedCycleWatchdog=1 [CmpUserMgr] AsymmetricAuthKey=6873d655ac1f166f3743feea42d2f3dd1b39ae40 [CmpSecureChannel] CertificateHash=09fd8d52be4ddd45a709bc9c95e2aa093b3f5695 [SysSocket] Adapter.0.Name="eth0" Adapter.0.EnableSetIpMask=1 ;raspberry [ComponentManager] ;Component.1=CmpGateway ;Component.2=CmpGwCommDrvTcp ;Component.3=CmpGwCommDrvShm [SysCom] ;Linux.Devicefile=/dev/ttyS [CmpBlkDrvCom] ;Com.0.Name=MyCom ;Com.0.Baudrate=115200 ;Com.0.Port=3 ;Com.0.EnableAutoAddressing=1 [SysProcess] Command.0=shutdown [CmpApp] Bootproject.RetainMismatch.Init=1 ;Application.1=Application ;Application.1=Application ;Application.1=Application Application.1=Application [CmpRasPi] Architecture=armv6l [CmpRedundancyConnectionIP] [CmpRedundancy] [CmpSrv] [IoDrvEtherCAT]
Last updated: 2024-07-16
Post by trusty-squire on Confused by dwIpoTime input for SMC_Interpolator
CODESYS Forge
talk
(Post)
Hi, Learning Codesys CNC, and I am confused by the dwIpoTime parameter. I have a basic demo application, using SMC_Interpolator feeding into SMC_TRAFO_Gantry2Tool2, which then sets the position of the x/y SM_Drive_Virtual axis. I also have a C axis which revolves the tool, which is controlled using a simple tangential angle calculation SMC_CalcDirectionFromVector. The GCode I'm using has feed/accel set at 500. The axis configuration limits are well above that (2000). What's strange is that, when I run the simulation, the feed speed changes drastically when I update the variable dwIpoTime. The larger the number, the faster it moves. What's going on here? The documentation only says "This variable has to be set for each call. It represents the cycle time in μsec." Why does it change the feed speed I'm seeing the in simulation? What is a good number to use? The example I was looking at set it at 5000. Screenshot attached.
Last updated: 2024-07-18
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
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.