Post by salvadegianluca on SysPlcCtrl23 and C0338: The library 'cmperrors interfaces, 3.5.5.0 (system)' is supported just in 32 bit applications
CODESYS Forge
talk
(Post)
Good afternoon to everyone; I'm stuck with this error and I don't know how to get out from it... I tried several time googling for alternative systems to control the PLC applications and resets but without success. I would like to realize the possibility to reset the CPU and to start/stop the applications as it was possible with the SysPlcCtrl23, but this library is no longer supported in 64 bit systems and it seems due to the cmperrors interfaces sub library that was included in the above said one. Someone found a work around for this issue?
Last updated: 2024-06-14
Post by salvadegianluca on SysPlcCtrl23 and C0338: The library 'cmperrors interfaces, 3.5.5.0 (system)' is supported just in 32 bit applications
CODESYS Forge
talk
(Post)
Good afternoon to everyone; I'm stuck with this error and I don't know how to get out from it... I tried several time googling for alternative systems to control the PLC applications and resets but without success. I would like to realize the possibility to reset the CPU and to start/stop the applications as it was possible with the SysPlcCtrl23, but this library is no longer supported in 64 bit systems and it seems due to the cmperrors interfaces sub library that was included in the above said one. Someone found a work around for this issue?
Last updated: 2024-06-14
Post by salvadegianluca on SysPlcCtrl23 and C0338: The library 'cmperrors interfaces, 3.5.5.0 (system)' is supported just in 32 bit applications
CODESYS Forge
talk
(Post)
Good afternoon to everyone; I'm stuck with this error and I don't know how to get out from it... I tried several time googling for alternative systems to control the PLC applications and resets but without success. I would like to realize the possibility to reset the CPU and to start/stop the applications as it was possible with the SysPlcCtrl23, but this library is no longer supported in 64 bit systems and it seems due to the cmperrors interfaces sub library that was included in the above said one. Someone found a work around for this issue?
Last updated: 2024-06-14
Post by dekelec on The current baud rate could not be determined in CR0020 IFM with maintenance tool
CODESYS Forge
talk
(Post)
It could be a problem with the cable pinout on either side: 9 pin D-SUB connector (male) - PC side Pin Potential: 1 n.c. 2 RxD 3 TxD 4 n.c. 5 n.c. 6 GND 7 n.c. 8 n.c. 9 n.c. Shell Shield Check if TxD and RxD cross between pins 2 and 3 (what is the Recive signal/wire to one device it's a Transmit signal/wire for the othe device) or with COM port settings: Bits per second: 9600 Data bits: 8 Parity: None Stop bits: 1 Flow controll: None
Last updated: 2024-07-09
Post by damian177 on Problem with downloading OPC UA tags by Data Source Manager
CODESYS Forge
talk
(Post)
Hi, In Codesys V3.5 SP20, using Data Source Manager I am trying to connect to the OPC UA server and receive tags from it. The connection is ok, but the Codesys have a problem with downloading Tags group. The window (downloadingTags.jpg in attachement) never stop. After waiting for a while, I disconnect the connection and only the Server group remains downloaded, with OPC UA server diagnostic data (and this is read in Codesys). Of course, I tried connected via another OPC UA client : UaExpert , and everything works as it should, all tags are downloaded (Uaexpert.jpg screen). Has anyone on the forum encountered the OPC UA client configuration in Codesys? Is it possible to manually request the appropriate tags from the OPC server for reading in Codesys?
Last updated: 2024-09-03
Post by trent on Automation server - trends stop recording - need to manually reconnect
CODESYS Forge
talk
(Post)
Hi All, I use the analysis page in automation server to capture historical trends from my PLC - i only sample one point per hour but it does the job (for now) One issue I have is I often log on to analysis page to find the system has stopped recording trends from my PLC. To fix this, I need to choose "state information" in the "List view" under PLC and click "Reconnect" When I do this I see my variables listed under "parameters" under "PLC Details" start updating again and the trend in Data analyzer continues to update. My Question, Why do I need to manually reconnect? Is there a way to get automation server to automatically reconnect to the PLC so I continue to capture data from the PLC? Regards, Trent
Last updated: 2024-10-22
Post by lsislsis on SIGABRT Error
CODESYS Forge
talk
(Post)
2024-11-08T13:39:07.354Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state* We recommend a reboot of the controller now! 2024-11-08T13:39:07.354Z, 0x00000111, 8, 260, 3, #### Exception: More than 2 exceptions in CH_COMM_CYCLE: Stop logging 2024-11-08T14:36:33.126Z, 0x0000100d, 1, 0, 0, Demo mode expired. 2024-11-08T15:35:49.253Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-08T15:42:54.664Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! *
Last updated: 2024-11-08
Post by dhumphries on Codesys device configuration
CODESYS Forge
talk
(Post)
First make sure the programming laptop and HMI are both on the same subnet. For example if the IP address of the HMI is 192.168.1.125 with a subnet mask 255.255.255.0 set your laptop IP to 192.168.1.120 with a subnet mask of 255.255.255.0. Make sure the cables are fully connected (the ethernet port on my programming laptop will click once but the cable is not fully seated.) Make sure the HMI is powered on, try pinging the device from a command prompt, if you can't ping the HMI there is a network issue that has to be resolved first.
Last updated: 2023-12-30
Post by superjojo2002 on Licensing info not available.
CODESYS Forge
talk
(Post)
I recognized that I have to start the two services "/etc/init.d/codemeter" and "/etc/init.d/codemeter-webadmin" in the docker container as well. If I do so, then the command "cmu -x" returns root@sensoredge-field-netfield-produktmanagment:/# cmu -x cmu - CodeMeter Universal Support Tool. Version 7.60c of 2023-Aug-09 (Build 5625) for Linux/ARMHF 64-Bit Copyright (C) 2007-2023 by WIBU-SYSTEMS AG. All rights reserved. So this time there is no indication any more that "Codemeter is not running". But still we are getting the error when using the license manager in CODESYS development system.
Last updated: 2024-03-21
Post by bschraud on Unerwünschte Username- und Passwortabfrage im Browserfenster
CODESYS Forge
talk
(Post)
Hallo, nach der Portierung meiner Applikation von Codesys Version 3.5.18 auf 3.5.20 habe ich u.a. folgende Baustelle: Wenn in der Datei /etc/CODESYSControl_User.cfg die Einträge [SysProcess] Command=AllowAll und [CmpWebServerHandlerV3] AllowFileTransferServices=1 ergänzt werden, startet die Webvisu mit einer Login Abfrage. Die Webvisu soll aber (wie bisher auch) ohne Benutzeraktion starten. Den Browser für die Webvisu rufe ich mit dem Eintrag @firefox --kiosk --private-window localhost:8080/webvisu.htm in der autostart Datei auf. Wie kann man die Login-Abfrage wieder loswerden? Die Runtime läuft auf einem RPi mit Kernel Version 6.1.21 (aarch64) Vielen Dank für die Hilfe
Last updated: 2024-04-02
Post by i-campbell on build (F11) / generate code using a python script file
CODESYS Forge
talk
(Post)
hello, please enjoy. # i-campbell 2024 import subprocess from scriptengine import * # with a project already open # save if not yet saved # check pool objects if it is a library # generate code only for the active application if it is a project # beep thanks to https://devblogs.microsoft.com/scripting/powertip-use-powershell-to-send-beep-to-console/ if projects.primary: # check project is open if projects.primary.dirty: # save projects.primary.save() if projects.primary.path.lower().endswith('.library'): projects.primary.check_all_pool_objects() # check all pool objects for lib else: projects.primary.active_application.generate_code() # generate if not lib # note, there could be more applications than the active application, # this script does not generate those else: system.write_message(Severity.Error,'no project open') ps_output = subprocess.check_output(["powershell", "-Command", "[console]::beep(500,300)"]) # beep
Last updated: 2024-04-10
Post by ppix on Establishing TLS Connection with MQTT Broker using MQTT Client SL Package
CODESYS Forge
talk
(Post)
For anyone confused with the process visit this link (the bottom section about creating a .pfx file) https://content.helpme-codesys.com/en/LibDevSummary/certificate.html#import-of-client-certificates-with-private-key. I solved this problem by creating a .pfx file and importing it into the security store under 'Own Certificates'(must have SP18 or newer to import .pfx). I used a gitbash shell to enter the openssl command that created the .pfx file. Once you import the file, in your TLS context, set your 'sUseCaseName' to be the same as the name listed in the 'Information' column of your imported certificate. This did it for me
Last updated: 2024-06-20
Post by davidbo on RPI can system operation like rm in a shell have an impact on a Task cycle time
CODESYS Forge
talk
(Post)
I have noticed that a rm file1.txt command on a shell has an impact on the cycle time for a TASK writing to file2.txt. Seen in the Monitor fane of the Task configuration Furthermore if a TASK makes a system call like rm, its cycle time increases of course but it seems to have an invisible impact on other TASKs too. I have a TASK for handling communication over the CANbus (SPI) where it stops sending "Heartbeats" for many seconds when another TASK does a system rm. Why is that not seen on the Monitor fane? Is even codesyscontrol paused when system calls are made? The CPU load is about 30-40%
Last updated: 2024-09-23
Post by micik on Start Codesys project and then execute python script from command line
CODESYS Forge
talk
(Post)
Hello, by searching the forum, I have found an example of batch script that can be used to start codesys projct by temporarily setting env variables. However, I'm not sure how to modify this to start Codesys 3.5.20 and whether or not I need to specify "profile" with Codesys version at all. @echo off SET PROJECT=D:\TestScripts\Data\OnlineTest.project SET VARIABLES=POU.testint,POU.testoutput start /wait CoDeSys.exe --profile="CoDeSys V3.4 SP3" --noUI --runscript="D:\TestScripts\Forum_Environment.py" I have tried the following just to open the test project: SET PROJECT=C:\TEST\Example.project start CODESYS.exe --profile="CODESYS V3.5 SP20 Patch 2" But I'm not sure how to specify this project to be open after py script is executed. The py script should first add required library to the project and then project should be open.
Last updated: 2024-09-30
Post by ricola on Change default node Id name on Raspberry Pi
CODESYS Forge
talk
(Post)
EDIT : https://forge.codesys.com/forge/talk/Engineering/thread/cb5a492aa0/ hyplcmotion - 2022-12-16 Found out how! Needed to connect to PFC200 via Putty, and open CodesysControl.cfg with “sudo nano /etc/CODESYSControl.cfg”. Then adding following command to the end of file, and use the name you want, save/close CODESYSControl.cfg, and reboot your PLC. [CmpOPCUAProviderIecVarAccess] CustomNodeName= PFC200 Hi! , I'm digging up this issue cause we have still this long name within current versions on CodesysControl. Is it a lock for "demo" licences or can it be changed in some way ? This DeviceSet name is too way long with spaces inside, not easy to handle with string parsing... Cheers !
Last updated: 2024-10-10
Post by thommy54 on CODESYSControl_User cfg richtig konfigurieren
CODESYS Forge
talk
(Post)
Hallo, nach Erwerb eines neueren Raspberry pi 4 (V1.5) musste ich zwangsläufig von Codesys 3.5.16 hochwechseln - ich habe auf 3.5.20.1 geupdated. Da schlugen mir plötzlich ne Menge Einschränkungen entgegen, deren Behebung einige Zeit dauerte. Eine davon ist, das ein SysFile.SysFileOpen nicht mehr funktioniert. Ich habe das Problem mit Einträgen in der /etc/CODESYSControl.cfg behoben: [SysFile] FilePath.1=/etc/, 3S.dat IecFilePath.1=/proc/, cpuinfo IecFilePath.2=/proc/, iomem PlaceholderFilePath.1=/sys/devices/w1_bus_master1, $OneWire$ PlcLogicPrefix=1 ; ; ---------------------- ; selbst eingefügt PlaceholderFilePath.2=/home/root, $my_home_root$ PlaceholderFilePath.3=/etc/init.d, $my_conf$ PlaceholderFilePath.4=/var/lib/mpd, $my_music$ PlaceholderFilePath.5=/root/Rasp_SPS_Filesystem, $my_Rasp$ Ob die Einträge sich etwas überlappen, kann mir gern jemand sagen, das ist aber nicht das Problem. Ich habe bei den vielen Versuchen, das Teil zum Laufen zu bringen, bemerkt, daß die Einträge auch ganz schnell mal verschwinden. Das ist ja auch so beschrieben, wenn die nächste Version kommt, sind meine Einträge weg. Da ich ähnliche Probleme mit dem Funktionieren von "SysProcessExecuteCommand2()" hatte, die ich ebenfalls mit Einträgen in die /etc/CODESYSControl.cfg hätte beheben können, habe ich gelesen, das man "private" Einträge lieber in die Datei /etc/CODESYSControl_User.cfg machen soll. Gesagt getan und "SysProcessExecuteCommand2()" lief: [SysProcess] Command=AllowAll Command.0=shutdown Aber auch irgendwo stand, das so ein Beteichner wie [SysFile] oder [SysProcess] nur einmal in den beiden Files /etc/CODESYSControl.cfg oder(!) /etc/CODESYSControl_User.cfg vorkommen darf. Das ist nun die eigentliche Frage! Ist das so ? Bei [SysProcess] ist das kein Problem, das gibt es in /etc/CODESYSControl.cfg nicht. Aber bei [SysFile] sieht das anders aus. Da sind 5 Zeilen schon in /etc/CODESYSControl.cfg drin. Würde ich diese in die User-Datei rüberschieben, könnte beim nächsten Update was fehlen oder, oder... Lasse ich es so wie es ist, sind meine Einträge beim Update weg - das sollte ja verhindert werden. Kann da jemand genaue Auskunft geben ?? Vielen Dank Thomas
Last updated: 2024-06-28
Post by rcaponi on Codesys Control RTE V3. Remote Control
CODESYS Forge
talk
(Post)
Hello, I would like to have, if possible, some clarification on this function. That is, I would like to understand if it is useful for managing, fom my development PC, the RTE runtime executed on a remote control. This is what the help says: Remote PLC: Opens the Remote Configuration dialog. By enabling or disabling the Control remote PC, not local option, you determine whether a PLC is used that is on a remote or local PC. Accordingly, the menu commands Start PLC, Stop PLC, and PLC Configuration refer to the local PC or a PC reached on the network. For the remote PC, specify the Target PC address, Port number, and a Timeout value (in ms) for the connection (Remote Timeout [ms]). But does this mean that I also need to install the RTE runtime on my development PC? Is it possible to have some more information? Best regards Roberto Caponi
Last updated: 2023-09-22
Post by vassilis91 on EtherCat-Rexroth Drive lost connection or no?
CODESYS Forge
talk
(Post)
Hi all, i am encounter a mystery problem with a build with rexroth drives at my work. At my company we are make a machine with two Rexroth Indradrives . The two drives are goes by ethercat protocol . To be more specific i am going from my plc to the Beckoff El1100 coupler and after to the first drive and from the first drive to the second. The second drive works with no problem but the first(motor) sometimes without any pattern start to make a mysterious noise like stop and suddenly goes on again. If i couldn't hear the noise from the motor i couldn't Imagine that this happen. After a lot of research i see that sometime i have some strange zeros from the drive to the plc? Really i am in a deadlock and I don't know how to continue. From the other side the values on the other drive(second)are stable . The problem maybe: https://youtube.com/shorts/g7PCFLUaDUI?si=eiq0F2IzhQZax2e2
Last updated: 2023-10-25
Post by mavitia on Application based license problem - Modbus TCP
CODESYS Forge
talk
(Post)
I am running ubuntu on a raspberry pi, and installed an application based license Control Basic M on it, it runs a demo program fine, does not timeout etc. however, when I add a modbus TCP device, I start getting errors: <Entry severity="error" component="CmpApp" user="nobody" timestamp="12/18/2023 3:49:42 PM" infoId="24">Online change denied. Application Application is in exception state!</Entry> <Entry severity="error" component="CmpApp" user="nobody" timestamp="12/18/2023 3:49:42 PM" infoId="68">Download failed: Application=Application</Entry> <Entry severity="exception" component="CmpApp" user="nobody" timestamp="12/18/2023 3:49:41 PM" infoId="0">Application app=Application has invalid license metrics!</Entry> the modbus tcp slave runs, and the counter ticks up, however, when I call the variables on the %IX0.0 in my program, and try to upload the changes, I am getting the error messages which stop the program as far as I understand, the application based, M includes 2 fieldbus instances, but on the other side is fairly new, anything obvious I am missing out here?
Last updated: 2023-12-18
Post by axilleas on SMC_Interpolator + SMC_controAxislbyPos
CODESYS Forge
talk
(Post)
dear all I am working on a very generic gantry system (virtual drives + win v3 control) reading gcode from external file. In order to stop the interpolator function from running when gaps are detected, SMC_controlAxisByPos FB has the bStopIpo output which according to the manual is connected to the Interpolator's bEmergencyStop. Lets assume that the axis are parked in position X1000 Y1000 and the initial G code movement is G00 X500 Y500. The normal behavior is to travel from the actual x1000 y1000 to G00 X500 Y500. The SMC_Interpolator always gets the X0 Y0 as the initial position, meaning that the bStopIpo is active until the axis are in X0 Y0 and the release the interpolator to set the new positions to X500 Y500. Is there a suggested method to solve this behavior? bonus question: I get a lot of bStopIpo during standard interpolation movements (not gaps). While working with virtual axis this is not a problem but when real axis are installed this will be an issue. What exactly triggers the bStopIpo output? Slow axis accelerations compare to Gcode defaults? Kind Regards
Last updated: 2024-02-05
Post by fontrap on cmDongle Raspberry Pi issue
CODESYS Forge
talk
(Post)
Hello mates, I'm working with CODESYS V3.5 SP20 on a Raspberry Pi and I use "Raspberry Pi MC SL" as device on the project. I've installed the Control Standard L (multicore) license on a Wibu System usb-Dongle (cmStick/4.50) that already had another license from another vendor. I follow the online activation procedure from CODESYS documentation. Raspberry Pi has already CodeMeter installed for the other license. When I plugin the dongle on Raspberry and start the Runtime from Raspberry Pi Update in CODESYS I receive the message that I'm on Demo mode because the license is missing. I double checked that the license is activated in the dongle, through the WebAdmin of CodeMeter and the second license runs properly without any issue. I have already try to change the dongle from HID to MSD device and backward but the the Runtime cannot recognize the Dongle. I have also try to stop and start the Runtime through CODESYS without success. Is there anything else I can do to fix this issue?
Last updated: 2024-04-22
Post by caprez95 on Trace Restart Visuelement
CODESYS Forge
talk
(Post)
Hallo zusammen. Ich habe schon länger mit dem Problem zu kämpfen, dass ich einen Trend (Visuelement) nicht resetten (neustarten) kann. Ich habe es jetzt mit dem Beispiel hinbekommen, die Trace-Aufzeichnung über die CmpTraceMgr Bibliothek zu steuern. Aber wie bekomme ich diese Trace-Aufzeichnung in ein Visuelement? Der Code sieht wie folgt aus: // Configure trace IF xInit THEN // Create a trace packet PacketConfig.pszName := ADR('IECTraceConfiguration.Trace1'); // Name of trace PacketConfig.pszApplicationName := ADR('IECTraceConfiguration'); // Name of the application PacketConfig.pszIecTaskName := ADR('Task'); // Name of the task PacketConfig.pszComment := ADR('Demo packet'); PacketConfig.ulEveryNCycles := 1; PacketConfig.ulBufferEntries := 1000; PacketConfig.ulFlags := TRACE_PACKET_FLAGS.TRACE_PACKET_FLAGS_TIMESTAMP_MS AND TRACE_PACKET_FLAGS.TRACE_PACKET_FLAGS_AUTOSTART; IF (NOT fbTraceManager.CreatePacket(PacketConfig := PacketConfig, hPacket=>hPacket1)) THEN xError := TRUE; END_IF // Create a trace record RecordConfig.pszVariable := ADR('iSignal'); // This is the name of variable to record RecordConfig.tcClass := INT_TO_UDINT(TypeClass.TYPE_INT); // Type of the recording variable RecordConfig.ulSize := SIZEOF(iSignal); // Size of the recording variable pApp := AppFindApplicationByName('IECTraceConfiguration', 0); AppGetAreaOffsetByAddress(pApp, ADR(iSignal), ADR(RecordConfig.tvaAddress.taAddress.Area.usArea), ADR(RecordConfig.tvaAddress.taAddress.Area.ulOffset)); // Get and set area offsets RecordConfig.tvaAddress.ulAddressFlags := TRACE_VAR_ADDRESS_FLAGS_IEC OR TRACE_VAR_ADDRESS_FLAGS_AREA_OFFSET; RecordConfig.ulGraphColor := 16#FF00FF00; // green RecordConfig.ulGraphType := 1; // Line with points IF (NOT fbTraceManager.AddRecord(RecordConfig := RecordConfig, hPacket := hPacket1, hRecord => hRecord1)) THEN xError := TRUE; END_IF xInit := FALSE; END_IF // Starts the recording IF xStart THEN IF (NOT fbTraceManager.StartPacket(hPacket := hPacket1)) THEN xError := TRUE; END_IF xStart := FALSE; END_IF // Stop the recording IF xStop THEN IF (NOT fbTraceManager.StopPacket(hPacket := hPacket1)) THEN xError := TRUE; END_IF xStop := FALSE; END_IF // Reset the recording IF xReset THEN IF (NOT fbTraceManager.ResetPacket(hPacket := hPacket1)) THEN xError := TRUE; END_IF xReset := FALSE; END_IF
Last updated: 2024-06-04
Post by caprez95 on Trace Restart Visuelement
CODESYS Forge
talk
(Post)
Hello everyone. I've been struggling with the problem for a long time that I can't reset (restart) a trend (visual element). With the example I have now managed to control the trace recording via the CmpTraceMgr library. But how do I get this trace recording into a visual element? The code looks like this: // Configure trace IF xInit THEN // Create a trace packet PacketConfig.pszName := ADR('IECTraceConfiguration.Trace1'); // Name of trace PacketConfig.pszApplicationName := ADR('IECTraceConfiguration'); // Name of the application PacketConfig.pszIecTaskName := ADR('Task'); // Name of the task PacketConfig.pszComment := ADR('Demo packet'); PacketConfig.ulEveryNCycles := 1; PacketConfig.ulBufferEntries := 1000; PacketConfig.ulFlags := TRACE_PACKET_FLAGS.TRACE_PACKET_FLAGS_TIMESTAMP_MS AND TRACE_PACKET_FLAGS.TRACE_PACKET_FLAGS_AUTOSTART; IF (NOT fbTraceManager.CreatePacket(PacketConfig := PacketConfig, hPacket=>hPacket1)) THEN xError := TRUE; END_IF // Create a trace record RecordConfig.pszVariable := ADR('iSignal'); // This is the name of variable to record RecordConfig.tcClass := INT_TO_UDINT(TypeClass.TYPE_INT); // Type of the recording variable RecordConfig.ulSize := SIZEOF(iSignal); // Size of the recording variable pApp := AppFindApplicationByName('IECTraceConfiguration', 0); AppGetAreaOffsetByAddress(pApp, ADR(iSignal), ADR(RecordConfig.tvaAddress.taAddress.Area.usArea), ADR(RecordConfig.tvaAddress.taAddress.Area.ulOffset)); // Get and set area offsets RecordConfig.tvaAddress.ulAddressFlags := TRACE_VAR_ADDRESS_FLAGS_IEC OR TRACE_VAR_ADDRESS_FLAGS_AREA_OFFSET; RecordConfig.ulGraphColor := 16#FF00FF00; // green RecordConfig.ulGraphType := 1; // Line with points IF (NOT fbTraceManager.AddRecord(RecordConfig := RecordConfig, hPacket := hPacket1, hRecord => hRecord1)) THEN xError := TRUE; END_IF xInit := FALSE; END_IF // Starts the recording IF xStart THEN IF (NOT fbTraceManager.StartPacket(hPacket := hPacket1)) THEN xError := TRUE; END_IF xStart := FALSE; END_IF // Stop the recording IF xStop THEN IF (NOT fbTraceManager.StopPacket(hPacket := hPacket1)) THEN xError := TRUE; END_IF xStop := FALSE; END_IF // Reset the recording IF xReset THEN IF (NOT fbTraceManager.ResetPacket(hPacket := hPacket1)) THEN xError := TRUE; END_IF xReset := FALSE; END_IF
Last updated: 2024-06-04
Post by fajean on CODESYS control on RPi starts, shortly runs, then exits
CODESYS Forge
talk
(Post)
I have a Raspberry Pi 4 we have been using for years to run CODESYS for development purposes. I recently have had to re-install the OS (Raspberry OS lite). The only change to the default configuration is not creating the "pi" user during install. I (apparently successfully) installed the 4.10.0.0 control on the Raspberry Pi. We have licences on a dongle. I am able to start the control. systemctl status shows it as running for a little while (exactly, precisely 30 seconds as per my tests, every time), then it becomes exited. I can restart the control, and the same thing happens again. Every time. In the brief moments it is running, I can log in to the PLC. Working fast and restarting the control many times, I have been able to configure users. I have been able to download my application. I have been able to run the application, and stop on a breakpoint. I have been able to connect with the licence manager and confirm the dongle is detected and licences are listed as OK. I see nothing wrong until the service just exits. I have found nothing in the logs. It is like the runtime just terminates with no error code or message after exactly 30 seconds. Any help would be appreciated.
Last updated: 2024-06-13
Post by egau on Hard shutdown: no code on device after power on
CODESYS Forge
talk
(Post)
Hi, We have a machine running Codesys on a Windows IPC (CODESYS Control Win v3 - x64). When we hard shutdown the machine, the code on the PLC sometimes becomes "corrupted" after a power on (When trying to login to the PLC, we get the message "The application 'Application' does not exist on device."). I've noticed these errors in the logs, but I'm not sure what to make of them. We are not using any RETAIN variables in our code, although I'm not sure about referenced librairies. (we are using the persistence manager). I'm pretty sure that not doing a graceful shutdown is the root cause of this. This being said, what is the proper way of doing a graceful shutdown? Is putting the Codesys application in "stop" sufficient? I know how to implement this, so if it works then it would be a quick fix. However, I think we need to add a UPS, which would detect power loss and inform the PLC that it needs to initiate its shutdown, and then the PLC would shutdown gracefully. Any help with this will be greatly appreciated :)
Last updated: 2024-10-03
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
.