Search talk: LOGGING THE VARIABLE FOR LONG TIME

 
<< < 1 .. 27 28 29 30 31 .. 265 > >> (Page 29 of 265)

Post by jbu0105 on Dynamic limits invaild CODESYS Forge talk (Post)
Hello, For my delta robot i wil use the MC_MoveCirvularAbslolute function. Every time that i set the execute of this function has my Axis group a error. Thats is: The dynamic limits for the movement are invalid. What can i do that this error go away? I saw a view funcitons with limit dymanics but i don't now how they work. If i use the function MC_MoveLinearAbsolute than i have no error. Does anyone know how i fix this?
Last updated: 2025-04-04

Post by jbu0105 on Dynamic limits invaild CODESYS Forge talk (Post)
Hello, For my delta robot i wil use the MC_MoveCirvularAbslolute function. Every time that i set the execute of this function has my Axis group a error. Thats is: The dynamic limits for the movement are invalid. What can i do that this error go away? I saw a view funcitons with limit dymanics but i don't now how they work. If i use the function MC_MoveLinearAbsolute than i have no error. Does anyone know how i fix this?
Last updated: 2025-04-04

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 mubeta on Some 'pathetic' errors in SoftMotion program CODESYS Forge talk (Post)
Yes, this point is part of my misunderstanding. Why, after the execution ot the motion FBs is set to FALSE and exsecuted at lest one time, it must be continuosly called, even if the motion control it's take from another subsequent instruction. This is what I really don't undertand, but what in fact it's happening. For example, in case of stopping a MoveVelocity FB, then Halting the motion by the related FB, the axis at spot goes into error. If there was bad trigger management, the various instructions would NEVER work.
Last updated: 2024-07-18

Post by pernockham on Gateway in China - "Gateway not connected" CODESYS Forge talk (Post)
Gateway and runtime (Control for linux SL) on a debian linux. Thanks for your check. Good to know. I will probably travel there in about a months time so that will give me better possibility for further testing. (on a side note, I dont get mail-updates on forum-subscriptions, need to check the topics manually)
Last updated: 2025-09-26

how to make a real time CLock CODESYS Forge talk (Thread)
how to make a real time CLock
Last updated: 2011-05-25

Time Measurement between two events with V2.3 using Wago750-890 CODESYS Forge talk (Thread)
Time Measurement between two events with V2.3 using Wago750-890
Last updated: 2020-12-26

Calculate Time Between Two Events Using RTC CODESYS Forge talk (Thread)
Calculate Time Between Two Events Using RTC
Last updated: 2024-08-14

Temu Coupon Code $100 Off [acr639380] First Time User CODESYS Forge talk (Thread)
Temu Coupon Code $100 Off [acr639380] First Time User
Last updated: 2024-10-18

Control Win one instance at a time CODESYS Forge talk (Thread)
Control Win one instance at a time
Last updated: 2024-10-25

Control Win one instance at a time CODESYS Forge talk (Thread)
Control Win one instance at a time
Last updated: 2024-10-25

Control Win one instance at a time CODESYS Forge talk (Thread)
Control Win one instance at a time
Last updated: 2024-10-25

Control Win one instance at a time CODESYS Forge talk (Thread)
Control Win one instance at a time
Last updated: 2024-10-25

Temu coupon code $100 off [acp856709] first time offer CODESYS Forge talk (Thread)
Temu coupon code $100 off [acp856709] first time offer
Last updated: 2024-10-25

Temu Coupon Code $100 Off [acu934948] First Time User CODESYS Forge talk (Thread)
Temu Coupon Code $100 Off [acu934948] First Time User
Last updated: 2024-10-25

Temu Coupon Code [acu577459 & acq615756] first time customers CODESYS Forge talk (Thread)
Temu Coupon Code [acu577459 & acq615756] first time customers
Last updated: 2024-10-26

Temu Coupon Code [acr552049 & acq615756] first time customers CODESYS Forge talk (Thread)
Temu Coupon Code [acr552049 & acq615756] first time customers
Last updated: 2024-10-26

Symbol Configuration to be Build every time! CODESYS Forge talk (Thread)
Symbol Configuration to be Build every time!
Last updated: 2025-05-23

Medical Billing Time Limits in California and Washington Explained CODESYS Forge talk (Thread)
Medical Billing Time Limits in California and Washington Explained
Last updated: 2025-09-03

Alarm Manager - large delay time not accepted CODESYS Forge talk (Thread)
Alarm Manager - large delay time not accepted
Last updated: 2019-07-10

How to get task cycle time before Application run CODESYS Forge talk (Thread)
How to get task cycle time before Application run
Last updated: 2021-05-05

Ping with SysSockPing and Connection Time Out CODESYS Forge talk (Thread)
Ping with SysSockPing and Connection Time Out
Last updated: 2019-01-29

first Time connect Codesys with Raspberry pi CODESYS Forge talk (Thread)
first Time connect Codesys with Raspberry pi
Last updated: 2021-12-23

Implementing a time delay within a function block CODESYS Forge talk (Thread)
Implementing a time delay within a function block
Last updated: 2009-02-13

Time Quanta, Baud Rate Prescaler on MCP2515 CODESYS Forge talk (Thread)
Time Quanta, Baud Rate Prescaler on MCP2515
Last updated: 2019-05-21

<< < 1 .. 27 28 29 30 31 .. 265 > >> (Page 29 of 265)

Showing results of 6609

Sort by relevance or date