Search talk: Access To VAR_IN_OUT

 
<< < 1 .. 22 23 24 25 26 .. 231 > >> (Page 24 of 231)

Raspberry add to codesys CODESYS Forge talk (Thread)
Raspberry add to codesys
Last updated: 2024-01-08

PWM To analog CODESYS Forge talk (Thread)
PWM To analog
Last updated: 2024-01-12

How to change bHiresMode CODESYS Forge talk (Thread)
How to change bHiresMode
Last updated: 2024-03-12

CODESYSControl_User.cfg - link to documentation? CODESYS Forge talk (Thread)
CODESYSControl_User.cfg - link to documentation?
Last updated: 2024-06-11

Data to server CODESYS Forge talk (Thread)
Data to server
Last updated: 2025-11-11

Convert word to ascii CODESYS Forge talk (Thread)
Convert word to ascii
Last updated: 2026-04-27

Post by john-robinson on Limiting Memory Access of an Array to Within its Bounds CODESYS Forge talk (Post)
Recently we had an issue regarding some simple code to calculate a rolling average. The code indexes from zero to 199 to properly store the current input into a circular buffer which then allows us to calculate a rolling average: VAR input_5s : REAL; outs_arr : ARRAY[0..199] OF REAL; i : USINT := 0; END_VAR ___ //this code runs every five seconds, calculating a rolling average outs_arr[i] := input_5s; i := i + 1; output := OSCAT_BASIC.ARRAY_AVG(ADR(outs_arr), SIZEOF(outs_arr)); IF i >= SIZEOF(outs_arr) THEN i := 0; END_IF There is a simple bug in this code where the index will be set to 0 when it has surpassed the length of the array in bytes (800 in this case) rather than larger than the number of reals in the array (200). The solution here is simple, replacing i >= SIZEOF(outs_arr) with i >= SIZEOF(outs_arr)/SIZEOF(outs_arr[0]). In this example when the index increased to 201 and the line outs_arr[201] := input_5s was called, codesys arbitrarily wrote to the address in memory that is where outs_arr[201] would be if the array was that long. I would like to find a way to wrap the codesys array inside of a wrapper class that checks if an input is within the bounds of an array before writing to that value. I know how I would implement that for a specific array, I could create a method or class that takes an input of an array of variable length, ie. ARRAY[*] OF REAL, but I don't know how to make this for any data type. I am wondering if anyone has ever done anything similar to this, or has any better suggestions to ensure that none of the programmers on this application accidentally create code that can arbitrarily write to other locations in memory.
Last updated: 2024-03-05

Post by benediktenger on Access project information of references library by script CODESYS Forge talk (Post)
Hi, I need to accesss to project information of a referenced library in the project. At least I need the "Released" flag from these information to check that no project gets shipped with unreleased libraries. Unfortunally, I do not get this information by script. I archieved to get the library reference object and the managed library object but both won't give me this flag but only basic information like company, name, version, etc. Here is my code: # get the library refernces proj = projects.primary objects = proj.get_children(recursive=True) for object in objects: if object.is_libman: for libref in iter(object): if libref.is_placeholder and isinstance(libref.effective_resolution,str): print(libref) print(libref.name) # get the managed libraries libs = librarymanager.get_all_libraries() for lib in libs: print(lib.displayname) print(lib.version) Does somebody know how do get these information?
Last updated: 2023-10-23

Post by janber0206 on Gateway doesn't come online, regarding a working internet connection CODESYS Forge talk (Post)
Solved (see comment) Setup: Kunbus RevPi Connect+ (a raspberry based PLC) Codesys runtime package: 4.5.0.0 (raspberry, armhf) based on Codesys V3.5.18.20 Edge Gateway: 4.5.0.0 (edgearmhf,armhf) EN: The edge-gateway was added over a year ago to the automation server. I now need to make a few changes to the Codesys software, but the Pi is not showing as online in the Automation Server. Internet connection is established, I have remote access to the Pi via RealVNC. Anyone have an idea how I can solve this? Some screenshots added. DE: Ich muss nun ein paar Änderungen an der Codesys-Software vornehmen, aber der Pi wird im Automation Server nicht als online angezeigt. Die Internetverbindung ist hergestellt, ich habe über RealVNC Fernzugriff auf den Pi. Hat jemand eine Idee, wie ich das Problem lösen kann?
Last updated: 2023-10-26

