Post by smartcoco on Opaque NodeId in the OPC UA server
CODESYS Forge
talk
(Post)
This seems to be because when creating 'OPC UA' with 'Communication Manager', the 'IdentifierType' of 'NodeId' cannot be configured as' String 'type. This issue is not an isolated case. For this issue, CODESYS seems to have not provided guidance to users on how to proceed. We can provide feedback on this issue in the 'My Question' section of the 'CODESYS Store' to make CODESYS take it seriously.
Last updated: 2025-01-10
Post by andre-luis on Device diagnosis ( EtherCAT IO card )
CODESYS Forge
talk
(Post)
Hi, In our project, it is not rare to have I/O cards issues. I wanted to have a way to check their statuses ( Eg. INIT, OP, PREOP, etc.. ) I was trying to use the GetDeviceDiagnosisInfo method from the IoConfig_Globals, but there is no info available on the Web with a simple example; does someone have a link to some tutorial or anything else ? Kind Regards, Andre.
Last updated: 2025-02-06
Post by dogulas on Removing a symbol from the IEC Symbols Editor grid
CODESYS Forge
talk
(Post)
Right now when I make a change to one of the tags in my code, I have to completely remove the IEC Symbol Publishing object from the tree view and re-add it. Then I have to completely re-add every symbol to the grid view by dragging them over. This can be a lot. Surely, this is not the intended behavior. Can anyone tell me how this is supposed to work?
Last updated: 2025-02-11
Post by alex2 on How to uninstall SVN module
CODESYS Forge
talk
(Post)
Hello, At work, I use Codesys V3.5 SP10. I wanted to run some tests with the SVN module, which I kept installed (without actually using it in the end). However, when I tried to launch Codesys today, I was informed that a license was missing. I suspect that this is due to the SVN module. Could you tell me how to uninstall it without launching Codesys? (as i cant proprerly start Codesys without the license) Thank you in advance.
Last updated: 2025-02-25
Post by trusty-squire on How can you get the active frame index from a frame
CODESYS Forge
talk
(Post)
If you are switching a frame based on the "Switch Frame Variable", then just use a variable that is accessible to your program to set your active frame. If you're trying to see which is the active visualization, then use the "CurrentVisu" variable. Note you'll need to enable this by checking it on in the Visualization Manager settings. If it's neither of those, you'll need to be more clear on how you're project is set up.
Last updated: 2025-03-11
Post by trusty-squire on AXIS Rollover
CODESYS Forge
talk
(Post)
In that case, the best thing to do might be to track the offset in a separate variable of your logic, then when you provide target positions, make your target position use the tracked offset as below: ActualTargetPosition := (TargetPosition + MyOffset) MOD 360; Although, upon further reflection, you'll still have the same cycle time issues. You might be able to break your code into multiple tasks to reduce the cycle time, or use an Event task to capture the offset position?
Last updated: 2025-03-12
Post by johnbomb on Ignore Dependencies When Loading Package?
CODESYS Forge
talk
(Post)
I'm trying to load a .package into Codesys 3.5.21, but the package is intended to only work with Codesys 3.5.18.0 and is configured with dependencies on the specific versions of other packages included with 3.5.18.0, and 21 has newer versions so the package will not install. I would like to install the package anyway to try and get things working on a newer Codesys version, since for some reason the installer for .18 errors out and doesn't fully work in my environment, but .21 seems to work fine.
Last updated: 2025-04-01
Post by arwie on Use MC_Home without enabling the drive for homing method 35
CODESYS Forge
talk
(Post)
Is it possible to use MC_Home without enabling the drive (MC_Power)? On the drive the homing method 35 (Homing on current position) has to be executed. The drive has to stay disabled due to safety. This is explicitly allowed by the drive. Unfortunately MC_Home reports the error SMC_REGULATOR_OR_START_NOT_SET when executed. Are there other options to start homing, if not with MC_Home?
Last updated: 2025-06-25
Post by imdatatas on The default ramp type selection in SoftMotion V4.18.0.0 is Quadratic
CODESYS Forge
talk
(Post)
Dear @gseidel, @tk096, I noticed that with SoftMotion V4.18.0.0, if a new axis is added to the project, the ramp type selection defaults to "Quadratic". In all previous versions, the velocity ramp type selection was "Trapezoidal". This causes some unexpected issues in projects with SoftMotion version V4.18.0.0 for newly created or newly added axes to existing projects. Is it possible to reconsider this situation in the next update and set the velocity ramp type to "Trapezoid" by default again? Best Regards, Imdat
Last updated: 2025-07-22
Post by camjam on BOOL variable in OPC UA and modbus simultaneously
CODESYS Forge
talk
(Post)
I have come across this. The only way i could get it to work would be to define a word that is also the same address as the Bools. eg %MX600.0 through to %MX600.15 would be individually defined in the variables and them have another variable word defined at %MW300. You still need to break out the word in what ever program you are using to read/write the OPCUA tags.
Last updated: 2025-08-18
Post by apurv on Cannot pass array of constant size to a function as a reference
CODESYS Forge
talk
(Post)
I have a Array of constant size defined like this Var Constant MAX_SIZE :UINT := 10; End_var VAR array : ARRAY[0..MAX_SIZE] OF INT; END_VAR Now I want to pass this array to a function by reference, Function fun : INT VAR_IN_OUT CONSTANT MAX_SIZE : UINT; END_VAR VAR_INPUT array : REFERENCE TO ARRAY[0..MAX_SIZE] OF INT; END_VAR but when I run this it gives strange Errors Error : Cannot Convert type 'ARRAY [0..MAX_SIZE] OF INT' to type 'ARRAY[0..MAX_SIZE] OF INT'
Last updated: 2024-01-07
Post by pbitalc on Customize Users and groups Visualization in UserMgmtConfig
CODESYS Forge
talk
(Post)
Hi, I have the user situation represented in the image and I would like CustomerAdmin to only be able to modify/add/delete users relating to the CustomerUser group and nothing else. How can I do? It would be enough not to display the users belonging to the SuperAdmin, Technician1 and Technician2 groups and also the related groups in the UserMgmtConfig dialog box. Can anyone help me? I use Codesys 3.5.16 Thanks!
Last updated: 2024-02-29
Post by niallel on How to change bHiresMode
CODESYS Forge
talk
(Post)
Hi, I'm trying to get Scaling working on my axis. An increment produces 36.6mm of movement, so I want to put the units in application as 36.6. However the docs say that I need to change bHiresMode as it doesn't show me the option for Precision in the User Interface. I'm thinking that I need to change the precision so I can enter decimal places. How can I do this, or is my thinking wrong? Thanks,
Last updated: 2024-03-11
Post by andy-yemm on Assertion Failed
CODESYS Forge
talk
(Post)
I had similar assertion failed error messages today. I am fairly new to Codesys. I tried using SFC for the first time, I usually use ST. Anyway I had errors in some of my transitions. I copied and pasted transition code and forgot to change the target of the code. I started getting lots of the assertion errors but now I have sorted out the problems and it compiles OK the assertion error messages seem to have stopped. There do not seem to be any other responses to your post, did you resolve your problem?
Last updated: 2024-03-19
Post by marcolim on RPC failed 0x16c9a085
CODESYS Forge
talk
(Post)
Hello Matteo, I think the problem is about configuration of firewall (windows firewall usually). You can disable temporary the firewall to check if the communication works. Eventually you can: Go to the control panel -> Windows Defender Firewall -> Allow an app or feature Enable the options to change the settings. Scroll down in the application list to CODESYS and CODESYS ControlService. If you donβt see this application add it to the list. Make sure that all the checkboxes are checked (Domain, Private and public).
Last updated: 2024-04-01
Post by micik on CAA File, how to check whether file exists or not
CODESYS Forge
talk
(Post)
Hello, what would be the most efficient way to check whether the file exists or not. I don't want to use file.Open function, it seems like rather inefficiet operaton. I considered GetAttribute function, but this function doesn't accept filename (with path) as an input. Basically I need to check first time when program is loaded to the runtime i.e. when application is started for the first time, whether a file exists on the specific location or not.
Last updated: 2024-05-16
Post by svdpoint on Raspberry Pi Zero 2W with external Ethernet adapter
CODESYS Forge
talk
(Post)
Hello all, Somebody try to run the CodeSys at RPi Zero 2W with external ETHx device? I need to more information how youi do it, what need to it, ...etc. It is interesting to use it together with EtherCat-interface. For example I had try to connect W5500 over SPI. The eth0 is present, but does not found any EtherCat IO-device. BR
Last updated: 2024-05-25
Post by kris-samoy on Get Alarm status in Codesys
CODESYS Forge
talk
(Post)
I am rather new to Codesys and I'm trying to figure out how to get the status of an alarm. This to interlock the start of a device until the alarm has been acknowledged... I am not sure if IAlarm.GetState (METH) can be used for this purpose. If yes then could someone please briefly explain how to use this? https://content.helpme-codesys.com/en/libs/AlarmManager/4.1.0.0/Interfaces/pou-IAlarm/GetState.html Thx & grtz, Kris
Last updated: 2024-06-03
Post by mozed on Bug Device login
CODESYS Forge
talk
(Post)
Good morning, The problem I encounter is very disturbing, when I try to connect to my project, it asks me to put in my username and password, which I do. However, I cannot connect and it restarts. the window to rewrite my identifiers. However it is the correct identifier and password I do not understand why. When I try to put false identifiers there strangely it tells me that these are not valid identifiers. There is something what can I do? Sincerely
Last updated: 2024-06-11
Post by durallymax on VAR_INFO from inside of a FB to get info on the instance.
CODESYS Forge
talk
(Post)
The help link appears to be broken. When I implemented something similar I had to add {attribute 'reflection} above the declaration of the FB with {attribute 'instance-path'} above the string VAR that would contain the path. Then wrote a function to trim off however much I wanted removed by searching for periods, then formatting it with spaces at the periods and removing brackets on arrays while also breaking up the PascalCase to present it a bit nicer for the end-users.
Last updated: 2025-12-12
Post by sushela on Temu coupon code "$100 off" β [acq615756] Extra 30% Discount
CODESYS Forge
talk
(Post)
Shopping online has become more exciting with the emergence of Temu, offering a wide range of products at competitive prices. With our Temu coupon code $100 off, you can save even more on your purchases from this popular e-commerce platform. Get ready to explore amazing deals and discounts that will make your shopping experience truly rewarding. Temu coupon code "$100 off" β [acq615756] Extra 30% Discount Temu is currently offering an enticing $100 off coupon code for new users, specifically [acq615756], valid for September 2024. This promotion requires a minimum purchase of $250 and is aimed at enhancing the shopping experience for first-time customers. Additionally, there's another code "acq615756", that provides a $100 coupon bundle applicable multiple times, along with an extra 30% discount on select items for both new and existing users. To redeem these offers, users should create an account, shop for eligible products, and apply the respective codes at checkout to enjoy substantial savings on their purchases. The [[acq615756] or [acq615756]] coupon code is designed to provide maximum benefits for shoppers in the USA, Canada, and European nations. This exclusive code unlocks a world of savings, allowing you to enjoy substantial discounts on your favourite items while shopping on Temu. Don't miss out on this incredible opportunity to save big with our Temu coupon $100 off offer. Whether you're a new or existing customer, the Temu 100 off coupon code is your ticket to unbeatable savings across a wide range of products available on the platform. What Is The Coupon Code For Temu $100 Off? Both new and existing customers can enjoy fantastic benefits by using our $100 coupon code on the Temu app and website. The Temu coupon $100 off offer is designed to provide substantial savings on your purchases, making it easier than ever to shop for your favourite items. With the $100 off Temu coupon, you'll be able to stretch your budget further and get more value for your money. Here are the key benefits of using our [[acq615756] or [acq615756]] coupon code: [[acq615756] or [acq615756]]: Flat $100 off on your purchase [[acq615756] or [acq615756]]: $100 coupon pack for multiple uses [[acq615756] or [acq615756]]: $100 flat discount for new customers [[acq615756] or [acq615756]]: Extra $100 promo code for existing customers [[acq615756] or [acq615756]]: $100 coupon for USA/Canada users Temu Coupon Code $100 Off For New Users In 2024 New users can unlock the highest benefits by using our coupon code on the Temu app. The Temu coupon $100 off offer is specifically tailored to welcome first-time shoppers with incredible savings. Don't miss out on this Temu coupon code $100 off opportunity to make your first Temu experience even more rewarding. Here are the exclusive benefits for new users with our [[acq615756] or [acq615756]] coupon code: [[acq615756] or [acq615756]]: Flat $100 discount for new users [[acq615756] or [acq615756]]: $100 coupon bundle for new customers [[acq615756] or [acq615756]]: Up to $100 coupon bundle for multiple uses [[acq615756] or [acq615756]]: Free shipping to 68 countries [[acq615756] or [acq615756]]: Extra 30% off on any purchase for first-time users How To Redeem The Temu Coupon $100 Off For New Customers? Redeeming your Temu $100 coupon is quick and easy. Follow this step-by-step guide to use the Temu $100 off coupon code for new users and start saving: Download the Temu app or visit the Temu website Create a new account or sign in if you already have one Browse through the wide selection of products and add items to your cart Proceed to checkout when you're ready to make a purchase Look for the "Promo Code" or "Coupon Code" field Enter the code [[acq615756] or [acq615756]] in the designated field Click "Apply" to see the discount reflected in your total Complete your purchase and enjoy your savings! Temu Coupon $100 Off For Existing Customers Existing users can also benefit from our coupon code on the Temu app. We value loyal customers, which is why we offer Temu $100 coupon codes for existing users to ensure you continue to enjoy great savings. Take advantage of the Temu coupon $100 off for existing customers free shipping offer to maximise your shopping experience. Here are the exclusive benefits for existing users with our [[acq615756] or [acq615756]] coupon code: [[acq615756] or [acq615756]]: $100 extra discount for existing Temu users [[acq615756] or [acq615756]]: $100 coupon bundle for multiple purchases [[acq615756] or [acq615756]]: Free gift with express shipping all over the USA/Canada [[acq615756] or [acq615756]]: Extra 30% off on top of the existing discount [[acq615756] or [acq615756]]: Free shipping to 68 countries How To Use The Temu Coupon Code $100 Off For Existing Customers? Using the Temu coupon code $100 off as an existing customer is simple. Follow these steps to apply the Temu coupon $100 off code to your purchase: Open the Temu app or visit the Temu website Log in to your existing account Add your desired items to the shopping cart Proceed to checkout when you're ready Look for the "Promo Code" or "Coupon Code" field Enter the code [[acq615756] or [acq615756]] in the provided space Click "Apply" to see the discount applied to your total Complete your purchase and enjoy your savings! Latest Temu Coupon $100 Off First Order Customers can enjoy the highest benefits by using our coupon code during their first order. The Temu coupon code $100 off first order is designed to give you an incredible start to your Temu shopping experience. Whether you're using the Temu coupon code first order or taking advantage of the Temu coupon code $100 off first time user offer, you're in for some fantastic savings. Here are the exclusive benefits for your first order with our [[acq615756] or [acq615756]] coupon code: [[acq615756] or [acq615756]]: Flat $100 discount for the first order [[acq615756] or [acq615756]]: $100 Temu coupon code first order [[acq615756] or [acq615756]]: Up to $100 coupon for multiple uses [[acq615756] or [acq615756]]: Free shipping to 68 countries [[acq615756] or [acq615756]]: Extra 30% off on any purchase for the first order How To Find The Temu Coupon Code $100 Off? Finding the latest Temu coupon $100 off deals is easier than you might think. While some shoppers search for Temu coupon $100 off Reddit threads, there are more reliable ways to access verified and tested coupons. Here's how you can stay updated on the best Temu deals: Sign up for the Temu newsletter to receive the latest coupons and promotions directly in your inbox. Follow Temu's official social media pages on platforms like Facebook, Instagram, and Twitter for exclusive offers and flash sales. Visit trusted coupon websites that regularly update their Temu discount codes and verify their validity. Check the Temu app or website frequently for ongoing promotions and seasonal sales. Join Temu's loyalty program to earn points and access member-exclusive discounts. By using these methods, you'll always have access to the most current and valuable Temu coupon codes, ensuring you never miss out on great savings. Is Temu $100 Off Coupon Legit? Yes, the Temu $100 Off Coupon Legit offer is absolutely genuine. Our Temu coupon code [[acq615756] or [acq615756]] is 100% legitimate and safe to use. You can confidently apply this Temu 100 off coupon legit code to get $100 off on your first order and subsequent purchases. We regularly test and verify our coupon code to ensure its validity and effectiveness. The [[acq615756] or [acq615756]] code is not only legitimate but also offers consistent savings for Temu shoppers worldwide. It's important to note that our Temu coupon code is valid globally and doesn't have an expiration date, allowing you to use it whenever you're ready to make a purchase. H2: How Does Temu $100 Off Coupon Work? The Temu coupon code $100 off first-time user offer works by providing a direct discount on your purchase total. When you apply the Temu coupon codes 100 off at checkout, the system automatically deducts $100 from your order amount, instantly reducing your overall spending. This coupon is designed to encourage new customers to try Temu's vast product range while offering significant savings. The discount is applied before taxes and shipping, maximising your savings on the actual product costs. It's a straightforward process that allows you to enjoy premium products at a fraction of their original price, making your first Temu experience even more rewarding. How To Earn Temu $100 Coupons As A New Customer? Earning a Temu coupon code $100 off as a new customer is simple and rewarding. The easiest way to get your hands on a 100 off Temu coupon code is by signing up for a new account on the Temu platform. Upon registration, Temu often provides new users with welcome bonuses, which can include substantial discount coupons like the $100 off offer. Additionally, you can earn more coupons by referring friends, participating in Temu's promotional events, or following their social media accounts for exclusive deals. Keep an eye out for seasonal promotions and flash sales, which often feature high-value coupons for new customers. H2: What Are The Advantages Of Using The Temu Coupon $100 Off? Using the Temu coupon code 100 off comes with numerous advantages that enhance your shopping experience. Here are the key benefits of applying the Temu coupon code $100 off to your purchases: $100 discount on your first order, significantly reducing your initial spend $100 coupon bundle for multiple uses, allowing you to save across several purchases 70% discount on popular items, making premium products more accessible Extra 30% off for existing Temu customers, rewarding your loyalty Up to 90% off on selected items during special promotions Free gift for new users, adding extra value to your purchase Free delivery to 68 countries, saving you money on shipping costs Temu $100 Discount Code And Free Gift For New And Existing Customers The Temu $100 off coupon code offers multiple benefits for both new and existing customers. By using our $100 off Temu coupon code, you'll unlock a world of savings and extras that make your shopping experience even more rewarding. Here are the key benefits you can enjoy with our [[acq615756] or [acq615756]] coupon code: [[acq615756] or [acq615756]]: $100 discount for the first order [[acq615756] or [acq615756]]: Extra 30% off on any item [[acq615756] or [acq615756]]: Free gift for new Temu users [[acq615756] or [acq615756]]: Up to 70% discount on any item on the Temu app [[acq615756] or [acq615756]]: Free gift with free shipping in 68 countries including the USA and UK Pros And Cons Of Using The Temu Coupon Code $100 Off This Month Before you use the Temu coupon $100 off code, it's important to consider both the advantages and potential limitations. Here are the pros and cons of using the Temu 100 off coupon this month: Pros: Significant savings of $100 on your purchase Applicable to a wide range of products on Temu Can be combined with other ongoing promotions for maximum savings No minimum purchase requirement Valid for both new and existing customers Cons: May not be applicable to certain limited edition or already discounted items The coupon might have a usage limit per account Terms And Conditions Of Using The Temu Coupon $100 Off In 2024 When using the Temu coupon code $100 off free shipping offer, it's essential to be aware of the terms and conditions. Here are the key points to remember about our latest Temu coupon code $100 off: Our coupon code [[acq615756] or [acq615756]] has no expiration date, allowing you to use it at your convenience The code is valid for both new and existing users in 68 countries worldwide There are no minimum purchase requirements for using our Temu coupon code [[acq615756] or [acq615756]] The discount is applied to the total purchase amount before taxes and shipping The coupon cannot be combined with certain promotional items or flash sale products Temu reserves the right to modify or cancel the promotion at any time The coupon is for personal use only and cannot be transferred or sold Final Note: Use The Latest Temu Coupon Code $100 Off Don't miss out on the incredible savings offered by our Temu coupon code $100 off. This exclusive discount is your gateway to a world of affordable, high-quality products available on the Temu platform. Remember to apply the Temu coupon $100 off during checkout to maximise your savings. Happy shopping, and enjoy your Temu experience! FAQs Of Temu $100 Off Coupon Q: How often can I use the Temu $100 off coupon? Ans: The usage frequency of the Temu $100 off coupon may vary. Generally, it's designed for one-time use per account, especially for new customers. However, some promotions may allow multiple uses or offer a coupon bundle. Always check the specific terms of the coupon you're using. Q: Can I combine the $100 off coupon with other Temu promotions? Ans: In most cases, yes. The Temu $100 off coupon can often be combined with other ongoing promotions or discounts on the platform. However, some exclusions may apply, particularly for limited-time offers or already heavily discounted items. Always review the terms and conditions of each promotion. Q: Is there a minimum purchase amount required to use the $100 off coupon? Ans: Typically, there is no minimum purchase amount required to use the Temu $100 off coupon. However, to maximise your savings, it's best to use the coupon on orders exceeding $100. Always check the specific coupon terms as requirements may vary for different promotions. Q: How do I know if my Temu $100 off coupon has been applied successfully? Ans: After entering the coupon code at checkout, you should see an immediate reduction in your total order amount. The discount will be clearly displayed in your order summary. If you don't see the discount applied, try re-entering the code or contact Temu customer support for assistance. Q: What should I do if my Temu $100 off coupon isn't working? Ans: If your coupon isn't working, first ensure you've entered the code correctly. Check if the coupon has expired or if you've already used it. If issues persist, clear your browser cache or try using a different device. For further assistance, contact Temu's customer support team who can help resolve any coupon-related problems.
Last updated: 2024-10-26
Post by paulg on RasPi CAA Serial example - unexpected behavior during debug
CODESYS Forge
talk
(Post)
I've trimmed down the CAA Serial Codesys example to only listen on one port but, when stepping through the Case structure in debug mode, it jumps out of the structure during a specific point in every scan (I'll point it out below after describing the setup and listing the code). I'm using a Pi 4 Model B, and I have an Arduino Nano Every plugged in via USB which is streaming the following serial message at 1 Hz: Time since opening connection: 1 s Time since opening connection: 2 s ...and so on. The Pi shows the Nano at /dev/ttyACM0 so I edited CODESYSControl_User.cfg to read: Linux.Devicefile=/dev/ttyACM The code in my PLC_PRG is (ignore some of the comments, I hadn't deleted them out from the original example): PROGRAM PLC_PRG VAR xStartTest : BOOL:= TRUE; iState : INT; xTestDone : BOOL;(* True, when the test was done succesfully *) (* Settings to communicate with the COM Port *) aCom1Params : ARRAY [1..7] OF COM.PARAMETER; como1 : COM.Open; comc1 : COM.Close; comw1 : COM.Write; comr1 : COM.Read; //sWrite : STRING := 'Test String!'; sRead : STRING(25); szRead : CAA.SIZE; xCom1OpenError : BOOL; xCom1CloseError : BOOL; xCom1WriteError : BOOL; xCom1ReadError : BOOL; END_VAR //This example shows the communication of two COM Ports with each other. //The first one writes a string of characters, which is read by the second one. //After successful execution, the two COM Ports are closed and the test is done. IF xStartTest THEN CASE iState OF 0: //The parameters are set for the COM Port aCom1Params[1].udiParameterId := COM.CAA_Parameter_Constants.udiPort; aCom1Params[1].udiValue := 1; // the correct Port should be adapted aCom1Params[2].udiParameterId := COM.CAA_Parameter_Constants.udiBaudrate; aCom1Params[2].udiValue := 115200; aCom1Params[3].udiParameterId := COM.CAA_Parameter_Constants.udiParity; aCom1Params[3].udiValue := INT_TO_UDINT(COM.PARITY.NONE); aCom1Params[4].udiParameterId := COM.CAA_Parameter_Constants.udiStopBits; aCom1Params[4].udiValue := INT_TO_UDINT(COM.STOPBIT.ONESTOPBIT); aCom1Params[5].udiParameterId := COM.CAA_Parameter_Constants.udiTimeout; aCom1Params[5].udiValue := 0; aCom1Params[6].udiParameterId := COM.CAA_Parameter_Constants.udiByteSize; aCom1Params[6].udiValue := 8; aCom1Params[7].udiParameterId := COM.CAA_Parameter_Constants.udiBinary; aCom1Params[7].udiValue := 0; //The first Port is opened with the given parameters como1(xExecute := TRUE, usiListLength:=SIZEOF(aCom1Params)/SIZEOF(COM.PARAMETER),pParameterList:= ADR(aCom1Params)); IF como1.xError THEN xCom1OpenError := TRUE; iState := 1000; END_IF //After a successful opening, the next state is reached IF como1.xDone THEN iState := 15; END_IF 15: // the reading process is started comr1(xExecute := TRUE,hCom:= como1.hCom, pBuffer:= ADR(sRead), szBuffer:= SIZEOF(sRead)); IF comr1.xError THEN xCom1ReadError := TRUE; END_IF //After completion the size of the written bytes are saved IF comr1.xDone OR comr1.xError THEN szRead := comr1.szSize; iState := 20; END_IF 20: // If everything was successful the ports are closed and the handles are released comc1(xExecute := TRUE,hCom:= como1.hCom); IF comc1.xError THEN xCom1CloseError := TRUE; END_IF IF comc1.xDone OR comc1.xError THEN iState := 25; END_IF 25: // The first port is closed and the used handle released xTestDone := TRUE; xStartTest := FALSE; iState := 0; como1(xExecute := FALSE); comw1(xExecute := FALSE); comc1(xExecute := FALSE); ELSE iState := 0; END_CASE END_IF I realize as I write this that the .udiPort should be 0 and not 1, but that shouldn't be causing the issue I'm seeing. I'm forcing xStartTest:=TRUE every scan so that I can step into each line and observe what's happening. What I see is that the port parameters are set and the port is opened with no errors, but the code jumps out of the case structure to the last line every time it reaches (and I step into) the iState:=15 line (at the end of the iState:=0 block). So every scan cycle it goes through the block for iState=0 and jumps out at the same spot. I'm a little new to PLC programming so I may be misunderstanding the flow, but shouldn't this case structure keep moving down in the same scan? If it only handles one case per scan, why doesn't the value of iState persist? Thanks! Update: I restarted the Codesys control today and I was then able to see an error for como1.eError of "WRONG_PARAMETER". I tried doing some digging and another post made me think I should add another line to CODESYSControl_User.cfg, so I now have: [SysCom] Linux.Devicefile=/dev/ttyACM portnum := COM.SysCom.SYS_COMPORT1 So now when I set .udiPort to 1, I get "NO_ERROR" but I also don't read anything from the port (i.e. szRead = 0 always). If I try setting the port to 0 (which I'm confused about, because I added a COMPORT1 line but the device shows on the Pi as ACM0), I get the "WRONG_PARAMETER" error again. Is there an easier way to troubleshoot the Pi and view what ports the Codesys runtime is actually able to see while the Pi is running?
Last updated: 2024-06-06
Post by garyl on Comments in arrays and assigning RST coil's to 600 outputs
CODESYS Forge
talk
(Post)
Hello all, im working on a project that requires me to convert an old automation direct DirectSoft PLC d2-250-1. One of the problems im encountering is that all of the comments are attached to members of the different addresses. When i convert the addresses (1777 "C" registers, 777 X registers, and 20,0000 V registers) im running into difficulties keeping the inputs/outputs correct since they are missing documentation. Is there a good way to retain the comments of the indexes in the array? Secondly, initially i was declaring the "C" and "V" addresses individually and this worked to retain the comments as to which register did what, however i ran into a problem when one rung reset (or set to 0) approximately 600 C Addresses. Since each tag is separately declared this proved to be nearly impossible without a literal wall of code that attempted to crash the program. So i converted all of the registers (C,X,Y,V) into separate structs, declared them as arrays and pointed all of the original call outs in the program to the newly defined structs. However i have now lost comments and the program is very hard to follow. Thanks for any help with this issue.
Last updated: 2023-08-31
Post by canplum on Codesys 3.5.21 fails to copy file to USB
CODESYS Forge
talk
(Post)
Although I have set in /etc/codesyscontrol/CODESYSControl_User.cfg the [SysFile] PlaceholderFilePath.1=/media/pi, $usb$ PlaceholderFilePath.1.View=1 PlaceholderFilePath.1.Volatile=1 I am not able to copy a file to this directory defined by the placeholder. Neither SysProcess.SysProcessExecuteCommand2 nor SysFileCopy nor FileCopy is working. If I try to copy the same file to /home/pi all is working fine. I also can create and open a different file by using SysFileOpen. I don't understand why the system allows to open (create) and write files into that directory but doesn't allow to copy into it. Obviously there is a rights problem with the USB drive. I have already set the permissions to drwxr-xr-x 2 and the user to pi but without any success. With 3.5.16 I never had such an issue. Is there anybody with some hints how to solve that problem? Cheers, canplum
Last updated: 2025-05-23
Post by yannickasselin on Connect to remote PLC via local pc and teamviewer
CODESYS Forge
talk
(Post)
Yes it is possible. I did it a lot of times using TeamViewer VPN. Unfortunately, TeamViewer VPN only works on Windows. If the remote PLC is a Codesys runtime running on Windows, you should be able to login directly using TeamViewer VPN if it is installed on the PC/PLC. If it is not Windows based, you can still do it but you need to have a Windows based PC acting as a gateway in the middle. In this case you need to enable IP Forwarding on the Windows remote PC (the gateway) and you need to setup the gateway IP address on the PLC to be the address of the Windows PC. Then you need to add a route on your local PC to point to the gateway PC for Codesys communication. I know it may not be detailed enough but I did not want to make a whole tutorial on how to do it. Bottom line, it is possible. I do it all the time.
Last updated: 2024-02-02
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND or OR.