Post by gatto on warning C0195
CODESYS Forge
talk
(Post)
Good morning dear codesys users. I'm using 3.5.20.40 and I get this warning C0195 when I assign an initial value to xyz. However, if I do it on a single byte (abc), it doesn't display any warning. Why? VAR_GLOBAL abc : BYTE := 100 ; xyz : ARRAY [1..10] OF BYTE := [10(100)] ; END_VAR
Last updated: 2025-11-20
Post by dat422 on OPC UA Enum Issue
CODESYS Forge
talk
(Post)
Hi everyone, I’m using CODESYS V3.5 SP22 with the Communication Manager to run an OPC UA server. I have a problem with enums: when I view them in a client like UaExpert, only the last enum member is shown, and it has the wrong value. Has anyone seen this issue before or knows what might cause it? Thanks!
Last updated: 2026-03-27
Post by poliautomacao on Absolute movement controlled by an external encoder.
CODESYS Forge
talk
(Post)
Georg, the encoder's actual position was -208 because I moved it manually for testing, but I managed to get it working. Your information is correct; there was a parameter error, Kp was at 0. After I adjusted it, it responded as expected. Thank you very much for your help.
Last updated: 2026-04-02
Post by nulltrace on Codesys Installation Always Freeze when the installing is almost done
CODESYS Forge
talk
(Post)
in most of this cases the Installer ins't frozen, it's more likely that the Antimalware-Service-Executable slow's them down. Turning it off during installation of Codesys helped me all the time. Also keep attention on Taskmanager to get e feeling for the Installer Give it a try.
Last updated: 2026-04-05
Post by nulltrace on Modbus TCP Server connection is ESTABLISHED but all holding registers are value 0?
CODESYS Forge
talk
(Post)
your case looks different, the first one was an codesys modbus tcp-slave, your's an Master-Application with gateway. I dont know this Unit, but i would say, from Point of Codesys it looks wrong configured. Just give us more detailed configuration and the please make a sketch of the topology you're trying to realise.
Last updated: 2026-04-08
Post by yoeri on Python Scripted Save_Archive with noUI
CODESYS Forge
talk
(Post)
Is there any update on this? Running codesys 3.5.19.70 proj = projects.open(project_path, primary=True, update_flags=flags) This gives an error only when using --noUI exception System.NullReferenceException: Traceback (most recent call last): File "C:\Project\ci\build.py", line 14, in <module> SystemError: Object reference not set to an instance of an object. Exit code: 1</module>
Last updated: 2026-01-30
Post by gseidel on Absolute movement controlled by an external encoder.
CODESYS Forge
talk
(Post)
Hi polyautomacao, hmm, did you tune the PD parameters as shown in the link I posted above? One thing that could cause the behavior are bad parameters. I also don't understand the screen shot: when you hold the encoder to 0, why is the actual position of the DrivePosControl -208? Best regards, Georg
Last updated: 2026-03-27
Post by mait-tim on Unknown Type
CODESYS Forge
talk
(Post)
Hello, Im working with EPEC PLC's and working on the HMI and i'm running into the following errors: Unknown Type ISOImages.TargetContainer.TDS (and similars) I cannot locate the error and the source position is the visutalisation manager where i cannot find anything related to this type. Im working with: Codesys V3.5 SP18 patch 3 and i cannot update since the hardware does not allow for newer SP versions
Last updated: 2026-04-03
Post by ryandmg on Web Client (HMI) Disconnects from Webvisu (Weidmuller u-OS)
CODESYS Forge
talk
(Post)
Thanks So Much for the reply! Were using the Weidmuller UV66-ADV-10-CAP-W The HMI is pointed to the URL which is assigned through u-OS. Basically when you log into the controller's webserver via browser you can view the installed apps. One of which is the Codesys runtime. When you click on that it takes you to the visualization. That corresponding url is what the HMI is looking for. I apologize I don't have that on hand as I'm in the office right now. I don't think I tried connecting using the port you mentioned and https in lieu of the u_OS URL. I can certainly try. Out of the box the u-OS is set for HTTP. Since we're isolated I havent changed that yet. When this has happened while logged on via chrome on my laptop, simply refreshing brings the visualization right back. In the case of the HMI in kiosk mode, we power cycle the HMI to force a reconnect, log back in u-OS and the visualization is back.
Last updated: 2023-09-06
Post by egret on Issue with J1939, PGN 65267 (Vehicle Position)
CODESYS Forge
talk
(Post)
I have a J1939 network (ISOBUS) connected to my PLC. I can receive various PGNs such as 65256 (Vehicle Direction/Speed) and 65254 (Time/Date). However, I cannot receive 65267 (Vehicle Position). PGN 65267 (VP) contains SPN 584 (Latitude) and SPN 585 (Longitude). On the network both SPNs return a value of -210 (meaning the CAN message payload is zero in both cases). The conversion settings are the default values and appear to be correct (see attached screenshot). Using a CAN analyser I can see that PGN 65267 (Vehicle Position) is being transmitted over the network with valid (non-zero) data that matches the latitude and longitude coordinates I would expect. I've created a program to read the raw J1939 data and this also returns valid data. It seems that the Codesys J1939 database has a problem with reading PGN 65267 messages. Can anybody else confirm this? I'm using Codesys Version 3.5 SP16 Patch 5.
Last updated: 2023-09-13
Post by user3000 on Can't find an Extended Pulse Timer (TP and LTP)
CODESYS Forge
talk
(Post)
Hello, For my program I need an extended pulse timer, which can be referred to as a retriggerable pulse timer. Where every rising edge of the input resets the elapsed time zero, extending the lenght of the output pulse. The Codesys pulse timer (TP) is a one-shot timer and only resets the elapsed time with the falling edge of the input. There is also a pulse timer (LTP) in codesys, but in my simulation it was also functioning as a one-shot even though the description sounds like LTP should be retriggerable. I have uploaded some timing plots from another PLC program for reference. I am looking for a timer equivalent to the "TEP" diagram. Is there an Extended Pulse Timer in Codesys? Maybe there is a way to manipulate the input so it resets the elapsed time outside the function block?
Last updated: 2023-12-06
Post by xgongx on What is the insights of IoDrvEtherCAT.DCInSyncWindow?
CODESYS Forge
talk
(Post)
It is well known that you need to increase the value of IoDrvEtherCAT.DCInSyncWindow to solve the "Fieldbus lost synchronicity" issue. In the official document, IoDrvEtherCAT.DCInSyncWindow is explained as the toleration of a certain jitter. But the official document doesn't explain what kind of the jitter is. Is it the jitter of DC sync deviation, master timer or something else? It is very important to know the insights of IoDrvEtherCAT.DCInSyncWindow. For example, if it is the toleration of DC sync deviation, and the official recommending value is 200us for CODESYS SoftMotion. It means maximum of DC sync deviation is 200us. It is unacceptable for some high precision motion control tasks, for example high speed gear task, etc. Increasing the value of IoDrvEtherCAT.DCInSyncWindow will increase the deviation of motor rotation sync if it is the toleration of DC sync deviation. So, would anyone tell me what the insights of IoDrvEtherCAT.DCInSyncWindow is? Thanks.
Last updated: 2024-07-09
Post by kleeswi on Visualization scaling problem with B&R T30 panel
CODESYS Forge
talk
(Post)
The probelm arises for the B&R T30 panel after updating Codesys from 3.5.17 to 3.5.19 patch 5. We have to use 3.5.19 for other reasons so we cannot downgrade the version. The scaling problem only exists for the B&R 6PPT30.0702.20F025 panel, the B&R T50 panel and a esa lumia panel work. When we choose a fixed resolution it looks also good, however we also want to support the esa lumia panel with a different resolution. The images show the anisotropic and isotropic option. In the anisotropic option it scales the hight correctly but not the width and in the isotropic option is scales both hight and width false, it also does not start in the top left corner. Does someone have any suggestion why it does not work anymore with the new codesys version and are there workarounds? I added all versions with visualization packages as an image, visuElems is 4.4.0.0.
Last updated: 2024-07-29
Post by dogulas on OPC UA C# client connecting to OPC UA CODESYS server
CODESYS Forge
talk
(Post)
Noob alert! I’m just getting my feet wet with CODESYS. I have a “Hello World” project in the CODESYS IDE. I’m using the Win SoftPLC on the same computer. I’ve added a Communication Manager under the Application node. Under that is “OPC UA Server -> IEC Symbol Publishing 01”. I also added “OPC_UA_Symbols -> Information Model”. I’m not sure I need the second thing. I was grasping at straws. I also set up several dummy symbols in the IEC Symbol Publishing 01 node. In my C# application, I am trying to get an instance of EndpointDescription from CoreClientUtils.SelectEndpoint(“opc.tcp://localhost:1217/Gateway-1”, useSecurity: false, 15000). I wasn’t sure about the “Gateway-1”. I found that in the CODESYS IDE under the project -> Communication Settings. When I execute the previous method call in C#, I get: “BadSecureChannelClosed”. I have no idea what that means. Any pointers to documentation are welcome.
Last updated: 2024-08-16
Post by bruceae on Ethernet/IP Scan
CODESYS Forge
talk
(Post)
Hello, I have a robot configured as a Generic Ethernet Module under Ethernet/IP Scanner. I can not see the change of state of the outputs coming from the robot on the codesys side in real-time. (The robot has it's own internal program that would changes the values of remote outputs 0-3 off and on). Also when I send data down to the inputs of the robot it doesn't transfer over as expected. As an example I'll send to the robot's input bit 0 a value of 1. It doesn't see that value change. However, when I write that input bit 0 back to a value of 0, the robot changes state and shows a value of 1. And if I change the state of a different bit, the other bits update properly, except for the bit that I changed. Any advice would be greatly appreciated, and if anything else is needed let me know.
Last updated: 2024-09-10
Post by imdatatas on Read "Homed" status from EtherCAT drive
CODESYS Forge
talk
(Post)
Hello, I have experienced such situations with some servo drive devices in the past. The home completion information is reported to the upper controller by the slave drive with the states of the relevant bits in the StatusWord (for example; 6041h Bit10, Bit12 in Home mode). If the states of these bits are correct in terms of number and state but the motor does not actually perform the action; You can contact the slave drive manufacturer. There may be a problem with the device firmware. Another area you can play around with is looking at the settings in the "Advanced configuration" for Softmotion axis on the page the link to below, and trying it out and using the one that works for you. https://content.helpme-codesys.com/en/CODESYS%20SoftMotion/_sm_cmd_add_softmotion_cia402_axis.html A method I recommended worked for a user as in below message. https://forge.codesys.com/forge/talk/Engineering/thread/40bc82454d/ I hope your problem will be solved as soon as possible and by sharing the result here, you will help others to know and overcome it. Good luck. Best regards, Imdat
Last updated: 2025-01-08
Post by ojz0r on Assignment Efficiency - Repetitive Assignment vs IF statement
CODESYS Forge
talk
(Post)
Its important that you know the difference between the two. Example 1: Coils[0] := Coils[0] OR (Buttons[0] AND Sensors[0] > 6); In this case the statements will be evaluated every scan and result in either true or false for Coils[0]. Example 2: IF NOT Coils[0] AND Buttons[0] AND (Sensors[0] > 6) THEN Coils[0] := TRUE; END_IF In this example Coils[0] will latch the result in a true evaluation, if you want it to behave the same way as example 1 then you need to do it like example 3 below: IF NOT Coils[0] AND Buttons[0] AND (Sensors[0] > 6) THEN Coils[0] := TRUE; ELSE Coils[0] := FALSE; END_IF However back to the real question. There is no problem using either example 1 or example 3, if im not requiring a latch i usually go with example 1 as it is more compact.
Last updated: 2025-03-07
Post by razebones on sdo read write codesys 3.5
CODESYS Forge
talk
(Post)
ENG For some reason, I can't bind a variable to the data parameter. Also, why does only the sdo_read4 function work for me? I also can't write through sdo_write4. I can only view the received values via sdo_read4. Please help me with this task. Moreover, I tried to write the values through sdo write 4 and for a while the data stopped being written and I overwritten it manually and sdo read4 started working again and at the same time they do not want to work in the main task. RU Я не могу почему то привязать переменную к параметру data. Так же у меня почему работает только функция sdo_read4 так же не могу записать через sdo_write4. Могу только просматривать полученные значения через sdo_read4. Помогите пожалуйста с этой задачей. Причём я попытался записать значения через sdo write 4 и у меня на какое то время перестали записываться данные и перезаписал вручную и sdo read4 начал работать снова и одновременно они не хотят работать в main task.
Last updated: 2025-04-01
Post by mondinmr on Unexpected behavior in cyclic encoder read method during INT overflow (wrap-around)
CODESYS Forge
talk
(Post)
Hi everyone, I’m investigating a potential issue with a cyclic method we use for reading incremental encoders in our libraries. I’ve come across two implementations that, at first glance, appear to perform the same operation: motionUnit.vlPositionActualValue is UINT due strange encoder type. Version A METHOD PROTECTED cyclicReadField VAR_INST actPosFieldOld: INT; rI: INT; delta: INT; END_VAR rI := TO_INT(motionUnit.vlPositionActualValue); delta := rI - actPosFieldOld; m_actPosRaw := m_actPosRaw + TO_LREAL(delta); actPosFieldOld := rI; IF settings.velocityFeebackMapped THEN m_actVelRaw := TO_LREAL(motionUnit.velocityActualValue); END_IF Version B METHOD PROTECTED cyclicReadField VAR_INST actPosFieldOld: INT; END_VAR m_actPosRaw := m_actPosRaw + TO_LREAL(TO_INT(motionUnit.vlPositionActualValue) - actPosFieldOld); actPosFieldOld := TO_INT(motionUnit.vlPositionActualValue); IF settings.velocityFeebackMapped THEN m_actVelRaw := TO_LREAL(motionUnit.velocityActualValue); END_IF Both use INT and the same delta logic, so they seem equivalent. However, when an overflow (wrap-around) occurs, version A continues correctly as expected, while version B unexpectedly resets to -32768 without a clear reason. Has anyone experienced similar behavior or can shed light on what might be happening here? It almost seems as if the cast to LREAL is being applied before the calculation — but that would be illogical and potentially very dangerous in many situations! Thanks!
Last updated: 2025-05-13
Post by erictur on CODESYS Control for Linux ARM SL (32 bit) on Moxa UC-3100 IPC
CODESYS Forge
talk
(Post)
UC3100 comes with Arm Cortex-A8 1 GHz and belongs to Moxa Industrial Linux 1 (Debian 9) for Arm-based Computers. I tried to install the CODESYS Control for Linux ARM SL (32 bit) on Moxa UC-3100 IPC. Unfortunately, the Third-party requirements: - libc >= 2.27 (required by CodeMeter Runtime) of the CODESYS Control for Linux ARM SL cannot be met on the Debian 9, which comes with glibc 2.24. I read the post by @johnlee (Getting Start with Codesys Control for Linux SL) (https://forge.codesys.com/forge/talk/Runtime/thread/0a515ced3f/). Where he discusses installation of CODESYS Control for Linux ARM SL on Debian 9. There was CODESYS Linux runtime v3.5.14 availble and it was successfully intalled on the Debian 9. However, the CODESYS Store has the oldest version V4.1.0.0 32 bit available. There is no way to find the CODESYS Linux runtime v3.5.14. So is there any work around for this? Or I cannot install the CODESYS Runtime on any of the Moxa IPCs based on the Moxa Industrial Linux 1 (Debian 9)?
Last updated: 2025-07-10
Post by gmau on RS232 Communication in CODESYS Control RTE V3
CODESYS Forge
talk
(Post)
Hello, I would like to implement RS232 communication into CODESYS Control RTE V3. I was writing the program testing it on CODESYS Control Win V3, where it worked fine. When I changed it to RTE, the communication was on, but I cannot send the data between PLC and scale - there is no or little response from scale - mostly one time receive and that is it. On Win V3 it was working fine. I read that I am supposed to configure CODESYSControl file for a proper communication using RTE, but even after that I can not get a stable and working communication. I am attaching my CODESYSControl and CODESYSControlUser data below, as well as I am sending the code from communication function. The communication should be through COM1 port of PC. CODESYS Version: CODESYS V3.5 SP21 + (64-bit) Runtime + Version: CODESYS Control RTE V3 Version 3.5.21.0 / CODESYS Gateway V3 - x64 Version 2.5.21.0 I would be much gratefull for any help. Sincerely,
Last updated: 2025-07-16
Post by kurtk on dynamic modbus devices
CODESYS Forge
talk
(Post)
I am CODESYS neophyte getting my wheels on. My goal is to re-platform an existing PLC application written in 61131 ST I've got the majority of the code/variables in a compilable form - excluding all the IO and comms nuances I am not sure whether this the right forum An important functionality which I implemented on the other platform was totally dynamic modbus devices... Most configurations I have come across impose static MB configs in which all configured devices MUST be present and functional... I have monkeyed around with MB enough to know that herding a half dozen MB cats into a working config can be tricky. I just do them one at a time and dynamically turn them on/off in whatever combination is convenient with ID, IP, baud, parity etc being runtime tweakable. I am totally curious whether this is possible with codesys, or whether its device configuration corrals one into a static cage which requires re-building the code to support flexible variations. Best regards
Last updated: 2025-08-19
Post by kurtk on runtime dynamic modbus devices
CODESYS Forge
talk
(Post)
I am CODESYS neophyte getting my wheels on. My goal is to re-platform an existing PLC application written in 61131 ST I've got the majority of the code/variables in a compilable form - excluding all the IO and comms nuances I am not sure whether this the right forum An important functionality which I implemented on the other platform was totally dynamic modbus devices... Most configurations I have come across impose static MB configs in which all configured devices MUST be present and functional... I have monkeyed around with MB enough to know that herding a half dozen MB cats into a working config can be tricky. I just do them one at a time and dynamically turn them on/off in whatever combination is convenient with ID, IP, baud, parity etc being runtime tweakable. I am totally curious whether this is possible with codesys, or whether its device configuration corrals one into a static cage which requires re-building the code to support flexible variations. Best regards
Last updated: 2025-08-19
Post by ranadheer on Codesys Control for PLCnext (PLC - AXL F 2152)
CODESYS Forge
talk
(Post)
Hello Jaco Pretorius, I came across your post regarding CodeSys control for PLCnext. I’m currently working on a similar setup and had a quick question. Here am using the CODESYS V3.5 SP21 PATCH2 ,VERSION 3.5.21.20 , and Downloaded extension package 4.16.0.0 (old versions are not available in the extension CodeSys installer) Devices used here are: BUS COUPLER : 2403869 BK PN TPS Module carrier slot 1 : 1088127 AXL SE DI16/1 Module carrier slot 2 : 1088062 AXL SE AI4 | 4-20 Module carrier slot 3 : 1088129 AXL SE DO16/1 Module carrier slot 4 : 1088123 AXL SE AO4 | 4-20 -->Start a New Project Type: Standard Project Device: CODESYS Control Win V3 x64 Language: Structured Text -->Install GSDML File Navigate to: Tools > Device Repository > Install Select the GSDML file path (downloaded from Phoenix Contact for device coupler Part ID: BK PN TPS 2403869) Click Renew Device Repository Close the dialog -->Add Device to Project -->Right-click on Devices > Add Device Issue: Devices from the repository are not available to select or call into the project! I’d really appreciate any guidance or suggestions you can offer. Best Regards Ranadheer Reddy
Last updated: 2025-09-09
Post by ranadheer on Codesys Control for PLCnext (PLC - AXL F 2152)
CODESYS Forge
talk
(Post)
Hello Jaco Pretorius, I came across your post regarding CodeSys control for PLCnext. I’m currently working on a similar setup and had a quick question. Here am using the CODESYS V3.5 SP21 PATCH2 ,VERSION 3.5.21.20 , and Downloaded extension package 4.16.0.0 (old versions are not available in the extension CodeSys installer) Devices used here are: BUS COUPLER : 2403869 BK PN TPS Module carrier slot 1 : 1088127 AXL SE DI16/1 Module carrier slot 2 : 1088062 AXL SE AI4 | 4-20 Module carrier slot 3 : 1088129 AXL SE DO16/1 Module carrier slot 4 : 1088123 AXL SE AO4 | 4-20 -->Start a New Project Type: Standard Project Device: CODESYS Control Win V3 x64 Language: Structured Text -->Install GSDML File Navigate to: Tools > Device Repository > Install Select the GSDML file path (downloaded from Phoenix Contact for device coupler Part ID: BK PN TPS 2403869) Click Renew Device Repository Close the dialog -->Add Device to Project -->Right-click on Devices > Add Device Issue: Devices from the repository are not available to select or call into the project! I’d really appreciate any guidance or suggestions you can offer. Best Regards Ranadheer Reddy
Last updated: 2025-09-09
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.