Post by mxj262 on FB having single input but initialized with Array
CODESYS Forge
talk
(Post)
I am adding elements of an ARRAY using pointer to access each element inside a FOR loop and the FOR loop does not stop! What is the right way to use pointers in such case?? I have another loop that is not using pointer and it stops but the loop using pointer keep on adding. METHOD FB_Init: BOOL VAR_INPUT bInitRetains: BOOL; // TRUE: the retain variables are initialized (reset warm / reset cold) bInCopyCode: BOOL; // TRUE: the instance will be copied to the copy code afterward (online change) END_VAR VAR_IN_OUT // basically REFERENCE TO window_buffer: ARRAY [*] OF INT; // array of any size END_VAR THIS^.windowPtr := ADR(window_buffer[0]); THIS^.windowSize := UPPER_BOUND(window_buffer, 1) - LOWER_BOUND(window_buffer, 1) + 1; FUNCTION_BLOCK FB500 VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR windowPtr: POINTER TO INT; windowSize: DINT; currentIndex: UINT; element1:INT; element2:INT; i:INT; j:INT; sum:DINT:=0; END_VAR element1:=windowPtr[0]; // read the first element of the Array dynamic memorry element2:=windowPtr[1]; FOR i:=0 TO (TO_INT(windowSize-1)) BY 1 DO // this loop does not stop Sum:=sum + windowPtr[i]; END_FOR FOR j:=0 TO 5 BY 1 DO // this loop stops j:=j+1; END_FOR https://ibb.co/k3DhkZT
Last updated: 2024-05-06
Post by simotion on Codesys Softmotion Win V3 x64
CODESYS Forge
talk
(Post)
I have a project in Codesys v3.5 sp19 patch2 that contains softmotion virtual axes. I want to simulation the code (softmotion) on the simulated plc on the pc. The controller in the project is a Codesys Softmotion Win V3 x64. I have started up the Codesys Softmotion Win 64 on the pc. However it seems a 3.5 sp14 controller. When trying to download the project, I get a message that target system is different from connected system (3.5.19 vs 3.5.14). How do I set the connected system to 3.5.20 (there seems no way to set the target system to 3.5.14
Last updated: 2023-10-04
Post by ofey on Modbus TCP communication
CODESYS Forge
talk
(Post)
Hi! I tried setting up the PLC I'm working with (Beijer GN-9373) to connect to a modbus master running on a laptop. I have an ethernet connection (via USB-C to ethernet) between the laptop and the controller. I have tried following tutorial on how to set this up. I have added an ethernet device with the IP-address of the PLC. Further I added a ModbusTCP_Slave_Device with default settings. I get the error "Failed to open TCP Port: 1" when I try to go online with the PLC. Earlier I tested the exact same set up with the soft PLC from codesys. I can then read/write values correctly with the Modbus master i have running on the laptop. Hope anybody can help me with this, thanks in advance!
Last updated: 2023-10-06
Post by jerry-sorrells on Find Function: Object reference not set to an instance of an object.
CODESYS Forge
talk
(Post)
Build: CODESYS 3.5 SP19 Patch 1 (64-bit) Host OS: Windows 10 Target: Linux SL I have a project with programs in Structured Text and Ladder Diagram. When I try to use the Find function, it works for the Active Editor; however, when I try to use Find for the Entire Project, I get the error "Object reference not set to the instance of an object." I know what this error means in the context of the program, but I have no idea why the find function is returning this error. The variable I am searching does not matter: it happens with all variables. Any help with this will be greatly appreciated. I generally use the Find function quite often as I am developing and not having it is really slowing me down.
Last updated: 2023-10-23
Post by alez on CANopen safety , SRDO error behavior
CODESYS Forge
talk
(Post)
I have a project in which there is a Safety device in CANopen, and the PLC interfaces with it as Master. I would like to understand if it is possible to set the behavior in case one of the SRDOs that I receive from the slave is no longer received. From what I have seen, if the SRDOs are not received, the CANopen safety status becomes "Not in progress" and the mapped variables freeze at the last value detected. I want to understand if it was possible to set the variables connected to the SRDOs to take a default value (e.g. zero) in the event of a CANOpen error during reception.
Last updated: 2024-07-15
Post by nico-hefr on Python script command for "Access Control"
CODESYS Forge
talk
(Post)
Hi everyone, I use Python Script to generate some POU in Codesys V3.5 SP19 and I would like to limit the "Access Control" to them thanks to the Python command. Is there any commands that allow to edit the "Properties... >> Access Control" of the POU? The other possibility is to set the permissions with "Project >> User Management >> Permissions... >> Project objects >> Modify >> ... >> myPOU", but I did not find the related Python commands. Otherwise, is there a global setting that allows to set the permissions by default? For example, Modify = Denied for everyone user by default. Thank you in advance for your help, Nico
Last updated: 2024-07-18
Post by lukebouchard on NVL generating ADwin packets instead of UDP?
CODESYS Forge
talk
(Post)
Using Codesys 3.5 SP11 32bit to program a pair of IFM CR711S controllers. They each have an NVL sender and are set up to receive each others messages. One is transmitting properly but not receiving, the other is receiving the first's messages just fine. When I look at the traffic in wireshark, I can see the one transmitting properly as UDP packets on the subnet and port I had specified. The Second is transmitting on the right subnet and port, but is sending 'ADwin Config' packets. Has anyone run into anything simmilar? From some reading on ADwin from google, nothing is enlightening. Both are set up in the same way, have their own ports and List Identifiers. I have deleted the NVL files and regenerated them, cycled power, and even deleted and remade the NVL's so many times.
Last updated: 2024-08-24
Post by otbeka on CmpCrypto CryptoGenerateHash Not Outputting
CODESYS Forge
talk
(Post)
Unfortunately I noticed that, and tried: * using CryptoGeteAlgorithmByID within the function call * inputting the raw byte pointer as a testByte * instantiating the _hHash handle within the function body * using a different cryptoID or the raw DINT values from the RtsCryptoID DUT ... to no avail. The pReturn value is also set to 0, which would indicate that it is OK, right? This is odd given that the function is the same within the CryptoDemo example project here, just with a newer version. Is it possible that there is something wrong with the way my bytestring is being set up? I use the following DUTs here: TYPE MESSAGE : STRING(255); END_TYPE TYPE HASH_CODE : ARRAY[0..19] OF BYTE; END_TYPE
Last updated: 2024-09-06
Post by timvh on Modbus TCP & RTU with Control for Linux SL
CODESYS Forge
talk
(Post)
It seems you have 2 network interfaces. Did you try eth1? Did you already configure the IP address for this interface in Linux? If yes, then maybe undo this. - or only set eth0 in the Nic configuration without anything else (so no IP address, because this is already set in Linux). For more information about the Nic settings, see (probably already read it?): https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_obj_deploy_control_sl_configuration.html PS, if you only want to run CODESYS Control SL, you don't necessarily need the Virtual PLC variant. You could also install and run the CODESYS Control SL Runtime in the Host operating system. This way you should also be able to access the serial port and directly access all ethernet ports. Maybe this is easier?
Last updated: 2024-10-23
Post by gseidel on Beckhoff AS1060 and EL7041 configuration
CODESYS Forge
talk
(Post)
Hi pmanuele, while I don't have firsthand experience with the EL7041 and the step motor AS1060, there are two things you can check: If you use an external encoder, please make sure you use the alternative device description calles "EL7041 1Ch. Stepper motor output stage (50V, 5A) Rev24 with external Encoder". The SoftMotion driver will set the feedback type automatically, and use the correct object for the actual position (16#6010:21 instead of 16#6010:20) If you have problems with changing the controller mode, I assume to velocity, please make sure you change the PDO mapping so that the actual velocity (16#6020:33) and set velocity (16#7010:33) are mapped by PDO. Hope this helps, Georg
Last updated: 2024-12-23
Post by peterkcontrols on TargetVisu started in windowed or not full screen
CODESYS Forge
talk
(Post)
Hello, I am using Codesys on an industrial pc with a single monitor. I would also like to have a separate vision software running on the PC and would like to display it half screen. When I run the soft PLC the my visualization screen appears full screen, I would like to be able to set the size of the visualization screen so I can display other software on the monitor. Is it possible to set the width/height of the targetVisu? Anyone try something similar? I would like to avoid having to put it on a Virtual Machine. Thank you
Last updated: 2025-02-26
Post by timvh on Problem Reading Registers via Modbus from non Codesys device
CODESYS Forge
talk
(Post)
According to the documentation: https://wiki.teltonika-networks.com/view/RUT956_Modbus You need to create a Channel to read 2 registers from address 143 to get the lattitude. It doesn't specify if you need to read it as a Holding Register or as an Input Register. You could try both. So in the Teltonika router, you need to enable it as being a Modbus Server. Then in CODESYS add an Ethernet Adapter, then a Modbus Client (Master) and to the Client (Master) add the Modbus Server (Slave). Set the IP address and add the Channel. The please consider that CODESYS doesn't update any variables when they are not used in the application. In the I/O mapping tab of your I/O configuration, you can set the "Always update" to enabled.
Last updated: 2025-03-08
Post by trusty-squire on AXIS Rollover
CODESYS Forge
talk
(Post)
If you mean you want to shift the Origin or Zero position of your axis, you can try MC_SetPosition and set the position to 0 (if you want to take the current active position and make it the new 0. Adjust this number accordingly if/as needed). This means the servo drive keeps it's current origin position, and Codesys applies an offset to the servo drive position in the logic. You can also use the homing function of your servo drive using MC_Home and have your drive configured to set the current position as origin when it receives a homing command.
Last updated: 2025-03-11
Post by manuknecht on Using an Axis of an Axis Group in Torque Conctrol
CODESYS Forge
talk
(Post)
I don't seem to be able to use an axis, which is part of an Axis Group in torque control mode. I call the SMC_SetControllerMode FB to switch from position to torque control mode, followed by the SMC_SetTorque FB to set the desired torque. This works flawlessly for most axes, however if an axis is part of an axis group, switching the controller mode seems to work without any issues, but the desired torque is never set. SMC_SetTorque does not return an error, but fSetTorque of the axis is never changed. Disabling the axis group before does not change anything, but if I use MC_UngroupAllAxes before changing the controller mode, it all works as it should. Is there no way to control a single axis in torque control, if it is part of an axis group?
Last updated: 2025-07-17
Post by timvh on Dynamically enabling/disabling Modbus slave devices in runtime (performance issue with timeouts)
CODESYS Forge
talk
(Post)
As far as I remember, the Reconfigure functionality doesn't work for Modbus devices. But... Each Modbus device in your device tree has a name. You can set the property "Enable" of this device to FALSE to stop communicating with it. So if one of your Modbus Slave devices name is "MbSlave1" in the device tree, then in your code you can set the Enable to FALSE to let it stop communicating: MbSlave1.Enable := FALSE; Please let us know if this worked on your controller with your application and your CODESYS version. Alternatively you could use the ModbusFB library. See: https://forge.codesys.com/prj/codesys-example/modbus/home/Home/
Last updated: 2025-08-13
Post by davidbo on All the things needed for anonymous login to OPC UA
CODESYS Forge
talk
(Post)
I thought I knew what I am doing, but something is missing what? From Device-Communication Settings select from drop down menu "Device" Select entry "Change Runtime Security Policy" Check the "Allow anonymous login" Select "Symbol Configuration" in your application In settings check "Support for OPC UA features" Check some of the values you want in your set Press the build button in the "Symbol Configuration" Press the button "Configure Symbol Rights" Make sure that Anonymous_OPCUAServer has access right to your "default set" From Device-Communication Settings select "Access Rights" in RemoteConnections-OPCUAServer Anonymous_OPCUAServer should be given modify and view rights I suppose. I can connect with UaExpert but I cannot see my Application or browse my values. What is missing?
Last updated: 2025-09-10
Post by joanm on Programmatically change the IP addresses of the Modbus TCP slave devices
CODESYS Forge
talk
(Post)
Hello all, I am working in a project in which there are multiple Modbus TCP slaves. I need to be able to change the IP addresses of those devices from the HMI and I was planning to use the process depicted here: https://faq.codesys.com/display/CDSFAQ/Modbus+TCP+Slave%3A+Dynamic+Setting+of+the+IP+Address I can see the port number is what is used to specify which slave device we want to modify the IP address of. This said, can I freely set arbitrary port numbers to each device? I mean, can I set the first device to be at port 502, the second one at port 503... Any drawback or restriction? Is there any other way to reference to the device without having to change the port numbers? Thank you all in advance.
Last updated: 2024-01-04
Post by vformanek on irq-set piority is not working in plc-shell
CODESYS Forge
talk
(Post)
Hello, I am currently having issues on CODESYS Control for linux SL with DTH expiring. I have followed several tutorials of creating a proper RT linux. Then I further configured the linux based on this tutorial: https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_performance_optimization.html Currently I am getting DHT expires in the communication and I am trying to increase of the priority of the network task which manages the PROFINET network adapter. I am following this tutorial: https://content.helpme-codesys.com/en/CODESYS%20PROFINET/_pnio_trouble_connection_failure.html But the irq-set is not changing the priority. See the image bellow....
Last updated: 2024-01-05
Post by timvh on Is it possible to use debug functions such as Step Execution while the PLC ladder is in Running?
CODESYS Forge
talk
(Post)
Yes, it is possible to set breakpoints and use step into / step over (also in Ladder diagram). Yes, the PLC will actually stop, so be carefull with this. How a PLC works is that at the start of the execution of the Task, the Inputs are read, then the code is being executed and then the outputs are written. So if you set a breakpoint, you will not see your analog inputs changing, because the task cycle is interrupted and the inputs and outputs are not refreshed. For detailed information, see: https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_using_breakpoints.html
Last updated: 2024-01-16
Post by tokamk on Dynamic setting of the modbus tcp/ip slave ip address
CODESYS Forge
talk
(Post)
Hello, I'm working on a project which includes Panel-PC which communicates with a PLC through Modbus TCP/IP. On the PLC I have a CODESYS code which has Modbus slave objects. The Modbus slave objects have to have manually set IP address in order for them to work properly and the Ip address has to be the PC-Panels's IP. This project is going to a customer and they're using their own IP address realm. So, my question is that is it possible to configure these slaves in some other way, so that the customer doesn't need to modify the CODESYS project? I was thinking that would it be possible to set the IP address of these slaves from external source?
Last updated: 2024-02-15
Post by struccc on Release SP20 - Changes in behaviour?
CODESYS Forge
talk
(Post)
This... is not very practical for me - as I have a bunch of different classes - it's just doesn't seems to be very practical to define a NULL for each of them... Something like this I use in parameter definitions. For example: VAR_INPUT refVFD_Drive : REFERENCE TO FB_VFD_Drive := GVL_DUMMY.Dummy_VFD; END_VAR I use this to prepare objects for code I don't control: Typycally visualizations - had many troubles with references set on the fly, right before opening a corresponding visualization... And yes, the instance in GVL_Dummy reports itself as "Fake", so it does not influence the actual application at all. Actually this way I could invalidate a reference, just to set it to a "Dummy" instance.
Last updated: 2024-03-25
Post by msirotkin on EtherCAT status errors
CODESYS Forge
talk
(Post)
Hello, I'm trying to understand the reason for the many errors on the EtherCAT master status page. If we set the cycletime to 1ms we see a lot of rxerrors and lostframes, but the send and recive times are quite good (see attachement). And the status of the EtherCAT bus is good (no other errors, all is green, slave has no errors) But when we set 2ms cycletime the lostframe errors are gone, but periodically increses rxerror counter (see attachement). The questions is, what do these errors actually mean and what we can do to get gid of them? Linux RT, imx8, Codesys runtime for ARM 3.5.21.10, Ethercat 4.10 Thanks
Last updated: 2025-11-25
Post by sivakov on CoDeSys Exception EIP Adapter
CODESYS Forge
talk
(Post)
Hi, Got same problem, appeared after 4.3.1.0 update. Prabably problem is in performance. I am using virtual machine, so adding one more core and several GB to RAM still not solved, but atleast did system more stable. Try optimise your main program or set less task interval. Regards, I will be your mate in solving this mistery =)
Last updated: 2023-09-28
Post by romrot on I don't know if this is where I should ask this, but I'm trying to get a Codesys OPC UA Client set up with a Kepware OPC UA Server
CODESYS Forge
talk
(Post)
Trying to create a Data Source under Data source manager, but I'm having issues with security. I get "BadUserAcessDenied" I don't know if there is something special I need to do on the Kepware server to make this work or what.
Last updated: 2023-10-19
Post by davidbo on How to switch between dynamic IP address and dynamic?
CODESYS Forge
talk
(Post)
I want to make an application with a UI for CODESYS Control for Raspberry Pi MC SL which make it possible to switch between dynamin and fixed IP address and to set the IP address. However I do not know whether that is possible?
Last updated: 2023-11-06
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.