Search talk: INT TO BINARY

 
<< < 1 .. 58 59 60 61 62 .. 167 > >> (Page 60 of 167)

Connect WS2812B Light Strip to CodeSys via RasPi CODESYS Forge talk (Thread)
Connect WS2812B Light Strip to CodeSys via RasPi
Last updated: 2024-10-16

Automation server - trends stop recording - need to manually reconnect CODESYS Forge talk (Thread)
Automation server - trends stop recording - need to manually reconnect
Last updated: 2024-10-23

Problem to create 3 Alternative reset Switch CODESYS Forge talk (Thread)
Problem to create 3 Alternative reset Switch
Last updated: 2024-10-29

How to use PLC_Open FBs with PROFINET servodrive (PROFIdrive layer) CODESYS Forge talk (Thread)
How to use PLC_Open FBs with PROFINET servodrive (PROFIdrive layer)
Last updated: 2024-10-30

Converting each character to a string into ASCII CODESYS Forge talk (Thread)
Converting each character to a string into ASCII
Last updated: 2024-11-08

Converting each character to a string into ASCII CODESYS Forge talk (Thread)
Converting each character to a string into ASCII
Last updated: 2024-11-11

OPC UA C# client connecting to OPC UA CODESYS server CODESYS Forge talk (Thread)
OPC UA C# client connecting to OPC UA CODESYS server
Last updated: 7 days ago

Unrecoverable SoftMotion state after switch to PreOp CODESYS Forge talk (Thread)
Unrecoverable SoftMotion state after switch to PreOp
Last updated: 4 days ago

How to write multiple coils (Modbus FC15) CODESYS Forge talk (Thread)
How to write multiple coils (Modbus FC15)
Last updated: 2 days ago

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 mondinmr on Direct Pointers in IOMapping for EtherCAT with IoDrvEthercatLib.ETCSlave_Dia CODESYS Forge talk (Post)
Using SDO, I can read the EtherCAT mappings and offsets from various registers like 0x1c12, 0x1c13, etc. When I obtain registers mapped in the PDOs and various offsets, I could technically access directly to the statusword, controlword, etc., if they are mapped. I have noticed that on IoDrvEthercatLib.ETCSlave_Diag I can find pointers to the input and output buffers. However, although the input buffer can be easily read by referring to what has been obtained from the SDOs, it is not possible to write to the output buffer, as it is overwritten in each cycle by the data from the IOMapping task. Is there a way, knowing an instance of IoDrvEthercatLib.ETCSlave_Diag, to obtain the pointer to the first data in the IOMapping? The offsets are identical to those of the PDOs, but obviously the data is a copy. For me, the cleanest thing would be to access the pointers on IOMapping, for DS402a devices to retrieve the key data and point them to internal references. I need to know this as, having developed our own motion library, I would like to simplify the initial setup by eliminating unnecessary and nonsensical mappings that can lead users to unnecessary errors. In the current version that we have been using for years, we have to map everything manually. I would like to pass only the slave reference to the FB_init constructors and eliminate the mapping.
Last updated: 2024-02-12

Upgrading CODESYS runtime from v4.7 to v4.9 using a bash script leads to lose the licences stored in the soft container CODESYS Forge talk (Thread)
Upgrading CODESYS runtime from v4.7 to v4.9 using a bash script leads to lose the licences stored in the soft container
Last updated: 2023-09-19

Post by nathant on Saving variable values on power cycle (RevPi Connect) CODESYS Forge talk (Post)
Hello, this seems to be a known issue, but persistent/retain variables don't seem to work properly on RevPi devices. Is there a workaround to this? All I need is for a few configuration variables to be remembered through power cycle.
Last updated: 2023-12-03

Is there a way to Connect Visualization to a web that the buttons can be used using a mobile phone? CODESYS Forge talk (Thread)
Is there a way to Connect Visualization to a web that the buttons can be used using a mobile phone?
Last updated: 2021-04-22

How to change list of referenced visualizations of a frame by programm? (NOT how to switch vis!) CODESYS Forge talk (Thread)
How to change list of referenced visualizations of a frame by programm? (NOT how to switch vis!)
Last updated: 2023-06-01

Python Scripting: How to detect and handle "Object reference not set to an instance of an object" error CODESYS Forge talk (Thread)
Python Scripting: How to detect and handle "Object reference not set to an instance of an object" error
Last updated: 2023-08-16

Is possible to transform a .sqlite file generated by a Trend Recording object to a .csv file? CODESYS Forge talk (Thread)
Is possible to transform a .sqlite file generated by a Trend Recording object to a .csv file?
Last updated: 2017-12-22

Ethernet/IP Symbolic Access to I/O Channels pass the EIP Device FB instance to another FB IN_OUT CODESYS Forge talk (Thread)
Ethernet/IP Symbolic Access to I/O Channels pass the EIP Device FB instance to another FB IN_OUT
Last updated: 2023-08-01

Post by meldawltly on Excel to Codesys 3.5 CODESYS Forge talk (Post)
Hello everyone, I have an excel file that i want to import into codesys3.5. Any idea how and what libraries can i use? To more clarify i have a table in codesys and i want to import my excel file into this table/ Thank you
Last updated: 2023-12-11

Post by meldawltly on Excel to Codesys 3.5 CODESYS Forge talk (Post)
Hello everyone, I have an excel file that i want to import into codesys3.5. Any idea how and what libraries can i use? To more clarify i have a table in codesys and i want to import my excel file into this table/ Thank you
Last updated: 2023-12-11

Post by ton on How to create a stopwatch? CODESYS Forge talk (Post)
Hi, i guess you want to make a hour counter. You need to store the measured value. Try to use a retain variable, but need a graceful shutdown, or save it your self. see https://forge.codesys.com/forge/talk/Runtime/thread/278e325579/ Succes.
Last updated: 2023-12-12

Post by open on How to create a stopwatch? CODESYS Forge talk (Post)
Thanks everyone for your input, I am using persistent variables to retain the timer value after machine shutdown, and main task to be as low as possible for the seconds TON to be accurate.
Last updated: 2023-12-14

Post by trycyclepower on How to transfer data from DINT to Union(16 Bools) which I need to use in Few FBs CODESYS Forge talk (Post)
I have DINT data from drive input and would like to use this data in Bools in bunch of the FBs. I have tried using Union but it is not working. Please suggest
Last updated: 2023-12-14

Post by nadim4114 on Control Runtime Toolkit CODESYS Forge talk (Post)
Hi @andreal, Were you able to adapt a codesys runtime to your linux based device? I am planning on the same lines. we want to develop a small controller of 64IOs for our application. We want to adapt codesys runtime on our Arm processor based embedded linux boards.
Last updated: 2023-12-26

Post by reinier-geers on One project diverent devices CODESYS Forge talk (Post)
Ive got a project with 6 Divices version 9. They use networkvariable to communicate. I whant to add an Extra. But that one is probebly verion 19. Should that be a problem ? i have to update the software to 19. But i cant update the devices
Last updated: 2024-01-12

<< < 1 .. 58 59 60 61 62 .. 167 > >> (Page 60 of 167)

Showing results of 4161

Sort by relevance or date