Post by jegerjon on Find index based on values
CODESYS Forge
talk
(Post)
Hi, I need to figure out witch indexes of an Array containing the highest and lowest values. Typically search for the 5 lowest values and result the indexnumbers containing the 5 lovest values. is there a library for this, or codeexample?
Last updated: 2023-08-20
Post by jegerjon on Find index based on values
CODESYS Forge
talk
(Post)
Hi, I need to figure out witch indexes of an Array containing the highest and lowest values. Typically search for the 5 lowest values and result the indexnumbers containing the 5 lovest values. is there a library for this, or codeexample?
Last updated: 2023-08-20
Post by drml on Array to String
CODESYS Forge
talk
(Post)
If a size is not specified, CODESYS allocates 80 characters by default for a string. After 7 seconds, does your Json_string contain all of your 20000 key/values? Or is the result truncated to 80 characters?
Last updated: 2024-07-19
Post by mmpl on Array to String
CODESYS Forge
talk
(Post)
Hi Thank you for you reply. Yes I can concatenat longer string. I am using string_Util_Intern libraray for concat. The issue is abot plc performance. It takes 7 second. I am looking to improve time.
Last updated: 2024-07-23
Post by timvh on Readable IO names
CODESYS Forge
talk
(Post)
IF you create an ENUM {attribute 'qualified_only'} {attribute 'strict'} TYPE E_IO : ( FIRST := 0, SECOND := 1 ); END_TYPE You should be able to access the array items like: IOCard_OUTPUT[E_IO.FIRST]
Last updated: 2024-09-28
Post by rckalex on Changing Trace Variable at Runtime
CODESYS Forge
talk
(Post)
Is it possible to change the variable being traced during runtime? I would like to use the CURRENTCLIENTID in combination with an array of real numbers to alter the traced variable in a display window, without needing to create separate visualizations for each variable.
Last updated: 2025-01-22
Post by ton on Length of string and Array of bytes
CODESYS Forge
talk
(Post)
When you use a string value 0 will be the end terminator. Everything after this will not be in the string. I guess byte 2394 has a value 0.
Last updated: 2025-04-01
Post by mariacugnier on Reading Devices ComState
CODESYS Forge
talk
(Post)
Does anyone know how to access the ModbusTCPSlave_Diag.ComState without declaring each one by the device name? I attached them to an array but since I may have dozens of devices this is still a bad solution.
Last updated: 2025-05-22
Post by mariacugnier on Reading Devices ComState
CODESYS Forge
talk
(Post)
Does anyone know how to access the ModbusTCPSlave_Diag.ComState without declaring each one by the device name? I attached them to an array but since I may have dozens of devices this is still a bad solution.
Last updated: 2025-05-22
Post by nxbp on Cam Editor And Cam Problem
CODESYS Forge
talk
(Post)
I Created cam with 361 cam points ( 0,1,2.....360 ). The values in the Cam_A array do not match the Cam points entered in the Cam editor.
Last updated: 2025-06-22
Post by naidureginald on creating a visualization table
CODESYS Forge
talk
(Post)
hi all im trying to create a visualisation table for a axis alarms list. upon entering the data array, i recieve a message as attached. any help would be much appreciated.
Last updated: 2024-01-03
Post by apurv on Cannot pass array of constant size to a function as a reference
CODESYS Forge
talk
(Post)
Could not find the solution to this issue but I have side stepped this by creating a global variable MAX_SIZE.
Last updated: 2024-01-08
Post by gurkan on OPCUA array max length?
CODESYS Forge
talk
(Post)
2000 works. When testing with UA Expert there is a timeout from the OPCUA Server when trying to subscribe to the variable CPU do not seems to be to affected. The memory(RAM) however is building up
Last updated: 2024-02-19
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
Post by dominggus on Recipe Manager - RecipeManCommands, load & write wrong values, Bug?
CODESYS Forge
talk
(Post)
I've workaround it by not using an array but 30 instances of the struct and putting these in the recipe, and then using converter functions to save and load
Last updated: 2024-03-02
Post by kuuki on Losing focus of variable
CODESYS Forge
talk
(Post)
Hi. Does anyone know how to fix a problem with losing focus of a variable in FBD editor. Sometimes when trying to edit variable name, array index, etc. in network, editor randomly exits "text edit mode" and variable is replaced by text you were typing.
Last updated: 2024-03-26
Post by damian177 on Raspbery Pi and Calendar
CODESYS Forge
talk
(Post)
Hi, In my visualisation I have a "Calendar" control. I would like save day and month which will be clicket by operator on this control . forexample save in string array. How do this ?
Last updated: 2024-04-23
Post by damian177 on Visualization - table element
CODESYS Forge
talk
(Post)
Hi, In my application I use table elemnt with filled by STRING ARRAY. I would like to implement the following functionality : When I click on second row, that this row will be cleared. Anyone can help me?
Last updated: 2024-04-25
Post by mxj262 on FB having single input but initialized with Array
CODESYS Forge
talk
(Post)
Ok yes now the loop has stopped when I set sum to zero before the for loop. Why will it retain the sum value from the last call?
Last updated: 2024-05-06
Post by gcodejedi on The element of type 'VisuFbElemImage' could not be updated. Reason: Index was outside the bounds of the array.
CODESYS Forge
talk
(Post)
Hello, I am experiencing this exact same issue. Were you able to get yours resolved? If so, would you mind sharing the solution you discovered? Thanks!
Last updated: 2025-11-03
Post by eschwellinger on The element of type 'VisuFbElemImage' could not be updated. Reason: Index was outside the bounds of the array.
CODESYS Forge
talk
(Post)
check with the CODESYS Installer er if you are on latest Visuversion. 4.9.1.0
Last updated: 2026-01-27
Post by scoob on ModbusFB - Slow Response Time
CODESYS Forge
talk
(Post)
Hello, I have been trying to use the ModbusFB functions so I can put some code into libraries, but it seems to be very slow for me. I have a Modbus device with 100ms registers. I previously setup 10 channels in the 'traditional' Modbus Slave with channels and mappings - and set a cyclic trigger at 100ms - this worked fine. I then tried the ModbusFB example, and setup reading the same 10 blocks of modbus addresses, copying the example and putting all of the requests into an array and triggering the requests sequentially. I timed how long the requests are taking to get round to each one, and it is around 1s 450ms. How do I speed this up to match the cyclic time? IF NOT(init) THEN init := TRUE; // Set the required IP address: ipAddress[0] := 192; ipAddress[1] := 168; ipAddress[2] := 1; ipAddress[3] := 10; // Pass the required IP address to the clinet FB: client_NetworkSwitch.aIPaddr := ipAddress; client_NetworkSwitch.udiLogOptions := (ModbusFB.LoggingOptions.ClientConnectDisconnect OR ModbusFB.LoggingOptions.ClientReceivedValidReplies); // Try to connect the client client_NetworkSwitch(xConnect:=TRUE); // Configure all the channels to read connecting them to the client: portStatus_Request(rClient := client_NetworkSwitch, uiStartItem := 4096, uiQuantity := 32, pData := ADR(portStatus), udiReplyTimeout := udiReplyTimeout); portSpeed_Request(rClient := client_NetworkSwitch, uiStartItem := 4352, uiQuantity := 32, pData := ADR(portSpeed)); flowControl_Request(rClient := client_NetworkSwitch, uiStartItem := 4608, uiQuantity := 32, pData := ADR(flowControl)); linkUpCounter_Request(rClient := client_NetworkSwitch, uiStartItem := 5888, uiQuantity := 32, pData := ADR(linkUpCounter)); txPacketCounter1_Request(rClient := client_NetworkSwitch, uiStartItem := 8192, uiQuantity := 100, pData := ADR(txPacketCounter1)); txPacketCounter2_Request(rClient := client_NetworkSwitch, uiStartItem := 8292, uiQuantity := 28, pData := ADR(txPacketCounter2)); rxPacketCounter1_Request(rClient := client_NetworkSwitch, uiStartItem := 8448, uiQuantity := 100, pData := ADR(rxPacketCounter1)); rxPacketCounter2_Request(rClient := client_NetworkSwitch, uiStartItem := 8548, uiQuantity := 28, pData := ADR(rxPacketCounter2)); txErrors_Request(rClient := client_NetworkSwitch, uiStartItem := 8704, uiQuantity := 64, pData := ADR(txErrors)); rxErrors_Request(rClient := client_NetworkSwitch, uiStartItem := 8960, uiQuantity := 64, pData := ADR(rxErrors)); // Trigger all client requests initially FOR clientRequestsCnt := 0 TO (SIZEOF(clientRequests)/SIZEOF(clientRequests[0]))-1 DO pClientRequest := clientRequests[clientRequestsCnt]; pClientRequest^.xExecute := TRUE; END_FOR // Prepare sequential trigger / control of client requests. clientRequestsCnt := 0; pClientRequest := clientRequests[clientRequestsCnt]; END_IF // Call the client to do request processing: client_NetworkSwitch(); // Now we trigger client request sequentially ... IF NOT pClientRequest^.xExecute AND NOT pClientRequest^.xDone AND run AND client_NetworkSwitch.xConnected THEN pClientRequest^.xExecute := TRUE; END_IF // .. and check result/error IF pClientRequest^.xExecute AND run AND client_NetworkSwitch.xConnected THEN IF pClientRequest^.xDone THEN // Prepare next trigger of client request (a rising edge of xExecute) pClientRequest^.xExecute := FALSE; IF clientRequestsCnt < SIZEOF(clientRequests)/SIZEOF(clientRequests[0])-1 THEN // next client request clientRequestsCnt := clientRequestsCnt + 1; ELSE clientRequestsIterationCounter := clientRequestsIterationCounter + 1; clientRequestsCnt := 0; END_IF pClientRequest := clientRequests[clientRequestsCnt]; END_IF END_IF I did try a semi-coded way using the IoDrvModbusTCP library, and setting the slave com settings, then 10 commands and 10 requests, then using a TP on xDone as a pause, before triggering another request - this is time the delay is around 120ms - so the device is fine with the speed, just something I am doing wrong in the ModbusFB method I am sure.
Last updated: 2024-04-26
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.