Post by kunz on Responsive Design Example CODESYS Forge talk (Post)
Hello everyone, I have a problem with the example project Responsive Design Example, which is available here in Codesys Forge. I wanted to try switching the visualization depending on the device type. To do this, I used a smartphone to access it. I can see via breakpoints that the Smartphone visualization is selected, but the visualization of the normal monitor still appears on the smartphone. Could there be a problem with the libraries, or why is the device not assigned the correct visualization page? I dont know how do further debuggin or troubleshooting. Here the page to the example: https://forge.codesys.com/prj/codesys-example/responsive-desi/home/Home/ Thank you very much.
Last updated: 2024-06-27

Post by dkugler on Webvisu client connection monitoring CODESYS Forge talk (Post)
you can give this code snippet a try. It's extracted and simplyfied from my code: Install VisuElemBase lib if not installed yet. Execute in visu task: VAR pClientData : ARRAY [-1..100] OF POINTER TO VisuElemBase.VisuStructClientData; END_VAR VisuElemBase.g_ClientManager.BeginIteration(); pClientData := VisuElemBase.g_ClientManager.GetNextClient(); WHILE pClientData <> 0 DO pClientData[pClientData^.GlobalData.GlobalClientID] := pClientData; END_WHILE You have to make shure every no longer updated pointers in the array have to be deleted and no longer used by your code! Usage of this pointer access at your own risk :-) Works with SP16. From SP17 and newer there will be warnigs etc. using this solution as I remember. It will be great, if Codesys publishes a example or give a hint how to accesse this client values with the VisuUtil lib or other future-proof way!
Last updated: 2024-09-09

Post by tali on Configuration of disabled/deactivated visu elements CODESYS Forge talk (Post)
would be great to have such fucntionality. Sometimes it is not clear for user which elemetns are blocked and which are not - the greyed out eleemtns are not so different for low resolution / low quality screeens. What I have in my mind as well is to have a possibility to detect the visu Element clicked on and get its Access Rights. If it is blocked/deactivated, the dialog can be rised with INFO 'please login first with proper rights'. It is possible now to have a Mose event Handler ( Examples -> EventHandler) and rise the dialog out of ST (Exapmpals -> ST Dialogs). I am struggling still with getting the separate Visu Element under the mouse and its structure info
Last updated: 2025-12-05

Post by pernockham on Trend legend naming and access/config to/of trend/legend-variables CODESYS Forge talk (Post)
There seems to have been included an updated in the last release 4.9.0.0 or am I wrong (I think I tried out these settings previously without giving the result I wanted contrary to what I see today)? Now an empty check box for "display variable name" is effective, and will present the Variable with the "Description" instead. Perfect! Seems to be some minor formatting still that needs adjustment. See attached screenshot. The apostrophe "'" between "description" I suppose should not be there? Also I guess the same apostrophe (although not visibly shown) gives an extra space between the variable-description and the ":"?? Thanks!
Last updated: 2025-12-19

