Post by viksym on Get text from textlist
CODESYS Forge
talk
(Post)
Does anybody know how to get a specific text from a text list within a program. Obviously it works in a visualization, but because I will have an HMI that has it's own system and I will have to send variables to this HMI via an OPC UA connection, I need to be able to get a text into a string. I tried using the VisuElems like this, but it only returns an empty "" and nothing else. IF trig THEN sText := VisuElems.cmpDynamictext.DynamicTextGetDefaultText(ADR(sTextList), ADR(sAlarmID))^; //sText := VisuElems.cmpDynamictext.DynamicTextGetText(ADR(sTextList), ADR(sAlarmID))^; trig := FALSE; END_IF Any help and idea is highly appreciated because I am getting desperate here.
Last updated: 2024-05-31
Post by installwhat on C0077 on one machine but not another
CODESYS Forge
talk
(Post)
I have a version of codesys 3.5.16 on my local machine and a vm. The local machine has loads of codesys versions and libraries installed etc. I can open the FPosCR_Example_Project_SP16_patch1 project on my vm without any errors. On the local machine I get the error C0077: unknown type IoDrvEthercatLib.ETC_CO_SdoWrite. I can, on the local machine, declare a var of type IoDrvEthercatLib.ETC_CO_SdoWrite and include it in the code without adding an extra error. The problem only seems to affect the library. This is seems more an issue with my codesys set up rather than something with festo. I would like to know the possible causes. I understand most of the library manager features but it's not clear how to find the cause. Thanks
Last updated: 2024-06-11
Post by jens on Modbus tcp - channel
CODESYS Forge
talk
(Post)
Help wanted This is the first time i'm doing a Modbus Tcp project. I have some VLT with a extension module MCA-122. i'm currently unable to write to the VLT slave, but i can read from status word parameter=1603 and address := 16029 where the address is calculated from parameter is ((id x 10)-1). in the manual the functions that are supported are 3 hex, 6 hex, 10 hex, b hex and 11 hex. read holdin registers, write single register, write multiple registers, get comm. event counter, report slave id. i'm only using the Modbus Slave Channel is this wrong when trying to write to the vlt ?
Last updated: 2024-06-13
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 kazuhiro on Problems using MySql Library and SysProcessExecuteCommand2 together
CODESYS Forge
talk
(Post)
I use fbMsSQL_compact(FUN) of the MySQL Library to write data to the database. There is no problem when writing data using only fbMsSQL_compact(FUN). However, when I try to write data obtained using SysProcessExecuteCommand2 to the database using fbMsSQL_compact(FUN), an error message "Dest server on ip address:xxx.xxx.xxx.xxx and port:1433 is unreachable" appears and writing is not possible. From what I have researched, it seems that writing is not completed in one cycle of fbMsSQL_compact(FUN), and when SysProcessExecuteCommand2 is executed first in the second cycle, the work done in one cycle of fbMsSQL_compact(FUN) is reset. Could you please give me some advice?
Last updated: 2024-06-18
Post by kazuhiro on Problems using MySql Library and SysProcessExecuteCommand2 together
CODESYS Forge
talk
(Post)
I use fbMsSQL_compact(FUN) of the MySQL Library to write data to the database. There is no problem when writing data using only fbMsSQL_compact(FUN). However, when I try to write data obtained using SysProcessExecuteCommand2 to the database using fbMsSQL_compact(FUN), an error message "Dest server on ip address:xxx.xxx.xxx.xxx and port:1433 is unreachable" appears and writing is not possible. From what I have researched, it seems that writing is not completed in one cycle of fbMsSQL_compact(FUN), and when SysProcessExecuteCommand2 is executed first in the second cycle, the work done in one cycle of fbMsSQL_compact(FUN) is reset. Could you please give me some advice?
Last updated: 2024-06-18
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
Post by rcanfield on Code Coverage and Test Manager
CODESYS Forge
talk
(Post)
I am exploring the possibility of measuring test coverage using the Test Manager and Profiler tools. It appears there are some significant limitations. Has anyone been successful trying to use these tools? Here are my observed limitations. Am I misunderstanding anything? * Profiler only works for one "run cycle". Even warm resets will clear the coverage calculations. Thus, all tests would have to manually reset values when complete to prevent contamination to other tests. * It is not possible to see which statements were/weren't executed. One would have to use the flow control tool which cannot be used in conjunction with the Profiler, and must be viewed in realtime. * The profiler control cannot be automated and therefore must be executed through a manual procedure. Thank you!
Last updated: 2024-07-11
Post by rcanfield on Code Coverage and Test Manager
CODESYS Forge
talk
(Post)
I am exploring the possibility of measuring test coverage using the Test Manager and Profiler tools. It appears there are some significant limitations. Has anyone been successful trying to use these tools? Here are my observed limitations. Am I misunderstanding anything? * Profiler only works for one "run cycle". Even warm resets will clear the coverage calculations. Thus, all tests would have to manually reset values when complete to prevent contamination to other tests. * It is not possible to see which statements were/weren't executed. One would have to use the flow control tool which cannot be used in conjunction with the Profiler, and must be viewed in realtime. * The profiler control cannot be automated and therefore must be executed through a manual procedure. Thank you!
Last updated: 2024-07-11
Post by lorenzo-pisoni on SysProcessExecuteCommand
CODESYS Forge
talk
(Post)
Hello, I'm encountering an issue with the Sysprocess library while attempting to execute commands to transfer a file from a NAS to my PLC. Currently, I'm trying to test a simple "reboot" command, but it doesn't work as demonstrated in this video: https://youtu.be/77c7Af5xRhE?si=uFZdB6fTNQitzWMQ. I'm using CODESYS V3.5 SP18 Patch 4 (3.5.18.40). From other sources, I've learned that to enable the PLC to execute commands, I need to add the following line to the file CODESYSControl_User.txt: [SysProcess] Command=AllowAll However, the issue I'm facing is that this file doesn't exist on my CPU. I have full SSH access and can see all files, but only CODESYSControl.txt is present. Adding the command to CODESYSControl.txt hasn't resolved the problem.
Last updated: 2024-07-11
Post by ucconversions on displaying all incoming CAN bus messages
CODESYS Forge
talk
(Post)
Hello Im using CAN API Im receiving CAN messages with no problem. below is my code. METHOD ProcessMessage VAR_IN_OUT ( Incoming message ) Message : CAN.RxMESSAGE; END_VAR VAR i: USINT; END_VAR recvCANid := Message.udiCanID; IF recvCANid = 16#18FF8247 THEN UserVarGlobal.g_countMsg_RPMset := UserVarGlobal.g_countMsg_RPMset + 1; FOR i := 0 TO 7 DO myDataFF82[i] := Message.abyData[i]; END_FOR END_IF but in this way I can only display CAN messages which I know its ID. I want to display all incoming CAN messages for example first incoming CAN message - I assign it into a variable Message1. second incoming CAN message - I assign it into a variable Message2. third incoming CAN message - I assign it into a variable Message3. Can you give me guidance? Thank you BR
Last updated: 2024-07-18
Post by peterned on Programatically restart Codesys OPC UA server?
CODESYS Forge
talk
(Post)
Hi, I'm using a Festo Codesys PLC (CPX-CEC-C1-V3), which is connected to a HMI panel. Both exchange data via OPC UA. Occasionally, the HMI stops displaying data, and looks as if there is no connection. If the HMI stops, the only way to make it work again is to restart the PLC. Restarting HMI has no effect. When the PLC is restarted, HMI starts working normally again. Is it possible to restart the OPC UA server from PLC code? I hope this will make fixing the HMI possible without a PLC restart. Thanks
Last updated: 2024-07-19
Post by eguerra on Error in ScriptingEngine Docs - create_pou()
CODESYS Forge
talk
(Post)
In the ScriptingEngine documentation there seems to be an error (or missing information) in the ScriptIecLanguageObjectContainer part ( https://content.helpme-codesys.com/en/ScriptingEngine/ScriptIecLanguageObjectContainer.html#ScriptIecLanguageObjectContainer.ScriptIecLanguageObjectContainer ). The description of the function create_pou() doesn't specify the correct arguments requested, it only says create_pou(type: SpecialPouType) and a script using the documentation definition of the function will raise an error. I tried passing the function arguments similar to the ones specified for the create_dut() function and it seems to work fine: create_pou(name, PouType) , name : str UPDATE: The offline help has the correct definition IExtendedObject<IScriptObject> create_pou( string name, PouType type = PouType.FunctionBlock, Nullable<Guid> language = null, string return_type = null, string base_type = null, string interfaces = null )
Last updated: 2024-08-05
Post by trusty-squire on parker servo and position
CODESYS Forge
talk
(Post)
@gepert, When you say "I do not turn off power", are you saying you don't power off the drive, or you don't turn of the MC_POWER function block? I read your statement as you don't kill actual electrical power. MC_POWER should stay enabled. @Gustavo, not related to problem at all, but when you say 1.6 Nm is only enough torque to unscrew a loose bottle cap, I think that's a bit low. A quick mental math I use is 1 Nm is almost the same force as 1kG applied to a 10cm wrench. So 1.6kG applied to a 10cm wrench is still not a huge force, but more than enough to be felt if trying to turn the shaft by hand.
Last updated: 2024-08-06
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 yannickasselin on codesys VLAN tagging
CODESYS Forge
talk
(Post)
Hi, I am looking for exactly the same thing. I would think that using a layer 2/3 managed switch should work but I am not convinced. I would like to test it in order to see if it would be possible to run many Codesys Docker instances on a server and run only 1 ethernet cable from the server to a managed switch closer to the machines beeing controlled instead of having to run multiple long ethernet cables. I was going to buy a managed switch in order to test it but I want to first make sure it is possible and I want to figure out exactly what kind of switch I would need. Is this even possible? I think this is a feature that would be very useful paired with "Codesys Virtual Control SL". Thank you
Last updated: 2024-09-07
Post by jari-koivuluoma on Newly created texlists wont appear in the selection dropdown
CODESYS Forge
talk
(Post)
When I create a new textlist in Codesys 3.5 SP19 Patch 5, it wont appear in the dropdown menu at Rectangle element > Dynamic texts > Text list. If I just type the name of the textlist to the field (in quotes), I get an error saying that some file is missing. Any good ideas what to do and what is going on. I recently updated to that version and I only now noticed this when I needed to add a new textlist so Im quite screwed with this not being able to add text lists. While im typing this, I tried copying an existing list and modifying it and it seems to show. Any ideas?
Last updated: 2024-09-19
Post by danielbeers on Automation Server + Pi Gateway + PLC w/ CAN
CODESYS Forge
talk
(Post)
Hello, I have a project using some EPEC PLC's. Some of them are programmable using Ethernet and some use CAN. We currently have a Raspberry Pi that is acting as a gateway to the Codesys Automation Server and is successfully working for the PLC's communicating over ethernet. I am trying to achieve a similar result for the PLC's that have only CAN access. I have PEAKCan drivers on the Pi, and can successfully send/receive messages. But the Gateway does not recognise the PLC when scanned from the Automation server online. Is there a library or service that exists to translate the CAN messaging, to the Edge Gateway, and be able to achieve remote access with the Automation Server? Or is this not possible without creating something custom? Cheers, Daniel
Last updated: 2024-09-22
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 timvh on Visuutils FbOpenDialog(Extended) not open Dialog from POUs
CODESYS Forge
talk
(Post)
I had a similar situation recently where this didn't work, but read to the end to see the solution. The reason is that CODESYS only downloads visualisations (dialogs) if they are part of the project or linked to the project. In your case the dialog is not loaded onto the controller. But the solution is pretty simple: Double click on the Visualization Manager in your application. Select the Tab "Visualizations". Here you can see that your dialog is not "checked". Do this manually and load your project on the controller. Then your code should be able to open the dialog, because now it exists on the controller.
Last updated: 2024-09-28
Post by ivanj on Codesys V3 + Rpi + PCA9685 + two robot arms
CODESYS Forge
talk
(Post)
greetings to everyone I have a system consisting of rpi3 computer with codesys v3 installed connected to one pca9685 through which the servo motors of the two robotic arms are connected (each robot arm has 6 motors) I managed to get that the pca9685 can only drive 4 servos on the first arm the other 2 on the same robot arm do not respond, nor do the remaining 6 they do not react on the other robotic arm. Power is connected to the pca9685 for motors of sufficient power or amperage. I tried to put another pca9685 but the same thing happens again. What is the possible problem?
Last updated: 2024-10-02
Post by robinluckey on IDE window handling bugs, windows diasppear, multi monitor setups
CODESYS Forge
talk
(Post)
Codesys Windows (Main window as well as pop-ups) often appear outside of the viewable are in Windows when using multiple Monitors. This is exacerbated (happens more very often), when working on a notebook with different Monitor setups at different locations (which kind of is standard nowadays). The windows (not even the main Window) can not be recovered using standard short cuts like WIN + Arrow keys, alt + tab etc. The only way we found to recover the windows is by changing the Monitor positions in thew Windows Display Settings and than changing them back EVERY TIME a pop us is displayed. This makes using Codesys close to unbearable. All my colleagues face the same problem and do not have this problem with any other IDE. Please help.
Last updated: 2024-10-11
Post by bjarne-pagaard on OPC UA Server Status on Win RTE
CODESYS Forge
talk
(Post)
Hi there, An "OPC Expert" client software is connecting to a Codesys Control RTE (x64) OPC UA Server. It reads only about 25 variables every 5 minutes. The OPC UA Server seems to shut down on the Codesys runtime. Is there any way to get information about the Codesys OPC UA Server status? Restart it? There is nothing in the PLC Logs after the OPC UA Server has started. It works for a while, then it doesn't. Any ideas? Any way of getting more info out of the Codesys OPC UA Server? -Bjarne
Last updated: 2024-10-21
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 timvh on Modbus TCP & RTU with Control for Linux SL
CODESYS Forge
talk
(Post)
RS485 doesn't seem very logical to use in VPLC's in my opinion. I also don't know if this is supported.... But for TCP/IP, I think you still need to configure the Nic settings. See the attached png. In my case enp6s0. When changing this setting, restart the VPLC. What is really nice, is that you don't have to configure the IP address setting in Linux. By setting the Nic to a certain IP address in the CODESYS instance configuration, this is automatically done for you. I only tested this with EtherCAT, but I guess this works the same for Modbus TCP/IP.
Last updated: 2024-10-23
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
.