Post by phoward131 on Numpad decimal value requires leading zero
CODESYS Forge
talk
(Post)
I have noticed on the standard numpad dialog, if a user enters a purely decimal number (ie '.6'), the numpad will not accept the value but gives no indication. One must type a leading zero (ie '0.6') in order for it to work. Is there a way to correct this so that a user can just type the decimal value?
Last updated: 2024-04-30
Post by corriibme on JSON Utilities and SetArray
CODESYS Forge
talk
(Post)
Hello @florian, Could you please help with how to set an array value? I've been trying to use the with the setKeyWithArray method which creates the key with an empty array value. But I have been unable to set items in this array? objindex:= fb_JBuilder.SetKeyWithArray("Key6", diParentIndex := diRootIndex); objindex2:= fb_JBuilder.SetValue(value:= iValue2, diParentIndex:= objindexx); //iValue: array[0..n] of int; Best regards
Last updated: 2024-05-11
Post by andreag0 on How to access to variable value through symbolic string name
CODESYS Forge
talk
(Post)
Hello, anyone know how to get valiable value using a symbolic string name? For example: - send string to runtime using TCP/IP contains "GVL.TestINT" and get back the value. I need function that will translate the string to symbolic variable. Thank you. Andrea
Last updated: 2024-06-13
Post by mondinmr on Jitter problems on imx8
CODESYS Forge
talk
(Post)
SOLVED!!! In this imx8 max_cstate=1 in kernel boot parameters is not working! We found a workaround: #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <stdint.h> int main(void) { int fd; uint32_t value = 0; fd = open("/dev/cpu_dma_latency", O_WRONLY); if (fd < 0) { perror("Error opening /dev/cpu_dma_latency"); return 1; } if (write(fd, &value, sizeof(value)) != sizeof(value)) { perror("Error writing to /dev/cpu_dma_latency"); close(fd); return 1; } while (1) { pause(); } } This simple code launched before CODESYS do the same work! Now jitter is identical as measured by cyclictest!
Last updated: 2023-10-19
Post by rh-pk on v3.5 SP19 - Modbus TCP Devices - Channel Limit?
CODESYS Forge
talk
(Post)
Hello Vincent, I don't have 75 channels but it works for me as described above without any problems. There is also a parameter MAX_MODBUS_CHANNELS in the library parameters for the IoDrvModbusTCP module. The default value there is 100. Perhaps you are reaching the limit there? The value can be adjusted accordingly. I assume that this value is not accepted in the input dialogue and therefore the 'fixed' limit value 10 is used.
Last updated: 2024-04-10
Post by corriibme on Setting array values with JSON Utilities SL
CODESYS Forge
talk
(Post)
I have been trying to set an array value to a JSON structure of this form: {"key": [1,2,3,4]} While I have been able to create the key and set its value to an empty array, I've not had any luck in putting any value in that array. objindex:= fb_JBuilder.SetKeyWithArray("Key6", diParentIndex := diRootIndex); objindex2:= fb_JBuilder.SetValue(value:= iValue2, diParentIndex:= objindex); iValue2: ARRAY[0..3] OF INT:= [1,2,3,4]; The two lines of code above produce {"key6": []} . The second line essentially has no effect.
Last updated: 2024-05-12
Post by andreag0 on How to access to variable value through symbolic string name
CODESYS Forge
talk
(Post)
No
Last updated: 2024-06-13
Post by duvanmoreno24 on Modbus writing on value change
CODESYS Forge
talk
(Post)
Hi all, I want to know if someone has an idea of how I can write on value change in Modbus Codesys. I have a Wago PLC and I was used to work with E-cockpit which it was quite easy to do that without the necessity to trigger any value when there was a change in the variable ( I will put how easy is ). how you can see just changing the trigger in "On value Change" will do that channel writing automatically when It detects a change in those arrays. On the other hand, in Codesys if I enable the rising edge in Codesys It ask me to put a bool variable and if triggers is going to write that value. That is making me that I have to create a function or a logic to detect the change, the problem I have is that doing that is very tedious. I first approach I got it was to create a Function who returns a bool when the value change, but I tried to keep the old value but what is happening is that in Functions all the data is erased every cycle so I can not keep any Old value. so in the Main program the trigger is going to be TRUE all the time due, the old value is cero every cycle. The second approach I got it was using a function Block (POU_1) and it works but I dont want to instance that function for every Channel or value that I want to check if the value change, Basically if I have 200 values to write trhough modbus I have to create 200 instances of that function which I think it is not practicall at all. It should be a better way to implement this as e-Cockpit from Wago Does. However, I haven't been able to know how.
Last updated: 2024-03-26
Post by ryusoup on JSONByteArrayWriter problem?
CODESYS Forge
talk
(Post)
Hello, I am trying to implement a FB to make JSON formatted WSTRING type message using JSON Utilities 1.9.0.0 included in the IIoT library. In my case, I want to set some objects or arrays and set values to them later. But when I wrote as the sample below, // init builder builder(pJsonData:=pJsonData, diRootObj=>diRootObj); // set the 1st key to root diKey1 := builder.SetKeyWithArray(wsKey:="key1", diParentIndex:=diRootObj, eError=>eError); // set a value to the 1st key wsValue:="value01"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey1, eError=>eError); // set the 2nd key to root diKey2 := builder.SetKeyWithArray(wsKey:="key2", diParentIndex:=diRootObj, eError=>eError); // set a value to the 2nd key wsValue:="value02"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey2, eError=>eError); // set a value to the 1st key again wsValue:="value03"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey1, eError=>eError); // set a value to the 2nd key again wsValue:="value04"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey2, eError=>eError); // write build result writer(xExecute:=TRUE, pwData:=ADR(wsResult), udiSize:=SIZEOF(wsResult), xAsyncMode:=FALSE, jsonData:=pJsonData^); the result was: { "key1": ["value01"], "key2": ["value02", "value03", "value04"] } while my expection was: { "key1": ["value01", "value03"], "key2": ["value02", "value04"] } Inspecting pJsonData^, JSONData itself seems to be ok, so I believe the issue is something caused by the writer FB. Does anyone know how to fix it? Thanks,
Last updated: 2023-10-04
Is there any way to remove the warning for having two enumerators with the same value in the same enum?
CODESYS Forge
talk
(Thread)
Is there any way to remove the warning for having two enumerators with the same value in the same enum?
Last updated: 2016-12-22
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 pietrobalint on Retain / Persistent Variables in Codesys for Raspberry Pi
CODESYS Forge
talk
(Post)
If I select "Update boot aplication" while I download the code the persistent variables got a constant startup value. But during the running I am still not able make the persistent variables to hold they actual value.
Last updated: 2024-09-01
Post by hanpekel on Reading request counter value from modbus server in application
CODESYS Forge
talk
(Post)
Any way I can read the value of the 'request counter' (see screenshot) in my application. Amount of client connections is easily found using ModbusTCP_Slave_Device.uiClientConnections; But for request counter it does not seem to be that simple.
Last updated: 2024-10-16
Post by svn123 on In Simulation Mode, logic is not executing
CODESYS Forge
talk
(Post)
Please check the attached snapshot. I am converting an int to real and storing in rVlv01_SV and then scaling the value using LIN_TRAFO. In the bottom Status Bar of Codesys, both RUN and SIMULATION are visible. When I enter value 100 as input to INT_TO_REAL instruction and press Ctrl-F7, the value can be seen at the input but the logic seems not to work. I searched for help but could not find anything relevant. What could be the reason. Codesys ver3.5.11 svn
Last updated: 2023-12-25
Post by wehling-h on PI Input value
CODESYS Forge
talk
(Post)
Hi geoweil, have you tried to save changed values to remanent area or using a VAR RETAIN? After restart you have to initialize Counter with last remanent value. Depending on changes per cycle and the possibilitiy of your control unit to write remanent storage. Otherwise you need a buffering system to ensure save backup of last PI_Counter value. May you could read this Thread to get further help: https://forge.codesys.com/forge/talk/Engineering/thread/31e1c8349e/#bf48
Last updated: 2024-01-12
Post by syjoo on Recipe Manager in PRG (3.05.13.XX)
CODESYS Forge
talk
(Post)
I'm using version 3.5.13. Is it possible to handle Recipe Manager in PRG in this environment? Can you give me a simple example? Although it has been confirmed that the functions work on Recipe Manager, they do not work properly when implemented through FB within a simple PRG. I would like to save the current value as a recipe or load the recipe's value as the current value. And I want to save the recipe as a file or load the recipe saved as a file. somebody help me. (TT)
Last updated: 2024-04-15
Post by egau on Mutate Hash table value
CODESYS Forge
talk
(Post)
Hi, using the ElementCollections Library, why isn't it possible to mutate a value found within a HashTable? From what I understand, the only way to change a value would be to use the RemoveByKey(), followed by AddKeyValuePair(). My goal is to use a Data Structure that works like a Dictionary in Python. The HashTable seems to come close to this, except that the values themselves seem to be immutable... In python, we can mutate a dict easily (see attached picture).
Last updated: 2024-08-29
Post by solidlogicguy on Little endian to Float from Modbus RTU
CODESYS Forge
talk
(Post)
Just tried and returns the same value but in scientific notation.
Last updated: 2024-01-08
Post by reinier-geers on Compile error
CODESYS Forge
talk
(Post)
Somehowe its this problem. Delete and problem is gone. I cant change this value eihter
Last updated: 2024-02-23
Post by alexgooi on Modbus writing on value change
CODESYS Forge
talk
(Post)
The way I usally tackle this is by syncing only words (then you are able to use the FB above). If you then want to write a Boolean simply type it like this. Value[1].0 := Bool1; Value[1].1 := Bool2; Value[1].2 := Bool3; Uints have the same number of bits than a INT/WORD so these ones will work as well (they are only represented diffrently). A Real will work but you will loose some infomration in the conversion. If you want to keep the information you can convert 2 words to a float with a function (for example with the IEEE-754 standard) . In this way the syncing to the server is very simple and in the Codesys Program you decide what part of the word you want to use.
Last updated: 2024-04-03
Post by mmpl on Array of UDT Compare
CODESYS Forge
talk
(Post)
Hi I am trying to compare value of Array. I am getting an error. I attached picture. Please help.
Last updated: 2024-04-08
Post by rmaas on Fieldbus has lost synchronicity
CODESYS Forge
talk
(Post)
Thanks for the suggestions! It seems that increasing the value DCInSyncWindow helped, running without error for 1/2 day now.
Last updated: 2024-04-15
Post by dkugler on Text List Fallback Value
CODESYS Forge
talk
(Post)
why you adding this ' ' ? you don't need them in the text field :-) delete them, write only Unknown and everything will be as expected
Last updated: 2024-04-18
Post by installwhat on How to access to variable value through symbolic string name
CODESYS Forge
talk
(Post)
https://help.codesys.com/api-content/2/codesys/3.5.12.0/en/_cds_operator_string_to/ Something like this?
Last updated: 2024-06-13
Post by installwhat on How to access to variable value through symbolic string name
CODESYS Forge
talk
(Post)
https://help.codesys.com/api-content/2/codesys/3.5.12.0/en/_cds_operator_string_to/ Something like this?
Last updated: 2024-06-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
.