Post by matteodigani on Add library .dll to project codesys.
CODESYS Forge
talk
(Post)
Is there a way to import an external library made with c++/CLI or python? then call the function that i have made inside the program POU ?
Last updated: 2025-10-15
Post by apurv on Cannot pass array of constant size to a function as a reference
CODESYS Forge
talk
(Post)
Could not find the solution to this issue but I have side stepped this by creating a global variable MAX_SIZE.
Last updated: 2024-01-08
Post by apurv on Cannot pass array of constant size to a function as a reference
CODESYS Forge
talk
(Post)
okay but will this pass the array by copying it or it will be a reference to original array only.
Last updated: 2024-01-09
Post by dkugler on Ramp function
CODESYS Forge
talk
(Post)
The util.RAMP_INT and util.RAMP_REAL from Codesys have an input for the start value. What is the advantage of this OSCAT ramp instead of the Codesys util lib?
Last updated: 2024-01-10
Post by jdjennings1962 on Trouble accessing Math functions in OSCAT library
CODESYS Forge
talk
(Post)
Thank you seoerr for your suggestion. When I implement that line, I get this error: ** [ERROR] 'OSCAT_BASIC.ARRAY_SDV' is of type FUNCTION and cannot be instantiated** Any other thoughts about instantiating these sections of the library which seem to be provided as source only?
Last updated: 2024-01-16
Post by fcmtw on SDO generation
CODESYS Forge
talk
(Post)
Thanks for the answer. So yes I've enabled expert settings, and yes i've added some SDOs, but some of them who are generated are likely making a mess in the network and generated error with my device... From which library comes those 2 function blocks ?
Last updated: 2024-01-26
Post by eschwellinger on Access to the path *** is denied
CODESYS Forge
talk
(Post)
sorry this is wrong here: (but important for signature problems) please update the CODESYS Installer to 2.2.1 version by downliad it from here: https://store.codesys.com/de/codesys-installer.html there is a problem on his auto update function. This will solve it!
Last updated: 2024-01-31
Post by arundara on Variable Sync Issue In Soft Plc Redundancy
CODESYS Forge
talk
(Post)
i understood that we have to use sync variable function. when i used this i was able to achieve on the requirements of our project.
Last updated: 2024-02-13
Post by eschwellinger on CODESYS Installer Update udpate to 2.2.2 version - Important Information
CODESYS Forge
talk
(Post)
There is a bug in the auto update function of the CODESYS Installer, If you are on CODESYS Installer Version 2.1.0, 2.2.0 or 2.2.1 please update with https://store.codesys.com/de/codesys-installer.html by downloading and Install it from CODESYS Store.
Last updated: 2024-02-15
Post by macros8 on Visualization using methods and cyclic ST-calls
CODESYS Forge
talk
(Post)
Have you found the way how to call any function in case the visu is opened? Like on event when the screen is opened to initialize some variables etc.? I canΒ΄t... :/
Last updated: 2024-03-01
Post by jetme on Rampup and rampdown
CODESYS Forge
talk
(Post)
i'm using FB Ramp_INT function to ramp my pump up and down but I will like to ramp up at a different time and also ramp down at a different time. How can I do that.
Last updated: 2024-03-28
Post by eschwellinger on How to Connect / Go Online without re-downloading the project
CODESYS Forge
talk
(Post)
Which plc type is it: Either use Automationserver to do this or save the project archives instead of projects or use the source dowload function and reopen the application from plc. So you need to chose one of them.
Last updated: 2024-04-13
Post by dkugler on I want to convert a WORD to a hex string like 15.432 to '3C48'
CODESYS Forge
talk
(Post)
you try to convert a WORD with BYTE_TO_HEX directly? Using https://de.helpme-codesys.com/ lead to the SM3_shared lib. There is a function: https://content.helpme-codesys.com/en/libs/SM3_Shared/Current/SM3_Shared/StringFormat/Word_To_HexString.html
Last updated: 2024-04-19
Post by rabaggett on CODESYS control for Raspberry Pi 64 SL errors
CODESYS Forge
talk
(Post)
Update: I found my error in the Scale function, where I used UINT_TO_REAL instead of DWORD_TO_REAL. I fixed it, errors unchanged.
Last updated: 2024-05-02
Post by sahil-koul on Touch Probe Continuous Trigger
CODESYS Forge
talk
(Post)
Hi everyone. Can anyone tell how to do continuous trigger function of probe in codesys and change scaling of servo online in program
Last updated: 2024-06-16
Post by jtebokkel on VAR_GENERIC unknown token
CODESYS Forge
talk
(Post)
The help says VAR_GENERIC exists, but trying to use it in 3.5.21.30 results in a unknown token error. https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_vartypes_var_generic_constant.html Did this feature get removed or is there something else that needs to be done to enable using generic function blocks?
Last updated: 2025-10-21
Post by shaunvdm on OSCAT Scale_r function not working in LD 4.60 works in LAD2 on 3.5.21sp3
CODESYS Forge
talk
(Post)
Hi All, We downgraded Codesys LAD/FB in the IDE to version 4.5 and it works. Codesys Version 4.6 lad/fb not working. Was the way we fixed this. Kind Regards Shaun
Last updated: 2025-11-17
Post by mbart on VAR_INFO from inside of a FB to get info on the instance.
CODESYS Forge
talk
(Post)
I experienced the same problem: using __VARINFO is working only in PRG context, while it crashes if used inside Function Blocks. I would really appreciate if they would fix this issue
Last updated: 2025-12-04
Post by mawaloc on KeyPad Function in Visualization to fill a table
CODESYS Forge
talk
(Post)
THANK you !!! I finally find ou... may be not with same thing " use template" , so will looks your way of doing, maybe it's more properly done anyhow thank you
Last updated: 2 days ago
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 manuknecht on Opening a Dialog on a specific Client from ST
CODESYS Forge
talk
(Post)
I managed to find a solution that seems to work reliably. As the VU.Globals.CurrentClient-filter accesses the CURRENTCLIENTID or at least a similar, internal variable it can only be used if called from a certain client (e.g. from a button in a visualization). My solution works by implementing a new client filter that compares the client ID of all clients to the ID of the last client that was used. The variable containing the data of the last client is defined as: G_LastClient : VU.IVisualizationClient; // Copy of last client that detected click This last client is then updated every time a button is pressed using the Execute ST-Code input configuration of the button: G_LastClient := VU.PublicVariables.Clients.Current; Next, I created a function block that implements the client filter interface as so: FUNCTION_BLOCK FB_LastClientFilter IMPLEMENTS VU.IVisualizationClientFilter VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR Then i added a method to the FB called IsAccepted which is used to filter out the client. When creating the method, it should automatically be filled with the according variable declaration, as it is defined in the interface: (* For every client can be desided, if it is accepted. ``TRUE``: Client is accepted*) METHOD IsAccepted : BOOL VAR_INPUT (* The client, to check*) itfClient : VU.IVisualizationClient; END_VAR Now the client can be compared to the last used client as such: // check if clientID corresponds to clientID of last recorderd client IF itfCLient.ClientId = G_LastClient.ClientId THEN IsAccepted := TRUE; ELSE IsAccepted := FALSE; END_IF To make use of this custom client filter, initialize a variable with the client filter: LastClient : FB_LastClientFilter; // Client filter to find last used client Then use this client filter when opening or closing a dialog from ST: fbOpenMyDialog(itfClientFilter:=LastClient,xExecute:=TRUE,sDialogName:='VIS_MyDialog_DLG');
Last updated: 2023-09-27
Post by maldus512 on How to adapt Codesys Control SL to custom board
CODESYS Forge
talk
(Post)
Hello everyone, I have been given the task to develop I/O drivers for a custom made, Linux based board to allow for Codesys applications to run and control the hardware. I have successfully installed Codesys Control SL for ARM/Linux and tested it with a simple demo application. Now I should start interfacing the runtime to the actual hardware; I should be able to interact with 2 RS485 serial ports, a few GPIOs and an I2C port, all of which already have the corresponding /dev/ interface in the Linux system. I am having trouble understanding how it should be approached. I have found sporadic references that fail to lead to a really comprehensive documentation. For example: The store page (https://store.codesys.com/en/codesys-control-for-linux-arm-sl-1.html#options) mentions a "runtime package" that should allow "Integration of existing C code" and "Usage of local I/Os", which seems exactly what I need to interact with custom peripherals. I have found no further reference to Codesys-C interpop. The Codesys Help page for the runtime package has a page on the "Development of Drivers" (https://content.helpme-codesys.com/en/CODESYS%20Control/rtsllinuxrbpdriverdevelopment.html) that suggests to either "Implement a function block" or "Implement I/O drivers". Those in turn lead to this page (https://forge.codesys.com/drv/io-drivers/doc/Generic/) which describes briefly an XML schema to describe new devices; unfortunately, it doesn't mention what to do with such a description (i.e. how does the runtime know about it) or how it is in any way connected to the actual hardware. Could anyone give me some pointers? I should also mention I have no prior experience with Codesys, so maybe I'm missing an obvious answer.
Last updated: 2024-08-09
Post by otbeka on CAA File Handling: "Read only" error
CODESYS Forge
talk
(Post)
Hi, On CODESYS V3.5.19.50 I am using the latest 3S File Access library (CAA File & CAA Types) to save and retrieve configuration data from the User Data section of an SD card, via file called config.txt. The application reads the file to memory once upon initialisation, and then the only other operation is overwriting the file with the updated configuration whenever the user changes the settings. An issue is ocurring, seemingly randomly, where the config.txt file, and all surrounding directories, cannot be written to by the unit, returning a READ_ONLY_CAA error upon file open. This sometimes does not clear even after power-cycling the PLC several times, yet checking the file permissions with ls -l shows normal read, write, and execute access. I am wondering if this is caused by the PLC itself or by an issue in my application. I have included my CAA File handler function block (SD_Card_Bin(FB).txt) and any associated types/calls below: TYPE ConfigData : STRUCT Config : ARRAY[0..256] OF STRING(64); NumberOfStrings : UDINT; END_STRUCT END_TYPE TYPE Buffer : STRUCT Data : ARRAY[0..SIZEOF(ConfigData)] OF BYTE; DataLength : UDINT; END_STRUCT END_TYPE A case within my MAIN PRG: mode.WriteConfigDataToFile: VisuElems.CURRENTVISU := 'Screen_Write'; IF xModeHasChanged THEN iErrorCount := 0; iRoute := 0; END_IF CASE iRoute OF 0: inBuffer := ConfigData_To_Buffer(GVL.UnitData); xConfigError := FALSE; xDataConfigured := FALSE; iRoute := 1; 1 : //Read Data from Card SD_Card_Bin.strFileName :=FileName; SD_Card_Bin.iFileOperation := 2; SD_Card_Bin(xExecute :=TRUE, WriteBuffer := inBuffer, xDone =>xDataConfigured, xError=>xConfigError, strErrorCodes=>strError); IF xDataConfigured THEN SD_Card_Bin(xExecute :=FALSE); IF xConfigError THEN iRoute := 32767; ELSE iRoute :=100; END_IF END_IF 100: // The end bCurMode := mode.DisplayProcessVariables; 32767: // Config error iErrorCount := iErrorCount + 1; IF iErrorCount > 2 THEN // Repeats 3 times, if no progress abandons and returns error bCurMode := mode.WriteError; ELSE iRoute := 0; // Try again END_IF END_CASE I'd like to rule out my application as the cause of this bug - help via comments or criticism would be greatly appreciated.
Last updated: 2025-03-19
Post by nico-hefr on Python script command for "Access Control"
CODESYS Forge
talk
(Post)
Hi everyone, I use Python Script to generate some POU in Codesys V3.5 SP19 and I would like to limit the "Access Control" to them thanks to the Python command. Is there any commands that allow to edit the "Properties... >> Access Control" of the POU? The other possibility is to set the permissions with "Project >> User Management >> Permissions... >> Project objects >> Modify >> ... >> myPOU", but I did not find the related Python commands. Otherwise, is there a global setting that allows to set the permissions by default? For example, Modify = Denied for everyone user by default. Thank you in advance for your help, Nico
Last updated: 2024-07-18
Post by gatto on CAA File open Problems
CODESYS Forge
talk
(Post)
Ciao, here same question https://forge.codesys.com/forge/talk/Engineering/thread/2538729618/ in this post https://forge.codesys.com/forge/talk/Engineering/thread/4586a90290/?limit=25#d531 i find : keep in mind that all files which are generated / or read should be exist in the iecfilepath this means: for Windows (Control Win as example) c:\ProgramData\CODESYS\CODESYSControlWinV3x64\268E8ADF\PlcLogic for Linux /var/opt/codesys/PlcLogic I never use codesys on windows but im sure on linux we can manipulate file only inside /var/opt/codesys/Plc Logic. Or you need to modify the file codesyscontrol.cfg for change path permission, but this is another history Buone feste !
Last updated: 2024-12-21
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.