Again and again. How to start?

Alex Pel

Member
Join Date
Feb 2004
Location
Vancouver
Posts
145
Hi, All!
Great forum, I enjoy reading for almost one year.
I am an electrician, PLC panel builder. Also I participate in start-up of water/wastewater projects by setting VFDs and instruments, and I do as-built drawings.
The next step in my professional growth I consider as a PLC programming. Unfortunately our company doesn’t do this job. We receive already designed projects and that engineers do the programming too. Sometimes I even didn’t see the programmer who uploads the code on-line. I would like to say my boss: - “I can program the PLC. Include RSLogix 500, RSLinx and programming time in your next bid” but I am not ready yet.
AB instructions are not problems for me, but as someone mentioned here: - “The problem is – to bring all of them together”. I understand how everything works in our projects, theoretically I can design and write the program but I have never seen any real world program. I suspect there are lots of details like: safety, reliability, etc.
So, Ladies and Gentlemen all I need to start, as I think, is a real world water or wastewater project to learn. I have RSLogix 500 Starter 10pt but very soon I am going to get the real RSLogix 500. I will be highly appreciative for any suggestion. Thank you very much All.
 
I'm a firm believer in learning by doing. Someone else may suggest something better, but you could start by doing a make believe project based on your real world situation.

1. Describe your application, whatever it may be. Be sure to include interlocks, faults, alarms etc....

2. Make a list of all your I/O, type, voltage, etc...
24V discrete in/out, analog in/out, pulse etc...
3. Specify your hardware.
PLC, instruments, etc....
4. Write the programm for above.
5. Post your project and someone will help you.


Ken
 
Try an imaginary washing machine.

They have everything a beginner can wish for.

They have valves (Hot and cold)
2 motors (spin and drain)
Temerature control
Level controls
Different selectable cycles.

Watch your washer and try programming one.

Make the spin motor go forward/pause/reverse. Move the cycle along.
Add detergent then softener. drain and rinse and spin.

Its a program you can write bit by bit for something you are familiar with
 
Hi

You must to come here with your concept.Describe what you want to achieve ,We will try to guide you.
We just dont have the the starting detailes.
Observe the plant look on the devices try to think what every thing is doing.
Try to be the most specifics as you can.
We will do our best.
 
My job is: build panels, install all equipment, check starters. Someone else upload PLC code and everything is working. I have no chance to learn technology.
The smallest project I have done is a pump station:

1. Jockey pump - 1HP
2. Duty pump #1 – 3 HP
3. Duty pump #2 – 3 HP
4. Fire pump – 40 HP
5. Generator - 75 KW
6. Automatic transfer switch
7. System pressure transmitter
8. Suction pressure transmitter
9. PLC - ML 1500

I/O List:

I:0/00 – Alarm reset
I:0/01 – Power monitor
I:0/02 – Alternate signal
I:0/03 – Duty pump lead signal

I:1/00 – Jockey pump auto
I:1/01 – Jockey pump seal-in
I:1/02 – Jockey pump fault
I:1/03 – Duty pump # 1 auto
I:1/04 – Duty pump # 1 seal-in
I:1/05 – Duty pump # 1 fault
I:1/06 – Duty pump # 2 auto
I:1/07 – Duty pump # 2 seal-in
I:1/08 – Duty pump # 2 fault
I:1/09 – Fire pump auto
I:1/10 – Fire pump seal-in
I:1/11 – Fire pump fault

I:2.0 – System pressure
I:2.0 – Suction pressure

O:0/00 – Jockey pump start
O:0/01 – Duty pump # 1 start
O:0/02 – Duty pump # 2 start
O:0/03 – Fire pump start
O:0/04 – Jockey pump start
O:0/05 – Duty pump # 1 fault
O:0/06 – Duty pump # 2 fault
O:0/07 – Fire pump fault
O:0/05 – 1st. start pressure
O:0/06 – 2st. start pressure
O:0/07 – Fire pump start pressure

No idea, what is Jockey pump for? What Alternative signal is? What initiative device of Fire pump is? What is the difference between events: “Duty pump # 1 start” and “1st. start pressure”? How does “Suction pressure” affect outputs?
Only engineers who design this project know the step sequence. I can’t ask them about because it’s not a part of my job.
For learning purpose, should I innovate my own technology? I think it is not god idea. I need the PLC code to understand technology :). So, I am stuck.
I also believe that the best way to learn by doing. All I need just to be involved in a real project. I am not sure, that after I wrote the imaginary washing machine program I would be able to offer my boss something. But as I can see, I have no chose. To start, I must design something like imaginary small pump station that should provide all necessary requirements of real one.
Thanks again. I believe there is no hopeless situation.
 
If you havent already got it, Get hold of the Programming software for previous projects, and study the code, This how i started. Once you hit something you dont understand, then start asking questions.

