Search talk: setting value of variable

 
<< < 1 .. 140 141 142 143 144 .. 148 > >> (Page 142 of 148)

Post by jroddball79 on PM556-TP-ETH — How to change IP address without overwriting the PLC program? CODESYS Forge talk (Post)
We have checked open ports. SSH (22) and HTTP (80) are not reachable. The only open ports are: 502 (Modbus TCP — used for lighting control) 1200 (CODESYS runtime) 1201 (CODESYS runtime) We can connect via Automation Builder using the current IP, but we don't have the original project source — only an empty project. This is why we are afraid of doing a full download, as it would overwrite the running application. Is there any way to change the IP through the CODESYS runtime protocol on ports 1200/1201 without affecting the running program?"
Last updated: 2026-05-20

Post by baotthitawat on Cloud SCADA for Industrial Energy Monitoring CODESYS Forge talk (Post)
Recently I’ve been exploring ATSCADA iEnergy Tools for SCADA-based energy monitoring systems. One thing I find interesting is how modern SCADA platforms are evolving beyond traditional machine monitoring. Many industrial systems are now using Cloud SCADA architectures for centralized energy management, remote dashboards, and operational analytics. ATSCADA iEnergy Tools supports: Real-time energy monitoring Historical data logging MySQL integration Reporting and Excel export Remote SCADA dashboards Cloud-based monitoring systems I think this type of solution is practical for factories, power monitoring applications, building management systems, and other industrial automation projects where energy optimization is becoming increasingly important. Industrial automation is clearly moving toward web-based and cloud-connected SCADA platforms, especially as more facilities focus on digital transformation and smarter energy management
Last updated: 2026-05-26

Post by baotthitawat on Cloud SCADA for Industrial Energy Monitoring CODESYS Forge talk (Post)
Recently I’ve been exploring ATSCADA iEnergy Tools for SCADA-based energy monitoring systems. One thing I find interesting is how modern SCADA platforms are evolving beyond traditional machine monitoring. Many industrial systems are now using Cloud SCADA architectures for centralized energy management, remote dashboards, and operational analytics. ATSCADA iEnergy Tools supports: Real-time energy monitoring Historical data logging MySQL integration Reporting and Excel export Remote SCADA dashboards Cloud-based monitoring systems I think this type of solution is practical for factories, power monitoring applications, building management systems, and other industrial automation projects where energy optimization is becoming increasingly important. Industrial automation is clearly moving toward web-based and cloud-connected SCADA platforms, especially as more facilities focus on digital transformation and smarter energy management
Last updated: 2026-05-26

Post by alex-n on Problem with keeping up the distance between two axes CODESYS Forge talk (Post)
Hello. I have a task to synchronize the movement of two axes and maintain the distance between them. First axe makes equal steps by trigger using MC_MoveRelative function. The second one is standstill and after another signal should catch up the first one from its position to a specified distance and keep it. I've tried to use MC_Phasing and mostly it works. Second axis catches up the first and starts make step with it. But in one moment this axis can crash into the first and there is no clear connection as to why this is happening. It can work correct for a day or for a week.
Last updated: 2026-06-04

Post by steven-schalm on Frustration-Fueled Feedback on Project File Management and Git Integration CODESYS Forge talk (Post)
Yes, it's very tedious, especially since Codesys 4 is a custom web development... At Rex Automatisierungstechnik GmbH, we've invested a lot of time in the Python interface to enable something like CI/CD, but also to export the code and re-import it after making clean modifications. Also, the fact that a class/function block is just a single file containing all the methods, props, etc. Yes, and right now I’m building my own VS Code extension with a clean LSP (Language Server Protocol) for ST, as well as an st-validator, st-formatter, st-linter, codesysPackage.json, and codesys_modules folder... Best regards, Steven Schalm / Sharok6130
Last updated: 2026-06-11

Post by domebruce on TCP communication and TCP Streams CODESYS Forge talk (Post)
Hello, I'm doing some tests with TCP communication using Reader, Writer and TCP_Process components from NBS 4.0. I'm having a really hard time finding documentation and examples on these components. I found a very simple and incomplete example here: https://forge.codesys.com/prj/codesys-example/nbs/home/Home/. The documentation is also insufficient: it only provides the names of the FBs, Methods and their parameters, but no descriptions about how to use them. Do you have any suggestions on where to find more support? More generally, why is the free online CoDeSys documentation so poor? What do you think? Thanks Domenico Canavero
Last updated: 2026-06-16

Post by ophelia on Phantom Test Slot Preventing Suite Completion CODESYS Forge talk (Post)
Hi all, I'm working with a CODESYS 3.5 unit test framework on an embedded Linux PLC and running into an issue where a phantom test slot appears in the results that never completes, preventing the full test suite from ever finishing. The symptom: A blank-named test entry appears in the results table with an ever-increasing action count. It stays as "Testing" or "Failing" indefinitely. Because it never closes, bAllFinished never goes TRUE and the final report is never generated. Question: Has anyone seen this kind of phantom slot issue in a CODESYS unit testing setup? Thanks
Last updated: 2026-07-09

Post by timvh on HTML5 visualization controls disabled on CODESYS Control for Linux SL - overlay not supported? CODESYS Forge talk (Post)
I was able to reproduce this by doing something wrong. I guess what you did is first create an application for the Control Win, or some other device and then switched this to the Linux SL. But then the Visualization Manager still has the "TargetVisu" component, besides the WebVisu component. The Linux SL doesn't support this TargetVisu as part of the runtime. You should run a separate process for this. So remove the TargetVisu from the Visualization Manager and then you will be able to load the application.
Last updated: 2026-08-06

