Post by janber0206 on Adding PLC to the List view resolves in Unknown Error
CODESYS Forge
talk
(Post)
Hello, I try to add one of my PLC from the Gateways to the List view. The Gateway is shown me as online, also i have other remote tools to verify the Internet connection is working. I do the Network Scan and the Gateway shows up, i select it and click on "Add to Server". Then I type in Username and password and click on confirm. There it shows me the "Unkown Error", see screenshot. If I use the wrong credentials it gives me the error message for this. Other Devices work fine it's just this one. Greetings Jannis
Last updated: 2025-02-21
Post by rshabsh on Using Latch Variable in Alarm as input from text list
CODESYS Forge
talk
(Post)
I am currently utilizing Alarm Manager’s Latch Variable 1 to display additional information related to alarms. However, instead of mapping this latch variable to a fixed PLC variable, I would like to dynamically update its text content based on the selected language in the system. To achieve this, I am considering using a text list that corresponds to different languages rather than directly linking Latch Variable 1 to a PLC variable. This approach would allow the displayed alarm information to be automatically translated according to the active language setting. Could you please confirm if this method is feasible within the Alarm Manager configuration? Additionally, if there are specific steps or best practices to follow when implementing this functionality, I would appreciate any guidance you can provide. Looking forward to your insights.
Last updated: 2025-02-26
Post by clarenced on Multiple applications on one device sharing variables.
CODESYS Forge
talk
(Post)
I got this working using OPC UA. In the logic application I just added a Symbol Configuration. In the HMI application I added a Data Sources Manager and OPC UA Data Source. The one thing I don't like is the way the tags end up being named in the HMI application. In the logic application I have a program named PLC_PRG. It has a variable named testDINT. In the logic application the name I get for this variable is DeviceSet.CODESYS_Control_Win_V3_x64.Resources.Logic.Programs.PLC_PRG.testDINT. This is very long and looks like it could change if I used this on a different device type. Any ideas how I could get this name shortened down to just PLC_PRG.testDINT like it is on the Logic application?
Last updated: 2025-03-06
Post by clarenced on Multiple applications on one device sharing variables.
CODESYS Forge
talk
(Post)
I got this working using OPC UA. In the logic application I just added a Symbol Configuration. In the HMI application I added a Data Sources Manager and OPC UA Data Source. The one thing I don't like is the way the tags end up being named in the HMI application. In the logic application I have a program named PLC_PRG. It has a variable named testDINT. In the HMI application the name I get for this variable is DeviceSet.CODESYS_Control_Win_V3_x64.Resources.Logic.Programs.PLC_PRG.testDINT. This is very long and looks like it could change if I used this on a different device type. Any ideas how I could get this name shortened down to just PLC_PRG.testDINT like it is on the Logic application?
Last updated: 2025-03-06
Post by felipemsgarcia on Axis EtherCAT address
CODESYS Forge
talk
(Post)
Hello, Thank you for your answer. I'm afraid I was not clear on what I was trying to achieve. I'm trying to change parameters and command axes from inside a function block and the first thing that came to my mind was pass both the EtherCAT slave and axis to the function block (as image attached). But, I believe it's worse than just pass directly the EtherCAT slave address to the function block (is it???). However I was wondering if there was a way to get the EtherCAT address directly from the axis, so I don't need to pass the EtherCAT slave nor the EtherCAT address to the function block. Thank you again!
Last updated: 2025-03-07
Post by hemuv on Dialog Open
CODESYS Forge
talk
(Post)
I'm programming an HMI for a machine. I want to log all the parameter's changes (used text field for displaying and changing) for particular User levels. Created a Numpad and want to log oldvalue and Newvalue on 'ok' Button press. To retrieve the oldvalue, i check if the dialogue opened is my Numpad, Then I retrieve the dialogue interface via GetDialogInterface(ADR(myNumpad)) --> numpadData.stVariableValue which contain my oldvalue and save it locally. Problem is sometimes i retrieve the data and sometimes not. Also observed when Numpad Dialogue is Opened, VisuDlgUtil_IsDialogOpen returns False in some cycles.Attached you will find my Project. please let me know what went wrong or if there is a better approach to collect old and New Value of a textfield. Thank you.
Last updated: 2025-03-26
Post by bjarne-pagaard on Global Variables
CODESYS Forge
talk
(Post)
Old thread, I know - but it still has good answers. I would like to add a bit of info to it, as I was having a problem that lead me to this thread, but didn't give an exact answer. I am porting a project to a different PLC architecture. (Wago PFC300) A GVL named 'GVL' in the POUs section of my project was shadowed by a PLC-specific library in the Application->Library Manager. So all the existing references in the device specific code to 'GVL.something' would not resolve. Right-clicking the GVL in the code and 'Go to definition' would point me to the library in the Application Library Manager. All I had to do from there, was right-click the library, and set the property 'Only allow qualified access to all identifiers' in the library.
Last updated: 2025-04-11
Post by andrej on Creating, using an external Function.
CODESYS Forge
talk
(Post)
Hello all, I would like to create a simple which runs directly on Control WinV3 x64 3.5.21.0 For this purpose I created a simple dll myAdder.dll in Cpp // MyAdder.cpp // cl /LD /EHsc MyAdder.cpp /Fe:MyAdder.dll #include <windows.h> extern "C" __declspec(dllexport) int __cdecl CmpMyAdder_Add(int a, int b) { return a + b; } I added the dll in the respective folder. Furthermore I "registred" the dll in the CODESYSControl.cfg. However, when I want to use the library I get the error message: Uresolved reference: *'CMPMYADDERADD' * Can you give me a hint what step I missed or where I need to declare the dll, such that the dll resp. the reference can be resolved. Many thanks and kind regards
Last updated: 2025-04-18
Post by otbeka on CAA File Handling: "Read only" error
CODESYS Forge
talk
(Post)
Hi, sorry for the late reply. After some investigation, the read-only error was being triggered by a FAT-fs filesystem panic on the kernel end, probably caused by unfinished write/reads causing corruption. I found this thread https://forge.codesys.com/forge/talk/Engineering/thread/e637d252b7/ which seems to give a solution of using SysProcess to send the 'sync' command to the console immediately following a write to prevent issues if power is lost or, in my case, if the unit is harshly power cycled. Indeed this seems to resolve the issue bar the worst possible edge cases.
Last updated: 2025-05-02
Post by berebri on TLS Verschlüsselung mit MQTT - Validate CA
CODESYS Forge
talk
(Post)
Sorry - I should have posted this in the German-Froum... Hallo zusammen, ich bin dabei mit MQTT_Client_SL eine verschlüsselte Verbindung zu einem MQTT-Broker (mosquitto) aufzubauen. Das funktioniert auch. Jetzt möchte ich das Zertifikat vom Broker verifizieren, ähnlich wie das auch bei dem Programm "MQTT Explorer" möglich ist (dort funktioniert es). D.h. ich möchte das über das Zertifikat der CA verifizieren, dass ich mit dem Client verbunden bin. Kann mir da jemand Hilfe geben was ich dazu machen muss? Ich vermute mal, dass ich dazu NBS.TLSContext verwenden muss und habe dazu auch einiges gelesen, konnte es aber bei mir nicht ans Laufen bringen. Wie bringe ich dem Client bei, über NBS.TLSContext das richtige CA-Zertifikat für die Verifikation zu verwenden? Kann mir da jemand bitte helfen? Dankeschön :-)
Last updated: 2025-06-16
Post by berebri on TLS-Verschlüsselung bei MQTT-Client - CA Zertifikat prüfen
CODESYS Forge
talk
(Post)
Hallo zusammen, ich bin dabei mit MQTT_Client_SL eine verschlüsselte Verbindung zu einem MQTT-Broker (mosquitto) aufzubauen. Das funktioniert auch. Jetzt möchte ich das Zertifikat vom Broker verifizieren, ähnlich wie das auch bei dem Programm "MQTT Explorer" möglich ist (dort funktioniert es). D.h. ich möchte das über das Zertifikat der CA verifizieren, dass ich mit dem Client verbunden bin. Kann mir da jemand Hilfe geben was ich dazu machen muss? Ich vermute mal, dass ich dazu NBS.TLSContext verwenden muss und habe dazu auch einiges gelesen, konnte es aber bei mir nicht ans Laufen bringen. Wie bringe ich dem Client bei, über NBS.TLSContext das richtige CA-Zertifikat für die Verifikation zu verwenden? Kann mir da jemand bitte helfen? Dankeschön :-)
Last updated: 2025-06-16
Post by rafa on MODBUS TCP SERVER DONT AUTO-STARTUP
CODESYS Forge
talk
(Post)
Dear all, I have a project where I have two ModbusTCP communication drivers in the application. It's working normally until a power outage or the installation panel is restarted. As soon as the PLC CPU is restarted, the Ethernet port is OK, but the TCP Server displays an "UNDEFINED" error. I can't reset the error using the diagnostic confirmation or the "mbserver.xConfirmError" bit. I noticed that the error only appears in the "mbserver.byModbusError" memory and the description is "UNDEFINED." The "mbserver.xError" memory doesn't flag an error. When using the warm restart function and then START CPU, the devices return to normal operation. The following demonstration images; The main question is: How can I make devices boot automatically?
Last updated: 2025-07-15
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 andrej on Signing of Boot Application for Raspberry Pi
CODESYS Forge
talk
(Post)
Hello all, I would like to sign my boot application for my Raspberry PI. I generated the X509 Certificate and loaded it to the raspberry. It is successfully displayed as trusted certificate. However, I cannot download and start the Application to the Rasperry, due to a signature mismatch.The error message is rather clear, but I still don’t see how I can fix the issue, since the certificates on the Controller seem to mach the certificate in the user profile. Could you tell me where the error is or which step I am missing. Many thanks and kind regards Andreas
Last updated: 2025-07-17
Post by andrej on Signing of Boot Application for Raspberry Pi
CODESYS Forge
talk
(Post)
Hello all, I would like to sign my boot application for my Raspberry PI. I generated the X509 Certificate and loaded it to the raspberry. It is successfully displayed as trusted certificate. However, I cannot download and start the Application to the Rasperry, due to a signature mismatch.The error message is rather clear, but I still don’t see how I can fix the issue, since the certificates on the Controller seem to mach the certificate in the user profile. Could you tell me where the error is or which step I am missing. Many thanks and kind regards Andreas
Last updated: 2025-07-17
Post by andrej on Signing of Boot Application for Raspberry Pi
CODESYS Forge
talk
(Post)
Hello all, I would like to sign my boot application for my Raspberry PI. I generated the X509 Certificate and loaded it to the raspberry. It is successfully displayed as trusted certificate. However, I cannot download and start the Application to the Rasperry, due to a signature mismatch.The error message is rather clear, but I still don’t see how I can fix the issue, since the certificates on the Controller seem to mach the certificate in the user profile. Could you tell me where the error is or which step I am missing. Many thanks and kind regards Andreas
Last updated: 2025-07-17
Post by timvh on control loop library IIR filter
CODESYS Forge
talk
(Post)
In the Control Loop Library package are multiple example projects, including one for the filters. Program containing: GVL.filterIIR( xEnable:= GVL.xEnableFilter, lrValue:= GVL.lrYOriginal, lrFilteredValue=> GVL.lrOutputIIR); GVL.filterFIR( xEnable:= GVL.xEnableFilter, lrValue:= GVL.lrYOriginal, lrFilteredValue=> GVL.lrOutputFIR); GVL.filterSOS( xEnable:= GVL.xEnableFilter, lrValue:= GVL.lrYOriginal, lrFilteredValue=> GVL.lrOutputSOS); GVL containing aCoefficientsA_IIR : ARRAY[0.. 4] OF LREAL := [1,-2.3695130071820376,2.31398841441588,-1.0546654058785676,0.18737949236818494]; aCoefficientsB_IIR : ARRAY[0.. 4] OF LREAL := [0.0048243433577162282,0.019297373430864913,0.028946060146297369,0.019297373430864913,0.0048243433577162282]; filterIIR : Ctrl.Filter_IIR := (palrCoefficientsA:= ADR(GVL.aCoefficientsA_IIR), udiSizeCoefficientsA:= SIZEOF(GVL.aCoefficientsA_IIR), palrCoefficientsB:= ADR(GVL.aCoefficientsB_IIR), udiSizeCoefficientsB:= SIZEOF(GVL.aCoefficientsB_IIR)); aCoefficientsB_FIR : ARRAY[0.. 5] OF LREAL := [0.01982722552692669,0.1325131219866022,0.34765965248647102,0.34765965248647107,0.13251312198660226,0.019827225526926694]; filterFIR : Ctrl.Filter_FIR := (palrCoefficientsB:= ADR(GVL.aCoefficientsB_FIR), udiSizeCoefficientsB:= SIZEOF(GVL.aCoefficientsB_FIR)); aCoefficientMatrix_SOS : ARRAY[0.. 1] OF Ctrl.FilterCoefficients_SOS := [(b0:= 1, b1:= 2, b2:= 1, a0:= 1, a1:= -1.048599576362609, a2:= 0.2961403575616683), (b0:= 1, b1:= 2, b2:= 1, a0:= 1, a1:= -1.320913430819428, a2:= 0.6327387928852787)]; lrG : LREAL := 0.004824343357716228; filterSOS : Ctrl.Filter_SOS := (paCoefficientMatrix:= ADR(GVL.aCoefficientMatrix_SOS), udiSizeCoefficientMatrix:= SIZEOF(GVL.aCoefficientMatrix_SOS), lrGain:= GVL.lrG); lrX : LREAL; lrYOriginal : LREAL; lrOutputFIR : LREAL; lrOutputIIR : LREAL; lrOutputSOS : LREAL; xEnableFilter : BOOL := TRUE;
Last updated: 2025-08-01
Post by dkugler on Webvisu Combined Authentication
CODESYS Forge
talk
(Post)
you are able to do this all in one screen. It is possible to set the rights of every element to visible but not editable for the user "none". so everyone is able to see this elements, but can't do any changes. At the login button you set the rights to editable for the user "none" to be able to go to the login. Every element that should be hidden before logging in, set the rights visible and editable only for "higher" users. Hint: to change rights you are able to select more then one element and edit rights for all at the same time. Saves a lot of time! Good luck!
Last updated: 2025-09-03
Post by blitz on Arcs intersection
CODESYS Forge
talk
(Post)
Does anyone have an idea how to run such a spiral on CNC smoothly without stops? SMC_SmoothPath and SMC_RoundPath don’t help. In general according to the documentation they should work on arcs but in the example only straight lines are shown and I get the impression these functions only work for straight lines. N005 G51 D15 N010 G01 X120.00 Y120.72 F100 N020 G03 X110.00 Y130.72 I-10.00 J0.00 F100 N030 G03 X100.00 Y120.72 I0.00 J-10.00 F100 N040 G03 X140.00 Y120.72 I20.00 J0.00 F100 N050 G01 X140.00 Y120.72 F100 N060 G03 X80.00 Y120.72 I-30.00 J1.67 F100 N070 G01 X80.00 Y120.72 F100 N080 G03 X160.00 Y120.72 I40.00 J-1.25 F100 N090 G01 X160.00 Y120.72 F100 N100 G03 X50.00 Y120.72 I-55.00 J-5.00 F100 N110 G01 X50.00 Y120.72 F100 N120 G03 X190.00 Y120.72 I70.00 J-0.71 F100 N125 G50 N130 M30
Last updated: 2025-09-23
Post by reinholdgaylord on CAA File Handling: "Read only" error
CODESYS Forge
talk
(Post)
Hi, sorry for the late reply. After some investigation, the read-only error was being triggered by a FAT-fs filesystem panic on the kernel end, probably caused by unfinished write/reads causing corruption. I found this thread https://forge.codesys.com/forge/talk/Engineering/thread/e637d252b7/geometry dash lite which seems to give a solution of using SysProcess to send the 'sync' command to the console immediately following a write to prevent issues if power is lost or, in my case, if the unit is harshly power cycled. Indeed this seems to resolve the issue bar the worst possible edge cases. Thank you so much!
Last updated: 2025-09-25
Post by pernockham on *Exception* Async service: ServiceGroup=17, IP=0x5fa45617, Component=CmpSrv
CODESYS Forge
talk
(Post)
*** The system may be in an inconsistent state, please reboot *** *Exception* Async service: ServiceGroup=17, IP=0x5fa45617, Component=CmpSrv Every time at the instant that I Login to the system a message that the "system may be in an inconsistent state, please reboot" is written in the log. If I logout and repeat login a new entry is set. My system is a "Control for linux SL" running on a debian linux host. Im running it on my desk without any IO attached so message might be caused from that, but I doubt i have seen it before. Rebooting makes no difference. Anyone that have a clue of how I should interpret this error message?
Last updated: 2025-09-26
Post by caliberbishop on Having trouble using the Web Client SL library
CODESYS Forge
talk
(Post)
Hello, I'm trying to use the Web Client SL library, I installed it in the IDE (did not purchase a license yet, as this is still a proof of concept so demo mode is good enough) and added it to the library manager. However, when trying to define a FB of the type WebClient I get a "Identifier 'WebClient' not defined" error message, setting the type to Web_Client_SL.WebClient did not work as well. Opening the example project the FBs defined there give the same error message. From the problem in the example project I deduce this is not a syntax problem, so maybe a license problem, but there should be a working demo mode, so what am I missing? IDE v 3.5.21.30 Library v 1.12.0.0 Thanks
Last updated: 2025-10-04
Post by manuknecht on Using SMC_MOVTYP.INITPOS without specifying the start position
CODESYS Forge
talk
(Post)
I am using the object SMC_GEOINFO to generate a trajectory and move a system accordingly using the SMC_INTERPOLATOR function block similar to the sample project CNC10_DynamicPath.project. According to the documentation, the movement type INITPOS does not require a start position in the SMC_GEOINFO object, which is confirmed in the documentation of the SMC_GEOINFO object. When using the movement type INITPOS however, the motion will still start from the starting point defined in the SMC_GEOINFO object (0,0,0 if not specified otherwise). Does someone know how to resolve this or is there an example project that makes use of the INITPOS movement type without specifying the starting point? Thanks in advance!
Last updated: 2023-12-15
Post by sawicpx on CANbus Remapping PDOs During Runtime
CODESYS Forge
talk
(Post)
Hello, I am working on an application where I need to remap PDOs to a different CANopen object during runtime depending on what value is at a specific register. I have gotten to the point where I put the device into Preoperational State using the CIA405.NMT function. I then reconfigure the PDO 180x and 1a0x obejcts usings SDOs to point to a new canopen object on the device however when I go to restart the Device from PREOP to OP using the CIA405.NMT function the device is reset back to the original configuration as per the initial setup. I am wondering is there any way to change the PDOs at runtime is there some more functionaility I can access to do this. Any direction is appreciated!
Last updated: 2023-12-22
Post by macros8 on Translation - How to get text as reference in Frames translated?
CODESYS Forge
talk
(Post)
Hi, thanks for the link. Maybe I create elements in incorrect way. I always use Interface Editor to create variables which are used inside element (see pics). After that I place element in my visu and use Reference property to link variable or set the value. In that case the value of string is not transferred to general text list for translation as I mentioned before. Do I have to all properties which influence behavior of my element create in Frame configuration instead? What´s the difference to the Interface editor? Thanks a lot. M.
Last updated: 2024-01-02
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.