Search talk: boolean operator priority and order

 
<< < 1 .. 151 152 153 (Page 153 of 153)

Post by shaunvdm on Canbus Slave SDO Read from Object CODESYS Forge talk (Post)
Busy testing a solution to use Canbus Slave to replace a physical device and convert to Ethercat device but keep the Canbus Master in place. Master needs to Read SDO object 5FA2. In the Master PLC if i send the SDO with 8 bytes in message IE: 60B 40 A2 5F 00 00 00 00 00 i get my expected 58B 43 A2 5F 00 00 68 36 02 containing data back. Problem is if we issue a 4 byte command can send 60B 40 A2 5F. Surely the canbus slave should respond with a 58B 43 A2 5F 00 00 68 36 02 but it comes back as 80 A2 5F 00 00 00 00 08 - meaning this OBJECT does not exist. Is there a setting in the canbus slave driver for Canbus to allow the 4 byte command to read the SDO OBJECTS ?
Last updated: 2025-05-27

Post by pouyavakili on Execute Codesys Tests with python CODESYS Forge talk (Post)
Thank you for your input! What I'm ultimately trying to achieve is automated test execution as part of a CI/CD pipeline (e.g. in GitLab or Azure DevOps). For this, I need to: Open a CODESYS project via script Build the project Run the Test Manager tests from a .TestRepository.xml Collect test results (e.g., pass/fail + a report) Exit with a proper return code (for pipeline success/failure) To integrate this into automation, I’m using the CODESYS scripting engine via Python (headless), but the issue is that the get_testmanager() function isn't available on the project object — even though Test Manager is installed, licensed, and works interactively in the IDE. Are you suggesting that I should: Use the Test Manager GUI to script the logic with its internal scripting language? Or is there a way to launch the Test Manager in headless/scripted mode, while still being able to control things via Python? If there's a supported way to automate tests with the Test Manager using scripting, especially from pipelines or headless environments, I’d really appreciate any pointers or example workflows. Thanks again!
Last updated: 2025-07-24

Post by gunstr on CODESYS control on RPi starts, shortly runs, then exits CODESYS Forge talk (Post)
We have been using the Codesys Control for Rasberry Pi for several years in many installations without any major issues. But during summer the problem mentioned above has blocked further deliveries. We have made some minor upgrades to the application but I do not really see why that should have any impact. HW is Raspberry Pi 4B, 2GB OS is Booworm Lite Codesys control is version 4.15 (have just installed a few systems lately with this version) The system boots OK but after exactly 30 seconds Codesys is shut down and becomes unreachable. We have tested several different combinations: Upgrade of the Codeys Control to 4.16 Loading different Codesys applications Changing to 4GB version of the Raspberry Pi One of the test applications together with the 4GB HW seems to be stable, but all other combinations fails. Any suggestion what we can do to resolve is appreciated - this is a real business blocker now. Rgds
Last updated: 2025-09-02

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 alexgooi on Licensing info not available. CODESYS Forge talk (Post)
Sorry for the question, but I'm not completely getting the idea here, could you be more specific, maybe give an example? I'm now in a state where I don't have a softcontainer on my license server anymore (even after reinstalling from the Codesys-IDE). I tried reaching the webserver of Codemeter but when I do that I get redirected to http://"IP":22352 This is not reachable, afterwards I installed lynx on my Debian machine (command line only). From here I could reach the webserver and toggle the network server setting, but unfortunately this did not help. I also tried to changed the remote read setting to 1 (in the Server.ini file). But after a Codemeter reboot this is overwritten to 0. I have the feeling that it should be much easier to get a license to work, am I missing some checkbox somewhere? Is there a tutorial (or manual) that explains the licensing sequence step by step, because I'm pretty stuck.
Last updated: 2025-10-01

Post by mdetrana on VPLCs Tab 'Grey-ed Out', Cannot Create VPLC CODESYS Forge talk (Post)
When evaluating Codesys functionality, I found that the VPLC tab under Deploy Control SL > Operation > VPLCs is 'grey-ed out', see attached image. I'm trying to evaluate how my infrastructure will interact with Codesys on a Raspberry Pi 4, so I'm trying to demo running it before purchasing licenses. I was going through the Codesys tutorial here, and it never shows the tab as grey, so I do not know how to proceed. Let me know if I can get any additional information that can help. This could be related to an Info message that's sent when connecting- [INFORMATION] Connected successfully! [INFORMATION] Successfully connected to target (<ip_address>) [INFORMATION] No supported container engine found on device. You have to install a supported container engine to use Virtual Control. Please contact the Administrator of the device. [INFORMATION] Finished reading device information</ip_address> I'm not exactly sure what I would need to do to install a 'supported container engine'.
Last updated: 2025-10-09