Post by kamalsingh on Temu Coupon Code [acu577459 & acq615756] first time customers CODESYS Forge talk (Post)
Are you looking to save big while shopping online? With the Temu coupon code $100 off, you can unlock amazing discounts on a wide range of products. The acu577459 & acq615756 Temu coupon code is designed to provide maximum benefits for shoppers in the USA, acu577459 & acq615756, and European nations. Whether youre a new user or a returning customer, this code has something special for everyone. Dont miss out on incredible savings with the Temu coupon $100 off and the Temu 100 off coupon code. Its your chance to enjoy quality products at unbeatable prices! What Is The Coupon Code For Temu $100 Off? Both new and existing customers can enjoy fantastic benefits when they use our $100 off Temu coupon on the Temu app and website. Heres what you can expect with the acu577459 & acq615756 code: Flat $100 Off: Enjoy a straightforward discount on your purchases, making high-quality products more affordable. $100 Coupon Pack for Multiple Uses: This code allows you to use the discount multiple times, ensuring ongoing savings. $100 Flat Discount for New Customers: New users can take advantage of this generous offer to kickstart their shopping experience. Extra $100 Promo Code for Existing Customers: Loyal users can also benefit, making it a win-win for everyone. $100 Coupon for USA/acu577459 & acq615756 Users: Tailored specifically for users in these regions, maximizing your savings potential. Temu Coupon Code $100 Off For New Users In 2024 New users have the highest potential to save when they apply our coupon code on the Temu app. With the Temu coupon $100 off and Temu coupon code $100 off, new customers can unlock fantastic offers. Using the acu577459 & acq615756 code, heres what new users can enjoy: Flat $100 Discount for New Users: Instantly save big on your first purchase with a generous discount. $100 Coupon Bundle for New Customers: This bundle allows for multiple uses, maximizing your initial savings. Up to $100 Coupon Bundle for Multiple Uses: Enjoy the flexibility of using your discount multiple times for various purchases. Free Shipping to 68 Countries: New users can take advantage of shipping benefits that expand their shopping reach. Extra 30% Off on Any Purchase for First-Time Users: Get additional savings on your first order to make shopping even more rewarding. How To Redeem The Temu Coupon $100 Off For New Customers? To use the Temu $100 coupon and the Temu $100 off coupon code for new users, follow these simple steps: Download the Temu App: Get the app from your preferred app store or visit the Temu website. Create Your Account: Sign up as a new user and enter your details. Browse Products: Shop for items you love and add them to your cart. Apply the Coupon Code: In the checkout section, enter the acu577459 & acq615756 code in the designated field. Complete Your Purchase: Enjoy your savings and wait for your products to arrive! Temu Coupon $100 Off For Existing Customers Existing users can also reap substantial rewards by using our coupon code on the Temu app. The Temu $100 coupon codes for existing users and Temu coupon $100 off for existing customers free shipping ensure that loyalty pays off. Heres how acu577459 & acq615756 benefits existing users: $100 Extra Discount for Existing Temu Users: Enjoy an additional discount that makes your shopping experience even better. $100 Coupon Bundle for Multiple Purchases: This allows you to apply the discount across various orders, enhancing savings. Free Gift with Express Shipping All Over the USA/acu577459 & acq615756: As a reward for loyalty, enjoy a free gift and speedy shipping. Extra 30% Off on Top of the Existing Discount: Stack savings to maximize your benefits on each purchase. Free Shipping to 68 Countries: Maintain global accessibility with this fantastic shipping option. How To Use The Temu Coupon Code $100 Off For Existing Customers? Using the Temu coupon code $100 off and the Temu coupon $100 off code is simple for existing customers: Log into Your Account: Access your Temu account using your credentials. Select Products: Choose your desired items and add them to your cart. Proceed to Checkout: Go to your cart and review your selections. Enter the Coupon Code: Apply the acu577459 & acq615756 code in the coupon field at checkout. Finalize Your Order: Confirm your purchase and enjoy your savings! Latest Temu Coupon $100 Off First Order If youre placing your first order, using our coupon code can lead to exceptional benefits. With the Temu coupon code $100 off first order, the Temu coupon code first order, and Temu coupon code $100 off first time user, youll be well-equipped to save. Heres what you can enjoy with acu577459 & acq615756: Flat $100 Discount for the First Order: Your first purchase can be significantly cheaper with this incredible offer. $100 Temu Coupon Code for the First Order: This exclusive code is specifically for new customers, enhancing their initial shopping experience. Up to $100 Coupon for Multiple Uses: Utilize your coupon across various first-time purchases to maximize savings. Free Shipping to 68 Countries: Enjoy seamless international shipping on your initial order. Extra 30% Off on Any Purchase for the First Order: Take advantage of additional discounts to make your first purchase truly rewarding. How To Find The Temu Coupon Code $100 Off? To discover the latest Temu coupon $100 off and Temu coupon $100 off Reddit, follow these helpful tips: You can sign up for the Temu newsletter to receive verified and tested coupons straight to your inbox. Additionally, visit Temus social media pages for real-time updates on the latest coupons and promotions. For further savings, trusted coupon sites can also guide you to the most recent and effective Temu coupon codes. Happy hunting! Is Temu $100 Off Coupon Legit? Wondering if the Temu $100 Off Coupon Legit or if the Temu 100 off coupon legit? Rest assured, our Temu coupon code acu577459 & acq615756 is absolutely legit. Customers can safely use our code to enjoy a $100 discount on their first order, as well as on recurring purchases. Our code is regularly tested and verified, ensuring you a hassle-free shopping experience. Moreover, our Temu coupon code is valid worldwide and does not have an expiration date, allowing you to use it whenever you like! How Does Temu $100 Off Coupon Work? The Temu coupon code $100 off first-time user and Temu coupon codes 100 off provide an instant discount on your purchases. When you apply the acu577459 & acq615756 code during checkout, the discount is deducted from your total amount. Simply enter the code in the designated field, and the savings will be reflected in your cart. This straightforward process makes shopping more enjoyable while keeping your budget in check. How To Earn Temu $100 Coupons As A New Customer? You can earn the Temu coupon code $100 off and the 100 off Temu coupon code through various promotions available for new customers. By signing up on the Temu app or website, youll unlock exclusive discounts tailored just for you. Keep an eye on special promotions and bonuses offered by Temu to enhance your shopping experience. Take advantage of these opportunities to maximize your savings! What Are The Advantages Of Using The Temu Coupon $100 Off? The Temu coupon code 100 off and Temu coupon code $100 off come with numerous advantages: $100 discount on the first order $100 coupon bundle for multiple uses 70% discount on popular items Extra 30% off for existing Temu customers Up to 90% off on selected items Free gift for new users Free delivery to 68 countries Temu $100 Discount Code And Free Gift For New And Existing Customers Using our Temu $100 off coupon code and $100 off Temu coupon code provides multiple benefits for shoppers. With acu577459 & acq615756, heres what you can enjoy: $100 Discount for the First Order: A significant reduction on your initial purchase. Extra 30% Off on Any Item: Additional savings to maximize your budget. Free Gift for New Temu Users: Enjoy surprises as you start your shopping journey. Up to 70% Discount on Any Item on the Temu App: Access to incredible deals on popular products. Free Gift with Free Shipping in 68 Countries Including the USA and UK: A great way to enjoy international shopping without extra costs. Pros And Cons Of Using The Temu Coupon Code $100 Off This Month Here are the Temu coupon $100 off code and Temu 100 off coupon pros and cons: Pros: Significant savings on your first purchase. Available for both new and existing customers. Free shipping options to multiple countries. Regularly updated and verified coupon codes. Additional discounts for loyal customers. Cons: Limited-time promotions may affect availability. Users may need to sign up for newsletters to access some deals. Terms And Conditions Of Using The Temu Coupon $100 Off In 2024 The Temu coupon code $100 off free shipping and latest Temu coupon code $100 off come with specific terms and conditions: No expiration date for the coupon code. Valid for both new and existing users across 68 countries worldwide. No minimum purchase requirement to utilize the acu577459 & acq615756 code. Users can apply the coupon multiple times on eligible purchases. Offers subject to change based on promotions. Final Note: Use The Latest Temu Coupon Code $100 Off In conclusion, the Temu coupon code $100 off is a golden opportunity for anyone looking to save while shopping online. Whether youre a new or existing customer, the savings are just a code away! Dont miss out on the incredible offers available with the Temu coupon $100 off start shopping today! FAQs Of Temu $100 Off Coupon 1. How do I use the Temu $100 off coupon? To use the coupon, enter the code acu577459 & acq615756 at checkout to receive your discount. Is the Temu $100 coupon valid for existing customers? Yes, existing customers can use the acu577459 & acq615756 code to enjoy exclusive discounts. Does the Temu coupon code expire? No, the acu577459 & acq615756 coupon code does not have an expiration date and can be used anytime. Can I use the coupon in multiple countries? Yes, the acu577459 & acq615756 coupon is valid in 68 countries, including the USA and acu577459 & acq615756. Are there any minimum purchase requirements? No, you can use the acu577459 & acq615756 coupon without any minimum purchase requirement.
Last updated: 2024-10-26

