MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

37 Excellent


  • Rank

Contact Methods

  • Website URL

Profile Information

  • Gender Male
  • Location Carolinas
  • Country United States

Recent Profile Visitors

4982 profile views
  1. Adding an analog output card

    If you are not sure, you can post a pic of the remote rack and we can move on from there.
  2. Advice on choosing a PLC for a project

    That is a quite impressive bit of hobby work!   No that's just an impressive bit of work.  Well done!  You'll have to post some of your screen shots to let us know how you are incorporating your HMI.
  3. How to replace an Ethernet ip communication module( 1756 en2t)

    As mentioned there are rotary switches on the module, but keep in mind that they limit the setup to a single subnet.  If the module you replace has something other than 999 selected on those switches then all you have to do is copy that.  If 999 is selected then you will need to go with the more difficult but flexible routes that follow.  Part of your determination of the path to reconfigure such a replacement will be what access you have to your processor on your rack.  If the En2t is the only interface to communicate with your rack, then you will need to configure it via Bootp.  The Bootp program is fairly simple and a good way to go; however,  I have had problems with it in the past so I will give a few alternatives.  You will need to know the MAC address of your new card as that is what you will see pop up in the Bootp program to associate an IP address with.  Keep in mind that if you set your IP address via Bootp, you will need to disable the bootp and dhcp afterwards or the module will drop your address the next time it is powered down.  There is a handy button to click on in the bootp program to disable both of these options once you setup your module.  Unfortunately that button only seems to work for me about 10% of the time so I have to setup the ip address and then go online with the processor and disable these options in the module properties, or right click on the module in RSLinx and configure these options there.  Alternatively to Bootp, if you have a DHCP server you can also connect the module to the network and let the server assign it an address.  The address assigned will be shown on the module display.  You can then go online using that address or use RSLinx to reconfigure the module as necessary.  Additionally there is the option of getting online via a serial port or other comm path then you can use that to modify your module settings. 
  4. Advice on choosing a PLC for a project

    Mike, Sorry to be late getting into this but I dont think I saw where anyone mentioned online programming.  The 1100 and 1400 can and the 1200 and 1500 cannot.  Doesnt make much difference with your train at home but it can make a big difference when working on an operating piece of equipment or process.  Being able to make small changes without taking down a system has always been a must for me.
  5. Report Button

    Seriously it is getting bad.  This could be the death of a forum and I hate to see it.  Are links on the forum setup as no follow?  This should cut down on spammers as there is no search engine benefit.    
  6. Report Button

    I feel your pain!  I know from my website that it is a constant battle.  You already have the captcha for new account protection.  I would suggest contacting the creator of the forum software to see if they have any solutions available.  This kind of persistent hacking could really damage the forum and you guys have a great thing going here. 
  7. Difference between l33erm and 306erm.

    Funny that this just came back alive today.  I just checked out my 306ER installation today.  I specifically need a separate I/O subnet and SCADA subnet.  I have flex I/O and an E&H transmitter on one port and SCADA and messaging to an old PLC5 on the other port.  Used to have to go up to the Logix to get multiple networks like this so it's pretty cool.  The money for the PLC5 upgrade is a ways off so I'm using the compact to bring in devices like the E&H transmitter over the network.  This will allow us to move forward on our near term sfield device selections that will integrate nicely with a new logix in the future. 
  8. Difference between l33erm and 306erm.

    The difference that I was looking for was that the 306 has dual ethernet ports that can be individually configured.  This way I can separate my I/O network from my SCADA or control interface network.
  9. ML1100 And Analogue Expansion Module

    Did you set the dip switches for voltage?  Default is current for the Analog inputs. page 12 in this manual.
  10. My Model Train Project

    LOL spoken like a true Ham op!
  11. My Model Train Project

    Yeah I actually use the register method more than the counter method for keeping track of steps.  You see that Joe has each step 10 apart, ie,  10, 20, 30, etc.  Similar to the way we used to have to program in BASIC when you had to put line numbers.  That way you could insert lines without having to renumber your whole program.  The same applies in the code he has.  He can easily insert another step, say 15, without screwing up his whole numbering scheme.
  12. My Model Train Project

    Sounds like you are heading in the right direction.  As for sequencers, I am not usually a fan.  As I am generally programming in ladder somewhat because it's easier for the techs to understand, the sequencer flies against this logic.  I prefer to use something like a counter to step through sequence steps and operate logic based on what step I'm in.  This works particularly well with each of my equipment pieces being a looked at as a module.  So i might activate a bit that is defined as step 1 when my counter accumulator is 1.  I will use that bit in my valve, pump or other equipment logic to activate required equipment when the equipment is running in automatic.  It's very easy to see what happens in that step 1 with a cross reference of the address.  In addition when someone is looking at a valve operation (for example), they can immediately see that it is active in step 1.  Finally it is very easy to see what cycles the system to the next step.  I think it's more clear than a sequencer.  This is all programming preference.  There are times when I have used the sequencer when the end user preferred it.  PLC programming is very much programming to your audience. Program in a way that works for the expected user. 
  13. My Model Train Project

    Well I have to say that you get the planning stage much better than many coming to the PLC programming field.  I see experienced programmers that see no need for any planning document or specification.  I would assume that comes from your previous programming experience.  You have put together a basic plan for program operation and detailed your I/O.  In a real world project a detailed functional specification is recommended.  It takes time and effort and is not really completely necessary in full detail to successfully program, but it is necessary to successfully define to a client or user of a system how you as the programmer and designer of the system see the system working.  Many wrong directions can be figured out early with a good document.  Well.... if someone reads it - but that's a different discussion.  I put a video on youtube a couple years ago on this.  Wasn't real popular as people want to program not plan.  Here is a link: You should be able to find lots of information by googling seal-in circuit; however, we have an old article on ladder logic that shows one about half way into the article: Essentially you "seal" around the start pushbutton to maintain the output.  Our article show the seal using a contact off of the output.  Generally with a motor seal in you use the AUX input from the motor starter as your seal.  I always use both the output and the AUX to seal in my motor circuits due to an experience with a faulty PLC5 I/O card that caused my inputs to cycle on and off for no reason.  Nothing like hearing every motor starter in the room cycling on and off together to make an impression.  As for how to start attacking your program I generally look at it like this.  Each motor/valve or other defined equipment item is viewed as a module.  Define how each operates independent of anything else. Start/stop, alarming, auto/man, etc. Define sequences that run.   Tie the sequences into the motors/valves and other equipment modules. Keep in mind with a controller like the micrologix, slc or even PLC5, AB makes it really easy to organize your data similar to how you organize your program files.  You can create bit files or integer files (and others of course) for specific purposes and have organized data as well as program files.  My general rule of thumb is not to use the generic default data files for anything other than extraneous data that just doesn't fit with anything else.  I always create data files to fit my program needs.  How you organize it is up to you.  Just do so! The micrologix 1100 and 1400 are both great little processors.  They both have ethernet ports that can be used for programming and the 1100 can still be programmed with the Micro Starter Lite.  Also both allow online programming which is an essential tool in real world programming.  We dont take a system down to make small changes to the program in production systems.  Might as well practice that way also. Hope this all helps.  Have fun!  
  14. Traffic Intersection with 3 second inductive sensor

    Kinda on the verge of hijacking the thread, but I guess it is pertinent poop for someone learning programming.  Took a quick look through your program and do have a couple immediate things that pop out:  I never use conditional JSR rungs or at least I cant remember a time that I found one helpful.  They are generally a way to get into trouble as all outputs stay in their last condition when you stop scanning the subroutine.  The mantra in PLC programming is "keep it simple."   This is a program just for you, but generally we are programming for the multitude of people that will follow us into the program after we are done.  That is very unique in PLC programming.  Generally in a plant environment the level of proficiency is fairly basic.  Also at 3am in the morning when a line is down, brain functionality is fairly basic.  Imagine the fun of seeing an output on in the program with all of the logic before that output false just because the program file is not being scanned at that time.  Minds have been blown with less.  In my experience, nothing good ever comes from a conditional subroutine.  If you want an output off then put a contact in the rung to make sure it is off.  Then the logic is clear and understandable to just about anyone.  I suspect that is why you have to reset your outputs with the masked move statement.  Another gotcha waiting to happen. I never use (or extremely rarely) the JMP instruction.  That is a fairly common statement for all high level languages.  Basic has its goto and just about every language has a statement to jump to a location in the program.  Most instructors I have learned from will explain the statement and its purpose and then tell you not to use it.  Those types of statements get you into trouble and are difficult to follow in most programming circumstances.  There is generally another way to do the same thing.  Same goes for MCP.  That has some value possibly in temporarily taking sections of code out of service for testing or maintenance.  As permanent fixtures they just cause confusion when people are troubleshooting. Rather than latches use seal in circuits.  Latches generally cause problems.  They are necessary if you need to maintain output status through a power failure.  OTE's are reset when the system comes up.  Same with the resets on your timers.  TON's reset automatically when the logic before them goes off.  Resets can be eliminated and everything that controls that timer's function then is on the rung with the timer.  Thats much easier to understand when looking at the rung functionality.  Side note: RTO's do have to be reset and are useful if the timer value has to be maintained such as for a total run time of a system that is starting and stopping. Even with the subroutines you have, I would move everything from file 2 except for JSR's to a subroutine.  Leave file 2 just for JSR or insignificant overhead logic such as blink timers or such.  That will make the logic much easier to go through. Looks like a fun project! 
  15. "Display Print " button from Studio ME

    I have never used a display print function in Studio but I have had to get screen shots before.  If you have Studio, then you can run in test mode on the PC and just take a screen shot of that.