EtherCAT error: the device is deactivated
CODESYS Forge
talk
(Thread)
EtherCAT error: the device is deactivated
Last updated: 2024-10-02
Post by davidbo on Modbus: Is there a way to get the channel index from the channel name?
CODESYS Forge
talk
(Post)
When I use the FUNCTION_BLOCK ModbusChannel I have to sepcify the integer iChannelIndex It can easily go wrong if one has many channels. It would be better if one could use the name. Is that possible? Attached a snippet of the channel name and the channel index to the left.
Last updated: 2024-10-21
Error during Updating the Visualisation
CODESYS Forge
talk
(Thread)
Error during Updating the Visualisation
Last updated: 1 day ago
Post by zoronoa on J1939.ReceiveWatchdog & J1939.ReceiveParameterGroup
CODESYS Forge
talk
(Post)
Hi, I'm trying to monitor a specific PGN which I have it sending a pulse every 500mS Problem: Using the Watchdog for the ECU does not really help me as I have multiple instances with separate PGNs, if a PGN goes ghost, the ECU watchdog won't be flagged as the others will be running. I found the J1939.ReceiveWatchdog & J1939.ReceiveParameterGroup function blocks and they seem like a good solution for my problem, I just can't get them to work from my understanding you just build the J1939.ReceiveParameterGroup once and then connect it's output to the J1939.ReceiveWatchdog, here's my CODE for the setup HEARTBEAT_TIMER(IN:= TRUE, PT:= T#1000MS); //turn-on delay because of initialization race IF HEARTBEAT_TIMER.Q= TRUE THEN Glob_Var.DisplayReceive.xExecute:= TRUE; Glob_Var.DisplayReceive.itfECU:= Valve_X; Glob_Var.DisplayReceive.dwPGN:= 65511; Glob_Var.DisplayWatchdog.xEnable:= TRUE; Glob_Var.DisplayWatchdog.itfParameterGroup:= Glob_Var.DisplayReceive.itfParameterGroup; Glob_Var.DisplayWatchdog.tTimeout:= T#1500MS; END_IF Notes: Glob_Var.DisplayReceive is of type J1939.ReceiveParameterGroup Glob_Var.DisplayWatchdog is of type J1939.ReceiveWatchdog The above code is done once and not cyclically I'm monitoring Glob_Var.DisplayWatchdog.xError cyclically
Last updated: 2024-03-13
Post by egau on Hard shutdown: no code on device after power on
CODESYS Forge
talk
(Post)
This explanation aligns with the issues we’re experiencing with our machines. The scenario I described is happening with one of them (let’s call it Machine A). This machine is identical to another one (Machine B), except for some custom code that facilitates communication with an external Beckhoff PLC for MES integration in the production line. Machine B has been powered on and off daily for at least three months and has never had this problem. Given that, I highly doubt the MES custom code is the cause of the code corruption. This being said, your explanation does seem plausible. However, if faulty EtherCAT cables were the issue, why wouldn't the error occur during normal operation? Why would bad cables only cause problems during a hard shutdown? One last question: When you encountered this behavior, did you see a similar error in your logs? i.e, an "AccessViolation" exception in the EtherCAT Task?
Last updated: 2024-10-03
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 toby on Ethercat Servo Setup
CODESYS Forge
talk
(Post)
Hi everyone, so a little update to this, I've come back to this project in the new year, and got it working. Yeah!, However, now with the new licensing setup, I need a new SoftMotion license, but it doesn't seem to be compatible with the previous Raspberry Pi SL license. Has anyone had any luck with Raspberry Pi and SoftMotion_Lite? Specifically the licensing of such? My customers new installation needs to be rebooted every 30min which is causing headaches! Another option is to not use the SoftMotion function blocks, and control the EtherCat amplifier directly, but I'm not sure how to do so. Does anyone have a specific example project of how to control a servo without the use of the SoftMotion function blocks? Thanks everyone for any assistance rendered. It's very much appreciated! Toby
Last updated: 2024-01-10
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 phoward131 on Text List Fallback Value
CODESYS Forge
talk
(Post)
I am relatively new to Codesys and I'm trying to develop an HMI that displays what mode a particular device is in based on an integer value. I am currently using dynamic texts with a text list which works fine but I am looking for a way to display a particular string (ie 'Unknown') when the index doesn't match any of of the indices in the text list. I can enter 'Unknown' in the text property of the text field element which works as expected but it displays the single quotes on the visualization. How can I escape these quotes to simply display the word Unknown? Thanks!
Last updated: 2024-03-22
Post by fajean on CODESYS control on RPi starts, shortly runs, then exits
CODESYS Forge
talk
(Post)
4.11 appears to solve the problem. Thanks for your help. I had first installed the 64-bit version of RPiOS, but looking at various posts and the product's page on the store which only lists 32-bit compatibility, I downgraded to the 32-bit version. I did this before trying 4.11, and it did not solve the problem. Thus my working system is 32-bit, and I am wondering if I can go back to 64-bit or not. An 64-bit OS is not listed as compatible on the store's web page, but when installing there actually is a 64-bit version listed (automatically chosen when installing on 64-bit, but otherwise greyed out). Is 64-bit supported and the website is out-of-date, or is that some kind of work-in-progress?
Last updated: 2024-06-13
Post by timvh on Communication between applications on same device/controller/runtime (Win RTE 3.5.20.20)
CODESYS Forge
talk
(Post)
If you have a Windows system (RTE), then why not run the CODESYS HMI as separate controller. This could easily be moved to another PC if required. In the HMI you could also still use the Symbolic Var access as part of the Data Source Manager, although maybe OPC is the preferred way to make it more future proof. Or what about the Remote Target Visu. Then you can reduce the load of the main controller, while still only having to create one application including Visualization. This is now also supported for Linux systems. See: https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_target_visu_for_linux.html https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_execute_remote_target_visu.html
Last updated: 2024-09-28
Post by installwhat on IDialogOpenedListener
CODESYS Forge
talk
(Post)
Why do you develop things like this? The workflow should be highly dependent on autocomplete, then if that's not super obvious browse to definition and everything is made clear possibly with the checking of a few types. The nature of how things are done makes me think these libraries aren't developed for general use and are actually internal or for partners. The example projects include objects that don't appear in autocomplete and then lead nowhere obvious when browsing. Do you consider developer workflow when creating these libraries? Are some libraries really for public use such as Visu Utils and others not? If so which? It's really hard to tell.
Last updated: 2024-08-06
Post by ph0010421 on How to create a stopwatch?
CODESYS Forge
talk
(Post)
Do you need an 'hours-run' counter? And 1 second resolution is ok? I think you're over-thinking it. (The task time needs to be < 1second) Have a look at the LAD... Then, the time in seconds can be made into hh:mm:ss with this FUNction Declarations: FUNCTION funSecondsToStringTime: string VAR_INPUT InSeconds: UDINT; END_VAR VAR AsString: STRING; Minutes: UDINT; Hours: UDINT; Seconds: UDINT; MinutesAsString: STRING(2); HoursAsString: STRING(2); SecondsAsString: STRING(2); END_VAR and the code: Hours := InSeconds / 60 / 60; //Derive hours Minutes := (InSeconds - (Hours * 60 * 60)) / 60; //Derive minutes Seconds := InSeconds - ((Hours * 60 * 60) + (Minutes * 60));//Derive seconds HoursAsString := UDINT_TO_STRING(Hours); MinutesAsString := UDINT_TO_STRING(Minutes); SecondsAsString := UDINT_TO_STRING(Seconds); IF LEN(HoursAsString) = 1 THEN HoursAsString := CONCAT('0',HoursAsString); END_IF; IF LEN(MinutesAsString) = 1 THEN MinutesAsString := CONCAT('0',MinutesAsString); END_IF; IF LEN(SecondsAsString) = 1 THEN SecondsAsString := CONCAT('0',SecondsAsString); END_IF; AsString := CONCAT(HoursAsString, ':'); //assemble string AsString := CONCAT(AsString,MinutesAsString); AsString := CONCAT(AsString,':'); AsString := CONCAT(AsString, SecondsAsString); funSecondsToStringTime := AsString;
Last updated: 2023-12-08
Post by mikek10 on Ethernet/IP 4.6.0 causing exceptions?
CODESYS Forge
talk
(Post)
Hi, I have a project currently in development, it has a number of Ethernet/IP devices (18 adapter devices with Codesys as scanner, another scanner device with codesys as adapter). This has been stable whilst on factory floor for several months (though prior to that I did have some Ethernet/IP issues which were resolved by adjusting RPI rates). Today I tried updating to Ethernet /IP 4.6.0 from 4.5.1, subsequent to this I had 2 exceptions in a 2 hour period, I reverted to 4.5.1 and have had no further exceptions. Note I do have a device (Zebra printer) that frequently times out and reconnects, this does not seem to cause any issues in operation and does not cause any exceptions with 4.5.1. I believe the root cause of this is on the Zebra side, however there does not seem to be any adjustment I can make to prevent the time outs. Information from device log is in screenshot attached.
Last updated: 2024-06-27
Post by bagusd on gateway problem
CODESYS Forge
talk
(Post)
hello, I have a problem with the gateway not being able to connect to the plc, does anyone know why the gateway is difficult to connect to the plc? even though the lan cable has been connected to the plc and codesys gateway V3 has been restarted, thank you
Last updated: 2023-08-25
Post by gurke258 on Codesys Safety EtherCAT with Beckhoff
CODESYS Forge
talk
(Post)
Okay, the solution was so simple... In my case, you first have to add the EL1918 and then the EL2904... then the connection is made automatically. I probably had something else before and then added the EL1918... then it doesn't catch the connection :/
Last updated: 2023-11-08
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 camilloo on Control for Linux SL on Ubuntu Core
CODESYS Forge
talk
(Post)
(dhumphries) I followed your advice and tried it on Ubuntu Server. Was a good choice. Your material was also very helpful :). Thanks for Your help! I no longer have problems connecting to Ubuntu. However, I still cannot install Virtual PLC. I'm currently getting a missing path message: "C:\Program Files\CODESYS 3.5.19.60\CODESYS\CODESYS Virtual Control for Linux SL\Delivery\virtuallinux\VirtualControlAPI.py." It looks as the package: "CODESYS Virtual Control for Linux SL" was not installed. But, there isn't one in CODESYS Store or I'm doing something incorrectly.
Last updated: 2024-03-03
Post by rmaas on Direct Pointers in IOMapping for EtherCAT with IoDrvEthercatLib.ETCSlave_Dia
CODESYS Forge
talk
(Post)
Wow, this is next level for me, very impressive! glad you found a solution, thanks for sharing!
Last updated: 2024-02-13
Post by manuknecht on Using SMC_MOVTYP.INITPOS without specifying the start position
CODESYS Forge
talk
(Post)
I am using the object SMC_GEOINFO to generate a trajectory and move a system accordingly using the SMC_INTERPOLATOR function block similar to the sample project CNC10_DynamicPath.project. According to the documentation, the movement type INITPOS does not require a start position in the SMC_GEOINFO object, which is confirmed in the documentation of the SMC_GEOINFO object. When using the movement type INITPOS however, the motion will still start from the starting point defined in the SMC_GEOINFO object (0,0,0 if not specified otherwise). Does someone know how to resolve this or is there an example project that makes use of the INITPOS movement type without specifying the starting point? Thanks in advance!
Last updated: 2023-12-15
Post by mostafa-beshr on implementing continuous movement in Codesys
CODESYS Forge
talk
(Post)
Hi everyone, I’m working on implementing continuous movement in Codesys, but I've run into some trouble. I've tried using ALL SM3 Basic and SML without success. I’m specifically looking for a library that supports continuous updates and can fetch values from a server in real time. Does anyone know of a library or approach that fits these requirements? Any advice or suggestions would be greatly appreciated! i read plcopen documentaion as well as codesys Thank you!
Last updated: 2024-09-11
Post by mostafa-beshr on implementing continuous movement in Codesys
CODESYS Forge
talk
(Post)
Hi everyone, I’m working on implementing continuous movement in Codesys, but I've run into some trouble. I've tried using ALL SM3 Basic and SML without success. I’m specifically looking for a library that supports continuous updates and can fetch values from a server in real time. Does anyone know of a library or approach that fits these requirements? Any advice or suggestions would be greatly appreciated! i read plcopen documentaion as well as codesys Thank you!
Last updated: 2024-09-11
Post by mostafa-beshr on implementing continuous movement in Codesys
CODESYS Forge
talk
(Post)
Hi everyone, I’m working on implementing continuous movement in Codesys, but I've run into some trouble. I've tried using ALL SM3 Basic and SML without success. I’m specifically looking for a library that supports continuous updates and can fetch values from a server in real time. Does anyone know of a library or approach that fits these requirements? Any advice or suggestions would be greatly appreciated! i read plcopen documentaion as well as codesys Thank you!
Last updated: 2024-09-11
Post by mohammadasif on Blink Function definition is wrong in codesys online help
CODESYS Forge
talk
(Post)
https://content.helpme-codesys.com/en/libs/Util/Current/Signals/BLINK.html in the above link, please correct your website the following: "Output value, starts with FALSE and switches between TRUE and FALSE for the given high and low times" it should actually be: "Output value, starts with TRUE and switches between TRUE and FALSE for the given high and low times" if not please let me know if this has changed in a util library update, in your older website it has the right definition here: https://help.codesys.com/webapp/blink;product=codesys;version=3.5.11.0
Last updated: 2023-12-28
Post by esave on OPC UA Server with on Codesys + OPC UA Client on Labview
CODESYS Forge
talk
(Post)
Hello everyone I want a communication between my PLC as an OPC UA Server and Labview on my PC as the OPC UA Client. I have an Festo CPX-E-CEC-C1-PN PLC and I have the OPC UA Toolkit from Labview. I created some Variables for testing (see picture 1) on Codesys. I tried to use this Labview block diagram (see picture 2) but I cant connect the PLC to it. What do I have to type in the Server Endpoint URL and what in the Node ID? Is this a good way for communication with a PLC to a PC? If not is there another way?
Last updated: 2024-04-12
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
.