PLC Ladder Diagrams - Traffic Lights


Thread Starter

Gary Picking

I am looking for some help on writing a program to control one set of traffic lights, with pedestrian warning lights for a typical UK crossing - the one with a flashing amber and green man. Anybody have any ideas on how I would go about programming the flashing bit.

Thanks in advance.
you could always use two timers

I t1:25/dn t1:24
I-----] [--------TON-----
t1:24/dn t1:25

Something like that... Or you can use a Status bit which I cant quite remember which one it is I think it's S4:0/0 or something. You can look for it yourself

Jeffrey Eggenberger

Write out your flow diagram first. Try looking for a beginner book on programming. Any problem can be broken down into smaller problems, that is
the reason to use flow charts. You need to diagram what is going to happen, and under what conditions. Also account for problems such as power outages. What will happen on power up? Are you going to sync with other traffic lights for smooth traffic flow? Are you going to use sensors in the road surface to detect someone waiting for the light? A good way to start is to carefully observe an existing system, and take note of all timing and conditions.



We used a SIMATIC S7-200 based system. The idea is quite simple. We have used a technique similar to drum controller. Two sets of tables (One for
states and one for time) are used. A pointer is set up that is incremented along the state table after the elapsed time (from its own table).

For flashing, one way (in S7-200) is to use the Special Memory Bit(SM). There is one with freq=1/2 sec and 50% duty cycle. The other way is to simply make you own using a pair of timers.

What are you using as a controller? If the crossing is small, maybe you can use SIEMENS LOGO (We have used this as well for 1 Mains + 1 pedestrian crossing) or AB Pico or one of the small ones available from almost every PLC vendor now.

Good Luck!


Richard Norris

One point not raised is the requirement of redundancy in regards to the safety of a traffic light system. There is available plc's for this purpose. If it is not for use in a real situation and just a plc project for learning purposes then the AB plc offers a sequencer which is ideal for this prupose
One way would be to:
Note all of the possible combos. of lites.
Find the decimal equivalent to each combo.
Store these decimal representations in registers
sequentially based on the sequence of the lites.
Use a sequential output block (or equiv)at a given rate to move these registers into the output module to display your lites.
Think about how these lites will sequence after a power outage.
This was a classic,some people in my class got it down to two rungs.


Bruce Durdle

You can also monitor the current through each lamp, and feed that back to the program as a check.



On the issue of the current monitoring. How can we perform that action? Using a CT on the output and checking it the current falls below a certain limit (say normal is 1.0A when ON and fused is lesser?

One observation though: Using a CT on each bulb would spiral the cost upwards. If we use a mux, then the program gets complex?

Comments welcome!


Bruce Durdle

I can't remember the details, but this was used on a project I was involved with a few years ago - (we just moved the application from a common process PLC to a dedicated one because of safety implications). I have an idea there was a special component available - it wasn't a CT but may have been a small resistor in the neutral end of the lamp circuit. Bulb blows - no current - no volts.

Shahid, I apologize for reaching you via the List, but e-mail address I received didn't work. Please retry with your Fax No.

The point I was trying to make was that I/O Diagnostics has far greater impact on SIS (even Traffic Control) performance, not Redundancy...
especially not TMR!

Phil Corso, PE
(Boca Raton, FL)