Search talk: ONE SHOT FUNCTION BLOCK

 
<< < 1 .. 24 25 26 27 28 .. 43 > >> (Page 26 of 43)

Post by timvh on Case Function - Multiple Conditions, Is it possible? CODESYS Forge talk (Post)
This is not possible. Possible solution could be: CASE var1 OF 10: CASE var2 OF 10:; 20:; END_CASE 20: CASE var2 OF 10:; 20:; END_CASE ELSE ; END_CASE
Last updated: 2024-11-05

Post by pistola on Case Function - Multiple Conditions, Is it possible? CODESYS Forge talk (Post)
Thanks for the information, I ended up just making a long if else statement as each variable had 3 possible options, I figured at least this way it would still work.
Last updated: 2024-11-05

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 eschwellinger on Same program to more than one PLC CODESYS Forge talk (Post)
just open http://localhost:8080 in Chromium then it will show the webvisu ( sure you need to this in your CODESYS Application)
Last updated: 2023-08-24

Post by tomas111 on Help with error C0142 CODESYS Forge talk (Post)
There was an exact mistake. I did as they wrote. I created a visualization and transferred it from the old one and everything works. CS 3.5 SP 19. Thank you.
Last updated: 2023-10-04

Post by gurke258 on EL2911 CODESYS Forge talk (Post)
Hello, sorry to open this again. I can't find the right ESI for EL1918 as Safety PLC.. I only have the one without safety PLC. I look on Beckhoff website but i didnt found it. Can anyone help me? EDIT: I found it :)
Last updated: 2023-10-12

Post by davidbo on How to switch between dynamic IP address and dynamic? CODESYS Forge talk (Post)
Well. One can do that, I have found a python script which can modify /etc/dhcpcd.conf and I suppose there is a way I can execute it from CODESYS and it seems to be the only way
Last updated: 2023-11-08

Post by snhatton on Trace commands via Test Manager CODESYS Forge talk (Post)
One option could be to use a trigger variable to execute your trace and then toggle that variable from a step within a test case.
Last updated: 2023-12-08

Post by voffi on Creating Symbol Config File from Python CODESYS Forge talk (Post)
Hello! One can create a symbol config entry in CODESYS by using create_symbol_config in a python script. Is there a way to create the xml symbol config file (!) from within a python script without going online? Thank you!
Last updated: 2023-12-12

Post by marekxc on Little endian to Float from Modbus RTU CODESYS Forge talk (Post)
Maybe try going back to step one and: Var Reg1: WORD; Reg2: WORD; Reg12: DWORD; Value: REAL; end_var // program Reg1:= 4096; Reg2:= 14884; Reg12:= (reg2 * 65536) + reg1; Value:= DWORD_TO_REAL(Reg12);
Last updated: 2023-12-28

Post by ewi04 on Recipe Manager - RecipeManCommands, load & write wrong values, Bug? CODESYS Forge talk (Post)
Nice to hear that I'm not the only one. I share your suffering. I was on the verge of doing the same.
Last updated: 2024-01-04

Post by reinier-geers on Add licence CODESYS Forge talk (Post)
Epis smart 9 1000 Codesys 15. But programm in Version 16 Linux 4.9 When i put a stick in the USB i can see that one. So why not the dongle
Last updated: 2024-01-08

Post by preimesbergert on Codesys Control for Raspberry Pi 4.10.0.0 - Raspberry Pi OS > 2023-12-05 CODESYS Forge talk (Post)
ok, thanks for the info- just one more question. isn't the 4.10 release the october release (this is also not working)?!
Last updated: 2024-01-09

Post by peter-skokanek on Rpi install runtime licence on SP13 CODESYS Forge talk (Post)
Hi Edwin, thank for info. Where I can download 4.11.0.0? I checked it in store and there is the newest one 4.10.0.0
Last updated: 2024-01-10

Post by simotion on Multiple Ethercat masters on one IPC CODESYS Forge talk (Post)
Our IPC has multiple seperate ethernet ports. Is it possible to have two ethercat masters on the IPC (on two different ehternet ports off course)? If so, is there documentation available on this, or are there watchouts? Thansk
Last updated: 2024-01-12

Post by simotion on Multiple Ethercat masters on one IPC CODESYS Forge talk (Post)
Our IPC has multiple seperate ethernet ports. Is it possible to have two ethercat masters on the IPC (on two different ehternet ports off course)? If so, is there documentation available on this, or are there watchouts? Thanks
Last updated: 2024-01-12

Post by theo on Forget liscence on raspberry CODESYS Forge talk (Post)
Hello everyone, I installed my liscence on my raspbery but I can't reactivate it after installing it on a new SD card because the old one was broken. I get an error message 10957.
Last updated: 2024-01-25

Post by jinlee on Multiple WebVisu CODESYS Forge talk (Post)
Hi there, I am having a similar problem like you. I have 3 screens connected to one PLC. I have set 3 different URLs for them. But 3 of them are still dependent to each other. How can I make them independently ? Kind regards, Jin.
Last updated: 2024-01-25

Post by kyo424 on EtherCAT Can't reconnect to servo drive CODESYS Forge talk (Post)
Hi, I meet the same issue, too. But no one can answer me,so sad. If you got solution, kindly tell me, thanks.
Last updated: 2024-01-26

Post by goki on WAGO RS485 (753-652) on a 750-362 CODESYS Forge talk (Post)
Forgot to describe the pictures. Modbus1: is the actual configuration in codesys 3.5 Modbus2: is the config in WAGO I/O Modbus3: is the configuration from the old one with Beckhoff twincat (we are changing from Beckhoff to wago and codesys)
Last updated: 2024-02-08

Post by totorovic on Project loses 'Download time' information CODESYS Forge talk (Post)
Hello, It happens that the offline project (the IDE one) loses the Download information. Because of this the code has to be download again. Is it possible to force this info somewhere? Is it possible to ignore it? How can I solve this ? Thank you
Last updated: 2024-02-13

Post by rafaelbrito on Error while processing the visualization: Client id not present or no longer valid CODESYS Forge talk (Post)
I'm having the same problem after configuring array in Alarm Group (I configured only one item per line, since Alarm Group does not work with structures / arrays). Can someone help us?
Last updated: 2024-02-20

Post by rafaelbrito on Error while processing the visualization: Client id not present or no longer valid CODESYS Forge talk (Post)
I'm having the same problem after configuring array in Alarm Group (I configured only one item per line, since Alarm Group does not work with structures / arrays). Can someone help us?
Last updated: 2024-02-20

Post by rafaelbrito on Error while processing the visualization: Client id not present or no longer valid CODESYS Forge talk (Post)
I'm having the same problem after configuring array in Alarm Group (I configured only one item per line, since Alarm Group does not work with structures / arrays). Can someone help us?
Last updated: 2024-02-20

Post by rafaelbrito on Error while processing the visualization: Client id not present or no longer valid CODESYS Forge talk (Post)
I'm having the same problem after configuring array in Alarm Group (I configured only one item per line, since Alarm Group does not work with structures / arrays). Can someone help us?
Last updated: 2024-02-20

<< < 1 .. 24 25 26 27 28 .. 43 > >> (Page 26 of 43)

Showing results of 1060

Sort by relevance or date