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 naps on cant install runetime on 750-8202
CODESYS Forge
talk
(Post)
Hello, im trying to install the 3.5 Runtime on a a fresh image on my 750-8202. Product Description: WAGO 750-8202 PFC200 CS 2ETH RS Firmware Revision: 03.10.08(22) ~~~ df -h Filesystem Size Used Available Use% Mounted on ubi0:rootfs.1 82.5M 66.5M 11.8M 85% / devtmpfs 117.8M 16.0K 117.8M 0% /dev none 118.3M 12.0K 118.3M 0% /tmp none 118.3M 0 118.3M 0% /media none 4.0M 136.0K 3.9M 3% /var/log none 118.3M 112.0K 118.2M 0% /var/run none 118.3M 0 118.3M 0% /var/lock none 118.3M 0 118.3M 0% /var/tmp none 118.3M 0 118.3M 0% /sys/fs/cgroup tmpfs 118.3M 48.0K 118.2M 0% /run /dev/ubi0_1 58.6M 3.4M 52.2M 6% /home /dev/ubi0_1 58.6M 3.4M 52.2M 6% /settings /dev/ubi0_1 58.6M 3.4M 52.2M 6% /log ~ After installation and reboot i have still the wago webinterface. No runtime on Information Tab and the Runtime button from the configuration tab is lost. iv try it with firmware 22 and 21. Same problem. What can i do?
Last updated: 2024-09-29
Post by imdatatas on Read "Homed" status from EtherCAT drive
CODESYS Forge
talk
(Post)
Hello, I have experienced such situations with some servo drive devices in the past. The home completion information is reported to the upper controller by the slave drive with the states of the relevant bits in the StatusWord (for example; 6041h Bit10, Bit12 in Home mode). If the states of these bits are correct in terms of number and state but the motor does not actually perform the action; You can contact the slave drive manufacturer. There may be a problem with the device firmware. Another area you can play around with is looking at the settings in the "Advanced configuration" for Softmotion axis on the page the link to below, and trying it out and using the one that works for you. https://content.helpme-codesys.com/en/CODESYS%20SoftMotion/_sm_cmd_add_softmotion_cia402_axis.html A method I recommended worked for a user as in below message. https://forge.codesys.com/forge/talk/Engineering/thread/40bc82454d/ I hope your problem will be solved as soon as possible and by sharing the result here, you will help others to know and overcome it. Good luck. Best regards, Imdat
Last updated: 2025-01-08
Post by peterkcontrols on TargetVisu started in windowed or not full screen
CODESYS Forge
talk
(Post)
Thanks for the response. I have found this file in two places, I have updated the text in both but it didnt work. Am I missing something on the Codesys side. How do you restart the soft plc, I have been stopping it and starting it. The Visu screen come up but still in full screen mode. Here are the two locations of this file: C:\Program Files\Codesys Control\GatewayPLC\AppDataFiles\CODESYSControlWinV3x64 and C:\Program Files\CODESYS 3.5.20.50\GatewayPLC\AppDataFiles\CODESYSControlWinV3x64 Here is the contents of targetvisuextern.cfg [ComponentManager] [CmpTargetVisu] ; The Window... settings can be used for displaying the targetvisualization in a window instead of fullscreen WindowType=0 WindowPositionX=0 WindowPositionY=0 WindowSizeWidth=1024 WindowSizeHeight=768 HideCursorCompletely=1 [SysWindow] ;Windows.CloseOnAltF4=0 ;Windows.CloseOnWM_CLOSE=0 [CmpLog] ;Logger.0.Name=TvExtLogger ;Logger.0.Enable=1 ;Logger.0.MaxEntries=1000 ;Logger.0.MaxFileSize=5000 ;Logger.0.MaxFiles=3 ;Logger.0.Backend.0.ClassId=0x0000010B ;sends logger messages to SysOut ;Logger.0.Backend.1.ClassId=0x00000104 ;writes logger messages in a file ;Logger.0.Backend.2.ClassId=0x00000135 ;sends logger messages as UDP syslog
Last updated: 2025-02-26
Post by pistola on C0357: "GetNextClient" is obsolete, use VisuUtils instead
CODESYS Forge
talk
(Post)
I'm having some troubles with this same issue and I'm wondering if someone can help me out. On a settings visual I allow the operator to enter some values however if they activate the page change button it will change the change with the Numpad dialog open. Since I'm using Visuelems.CURRENTVISU to change the pages I came across this code noted below for determining if the Numpad dialog was active. This code worked great however now in 3.5.19 it's now obsolete. I've tried following the directions in the attached program above however I can't see to get it to work in my program. Can anyone provide some help to determine if a dialog is open? FUNCTION Check_Dialog_Open : Bool VAR_INPUT sDialogName : STRING; // Input variable for the name of the dialog END_VAR VAR pstClientData : POINTER TO VisuElems.VisuStructClientData; // Pointer to the client data structure itfDialogManager : VisuElems.IDialogManager; // Interface for the dialog manager itfMyDialog : VisuElems.IVisualisationDialog; // Interface for the specific visualisation dialog END_VAR // Begin the iteration over the client manager VisuElems.g_ClientManager.BeginIteration(); // Loop through each client until no more clients are found WHILE (pstClientData := VisuElems.VisuElemBase.g_ClientManager.GetNextClient()) <> 0 DO // Get the dialog manager interface itfDialogManager := VisuElems.g_VisuManager.GetDialogManager(); // Get the specific dialog interface using the dialog name itfMyDialog := itfDialogManager.GetDialog(sDialogName); // Check if the dialog is open for the current client Check_Dialog_Open := VisuDialogs.VisuDlgUtil_IsDialogOpen(itfMyDialog, pstClientData, itfDialogManager); // If the dialog is open, exit the loop IF Check_Dialog_Open THEN EXIT; END_IF END_WHILE
Last updated: 2025-03-27
Post by pernockham on Engineering IDE from linux?
CODESYS Forge
talk
(Post)
I have done the switch (linux mint, virtual windows through QEMU/KVM) now and is generally pleased. Have had problems in two areas initially. To bridge IP to the Virtual unit (solved), I overthought things initially. Solution. Configure manually a bridge in the mint-"network connections". Use that bridge in the Qemu settings as "Bridge device", "Device name": "name of the configured bridge" Figure out where to store the projects. I started out have the data in linux world (sort of) and linking it the windows with "virtio-fs". That had some serious impact though on git-handling. It seems that virtio-fs interpreted any file-path as lowercase only even if there were uppercase, resulting in git not able to sync files between its repository and the source code (it created a new file-path for me with only lowercase). Then I switch to samba-share instead and this works much better, though (git-actions) is a part that still has low performance with lots of waiting for file-actions. What should be the best way of handling the source/git? Edit to answer myself: Save the project "locally" in windows, then a lot of slow performance is avoided. Then a git-remote sync for backup.
Last updated: 2025-05-08
Post by sbhaskarla on WebVisu File Transfer Error
CODESYS Forge
talk
(Post)
I’m encountering an issue when downloading CSV files via the WebVisu button input config -> file-transfer option: • Custom directory: /plcdata/csv_logs/filename.csv o Error: Error 4 – Error during file transfer • Sandbox directory: /var/opt/codesys/PlcLogic/plcdata/csv_logs/filename.csv o Result: Download succeeds without error. Actions taken so far: 1. Added /plcdata/csv_logs to codesyscontrol.cfg (see attached). 2. Enabled file-transfer services in codesyscontrol_user.cfg (see attached). 3. Confirmed that the PLC writes CSV files correctly to /plcdata/csv_logs/. Despite these settings, WebVisu still returns Error when accessing the custom path 1. Using the placeholder file path '$$CSVLOGS$$/filename.csv' and it returns Error 6. 2. Using the literal path /plcdata/csv_logs/filename.csv and it returns Error 4 Could someone please help me determine what additional configuration or troubleshooting steps are required to serve files from /plcdata/csv_logs/? Please find screenshots attached for better understanding and I have also attached the config files
Last updated: 2025-06-13
Post by jakubmphoenix on EtherCAT Master on RaspberryPi with EtherCAT Slave on Beckhoff
CODESYS Forge
talk
(Post)
Hello everyone, I’m currently working on setting up an EtherCAT Master using CODESYS on a Raspberry Pi, and I’ve run into some issues I could use help with. Project Setup: EtherCAT Master: Raspberry Pi with CODESYS Control for Raspberry Pi 64 SL installed EtherCAT Slave: Beckhoff CX5130 with EK1200 coupler I/O Module: EL2008 License Module: EL6070-0033 I’ve installed the required CODESYS packages and the Linux gateway on the Raspberry Pi. In my project, I added the EtherCAT Master with the appropriate port settings and scanned for devices. The CX5130 shows up as a slave, but communication fails—I'm getting error messages and can't access the outputs. Specifically: The EL2008 output module isn’t recognized properly in CODESYS. There’s no option to communicate with it through the CX5130. I’ve tried connecting via both the Raspberry Pi’s built-in Ethernet port and an external network card. I've attached screenshots showing the errors I get in CODESYS and the devices detected via TwinCAT for reference. Any help or suggestions would be greatly appreciated! Thanks in advance! EMERGENCY FROM DEVICE 1001 ERROR CODE 16#A000 Error register 16#02 Error field: 16#02 Error field : 16#0E 16#04 16#00 16#04 16#00
Last updated: 2025-07-16
Post by imdatatas on MC_MoveAbsolute: C0138: No matching 'FB_Init' method found for instantiation of SMC_MoveAbsRelPerformerImpl [ERROR]
CODESYS Forge
talk
(Post)
Dear @gseidel, Thank you for your reply. The exact version of Codesys and its compiler was 3.5.21.20. The compiler version was fixed and could not be changed in project settings. Since I couldn't continue due to this compilation error, I temporarily overcame this issue as follows. -- I completely uninstalled Codesys 3.5.21.20 and completely deleted the Codesys folder in the C:\ProgramData folder. -- I restarted my computer and installed Codesys 3.5.19.70. -- I updated the Codesys Installer and all its add-ons to the latest versions. -- The project that was giving me the compilation error I mentioned before is now open with Codesys 3.5.19.70, compiled it, and successfully downloaded it on the device. -- I haven't encountered the same problem anymore. I think this issue is related to SP21 and its compiler. Frankly, I'd expect a project created with an older version to compile without errors after opening it with the latest Codesys version and updating all libraries. Regards, imdatatas
Last updated: 2025-09-26
Post by timvh on Licensing info not available.
CODESYS Forge
talk
(Post)
In the VPLC configuration settings there is an entry for the IP address of the license server. In this setting fill in the IP address of your device (host IP address). Then when the virtual PLC starts up, it will get the license from the license container on the host. You can do this for all VPLC's running on your device. The VPLC will always take the smallest license which fits the required license. So if you have 2 licenses for VPLC's with small and large applications, then this will work fine if you start up one VPLC which requires the small license and the other which requires the large license. PS, personally I find it much easier, especially for testing and experimenting, to activate the licenses on a CODESYS (USB) key. This is easy to activate (on your development PC) and easier to move to another device. Addtionally you don't loose the license when you need to install a completely new image on the device.
Last updated: 2025-10-02
Post by cihangur on C0138: No matching 'FB_Init' method found for instantiation of VisuClientObjectMgr
CODESYS Forge
talk
(Post)
This "FB_Init" error has become very annoying lately. It's usually related to webvisu and is resolved by deleting all objects and related libraries. Of course, you need to re-add the deleted objects. Lately, we've generally been managing by not upgrading, but this problem persists in every version since SP20 and should be resolved. I updated a project from SP 19 to SP 21 and found 116 similar errors. [ERROR] alarmmanager, 4.7.0.0 (intern): ReplaceAlarmPlaceholdersConverted: C0138: No matching 'FB_Init' method found for instantiation of CharBufferString [ERROR] visuelemsalarm, 4.7.0.0 (system): protDrawRowHeader [VisuFbElemAlarmTable]: C0138: No matching 'FB_Init' method found for instantiation of CharBufferString [ERROR] alarmmanager, 4.7.0.0 (intern): AnalyzePlaceholders2 [Alarm]: C0138: No matching 'FB_Init' method found for instantiation of CharBufferString If you have an ERROR related VisuClientObjectMgr you can try to disable "Visualization Manager - Settings - Support client animations and overlay of native elements " selection "C0138: No matching 'FB_Init' method found for instantiation of VisuClientObjectMgr" etc
Last updated: 2025-10-10
Post by giackanto on Eoe issues with Windows and Linux
CODESYS Forge
talk
(Post)
Hello, I've been trying to use EoE for communication between a Windows PC and an M753 drive from Control Technique. Despite following some online guides (https://content.helpme-codesys.com/en/libs/EtherCATStack/4.3.0.0/Ethernet_over_EtherCAT/fld-Ethernet_over_EtherCAT.html) I haven’t had any success. Both are connected to a Debian device where RTE is running: The PC is connected via the Ethernet port. The drive is connected via the EtherCAT port. I'm unable to ping the drive from my Windows PC. Here is my configuration: On Debian: (See attachments 1, 2, 3) enp1s0 = Ethernet port enp2s0 = EtherCAT port tap2 = TAP device IP forwarding and routes are both configured. On Windows: (See attachments 4, 5) On Codesys: (See attachments 6, 7) Version: Windows 11 Debian GNU/Linux 11 Codesys 3.5.17 Control for Linux SL 4.7.0 EtherCAT 4.4.0 With this configuration, I can ping the TAP device, but not the drive (See attachment 8). Could someone explain how to properly configure all these settings? Thank you, GA
Last updated: 2023-12-19
Post by edepalos on Text list from sd card
CODESYS Forge
talk
(Post)
Hi guys, I have a textlist in my project which is working just as expected in a drop down list. I would like to move this text list to a sd card and access it from there, because I want to ease the editing of the contents of this textlist. I'm imagining a solution like the operator shuts down the plant, takes the sd card out, edits the textlist on the card with a windows machines notepad, then reinserts the card in the PLC and restarts the plant, having the new content of the textlist populating the dropdown list. I'm sorry that I'm asking you to spoonfeed me, but I did not find anything straightforward to do this... I saw in the Project>Project settings>Visualisation a relative path thingy, but I have the plant in operation and I would not like to make 100 trial and errors right now... I'm also not interested in SysLib file read commands and stuff, I would just like to access the file from the cards part, I don't want to replace its contents dynamically or such... nor I have language files or recipes... Thank You in advance! Br, Ede
Last updated: 2024-01-16
Post by toby on Ethernet/IP communication with Omron NX1P2
CODESYS Forge
talk
(Post)
Hey guys, I'm very much a noob with networking, it's my achillies heel, and this is my first networking project using Ethernet/IP. Any help offered is GREATLY appreciated. I'm trying to network a Codesys Project with an Omron NX1P2 PLC. I'm using EIP due to hardware restrains. I've added the fieldbus, EIP scanner (as the master), and made a Network Variable List. On the Sysmac Studio end, I've made the variables and set them to network inputs/outputs, registered them in EIP settings, but when I try to set the target device (the Codesys project), I suspect I need to import an EDS file for the EIP mapping. Back in the Codesys project, I'm not sure how to: - Make an EDS file to share with Sysmac Studio - How to link the target device (Omron PLC) to the EIP fieldbus - How to map the inputs from the Omron PLC. Im sorry for my very open request for help, i'm kind of lost looking through the various forums/video/tutorials as many of them dont match what im trying to do. Any help, or sample programs would be so so greatly appreciated. If you need any further clarifications, please feel free to ask. Thanks in advance, Toby
Last updated: 2024-01-24
Post by sanacfu on looking for v2.3 libraries on v3.5.19
CODESYS Forge
talk
(Post)
Hi all, I'm new to Codesys and Wago but well versed in Rockwell. I've been tasked with upgrading old Wago 750-880 PLCs that run Codesys v2.3. All I was giving is the original PLC program in v2.3 and the currently running machine. I've spec out to what I believe is a suitable upgrade, the PFC100 2ndGen, 750-8111. As I'm rewriting this code on the Codesys I can't find the same library functions blocks for ethernet settings PLC functions. Currently I'm working on code to get/set the PLC ethernet IP address and HMI IP addresses from the HMI screen. One other function I'm looking for is a warm reset function to the PLC. When googling for this stuff I see a lot of code not in ladder logic. Are these functions now not available to implement in ladder logic? Where can I get more information on finding and implementing this functions? Do I have to buy a license from Codesys to use these functions? The PLC I ordered should be arriving in 2-3 weeks.
Last updated: 2024-03-25
Post by cmj-icsys on Custom configure tab in device editor
CODESYS Forge
talk
(Post)
Hi everyone, I’m developing a custom CODESYS I/O driver for my company’s device, and I’ve been studying the example projects in CODESYS V3.5 SP20 Patch 5. In the IOMappingExample.project, I noticed that EtherCAT devices provide additional configuration tabs in the Device Editor, such as General, Process Data, etc. However, for custom I/O driver examples (based on IoDrv), the Device Editor only shows the default tabs like <devicename> I/O Mapping or <devicename> Parameters.</devicename></devicename> I’d like to create custom tabs or configuration pages in the Device Editor (e.g., “General Settings”, “Communication”, etc.) to allow users to configure parameters in a more structured way. Could anyone explain: How to define and register custom tabs or UI pages in the Device Editor? What tools or SDKs are needed to create UI elements such as combo boxes or check boxes? How to bind those UI controls to device parameters defined in the XML (device description)? Any example, SDK reference, or documentation link would be really helpful. Thanks in advance!
Last updated: 2025-10-20
Post by jonasz on Deploy LicenseServer for Linux SL
CODESYS Forge
talk
(Post)
Good morning, I'm digging into this topic because I'm curious about resolving my problem in a test environment. In my previous message, I asked about the CODESYS Safe Timeprovider SL package (4.18.0.0), which I saw in the illustration. I noticed that it runs as a service. I am asking about this because from the perspective of an "ordinary" user, this service provides easier access to the settings of the time provider's operating parameters. The basic time provider configuration is outlined at https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_virtual_safe_time_provider.html. Why my questions? They stem from my specific case, which is experiencing timeout issues. I know that my environment is currently only a test environment. I'm assuming a real-world scenario in which I won't be able to achieve a better result with my configuration, and I will ultimately need to increase the time provider's cycle time. By running the time provider service, I can easily influence the time provider's operation and thus eliminate the problem. I know, I know, safety systems are not life-enhancing extras.
Last updated: 2025-11-19
Post by jroddball79 on PM556-TP-ETH — How to change IP address without overwriting the PLC program?
CODESYS Forge
talk
(Post)
Hi, I need to change the IP address of an ABB PM556-TP-ETH using ABB Automation Builder. The situation is: I have connectivity to the PLC using the current IP (configured in Communication Settings) Online Login works fine The Network Scan does not detect the PLC IP-Configuration tool shows all fields disabled I don't have the original project source, only an empty project The PLC has no SD card inserted The Online menu does not show an Upload option When I modify the IP in the project and connect, Automation Builder shows: "The PLC configuration needs to be updated. A full PLC download is required" I'm afraid a full download will overwrite the running program. Is there any way to change only the IP address without overwriting the application? I'm also open to solutions using third-party tools, Python scripts, or any other method (DCP protocol, direct TCP communication, etc.) as long as it doesn't overwrite the running application. Thank you
Last updated: 2026-05-19
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 taywinkel on Virtual Keyboard Support on Login Page
CODESYS Forge
talk
(Post)
I am in the process of getting a visualization to work with the codesys keyboard. I created a custom keyboard which works fantastic for all input fields in the main visualization. I created a user management for my runtime, which gave me the standard blue login page. The codesys keyboard does not show up when trying to enter the usernam or password. I have tried every setting: changing the keyboard back to the standard codesys keyboard, and changing various settings on the visualization manager with no success. I can only use a physical keyboard connected to the device to enter the password. I did try removing the keyboard to no success either. I even tried creating my own login page so I could guarantee the keyboard showed up. This ended in disaster as I could not figure out the very complicated VisuUserManagement and VisuUserManagementDialog library, and documentation is contradictory or lacking. I imagine that an on screen keyboard is essential for many people's projects when using touchscreen panels, so I am wondering what others are doing. I would rather not use an external virtual keyboard (external to codesys) because this causes its own complications (I am working on a linux build with high securities).
Last updated: 2026-03-22
Post by egr99 on Modbus TCP Server connection is ESTABLISHED but all holding registers are value 0?
CODESYS Forge
talk
(Post)
Hi there, Read the above description and experienced the same: Reading coil/discrete input/input register/holding register doesn't fill the mapped I/O variable. Any suggestions? Defined (see attachment): - Ethernet (with parameters according to the used Ethernet adapter of my Windows 11 laptop) - -Modbus TCP Client - - -LOGO231 as Modbus TCP Server - - -WS242 as Modbus TCP Server (WaveShare Modbus TCP <-> RTU converter) - - - -WS242_01 as Modbus Server, COM port (slave-id 1 RTU) - - - -WS242_03 idem (slave-id 3 RTU) - - - -WS242_11 idem (slave-id 11 RTU) Writing coil/holding register works from a mapped I/O variable works fine. Verification of Modbus traffic with WireShark: QUERY to and the RESPONSE of all slave-ids are correct Status of all defined is CONNECTED, RESPONSE_SUCCESS, RUNNING etc. Request counters increase with expected frequency. Error counter = 0. (To have all counters works fine I had to change Modbus TCP Client's parameter OptimizationON to FALSE). LOGO231 works fine: values in mapped I/O conform expectation WS242 without Modbus Server, COM port and with defined channels (for only 1 slave-id possible) works fine. PLC Settings: Update I/O while in stop: I see xBusy changing from FALSE to TRUE and vice versa. Always update variables: Enabled 1
Last updated: 2026-04-05
Post by suyash on Device User Logon
CODESYS Forge
talk
(Post)
Hello. Basic Info : I am using Codesys Control For Raspberry Pi SL. Version 4.4.0.0 Engineering version : CODESYS V3.5 SP19 Patch 1 (Its a old application) I am facing a difficulty with the "Device User Logon". The window (screenshot attached) pops up during login. When i enter the credentials (which i feel are correct), the windows pops up again no matter how many times I enter. To ascertain, I tried entering the incorrect credentials during which its clearly specifying that i have entered them incorrectly (which is why I am quite certain about the credentials being correct). I even tried going into Communication Settings > Device(drop down) > Change Runtime secuirity policy . However it again asks me for credentials which keep popping up again and again. I am thinking of upgrading the runtime to the latest version of 4.20 Will it cause any issues with the paid license? Please suggest me a solution. BR, Suyash
Last updated: 2026-05-13
Post by s1ack on Wago PFC200 Ethernet / IoDrvEthernet Issue?
CODESYS Forge
talk
(Post)
CODESYS Control for PFC200 4.13.00 CODESYS IIoT Libraries SL 1.11.0.0 Application Based License: CODESYS Control Standard M I have (2) projects with similar code base and both using Wago PFC200. On the second project I am seeing 2 things that I have not been able to resolve: 1) Errors in the log under the Ethernet Item: IoDrvEthernet: [PCI\E1Q51CE62] Could not be found on target! Please check the Ethernet settings. 2) Exception for CPU Load. "Processorload watchdog: plcload=100, maxplcload=95" I have slowed down cyclic tasks on this project, even though on the first project there is actually more code - and it does not exhibit this behavior. In looking at the CPU loading via Linux 'TOP' command there appears to be 20% idle. So plenty of headroom (my opinion). In an effort to troubleshoot I have duplicated the target hardware on my bench. It ran overnight without a CPU load exception. On the test system, I have tried (3) version of the ethernet device. 3.5.16.0 3.5.17.0 and 4.2.0.0 Presently the log does not show the error, but status says the module reports an error. I really do not know if this issue is related to the CPU load exception. The issue does not appear to effect ethernet communications (ModbusTCP or SNMP or Webvisu or PuTTy into Linux Shell). On my test bench I have ModbusTCP slave simulators for all ModbusTCP slaves, but only (1) of the (5) SNMP devices present.
Last updated: 2025-01-21
Post by otbeka on CAA File Handling: "Read only" error
CODESYS Forge
talk
(Post)
Hi, On CODESYS V3.5.19.50 I am using the latest 3S File Access library (CAA File & CAA Types) to save and retrieve configuration data from the User Data section of an SD card, via file called config.txt. The application reads the file to memory once upon initialisation, and then the only other operation is overwriting the file with the updated configuration whenever the user changes the settings. An issue is ocurring, seemingly randomly, where the config.txt file, and all surrounding directories, cannot be written to by the unit, returning a READ_ONLY_CAA error upon file open. This sometimes does not clear even after power-cycling the PLC several times, yet checking the file permissions with ls -l shows normal read, write, and execute access. I am wondering if this is caused by the PLC itself or by an issue in my application. I have included my CAA File handler function block (SD_Card_Bin(FB).txt) and any associated types/calls below: TYPE ConfigData : STRUCT Config : ARRAY[0..256] OF STRING(64); NumberOfStrings : UDINT; END_STRUCT END_TYPE TYPE Buffer : STRUCT Data : ARRAY[0..SIZEOF(ConfigData)] OF BYTE; DataLength : UDINT; END_STRUCT END_TYPE A case within my MAIN PRG: mode.WriteConfigDataToFile: VisuElems.CURRENTVISU := 'Screen_Write'; IF xModeHasChanged THEN iErrorCount := 0; iRoute := 0; END_IF CASE iRoute OF 0: inBuffer := ConfigData_To_Buffer(GVL.UnitData); xConfigError := FALSE; xDataConfigured := FALSE; iRoute := 1; 1 : //Read Data from Card SD_Card_Bin.strFileName :=FileName; SD_Card_Bin.iFileOperation := 2; SD_Card_Bin(xExecute :=TRUE, WriteBuffer := inBuffer, xDone =>xDataConfigured, xError=>xConfigError, strErrorCodes=>strError); IF xDataConfigured THEN SD_Card_Bin(xExecute :=FALSE); IF xConfigError THEN iRoute := 32767; ELSE iRoute :=100; END_IF END_IF 100: // The end bCurMode := mode.DisplayProcessVariables; 32767: // Config error iErrorCount := iErrorCount + 1; IF iErrorCount > 2 THEN // Repeats 3 times, if no progress abandons and returns error bCurMode := mode.WriteError; ELSE iRoute := 0; // Try again END_IF END_CASE I'd like to rule out my application as the cause of this bug - help via comments or criticism would be greatly appreciated.
Last updated: 2025-03-19
Post by gunstr on CODESYS control on RPi starts, shortly runs, then exits
CODESYS Forge
talk
(Post)
Thank you very much for the quick answer! The RPi hw were delivered last week so it's probably a resent version. I found an old scrapped board (2 years or so) with a broken GPIO that I tested with the same SD card image and with that board Codeys can run for the full 2h demo period without issues. Then I went back the the new board to test the 4.17.0.0 release but the installation fails... [INFORMATION] Standard output: create and install daemon [INFORMATION] Standard output: codesyscontrol started [WARNING] Unable to detect Raspberry Pi Architecture. Setting armv6l as default, you can change this through the settings panel. [INFORMATION] Standard output: codesyscontrol stopped [ERROR] Expected exit value of command failed: expected 0, received 1 [WARNING] Error setting the Raspberry Pi Architecture [ERROR] Error installing codesyscontrol Do you have any idea what could be the reason? I'm using an OS image including Python drivers for LCD and some I/O:s from last year to keep things stable, but also after upgrading with sudo apt update && sudo apt upgrade I still get the same error Reverting back to 4.15.00 works fine: [INFORMATION] Standard output: create and install daemon [INFORMATION] Standard output: codesysedge started [INFORMATION] Successfully installed codesyscontrol [INFORMATION] Successfully started CODESYS Edge Gateway for Linux [INFORMATION] Successfully started CODESYS Control for Raspberry Pi SL but as before the Codesys services stops after 30 seconds. And I noticed that the Codesys control stops and is not reachable also if I have no application loaded.
Last updated: 2025-09-02
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.