Post by mainak on Opaque NodeId in the OPC UA server
CODESYS Forge
talk
(Post)
Hello all, I am using the OPC UA server with my custom information model. I have used the communication manager to add my information model under my application and created instances from OPC UA types. I see that the created instances in the OPC UA server has some opaque nodeid (attached screenshot) and I want to change that. Therefore I have the following questions: 1. Is there a way to configure the NodeIds of instances in the OPC UA server? I tried to edit it using the UaExpert client but got error "BadNotWriteable". is it possible to configure it somewhere so that the nodeids can be changed using an external client? 2. Is there a way to define the rule for creating instance nodeids within the codesys IDE? 3. Is it possible to create the instances before e.g. using a modelling tool like UaModeler and import them as part of the information model and use them later? Using the communication manager, I can only create instances from types. I couldn't find a way to map my existing instances to plc tags from my application. It would be nice if someone could help me with these issues. Thanks in advance. :)
Last updated: 2024-10-19
Post by nikgind on Codesys Communication Manger - Required information model version exists in the model repository but is not found
CODESYS Forge
talk
(Post)
Hi I am trying to import a custom information model that I created using UA Modeler. I have only added two new methods and two new object types. It is possible to add the information model to the Communication Manager and the two new object types are shown in the Information Model tab. After compiling i get the following error: Communication Manager [Device: PLC Logic: Application]: The information model http://opcfoundation.org/UA/ is required by http://yourorganisation.org/Bsp_3.1/ with a minimal publication date from 15.12.2023 but the device has only a model from 15.09.2021 installed. Probably the information model from 15.09.2021 is missing in the information model repository. The error message does not make sense to me. Should it not be “Probably the information model from 15/12/2023 is missing in the information model repository”? Anyway I have installed the information model from 15/12/2023 but not from 15/09/2021. Which makes the error message even stranger.
Last updated: 2024-06-09
Post by manuknecht on Persistence Manager does not save alphabetically first value
CODESYS Forge
talk
(Post)
After some more digging I realized that I get an error on the PLC Logger saying PersistenceChannel: 150 (invalid type in data: SimpleLibrary). I suppose the issue could be found in the ConfigData, which is automatically generated and which looks like this: 1 9##83 SimpleLibrary#GVL.aMoreZeros.[1]#0#64512#15#0 <[2]#0#64520#15#0 <[3]#0#64528#15#0 <[4]#0#64536#15#0 <#0#64544#15#0 <[6]#0#64552#15#0 <<lrVar#0#64560#15#0 <strVar#0#64428#16#80 <uiDummy#0#64370#11#0 Perhaps the fact that the variable is stored within a library confused the compiler? I tried changing the PersistenceChannel parameters to xCompressTags := FALSE which changed the entry in the data file from _xCompressTags BOOL:TRUE _xCompressTags BOOL:FALSE but the actual content of the data file and also the config data did not change.
Last updated: 2023-10-17
Post by simone on Cannot connect to webvisu on localhost
CODESYS Forge
talk
(Post)
As I wrote before on the title, I have difficulties to connect to see webvisu from localhost. The story: while waiting for the plc+hmi to arrive, I'm preparing the software, mainly the visual parts trough the control Win3 x64 (same version as the ide 3.5.20.10). The problem is that I can't see the webvisu with the installed webbrowser. I don't know if this is a problem, but I changed the port to 9001 (randomly "free") because 80, 8000, 8080, 8088, 3000 are all occupied by other projects (all on the Apache server). Is there something wrong with the config file? This is the url: localhost:9001/webvisu_app.htm and here the config file part "CmpWebServer". [CmpWebServer] ;The handling of startup/shutdown of the webserver: ;0->automatically start, shutdown only on shutdown of the runtime;1->automatically start, could be shutdown on demand ;2(default)->start/shutdown on demand;3->start on demand, shutdown only on shutdown of the runtime StartupType=0 ;The TCP port the webserver listens on WebServerPortNr=9001 LocalAddress=localhost ;LocalAdapterName=LAN-Connection LocalAdapterName=EthernetPCPLC ;LocalAdapterNameUnicode=L\00A\00N\00-\00C\00o\00n\00n\00e\00c\00t\00i\00o\00n\00 LocalAdapterNameUnicode=E\00t\00h\00e\00r\00n\00e\00t\00P\00C\00P\00L\00C\00 Thanks for all the help!
Last updated: 2024-07-11
Post by berto on Opening PDF in Web Browser in Target Visu HMI
CODESYS Forge
talk
(Post)
Hi everybody, I've been facing problems with the PDF visualization in Web Browser. I am trying to open a pdf file called 'sample.pdf' which I manually saved inside PlcLogic/visu folder. I am setting the web browser URL as: 'http://127.0.0.1:8080/sample.pdf' but I get 'refused connection'. I got a similar error trying to open https sites and I discovered that I can only open http websites. Opening 'http://de.wikipedia.org' everything works fine. I also tried to check using code whether the sample.pdf is present in the directory. Unfortunately, when I try to read directories of 'PlcLogic' I get file FILE_OPERATION_DENIED (I am using File.DirList). I would like to be able to open PDF files in web browser. Possibly to move new PDF files in the folder as my customer wants to display different pdf manuals on the hmi. Here you find some screenshots and my .project. I am using Codesys 3.5.19.70. Best regards, Berto
Last updated: 2024-07-11
Post by solve-it on SysFileOpenAsync
CODESYS Forge
talk
(Post)
Just realized that it is the /dev/input/js0 file. Don't think this is a prob either. Found the ConfigFile. Where and how to add /dev/input/js0? raspberry [SysFile] FilePath.1=/etc/, 3S.dat PlcLogicPrefix=1 [SysTarget] TargetVersionMask=0 TargetVersionCompatibilityMask=0xFFFF0000 [CmpLog] Logger.0.Name=/tmp/codesyscontrol.log Logger.0.Filter=0x0000000F Logger.0.Enable=1 Logger.0.MaxEntries=1000 Logger.0.MaxFileSize=1000000 Logger.0.MaxFiles=1 Logger.0.Backend.0.ClassId=0x00000104 ;writes logger messages in a file Logger.0.Type=0x314 ;Set the timestamp to RTC [CmpSettings] FileReference.0=SysFileMap.cfg, SysFileMap FileReference.1=/etc/CODESYSControl_User.cfg [SysExcept] Linux.DisableFpuOverflowException=1 Linux.DisableFpuUnderflowException=1 Linux.DisableFpuInvalidOperationException=1 [CmpWebServer] ConnectionType=0 [CmpOpenSSL] WebServer.Cert=server.cer WebServer.PrivateKey=server.key WebServer.CipherList=HIGH [SysMem] Linux.Memlock=0 [CmpCodeMeter] InitLicenseFile.0=3SLicense.wbb [SysEthernet] Linux.ProtocolFilter=3 [CmpSchedule] ProcessorLoad.Enable=1 ProcessorLoad.Maximum=95 ProcessorLoad.Interval=5000 DisableOmittedCycleWatchdog=1 [CmpUserMgr] AsymmetricAuthKey=6873d655ac1f166f3743feea42d2f3dd1b39ae40 [CmpSecureChannel] CertificateHash=09fd8d52be4ddd45a709bc9c95e2aa093b3f5695 [SysSocket] Adapter.0.Name="eth0" Adapter.0.EnableSetIpMask=1 ;raspberry [ComponentManager] ;Component.1=CmpGateway ;Component.2=CmpGwCommDrvTcp ;Component.3=CmpGwCommDrvShm [SysCom] ;Linux.Devicefile=/dev/ttyS [CmpBlkDrvCom] ;Com.0.Name=MyCom ;Com.0.Baudrate=115200 ;Com.0.Port=3 ;Com.0.EnableAutoAddressing=1 [SysProcess] Command.0=shutdown [CmpApp] Bootproject.RetainMismatch.Init=1 ;Application.1=Application ;Application.1=Application ;Application.1=Application Application.1=Application [CmpRasPi] Architecture=armv6l [CmpRedundancyConnectionIP] [CmpRedundancy] [CmpSrv] [IoDrvEtherCAT]
Last updated: 2024-07-16
Post by dom4u on Using PEAK CAN PCIe card (IPEH-004040) with Codesys Control RTE V3
CODESYS Forge
talk
(Post)
Some findings on this issue: PEAK CAN Driver is the same as in every PCI card from PEAK. I updated the inf file. Here are my steps: 1. Include right VendorID into the *.inf file 2. Disable Windows driver check (Disable WHQL check). This you need because 3S driver is not certified. You will find steps via google or ask chatgpt :) 3. Select: Select driver from a list and navigate to the folder. Say yes to install an uncertified driver. 4. Driver installed and device without errors I did the same with CAN Card from ESD, but here you dont need to include the vendor ID. In ANY CASE it was not successful. The RTIOwdmgeneric is not available in Codesys or anyhow accassable :( I wonder that it fails in two cases, two suppliers, two driver in the same way. How can RTIOwdmgeneric implemented into the project?
Last updated: 2024-12-20
Post by pernockham on Persistence Manager: Config File not found?
CODESYS Forge
talk
(Post)
Back in november I paused this, but wanted to reattempt using the persistent manager, the behavior is still the same. Most "login attempts" s are stopped with the message "One or more errors occurred" but I have no idea what that error might be. The only clue is this message is presented while the lower left status box says "Generating code...: relocation pou". For clarification. Build/Generate code is successful, no errors. Error appears when I try to download/login (physical or simulation) to a device. I did manage to login (in simulation mode) at one point, but then the error message "PersistenceChannel: Config file not found!". And no persistence files were created. I have done device-tree/reset-orgin also clean/clean all etc. Removed/re-inserted persistance manager. Behaviour is just the same. Removing Persistence Manage and everything is working OK. Is there possibly more info somewhere about the "One or more errors occured"-message?
Last updated: 2025-03-20
Post by laurits on Max lines of code, codesys CNC ?
CODESYS Forge
talk
(Post)
Hi, okay here's the project, it's a modified version of "CNC Example 10: Programming Dynamic CNC Paths", no need for G Code text file (i have also tried with G code text file, same problem) in "PROGRAM PLC_PRG" you can set bStart to true, and the program should start running, go to "PROGRAM CNC" and you can see axis moving. lrXpos := IoConfig_Globals.XAixs.fSetPosition; lrYpos := IoConfig_Globals.YAxis.fSetPosition; Now you can can change the number of movements in the the "PROGRAM PLC_PRG" From this number of movements in "program PLC_PRG" BUF : ARRAY[0..32010] OF SMC_GEOINFO; xp : ARRAY[1..32000] OF REAL; yp : ARRAY[1..32000] OF REAL; to this number to this number of movements BUF : ARRAY[0..132010] OF SMC_GEOINFO; xp : ARRAY[1..132000] OF REAL; yp : ARRAY[1..132000] OF REAL; Now if you start the program again you should see an error in the "sMC_Interpolator: SM3_CNC.SMC_Interpolator;" function block Let me know if you can not get it running.
Last updated: 2025-06-03
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
Post by ranadheer on PHOENIX CONTACT Axioline PLCnext project in CodeSys SodftPLC
CODESYS Forge
talk
(Post)
Hello Everyone, I'm working on a CODESYS Standard Project using CODESYS Control Win V3 x64 with Structured Text. The goal is to integrate a Phoenix Contact device coupler (Part ID: BK PN TPS 2403869) via PROFINET. 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 edepalos on Text list from sd card
CODESYS Forge
talk
(Post)
Hi guys, I have a textlist in my project which is working just as expected in a drop down list. I would like to move this text list to a sd card and access it from there, because I want to ease the editing of the contents of this textlist. I'm imagining a solution like the operator shuts down the plant, takes the sd card out, edits the textlist on the card with a windows machines notepad, then reinserts the card in the PLC and restarts the plant, having the new content of the textlist populating the dropdown list. I'm sorry that I'm asking you to spoonfeed me, but I did not find anything straightforward to do this... I saw in the Project>Project settings>Visualisation a relative path thingy, but I have the plant in operation and I would not like to make 100 trial and errors right now... I'm also not interested in SysLib file read commands and stuff, I would just like to access the file from the cards part, I don't want to replace its contents dynamically or such... nor I have language files or recipes... Thank You in advance! Br, Ede
Last updated: 2024-01-16
Post by umdee on Error when monitoring LAD programs
CODESYS Forge
talk
(Post)
System Information from the computer being used: OS Name Microsoft Windows 11 Pro Version 10.0.22631 Build 22631 Other OS Description Not Available OS Manufacturer Microsoft Corporation System Manufacturer Dell Inc. System Model Latitude 5500 System Type x64-based PC System SKU 08B9 Processor Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz, 2112 Mhz, 4 Core(s), 8 Logical Processor(s) BIOS Version/Date Dell Inc. 1.3.11, 6/11/2019 SMBIOS Version 3.2 Embedded Controller Version 255.255 BIOS Mode UEFI BaseBoard Manufacturer Dell Inc. BaseBoard Product 0M14W7 BaseBoard Version A00 Platform Role Mobile Secure Boot State On PCR7 Configuration Elevation Required to View Windows Directory C:\WINDOWS System Directory C:\WINDOWS\system32 Boot Device \Device\HarddiskVolume1 Locale United States Hardware Abstraction Layer Version = "10.0.22621.2506" User Name CARDASSIA-IX\Engineer Time Zone Eastern Daylight Time Installed Physical Memory (RAM) 16.0 GB Total Physical Memory 15.8 GB Available Physical Memory 4.67 GB Total Virtual Memory 18.5 GB Available Virtual Memory 2.52 GB Page File Space 2.63 GB Page File C:\pagefile.sys Kernel DMA Protection Off Virtualization-based security Not enabled Windows Defender Application Control policy Enforced Windows Defender Application Control user mode policy Off Device Encryption Support Elevation Required to View Hyper-V - VM Monitor Mode Extensions Yes Hyper-V - Second Level Address Translation Extensions Yes Hyper-V - Virtualization Enabled in Firmware Yes Hyper-V - Data Execution Protection Yes
Last updated: 2024-03-19
Post by wmoon on Licensing info not available.
CODESYS Forge
talk
(Post)
That command can't excute on my device. I installed CODESYS into Hilscher's product using container Here is the Docker file what I used. I'm not sure if this docker file have a problem. If it have a problem, please let me know how to download the files into my device using ftp server. FROM arm64v8/debian:11.6 RUN apt-get update RUN apt-get install -y wget sudo unzip libusb-1.0-0-dev procps ENV CDS_VERSION "4.10.0.0" ENV EDGE_VERSION "4.10.0.0" ENV URL "https://store-archive.codesys.com/ftp_download/3S/LinuxARM64/2302000039/$CDS_VERSION/CODESYS%20Control%20for%20Linux%20ARM64%20SL%20$CDS_VERSION.package" ENV EDGE_URL "https://store-archive.codesys.com/ftp_download/3S/EdgeGatewayLinux/000120/$EDGE_VERSION/CODESYS%20Edge%20Gateway%20for%20Linux%20$EDGE_VERSION.package" RUN wget --output-document=/tmp/codesys.package $URL && \ unzip -p /tmp/codesys.package 'codemeter.deb' > /tmp/codemeter.deb && dpkg -i /tmp/codemeter.deb && \ unzip -p /tmp/codesys.package 'codesyscontrol.deb' > /tmp/codesys.deb && dpkg -i /tmp/codesys.deb RUN wget --output-document=/tmp/edge.package $EDGE_URL && \ unzip -p /tmp/edge.package '*arm64.deb' > /tmp/edge.deb && dpkg -i /tmp/edge.deb EXPOSE 11740 1217 11743 ENTRYPOINT ["/bin/sh", "-c" , "/etc/init.d/codesyscontrol start && /etc/init.d/codesysedge start && tail -f /dev/null"]
Last updated: 2024-03-20
Post by william-blandon on RecipeManCommands.ReloadRecipes
CODESYS Forge
talk
(Post)
Hi Dave. Thanks for your answer. I still struggling with this. I have done everything according with the Codesys help even I have looked in detail at the example. I have double checked the recipe manager configuration and the use of all the methods. There are two methods that do not work as expected. I'm using Codesys 3.5.19.20 and recipe management 4.4.0.0 .CreateRecipe just create a recipe in the recipe definition but do not create the file. This have a walk around just giving a .ReadAndSaveRecipe afterwards. .ReloadRecipes do nothing but do not generate any error as well. After calling it I call the .GetRecipeCount and the number is always 0. When I create a new recipe (using the function block methods) then the number changes. Looks like this method is looking to the wrong directory finding nothing. I don't know if there is a missing configuration in the CODESYSControl.cfg file. I'm thinking in a walk around for this but I need to create a strings array with the recipe names as retentive and making all the management when deleting and adding recipes. Have had some one the same problem?
Last updated: 2024-05-23
Post by brubingh on Download Missing Libraries not working
CODESYS Forge
talk
(Post)
We are working on a project and the customer required 3.5.16 BF4. After working on the project for a few weeks I opened it the next morning and it could not access libraries. IecVarAccess could not be accessed. I checked if windows updated - it did not. So no explanation for why it lost access other than that I shut down the computer for the night. Note that I am using a demo license. I still haven't figured out any reason to purchase a license. So I spent the next hour reinstalling CodeSys. Note that I did NOT uninstall first. After install I waited another 5 minutes for it to open the first time. I clicked File->Open to open the project. Previously I had selected File->Recent Projects - not sure if that makes and difference. But after this process it did open the project and compile it just fine. This is miserable. If this had happened when I went on site to a customer I would have lost hours of work doing the reinstall. Is there a different and quicker fix?
Last updated: 2024-06-13
Post by kevintumibay on Struggling to connect to EK1100 to Raspberry Pi
CODESYS Forge
talk
(Post)
SUMMARIZED VERSION OF QUESTION: I'm trying to connect a Raspberry Pi running "Codesys Control for Raspberry Pi" to a Beckhoff EK1100, unfortunately, when I try to connect I get the following messages SEE FIRST PICTURE DETAILED VERSION OF QUESTION: Hi everyone, I'm a college student that is super interested in learning about PLCs. I wanted to dive into the subject and decided to follow this great Instructables article: https://www.instructables.com/Programming-Raspberry-Pi-With-CODESYS/ Thank you in advance for your help! My current setup is as follows: 1. I have Codesys Control for Raspberry Pi, version 4.14.0.0, (https://store.codesys.com/en/codesys-control-for-raspberry-pi-sl.html) installed on a Raspberry Pi 3B. 2. I am using my smartphone hotspot to create a network. 3. I have CODESYS 3.5 SP21 (64 bit) installed on my Windows 11 laptop. 4. Both the Raspberry Pi and my laptop are connected to the smartphone hotspot network (I am wirelessly connecting to the Raspberry Pi). Connecting to the Raspberry Pi from CODESYS on my laptop: 1. I launch Codesys Installer -> I install Codesys Control for Raspberry Pi (link to the software). 2. I launch Codesys 3.5 SP21 (64 bit) on my laptop. 3. I go to file --> new project --> standard project --> in the pop-up I select "Codesys Control for Raspberry Pi" and "Structured Text" 4. I click on tools -> Deploy Control SL (on older versions of Codesys you would click on "update Raspberry Pi", I got that information from this video: link) 5. Inside Deploy Control SL --> I go to the "communication" menu and I input the IP address of my Pi, the password, and click on connect. 6. Inside Deploy Control SL --> I go to the "deployment" menu and I install Codesys Control for Raspberry Pi SL and Codesys Edge Gateway for Linux 7. Now I double click on "device" in the left hand tree and put in the IP address of my Raspberry Pi and click on connect --> success! I am able to connect! SEE SECOND PICTURE Powering the EK1100 and connecting it to the Raspberry Pi: 1. I am supplying the EK1100 with 24 V across the + and - pins. 2. I have jumper wires going from the + pin to the 24V pin and from the - pin to the 0V pin. SEE THIRD PICTURE 4. I am pretty confident that the EK1100 is receiving power because the "LED Us 24 V" and "LED Up 24 V" are lighting up. 5. I then run an ethernet cable from the EK1100 to the Raspberry Pi port (the Raspberry Pi is connected to my laptop wirelessly over WiFi). I think this connection should also be good since the LINK/ACT LED lights up. Trying to connect to the EK1100: 1. Back in Codesys I right-click on "Device" in the left tree and then in the pop up I click on "add device". 2. I then click on EtherCAT Master. 3. Next in a terminal window I SSH into the raspberry Pi and run the "ifconfig" command. 4. From there I get the MAC address for eth0 --> in my case: b8:27:eb:29:a9:25 5. Then, back in Codesys I double click on "EtherCAT Master" in the left hand tree. I then paste the MAC address into the "Source Address (MAC)" field. 6. I go to the Beckhoff official website and download the XML files for EtherCAT: https://www.beckhoff.com/en-en/products/i-o/ethercat-terminals/ek1xxx-bk1xx0-ethercat-coupler/ek1100.html? 7. I unzip those files in my computer into some folder that I can remember. 8. Back in Codesys I click on "Tools" --> "Device Repository" --> "Install" --> and then on the "Beckhoff EK11xx.XML" file. 9. In theory the necessary XML file is now installed. 10. THIS IS WHERE I RUN INTO THE PROBLEM: I then click on login --> I right click on EtherCAT_Master and then scan for devices --> and nothing. 11. It just doesn't detect it. On top of this whenever I login I get those orange triangles on the left on my tree. When I check the Log I get the messages at the very first screenshot of this post. SEE FOURTH PICTURE Solutions that I have tried to resolve this problem: 1. I thought it was maybe the .XML file so I installed all the .XML files from the EtherCAT folder that I downloaded. That didn't fix it. 2. I went on the Wayback Machine and got the .XML files from 2018 as I thought maybe an older version would work. This file of EtherCAT folders had a .XML file named "Beckhoff EKxxxx.XML" I thought this would work because that's the name of the file the guy in the Instructables used (https://www.instructables.com/Programming-Raspberry-Pi-With-CODESYS/). That didn't do anything. 3. I ran the PLC on my computer instead of the Raspberry Pi and tried to connect to the EK1100, in case the issue was with the Raspberry Pi, but I still ran into the same error from the picture above: "Attention! The device was not found in the repository. Vendorcode: 0x0. Productcode: 0x0. Revision: 0x0". SEE FIFTH PICTURE 4. I reinstalled Codesys, I was originally on version 3.5 SP20 when I did this, I upgraded to 3.5 SP21 with no success. 5. I then thought the solution might be to first add the EK1100 hardware before connecting so I did the following: 6. Right click on "EtherCAT Master" on the left hand tree --> then click on "add device" --> then I added the "EK1100 EtherCAT Coupler (2A E-Bus)" MY THEORY OF WHAT IS CAUSING THE PROBLEM: I asked ChatGPT for help and it said that it might have something to do with the revision number. On the physical EK1100 it says "Rev. Nr.: 0018". I believe that this means that I need to a revision 0018 XML file but if you look in Codesys it says the version is 16 (picture above). This is confusing because I got my .XML file from the official Codesys website so it should be the most up to date version possible. I searched and I searched and I couldn't find a version 18 .XML file, I don't even now if this exists. Any help you can provide is greatly appreciated, I don't know what to do anymore and I really really want to get this working. Thank you!
Last updated: 2025-03-30
Post by george32 on CSV file and string manipulation.
CODESYS Forge
talk
(Post)
Dear folks, I think I have a rather simple question but I could not find the right answer to my question: I have made with Excel a CSV file where I would like to have some general data regarding my program variables. I have made an program what let me read the file. The string I am currently get is at follows: 'IP_Adres;192.168.45.12$R$NPort_number;2000$R$NCycle_time;43$R$NStart_Standard_IO;20$R$N' Now I want to split the string in multiple part, which I later would connect to the right variable. By Google and experimenting I have reached to the following code for the first part of the splitting proces: // Splitting the BOM of the string: Received_string := FileReadString; IF LEFT(STR:=New_string,3)= '' THEN Received_string_without_BOM :=RIGHT(STR:= Received_string,SIZE:= (LEN(STR:= Received_string))-3); END_IF //Splitting the remaining string in part for later declaration. WHILE index = 0 DO index_split_part := FIND(STR1:= Received_string_without_BOM,STR2:= '$R$N'); Part_of_String[index]:=LEFT(STR:=Received_string_without_BOM, SIZE:= index_split_part); index := index + 1; END_WHILE However in the splitting proces I could not understand what is really happening. I understand that the Find() function returns the first value the $R$N in the Received_string_without_BOM. This would mean that the index_split_part := 23 I|P| _ |A |d|r|e|s|;|1_|9 |2 |. |1 |6 |8 |. |4 |5 |. |1 |2 |$ |R |$ |N |P | 1|2| 3 |4 |5|6|7|0|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27| So the next part is to read the first 23 characters of the Received_string_without_BOM with the LEFT() function. I expected that the outcome the following was: 'IP_Adres;192.168.45.12$'. However the outcome is: 'IP_Adres;192.168.45.12$R'. I do not understand where the R after the $ sign comes from, because its place is 24 so it would not be added to the part_of the_string[index]. If I hard coded value 24 for the size it gives me the following return: 'IP_Adres;192.168.45.12$R$N'. I would expect everything till the R but the code adds the $N also to the string. I hope someone could explain to my what I am seeing wrong in my point of view? With kind regards, George
Last updated: 2024-09-27
Post by rossanoparis on How to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server
CODESYS Forge
talk
(Post)
Hello at all I'd like to know how to configure CODESYSControl_User.cfg in order to use a specific network card for OPCUA Server. In the past, I tried to ask in "Forge" about this topic, but I could find neither help nor document informations about it. Reading the file "codesyscontrol.log" I see these logs OPC UA Server Started: Hostname: NTLRPICTRL01, Port: 4840 URL: opc.tcp://NTLRPICTRL01:4840 Loopbackadapter activated. **All available networkadapters are used.** Multithreading activated. 3 workers used. My controller, which is a Linux PC, has got two network cards eth0 and eth1 I whant to use the card with name "eth0" as a server for OPCUA and keep the "eth1" free for other stuffs. Is it possible ? Best regards Rossano
Last updated: 2023-08-25
Post by jari-koivuluoma on JSON_Utilities_SL JSONFileWriter error NULL_POINTER
CODESYS Forge
talk
(Post)
FB jsonFileWriter gives a NULL_POINTER error, why? JSONByteArrayWriter works fine so the JSONData FB should be fine. The device is CODESYS Control Win V3 x64 in simulation mode. Codesys version is V3.5 SP16 Patch 5 JSON_Utilities_SL version is 1.3.0.0 Src: ST_TestStruct1a; TXT: WSTRING(10000); MakeJSON : BOOL := TRUE; SrcJSONData: JSON.JSONData; jsonFileWriter : JSON.JSONFileWriter; IF MakeJSON THEN MakeJSON := FALSE; // Struct data to JSONData FB F_TestStructToJSON(ADR(Src),ADR(SrcJSONData)); // Writing to file jsonFileWriter( xExecute := TRUE, sFileName := 'c:\JSONTEST\JSON.txt', eEncoding := JSON.Encoding.UTF_16, xAsyncMode := TRUE, jsonData := SrcJSONData ); // Waiting to finish WHILE jsonFileWriter.xBusy DO ; END_WHILE // To text jsonArrayWriter( xExecute := TRUE, pwData := ADR(TXT), udiSize := SIZEOF(TXT), jsonData := SrcJSONData, xAsyncMode := FALSE, ); END_IF
Last updated: 2023-09-08
Post by ggarcia94 on CANOPEN SDO configuration
CODESYS Forge
talk
(Post)
Hello, I´m connected to two drives via CANOPEN. The connection seems to be ok. However, I´m not able to get the PDOs to work even tho they are configured as in the manual of the drives. Looking at the SDOs I´ve seen that for each PDO there is a "Disable PDO" SDO that does not exist in the manual or in the EDS file of the drives. This "Disable PDO" signal has the same Index and Subindex as another SDO used to set and enable the COB-ID of the PDO. I´m assuming this is normal but why is Codesys creating a "Disable PDO" SDO for each PDO and could that be the reason the PDOs are not working?
Last updated: 2023-09-25
Post by bahrt on Mapping GPIO and adding GPIO configurations
CODESYS Forge
talk
(Post)
Hi I am about to configure ALL GPIOs on a Raspberry Pi 3 model B V1.2. It seems that I have limited understanding of why not all the IO’s become available with the corresponding mapped IO’s – the 'dwInUse' contains mapping of the inputs from GPIO0 to GPIO27. But 'dwInputs' are only showing GPIO0 to GPIO8 and GPIO15 as available inputs. These mentioned inputs work fine You will be able to watch the limited mapped IO activity here: https://drive.google.com/file/d/1zz4PBNBfRZBF2YkiJ2VQxw6L9MBVji7R/view?usp=sharing Can you please bring your best idea on why GPIO09 to GPIO14 and GPIO16 to GPIO27 state are zero in the dwInputs register? Thanks in advance. Best regards Andreas Bahrt
Last updated: 2023-11-16
Post by bahrt on Raspberry Pi GPIO mapping
CODESYS Forge
talk
(Post)
Hi I am about to configure ALL GPIOs on a Raspberry Pi 3 model B V1.2. It seems that I have limited understanding of why not all the IO’s become available with the corresponding mapped IO’s – the 'dwInUse' contains mapping of the inputs from GPIO0 to GPIO27. But 'dwInputs' are only showing GPIO0 to GPIO8 and GPIO15 as available inputs. These mentioned inputs work fine You will be able to watch the limited mapped IO activity here: https://drive.google.com/file/d/1zz4PBNBfRZBF2YkiJ2VQxw6L9MBVji7R/view?usp=sharing Can you please bring your best idea on why GPIO09 to GPIO14 and GPIO16 to GPIO27 state are not active (at a fixed zero state) in the dwInputs register? Thanks in advance. Best regards Andreas Bahrt
Last updated: 2023-11-21
Post by adaml on ScriptEngine - execute "Export -> Bootproject and firmware (SD Card)" from python
CODESYS Forge
talk
(Post)
Hi everybody, recently I was checking how many time consuming manual tasks I can perform with python scripts through ScriptEngine. I have in the project many devices and currently I export bootprojects for them by right clicking on Application, then go Export -> Bootproject and firmware (SD Card) and then point folder where files should be exported. It's fine if project has few devices, but I have some of them with over 30 devices and manual clicking like that is very time consuming. How can I do it with python script? So far I found "create_boot_application" method from Application object (taken by projects.primary.find('Application', True)) but it only generates .app and .crc file instead of full structure to store on SD card (FIRMWARE, USERDATA, SDCARD.INI, Version, Version.txt.sig). Should I use some method to control user interface? Best regards, Adam
Last updated: 2024-07-05
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.