Post by antonz on Could not write options file at...
CODESYS Forge
talk
(Post)
I ran into a similar issue, albeit not the exact same conditions nor the same file if I recall correctly. As a workaround I have used an elevated account to give my regular user account write access to the specific directory where the failure occurred. It is not pretty and I am not happy with it. It does work.
Last updated: 2026-09-07
Post by ph0010421 on Deploy Codesys Control SL to a 'secure' device
CODESYS Forge
talk
(Post)
Hello I'm trying to get Codesys onto a 'Secure' edge device (Linux) The device doesn't support 'sudo' so the connection doesn't complete properly. Is this the same as not allowing root access? Anyway, the screen shot shows where I am. What options do I have?
Last updated: 2026-05-01
Post by malie on Issue with library updates
CODESYS Forge
talk
(Post)
I just tried with version 3.5.22.1 and librarys updates often aren't recognized, usually not. Same behavior like 3.5.21. To describe my workflow: one IDE is used to test librarys as project and two or more IDEs to edit librarys. With only two open IDEs there is no problem, the problem began with more than two open IDEs.
Last updated: 2026-05-04
Post by pppn on Issue with Forward Open Connections in Ethernet/IP Protocol Stack in Codesys
CODESYS Forge
talk
(Post)
Hello, I am facing an issue with my Ethernet-based project in Codesys. My product was functioning well until I modified the protocol stack and uploaded it to my device. Here are the details of my problem: Project Setup: I am working on an Ethernet-based project to test my product. The project was running without issues before modifying the protocol stack. Issue: After modifying the protocol stack and uploading it to my device, I am encountering an error in Codesys related to the forward open connections. Error status: connection failure, extended: connection in use or duplicate forward open. According to the Ethernet/IP protocol in codesys, there are three forward open connections that need to be established. The first two connections are opening without any issues. The third connection, which is an input-only connection, is causing problems. The error message indicates that the connection is already open. Debugging Attempts: I have extensively debugged the protocol stack and found no issues. The product works well when tested with EIP tools but not with Codesys. Exclusive owner connections are working correctly, and only the input-only connection is problematic. Wireshark Traces: Wireshark traces show that the third connection attempts to open but reports that it is already open. Steps to Reproduce: Modify the protocol stack and upload it to the device. Attempt to establish three forward open connections in Codesys. Observe the error on the third connection (input-only). Request: I would appreciate any suggestions or guidance on how to resolve this issue. If there are specific settings or configurations in Codesys that I need to check, please let me know. Additionally, if there are known issues or workarounds related to this problem, I would be grateful for the information. Attachments: Wireshark traces showing the connection attempts and errors Screenshots of the error messages in Codesys codesys version: CODESYS V3.5 SP16 Patch 3 + 64 bit
Last updated: 2024-06-25
Post by mm-sceg on Runtime geht sporadisch in Störung -> RaspiPi4 reagiert nicht mehr
CODESYS Forge
talk
(Post)
Guten Tag, ich hab seit längerem das Problem, dass mein Raspberry Pi4 durch die PLC in Störung geht. Auf dem Raspi läuft eine einfache Software mit OPC UA server, InfluxDB und ein NodeRed-Server. (Und MQTT-Server) Daten werden von der PLC über OPC-UA an NodeRed übergeben. Es kann sein, dass der Raspi 2 Wochen läuft, dann geht die PLC in Stopp. Manchmal nur 2-3 Tage. Ein Neustart über Spannung aus & wieder an schafft Abhilfe. NodeRed wirft extrem viele Fehlermeldungen in kurzer Zeit. Wenn die PLC in Störung ist, kann man sich nicht mal mehr über SSH beim Raspi einloggen. Der Raspi ist aktiv gekühlt und im Normalbetrieb nicht überlastet. Ich hab einige logfiles mit vielen Einträgen die mir nichts sagen, eventuell hat hier jemand eine Idee wie ich dem Problem Herr werden kann :) Der letzte Datenbankeintrag von der SPS war am 11.11.2023 um 5:55:50 Uhr. D.h. danach muss die SPS gestorben sein. Siehe Raspi-Log im Anhang. Das LogFile von Codesys startet leider erst um 11 Uhr, weshalb weiß ich leider nicht. Vielen Dank schonmal
Last updated: 2023-11-11
Post by dogulas on OPC UA C# client connecting to OPC UA CODESYS server
CODESYS Forge
talk
(Post)
Noob alert! I’m just getting my feet wet with CODESYS. I have a “Hello World” project in the CODESYS IDE. I’m using the Win SoftPLC on the same computer. I’ve added a Communication Manager under the Application node. Under that is “OPC UA Server -> IEC Symbol Publishing 01”. I also added “OPC_UA_Symbols -> Information Model”. I’m not sure I need the second thing. I was grasping at straws. I also set up several dummy symbols in the IEC Symbol Publishing 01 node. In my C# application, I am trying to get an instance of EndpointDescription from CoreClientUtils.SelectEndpoint(“opc.tcp://localhost:1217/Gateway-1”, useSecurity: false, 15000). I wasn’t sure about the “Gateway-1”. I found that in the CODESYS IDE under the project -> Communication Settings. When I execute the previous method call in C#, I get: “BadSecureChannelClosed”. I have no idea what that means. Any pointers to documentation are welcome.
Last updated: 2024-08-16
Post by trusty-squire on Strange problem with the ‘MC_SetPosition’ function
CODESYS Forge
talk
(Post)
Here, it seems to me that we are getting completely off track with the observed problem. If questions clarifying the details of the installation are problematic, it's best to include those details in the original question then... I had already written this elsewhere. The program before being brought into machines was exhaustively tested in SW emulation and the problem did not occur. Testing the full program in emulation is entirely different from creating a simplified program to isolate the function causing problems in the real world. I would recommend trying it to isolate the issue. The drive and motor have been working fine for about 10 years. In replacing the machine control system, I opted for CoDeSys where before there was something else. But this is not the subject of the problem A simple "yes" is the correct answer to my question here... Anyways, you seem to be a very knowledgeable expert, good luck on your problem!
Last updated: 2025-01-18
Post by canplum on Codesys 3.5.21 kann Datei nicht auf USB kopieren
CODESYS Forge
talk
(Post)
Obwohl ich in der Datei /etc/codesyscontrol/CODESYSControl_User.cfg eingestellt habe die [SysFile] PlatzhalterDateipfad.1=/media/pi, $usb$ PlatzhalterDateipfad.1.Ansicht=1 PlatzhalterDateipfad.1.Flüchtig=1 Ich bin nicht in der Lage, eine Datei in dieses durch den Platzhalter definierte Verzeichnis zu kopieren. Weder SysProcess.SysProcessExecuteCommand2 noch SysFileCopy oder FileCopy funktionieren. Wenn ich versuche, die gleiche Datei nach /home/pi zu kopieren, funktioniert alles einwandfrei. Ich kann auch eine andere Datei mit SysFileOpen erstellen und öffnen. Ich verstehe nicht, warum das System das Öffnen (Erstellen) und Schreiben von Dateien in dieses Verzeichnis erlaubt, aber das Kopieren in dieses Verzeichnis nicht zulässt. Offensichtlich gibt es ein Rechteproblem mit dem USB-Laufwerk. Ich habe bereits die Berechtigungen auf drwxr-xr-x 2 und den Benutzer auf pi gesetzt, aber ohne Erfolg. Mit 3.5.16 hatte ich nie ein solches Problem. Hat jemand einen Tipp, wie man dieses Problem lösen kann? Vielen Dank! canplum
Last updated: 2025-05-23
Post by gseidel on AXIS_REF_SM3 Error Codes?
CODESYS Forge
talk
(Post)
Hi SLUCodesys, dwErrorId is a drive specific error number. The drive documentation should be consulted to interpret it. (Note that you should use MC_ReadAxisError to read this error, see https://content.helpme-codesys.com/en/libs/SM3_Basic/Current/SM3_Basic/POUs/Diagnostics/MC_ReadAxisError.html. Accessing the internal variable will result in outdated values if the acis error is not mapped by PDO and is not recommended in general.) uiDriveInterfaceError holds errors of the SoftMotion driver for the drive. It is also an internal variable, not intended for direct access. It is intended for logging, the PLC log will contain the drive interface error, consisting of this number and an error text. My recommendation for handling axis errors in the CODESYS application: 1) Use MC_ReadStatus on the axis to find out whether it is in state Errorstop 2) If in Errorstop, there are two possibilities: an error reported by the drive (MC_ReadAxisError) or an error of the SoftMotion function blocks (output MC_ReadStatus.FBErrorOccured). 3) If there is no drive error, you can use SMC_ReadFBError https://content.helpme-codesys.com/en/libs/SM3_Basic/Current/SM3_Basic/POUs/Diagnostics/FBError/SMC_ReadFBError.html Best regards, Georg
Last updated: 2025-09-24
Post by k2saki on CNC / G01 Speed is very slow (or go-stop motion) in Continuous short segment .
CODESYS Forge
talk
(Post)
I'm using CAD/CAM that outputs GCode with G01 many short segments from NURBS Curve, only X-Y axis. But CODESYS CNC motion seems much slower ( or stop-go motion ) in simulation mode than F-Value (I checked value from SMC_Interpolator - dVel ). In GCode G01, F value is F500, but movement is very slow, actual speed (dVel) is between 0 to 30 back and forth. I think very old CNC can move like that, but nowadays, a lot of CNC can move smoothly to process free curve ( somethimes option switch ) I tried to use G51 Dxx but I got the same result. My questions are 1) How do I improve CODESYS CNC motion in this case ? 2) How can I graph the sampling from dVel of SMC_Interpolate in CODESYS? From my GCode N2006 G01 X1.4364 Y-14.6847 F500 N2007 G01 X1.6759 Y-14.6768 N2008 G01 X1.9152 Y-14.6486 N2009 G01 X2.1547 Y-14.6400 N2010 G01 X2.3943 Y-14.6090 N2011 G01 X2.6336 Y-14.6002 N2012 G01 X2.8732 Y-14.5716 N2013 G01 X3.1127 Y-14.5634 N2014 G01 X3.3520 Y-14.5410 N2015 G01 X3.5915 Y-14.5336 N2016 G01 X3.8308 Y-14.5307 ... Thansk.
Last updated: 2024-04-29
Post by tortilla on J1939 connection between two devices
CODESYS Forge
talk
(Post)
Hey, I'm pretty new to CoDeSys so I don't know a lot of things yet. I have to create a connection between two devices (CANbus - J1939 connection). The idea for now is to send a message from one to another (one operates on 3.5 SP11 the other one on 2.3) I watched a few videos, worked with the documentation and worked with chatGPT 4o and was able to build the attached file. This part is about the device on 3.5.11: I'm using the J1939LocalECUDiag, TransmitParameterGroup, TransmissionTrigger Function blocks to send the message but my TransmitPG.xBusy / .xDone never turns to True and therefore my message is not sent while TransmitPG.xExcecute is True. I added the two devices in the CANbus in the J1939Manager and addapted the options like I've seen in the documentation. Can anyone explain what's wrong with my code in this casse or give me advices how to properly create a connection between my two devices? Thanks in advance!
Last updated: 2024-05-23
Post by caprez95 on Deleting the trend recording history
CODESYS Forge
talk
(Post)
Hallo Ich möchte eine laufende Trendaufzeichnung stoppen, den Inhalt löschen und Trend-Diagramm auf 0 zurücksetzen. Laut Codesys soll das mit dem folgenden Code möglich sein: You can insert an input element in the visualization which the operator can use to delete the previous value recording in the trend visualization at runtime. The curve displayed until then is removed and the display starts over. In the application (example: in the program PLC_PRG), implement the following code: itfTrendRecording : ITrendRecording; itfTrendStorageWriter : ITrendStorageWriter; itfTrendStorageWriter3 : ITrendStorageWriter3; sTrendRecordingName : STRING := 'TrendRecording'; itfTrendRecording := GlobalInstances.g_TrendRecordingManager.FindTrendRecording(ADR(sTrendRecordingName)); xClearHistoryTrend: BOOL; IF xClearHistoryTrend THEN itfTrendRecording := GlobalInstances.g_TrendRecordingManager.FindTrendRecording(ADR(sTrendRecordingName)); IF itfTrendRecording <> 0 THEN itfTrendStorageWriter := itfTrendRecording.GetTrendStorageWriter(); IF __QUERYINTERFACE(itfTrendStorageWriter, itfTrendStorageWriter3) THEN itfTrendStorageWriter3.ClearHistory(); END_IF END_IF In the visualization of the trend recording, add a button for deleting the previous curve. Configure its Toggle property with the variable PLC_PRG.xClearHistoryTrend. ⇒ When xClearHistoryTrend is set to TRUE, the previously recorded curve is deleted. The recording immediately starts again. Dies löscht auch die Daten vom Trend, aber das Diagramm wird nicht auf 0 zurückgesetzt, sondern läuft einfach da weiter wo man gestoppt hat. Braucht es für den Diagramm-Reset noch einen zusätzlichen Befehl? Gruss
Last updated: 2024-06-11
Post by eschwellinger on Editor FIND highlight color
CODESYS Forge
talk
(Post)
To change the color of search result markings (the "find color") in the CODESYS Text Editor using Themes, follow these steps: Go to the menu: Tools → Options. In the Options dialog, select the Text editor category. Switch to the Theme tab. Here, you can select your desired color theme for the text editor. The available color schemes (themes) are stored in the installation directory in the Themes folder. To specifically adjust the color for search result markings, go to the Text Area tab within the Text editor options. Here, you can customize the Selection color – Inactive parameter, which determines the color used to highlight search results. Changing the theme will apply a new set of color settings, including those for selections and search highlights. If you want further customization, you can manually edit or create your own theme files in the Themes folder of your installation directory Example "c:\Program Files\CODESYS 3.5.21.50\CODESYS\Themes\myDefault.editortheme" https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_dlg_options_text_editor.html
Last updated: 2026-03-12
Post by risele on Modbus connection via Qronox PCD3 M6893
CODESYS Forge
talk
(Post)
You are welcome. Also note, that it's valid only if you modbus-device use same real/float value representation (IEEE 754). That's true for most of systems. But some devices may have other representation, such as integer + position of the decimal point, for example 123.456 is integer = 123456 and position = 3 Also note, that, ones again, depending on endianess of each system, you may also need to swap not just words, but bytes. TYPE u_Real : UNION rVal:REAL; wVal:ARRAY[0..1] OF WORD; bVal:ARRAY[0..3] OF BYTE; dwVAL:DWORD; //same as previous, may be easier to specify the MB register END_UNION END_TYPE than swapping may be something as VAR A,B,C,D:BYTE; //Bytes of the real value uIn, uOut:u_Real; rVal:REAL; ModbusReg1,ModbusReg2:WORD; END_VAR uIn.rVal:=rVal; uOut.A:=uIn.D; uOut.B:=uIn.C; uOut.C:=uIn.B; uOut.D:=uIn.A; ModbusReg1:=uOut.wVal[0]; ModbusReg1:=uOut.wVal[2]; Or you even need to reorder bits... Ones again, sending float/real values is not defined by Modbus protocol itself, so it is hardware- and software-dependent. The Modbus Poll (and most of modbus tools) have configuration parameters that will properly swap bytes on their side. Ones again, that's very helpful: https://www.scadacore.com/tools/programming-calculators/online-hex-converter/
Last updated: 2026-02-19
Post by vformanek on How to access files correctly in Linux
CODESYS Forge
talk
(Post)
Hello, its still not quite clear to me how to deal with the PLCLogic directory in linux. I have the directory right here: I need to correctly access the files in this folder through CODESYSControl.cfg. Here is my CODESYSControl.cfg where on the first lines there are a few lines: [SysFile] FilePath.1=/etc/, 3S.dat PlcLogicPrefix=1 That means that if I am going to use relative paths its going to go to from the PLCLogic directory right ? For example here: Whitch paths should I use. I cant seem to successfully run any of these aproaches ...
Last updated: 2023-09-08
Post by tanman19 on How to Use Personal Access Tokens from GitHub with Codesys Git
CODESYS Forge
talk
(Post)
I am trying to push changes to a GitHub repository. I set up the Git Remote with the correct URL and committed the change. When I push the change it asks for my GitHub credentials which I know are correct, when I type in my username and password it gives me an error: "The provided credentials seem incorrect." So I tried putting in my Person Access token and when I put that in with my username I get this error: "The server request failed and returned a HTTP error code 403: Forbidden". Does anyone know how to correctly use Personal Access Tokens from GitHub with Codesys Git? Does it have to do something with the remote url or my username? Any help or guidance would be appreciated.
Last updated: 2023-09-28
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 drno on Konfigurierte Compilerversion in Installation nicht verfügbar
CODESYS Forge
talk
(Post)
Hallo, bedingt durch einen Rechnerwechsel musste ich verschiedene Codesys-Versionen wieder neu installieren, bzw. habe mit dem Codesys-Installer beim Setup einer neuen Version Add-ons einer bestehenden Installation importiert. Nun möchte ich ein bestehendes Projekt, welches auf einem Zielgerät mit recht alter Runtime läuft öffnen, dabei kommt der error "C0510: The configured compilerversion '3.5.8.0' is not available in your installation". Auf dem alten Rechner wurde mit CODESYS V3.5 SP18 Patch 4 eben mit der Compilerversion 3.5.8.0 übersetzt, beim Erstellen des Projektarchives geht jedoch der Compiler nicht mit und so kommt es auf dem neuen Rechner mit der Installation V3.5 SP18 Patch 4 zu diesem error. Übersetze ich das Projekt mit dem aktuellen Compiler, kommt eine ganze Latte an Fehlermeldungen. Gibt es eine Möglichkeit die Compilerversion 3.5.8.0 in die Installation 3.5.18.4 zu bekommen? Danke, schöne Grüße
Last updated: 2023-12-01
Post by vamsi on How to configure gateway for programming RPi 2B using Codesys
CODESYS Forge
talk
(Post)
I am using a Raspberry Pi 2B. Installed Codesys V3.5.20.1 64-bit and installed 'CODESYS Control for Raspberry PI 4.12.0.0' I am able to install the packages using the 'Update Raspberry Pi' option, but when I try to log into the RPi, in the Device tab it says 'Sacn fail. Please checl that the gateway is running and that its settings are correct'. My setup looks like this. I connected my RPi to my company LAN and also my laptop to company LAN (using HP Docking station). This setup worked when I installed 'CODESYS Control for Raspberry PI', but now I donot know how to configure the gateway. Could anyone please help me in finding what I have to enter in the gateway configuration? Thanks, Vamsi.
Last updated: 2024-07-10
Post by mubeta on Reset problem with CMZ SD/SVM drive
CODESYS Forge
talk
(Post)
In a recent project with SoftMotion 4.15.0.0, where I integrated two SD drives from CMZ (from catalogue EDS and not imported), on CANopen bus, I found that the SoftMotion MC_Reset function does not reset the drive faults. Even if the drive is in fault, either on the device or on the drive at the CoDeSys level, the function does not reset, instead reporting the error code: no error to reset. Finally, I had to connect the reset bit of the ControlWord directly to a tag in my program. Something I never had to do on other drives: Lexium, etc. all reset simply with MC_Reset.
Last updated: 2024-07-24
Post by jnoyau on Visualisaion while in simulation
CODESYS Forge
talk
(Post)
Hi all, Im new to Codesys 3.5, and am in the process fo making a visualisation i'd eventually export towards a Wago device. The issue I'm having currently is that when I compile and connect to the simulated program, my simulation won't launch. On the Visualisation tab, all I get is a text message (where previously there was my prepared visualisation) that says "The visualisation awaits a connection. Start the application" One thing to note: I work with Codesys 3.5 in french, so this is a rough translation. And a second: I'm not getting any errors nor warnings about the visualisation tab itself upon compiling Is there a step i'm missing after launching my simulation? Or would it be some really specific issue caused by the way I've set up my program? Thanks, J
Last updated: 2024-07-31
Post by eguerra on Error in ScriptingEngine Docs - create_pou()
CODESYS Forge
talk
(Post)
In the ScriptingEngine documentation there seems to be an error (or missing information) in the ScriptIecLanguageObjectContainer part ( https://content.helpme-codesys.com/en/ScriptingEngine/ScriptIecLanguageObjectContainer.html#ScriptIecLanguageObjectContainer.ScriptIecLanguageObjectContainer ). The description of the function create_pou() doesn't specify the correct arguments requested, it only says create_pou(type: SpecialPouType) and a script using the documentation definition of the function will raise an error. I tried passing the function arguments similar to the ones specified for the create_dut() function and it seems to work fine: create_pou(name, PouType) , name : str UPDATE: The offline help has the correct definition IExtendedObject<IScriptObject> create_pou( string name, PouType type = PouType.FunctionBlock, Nullable<Guid> language = null, string return_type = null, string base_type = null, string interfaces = null )
Last updated: 2024-08-05
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.