Post by ndzied2 on Rounding error in simple addition
CODESYS Forge
talk
(Post)
This is a consequence of how computers store floating point numbers. 0.1 cannot be exactly represented in a computer. This is not a CoDeSys thing. Here is a link to a converter to show you the exact value that is represented when you use a REAL data type (which is a 32 bit float). https://baseconvert.com/ieee-754-floating-point If you really need to keep track of 0.1 increments. use INT OR DINT and then add 1 each time and assume that there is one decimal place.
Last updated: 2024-05-24
Post by liamb on Converting CANbus to Decimal from signed 2's complement
CODESYS Forge
talk
(Post)
I need to combine two 8 bit CANbus messages to 16 bits signed int then convert to decimal Decimal from signed 2's complement. I've been using the below code to read for new messages, combine them then assign them to a variable What is the best way to do this for from signed 2's complement? fbRxMessage351(Data := RxMessage351Data); IF fbRxMessage351.NewMessage THEN ChargeVoltage := (WORD_TO_REAL((RxMessage351Data[0]) + ((RxMessage351Data[1]) * 256))) * 0.1; END_IF
Last updated: 2024-08-16
Post by domoticom on multiply gives negatives
CODESYS Forge
talk
(Post)
Hi, Attached net gives sometimes negatives, what am I doing wrong ? PS: detectie_nalooptijd_s = INT
Last updated: 2024-01-04
Post by aris-k on Pack TWO INT variable to one DINT variable
CODESYS Forge
talk
(Post)
You can try this setup: DINTVar := SHL(INT_TO_DINT (Low_Word_INT_Var),16) + INT_TO_DINT(High_Word_INT_Var);
Last updated: 2024-05-07
Post by timvh on Alarm Configuration Notification Action
CODESYS Forge
talk
(Post)
If it is a BOOL, then use: ...Error_Active := ALARM BOOL: ALARM INT: STATE
Last updated: 2024-05-14
Post by pernockham on Slider instance value when accessed through "execute ST-code"
CODESYS Forge
talk
(Post)
I think this will not work. I reworked and used an int as source instead.
Last updated: 2025-02-07
Post by nz-dave on Variable Length Array - Cannot mix variable and fixed length dimensions?
CODESYS Forge
talk
(Post)
VAR CONSTANT size : INT := 10; END_VAR My_Array : ARRAY[1..SIZE , 1..5] OF REAL;
Last updated: 2025-05-26
Post by tvm on Cannot pass array of constant size to a function as a reference
CODESYS Forge
talk
(Post)
maybe this would be a better approach, then you don't have to pass the constant at all. FUNCTION fun : INT VAR_IN_OUT arr: ARRAY[*] OF INT; END_VAR VAR lower: DINT; upper: DINT; END_VAR lower:= LOWER_BOUND(arr, 1); upper:= UPPER_BOUND(arr, 1); see here as well https://help.codesys.com/api-content/2/codesys/3.5.12.0/en/_cds_datatype_array/
Last updated: 2024-01-08
Post by sumit on Not able to see input data coming from eip adapter on codesys
CODESYS Forge
talk
(Post)
Hello there, I have an eip adapter running (remotely) that is sending data back to eip scanner (running on codesys). I can send data from scanner (codesys) to the adapter but not getting the data back from the adapter. I have verified the incoming data on wireshark but I don't see this data in the codesys. I have tried local variable mapping and global variable mapping not variable values just stays at 0. Please guide.
Last updated: 2024-02-29
Hi, I try to send and receive data using a UDP connection via SysSocket 3.5.17.0. While sending data works fine, I have problems with the receiving part. I am able to capture the received data of client side in wireshark But unable to capture it on the codesys
CODESYS Forge
talk
(Thread)
Hi, I try to send and receive data using a UDP connection via SysSocket 3.5.17.0. While sending data works fine, I have problems with the receiving part. I am able to capture the received data of client side in wireshark But unable to capture it on the codesys
Last updated: 2024-06-03
Post by mondinmr on Unexpected behavior in cyclic encoder read method during INT overflow (wrap-around)
CODESYS Forge
talk
(Post)
Hi everyone, Iβm investigating a potential issue with a cyclic method we use for reading incremental encoders in our libraries. Iβve come across two implementations that, at first glance, appear to perform the same operation: motionUnit.vlPositionActualValue is UINT due strange encoder type. Version A METHOD PROTECTED cyclicReadField VAR_INST actPosFieldOld: INT; rI: INT; delta: INT; END_VAR rI := TO_INT(motionUnit.vlPositionActualValue); delta := rI - actPosFieldOld; m_actPosRaw := m_actPosRaw + TO_LREAL(delta); actPosFieldOld := rI; IF settings.velocityFeebackMapped THEN m_actVelRaw := TO_LREAL(motionUnit.velocityActualValue); END_IF Version B METHOD PROTECTED cyclicReadField VAR_INST actPosFieldOld: INT; END_VAR m_actPosRaw := m_actPosRaw + TO_LREAL(TO_INT(motionUnit.vlPositionActualValue) - actPosFieldOld); actPosFieldOld := TO_INT(motionUnit.vlPositionActualValue); IF settings.velocityFeebackMapped THEN m_actVelRaw := TO_LREAL(motionUnit.velocityActualValue); END_IF Both use INT and the same delta logic, so they seem equivalent. However, when an overflow (wrap-around) occurs, version A continues correctly as expected, while version B unexpectedly resets to -32768 without a clear reason. Has anyone experienced similar behavior or can shed light on what might be happening here? It almost seems as if the cast to LREAL is being applied before the calculation β but that would be illogical and potentially very dangerous in many situations! Thanks!
Last updated: 2025-05-13
Post by k4zz on Continuous Build Server
CODESYS Forge
talk
(Post)
Hallo Martin, Thank you so much for the Code example. It works really fine for .porject Types. However, I encountered a challenge when attempting to apply it to .library Types. I also tried the option to "Perform static analysis automatically after compilation" # get Project values myProject = projects.primary # Creates an active application app = myProject.active_application # build Application and run static code analysis app.generate_code() Could you please offer any insights into why this might be occurring?
Last updated: 2024-03-15
Post by k4zz on Scripting static code analysis
CODESYS Forge
talk
(Post)
Currently, I am working on integrating static code analysis into our CI/CD pipeline. Specifically, I have successfully performed static code analysis for .project types, and it works flawlessly. However, I have encountered difficulties in executing the same for .library types. In this regard, I have tried two methods: system.commands["staticanalysis", "run"].execute() # get Project values myProject = projects.primary # Creates an active application app = myProject.active_application # build Application and run static code analysis app.generate_code() your help is greatly appreciated.
Last updated: 2024-03-18
CODESYS V35SP12 does not save data setting with rapsberry after reboot
CODESYS Forge
talk
(Thread)
CODESYS V35SP12 does not save data setting with rapsberry after reboot
Last updated: 2018-04-17
2D array , data move from a column to another column
CODESYS Forge
talk
(Thread)
2D array , data move from a column to another column
Last updated: 2011-03-23
Which kinds of data is transferred with 'Scan for devices' command?
CODESYS Forge
talk
(Thread)
Which kinds of data is transferred with 'Scan for devices' command?
Last updated: 2020-12-14
Eine Nummer (Data Type=Double) Schicken mit TCP Client Server Codesys
CODESYS Forge
talk
(Thread)
Eine Nummer (Data Type=Double) Schicken mit TCP Client Server Codesys
Last updated: 2021-09-08
"Out of global data memory". Is there a way to increase the memory?
CODESYS Forge
talk
(Thread)
"Out of global data memory". Is there a way to increase the memory?
Last updated: 2022-03-28
store trend data in the PLC - How to use it (Codeys 2.3.9.7)
CODESYS Forge
talk
(Thread)
store trend data in the PLC - How to use it (Codeys 2.3.9.7)
Last updated: 2022-04-07
[SOLVED][ModBus TCP/IP] How to read data from thermostat.
CODESYS Forge
talk
(Thread)
[SOLVED][ModBus TCP/IP] How to read data from thermostat.
Last updated: 2017-06-08
How do I configure a visualisation text object to enter data?
CODESYS Forge
talk
(Thread)
How do I configure a visualisation text object to enter data?
Last updated: 2016-05-20
3.5.17: Setting up OPCUA Client data source to another PLC OPCUA server
CODESYS Forge
talk
(Thread)
3.5.17: Setting up OPCUA Client data source to another PLC OPCUA server
Last updated: 2021-11-02
i need to do a data logging with 750-842
CODESYS Forge
talk
(Thread)
i need to do a data logging with 750-842
Last updated: 2013-08-26
How to read SD card data and store in array
CODESYS Forge
talk
(Thread)
How to read SD card data and store in array
Last updated: 2012-11-26
exporting or copying the COE online data from an ethercat slave device
CODESYS Forge
talk
(Thread)
exporting or copying the COE online data from an ethercat slave device
Last updated: 2019-10-30
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
.