MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

3 Neutral

About mikeexplorer

  • Rank
  • Birthday October 20

Contact Methods

  • Website URL http://www.nepaview.com

Profile Information

  • Gender Male
  • Location Scranton,PA
  • Country United States
  1. Advice on choosing a PLC for a project

    I got pricing information. The ML 1400 is $1,200.00 verses the ML 1200 $1,030.00. The ML 1400 has built in analog I/O (0-10VDC) so I would not need the 4 channel analog module which costs $424.00 So actually it would be cheaper to go with the Micrologix 1400. I would also gain the ethernet port. Although my HMI does not have ethernet, I may just go ahead and purchase a Cmore panel that has it and retire this one. AT the very least I can keep the computer connected to the PLC all the time and leave the serial connection for the HMI. What I actually need is analog output so I can control the speed of the trains. I found a schematic of the CW80 transformer online that someone hand drew out, and the throttle input is 0 to 3.3VDC. What I will probably do is use a voltage divider so I cannot exceed 3.3VDC and possibly damage the transformer. This would also give me the full scale on the analog output. I could use the analog input as a feedback to verify the transformer is outputting power to the track, in the event of a derail, if there is a short, the transformer shuts down and blinks the power light and stays that way until you turn the throttle to zero and then back on again as a reset. This way the PLC will know if the transformer shut down. The output to the track as a weird AC wave, I can build a bridge rectifier with filters and then scale it down to 0-10VDC for one of the inputs. (I do have experience in building electronic circuits) So in my case the fact the analog I/O is DC voltage is fine and would be better for my project. Mike  
  2. Advice on choosing a PLC for a project

    I am awaiting the price for the Micrologix 1400. If I choose that one over the ML 1200 I won't need the 4 channel analog combination module since analog I/O is built in to the 1400. It might offset the cost of going with the ML 1400. I found online a schematic for the Lionel CW80 transformer so I know where I have to make modifications for the PLC to control the throttle. It also means I can tap into the three buttons on the unit to control direction, bell, and whistle. Mike  
  3. Advice on choosing a PLC for a project

    I will ask for a quote for the ML1400, if its not much more then the ML1200 then Ill probably get that one. May not need the Ethernet port now but might be useful in the future. Mike  
  4. Advice on choosing a PLC for a project

    I have had no issues with the Cmore interfacing to the ML1000. If I need a longer cable I can just make it myself. The ML1400 looks like it has the same type RS232 port so it should not be a problem. I may be getting my hands on an Allen Bradley Panelview that might fit the stand I have so I may try to see how that works out. The Cmore panel I bought does not have Ethernet so serial is the only way to go for now. Mike  
  5. Advice on choosing a PLC for a project

    I am going the PLC route for the project because I am using it as a learning tool to write PLC programs. The trains provide my "real-world" example rather then using a training kit with buttons and lights. Already I have had unexpected events such as glitchy inputs, slower then expected movement of trains and so forth. This makes me account for the unexpected such as a sluggish cylinder, or if a sensor is not made in time, and so forth. Mike  
  6. Advice on choosing a PLC for a project

      I used a Click PLC for my first work-related project shown here. In this case I did not need a lot of I/O and the project was originally planned using a Micro 810, but after all the headaches of the software, I changed it to use the Click. Since the software does not support simulation, I first wrote this project in Rslogix Micro starter lite and simulated it to make sure I have all the conditions I wanted, then translated it for the Click. This project only required 14 rungs of code, I may be adding to it soon with a few additional sensors. I do not need PID loops for my project, and using the online configuration wizard, I can get enough I/O for my train project no problem on the Click. I just think for a larger project like my train project, the software is a bit cumbersome and does not support simulation.
  7. Advice on choosing a PLC for a project

    The HMI I am using for the project is a AutomationDirect Cmore which does not have Ethernet. One of the  items I got was this stand with a Proface HMI. I don't have the software for Proface and when I looked into it, was big $$$. SO I bought the Cmore to learn to work with HMI. (it was inexpensive) Now I might be able to get my hands on a used working Panelview from work. They are scrapping a mixing machine, if that is the case, I might just look at the 1400 since it would have an Ethernet port.  
  8. Awhile back I posted about my project which I am doing to learn how to program PLC's I took an unusual approach and built a model railroad layout using parts I scavenged from machines that were being scrapped. The PLC I am using now is a Micrologix 1000 and RSlogix Micro starter lite (free software) I have been posting my progress here. https://www.nepaview.com/model-train-plc-project.html I have learned enough so far that I was able to design and build a fire suppression system for plastic sheetlines. In this case I used a Click PLC since I did not need a lot of I/O and the project is only 14 rungs of code, although I will be building on it to add more features. I had originally planned the project with a Micro 810 PLC so I downloaded the CCW software and installed it to test it out and to get used to it before I started the project. CCW gave me problems right from the start with library errors and such. I uninstalled and re-installed and it made a mess of the laptop. I then installed the software on a different computer and was getting errors (some different) but again, the software was useless. That is when I decided to change the PLC to a Click. That software ran flawless, but it is not as user friendly as RSlogix and it does not support simulation, which is a key item I want moving forward with my train project. Back In June I attended a Rockwell Automation On Tour event which was very interesting with lab and demo units set up. There was stuff there that would be applied for work projects such as some of the newer drives they have, and they also had a Micro series PLC setup as a demo. However, they even admitted that demo unit wasn't working well, and yes it was because of CCW. I did get to talk about my project with one of the engineers there and the place that held the event is a reseller and they told me they can sell to an end-user which is good. He also had some ideas for me as far as how I was coding to improve my skills and how to solve some issues I am having with the project.   I want to replace the Micrologix 1000 with something better. Aside from the fact that this PLC is obsolete and I have already had to fix it twice for output problems (replace relays) The amount of I/O is fixed and it does not support any analog I/O. With my experience with the Click PLC, I discount that already because the software is cumbersome and does not support simulation. I did eventually get the demo unit with CCW to work and had some time to write some test code, but from my understanding, the free version does not support simulation, only the developer version. Researching online, a Micro 830 with a few add on modules would give me what I need. Another option is to go with a Micrologix 1200, The RSlogix for that PLC is not free, but not expensive either and it is an environment I am used to with the starter lite version. Another option I am considering is an Automation Direct Do-More BRX PLC. The software I downloaded already and plan to kick the tires on some test code and it supports simulation, but maybe its just because I am used to RSLogix, so far it seems a bit cumbersome to use. I requested quotes from the distributor,  to go with the Micro830 series would cost about $1,300, but if I go with CCW Developer, I would probably have to put it in a virtual machine since the software seems so finicky, and I have read other peoples posts about the software which makes me question going this route. The Micrologix 1200 option is a bit more, $2,000 but in my experience with RSLogix Micro Starter Lite, its bulletproof and has never caused me any headaches. I would assume the Starter Lite version ($155 ) would be the same, just able to support the 1200 - 1500 series PLC's   Thoughts?   Mike  
  9. My Model Train Project

      In a town near me there is a railroad switching tower that has not been used in years, but it is amazingly intact. Normally they strip out anything of value when they are not used anymore but this one still has all the relay logic and electrical. The actual switches are disconnected from the track. A historical society is preserving it for tours. I have integrated signals on my layout but they are not PLC controlled. they just act on the block detects as simple electrical circuits. It is the actual train movements that I am trying to do with the PLC controls. As shown above, they way I have been going about programming it is not the right way and I have hit a wall with it. Mike  
  10. My Model Train Project

    This one is 2.5 amp output which is needed because it has to power 3 air valves plus the three photoelectric sensors. Mike  

    Here is the diagram for the tool cable for Proface. I have several proface HMI panels that I scavenged from my previous job as they were scrapping machines they let me take any parts I wanted. My intention was to use these for a PLC project but I never could get these to communicate with an Allen-Bradley PLC. I didn't build my own cables, I found on Ebay USB to Proface cables "GPW-CB03" for about $25 each. They worked well and was able to interface to the software. I just couldn't make heads or tails of the Proface software as it is an old version. I do know they support the PLC, but I just couldn't get it to talk to the PLC.  I do know these cables I bought work.   Mike   HardwareRefGuide.pdf
  12. My Model Train Project

    I have been thinking about all this and the sample code posted above should be helpful. Although a model train layout is unusual and not practical for a PLC project, I still think it can be a good learning tool. In my first post the "Main and side interchange" routine was written in ladder 2, but the plan is to move it to a subroutine later on. I wrote it that way to test it and develop it. My overall plan is ladder 2 won't do a whole lot, run any free running timers like blinkers and such and interact with the HMI panel. The train would just be running around the track and I plan to have a subroutine to do "something" One would be an interchange like I illustrated above. Input from the HMI would select that I want to interchange the running train with the one sitting on the side track. Another one would be to interchange with a train sitting on the spur track, this would work different since the train on the spur has to back out onto the main track, where the one sitting on the side track can simple run forward to get onto the main track. I can see conditional jumps being an issue and I think I can eliminate them. As for latching and unlatching outputs I think the code posted above can be helpful in figuring a way to eliminate them. A register or a value in an integer would be a better way to sequence a program rather then latching bits. Conditional subroutine calls I am not sure if I can eliminate them. Two routines come to mind, the first is my switch throw routine, during the interchange routine, the switches must be changed as the program is running. The limitations on the routine is the lack of inputs where I modified a solid state I/O card to read the LED in the switch and provide a 24 volt output to indicate the position the switch is in, but I do not have the inputs on the PLC for it at this time. So that is why I am using timers. I don't have a way to sense a jammed switch. One unconditional subroutine would be my chatter routine which uses timers to debounce the inputs from input flicker. Ladder 2 would just always call this and the input bits are simply stored in a defined B3 data. The forward-reverse routine is probably going to be the hardest to fix. Since these trains can run in forward and reverse and some trains will revert to forward on their own when they don't have track power for so many seconds, its not possible for the PLC to maintain memory bits of what forward-reverse sequence each locomotive is in. So it has to sense it by applying track power and seeing which optical sensor gets blocked. (sense its direction) Like higher level programming, I set bits to indicate which area of track I want to move the locomotive since this routine is needed in 4 areas (throughway, side, spur, main) so it is like passing variable data to it to select which region of track I want the train to move. Perhaps in the end to do this project I can't write the program exactly as it should be written for proper programming practices due to the unusual nature of what the PLC is controlling, I don't want to abandon the project as the intent is to control my around the wall layout and this would be "just for me" I have learned quite a bit from doing this project This is a project I am doing for work to help prevent embosser heater fires. Now the actual build I used a Click PLC, not a Micrologix, but I first wrote the program in RSlogix using the emulator (Click software does not have an emulation mode) So the first few rungs set up a simulated pulse train from an encoder wheel that I control with a binary bit to simulate the wheel turning or stopped. The only latches I use is when an alarm condition occurs, it is reset by a press of a button after the operator checks the line. Granted this program is pretty simple, but its a start and a project I can do for the company to improve machine safety.   Mike           EMBOSSER PROJECT ML1000.pdf Embosser Project Click.pdf
  13. My Model Train Project

    The PLC IO document I posted is actually only one page of a complete document. The complete document is shown below. Whenever I plan to use a data type in the PLC I document what its being used for so I don't accidentally re-use it in a different routine or program. I also drew out a diagram of the track layout and all the PLC I/O on the layout. I do understand the concept of seal in logic, the simple start-stop logic is a basic example of that and I do have a training manual that does illustrate that. For any given routine, it is completed in a series of steps, as shown in the program I uploaded, as each step completes, I latch a bit to indicate it is complete and it is used as a condition on the following rungs to allow those rungs to become true. I think I see where I got into trouble and my programming went off the rails is it also forced me to use latches and unlatches on the outputs.  This I see now as bad programming practice as it caused unexpected results and made troubleshooting difficult. What I am having trouble wrapping my head around is for a given routine, let me use my "Forward - Reverse" routine as an example, I explained it in the video I posted above about how the trains can act when track power is applied. Since I am using Lionel O scale trains, they can run in both forward and reverse direction. The video shows a good example of this and I used these two different locomotives because the smaller one will automatically revert to forward after track power has been off for so many seconds, where as the other locomotive will retain its forward-reverse sequence no matter how long track power is off. I think what I need to do is focus on this routine and find a better way to write it before trying to re-do any of the other programs. This routine like many others for this project will depend on a set of sequences to complete a task. The conditions of the inputs and outputs depend on what "step" the program is in. (examples would be track power, and the optical sensors) The block detect would always have to be high (train sensed in that section of track) but it would be a needed condition because if the train were to not be sensed while it is running, that would be an alarm condition (say for example if the train derailed)   Now in my training manual there is a section on sequence logic, I took a picture from one of the pages showing a simple machine and a sequence for it to complete a task, in this case it is to load a part into a clamp, drill a hole, then eject it on the outfeed convener. I am wondering if this might be a better approach since from what I am reading about this, there would only be one "Output energize" rung needed, the conditions all have to be met in sequence for the output to turn on. In the example of my forward-reverse routine, track power on the throughway or side track is conditionally on depending on what step the program is in in getting the train to move forward or reverse direction as needed.   My goal is to learn how to program and apply it. I have been given a project at work to design a system to help prevent fires in the embossing section of the sheet line. The program is not complicated and does not require any sequence. It looks for certain conditions (sheet is moving, and photoeyes above the embossing heaters are clear of obstruction) If one of these conditions is detected, I do latch a bit on to create the alarm condition and the operator has to press a reset button to clear the condition once he checked the line. So even though I am at a roadblock with my model train project, what I have learned so far has allowed me to design this project. Another one I designed is for a process that requires bottled compressed gas, two tanks would be connected and the process draws on one of the tanks, when the tank runs empty, it switches to the other full tank automatically and alerts the operator that the empty tank needs to be changed and then a button is pressed to purge out the atmosphere and then the tank is considered ready for use. I also made an HMI screen for this as practice since I also want to include a HMI panel with my layout.   The video you posted is very good, I agree it is very important to document. I have made design changes and improvements to equipment before and I wrote documentation for both the operators and technicians so they know how to operate the changed equipment, and for the technicians to help troubleshoot, in the event of a problem. Once this embosser project is more complete, I do plan to write up a complete document on how it works and what it does. (I used a Click PLC for this project)   Mike   BLANK PLC PROJECT.pdf Data files blank.pdf
  14. My Model Train Project

    Over the past week I have been thinking about the approach I have been taking for this project and done some research online. I have basically hit a wall with this project and the last program I was working on does not work and troubleshooting it has been a nightmare, and for reasons mentioned above  by the reply from "PLC Mentor" From what I have been able to gather so far is the idea that I am using a binary set of data as steps in the program is probably ok, since the types of programs I am writing are done in a series of steps, a certain combination of inputs must be satisfied then the program can go on to the next step. From what I have been reading, when it comes to the outputs, that there should only be one rung in the entire program that would allow energizing that output, and latching & unlatching that output is not a good idea. With the interchange program I posted above, in several of the steps, I do latch the output for say, throughway track power, then a few steps below it, I unlatch it. Once the step is complete in the rungs that have the output latched, those rungs go false so it should not latch it again. Then when the program gets to the step where it needs to de-energize the throughway track, it unlatches that output and stops the train. From the feedback I got so far, this is bad practice. Now when an alarm condition occurs, I do latch the binary bit that is designated for the alarm code. (B3:20) which I figure is ok because I want the alarm flag to be set until there is action taken by the user to clear the alarm and then reset it. (clearing the alarm bits) Breaking the program down into the steps it performs to interchange the trains this is the text of it 01- Wait for automatic mode & E-stop is clear 02- Energize main line track (This stays on while in automatic mode) 03- check to make sure trains are in throughway and side 04- Throw switches 1 and 2 to throughway (Ladder 6) 05- Reset counter 06- FWD-REV sequence Throughway to move train forward (Ladder 7) 07- Counter increments when train passes into block #5 (crossing flasher) 08- Count cycle up, pull train into throughway and stop it (Drop track power) 09- Throw switches 1 and 2 to Turnout (side track) (Ladder 6) 10- Reset counter 11- FWD-REV sequence side train to move forward (Ladder 7) 12- Counter increments when train passes into block #5 (crossing flasher) 13- counter up, pull train into side track and stop it (Drop track power) 14- Repeat sequence starting with step 4 So with the steps outlined above, there is interaction for the same outputs in several steps. Attached is the PLC Inputs & Outputs defined. This program will energize and de-energize the throughway and side track power as it proceeds. I need some suggestions or some ideas on how I can properly write these programs as to have good code, I have used a training book by the "PLC Professor" and it has been very good, but the sample programs are shorter and don't illustrate the situation I am dealing with. Is there a resource or information I can find that can help me figure out a better way to do the programming for the model train layout? I still think the model train layout is a good idea and I do eventually want it to control my around the wall layout in my living room, this is why I made a mock-up of that exact layout so it conforms to the way that layout is designed. I do realize there are some limitations to my current setup, since I have used all my inputs and outputs, as of now I have no way of sensing the switch's actual position, I just energize the switch throw routine for a half a second to throw the switches and hopefully the switch doesn't jam. There is also no analog I/O so there is no way to sense the throttle being applied to the track and no way to adjust it from the PLC. I do plan later on replacing this Micrologix 1000 with something else that is more "modern" is it is an outdated PLC, but it was an inexpensive way to get started. I am thinking of the Micro series since I will be able to add more I/O to it to have better control of the layout. That is down the road, right now I am faced with this problem and after reading what "PLC Mentor" said about the program, it does make a lot of sense that the way I am going about this is wrong.   I would very much appreciate any input or direction on designing and writing these programs better. Mike     PLC IO.pdf
  15. My Model Train Project

    First, I want to thank you for your feedback. Although you are correct that this setup is "Just for me" my intention with doing this project is to learn how to do PLC programming. I do have roots in programming in high level languages on older 8 bit microcomputers and I think that has been an influence on how I am writing this project. As I was writing the routines for this project, I was getting a sense that my approach to programming the PLC isn't the right way to do it. This program I posted was that last one I had working "properly" The program worked well and the trains did what they were programmed to do, and any unusual condition was accounted for, as in when the train overshot and blocked the sensor. I was working on the next routine, to park the train but I hit a wall with the program and could not get it to work properly, I basically hit a wall with it and then I realized that what I am doing is not going to work. I really need to step back and come at this from a whole new angle. Your feedback on using latch/unlatch, conditional JSR, and JMP statements makes sense. Trying to troubleshoot the routine I was writing and looking at the program online, I now see what you mean, I was seeing unexpected results even though the logic looked good. As you pointed out, I do have to do the masked move to the outputs to insure they are shut off because I used latches and unlatches in the code.   I decided to do the layout because I was thinking of it as a "machine" I wanted a real world example of a machine rather then the training units which have the buttons and toggle switches for the inputs. (I do have that, and used that for my initial programs) Even in the design of the hardware for this layout, I even included a safety relay with an emergency stop circuit. I wanted to include a safety circuit in this because all industrial machines need it to protect the person from harm. (in this case, no harm would ever happen other then the trains crashing into each other) I do understand what you are saying about using the latches and unlatches which does make sense now. From reading a book I purchased on PLC programming sequence logic is used in programs and for this type of setup, I will have to use that, as there are steps to perform to complete a routine. That is the binary bits I am using for the steps and as each sequence is completed, it sets the bit so it can move on to the next step in the routine.   I actually only recently did the "traffic light" program because after I hit a wall with my project, I wanted to step back and go back to the basics, plus I also have purchased a C-More HMI panel and I wanted to improve my skills at programming the HMI. I also wrote a program for something we used to have in my old place of employment (the plant is now closed) We used argon gas for a metalization process and there was a PLC which was programmed by someone else (I never saw the code) what it would do is there would be two tanks of argon and the device monitored the pressure in the tanks, the first tank would be in use and when it ran empty, the unit would seamlessly switch to the other tank and then alert the user that the tank has run empty by blinking a light for that tank. Once the user replaced the empty tank with a full one, he would press the button and it would open a valve for a second to purge out the atmosphere from the line and the alarm would go out and that tank was ready for use. I successfully made that program and even did the HMI graphics for it. (It also allowed switching tanks by holding down both buttons for 5 seconds, the HMI does not allow that, so I have a third "button" to act as both buttons) My ultimate goal is to learn how to program PLC's. Recently I was given a project where I work now to help prevent fires in the embossing process. A sheet of plastic is extruded on the line and as it travels down the line, in some cases the customer wants the surface embossed with a pattern. The sheet passes between heaters on both surfaces to soften it so the roller can emboss a pattern on the sheet. Fires have occurred for several reasons, one is if for any reason the sheet movement stops, the part of the sheet in the heaters melt and then catch on fire. Second is if the movement slows of if the operator is changing to a different thickness, the sheet might soften to the point of bowing down towards the bottom heater and then catching fire. I have successfully written the program for this project.   I guess I really need to step back and approach my model train layout from a different angle. What I have learned so far has helped me in writing these smaller programs, but it is clear what I am writing for the train project is "off the rails" (pun intended)