Post by ihatemaryfisher on Sorting array of any-sized structure
CODESYS Forge
talk
(Post)
With that I could make an array of varying size, but would still have to define the array type in the function's declaration VAR_IN_OUT stArray: array [*..*] of <pre-defined data type> END_VAR I wanted a function that could take an array of any type (e.g., a structured VAR) as an input. That way I could call it in multiple POUs to handle different arrays structures.
Last updated: 2023-08-18
Post by dominggus on Recipe Manager - RecipeManCommands, load & write wrong values, Bug?
CODESYS Forge
talk
(Post)
I still have the same problem even when updating to CODESYS Recipes 4.3.0.0. My scenario: I'm trying to save/load an array of structs using the Visu: - Execute Command > "SaveRecipeAs" works properly - Execute Command > "LoadWriteRecipe" works not entirely: the structs of array[6] and array[7] should have been empty but were duplicates of array[4] and array[5]... the struct contains 26 variables and the array's length is 30.. Maybe there is a upper limit on recipe variable count?
Last updated: 2024-03-02
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 timvh on Converting each character to a string into ASCII
CODESYS Forge
talk
(Post)
Nice puzzle for a Saturday afternoon :-). Here my suggestion: VAR sInput : STRING := 'R123'; byChar : BYTE; sOutput : STRING; i: INT; END_VAR sOutput := ''; IF LEN(sInput) = 0 THEN RETURN; END_IF FOR i := 0 TO LEN(sInput) - 1 DO byChar := sInput[i]; sOutput := Concat(sOutput, TO_STRING(byChar)); END_FOR
Last updated: 2024-11-09
OPC UA Server limitations, large array crashes runtime
CODESYS Forge
talk
(Thread)
OPC UA Server limitations, large array crashes runtime
Last updated: 2023-08-23
Codesys 2.3.9.28 Webvisu Tabelle mit Array 1..12,1..31 edit
CODESYS Forge
talk
(Thread)
Codesys 2.3.9.28 Webvisu Tabelle mit Array 1..12,1..31 edit
Last updated: 2012-05-11
Assign Initial Value of Array of Byte
CODESYS Forge
talk
(Thread)
Assign Initial Value of Array of Byte
Last updated: 2019-03-08
Array finding the total of index
CODESYS Forge
talk
(Thread)
Array finding the total of index
Last updated: 2023-03-03
Index was outside the bounds of the array
CODESYS Forge
talk
(Thread)
Index was outside the bounds of the array
Last updated: 2016-10-12
Mit UNION Bit-Array auf WORD verknüpfen
CODESYS Forge
talk
(Thread)
Mit UNION Bit-Array auf WORD verknüpfen
Last updated: 2016-09-09
Fehler: Falscher Index für Array! Aufrufhierarchie aufrufen
CODESYS Forge
talk
(Thread)
Fehler: Falscher Index für Array! Aufrufhierarchie aufrufen
Last updated: 2012-03-23
DINT adds 2 additional empty bytes in array/union
CODESYS Forge
talk
(Thread)
DINT adds 2 additional empty bytes in array/union
Last updated: 2021-10-12
Eingabe in die Visualisierung in ein Array
CODESYS Forge
talk
(Thread)
Eingabe in die Visualisierung in ein Array
Last updated: 2014-06-27
Reset an Array[] in one line, possible?
CODESYS Forge
talk
(Thread)
Reset an Array[] in one line, possible?
Last updated: 2013-03-22
RUNTIME ERROR: Wrong array index! Please open callstack!
CODESYS Forge
talk
(Thread)
RUNTIME ERROR: Wrong array index! Please open callstack!
Last updated: 2016-03-20
Re: Exporting array data into Excel
CODESYS Forge
talk
(Thread)
Re: Exporting array data into Excel
Last updated: 2013-09-12
Übergabe von Array variabler Größe an FB / PRG
CODESYS Forge
talk
(Thread)
Übergabe von Array variabler Größe an FB / PRG
Last updated: 2007-08-24
wie kann ich ein Array ini mit EOF
CODESYS Forge
talk
(Thread)
wie kann ich ein Array ini mit EOF
Last updated: 2008-06-03
ARRAY finding specific value and its pocition /TwinCAT
CODESYS Forge
talk
(Thread)
ARRAY finding specific value and its pocition /TwinCAT
Last updated: 2019-11-26
Array mit Konstanten als Tabelle in der Visu dargestellt
CODESYS Forge
talk
(Thread)
Array mit Konstanten als Tabelle in der Visu dargestellt
Last updated: 2021-12-09
SysFileWrite schreibt nur 1sten Eintrag vom Array
CODESYS Forge
talk
(Thread)
SysFileWrite schreibt nur 1sten Eintrag vom Array
Last updated: 2017-06-11
Writing a CSV file from an array of values?
CODESYS Forge
talk
(Thread)
Writing a CSV file from an array of values?
Last updated: 2020-05-27
Daten eines DUTs in Array mit gleichen DUTs kopieren
CODESYS Forge
talk
(Thread)
Daten eines DUTs in Array mit gleichen DUTs kopieren
Last updated: 2008-09-30
External C code with an array with initial values?
CODESYS Forge
talk
(Thread)
External C code with an array with initial values?
Last updated: 2010-02-16
Accessing a array instance variable is declared in VAR
CODESYS Forge
talk
(Thread)
Accessing a array instance variable is declared in VAR
Last updated: 2015-10-10
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
.