Post by viksym on How to get the motor scaling value from code
CODESYS Forge
talk
(Post)
Is there a way to see what value is set as the "Work travel distance per motor rotation" that is set in the Scaling menu of the axis ? I am working on my own homing function block for sensorless (hardstop) homing and I want to make it be universal between different axes with different motor's scaling for distance per rev so I need to know this value from the axis itself. I know I could do it by just creating an input variable for the function block but I'm leaving that option as a last resort.
Last updated: 2025-06-12
Post by joanm on Tab control element, hide/show tabs programatically?
CODESYS Forge
talk
(Post)
Hi all, Is it possible to hide or show tabs from the PLC code? I have created a few tabs in my visualizations to configure the program behavior, I'd like to be able to hide some of them if the related option in the main tab has been disabled. Is that possible? if so, how should I do it? Thank you all in advance.
Last updated: 2023-11-25
Post by balazska2 on Position values with integer variables
CODESYS Forge
talk
(Post)
Hello guys! https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_elem_label.html My question: Could I give an integer variable to the Position records (in the Element list => Position => width / height)? If yes, how? I defined a TEST integer variable with 300 value. I tried to add this variable to the width record (.TEST or only TEST), but if I saved, the value jumps back to 0. Thanks for your help! :)
Last updated: 2024-10-03
Post by trusty-squire on Which database to use?
CODESYS Forge
talk
(Post)
How large and how complex? It's tough to make a recommendation without additional details. The simplest thing is to just use data arrays (or even arrays of arrays). Not knowing your requirements, it might be sufficient and the simplest option is often the best. https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_datatype_array.html You might also look into using Recipes? https://forge.codesys.com/prj/codesys-example/recipe-manageme/home/Home/ Some more complex options below. https://forge.codesys.com/prj/codesys-example/element-collect/home/Home/ https://store.codesys.com/en/mysql-library-sl.html
Last updated: 2025-03-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 trusty-squire on SysProcessCreate2 on Linux runtime
CODESYS Forge
talk
(Post)
Hi, I'm trying to launch a continuously running python script from Codesys and monitor the script status inside the Codesys runtime (running on a Linux enviroment). For now I'm testing with the below to emulate a continuously running Python script: #test.py i = 0 while True: i += 1 I'm able to successfully run the script using SysProcessExecuteCommand2 (I can see the Python process running in the task manager). However, this "freezes" the Codesys execution of the task - it sits on that command and will not continue until the Python script ends. I've proven this works by using the task monitor to kill the process, then Codesys continues on happily through the task. What I want to do is use SysProcessCreate2 to set up the Python script as a background task and monitor the process using SysProcessGetState. This always results in the error "ERR_OPERATION_DENIED". I know that I'm able to execute commands (as above), so my config should be correct. Is SysProcessCreate2 functional on a Linux environment? Is there something in the config file I'm missing? Here's my "working" code that uses SysProcessExecuteCommand2: VAR bTest : BOOL; sCommand : STRING := '/usr/bin/python3 /var/opt/codesys/PlcLogic/Application/test.py'; refCommand : REFERENCE TO STRING REF= sCommand; sOutput : STRING; refOutput : REFERENCE TO STRING REF= sOutput; result : RTS_IEC_RESULT; END_VAR IF bTest THEN SysProcessExecuteCommand2( pszCommand:= refCommand, pszStdOut:= refOutput, udiStdOutLen:= SIZEOF(sOutput), pResult:= ADR(result) ); bTest:= FALSE; END_IF And here's the code that always results in the ERR_OPERATION_DENIED error: VAR bTest : BOOL; sApp : STRING := '/usr/bin/python3'; sCommand : STRING := '/var/opt/codesys/PlcLogic/Application/test.py'; refApp : REFERENCE TO STRING REF= sApp; refCommand : REFERENCE TO STRING REF= sCommand; hResult : SysProcess.RTS_IEC_RESULT; hHandle : SysProcess.RTS_IEC_HANDLE; END_VAR IF bTest THEN hHandle := SysProcessCreate2( pszApplication:= refApp, pszCommandLine:= refCommand, ulFlags:=SYSPROCESS_CREATEFLAG_HIDDEN, pResult:= ADR(hResult) ); bTest:= FALSE; END_IF Here's the relevant section from the config file at /etc/codesyscontrol/CODESYSControl.cfg: [SysProcess] Command=AllowAll Appreciate any support or ideas. Thanks!
Last updated: 2025-03-16
What is the best way to upgrade a project to a new version of Codesys?
CODESYS Forge
talk
(Thread)
What is the best way to upgrade a project to a new version of Codesys?
Last updated: 2022-03-01
How to convert a standard robot program into an excutive list when a robot runs?
CODESYS Forge
talk
(Thread)
How to convert a standard robot program into an excutive list when a robot runs?
Last updated: 2023-11-25
Using Automation server to access RPi softplc over a 4g link with a dynamic IP address?
CODESYS Forge
talk
(Thread)
Using Automation server to access RPi softplc over a 4g link with a dynamic IP address?
Last updated: 2022-02-15
I want to control a industrial machine with "CODESYS Control Win V3" and a Profibus_DP slave
CODESYS Forge
talk
(Thread)
I want to control a industrial machine with "CODESYS Control Win V3" and a Profibus_DP slave
Last updated: 2018-09-24
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
Connect a I/O module (EAP Module 2020) as a slave to Revolution PI
CODESYS Forge
talk
(Thread)
Connect a I/O module (EAP Module 2020) as a slave to Revolution PI
Last updated: 2018-03-09
Declaring a FB within a struct and calling it in ST
CODESYS Forge
talk
(Thread)
Declaring a FB within a struct and calling it in ST
Last updated: 2021-09-30
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
Attempt to upgrade a pi 3 from a working V3.5.11 to V3.5.15 fails
CODESYS Forge
talk
(Thread)
Attempt to upgrade a pi 3 from a working V3.5.11 to V3.5.15 fails
Last updated: 2021-07-13
Access to a GVL and seraching for a variable inside of it (Pyhton)
CODESYS Forge
talk
(Thread)
Access to a GVL and seraching for a variable inside of it (Pyhton)
Last updated: 2022-07-25
missing namespace in autodeclaration of a datatype declared inside a library
CODESYS Forge
talk
(Thread)
missing namespace in autodeclaration of a datatype declared inside a library
Last updated: 2020-07-13
It it possible to connect 100 EtherCAT Slaves to a Codesys Master on a RaspberryPi 3
CODESYS Forge
talk
(Thread)
It it possible to connect 100 EtherCAT Slaves to a Codesys Master on a RaspberryPi 3
Last updated: 2020-12-14
Pass the second array dimension into a function as a parameter
CODESYS Forge
talk
(Thread)
Pass the second array dimension into a function as a parameter
Last updated: 2022-05-10
[OOP] How to implement "HAS A"... that is, instance of class within a class
CODESYS Forge
talk
(Thread)
[OOP] How to implement "HAS A"... that is, instance of class within a class
Last updated: 2017-06-07
Accessing Webvisu remotely to a Pi with a Cellular USB dongle
CODESYS Forge
talk
(Thread)
Accessing Webvisu remotely to a Pi with a Cellular USB dongle
Last updated: 2019-08-12
[ Windows ] How to Restart PLC in CMD line ? ( a Stop followed by a Start )
CODESYS Forge
talk
(Thread)
[ Windows ] How to Restart PLC in CMD line ? ( a Stop followed by a Start )
Last updated: 2020-03-27
Check if a directory exists and then copy a file in it
CODESYS Forge
talk
(Thread)
Check if a directory exists and then copy a file in it
Last updated: 2016-06-25
Can't link process data variables to IO from a positionsensor while using a demo soft PLC
CODESYS Forge
talk
(Thread)
Can't link process data variables to IO from a positionsensor while using a demo soft PLC
Last updated: 2022-03-04
it is possible to add a function template to a program from scripting ...
CODESYS Forge
talk
(Thread)
it is possible to add a function template to a program from scripting ...
Last updated: 2018-05-25
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.