Post by kamalsingh on $100 Off Temu Coupon Code [acu577459 & acq615756] CODESYS Forge talk (Post)
Are you looking to save big while shopping online? With the Temu coupon code $100 off, you can unlock amazing discounts on a wide range of products. The acu577459 & acq615756 Temu coupon code is designed to provide maximum benefits for shoppers in the USA, acu577459 & acq615756, and European nations. Whether youre a new user or a returning customer, this code has something special for everyone. Dont miss out on incredible savings with the Temu coupon $100 off and the Temu 100 off coupon code. Its your chance to enjoy quality products at unbeatable prices! What Is The Coupon Code For Temu $100 Off? Both new and existing customers can enjoy fantastic benefits when they use our $100 off Temu coupon on the Temu app and website. Heres what you can expect with the acu577459 & acq615756 code: Flat $100 Off: Enjoy a straightforward discount on your purchases, making high-quality products more affordable. $100 Coupon Pack for Multiple Uses: This code allows you to use the discount multiple times, ensuring ongoing savings. $100 Flat Discount for New Customers: New users can take advantage of this generous offer to kickstart their shopping experience. Extra $100 Promo Code for Existing Customers: Loyal users can also benefit, making it a win-win for everyone. $100 Coupon for USA/acu577459 & acq615756 Users: Tailored specifically for users in these regions, maximizing your savings potential. Temu Coupon Code $100 Off For New Users In 2024 New users have the highest potential to save when they apply our coupon code on the Temu app. With the Temu coupon $100 off and Temu coupon code $100 off, new customers can unlock fantastic offers. Using the acu577459 & acq615756 code, heres what new users can enjoy: Flat $100 Discount for New Users: Instantly save big on your first purchase with a generous discount. $100 Coupon Bundle for New Customers: This bundle allows for multiple uses, maximizing your initial savings. Up to $100 Coupon Bundle for Multiple Uses: Enjoy the flexibility of using your discount multiple times for various purchases. Free Shipping to 68 Countries: New users can take advantage of shipping benefits that expand their shopping reach. Extra 30% Off on Any Purchase for First-Time Users: Get additional savings on your first order to make shopping even more rewarding. How To Redeem The Temu Coupon $100 Off For New Customers? To use the Temu $100 coupon and the Temu $100 off coupon code for new users, follow these simple steps: Download the Temu App: Get the app from your preferred app store or visit the Temu website. Create Your Account: Sign up as a new user and enter your details. Browse Products: Shop for items you love and add them to your cart. Apply the Coupon Code: In the checkout section, enter the acu577459 & acq615756 code in the designated field. Complete Your Purchase: Enjoy your savings and wait for your products to arrive! Temu Coupon $100 Off For Existing Customers Existing users can also reap substantial rewards by using our coupon code on the Temu app. The Temu $100 coupon codes for existing users and Temu coupon $100 off for existing customers free shipping ensure that loyalty pays off. Heres how acu577459 & acq615756 benefits existing users: $100 Extra Discount for Existing Temu Users: Enjoy an additional discount that makes your shopping experience even better. $100 Coupon Bundle for Multiple Purchases: This allows you to apply the discount across various orders, enhancing savings. Free Gift with Express Shipping All Over the USA/acu577459 & acq615756: As a reward for loyalty, enjoy a free gift and speedy shipping. Extra 30% Off on Top of the Existing Discount: Stack savings to maximize your benefits on each purchase. Free Shipping to 68 Countries: Maintain global accessibility with this fantastic shipping option. How To Use The Temu Coupon Code $100 Off For Existing Customers? Using the Temu coupon code $100 off and the Temu coupon $100 off code is simple for existing customers: Log into Your Account: Access your Temu account using your credentials. Select Products: Choose your desired items and add them to your cart. Proceed to Checkout: Go to your cart and review your selections. Enter the Coupon Code: Apply the acu577459 & acq615756 code in the coupon field at checkout. Finalize Your Order: Confirm your purchase and enjoy your savings! Latest Temu Coupon $100 Off First Order If youre placing your first order, using our coupon code can lead to exceptional benefits. With the Temu coupon code $100 off first order, the Temu coupon code first order, and Temu coupon code $100 off first time user, youll be well-equipped to save. Heres what you can enjoy with acu577459 & acq615756: Flat $100 Discount for the First Order: Your first purchase can be significantly cheaper with this incredible offer. $100 Temu Coupon Code for the First Order: This exclusive code is specifically for new customers, enhancing their initial shopping experience. Up to $100 Coupon for Multiple Uses: Utilize your coupon across various first-time purchases to maximize savings. Free Shipping to 68 Countries: Enjoy seamless international shipping on your initial order. Extra 30% Off on Any Purchase for the First Order: Take advantage of additional discounts to make your first purchase truly rewarding. How To Find The Temu Coupon Code $100 Off? To discover the latest Temu coupon $100 off and Temu coupon $100 off Reddit, follow these helpful tips: You can sign up for the Temu newsletter to receive verified and tested coupons straight to your inbox. Additionally, visit Temus social media pages for real-time updates on the latest coupons and promotions. For further savings, trusted coupon sites can also guide you to the most recent and effective Temu coupon codes. Happy hunting! Is Temu $100 Off Coupon Legit? Wondering if the Temu $100 Off Coupon Legit or if the Temu 100 off coupon legit? Rest assured, our Temu coupon code acu577459 & acq615756 is absolutely legit. Customers can safely use our code to enjoy a $100 discount on their first order, as well as on recurring purchases. Our code is regularly tested and verified, ensuring you a hassle-free shopping experience. Moreover, our Temu coupon code is valid worldwide and does not have an expiration date, allowing you to use it whenever you like! How Does Temu $100 Off Coupon Work? The Temu coupon code $100 off first-time user and Temu coupon codes 100 off provide an instant discount on your purchases. When you apply the acu577459 & acq615756 code during checkout, the discount is deducted from your total amount. Simply enter the code in the designated field, and the savings will be reflected in your cart. This straightforward process makes shopping more enjoyable while keeping your budget in check. How To Earn Temu $100 Coupons As A New Customer? You can earn the Temu coupon code $100 off and the 100 off Temu coupon code through various promotions available for new customers. By signing up on the Temu app or website, youll unlock exclusive discounts tailored just for you. Keep an eye on special promotions and bonuses offered by Temu to enhance your shopping experience. Take advantage of these opportunities to maximize your savings! What Are The Advantages Of Using The Temu Coupon $100 Off? The Temu coupon code 100 off and Temu coupon code $100 off come with numerous advantages: $100 discount on the first order $100 coupon bundle for multiple uses 70% discount on popular items Extra 30% off for existing Temu customers Up to 90% off on selected items Free gift for new users Free delivery to 68 countries Temu $100 Discount Code And Free Gift For New And Existing Customers Using our Temu $100 off coupon code and $100 off Temu coupon code provides multiple benefits for shoppers. With acu577459 & acq615756, heres what you can enjoy: $100 Discount for the First Order: A significant reduction on your initial purchase. Extra 30% Off on Any Item: Additional savings to maximize your budget. Free Gift for New Temu Users: Enjoy surprises as you start your shopping journey. Up to 70% Discount on Any Item on the Temu App: Access to incredible deals on popular products. Free Gift with Free Shipping in 68 Countries Including the USA and UK: A great way to enjoy international shopping without extra costs. Pros And Cons Of Using The Temu Coupon Code $100 Off This Month Here are the Temu coupon $100 off code and Temu 100 off coupon pros and cons: Pros: Significant savings on your first purchase. Available for both new and existing customers. Free shipping options to multiple countries. Regularly updated and verified coupon codes. Additional discounts for loyal customers. Cons: Limited-time promotions may affect availability. Users may need to sign up for newsletters to access some deals. Terms And Conditions Of Using The Temu Coupon $100 Off In 2024 The Temu coupon code $100 off free shipping and latest Temu coupon code $100 off come with specific terms and conditions: No expiration date for the coupon code. Valid for both new and existing users across 68 countries worldwide. No minimum purchase requirement to utilize the acu577459 & acq615756 code. Users can apply the coupon multiple times on eligible purchases. Offers subject to change based on promotions. Final Note: Use The Latest Temu Coupon Code $100 Off In conclusion, the Temu coupon code $100 off is a golden opportunity for anyone looking to save while shopping online. Whether youre a new or existing customer, the savings are just a code away! Dont miss out on the incredible offers available with the Temu coupon $100 off start shopping today! FAQs Of Temu $100 Off Coupon 1. How do I use the Temu $100 off coupon? To use the coupon, enter the code acu577459 & acq615756 at checkout to receive your discount. Is the Temu $100 coupon valid for existing customers? Yes, existing customers can use the acu577459 & acq615756 code to enjoy exclusive discounts. Does the Temu coupon code expire? No, the acu577459 & acq615756 coupon code does not have an expiration date and can be used anytime. Can I use the coupon in multiple countries? Yes, the acu577459 & acq615756 coupon is valid in 68 countries, including the USA and acu577459 & acq615756. Are there any minimum purchase requirements? No, you can use the acu577459 & acq615756 coupon without any minimum purchase requirement.
Last updated: 2024-10-26

