Post by totorovic on How to display the application name on a visualization (V3.5.16)
CODESYS Forge
talk
(Post)
You could use the function AppGetApplicationInfo from CmpApp library. https://content.helpme-codesys.com/en/libs/CmpApp/Current/AppGetApplicationInfo.html
Last updated: 2024-05-14
Post by timvh on Display minutes as hours & minutes
CODESYS Forge
talk
(Post)
You could use the Modulo function to get the minute part from the total minutes: Minutes := TotalMinutes MOD 60;
Last updated: 2024-05-27
Post by timvh on Sensor not set
CODESYS Forge
talk
(Post)
Your function block instance is not called, so the code is not executed to set the light on when the button is pressed.
Last updated: 2024-05-27
Post by eguerra on Error in ScriptingEngine Docs - create_pou()
CODESYS Forge
talk
(Post)
In the ScriptingEngine documentation there seems to be an error (or missing information) in the ScriptIecLanguageObjectContainer part ( https://content.helpme-codesys.com/en/ScriptingEngine/ScriptIecLanguageObjectContainer.html#ScriptIecLanguageObjectContainer.ScriptIecLanguageObjectContainer ). The description of the function create_pou() doesn't specify the correct arguments requested, it only says create_pou(type: SpecialPouType) and a script using the documentation definition of the function will raise an error. I tried passing the function arguments similar to the ones specified for the create_dut() function and it seems to work fine: create_pou(name, PouType) , name : str UPDATE: The offline help has the correct definition IExtendedObject<IScriptObject> create_pou( string name, PouType type = PouType.FunctionBlock, Nullable<Guid> language = null, string return_type = null, string base_type = null, string interfaces = null )
Last updated: 2024-08-05
Post by tk096 on SMC_NCDecoder very slow to decode lines
CODESYS Forge
talk
(Post)
Hi, you can call the decoder function block in a loop and/or decrease the task cycle interval of Task_PATH.
Last updated: 2024-08-23
Post by opineiro on Stack overflow with really simple function
CODESYS Forge
talk
(Post)
Thanks, I'm going to rework everything with this in mind.
Last updated: 2024-09-23
Post by gatto on library ModbusTCP Slave 4.1.0.0 - function block ModbusServer
CODESYS Forge
talk
(Post)
I've always liked codesys, but sometimes it drives me crazy
Last updated: 2024-11-28
Post by struccc on library ModbusTCP Slave 4.1.0.0 - function block ModbusServer
CODESYS Forge
talk
(Post)
:) Yeah... Definitely not a "boring" platform, they are nice to give us work for the upcoming years... :)
Last updated: 2024-12-02
Post by mubeta on Strange problem with the ‘MC_SetPosition’ function
CODESYS Forge
talk
(Post)
Here is the archive of the simulation project: https://drive.google.com/file/d/1n74Qy-1yLPpI2OK4FaZO5q50y2uTa0Wr/view?usp=drive_link
Last updated: 2025-01-12
Post by maxsuelcunha on EtherCAT SM Drive configuration error
CODESYS Forge
talk
(Post)
You can simply excute the function block SMC3_ReinitDrive to the referred axis.
Last updated: 2025-02-28
Post by felipemsgarcia on Axis EtherCAT address
CODESYS Forge
talk
(Post)
Hello, Thank you for your answer. I'm afraid I was not clear on what I was trying to achieve. I'm trying to change parameters and command axes from inside a function block and the first thing that came to my mind was pass both the EtherCAT slave and axis to the function block (as image attached). But, I believe it's worse than just pass directly the EtherCAT slave address to the function block (is it???). However I was wondering if there was a way to get the EtherCAT address directly from the axis, so I don't need to pass the EtherCAT slave nor the EtherCAT address to the function block. Thank you again!
Last updated: 2025-03-07
Post by anlebr on Alarm group template - Is it not possible with several instances?
CODESYS Forge
talk
(Post)
Hi In the POU section of my project I have created a Fan function block and defined an alarm group template for this FB with one alarm (Motor fault). In the PLC program I define two instances of the fan function block. When going to the alarm configuration and pressing "Create or update alarm instances", I get two alarms listed. So far so good. However, when I start my program and check the alarm table in the visualization I only see one alarm, even if both are active. Am I doing something wrong, or is it not possible to define alarms on a function block level and get one set of alarms per instance of the function block?
Last updated: 2025-04-01
Post by eschwellinger on Creating, using an external Function.
CODESYS Forge
talk
(Post)
you need the check the plclog if the the component have been loaded on startup of th plc.
Last updated: 2025-04-19
Post by george32 on TCP Server
CODESYS Forge
talk
(Post)
Thank you for your advice Rinie, I have tried to follow this example but found one problem.When I disconnect with Hercules the system does not acknowledge the lost of its connection this could result in critical errors. Because of this error I am trying to implement the Syssocket library. With this library I am having a problem which I could not solve. I have the following code: ip_adres : STRING :='0.0.0.0'; port : WORD := 5000; iStep : INT := 1; // Socket information Socket_handler : SysSocket_Interfaces.RTS_IEC_HANDLE; Socket_handler_result : SysSocket_Interfaces.RTS_IEC_RESULT; Socket_adress : SysSocket_Interfaces.SOCKADDRESS; Addres_Convert : SysSocket_Implementation.RTS_IEC_RESULT; // Bind information Bind_handler : SysSocket_Interfaces.RTS_IEC_RESULT; // Listener Information Listener_handler : SysSocket_Interfaces.RTS_IEC_RESULT; Addres_Convert := SysSocket_Implementation.SysSockInetAddr(szIPAddress:= ip_adres,pInAddr:= ADR(Socket_adress.sin_addr)); Socket_adress.sin_family:= SysSocket_Interfaces.SOCKET_AF_INET; Socket_adress.sin_port := SysSocket_Implementation.SysSockHtons(usHost:= port); CASE iStep OF 1: // Create Socket Socket_handler :=SysSockCreate( iAddressFamily :=SysSocket_Interfaces.SOCKET_AF_INET, diType:=SysSocket_Interfaces.SOCKET_STREAM, diProtocol:=SysSocket_Interfaces.SOCKET_IPPROTO_TCP, pResult:=ADR(Socket_handler_result)); IF Socket_handler = SysSocket_Interfaces.RTS_INVALID_HANDLE THEN iStep := 1; ELSE iStep := 2; END_IF 2: Bind_handler := SysSocket_Implementation.SysSockBind( hSocket:=Socket_handler, pSockAddr :=ADR(Socket_adress), diSockAddrSize:=SIZEOF(Socket_adress) ); 3: Listener_handler := SysSocket_Implementation.SysSockListen( hSocket :=Socket_handler, diMaxConnections :=1); END_CASE When I am trying to get this working, the SysSockBind function gives a value of 16#207 which means adress already in use. I find this weird because of the IP-adress of 0.0.0.0. I think I am converting the Ip-adress in the wrong way, but the code does not give a error arround this. So therefore I cannot find the solution to this problem. I hope someone could help me with this problem. Thanks in advance George
Last updated: 2025-02-20
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 tvm on Cannot pass array of constant size to a function as a reference
CODESYS Forge
talk
(Post)
It will be a reference, because it's a VAR_IN_OUT. it's a little weird debugging the array online. It just shows as a POINTER TO INT, and you can't actually see the array from the function side. But you can still work with it as a normal array, not a pointer.
Last updated: 2024-01-09
Post by scarter on Bit / Bool data types in function parameters
CODESYS Forge
talk
(Post)
Any reason BIT and BOOL data types are not interchangeable? Trying to make a function which takes a BOOL IN/OUT parameter (Not allowed to use BIT) In the main logic if I make a DINT variable, and want to use each bit on different functions CODESYS will not allow it.
Last updated: 2024-01-17
Post by timvh on Limiting Memory Access of an Array to Within its Bounds
CODESYS Forge
talk
(Post)
Add the object "POU for Implicit Checks" to your application, then select "Bounds check". This will create a function which is automatically called each time an array is write accessed. In the function you can handle "out of bounds" situations. By default it will be limited to its lower or upper bound.
Last updated: 2024-03-06
Post by siscu on Raspberry Pi: List of available example applications
CODESYS Forge
talk
(Post)
Could this be turned into a library? I'd love for a way to have the main program call a function block method using the program's I2C_master device. I assume I should be passing the master as a variable for the function block, but I don't see how that could be achieved
Last updated: 2024-05-15
Post by kumareasu on Persistent variable storage
CODESYS Forge
talk
(Post)
Is there any function function block which can store the persistent variable in HDD/SSD immediatley. My observation is that the persistent variable is getting stored when we shut down or restart the system (Windows+ CoDeSys RTE SL ). the persistent variables are not stored in HDD/SSD, if I power off the system without proper shutdown. Seeking your feedback.
Last updated: 2024-06-12
Post by pascaljt on Warning code C0373
CODESYS Forge
talk
(Post)
Hello, I wrote a function block for a controller but I have a warning code C0373 "expression or part of it has no effect" and the sub routine which contain my function block is underlined in blue. Despite, the FB works perfectly. Do you know why I have this warning ? Thanks. Pascal.
Last updated: 2024-10-30
Post by jbu0105 on Setpoints Delta robot
CODESYS Forge
talk
(Post)
Hello, I am working on a delta robot. Now was i wondering if anyone knows whats the best way to program the different setpoints for the delta Robot. I would like to use the functions MC_MoveLinearAbsolute and the function MC_MoveCircularAbsolute with the transition on this function. Can anyone help me with al small setup?
Last updated: 2025-04-16
Post by jbu0105 on Setpoints Delta robot
CODESYS Forge
talk
(Post)
Hello, I am working on a delta robot. Now was i wondering if anyone knows whats the best way to program the different setpoints for the delta Robot. I would like to use the functions MC_MoveLinearAbsolute and the function MC_MoveCircularAbsolute with the transition on this function. Can anyone help me with al small setup?
Last updated: 2025-04-16
Post by andrej on Creating, using an external Function.
CODESYS Forge
talk
(Post)
Hello, many thanks for your reply. I checked the logs. It seems that dll is not loaded. However other dll such as the Webserver are loaded. Could you tell me what I need to do such that my dll is loaded. (Furthermore I changed the C-Function a bit. I used the M4.exe from the SDK.) Many thanks.
Last updated: 2025-04-23
Post by sanacfu on looking for v2.3 libraries on v3.5.19
CODESYS Forge
talk
(Post)
Hi all, I'm new to Codesys and Wago but well versed in Rockwell. I've been tasked with upgrading old Wago 750-880 PLCs that run Codesys v2.3. All I was giving is the original PLC program in v2.3 and the currently running machine. I've spec out to what I believe is a suitable upgrade, the PFC100 2ndGen, 750-8111. As I'm rewriting this code on the Codesys I can't find the same library functions blocks for ethernet settings PLC functions. Currently I'm working on code to get/set the PLC ethernet IP address and HMI IP addresses from the HMI screen. One other function I'm looking for is a warm reset function to the PLC. When googling for this stuff I see a lot of code not in ladder logic. Are these functions now not available to implement in ladder logic? Where can I get more information on finding and implementing this functions? Do I have to buy a license from Codesys to use these functions? The PLC I ordered should be arriving in 2-3 weeks.
Last updated: 2024-03-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
.