Post by timvh on Profinet fault with codesys control V3 - Receive packet error
CODESYS Forge
talk
(Post)
Are you using the Control Win SL (installed together with the development environment of CODESYS)? If yes, you might want to consider using the CODESYS RTE instead. This has real-time capabilities (running on separate core(s)). But to be able to use this, you have to install the CODESYS Ethernet driver for your network interface to be able to let the RTE access the network port also in realtime. See: https://store.codesys.com/en/codesys-control-rte-sl-bundle.html https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_windows_rts_v3.html PS, I haven't tested this myself yet, but you could try to use the SetCommunicationState method of the Profinet controller to see if you can reset and start the bus communication: result := PN_Controller.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.START); PS, if you are located in the Netherlands or Belgium, we could also provide the license(s) for you.
Last updated: 2024-02-28
Post by timvh on Profinet fault with codesys control V3 - Receive packet error
CODESYS Forge
talk
(Post)
Are you using the Control Win SL (installed together with the development environment of CODESYS)? If yes, you might want to consider using the CODESYS RTE instead. This has real-time capabilities (running on separate core(s)). But to be able to use this, you have to install the CODESYS Ethernet driver for your network interface to be able to let the RTE access the network port also in realtime. See: https://store.codesys.com/en/codesys-control-rte-sl-bundle.html https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_windows_rts_v3.html PS, I haven't tested this myself yet, but you could try to use the SetCommunicationState method of the Profinet controller to see if you can reset and start the bus communication: result := PN_Controller.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.START); PS, if you are located in the Netherlands or Belgium, we could also provide the license(s) for you.
Last updated: 2024-02-28
Post by fless on Warning C0564 when compiling CNC project with variables program
CODESYS Forge
talk
(Post)
Hello, we are porting a CNC project from codesys 3.5.16 to codesys 3.5.19. The project has lots of CNC programs with variables. now we get hundreds of messages like this. [WARNING] CNC Test SP19: TestCNC SPS: PLC Logic: Application: C0564: A reference to uninitialized variable varCNC is used for initialization of TestCNC_D. Accessing the uninitialized variable may result in unexpected behavior. The objects program_name_D are implicit generated by codesys. I see no way to generated them after the variables. Is there a way to correct the initialization order? We know how to suppress this warning. But we need a clean solution as the warning already saved us in a other nonCNC project. Attached a small demo of the problem.
Last updated: 2024-03-21
Post by zer0g on Modbus Client Request Not Processed
CODESYS Forge
talk
(Post)
I'm using the code bellow which is based on the Codesys example: FUNCTION_BLOCK MODBUS_master_example_ST VAR initDone : BOOL := FALSE; aIPAddress : ARRAY [0..3] OF BYTE := [127,0,0,1]; clientTcp: ModbusFB.ClientTcp; // buffer to read input registers aDataInputRegisters : ARRAY[0..9] OF UINT; // some client requests clientRequestReadInputRegisters: ModbusFB.ClientRequestReadInputRegisters; xExecute: BOOL; END_VAR IF NOT initDone THEN initDone := TRUE; // configure clientTcp clientTcp(aIPaddr:=aIPAddress, uiPort:=502, udiLogOptions := ModbusFB.LoggingOptions.All); // configure clientRequestReadInputRegisters clientRequestReadInputRegisters(rClient:=clientTcp, uiUnitId:=1, udiTimeout:=TO_UDINT(T#1000MS)); END_IF // call the client FB's clientTcp(); clientRequestReadInputRegisters(rClient:=clientTcp,xExecute := xExecute AND NOT clientRequestReadInputRegisters.xBusy ,uiStartItem:=2, uiQuantity:=3, pData:=ADR(aDataInputRegisters[0])); As you can see the clientTCP is called cyclically with the same result.
Last updated: 2024-05-30
Post by pernockham on Trend legend naming and access/config to/of trend/legend-variables
CODESYS Forge
talk
(Post)
There seems to have been included an updated in the last release 4.9.0.0 or am I wrong (I think I tried out these settings previously without giving the result I wanted contrary to what I see today)? Now an empty check box for "display variable name" is effective, and will present the Variable with the "Description" instead. Perfect! Seems to be some minor formatting still that needs adjustment. See attached screenshot. The apostrophe "'" between "description" I suppose should not be there? Also I guess the same apostrophe (although not visibly shown) gives an extra space between the variable-description and the ":"?? Thanks!
Last updated: 2025-12-19
Post by winki on Error in licence activation
CODESYS Forge
talk
(Post)
Hello, I think I understand: On my debian gateway I have done: sudo cmu --list cmu - CodeMeter Universal Support Tool. Version 8.30a of 2025-May-06 (Build 6885) for Linux/ARMHF 64-Bit Copyright (C) 2007-2025 by WIBU-SYSTEMS AG. All rights reserved. List all locally connected CmContainers: - CmContainer with Serial Number 130-XXXXXXXX and version 3.00 (empty) - CmContainer with Serial Number 130-XXXXXXXX and version 3.00 (locked) Result: 2 CmContainer(s) listed. The licence has been activated with a computer Name, but the guy who did it make a mistake in the name, so he changed it after to have activate the licence. I think this has created a second container. The licence is actived on the other container.
Last updated: 2026-02-06
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 cfam on Codesys Control for PLCnext (PLC - AXL F 2152)
CODESYS Forge
talk
(Post)
Good day All I would like to share some information on this site for the Codesys team as well for the future members using Codesys Control for PLCnext if it is allowed. I hope that i Post it in the correct spot. Subject: Codesys, Codesys Control for PLCnext Objective: Using the following Phoenix components to built a PLC Rack and run it on Codesys: Hardware and Software used 1. 2404267, AXC F 2152 - Controller 2. 1088136, AXL F BP SE6 - Module carrier 3. 1088129, AXL SE DO16/1 - Digital module 4. 1337224, AXL SE PD16 GND - Potential distributors 5. 1088127, AXL SE DI16/1 - Digital module 6. 1337223, AXL SE PD16 24V - Potential distributors 7. 1088123, AXL SE AO4 I 4-20 - Analog module 8. 1088134, AXL SE SC-A - Cover 9. Codesys v3.5 SP19 Patch 4 10. Codesys Control for PLCnext V4.10.0.0 Process: Firstly I built the Rack according to the Phoenix Project+ Software tool. Where I rebuilt it onto my test bench . I used the PLCnext Engineer IDE from Phoenix and all Communications where up and running and my PLC program executed successfully. THEN I tried the same PLC Layout with Codesys and Codesys Control for PLCnext. It was not successful and gave me the "Error: Local Bus not Running". I searched the web for answers but was unsuccessful in finding a solution. So I tried to change my configuration and found that the following Modules COULD NOT be recognized by Codesys Control. The result was that the Local Bus Failed to run. 1337224, AXL SE PD16 GND - Potential distributors 1337223, AXL SE PD16 24V - Potential distributors Example 1, Resulted in "Error: Local Bus Not Running": Module carrier slot 1: 1088129, AXL SE DO16/1 - Digital module Module carrier slot 2: 1337224, AXL SE PD16 GND - Potential distributors Module carrier slot 3: 1088127, AXL SE DI16/1 - Digital module Module carrier slot 4: 1337223, AXL SE PD16 24V - Potential distributors Module carrier slot 5: 1088123, AXL SE AO4 I 4-20 - Analog module Module carrier slot 6: 1088134, AXL SE SC-A - Cover Example 2, Result "Successful": Module carrier slot 1: 1088129, AXL SE DO16/1 - Digital module Module carrier slot 2: 1088127, AXL SE DI16/1 - Digital module Module carrier slot 3: 1088123, AXL SE AO4 I 4-20 - Analog module Module carrier slot 4: 1088134, AXL SE SC-A - Cover Module carrier slot 5: 1088134, AXL SE SC-A - Cover Module carrier slot 6: 1088134, AXL SE SC-A - Cover Result: Codesys or Codesys Control for PLCnext, has a PROBLEM to identify the following Modules. 1. AXL SE PD16 24V - Potential distributors 2. AXL SE PD16 GND - Potential distributors Hope that this information could be useful in future. Best regards Jaco Pretorius
Last updated: 2023-12-06
Post by sahin6033 on DSE M840-001-02: DSEServiceTool transfers CodesysApp.pkg successfully, but device shows “No application loaded
CODESYS Forge
talk
(Post)
Hi, I am trying to load a test application into a DSE M840-001-02 display, but after reboot the device still shows: “No application loaded” I would like to understand whether the problem is in my project, the package creation process, or firmware/runtime compatibility. Hardware Device: DSE M840-001-02 Firmware used: M840 MKII Firmware File v4.1.2 Software CODESYS V3.5 SP12 (32-bit) DSE CODESYS Package v1.5.44 DSEServiceTool What I did Created a new empty Standard Project Selected target/template: M840-02 V4.1 Used a minimal ST program only: PROGRAM PLC_PRG VAR xAlive : BOOL := TRUE; END_VAR Confirmed: project builds PLC_PRG is assigned to MainTask created Boot Application Generated CodesysApp.pkg Put the M840 into bootloader mode Sent the package using DSEServiceTool DSEServiceTool result Transfer completes successfully and I get: connection accepted 100% download package ACK <status>OK</status> ** Example log:** Searching for controllers.... sendPackageToController: waiting for incoming data connection... sendPackageToController: connection accepted... <status>Downloading</status> <percent>20</percent> <percent>40</percent> <percent>90</percent> <percent>100</percent> sendPackageToController: sent 112cb8 bytes OK Package ...\CodesysApp.pkg transferred to controller c0a80101 OK sendPackageToController: package ACK <status>OK</status> Actual result After reboot, the display still shows: “No application loaded” Additional issue I also saw earlier At one stage I also had these fatal errors in CODESYS: [FATAL ERROR] Unresolved reference: 'IOMGRLOCKENTER' [FATAL ERROR] Unresolved reference: 'IOMGRLOCKLEAVE' I checked library versions and adjusted them to: IoDrvBase = 3.5.5.0 IoStandard = 3.5.10.0 Also, I am using CODESYS SP12, which I understand is the correct version for DSE M840. My questions If DSEServiceTool shows Status OK and package ACK, but the device still says “No application loaded”, does that mean: the .pkg was transferred but not accepted as a valid application? the package was built incorrectly? the boot application / runtime / firmware versions are still mismatched? What is the correct procedure to generate CodesysApp.pkg for M840-02 V4.1? Is there any known compatibility issue between: DSE CODESYS Package 1.5.44 M840 MKII Firmware 4.1.2 CODESYS 3.5 SP12 Has anyone successfully loaded even a minimal empty test project into M840-001-02, and if so, what exact versions/process did you use? Any help would be appreciated.
Last updated: 2026-03-17
Post by mondinmr on Jitter problems on imx8
CODESYS Forge
talk
(Post)
We are experiencing serious jitter issues on an ARM64 imx8. Until now, on rpi and beaglebone derivatives, and on Intel, we never encountered jitter issues unless they were already present on the device. In this case, as can be seen from the attached graph, we have excellent maximum latency. The cyclictest on the isolated core dedicated to IEC CODESYS tasks shows a latency of 37µs, with an average of 14µs. Usually, on all other devices, with an RT kernel, with the appropriate parameters to avoid frequency throttling, with properly managed IRQs, and with the disabling of large page sizes, the jitter measured by CODESYS is very close to the cyclictest latency. However, on this imx8, we are noticing a fluctuating value of +/- 300µs that seems to be added to this latency, as if something occasionally miscalculates the sleep times by exactly +/- 300µs. Two screenshoot attached. - Result of cyclictest - Jitter on CODESYS Tasks are assigned to isolated core!
Last updated: 2023-10-18
Post by toffeebonbon on EL7041-0052 - does it run with EL7041 SoftMotion?
CODESYS Forge
talk
(Post)
Good morning everyone. In my setup I am trying to use a couple of EL7041-0052 (the EL7041 variant without terminals for an encoder) to run stepper motors without feedback. When using the softmotion drivers for the EL7041 (Rev22 and Rev24, even selecting external feedback type doesn't work) the device log shows warnings for the corresponding hardware: "SDO write error 0x1 -> 0x8012:0x08 eError 0x1 AbortCode 0x6090011". 0x8012:0x08 is the register for the Feedback Type. My best guess was setting the the register value in the start parameters to zero, but the result is the same. What else can I try to get the hardware to work? I have screenshots attatched showing the running fieldbus and the log messages. EDIT: One clarification: the "device log" that shows the error is the PLC, not the ethercat terminal. The log of the terminal itself shows neither errors nor warnings. BR Robert
Last updated: 2023-11-29
Post by climblinne on Calling OPC UA Methods from UaExpert
CODESYS Forge
talk
(Post)
Hello, I hope someone could help me. I installed the newest Codesys 3.5 SP 20 Patch 1. When loading the demo files from @i-campbell I can upgrade them to the latest version and everthing works on the OPC-UA client side as expected (object "a" is visible, I can use the "ExampleMethod"). Now I * remove the "Information Model", * delete the "OPC_UA_Symbols Objects", * Add "Information Model" again * add "TestRootObjectType" again and "Generate IEC declarations" * and search for mapped instances (to get instance "a" again) Very good still working as expected. Now I delete the OPC_UA_Symbols and add it again referring to the "objecttest" from 16.9.2020. Also I redo the steps from above. The result is now, that I can't see the "a" object in the "Root/Objects" folder. Why ist this and how can I make it running? I think, it could may be a different version of the UA configuration file. I tried to build my own model definition files and got the same problem (but I am really not an expert). When someone has a actual model, which is also running in the actual Codesys I would be very grateful. Or even better, how to make the correct model in e.g. UA Modeler SW (I followed the description https://documentation.unified-automation.com/uamodeler/1.6.0/html/howprojnet_sec.html).
Last updated: 2024-07-01
Post by mecmag on gear over gear (2 masters,1 slave) - how to do it?
CODESYS Forge
talk
(Post)
Hello, i need to create an application that uses 2 masters, with 2 different ratios, and it outputs in one single slave. I explain better: Imagine axis A, B and C. -Axis A is the slave. -Axis B is master of A, with a specific ratio. -Axis C is master of A, with a specific ratio. the result motion from B and C should be executed by A, proportionally in position and ratios from B and C. With standard softmotion libraries (MC_...) it is not possible (i couldn't) because it is allowed only one master with its ratio. I have made a similiar application in past, using MoveOverGear in order to synch gears before engage. Instead this time, i need to do a gear over gear application, using 2 different masters. The position have to be the sum of both masters (considering their ratios). Any clue about how to do it? Or were to find some FB that can do it?
Last updated: 2024-08-16
Post by struccc on Bibliothek: floatingpointutils
CODESYS Forge
talk
(Post)
The issue s the byte order typically in this case. Can be especially problematic with floating point numbers - even more tricky if transferred with a word based protocol. It is a peasant way to try out the alternatives, dword order can be a-b-c-d, b-a-d-c, c-d-a-b, d-c-b-a where a is the most significant, d is the least significant byte. So all you need is to swap the bytes in your dword, until you get the expected result. If you don't want to mess writing code for this, I'd recommend CAA_Memory library for that: MEM.ReverseBYTEsInDWORD and MEM.ReverseWORDsInDWORD functions would definitively do the trick. Otherwise, can do like this: VAR dwIn : DWORD := 16#11223344; dwOut : DWORD; rOut : REAL; pIN : POINTER TO BYTE; pOUT : POINTER TO BYTE; END_VAR pIN := ADR(dwIn); //pOUt := ADR(dwOut); pOUt := ADR(rOut); pOut[0] := pIN[3]; pOut[1] := pIN[2]; pOut[2] := pIN[1]; pOut[3] := pIN[0]; Ugly, but does the job...
Last updated: 2024-11-19
Post by etienneneu on loading delay with the option "check client animations and overlay of native elements"
CODESYS Forge
talk
(Post)
Hey NicolaG_89, thanks for the tip. But I have seen in the developer tools of the Webclient that a multiple fetching of the image and script data occurs when changing frames (HTTP code 304 NOT Modified), although these are already in the clients cache, which leads to unnecessary loading of resources from the web server. This behavior can also be found if the option “Support client animations and overlay of native elements” is deactivated, but this does not lead to such long delays. I had already tested loading all Visu elements so that everything was fetched once before they could be used. But that didn't help either. To prevent this behavior (permanent fetching), I have used a different way of switching the Visu elements in the VisuDemo Project, which also uses HTML5 control elements. I implemented this with the visibility of entire Visu elements. As a result, it only has to be fetched once and does not have to be fetched again when reloading. But I am still unsure about this implementation if the scope of the visualization becomes larger, as the Codesys visualization documentation advises against using many invisible elements. Best regards Etienne
Last updated: 2024-11-19
Post by dogulas on OPC UA C# client connecting to OPC UA CODESYS server
CODESYS Forge
talk
(Post)
Ok, I have a simple test environment. From C#, using OPC UA, I can read DINTs, write DINTs, read Structs, but when I try to write a struct I get BadNotWritable. I am using Communication Manager, OPC UA Server, and IEC Symbol Publishing. I have a struct defined with one single DINT in it. The instance of the struct is in GVL. The struct is marked read/write in IEC Symbol Publishing. Any ideas? Pointers are welcome. public static async Task WriteStructA(byte[] structAData) { if (_session == null) throw new Exception("session is null"); // create a RequestHeader RequestHeader requestHeader = new RequestHeader { Timestamp = DateTime.UtcNow, TimeoutHint = 30000 // timeout in milliseconds }; // create an ExtensionObject to wrap the value to be written ExtensionObject extensionObject = new ExtensionObject( new ExpandedNodeId("GVL_StructA", 5), structAData ); // create a WriteValue object to hold the value to be written WriteValue writeValue = new WriteValue { NodeId = _structANodeId, AttributeId = Attributes.Value, Value = new DataValue(extensionObject) }; // put the WriteValue object into a WriteValueCollection object WriteValueCollection writeValueCollection = new WriteValueCollection() { writeValue }; // perform the write operation asynchronously WriteResponse writeResponse = await _session.WriteAsync( requestHeader, writeValueCollection, CancellationToken.None ); // check the result of the write operation if (writeResponse.Results[0] != StatusCodes.Good) throw new Exception("Write failed: " + writeResponse.Results[0]); }
Last updated: 2024-12-17
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 george32 on TCP Server
CODESYS Forge
talk
(Post)
Thank you for your advice Rinie, I have tried to follow this example but found one problem.When I disconnect with Hercules the system does not acknowledge the lost of its connection this could result in critical errors. Because of this error I am trying to implement the Syssocket library. With this library I am having a problem which I could not solve. I have the following code: ip_adres : STRING :='0.0.0.0'; port : WORD := 5000; iStep : INT := 1; // Socket information Socket_handler : SysSocket_Interfaces.RTS_IEC_HANDLE; Socket_handler_result : SysSocket_Interfaces.RTS_IEC_RESULT; Socket_adress : SysSocket_Interfaces.SOCKADDRESS; Addres_Convert : SysSocket_Implementation.RTS_IEC_RESULT; // Bind information Bind_handler : SysSocket_Interfaces.RTS_IEC_RESULT; // Listener Information Listener_handler : SysSocket_Interfaces.RTS_IEC_RESULT; Addres_Convert := SysSocket_Implementation.SysSockInetAddr(szIPAddress:= ip_adres,pInAddr:= ADR(Socket_adress.sin_addr)); Socket_adress.sin_family:= SysSocket_Interfaces.SOCKET_AF_INET; Socket_adress.sin_port := SysSocket_Implementation.SysSockHtons(usHost:= port); CASE iStep OF 1: // Create Socket Socket_handler :=SysSockCreate( iAddressFamily :=SysSocket_Interfaces.SOCKET_AF_INET, diType:=SysSocket_Interfaces.SOCKET_STREAM, diProtocol:=SysSocket_Interfaces.SOCKET_IPPROTO_TCP, pResult:=ADR(Socket_handler_result)); IF Socket_handler = SysSocket_Interfaces.RTS_INVALID_HANDLE THEN iStep := 1; ELSE iStep := 2; END_IF 2: Bind_handler := SysSocket_Implementation.SysSockBind( hSocket:=Socket_handler, pSockAddr :=ADR(Socket_adress), diSockAddrSize:=SIZEOF(Socket_adress) ); 3: Listener_handler := SysSocket_Implementation.SysSockListen( hSocket :=Socket_handler, diMaxConnections :=1); END_CASE When I am trying to get this working, the SysSockBind function gives a value of 16#207 which means adress already in use. I find this weird because of the IP-adress of 0.0.0.0. I think I am converting the Ip-adress in the wrong way, but the code does not give a error arround this. So therefore I cannot find the solution to this problem. I hope someone could help me with this problem. Thanks in advance George
Last updated: 2025-02-20
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 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 e13740e on Parameterized Property syntax for array element processing
CODESYS Forge
talk
(Post)
Hello. I'm trying to create a Parameterized Property(CDS V3.5 SP21) to avoid copy-pasting code for processing array elements. I can't seem to get any result. Perhaps I am making a mistake with the syntax. None of the declaration options below are accepted by the compiler. If you know and use them (Parameterized Properties) in your work, please let me know. Thank you in advance. Option 1: PROPERTY <property_name> : <data_type> VAR_INPUT <index_name> : <index_type>; // One or more index parameters are declared here END_VAR</index_type></index_name></data_type></property_name> GET Code that uses <index_name> to return a value END_GET</index_name> SET Code that uses <index_name> and the implicit variable <property_name> to write a value END_SET</property_name></index_name> END_PROPERTY Option 2: PROPERTY <property_name> (<index_name> : <index_type>) : <data_type></data_type></index_type></index_name></property_name> GET Code that uses <index_name> to return a value END_GET</index_name> SET Code that uses <index_name> and the implicit variable <property_name> to write a value END_SET</property_name></index_name> END_PROPERTY
Last updated: 2025-10-09
Post by e13740e on Parameterized Property syntax for array element processing
CODESYS Forge
talk
(Post)
Hello. I'm trying to create a Parameterized Property(CDS V3.5 SP21) to avoid copy-pasting code for processing array elements. I can't seem to get any result. Perhaps I am making a mistake with the syntax. None of the declaration options below are accepted by the compiler. If you know and use them (Parameterized Properties) in your work, please let me know. Thank you in advance. Option 1: PROPERTY <property_name> : <data_type> VAR_INPUT // One or more index parameters are declared here <index_name> : <index_type>; END_VAR</index_type></index_name></data_type></property_name> // Accessor for reading GET // Code that uses <Index_Name> to return a value END_GET // Accessor for writing SET // Code that uses <Index_Name> and // the implicit variable <Property_Name> to write a value END_SET END_PROPERTY Option 2: PROPERTY <property_name> (<index_name> : <index_type>) : <data_type></data_type></index_type></index_name></property_name> // Accessor for reading GET // Code that uses <Index_Name> to return a value END_GET // Accessor for writing SET // Code that uses <Index_Name> and // the implicit variable <Property_Name> to write a value END_SET END_PROPERTY
Last updated: 2025-10-09
Post by tim-roelant on Profinet fault with codesys control V3 - Receive packet error
CODESYS Forge
talk
(Post)
I have set up a brandnew Beckhoff panel pc with a codesys control runtime V3. I configured it together with 2 profinet field devices: a 16in/16out IO module from Turck and an MTS linear encoder. The machine works fine untill all of a sudden the communication breaks and the profinet participants become unreachable. At that point I can still ping the device, but the profinet master does not find them anymore: When i do a scan they are not found. When i do a cold restart, the profinet master becomes active again and the devices are found again. In the log i get Ethercat packet receive error: sysethernet. I am a little confused, there is no ethercat device in the device tree. I already set the send clock and the reduction ratio to higher values, but without result. Can codesys be configured, so that the communication re-establishes without doing the cold reset? This is very annoying and is causing a lot of prodution losses. regards Tim
Last updated: 2024-02-27
Post by tim-roelant on Profinet fault with codesys control V3 - Receive packet error
CODESYS Forge
talk
(Post)
I have set up a brandnew Beckhoff panel pc with a codesys control runtime V3. I configured it together with 2 profinet field devices: a 16in/16out IO module from Turck and an MTS linear encoder. The machine works fine untill all of a sudden the communication breaks and the profinet participants become unreachable. At that point I can still ping the device, but the profinet master does not find them anymore: When i do a scan they are not found. When i do a cold restart, the profinet master becomes active again and the devices are found again. In the log i get Ethercat packet receive error: sysethernet. I am a little confused, there is no ethercat device in the device tree. I already set the send clock and the reduction ratio to higher values, but without result. Can codesys be configured, so that the communication re-establishes without doing the cold reset? This is very annoying and is causing a lot of prodution losses. regards Tim
Last updated: 2024-02-27
Post by tim-roelant on Profinet fault with codesys control V3 - Receive packet error
CODESYS Forge
talk
(Post)
I have set up a brandnew Beckhoff panel pc with a codesys control runtime V3. I configured it together with 2 profinet field devices: a 16in/16out IO module from Turck and an MTS linear encoder. The machine works fine untill all of a sudden the communication breaks and the profinet participants become unreachable. At that point I can still ping the device, but the profinet master does not find them anymore: When i do a scan they are not found. When i do a cold restart, the profinet master becomes active again and the devices are found again. In the log i get Ethercat packet receive error: sysethernet. I am a little confused, there is no ethercat device in the device tree. I already set the send clock and the reduction ratio to higher values, but without result. Can codesys be configured, so that the communication re-establishes without doing the cold reset? This is very annoying and is causing a lot of prodution losses. regards Tim
Last updated: 2024-02-27
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.