Post by tcarlbom on Read tag values using external program CODESYS Forge talk (Post)
This is my first time posting in this forum and I am new to codesys. I am a fullstack developer and I am trying to figure out how the following. What would be the best approach to create a own/custom tag browser? Either directly in codesys ide or using a separate custom program (perhaps a winforms application). 1.a. Shall I parse the .project xml file to get a list of all tags in the project? 1b. Shall I use python scripting in codesys ide to get a list of tags? Once one have selected some tags. These tags shall be exposed to a python program which will be acting as a edge computer. It’s fine to be able to import a file. 2a. I found a library called codesys plchandler which (as I understand) acts a rest api server. Is this correct? If so, can I query the api from a custom python script, ie can query what tags exist in project and or read tag values? My research so far. From earlier projects I know that using opc ua would be perfect for this but from my opinion it’s bloating the plc since it’s resource intensive. So opc ua is not an option. Codesys automation server is neat. But I don’t want to rely on some cloud services and subscription based pricing. There seem to be several interesting codesys libraries like mqtt, tcp server and NVL sender which would help me expose plc tags. But all have a common problem. One have to manually write what tags which will be used in these function blocks. I want a similar experience like “selecting” tags in the opc ua or the codesys tracing, ie a tag browser.
Last updated: 2024-06-28