You can learn a hell of a lot from reading and understanding proven programs, i.e program structure, Hardware configuration etc. Lastly try and build up a rig which you can practice and debug on.

Hope this is some help to you

Steve
:site:
 
stevo said:
If you havent already got it, Get hold of the Programming software for previous projects, :site:

I have no access to previous projects, it’s locked by city gays.

Ok. Now I have my concept. It’s a simple sewage pump station I have designed. Tomorrow I am going to explain how it works.
 
Ok. A 2 miters wet well continuously filled by waste water.
Than water rising:
At the 0.6 m – start the Mixer.
At the 0.8 m – start FIRST PUMP
At the 1.2 m – start SECOND PUMP
At the 1.4 m – HIGH LEVEL ALARM, PLC FAILURE MODE
Than water goes down:
At the 0.5 m – stop the MIXER
At the 0.3 m – stop both Pumps

Steps sequence

1. Check the POWER MONITOR
2. Check the ALARM RESET
3. Check the HIGH LEVEL
4. Do the level measurement from ULTRASONIC LEVEL TRANSMITTER
5. Implement output logic.
6. If FAULT, sent the massage to city department
7. GOTO step #1

Now I'll try to build FLOWCHART.
 
a curve ball

Also, for a twist.....a common request in this application would be to alternate the 2 pumps. Have a different pump start first each cycle. There have been threads on the validity of doing this, but it's something that is basic and will give you practice. If you feel it's too complicated, leave it out. Good luck, and keep us posted!

Greg
 
Thanks Greg, I include the alternation of pumps.
Below is my first version of FLOWCHART.
I have to design FAULT SUBRUTINE yet and still don’t understand, Why I need PUMPs RUN and AUTO inputs?
Frankly speaking, it is no problem to convert my FLOWCHART into PC language, but I just wonder how I will convert it into Ladder Logic?
Thanks everybody for consideration.
 
Generally speaking, If you are going to run a process in "automatic", then all of your devices need to be in "auto" also.
Before the logic starts, you check to ensure all devices are in auto, if they aren't, you fault the logic and sound an alarm. After the logic is running, if a device is taken out of auto, you may or maynot fault the logic depending on the application.

At my facility, before any sequence, we check that all devices are in auto, and not faulted, befor we start the logic. Once the logic is running, if a device is placed in manual, we do not fault the logic as long as the device stays in the desired state.
 