Post by ragarcia on Error while using UpdateConfiguredIPSettings to change IP address CODESYS Forge talk (Post)
Hello everyone, I am trying to change dynamically by code the IP address of a Weidmuller controller. So I am basically using IoDrvEthernet library to use UpdateConfiguredIPSettings function but I am getting constantly the 'INVALID_STATE' error. Even though I am following a procedure it should work: * First I added on the config file of codesys the following: [SysSocket] Adapter.0.Name="eth0" Adapter.0.EnableSetIpAndMask=1 Adapter.1.Name="eth1" Adapter.1.EnableSetIpAndMask=1 * Secondly I am first disabling the ethernet interface by using Ethernet_0.Enable = FALSE and then executing DED.Reconfigure. After that, I run the Ethernet_1.updateConfiguredIPSettings Code: Ethernet_1.Enable:= EnableDisable; Reconfigure(xExecute:= TRUE, itfNode:= Ethernet_1, xError=> ErrorReconfigure, eError=> ErrorCodeReconfigure); IF Reconfigure.xDone THEN ErrorCodeIP:= Ethernet_1.UpdateConfiguredIPSettings(IPAddress:= newIP, SubnetMask:= newMask, Gateway:= newGW); END_IF IF Reconfigure.xDone OR Reconfigure.xError THEN Reconfigure(xExecute:= FALSE); END_IF Ethernet_1.Enable:= TRUE; Reconfigure(xExecute:= TRUE, itfNode:= Ethernet_1); IF Reconfigure.xDone OR Reconfigure.xError THEN Reconfigure(xExecute:= FALSE); END_IF Can someone help me? Thank you. All I am trying is to find a way to change dynamically with code, the IP addresses of my controller (2 ethernet ports).
Last updated: 2023-12-11

Post by dtamm on How to read string from CharBufferPtr? CODESYS Forge talk (Post)
I am trying to implement a mechanism to send alarm SMS. For this, I have created an Alarm Class with a Notification Action which calls a POU. This POU implements IAlarmNotifiable making it selectable in the Alarm Class configuration. IAlarmNotifiable has an Execute method which is called by the alarm class. Now, I want to extract the alarm message of the triggered alarm. The Execute method comes with a VAR_INPUT itfAlarm: AlarmManager.IAlarm which supplies a method called GetMessage. The help text says: Returns the message text, that has been configured for the alarm. The result is a pointer to the buffer, where the message text is stored The type of the result is CharBufferPtr, and at some place I read that it can be interpreted as a pointer to string. But I cannot manage to extract the alarm message, all I get are numbers. I have tried the following: psAlarmText := itfAlarm.GetMessage(__SYSTEM.TYPE_CLASS.TYPE_STRING)^; sAlarmText := TO_STRING( itfAlarm.GetMessage(__SYSTEM.TYPE_CLASS.TYPE_STRING)^ ); So how do I get access to the alarm message as clear text? (In this case, "Larm 1")
Last updated: 2024-02-21

Post by anlebr 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 use the Codesys Communication Manager to set up an Opc ua server with a custom information model. As a start I am using the Boiler model available on Opc foundations github page. I am testing with a Wago CC100 and using Codesys V3.5 SP19 Patch 6. I get the following error: Communication Manager [Device: PLC Logic: Application]: The information model http://opcfoundation.org/UA/ is required by http://opcfoundation.org/UA/Boiler/ 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, both versions are available in the repository. How can I solve this?
Last updated: 2024-03-13