Post by serwis on Dynamic target position tracking CODESYS Forge talk (Post)
Hello, I am trying to control a servo drive and dynamically set its position. I control the drive via EtherCAT with a cycle time of 500us. I use the MC_MoveAbsolute block for this. The problem is that when using a PID controller, I generate the positions I want the drive to move to on an ongoing basis, and I would like the position to be set immediately. The MC_MoveAbsolute block must receive a rising edge to execute, and I would like the movement to be performed without waiting for this edge. I have created a function that generates a rising edge every 1 ms, but I am unable to change this time to 500 µs because the TON function does not support times shorter than 1 ms. Below is the code to call the rising edge: IF Exe = TRUE THEN delay1(IN:=TRUE, PT:=T#1MS); IF delay1.Q = TRUE THEN Exe := FALSE; delay1(IN:=FALSE); END_IF END_IF IF Exe = FALSE THEN delay(IN:=TRUE, PT:=T#1MS); IF delay.Q = TRUE THEN Exe := TRUE; delay(IN:=FALSE); END_IF END_IF END_IF Here is the code for calling the MC_MoveAbsolute function: MoveDegree( Axis:= Tilt, Execute:= Exe, Position:= position_target - (base_angle_real * feedforward_turn), Velocity:= vel, Acceleration:= acc, Deceleration:= dec, Jerk:= jerk, Direction:= MC_DIRECTION.shortest, BufferMode:= MC_BUFFER_MODE.Aborting, Done=> , Busy=> , Active=> , CommandAborted=> , Error=> , ErrorID=> ); I realize that there are probably better methods for performing this type of task. How can I implement motion with a dynamically changing setpoint? THANKS
Last updated: 2025-09-05

Post by matteodigani on Error using function block "Write alias address" CODESYS Forge talk (Post)
Hi, I've got a problem using the function block "Write alias address" (ETCStack library 4.9.0.0). this is the code: EtherCAT_1(); IF EtherCAT_1.ConfigRead AND enable THEN CASE seq OF 0: exec := FALSE; T.IN := TRUE; T.PT := T#10S; T(); IF T.Q THEN seq := 1; T.IN := FALSE; END_IF ; 1: T.IN := FALSE; T(); //THIS ONE WORK CORRECTLY! WrAliasAdd.xAbort := FALSE; WrAliasAdd.usiCom := DWORD_TO_USINT(EtherCAT_1.InstanceNumber); WrAliasAdd.wSlaveAddress := 1002; WrAliasAdd.xAutoIncAdr := FALSE; WrAliasAdd.uiAliasAddress := 19; WrAliasAdd.udiTimeOut := 3000; IF start THEN exec := TRUE; ELSE IF NOT error THEN start := TRUE; END_IF END_IF IF WrAliasAdd.xDone THEN start := FALSE; done := TRUE; error := FALSE; exec := FALSE; seq := 5; END_IF IF WrAliasAdd.xError THEN start := FALSE; done := FALSE; error := TRUE; exec := FALSE; END_IF ; 5: exec := FALSE; T.IN := TRUE; T.PT := T#1S; T(); IF T.Q THEN seq := 10; END_IF ; 10: T.IN := FALSE; T(); //THIS ONE GIVES ME AN ERROR! WrAliasAdd.xAbort := FALSE; WrAliasAdd.usiCom := DWORD_TO_USINT(EtherCAT_1.InstanceNumber); WrAliasAdd.wSlaveAddress := 1006; WrAliasAdd.xAutoIncAdr := FALSE; WrAliasAdd.uiAliasAddress := 25; WrAliasAdd.udiTimeOut := 1000; IF start THEN exec := TRUE; ELSE IF NOT error THEN start := TRUE; END_IF END_IF IF WrAliasAdd.xDone THEN start := FALSE; done := TRUE; error := FALSE; exec := FALSE; seq := 99; END_IF IF WrAliasAdd.xError THEN start := FALSE; done := FALSE; error := TRUE; exec := FALSE; END_IF ; ELSE ; END_CASE WrAliasAdd(xExecute := exec); END_IF The first one slave ethercat works correctly, but the other one gives me an error. Attached the ethercat configuration of the devices. All the devices are set "Optional". So my idea is to enable only the first one (1002) and the fifth one (1006).
Last updated: 2025-10-01

Post by e13740e on Сalling the context menu from the keyboard CODESYS Forge talk (Post)
Hello. I have a question for you, perhaps you have an answer to it. Regarding calling the Context menu from the keyboard in Devices, specifically calling the context menu window from the keyboard via an assigned combination. Goal: to have the ability to navigationally add internal Objects (Methods, Properties) to Function Blocks from the keyboard without using the mouse. The Codesys environment interface does not allow Windows access to this via Shift+F10. Externally (outside the Codesys environment), the hotkey call for the context menu (Shift+F10) from the keyboard works in various environments, but at the same time, in Codesys it does not (it doesn't work). I have already tried various options on my own to achieve this (but unsuccessfully): Tools\Customize\Keyboard\Objects (the set combination does not give the desired result) Tools\Customize\Keyboard\Objects... (the set combination is extremely useful as it provides access to adding objects directly to Devices but does not provide the ability to add an internal object (Method/Property) to a Function Block). Thank you in advance for your help!!! P.S. I have already started trying to implement a script-based solution to call the context menu via AutoHotkey - by relocating the mouse cursor to the area of the navigational selection with a subsequent call of the context menu on it and relocating the mouse cursor back to its initial position. And in order not to "reinvent the wheel," I am writing this request to you!!!
Last updated: 2025-10-05

Post by e13740e on Сalling the context menu from the keyboard CODESYS Forge talk (Post)
Hello. I have a question for you, perhaps you have an answer to it. Regarding calling the Context menu from the keyboard in Devices, specifically calling the context menu window from the keyboard via an assigned combination. Goal: to have the ability to navigationally add internal Objects (Methods, Properties) to Function Blocks from the keyboard without using the mouse. The Codesys environment interface does not allow Windows access to this via Shift+F10. Externally (outside the Codesys environment), the hotkey call for the context menu (Shift+F10) from the keyboard works in various environments, but at the same time, in Codesys it does not (it doesn't work). I have already tried various options on my own to achieve this (but unsuccessfully): Tools\Customize\Keyboard\Objects (the set combination does not give the desired result) Tools\Customize\Keyboard\Objects... (the set combination is extremely useful as it provides access to adding objects directly to Devices but does not provide the ability to add an internal object (Method/Property) to a Function Block). Thank you in advance for your help!!! P.S. I have already started trying to implement a script-based solution to call the context menu via AutoHotkey - by relocating the mouse cursor to the area of the navigational selection with a subsequent call of the context menu on it and relocating the mouse cursor back to its initial position. And in order not to "reinvent the wheel," I am writing this request to you!!!
Last updated: 2025-10-05

Post by jst69 on Python script: Launch Codesys, Execute Script, Exit Codesys CODESYS Forge talk (Post)
Dear all: Question about scripting: I am creating a .NET program that is supposed to Open codesys, open template project, export a bunch of pou, then exit codesys. Launch works, Open project works, Export works, But how do i tell codesys to close itself? I can tell windows to terminate codesys, but i would prefer to do it properly. from __future__ import print_function import sys import System proj = projects.primary # We're interested in POU nodes: POUGuid = Guid("6f9dac99-8de1-4efc-8465-68ac443b7d08") # We collect all POU nodes in that list. pous = [] # From the parent node on, we recursively add POU nodes: def CollectPous(node): if node.type == POUGuid: pous.append(node) else: for child in node.get_children(): CollectPous(child) # Now we collect all the leaf nodes. for node in proj.get_children(): CollectPous(node) # We print everything just to know what's going on. for i in pous: print("found: ", i.type, i.guid, i.get_name()) # And now we export the files. for candidate in pous: # We create a list of objects to export: # The object itsself objects = [candidate] # And sub-objects (POUs can have actions, properties, ...) objects.extend(candidate.get_children()) # And the parent folders. parent = candidate.parent while ((not parent.is_root) and parent.is_folder): objects.append(parent) parent = parent.parent # Create an unique file name: if len(sys.argv) == 1: filename = "parent\\%s.export" % (candidate.get_name()) else: filename = "%s\\%s.export" % (sys.argv[1],candidate.get_name()) # print some user information print("exporting ", len(objects), " objects to: ", filename) # and actually export the project. proj.export_xml(objects, filename) proj.close() print ("script finished.") System.exit(0) // Dont work .NET: public static void Export(string path,string proj) { if (checkSettings()) { var p = new System.Diagnostics.Process(); p.StartInfo.FileName = Properties.Settings.Default.CSVersion +"\\CODESYS\\Common\\CODESYS.exe"; p.StartInfo.Arguments = " --Profile=" + qoute(Properties.Settings.Default.CSProfile) + " --culture=en" + " --project=" + qoute(path + "\\" + proj) + " --runscript=" + Properties.Settings.Default.LastOpenProjectPath + "\\INPUT_DATA\\SCRIPT\\Export.py" + " --scriptargs:" + qoute(path) ; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = false; p.Start(); p.StandardOutput.ReadToEnd(); p.CloseMainWindow(); p.Close(); } }
Last updated: 2024-01-16

Post by thysonfury on OPTO22 Groov Epic PR2 Modbus Comms Dropping out every 2 hours and 4 Mins CODESYS Forge talk (Post)
Hi after some assistance with an error on a Groov PR2 PLC. We have a few different communications set up as shown below: One Modbus TCP Slave Connection - ( Sending / Receiving Data from a PC ) Two Modbus TCP Master Connection - ( Reading Data from a UPS Panel and Reading Data Gas Chromatograph) One Modbus RTU Slave Connection 485 - (Reading Data from a fire and gas panel) One Modbus RTU Master Connection 485 - (Sending Data to a Telemetry Unit) All Licenses have been installed as per OPTO22 suggestions of the order below: Modbus TCP Master Modbus TCP Slave Modbus RTU Master Modbus RTU Slave When I check on License manager the RTU Master license seems to disappear on installing the RTU. (What ever reason I’ve been told this is “normal”). If I use Device License Read It will successfully read all the licenses correctly. Now the issue is every 2 hours and between 4. For what ever reason the communications seems to end and lock up for about 20 seconds. During this time even if I was logged into the PLC it would kick me off and I’d have to re type the password to enter. Most of the devices can handle this however the RTU flags up a communications failure at the SCADA and is raising alarms every 2 hours and 4 mins. We’ve had multiple people go through the code to check for anything obvious. Does anyone have any ideas?
Last updated: 2024-04-15

Post by thysonfury on OPTO22 Groov Epic PR2 Modbus Comms Dropping out every 2 hours and 4 Mins CODESYS Forge talk (Post)
Hi after some assistance with an error on a Groov PR2 PLC. We have a few different communications set up as shown below: One Modbus TCP Slave Connection - ( Sending / Receiving Data from a PC ) Two Modbus TCP Master Connection - ( Reading Data from a UPS Panel and Reading Data Gas Chromatograph) One Modbus RTU Slave Connection 485 - (Reading Data from a fire and gas panel) One Modbus RTU Master Connection 485 - (Sending Data to a Telemetry Unit) All Licenses have been installed as per OPTO22 suggestions of the order below: Modbus TCP Master Modbus TCP Slave Modbus RTU Master Modbus RTU Slave When I check on License manager the RTU Master license seems to disappear on installing the RTU. (What ever reason I’ve been told this is “normal”). If I use Device License Read It will successfully read all the licenses correctly. Now the issue is every 2 hours and between 4. For what ever reason the communications seems to end and lock up for about 20 seconds. During this time even if I was logged into the PLC it would kick me off and I’d have to re type the password to enter. Most of the devices can handle this however the RTU flags up a communications failure at the SCADA and is raising alarms every 2 hours and 4 mins. We’ve had multiple people go through the code to check for anything obvious. Does anyone have any ideas?
Last updated: 2024-04-15

Post by thysonfury on OPTO22 Groov Epic PR2 Modbus Comms Dropping out every 2 hours and 4 Mins CODESYS Forge talk (Post)
Hi after some assistance with an error on a Groov PR2 PLC. We have a few different communications set up as shown below: One Modbus TCP Slave Connection - ( Sending / Receiving Data from a PC ) Two Modbus TCP Master Connection - ( Reading Data from a UPS Panel and Reading Data Gas Chromatograph) One Modbus RTU Slave Connection 485 - (Reading Data from a fire and gas panel) One Modbus RTU Master Connection 485 - (Sending Data to a Telemetry Unit) All Licenses have been installed as per OPTO22 suggestions of the order below: Modbus TCP Master Modbus TCP Slave Modbus RTU Master Modbus RTU Slave When I check on License manager the RTU Master license seems to disappear on installing the RTU. (What ever reason I’ve been told this is “normal”). If I use Device License Read It will successfully read all the licenses correctly. Now the issue is every 2 hours and between 4. For what ever reason the communications seems to end and lock up for about 20 seconds. During this time even if I was logged into the PLC it would kick me off and I’d have to re type the password to enter. Most of the devices can handle this however the RTU flags up a communications failure at the SCADA and is raising alarms every 2 hours and 4 mins. We’ve had multiple people go through the code to check for anything obvious. Does anyone have any ideas?
Last updated: 2024-04-15

Post by wildcard on Modbus Client Request Not Processed CODESYS Forge talk (Post)
Hi, does anyone has a solution for this issue. I've the same problem. I've implemented a very simple client based on the Modbus Examples and connected the soft PLC to a Modbus Simulator. PROGRAM ModbusClient VAR initDone : BOOL := FALSE; errorID : ModbusFB.Error; client : ModbusFB.ClientTCP; timeout : UDINT := 500000; replyTimeout : UDINT := 200000; aUINT : ARRAY [0..8] OF UINT; clientRequestReadHoldingRegisters : ModbusFB.ClientRequestReadHoldingRegisters; clientRequestsCnt : UINT := 0; clientRequestsProcessCnt : UINT := 0; ipAddress : ARRAY[0..3] OF BYTE := [10,54,0,72]; END_VAR IF NOT initDone THEN initDone := TRUE; client(aIPaddr:=ipAddress, udiLogOptions:=ModbusFB.LoggingOptions.All); client(xConnect:=TRUE, ); clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout); clientRequestReadHoldingRegisters.xExecute := TRUE; clientRequestsCnt := 0; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := TRUE); IF clientRequestReadHoldingRegisters.xError THEN clientRequestsCnt := clientRequestsCnt +1 ; errorID := clientRequestReadHoldingRegisters.eErrorID; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := NOT clientRequestReadHoldingRegisters.xExecute); When the system is running I do get the following on the logs: 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= Client.RequestProcessed ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 state=Error 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 change state Error -> None timestamp=63843421226 2024-05-13T10:18:08.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state None -> Init timestamp=63844421420 2024-05-13T10:18:09.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state Init -> Error timestamp=63845421675 But the errorID is jumping between OK and RequestNotProcessed. Any help is very appreciated which gives me a hint what I'm doing wrong. Thanks
Last updated: 2024-05-13

