Post by installwhat on exception in system events handler
CODESYS Forge
talk
(Post)
I've noticed that exceptions in system event handlers don't stop the runtime or call the exception handler. I've included a very basic example to demonstrate. It seems likely this is undesired but unavoidable. Is that the case? Is there any advice on the matter? Thanks
Last updated: 2024-07-08
Post by pietrobalint on Retain / Persistent Variables in Codesys for Raspberry Pi
CODESYS Forge
talk
(Post)
Ok, I figured out that I do not call the program in the main task. Thank you for the source code, it works!
Last updated: 2024-08-17
Post by micik on Retain / Persistent Variables in Codesys for Raspberry Pi
CODESYS Forge
talk
(Post)
Hello pietrobalint, could you please how exactly you call this program? if not in the main task? Caould you please share a screenshot of how exactly you made it work? Thank you!
Last updated: 2024-08-20
Post by nicopolux on Profinet RPC-call error
CODESYS Forge
talk
(Post)
I have tested this on several PC, several Windows version and I cannot figure out why the RPC is bloqued. I have no idea how I could make it work before lol thanks all for your help
Last updated: 2024-08-28
Post by timvh on Array of Program
CODESYS Forge
talk
(Post)
You cannot create an array of Programs. Create a Function Block for this purpose instead of a program. You can create an array of FB instances and call each instance in a loop.
Last updated: 2024-09-03
Post by dkugler on CmpCrypto CryptoGenerateHash Not Outputting
CODESYS Forge
talk
(Post)
looks like your _hHash handle is "empty" (00000) at the breakpoint! I don't know if CryptoGetAlgorithmById(...) call in the VAR section is possible? would be good to know.
Last updated: 2024-09-06
Post by ph0010421 on Stack overflow with really simple function
CODESYS Forge
talk
(Post)
Hello I wouldn't call an FB from inside a FUN; it feels wrong to me. I have had something similar. Try declaring the FB instances as GlobaVars rather than the instance memory.
Last updated: 2024-09-17
Post by timvh on Read codesys version in the codesys application
CODESYS Forge
talk
(Post)
VAR RuntimeVersion: VERSION; END_VAR RuntimeVersion := __SYSTEM.Constants.RuntimeVersion; PS, when I call the SysTargetGetVersion on a Control Win, I get the value 50664488 = 16#03051428 equals version 3.5.20.40
Last updated: 2025-01-17
Post by timvh on VisuElems.cmpDynamictext.DynamicTextGetTextW returns pointer to empty string
CODESYS Forge
talk
(Post)
Try this: VAR sTextList : STRING; END_VAR sTextList := 'NameOfTheTextList'; // call to the function with the address of the string variable which contains the name of the textlist : ... ADR(sTextList), ....
Last updated: 2025-02-07
Post by rushikeshsonone on Get the list of all languages from TextList or from font settings of visualmanager
CODESYS Forge
talk
(Post)
Hi, I want list of all languages added in text list during runtime. I check with various object call but no luck. Can you help me with that? Note - I can not using Textlistutil, need other solution
Last updated: 2025-03-04
Post by dat422 on OPC UA Method - How to wait for result?
CODESYS Forge
talk
(Post)
Hi, I am also interested to know on how to use the Codesys OPCUA Client to call methods from e.g. a python opcua server.
Last updated: 2025-03-28
Post by durallymax on Making a Visu Element normally invisible and visible if variable is true
CODESYS Forge
talk
(Post)
You can write any expression that evaluates to TRUE/FALSE in that property, you can also call a method from the property.
Last updated: 2025-06-06
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 davidbo on I2c write is BeforeWriteOutputs needed?
CODESYS Forge
talk
(Post)
I have made an I2C library where writing happens by calling write8 I now see that I do not call BeforeWriteOutputs at all, however it seems to work data are sent at least for an hour. So is BeforeWriteOutputs needed
Last updated: 2024-02-07
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 sturmghost on Visualization using methods and cyclic ST-calls
CODESYS Forge
talk
(Post)
Not sure what you mean but you can define a visu initialization program and call it once at the visu initialization step. Look in the Visualization Manager there is a possibility to define such a program.
Last updated: 2024-03-03
Post by fless on FB having single input but initialized with Array
CODESYS Forge
talk
(Post)
with every call of the FB500 it keeps adding the INTs of the array to the sum variable. set sum to 0 before you start the loop.
Last updated: 2024-05-06
Post by mxj262 on FB having single input but initialized with Array
CODESYS Forge
talk
(Post)
Ok yes now the loop has stopped when I set sum to zero before the for loop. Why will it retain the sum value from the last call?
Last updated: 2024-05-06
Post by gseidel on SMC_FB_WASNT_CALLED_DURING_MOTION when enable MC_MoveRelative
CODESYS Forge
talk
(Post)
Hi ducng, please make sure to call all Motion-FBs in the EtherCAT task. In your case, the PLC_PRG should be below the EtherCAT task, not the MainTask. Best regards, Georg
Last updated: 2025-11-03
Post by davidbo on What is the prerequisites for a Raspberry Pi to work with SysSockSetIpAddressAndNetMask()
CODESYS Forge
talk
(Post)
I have done: systemctl stop dhcpcd sudo ip addr flush dev eth0 sudo ip link set eth0 up but a call to SysSockSetIpAddressAndNetMask does not give the eth0 an IP address Why?
Last updated: 2025-11-04
Post by mondinmr on COL.IMap2 and HashTableFactory cause frequent Access Violation
CODESYS Forge
talk
(Post)
Good morning, I’ve been using the Collection library for a long time, mostly with Stack, LinkedList, and List. From your examples I was able to manage the different factories, even for custom elements. Now I need a hashtable, but with this object I’m running into a lot of random access violations. If I append something inside FB_Init after constructing the hashtable, it crashes, even though the list was already created. If I only create the hashtable in FB_Init and append afterwards, it usually works. I don’t understand the meaning of the dispose call in this code: pSlave := ADR(slave); uSlave := TO_ULINT(pSlave); iKey := fKey.Create(uSlave); IF hash.CountKeys() = 0 THEN Service.logger.appendLog('Filling hashtable', 'HashManager', AdvLogType.AdvDebugMsg); ok := FALSE; ELSE eError := hash.ContainsKey(iKey, xResult => ok); END_IF IF NOT ok THEN pI := __NEW(UINT); iVal := fKey.Create(TO_ULINT(pI)); Service.logger.appendLog(CONCAT('New slave', TO_STRING(uSlave)), 'HashManager', AdvLogType.AdvDebugMsg); hash.AddKeyValuePair(iKey, iVal); appendNewSlave := pI; ELSE eError := hash.GetElementByKey(iKey, itfValue => iElem); xResult := __QUERYINTERFACE(iKey, itfIInstance); IF xResult THEN itfIInstance.Dispose(); END_IF IF eError <> COL.COLLECTION_ERROR.NO_ERROR THEN Service.logger.appendLog(CONCAT('ERROR ', TO_STRING(eError)), 'HashManager', AdvLogType.AdvCriticalMsg); appendNewSlave := nullptr; RETURN; END_IF __QUERYINTERFACE(iElem, iVal); {warning disable C0033} pI := TO___UXINT(iVal.UlintValue); {warning restore C0033} appendNewSlave := pI; END_IF Without the dispose call, every second cold reset crashes immediately when I try to access iVal, even if eError doesn’t report any error. With the dispose call, the cold reset issue disappears, but I get other problems: a) If I start the runtime using systemctl start codesyscontrol, it crashes at IF hash.CountKeys() = 0 THEN b) If I delete the files in PlcLogic and download again, it works and survives multiple cold resets. But as soon as I run systemctl restart codesyscontrol, everything gets corrupted again and it starts crashing at that point. FUNCTION_BLOCK SlaveMapCounter VAR hash : COL.IMap2; eError : COL.COLLECTION_ERROR; END_VAR In its FB_Init I create it: METHOD FB_Init: BOOL VAR_INPUT bInitRetains: BOOL; // TRUE: retain variables are initialized (reset warm / reset cold) bInCopyCode: BOOL; // TRUE: the instance will be copied to the copy code afterward (online change) END_VAR VAR hF : COL.HashTableFactory; END_VAR hash := hF.Create(256); In another FB I instantiate it statically: FUNCTION_BLOCK ABSTRACT AbstractServoEthercatController EXTENDS AbstractServoController VAR_STAT hashSlaves : SlaveMapCounter; END_VAR VAR field : REFERENCE TO ADVAbstractFieldUnitEthercatCia402; initCnt : REFERENCE TO UINT; END_VAR The append method is the one shown above, and I call it after the runtime has started. The accesses are performed by a single task, and in any case I’m working on an isolated single core. I’ve tried everything, moving the create, the instances, and all the rest several times, but nothing seems to work. I’d like to point out that these FBs are part of our own library, which is used in many applications.
Last updated: 2025-09-11
Post by egau on Hard shutdown: no code on device after power on
CODESYS Forge
talk
(Post)
This explanation aligns with the issues we’re experiencing with our machines. The scenario I described is happening with one of them (let’s call it Machine A). This machine is identical to another one (Machine B), except for some custom code that facilitates communication with an external Beckhoff PLC for MES integration in the production line. Machine B has been powered on and off daily for at least three months and has never had this problem. Given that, I highly doubt the MES custom code is the cause of the code corruption. This being said, your explanation does seem plausible. However, if faulty EtherCAT cables were the issue, why wouldn't the error occur during normal operation? Why would bad cables only cause problems during a hard shutdown? One last question: When you encountered this behavior, did you see a similar error in your logs? i.e, an "AccessViolation" exception in the EtherCAT Task?
Last updated: 2024-10-03
Post by william-blandon on RecipeManCommands.ReloadRecipes
CODESYS Forge
talk
(Post)
Hi Dave. Thanks for your answer. I still struggling with this. I have done everything according with the Codesys help even I have looked in detail at the example. I have double checked the recipe manager configuration and the use of all the methods. There are two methods that do not work as expected. I'm using Codesys 3.5.19.20 and recipe management 4.4.0.0 .CreateRecipe just create a recipe in the recipe definition but do not create the file. This have a walk around just giving a .ReadAndSaveRecipe afterwards. .ReloadRecipes do nothing but do not generate any error as well. After calling it I call the .GetRecipeCount and the number is always 0. When I create a new recipe (using the function block methods) then the number changes. Looks like this method is looking to the wrong directory finding nothing. I don't know if there is a missing configuration in the CODESYSControl.cfg file. I'm thinking in a walk around for this but I need to create a strings array with the recipe names as retentive and making all the management when deleting and adding recipes. Have had some one the same problem?
Last updated: 2024-05-23
Post by damian177 on Codesys and SMS in RPi
CODESYS Forge
talk
(Post)
Hi, I try use IIoT library to send and receive SMS by Raspbery PI and Codesys. I installed IIoT package and added the SMS library, But something is wrong, when I init communication it doesn't work, When I sniffer my communication (AT commands) beetwen RS232 RaspberryPi and my GSM modem I have only below commands: AT+CMEE=1 OK AT+CPIN? +CPIN: READY Anyone have idea what can be wrong ?
Last updated: 2023-09-28
Post by installwhat on What is the solution for "Application stopped on recovery switch request"?
CODESYS Forge
talk
(Post)
<Entry severity="information" component="<10>" user="nobody" timestamp="2024-07-04 ?? 5:10:47" infoId="1">Axis#=121 , Error=30014 , Emergency 2 <Entry severity="information" component="<10>" user="nobody" timestamp="2024-07-04 ?? 5:10:23" infoId="1">TCP Server : WaitClient <Entry severity="information" component="<10>" user="nobody" timestamp="2024-07-04 ?? 5:10:23" infoId="1">TCP Server : Init What is "component="<10>"? Is this system a vanilla CODESYS RTE or is it a modified installation. I think more details are required.
Last updated: 2024-07-08
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.