Post by gabrielarffa on Modbus TCP/IP having problems with global variables
CODESYS Forge
talk
(Post)
I'm using Modbus TCP/IP to communicate Codesys with Elipse E3 as the master for a college project. I have made a list of global variables to organize the programming in two different POUs. The problem is, when I try to do the mapping of variables, the program informs me of an error due to the identifiers having a "." on their names. Do I have to reorganize my code to make it an unified block or is there a way to declare their names without changing all the code structure?
Last updated: 2025-05-20
Post by janp on IFM Controller Connection Issue
CODESYS Forge
talk
(Post)
Hi everyone, I’m using an IFM ecomatBasic CR413S controller and having trouble connecting it to CODESYS 3.5. I have CODESYS SP18 installed, as recommended in the manual, and I’ve tried different patches. I’ve also installed all the packages provided on the IFM website for this controller. I can successfully connect to the ecomatBasic template, but I’m unable to connect when using the CR413S-specific template that includes all the inputs and outputs. Has anyone encountered this issue or knows a solution? Best regards, Jan
Last updated: 2025-05-22
Post by janp on IFM Controller Connection Issue
CODESYS Forge
talk
(Post)
Hi everyone, I’m using an IFM ecomatBasic CR413S controller and having trouble connecting it to CODESYS 3.5. I have CODESYS SP18 installed, as recommended in the manual, and I’ve tried different patches. I’ve also installed all the packages provided on the IFM website for this controller. I can successfully connect to the ecomatBasic template, but I’m unable to connect when using the CR413S-specific template that includes all the inputs and outputs. Has anyone encountered this issue or knows a solution? Best regards, Jan
Last updated: 2025-05-22
Post by nz-dave on Codesys 3.5.21 fails to copy file to USB
CODESYS Forge
talk
(Post)
i had a similar problem trying to send files to C: on local computer. Ended up using Oscat ftp to transfer file with filezilla. i read there is an "write protection", possibly to do with windows, issue with sp19 and up. there are some config files in the codesys dir you can change, which may help. after i was able to transfer to local PC\downloads but not c: so went the ftp route. works well. https://forge.codesys.com/forge/talk/Runtime/thread/5cac1390b4/
Last updated: 2025-05-26
Post by wbj0t on Update project from SP20 to SP21
CODESYS Forge
talk
(Post)
Hello everyone. I have a problem: I installed new version of codesys IDE. When I try open project in this new version, I have many errors about Visu: rectalnge/button/frame/etc does not exist. How update properly project? 20+ pages of visu pages from 100+ frames and all visu elems looks like "Error image". It is not problem of SP20->SP21. Any update has problems from visu side.
Last updated: 2025-06-09
Post by berkdan on SMC_ReadNCFile2 is always busy
CODESYS Forge
talk
(Post)
Hello, I’m using CODESYS V3.5 SP18. When I try to use SMC_ReadNCFile2 to read the file /PlcLogic/gcode.nc, the function block's bBusy output remains TRUE indefinitely. Can you help me understand what I might be doing wrong? Here is how I’m calling the function block. The value of strFileName is 'gcode.nc'. fbReadFile( bExecute := bExecute, sFileName := strFileName, bAbort := bCycleStop, fDefaultVel := RetainVariables.xSlowVelocity, fDefaultAccel := RetainVariables.xAcc, fDefaultDecel := RetainVariables.xDec, b3DMode := TRUE, bParenthesesAsComments := TRUE, fDefaultVelFF := RetainVariables.xFastVelocity, fDefaultAccelFF := RetainVariables.xAcc, fDefaultDecelFF := RetainVariables.xDec, ErrorID => gCNC.eErrorId, errorPos => gCNC.eErrorPos, ErrorProgramName => gCNC.eErrorProgName, bBusy => bReadFileBusy, sentences => sentencesss ); Thanks in advance for your help.
Last updated: 2025-06-16
Post by berkdan on SMC_ReadNCFile2 is always busy
CODESYS Forge
talk
(Post)
Hey tk96 Thank you for your help. I have found the reason why fbreader stuck. It was not the program but it was the gcode itself. G21 command blocks the reader. And multiple G codes in a line also blocks the reader. My code was: N010 G21 G17 G90 -> Blocked the reader When i change it to: N010 G90 N020 G17 Then it worked. The only thing i did not get is why the reader did not thwor error. ErrorId was SMC_NO_ERROR. Anyway, it is now working. Thanks again.
Last updated: 2025-06-17
Post by attarzade on Servo motor as an slave and AC motor as an Mster
CODESYS Forge
talk
(Post)
Hello, I would like to control a servo motor via EtherCAT as a slave axis, and have it follow a master axis that is driven by a Control Techniques C200 AC drive (ethercat communication).Could anyone help me with how to achieve this setup? I use codesys version 3.5.20 and crevis Ethercat cards. AC drive is master axis and Servo drive is slave axis Thanks in advance
Last updated: 2025-07-14
Post by jonasz on Device diagnosis ( EtherCAT IO card )
CODESYS Forge
talk
(Post)
Hi, I'll link to the topic not wanting to start a new one. In the application I am building, I wanted to use the diagnostics described in the CAA Device Diagnosis library. In principle, everything is ok, except for the elements related to ModbusTCP. Despite the fact that ModbusTCP is taken into account in the documentation, it is not recognised via the interfaces. FUNCTION_BLOCK NET_HW_DIAG VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR (* Referencja do struktury z danymi dla HMI ASTRAADA.*) Visu: REFERENCE TO VISU; (* Wskaźnik na mastera EtherCAT.*) pEtherCATMaster : POINTER TO IoDrvEtherCAT; (* Wskaźnik na slave EtherCAT.*) pEtherCATSlave : POINTER TO EtcSlave; (* Interfejs dla węzła w drzewie urządzeń.*) _itfNode: DED.INode; (* Ogólny interfejs magistrali. Zapewnia podstawowe informacje o magistrali polowej.*) _itfBus: DED.IBus; (* Interfejs urządzenia. Zapewnia rozszerzone informacje o urządzeniu (magistralowym).*) _itfDevice2: DED.IDevice2; (* Ogólny interfejs magistrali. Zapewnia podstawowe informacje o magistrali polowej.*) _itfStack: DED.IStack; (* Numer węzła w drzewie urządzeń.*) uiNodes: UINT; (* Operator jest rozszerzeniem normy IEC 61131-3. W czasie wykonywania operator wykonuje konwersję typu odwołania do interfejsu na inny typ. Operator zwraca wynik BOOL. Wartość TRUE oznacza, że CODESYS pomyślnie wykonał konwersję. *) xQueryResultBus: BOOL; xQueryResultDevice2: BOOL; xQueryResultStack: BOOL; (* Struktura danych dotyczących węzłów w drzewie urządzeń.*) NetHwDiag: NW_HW_STAT; ModbusTcpClientDeviceInfo: IoDrvModbusTCP.DED.DEVICE_INFO; ModbusTcpClientDeviceState: IoDrvModbusTCP.DED.DEVICE_STATE; ModbusTcpDeviceInfo: IoDrvModbusTCP.DED.DEVICE_INFO; ModbusTcpDeviceState: IoDrvModbusTCP.DED.DEVICE_STATE; END_VAR (* Pobranie wskaźników dla pierwszego mastera i pierwszego slave w sieci EtherCAT.*) pEtherCATMaster := g_pFirstMaster; pEtherCATSlave := pEtherCATMaster^.FirstSlave; (* Diagnostyka sieci EtherCAT.*) pEtherCATMaster := g_pFirstMaster; pEtherCATSlave := pEtherCATMaster^.FirstSlave; NetHwDiag.xConfigFinished := pEtherCATMaster^.xConfigFinished; NetHwDiag.xDistributedClockInSync := pEtherCATMaster^.xDistributedClockInSync; NetHwDiag.xError := pEtherCATMaster^.xError; NetHwDiag.xSyncInWindow := pEtherCATMaster^.xSyncInWindow; NetHwDiag.sLastMessage := pEtherCATMaster^.LastMessage; NetHwDiag.LastError := pEtherCATMaster^.LastError; (* Diagnostyka drzewa urządzeń.*) uiNodes := 0; _itfNode := DED.GetRoot(); REPEAT NetHwDiag.asDeviceName[uiNodes] := DED.GetDeviceNameString(itfNode := _itfNode); xQueryResultBus := __QUERYINTERFACE(_itfNode,_itfBus); IF xQueryResultBus THEN _itfBus.GetBusInfo(buiInfo := NetHwDiag.aBusInfo[uiNodes]); NetHwDiag.aBusState[uiNodes] := _itfBus.GetBusState(); END_IF xQueryResultDevice2 := __QUERYINTERFACE(_itfNode,_itfDevice2); IF xQueryResultDevice2 THEN _itfDevice2.GetDeviceInfo(deiInfo := NetHwDiag.aDeviceInfo[uiNodes]); NetHwDiag.aDeviceState[uiNodes] := _itfDevice2.GetDeviceState(); IF pEtherCATSlave <>0 THEN pEtherCATSlave^(); IF pEtherCATSlave^.SlaveAddr = NetHwDiag.aDeviceInfo[uiNodes].idSystem THEN NetHwDiag.aAlStatus[uiNodes] := pEtherCATSlave^.ALStatus; pEtherCATSlave := pEtherCATSlave^.NextInstance; END_IF END_IF ELSE xQueryResultStack := __QUERYINTERFACE(_itfNode,_itfStack); IF xQueryResultStack THEN _itfStack.GetDeviceInfo(deiInfo := NetHwDiag.aDeviceInfo[uiNodes]); NetHwDiag.aDeviceState[uiNodes] := _itfStack.GetDeviceState(); END_IF END_IF uiNodes := uiNodes + 1; _itfNode := DED.GetNextNode(_itfNode); UNTIL _itfNode = 0 END_REPEAT (* Diagnostyka Modbus.*) Modbus_TCP_Client.GetDeviceInfo(deiInfo := ModbusTcpClientDeviceInfo); ModbusTcpClientDeviceState := Modbus_TCP_Client.GetDeviceState(); PAC_3200T.GetDeviceInfo(deiInfo := ModbusTcpDeviceInfo); ModbusTcpDeviceState := PAC_3200T.GetDeviceState(); Of course, you can take the easy way out and refer directly to the devices, but I wanted a reusable component. Any constructive help is very welcome Best regards Jonasz
Last updated: 2025-07-15
Post by fschuler on No connection to Raspberry at runtime installation
CODESYS Forge
talk
(Post)
Hi, I try to install the Codesys realtime in a Raspberry PI 3B+. When I click on the installation button I get always the message No connection to device: An established connection was aborted by the server. Raspberry 3B+ with newest raspberry PI OS. Codesys 3.5.15 Patch 1 Codesys Runtime Package 3.5.16.20 SSH is activated. I can login with Putty Ping is possible IP address search is possible Just the installation is not started.
Last updated: 2025-07-23
Post by arwie on Working on exporting/importing projects to PlainText.
CODESYS Forge
talk
(Post)
To better track project changes in git I created a script that exports the project structure as text files. Textual POUs are stored as text, everything else as XML (with timestamps removed). The file structure is stored under path/to/your.project.txt Git merge will not work, but at least tracking changes is much easier. Script: https://github.com/arwie/controlOS_demo/blob/main/codesys/txtfy.py Example output: https://github.com/arwie/controlOS_demo/tree/main/codesys/controlOS_demo.project.txt
Last updated: 2025-07-24
Post by eschwellinger on Changed Device of Rapberry Pi to MC SL instead of standard SL and cannot connect anymore
CODESYS Forge
talk
(Post)
1) https://store.codesys.com/en/codesys-control-for-raspberry-pi-sl.html -> SL: Restrictions The combination of Raspberry Pi and a CODESYS Runtime is for private use, test and teaching purposes. Commercial use is not permitted. 2) you could switch between them by /etc/codesyscontrol/CODESYSControl_User.cfg [CmpRasPi] Architecture=armv7l for MC: armv7l for SC: armv6l for 64Bit: aarch64 or in the Deploytool:
Last updated: 2025-08-06
Post by phryniszak on RPI CANFD
CODESYS Forge
talk
(Post)
Hi, I have rpi with CANFD MCP2518FD. Classic can communication is working OK but when I try open in CANFD hDriver := CL2.FdDriverOpenH(usiNetId := 0, uiNominalBaudrate := 500, uiDataBaudrate := 0, xSupport29Bits := FALSE, ctMessages := 100, peError := ADR(eError) error is returned with value 10226 which is not documented (https://content.helpme-codesys.com/en/libs/CAA%20Can%20Low%20Level%20Extern/Current/CAN-Low-Level/Enums/ERROR.html#error) CAA CanL2 is 3.5.21 version. Question is: 1. Is anyone get CANFD working? 2. What is meaning of this value (10226)? Regards, Pawel
Last updated: 2025-08-09
Post by phryniszak on RPI CANFD
CODESYS Forge
talk
(Post)
Hi, I have rpi with CANFD MCP2518FD. Classic can communication is working OK but when I try open in CANFD hDriver := CL2.FdDriverOpenH(usiNetId := 0, uiNominalBaudrate := 500, uiDataBaudrate := 0, xSupport29Bits := FALSE, ctMessages := 100, peError := ADR(eError) error is returned with value 10226 which is not documented (https://content.helpme-codesys.com/en/libs/CAA%20Can%20Low%20Level%20Extern/Current/CAN-Low-Level/Enums/ERROR.html#error) CAA CanL2 is 3.5.21 version. Question is: 1. Is anyone get CANFD working? 2. What is meaning of this value (10226)? Regards, Pawel
Last updated: 2025-08-09
Post by romrot on MS SQL Compact cutting off Database name?
CODESYS Forge
talk
(Post)
I'm trying to use an fbMsSQL_compact function to read data from an SQL database. It works with some databases, but there is one database that I can't seem to get it to work on. It's set up the same as the other databases that I've tested with the only difference I see is that the name of the database is cut off in the status message. I'll get a message like "User: User logged out succesfully from database: 12345" But the whole name of the database is something like 1234567.
Last updated: 2025-08-21
Post by pernockham on Persistence Manager: Config File not found?
CODESYS Forge
talk
(Post)
I still cannot enable persistent manager for my project (and successfully login to a device). Project compiles with no errors but during download/login it fails with the fairly limited message "one or more errors occurred". The only clue I get from the system that this messages is displayed during "Generating code..: relocation pou". Any tips pointing me in a direction how to solve this very much appreciated!
Last updated: 2025-08-22
Post by kurtk on Screenshot with "Sys Process Execute Command"
CODESYS Forge
talk
(Post)
I am working on this same thing... I wonder if when you execute it in a "terminal" it is a graphical terminal window running under X whereas when it is run from a SysProcess, it is "headless" and hence X-less Does DISPLAY=:0 magically attach to the X session Wouldn't it make sense that scrot or imagemagick would automatically by default reference DISPLAY=:0 I'm just trying to figure out how this works or is supposed to work
Last updated: 2025-09-12
Post by bmatlove on AXIS_REF_SM3 Error Codes?
CODESYS Forge
talk
(Post)
I'm trying to firm up alarming of axis faults. Declutter the code and figure out what's what. Diving into it, I see the AXIS_REF_SM3 function block provides uiDriveInterfaceError and dwErrorId, but I can't find any significance of these further than Drive interface error number Parameter number: 1014 and Drive specific error identifier, parameter number: 1031, respectively. Is there some corresponding appendix I could use to decode these? Also, is there any relation to the Error ID (of type SMC_Error) of the MC POUs? MC_Jog, MC_Reset, MC_MoveRelative, etc? If so, are the above errors redundant? Thanks in advance.
Last updated: 2025-09-22
Post by nchau on Requesting ESI Files for Estun Pronet Servo Drives (EtherCAT)
CODESYS Forge
talk
(Post)
Hi everyone, I'm currently working on a project using Estun Pronet servo drives with EtherCAT communication, and I need the appropriate ESI (EtherCAT Slave Information) files to set up the network. The specific models I'm using are: Pronet-04AEG-EC Pronet-02AEG-EC-R1 Pronet-10AEG-EC-R1 Pronet-20AEG-EC-R1 Pronet-50DEA-EC-R1 If anyone has the ESI files for these models or knows where I can download them, I would greatly appreciate your help. Thank you in advance!
Last updated: 2025-09-26
Post by nchau on Estun servo with codesys
CODESYS Forge
talk
(Post)
Hi everyone, I'm currently working on a project using Estun Pronet servo drives with EtherCAT communication, and I need the appropriate ESI (EtherCAT Slave Information) files to set up the network. The specific models I'm using are: Pronet-04AEG-EC Pronet-02AEG-EC-R1 Pronet-10AEG-EC-R1 Pronet-20AEG-EC-R1 Pronet-50DEA-EC-R1 If anyone has the ESI files for these models or knows where I can download them, I would greatly appreciate your help. Thank you in advance!
Last updated: 2025-09-26
Post by eschwellinger on Licensing info not available.
CODESYS Forge
talk
(Post)
yes and no ... if you run the license server on the host (to serve licenses to the docker instances / vplcs then there is no runtime which could check the licenses on the host. Therefore you need the CODESYS WBM to activate or check the licenes or you could use in CODESYS IDE the licensemanager ( not the one for the device licenses) but you have the the IP of the license server that he know where to search for the licenses ..tool options i guess to add it, will add a screenshot later.
Last updated: 2025-10-01
Post by gseidel on MC_MoveAbsolute: C0138: No matching 'FB_Init' method found for instantiation of SMC_MoveAbsRelPerformerImpl [ERROR]
CODESYS Forge
talk
(Post)
Hi imdatatas, sorry to hear this issue caused so much overhead for you. 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. Yes, that is a reasonable expectation. I tried a few times but could not reproduce the problem. In case you run into the problem again, we can investigate the issue if you send a project archive. Best regards, Georg
Last updated: 2025-10-02
Post by timvh on How to correctly create a device descriptor (.devdesc.xml) for a custom Linux ARM64 PLC in CODESYS 3.5.21.20?
CODESYS Forge
talk
(Post)
If you are a vendor of controllers and want to have your own CODESYS Runtime on your device, then you need to contact the CODESYS Sales team and ask for the runtime Toolkit. For resellers of CODESYS devices, this can be interesting. If it is only for a few devices, then why not just take the standard runtime?
Last updated: 2025-10-07
Post by mputaggio on Recipe Manager - RecipeManCommands, load & write wrong values, Bug?
CODESYS Forge
talk
(Post)
Hello, We encountered the same issues on both recipe library versions 4.2.0.0 and the newest 4.3.0.0. The Arrays of structs get saved correctly but loading them restores only some indexes, while others get lost or completely wrong. We have been using the same recipes for the last two years on recipe manager vers. 3.5.17 withoud issues. There also seems to be a different behaviour in vers. 4.3.0.0 but it's still incorrectly loading the recipes. Did you find any workaround or solution? Codesys version used: 3.5.19.50
Last updated: 2023-12-15
Post by simover on TCP/IP client
CODESYS Forge
talk
(Post)
I want to send a string to a tics TCP/IP server. I got i working with the Net Base lib. for communication good with this tcis i need to by array of byte I want to include a string in the third position of the array TCIS_Send[1] :=254; //this valus is fix for evry communication TCIS_Send[2] :=80; //this valus is fix for evry communication TCIS_Send[3] := ; here I put my and my string is lik this 5806509-DRAP10#AB#3452302073 TCIS_Send[4] :=252; //this valus is fix for evry communication
Last updated: 2023-12-18
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.