Post by yannickasselin on How to sort JSON object in codesys
CODESYS Forge
talk
(Post)
Just adding: sSubscriberdata := ''; Right before your memcopy should fix the extra characters. It is because your are copying 36 characters into a string which can contain more than 36 characters and there is garbage left in the extra characters. Regarding the parsing of json, I usually build a structure that mirrors the json data and use the available methods in the IIoT library to parse the data and fill the structure.
Last updated: 2024-05-08
Post by yofi on Raspberry PI change tag only responds after stopping PLC
CODESYS Forge
talk
(Post)
Using V19 Patch 7 and 4.11.0.0 for Pi 4 Model B, My problem is whenever I change a tag e.g bool from true to false it will change in software but the pin will only go high to low after pressing stop PLC in codesys and same if i want to bring it back to high, have to login start plc change it and stop plc in order to change. any insight ? thanks
Last updated: 2024-05-25
Post by dekelec on Request for IFM ecoPlus21 installation package
CODESYS Forge
talk
(Post)
Hello, I’m looking for the ecoPlus21 development environment used with early IFM controllers (e.g., CR0020_Q firmware). We have an old project created in ecoPlus21 that cannot be opened in CoDeSys 2.3, and IFM no longer provides this software. If anyone still has the ecoPlus21 installer or knows where it can be downloaded, please let me know. It’s needed only for recovery and migration of an existing project. Thanks in advance,
Last updated: 2025-10-17
Post by timvh on OSCAT Scale_r function not working in LD 4.60 works in LAD2 on 3.5.21sp3
CODESYS Forge
talk
(Post)
It seems like a bug in FBD. Work-around: If you click on the small line between the box and the output variable and delete this, the variable is removed. When you then assign a variable again (Ctrl-A), then you will see that the line will be a bit longer. If you then select the previous variable, you will see that it works.
Last updated: 2025-10-26
Post by kenth1973 on MC_Phasing state explenation
CODESYS Forge
talk
(Post)
My MC_Phasing FB was stuck in iPhasingState=1 and error output HIGH on one axis. I could manually overwrite the state to 0 in the instance data. During normal run I see the state change from 0 to 10 to 100 back to 0 (maybe more states that I couldnt catch with the naked eye) But - what are the states numbers and their different explenations? This is not explained in the FB guide on codesys. (the pictures show state = 0 after I reset)
Last updated: 2025-11-22
Post by antonz on OSCAT Scale_r function not working in LD 4.60 works in LAD2 on 3.5.21sp3
CODESYS Forge
talk
(Post)
That's what I found as well Shaun. I have seen it at least in versions 3.5.21.1 and 3.5.21.3. There seems to be an issue with the FBD/LD package v4.6.0.0. The workaround proposed by Tim works but needs to be done manually on every code change/addition. For now we manually downgrade the FBD/LD package from v4.6.0.0 down to v4.5.0.0 after installation of CoDeSys. Same as you did. I hope this gets fixed on a next patch.
Last updated: 2025-11-21
Post by dgross on Alarm Manager History Message Missing
CODESYS Forge
talk
(Post)
Hi All, I'm using a webvisu on a control Win V3 SoftPLC. My issue is with the Alarm Managers Alarm history. It does create entry's and does also show the latch data. But it only shows the message of the active alarms. In the history the message is empty (also in the .csv Export file). The archiving in the alarm group is checked and the Alarm storage is activated. I'm using the Version V3.5 SP22 Patch 1. Do you have any idea where that comes from?
Last updated: 2026-04-20
Post by ct-f on KOP & FUP in Sp21P6 nicht vorhanden
CODESYS Forge
talk
(Post)
Hallo Zusammen, ich muss ein Projekt von Sp16P4 auf SP21 portieren, einige FBs wurden damals in FUP und KOP erstellt. Zu meiner großen Verwunderung gab es beim kopieren/einfügen eine Fehlermeldung. Jetzt wollte ich in KOP einen leeren FB erstellen, aber es gibt bei mir im Auswahlmenü weder KOP noch FUP. Gibt es eine Erweiterung, welche ich installieren muss? Konnte dazu nichts finden. Beste Grüße Falk
Last updated: 2026-07-23
Post by jgalaska on SMC_Trafo 6DOF Config Error
CODESYS Forge
talk
(Post)
Hello, Recently I was trying to run 6DOF robot in codesys via SMC_Trafo_ArticulatedRobot_6DOF, unfortunately no matter what parameters I tried, it always outputs InvalidConfig Error. I saw the same issue in a topic: https://forge.codesys.com/forge/talk/Motion/thread/16e1f0327f/ But if I understand correctly, the user solved it by developing his own version of this block. I wanted to know if it is a bug in the library (SM3_CNC 4.20.0.0) or am I doing something wrong? Can anyone confirm that they can use the FB without it reporing the Error? Kind regards,
Last updated: 2026-01-21
Post by zeljko2212 on Seeking a Code-Based Solution for EtherCAT Slave Dropout or Master Errors in Production (Beyond Software Hot Reset)
CODESYS Forge
talk
(Post)
PROGRAM RES_ECAT VAR xMP1: INT; xRESTART: BOOL; xFinish: BOOL; xStop: BOOL; pSlave: POINTER TO ETCSlave; TP1 : TP; STS11: WORD; pSlave6: POINTER TO IoDrvEthercatDriverLib.ETCSlave; MP1: INT; TON1 : TON; xSTAT: BOOL; TP_1 :standard.TP; END_VAR TON1(IN:= NOT TON1.Q, PT:= T#300mS ); TP_1(IN:= ton1.Q, PT:= t#2s ); EtherCAT_Master.xRestart := xRESTART; EtherCAT_Master(); EtherCAT_Master(); xFinish := EtherCAT_Master.xConfigFinished; EtherCAT_Master.xStopBus := xSTOP; EtherCAT_Master(); pSlave := EtherCAT_Master.FirstSlave; WHILE pSlave <> 0 DO pSlave^(); IF pSlave^.wState = ETC_SLAVE_STATE.ETC_SLAVE_OPERATIONAL THEN xRESTART := FALSE; ELSE xRESTART := TP_1.Q; END_IF pSlave := pSlave^.NextInstance; END_WHILE
Last updated: 2026-02-14
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 bschraud on Speicherbegrenzung für lokale Variablen
CODESYS Forge
talk
(Post)
Aufgrund einer Schnittstellenänderung muss ich meine Messagebuffer erheblich vergrößern. U.g. Konstante bestimmt die Größe einer Byte-Array-Definition, die in einer Struktur für 9 Botschaften verwendet wird. Ich benötige also 177372byte zusätzlichen Speicher in dem Modul in dem die Struktur als lokale Variable angelegt wird. Dynamisches Allokieren zur Laufzeit möchte ich vermeiden, damit ich nicht während des Betriebes Fehler aus dem Allokieren behandeln muss. Für ein Reservieren des Speicherbereiches habe ich in Codesys keine Einstellmöglichkeiten gefunden. Die Applikation läßt sich ohne weitere Modifikation kopilieren, scheitert aber bei der Ausführung. Welche Lösungs- oder Einstellmöglichkeiten gibt es? Bei c_w_process_result_content_len_max: WORD := 292; [INFORMATION] Größe des lizenzierten Benutzercodes: 363304 Bytes [INFORMATION] Speicherverbrauch auf dem Gerät, nicht für Lizenzierung verwendet: [INFORMATION] Speicherbereich 0 enthält Daten, Eingang, Ausgang, Speicher und Nicht-sichere Daten: Größe: 2807632 Bytes , höchste verwendete Adresse: 2159712, größte zusammenhängende Speicherlücke: 647920 Bytes (23 %) [INFORMATION] Speicherbereich 3 enthält Code: Größe: 7267784 Bytes , höchste verwendete Adresse: 5590600, größte zusammenhängende Speicherlücke: 1677184 Bytes (23 %) Übersetzung abgeschlossen -- 0 Fehler, 10 Warnungen : Bereit für Download Speicherprüfung: [WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers für Eintrag GVL.htFactory._itfInstList.__Interface in Area 0, Offset 0x000033BC (0x71C15414) [WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers für Eintrag __datasourcesInstancesGVL.__datasourcesInstances.dsInst._allItemsHashtable._ht.__Interface in Area 0, Offset 0x00128904 (0x71D3A95C) [WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz für Eintrag IoConfig_Globals.PiXtend_V2_L_Instance._IIoDrv.__Interface in Area 0, Offset 0x0018EC00 (0x71DA0C58) [WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz für Eintrag IoConfig_Globals.PiXtend_V2_S_DAC_Instance._IIoDrv.__Interface in Area 0, Offset 0x0018F090 (0x71DA10E8) [INFORMATION] PAC: Überprüfter Speicher für 21336 Objekte. 4 Prüfung(en) fehlgeschlagen. [INFORMATION] PAC: Check took 00:00:13.9743220. Applikation lässt sich downloaden und funktioniert auf dem Gerät. Nach der Vergrößerung: c_w_process_result_content_len_max: WORD := 20000; [INFORMATION] Größe des lizenzierten Benutzercodes: 363304 Bytes [INFORMATION] Speicherverbrauch auf dem Gerät, nicht für Lizenzierung verwendet: [INFORMATION] Speicherbereich 0 enthält Daten, Eingang, Ausgang, Speicher und Nicht-sichere Daten: Größe: 4114264 Bytes , höchste verwendete Adresse: 3164816, größte zusammenhängende Speicherlücke: 949448 Bytes (23 %) [INFORMATION] Speicherbereich 3 enthält Code: Größe: 7267832 Bytes , höchste verwendete Adresse: 5590640, größte zusammenhängende Speicherlücke: 1677192 Bytes (23 %) Übersetzung abgeschlossen -- 0 Fehler, 10 Warnungen : Bereit für Download Speicherprüfung: (gleiches Ergebnis wie vorher) [WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers für Eintrag GVL.htFactory._itfInstList.__Interface in Area 0, Offset 0x000033BC (0x71C15414) [WARNUNG] PAC: MC0006: Pointeradresse außerhalb des verwalteten Speichers für Eintrag __datasourcesInstancesGVL.__datasourcesInstances.dsInst._allItemsHashtable._ht.__Interface in Area 0, Offset 0x0021DF38 (0x71E2FF90) [WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz für Eintrag IoConfig_Globals.PiXtend_V2_L_Instance._IIoDrv.__Interface in Area 0, Offset 0x00284238 (0x71E96290) [WARNUNG] PAC: MC0009: Pointer to Interface zeigt nicht auf die erwartete Schnittstelle in einer FB-Instanz für Eintrag IoConfig_Globals.PiXtend_V2_S_DAC_Instance._IIoDrv.__Interface in Area 0, Offset 0x002846C8 (0x71E96720) [INFORMATION] PAC: Überprüfter Speicher für 21336 Objekte. 4 Prüfung(en) fehlgeschlagen. [INFORMATION] PAC: Check took 00:00:14.0491831. Applikation lässt sich downloaden. Ausführen mündet in Ausnahmefehler Die Applikation läuft auf der Runtime CODESYS Control for Raspberry Pi MC SL. Die Codesys Version ist 3.5 SP20 mit allen Updates. Kennt jemand eine Speichergrenze für lokale Variablen bzw. eventuelle Einstellmöglichkeiten? Vielen Dank
Last updated: 2024-05-06
Post by kuegerls on PROFINET Controller SL: WRREC remains BUSY forever, no DCE/RPC packets transmitted (RevPi Connect 5 + NORD SK205E)
CODESYS Forge
talk
(Post)
Hello , I am currently evaluating the CODESYS PROFINET Controller SL on a Revolution Pi Connect 5 and have encountered a problem with acyclic PROFINET Record Access (WRREC/RDREC). System Hardware: Revolution Pi Connect 5 Runtime: CODESYS Control 4.16.0.0 (SDK 3.5.21.10) Development System: CODESYS V3.5 SP21 (64-bit) CommFB: 3.5.17.10 ProfinetCommon: 4.6.0.0 PROFINET Controller Device: PN-Controller 4.6.0.0 PROFINET Device: NORD DRIVESYSTEMS SK205E with SK TU4-PNT GSDML: GSDML-V2.46-NORDDRIVESYSTEMS-PNT-20251016.xml Network The PROFINET network is completely separated from the office network. RevPi: eth0 → Office network eth1 → PROFINET wlan0 → Visualization The PN Controller is configured to use eth1. IP configuration: RevPi (eth1): 192.168.100.1/24 NORD Drive: 192.168.100.3 Connection is established successfully. Current Status The PN Controller reports: Controller Status = Run Online = TRUE IP Active = TRUE Connections = 1 Cyclic PROFINET IO communication works correctly. Problem I am trying to access PKW parameters via WRREC (Record Index 100). The request buffer contains: 01 14 00 04 92 00 00 00 00 00 00 which corresponds to Reference = 0x01 Request = Read Axis = 0 Parameter = 170 + 1000 Subindex = 0 Value = 0 The WRREC call is fbWRREC( REQ := xWrReq, ID := ConnectionID, INDEX := 100, LEN := 11, RECORD := ADR(TxBuffer) ); REQ is pulsed for one PLC cycle only. Observed Behaviour WRREC enters BUSY state and never finishes. Observed values: BUSY = TRUE DONE = FALSE ERROR = FALSE STATUS = 16#FFFFFFFF indefinitely. Packet Capture A Wireshark capture was taken on the PROFINET network. Observed traffic: PROFINET RT LLDP DCP Observed: successful cyclic IO Not observed: DCE/RPC Record Write Record Read RPC Bind No RPC packets are transmitted at all. Diagnostic Messages The controller repeatedly reports AR alarm.ind(err) AR CMI timeout although cyclic IO communication continues to work. Already Verified The following points have already been checked: correct Ethernet interface (eth1) correct CREATE_ID result correct Device ID correct Slot/Subslot correct GSDML correct REQ pulse RECORD buffer is larger than LEN cyclic IO communication works different Record Indices (100...104) tested Question Is there any known issue or limitation where WRREC/RDREC requests remain permanently BUSY and no RPC Record Access packets are generated? Could this behaviour be related to Runtime 4.16.0.0, PN Controller 4.6.0.0, the missing runtime license (currently running in demo mode), or any known issue with the PROFINET Controller SL? I am currently evaluating the PROFINET Controller SL and therefore the runtime is operating in demo mode. Could you please confirm whether WRREC/RDREC (acyclic Record Data services) are fully supported in demo mode, or whether a valid license is required for these services? If required, I can provide: complete project archive Wireshark capture (.pcap) GSDML online screenshots diagnostic log Thank you very much for your help. Best regards, Stefan
Last updated: 2026-07-17
Post by smeitink on Timeout Error in Modbus Communication with WAGO PFC200 and iEM2050 Meter using 750-652 Module
CODESYS Forge
talk
(Post)
Hi all, I'm looking for help with an issue I've come across while trying to facilitate Modbus communication between a WAGO PFC200 PLC using a 750-652 communication module and an iEM2050 Series Single Phase Energy Meter. I believe to have everything wired and setup correcty, but I keep running into a "Error time out" message, and by now I don't really know what else to try. My setup is as follows: A PFC200 Wago PLC, which has 2 750-652 Serial Interfaces extension modules connected to its field bus. I'm using one of these to talk to a Schneider iEM2050 - kWh-meter over modbus. I have connected terminal 23 (A) of the iEM2050 to connector 6 (A) on the 750-652. I have connected terminal 24 (B) of the iEM2050 to connector 2 (B) of the 750-652. I'm using 200mm of twisted together wires to connected them both, and I have placed a 120 ohm resistor between A and B at both ends. I've attached relevant pinout images to this post. I then wrote a simple program that configures the Mobus port, as per the datasheet of the iEM2050. You can find an image of the relavent page attached to this post too. This is my program: PROGRAM PLC_PRG VAR Master: FbMbMasterSerial; xIsConnected: BOOL; xError: BOOL; iIndex: INT := 1; xTrigger: BOOL; utQuery : typMbQuery := ( bUnitId := 1, // The Modbus unit or slave address bFunctionCode := 4, // Function code for reading input registers uiReadAddress := 1829, // adress for the Power on off counter uiReadQuantity := 1 // Quantity of registers to read ); iStep: INT; oStatusModbus: WagoSysErrorBase.FbResult; utResponseModbus: typMbResponse; xConnect: BOOL := FALSE; delayTimer: TON; END_VAR Master( xConnect:= xConnect, I_Port:= _750_652_24_1, udiBaudrate:= 9600, usiDataBits:= 8, eParity:= WagoTypesCom.eTTYParity.Even, eStopBits:= WagoTypesCom.eTTYStopBits.One, eHandshake:= WagoTypesCom.eTTYHandshake.None, ePhysical:= WagoTypesCom.eTTYPhysicalLayer.RS485_HalfDuplex, xIsConnected=> xIsConnected, xError=> xError, oStatus=> oStatusModbus, eFrameType:= WagoAppPlcModbus.eMbFrameType.RTU, tTimeOut:= T#5S, utQuery:= utQuery, xTrigger:= xTrigger, utResponse:= utResponseModbus); delayTimer(IN := TRUE, PT := T#3S); // Use the Q output of the timer to set xConnect after the delay IF delayTimer.Q THEN xConnect := TRUE; END_IF CASE iStep OF 0: //Wacht totdat de master de poort geopend heeft IF xIsConnected THEN iStep := 1; END_IF 1: //Stuur request naar de slave xTrigger := TRUE; iStep := 2; 2: //Wacht totdat de master klaar is met het afhandelen van de request IF NOT xTrigger THEN iStep := 3; END_IF END_CASE The TON delay before opening the port is due to a an error I encountered when opening it straight away. This seems to be a bug, as described here. However, the TON solved that particular issue. I tried reading multiple registers, but like I said, I still always end up with the "Error time out". What else can I test or try at this point?
Last updated: 2024-02-24
Post by sunfloweeerrry on Edgelogix-rpi-1000-cm4102032 SPI port connection to PiFace I/O Driver in CodeSys.
CODESYS Forge
talk
(Post)
Please anyone help there is not a lot reference about this.
Last updated: 2023-08-21
Post by eschwellinger on Raspberry Pi Control SL MC - Restoring License not working anymore!
CODESYS Forge
talk
(Post)
you need to use 'my question ' in the CODESYS store
Last updated: 2023-08-24
Post by rossanoparis on How to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server
CODESYS Forge
talk
(Post)
Hello at all I'd like to know how to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server. In the past, I tried to ask in "Forge" about this topic, but I could find neither help nor document informations about it. Reading the file "codesyscontrol.log" I see these logs OPC UA Server Started: Hostname: NTLRPICTRL01, Port: 4840 URL: opc.tcp://NTLRPICTRL01:4840 Loopbackadapter activated. **All available networkadapters are used.** Multithreading activated. 3 workers used. My controller, which is a Linux PC, has got two network cards eth0 and eth1 I whant to use the card with name "eth0" as a server for OPCUA and keep the "eth1" free for other stuffs. Is it possible ? Best regards Rossano
Last updated: 2023-08-25
Post by marekxc on Trun off webvisu
CODESYS Forge
talk
(Post)
Click Visualisation with the left mouse button. Next click right mosue button Select Properties In window select TAB Build and Select "Exclude from Build"
Last updated: 2023-09-01
Post by eschwellinger on Project compiling error in Simulation mode
CODESYS Forge
talk
(Post)
I fear you need to update if you need a solution for this.
Last updated: 2023-09-08
Post by necatibilgin on How to access files correctly in Linux
CODESYS Forge
talk
(Post)
This may help you. https://forge.codesys.com/forge/talk/Engineering/thread/3da9ded84e/?limit=250#62b3
Last updated: 2023-09-12
Post by transmin01 on EL6751 Canopen_Manager issue
CODESYS Forge
talk
(Post)
Fixed, in the end it just required the target to be rebooted. DOH! Regards Trevor
Last updated: 2023-09-12
Post by danwoodlock on RPI zero W - cant install edge gateway
CODESYS Forge
talk
(Post)
I see now this is the wrong section. Please close this thread, and I'll repost in the runtime section.
Last updated: 2023-09-13
Post by snhatton on Integer with comma in visualization
CODESYS Forge
talk
(Post)
Here is some information about formatting different variables types: https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_placeholder_with_formatting_sequence_in_a_string.html I hope this helps!
Last updated: 2023-09-20
Post by eschwellinger on Official MQTT-Client: MAX_RECEIVE_BUFFER_SIZE_EXCEEDED
CODESYS Forge
talk
(Post)
check the plclogger and use top or htop in by ssh ( which runtime version is this?)
Last updated: 2023-09-23
Post by fleaplc on FILE_OPERATION_DENIED
CODESYS Forge
talk
(Post)
/var/opt/codesys/PlcLogic not work here, again FILE_OPERATION_DENIED. May I simply moved my files in /var/opt/codesys/PlcLogic or need some particular settings?
Last updated: 2023-09-30
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.