Post by dhumphries on Not able to see input data coming from eip adapter on codesys
CODESYS Forge
talk
(Post)
Does the device have a green icon next to it when the PLC is running? If not you have some kind of communication problem, wireshark may be picking up some data but the scanner may not be configured correctly to receive the data. Check the T>O and O>T bytes and make sure they match on both the scanner and adapter. I've had very little success loading a .eds file and having the configuration work without some manual configuration. If you have a green icon, have you enabled the device to always update variables?
Last updated: 2024-03-02
Post by eschwellinger on Zielsystem stimmt nicht mit dem verbundenen Gerät überein
CODESYS Forge
talk
(Post)
na ja es gibt halt einfach die Möglichkeiten: 1. Man installiert Raspberry PI OS 32Bit -> dann geht PI SL und PI MC Multicore als Target 2. Man installiert Raspberry PI OS 64Bit dann muss es PI64Bit sein falls der Übersetzungsfehler nicht in einer Bibliothek ist (die du vielleicht nicht ändern kannst) https://faq.codesys.com/pages/viewpage.action?pageId=128253958 Hier der Hinweis was man tun muss das dein IEC Code für 32Bit als auch 64Bit Targets funktioniert Also entweder zurück auf Raspberry PI OS 32 Bit: nur zur Info noch was im Config file steht für welche Plattform/Produkt [CmpRasPi] Architecture=aarch64 (-> 64Bit PI) oder Architecture=armv7l (-> PI MC Multicore) oder Architecture=armv6l (-> PI SL Single Core)
Last updated: 2024-03-11
Post by esave on Stepper Drive with Ethercat
CODESYS Forge
talk
(Post)
Hello everybody I am new into Codesys. I have a stepper driver (EM3E-556E) from Leadshine. I want to controll the stepper driver via EtherCat to a ST programm but I dont have any function block or anything that i can use. I only have the XML-File wich I loaded. With it I implemented the drive as a Ethercat slave and now I see these variables. (See picture) I dont know how to controll the stepper drive. And the manufacturer doesnt provide support for me. Can anybody help me or atleast tell me how they would do it?
Last updated: 2024-03-14
Post by fenicklar on Login problem with FileTransfer on Raspberry Pi 5
CODESYS Forge
talk
(Post)
Hello everyone, I'm currently trying to set up a FileTransfer function from a Webvisu to my Raspberry Pi 5 on Codesys 3.5 SP 19 Patch 6. I went in the files CODESYSControl.cfg and CODESYSControl_User.cfg and added : [CmpWebServerHandlerV3] AllowFileTransferServices=1 And it seems to be working. However, I cannot access my several Webvisu without putting my login. That's a problem because one of my webvisu is in kiosk mode on the raspberry itself and there is nokeyboard attached, it's just an information screen, but I can't view it. Is there a wey to enable the File Transfer without requiring to login ? Thank you for your time
Last updated: 2024-03-18
Post by superjojo2002 on Licensing info not available.
CODESYS Forge
talk
(Post)
If support for a containerized CODESYS runtime with a license isn't feasible, then I've considered an alternative approach: I've purchased and activated a "CODESYS Control Basic S" license on my Windows notebook, where I already have the Codemeter Control Center installed. Upon activation, I can see the CODESYS license as active on my notebook. Subsequently, I followed the instructions provided in this link (https://faq.codesys.com/display/CDSFAQ/How+to%3A+Setup+a+Wibu+Network+Server+Access+for+Licenses) to configure the Wibu runtime in the CODESYS container to access my external license server hosted on my notebook by editing the CODESYSControl_User.cfg file accordingly. However, it's worth noting that I'm still receiving a response from the Licensing Manager indicating that the runtime is persistently searching for a dongle instead of recognizing the soft container. So how can I get my runtime licensed now? Any ideas?
Last updated: 2024-03-20
Post by tecnocons on Trouble Writing Files to External Paths in CODESYS
CODESYS Forge
talk
(Post)
Hello everyone, I'm encountering an issue in CODESYS regarding writing files to external paths. Despite correctly configuring the placeholder in the CODESYSControl_User.cfg file to allow access to an external folder, CODESYS doesn't seem to write any files, and no errors are reported. The issue on the older versions was absent with no placeholders. I've checked the operating system permissions, and they seem to be in order, but the issue remains. Has anyone faced a similar situation or has any suggestions on how I might resolve this problem? Any help would be greatly appreciated. Thank you in advance for your support. I'm using raspberry PI as a logger. RPI3 Buster Codesys 32bit SL V4.11 Codesys Win64 3.5.20 [SysFile] PlaceholderFilePath.1=/home/pi/scan, $SCAN$
Last updated: 2024-04-09
Post by bschraud on UnerwĂĽnschte Username- und Passwortabfrage im Browserfenster
CODESYS Forge
talk
(Post)
Hallo, die Option CallVisuServicesDirectly=1 verändert das Verhalten leider nicht. In Codesys gibt es noch in den Einstellungen der Webvisu den Eintrag unter Login-Visualisierung. Das Löschen dieses Eintrages ergibt aber auch keine Änderung. Evtl. wird bei der neuen Codesys Version für die Webvisu eine https Verbindung vorausgesetzt. Zu dem Thema bin ich im Thread https://forge.codesys.com/forge/talk/Visualization/thread/5767230df2/ auf die Beschreibung im Installationsverzeichnis unter file:///C:/Program%20Files/CODESYS%203.5.20.0/GatewayPLC/Documentation/WebServerSSL_de.pdf gestoßen. Allerdings gibt es dort Diskrepanzen zwischen der Verzeichnisstruktur auf meinem Gerät und in der Beschreibung. Also werde ich in dieser Richtung weiterforschen. Vielleicht hat noch jemand einen Tip, wie die Webvisu schnell auf https umgestellt werden kann. Vielen Dank!
Last updated: 2024-04-10
Post by dkugler on build (F11) / generate code using a python script file
CODESYS Forge
talk
(Post)
thank you very much! I found the generate_code methode, but struggled with the primary and active_application. With this expample I will be able to play around. If the code generation takes a minute or more I often switch to other programs and don't notify the process is finished. So now I'll get an alert and will switch back immediately. My next little project will be, to beep different if there are errors and a seperate script to do the download incl. the user management data base without stopping at the dialogs asking for onlinechange/complete download and overwriting an existing database and as goody, play a beep/sound again.
Last updated: 2024-04-11
Post by stewnguth on New License not working.
CODESYS Forge
talk
(Post)
Hey there, I am pretty new to the codesys space, but I got a codesys control basic M license for my raspberry pi that isntalled with no problem yesterday. Today, I went to install the visualization M locense as well because I went over the variable limit and am getting a "servernotfound" error in codesys when attempting to activate. I also tried to follow the advice in some other threads and install using a license request file on the web interface but am getting a message saying "An internal error occured" when attempting to install the license. Can anyone help me get this up and running? Thanks for your time.
Last updated: 2024-05-23
Post by spice on WebVisu Recipe Save/Load
CODESYS Forge
talk
(Post)
I'm currently reworking the controls on a cnc press brake and wanted to load various recipes as programs to run. I'm using a 2d array of REALs to store the X and Y coordinates as well as some other program parameters in a recipe. I'd like to store all of the recipes on a computer used as the HMI that way the text files can be edited and uploaded offline. I'm using Automation Directs P2CDS-622 Can this be done through webvisu? If not would a license for Codesys HMI SL on the computer allow me to accomplish this? I've attached the Project File Thanks, Spice
Last updated: 2024-05-31
Post by kronlundo on Licensing info not available (WAGO PFC200 + Codesys V3)
CODESYS Forge
talk
(Post)
Hi! We're using a WAGO PFC200 for several projects towards the energy sector, and recently upgraded to CODESYS V3. We have the "IEC 60870-5-104 Server" package in a test program, and it works well with the package in DEMO mode. However, when we acquired a license for the "IEC 60870-5-104 Server" package and tried to add the license on the PFC200 through the license manager, we get an error (see attached file). It seems like there is no CmContainer on the device, does anyone have an idea on how to fix this? We've also contacted WAGO on this issue a while back with no feedback yet.
Last updated: 2024-06-10
Post by kuegerls on SysProcessExecuteCommand2 and CANopen Device
CODESYS Forge
talk
(Post)
Hello, CODESYS Control is running on my RevPi, and my system communicates over a CANbus with a master using the ConnectCan module (Slave - CANopen Device). The communication works perfectly fine so far. However, as soon as I call a Python script with "SysProcessExecuteCommand2" that creates a CSV file and executes without errors, the master does not adopt any changes to the Transmission Process Data Objects (TPDOs). I don't quite understand what one has to do with the other, and perhaps someone can help me with this. Here is my script call: SysProcess.SysProcessExecuteCommand2(pszCommand:='python /home/pi/test.py', pszStdOut:=sCMDOutput, udiStdOutLen:= SIZEOF(sCMDOutput), pResult := ADR(eResult)); Thank you in advance! Best regards, Stefan
Last updated: 2024-06-20
Post by wchin on Passing EtheNetIP adapter device into a Function Block to access it's IO
CODESYS Forge
talk
(Post)
We are creating helper function blocks for our VFD(EtherNetIP). How should I set it up so that I can pass the device into and out of the Function Block so that ideally I can access the IO of the device by devicename.channelname. So something like for example we have a VFD with a start bit that is in the ControlWord channel and a SetVelocity that is a channel. And we want to create a Function Block called StartVFD. So I declare something like: FUNCTION_BLOCK StartVFD VAR_IN_OUT device: ioDrvEthernetIP.RemoteAdapter; END_VAR VAR_INPUT velocity : REAL; So in the code it would look something like device.SetVelocity := velocity; device.ControlWord.6 := True; We have a pretty basic eds file for our VFD and can update it if necessary. Thanks in advance.
Last updated: 2025-10-28
Post by wchin on Passing EtheNetIP adapter device into a Function Block to access it's IO
CODESYS Forge
talk
(Post)
We are creating helper function blocks for our VFD(EtherNetIP). How should I set it up so that I can pass the device into and out of the Function Block so that ideally I can access the IO of the device by devicename.channelname. So something like for example we have a VFD with a start bit that is in the ControlWord channel and a SetVelocity that is a channel. And we want to create a Function Block called StartVFD. So I declare something like: FUNCTION_BLOCK StartVFD VAR_IN_OUT device: ioDrvEthernetIP.RemoteAdapter; END_VAR VAR_INPUT velocity : REAL; So in the code it would look something like device.SetVelocity := velocity; device.ControlWord.6 := True; We have a pretty basic eds file for our VFD and can update it if necessary. Thanks in advance.
Last updated: 2025-10-28
Post by wchin on Passing EtheNetIP adapter device into a Function Block to access it's IO
CODESYS Forge
talk
(Post)
We are creating helper function blocks for our VFD(EtherNetIP). How should I set it up so that I can pass the device into and out of the Function Block so that ideally I can access the IO of the device by devicename.channelname. So something like for example we have a VFD with a start bit that is in the ControlWord channel and a SetVelocity that is a channel. And we want to create a Function Block called StartVFD. So I declare something like: FUNCTION_BLOCK StartVFD VAR_IN_OUT device: ioDrvEthernetIP.RemoteAdapter; END_VAR VAR_INPUT velocity : REAL; So in the code it would look something like device.SetVelocity := velocity; device.ControlWord.6 := True; We have a pretty basic eds file for our VFD and can update it if necessary. Thanks in advance.
Last updated: 2025-10-28
Post by bitor-leao on *EXCEPTION* [ProsessorLoadWatchdog] codesys 3.5.11.40
CODESYS Forge
talk
(Post)
Good night. I am having a problem with CODESYS 3.5.11.40, which gives the exception EXCEPTION [ProcessorLoadWatchdog]. I followed some forum posts and tried to modify the CODESYSControl.cfg file, but it shows: [SysFile] Windows.WorkingDirectory=C:\ProgramData\CODESYS\CODESYSControlWinV3\D5050FE1 Then I go to this directory and try to modify CODESYSControl.cfg according to the forums, but it doesn’t work: [CmpSchedule] ;EnableLogger=0 ProcessorLoad.Maximum=80 ;Timeslicing.Mode=Internal ;Timeslicing.PlcSlicePercent=80 ;Timeslicing.PlcSliceUs=4000 ;Timeslicing.StartOnProcessorLoad=1 ;SchedulerPriority=5 ;SchedulerInterval=1000 I tried to change ProcessorLoad.Maximum to 0 or 100, but it doesn’t compile when I try. I really don’t know what to do,
Last updated: 2025-11-16
Post by bitor-leao on *EXCEPTION* [ProsessorLoadWatchdog] codesys 3.5.11.40
CODESYS Forge
talk
(Post)
Good night. I am having a problem with CODESYS 3.5.11.40, which gives the exception EXCEPTION [ProcessorLoadWatchdog]. I followed some forum posts and tried to modify the CODESYSControl.cfg file, but it shows: [SysFile] Windows.WorkingDirectory=C:\ProgramData\CODESYS\CODESYSControlWinV3\D5050FE1 Then I go to this directory and try to modify CODESYSControl.cfg according to the forums, but it doesn’t work: [CmpSchedule] ;EnableLogger=0 ProcessorLoad.Maximum=80 ;Timeslicing.Mode=Internal ;Timeslicing.PlcSlicePercent=80 ;Timeslicing.PlcSliceUs=4000 ;Timeslicing.StartOnProcessorLoad=1 ;SchedulerPriority=5 ;SchedulerInterval=1000 I tried to change ProcessorLoad.Maximum to 0 or 100, but it doesn’t compile when I try. I really don’t know what to do,
Last updated: 2025-11-16
Post by swol on HTML 5 - Controls -> Change Content-Security-Policy settings
CODESYS Forge
talk
(Post)
Sorry for being late to the party... so it is not possible to use the webbrowser tool to display external websites in a visu anymore? As it is not possible to simply "adjust the ContentSecurityPolicyIncludeTrustedOrigins setting in the automatically generated webvisu.cfg.json file" as stated in the docs? We need to display data read from a Raspberry Pi (part of our computer network) in our webvisu. We used to do it by entering the Pi's IP address as the URL variable in the webbrowser element but now (I don't know since when, I'm new on the job) "The page’s settings blocked the loading of a resource (frame-src) at 'IP address' because it violates the following directive: “default-src 'self' 'unsafe-inline'”. What are the options for displaying the data?
Last updated: 2025-11-11
Post by ranadheer on Assistance for MQTT configure with external broker (Mosquitto)
CODESYS Forge
talk
(Post)
Hi everyone Am trying to make establish MQTT connection , where am using IIOT example for this as a demo mode. where i had given IP-address of of local Linux application as a 172.31.239.67 and port number as 1883 in the PLC_PRG itself, and preparing the publish message by manually as " this is from published message", and this should receive at the subscriber side. Aim: To make communicate external publisher to the CODESYS by using MQTT protocol. By any chance having reference documents about this implementation please share here. and suggest the process to make it possible. I had uploaded reference project file after updating address in th PLG_PRG, kindly assist to configure with the broker
Last updated: 2025-12-03
Post by egerobotics on [New Hardware] EtherCAT Digital & Analog IO Board – CODESYS Compatible, All Channels Isolated
CODESYS Forge
talk
(Post)
Hi everyone, I'd like to share a new EtherCAT slave I/O board I've developed — the EtherCAT Digital & Analog IO Board by EGEROBOTICS. Key specs: 12x isolated digital outputs (24VDC) 12x isolated digital inputs (24VDC) 4x isolated 0–10V analog outputs (12-bit DAC) 4x isolated 0–10V analog inputs (12-bit ADC) All channels galvanically isolated 24VDC powered EtherCAT CoE protocol Typical use cases: Analog servo drive speed reference (0–10V) via EtherCAT Frequency inverter reference signal Proportional valve control Industrial sensor data acquisition Compatible with CODESYS SoftMotion, Beckhoff TwinCAT 2/3, LinuxCNC + EtherCAT HAL, and SOEM. Here's a quick demo video showing it running under CODESYS: 👉 https://www.youtube.com/watch?v=bUuo9reK29s ESI file, PDF manual and AutoCAD drawings available. Available on Tindie: https://www.tindie.com/products/emresensoy/ethercat-digan-io/ Happy to answer any technical questions!
Last updated: 2026-06-13
Post by arwie on Frustration-Fueled Feedback on Project File Management and Git Integration
CODESYS Forge
talk
(Post)
An other approach is to split the application into a hard real-time part running in CODESYS and the business logic running in Python asyncio. The business logic part is usually bigger and changes more often. As Python code is pure text, vscode and git are your friends. A performance example on YouTube (CODESYS SoftMotion + Python): https://www.youtube.com/watch?v=BT-L0H_4Aic Docs and code on GitHub: https://github.com/arwie/controlOS_demo/blob/main/docs/codesys_python_link.md Real-time variable exchange between a CODESYS application and a Python application running in parallel, using POSIX shared memory.
Last updated: 5 days ago
Post by brouwyka on JSON Utilities - JSON file written with invalid structure
CODESYS Forge
talk
(Post)
Hey there! I am currently running into the exact same issue (and have also posted to a similar post here: https://forge.codesys.com/forge/talk/Engineering/thread/c45929e2f1/#e27f). 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 tcarlbom on Read tag values using external program
CODESYS Forge
talk
(Post)
This is my first time posting in this forum and I am new to codesys. I am a fullstack developer and I am trying to figure out how the following. What would be the best approach to create a own/custom tag browser? Either directly in codesys ide or using a separate custom program (perhaps a winforms application). 1.a. Shall I parse the .project xml file to get a list of all tags in the project? 1b. Shall I use python scripting in codesys ide to get a list of tags? Once one have selected some tags. These tags shall be exposed to a python program which will be acting as a edge computer. It’s fine to be able to import a file. 2a. I found a library called codesys plchandler which (as I understand) acts a rest api server. Is this correct? If so, can I query the api from a custom python script, ie can query what tags exist in project and or read tag values? My research so far. From earlier projects I know that using opc ua would be perfect for this but from my opinion it’s bloating the plc since it’s resource intensive. So opc ua is not an option. Codesys automation server is neat. But I don’t want to rely on some cloud services and subscription based pricing. There seem to be several interesting codesys libraries like mqtt, tcp server and NVL sender which would help me expose plc tags. But all have a common problem. One have to manually write what tags which will be used in these function blocks. I want a similar experience like “selecting” tags in the opc ua or the codesys tracing, ie a tag browser.
Last updated: 2024-06-28
Post by trusty-squire on SysProcessCreate2 on Linux runtime
CODESYS Forge
talk
(Post)
Hi, I'm trying to launch a continuously running python script from Codesys and monitor the script status inside the Codesys runtime (running on a Linux enviroment). For now I'm testing with the below to emulate a continuously running Python script: #test.py i = 0 while True: i += 1 I'm able to successfully run the script using SysProcessExecuteCommand2 (I can see the Python process running in the task manager). However, this "freezes" the Codesys execution of the task - it sits on that command and will not continue until the Python script ends. I've proven this works by using the task monitor to kill the process, then Codesys continues on happily through the task. What I want to do is use SysProcessCreate2 to set up the Python script as a background task and monitor the process using SysProcessGetState. This always results in the error "ERR_OPERATION_DENIED". I know that I'm able to execute commands (as above), so my config should be correct. Is SysProcessCreate2 functional on a Linux environment? Is there something in the config file I'm missing? Here's my "working" code that uses SysProcessExecuteCommand2: VAR bTest : BOOL; sCommand : STRING := '/usr/bin/python3 /var/opt/codesys/PlcLogic/Application/test.py'; refCommand : REFERENCE TO STRING REF= sCommand; sOutput : STRING; refOutput : REFERENCE TO STRING REF= sOutput; result : RTS_IEC_RESULT; END_VAR IF bTest THEN SysProcessExecuteCommand2( pszCommand:= refCommand, pszStdOut:= refOutput, udiStdOutLen:= SIZEOF(sOutput), pResult:= ADR(result) ); bTest:= FALSE; END_IF And here's the code that always results in the ERR_OPERATION_DENIED error: VAR bTest : BOOL; sApp : STRING := '/usr/bin/python3'; sCommand : STRING := '/var/opt/codesys/PlcLogic/Application/test.py'; refApp : REFERENCE TO STRING REF= sApp; refCommand : REFERENCE TO STRING REF= sCommand; hResult : SysProcess.RTS_IEC_RESULT; hHandle : SysProcess.RTS_IEC_HANDLE; END_VAR IF bTest THEN hHandle := SysProcessCreate2( pszApplication:= refApp, pszCommandLine:= refCommand, ulFlags:=SYSPROCESS_CREATEFLAG_HIDDEN, pResult:= ADR(hResult) ); bTest:= FALSE; END_IF Here's the relevant section from the config file at /etc/codesyscontrol/CODESYSControl.cfg: [SysProcess] Command=AllowAll Appreciate any support or ideas. Thanks!
Last updated: 2025-03-16
Post by timvh on VisuElems.CurrentUserGroupId is not stable
CODESYS Forge
talk
(Post)
I'm not sure what you are trying to do, but getting the CurrentUserGroupID like this will not work, because there could be multiple Visualization Clients and each can have a different user that is logged in. Also when you go online with CODESYS and open an Visualization, this is counted as a client. Probably this is the reason you see it changing. What you can to is "iterate" over all clients and then see which user is logged in on which visualization Client. For this you need to add the Visu Utils library to the project and call the FbIterateClients. See https://content.helpme-codesys.com/en/libs/Visu%20Utils/4.4.0.0/VisuUtils/VisuActionUtilities/Function-Blocks/FbIterateClients.html fbClientIteration( xExecute := x_Execute, itfClientFilter := VU.Globals.AllClients, itfIterationCallback := fbIterator, xDone => x_Done, xBusy => x_Busy, xError => x_Error, eError => e_Error); The fbIterator, in the example above, should be an instance of an FB which you have created yourself and this must implement VU.IVisualizationClientIteration. For example: FUNCTION_BLOCK FB_ITERATOR IMPLEMENTS VU.IVisualizationClientIteration Then automatically the corresponding methods will be called. In the HandleClient Method, you will get an interface to the client(s) and then you can get the current user through this interface: itfClient.UserGroupId You can also get the UserName: itfClient.UserName
Last updated: 2023-11-14
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.