BE

MrPLC Member
  • Content count

    22
  • Joined

  • Last visited

Everything posted by BE

  1. Sysmac Studio Improvement Request

    Not sure if this has been mentioned before, but it would be nice if we could assign a structure member to I/O in the I/O map. Currently it only allows "normal" variables, periods/fullstops are not allowed. The project I am working on has multiple structured datatypes for various equipment, and these structures include Boolean members that indicate the status of reed switches and other sensors (on physical inputs), and trigger run/start signals through physical outputs etc. So I basically have had to create individual variables for all my physical I/O, and then write the values from these variables to structure members (and vice versa for outputs) in an attempt to keep all the data for specific equipment together in the structure. Not hard to do using a few custom function blocks, but it just seems a little counterintuitive to create structures that keep things together and organised, and then have to create individual variables for physical I/O. I assume there is probably a reason Omron hasn't done this, but it would be nice if we could 
  2. I don't have any issues when on my workstation in the office. I do notice a difference when I am programming onsite with my laptop. Even then though, the programming itself is fine, it's only things like build/rebuilds, simulations etc that seem to take a bit longer to perform (or it might just be my perception ). That said, my workstation and laptop are higher end machines by most people's computing standards. Laptop is a lower end gaming laptop (can't recall specs off the top of my head, but it's one of the Asus Tuf Gaming series), and my workstation is designed for the 3D CAD work I typically do when I am not programming (Xeon CPU, 32GB RAM, PCIe SSD).
  3. Not sure if OP will come back here or not as the post is nearly 2 months old, but is there any reason you need to use a PLC? A lot of my work is with clients who need to control pumping stations in the water and sewage industry here in Australia. And the only reason PLC's are needed for those is because they all have remote feedback and status updates to central control rooms and they have analogue level sensors for water/sewage levels. Any DOL motor circuits just use basic electrical controls. Just create a schematic with the contacts configured in such a way as to do what you need to do. There are only 3 inputs, all have to be true for the pump to run (assuming I interpreted your post correctly), so normally closed series contacts before the contactor coil would work fine (depending on the sensors you might need some relay's to 'convert' normally open to normally closed). Auto position of the selector switch goes before those contacts, and the manual position bypasses all 3 contacts. The exact schematic will depend on several factors, including client requirements (do they have specific control voltages in a specification), size of the motor, local rules and regulations, and the sensors you are using. Incorporating a basic fault circuit into that is also fairly straightforward, and typically goes in series with the 3 contacts previously mentioned. Any electrician who has experience with DOL motor starter controls should be able to work something out to run the whole system. Judging by what you have mentioned in your post, you don't need a PLC. It will just complicate the system and make it more expensive than it needs to be. 
  4. For NA series HMI's, you can use a data display for this. Your expression (Properties - Behaviour) is the integer variable. The following settings are also under the "behaviour" section of the DataDisplay properties. DataType: Change this to Numeric (if it isn't set to that already) ValueFormat: Custom CustomDisplayFormat: Vessel Level: {0:##0.0} Meters Lets assume that the level in the vessel is 6.5 meters. The data display would display the following (minus the quotes) "Vessel Level: 6.5 Meters". It will show up like this in the simulator too, so if you can see how it will look on the HMI. Data Edit Objects work in the same way. The link below gives a bit more detail on how it works, specifically on the role of 0's and #'s in the CustomDisplayFormat: https://www.myomron.com/index.php?action=kb&article=1658
  5. Sysmac Studio Improvement Request

    Ah, very possibly. It was probably one of those settings that my Omron tech suggested to change when I did their training course (and have since forgotten about it lol) If that is the case, the setting is located under Tools-Option...-Variables.
  6. Sysmac Studio Improvement Request

    What do you mean by variables don't behave well? If I update the name of a global variable in the global variables table, it automatically updates it in other areas of my program. However if I have 10 variables named Test1, Test2......Test9, Test10 and I wanted to change them to be 2-11 (instead of 1-10), I start by changing 10 to 11 and working my way back down to prevent any variables ever having the same name (which, rightfully so, causes Sysmac Studio to get a bit cranky and tell you off )
  7. I have been successfully using the following function block. Link below. There is a guide for using it in the ZIP file if I recall correctly, really easy to use and works well. In my case I have multiple instances of it, and with a little bit of code in place to prevent them all executing at once, they work great. I did the CONCAT for the filename in some inline structured text (I want a new file to be created every month), wrote the results of that CONCAT to a variable, which was then used as the file name variable in the function block. If the file with that name already exists, then it doesn't create a new file. Otherwise it creates a new file as per the file name variable. There is also a column names input, so the block will make the first row of the CSV file a set of column names when it creates a new file. Very handy . If you decide not to actually use the function block, you can still open it to see how it runs, which might help you to work out why your code isn't creating the CSV file too.
  8. is really plc runs in cycle?

    I don't know to be honest. Like I said, I don't have any experience with PLC servo programming so someone else will need to chime in. I suspect the problem is related to one of your other posts regarding Relative movement, so I would be taking what @scotty134 said in that other post and see what you come up with from that. https://forums.mrplc.com/index.php?/topic/40000-mc_moverelative-doesnt-work/&do=findComment&comment=183427 It looks like the IF statement on line 7 is working, because line 8 is writing the value to IRAxis4_Pos2. And the PLC will be running that IF statement every time it does a cycle (which you said was set at 1ms).
  9. is really plc runs in cycle?

    I have no servo experience, so can't comment specifically regarding the servo side of things. However, looking at that code, I see that the variable bAxis4_Move has a value of "True" written to it at Line 4, again at Line 7 (in the IF statement, which should be true in that screenshot). Yet it is showing its current state as False. If I have read the code correctly, the other spot that that bAxis4_Move has a value written to it is Line 11, however that IF statement would be False in that screenshot. So no value should be written from there. So I have 2 questions: 1. What is the purpose of Line 4, if the same value is written to the variable bAxis4_Move in the IF Statements? Or why is it required in the IF Statements if the value is written at Line 4? 2. Is there somewhere in your code that is writing a value of False to the variable bAxis4_Move? I don't know if that is the cause of your problem, however based on my limited PLC knowledge, that is where I would start the troubleshooting/debugging process. Good Luck 
  10. Stl 4bytes to real

    I have found the help menu in Sysmac Studio to be quite thorough. If you are trying to work out how to code a particular function/function block, find it in the help menu, and have a look at the structured text examples for that function/function block. If you are referring to some sort of reference material for ST coding generally, I haven't found anything comprehensive yet. If I have a specific problem that I can't find in the help menu, I normally check the forums and/or contact my Omron tech.
  11. What are the Link Indicator lights doing on the 2610? Are they indicating that a connection has been established? Or are they off (indicating no connection)? As far as I know, there are 4 states that EtherCAT devices go through during a normal start-up: Init Pre-Operational Safe-Operational Operational For some reason, the 2610 is stopping at Safe-Operational. At this point I have no idea why, but I would be inclined to think that its something in the 2610. Hopefully someone else has some ideas that might help. Could also be worth talking to the company that supplied you with the 2610 to see if they have any form of technical support that might be able to shed some light on the issue (assuming you haven't already done that) Best of luck 
  12. My issue was that 2 of my devices were connected the wrong way around. That is why I asked if you had connected them as per Sysmac Studio.  That fact that you can connect to the 2810 (which is the last device to be patched in) would tell me that the EtherCAT network itself is working (ie. communications are going through the 2610 no worries). Doesn't explain why you can't connect to the 2610 though. Following italicised words copied from the manual: Once the power is connected, the “IN” and “Mode” LEDs should be flash in green. Once the ECAT-2610(-DW)/2611 connected to EtherCAT Master, the “Run” LED should be illuminated in red. Does you device do what is described there? Is the 'Run' LED red? Is the error light on the 2610 lit when you are trying to connect to it?
  13. Sysmac Studio Improvement Request

    Would be nice if there was a way to modify IAG variable values when simulating in the IAG project prior to publishing. Putting the relevant variables in the watch tab and modifying their them there doesn't seem to work for some reason. Buttons can be pressed, data entry fields can be used etc, but the watch tab doesn't seem to work. This would allow text formatting to be checked, and also quickly check that bit lamps, pushbuttons, slider etc are configured to the right variable before publishing. Currently I publish my IAG's, import them into a test HMI project with the relevant structured datatypes, and then test them in the simulator there.
  14. You said that the 2028 was Slave 1, and that the 2610 was slave 2. Then you said that you set the nodes in Sysmac Studio to be 2610 as 1 and 2028 as 2. Bit of a long shot here, but have you physically connected the devices together in the same way as you have set it up in Sysmac Studio? Also, are there any EtherCAT hubs or does the network just run from the controller to the first device, and then loop to the 2nd device? In what order are the devices are the devices physically connected (ie. PLC to 2610 to 2810 or PLC to 2810 to 2610)? Last time I had a problem similar to this, it was because someone had connected a couple of devices the wrong way round. That said, the network I was working on had about 20 devices, not 2.
  15. In addition to photvotaic's question, are there any other devices on this EtherCAT network or is it just the one device?
  16. So creating the temporary data edits works, provided that the variable is set as In/Out in the variable list. Otherwise, its a case of publishing the IAG's, import them into a HMI program, create some variables and the simulate from there. Works well enough, just a pity it doesn't seem to do it in the IAG program  
  17. Hi Everyone, I am creating some IAG's in Sysmac Studio for an NA Series HMI. I have found that I can do an NA Simulation in the IAG program (it just brings up the HMI simulator screen, with the IAG in the top left corner). This has been useful for ensuring I have the correct size/scale of buttons and text etc for the HMI I will be using. I have also been trying to use the watch tab to put some dummy data into the simulated IAG, primarily to ensure that custom text formats etc are working properly. However when I change the value of variables in the watch tab, nothing changes on the simulator screen. The variables are all members of a structure, and datatypes used include Boolean, Single, and String. Is this normal behaviour for IAG simulations? Basically, I was trying to test all my formatting etc before I publish the collection (there will be about a dozen IAG's in this collection once it is complete). If there is another way to do this, then I am open to ideas. Worst case I can just publish the collection, import it into the HMI program, do a heap of simulations and then go back to fix any issues with the IAG's before republishing them again. I would post a couple of screenshots, but the website isn't letting me upload anything   
  18. I can get it to do that too. I have an "Edit" button that when toggled enables several data edit fields so the operator can change parameters, and it uses an internal variable for that. It works fine in the simulator. Another thought I did have last night is just add a couple of temporary data edit's linked to the variables that I want to check. Once I know the formatting is done correctly, then delete the data edits. Will try that today and see how I go.
  19. Axis Synchronization (Rotary and Linear )

    Disclaimer: I don't have any experience in motion control, so forgive me if I have misunderstood. You said that L moves X distance (X is calculated from the PLC), and then R needs to rotate 360degrees in sync with L's movement? Can you take 360degrees, divide by L (ie. R/L=Y). Y is how many degrees of rotation are required every time L moves 1 unit (mm in your example, but could be used for any distance unit really). The result of this formula would update based on the value assigned to L at any given point. Can you then use Y to move your R axis by making R's movement relative to L? Like I said, I have no experience in motion control, so I am not sure how that would be applied at that point, my contribution is more how to determine a ratio between L and R that you can possibly use.
  20. PLC Recommendations for newbie

    As someone who is relatively new to PLC programming myself (less than 18 months experience), I can vouch for Omron being reasonably easy to learn, particularly if you have experience in designing electrical circuits/controls (this makes learning ladder logic really straightforward). As a fellow Australian, I can say support from Omron has been great, very rarely have I had to wait longer than 24hours for an email answer, and their engineers are usually contactable via mobile. Cost for an Omron system would likely exceed your budget. I can't say how much, but your best bet would be to email them with your requirements and get their suggestions and pricing. Like IO_Rack, I would also be thinking that one of the NX102 series devices would be suitable, however there might be some more cost effective options available. Remember to allow for the cost of any programming software too. I realise the software licensing is a once off cost, however I don't know if this is a one off project or not. Sysmac Studio was about around the 2k mark if I recall correctly, but they do have a trial version you can play around with before deciding if you wanted to go that way or not. All the best, and good luck with your prototype 
  21. Hi Everyone, Apologies if this has been asked somewhere, I couldn't find anything. I have a PLC program written for an Omron NX102 controller. There are multiple structure datatypes in this program, primarily to help keep variables for specific equipment together and readily accessible. I want to create some IAG's for the HMI programming to reduce programming time, and these IAG's will need variables using the same structure's that are in the PLC program (will be using an NA series HMI). Is there an easy/quick way to copy the structures from the PLC program datatypes into the IAG datatypes? I can't seem to paste anything into the IAG datatypes except for basic text (ie. a single member name for example), however I can copy the PLC program datatype (and paste them into Excel) I do realise that some of the base types are different between the NX and the NA, but Sysmac Studio seems to automatically correct these when I type them in anyway. No big deal if there isn't a way to just copy them over, it's not too much hassle to just manually put them in. But figured it can't hurt to ask  Thanks in advance.