Post by jampid on Struct Literal CODESYS Forge talk (Post)
Bonjour Davidmic, Il n'est pas possible d'associer une méthode à une fonction. Cela est possible sur les Blocs fonctions. En utilisant ta DUT MyStruct, je créé une fonction avec en entrée un tableau de structure :** FUNCTION F_F3 : REAL VAR_IN_OUT // bien définir un type IN_OUT IN_ptrINT: ARRAY[*] OF MyStruct; // la taille sera définie ultérieurement/ END_VAR VAR _di: DINT; // Index de parcours du tableau pour l'écriture dans les cases ENDVAR ============== //Programme F_F3: FOR _di := LOWER_BOUND(IN_ptrINT,1) TO UPPER_BOUND(IN_ptrINT,1) DO IN_ptrINT[_di].som:=IN_ptrINT[_di].a + IN_ptrINT[_di].b; END_FOR J'utilise ensuite cette fonction dans un POU Programme : PROGRAM Test_F_Fx VAR _aiTAB9:ARRAY[0..3] OF MyStruct := [(a := 1, b := 1.2), (a := 2, b := 2.2), (a := 3, b := 3.3), (a := 4, b := 4.4)]; END_VAR ** ==========** F_F3(IN_ptrINT:=_aiTAB9 ); Voilà l'idée pour avancer. Une autre idée, est d'utiliser les pointeurs ou les références. Bon développement!
Last updated: 2025-04-07

Post by brubingh on Download Missing Libraries not working CODESYS Forge talk (Post)
We are working on a project and the customer required 3.5.16 BF4. After working on the project for a few weeks I opened it the next morning and it could not access libraries. IecVarAccess could not be accessed. I checked if windows updated - it did not. So no explanation for why it lost access other than that I shut down the computer for the night. Note that I am using a demo license. I still haven't figured out any reason to purchase a license. So I spent the next hour reinstalling CodeSys. Note that I did NOT uninstall first. After install I waited another 5 minutes for it to open the first time. I clicked File->Open to open the project. Previously I had selected File->Recent Projects - not sure if that makes and difference. But after this process it did open the project and compile it just fine. This is miserable. If this had happened when I went on site to a customer I would have lost hours of work doing the reinstall. Is there a different and quicker fix?
Last updated: 2024-06-13

Post by bmatlove on Variable Length Array - Cannot mix variable and fixed length dimensions? CODESYS Forge talk (Post)
Using Codesys 3.5.18.30 I am trying to work with an array of variable length in one dimension, but known in the other dimension. For example, using an array that represents a list of items, each with an attribute profile. I do not know how many items will be in the list, but I know that every item has 5 attributes, like size, weight, etc. Codesys does not seem to be able to accept this. I have referenced Data Type: ARRAY OF documentation page, which is not explicit if variable & fixed length array dimensions can be mixed. In the VAR_IN_OUT scope, I initially tried MY_ARRAY : ARRAY [*, *] OF REAL; which was no problem, of course. I then modified it to MY_ARRAY : ARRAY [*, 1..5] OF REAL; which throws C0006: ', or ]' expected instead of '..' among consequent downstream errors. I then used the Auto Declare -> Array Wizard, which accepted (asterisk)-(asterisk) and 1-5 for 2-dimensional lower and upper bounds. It output: MY_ARRAY: ARRAY[*..*, 1..6] OF INT; which throws the same error stream. What's the deal here? Is this possible?
Last updated: 2025-05-23

Post by hhermsen on Codesys v3.5.22.10 - Internal error:System.AggregateException...Value cannot be null...Parameter name: expLValue CODESYS Forge talk (Post)
I pinpointed down 4 possible causes for this compiler error: Bare/empty statements (;) standing alone inside an IF/CASE branch — just removed two instances. The optimizer that tries to inline/replace expression statements may choke when a statement has no actual assignment to extract. A VAR_IN_OUT parameter used directly as a FOR loop's own control variable (FOR X := X TO Y DO) General deep-nesting complexity — every one of my decode routines has the same shape (IF busy THEN ... FOR loop containing nested CASE/IF chains ... END_IF), and the crash trace consistently shows for loop → sequence → ifst → sequence → ifst → sequence regardless of the code change. This raises the possibility that it's not one specific statement but a structural depth/complexity limit in SP22.x's compiler optimizer — which would mean no small code change fixes the issue. Only restructuring to reduce nesting depth, or downgrading the compiler will. Something entirely outside my library files — which cannot not ruled out since the exact stack trace was triggered by a Visualization object, in a totally different codebase. This means the same crash signature can come from unrelated causes. IMHO cause 3 seems the most probable one..
Last updated: 2026-07-11

