The other question I have (and you would see why when looking at the program outputs) is this: How do I "group" or "combine" my binary outputs so that as a combination they give the servo the right command.
For example, 'A' = stop, 'B' = go, but outputs A+B = move from station 1 to station 6.. If it reads my outputs separately you can see the obvious problem.
PCS1,
I realized on the drive home last night that I left out some details of how to do this.
The spreadsheet that you also attached has the matrix that we will apply the internal bits to the outputs that will control the servo.
There is one point I am not clear on. You said
There are three zones/lines. The first and last have six stations. The second has three stations. Each zone has it's own carriage to move the packages from station to station.
It has a lift cylinder that raises the carriage with the package, then a servo motor to move it to the designated station. It can only move to the next available open station.
Once there, the cylinder retracts, dropping the package in that station until the next move.
The carriage is free to go to another station and move other packages along at that point.
It might be just me but I'm having trouble with understanding the sequence.
Correct me if I'm wrong on the priority sequence.
1. All the stations are empty.
2. The forklift places a load at station #1.
3. If the carriage is not at station #1 it needs to go to station #1
4. Here is where I run into trouble. Does the Y0, RAISE lift Cylinder Solenoid need to activate at this point?
5. Run servo to station #6.
6. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
7. Forklift places a load at station #1
8. Run servo to station #1
9. RAISE lift Cylinder Solenoid?
10. Run servo to station #5
11. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
12. Now station #6 is empty.
13. Run servo to station #5
14. RAISE lift Cylinder Solenoid?
15. Now the fork lift places another load at station #1 (ignore this until the carriage has placed the load at station #6)
16. Run servo to station #6
17. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
18. Run servo to station #1
19. RAISE lift Cylinder Solenoid?
20. Run servo to station #5
21. Meanwhile, there is another load at station #1 (ignore this until the load that is on the carriage is placed at station #5)
22. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
23. Run carriage to station #1
24. RAISE lift Cylinder Solenoid?
25. Run carriage to station #4
26. Meanwhile, there is another load at station #1 (ignore this until the load that is on the carriage is placed at station #4)
27. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
28. Run carriage to station #1
29. RAISE lift Cylinder Solenoid?
30. Run carriage to station #3
31. Meanwhile, there is another load at station #1 (ignore this)
32. Ooops! station #6 is empty continue servo run to station #3
33. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
34. Run carriage to station #5
35. RAISE lift Cylinder Solenoid?
36. Run carriage to station #6
37. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
38. Run carriage to station #4
39. RAISE lift Cylinder Solenoid?
40. Run carriage to station #5
41. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
42. Run carriage to station #3
43. RAISE lift Cylinder Solenoid?
44. Meanwhile, there is another load at station #6 (ignore this)
45. Run carriage to station #4
46. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
47. Run carriage to station #1
48. RAISE lift Cylinder Solenoid?
49. Run carriage to station #3
50. Zone 1 Carriage, LOWER lift Cylinder Solenoid?
Have I got this correct?
Priority rules:
1. The station with the highest number has priority.
2. All loads are "shuffled" down to the highest station number.
3. The carriage cannot move one load past another load.
Have I got this correct?
Question: Does the carriage servo need to run at different speeds, loaded, unloaded? I do not see any spreadsheet listing for this. Depending on how the program works out this might be hard to change later.
Last question for now: I'm concerned about the entire scope of this project. Something just does not add up. Some one has put together an I/O list with a servo matrix inputs. Generally this list is not considered by newbies. I cannot put my finger on what does not seem right. I get the feeling something has been left out of the description of the project.
Edit: I see you have posted after I wrote this (but I did not have a chance to post a reply). I will try to address your concerns later. The answer is at the top of my post but it may not make sense to you. I have to go back to work now!