Using ATSCADA iEnergy Tools for SCADA-Based Energy Monitoring
CODESYS Forge
talk
(Thread)
Using ATSCADA iEnergy Tools for SCADA-Based Energy Monitoring
Last updated: 2026-06-13
Automating SCADA Reports with ATSCADA IExcelPouringTools
CODESYS Forge
talk
(Thread)
Automating SCADA Reports with ATSCADA IExcelPouringTools
Last updated: 2026-06-13
Post by arwie on Use MC_Home without enabling the drive for homing method 35
CODESYS Forge
talk
(Post)
...
Last updated: 2026-06-15
Post by domebruce on TCP communication and TCP Streams
CODESYS Forge
talk
(Post)
Hello, I'm doing some tests with TCP communication using Reader, Writer and TCP_Process components from NBS 4.0. I'm having a really hard time finding documentation and examples on these components. I found a very simple and incomplete example here: https://forge.codesys.com/prj/codesys-example/nbs/home/Home/. The documentation is also insufficient: it only provides the names of the FBs, Methods and their parameters, but no descriptions about how to use them. Do you have any suggestions on where to find more support? More generally, why is the free online CoDeSys documentation so poor? What do you think? Thanks Domenico Canavero
Last updated: 2026-06-16
Codesys Installation problem
CODESYS Forge
talk
(Thread)
Codesys Installation problem
Last updated: 2026-06-16
Post by anthony-p on Codesys Installation problem
CODESYS Forge
talk
(Post)
Hello, I'm trying to install Codesys SP21p6 (but the error occurs in SP22 too for eg.) but it fails to install ApplicationComposer. Trying to install myself (version 4.4.0.0 or 4.5.0.0) by clicking 'changing the installation' from the Codesys Installer isn't better. The only message I get is "An error occured during the installation: The file [..]/ApplicationComposer.plugin.dll isn't a valid plugin" How is that? The installation went good the last time before a reinstallation... However, installing the version 4.3.0.0 seems to be successful without knowing what's the difference. I already tried to : - Restart my computer - Delete all temporary files in C:\ProgramData\CODESYS\Temporary Files - Download the package from the store - Compare the ApplicationComposer.plugin.dll from another computer (where the installation is OK) and it's exatly the same For your information, I can install other packages, such as Codesys CFC Can you help me? Do you have any idea of what could be the problem?
Last updated: 2026-06-16
EVC - issues assigning variables from VarGlobal lists
CODESYS Forge
talk
(Thread)
EVC - issues assigning variables from VarGlobal lists
Last updated: 2026-06-17
Post by thomasgaab on EVC - issues assigning variables from VarGlobal lists
CODESYS Forge
talk
(Post)
Updated the Codesys Safety SIL2 package from v3.5.18.1 to v3.5.22.10 Codesys Version 64 3.5.18.0 After the update the assignment of variables from different VarGlobal lists was unstable. Selecting one group could cause another group to be deselected after code generation. I was unable to perform a compilation were all variables maintained the selection after code generation. Rolled back to the older version and the issue seem to be mostly solved.
Last updated: 2026-06-17
Post by winki on ModbusFB ClientRequest: never recovers after a single ReplyTimeout (requires full download)
CODESYS Forge
talk
(Post)
Library: ModbusFB (CODESYS Modbus package) IDE / Runtime: CODESYS V3.5 SP___ / Control runtime ___ Target: ___ (e.g. gateway, Linux ARM64 / Debian) Slave: Modbus TCP inverter Summary I poll a Modbus TCP slave with a permanent connection: one ClientTCP (kept connected, xConnect:=TRUE) and one ClientRequestReadHoldingRegisters, triggered cyclically. Everything works fine after a fresh application download. But as soon as one single ReplyTimeout occurs (slave temporarily not answering), the request never recovers. It stays stuck and no further messages are sent, even though the TCP connection is still reported as alive. Only a full application download brings it back — an online change or a runtime reset is not enough / not what I want in production. State observed when stuck So the connection is alive, the request finished in ReplyTimeout, the FB is back to _state = None, but udiNumMsgSent no longer increases — as if a new rising edge on xExecute is no longer accepted / no longer produces a new message. My trigger logic (simplified) Each PLC cycle, in this order: If the request is fully at rest (NOT xExecute AND NOT xBusy AND NOT xDone AND NOT xError) and a read is pending, I set xExecute := TRUE. I call clientTcp() then clientRequest(rClient := clientTcp) once each, per cycle. On xDone or xError, I set xExecute := FALSE. I made sure to insert at least one full cycle with xExecute = FALSE (seen by the FB call) before re-triggering, so the falling edge is processed. Questions After a ReplyTimeout (xError = TRUE), what is the exact, correct sequence to re-trigger the same ClientRequest so a new message is actually sent again? Is a full cycle with xExecute = FALSE between two executions mandatory? Is there a known condition where, after ReplyTimeout, the ClientTCP keeps xConnected = TRUE but silently stops sending new requests (e.g. an internal request queue / _udiRequestId that gets out of sync)? udiNumMsgSent freezing at 23 while the FB shows _state = None is what puzzles me. Is the recommended pattern to drop the connection (ClientTCP.xConnect := FALSE for one cycle, then TRUE) on a request error, rather than keeping it alive? The docs state a request error does not close the connection, so I kept it open — but maybe that is the issue here. Could the large uiStartItem (50514) be relevant? It works right after download, so addressing seems correct, but I want to rule it out. Any guidance on the canonical recovery pattern after a request timeout would be greatly appreciated. Thanks!
Last updated: 7 days ago
ModbusFB ClientRequest: never recovers after a single ReplyTimeout (requires full download)
CODESYS Forge
talk
(Thread)
ModbusFB ClientRequest: never recovers after a single ReplyTimeout (requires full download)
Last updated: 7 days ago
Frustration-Fueled Feedback on Project File Management and Git Integration
CODESYS Forge
talk
(Thread)
Frustration-Fueled Feedback on Project File Management and Git Integration
Last updated: 5 days ago
Post by dakmueller on Zielsystem Problem nach Bibliotheken hinzufügen
CODESYS Forge
talk
(Post)
Hallo, ich habe ein altes Projekt geöffnet um auf einer Anlage eine Änderung einzufügen. Beim öffnen haben etliche Bibliotheken gefehlt. Diese habe ich dann installiert und übersetzt. Online kam ich nicht, weil kein Zielsystem angegeben war. Beim Übersetzten gab es keine Meldungen. Als ich das Zielsystem XV-1xx-V2.3.9 SP3 ausgewählt habe und das übersetzt kamen viele Fehlermeldungen. Viele Variablen nicht deklariert. Die Steuerung/HMI ist eine EATON XV-102-E8-57TVRC-10. Hilfe
Last updated: 4 days ago
Zielsystem Problem nach Bibliotheken hinzufügen
CODESYS Forge
talk
(Thread)
Zielsystem Problem nach Bibliotheken hinzufügen
Last updated: 4 days ago
Post by dakmueller on Zielsystem Problem nach Bibliotheken hinzufügen
CODESYS Forge
talk
(Post)
Hallo, ich habe ein altes Projekt geöffnet um auf einer Anlage eine Änderung einzufügen. Beim öffnen haben etliche Bibliotheken gefehlt. Diese habe ich dann installiert und übersetzt. Online kam ich nicht, weil kein Zielsystem angegeben war. Beim Übersetzten gab es keine Meldungen. Als ich das Zielsystem XV-1xx-V2.3.9 SP3 ausgewählt habe und das übersetzt kamen viele Fehlermeldungen. Viele Variablen nicht deklariert. Die Steuerung/HMI ist eine EATON XV-102-E8-57TVRC-10. Hilfe
Last updated: 4 days ago
Deutsch 🇩🇪
CODESYS Forge
talk
(Discussion)
German forum
Last updated: 4 days ago
Zielsystem Problem nach Bibliotheken hinzufügen
CODESYS Forge
talk
(Thread)
Zielsystem Problem nach Bibliotheken hinzufügen
Last updated: 4 days ago
Post by dakmueller on Zielsystem Problem nach Bibliotheken hinzufügen
CODESYS Forge
talk
(Post)
Hallo, ich habe ein altes Projekt geöffnet um auf einer Anlage eine Änderung einzufügen. Beim öffnen haben etliche Bibliotheken gefehlt. Diese habe ich dann installiert und übersetzt. Online kam ich nicht, weil kein Zielsystem angegeben war. Beim Übersetzten gab es keine Meldungen. Als ich das Zielsystem XV-1xx-V2.3.9 SP3 ausgewählt habe und das übersetzt kamen viele Fehlermeldungen. Viele Variablen nicht deklariert. Die Steuerung/HMI ist eine EATON XV-102-E8-57TVRC-10. Hilfe
Last updated: 4 days ago
Post by alexschooneveld on OPC UA PubSub SL 1.3 — UADP WriterGroup with assigned PSS.SecurityGroup still publishes plaintext
CODESYS Forge
talk
(Post)
I am currently investigating an OPC UA PubSub connection over UDP. When I don't use encryption, the publish and subscribe are working correctly. But with encryption it does not. Environment OPC UA PubSub SL 1.3.0.0 (namespace UADP) OPC UA PubSub Security 1.3.0.0 (namespace PSS) OPC UA PubSub Base 1.3.0.0 (namespace PSB, incl. PSS.SecurityGroup / PSS.CONFIG) Programmatic PubSub in a CFC: UADP.Configuration → UADP.Connection → UADP.writerGroup → UADP.writer → writerDataSet, plus a CyclicCall gated by xEnable. Goal: publish secured UADP, SignAndEncrypt, policy PubSub-Aes256-CTR. What I do (one-shot, before xEnable := TRUE): fbSecurityGroup.SetInitialValue( 'http://opcfoundation.org/UA/SecurityPolicy#PubSub-Aes256-CTR', PSB.SECURITY.SIGNING_AND_ENCRYPTION); stSecurityCfg := fbSecurityGroup.GetConfig(eErrorID => eError); // eError=NO_ERROR, udiEncryptionKeySize=32 eError := fbSecurityGroup.SetSecurityKeys(udiTokenId, ADR(abyKey), SIZEOF(abyKey), 2436001000); // eError=NO_ERROR, SIZEOF=68 // writerGroup.itfSecurityGroup := fbSecurityGroup -- set in the WriterGroup block's Parameters (a per-scan code write got overwritten) What I verified eError = NO_ERROR after both GetConfig and SetSecurityKeys; udiEncryptionKeySize = 32. Key length = 68 bytes (signing 32 ‖ encrypt 32 ‖ nonce 4). itfSecurityGroup is set via the WriterGroup's Parameters (so it isn't clobbered each scan). Init runs before xEnable (the writer doesn't run with xEnable=FALSE). The UADP.writerGroup FB exposes only itfSecurityGroup for security — no SecurityMode/MessageSecurityMode property. Result: the published datagrams are still plaintext — ExtendedFlags1 = 0x01 (security bit 0x10 clear), no security header: b1 01 29 00 0f 16 00 … (PublisherId 41, WriterGroupId 22, RawData, no security) Questions With UADP.writerGroup, is assigning a configured + keyed PSS.SecurityGroup to itfSecurityGroup sufficient to enable message security, or is there an additional step/property/method to switch the WriterGroup to SignAndEncrypt? At what point in the WriterGroup lifecycle is itfSecurityGroup read? Must it be assigned/keyed before xActive, and does the group need a stop→start to pick it up? Is there a required call order, and does SetSecurityKeys need to be called once or repeatedly? Should security be configured on the Connection/Configuration level rather than (or in addition to) the WriterGroup? Is there a working example of secured (SignAndEncrypt) programmatic UADP publishing with this library, or a known limitation in 1.3? How can I read back at runtime whether security is actually active (via itfDiagnostics or similar)? Additional information I can confirm that the consumer side works — i.e. a standard subscriber decrypts the same keys fine — so the keys/profile aren't the issue. The Wireshark capture of the published message is: 0000 b1 01 29 00 0f 16 00 df 0d bb 25 01 00 0e 00 1b ..).......%..... 0010 0e 00 00 00 00 00 00 00 ........
Last updated: 3 days ago
Post by alexschooneveld on OPC UA PubSub SL 1.3 — UADP WriterGroup with assigned PSS.SecurityGroup still publishes plaintext
CODESYS Forge
talk
(Post)
I am currently investigating an OPC UA PubSub connection over UDP. When I don't use encryption, the publish and subscribe are working correctly. But with encryption it does not. Environment OPC UA PubSub SL 1.3.0.0 (namespace UADP) OPC UA PubSub Security 1.3.0.0 (namespace PSS) OPC UA PubSub Base 1.3.0.0 (namespace PSB, incl. PSS.SecurityGroup / PSS.CONFIG) Programmatic PubSub in a CFC: UADP.Configuration → UADP.Connection → UADP.writerGroup → UADP.writer → writerDataSet, plus a CyclicCall gated by xEnable. Goal: publish secured UADP, SignAndEncrypt, policy PubSub-Aes256-CTR. What I do (one-shot, before xEnable := TRUE): fbSecurityGroup.SetInitialValue( 'http://opcfoundation.org/UA/SecurityPolicy#PubSub-Aes256-CTR', PSB.SECURITY.SIGNING_AND_ENCRYPTION); stSecurityCfg := fbSecurityGroup.GetConfig(eErrorID => eError); // eError=NO_ERROR, udiEncryptionKeySize=32 eError := fbSecurityGroup.SetSecurityKeys(udiTokenId, ADR(abyKey), SIZEOF(abyKey), 2436001000); // eError=NO_ERROR, SIZEOF=68 // writerGroup.itfSecurityGroup := fbSecurityGroup -- set in the WriterGroup block's Parameters (a per-scan code write got overwritten) What I verified eError = NO_ERROR after both GetConfig and SetSecurityKeys; udiEncryptionKeySize = 32. Key length = 68 bytes (signing 32 ‖ encrypt 32 ‖ nonce 4). itfSecurityGroup is set via the WriterGroup's Parameters (so it isn't clobbered each scan). Init runs before xEnable (the writer doesn't run with xEnable=FALSE). The UADP.writerGroup FB exposes only itfSecurityGroup for security — no SecurityMode/MessageSecurityMode property. Result: the published datagrams are still plaintext — ExtendedFlags1 = 0x01 (security bit 0x10 clear), no security header: b1 01 29 00 0f 16 00 … (PublisherId 41, WriterGroupId 22, RawData, no security) Questions With UADP.writerGroup, is assigning a configured + keyed PSS.SecurityGroup to itfSecurityGroup sufficient to enable message security, or is there an additional step/property/method to switch the WriterGroup to SignAndEncrypt? At what point in the WriterGroup lifecycle is itfSecurityGroup read? Must it be assigned/keyed before xActive, and does the group need a stop→start to pick it up? Is there a required call order, and does SetSecurityKeys need to be called once or repeatedly? Should security be configured on the Connection/Configuration level rather than (or in addition to) the WriterGroup? Is there a working example of secured (SignAndEncrypt) programmatic UADP publishing with this library, or a known limitation in 1.3? How can I read back at runtime whether security is actually active (via itfDiagnostics or similar)? Additional information I can confirm that the consumer side works — i.e. a standard subscriber decrypts the same keys fine — so the keys/profile aren't the issue. The Wireshark capture of the published message is: 0000 b1 01 29 00 0f 16 00 df 0d bb 25 01 00 0e 00 1b ..).......%..... 0010 0e 00 00 00 00 00 00 00 ........
Last updated: 3 days ago
OPC UA PubSub SL 1.3 — UADP WriterGroup with assigned PSS.SecurityGroup still publishes plaintext
CODESYS Forge
talk
(Thread)
OPC UA PubSub SL 1.3 — UADP WriterGroup with assigned PSS.SecurityGroup still publishes plaintext
Last updated: 3 days ago
OPC UA PubSub SL 1.3 — UADP WriterGroup with assigned PSS.SecurityGroup still publishes plaintext
CODESYS Forge
talk
(Thread)
OPC UA PubSub SL 1.3 — UADP WriterGroup with assigned PSS.SecurityGroup still publishes plaintext
Last updated: 3 days ago
Post by fabiodasilveira on Dynamic Setting IP Address from IEC code
CODESYS Forge
talk
(Post)
It is a shame that it does not work with Eaton XC303 PLCs :(
Last updated: 3 days ago
Why Is Academic Writing So Stressful for Many Students?
CODESYS Forge
talk
(Thread)
Why Is Academic Writing So Stressful for Many Students?
Last updated: 3 days ago
Runtime 🇬🇧
CODESYS Forge
talk
(Discussion)
Related questions to SoftPLCs e.g. Raspberry Pi, Beaglebone, IoT2000 and other platforms
Last updated: 2 days ago
<Dereference of invalid pointer>
CODESYS Forge
talk
(Thread)
<dereference of="" invalid="" pointer=""></dereference>
Last updated: 2 days ago
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.