Post by stuartjr on Disabling forcing of specific variables
CODESYS Forge
talk
(Post)
OK.. so maybe I miss understood for how the forcing order works. It seems that the force list is applied at the beginning of every task call (I'm assuming this based on what I am seeing). If I force my variable FALSE and then write it TRUE in a task, then it stays TRUE for that task, but then in the next task it will go back to FALSE.
Last updated: 2024-03-15
Post by wollvieh on Problem while updating to new runtime 4.11.0.0
CODESYS Forge
talk
(Post)
okay, no ideas. So i made a new fresh image for the raspberry, so far,so good. Licensing the new image was no problem. And, after having trouble while read write files on the raspberry pi, i found the solution for these file operations with the Variable ForceIecFilePath in the CODESYSControl.cfg file. Some people had that issue discussed in that thread : https://forge.codesys.com/forge/talk/Deutsch/thread/d2df08e587/
Last updated: 2024-03-18
Post by superjojo2002 on Licensing info not available.
CODESYS Forge
talk
(Post)
I checked it using the very same docker container version like colleague moon and the command returned root@nt0001c02c5533:/# cmu -x cmu - CodeMeter Universal Support Tool. Version 7.60c of 2023-Aug-09 (Build 5625) for Linux/ARMHF 64-Bit Copyright (C) 2007-2023 by WIBU-SYSTEMS AG. All rights reserved. Result: 0 CmContainer(s) listed. (CodeMeter not running) Please consider that we intend to license a codesys ARM64 SL in a docker container.
Last updated: 2024-03-20
Post by ara32 on CODESYS 4 Linux:
CODESYS Forge
talk
(Post)
Hello! I managed to correctly launch CODESYS Developer Studio 3.5.17, almost all functionality works. The only issue remaining is that when connecting to a device and obtaining its public key, the NCryptEncrypt function is called, which is not fully implemented in the DLL source code, resulting in the connection not being established. Currently, the code of this function in the Wine repository looks like this: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG || flags & NCRYPT_PAD_OAEP_FLAG) { FIXME("No padding and oaep padding not supported\n"); return NTE_NOT_SUPPORTED; } if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } The program crashes due to the NCRYPT_PAD_OAEP_FLAG flag. I'm not proficient in C++, but I attempted to add handling myself, and here's the result: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG) { FIXME("No padding not supported\n"); return NTE_NOT_SUPPORTED; } BCRYPT_OAEP_PADDING_INFO oaepInfo = { 0 }; oaepInfo.pszAlgId = BCRYPT_SHA1_ALGORITHM; NTSTATUS status = BCryptEncrypt(key_object->key.bcrypt_key, input, insize, &oaepInfo, NULL, 0, output, outsize, result, flags); if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } Now, when calling the connection, it crashes with the error "bcrypt:BCryptEncrypt flags 0x4 not implemented." Can anyone help with enhancing this functionality or at least point me in the right direction?
Last updated: 2024-03-22
Post by mimodia1 on I do not have any reedings in RUN MODE from MPU6050........
CODESYS Forge
talk
(Post)
Good morning, mecke96. Exactly the same thing happens to me, although I have not done the part of executing a .py file. It only reads the temperature and the counter, but the other values are zero as in your image "no readings". I have tested the MPU6050 device on an Arduino and it works. Could you tell me if you solved it?
Last updated: 2024-03-29
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 sachem on SysFileGetTime problem
CODESYS Forge
talk
(Post)
Good morning. I'm working with a Weidmuller controller using Codesys. My project use OPC-UA to communicate an application in my pc with the controller. Yesterday, I installed the license of the controller and test it, and the communication works perfect. I use the communication with anonymous login, and works fine. But, hours later, the anonymous login don't work, and the controller only allows connection via OPC with username and password. Someone know why this happend? Thanks
Last updated: 2024-04-09
Post by food on Beaglebone Black OPC-UA Server
CODESYS Forge
talk
(Post)
Man, this was a long time ago. I think the problem probably stemmed from not loading the certificates from the client and the server on the server and client respectively in the correct manner. I believe I ended up getting around it just by removing all security on the server. In the end we did not move forward with that architecture so I never had to actually fix it.
Last updated: 2024-04-10
Post by tib0r on c2iec - translating C to ST
CODESYS Forge
talk
(Post)
I was looking for a transpiler from some more widely used general programming language into ST. It was not easy but I found this :) https://forge.codesys.com/tol/c2iec/home/Home/ Does anybody use it for a programm/library of a couple of hundred lines or more? How does one go about using the output? Is there a “converter” into the Codesys IDE? PLCOpenXML? Would there be interest in this? tib0r
Last updated: 2024-04-20
Post by valenting on Problem with Licenced Software Metrics
CODESYS Forge
talk
(Post)
Hi, When I try to install my codesys program with the new application-based licensing, I have an error "it exceeds the scope of the license agreement. See Device > Licensed Software Metrics" In the Licensed Software Metrics section, I see a code size < 3MB and less than 2700 variables in visualiaztions. I'm using a license "Control Basic L" with "Codesys Visualization L" option, so it should be enough with these metrics. What can I do ?
Last updated: 2024-04-22
Post by hoatran on Use third party actuator with IO-Link Master (IFM)
CODESYS Forge
talk
(Post)
The generic sensor FB is for controlling the sensor via its cyclic input (PDI) and output (PDO). In this case, ifm raw cyclic input and output data are WORDs (16 bits total) The PDO data from the Buerkert unit are SINT (8 bits) In this case, I would use the unpackword fb from the CAA memory library to unpack the valve feed back value into the appropriate location.
Last updated: 2024-04-23
Post by valenting on Problem with Licenced Software Metrics
CODESYS Forge
talk
(Post)
Hi, I tried with another project, using codesys SP20 with the latest visualization installed, I can install the application on my device but it doesn't work I get an exception "invalid license metrics" and the app won't run See attached the metrics in project and allowed by license, and the logs What am I supposed to do ? Everything is in the newest version and the values are lower than allowed and nothing works...
Last updated: 2024-04-26
Post by timvh on Codesys SVN
CODESYS Forge
talk
(Post)
If you use 3.5 SP10, then Git is not supported. SVN will work fine, but with this version you do need a USB key, because software licenses are not supported with this version. Off course you can work without SVN (or Git), but especially if you work with multiple developers on one project, it will save you a lot of time and you can keep track of all changes and improvements much easier. So how much is this worth to you?
Last updated: 2024-04-30
Post by totorovic on Softmotion not working with simulation mode
CODESYS Forge
talk
(Post)
Good morning, I think that the mode Simulation does not support the Softmotion functionnality because it runs the CODESYS process with normal priority wich is not a good thing for real-time behavior. If you want to test your PLC project, please use a Codesys Control Softmotion (and your computer must have the Ethercat driver installed) or much easier, download your code into the C6 Smart. BR
Last updated: 2024-05-13
Post by tomas111 on OPC UA Client API
CODESYS Forge
talk
(Post)
I ran into a problem. Uploaded an example (https://content.helpme-codesys.com/en/CODESYS%20Examples/_ex_uacapi_example.html) After launch. on the emulator. I see that I am having problems: - UaExpert does not connect. There are many servers but no connection. - I can’t transfer the certificate from quarantine to trusted ones. There is some problem with creating the certificate. CS 19.2. If anyone has had similar problems, please give me advice. Thank you.
Last updated: 2024-05-20
Post by s1mon on Two OneWireMaster on one Raspberry PI 5
CODESYS Forge
talk
(Post)
All Sensors from the OneWire Master are assigned already to a seperate task with low prio (26) that runs with 1s cycle time. My EtherCat Task is running with Prio 1. It all works fine, until I adjust the CODESYScontrol.cfg or the CODESYScontrol_Usr.cfg files so that it supports a 2nd OneWire Master in the Codeys Runtime. If I change something in this config file and reboot my EtherCat Master stops working.
Last updated: 2025-10-19
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 We have picked up an issue OSCAT_BASIC.Scale_r function call not working in the old lad and FBD version 4.60. Gives no output on the function call. When we convert this to LAD2 it works. As can be see by the two screenshot in normal LD not working in LAD2 it works. Please confirm if this is an issue with Oscat or with LAD in 3.5.21sp3, is there an workaround. Regards Shaun
Last updated: 2025-10-23
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 We have picked up an issue OSCAT_BASIC.Scale_r function call not working in the old lad and FBD version 4.60. Gives no output on the function call. When we convert this to LAD2 it works. As can be see by the two screenshot in normal LD not working in LAD2 it works. Please confirm if this is an issue with Oscat or with LAD in 3.5.21sp3, is there an workaround. Regards Shaun
Last updated: 2025-10-23
Post by adamrobotic on llcallback() iec exception caught cmpid=0x00000002, eventid=0x00010008
CODESYS Forge
talk
(Post)
Hi All, Recently I have been experiencing a issue in CodeSys SP16 Patch 3, with a exception which comes up after I have made several online changes. callcallback() iec exception caught cmpid=0x00000002, eventid=0x00010008, after I experience this fault then I receive a error message for any subsequent online change "online change failed, no task gap within 10000ms". To recover either the controller needs a orgin reset, which will allow online edits thereafter until falling back into the loop. I am using a TURCK TX707 product which is controlling robot trajectory, We have hard coded the coordinate data rather than using persistence variables so hence the need to do online changes consistently. I have read on the forum other people have experienced similar issue with the online task gap, but I have no task which have same priority and also monitored the CPU usage and have not seen it go above 13%. Anyones help would be much appreciated, thankyou.
Last updated: 2023-08-18
Post by timvh on Detect "Cancel" Press in FileOpenSave Dialog
CODESYS Forge
talk
(Post)
Maybe there is a better way, but a long time ago I created a test application that worked like this: With a button I opened the dialog and I added a "Input configuration - OnDialogClosed" "Execute ST-Code" action to this same button which called the following Function when the dialog was closed: F_OnFileDialogClosed(pClientData); Below this Function which handled the result: // This function is called from the visualization when the dialog is closed. FUNCTION F_OnFileDialogClosed : BOOL VAR_INPUT pClientData : POINTER TO VisuElems.VisuStructClientData; END_VAR VAR dialogMan : VisuElems.IDialogManager; FileOpenCloseDialog : VisuElems.IVisualisationDialog; result : VisuElems.Visu_DialogResult; _sFileName : STRING(255); END_VAR // the DialogManager is provided via the implicitly available VisuManager dialogMan := VisuElems.g_VisuManager.GetDialogManager(); IF dialogMan <> 0 AND pClientData <> 0 THEN FileOpenCloseDialog := dialogMan.GetDialog('VisuDialogs.FileOpenSave'); // gets the FileOpenSave dialog IF FileOpenCloseDialog <> 0 THEN result := FileOpenCloseDialog.GetResult(); // gets the result (OK, Cancel) of the dialog IF result = VisuElems.Visu_DialogResult.OK THEN // Original code gvlFile.FileListProvider(); _sFileName := CONCAT(gvlFile.FileListProvider._stDirectory, gvlFile.FileListProvider.stFile); // do something with this file name... END_IF END_IF END_IF
Last updated: 2023-09-19
Post by ewi04 on Git with visu
CODESYS Forge
talk
(Post)
Hi, I have several problems with the git extension. Situation: I am working with Codesys v3.5 SP19 Patch 1 and Git V1.2.1.0. The remote repository is GitLab Community Edition v16.1.2. I am working on a project with one other person. Problems: 1: After each start of Codesys all of the visu pages are marked as modified. So we have to discard all changes first. Otherwise the history is not clean and the merge request becomes more complex. I tested it with a new project and only local. I made the observation, that a page is not marked as modified when it is committed a second time (after a restart of codesys). But this is necessary after every change of a page. However, since we are working in a team, it seems we are playing ping-pong and so all pages are marked as modified on each startup. 2: Each image pool causes a parent child conflict. Also in my local project. The only solution that I have found, is to ignore the issue. Does anyone have the same problems? I think it looks more like bugs. Thanks ewi04
Last updated: 2023-11-22
Post by to-ke on Errors with VisuUserManagement library
CODESYS Forge
talk
(Post)
Hallo zusammen, hi all, ich habe den gleichen Fehler. Auf einem Raspberry Pi geht der Fehler weg, wenn ich alles bereinige und dann vollständig übersetze. Wenn das Projekt im Codesys Development System wieder neu geladen wird ist der Fehler aber wieder da. Mit eine Win V3 x64 PLC kann ich den Fehler nur unterbinden wenn ich auf der HMI das VUM_Login einbinde. Dieses brauche ich aber nicht, da ich die HMI für das User Management selbst gestaltet habe. Das funktioniert auch. I have the same error. On a Raspberry Pi the error goes away if I clean everything and then compile completely. When the project is reloaded in the Codesys Development System, the error returns. With a Win V3 x64 PLC I can only prevent the error if I integrate the VUM_Login on the HMI. But I don't need this because I designed the HMI for user management myself. That works too. Anyone have an idea to fix this problem. Many thanks
Last updated: 2024-07-09
Post by trusty-squire on Confused by dwIpoTime input for SMC_Interpolator
CODESYS Forge
talk
(Post)
Hi, Learning Codesys CNC, and I am confused by the dwIpoTime parameter. I have a basic demo application, using SMC_Interpolator feeding into SMC_TRAFO_Gantry2Tool2, which then sets the position of the x/y SM_Drive_Virtual axis. I also have a C axis which revolves the tool, which is controlled using a simple tangential angle calculation SMC_CalcDirectionFromVector. The GCode I'm using has feed/accel set at 500. The axis configuration limits are well above that (2000). What's strange is that, when I run the simulation, the feed speed changes drastically when I update the variable dwIpoTime. The larger the number, the faster it moves. What's going on here? The documentation only says "This variable has to be set for each call. It represents the cycle time in μsec." Why does it change the feed speed I'm seeing the in simulation? What is a good number to use? The example I was looking at set it at 5000. Screenshot attached.
Last updated: 2024-07-18
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
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.