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 damian177 on Codesys and SMS in RPi
CODESYS Forge
talk
(Post)
I tried initialize my GSM modem by write simple application in C, and GSM modem works, below used AT commands: AtChat: T : "AT" AtChat: F : "OK" AtChat: T : "AT+CMEE=1" AtChat: F : "OK" AtChat: T : "AT+CMGF=0" AtChat: F : "OK" AtChat: T : "AT+CGMI" AtChat: F : "WH_Ltd" AtChat: F : "WH_GM35" AtChat: F : "Revision: RDA BV5" AtChat: F : "OK" AtChat: T : "AT+CGMM" AtChat: F : "WH_GM35" AtChat: F : "OK" AtChat: T : "AT+CGMR" AtChat: F : "Revision: GM35-D_B5_R05_A01_D170914" AtChat: F : "OK" AtChat: T : "AT+CGSN" AtChat: F : "868221045990218" AtChat: F : "OK" AtChat: T : "AT+CNMI=2,1,0,1,0" AtChat: F : "OK" AtChat: T : "AT+CLIP=1" AtChat: F : "OK" AtChat: T : "AT+COPS?" AtChat: F : "+COPS: 0,2,\"26002\"" AtChat: F : "OK" operator name: "26002" AtChat: T : "AT+CREG?" AtChat: F : "+CREG: 1,1" AtChat: F : "OK" at+creg Modem is initialized I do not understand why Codesys SMS library send AT+CPIN? command ?
Last updated: 2023-09-29
Post by andrej on Write to File on soft PLC winV3x64
CODESYS Forge
talk
(Post)
Hello all, I would like to store some data in text file. I use the soft PLC Win V3x64, on Windows 10. I use the SysFile Library 3.5.17.0. If I store the file directly in the in the directory of the PLC i.e. in '/CODESYSControlWinV3x64/E1FA7ABE/PlcLogic/LogAU.txt' the file is correctly filled with the data. However, If I use an absolute path to a different directory no data is stored in the respective file. Despite the fact that the respective file exists and the Filehandler is correctly opened (see in picture _fdSysFHandle <> -1). // sFileName : STRING := 'LogAU.txt'; // STORES FILE IN ../CODESYSControlWinV3x64/../PlcLogic/LogAU.txt' sFileName : STRING := 'C/Temp/LogAU.txt'// DOES NOT WORK --------------------- // FILE DESCRIPTOR _fdSysFHandle := SysFile.SysFileOpen( szFile:= sFileName,am:= SysFile.AM_APPEND,pResult := ADR(_Result)); Does some have an idea where the problem is, resp. how I can get store a file in an arbitrary directory. Thanks a lot and kind regards Andreas
Last updated: 2023-10-24
Post by janber0206 on Gateway doesn't come online, regarding a working internet connection
CODESYS Forge
talk
(Post)
Solved EN: The Problem is that the Codesys Edge-Gateways have a License with a runtime of an half year, as long the Gateways are online they will self renew themselfs. In my Case the RevPi was more than a year offline and so the Edge-Gateway was not working anymore. The solution: I accessed a laptop that was directly connected to the RevPi. I installed the Codesys service tool and renewed the certificate manual. DE: Das Propblem ist das die Codesys Edge-Gatways eine Lizenz haben die nur ein halbes Jahr gültig ist. Solange das Gateway eine Internet verbindung hat aktualisiert sich das Zertifikat von alleine. In meinem Fall war das Gateway aber über ein Jahr offline und hat somit nicht mehr funktioniert. Die Lösung: Ich hab auf einen Laptop von Kunden mit TeamViewer zugegriffen, der Laptop wurde mit Kabel direkt mit RevPi verbunden. Codesys Service Tool installiert und dann das Gatewayzertifikat aktualisiert.
Last updated: 2023-10-26
Post by oi18ct on ARM SL Development Board Recommendation
CODESYS Forge
talk
(Post)
Hello codesys forum, My company is looking at developing a solution with Codesys ARM SL. The requirements will not tax the capabilities of Codesys. I would like to buy an AMR 7 or 8 Dev Board for experimenting. I am looking for a recommendation as I have minimal experience with Linux. Any input from the forum would be most appreciated as the hardware requirements as provided by Codesys for ARM SL seem pretty minimal (basically a arm7 or 8 with Debian is all). Our needs are small in scale- something like 8 digital inputs, 6 digital outputs, 2 analog inputs and 1 analog output. A small gui will be published via web visualization for external display (no local display). Communications with ModbusTCP and uart/RS485. It may be necessary to access i2c and make c or python calls to some existing code that is pretty small. Something like the EMCraft STM32MP1 SOM Starter Kit or Octavo Systems OSD32MP1-RED development board? Ideally something that has a path to a SoM for production. Kontron appears to have some interesting options too. Just having a hard time deciding where to start. Thanks in advance... LC
Last updated: 2023-11-11
Post by toffeebonbon on EL7041-0052 - does it run with EL7041 SoftMotion?
CODESYS Forge
talk
(Post)
Good morning everyone. In my setup I am trying to use a couple of EL7041-0052 (the EL7041 variant without terminals for an encoder) to run stepper motors without feedback. When using the softmotion drivers for the EL7041 (Rev22 and Rev24, even selecting external feedback type doesn't work) the device log shows warnings for the corresponding hardware: "SDO write error 0x1 -> 0x8012:0x08 eError 0x1 AbortCode 0x6090011". 0x8012:0x08 is the register for the Feedback Type. My best guess was setting the the register value in the start parameters to zero, but the result is the same. What else can I try to get the hardware to work? I have screenshots attatched showing the running fieldbus and the log messages. EDIT: One clarification: the "device log" that shows the error is the PLC, not the ethercat terminal. The log of the terminal itself shows neither errors nor warnings. BR Robert
Last updated: 2023-11-29
Post by arundara on Variable Sync Issue In Soft Plc Redundancy
CODESYS Forge
talk
(Post)
Hello, I was trying to create a redundancy POC for our application where we read data from few modbus tcp devices. As there is a limitaion that modbus tcp device support only for single master device, we wanted to test how the variable sync happens in redundancy mode. For that i have used the redundancy sample code added a variable "b" under a condition. What i observed was while active controller is running, if passive controller is powerup, passive controller is able to sync all the data configured for redundacny. But after that the variable data which resided under a condition is not synching from active to passive controller. I have attached the image where i have highlighter the variable. Can some help me to understand how redundacny work in codesys soft plc and if there is a solution to sync variable which are under condition, please explain the same or suggestion to achieve the same. Hardware - Raspberry Pi (2 qty) Redundancy licence used - yes in both controllers. Codesys runtime - 4.9.0.0 Codesys software version - V3.5 SP19 if i have posted this question in wrong section, please do let me know in whcih section i have to post this question.
Last updated: 2023-12-01
Post by nizrahel on OpC UA server on Raspberry Pi 64 SL runtime
CODESYS Forge
talk
(Post)
Hi all! I'm working on an home project using a Raspberry Pi 3 device with Codesys for Raspberry Pi 64 SL runtime. I would like to create the HMI interface with Siemens WinCC Unified (or Advanced) configuring the Raspberry as OPC UA server. I tryed everything, but I didn't find the way to let the OPC UA connection works using UaExpert. I tryed to use anonymous connection, authenticated connection and the ip address instead of the server name in the path connection. There is no way to connect to the OPC UA server and I was asking myself if this feature is really supported for the runtime version used. Another strange thing I noted, is that is not possible to quickly create an OPC UA certificate in the Security Screen, as show in any tutorials. I have correctly created the Symbol Configuration enabling the OPC UA feature. I attach to this topic some printscreen of the actual configuration (sorry for the italian language interface, but I didn't find the way to switch to english). Thank you very much in advance for your support and advices!
Last updated: 2023-12-03
Post by open on How to create a stopwatch?
CODESYS Forge
talk
(Post)
Hi @ph0010421, I tried the program the TimeTaken is calculated when stop is triggered. I want the TimeTaken to be continuously calculated and counting when a BOOL variable is true. I tried to program this way: Declaration: PROGRAM PLC_PRG VAR bStartStop: BOOL := FALSE; // Start/Stop button bReset: BOOL := FALSE; // Reset button bRunning: BOOL := FALSE; // Flag indicating whether the stopwatch is running tStartTime: TIME; // Variable to store the start time tElapsedTime: TIME; // Variable to store the elapsed time END_VAR Implementation: // Main program logic IF bReset THEN // Reset button pressed, reset the stopwatch bRunning := FALSE; tElapsedTime := T#0s; ELSIF bStartStop THEN // Start/Stop button pressed, toggle the running state IF bRunning THEN // Stop the stopwatch bRunning := FALSE; ELSE // Start the stopwatch bRunning := TRUE; tStartTime := tElapsedTime; END_IF; END_IF // Update the elapsed time when the stopwatch is running IF bRunning THEN tElapsedTime := tElapsedTime + T#1s; // Adjust the time increment as needed END_IF However counting of the seconds is not accurate. I tried changing the main task cycle time interval to 1000ms. The counting of seconds become slower. (see attached) Please help
Last updated: 2023-12-08
Post by nz-dave on Bool turning on in case stament in wrong state?
CODESYS Forge
talk
(Post)
I had the FB called via a for loop to call a few instances of my FB I have removed it the for loop and just called them 1 by 1. Seems to have sorted the problem. tho, i have other FB's and for loops doing the same thing but they are all fine. below is basically what was happening. var: mVibrator : ARRAY[1..GVL_Settings.Number_Of_Products] OF Main_Vibrator; end_var Controller(PRG) call: FOR v := 1 TO GVL_Settings.Number_Of_Products BY 1 DO; mVibrator[v] (); END_FOR So at state 30: the mVibrator[1].start was turning on 30: Main_Mixer.Start := TRUE; Process_State := 2; IF Main_mixer.Done THEN Main_Mixer.Start := FALSE; Control_State := 40; END_IF but its not till state 50: that it is actual in the code. 50: Main_Suction_valve.Open_Input := TRUE; mVibrator[1].Start := TRUE; Process_State := 4; IF GVL_Weigh_hopper.LoadCell_Weight = 0 THEN Main_Suction_valve.Open_Input := FALSE; mVibrator1.Start := FALSE; Control_State := 60; END_IF Thanks for your input.
Last updated: 2023-12-16
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 vahasa on CAN TPDO / RPDO
CODESYS Forge
talk
(Post)
Hi I'm automation engineering student and I'm not yet quite familiar with CAN-bus. What I am trying to achieve, to send two byte message via CAN from Epec display to Scott Drive inverter. I'm using code template made with Epec Multitool in Codesys 3.5 Problem i'm facing is that drive responds with same COB-ID. In multitool, you can create TPDO/RPDO. And depending on that, display either sends or only receives. This is problem, because for parameter polling from drive, you need to send two byte request to 0x399 and drive responds with eight bytes. If request is longer, drive don't respond. 0x399 is currently setted as RPDO, so display doesn't send anything on startup and I made program that sends messages to 0x399 bytes 0 and 1 and bytes 3-7 are shown in display. If setted as TPDO, display send all eight bytes and therefor drive cannot respond. But, I think because they are defined as RPDO, display won't send message, although monitoring with Codesys, values are changed. Question is, how should COB-ID be configured in Codesys, so it wouldn't automatically start to send message but would send when needed?
Last updated: 2023-12-19
Post by giackanto on Eoe issues with Windows and Linux
CODESYS Forge
talk
(Post)
Hello, I've been trying to use EoE for communication between a Windows PC and an M753 drive from Control Technique. Despite following some online guides (https://content.helpme-codesys.com/en/libs/EtherCATStack/4.3.0.0/Ethernet_over_EtherCAT/fld-Ethernet_over_EtherCAT.html) I haven’t had any success. Both are connected to a Debian device where RTE is running: The PC is connected via the Ethernet port. The drive is connected via the EtherCAT port. I'm unable to ping the drive from my Windows PC. Here is my configuration: On Debian: (See attachments 1, 2, 3) enp1s0 = Ethernet port enp2s0 = EtherCAT port tap2 = TAP device IP forwarding and routes are both configured. On Windows: (See attachments 4, 5) On Codesys: (See attachments 6, 7) Version: Windows 11 Debian GNU/Linux 11 Codesys 3.5.17 Control for Linux SL 4.7.0 EtherCAT 4.4.0 With this configuration, I can ping the TAP device, but not the drive (See attachment 8). Could someone explain how to properly configure all these settings? Thank you, GA
Last updated: 2023-12-19
Post by dhumphries on Minimum system requirements for codesys control standard S
CODESYS Forge
talk
(Post)
I'm working on a low cost project and I'm considering installing the Codesys runtime on a PC running Linux Debian instead of buying a PLC with a pre-installed runtime. For my needs the Control Standard S license should be capable of running some IO over ethernet/ip, and a webvisu. The PC I am considering has a AMD GX-424CC 2.4GHz processor (4 core/4 thread) and 4GB RAM. This may compare to a raspberry pi4, but I know an X86 processor doesn't directly compare to an ARM processor, and a processor can have a high clock speed but other factors like L2/L3 cache can influence the overall performance. I can't find any published specs for the processor and RAM requirements to run the Codesys Control runtime, does anybody have a link to the minimum system requirements or experience using devices that are at or below the minimum system requirements. A raspberry pi with the control for raspberry pi SL runtime license would be the lowest cost option, but the license is not for commerical use. This restriction is somewhat vague, can anybody clarify if this means I can use a raspberry Pi runtime for in-house automation, what about if I am selling an integrated system that uses a raspberry Pi as a controller?
Last updated: 2023-12-25
Post by aseitzinger on CODESYS Control for Linux SL on virtual machine?
CODESYS Forge
talk
(Post)
Hello, there in different information available regarding the possibility to run CODESYS Control for Linux SL on a virtual machine. https://forge.codesys.com/trg/linux-sl/home/Home/ says CODESYS Control for Linux SL is a runtime system, which can run on any Debian based X86 PC, VM or Cloud container... https://store.codesys.com/media/n98_media_assets/files/2302000005/3/CODESYS%20Control%20for%20Linux%20SL_de.pdf says CODESYS Control for Linux SL can not be used on virtual hardware Currently I run the package mentioned on a virtualized debian machine running in PROXMOX Virtual Environment 7.4-17 and apart from huge jitter it runs without problems. The CODESYS key is passed as a USB defice to the VM. I wonder why there are different statements regarding the suitability in virtual machines and if the jitter would be reduced by installing CODESYS runtime on the host installing CDS runtime on the host and using a preemptive kernel (if available for the PROXMOX installation leaving CDS runtime where it is (on the virtualized debian machine) and install a preemptive kernel on the host and on the guest... Any advice is appreciated. Greets Arno
Last updated: 2024-01-08
Post by vipul on Multicast udp
CODESYS Forge
talk
(Post)
Hi, Good afternoon can anybody help me with UDP Multicast code. I am not able to send or recieve data when code is dumped on linux device. Below is my code. Declaration: PROGRAM udp_multicast VAR oneTimeFlag :UINT :=0; state: INT:=0; driver: UDP.UDPDriver; //port : UDP.Port;//moved to GVL src_ipAddr_ud: UDINT; src_ipAddr_st:STRING := '192.168.127.155';//'192.168.1.155';//ipms ip address dst_ipAddr_ud:UDINT; group_ipAddr_st:STRING := '239.1.5.10'; //group_ipAddr_ud:UDINT; result: SysTypes.RTS_IEC_RESULT; //result of recieve function. bind: UDINT; //result of binding. resultCreate:SysTypes.RTS_IEC_RESULT;//result of port creation. timer:BLINK; temFlag :INT:= 0; post:INT :=0; checksumFunc:checksumXor; localStringBuf:STRING[500]; chksum:BYTE; dataBuffer:POINTER TO BYTE; checksumString:ARRAY[0..5] OF BYTE; recvSize:__XINT; errorCode:UDINT; joinGroupErrorCode:UDINT; END_VAR ************8 Implementation: IF oneTimeFlag <> 1 THEN oneTimeFlag:=1; resultCreate := driver.CreatePort(ADR(GVL.port)); src_ipAddr_ud := UDP.IPSTRING_TO_UDINT(sIPAddress:= src_ipAddr_st); GVL.group_ipAddr_ud := UDP.IPSTRING_TO_UDINT(sIpAddress:= group_ipAddr_st); GVL.port.IPAddress := src_ipAddr_ud; GVl.port.ReceivePort:= GVL.src_port;//port on which messages are expected. GVl.port.SendPort := GVL.dest_port; GVl.port.OperatingSystem := 0; //0- any system GVL.port.Socket :=3; //3- socket type is multicast bind := GVL.port.Bind(udiIPAddress:=src_ipAddr_ud,); GVl.port.JoinGroup(udiGroupAddress:= GVL.group_ipAddr_ud,udiInterfaceAddress:= src_ipAddr_ud,eLogCode=>joinGroupErrorCode); END_IF timer(ENABLE:=TRUE,TIMELOW:=T#100MS,TIMEHIGH:=T#100MS); IF timer.OUT = TRUE THEN GVL.port.Send(udiIPTo:=GVL.group_ipAddr_ud,GVL.dest_port,pbyData:=ADR(GVL.writeData),diDataSize:=SIZEOF(GVL.writeData)); ELSE SysMemSet(ADR(GVL.readData[0]),0,SIZEOF(GVL.readData)); result := GVl.port.Receive(ADR(GVL.readData),diDataSize:=SIZEOF(GVL.readData),udiIPFrom=>dst_ipAddr_ud,diRecvSize=>recvSize,eLogCode=>errorCode); SysMemMove(ADR(GVL.readDataBuf[0]),ADR(GVL.readData[0]),SIZEOF(GVL.readData)); END_IF post:=LEN(GVL.readDataBuf);
Last updated: 2024-01-14
Post by levih on DocScripting
CODESYS Forge
talk
(Post)
Hello I'm trying to use the DocScripting collection in Codesys. I've made it work on one PC(1) for the 3.5.16.4 version of the script collection. But when I try the same setup on another PC(2), I get an error message: Error loading Python DLL: D:\SCRIPTING\3.5.16.40\python27.dll (error code 14001) My setup on both PC's is thus: 1. Downloaded and installed Python 2. Copied the folder with the scripting collection to C: (because of admin rights) 3. Placed my .library file in the same folder as the scripting collection Only difference is that Python is v3.12.0 on PC1 and v3.12.1 on PC2. I thought maybe it was something with Python, but then I have tried using the scripting collection from 3.5.16.1, and that seems to work. Just not for scripting collection 3.5.16.4. I also can't seem to find any scripting collections on newer versions of Codesys? (e.g. 3.5.19.10) Thanks in advance!
Last updated: 2024-01-22
Post by toby on Ethernet/IP communication with Omron NX1P2
CODESYS Forge
talk
(Post)
Hey guys, I'm very much a noob with networking, it's my achillies heel, and this is my first networking project using Ethernet/IP. Any help offered is GREATLY appreciated. I'm trying to network a Codesys Project with an Omron NX1P2 PLC. I'm using EIP due to hardware restrains. I've added the fieldbus, EIP scanner (as the master), and made a Network Variable List. On the Sysmac Studio end, I've made the variables and set them to network inputs/outputs, registered them in EIP settings, but when I try to set the target device (the Codesys project), I suspect I need to import an EDS file for the EIP mapping. Back in the Codesys project, I'm not sure how to: - Make an EDS file to share with Sysmac Studio - How to link the target device (Omron PLC) to the EIP fieldbus - How to map the inputs from the Omron PLC. Im sorry for my very open request for help, i'm kind of lost looking through the various forums/video/tutorials as many of them dont match what im trying to do. Any help, or sample programs would be so so greatly appreciated. If you need any further clarifications, please feel free to ask. Thanks in advance, Toby
Last updated: 2024-01-24
Post by alexgooi on Codesys OPC DA server requires more then 2 GB of ram
CODESYS Forge
talk
(Post)
Dear Forum, We are currently running into a problem that the CODESYS OPC DA server is running out of RAM (larger than 2 GB). We have a setup of 10 Codesys controllers which features around 300.000 discoverable tags per controller. We are only interested in 10 percent of the tags to be communicated to the OPC-server, this is due to the fact the program consists of arrays of objects which on their part implements arrays of objects, simply reducing the number of discoverable tags is not an option The OPC-DA server loads all the discoverable tags, is it possible to: 1 let the OPC-DA server only load the tags that are requested by the SCADA/MES system. 2 let the OPC-DA server claim more memory. 3 run 2 OPC-DA servers in parallel? Thank you in advance
Last updated: 2024-01-25
Post by wbj0t on System libs and I/O Drivers
CODESYS Forge
talk
(Post)
Hi everyone. My question about: where I can learn (read or watch) an info about codesys workflow through the system IO libs? I want to know how to implement I/O drivers by my self. In the system libs I see many interfaces, methods etc... But there is no explanation about them, just names of methods and fields of the FBs. I know about this page: https://forge.codesys.com/drv/io-drivers/doc/Generic/ There is so BIG the device description file and not so clear explaining of the attributes and elements, also some elements or attributes missed at it all. Yes, there are code examples on this page, but, so shortly and, for example, code about Modbus drivers is absent. And even if I try to add the IoDrvFB with lib, I get and error, something like: "failed to load IoDrvFB driver". And what about the book of codesys that written by Gary Pratt? Is there information about system libs and drivers in this book more clearly? Thank you :)
Last updated: 2024-02-02
Post by mondinmr on Direct Pointers in IOMapping for EtherCAT with IoDrvEthercatLib.ETCSlave_Dia
CODESYS Forge
talk
(Post)
Using SDO, I can read the EtherCAT mappings and offsets from various registers like 0x1c12, 0x1c13, etc. When I obtain registers mapped in the PDOs and various offsets, I could technically access directly to the statusword, controlword, etc., if they are mapped. I have noticed that on IoDrvEthercatLib.ETCSlave_Diag I can find pointers to the input and output buffers. However, although the input buffer can be easily read by referring to what has been obtained from the SDOs, it is not possible to write to the output buffer, as it is overwritten in each cycle by the data from the IOMapping task. Is there a way, knowing an instance of IoDrvEthercatLib.ETCSlave_Diag, to obtain the pointer to the first data in the IOMapping? The offsets are identical to those of the PDOs, but obviously the data is a copy. For me, the cleanest thing would be to access the pointers on IOMapping, for DS402a devices to retrieve the key data and point them to internal references. I need to know this as, having developed our own motion library, I would like to simplify the initial setup by eliminating unnecessary and nonsensical mappings that can lead users to unnecessary errors. In the current version that we have been using for years, we have to map everything manually. I would like to pass only the slave reference to the FB_init constructors and eliminate the mapping.
Last updated: 2024-02-12
Post by fredsta on Unable to load dynamic modules (Download failed: Application=Application)
CODESYS Forge
talk
(Post)
Hey there, I am currently trying to find a good solution for the communication between CODESYS Control on Raspberry Pi and "the rest of the world", i. e. the things apart from CODESYS on my linux. My first approach was to use the c-integration. So I created a lib, defined extern fbs, compiled the code on my Pi using the SDK and put the .so into my lib project. When I try to log into the Pi and load the program, I get the error message which you can see in the attached picture. "Die dynamischen Module der C-Integration konnten nicht auf das Laufzeitsystem geladen werden" is german and means roughly "the modules from the c-integration could not be loaded onto the runtime system." Is this normal? Am I doing something wrong? I will have a look at the unix domain socket thing next, as I am still in the process of finding the best solution for the communication.
Last updated: 2024-02-15
Post by dominggus on when going online, stuck on "Syncing file "visuelemsdatetime.tl_datetime.txt"
CODESYS Forge
talk
(Post)
Hi, We are currently using a Raspberry Pi 4 CM4 module in a EdgeBox RPI 200 - Industrial Edge Controller running the latest CODESYS Runtime Package 4.11.0.0. On the PC (actually an Intel Macbook Pro running Windows 10 in Parallels) we run CODESYS V3.5.19.50. Yesterday end of day when I was about to logoff and head home, I wanted to send the latest build to the Raspberry I clicked the Login button to compile a new version and then sync the application and all the files, it get's stuck on the last file to sync (see attached screenshot). This takes eternally, although sometimes, when I use my SFTP client (Cyberduck) and go into the raspberry and refresh the directory /var/opt/codesys/PlcLogic/visu/, or when I open the actual file visuelemsdatetime.tl_datetime.txt, it gets un-stuck (forcing a refresh, which might fix the syncing issue) and CODESYS continues and I can click the Start button to start the application. But this SFTP force refresh trick does not always help either... What could be the issue here? network connectivity? Can someone please help me out?
Last updated: 2024-03-02
Post by mtho on JSON Utilities - JSON file written with invalid structure
CODESYS Forge
talk
(Post)
I'm using the JSON Utilities SL library to write configurations in my program to a file. I'm generating the JSON data using the builder function block and all appears to work correctly. When I write the jsondata to file, I'm finding that some of the JSON elements are not being written in the right location in the file. Rather than writing they keys under the parent object, they get written outside the root JSON object at the end of the file. If I then try to read the file back into the program, I get an invalid_structure error. I don't get any errors when populating the JSON data or when writing the file. I attached an example of the JSON writer output. The problems begin with key P200. Each P200 should go under MBR1 through MBR3. Among the rest of the keys, they are supposed to be under different parent objects. I am using default values for wsLineBreak and encoding.
Last updated: 2024-03-06
Post by manuknecht on High Cycle Times for SoftMotion_PlanningTask when using AxisGroup
CODESYS Forge
talk
(Post)
Hello all I am using an AxisGroup with the Gantry2 Kinematics to move a 2D-Gantry system. When creating the AxisGroup, the SoftMotion_PlanningTask is created automatically with a cycle time of 2 ms in my case. I realized that the maximum cycle time of this task can spike to very high values (up to 60 ms) at lower speeds of the motion, leading to synchronization issues and errors on the axes. The same behaviour - though not as drastic - can be observed with virtual axes too. Is this behaviour intended or to be expected? Can the cycle time or type of the SoftMotion_PlanningTask be changed to prevent these errors? Or is there another fix for this issue? I tried changing the cycle type to Freewheeling, which solved the synchronization issues, but caused an error on the AxisGroup after a while, reading SMC_CP_QUEUE_UNDERRUN. Thanks in advance and best regards Manuel
Last updated: 2024-03-07
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
.