Post by egau on Enable and Disable Project IO programmatically
CODESYS Forge
talk
(Post)
Hi @eschwellinger, I tried this with Modbus COM slaves. I was able to disable them (slave becomes greyed out in the device tree), but the DED.Reconfigure "eError" output shows "NOT_SUPPORTED". After this, when I tried to re-enable the slave, it did not work (device stayed greyed out in the device tree), and the DED.Reconfigure "eError" output also showed "NOT_SUPPORTED". Is there something to do about this, or the device just doesn't support reconfiguration? P.S: I tried this running locally on my computer (not in simulation mode). So of course I was not physically connected to the devices. I have two similar projects, but one of them doesn't have the Modbus_COM devices. I know I can "Exclude from build" the devices for that project, but I would really prefer not to do this if possible. I would prefer to dynamically toggle a configuration variable that would enable or disable the slaves.
Last updated: 2025-03-14
Enable and Disable Project IO programmatically
CODESYS Forge
talk
(Thread)
Enable and Disable Project IO programmatically
Last updated: 2025-03-14
Post by fmon on Modbus : dis- / re-connect cable: modbus does not re-start
CODESYS Forge
talk
(Post)
Hello, I am using codesys Modbus TCP client (4.4.0.0) to communicate with a python modbus server (package pyModbusTCP). I first start my python server on the distant machine. After a fresh codesys compilation, a plc connection/transfer and a PLC run, the modbus connection is OK. Every time in this context the connection is created correctly. When I shut down the server, the modbus connection falls, that is normal. When I restart the python server, impossible to recreate the modbus connexion. With the client autoreconnection, I see on my server that the client tries to connect but unsuccesfully. I have the following message : DEBUG:pyModbusTCP.server:accept new connection from ClientInfo(address='192.168.1.20', port=33476) DEBUG:pyModbusTCP.server:Exception during request handling: NetworkError('recv return null') I tried to stop the codesys client and to restart it with these commands : Modbus_TCP_Client.xStop := True; // Or False Modbus_TCP_Client.Enable := True; // Or False Modbus_TCP_Server.Enable := True; // Or False I tried to confirm the error manually to force reconnection with: Modbus_TCP_Server_Motors.xConfirmError := TRUE; I tried also this command to STOP/RESET/START client and server (codesys side) but nothing happens : status_client := Modbus_TCP_Client.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.STOP); // .RESET & .START The answer of this function when executed is "status_client = NOT_SUPPORTED" It seems that is a socket problem, but I do not understand if it is on the client or server side. I tried a modbus simulator called "ananas.exe" and the result is the same. Impossible to get a modbus reconnection. What is different at the first connection and at a reconnection attempt ? Thanks for your help
Last updated: 2025-03-14
ExportPLCopenXML is failing
CODESYS Forge
talk
(Thread)
ExportPLCopenXML is failing
Last updated: 2025-03-15
Post by alberto on ExportPLCopenXML is failing
CODESYS Forge
talk
(Post)
I'm trying to export my whole project through the option ExportPLCopenXML. It seems working, but when I'm trying to import the xml I have the following error during the importation process: Object reference not set to an instance of an object. It seems a usual issue with this process that affects to the pointer to user classes inside a procedure. I receive this error for two general functions that have this pointer declarations in the VAR_INPUT section. It seems a bug into the export/import process of CodeSYS and I couldn't skip it so far. Anyone could help me? Thanks in advance.
Last updated: 2025-03-15
Post by libichj on Raspberry Pi: List of available drivers / libraries
CODESYS Forge
talk
(Post)
Is it possible to renew the urls in your post? Especially fo "Arduino UNO IO Device Description and Library"? Thank you for reply.
Last updated: 2025-03-15
Raspberry Pi: List of available drivers / libraries
CODESYS Forge
talk
(Thread)
Raspberry Pi: List of available drivers / libraries
Last updated: 2025-03-15
Post by trusty-squire on Codesys for raspberry pi 5 not working exactly
CODESYS Forge
talk
(Post)
Not sure if you've resolved this yet, but the Codesys runtime user/password is different than the Linux user/password. You'll need the Linux user credentials when you log in over SSH (for example, to install the Codesys runtime). When you first log in to Codesys on the RaspPi you'll set up a Codesys user and password. If you lost those credentials, you could try uninstalling and then re-installing the Codesys runtime on the RaspPi so you can setup a new user/password.
Last updated: 2025-03-16
Codesys for raspberry pi 5 not working exactly
CODESYS Forge
talk
(Thread)
Codesys for raspberry pi 5 not working exactly
Last updated: 2025-03-16
Post by trusty-squire on Codesys Licenses - How to reload them after updating the Raspberry Pi OS
CODESYS Forge
talk
(Post)
Last updated: 2025-03-16
Codesys Licenses - How to reload them after updating the Raspberry Pi OS
CODESYS Forge
talk
(Thread)
Codesys Licenses - How to reload them after updating the Raspberry Pi OS
Last updated: 2025-03-16
Post by trusty-squire on Codesys Licenses - How to reload them after updating the Raspberry Pi OS
CODESYS Forge
talk
(Post)
https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_cmd_license_manager.html Search the help page above for "Return License". Should be what you're looking for.
Last updated: 2025-03-16
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
Post by pistola on How to change font and font color rectangle/or related object
CODESYS Forge
talk
(Post)
Here is the help sections for visual elements rectangle. https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_elem_rectangle.html Under "Font Variable" there is "Color" which is a Dword, you can make a variable that changes colour within your code to the color needed. Note the format for the Dword variable is: colorVariable := 16#TTRRGGBB Where: TT = Transparency 00-FF RE = Red 00-FF GG = Green 00-FF BB = Blue 00-FF https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_animate_color.html
Last updated: 2025-03-17
How to change font and font color rectangle/or related object
CODESYS Forge
talk
(Thread)
How to change font and font color rectangle/or related object
Last updated: 2025-03-17
Post by hassaank on CODESYS V3+ WAGO PFC200+ MODBUS RTU
CODESYS Forge
talk
(Post)
Hi everyone, Iβm new to CODESYS and Wago devices, and Iβm trying to set up Modbus RTU communication. I have a Wago PFC200 (8110) and a 750-653 RS485 module, and I want to read data from an energy meter using Modbus RTU. Thanks in advance for your help!
Last updated: 2025-03-17
CODESYS V3+ WAGO PFC200+ MODBUS RTU
CODESYS Forge
talk
(Thread)
CODESYS V3+ WAGO PFC200+ MODBUS RTU
Last updated: 2025-03-17
Post by fmon on Modbus TCP client reconnection problem
CODESYS Forge
talk
(Post)
Hello, I am using codesys Modbus TCP client (4.4.0.0) to communicate with a python modbus server (package pyModbusTCP). I first start my python server on the distant machine. After a fresh codesys compilation, a plc connection/transfer and a PLC run, the modbus connection is OK. Every time in this context the connection is created correctly. When I shut down the server, the modbus connection falls, that is normal. When I restart the python server, impossible to recreate the modbus connexion. With the client autoreconnection, I see on my server that the client tries to connect but unsuccesfully. I have the following message : DEBUG:pyModbusTCP.server:accept new connection from ClientInfo(address='192.168.1.20', port=33476) DEBUG:pyModbusTCP.server:Exception during request handling: NetworkError('recv return null') I tried to stop the codesys client and to restart it with these commands : Modbus_TCP_Client.xStop := True; // Or False Modbus_TCP_Client.Enable := True; // Or False Modbus_TCP_Server.Enable := True; // Or False I tried to confirm the error manually to force reconnection with: Modbus_TCP_Server_Motors.xConfirmError := TRUE; I tried also this command to STOP/RESET/START client and server (codesys side) but nothing happens : status_client := Modbus_TCP_Client.SetCommunicationState(eRequestedState := DED.DEVICE_TRANSITION_STATE.STOP); // .RESET & .START The answer of this function when executed is "status_client = NOT_SUPPORTED". Is it normal ? It seems that is a socket problem, but I do not understand if it is on the client or server side. I tried a modbus simulator called "ananas.exe" and the result is the same. Impossible to get a modbus client reconnection. What is different at the first client connection and at a reconnection attempt ? Thanks for your help
Last updated: 2025-03-17
Post by timvh on SysProcessCreate2 on Linux runtime
CODESYS Forge
talk
(Post)
Maybe it is better to use the functionality of the Extension Package: https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_extension.html https://content.helpme-codesys.com/en/CODESYS%20Examples/_ex_extension_package.html
Last updated: 2025-03-17
SysProcessCreate2 on Linux runtime
CODESYS Forge
talk
(Thread)
SysProcessCreate2 on Linux runtime
Last updated: 2025-03-17
Post by imdatatas on Problem of assigning physical addresses to variables of type ARRAY OF ARRAY as MW and QW
CODESYS Forge
talk
(Post)
Hello, I am encountering an interesting problem as below in SP20patch5 variable definition area. I think this is a bug. As can be seen in the attached screenshot, it assigns the same %MW or %QW address to all elements of the array. I hope Codesys team can solve this problem in the next version. Best regards, Imdat
Last updated: 2025-03-17
Post by krisj on ScriptEngine POU property Get and Set accessor.
CODESYS Forge
talk
(Post)
Hey! I am trying to generate a function block with properties from a list with script engine. Codesys/ScriptEngine creates both the Get and the Set accessor. I cannot find a way to delete the Set method/accessor. Anyone encountered the same problem or have a solution for this? for prop_name, prop_type in list: property = pou.create_property(prop_name, prop_type) get = pou.find("Get", recursive=True)[i] get.textual_declaration.replace("") get.textual_implementation.replace(prop_name + " := " + struct_name + "." + prop_name + ";") set = pou.find("Set", recursive=True)[i] set.textual_declaration.replace("") set.textual_implementation.replace("") i += 1
Last updated: 2025-03-17
Post by installwhat on Sm3_math
CODESYS Forge
talk
(Post)
Has sm3_math been removed from the online help for a reason? Can we still use it?
Last updated: 2025-03-17
ScriptEngine POU property Get and Set accessor.
CODESYS Forge
talk
(Thread)
ScriptEngine POU property Get and Set accessor.
Last updated: 2025-03-17
Post by yannickasselin on Engineering IDE from linux?
CODESYS Forge
talk
(Post)
I have been running Codesys IDE in VirtualBox on a Linux Mint host for many many years without issues. I use it every day and it works great. I wouldn't mess around with wine. Would probably just be a waste of time. Codesys Go might be the future of PLC programming on Linux! Can't wait to test it.
Last updated: 2025-03-17
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.