Jump to content

cantcliff

MVP 2015
  • Posts

    146
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by cantcliff

  1. Very nice, retrofits are always a pain.
  2. Current big project in progress: Sequencing system to control 2 pressure sources through 5 valves, 2 fixtures through a 10 valve manifold, and control the release of failed parts without operator input for differential flow functionality and leak test on customer parts. Current system: 1) V570, No snap module installed 2) 1 - EX-A2X 3) 1 - IO-AI8, currently using 4 pressure sensors a) 2 sensors in fast mode (12 bit), 0-150 psig, 0-10V 2 sensors in normal mode (14 bit), 0-150 psig, 0-10V 4) 1 - IO-DI16 5) 2 - IO-TO16 6) 1.3 amp Omron power supply for V570 and EX-A2X 7) 5.0 amp Omron power supply for Digital Outputs 8) All modules protected by appropriate fuse blocks 9) Custom built enclosure with all IO-points through Dual Row din mount terminal blocks, color coded by IO type. Current rough outline of the program: 1) Buffered I/O on all digital and analog input 2) Two drums, with conditionals to control advancement through the drum, and prevent running certain tests when one fixture is occupied. 3) Start sequence with a full reset of all bits to prevent unintended flow Current Program performance: 1) <1ms scan time. 2) Continuous Checks 1) Low pressure tank monitor a) Monitors tank for pressurization above 1 psi above target Fast cycles vent solenoid to drop pressure Sequences Detail Program information: 1) Activation Test a) Pressurizes the part to low tank pressure Maintains flow path to low tank c) Opens high pressure path .5 seconds d) Closes Low pressure path to pressurize part for leak test e) Checks for activation indicator f) Isolates part from high source 2) Leak Test a) Time based test, calibrated against a standard At the start records the part pressure value from the sensor c) After test sequence time <n> records the final value d) Calculates pressure drop per minute and compares to known calibrated leak standard and rejects or accepts based on standard 3) Reset sequence a) Vents part to low tank Extends reset cylinder c) Repeats activation test sequence to allow indicator to push back in d) Isolates part from all pressure sources e) Opens test fixture if part passes f) Maintains closed fixture if part fails until operator inputs Operator Display: 1) Tank pressures a) Gauge style Green/Red band for quick reference Digital readout of sensor reading for diagnostic purposes 2) Test Sequence running a) In Progress, by Fixture Leak Test c) Activation Test 3) Drum Step (Primarily for diagnostic purposes) In Progress: 1) Calibration sequence for the leak testing 2) Verification sequences for valves 3) Additional digital sensors for part presence and safety Future State: 1) Electronic regulator control of the pressure sources, currently manual regulators 2) Additional tanks and valves to allow both fixtures to run simultaneously 3) Improved Pressure transducers, current versions, while analog are limited to about 11bit of accuracy.
  3. When you say issues with scan times what do you mean? 10ms? 20ms? I've run some fairly complex programs and the slowest scan time I've yet to hit was 2ms with ALOT of drawing and updating on a single screen, so checking and updating 3 times/second minimum. Keep in mind, on something like the V570, scan time is 9 micro seconds per 1k of application, so it's more likely a programming issue. It would take near 333k of code for a 9 microsecond scan time to hit 3ms. Some areas you can improve things: 1) Look at the calculations you're doing. Are you doing excess calculations every scan with Longs or Ints, if it's done with a long, can it be done with an Int? If it's done with an Int, do you need it every time? 2) Is it absolutely necessary for everything to scan every cycle? Some things just don't have a high priority, program around them to limit how often they run. Can some things be run every 10 scans? 5 scans? 100 scans? 3) Are you using analog in? Keeping in mind most analog in doesn't update anywhere near the same speed as your scan time. The IO-AI8 in 14 bit mode has a 100msec conversion time, per input. 12 bit mode has 25ms. So at best you can get 10 or 40 updates per seconds respectively, do you really need to scan it every cycle as well? The biggest three: 4) Are you using a lot of communication protocols and requests? Communications TX/RX protocols can be incredibly slow. I have a co-working using serial scanning and pattern matching on the RS-232 and his cycle times are routinely around 20-30ms for a fairly simple program. I've not worked with CANbus or Modbus yet, but there is a potential there to. 5) Are you using a lot of function blocks or sticking to more traditional logic? Function blocks, while they look simple on the ladder logic, may have many more operations going on in the background to perform their functions. 6) As was said above, how much drawing are you doing per scan? Lots of dynamic updates can really slow things down.
  4. I'd check your grounds first. Might have a ground loop that you didn't know about or possibly you're not grounded out correctly. In order of what I would check: 1) Grounds 2) Test with a power line filter on the PLC and VFD if you have one available, This 3) Isolate each VFD separately and see if the problem returns, perhaps one drive is going bad. 4) Power supply, try running the VFD from a separate plug/panel receptacle if possible.
  5. I think the confusion is that an and/or function block is designed to work with MI type data sets. When working with MB, you don't need to use the function block, you use the design of your ladder diagram to make your AND/OR on MBs. It sounds like you don't have a good understanding of relay ladder logic (RLL), which is where you should start first. Using your example: [MB1]----[MB2]-----(MB3) In this case, when MB1 and MB2 are both active (AND), MB3 is turned on. This ladder is identical to your IF/Then/Else statement in terms of functionality. If you wanted an OR function it looks like this: [MB1]----|-----(MB3) [MB2]----| If MB1, or MB2 is on, the circuit to MB3 completes. This is the same as: IF MB1 OR MB2 THEN MB3=1 ELSE MB3 = 0 ENDIF There's a lot of "Gotcha" situations you need to keep in mind when working with RLL.
  6. Did you configure the outputs in the hardware configuration of VisiLogic? If not, that should be your first step. That allows you to define where (which memory integer) you read the analog value into and the precision (10 bit or 12 bit) From there you can use the linearize function block to work with the number however you need.
  7. Am I reading correctly that some of the V430 series come with a 24DC power supply built in?
  8. Sorry for the double post, just managed to get images working. Here's my example as above in picture format.
  9. cantcliff

    Examples

  10. Having browser issues with images at the moment. For your ladder you need a line like this | SB3 | --- | MB1 | --- ( MB2 ) Make MB one the controlling bit that determines if you want your flash. As long as MB1 and SB3 are close, MB2 is on. So as MB3 cycles, MB2 will cycle on and off. On the interface design, create a binary Image, one image and set an off image state and an on image state, then link it to MB2.
  11. Use SB3 to control a toggle bit, then use the toggle bit on your display to control a binary image.
  12. I know it's one of "those" questions but did you verify you are using the correct COM port per the driver?
  13. Did it ask you any other questions? Such as recovering a crashed project?
  14. At this point all Unitronics PLCs. We have several workstations in a cell, but they are not all powered up at the same time. Some may be powered on, or shut down, during the shift. Would inter-PLC communication run into issues with a node entering or leaving the network?
  15. We use several workstations that may, or may not be, running at any given time. How well does the CANbus protocols handle a node being offline?
  16. First off, you'll need to set the module ID for each EX-RC1 module, this is done with a DIP switch on the module. The switch settings for the module are in the downloadable documentation. You'll have to configure each ladder based on the attached modules and setup your network settings that way. I/O IDs are (module number)*16+ I/O number you want, with Module number starting at 0. For example, input 7 on module 4, 4*16+7 = I/O 71 on that group of I/O. I believe that even if it's an 8 point I/O you still use the 16, as that is how it's used on the local expansion EX-A2X.
  17. It's not necessarily common, but looking at the spec sheet for the V350 w/ 10 bit analog in I get this. The product can read 0-20ma, or read 4-20ma. Based on some guess work from different pieces of documentation, the analog in function for 0-20 and 4-20 is the same style of read. If the value is above 20ma, it reads 1024 as your analog input, so you can specifically check for 1024 for above range input. 1023 should be 20ma. Where I'm not 100% clear either, and I can't test it as I don't have the hardware, is if you set the input for current, as long as you are above 0 and less than 4, I believe you still get a valid input value from the sensor attached to that analog input. Once you go below zero the analog module returns -1 for under range. Testing for 190, 191 is pretty arbitrary if my underlined section is true. You could just as easily test for 203, 150, 135, 199, 7 or, 1. for your lower bound, the attached sensor will always provide somewhere between 4-20ma when functioning properly. 4-20ma is almost arbitrary on it's own, the main advantage is by supplying current to a sensor you always know the input is functioning, if the sensor dies or the line is cut, current drops to 0 and you can catch an error and you can send current regardless of distances. You can buy 0-20 ma sensors, but you lose the safety/function failsafe.
  18. I think his question is more along this line. The linearization numbers are clear, as those are directly from the manual. What isn't clear, and it's not in the two pictures he's posted, is why in the ladder above the test is for an integer value of 190 and 1040. On a 10 bit number, shouldn't an integer value 1024 signal out of range, you shouldn't read 1040 unless you're putting excess current into the input in which case the module should error out as too high. @Apollas The low end 190 should still work because the analog input actually can read the input down to zero MA, only a negative current should trigger a -1 in the reading. 190 is most likely an arbitrary sanity check. The 1040 isn't as clear as that should be outside the modules valid ranges.
  19. You can use an offset multiplier to simulate a 2 dimensional array with a vector. It's really how 2d arrays work anyway, just takes a bit more coding effort. Array2d[width][Length] = Vector[(width*rownumber)+column number] So using an array of 4x4" (*Note this math assumes 0 as vector/array as array first element. Also, based off C notation) Position[4][2] is the same thing as position [4*(4)+(2)] Element[4][2] = vector[18] Element[3][3] = vector[15] An array of 50x30: Element[45][10] = vector[45*50+10] = Vector[2260] An array of 27x13: Element[14][26] = vector[14*27+26] = Vector[404]
  20. Are there plans to do a higher resolution analog I/O modules such as 16, 18, or even 24? I know we have several applications that would benefit from the increased resolution.
  21. I recommend terminal blocks with a flyback diode, or add a flyback diode into the wiring as well. Anything generating an inductive load could cause a back wards current into the module, which can also damage the contacts. *edit* Sorry, missed the AC signal portion of the discuss.
  22. You can use SI66, bit 6, "SD is full" or SI68, bit 7, "Write error" to monitor your SD card. Page 231 and 232 (PDF page 239 and 240) of the Ladder Programming PDF. Whether or not the program crashes is dependent on how you write your program and use the above information. Poorly written, it will crash, well written it will not.
  23. Try shifting your rung over a few steps and connecting to the left side of your ladder with a single attachment point. It shouldn't make a difference but it could be worth a try.
×
×
  • Create New...