Of course you SHOULDN'T give up!
Consider the following...
You've got three major functions... The Clamp, the Vertical Motion and the Horizontal Motion. These functions are controlled by five separate outputs.
The Clamp is controlled by only one signal - OPEN CLAMP.
(The spec is a little confusing about the operation. I will assume that those time delays are supposed to be delays before subsequent movement by the Arm.)
The Clamp has to be driven to Open. The Clamp is either told to Open, or it is not told to Open.
The default position is Closed.
The Vertical Motion is controlled by two signals - LOWER THE ARM and RAISE THE ARM.
If neither signal is ON then the Arm maintains its current vertical position.
There is no default position.
The Horizontal Motion is controlled by two signals - TRAVERSE RIGHT and TRAVERSE LEFT.
If neither signal is ON then the Arm maintains its current horizontal position.
There is no default position.
So... working backwards from the outputs...
Let's discuss the Horizontal Motion, the Vertical Motion and then the Clamp, in that order. The Clamp is the more complicated part so I'll leave that until last.
The following describes the "conceptual cause" for driving a particular output. The idea is to think like a human and develop "conceptual causes" for the activity.
HORIZONTAL CONTROL
Why would you turn ON the "Traverse Right" output?
1. In order to "align with the place-station".
Align with
Place
Station
---| |---------( Y3 ) TRAVERSE RIGHT
M10
.
Why would you turn ON the "Traverse Left" output?
1. In order to "align with the pick-station".
Align with
Pick
Station
---| |---------( Y4 ) TRAVERSE LEFT
M11
Yes! Conceptually, it is that simple!
You go to the right to align with the Place-Station! And you continue doing so until you are aligned!
You go to the left to align with the Pick-Station! And you continue doing so until you are aligned!
Now, regarding "Traverse Right"...
...under what conditions would you want to... "Align with the Place-Station"?
1 The Clamp HAS a part. <<< This is NOT a "sensed" condition! (more later)
2. The Arm is at the Upper Limit.
3. The Arm is NOT aligned with the Place-Station.
Clamp Arm At Aligned
Has Upper with
Part Limit Place
---| |--------| |--------|/|-----( M10 ) Align with
M3 X2 X3 Place-Station
.
Once the Arm is in the upper position,
with a part in the clamp, then the Arm should "Traverse Right" until it is at the right-side limit (X3).
Now, regarding "Traverse Left"...
...under what conditions would you want to... "Align with the Pick-Station"?
1. The Clamp does NOT have a part. <<< This is NOT a "sensed" condition! (more later)
2. The Arm is at the Upper Limit.
3. The Arm is NOT aligned with the Pick-Station.
Clamp Arm At Aligned
Has Upper with
Part Limit Pick
---|/|--------| |--------|/|-----( M11 ) Align with
M3 X2 X4 Pick-Station
.
Once the Arm is in the upper position,
without a part in the clamp, then the Arm should "Traverse Left" until it is at the left-side limit (X4).
Now, why am I using M10 and M11?
At this point, it is primarily to keep the specific details of the "cause" separate from the "conceptual cause". As you become more experienced, you might find the need to employ Manual Controls on this project. For example, you might want to add the ability to simply move to the right by only a few inches. This would require a different "conceptual cause" to drive the arm to the right. For example...
Align with
Place
Station
---| |-----+----( Y3 ) TRAVERSE RIGHT
M10 |
|
JOG |
Right |
---| |----+
M33
.
The specific details regarding "JOG Right" would then have to be developed, separately, just as Align with Place Station was developed.
VERTICAL CONTROL
Why would you turn ON the "Lower the Arm" output?
1. In order to "fetch" a part from the "pick-station".
2. In order to "deposit" a part at the "place-station".
Fetch
Part
---| |---+-----( Y0 ) LOWER the ARM
M12 |
|
Deposit |
Part |
---| |---+
M13
.
Why would you turn ON the "Raise the Arm" output?
1. In order to "lift" a part from the "pick-station".
2. In order to "clear" the "place-station" after depositing a part.
Lift
Part
---| |---+-----( Y2 ) RAISE the ARM
M14 |
|
Clear |
Arm from |
Place |
---| |---+
M15
.
Regarding Lower the Arm...
...under what conditions would you want to... "Fetch Part"?
1. The Arm is aligned with the Pick-Station.
2. The Clamp does NOT have a part. <<< This is NOT a "sensed" condition!
3. The Arm is NOT at the Lower Limit.
Aligned Clamp Arm At
With has Lower
Pick Part Limit
---| |--------|/|--------|/|-----( M12 ) Fetch Part
X4 M3 X1
.
...under what conditions would you want to... "Deposit Part"?
1. The Place-Station is Empty
2. The Arm is aligned with the Place-Station.
3. The Clamp DOES have a part. <<< This is NOT a "sensed" condition!
4. The Arm is NOT at the Lower Limit.
Place Aligned Clamp Arm At
Station With has Lower
Empty Place Part Limit
---| |---+---| |--------| |--------|/|-----( M13 ) Deposit Part
X5 | X3 M3 X1
|
Deposit |
Part |
---| |---+
M13
.
Notice the parallel portion. I don't know how the Photo-Eye (X5) corresponds to the Arm at Lower Limit switch. That is, it could be that the Photo-Eye would stop the downward movement just before the Arm got all the way down to the Lower Limit. Adding Deposit Part in parallel with Place Station Empty ensures that the Arm will not begin going down unless the station is empty, and then will continue to go down until it is at the Lower Limit. You only need to look at X5 long enough to know it is OK to begin depositing the part.
Regarding Raise the Arm...
...under what conditions would you want to... "Lift Part"?
1. The Arm is aligned with the Pick-Station.
2. The Clamp DOES have a part. <<< This is NOT a "sensed" condition!
3. The Arm is NOT at the Upper Limit.
Aligned Clamp Arm At
With has Upper
Pick Part Limit
---| |--------| |--------|/|-----( M14 ) Lift Part
X4 M3 X2
.
...under what conditions would you want to... "Clear Arm from Place"?
1. The Arm is aligned with the Place-Station.
2. The Clamp does NOT have a part. <<< This is NOT a "sensed" condition!
3. The Arm is NOT at the Upper Limit.
Aligned Clamp Arm At
With has Upper
Place Part Limit
---| |--------|/|--------|/|-----( M15 ) Clear Arm from Place
X3 M3 X2
.
Now, let's talk about "Clamp has Part" (M3).
Let me remind you... the spec is awful! There is a conflict in the descriptions of the Clamp on the Arm and the Clamps on the Tables. The "timing" is also weird.
Conceptually, when the Arm is at Home, without a part, it needs to "Fetch a Part".
Apparently, this is a "single-cycle" process started by the pushbutton.
So... when the button is pressed, the Arm goes to get the part.
I'm going to assume... that the time delay is to allow the Clamp to be fully closed on the part before "Lifting" the part.
So... with the Clamp Open, the Arm arrives at the Lower Limit and closes the Clamp.
After 1.7 seconds, "Clamp has Part" goes TRUE. Then the Arm lifts the part and carries on.
With the Clamp Closed on the part, the Arm approaches the Place Station. After arriving at the Lower Limit switch, the Clamp Opens. The timer runs. At timeout, Clamp has Part goes FALSE.
This is enough for now... let's see what you think, and what you come up with.