Post by squiggleypuff on RemoteTargetVisu creates Unresolved Reference CODESYS Forge talk (Post)
I have a project with a Festo CPX-E-CEC-C1-PN PLC (Run-time version 3.5.12.50) that I have been developing on just fine using Codesys V3.5 SP19 Patch 5 (64bit). I am at the stage where I wanted to use the Festo HMI screen, and have added a RemoteTargetVisu object to my application. After adding this object, I am no longer able to log in to the PLC as I get an Unresolved Reference warning for 'USERMGRUSERGETPROPERTY' towards the end of the download process. I was able to find this post (https://forge.codesys.com/forge/talk/Visualization/thread/fc686a6cb2/) where the two possible solutions are to "set the placeholder to emtpy" or update the runtime. Problem is, I don't know how to do either of these things, as I'm still very green in Codesys land. I'd be happy to update the Festo PLC runtime, as that seems like the better option, but have not had any luck in finding a tutorial for this online. If anyone could point me in the right direction I'd appreciate it.
Last updated: 2024-03-19

Post by squiggleypuff on Can't Add New Version of Modbus TCP Master CODESYS Forge talk (Post)
I'm having a tough time trying to get Modbus working on a Festo CPX-E PLC; it throws these pre-compiler errors as soon as I add in my Modbus TCP Master 3.5.12.30 to my project: I'm confused about the C0046 error, as I have IODrvModbusTCP 4.3.0.0 Library installed. So I thought maybe I needed to use the newest Modbus TCP Master 4.3.0.0, which is in my device repository: However, whenever I go to add this underneath the Ethernet adapter (which is version 4.2.0.0), the only TCP Master version available is the old 3.5.12.30 one, even if I have Display all versions checked.: I even went so far as to delete the old version, but then there were no options to add a Modbus TCP Master under my Ethernet adapter. What needs to be done to use the newest Modbus TCP Master? Or are these pre-compiler errors unrelated and I'm missing something? Any help greatly appreciated.
Last updated: 2024-04-04

Post by jose-coro on Trouble installing codesys 64 3.5.19.0 CODESYS Forge talk (Post)
I tried to intalling codesys 64 3.5.19.0, during the installation process I get the following messages: "One or more problems have appeared with the current version profile. please consult with the supplier to solve the problem. -The plugin '{ee08241a-dd43-445a-b0a1-de9f717d92e0}(exactly 3.5.19.0)' is required for the current version profile but is not installed. The plug-in '{c7880c90-68c0-4cf8-a726-f0ee72b11f86}(exactly 3.5.19.0)' is required for the current version profile but is not installed. The add-on '{973a3934-1ec6-4770-83a4-59677803015a}(exactly 3.5.19.0)' is required for the current version profile but is not installed. It is recommended to terminate the application." Then the following message appears: "This package could not be installed: CODESYS Compatibility Package 3.5.17.20”. After that the instalation continue and the folling message appears: "It is possible that packages from this path could not be installed: C:\Users...\Appdata\Local\Temp{EFE2F~1}\Packages"
Last updated: 2024-04-23

Post by jose-coro on Trouble installing codesys 64 3.5.19.0 CODESYS Forge talk (Post)
I tried to intalling codesys 64 3.5.19.0, during the installation process I get the following messages: "One or more problems have appeared with the current version profile. please consult with the supplier to solve the problem. -The plugin '{ee08241a-dd43-445a-b0a1-de9f717d92e0}(exactly 3.5.19.0)' is required for the current version profile but is not installed. The plug-in '{c7880c90-68c0-4cf8-a726-f0ee72b11f86}(exactly 3.5.19.0)' is required for the current version profile but is not installed. The add-on '{973a3934-1ec6-4770-83a4-59677803015a}(exactly 3.5.19.0)' is required for the current version profile but is not installed. It is recommended to terminate the application." Then the following message appears: "This package could not be installed: CODESYS Compatibility Package 3.5.17.20”. After that the instalation continue and the folling message appears: "It is possible that packages from this path could not be installed: C:\Users...\Appdata\Local\Temp{EFE2F~1}\Packages"
Last updated: 2024-04-23

Post by phoward131 on Alarm State Icon CODESYS Forge talk (Post)
I am trying to create an icon on an overview screen that depicts if an alarm group has active alarms, active acknowledged alarms, or inactive unacknowledged alarms (waiting for confirmation). I've attempted to set up Notification Actions in the Alarm Class to set variables based on state changes but have been unable to find a clean and effective way to do this. Because an action on any alarm will trigger the variable to be set as instructed, I'm struggling to find a way to configure it for what I need (ie if two alarms activate, then one deactivates, the variable for indicating an alarm is active would be cleared after the single deactivation). I've been pointed toward the Alarm Manager example project but I'm finding it too complicated to understand how to implement it in my own project. Has anyone come up with another good way to indicate the states of alarms or a simpler usage of the Alarm Manager functions?
Last updated: 2024-04-23

Post by k2saki on CNC / G01 Speed is very slow (or go-stop motion) in Continuous short segment . CODESYS Forge talk (Post)
I'm using CAD/CAM that outputs GCode with G01 many short segments from NURBS Curve, only X-Y axis. But CODESYS CNC motion seems much slower ( or stop-go motion ) in simulation mode than F-Value (I checked value from SMC_Interpolator - dVel ). In GCode G01, F value is F500, but movement is very slow, actual speed (dVel) is between 0 to 30 back and forth. I think very old CNC can move like that, but nowadays, a lot of CNC can move smoothly to process free curve ( somethimes option switch ) I tried to use G51 Dxx but I got the same result. My questions are 1) How do I improve CODESYS CNC motion in this case ? 2) How can I graph the sampling from dVel of SMC_Interpolate in CODESYS? From my GCode N2006 G01 X1.4364 Y-14.6847 F500 N2007 G01 X1.6759 Y-14.6768 N2008 G01 X1.9152 Y-14.6486 N2009 G01 X2.1547 Y-14.6400 N2010 G01 X2.3943 Y-14.6090 N2011 G01 X2.6336 Y-14.6002 N2012 G01 X2.8732 Y-14.5716 N2013 G01 X3.1127 Y-14.5634 N2014 G01 X3.3520 Y-14.5410 N2015 G01 X3.5915 Y-14.5336 N2016 G01 X3.8308 Y-14.5307 ... Thansk.
Last updated: 2024-04-29

Post by wollvieh on Display minutes as hours & minutes CODESYS Forge talk (Post)
Here a code for an Operation Counter with : days,hours,minutes,seconds as an example, maybe it points you the right direction ? FUNCTION_BLOCK OperationDayHour VAR_INPUT IN : BOOL; // Betrieb Takt : BOOL; // 1Hz Systemtakt END_VAR VAR_OUTPUT BetrTag : UDINT; // Ausgabe Betriebstage Betrstd : UDINT; // Ausgabe Betriebsstunden Betrmin : UDINT; // Ausgabe Betriebsminuten Betrsec : UDINT; // Ausgabe Betriebsekunden BetrString : STRING; // Ausgabe als String END_VAR VAR ///Erkennung Taktflanke Flanke: R_TRIG; END_VAR VAR_IN_OUT BetrsecAbsolut: UDINT; //Ein/Ausgangsvariable Betriebssekunden RETAIN !!! END_VAR Flanke(CLK:= Takt, Q=> ); (*Erkennung Taktflanke*) IF (IN AND Flanke.Q) THEN (*Sekunden hochzählen*) BetrsecAbsolut := BetrsecAbsolut + 1; END_IF Betrsec := BetrsecAbsolut MOD 60; Betrmin := ( BetrsecAbsolut / 60) MOD 60; Betrstd := ( BetrsecAbsolut / 60 / 60 ) MOD 24; BetrTag := ( BetrsecAbsolut / 60 / 60 /24 ); BetrString := RIGHT ( UDINT_TO_STRING( BetrTag + 100000),5); BetrString := CONCAT (BetrString, 'd_'); BetrString := CONCAT (BetrString,RIGHT ( UDINT_TO_STRING( Betrstd + 100000),5)); BetrString := CONCAT (BetrString, 'h_'); BetrString := CONCAT (BetrString, RIGHT ( UDINT_TO_STRING( Betrmin + 100),2)); BetrString := CONCAT (BetrString, 'm_'); BetrString := CONCAT (BetrString, RIGHT ( UDINT_TO_STRING( Betrsec + 100),2)); BetrString := CONCAT (BetrString, 's');
Last updated: 2024-05-27

Post by vtec35 on search runtime 4.9.0.0 for pi 3 CODESYS Forge talk (Post)
yes but impossible to upload runtime 4.9.0.0 now we have put an image on the sd card with 4.13.0.0, i have 27 error message to this type, and if i test some output not work, et some work ------ Processus de compilation entamé : application : Device.HiddenOnlineConfigModeApp ------- Affecter un type à un code... [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0032: Le type 'Type inconnu : 'ADR(GVL_Io_73f6cbf3_7be8_4500_8421_47e565d899a0_HPS_1.Io_73f6cbf3_7be8_4500_8421_47e565d899a0_HPS_1)'' ne peut pas être converti en type 'POINTER TO IoConfigParameter' [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0077: Type inconnu : 'GVL_Io_73f6cbf3_7be8_4500_8421_47e565d899a0_HPS_1.Io_73f6cbf3_7be8_4500_8421_47e565d899a0_HPS_1' [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0046: Identificateur 'GVL_Io_73f6cbf3_7be8_4500_8421_47e565d899a0_HPS_1' non défini [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0032: Le type 'Type inconnu : 'ADR(GVL_Io_1b6dcc3b_ae11_4288_b9a9_86f9323448d1_HPS_1.Io_1b6dcc3b_ae11_4288_b9a9_86f9323448d1_HPS_1)'' ne peut pas être converti en type 'POINTER TO IoConfigParameter' [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0077: Type inconnu : 'GVL_Io_1b6dcc3b_ae11_4288_b9a9_86f9323448d1_HPS_1.Io_1b6dcc3b_ae11_4288_b9a9_86f9323448d1_HPS_1' [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0046: Identificateur 'GVL_Io_1b6dcc3b_ae11_4288_b9a9_86f9323448d1_HPS_1' non défini [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0032: Le type 'Type inconnu : 'ADR(GVL_Io_5ae6fa5a_c197_4038_9581_03e1650806a0_HPS_4.Io_5ae6fa5a_c197_4038_9581_03e1650806a0_HPS_4)'' ne peut pas être converti en type 'POINTER TO IoConfigParameter' [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0077: Type inconnu : 'GVL_Io_5ae6fa5a_c197_4038_9581_03e1650806a0_HPS_4.Io_5ae6fa5a_c197_4038_9581_03e1650806a0_HPS_4' [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj 241025: C0046: Identificateur 'GVL_Io_5ae6fa5a_c197_4038_9581_03e1650806a0_HPS_4' non défini [ERREUR] conditionneuse_camphre-ssa-05-02-24-V3 maj
Last updated: 2025-10-26

Post by animesh on SoftPLC (CODESYS Control x86 RTE V3 x64) OPC UA binds only to 127.0.0.1 — Not binding to LAN IP CODESYS Forge talk (Post)
Hello everyone, I am facing a persistent issue with the OPC UA Server on Advantech Soft PLC with hard realtime for Win64 (V3_5_2010_3) and need help from the community. Device Information Name: Advantech Control x86 RTE V3 x64 Vendor: Advantech Co., Ltd. Categories: PLCs Version: 3.5.20.10 Description: Advantech Soft PLC with hard realtime for Win64 (V3_5_2010_3) Problem Summary The OPC UA Server works perfectly when accessed via: opc.tcp://localhost:4842 opc.tcp://<hostname>:4842</hostname> But it does NOT work when using the LAN IP: opc.tcp://192.168.0.XX:4842 In UAExpert I get: Discovery FindServers on opc.tcp://192.168.0.XX:4842 failed (BadCommunicationError) Port is LISTENING in windows Firewall.. Tried with turning off the firewall completely. System Information Windows 10 x64 Advantech CODESYS RTE Soft-PLC (hard real-time) Network IP: 192.168.0.XX Hostname: WINDOWS-XXXXX Need your Support
Last updated: 2025-11-24

Post by salvatorethomas on Port instantiation of serial interface in WAGO PLC using Modb_L05.lib in CoDeSys v2.3 CODESYS Forge talk (Post)
Hi — good description of the problem. A few suggestions / questions that might help narrow this down: Since your first serial port (COM2) works fine but the second (COM4 + MODBUS_EXT_MASTER) never opens, check whether the two ports are truly independent — some WAGO modules share internal resources, so COM4 might conflict with other functions or modules. Make sure that the physical wiring and module configuration for the second port (baud rate, flow control, RS-485 vs RS-422, etc.) exactly match what the library expects — a mismatch in flow control or wiring could prevent port opening even if the LED signals seem OK. Try using a plain SERIAL_INTERFACE on COM4 first (like you did for COM2) without Modbus logic — if that opens, you know the hardware + port config is fine, so the issue is more likely with modb_L05.lib. If the port opens but Modbus still fails, enable debug/logging (if available) to inspect whether the port opening fails or the subsequent Modbus negotiation fails. If you like — I can share a minimal example project I used with WAGO + COM4 + Modbus that worked; you could adapt that to test your setup. Wacky Flip
Last updated: 2025-12-01

Post by gorditron on I2C Communication with CODESYS Forge talk (Post)
Hello, I have problems with the I2C communication to an ADS7828 AD converter. I don't get any value back from the chip. I use a Kontron chip (ARM 32SC) with Linux as the operating system. I also use the CmpCharDevice library. ADS7828 parameters Address: A1 = 0 / A0 = 0 = SD = 1 = Single End C2 = 0 / C1= 0 / C0= 0 / Channel 0 PD1 = Internal Reference and PD0 = AD Converter ON Here is my code: VAR b_i2cAdr : BYTE := 16#48; (* Standard I2C-Adresse des ADS7828 *) x_Init: BOOL;(* Flag für die Initialisierung *) b_config_byte: BYTE;(* Konfigurationsbyte für den ADS7828 *) ab_cmd_buffer : ARRAY [0..0] OF BYTE; (* Buffer für den Befehl *) ab_data_buffer : ARRAY [0..1] OF BYTE; (* Buffer für die empfangenen Daten *) ui_adc_value_1 : UINT; (* Ausgelesener ADC-Wert *) I2C_Handle: RTS_IEC_HANDLE; (* Handle für das I2C-Device *) di_result_open: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_adr: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_wr_cmd: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_rd_cmd: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_close: DINT;(* Ergebnis der Funktionsaufrufe *) END_VAR //*** Init from the I2C communication port *** IF NOT x_Init THEN I2C_Handle := CDOpen(szFile:= '/dev/i2c-0', dFlags:= O_RDWR, pResult:= ADR(di_result_open)); //* I2C opening * //*** set of the I2C address *** CDIoctl(hFile:=I2C_Handle , dRequest:=1795 , dParameter:=b_i2cAdr , pResult:=ADR(di_result_adr) ); x_Init := TRUE; END_IF (* Hauptlogik *) IF I2C_Handle <> 0 THEN (* Konfigurationsbyte setzen: Single-Ended Kanal 0, interne Referenz *) b_config_byte := 16#8C; (* 10001100b: AIN0, interne Referenz, Single-Ended *) ab_cmd_buffer[0] := b_config_byte; (* Schreiboperation zum Konfigurieren des Chips *) CDWrite(hFile:= I2C_Handle, pbyBuffer:= ADR(ab_cmd_buffer), udCount:= SIZEOF(ab_cmd_buffer), pResult:= ADR(di_result_wr_cmd)); IF di_result_wr_cmd = 0 THEN (* Leseoperation, um den ADC-Wert zu erhalten *) CDRead(hFile:= I2C_Handle, pbyBuffer:= ADR(ab_data_buffer), udCount:= SIZEOF(ab_data_buffer), pResult:= ADR(di_result_rd_cmd)); IF di_result_rd_cmd = 0 THEN (* ADC-Wert aus den Daten extrahieren *) ui_adc_value_1 := SHL(TO_UINT(ab_data_buffer[0]), 8) OR TO_UINT(ab_data_buffer[1]); ELSE (* Fehler beim Lesen der Daten *) ui_adc_value_1 := 0; (* ADC-Wert auf 0 setzen *) END_IF ELSE (* Fehler beim Schreiben der Konfiguration *) ui_adc_value_1 := 0; END_IF END_IF
Last updated: 2024-12-13

Post by john-robinson on Limiting Memory Access of an Array to Within its Bounds CODESYS Forge talk (Post)
Recently we had an issue regarding some simple code to calculate a rolling average. The code indexes from zero to 199 to properly store the current input into a circular buffer which then allows us to calculate a rolling average: VAR input_5s : REAL; outs_arr : ARRAY[0..199] OF REAL; i : USINT := 0; END_VAR ___ //this code runs every five seconds, calculating a rolling average outs_arr[i] := input_5s; i := i + 1; output := OSCAT_BASIC.ARRAY_AVG(ADR(outs_arr), SIZEOF(outs_arr)); IF i >= SIZEOF(outs_arr) THEN i := 0; END_IF There is a simple bug in this code where the index will be set to 0 when it has surpassed the length of the array in bytes (800 in this case) rather than larger than the number of reals in the array (200). The solution here is simple, replacing i >= SIZEOF(outs_arr) with i >= SIZEOF(outs_arr)/SIZEOF(outs_arr[0]). In this example when the index increased to 201 and the line outs_arr[201] := input_5s was called, codesys arbitrarily wrote to the address in memory that is where outs_arr[201] would be if the array was that long. I would like to find a way to wrap the codesys array inside of a wrapper class that checks if an input is within the bounds of an array before writing to that value. I know how I would implement that for a specific array, I could create a method or class that takes an input of an array of variable length, ie. ARRAY[*] OF REAL, but I don't know how to make this for any data type. I am wondering if anyone has ever done anything similar to this, or has any better suggestions to ensure that none of the programmers on this application accidentally create code that can arbitrarily write to other locations in memory.
Last updated: 2024-03-05

Post by struccc on Backtick identifiers CODESYS Forge talk (Post)
Important: ` - Backtick - ASCII 96 ' - Apostrophe or Single Quote - ASCII 39 In the online help for some reason it renders ’ ... The only issue I don't get, why identifiers are still case-insensitive, even within `backtricks`? `mPa` and `MPa` for milli-, mega Pascal are the same identifiers, unfortunately... Is this a bug or a feature? Otherwise can do pretty nasty things with it: // A practical (?) ASCII table served as crazy strict enumeration // Just for hangover Monday mornings {attribute 'qualified_only'} {attribute 'strict'} TYPE ASCII : ( NULL := 16#00, START_OF_HEADING := 16#01, START_OF_TEXT := 16#02, END_OF_TEXT := 16#03, END_OF_TRANSMISSION := 16#04, ENQUIRY := 16#05, BELL := 16#06, ACKNOWLEDGE := 16#07, BACKSPACE := 16#08, HORIZONTAL_TAB := 16#09, LINE_FEED := 16#0A, VERTICAL_TAB := 16#0B, FORM_FEED := 16#0C, CARRIAGE_RETURN := 16#0D, SHIFT_OUT := 16#0E, SHIFT_IN := 16#0F, DATA_LINK_ESCAPE := 16#10, DEVICE_CONTROL_1 := 16#11, DEVICE_CONTROL_2 := 16#12, DEVICE_CONTROL_3 := 16#13, DEVICE_CONTROL_4 := 16#14, NEGATIVE_ACKNOWLEDGE := 16#15, SYNCHRONOUS_IDLE := 16#16, END_OF_TRANS_BLOCK := 16#17, CANCEL := 16#18, END_OF_MEDIUM := 16#19, SUBSTITUTE := 16#1A, ESCAPE := 16#1B, FILE_SEPARATOR := 16#1C, GROUP_SEPARATOR := 16#1D, RECORD_SEPARATOR := 16#1E, UNIT_SEPARATOR := 16#1F, ` ` := 16#20, `!` := 16#21, `$"` := 16#22, `#` := 16#23, `$$` := 16#24, `%` := 16#25, `&` := 16#26, `$'` := 16#27, `(` := 16#28, `)` := 16#29, `*` := 16#2A, `+` := 16#2B, `,` := 16#2C, `-` := 16#2D, `.` := 16#2E, `/` := 16#2F, `0` := 16#30, `1` := 16#31, `2` := 16#32, `3` := 16#33, `4` := 16#34, `5` := 16#35, `6` := 16#36, `7` := 16#37, `8` := 16#38, `9` := 16#39, `:` := 16#3A, `;` := 16#3B, `<` := 16#3C, `=` := 16#3D, `>` := 16#3E, `?` := 16#3F, `@` := 16#40, A := 16#41, B := 16#42, C := 16#43, D := 16#44, E := 16#45, F := 16#46, G := 16#47, H := 16#48, I := 16#49, J := 16#4A, K := 16#4B, L := 16#4C, M := 16#4D, N := 16#4E, O := 16#4F, P := 16#50, Q := 16#51, `R ` := 16#52, `S ` := 16#53, T := 16#54, U := 16#55, V := 16#56, W := 16#57, X := 16#58, Y := 16#59, Z := 16#5A, `[` := 16#5B, `\` := 16#5C, `]` := 16#5D, `^` := 16#5E, `_` := 16#5F, `agrave`:= 16#60, `a` := 16#61, `b` := 16#62, `c` := 16#63, `d` := 16#64, `e` := 16#65, `f` := 16#66, `g` := 16#67, `h` := 16#68, `i` := 16#69, `j` := 16#6A, `k` := 16#6B, `l` := 16#6C, `m` := 16#6D, `n` := 16#6E, `o` := 16#6F, `p` := 16#70, `q` := 16#71, `r` := 16#72, `s` := 16#73, `t` := 16#74, `u` := 16#75, `v` := 16#76, `w` := 16#77, `x` := 16#78, `y` := 16#79, `z` := 16#7A, `{`{} := 16#7B, `|` := 16#7C, `}` := 16#7D, `~` := 16#7E, DEL := 16#7F ) BYTE; END_TYPE
Last updated: 2025-11-05

Post by paulpotat on cm4 runtime problem CODESYS Forge talk (Post)
Hello, We are having the same kind of problem again with the last CM4 we received : ooops... this runtime was built for RASPBERRYPI. Hardware version or firmware version not supported! (-18, 0x00000BB8, 0xFFFFFFFB) Hardware Version $ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 126.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 processor : 1 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 126.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 processor : 2 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 126.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 processor : 3 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 126.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 Hardware : BCM2711 Revision : a03141 Serial : 1000000097594db7 Model : Raspberry Pi Compute Module 4 Rev 1.1 Kernel Version $ uname -a Linux cmr-pv2-1t00-0001 6.12.25-rt9-v7l #1 SMP PREEMPT_RT Thu Sep 25 11:53:00 CEST 2025 armv7l GNU/Linux OS Version $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)" NAME="Raspbian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" CodeSys runtime 4.13.0.0 So far we tested runtime versions up to 4.18.0.0, here are the results : * 4.13.0.0 --> Not working ❌ * 4.14.0.0 --> Not working ❌ * 4.15.0.0 --> Not working ❌ * 4.16.0.0 --> Not working ❌ * 4.17.0.0 --> Working ✅ * 4.18.0.0 --> Working ✅ There is nothing in the 4.17.0.0 release note that mentions that, so I'm not sure what to think about this. Is this a known problem within the CodeSys development team ? If yes, how do you follow CM4 hardware evolutions ? Is there a way of making this work without having to update the runtime version ? We have several products working with the 4.13.0.0 runtime and we would like to avoid having to update them all. BR
Last updated: 1 hour ago

Post by lsislsis on SIGABRT Error CODESYS Forge talk (Post)
Please help us. Why we take this errors. We try different versions like 4.12.0 and 4.13.0 with same results. ;*********;<loggername>codesyscontrol.log</loggername>;<logoptions>; <enable>1</enable>; <type>normal</type>; <timestamp>rtc high resolution</timestamp>; <deactivatable>0</deactivatable>; <dump>always</dump>; <filter>0x0000000f<filter>; <maxentries>100000</maxentries>; <maxfiles>1</maxfiles>; <maxfilesize>1000000</maxfilesize>;</filter></filter></logoptions>;<entries>;Timestamp, CmpId, ClassId, ErrorId, InfoId, InfoText;ClassId: LOG_INFO =1;ClassId: LOG_WARNING =2;ClassId: LOG_ERROR =4;ClassId: LOG_EXCEPTION =8;ClassId: LOG_DEBUG =16;ClassId: LOG_PRINTF =32;ClassId: LOG_COM =64;</entries>;*********2024-11-05T08:23:59.728Z, 0x0000100c, 1, 0, 0, VisuFctCheckForUnusedClients: Removing Client with IEC-ID: 1 Time delta: T#33s1ms Locks: Paintbuffer: TRUE 2024-11-05T08:23:59.728Z, 0x0000100c, 1, 0, 0, VisuFctCheckForUnusedClients: Successfully Removed Client at Address: 547195449944, IEC-ID was: 1, EXT-ID: 431000373 2024-11-05T08:28:57.913Z, 0x0000100c, 1, 0, 0, Visu_PRG: Creating Client for Extern-ID: 347055752 2024-11-05T08:28:57.926Z, 0x0000100c, 1, 0, 0, Visu_PRG: Creating Client successful for Extern-ID: 347055752 Returned IEC-ID: 1 2024-11-05T08:30:51.103Z, 0x0000100c, 1, 0, 0, Visu_PRG: Successfully Removed Client with IEC-ID: 1, Extern-ID: 347055752 2024-11-05T08:37:36.517Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state* We recommend a reboot of the controller now! 2024-11-05T08:37:36.517Z, 0x00000111, 8, 260, 3, #### Exception: HANDLED EXCPT <excpt>NonContinuable</excpt> in CH_COMM_CYCLE 2024-11-05T08:47:42.117Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T08:47:42.117Z, 0x00000111, 8, 260, 3, #### Exception: HANDLED EXCPT <excpt>NonContinuable</excpt> in CH_COMM_CYCLE 2024-11-05T09:14:41.316Z, 0x00000071, 1, 0, 13, Webserver stopped 2024-11-05T09:14:44.485Z, 0x0000013d, 1, 0, 4, Number of licensed cores for IEC-tasks: 1 from 4 2024-11-05T09:14:44.487Z, 0x0000013d, 1, 0, 4, Number of licensed cores for IEC-tasks: 4 from 4 2024-11-05T09:14:44.540Z, 0x00000002, 1, 0, 2, Application [<app>Application</app>] loaded via [Download] 2024-11-05T09:14:55.894Z, 0x00001012, 1, 0, 0, Opened alarm storage file, version: 6 2024-11-05T09:14:55.951Z, 0x0000100c, 1, 0, 0, Visuinitialization starting. 2024-11-05T09:14:55.983Z, 0x0000100c, 1, 0, 0, Visuinitialization done. 2024-11-05T09:14:55.995Z, 0x00000071, 1, 0, 12, Webserver started 2024-11-05T09:15:01.753Z, 0x0000100c, 1, 0, 0, Visu_PRG: Creating Client for Extern-ID: 2279884529 2024-11-05T09:15:01.753Z, 0x0000100c, 1, 0, 0, Visu_PRG: Creating Client successful for Extern-ID: 2279884529 Returned IEC-ID: 0 2024-11-05T09:34:44.667Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T09:34:44.667Z, 0x00000111, 8, 260, 3, #### Exception: More than 2 exceptions in CH_COMM_CYCLE: Stop logging 2024-11-05T10:13:26.867Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T10:15:21.966Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T10:19:12.167Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T10:26:02.566Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T10:31:42.866Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T11:01:54.468Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T11:09:29.868Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! 2024-11-05T11:14:44.540Z, 0x0000100d, 1, 0, 0, Demo mode expired. 2024-11-05T11:27:20.868Z, 0x00000103, 65544, 1, 0, runtime received SIGABRT - system may be in an inconsistent state We recommend a reboot of the controller now! * Regards
Last updated: 2024-11-05

<< < 1 .. 151 152 153 (Page 153 of 153)

Showing results of 3824

Sort by relevance or date