Michael Lloyd

MrPLC Member
  • Content count

    963
  • Joined

  • Last visited

Everything posted by Michael Lloyd

  1. I added a timer to a Micrologix 1100 yesterday and it acted strangely. Initially it would not run no matter what. The preceding XIO and (2) XIC's were nothing fancy, just a couple of permissives anded together to tell the timer to run plus a NC Timer/DN contact to make the timer restart. It was a 60 second timer (1 sec time base). ** Every now and then the timer would run, time out, and then just sit there. Some period of time later, maybe 30-45 seconds, it would do the same thing. Logically speaking it should have run 60 seconds, reset, repeat. The first thing someone is going to say is that one of my preceding bits was cycling off an on. I checked that. All but one was latched. Here's the really interesting part. It didn't start the behavior that I put the ** in front of until I added a jumper around all of the inputs. If I remember correctly I have 19 timers configured and this one was #12. All of the other timers operate perfectly. Ultimately I rewrote the rung to use S:3/15 to toggle (I think it was S3... hard to remember as I have 2 active CLX projects starting up this week plus the little micrologix and I'm the only programmer.)
  2. Micrologix 1100 question

    IO understand... however one of the first steps that I do when I encounter a problem is to cross reference the IO. 99% of the time I've used a one shot twice or something like that. Not this time. Apparently I didn't save a copy of the version with the timer that ran intermittentaly so post problem troubleshooting is going to be difficult. I appreciate the help though
  3. I have a pair of 13 slot racks and an L61 processor. The main rack has an ENBT/A in slot 1 and the remote IO rack has an ENBT/A in slot 0. Both are connected to a switch. The link to the HMI is connected to the switch. The link to our SCADA system is connected to the switch. Both ENBT's have their respective IP addresses, subnet mask, and router "Set" into them. They both show up in Controlnet for Ethernet and I can go online with them with Controlnet. At one time the remote IO was available and active. Recently, not sure when or why, the remote IO rack dropped off. All of the IO cards flash green as does the middle LED on the remote IO rack. I can't connect to the remote IO ENBT an check the diagnostics because when I do I get a comm timeout error. I can't "set" a new IP address for the same reason. I've changed the card and changed the cables and still have the same error. Initially I considered using two ENBT's in the main rack. One for SCADA/HMI and one (with a different IP address scheme) for remote IO but I was talked out of doing that by the local AB rep. Now I'm not so sure... Thoughts anyone?
  4. Remote IO on ENBT comm failure

    I did exactly that about an hour ago. Didn't work. Get this- I could ping the remote rack address. I had a steady link light. I changed the Ethernet cable to a brand new cable and everything came to life
  5. Micrologix 1100 question

    Im traveling to another site at the moment. When I get there I'll post it if I have an Internet connection
  6. If you are using a Control Logix PLC you could use a FGEN (Function Generator) to calculate the setpoint for speed. If you're familiar with the slope of a line equation, y=Mx+b then you'll love the FGEN block. It will actually do two calcs. X1 Y1 and X2 Y2. Drop an FGEN into a structured text or function block routine and play with it. One thing that I think you'll find to be difficult to come up with is a moisture sensor that obtains an accurate reading quickly
  7. RSlogix 5000 ASCII

    From the ARL help file- 1. Configure the serial port of the controller for User mode and define the characters that serve as the termination characters. 2. Use the results of an ABL instruction to trigger the ARL instruction. This prevents the ARL instruction from holding up the queue while it waits for the termination characters. Refer to the ARL example below for more information. 3. This is a transitional instruction: In ladder diagram, toggle the rung-condition-in from cleared to set each time the instruction should execute. In structured text, condition the instruction so that it only executes on a transition 4. To trigger a subsequent action when the instruction is done, examine the .EM bit.
  8. In the past I've created a UDT with both tags and then built a tag of the UDT type. You can even create a tag of the UDT type as an array Tag of the type UDT[x]
  9. I keep all of my license files on a memory stick. Note that it's not just any memory stick. You have to buy one from Allen Bradley that is specifically made for this purpose. It has all of the anti-paranoia security on it. It works pretty well.
  10. Complete n00b question

    You can do a latching / unlatching routine.
  11. RSView 5.0 / 5.1 issues?

    I've got all that software plus a few more PLC programs installed on an XP machine and I don't have any conflicts. Mike Lloyd
  12. Another Newbee Question

    I come from a different background than Ken so I see things a little differently. Doesn't make him wrong. Doesn't make me right. It's just the difference in how different businesses handle programming. I come from the natural gas processing / crude oil pipeline side of things. To me an average tank has a floating roof and holds 60,000 barrels of crude oil. That said, this is how I would handle your situation. (1) I would use the SCP function to scale all of my analog values. Even if they aren't used. For instance, if I had an 8 point AI card I would have 8 SCP's, one for each point, in their own routine. I would assign the output to a floating point. F8:0 would hold the scaled value for I0:0. F8:1 would hold the scaled value for I0:1. etc. Unused points get scaled 0-100%. Why do I do this some would ask. Lets say it's 2 am and a critical IO point failed on the card (trust me, it happens). I never fill a card up so I always have a couple of spare points. Rather than replace the card, I move a pair of wires over to the new (spare) IO point (all of my IO is wired to individual fuses so that's easy), change the scaling. Search for F8:? and replace with the new value, and bam... I'm done and we are back online. Plan for the future, the future could be now... (2) I use floating points for all of my scaled analogs because I want decimal point resolution for my analogs. For a tank level I scale the input for the number of feet (or inches if it's a smaller tank) that the tank can hold. I do this because we always have low level shutdown, low level alarm, high level alarm, and high level shutdown for tank levels and the number of feet of fluid in the tanks is something that an operator can relate to better than gallons or barrels. (3) All of the alarm and shutdown setpoints are held in consecutive floating point registers so they can be changed on the fly or from an HMI. I can hear you saying "but I want to know how many gallons are in the tank". So calculate it. Lets say your 32000 gallon tank is 10' tall. 10' x 12" = 120". 32,000 gallons / 120" = 266.67 gallons per inch. So multiply your scaled feet number by (12 x 266.67). Do it with two MULT's so you can copy the function and reuse it by changing the scaling factor or just use 3200 (gallons per foot). Store the result in a floating point register. They are there. Use them. Give the SCP a try Input= Address of input Input Min.= 6400 (depends on what kind of card you have, which PLC, and what you can set the type of AI to. Scaled for PID (my favorite) is 0-16383 so for the In Min it would be 0 but I don't think the 1400 lets you use scaled for PID ) Input Max.= 32000 (depends on what kind of card, PLC, and what you can set the type of AI to. Scaled for PID (my favorite) is 0-16383 so for the In Min it would be 16383 ) Scaled Min.= zero value of transmitter range Scaled Max.= 100% value of transmitter range Output= F8:? or whatever your floating points registers are As a side note, some people will put a LIM in front of the SCP (same rung) and set the low and high limit just above the min and just below the max (test = IO point) so that scaling doesn't occur unless the IO point is within range. Then set the in min and in max to the same value as low lim and high lim in the SCP. I don't usually do this. I've had good luck with IO points and don't feel the need to "jink" with normal scaling If you want I can send you a little LACT program that has a lot of different functionality in it. It's for a 1200 and as a complete program it's not going to do you much good. However, for individual ideas it might be useful. PM me your email address and I'll send it on. Mike
  13. Read/Write between AB PLC's

    If you are moving data between Control Logix boxes it's easier to use Produced / Consumed tags. <EDIT> My bad... Steve already covered that.
  14. RSLinx Enterprise

    Open RSLinx Communications>> configure drivers Select the serial Port driver Click Startup Select On Demand Or just stop the driver with the same sequence except instead of startup click stop
  15. I've been playing with RSLogix Architect (V19) to see if I like it. I built a redundant system using two remote IO racks and two Controller racks. When It came time to add the 1756-RM modules (system redundancy) I couldn't find them. I thought I could add them from Controllogix (V19) and I can't find them there either. Anyone have a clue what I'm doing wrong? edit: My bad... 1756-RM. I still can't find it...
  16. I thought that I answered this. Apparently not. I've got a couple of laptops that I've used over the years and still use. My go to laptop is my Panasonic Toughbook CF-30. It's got a sealed / back lit keyboard (which makes it easy to see at night), the display is easily seen in broad daylight, it comes with a serial port, and the case is all but bullet proof. I don't do a lot of HMI configuration on it due to the small screen but for troubleshooting and field work it's the best laptop that I have.
  17. I have been connected to the PLC all morning. We went to lunch and when I came back my laptop screensaver had come on and thanks to the IT load on the laptop I needed to log in. When I logged in Logix was offline and the following error popped up (see attached file) I can't open my file. I can't go online and upload to a new file. Nothing works. I've restarted the laptop and still nothing. Any ideas?
  18. Laptop for PLC's and Control works

    I'm very happy with my Panasonic Toughbook CF 30. Mostly because I can see the screen in broad daylight and the sealed keyboard is backlit so I can see it at night without tilting the screen down.
  19. Logix 5000 error

    The IO modules on the remote rack are 16 point analog input, 8 point analog output, and 6 point thermocouple input. Nothing special. The main rack has a couple of ProSoft cards in it (MVI56-MCMR serial card and an MVI56-MNETC modbus TCP card). The rest are standard 32 point DI and 16 point relay output cards. Both have ENBT's in them None of the BAK files would open I can't upload the program running in the PLC to a new file. When I try to do that it crashes with the same error. I can't open the file after the first save and, logically, I can't open a BAK file In order to finish my Factory Acceptance Test I had to wipe the processor (pulled the battery and powered it down) and load a "clean" version of the program that I originally developed as a Rev 17.2 file. I changed the processor to Rev 19 and then downloaded it to the PLC. The PLC is flashed to Rev 19. Once I was done with the F.A.T. I saved the file and moved to a single rack, same processor, same rev level (19). I was able to download to the PLC, save, shutdown, start up, and reconnect to the second PLC with not problem. I went back to the first PLC to try to check something and the error message popped up. Something is not right...
  20. Ken, I appreciate the detailed reply and I will get back to you in the morning. It's a little after 9pm here and I just got home from work. Ill list the info that you asked about by from the registration sheets that came with the software. A couple of quick answers- 500 and 5000 are node-locked (which sounds like the right answer). As far as fake S/N, the company that I work for paid a lot of money for the software so I've been extra careful to put the correct serial numbers in. More in the morning. Thanks again. Mike
  21. I've recently moved from contract to full time employment with my favorite customer. I have Logix 500 and Logix 5000 ordered. Since they both use RsLinx I was wondering if I need to install them in a certain order. I've installed bot pieces of software numerous times but never at the same time on a fresh machine. I once installed an older version of 500 after my version 17 5000 install and vaguely remember that hosed up my RsLinx for a short time. Any insight would be appreciated.
  22. Ken, I don't see any difference in the activation process and I've been use CLX since Rev 10. It's still kludgey. The interface is pretty. The method is a little different. But it's still a kludgey mess. If I wrote a program for a PLC that work that badly I would fire me on the spot. They make drugs for the treatment of paranoia. Or they could just change their business model and make the hardware pay for the software. If they did that they other PLC mfg's would fall further behind and the incremental increase in hardware cost wouldn't be noticed. Especially in today's economy.. That said- (1) What is the difference between Node-locked and Concurrent? Some of my software is node-locked and some is concurrent. I need all of it to run on two different PC's but not at the same time. Ie I work off of two machines. Why is this so hard for AB to do right? (2) 5000 works. 500 does not work. Both are supposed to be tied to the same USB key but even though the activations manager sees the 500 and 5000 USB key activation 500 starts in demo mode. I needed 500 to work today otherwise I wouldn't have wasted my entire evening installing this stuff. (3) Networx starts but at the bottom of the window its says "The Network Health Monitor has not been successfully activated... blah blah grace period blah blah. I won't be back online until tonight. Thanks for your help.
  23. I can't begin to tell you how irritated I am with AB right now. Please tell my why they put so much effort into protecting something they shouldn't even charge for? I could probably be here all night listing off everything that's got me pissed off right now but I'll just stick to the most pressing items first (1) I ordered software from the distributor and it finally showed up. I requested that RSLogix 5000 Pro and RSLogix 500 Pro use a USB dongle for activation. I want to use the software on my desktop and my laptop. I develop on a dual monitor setup on my desktop and do my field work on a laptop. That's why I requested ONE dongle for both pieces of software. (1a) The software came separately from the dongle. I had to wait an extra 3 days for the dongle. Hello... earth to AB one is worthless without the other (1b) The Logix 5000 DVD comes with all kinds of nifty software that doesn't work. None of the RSNetworx software works. RSEmulate... doesn't work. I can't get anyone to even tell me if Pro comes with it or if supplying the software, though worthless without activation, is some kind of cheap marketing trick. Considering what Pro costs I expected to get something other than the programming software. I need some clarification. I can't expect to get a straight answer from the vendor. They can't even explain the difference between node-locked and concurrent. (1c) What, if anything other than programming software, do I get with RSLogix 5000 Pro? (2) I installed and activated RS500 after RS5000. 500 is popping a not activated / demo mode window. The key is installed and it shows up in the Activation mis-manager. Any clue why the antique, over priced software doesn't see it's activation? I've been trying to get my employer moved to AB Control Logix from GE. At this rate it's going to be nearly impossible. The GE software installs and runs... That would be a big plus for the AB camp at this point.
  24. Thanks. I'll try to attach both. I just remembered that I put source protection on the files. What a pita I'm not going to strip the protection off You can either leave it and use my password... change it to yours... or strip it out completely. Doesn't matter to me but if you strip it out someone will probably screw it up... The pw should be m1958l The last character is a lowercase "ell" LF.zip AGA3.zip
  25. Yep. I've been doing a bunch of crude oil measurement station work lately (AGA7). I'll try to attach the little one and see how it goes. This is an example of how I map the IO. It doesn't have to be done this way. It's just how I do it. Doing it in a locked structured text file prevents accidental "fat fingering". Typically the result is fed to an alarm block and causes a shutdown so it's important that the data be somewhat protected. FI761.Hw := Analog[3].PV; I don't like the built in alarming so I have my own array tag for alarming. The differential pressure is here. The next line is the temperature FI761.F := Analog[9].PV; FI761.D := 4.026; FI761.Bore := 1.625; FI761.SG60 := 0.72; The thing that you can't see in the above is where FI761.SGF is coming from. I used a function generator to calculate the flowing specific gravity of the oil flowing through the orifice based on temperature. The mfg of the oil lists the specific gravity of the fluid from 0 thru 600° in 100° increments. I passed the result to the tag in the function block. In hindsight I wish that I would have been consistent and passed it to the tag in the same way as I did the other data. I can't attach the AddOn. It's not a permitted file type. The following is the program listing. If someone will give me a clue for how to attach the L5X I'll attach it instead // Calculations for liquid flow through an orifice plate If Hw <= 0.0 THEN Hw := 0.00; END_IF; b := Bore / D; // Beta ratio b2 := b**2; // Beta squared b3 := b**3; // Beta cubed b10:= b*10; // Beta times 10 s := (0.598 * b2) + (0.01 * b3) + ((0.00001947 * b2) * (b10) ** 4.425); n_gpm := 5.667; // Constant for calculating gallons per minute n_bph := 8.096; // Constant for calculating barrels per hour D2 := D ** 2; // Pipe ID Squared Fa := 1 + (0.000185 * (F - 68.0)); // Flowing temperature factor SgF := (SG_F ** 0.5) / SG60; // Specific Gravity Correction Factor Sqrt_Hw := Hw ** 0.5; // Square Root of the differential // Calculate Flow Rates GPM := s * n_gpm * D2 * Fa * SgF * Sqrt_Hw ; // Flow in gallons per minute BPH := s * n_bph * D2 * Fa * SgF * Sqrt_Hw ; // Flow in barrels per hour LBHR := GPM * 500 * SG60 ; // Flow in #/HR I put the constants into tags for identification. I originally wrote it without doing that and found that people wanted to know why there was a fixed constant multiplier (making sure I wasn't fudging a number I guess). I don't remember which flow measurement book that I pulled the equations from but they aren't something that I derived. The AGA3 version is way too big to post the code for here.