Post by viksym on How to get the motor scaling value from code
CODESYS Forge
talk
(Post)
If anybody finds this in the future, I managed to do it like this: scalingValue := EncoderPulseCountPerRev / ABS(AxisName.fScaleFactor); No need to use MC_ReadParameter as I am able to read this value directly from the axis object. Using an absolute value of the fScaleFactor is there in case the axis is set as inverted, in which case it would be a negative value. I was not able to figure out how to get EncoderPulseCountPerRev programatically, but since all my servos use an encoder with pulse count per revolution of 16#800000, the final equation looks like this: scalingValue := 16#800000 / ABS(AxisName.fScaleFactor);
Last updated: 2025-08-19
Post by garrian on How to sort JSON object in codesys
CODESYS Forge
talk
(Post)
Hi there, I'm testing out MQTT from my Wago PLC using JSON object. I have managed to publish this {"Temperature":15.6,"Setpoint":38.0} to my broker. Now I', trying to subscribe to the same message. The result is this: '{"Temperature":15.6,"Setpoint":38.0}95}ê$10šå$04$Nå$08²Ÿå$0B` á$08@šå' First, why do I see 95}ê$10šå$04$Nå$08²Ÿå$0B` á$08@šå' at the end of the message? Second, how Can i sort out this data to use it in my program? I followed a youtube tutorial which gave me the attached result, which works. But I need some other smart way of doing this when the object gets even more data in it. Any help is very appreciated :)
Last updated: 2024-05-04
Post by tcarlbom on Read tag values using external program
CODESYS Forge
talk
(Post)
This is my first time posting in this forum and I am new to codesys. I am a fullstack developer and I am trying to figure out how the following. What would be the best approach to create a own/custom tag browser? Either directly in codesys ide or using a separate custom program (perhaps a winforms application). 1.a. Shall I parse the .project xml file to get a list of all tags in the project? 1b. Shall I use python scripting in codesys ide to get a list of tags? Once one have selected some tags. These tags shall be exposed to a python program which will be acting as a edge computer. It’s fine to be able to import a file. 2a. I found a library called codesys plchandler which (as I understand) acts a rest api server. Is this correct? If so, can I query the api from a custom python script, ie can query what tags exist in project and or read tag values? My research so far. From earlier projects I know that using opc ua would be perfect for this but from my opinion it’s bloating the plc since it’s resource intensive. So opc ua is not an option. Codesys automation server is neat. But I don’t want to rely on some cloud services and subscription based pricing. There seem to be several interesting codesys libraries like mqtt, tcp server and NVL sender which would help me expose plc tags. But all have a common problem. One have to manually write what tags which will be used in these function blocks. I want a similar experience like “selecting” tags in the opc ua or the codesys tracing, ie a tag browser.
Last updated: 2024-06-28
Post by martinlithlith on Mux I2C
CODESYS Forge
talk
(Post)
Hi! I´ll try to get this thread going again as i´m having simliar problems. Right now i get a red triangle on my connected devices (i´m testing with a BME280 sensor and a PCA9685 resvo driver). The TCA9548 have the green symbol beside it. On the "red" devices i get that the bus is not running. I have tried to either run it using the parent bus cycle setting or creating a new freewheeling task prio 1 but nothing helps. I have compared my settings to the settings from the example from the MUX package and i have read (i think) every thread in forge that could be of interest. EDIT: The ic2detect only shows the mux (70-70) and the servo drive (70-76) so i´ll look in to if i managed to burn the 280-sensor while soldering). Another question regarding the 280 sensor. I have a sensor GY-BM E/P 280 that should record humidity and temperatur. Could this be a problem with the library? Does anyone have an idea of what i might be doing wrong? I have some experience from Codesys but not much so this could be an easy one. All suggestions are welcome. I tried to upload the project archive but it did not work. Should i upload the export or how could i show you my horrible project? Best, Martin
Last updated: 2023-10-22
Post by lbartik on J1939 TX/RX PDU1
CODESYS Forge
talk
(Post)
Is it possible to transmit a PDU1 PGN using the J1939 manager and local device? What if I need to transmit a PGN RQST via 0xEA00 (PGN 59904)? How would I do this P2P (Destination < 0xFF) or broadcast (Destination 0xFF)? I don't think this is possible for any destination type. I don't think it's possible to receive broadcast PDU1 messages either. For example, an address claim PGN 60928 (0x18EEFF80) is addressed to all nodes (0xFF) and not any specific local device so it will be filtered out. These are major oversights in the IoDrvJ1939 library to not support every PDU1 RX/TX scenario. IoDrvJ1939 supported scenario: 1. Receive (RX) PDU1 (P2P) destination-specific (PDU-specific < 255) to local device with matching address IoDrvJ1939 unsupported scenarios: 1. Receive (RX) PDU1 (P2P) global (PDU-specific = 255) 2. Transmit (TX) PDU1 (P2P) global (PDU-specific = 255) 3. Transmit (TX) PDU1 (P2P) destination-specific (PDU-specific < 255)
Last updated: 2024-09-23
Post by mondinmr on Direct Pointers in IOMapping for EtherCAT with IoDrvEthercatLib.ETCSlave_Dia
CODESYS Forge
talk
(Post)
Using SDO, I can read the EtherCAT mappings and offsets from various registers like 0x1c12, 0x1c13, etc. When I obtain registers mapped in the PDOs and various offsets, I could technically access directly to the statusword, controlword, etc., if they are mapped. I have noticed that on IoDrvEthercatLib.ETCSlave_Diag I can find pointers to the input and output buffers. However, although the input buffer can be easily read by referring to what has been obtained from the SDOs, it is not possible to write to the output buffer, as it is overwritten in each cycle by the data from the IOMapping task. Is there a way, knowing an instance of IoDrvEthercatLib.ETCSlave_Diag, to obtain the pointer to the first data in the IOMapping? The offsets are identical to those of the PDOs, but obviously the data is a copy. For me, the cleanest thing would be to access the pointers on IOMapping, for DS402a devices to retrieve the key data and point them to internal references. I need to know this as, having developed our own motion library, I would like to simplify the initial setup by eliminating unnecessary and nonsensical mappings that can lead users to unnecessary errors. In the current version that we have been using for years, we have to map everything manually. I would like to pass only the slave reference to the FB_init constructors and eliminate the mapping.
Last updated: 2024-02-12
How do I list the folder names found in a PLC Directory?
CODESYS Forge
talk
(Thread)
How do I list the folder names found in a PLC Directory?
Last updated: 2015-05-07
How can I reach my candump and cansend through CODESYS? Tried making it work with CANopen
CODESYS Forge
talk
(Thread)
How can I reach my candump and cansend through CODESYS? Tried making it work with CANopen
Last updated: 2024-09-14
How do I parse the following non-standard M code expression in CODESYS?
CODESYS Forge
talk
(Thread)
How do I parse the following non-standard M code expression in CODESYS?
Last updated: 2025-03-24
How do I fix ";Internal Error (x86-64): Invalid type size" error?
CODESYS Forge
talk
(Thread)
How do I fix ";Internal Error (x86-64): Invalid type size" error?
Last updated: 2025-04-16
How do I stop/start logging in my code using AC_Datalog with composer
CODESYS Forge
talk
(Thread)
How do I stop/start logging in my code using AC_Datalog with composer
Last updated: 2025-07-07
How can you get the active frame index from a frame
CODESYS Forge
talk
(Thread)
How can you get the active frame index from a frame
Last updated: 2025-10-14
how does the evaluation of the <condition> in an IF-statement work?
CODESYS Forge
talk
(Thread)
how does the evaluation of the <condition> in an IF-statement work?</condition>
Last updated: 2020-02-20
how implement a load cell with Raspberry Pi in CODESYS using a HX711 ADC?
CODESYS Forge
talk
(Thread)
how implement a load cell with Raspberry Pi in CODESYS using a HX711 ADC?
Last updated: 2021-05-30
How can i program a TCP/IP communication on softlinkARM?
CODESYS Forge
talk
(Thread)
How can i program a TCP/IP communication on softlinkARM?
Last updated: 2011-06-28
OPC-UA errors in log, how do I interpret the error codes?
CODESYS Forge
talk
(Thread)
OPC-UA errors in log, how do I interpret the error codes?
Last updated: 2021-02-05
How do I pass a array throught a function and return an array - Pointers
CODESYS Forge
talk
(Thread)
How do I pass a array throught a function and return an array - Pointers
Last updated: 2018-04-16
How much memory is available with Codesys v3 for inputs and outputs?
CODESYS Forge
talk
(Thread)
How much memory is available with Codesys v3 for inputs and outputs?
Last updated: 2017-09-15
In comminication Setting,how can i Add device with CAN login
CODESYS Forge
talk
(Thread)
In comminication Setting,how can i Add device with CAN login
Last updated: 2013-03-15
How do you find the PID of the process using http://127.0.0.
CODESYS Forge
talk
(Thread)
How do you find the PID of the process using http://127.0.0.
Last updated: 2008-10-31
Raspberry pi get the /dev/ttyUSB number, how you do it?
CODESYS Forge
talk
(Thread)
Raspberry pi get the /dev/ttyUSB number, how you do it?
Last updated: 2021-07-23
How do I avoid axis deviations when the gantr block offset changes!
CODESYS Forge
talk
(Thread)
How do I avoid axis deviations when the gantr block offset changes!
Last updated: 2023-05-30
How I should define a huge size byte array in CoDeSys V3?
CODESYS Forge
talk
(Thread)
How I should define a huge size byte array in CoDeSys V3?
Last updated: 2013-05-09
How can I read and writie on the canbus without CANopen
CODESYS Forge
talk
(Thread)
How can I read and writie on the canbus without CANopen
Last updated: 2019-10-01
How disable long touch press as right-mouse-click on Raspberry Pi touchscreen
CODESYS Forge
talk
(Thread)
How disable long touch press as right-mouse-click on Raspberry Pi touchscreen
Last updated: 2022-05-16
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.