to Copy and paste a whole file with FTPlib wago
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      to Copy and paste a whole file with FTPlib wago
    
    Last updated: 2022-02-21
    
    
      
        Convert Array Of DINT To STRING
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Convert Array Of DINT To STRING
    
    Last updated: 2023-12-03
    
    
      
        REFERENCE TO in an array
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      REFERENCE TO in an array
    
    Last updated: 2025-05-21
    
    
      
        Split int to int array?
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Split int to int array?
    
    Last updated: 2016-06-22
    
    
      
        Convert string to byte array.
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Convert string to byte array.
    
    Last updated: 2021-12-29
    
    
      
        Integer type to byte array
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Integer type to byte array
    
    Last updated: 2015-11-25
    
    
      
        writing to array in program
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      writing to array in program
    
    Last updated: 2022-02-03
    
    
      
        give a Name to array cell
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      give a Name to array cell
    
    Last updated: 2017-06-03
    
    
      
        Exporting Array to CSV in CODESYS
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Exporting Array to CSV in CODESYS
    
    Last updated: 2020-06-10
    
    
      
        Unpacking an array to MODBUS addresses
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Unpacking an array to MODBUS addresses
    
    Last updated: 2018-06-19
    
    
      
        Array of pointers to output
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Array of pointers to output
    
    Last updated: 2013-05-13
    
    
      
        2 byte array convert to uint
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      2 byte array convert to uint
    
    Last updated: 2019-04-30
    
    
      
        Pointer to Array in Funktionsbaustein verwenden
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Pointer to Array in Funktionsbaustein verwenden
    
    Last updated: 2009-11-12
    
    
      
        Word to array of byte
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Word to array of byte
    
    Last updated: 2022-09-22
    
    
      
        Grosses Array in kleines Array schreiben
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Grosses Array in kleines Array schreiben
    
    Last updated: 2009-06-15
    
    
      
        Zugriff bei Deklaration ARRAY OF ARRAY
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Zugriff bei Deklaration ARRAY OF ARRAY
    
    Last updated: 2011-11-03
    
    
      
        How to convert UDINT to array of bytes ? 
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      How to convert UDINT to array of bytes ?
    
    Last updated: 2023-03-10
    
    
      
        Post by rickj on Defining local variables that can be independent with several users.
    
    
       CODESYS Forge
    
    
      talk
    
    (Post)
    
    
      You need to create an array with one element for each possible user. I usually define these arrays in the root screen. FrameIndex : Array [0..MaxUsers] OF INT; Then use the global CurrentClientId (defined by one of the VISU libraries) to index the array element used to select the frame. FrameIndex[CurrentClientId]
    
    Last updated: 2023-10-21
    
    
      
        Problem of assigning physical addresses to variables of type ARRAY OF ARRAY as MW and QW
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      Problem of assigning physical addresses to variables of type ARRAY OF ARRAY as MW and QW
    
    Last updated: 2025-03-31
    
    
      
        Post by ggis on Manage Gateways between different CODESYS IDE versions
    
    
       CODESYS Forge
    
    
      talk
    
    (Post)
    
    
      Hi, I'd like to share the list of gateways between different versions (and sandboxes) of Codesys IDE. I refer to the list that is managed in Device > Communication Settings (as described in https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_edt_device_communication_settings.html ) Can I export/import that list? Or is there a file that I can copy from one installation to another one? Thank you GG
    
    Last updated: 2025-05-28
    
    
      
        Post by ihatemaryfisher on Sorting array of any-sized structure
    
    
       CODESYS Forge
    
    
      talk
    
    (Post)
    
    
      In my machine's operation, I need to display multiples tables containing arrays of structured variables. The arrays change during operation, and my supervisor has advised me to write a new bubble-sort for each array. I think I can make a function to sort an array of any data type. This was my own project, and I'm a relatively new coder. I want to know the weaknesses in my approach, and a better method, if one exists. As far as I can test, the function accepts an array of a structured variable of any size, and sort it by any VAR in that structure. But it relies heavily on pointers, which I've heard are bad practice? Function call: // SORT BY BYTE-SIZED VAR IF xDoIt[6] THEN FUNBubbleSortSansBuffer( IN_pbySourcePointer := ADR(astArray[1]), // address of first byte in first element of array IN_pbyComparePointer:= ADR(astArray[1].byCompByte), // points to first byte of the comparing variable (variable you sort by) IN_uiStructureSize := SIZEOF(TYPE_STRUCTURE), // size, in bytes, of the structured variable IN_uiCompareSize := SIZEOF(astArray[1].byCompByte), // size, in bytes, of the comparing variable (variable you sort by) diArrayElements := UPPER_BOUND(astArray,1), // number of elements in array IN_xSmallToLarge := xSortOrder // whether to sort by small2large or large2small ); END_IF Function: FUNCTION FUNBubbleSortSansBuffer : BOOL VAR_INPUT IN_pbySourcePointer : POINTER TO BYTE; // points to beginning of array (first byte of first element) IN_pbyComparePointer: POINTER TO BYTE; // points to first byte of the comparing variable (variable you sort by) IN_uiStructureSize : UINT; // size, in bytes, of the structured variable IN_uiCompareSize : UINT; // size, in bytes, of the comparing variable (variable you sort by) diArrayElements : DINT; // number of elements in array IN_xSmallToLarge : BOOL; // whether to sort by small2large or large2small END_VAR VAR j : DINT; // repeat iteration over array until array ends i : DINT; // iterarte over array, swapping when necesary k : DINT; // iterator from 1 to size of structure (stepping 'through' a single element in array) dwSize : DWORD; // internal var for use in MEMUtils.MemCpy(<size>) // FOR SORTING BY BYTE VAR pbySourcePointer : POINTER TO BYTE; pbySourcePointer2 : POINTER TO BYTE; pbyComparePointer : POINTER TO BYTE; pbyComparePointer2 : POINTER TO BYTE; pbyPointerToBuffer : POINTER TO BYTE; // pointer to single byte buffer byBufferByte : BYTE; // single byte buffer END_VAR dwSize := UINT_TO_DWORD(IN_uiStructureSize); // get structure size (number of bytes) pbyPointerToBuffer := ADR(byBufferByte); // assign pointer to address of buffer byte (because MEMUtils.MemCpy requires a pointer input) CASE IN_uiCompareSize OF // depending on the size of the VAR to sort by (current functionality for BYTE and WORD/INT 1: // BYTE (8 BIT) FOR j := 1 TO diArrayElements DO // for number of elements in array FOR i := 1 TO (diArrayElements-1) DO // same thing, but row[i+1] row is included in swap logic pbySourcePointer := IN_pbySourcePointer + dwSize*(i-1); // point at #1 byte in array element[i] pbySourcePointer2 := pbySourcePointer + dwSize; // point at #1 byte in array element[i+1] // NOTE: because of memory locations, each array element is offset from one another by a number of bytes equal to the size of the structure // We can "walk" from array[i] to array[i+1] via steps equal to the size of the structure // e.g., ADR(array[i+1]) == ADR(array[i]) + SIZEOF([array datatype]) pbyComparePointer := IN_pbyComparePointer + dwSize*(i-1); // point to sorting variable in array element[i] pbyComparePointer2 := pbyComparePointer + dwSize; // point to sorting variable in array element[i+1] // using sort order (small -> large/large -> small) IF SEL(IN_xSmallToLarge, (pbyComparePointer2^ > pbyComparePointer^),(pbyComparePointer2^ < pbyComparePointer^)) THEN // This is where it gets tricky. We've identified pointers for the starting bytes of aArray[i] and aArray[i+1] // and we know the size of aArray[i]. We are going to swap individual bytes, one at a time, from aArray[i] and aArray[i+1] // this allows us to use only a single byte var as a buffer or temporary data storage // e.g., consider a structure consisting of a word, a byte, and a string. it is stored like this // |------WORD-------| |--BYTE-| |STRING------...| // astArray[1] == 1000 0100 0010 0001 1100 0011 1010 1010.... etc // astArray[2] == 0001 0010 0100 1000 0011 1100 0101 0101.... etc // performing a single swap (copy into a buffer, etc.) of the first byte of each array element creates this // astArray[1] == 0001 0100 0010 0001 1100 0011 1010 1010.... etc // astArray[2] == 1000 0010 0100 1000 0011 1100 0101 0101.... etc // incrementing the pointer adresses for the swap by 1 and swapping again swaps the next byte in each array element // astArray[1] == 0001 0010 0010 0001 1100 0011 1010 1010.... etc // astArray[2] == 1000 0100 0100 1000 0011 1100 0101 0101.... etc // continuing this from k to SIZEOF(TYPE_STRUCTURE) results in a toally swapped row FOR k := 1 TO IN_uiStructureSize DO // copy single byte[k] of array element 1 to buffer MEMUtils.MemCpy(pbyDest := (pbyPointerToBuffer), pbySrc := (pbySourcePointer+k-1), dwSize := 1); // copy single byte[k] of array element 2 to 1 MEMUtils.MemCpy(pbyDest := pbySourcePointer+k-1, pbySrc := (pbySourcePointer2+k-1), dwSize := 1); // copy buffer to byte[k] array element 2 MEMUtils.MemCpy(pbyDest := (pbySourcePointer2+k-1), pbySrc := pbyPointerToBuffer, dwSize := 1); END_FOR END_IF END_FOR END_FOR
    
    Last updated: 2023-08-17
    
    
      
        Post by installwhat on C0077 on one machine but not another
    
    
       CODESYS Forge
    
    
      talk
    
    (Post)
    
    
      someone needs to add some js to stop repeated posts
    
    Last updated: 2024-06-11
    
    
      
        How to integrate CoDeSys into another system?
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      How to integrate CoDeSys into another system?
    
    Last updated: 2009-09-02
    
    
      
        FAILURE TO OPEN PROJECT ON ANOTHER COMPUTER
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      FAILURE TO OPEN PROJECT ON ANOTHER COMPUTER
    
    Last updated: 2025-01-23
    
    
      
        How to call another program from main ladder program?
    
    
       CODESYS Forge
    
    
      talk
    
    (Thread)
    
    
      How to call another program from main ladder program?
    
    Last updated: 2014-03-13
    
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.