Post by kurtk on SysProcess Execute Command unable to run commands with special characters CODESYS Forge talk (Post)
Thank you for this additional information. Could you please provide the references to the official documentation where you found this information ? I got as far as: Then insert this: [SysProcess] BasePriority=Realtime Command=AllowAll devoid of references of where the CodesysContol.cfg file was located or of the need to run codesys as root I incrementally located bits of information with perplexity searches but remained mired at error 25 ERR_NO_ACCESS I am curious whether root access is MANDATORY to run SysProcessExecuteCommand (- and/or any other SysProcess functions) or if a more access-constrained User=quasiroot could suffice without the security concerns ? Apparently codesys runs fine without User=root for almost everything... That raises the question: What IS the default codesys user ? I notice in the prototypes: VAR sCommand : STRING := '/usr/bin/whoami'; sOutput : STRING(255); refCommand : REFERENCE TO STRING; refOutput : REFERENCE TO STRING; resultCmd : UDINT; END_VAR whenever I attempt to build this Codesys v3.5 SP2 whines that "cannot convert type REFERENCE TO STRING to STRING" don't remember the exact message... Apparently this happens whenever a fixed-length string is involved. if I get rid of (255) and just set the string := ' '; that is sufficient to make the compiler happy. Is this a recently enforced constraint ? Why does this compile for you and not for me ? There are references to functions / utilities which are used/needed to massage the string references - but I see no specific details... I also notice you specify: Make sure the lib SysProcessImplementation, SysTypes, and CmpErrors is on the project. I don't comprehend why all of the dependent libraries are not automatically referenced, added ? I don't recall seeing anywhere but here that SysProcessImplementation must be included... It just seems odd that the default is to exclude essential libraries, or require alchemical conjuring to assemble all the ingredients for gnat soup ;-) Thanks a lot... I'm still a codesys newby getting my wheels on - or sometimes just partially on
Last updated: 2025-09-12

Post by trusty-squire on CNC - How to manipulate SMC_GeoInfo objects CODESYS Forge talk (Post)
I have an application using CNC GCode interpolation, but I need to modify the GCode provided to the PLC based on certain parameters. I am currently attempting to modify the SMC_GeoInfo objects in the SMC_OutQueue using the code below. Note that all the other code is pretty standard and works fine, but when I add the below it errors. PROGRAM TEST VAR fbReadCncFile : SMC_ReadNCFile2; fbCncInterpreter : SMC_NCInterpreter; arrCncInterpreter : ARRAY[1..99] OF SMC_GeoInfo; pGeoInfo: POINTER TO SMC_GeoInfo; giGeoInfo: SMC_GeoInfo; // ... END_VAR // ... Some code here in order to read CNC file using SMC_ReadNCFile2 and provide to SMC_NCInterpreter pGeoInfo := SMC_GetObj(poq:=ADR(fbCncInterpreter.poqDataOut), n:=1); IF pGeoInfo <> 0 THEN giGeoInfo := pGeoInfo^; // Do some manipulation here, then update the queue at the same position MC_SetObj(poq:=ADR(fbCncInterpreter.poqDataOut) , n:=0 , pgi:=ADR(giGeoInfo) ); END_IF It throws an error when I get to the line giGeoInfo := pGeoInfo^; Error: EXCEPTION [AccessViolation] occured: App=[Sim.Device.Application], Task=[PathTask] How do I use SMC_GetObj and access the data? It creates a pointer with the value as shown in the photo, but all the dereferenced values say dereference of invalid pointer.
Last updated: 2024-07-26

