Post by gseidel on SMC_ERROR.SMC_AXIS_NOT_READY_FOR_MOTION when using Drive Virtual
CODESYS Forge
talk
(Post)
Hi ducng, you need to make sure that MC_Power.Status is TRUE before you give a rising edge to MC_MoveRelative.Execute. (This is the same for virtual and real axes). Best regards, Georg
Last updated: 2025-11-27
Post by davidbo on License problem with Raspberry Pi
CODESYS Forge
talk
(Post)
To simplify your problem you shall not select dongle and get dongle errors. Do as shown In some cases you need 2 different licenses depending on the metrics. And yes the system gives not always give proper error messages when you try to reinstall a license
Last updated: 2025-12-01
Post by timvh on High resolution displays with 150% scaling causes CodeSys IDE to be blurry
CODESYS Forge
talk
(Post)
Instead of using scaling of 150%, can't you adjust your diplay resolution (Windows+i keys, then go to System > Display settings)?
Last updated: 2026-01-07
Post by emmieturner on Which Lib to use, connect to a socket with URL instead of IP address
CODESYS Forge
talk
(Post)
hi, maybe Net Base Services https://forge.codesys.com/prj/codesys-example/nbs/home/Home/ https://geometrydashlite.online Thank for sharing
Last updated: 2025-11-16
Post by bdschnapp on OPC-UA ApplicationUri / ProductUri
CODESYS Forge
talk
(Post)
Were you able to figure out if it is possible to change the Application/Product URI of your server? I am having the same problem.
Last updated: 2026-03-16
Transparent wireless serial bridge for Modbus RTU – experience with LoRa/WiFi RS-485 link to CODESYS runtime
CODESYS Forge
talk
(Thread)
Transparent wireless serial bridge for Modbus RTU – experience with LoRa/WiFi RS-485 link to CODESYS runtime
Last updated: 2026-03-18
Post by reinier-geers on Draw nails pattern
CODESYS Forge
talk
(Post)
Hi I want to draw a nailpattern. But codesys Hasnt a draw command. And i dont want to draw 1000 nails and move them in position. Any one an idee ?
Last updated: 2026-04-20
Post by amira on Visu 4.9.1 auto-logon/login
CODESYS Forge
talk
(Post)
Hello Julian, could you please check in Chrome Password Manager Settings if the option "Offer to save passwords" is set? With this option selected, a pop-up message will then show up asking whether or not to save the password. Choose OK. Hope this helps.
Last updated: 2026-01-14
Post by fleaplc on Modbus TCP Server connection is ESTABLISHED but all holding registers are value 0?
CODESYS Forge
talk
(Post)
Did you check the communication with a sniffer ? (ex. Wireshark) to check if the holding get to zero by a wrong writing (client initialization?) o something else?
Last updated: 2026-01-27
Post by ketanvaishnav on Redundancy Codesys Runtime, Synchronization
CODESYS Forge
talk
(Post)
i am facing same data sync issue. i am use two 750-8212 (FW30) controllers. datas are sync from active to standby during changeover time, but datas are not sync from standby to active.
Last updated: 2026-01-30
Post by yannickasselin on Lenze i950 Servo and WAGO PFC200
CODESYS Forge
talk
(Post)
In order to use SoftMotion Light, a servo drive needs to support CiA 402 operating modes: Profile Position (PP), Profile Velocity (PV) and Homing Mode (HM). https://content.helpme-codesys.com/en/CODESYS%20SoftMotion%20Light/_sm_light_requirements.html According to the Lenze i950 documentation you linked in your post, none of these modes are supported. Not even Homing Mode which explains why MC_Home does not work even with the full SoftMotion. The full SoftMotion uses Cyclic Synchronous Position Mode (CSP) but still uses Homing Mode (HM) when using MC_Home. You can monitor PDO 0x6060 (Mode of Operation). When using SoftMotion Light you will see it set to 1 (PP) for a MC_MoveAbsolute_SML and MC_MoveRelative_SML and to 3 (PV) for MC_MoveVelocity_SML and to 6 (HM) for MC_Home_SML. When using the SoftMotion instructions, it will pretty much always be set to 8 (CSP) except when using MC_Home, then it will be set to 6 (HM).
Last updated: 2026-02-13
Whether You’re New to Nursing or a Seasoned Pro, Grasping the Basics of NURS FPX 4055 Assessment 1 Offers Many Benefits
CODESYS Forge
talk
(Thread)
Whether You’re New to Nursing or a Seasoned Pro, Grasping the Basics of NURS FPX 4055 Assessment 1 Offers Many Benefits
Last updated: 2026-06-13
Post by imdatatas on MC_CamIn did not work properly with SMC_FreeEncoder on SoftMotion 4.17.0.0
CODESYS Forge
talk
(Post)
Hello, I am facing a problem with the new Softmotion 4.17.0.0 version. Has anyone encountered a similar problem, what is the solution? I would be happy if you could share it. Problem description: -- "SMC_FreeEncoder" encoder axis is the master, -- The motor of the servo driver on the EtherCAT bus is the slave axis. -- When the MC_CamIn block executed, the InSync output is activated. However, although the master encoder axis position value changes, there is no movement in the slave servo axis! Test steps: 1-) EtherCAT servo axis installed, configured and motion test was performed with MC_Jog. No problem. 2-) Softmotion general axis pool > SMC_FreeEncoder was added and pulse amount configuration was performed. No problem. 3-) Incremental encoder actual count value was transferred to the "SMC_FreeEncoder.diEncoderPosition" variable as DINT under the ethercat task in every cycle and the encoder axis position value was observed. No problem. 4-) A simple CAM table with a 1:1 ratio was created under the project tree. (For example: Simply, when the encoder rotates 1 turn, the motor will rotate 1 turn.) 5-) The SMC_FreeEncoder axis enabled with MC_Power and brought to the StandStill state. 6-) The MC_CamTableSelect block was run with default input values ​​(all absolute) and only the Cam table name was specified. The Done output was seen successfully. No problem. 7-) The MC_CamIn block was activated with default input values ​​(absolute) and only the master encoder axis name, slave servo axis name, CamTableID input pins was specified and then "Execute" input set to TRUE. 8-) The InSync output information of the MC_CamIn block observed as TRUE. However, although the encoder axis value changed, the position value of the slave axis did not change at all, it did not move. It always remained at 0.0mm. 9-) When I repeated the same steps above, only changing the master axis to SM_Drive_Virtual instead of FreeEncoder and gave movement to the virtual axis, this time the slave axis moved successfully. However, when the same steps and operations are performed with the same IDE just downgrade SoftMotion version from 4.17.0.0 to 4.10.0.0, everything works normally and without problems as expected in MC_CamIn block with FreeEncoder master. (By the way, The used IDE version is Codesys V3.5 SP20patch3.) Best Regards Imdat
Last updated: 2024-11-11
Post by jzhvymetal77 on IecVarAccessLibrary.IBaseTreeNode methon
CODESYS Forge
talk
(Post)
I had this code working in a previous version of CoDeSys to read variables from a GVL that were added to the Symbol configuration. The problem now is that when I get the _IBaseTreeNode_Parent, it returns a valid interface, but none of the methods or properties work. If you monitor the _IBaseTreeNode in the watch window, it does show the correct child count. However, it fails at step 30, where the child count incorrectly returns zero. In the image, you can see that the watch window displays the correct value that the property should return. Attached is the full project code. FUNCTION_BLOCK Symbols_TO_STR VAR_INPUT i_sPath : STRING(255); i_diIndexChild : DINT; i_diIndexComponent : DINT; END_VAR VAR_OUTPUT q_diChildCount : DINT; q_diComponentCount : DINT; q_sName : STRING(255); q_sValue : STRING(255); q_sType : STRING(80); q_sErrorResult : STRING(80); END_VAR VAR uiStepCopy : UINT; uiStep : UINT; uiStepProcessCopy : UINT; uiStepProcess : UINT; _IBase : IecVarAccessLibrary.IBase; _pIIecVarAccess5 : POINTER TO IecVarAccessLibrary.IIecVarAccess5; _IIecVarAccess5 : IecVarAccessLibrary.IIecVarAccess5; _RTS_IEC_RESULT : IecVarAccessLibrary.RTS_IEC_RESULT; _udiResult : UDINT; _VariableInformationStruct : IecVarAccessLibrary.VariableInformationStruct; _IBaseTreeNode_Parent : IecVarAccessLibrary.IBaseTreeNode; _IBaseTreeNode_Child : IecVarAccessLibrary.IBaseTreeNode; _ITypeDesc_Child : IecVarAccessLibrary.ITypeDesc; _TypeDescAsUnion_Child : IecVarAccessLibrary.TypeDescAsUnion; _arIBaseTreeNode_Child : ARRAY[0..20] OF IecVarAccessLibrary.IBaseTreeNode; _TypeClass_Child : IecVarAccessLibrary.IBaseLibrary.TypeClass; _psSymbolName_Child : POINTER TO STRING; _sSymbolName_Child : STRING(255); _IBaseTreeNode_Component : REFERENCE TO IecVarAccessLibrary.IBaseTreeNode; _TypeClass_Component : IecVarAccessLibrary.IBaseLibrary.TypeClass; _ByteAddress_Component : __XWORD; _ByteOffset_Component : __XWORD; _sArrayIndexName_Component : STRING(20); _diArrayIndexCalc_Component : DINT; _diArrayIndexValue_Component: DINT; _psSymbolName_Component : POINTER TO STRING; _sSymbolName_Component : STRING(255); END_VAR uiStepCopy:=uiStep; uiStepProcessCopy:=uiStepProcess; CASE uiStep OF 10: // GET IBASE FROM CURRENT APP _IBase:= IecVarAccessLibrary.IecVarAccGetFirstInterface2(0); IF _IBase<>0 THEN uiStep:=20; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': IecVarAccGetFirstInterface2'); uiStep:=9000; END_IF 20: //QueryInterface IIecVarAccess5 from IBASE _pIIecVarAccess5 := _IBase.QueryInterface(IecVarAccessLibrary.ITFID_IIecVarAccess5, ADR(_RTS_IEC_RESULT)); IF _pIIecVarAccess5<>0 AND _RTS_IEC_RESULT=0 THEN _IIecVarAccess5 := _pIIecVarAccess5^; uiStep:=30; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': QueryInterface_IIecVarAccess5'); uiStep:=9000; END_IF 30: // Get IBaseTreeNode_Parent _IBaseTreeNode_Parent := _IIecVarAccess5.VarAccGetNode3(ADR(i_sPath), ADR(_VariableInformationStruct), ADR(_RTS_IEC_RESULT)); IF _IBaseTreeNode_Parent<>0 AND _RTS_IEC_RESULT=0 THEN q_diChildCount:=_IBaseTreeNode_Parent.ChildCount; uiStep:=40; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': IBaseTreeNode_Parent'); uiStep:=9000; END_IF 40: // Get IBaseTreeNod_Child IF(q_diChildCount-1>=i_diIndexChild AND i_diIndexChild >=0) THEN _IBaseTreeNode_Child := _IBaseTreeNode_Parent.GetChild(i_diIndexChild); IF _IBaseTreeNode_Child<>0 THEN uiStep:=50; ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': IBaseTreeNode_Parent'); uiStep:=9000; END_IF ELSE q_sErrorResult:=CONCAT(UINT_TO_STRING(uiStep), ': i_diIndexChild OutBounds'); uiStep:=9000; END_IF
Last updated: 2025-08-20
Post by rringo on Function block not autofilling
CODESYS Forge
talk
(Post)
I am attempting to place a block and make it an Analog sensor. When I go to change the name like in the instructional video on youtube it does not give me an option to autofill the block with a known configuration. This is a problem I have in Codesys 2.5 and 3.5. Did I mess up the install of the program or need to install a library? Any help would be appreciated. https://www.youtube.com/watch?v=PkJYQeIUmIM&t=136s at time mark 2:15ish The first image is what I can do and the second is what the videos function autofills to.
Last updated: 2023-08-24
Post by ggarcia94 on CANOPEN SDO configuration
CODESYS Forge
talk
(Post)
Hello, I´m connected to two drives via CANOPEN. The connection seems to be ok. However, I´m not able to get the PDOs to work even tho they are configured as in the manual of the drives. Looking at the SDOs I´ve seen that for each PDO there is a "Disable PDO" SDO that does not exist in the manual or in the EDS file of the drives. This "Disable PDO" signal has the same Index and Subindex as another SDO used to set and enable the COB-ID of the PDO. I´m assuming this is normal but why is Codesys creating a "Disable PDO" SDO for each PDO and could that be the reason the PDOs are not working?
Last updated: 2023-09-25
Post by matthew on Persistence Manager Backup
CODESYS Forge
talk
(Post)
Hi, Is there a process to restore Persistence Manager files? I have backups of persistence variables used in a machine that is currently operating and tuned and all set points adjusted. There are about 500 persistence variables, they are building another identical machine. I would like to use Persistence Manager files from the first machine in the second also. I have tried copying the files and replacing them on the new RPI but then the Persistence Manager gets errors and then they are all reset to 0 etc I have tried adjusting the times to match. Instead of replacing whole file, I tried just changing the contents inside the file, but still does not work. I may be missing something here, but surely there must be a way to load a backup. Thanks!
Last updated: 2023-10-18
Post by joschi2804 on Licensing info not available.
CODESYS Forge
talk
(Post)
Hi, maybe this fixes your problem. At least this was our issue back then. We tried to run the codesys runtime environment on an embedded Linux system. The problem on our side was that we changed the WORKDIR directory in the /etc/init.d/codesyscontrol script to /home/user/codesys, but we forgot to copy all files (including the hidden files) from the initial WORKDIR (I am not sure but I guess the initial WORKDIR was /var/opt/codesys) to the new one. After copying those files and restarting codemeter and codesyscontrol, we were able to upload licenses. Hope this help BR Josef
Last updated: 2024-07-10
Post by xiaolo on Raspberry Pi 5
CODESYS Forge
talk
(Post)
Does Ver. 4.12 support Raspberry Pi 5? I have three issues. The first issue is that Codesys cannot detect the RPI 5 when I want to download the runtime. When assigning the IP Address manually then I can download the runtime. The second issue is that I cannot connect to the RPI to download a program. Sometimes the window pops up and it ask for the user credentials, but it is still not connecting. The third issue is that I cannot connect to an ESP32 configured as a Modbus Slave with a Raspberry Pi 4B. I can connect to the ESP32 via a Radzio! Modbus Master Simulator. I am also missing the function Write Holding Registers in the setup of the slave. Are this known issues and when it will be solved?
Last updated: 2024-07-12
Post by micik on Reverse bytes in an array
CODESYS Forge
talk
(Post)
Hello, I'm getting the data in Codesys that is an array of 8 bytes. From this array, I need to foram LREAL number, however, because of different endiannes I need to reverse bytes in this array and then copy to a LREAL variable. For this I'm using a loop and it works OK. I wonder if there is a built in function to do this. I have found CAA Memory library but it has functions like reverse bytes in DWORD. But it seems it doesn't have what I need. https://content.helpme-codesys.com/en/libs/CAA%20Memory/Current/CAA_Memory/Reverse-Bit-Swap-ByteWord-order/ReverseBYTEsInDWORD.html What I need is a function to reverse bytes in an 8 byte array, or something similar.
Last updated: 2024-08-22
Post by micik on Reverse bytes in an array
CODESYS Forge
talk
(Post)
Hello, I'm getting the data in Codesys that is an array of 8 bytes. From this array, I need to foram LREAL number, however, because of different endiannes I need to reverse bytes in this array and then copy to a LREAL variable. For this I'm using a loop and it works OK. I wonder if there is a built in function to do this. I have found CAA Memory library but it has functions like reverse bytes in DWORD. But it seems it doesn't have what I need. https://content.helpme-codesys.com/en/libs/CAA%20Memory/Current/CAA_Memory/Reverse-Bit-Swap-ByteWord-order/ReverseBYTEsInDWORD.html What I need is a function to reverse bytes in an 8 byte array, or something similar.
Last updated: 2024-08-22
Post by shabroz-gill on Exception when OPCUA datasource disconnects from Server
CODESYS Forge
talk
(Post)
If i loose the network and the opcua data source suddenly looses connection with the server, i get an exception and my application stops working. I am using the latest version of the communication add v4.5.2.0 Is this a known issue? This makes the datasource unusable because it is inevitable that we will loose connectivity at some point, and the datasource crashing everything due to that seems to be a deal breaker. I can provide more details is someone from codesys is reading this. You can recreate is by just shutting off the Opc server after the codesys data source is connected and reading data from it. The codesys app does not crash everytime and sometimes it is able to reconnect without crashing, so you may have to try this a few times to see the exception. Best regards
Last updated: 2024-09-16
Post by timvh on Clarifications regarding the appropriate runtime system to use
CODESYS Forge
talk
(Post)
If you are not using any specific Raspberry Pi functionality, then probably the "universal" Control Linux ARM SL is the approriate runtime to run on the Pi. For the license it doesn't matter which runtime version you choose, because this is not hardware based anymore, but application based. Best is to use the latest version of CODESYS. To determine which license you need, double click on your device, go to the tab License metrics.... Generate the code for your application and see which license you need based on the metrics of your application.
Last updated: 2024-09-24
Post by ivanj on Codesys V3 + Rpi + PCA9685 + two robot arms
CODESYS Forge
talk
(Post)
greetings to everyone I have a system consisting of rpi3 computer with codesys v3 installed connected to one pca9685 through which the servo motors of the two robotic arms are connected (each robot arm has 6 motors) I managed to get that the pca9685 can only drive 4 servos on the first arm the other 2 on the same robot arm do not respond, nor do the remaining 6 they do not react on the other robotic arm. Power is connected to the pca9685 for motors of sufficient power or amperage. I tried to put another pca9685 but the same thing happens again. What is the possible problem?
Last updated: 2024-10-02
Post by niallel on CamBuilder and first boundary position not zero
CODESYS Forge
talk
(Post)
Hi, I've read the CamBuilder documentation and it shows to use the left boundary of the first segment as SMCB.BoundImplicit(), so that the transition is as smooth as possible. With this it sets X and Y to 0. My first slave position is not 0 (say for example it's 100), so I would set it with SMCB.Bound(0,100). My question is that when the cam goes back to the start (Periodic := TRUE) , will it blend with the last position (360, 100) if I do this? I imagine it will, but the documentation isn't clear as the information in the Periodic Cams only says to set Smooth Transition in the cam properties - but when I'm defining it with code there isn't an option for Smooth Transition to be set. Hope this makes sense? Many thanks,
Last updated: 2024-10-23
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.