4

I've spent hours and a trees worth of paper sketching and I haven't been able to stumble upon anything to get me past this problem. I'm able to switch back and forth between two motors but I can't figure out how to turn the motors off while switching between them, while still following the criteria below.

Using ladder logic:
Use only one start stop station consisting of only one NC contact and one NO contact, two motor starters and three control relays create the following cycle. (No timers or counters)

  1. When the start button is pressed motor 1 will start and run until stopped by pressing the stop button.
  2. When the start button is pressed again motor 2 will run until stopped by pressing the stop button.
  3. When the start button is pressed again motors 1 & 2 will run until stopped by pressing the stop button. Pressing the start button again will now start the cycle over.
eglease
  • 2,445
  • 11
  • 18
  • 28
internRob
  • 61
  • 6
  • What you are requested to do is in essence build a finite state machine that models the 3 phases, and explicitly tells you which phase. 3 states means you need two bits/latches/booleans to track the 3 phases. Given the current phase, the "start button" should cause you to change the phase bits to represent the next phase, and while still held, run the motor in that phase. This should help; give it another whirl. (If you don't know what a finite state machine is, LEARN NOW, it is key to factory programming. Check wikipedia for a starting place). – Ira Baxter Aug 14 '14 at 16:48

2 Answers2

3

Ira Baxter is right. You should use a state machine. I have set-up one below. Normally you would draw such a state machine using circles and arrows, but this will do for now I guess...

Although you talk about having 3 different steps (states) I actually see 6 states:

State0: Both motors are switched off (If start button pressed goto state 1) 
State1: Motor 1 running (If stop button pressed goto state 2)
State2: Both motors are switched off (If start button pressed goto state 3)
State3: Motor 2 running (If stop button pressed goto state 4)
State4: Both motors are switched off (If start button pressed goto state 5)
State5: Both motors are running (If stop button pressed goto state 0)

What you should do is have one block determine the state (0..5) and have the motor-control blocks react to that state.

Ira Baxter
  • 93,541
  • 22
  • 172
  • 341
Bigman74066
  • 408
  • 4
  • 12
  • Yes I have not problem seeing 6 states, and I'm fully capable of creating ladder logic that will accomplish the all 6 states. Hell I can actually program varying brands of PLC's to complete this task without ladder logic. I just can't figure out how to do it using only one start stop station consisting of only one NC contact and one NO contact, two motor starters and three control relays. – internRob Sep 09 '14 at 18:58
  • With those restrictions, it sounds like the assignment is that you have to code the 6 states in a memory consisting of the the three control relays. Maybe considering a Gray code would help. – Dave X Dec 01 '15 at 05:02
0

If you are limited on relays and don't want state machine you can do it with only 2 relays. Use logic flags to solve it. This example assumes you have rising edge contacts and set+reset coils as starters. I can't write ladder code here so I do what I can:

START is NO button and STOP is NC button. M1+M2 are motors F1+F2 are relays

START  M1   M2   F1  F2   M1
-|P|--|/|--|/|--|/|--|/|--(S)

STOP   M1   M2   M1  F1
-|N|--| |--|/|--(R)--(S)

START  M1   M2   F1  F2   M2
-|P|--|/|--|/|--| |--|/|--(S)

STOP   M1   M2   M1   F2   F1
-|N|--|/|--| |--(R)--(S)--(R)

START  M1   M2   F1  F2   M1   M2   F2
-|P|--|/|--|/|--|/|--| |--(S)--(S)--(R)

STOP   M1   M2   M1   M2
-|N|--| |--| |--(R)--(R)-
Ilya Dan
  • 301
  • 1
  • 8