Post by hannibal on Codesys Trend - setting Y axis minimum and maximum as variables - error
CODESYS Forge
talk
(Post)
I am experiencing an issue when trying to define the Y-axis limits in a Trend Graphic using variables. When I set the Minimum and Maximum values as variables, an error is triggered. My goal is to make the Y-axis limits dynamic so they can adjust according to the installation. Both variables are initialized as follows: gP_YMin = -100.0 gP_YMax = 100.0 However, I still get the following error: "The minimum axis value must be less than the maximum axis value" Does anyone have an idea why this is happening or how to resolve it?
Last updated: 2026-03-22
Post by hannibal on Codesys Trend - setting Y axis minimum and maximum as variables - error
CODESYS Forge
talk
(Post)
I am experiencing an issue when trying to define the Y-axis limits in a Trend Graphic using variables. When I set the Minimum and Maximum values as variables, an error is triggered. My goal is to make the Y-axis limits dynamic so they can adjust according to the installation. Both variables are initialized as follows: gP_YMin = -100.0 gP_YMax = 100.0 However, I still get the following error: "The minimum axis value must be less than the maximum axis value" Does anyone have an idea why this is happening or how to resolve it?
Last updated: 2026-03-22
Is it possible to convert a string of 32-bit of binary to a float32?
CODESYS Forge
talk
(Thread)
Is it possible to convert a string of 32-bit of binary to a float32?
Last updated: 2023-03-23
Post by ofey on EtherCAT fieldbus
CODESYS Forge
talk
(Post)
Hi, everyone! I'm trying to set up a PLC controller and a connection to an EtherCAT slave device in Codesys. I want to create a flexible program that I can upload to multiple controllers with different remote IO connected (same program). On one plant i may have 5 AI-cards and 3 DO-cards, and on another I may have 4 AI-cards and 2 DO-cards. For not needing to maintain several different programs wih different devices defined in the program (one for each set up) I thought that using a remote IO would make it easier having a single program. That way I could refer to different memory addresses instead of predefined slots/channels and IO's, that would give me errors if there was a different IO on the plant than what the program expected. When I tried setting up the etherCAT master, I saw that I had to define the etherCAT slave devices with the different IO'cards for me to be able to refer to the memory addresses in a PRG. Exactly what I was trying to avoid. My setup is something like a program that can handle 16 separate pump controls. In a year maybe 6 plans get deployed, and depending on how large the project is, the number of pumps can vary between 4 and 16. And the managers dont want to have IO's for all 16 pumps on every cabinet, and I dont want to maintain 16 separate projects files in case of updates etc. I thought the best way to tackle this was having a single project that read/write data to the different pump IO's by remote IO (fieldbus ethercat) addresses. And the number of pump controls are activated by an external GUI. If pump 1-6 is activated by the GUI, then the PLC-program tries to read/write input/outputs from predefined addresses for the expected IO's. My test setup is a PFC200 WAGO controller and a EtherCAT fieldbus coupler (750-354) with some IO. I hope I didn't explain this too horrible, and if there is a more easy and elegant solution for this challenge I appreciate a feedback on this.
Last updated: 2024-04-08
Post by mondinmr on Why SysPipeWindows is not implemented in RTE?
CODESYS Forge
talk
(Post)
This library would be very useful for IPC communications. Using a UDP socket on localhost is unpredictable, as with slightly loaded machines it does not even guarantee packet delivery locally. Using TCP creates a lot of overhead. Message named pipes would be an excellent solution for Windows RTE. On Linux, since the release of the extension package, there is no issue, as it is sufficient to develop a component. However, although now 90% of our clients understand that Linux runtimes are better in every way compared to Windows RTE, especially from the security aspect (Not in kernel space) and the issues with Windows updates, 10% stubbornly insist (sometimes for trivial commercial reasons) on using Windows. Managing IPC with circular buffers in shared memory is quite ugly, or rather really ugly and unaesthetic. In the manuals, I saw the SysPipeWindows libraries, so I decided to test them, but unfortunately, I noticed that they are not implemented for RTE devices. Technically, I could try to open them as regular files, but SysFileOpen returns 16#27 or 16#39 depending on how I set the name (direction of the slashes). Here is the code to create shared memory and named pipes. Shared memory work great, named pipes no! #ifdef Q_OS_WIN32 SECURITY_ATTRIBUTES sa; SECURITY_DESCRIPTOR sd; InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION); SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = &sd; sa.bInheritHandle = FALSE; const wchar_t* name = L"Global\\ShmTest"; HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(SharedData), name); if (hMapFile == NULL) { qCritical("Error creating shared memory"); return 1; } data = static_cast<SharedData*>(MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(SharedData))); if (data == NULL) { qCritical("Error mapping shared memory"); return 1; } HANDLE hPipe = CreateNamedPipe( TEXT("\\\\.\\pipe\\MyPipe"), PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, 1024 * 1024, 1024 * 1024, NMPWAIT_USE_DEFAULT_WAIT, &sa); if (hPipe == INVALID_HANDLE_VALUE) { qCritical("Error creating named pipe"); return -1; } if (!ConnectNamedPipe(hPipe, NULL)) { qCritical("Error connecting to named pipe"); return -1; } checkPipe(hPipe); #endif
Last updated: 2024-02-02
Post by mozed on Connection to device closed
CODESYS Forge
talk
(Post)
Hello I am using an OpusA3 with version 3.5 SP17 Patch 3 as part of a project. I had no real problem before I encountered a problem that blocked me. The detection of the OpusA3 from Codesys is done correctly. The gateway is well configured and if I ping the gateway or the OpusA3 I receive the response correctly. The problem is that when I try to connect, the Opus screen freezes and a few moments later Codesys displays an error message ("connection to device closed"). I tried to change PC, to update the runtime, to change OpusA3 but the problem remains the same. I'm a little lost knowing that before it worked without problem. I went back to a previous version of the project (where it worked correctly) but the message still appears. Do you have any clues to solve the problem? Sincerely,
Last updated: 2023-08-23
Post by eschwellinger on irq-set piority is not working in plc-shell
CODESYS Forge
talk
(Post)
example: use the following in the plcshell: irq-set-prio eth0 55
Last updated: 2024-01-05
Post by ernesto881124 on ernesto881124
CODESYS Forge
talk
(Post)
Hello good morning everyone I would like to ask a question, is it possible to directly connect a device that only contains modbus RTU communication through an R-45 connector, directly to the PC? Or would you need an intermediate device to achieve communication? It would be of great help to me because I cannot achieve communication between the Codesys simulator plc and a Fuji Frenic mini VFD, please help me if anyone has had the same experience. Thank you so much
Last updated: 2023-09-13
Post by richiemuia on Static Analysis, Loading Files via script.
CODESYS Forge
talk
(Post)
I've seen that you can use cmds like below to run SA from scripts. system.commands["staticanalysis", "run"].execute() But I would like to run different SA configuration files to create separate logs and cant find anywhere in the scripting engine if this is supported. This stems from if I turn on everything, SA stops reporting issues in the message log when the list gets over 600ish issues. Once we have done an initial clean up of code this wont be an issue, but I'm trying to get a baseline to track improvement.
Last updated: 2024-08-21
Post by richiemuia on Static Analysis, Loading Files via script.
CODESYS Forge
talk
(Post)
I've seen that you can use cmds like below to run SA from scripts. system.commands["staticanalysis", "run"].execute() But I would like to run different SA configuration files to create separate logs and cant find anywhere in the scripting engine if this is supported. This stems from if I turn on everything, SA stops reporting issues in the message log when the list gets over 600ish issues. Once we have done an initial clean up of code this wont be an issue, but I'm trying to get a baseline to track improvement.
Last updated: 2024-08-21
Post by william-blandon on RecipeManCommands.ReloadRecipes
CODESYS Forge
talk
(Post)
Hello. I'm trying to use RecipeManCommands.ReloadRecipes Method for getting recipes from files. When I call the method it does not generate any error but also not reload any recipe to the recipe definition. Actually I have 6 recipe files on the directory PlcLogic. The rest of the methods work creating recipes, saving to file, etc. Does any one have the same issue? it is something to be set on the recipe manager?
Last updated: 2024-05-16
Problem of assigning physical addresses to variables of type ARRAY OF ARRAY as MW and QW
CODESYS Forge
talk
(Thread)
Problem of assigning physical addresses to variables of type ARRAY OF ARRAY as MW and QW
Last updated: 2025-03-31
Post by mikek10 on Error IoDrvEthernetIP: Connection Failure. (16#1) How to solve
CODESYS Forge
talk
(Post)
Your connection configuration should look something like the attachment. Consuming assembly O->T will be the hex of the assembly you want to reference for output data - I want 102 (DO Data Only) shown in the Wago web page 102 = 16#66. Producing assembly (T->O) is the assembly you require for input data - again shown in the Wago web page - I want 108 (DI Data Only) or 16#6C Then set the number of bytes as per the data in the Wago web page too (both 2 in my case)
Last updated: 2024-07-22
Post by gseidel on CNC / G01 Speed is very slow (or go-stop motion) in Continuous short segment .
CODESYS Forge
talk
(Post)
Hi k2saki, I would recommend to have a look at SMC_SmoothMerge, followed by SMC_SmoothPath. SmoothMerge will combine the small G1 elements to longer splines, SmoothPath will avoid stops between the splines. https://content.helpme-codesys.com/en/libs/SM3_CNC/Current/SM_CNC_POUs/SoftMotion-CNC/SoftMotion-Function-Blocks/SMC_SmoothMerge.html For SmoothMerge to work, you have to configure a tolerance, i.e. by how much it may deviate from the lines. To graph the output of the interpolator, you can use the trace. (Add a trace object below the application, and add the variables you are interested in to the trace.) Best regards, Georg
Last updated: 2024-04-30
Post by rohan on Child Application Alarm
CODESYS Forge
talk
(Post)
Hi All, I'm trying to develop a multi-application project that allows me to switch between applications. I currently have a parent application and several child applications, as this is the only way for them to share CAN/Ethernet communication. I've noticed that I am only able to create an Alarm Configuration for the parent application. But the children application do not seem to be displaying alarms on the Alarm Table in the visualisation for when an alarm is raised. Does anyone know of a fix, solution or a way around this? I am utilising Codesys v3.5 SP16 Patch 5 64Bit
Last updated: 2024-06-21
Post by ph0010421 on Converting each character to a string into ASCII
CODESYS Forge
talk
(Post)
So the printer wants an ASCII conversion of the hex equivalent of ASCII characters?? They don't make it easy for us
Last updated: 2024-11-11
Post by paro on OPCUA array max length?
CODESYS Forge
talk
(Post)
I think the amount of data is already relatively high and maybe it has something to do with that? Maybe also the CPU load of your device? an array with string(5000)? and have you tested with how many array elements it still works?
Last updated: 2024-02-17
Post by sb879 on Non-formal invocation of function blocks in CODESYS
CODESYS Forge
talk
(Post)
Is it possible to do non-formal invocation of function blocks in CODESYS? I get an error when I try, see the attached pic. Also attached a pic from IEC 61131-3 describing non-formal invocations.
Last updated: 2025-12-04
Post by sb879 on Non-formal invocation of function blocks in CODESYS
CODESYS Forge
talk
(Post)
Is it possible to do non-formal invocation of function blocks in CODESYS? I get an error when I try, see the attached pic. Also attached a pic from IEC 61131-3 describing non-formal invocations.
Last updated: 2025-12-04
Convert Array Of DINT To STRING
CODESYS Forge
talk
(Thread)
Convert Array Of DINT To STRING
Last updated: 2023-12-03
How to get DefaultViewMode of POUs?
CODESYS Forge
talk
(Thread)
How to get DefaultViewMode of POUs?
Last updated: 2015-05-21
Array of pointers to output
CODESYS Forge
talk
(Thread)
Array of pointers to output
Last updated: 2013-05-13
Word to array of byte
CODESYS Forge
talk
(Thread)
Word to array of byte
Last updated: 2022-09-22
Post by sandro66 on Application-based license Modbus Channels
CODESYS Forge
talk
(Post)
Hi Gatto, Using version 3.5.21.xx, it is no longer possible to use Modbus function blocks (I make extensive use of these FBs.)as shown in the example. https://content.helpme-codesys.com/en/CODESYS%20Examples/_ex_modbus_example.html The compiler detects one Modbus instance for each instance of the communication FB block. The example program above, although simple, reports 8 Modbus instances when compiled with the latest version. Codesys Support says that you must use fieldbus I/O mapping, but this will result in the loss of the ability to programmatically modify communication parameters. Sandro
Last updated: 2025-09-04
Post by ranadheer on Add library .dll to project codesys.
CODESYS Forge
talk
(Post)
As of my experience with Demo mode it is not possible to import the .dll file to the platform.
Last updated: 2025-10-15
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.