Post by dtamm on How to read string from CharBufferPtr? CODESYS Forge talk (Post)
I am trying to implement a mechanism to send alarm SMS. For this, I have created an Alarm Class with a Notification Action which calls a POU. This POU implements IAlarmNotifiable making it selectable in the Alarm Class configuration. IAlarmNotifiable has an Execute method which is called by the alarm class. Now, I want to extract the alarm message of the triggered alarm. The Execute method comes with a VAR_INPUT itfAlarm: AlarmManager.IAlarm which supplies a method called GetMessage. The help text says: Returns the message text, that has been configured for the alarm. The result is a pointer to the buffer, where the message text is stored The type of the result is CharBufferPtr, and at some place I read that it can be interpreted as a pointer to string. But I cannot manage to extract the alarm message, all I get are numbers. I have tried the following: psAlarmText := itfAlarm.GetMessage(__SYSTEM.TYPE_CLASS.TYPE_STRING)^; sAlarmText := TO_STRING( itfAlarm.GetMessage(__SYSTEM.TYPE_CLASS.TYPE_STRING)^ ); So how do I get access to the alarm message as clear text? (In this case, "Larm 1")
Last updated: 2024-02-21

Post by timvh on Communication between applications on same device/controller/runtime (Win RTE 3.5.20.20) CODESYS Forge talk (Post)
If you have a Windows system (RTE), then why not run the CODESYS HMI as separate controller. This could easily be moved to another PC if required. In the HMI you could also still use the Symbolic Var access as part of the Data Source Manager, although maybe OPC is the preferred way to make it more future proof. Or what about the Remote Target Visu. Then you can reduce the load of the main controller, while still only having to create one application including Visualization. This is now also supported for Linux systems. See: https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_target_visu_for_linux.html https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_execute_remote_target_visu.html
Last updated: 2024-09-28

Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications CODESYS Forge talk (Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28

Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications CODESYS Forge talk (Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28

Post by baotthitawat on SCADA Systems Are Becoming Easier to Integrate With Modern Applications CODESYS Forge talk (Post)
One thing I’ve been seeing recently is that more industrial systems are starting to expose realtime SCADA data through APIs instead of keeping everything isolated inside the local monitoring software. This makes integration much easier for cloud platforms, mobile dashboards, AI analytics, and enterprise applications that need realtime industrial data. Instead of exporting reports manually or building complicated middleware, APIs allow external systems to access SCADA data directly in realtime. I think this becomes especially useful for applications like wastewater treatment monitoring, where operators need better visibility into alarms, equipment status, and operational conditions across different locations. Feels like modern SCADA is slowly evolving from a standalone monitoring platform into part of a larger connected industrial ecosystem.
Last updated: 2026-05-28

Post by charly29160 on CmpCharDevice blocks gpiochip access on Raspberry Pi 5 since update from SP18 to SP21 CODESYS Forge talk (Post)
Hallo Herr Schwellinger - Danke für die Info. Der Fehler besteht weiterhin: Follow-up: Rootless mode is not the cause here — verified with ps aux, the runtime binary runs as root: root 1974 48.9 0.7 854852 62140 ? SLl 13:00 0:04 /opt/codesys/bin/codesyscontrol.bin /etc/codesyscontrol/CODESYSControl.cfg gpioinfo gpiochip0 as root also works flawlessly (all 54 lines listed correctly, no permission errors at the kernel level). So the block is happening purely inside CmpCharDevice's own sandboxing, not at the Linux/kernel permission level and not due to a dedicated unprivileged user. The correct config key to whitelist /dev/gpiochip0 for CmpCharDevice is still what I'm looking for. Im Voraus herzlichen Dank für Ihre Hilfe Karl Schuler
Last updated: 2026-07-20

<< < 1 .. 22 23 24 25 26 .. 231 > >> (Page 24 of 231)

Showing results of 5766

Sort by relevance or date