Post by timvh on No source code available for this object
CODESYS Forge
talk
(Post)
The message means that you (CODESYS) tries to open the function block, but this is not possible because the library which contains the FB is compiled. You either get this when you try to manually open the function block (while editing the application), but it could also happen that an exception occurs in the running application and CODESYS tries to show the location where it occured. If it happened in an FB of the compiled library, it cannot show this and you could get this message too.
Last updated: 2024-07-16
Post by bruno-roth on Read "Homed" status from EtherCAT drive
CODESYS Forge
talk
(Post)
Hello, the information if your axis is already homed you could only find out direct from your Slave. In DS402 status there is no Bit defined. But some manufacturer of Drives use some optional bits or status. E.g. if you have Schneider Electric LXM32 Servo you will find this information in Bit 15. You have to check the manual of your used Servo-Drive f this information is provided in any object and then read it out with SDO.
Last updated: 2025-01-08
Post by dogulas on Removing a symbol from the IEC Symbols Editor grid
CODESYS Forge
talk
(Post)
Right now when I make a change to one of the tags in my code, I have to completely remove the IEC Symbol Publishing object from the tree view and re-add it. Then I have to completely re-add every symbol to the grid view by dragging them over. This can be a lot. Surely, this is not the intended behavior. Can anyone tell me how this is supposed to work?
Last updated: 2025-02-11
Post by pistola on How to change font and font color rectangle/or related object
CODESYS Forge
talk
(Post)
Here is the help sections for visual elements rectangle. https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_elem_rectangle.html Under "Font Variable" there is "Color" which is a Dword, you can make a variable that changes colour within your code to the color needed. Note the format for the Dword variable is: colorVariable := 16#TTRRGGBB Where: TT = Transparency 00-FF RE = Red 00-FF GG = Green 00-FF BB = Blue 00-FF https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_animate_color.html
Last updated: 2025-03-17
Post by jzhvymetal77 on Special Chars in Visualizationfor QR code string
CODESYS Forge
talk
(Post)
In Visualization, is there any way to make special characters in a string display properly in a Text object? I wrote a function block to create QR codes at runtime. My code uses “$DB,” which in ASCII should render as a solid block. The code works, but to display it in Visualization I had to create multiple rectangles with visibility bound to a BOOL array. That works, but since each BOOL must be exposed as a separate variable, it consumes most of the available monitoring resources. See Attached image.
Last updated: 2025-09-29
Post by jzhvymetal77 on Special Chars in Visualizationfor QR code string
CODESYS Forge
talk
(Post)
In Visualization, is there any way to make special characters in a string display properly in a Text object? I wrote a function block to create QR codes at runtime. My code uses “$DB,” which in ASCII should render as a solid block. The code works, but to display it in Visualization I had to create multiple rectangles with visibility bound to a BOOL array. That works, but since each BOOL must be exposed as a separate variable, it consumes most of the available monitoring resources. See Attached image.
Last updated: 2025-09-29
Post by tk096 on SMC_Interpolator + SMC_controAxislbyPos
CODESYS Forge
talk
(Post)
Hi, you can define a start position for your GCode. How the start position can be defined depends on the CompileMode: For File and SMC_CNC_REF: Set the start position input of SMC_NCInterpreter (https://content.helpme-codesys.com/en/libs/SM3_CNC/Current/SM_CNC_POUs/NC2/Interpreter/SMC_NCInterpreter.html) For SMC_OutQueue: * Right-click on the CNC object in the project tree * Select Properties * Select the tab 'CNC' * Set the start position Concerning your second question: If the new set position cannot be reached with the given velocity limit (AXIS_REF_SM3.fSWMaxVelocity), SMC_controlAxisByPos will report bStopIpo and close the 'gap' with the given gap dynamics (SMC_controlAxisByPos.fGap*).
Last updated: 2024-02-07
Post by otdeveloper on IEC 61499
CODESYS Forge
talk
(Post)
It is being worked on by many companies and its even-driven function blocks seem like a natural evolution of the object oriented industrial programming I have seen Gary Pratt (author of the Book of CODESYS and much more) so expertly implement and explain. I would expect CODESYS to have this front and center on their sights and, if they do not, I would be very interested in learning why.
Last updated: 2024-02-09
Post by amy123 on Alarm Manager Project Doesn't Open Successfully
CODESYS Forge
talk
(Post)
Hello, when I download AlarmManager.project from https://forge.codesys.com/prj/codesys-example/alarm-manager/home/Home/, it gives an error when I open it. If I ignore the warning and continue to open, the alarms are missing. ** Exception Text ** System.ArgumentNullException: Value cannot be null. Parameter name: first at _3S.CoDeSys.ControlsContrib.Utilities.WeakMulticastDelegate.Invoke(Object[] args) at _3S.CoDeSys.ControlsContrib.Controls.WizardControl.OnFinishClick(EventArgs e) at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Last updated: 2024-04-04
Post by herbasso88 on WebVisu flickering
CODESYS Forge
talk
(Post)
Good morning, I'm new on Codesys Forge, so I'm not sure if this is the right place to talk about my problem. When I open my WebVisu pages with Microsoft Edge, or Chrome, the background and also some rectangles blinking without reason!!! The application is developed with Codesys 3.5.17.10 and run on Codesys HMI, same version (3.5.17.10). After several experiments I discover that the problem happens when I made dynamic the "End of area" property of a meter object, but I can't understand why this blinking problem happens. Also, the problem is only at the WebVisu page, the "normal" VISU pages (the ones opened when Codesys HMI start) work always perfectly. Another strange thing is that the problem happens only if on the same page, where there is the meter object, there is also a trend object!?!? Codesys HMI is running on a Virtual Machine (VMware Workstation 15 player, v.15.5.6) running Windows 10 Pro N 64-bit. The blinking problem happen also if I convert the project to Codesys 3.5.20.0. This version of Codesys and Codesys HMI are installed on a Virtual Machine running Windows Server 2019 Standard 64-bit. In attachment the archive of my project. The attached project has only one page, if "Enable Counter" is not pressed the "End of area" variable of the meter is not updated in the software, and everything work well, normal VISU and WebVisu; if "Enable Counter" is pressed, the "End of area" variable of the meter is updated in the software, and the WebVisu page start blinking. I tried also to enable the "Support client animations and overlay..." property at VisualizationManager, this seems stop the blinking problem, but that property also destroy my WebPage, moving almost all the graphical object, that also seem not working anymore. I really need help to understand what I'm doing wrong, I have to develop a bigger project and I have to understand if trend objects and animated meters cannot stay in the same page. In the final project the WebVisu will be very important because the customer will use this way to access the application to monitor the process. Regards
Last updated: 2024-05-06
Post by yannickasselin on How to sort JSON object in codesys
CODESYS Forge
talk
(Post)
Just adding: sSubscriberdata := ''; Right before your memcopy should fix the extra characters. It is because your are copying 36 characters into a string which can contain more than 36 characters and there is garbage left in the extra characters. Regarding the parsing of json, I usually build a structure that mirrors the json data and use the available methods in the IIoT library to parse the data and fill the structure.
Last updated: 2024-05-08
Post by corriibme on Setting array values with JSON Utilities SL
CODESYS Forge
talk
(Post)
It turns out that you can build JSON structures without ever calling the JSONBuilder function block directly. Instead, create a pointer to JSON.JSONData and invoke the necessary methods on its dereference. The parent object has a parent index of -1 (and an index of 0). EVERY other item (including keys, values, empty arrays and sub-objects) created by the setX methods needs the index to increase by 1. Then use the JSONByteArrayWriter FB to generate your JSON string
Last updated: 2024-05-23
Post by swe-hob on call of a method of a function block in another program
CODESYS Forge
talk
(Post)
Hi, Let's assume following: PRG_1 fb_1 : fbExample1; fb_1.method_1 do something... PRG_2 fb_2 : fbExample2; fb_2.method_2 if xTest then PRG_1.fb_1.method_1(); end_if; Is there a reason why runtime hangs when I call the method_1 in PRG_1 from a method in PRG_2? Both programs run in the same task. No chance that any other program calls the method. What I practically do there is that in the program PRG_2 I add a structed object into a buffer. In PRG_1 I just process the items in the buffer.
Last updated: 2024-06-03
Post by swe-hob on call of a method of a function block in another program
CODESYS Forge
talk
(Post)
Hi, Let's assume following: PRG_1 fb_1 : fbExample1; fb_1.method_1 do something... PRG_2 fb_2 : fbExample2; fb_2.method_2 if xTest then PRG_1.fb_1.method_1(); end_if; Is there a reason why runtime hangs when I call the method_1 in PRG_1 from a method in PRG_2? Both programs run in the same task. No chance that any other program calls the method. What I practically do there is that in the program PRG_2 I add a structed object into a buffer. In PRG_1 I just process the items in the buffer.
Last updated: 2024-06-03
Post by timvh on KeyPad Function in Visualization to fill a table
CODESYS Forge
talk
(Post)
Create an array of STRING and 1 INT variable, e.g.: asMyString : ARRAY[0..9] OF STRING; iIndex : INT; Then place a "Table" object in the visualization: - link this to the string array variable. - Check the option "Use Template" - Then in the Input Configuration - add the "Write Variable" command Somewhere else add a "Combobox, array" - link this to the same array. - And link the index to the INT variable. In the Combobox, you can then select one of the strings from the array. The index variable will indicate which selection has been made.
Last updated: 2026-01-08
Post by timvh on Get Alarm status in Codesys
CODESYS Forge
talk
(Post)
You are right, that you can use the GetState method, but it is not that simple. You first have to get a list of (filtered) alarms from the AlarmManager. You can find an example in Forge how to do this. See https://forge.codesys.com/prj/codesys-example/alarm-manager/home/Home/ Then you can go through this list to get the state of all the (filtered) alarms. See below the code which you could use. This is all based on the example from forge. Create a program: // This example shows how to access alarms via structured text. PROGRAM PLC_PRG VAR xInit : BOOL := TRUE; udiResult : UDINT; fbAlarmFilterCriteriaAll : FB_AlarmFilterCriteriaAll; fbAlarmManagerClient : FB_AlarmManagerClient; itfAlarmManagerClient : IAlarmManagerClient := fbAlarmManagerClient; xAlarm1 : BOOL; xAlarm2 : BOOL; xWarning : BOOL; iNrOfAlarmsInAlarmList : INT; iNrOfActiveAlarmsInAlarmList : INT; paitfAlarm: POINTER TO ARRAY [0..0] OF AlarmManager.IAlarm; iAlarmIndex : INT; eAlarmState: AlarmManager.AlarmState; END_VAR IF xInit THEN xInit := FALSE; fbAlarmManagerClient.itfAlarmFilterCriteria := fbAlarmFilterCriteriaAll; // register alarm client to get updated about alarm status / changes udiResult := AlarmManager.g_AlarmHandler.RegisterClient(itfAlarmManagerClient, 0, 0); END_IF // Polling the number of alarms udiResult := AlarmManager.g_AlarmHandler.GetActiveAlarms(itfAlarmManagerClient, parritfActiveAlarms => paitfAlarm, iCountActiveAlarms => iNrOfAlarmsInAlarmList); iAlarmIndex := 0; iNrOfActiveAlarmsInAlarmList := 0; WHILE iAlarmIndex < iNrOfAlarmsInAlarmList DO eAlarmState := paitfAlarm^[iAlarmIndex].GetState(); IF eAlarmState = AlarmManager.AlarmState.Active OR eAlarmState = AlarmManager.AlarmState.ActiveAcknowledged THEN iNrOfActiveAlarmsInAlarmList := iNrOfActiveAlarmsInAlarmList + 1; END_IF iAlarmIndex := iAlarmIndex + 1; END_WHILE See below some details about the function blocks: One function block should implement the IAlarmFilterCriteria interface. This can be empty except a few methods. FUNCTION_BLOCK FB_AlarmFilterCriteriaAll IMPLEMENTS AlarmManager.IAlarmFilterCriteria Method implementation (others related to interface are empty) METHOD AreAllAlarmClassesSelected : BOOL AreAllAlarmClassesSelected := TRUE; METHOD AreAllAlarmGroupsSelected : BOOL AreAllAlarmGroupsSelected := TRUE; METHOD GetPriorityFrom : USINT GetPriorityFrom := 0; METHOD GetPriorityTo : USINT GetPriorityTo := 255; The other function block should implement IAlarmManagerClient and get a reference to the FB which implements the IAlarmFilterCriteria FUNCTION_BLOCK FB_AlarmManagerClient IMPLEMENTS AlarmManager.IAlarmManagerClient VAR_INPUT itfAlarmFilterCriteria: AlarmManager.IAlarmFilterCriteria; END_VAR Method implementation (others related to the interface are empty) METHOD GetFilterCriteria : AlarmManager.IAlarmFilterCriteria // see VAR_INPUT for filter GetFilterCriteria := itfAlarmFilterCriteria; Off course you have to add the AlarmManager to your application and add some alarms to it.
Last updated: 2025-09-02
Post by timvh on Specify Input Configuration "OnDialogClosed" Action to only react to certain Dialogs
CODESYS Forge
talk
(Post)
What maybe helps is the Visu Dialog ST demo project: https://store.codesys.com/en/visu-dialog-st.html This has an application IECOpenDialog where dialogs are opened using the VU.FbOpenDialogExtended function blocks. The fbOpenConfigurationDialog call has a reference (interface) to the "close listener" FB of which it's method is automatically called when the dialog is closed. This way you can create specific function blocks for each dialog when it is closed and do what you want with the data that might have been changed.
Last updated: 2023-09-28
Post by smartcoco on Request a dark mode for CODESYS
CODESYS Forge
talk
(Post)
CODESYS IDE is not a modern IDE. Its interface is ugly, its operation is not user-friendly, its functions are lacking, its feedback is slow, and its development is not good enough. In fact, CODESYS is a helpless choice under the current situation. But this situation will not last long. For example, SIMATIC AX is a strong competitor of CODESYS, which is more open and inclusive.
Last updated: 2024-12-03
Post by sebastianrapi on CAN-FD
CODESYS Forge
talk
(Post)
Hallo, ab wann kann Codesys CAN-FD? Sprich, ab welcher Version steht ein CAN-FD Master zur Verfügung? In Q2 2025 soll es bei Beckhoff den EL6753 (EL6753 | EtherCAT-Klemme, 1-Kanal-Kommunikations-Interface, CANopen, Master/Slave) geben. Diesen würde ich gerne verwenden um mit meinem CAN-FD-Slave zu kommunizieren. Und nun stellt sich die Frage, ob dies dann überhaupt mit Codesys schon möglich ist. https://www.beckhoff.com/de-de/produkte/i-o/ethercat-klemmen/el6xxx-kommunikation/el6753.html Grüße Sebastian
Last updated: 2025-01-24
Post by goki on WAGO RS485 (753-652) on a 750-362
CODESYS Forge
talk
(Post)
hi guys Maybe someone can help me in this case. Im working with codesys 3.5 with an PFC200 (750-8212) with a Modbus TCP conection to the 750-362. On the 750-362 i have a 4DO, 8DI and a RS485 interface card. the 4DO and 8DI cards a working fine but im strugling with the rs485 card. Does someone have a example for this?
Last updated: 2024-02-08
Post by nano on Is there any support for I2C on Raspberry Pi?
CODESYS Forge
talk
(Post)
hello jdj this question can be answered well with a pretty good forge documentation: https://forge.codesys.com/drv/io-drivers/doc/Generic/ u r also able to create in codesys directly an iec-code by using the i2c-interface as driver using the codesys ide and st depending on the stepperdriver, used in yöur hat, its possible that an driver is already available in the device-repository. which mcp-device is used on the hat?
Last updated: 2024-03-01
Post by riccardo on Web Browser special tools errors
CODESYS Forge
talk
(Post)
Nano goodmorning and thanks for the reaply, the links I have to manage are links as the following: https://192.168.1.101/u-os-app-codesys/application/visualization/webvisu.htm I saw that with Wikipedia or other web sites the tool works but not the link above. "google and some other providers, prevent from using as iframe and similar injections." The goal I'm pursuing is to display remote graphical user interfaces from a local graphical user interface over a local network. thanks in advance, Riccardo
Last updated: 2024-03-06
Post by niallel on How to change bHiresMode
CODESYS Forge
talk
(Post)
Hi, I'm trying to get Scaling working on my axis. An increment produces 36.6mm of movement, so I want to put the units in application as 36.6. However the docs say that I need to change bHiresMode as it doesn't show me the option for Precision in the User Interface. I'm thinking that I need to change the precision so I can enter decimal places. How can I do this, or is my thinking wrong? Thanks,
Last updated: 2024-03-11
Post by dagsupport on CAA SerialCOM - hCom Reset max value 1023
CODESYS Forge
talk
(Post)
Hi everybody We are currently working on a project with an RS232 serial COM interface and using the CAA SerialCOM library. We have it working fine reading and writing data, although we have found an issue we cannot resolve and any suggestions would be helpful. We have noticed that after a while the RS232 stops working. We have tracked this down to the HANDLE hCom keeps increasing and when this reaches 1023 the COM returns an unknown error "5003". Is there a way to reset this hCom reference? Thanks Richard
Last updated: 2024-03-22
Post by schnepper on Error building Extension SDK Linux code
CODESYS Forge
talk
(Post)
I'm installed the CODESYS Control for Linux SL package and am trying to use the Extension API to call a simple C function. When I get to the step to run "make all" on the Linux machine, I get the error: build interface header: out/CmpFirstTestItf.h from CmpFirstTestItf.m4 ERROR: This functionname does not contain _cext (this is mandatory, see help for details): DEF_API(void',CDECL',external_struct__fb_init',(external_struct_fb_init_struct *p)',1,0x1F77E075,0x00000001) Why does "Generate Runtime System Files" create a function that does not have cext in the name? What am I missing?
Last updated: 2024-04-01
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.