Post by blitz on SMC_ERROR SMC_CGR_INVALID_POSPERIOD
CODESYS Forge
talk
(Post)
Codesys - SMC_ERROR SMC_CGR_INVALID_POSPERIOD - Invalid modulo period less than or equal to zero or greater than half the bus bandwidth. Has anyone seen this error and actually understands what it means and how to get rid of it? I tried to work around it by reducing the number of increments on the drive but then the drive itself starts throwing errors.
Last updated: 2025-12-15
Post by mascara on CloseTargetVisu
CODESYS Forge
talk
(Post)
I need to add a button to the Visualization to close it. And create a shortcut on the Windows desktop to reopen the Visualization. This is necessary to configure, for example, a local IP address. Is this possible? What command closes the Visualization? Which program opens Visualization? System: Win10 Codesys: Control RTE V3 x64 Program: Codesys V3.5 SP20 Using only a touchscreen monitor, without keyboard and mouse.
Last updated: 2026-03-11
Post by ilarioimi on Date Picker
CODESYS Forge
talk
(Post)
Hello, I am new here and need some help. I have added the Date Picker to a visualization page. The date selection works, but the current day is not highlighted. The date and time are displayed correctly by the system, which is set by default to “VisuElems.Visu_DateTime.DisplayUTC:= FALSE;”. Is there some project setting or Visualization Manager setting that I am missing? Thank you. Ilario.
Last updated: 2026-01-14
Post by davidbo on Two licenses have to be installed forgot to enable one license
CODESYS Forge
talk
(Post)
I have to install "Basic M" and "Visualization M", but it seems that during installation of "Basic M" you have to enable "Visualization S" I assume if you here after want to install my "Visualization M". And I forgot to enable "Visualization S" How do I fix that?
Last updated: 2026-02-02
Post by timvh on CODESYS: Combining Master Redundancy with EtherCAT Ring Topology – Is it Supported?
CODESYS Forge
talk
(Post)
Yes, this works (at least we have it running with Wago PLC and Beckhoff I/O), but the concept works. You need 2 PLC's with at leat 3 network interfaces. And 2 switches (can be unmanaged). See the attached simple diagram for the solution.
Last updated: 2026-02-05
Post by pernockham on Unable to deploy "Control for Linux SL 4.18.0.0"
CODESYS Forge
talk
(Post)
Ok, I think I understand. The problem is my language-setting being "swedish". I will check if I can switch to english. Update/confirmed. Change LANG to en_GB, this enabled the architechture to be correct and the control SL again to appear and to be possible to be updated. Thanks!
Last updated: 2026-02-23
Post by poliautomacao on Absolute movement controlled by an external encoder.
CODESYS Forge
talk
(Post)
Hello, is it possible to perform an MC_MoveAbsolute movement, and have the servo move using an external encoder (freeEncoder)? In my application, I have slippage on the main shaft of the servo motor, and I would like to add an encoder to measure the actual position of the material.
Last updated: 2026-03-04
Post by buczekj on ERROR: Calling the program "AlarmStorage_Prg" is not allowed from multiple tasks
CODESYS Forge
talk
(Post)
Many issues with the alarmmanager and alarmstorage can be solved by deleting the configuration, rebooting, and redownloading. I've found that the configurator doesn't always update when you make chanegs. For linux installations it is typically located in /var/opt/codesys/PlcLogic/alarms/ look for file Application.AlarmConfiguration.xml cd /var/opt/codesys/PlcLogic sudo rm -r alarms sudo reboot
Last updated: 2026-04-09
Post by automa on Best practice to reduce CPU load
CODESYS Forge
talk
(Post)
I am experiencing quite high CPU load on My Schneider M241 PLC with WebVisu. I would like to know what is best practice and how you create your application with pages, frames, tags, dialogs and settings to make an efficient HMI with low CPU load. Thanks
Last updated: 2026-04-10
Post by josepmariarams on Limit Axis CNC Jerk using SMC_Polynomial_AbsMaxLocs
CODESYS Forge
talk
(Post)
I am using both functions for: I override SMC_LimitDynamics o calculate the individual axis jerk on polynomial movements. LimitDynamics only controls acceleration and velocity, it's not enought to create smooth movements. To solve the problem when smothing path create loops. It seems that polynomial passes two times by the same point and smc_smooth path chooses incorrect one.
Last updated: 13 hours ago
Post by spiessli on Raspberry Pi 4 with Legacy Drivers and Codesys 3.5.19 Patch 4
CODESYS Forge
talk
(Post)
Hi, I wanted to use the Adafruit Hat for the Raspberry and get acquainted with Softmotion using servos for RC models. This did work great with Codesys 3.5.19 Patch 1, but with Patch 4 and 5 i get errors. I suspect changes in the SoftMotion library have broken dependencies in the legacy drivers, might that be true? Thanks for any hint, spiessli Here the error log: ------ Übersetzungslauf gestartet: Applikation: Device.Application ------- Code typisieren... Code erzeugen... [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0032: Typ 'Unbekannter Typ: 'ConfigGetParameterValueLREAL(pParam, 0)'' kann nicht in Typ 'LREAL' konvertiert werden [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0046: Bezeichner 'ConfigGetParameterValueLREAL' nicht definiert [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0035: Programmname, Funktion oder Funktionsbausteinstanz an Stelle von 'ConfigGetParameterValueLREAL' erwartet [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0032: Typ 'Unbekannter Typ: 'ConfigGetParameterValueLREAL(pParam, 0)'' kann nicht in Typ 'LREAL' konvertiert werden [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0046: Bezeichner 'ConfigGetParameterValueLREAL' nicht definiert [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0035: Programmname, Funktion oder Funktionsbausteinstanz an Stelle von 'ConfigGetParameterValueLREAL' erwartet [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0032: Typ 'Unbekannter Typ: 'ConfigGetParameterValueLREAL(pParam, 0)'' kann nicht in Typ 'LREAL' konvertiert werden [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0046: Bezeichner 'ConfigGetParameterValueLREAL' nicht definiert [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0035: Programmname, Funktion oder Funktionsbausteinstanz an Stelle von 'ConfigGetParameterValueLREAL' erwartet [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0032: Typ 'Unbekannter Typ: 'ConfigGetParameterValueLREAL(pParam, 0)'' kann nicht in Typ 'LREAL' konvertiert werden [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0046: Bezeichner 'ConfigGetParameterValueLREAL' nicht definiert [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0035: Programmname, Funktion oder Funktionsbausteinstanz an Stelle von 'ConfigGetParameterValueLREAL' erwartet [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0032: Typ 'Unbekannter Typ: 'ConfigGetParameterValueLREAL(pParam, 0)'' kann nicht in Typ 'LREAL' konvertiert werden [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0046: Bezeichner 'ConfigGetParameterValueLREAL' nicht definiert [FEHLER] sm3_drive_servo, 4.6.0.0 (3s - smart software solutions gmbh): GetStandardConfigParams AXIS_REF_SERVO: C0035: Programmname, Funktion oder Funktionsbausteinstanz an Stelle von 'ConfigGetParameterValueLREAL' erwartet Übersetzung abgeschlossen -- 15 Fehler, 0 Warnungen : Kein Download möglich
Last updated: 2023-12-19
Post by danwoodlock on RPI Zero w - Edge gateway cant install
CODESYS Forge
talk
(Post)
Hello all, First post. I recently acquired an RPI zero W from amazon, and have been using it with Codesys v3.5 SP19 patch 2. I first got it working yesterday, and after installing the runtime on the Pi, I was prompted to install the edge gateway. Installation of the edge gateway failed because of unsupported architecture, undeterred I was able to connect to the pi and program as I wanted. The issue I've noticed is that if I do not load anything to the pi overnight, I can then no longer connect to the pi and download, although I can still ping it from my pc. I found that if I power cycle the PI, I am then able to connect again, and it works as normal. I did some googling and found instances where people recommended downloading the newest edge gateway, which brings me here. Wondering if there are any suggestions, or if this is a known issue. I actually tried installing all 3 versions of edge gateway for science, but all fail with the same message. Thanks -Dan
Last updated: 2023-09-13
Post by sturmghost on Initialization of visualization variables and cyclic code execution
CODESYS Forge
talk
(Post)
I'm looking for a smart and short way to implement initialization of visualization variables depending on the visualization input. For an easy example consider a rectangle which rests at XPos := 0 when the input state is false and at XPos := 50 when the input state is true. My visualization variables look like this: VAR_IN_OUT State : BOOL; END_VAR VAR XPos : INT; END_VAR I put this rectangle via a visualization frame element into another visualization and link a frame reference variable with the state to it. If the variable is true, the rectangle should rest at XPos := 50 and false at XPos := 0 at visualization init but how should I assign the 50 or 0 to the internal visualization variable XPos? I would need some init-methode for the visualization but I dont want a global init-method for such tasks. I want to do it inside of the visualization element but I can't see any solution for this? It would be good to be able to define ST-code within the visualization element which runs cyclic at each VISU_TASK task-cycle then I could just check the input state and change the XPos accordingly. Does someone have a solution?
Last updated: 2023-10-01
Post by wbj0t on What the right way to update TCP/COM slave device holding registers
CODESYS Forge
talk
(Post)
Hi all :) I have an plc. This plc has option to be as slave device. There are TCP -> Serial Slave Device and COM -> Serial Slave Device. There are 4096 ModBus holding registers with mark "internal modify" for the both devices above. So, COM Slave has 4096 registers and TCP Slave has 4096 registers. And, finally, I have an ARRAY[0..4095] OF WORD. This array glued with COM Slave and TCP slave. Yes, I need plc's opportunity to be communication both TCP and COM ways for the same registers. For example, the next task structure: * TASK_0: 1. pou_READ_Registers 2. pou_0 3. pou_1 4. ... 5. pou_N 6. pou_WRITE_Registers At the first pou I read registers for the other pous, after job we have sort of state of the plc. At the last pou (6) we write modified registers. It is a good scenario: some one wrote registers for the job, after job we save these (modified) registers. But, what if registers wrote between 1 and 6 pou by operator, for example, at the 3 pou -> the last pou 'pou_WRITE' will rewrite this request from operator. What the right way to work with this logic? Thanks you.
Last updated: 2024-07-01
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 aliazzz on Unable to deploy Virtual Control SL on ARM64 (Raspberry Pi5)
CODESYS Forge
talk
(Post)
Hi, I have successfully deployed "Virtual Control SL" on a few x86/64 machines now. However, I'd now like to deploy this to a Raspberry Pi (ARM64). To do this I prepared the Raspberry Pi5 with the following prereq's; * Minimal PREEMPT Debian * Latest Bootfirmware * full SSH access via non-root account * Podman * RedHat Cockpit with CODESYS LicensServer plugin up and running However, I can't seem to resolve copying the correct (deploy) Images as they wont show up in the CODESYS IDE I have added CODESYS Virtual Control for Linux SL and the CODESYS LicenseServer for Linux SL via the CODESYS installer on my DevBox. I open CODESYS > Tools > Deploy Control SL Next I enter the SSH targets IP and Credentials and for my RPi5 and it shows "Connected". In the next tab, Deployment, the dropdown box only shows one (1) image, which also is the incorrect CPU architecture. Only Virtual Control AMDx64 shows up (!?) while I expect to see the ARM64 based images for both Edge and Control. Has someone encountered this too? I'd like to hear other people experiences with Virtual Control deployment on ARM based architecture. attachment 1: AMD64 based deployment pulldown menu (correct images) attachment 2: ARM64 based deployment pulldown menu (incorrect images) regards,
Last updated: 2024-07-28
Post by z870623 on About CPU Loading
CODESYS Forge
talk
(Post)
I am running a runtime environment on an ARM A35 dual-core processor (1.5GHz) and have encountered some issues. The CPU load (both CPU0 and CPU1) occasionally spikes above 50% before returning to normal, and this happens around 2-3 times per minute. At the same time, I’ve noticed that the Max Cycle Time in the Codesys monitoring screen shows much worse performance compared to the A53 (1.2GHz), with nearly double the cycle time. The optimizations I have made so far are as follows: Set the CPU to performance mode. Isolated CPUs: CPU0 is dedicated to running Linux services and the runtime itself, while CPU1 runs the EtherCAT task and the MainTask. Despite CPU1 only running these two tasks, the utilization still increases above 50%, which I find unreasonable. Additionally, I performed tests using cyclictest both without and with the runtime running. The performance is shown in the following image: From the results, I believe the CPU performance should be fine, but I am unsure why the monitoring results are not as expected. The testing outcomes should ideally be as close as possible to the cyclictest results. Does anyone have related solutions to this issue?
Last updated: 2024-10-14
Post by mubeta on Profibus DP master with EL6731 and automatic restart of slaves
CODESYS Forge
talk
(Post)
WHEREAS, I have already searched various posts and forums, where mostly there are few references and mostly geared toward integration in TwinCAT. I am looking for how to properly configure the EL6731 board as a DP master, (where I have its 3S license), with CoDeSys 3.5.19.x. I have three types of slaves, all integrated with their GSD descriptors. In the tab for the various slaves, I don't see options related to node restart on 'station return'. On the card manual, I read that for each slave I should be able to configure parameter 8000:2C: “8000:2C Restart behavior after DP fault Reserve, must be 0 BIT1 RW 0x00 (0dec)” However, in the project I see no way to configure this parameter, in any of the boards; and the arrays do not always have such an extensive size; most of the time they are only two or three words in size. The problem is that, after the hot reset of CoDeSys, the master restarts by starting all slave nodes, but if one or more get lost and go offline, there is then no automatic restart upon their return. I would need to figure out any solution, even via software, how to figure out that this one is back available and restart it.
Last updated: 2025-02-02
Post by ojz0r on Assignment Efficiency - Repetitive Assignment vs IF statement
CODESYS Forge
talk
(Post)
Its important that you know the difference between the two. Example 1: Coils[0] := Coils[0] OR (Buttons[0] AND Sensors[0] > 6); In this case the statements will be evaluated every scan and result in either true or false for Coils[0]. Example 2: IF NOT Coils[0] AND Buttons[0] AND (Sensors[0] > 6) THEN Coils[0] := TRUE; END_IF In this example Coils[0] will latch the result in a true evaluation, if you want it to behave the same way as example 1 then you need to do it like example 3 below: IF NOT Coils[0] AND Buttons[0] AND (Sensors[0] > 6) THEN Coils[0] := TRUE; ELSE Coils[0] := FALSE; END_IF However back to the real question. There is no problem using either example 1 or example 3, if im not requiring a latch i usually go with example 1 as it is more compact.
Last updated: 2025-03-07
Post by nz-dave on MC_HOMING
CODESYS Forge
talk
(Post)
Hi Just new to motion and i am building my own 3axis cnc cutter using servo drives. i have every thing working quite well apart from mc_home. when executed (r_trig) it stops immediately and i get fb_wasnt_called_during_motion. if i execute the mc_home fb with a toggle it just runs and runs for a while then errors out. what im unsure of is the way mc_home works. from what i understand it changes the drive mode to 6 (homing) and should then run of the drive homing settings. once origin sensor is made then homing would stop and mc_home.done is true. and the position on the fb is where i what the new home position (zero) to be? or do i feed mc_readposition to that input? so i would think its the settings in the drive that aren't quite right. but i believe they are all correct. has any one got any info to steer me in the right direction? Cheers
Last updated: 2025-04-04
Post by r-c-r on SM3RaspiStepper 0.0.0.6 issue
CODESYS Forge
talk
(Post)
Ok, so i made some tests in the meantime and i have some conclusions. It apears that the enable bit is activated only when a motion function is executed. I implemented a very simple program with MC_Power and MC_Jog. If i enable everything on MC_Power, the enable GPIO pin stays off. However, as soon as the MC_Jog function is used the enable GPIO pin turns ON and remains ON. In version 0.0.0.4 this is not happening. The GPIO enable pin turns on or off when the MC_Power is enabled or disabled. From this behaviour i understand that in version 0.0.0.6 the GPIO enable bit is activated together with pulse and dir pins when motion starts. When motion stops, enable bit remains with the last state (on in this case) and you cannot turn it off for example. For me this bit is useful because i can turn on and off the stepper drive with MC_Power function. Now i can turn it on, but never off.
Last updated: 2025-04-04
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 kurtk on Modbus TCP Server
CODESYS Forge
talk
(Post)
ditto I'm just getting my codesys wheels on and the modbus stuff is confusing. I am re-platforming an existing PLC application On that platform one could simply tag variables to register numbers and the whole shooting match could be accessed via modbus and typically holding registers and input registers were treated the same way... On codesys I see there is a modbus TCP server Device I/O mapping tab and a Modbus TCP server IEC objects tab I get the sense that one can configure the serving of variables both/either way but am unclear about the optimum/necessary path. Apparently in the IEC Objects tab one can "ADD" something or other - presumeably channels. I have created a preliminary function block but the Select Function Block window shows nothing to select WTH ? I exported the Device mapping and was surprised to see the entire Device IO map - complete with all the bit-mapped holding/input registers!! WTH!!?? Bit-mapped words are strictly a nichey special purpose application. I am targetting making a couple hundred variables available which would turn into hundreds of pages of IO/mapping Is the FUnction Block IEC objects thingy an alternative to that ? I notice that CODESYS shows the tags which the PLC used to specify the register address... are tags used in CODESYS for any specific hard-core purpose ?
Last updated: 2025-08-19
Post by antonz on CoDeSys v3.5: creating libraries for both 32-bit and 64-bit controllers
CODESYS Forge
talk
(Post)
Looking for thoughts on creating libraries that can be used on both 32-bit and 64-bit controllers. We are currently writing software in CoDeSys for both target types and will continu to do so for the near future. Projects are always unique, no straight forward copy/paste, yet there is enough similarity between them to use libraries for recurring logic. I do not want to create and maintain twice for both platforms if this is not absolutely necessary. I am aware of useful datatypes like __XWORD, __XINT, __UXINT. Still looking for more information and/or sample code for portable pointer arithmetic. In addition to that: how should one go about when creating and working with compiled libraries? Would I need to compile the same lib twice, once for 32-bit targets once for 64-bit targets? I would end up with two different libs with the same namespace, which does not sound elegant to me. Note: I did not intentionally make the previous paragraph bold. The forge forum software seems to do this automatically upon insertion of a word which starts with two underscores, e.g. __XWORD (yeah, here we go again :) )
Last updated: 2025-08-25
Post by leandroct on Creating Boot Application not working
CODESYS Forge
talk
(Post)
I have a Control Win V3.5 SP20 (64-bit) application, and until now, I open the program (with a password) and download it. However, I need to give the client the option to install the program on the Controller, without them having to open it and access the code. So, I followed these steps: 1 – In the Online => Create Boot Application menu, I saved the generated files in a directory: Application.app Application.crc PlcLogic\visu\ directory with several files 2 – In the SysTray, I ran the PLC, and it created a directory. In the root of this directory (C:\ProgramData\CODESYS\CODESYSControlWinV3x64\E84889DB), I pasted Application.app and Application.crc. Since it created a \visu directory, I pasted the PlcLogic\visu\ files generated in Create Boot Application into it. 3 - In the general Codesys directory (C:\ProgramData\CODESYS\CODESYSControlWinV3x64), I edited CodesysControl.cfg, adding: [CmpLog] Application.1=Application 4 - When running the PLC, nothing happens and the TargetVisu screen does not open. What I'm doing wrong?
Last updated: 2025-09-03
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.