If it can help you, this would be my approach.
I would make the pumps work depending on the working conditions, something like this (don't know AB-language):

first you define the conditions,

L LEVEL_1
< 0.6
= HIGH_LEVEL1

etc..

once you have all your boolean conditions, you define when the output should be on


OR PUMP1_WORKING {working conditions}
OR HIG_LEVEL1
AND_NOT LOW_LEVEL {stop conditions}
AND PUMP1_AUTO
AND_NOT PUMP1_FAIL

= PUMP1_WORKING {output}

In my opinion, no flowchart for this one.

P
 
PLC Programming is a Journey, not a Destination.

Alex:

Just prior to your joining this forum, I wrote a little treatise (with comments from Terry Woods) on How to Start. I'll reproduce some of it here:



[Rainbow]PLC Programming is a Journey, not a Destination.[/Rainbow]



#1. YOU HAVE TO KNOW WHERE YOU ARE STARTING FROM.
Before you start writing code, you must come up with as complete an I/O list as possible.

The list will grow and change as you do the second task. But that's OK. You've got to start somewhere.


You have a good I/O list, from what looks like a previous job. In looking over it, though, I note some irregularities, particularlly in your outputs.

What is the difference between:
O:0/00 – Jockey pump start
and
O:0/04 – Jockey pump start

Does the PLC really have outputs
O:0/05 – Duty pump # 1 fault
O:0/06 – Duty pump # 2 fault
which CAUSE the pumps to fault? Or are these indicator lights (as might be O:0/4 above)? If so, your I/O list should make that clear.

One technique I try to teach newbies when annotating code - USE VERBS! Verbs let you know exactly what is going on. For example, you have:
I:0/03 – Duty pump lead signal

Perhaps a better description might be (if I'm guessing it's purpose correctly):
I:0/03 – Pump #1 is selected for lead duty.

With the verb "is selected", there's no confusion as to what's going on. Furthermore, when you get to coding, then -| |- means "is selected", and -|/|- means "is not selected" (which may be the same, as "Pump #2 is selected", or it may not. Study Logic (philosophy course) and learn the difference between "imply" and "infer".





#2. YOU HAVE TO KNOW WHERE YOU ARE GOING TO.
You need a careful, detailed sequence of operations. As you develop this sequence, you'll be realizing that you may have gaps in the I/O, Fill them in, and then review your sequence again.

Be sure your sequences are detailed enough.

The hardest thing for a lot of guys to overcome is the tendency to take things for granted. They don't consider the details - all of the details!

I usually suggest that a person needs to "Be the Computer". However, that might be a little presumptive in this case.

Another thing I suggest is that a person think of how they would control the system if they had to do it at a completely manual control station. However, that too might be a little presumptive... it presumes all input and output signals exist. It's too easy to overlook a detail.

Your sequence / flow chart is a good start, but there are many holes in it.
For example, you refer to a "MIXER" in the sequence, but your I/O list doesn't have anything called a "MIXER". You have a "Jockey Pump" and a "Fire Pump", but no "MIXER". Is your I/O list missing something?

That's the second thing that I try to drill home to newbies: BE CONSISTANT IN WHAT YOU CALL THINGS. Lots of stuff goes by many different names, for the same dohickey in the same plant. In the long run, it doesn't matter if you refer to it as TK-123 or Neutralization Tank or Waste Treatment Tank or The Old Rust Bucket, as long as you're consistent. If you're not, someone who doesn't know as much as you do won't be able to follow your code. ("Why is the Waste Treatment Infeed pump on when the Neutraliation Tank valve is open?). For that matter, YOU won't be able to follow your code 6 month from now.




Once you have your I/O list and a good sequence, you're ready to START your journey.
#3. YOU HAVE TO KNOW HOW TO GET THERE.

There are no shortcuts. You start by understanding how logic is scanned (especially how, what you do on one scan, will affect what happens on the next), and knowing your instruction set. For beginners, -| |-, -|/|-, -( )-, Timers and Counters are enough instructions. (Since you have analog inputs, you'll need to understand some of the math functions too).


Then you start with the outputs. Just draw them out in space like this:

MIXER
. . . . . . . . . . . .---( )





`
Then look at your sequence.
When does the mixer come on? - When the Level is greater than 0.6 M

So you add this out in space:

MIXER
----| LEVEL > 0.6 |-----+ . . . . . . .---( )




`
Your sequence implies, but does not speficially state (which means you need to go back a step and revise it), that "Once started, the mixer keeps on running, until the level drops to 0.3 M."

The line in the sequence: "Once started, the mixer keeps running" means that we need to "latch" or "seal" (epending on your age and where you went to school) the pump, like so:


MIXER
----| LEVEL > 0.6 |-----+ . . . . . . .---( )
|
MIXER |
--------| |-------------+



`
The Mixer stops when the level gets below 0.5 M. Another way of saying this is that the mixer keeps running as long as the level is ABOVE 0.5

Adding that yeilds the complete rung:

MIXER
----| LEVEL > 0.6 |-----+-------| LEVEL > 0.5 |--------( )
|
MIXER |
--------| |-------------+




`



#4. YOU HAVE TO EXPECT DETOURS.

With the completed code, you start asking yourself "What-If" question?

"I know what's supposed to happen when the one pump fails. What if they BOTH fail?"

"What if the a pump fails. Shouldn't the PLC tell somebody?"
If so, how. Lights? Noise? How will those be turned off once the problem is fixed?

"What if one pump is not in AUTO, but the "PUMP IS RUNNING input indicates that the pump is running (and it's the lead pump? Should I start the lag anyway, because the lead is not under my control, or wait until LEVEL > 1.2 to start the Lag pump?"




This "map" is just a start. If you are serious about learning PLCs, get PHIL'S BOOK (or video, if you learn better watching things move).

Step-by-step. Plain English. It will not just teach you about PLCs, but might even show you how to think in the methodical manner required, not just for PLCs, but programming in general.

I repeat:

IN THIS JOURNEY, THERE ARE NO SHORTCUTS.
But there is a lot of running back home (Step 1 - Make an I/O list) to get the thing that you forgot to take with you.

Good luck
 
Last edited:
I'm so sorry. My inconsistency confuses people.
My post about “JOCKEY PUMP” was my first attention to start. I have posted I/O list from existing project but I didn’t understand it enough to use as an example. After that I designed small project there I am confident, it is about “MIXER”. I have posted new I/O list for it in attached drawing.
Any way, thanks Allen, your treatise is a good guide for me.
 

Similar Topics

When I connect to the site PLCS.NET is checking to see if the connection is secure. I click on a topic and it does it again. Click back and it...
Replies
20
Views
1,194
This old chestnut again... Our clocks (UK) went back an hour yesterday. Now the time displayed on the HMI is 1hr behind what it should be. In...
Replies
24
Views
1,929
My Lenovo P50 has served me well. it is still working, but I want to get something newer before I can no longer get a laptop w/ windows 10. I was...
Replies
23
Views
6,641
Wizards, I have been gone from my plant for a while and upon returning I have two, 480vac-24vdc power supplies on my desk with DEAD written on...
Replies
4
Views
2,249
Hey Folks. I'm having a little issue with a Kinetix350. Long story short. I have burned 2 2097-V34PR5-LM in the past few months on the same...
Replies
6
Views
2,712
Back
Top Bottom