Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications
CODESYS Forge
talk
(Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28
Post by charly29160 on CmpCharDevice blocks gpiochip access on Raspberry Pi 5 since update from SP18 to SP21
CODESYS Forge
talk
(Post)
Hallo Herr Schwellinger - Danke für die Info. Der Fehler besteht weiterhin: Follow-up: Rootless mode is not the cause here — verified with ps aux, the runtime binary runs as root: root 1974 48.9 0.7 854852 62140 ? SLl 13:00 0:04 /opt/codesys/bin/codesyscontrol.bin /etc/codesyscontrol/CODESYSControl.cfg gpioinfo gpiochip0 as root also works flawlessly (all 54 lines listed correctly, no permission errors at the kernel level). So the block is happening purely inside CmpCharDevice's own sandboxing, not at the Linux/kernel permission level and not due to a dedicated unprivileged user. The correct config key to whitelist /dev/gpiochip0 for CmpCharDevice is still what I'm looking for. Im Voraus herzlichen Dank für Ihre Hilfe Karl Schuler
Last updated: 2026-07-20
Post by charly29160 on CmpCharDevice blocks gpiochip access on Raspberry Pi 5 since update from SP18 to SP21
CODESYS Forge
talk
(Post)
Hallo Herr Schwellinger - Danke für die Info. Der Fehler besteht weiterhin: Follow-up: Rootless mode is not the cause here — verified with ps aux, the runtime binary runs as root: root 1974 48.9 0.7 854852 62140 ? SLl 13:00 0:04 /opt/codesys/bin/codesyscontrol.bin /etc/codesyscontrol/CODESYSControl.cfg gpioinfo gpiochip0 as root also works flawlessly (all 54 lines listed correctly, no permission errors at the kernel level). So the block is happening purely inside CmpCharDevice's own sandboxing, not at the Linux/kernel permission level and not due to a dedicated unprivileged user. The correct config key to whitelist /dev/gpiochip0 for CmpCharDevice is still what I'm looking for. Im Voraus herzlichen Dank für Ihre Hilfe Karl Schuler
Last updated: 2026-07-20
Post by gatto on Two licenses have to be installed forgot to enable one license
CODESYS Forge
talk
(Post)
Sorry, I've never used Raspy. Maybe someone else can help. From personal experience, I've had license activation issues, but it was caused by my company firewall, which was blocking traffic from the Codesys license server. So I found that the license was listed as activated on the server (and therefore used and no longer activable), but it wasn't present in the PLC. I solved the problem by using an unblocked internet connection when I needed to activate the purchased license ticket. Since then, the activation process has always worked, and I've never lost any licenses.
Last updated: 2026-02-03
Post by gseidel on CAM Motion Recover after STO
CODESYS Forge
talk
(Post)
Dear Mr. Kolev, I'm not sure I understood correctly. But this is my take on your question: When the STO of the slave is triggered, store the current master position (e.g. 225 units) After the reset of the slave error, call MC_SetPosition on the virtual master and reset it to the stored position (225 units) Optionally, before MC_CamIn is restartet, move the slave back to the slave position corresponding to the stored master position. (If you do this, no ramping in will be necessary) Restart MC_CamIn, with absolute master position and absolute slave position. Choose the StartMode that is appropriate for your machine. Best regards, Georg Seidel
Last updated: 2026-02-16
Post by gordonkeller360 on Escape character behavior for hex values in string -- what gives?
CODESYS Forge
talk
(Post)
I have a program which sequentially places byte representations of characters from a string into an array. FUNCTION_BLOCK MoveBytesFromString VAR_IN_OUT abRxBuf: ARRAY [0..79] OF BYTE; END_VAR VAR testString : STRING := '$0A$R$L$TTesting,123...$94$86$0A'; iCount: DINT; END_VAR ---------------------------------------------------------------------------------------- // clear the buffer MEM.MemFill(ADR(abRxBuf), 80, 0); FOR iCount := 0 TO LEN(testString) - 1 DO // account for undesired null terminator of string abRxBuf[iCount] := testString[iCount]; END_FOR Escaped characters, like $T, $N, etc. work just fine, and so do their hex representation counterparts ($09, $0A, etc). However, when I put something like $94, I get a set of nonsense values... see image attached after one spin of the program. Could someone explain to me what is happening here? I'll continue to investigate...
Last updated: 2026-03-09
Post by poliautomacao on Absolute movement controlled by an external encoder.
CODESYS Forge
talk
(Post)
Hello, I made this configuration, I'm moving the encoder value to SM_Driver_PosControl.in.wActPosition. When I make the absolute movement of my PosControl axis, my physical drive axis rotates perfectly, but I noticed that the movement is not followed by the encoder. That is, if I hold the encoder and keep it in position 0, the PosControl axis makes the absolute movement of 314 mm and stops, which is strange because the encoder is at 0. Theoretically, the PosControl axis should accelerate to try to compensate for the movement error. I haven't yet achieved perfect functionality.
Last updated: 2026-03-24
Post by egr99 on Modbus TCP Server connection is ESTABLISHED but all holding registers are value 0?
CODESYS Forge
talk
(Post)
You're absolutely right. Sorry for that. In the meantime I wrote a Function block to handle the reads and writes to the different attached RTU-devices. It processes the parameter like (str_Modbus:=(usiSlave:=1, uiFC:=5, uiLEN:=1, uiOFFSET:=0, uiInterval:=500)) and the corresponding output, waits for the response and processes next request in a 5-state procedure. It's working for 2 gateways (stable without errors, although error recovery is included). But nevertheless it should be possible with the Channel definitions of Codesys. Much easier to maintain :)
Last updated: 2026-04-08
Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications
CODESYS Forge
talk
(Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28
Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications
CODESYS Forge
talk
(Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28
Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications
CODESYS Forge
talk
(Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28
Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications
CODESYS Forge
talk
(Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28
Post by brouwyka on JSONByteArrayWriter problem?
CODESYS Forge
talk
(Post)
Hey there! I am currently running into the exact same issue. The JsonData object has all inexes & parent indexes in the way I expect, everything is correctly "linked". It purely seems that the writer is incorrectly parsing said JsonData, not based on parent & child index, but on something else that breaks it and puts things at the root, instead of the specified parent index. Did you ever manage to find a solution, or another way of achieving your JSON composing? I'm currently working on Codesys V3.5 SP19 Patch 7 with IIOT Libraries SL 1.13.0.0, specifically JSON Utilities SL 1.13.0.0 (to send requests to APIs with JSON bodies using Web Client SL 1.13.0.0).
Last updated: 2026-06-08
Post by timvh on HTML5 visualization controls disabled on CODESYS Control for Linux SL - overlay not supported?
CODESYS Forge
talk
(Post)
I was able to reproduce this by doing something wrong. I guess what you did is first create an application for the Control Win, or some other device and then switched this to the Linux SL. But then the Visualization Manager still has the "TargetVisu" component, besides the WebVisu component. The Linux SL doesn't support this TargetVisu as part of the runtime. You should run a separate process for this. So remove the TargetVisu from the Visualization Manager and then you will be able to load the application.
Last updated: 2026-08-06
Post by thysonfury on OPTO22 Groov Epic PR2 Modbus Comms Dropping out every 2 hours and 4 Mins
CODESYS Forge
talk
(Post)
Hi after some assistance with an error on a Groov PR2 PLC. We have a few different communications set up as shown below: One Modbus TCP Slave Connection - ( Sending / Receiving Data from a PC ) Two Modbus TCP Master Connection - ( Reading Data from a UPS Panel and Reading Data Gas Chromatograph) One Modbus RTU Slave Connection 485 - (Reading Data from a fire and gas panel) One Modbus RTU Master Connection 485 - (Sending Data to a Telemetry Unit) All Licenses have been installed as per OPTO22 suggestions of the order below: Modbus TCP Master Modbus TCP Slave Modbus RTU Master Modbus RTU Slave When I check on License manager the RTU Master license seems to disappear on installing the RTU. (What ever reason I’ve been told this is “normal”). If I use Device License Read It will successfully read all the licenses correctly. Now the issue is every 2 hours and between 4. For what ever reason the communications seems to end and lock up for about 20 seconds. During this time even if I was logged into the PLC it would kick me off and I’d have to re type the password to enter. Most of the devices can handle this however the RTU flags up a communications failure at the SCADA and is raising alarms every 2 hours and 4 mins. We’ve had multiple people go through the code to check for anything obvious. Does anyone have any ideas?
Last updated: 2024-04-15
Post by thysonfury on OPTO22 Groov Epic PR2 Modbus Comms Dropping out every 2 hours and 4 Mins
CODESYS Forge
talk
(Post)
Hi after some assistance with an error on a Groov PR2 PLC. We have a few different communications set up as shown below: One Modbus TCP Slave Connection - ( Sending / Receiving Data from a PC ) Two Modbus TCP Master Connection - ( Reading Data from a UPS Panel and Reading Data Gas Chromatograph) One Modbus RTU Slave Connection 485 - (Reading Data from a fire and gas panel) One Modbus RTU Master Connection 485 - (Sending Data to a Telemetry Unit) All Licenses have been installed as per OPTO22 suggestions of the order below: Modbus TCP Master Modbus TCP Slave Modbus RTU Master Modbus RTU Slave When I check on License manager the RTU Master license seems to disappear on installing the RTU. (What ever reason I’ve been told this is “normal”). If I use Device License Read It will successfully read all the licenses correctly. Now the issue is every 2 hours and between 4. For what ever reason the communications seems to end and lock up for about 20 seconds. During this time even if I was logged into the PLC it would kick me off and I’d have to re type the password to enter. Most of the devices can handle this however the RTU flags up a communications failure at the SCADA and is raising alarms every 2 hours and 4 mins. We’ve had multiple people go through the code to check for anything obvious. Does anyone have any ideas?
Last updated: 2024-04-15
Post by thysonfury on OPTO22 Groov Epic PR2 Modbus Comms Dropping out every 2 hours and 4 Mins
CODESYS Forge
talk
(Post)
Hi after some assistance with an error on a Groov PR2 PLC. We have a few different communications set up as shown below: One Modbus TCP Slave Connection - ( Sending / Receiving Data from a PC ) Two Modbus TCP Master Connection - ( Reading Data from a UPS Panel and Reading Data Gas Chromatograph) One Modbus RTU Slave Connection 485 - (Reading Data from a fire and gas panel) One Modbus RTU Master Connection 485 - (Sending Data to a Telemetry Unit) All Licenses have been installed as per OPTO22 suggestions of the order below: Modbus TCP Master Modbus TCP Slave Modbus RTU Master Modbus RTU Slave When I check on License manager the RTU Master license seems to disappear on installing the RTU. (What ever reason I’ve been told this is “normal”). If I use Device License Read It will successfully read all the licenses correctly. Now the issue is every 2 hours and between 4. For what ever reason the communications seems to end and lock up for about 20 seconds. During this time even if I was logged into the PLC it would kick me off and I’d have to re type the password to enter. Most of the devices can handle this however the RTU flags up a communications failure at the SCADA and is raising alarms every 2 hours and 4 mins. We’ve had multiple people go through the code to check for anything obvious. Does anyone have any ideas?
Last updated: 2024-04-15
Post by e13740e on Parameterized Property syntax for array element processing
CODESYS Forge
talk
(Post)
Since parameterized (indexed) properties are not possible, I decided to use architectural approach "Indexing Property Adapter" to achieve the intended goal — avoiding code duplication for validated access to array elements. Essence: Create a Function Block Adapter (FB_PropertyAdapter) that encapsulates the logic for working with a single element of the target array (e.g., with one settings structure). Declare Properties inside the adapter block for accessing each individual field of the data structure. All validation logic is implemented within the Set accessors of these properties. Data Binding via VAR_IN_OUT: The adapter block receives a reference to a specific data element from the global array through its VAR_IN_OUT section, which ensures direct work with the original data without copying. Create an Array of Adapters: In the parent POU (e.g., FB_SettingsManager), an array of these adapter blocks is created — one for each element of the global array that needs to be managed. Initialize Bindings: In a FOR loop, each adapter instance from the array is given a reference to the corresponding data element. Result: This approach allows accessing the data via the index of the adapter array, and then through the property name, which simulates the behavior of an indexed property: MyAdapterArray[Index].MyProperty Thus, the validation and data access logic is written only once inside the adapter block and is then reused multiple times by creating instances of it in an array. This completely solves the problem of code duplication while providing a clean, scalable, and object-oriented architecture compatible with standard CODESYS features. Question closed.
Last updated: 2025-10-19
Post by andrej on Threads and TID created by CODESYSControl Win V3
CODESYS Forge
talk
(Post)
Hi all, for a deeper understanding of the Codesys RTE - I created a simple application with 3 IEC tasks (Ta,Tb,Tc) each with different priorities, and different cycle times. The application runs on Windows 10 in the Soft PLC CODESYS Control Win V3. If my understanding is correct, the RTE i.e. the Process CodesysControlService should spawn 3 threads (Th_a,Th_b,Th_c) which are executed with the defined cycle times, the priority of the threads should reflect the priority of the task set in the Codesys IDE. Does somebody have an idea, how I could identify the respective threads in Windows? Kind regards Andrej
Last updated: 2023-10-02
Post by konstantin on Lenze i950 Servo and WAGO PFC200
CODESYS Forge
talk
(Post)
Hello, basically the i950 drive support CiA402 Basic and CiA402 Advanced modes. I attached pictures of both mode supported functions. It also support CSP, VL, CSV and CST modes. It seems the homing mode is in CiA402 Advanced mode but how can you not have the homing mode in both modes? It is a vital part of any servo system. If I use the SoftMotion standard demo mode, I can move the servo absolute and relative but cannot home it. But in SoftMotion Light mode, I cannot execute any motion function. Here is the official manual for i950 servo drive - i950 Documentation Best Regards Konstantin Kolev
Last updated: 2026-02-13
Post by baotthitawat on Cloud SCADA for Industrial Energy Monitoring
CODESYS Forge
talk
(Post)
Recently I’ve been exploring ATSCADA iEnergy Tools for SCADA-based energy monitoring systems. One thing I find interesting is how modern SCADA platforms are evolving beyond traditional machine monitoring. Many industrial systems are now using Cloud SCADA architectures for centralized energy management, remote dashboards, and operational analytics. ATSCADA iEnergy Tools supports: Real-time energy monitoring Historical data logging MySQL integration Reporting and Excel export Remote SCADA dashboards Cloud-based monitoring systems I think this type of solution is practical for factories, power monitoring applications, building management systems, and other industrial automation projects where energy optimization is becoming increasingly important. Industrial automation is clearly moving toward web-based and cloud-connected SCADA platforms, especially as more facilities focus on digital transformation and smarter energy management
Last updated: 2026-05-26
Post by baotthitawat on Cloud SCADA for Industrial Energy Monitoring
CODESYS Forge
talk
(Post)
Recently I’ve been exploring ATSCADA iEnergy Tools for SCADA-based energy monitoring systems. One thing I find interesting is how modern SCADA platforms are evolving beyond traditional machine monitoring. Many industrial systems are now using Cloud SCADA architectures for centralized energy management, remote dashboards, and operational analytics. ATSCADA iEnergy Tools supports: Real-time energy monitoring Historical data logging MySQL integration Reporting and Excel export Remote SCADA dashboards Cloud-based monitoring systems I think this type of solution is practical for factories, power monitoring applications, building management systems, and other industrial automation projects where energy optimization is becoming increasingly important. Industrial automation is clearly moving toward web-based and cloud-connected SCADA platforms, especially as more facilities focus on digital transformation and smarter energy management
Last updated: 2026-05-26
Post by ihatemaryfisher on Sorting array of any-sized structure
CODESYS Forge
talk
(Post)
With that I could make an array of varying size, but would still have to define the array type in the function's declaration VAR_IN_OUT stArray: array [*..*] of <pre-defined data type> END_VAR I wanted a function that could take an array of any type (e.g., a structured VAR) as an input. That way I could call it in multiple POUs to handle different arrays structures.
Last updated: 2023-08-18
Post by nico01 on Integer with comma in visualization
CODESYS Forge
talk
(Post)
Hello everyone, I created a visualization with a lot of REAL, with one or two digits after the decimal point. This causes me problems in terms of rounding and memory... is it possible to display an integer with a comma, like with PROFACE or SIEMENS? It's just an "abuse" of display, the comma is just on the visualization. This limits the memory (16 versus 64 bytes) and rounding is easier to manage... See print screen on proface software THANKS
Last updated: 2023-09-20
Post by damian177 on Codesys MQTT subscribe
CODESYS Forge
talk
(Post)
Hi, In my project I have MQTT Client like below: //mqtt client mqttClient( xEnable:=connect_to_broker, sHostname :=sHostname, uiPort:= uiPort, xUseTLS:=FALSE, wsUsername:="", wsPassword:="", xCleanSession:=TRUE, sClientId:='694d45587761676f4b6f6e74656e6572', pbWillMessage := ADR(sWillMessage), uiWillMessageSize:=DINT_TO_UINT(Stu.StrLenA(ADR(sWillMessage))), xWillRetain:=FALSE, udiTimeOut:= 10000000); And ten subscriber's , one of those is below: //subscribe a topic1 mqttSubscriber_S1(xEnable:=subscribe, eSubscribeQoS := 0, pbPayload:=ADR(sSubscribeMessage_S1), udiMaxPayloadSize :=SIZEOF(sSubscribeMessage_S1), mqttClient:=mqttClient, wsTopicFilter:=wsSubcribeTopic_S1); TerminateString(ADR(sSubscribeMessage_S1), mqttSubscriber_S1.udiPayloadSize); After connected to broker I set subscribe to TRUE in alls subscribers and my mqttclient recive error : ACKNOWLEDGE_TIMEOUT what can be wrong ?
Last updated: 2023-10-11
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.