Post by alexgooi on Codesys KNX implementation CODESYS Forge talk (Post)
Dear forum, We are currently doing some research on the Codesys KNX implementation (https://store.codesys.com/en/codesys-knx-sl.html). We almost have it working but we are missing the last part. The setup: We have a Codesys virtual control container running on docker (4.17.0.0), the I/O is running over an Ethernet IP coupler (Weidmüller), and this is running fine. As far as I’m concerned this tells me that the ethernet device is working properly (the container has access to the outside world, including multicast). Underneath this ethernet adapter the KNX module is added (see picture). In the KNX device (Codesys) 2 input variables are added (see picture), and these are exported to ETS (ETS 5). In ETS A Codesys KNX device has been imported and the Codesys export was imported, afterwards the group addresses are attached to the variables (see picture). Afterwards this configuration is downloaded to the Codesys controller (Container) via ETS. ETS asks for the pressing of the programming button, when the virtual programming button is pressed the download starts and finishes without any errors. This tells me that ETS is communicating with the Codesys controller, and that the download process is ok (so far so good). Now the part where we are struggling with, somehow we need to convert the KNX TP to KNX IP. For this we have the following interface: Zenio KIPI SC (https://www.zennio.com/product/kipi-sc/) this is a KNX TP to IP interface. We have the following setup for this device (see picture) (an IP in the same subnet is used). We tried multiple combinations of IP addresses but the TP devices are simply not communicating to the Codesys container. Does anyone has any advice on what to try next. To make the question more explicit how can we link the TP bus to the Codesys device? Kind Regards Alex
Last updated: 2026-01-05

Post by olehmann03 on PFC200 - WAGO 750-8202 - MODBUS RTU CODESYS Forge talk (Post)
Hello, I’m working on implementing Modbus RTU communication with a Carel controller (CPCO). I want to use the front RS485 interface through the DB9 connector. The issue is that I can’t get the communication working correctly. Below are the steps I’ve done so far: Connected pins 3 and 8 from the DB9 connector to the +/- RX/TX terminals on the Carel side. In the PLC shell, I set serialmode to RS485. In WBM under Administration > Serial Interface > Assign owner of serial interface, I set the port to unassigned. In the device tree, I created Modbus_COM with the following settings: COM port: 1 Baud rate: 19200 Parity: None Stop bits: 1 Created a Modbus client on this COM interface in RTU mode. Under the status tab, I can see it is in running state. On the client, I created a Modbus server and set the Modbus address of my unit to 1. Defined a few channels as FC03 to read holding registers according to the Carel register map. I checked the communication with the Carel controller using a USB-to-RS485 converter connected to my PC, and communication works correctly there. In the status tab, I can see that the Modbus server is polling, but there is no response from the controller. I also tried multiple times swapping A/B lines on the Carel side, but it did not help. Do you have any suggestions on what else I should check?
Last updated: 2026-05-22

Post by olehmann03 on PFC200 - WAGO 750-8202 - MODBUS RTU CODESYS Forge talk (Post)
Hello, I’m working on implementing Modbus RTU communication with a Carel controller (CPCO). I want to use the front RS485 interface through the DB9 connector. The issue is that I can’t get the communication working correctly. Below are the steps I’ve done so far: Connected pins 3 and 8 from the DB9 connector to the +/- RX/TX terminals on the Carel side. In the PLC shell, I set serialmode to RS485. In WBM under Administration > Serial Interface > Assign owner of serial interface, I set the port to unassigned. In the device tree, I created Modbus_COM with the following settings: COM port: 1 Baud rate: 19200 Parity: None Stop bits: 1 Created a Modbus client on this COM interface in RTU mode. Under the status tab, I can see it is in running state. On the client, I created a Modbus server and set the Modbus address of my unit to 1. Defined a few channels as FC03 to read holding registers according to the Carel register map. I checked the communication with the Carel controller using a USB-to-RS485 converter connected to my PC, and communication works correctly there. In the status tab, I can see that the Modbus server is polling, but there is no response from the controller. I also tried multiple times swapping A/B lines on the Carel side, but it did not help. Do you have any suggestions on what else I should check?
Last updated: 2026-05-22

Post by jasonhogan on Login problem with FileTransfer on Raspberry Pi 5 CODESYS Forge talk (Post)
That’s a classic CODESYS quirk. As soon as you enable AllowFileTransferServices=1, the web server locks down and demands authentication for everything, including WebVisu sessions. Since you're on a Raspberry Pi / Linux, trying to make the built-in CODESYS web server do both secure file handling and unauthenticated kiosk visu is usually a losing battle. A couple of ways to get around this: The cleaner route (separate the jobs): Turn AllowFileTransferServices back off in the config so your kiosk WebVisu opens freely without any login prompts. Then, handle the file download outside of CODESYS — just run a dead-simple Nginx/lighttpd file server or a tiny Python script on the Pi pointed at your export folder (/var/opt/codesys/...). That way your PLC security stays intact, and the kiosk screen just works. If you really want it through CODESYS: Check your Device -> Users and Groups in the IDE. Make sure the Everyone / Anonymous user group actually has explicit view permissions checked for the Visualization. Sometimes when file services are toggled, anonymous users lose the default visu-read rights and get booted straight to the login dialog. URL / Browser trick for kiosk: If the Pi is just opening a local browser on startup, you can sometimes pass the basic credentials in the browser launch script or use a small reverse proxy on localhost to inject the headers automatically so you don't see the popup. Honestly, running a lightweight HTTP/FTP endpoint on Linux (option 1) is by far the least headache.
Last updated: 2026-08-15

Post by clesio on CAA.File.Write – Unexpected characters when writing a CSV file CODESYS Forge talk (Post)
Hello everyone, I am trying to create a routine in CODESYS to export a report to a CSV file using the CAA.File library. The file is created successfully, but I am getting some unexpected/unknown characters in the generated CSV. The problem seems to be related to the SIZEOF() function. I am using it for the szSize parameter of File.Write, as recommended in the CODESYS documentation. However, when I use SIZEOF(), the CSV contains extra characters and parts of previous strings. I also tried using LEN(), but in my application the file is created empty, even though the string and the calculated length appear to be correct. Here is the relevant part of my code: PROGRAM Relatorio VAR // Bool b_Executa_fb_Cria_Arquivo : BOOL; b_Executa_fb_Fecha_Arquivo : BOOL; b_Escreve_dados : BOOL; b_Erro_fb_Escreve : BOOL; //STR s_Nome_Arquivo : STRING; s_Palavra : STRING; s_Palavra_Anterior : STRING; s_Data_Atualizada_Formatada : STRING; s_Dia : STRING; s_Mes : STRING; s_Ano : STRING; s_Hora_Atualizada_Formatada : STRING; s_Hora : STRING; s_Minu : STRING; s_Segu : STRING; //INT i_modo_fb_Cria_Arquivo : INT; i_ErroID_fb_Escreve : INT; //UINT i_Tamanho_Palavra : UINT; // Blocos de Funcao fb_Cria_Arquivo : FILE.Open; fb_Fecha_Arquivo : FILE.Close; fb_Escreve : FILE.Write; // DATA E HORA sc_DataTime : SysTimeRtc.RTS_SYSTIMEDATE; // STRUCT = sc uidResultRtcGet : UDINT; //stGetDate : SysTimeRtc.RTS_SYSTIMEDATE; uidResultConvertToDate : UDINT; uidResult : RTS_IEC_RESULT; END_VAR VAR_INPUT //BOOL b_SET_Executa_fb_Cria_Arquivo : BOOL; b_RES_Executa_fb_Cria_Arquivo : BOOL; b_Executa_fb_Escrita : BOOL; // INT i_Linhas_Cabecalho : INT; i_Linhas_Cabecalho_Anterior : INT; END_VAR // Para Testes s_Nome_Arquivo := 'relatorio/Teste1M.CSV'; i_modo_fb_Cria_Arquivo := 0; // TRATAMENTO DE DATOS DATA e HORA uidResultRtcGet := SysTimeRtcGet(uidResult); uidResultConvertToDate := SysTimeRtcConvertUtcToDate(dwTimestampUtc := uidResultRtcGet, pDate := sc_DataTime); // FORMATA DATA EM UMA STRING s_Dia := UINT_TO_STRING(sc_DataTime.wDay); s_Mes := UINT_TO_STRING(sc_DataTime.wMonth); s_Ano := UINT_TO_STRING(sc_DataTime.wYear); s_Data_Atualizada_Formatada := CONCAT(s_Dia, CONCAT('/', CONCAT(s_Mes, CONCAT('/', s_Ano)))); // FORMATA HORA EM UMA STRING s_Hora := UINT_TO_STRING(sc_DataTime.wHour); s_Minu := UINT_TO_STRING(sc_DataTime.wMinute); s_Segu := UINT_TO_STRING(sc_DataTime.wSecond); s_Hora_Atualizada_Formatada := CONCAT(s_Hora, CONCAT(':', CONCAT(s_Minu, CONCAT(':', s_Segu)))); // ABRE e CRIA ARQUIVO IF (b_SET_Executa_fb_Cria_Arquivo OR b_Executa_fb_Cria_Arquivo) AND NOT(b_RES_Executa_fb_Cria_Arquivo) THEN b_Executa_fb_Cria_Arquivo := TRUE; ELSE b_Executa_fb_Cria_Arquivo := FALSE; END_IF fb_Cria_Arquivo( xExecute := b_Executa_fb_Cria_Arquivo, sFileName := s_Nome_Arquivo, eFileMode := i_modo_fb_Cria_Arquivo, xExclusive := FALSE, ); //i_Tamanho_Palavra := SizeOf(s_Palavra); // ESCREVE NO ARQUIVO fb_Escreve( xExecute := b_Executa_fb_Escrita, hFile := fb_Cria_arquivo.hFile, szSize := SIZEOF(s_Palavra), pBuffer := ADR(s_palavra) ); // FECHA ARQUIVO fb_Fecha_Arquivo( xExecute := b_Executa_fb_Fecha_Arquivo, hFile := fb_Cria_arquivo.hFile ); IF Criacao_Edicao_Arquivos.b_Escreve_Cabecalho THEN CASE i_Linhas_Cabecalho OF 1 : s_palavra := 'ESTERILIZADOR'; 2: s_palavra := 'MAQ4; $R$L'; 3: s_palavra := CONCAT(CONCAT('CLIENTE: ',GVL.sReceitaAtual), '$R$L'); 4: s_palavra := CONCAT(CONCAT('NUMERO LOTE: ',DINT_TO_STRING(GVL.Lote)), '$R$L'); 5: s_palavra := CONCAT(CONCAT('OPERADOR: ', DINT_TO_STRING(GVL.Operador)), '$R$L'); 6: s_palavra := CONCAT(CONCAT('DATA: ', s_Data_Atualizada_Formatada), '$R$L'); 7: s_palavra := CONCAT(CONCAT('HORA: ', s_Hora_Atualizada_Formatada), '$R$L'); 8: s_palavra := '$R$L'; 9: s_palavra := 'PARAMETROS AJUSTADOS $R$L'; 10: s_palavra := CONCAT('TEMPO PRE COND.: ', CONCAT(INT_TO_STRING(GVL.rc_T_PreCondicionamento), ' min $R$L')); 11: s_palavra := CONCAT('PULSOS INERTIZACAO 1: ', CONCAT(INT_TO_STRING(GVL.rc_PulsosInertizacao_1), ' PULSOS $R$L')); 12: s_palavra := CONCAT('PULSOS INERTIZACAO 2: ', CONCAT(INT_TO_STRING(GVL.rc_PulsosInertizacao_2), ' PULSOS $R$L')); 13: s_palavra := CONCAT('PULSOS AERACAO: ', CONCAT(INT_TO_STRING(GVL.rc_PulsosAeracao_2), ' PULSOS $R$L')); 14: s_palavra := CONCAT('PRESSAO DE VACUO 1: ', CONCAT(REAL_TO_STRING(GVL.rc_PV1_max), ' bar $R$L')); 15: s_palavra := CONCAT('PRESSAO DE VACUO 2: ', CONCAT(REAL_TO_STRING(GVL.rc_PV2), ' bar $R$L')); 16: s_palavra := CONCAT('PRESSAO INERTIZACAO 1: ', CONCAT(REAL_TO_STRING(GVL.rc_PN1), ' bar $R$L')); 17: s_palavra := CONCAT('PRESSAO INERTIZACAO 2: ', CONCAT(REAL_TO_STRING(GVL.rc_PN2), ' bar $R$L')); 18: s_palavra := CONCAT('PRESSAO AERACAO: ', CONCAT(REAL_TO_STRING(GVL.rc_PAR), ' bar $R$L')); 19: s_palavra := CONCAT('PRESSAO ETO: ', CONCAT(REAL_TO_STRING(GVL.rc_PressaoETO), ' bar $R$L')); 20: s_palavra := CONCAT('PRESSAO Compl.: ', CONCAT(REAL_TO_STRING(GVL.rc_PressaoETO_2), ' bar $R$L')); 21: s_palavra := CONCAT('MASSA ETO: ', CONCAT(REAL_TO_STRING(GVL.rc_QuantidadeETO), ' Kg $R$L')); 22: s_palavra := CONCAT('TEMPO PRE COND. Vacuo/Vapor: ', CONCAT(INT_TO_STRING(GVL.rc_T_Vapor_1), ' min $R$L')); 23: s_palavra := CONCAT('SET-POINT: ', CONCAT(REAL_TO_STRING(GVL.ihm_SPTemperatura), ' °C $R$L')); 24: s_palavra := CONCAT('TEMPO ESTERILIZACAO: ', CONCAT(INT_TO_STRING(GVL.rc_TempoEsterilizacao), ' min $R$L')); 25: s_palavra := CONCAT('TEMPO PARADA: ', CONCAT(INT_TO_STRING(GVL.rc_T_PressaoParada), ' min $R$L')); 26: s_palavra := CONCAT('UMIDADE: ', CONCAT(REAL_TO_STRING(GVL.rc_UmidadeRelativa), ' % $R$L')); 27: s_palavra := '$R$L'; END_CASE END_IF Note: The code I am attaching does not include the execution/sequence management of the function blocks. I have omitted this part to keep the example focused on the CSV writing routine. The function blocks are triggered and managed by a separate state machine. I am not sure what the correct approach is in this case, especially since the official documentation recommends using SIZEOF() for szSize. I will attach my code and a screenshot of the generated CSV showing the issue. Has anyone experienced something similar or could suggest the correct way to write a changing STRING to a CSV file using CAA.File.Write?
Last updated: 2026-09-08

<< < 1 .. 140 141 142 143 144 .. 148 > >> (Page 142 of 148)

Showing results of 3700

Sort by relevance or date