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 pernockham on Linking to IO during runtime with hot swap?
CODESYS Forge
talk
(Post)
I have a project where a single PLC shall control multiple nodes (up to 10 units?) with IO connected through profinet. Ideally each node should be identical however with time I see situations were different setups/configurations will be used. Codesys PLC (GVLs) |Profinet | |--PNIO-node-1--| | | AIO, | | DIO, | | CNT etc. | |--PNIO-node-2--| | | AIO, | | DIO, | | CNT etc. Ideally I think of a configuration through yaml/xml-files (the assignment/linking of the profinet nodes towards GVL-variables in the PLC as well as scaling, channel configration etc.). Would be grateful if someone could suggest library/-ies that can handle the following: - Verify what IO is connected to a device/node. - Hot-swap/assign link for IO towards GVLs, either automatically or through a HMI.
Last updated: 2024-10-11
Post by yoeri on Refresh visulization realtime
CODESYS Forge
talk
(Post)
Hi everyone, I need some help with displaying an image (test.png) on my device. Initially, showing the image is straightforward. However, I want to be able to update the image dynamically. My goal is to send updated files via FTP to the device, and have the display automatically show the latest version of the image. All images will be sent with the same name (e.g., test.png). Currently, I can see the updated image after sending it via FTP and performing a warm restart, but I'd like to achieve this in runtime, without having to restart the display or application. Does anyone have suggestions on how to implement this? Thanks in advance!
Last updated: 2024-10-21
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
Post by gediminas on Datasource OPC UA client system failure
CODESYS Forge
talk
(Post)
I am using CODESYS v3.5 SP20 Patch 3 / Control for BeagleboneBlack SL v4.13 and after some time the OPC UA Server crashes. However, Runtime still works without any issues. The events leading up to the OPC server crash are the most suspicious: 1) Mutex deadlock detected - owner thread died, and 2) Runtime received SIGABRT. And it seems very similar with this topic except used versions - issues should be fixed with previous SP's. I can't seem to find any information about these events. Need some pointers in the right direction on how I can fix this problem.
Last updated: 2024-10-25
Post by garrian on How to write multiple coils (Modbus FC15)
CODESYS Forge
talk
(Post)
Hi there! I'm testing out modbus TCP/IP for my home brewery, using Wago PFC200 as both slave and master. I'm using Wago library WagoAppPlcModbus. Holding registers, input registers' and discrete inputs works fine, but when trying to write multiple coils, it doesn't work. Any idea what I'm doing wrong here? Attached is a screenshot of my code. I tried both using bit mapping and without. If I change to FC05, and write only 1 coil at the time, it works fine. But I want to write all at the same time.. Any help is very appreciated :)
Last updated: 2024-11-16
Post by patrik on Application failing to boot after system reboot
CODESYS Forge
talk
(Post)
Hi! I'm having issues with my applications failing to boot up after the hardware getting restarted by the customer. I've attached a picture of the related log lines in the PLC log. I'm running this on a windows server. The version I'm currently running is CoDeSys win V3 x64 3.5.19.50 Is there any way to get more information why it's failing to boot? I've had this issue on several versions of the runtime. I don't think it's version related but I don't know. All I know is that sometimes when the client gets a power outage or something that kills the machine some of my applications fail to boot. Any help is deeply appreciated. Thanks in advance!
Last updated: 2024-11-20
Post by sebastianrapi on Bibliothek: floatingpointutils
CODESYS Forge
talk
(Post)
@Strucc.c: thanks very mutch. Yes, I think that was the problem. I tried yesterday a similar function, i have found: IEEE32 in REAL FUNCTION IEEE32_TO_REAL : REAL VAR_INPUT IN:DWORD; END_VAR VAR PTREAL:POINTER TO REAL; END_VAR PTREAL:=ADR(IN); IEEE32_TO_REAL:=PTREAL^; END_FUNCTION REAL in IEEE32 FUNCTION REAL_TO_IEEE32 : DWORD VAR_INPUT IN:REAL; END_VAR VAR PTDWORD:POINTER TO DWORD; END_VAR PTDWORD:=ADR(IN); REAL_TO_IEEE32:=PTDWORD^; END_FUNCTION http://www.oscat.de/community/index.php/topic,357.0.html And this works perfect. Now, the only thing that isn't clear is the libary "FloatingPointUtils, 3.5.17.0 (System)"... For me, the libary doesn't work. But the problem is now solved. Thanks a lot.
Last updated: 2024-11-21
Post by imdatatas on MC_CamIn did not work properly with SMC_FreeEncoder on SoftMotion 4.17.0.0
CODESYS Forge
talk
(Post)
Hi @tk096, Thank you for your response. Here is example project file and some screenshot for your analysis regarding this matter. In order to reproduce the problem on your side and make it independent of the hardware, I simulated the encoder counter incrementally for the master in this example. I configured a virtual axis as the slave motion axis. The problem occurs in the same way in the real hardware configuration (servo drive connected to Ethercat and hardware incremental encoder) in MC_CamIn. I hope this example helps you see the problem on your side and understand and find the source of the problem with FreeEncoderAxis for Softmotion 4.17.0.0. Best Regards, Imdat
Last updated: 2024-12-19
Post by teichhei on The selected container ... does not fit your ticket
CODESYS Forge
talk
(Post)
Hi, When trying to activate a control Basic L license on a Wago PFC200 750-8203 the error The selected container ... does not fit your ticket comes up and won't allow licensing. I have deleted the /var/opt/codesys/cmact_license/ content 3 times and the container number changed each time after a reboot, but the problem persists. Not a happy first time experience with those weird application based licenses. IDE is 19.20. This was a e!Cockpit FW22 PLC and I used Deploy Control SL to make the green web interface red. WBM shows Codesys 2 and e!Runtime active which is a bit weird. What do I do now? Regards Heinz
Last updated: 2025-01-08
Post by ton on String nach erlaubten/unerlaubten Zeichen durchsuchen
CODESYS Forge
talk
(Post)
Hi Timo, FUNCTION Sonderzeichen_Check : bool VAR_INPUT sInputString : STRING; // Zu prüfender String END_VAR VAR i: INT; iAsc: INT; END_VAR Sonderzeichen_Check:= TRUE; FOR i:= 0 TO len(sInputString) - 1 DO iAscii:= sInputString[i]; //Get ASCII value //Check value between 48('0') and 65('9') or between 65('A') and 90('Z') or between 97('a') and 122('z') or IF iAscii >= 48 AND iAscii <= 57 OR iAscii >= 65 AND iAscii <= 90 OR iAscii >= 97 AND iAscii <= 122 THEN //iAscii valit ELSE Sonderzeichen_Check:= FALSE; END_IF END_FOR Diese FUNCTION anrufen: VAR xTest1: BOOL; xTest2: BOOL; sCheck: STRING; END_VAR xTest1:= Sonderzeichen_Check(sInputString:= 'abcuharoahse89347KEWDL'); //=TRUE xTest2:= Sonderzeichen_Check(sInputString:= 'abcuharoahse89347KEWDL?'); //=FALSE IF Sonderzeichen_Check(sInputString:= 'CheckThisSting,') THEN sCheck:= 'OK'; ELSE sCheck:= 'NOT OK'; END_IF
Last updated: 2025-01-20
Post by alberto on ExportPLCopenXML is failing
CODESYS Forge
talk
(Post)
I'm trying to export my whole project through the option ExportPLCopenXML. It seems working, but when I'm trying to import the xml I have the following error during the importation process: Object reference not set to an instance of an object. It seems a usual issue with this process that affects to the pointer to user classes inside a procedure. I receive this error for two general functions that have this pointer declarations in the VAR_INPUT section. It seems a bug into the export/import process of CodeSYS and I couldn't skip it so far. Anyone could help me? Thanks in advance.
Last updated: 2025-03-15
Post by atone on CAA File Handling: "Read only" error
CODESYS Forge
talk
(Post)
In case of error while opening the file to read you assume that the file doesn't exist and try to create one. But it could be that the SD card is not ready yet or simply not there. I would try to check first if the SD card is there and accessible. Otherwise with FILE.Create you could end up creating a new directory that is not mapped to the SD card. This would explain the errors even after a reboot, though it doesn't explain the READ_ONLY_CAA error I guess? I would use FILE.DirOpen and FILE.DirList to check if the SD card is there and ready.
Last updated: 2025-03-20
Post by l-lll on The plug-in is required by the current version profile but has not been installed
CODESYS Forge
talk
(Post)
Hello everyone, I meet this problem after installing Codesys SP20 Patch 5 on Windows 11 while the dialog box shows that the installation process has been successfully completed. Every time I open Codesys I get an error that says (Attached image): 'One or more issues ocurred with the current version profile. Please contact the vendor to resolve these problems. The plug-in {....} (Exactly x.x.x.x) is required by the current version profile., but has not been installed. It is highly recommended that the tools is terminated. Do you wanto to terminate now?' Can someone help me please, thanks very much!
Last updated: 2025-05-14
Post by l-lll on The plug-in is required by the current version profile but has not been installed
CODESYS Forge
talk
(Post)
Hello everyone, I meet this problem after installing Codesys SP20 Patch 5 on Windows 11 while the dialog box shows that the installation process has been successfully completed. Every time I open Codesys I get an error that says (Attached image): 'One or more issues ocurred with the current version profile. Please contact the vendor to resolve these problems. The plug-in {....} (Exactly x.x.x.x) is required by the current version profile., but has not been installed. It is highly recommended that the tools is terminated. Do you wanto to terminate now?' Can someone help me please, thanks very much!
Last updated: 2025-05-14
Post by l-lll on The plug-in is required by the current version profile but has not been installed
CODESYS Forge
talk
(Post)
Hello everyone, I meet this problem after installing Codesys SP20 Patch 5 on Windows 11 while the dialog box shows that the installation process has been successfully completed. Every time I open Codesys I get an error that says (Attached image): 'One or more issues ocurred with the current version profile. Please contact the vendor to resolve these problems. The plug-in {....} (Exactly x.x.x.x) is required by the current version profile., but has not been installed. It is highly recommended that the tools is terminated. Do you wanto to terminate now?' Can someone help me please, thanks very much!
Last updated: 2025-05-14
Post by s1mon on Two OneWireMaster on one Raspberry PI 5
CODESYS Forge
talk
(Post)
Hi, I want to use two OneWireMaster on a Raspberry Pi5. I'm running Codesys Control for Raspberry Pi 64SL V 4.15.0.0. Under Linux I've configured two GPIOs for 1w bus usage on GPIO4 and GPIO27. Under Linux both masters seem to work fine and I can readout both sensors connected to both GPIOs. The two masters are 'w1_bus_master1' and 'w1_bus_master2'. In Codesys I've configured to OneWireMasters with the corresponding file paths. But in Codesys the 2nd onewiremaster "w1_bus_master2" doesn't work. Status is showing "OnewireMaster : Not running" What am I doing wrong? Does Codesys on Raspberry support multiple OneWireMasters? Any help is appreciated.
Last updated: 2025-06-10
Post by s1mon on Two OneWireMaster on one Raspberry PI 5
CODESYS Forge
talk
(Post)
Hi, I want to use two OneWireMaster on a Raspberry Pi5. I'm running Codesys Control for Raspberry Pi 64SL V 4.15.0.0. Under Linux I've configured two GPIOs for 1w bus usage on GPIO4 and GPIO27. Under Linux both masters seem to work fine and I can readout both sensors connected to both GPIOs. The two masters are 'w1_bus_master1' and 'w1_bus_master2'. In Codesys I've configured to OneWireMasters with the corresponding file paths. But in Codesys the 2nd onewiremaster "w1_bus_master2" doesn't work. Status is showing "OnewireMaster : Not running" What am I doing wrong? Does Codesys on Raspberry support multiple OneWireMasters? Any help is appreciated.
Last updated: 2025-06-10
Post by buczekj on About CPU Loading
CODESYS Forge
talk
(Post)
This is a phenomenon that I have seen myself and with others. Texas instruments wrote an application note with this same issue. They noted with Codesys 3.5.19.10, that selecting CPU 1 as the EtherCAT task showed CPU spiking improvements over the performance of cores 0, 2, and 3. It appears to be linked to EtherCAT, are you configuring for use with distributed clocks? If so, I recommend choosing the 'Based on Input Reference' option. I have found it to reduce the CPU usage spike maximum slightly (see attached). See link to TI (also attached in case link breaks) https://www.ti.com/lit/an/spradh0/spradh0.pdf?ts=1723546111357
Last updated: 2025-07-01
Post by manuknecht on Using an Axis of an Axis Group in Torque Conctrol
CODESYS Forge
talk
(Post)
I don't seem to be able to use an axis, which is part of an Axis Group in torque control mode. I call the SMC_SetControllerMode FB to switch from position to torque control mode, followed by the SMC_SetTorque FB to set the desired torque. This works flawlessly for most axes, however if an axis is part of an axis group, switching the controller mode seems to work without any issues, but the desired torque is never set. SMC_SetTorque does not return an error, but fSetTorque of the axis is never changed. Disabling the axis group before does not change anything, but if I use MC_UngroupAllAxes before changing the controller mode, it all works as it should. Is there no way to control a single axis in torque control, if it is part of an axis group?
Last updated: 2025-07-17
Post by jeroenaero on Targetvisualisation full screen with CmpTargetVisu settings
CODESYS Forge
talk
(Post)
Hi, How can i display targetvisualization in full screen on the target device? I installed Targetvisu For Linux SL 4.16.0.0 on target device which contains Raspberry PI 64bit PIXEL desktop. When i connect my PLC program to the remote targetvisu, the targetvisu displays for 60% horizontally. We contacted CODESYS and they said it is a bug. they had a workaround, and with the settings below added to the file /etc/codesysvisualization/CODESYSVisualizationTV.cfg, the targetvisualization display for 100%, but with the taskbar at the top. VisuClient.BestFit=1 ;VisuClient.ScaleTypeIsotropic=0 VisuClient.FillWholeBackground=1 [CmpTargetVisu] WindowPositionX=0 WindowPositionY=0 WindowSizeWidth=1280 WindowSizeHeight=800 WindowType=2 How can we let it display fullscreen without taskbar?
Last updated: 2025-07-24
Post by viksym on How to get the motor scaling value from code
CODESYS Forge
talk
(Post)
If anybody finds this in the future, I managed to do it like this: scalingValue := EncoderPulseCountPerRev / ABS(AxisName.fScaleFactor); No need to use MC_ReadParameter as I am able to read this value directly from the axis object. Using an absolute value of the fScaleFactor is there in case the axis is set as inverted, in which case it would be a negative value. I was not able to figure out how to get EncoderPulseCountPerRev programatically, but since all my servos use an encoder with pulse count per revolution of 16#800000, the final equation looks like this: scalingValue := 16#800000 / ABS(AxisName.fScaleFactor);
Last updated: 2025-08-19
Post by kporter on High-resolution drive with SoftMotion
CODESYS Forge
talk
(Post)
I'm beta-testing a new EtherCAT drive for a rotary (modulo) axis in a system where the encoder resolution is 81920000 counts per rotation. If I enter this in the SoftMotion Scaling/Mapping tab for "increments <=> motor turns", I get the error below on the Commissioning tab. Is SM unable to handle a high-resolution encoder? The bus cycle is currently set to the default of 4 msec (Control Win V3 x64), although I plan to reduce that to reduce latency, possibly by switching to the realtime (RT) master. Is SoftMotion incompatible with high-resolution encoders? SMC_CGR_INVALID_POSPERIOD Invalid modulo period (<= 0 or greater than half the bus bandwidth)
Last updated: 2025-08-25
Post by imdatatas on C0138: No matching 'FB_Init' method found for instantiation of VisuClientObjectMgr
CODESYS Forge
talk
(Post)
Hello everyone, I downloaded the "Example: PLC Chat Net Base Services" example from the Codesys help site to review and try it out. https://content.helpme-codesys.com/en/CODESYS%20Examples/_ex_cds_plc_chat_net_base_services.html However, when I open and compile the example program with SP21 Patch2, I get the strange error message below regarding Visualisation component, and it fails to compile. " [ERROR] visuelems, 4.8.0.0 (system): VisuFbTabControl: C0138: No matching 'FB_Init' method found for instantiation of VisuClientObjectMgr " Are others experiencing the error "C0138: No matching 'FB_Init' method found for instantiation..." when trying to compile example projects created with older versions of Codesys with a later version of the IDE? How did you overcome this problem? Could you share your solutions? Regards, Imdat
Last updated: 2025-08-26
Post by pernockham on AC Persistence - values are not read from file during start?
CODESYS Forge
talk
(Post)
I swear I tested this like 20 times yesterday without success. Repeated it today and it works. Maybe the system needed a "real" power reboot? To note. To make a manual edit of a variable I tried some different approaches this is what worked for me. "system/online edited" gvl_var.example_variable REAL:F16#2FFB334H-4 767.7 "manually edited" (with runtime stopped followed by a "cold start" to read from file) gvl_var.example_variable REAL:790.1 (the system will use the manual value but will not set an equivalent "hex" value until next online edit/write cycle)
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.