{INITIALIZATION LINES} {IN CASE OF TROUBLE, EXECUTE "nOC" COMMAND FOR EACH UNIT TO PUT EACH CONTROLLER IN} {THE FACTORY DEFAULT STATE, THEN DOWNLOAD ALL OF THIS STUFF} AA1 {Automatically sets the RS232 addresses of the controllers to 1--8} {based on their physical locations on the wiring chain.} {unit 1} 1GR6000:254 {60 REVS = 2.54 CM ... for the test-stand and collimator motors} 1DU5 {CENTIMETERS for distance units} 1AU0 {ACCEL IS IN CM/S^2} 1VU0 {VEL UNITS ARE CM/S} 1AM1.0 {MAX ACCEL} 1SR5.0 {DECEL RATE ON STOP (RPS^2) } 1MV0.2 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 1HM0 1HS1 1HE1 1HF0 1HO-0.61 1JA1.0 1JL0.1 1JE1 {DEFINE AND ENABLE LOW SPEED JOG} 1VE0.2 1AC1.0 1DF9,10,"COLL-1",3 {SETUP DISPLAY: inputs outputs \n ID position} 1ODFHLMPPPP-------- {DEFINE OUTPUTS} 1IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 1PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {----} {unit 2} 2GR6000:254 {60 REVS = 2.54 CM ... for the test-stand and collimator motors} 2DU5 {CENTIMETERS for distance units} 2AU0 {ACCEL IS IN CM/S^2} 2VU0 {VEL UNITS ARE CM/S} 2AM1.0 {MAX ACCEL} 2SR5.0 {DECEL RATE ON STOP (RPS^2) } 2MV0.2 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 2HM0 2HS1 2HE1 2HF0 2EL0 2HO-0.09 2JA1.0 2JL0.1 2JE1 {DEFINE AND ENABLE LOW SPEED JOG} 2VE0.2 2AC1.0 2DF9,10,"COLL-2",3 {SETUP DISPLAY: inputs outputs \n ID position} 2ODFHLMPPPP-------- {DEFINE OUTPUTS} 2IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 2PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {----} {unit 3} 3GR6000:254 {60 REVS = 2.54 CM ... for the test-stand and collimator motors} 3DU5 {CENTIMETERS for distance units} 3AU0 {ACCEL IS IN CM/S^2} 3VU0 {VEL UNITS ARE CM/S} 3AM1.0 {MAX ACCEL} 3SR5.0 {DECEL RATE ON STOP (RPS^2) } 3MV0.2 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 3HM0 3HS1 3HE1 3HF0 3EL0 3HO-1.22 3JA1.0 3JL0.1 3JE1 {DEFINE AND ENABLE LOW SPEED JOG} 3VE0.2 3AC1.0 3DF9,10,"COLL-3",3 {SETUP DISPLAY: inputs outputs \n ID position} 3ODFHLMPPPP-------- {DEFINE OUTPUTS} 3IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 3PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {----} {unit 4} 4GR6000:254 {60 REVS = 2.54 CM ... for the test-stand and collimator motors} 4DU5 {CENTIMETERS for distance units} 4AU0 {ACCEL IS IN CM/S^2} 4VU0 {VEL UNITS ARE CM/S} 4AM1.0 {MAX ACCEL} 4SR5.0 {DECEL RATE ON STOP (RPS^2) } 4MV0.2 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 4HM0 4HS1 4HE1 4HF0 4HO-2.18 4JA1.0 4JL0.1 4JE1 {DEFINE AND ENABLE LOW SPEED JOG} 4VE0.2 4AC1.0 4DF9,10,"COLL-4",3 {SETUP DISPLAY: inputs outputs \n ID position} 4ODFHLMPPPP-------- {DEFINE OUTPUTS} 4IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 4PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {----} {unit 5} 5GR6000:254 {60 REVS = 2.54 CM ... for the test-stand and collimator motors} 5DU5 {CENTIMETERS for distance units} 5AU0 {ACCEL IS IN CM/S^2} 5VU0 {VEL UNITS ARE CM/S} 5AM1.0 {MAX ACCEL} 5SR5.0 {DECEL RATE ON STOP (RPS^2) } 5MV0.2 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 5HM0 5HS1 5HE1 5HF0 5HO-3.44 5JA1.0 5JL0.1 5JE1 {DEFINE AND ENABLE LOW SPEED JOG} 5VE0.2 5AC1.0 5DF9,10,"COLL-5",3 {SETUP DISPLAY: inputs outputs \n ID position} 5ODFHLMPPPP-------- {DEFINE OUTPUTS} 5IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 5PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {----} {unit 6} 6GR6000:254 {60 REVS = 2.54 CM ... for the test-stand and collimator motors} 6DU5 {CENTIMETERS for distance units} 6AU0 {ACCEL IS IN CM/S^2} 6VU0 {VEL UNITS ARE CM/S} 6AM1.0 {MAX ACCEL} 6SR5.0 {DECEL RATE ON STOP (RPS^2) } 6MV0.2 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 6HM0 6HS1 6HE1 6HF0 6HO-2.68 6JA1.0 6JL0.1 6JE1 {DEFINE AND ENABLE LOW SPEED JOG} 6VE0.2 6AC1.0 6DF9,10,"COLL-6",3 {SETUP DISPLAY: inputs outputs \n ID position} 6ODFHLMPPPP-------- {DEFINE OUTPUTS} 6IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 6PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {----} {unit 7} 7GR6000:254 {60 REVS = 2.54 CM ... for the test-stand and collimator motors} 7DU5 {CENTIMETERS for distance units} 7AU0 {ACCEL IS IN CM/S^2} 7VU0 {VEL UNITS ARE CM/S} 7AM1.0 {MAX ACCEL} 7SR5.0 {DECEL RATE ON STOP (RPS^2) } 7MV0.2 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 7HM0 7HS1 7HE1 7HF0 7HO-3.33 7JA1.0 7JL0.1 7JE1 {DEFINE AND ENABLE LOW SPEED JOG} 7VE0.2 7AC1.0 7DF9,10,"COLL-7",3 {SETUP DISPLAY: inputs outputs \n ID position} 7ODFHLMPPPP-------- {DEFINE OUTPUTS} 7IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 7PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {----} {unit 8} 8GR50:1 {50 REVS = 1.00 inch ... for the target (new ladder)} 8DU2 {INCHES for distance units} 8MD0 {TARGET MOTION SENSE} 8AU0 {ACCEL IS IN IN/S^2} 8VU0 {VEL UNITS ARE IN/S} 8AM1.0 {MAX ACCEL} 8SR5.0 {DECEL RATE ON STOP (RPS^2) } 8MV0.1 {MAX VELOCITY BUT I DON'T UNDERSTAND UNITS} 8HM0 8HS0 8HE1 8HF1 8JA1.0 8JL0.1 8JE1 {DEFINE AND ENABLE LOW SPEED JOG} 8VE0.1 8AC1.0 8DF9,10,"TARGET",3 {SETUP DISPLAY: inputs outputs \n ID position} 8ODFHLMPPPP-------- {DEFINE OUTPUTS} 8IDUUWIUUUUUUUUUUUU {DEFINE INPUTS} 8PU98 {EXECUTE 98 ON STARTUP TO DISABLE MOTOR} {---} {HERE ARE ALL OF THE PROGRAMS TO BE DOWNLOADED TO PERSISTENT MEMORY} {THESE PROVIDE GO HOME AND THE POWER-UP PROGRAMS} {ONLY COLS 1 AND 5 ACTUALLY HAVE BRAKE CIRCUITS BUT I LEAVE THESE AS THEY} {ARE SINCE THEY HAVE BEEN TESTED AND TYPOS ARE COSTLY} 1PR2 EA1 OT5,1 AC1.0 GH-0.2 OT5,0 EA0 EN 1EP {GO HOME if it had a brake} 1PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 1EP {save power up routine to eeprom 2PR2 EA1 OT5,1 AC1.0 GH-0.2 OT5,0 EA0 EN 2EP {GO HOME if it had a brake} 2PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 2EP {save power up routine to eeprom} 3PR2 EA1 OT5,1 AC1.0 GH-0.2 OT5,0 EA0 EN 3EP {GO HOME if it had a brake} 3PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 3EP {save power up routine to eeprom} 4PR2 EA1 OT5,1 AC1.0 GH-0.2 OT5,0 EA0 EN 4EP {GO HOME if it had a brake} 4PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 4EP {save power up routine to eeprom} 5PR2 EA1 OT5,1 AC1.0 GH-0.2 OT5,0 EA0 EN 5EP {GO HOME if it had a brake} 5PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 5EP {save power up routine to eeprom} 6PR2 EA1 OT5,1 AC1.0 GH-0.2 OT5,0 EA0 EN 6EP {GO HOME if it had a brake} 6PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 6EP {save power up routine to eeprom} 7PR2 EA1 OT5,1 AC1.0 GH-0.2 OT5,0 EA0 EN 7EP {GO HOME if it had a brake} 7PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 7EP {save power up routine to eeprom} 8PR1 EA1 AC2 GH-0.1 EA0 EN 8EP {GO HOME} 8PR98 EA0 MS21,"MOTION NOT ALLOWED" TD2 EN 8EP {save power up routine to eeprom} {THESE DEFINE THE TARGET LADDER POSITIONS AND LIGHT CONTROLS} 8PR2 EA1 VE0.1 AC1.0 DA-1.40 GO EA0 EN {RETRACT} 8EP 8PR10 EA1 VE0.1 AC1.0 DA-0.19 GO EA0 EN {TGT POS 1} 8EP 8PR11 EA1 VE0.1 AC1.0 DA+1.01 GO EA0 EN {TGT POS 2} 8EP 8PR12 EA1 VE0.1 AC1.0 DA+2.21 GO EA0 EN {TGT POS 3} 8EP 8PR13 EA1 VE0.1 AC1.0 DA+3.41 GO EA0 EN {TGT POS 4} 8EP 8PR7 OT6,1 EN {LIGHT ON} 8EP 8PR8 OT6,0 EN {LIGHT OFF} 8EP {----} {THESE MOVE COLLIMATORS TO RETRACTED POSITIONS} 1PR3 EA1 OT5,1 VE0.1 AC1.0 DA-99 GO OT5,0 EA0 EN 1EP 2PR3 EA1 OT5,1 VE0.1 AC1.0 DA-99 GO OT5,0 EA0 EN 2EP 3PR3 EA1 OT5,1 VE0.1 AC1.0 DA-99 GO OT5,0 EA0 EN 3EP 4PR3 EA1 OT5,1 VE0.1 AC1.0 DA-99 GO OT5,0 EA0 EN 4EP 5PR3 EA1 OT5,1 VE0.1 AC1.0 DA-99 GO OT5,0 EA0 EN 5EP 6PR3 EA1 OT5,1 VE0.1 AC1.0 DA-99 GO OT5,0 EA0 EN 6EP 7PR3 EA1 OT5,1 VE0.1 AC1.0 DA-99 GO OT5,0 EA0 EN 7EP {NOTE THAT TARGET RETRACT PROGRAM IS NO. 2} {THESE ENABLE MOTORS AND RELEASE BRAKES TO ALLOW JOG MOVEMENTS} 1PR91 EA1 OT5,1 EN 1EP 2PR91 EA1 OT5,1 EN 2EP 3PR91 EA1 OT5,1 EN 3EP 4PR91 EA1 OT5,1 EN 4EP 5PR91 EA1 OT5,1 EN 5EP 6PR91 EA1 OT5,1 EN 6EP 7PR91 EA1 OT5,1 EN 7EP 8PR91 EA1 OT5,1 EN 8EP {THESE PUT ON THE BRAKES AND RELEASE THE MOTORS SO THEY STAY COOL} 1PR92 OT5,0 EA0 EN 1EP 2PR92 OT5,0 EA0 EN 2EP 3PR92 OT5,0 EA0 EN 3EP 4PR92 OT5,0 EA0 EN 4EP 5PR92 OT5,0 EA0 EN 5EP 6PR92 OT5,0 EA0 EN 6EP 7PR92 OT5,0 EA0 EN 7EP 8PR92 OT5,0 EA0 EN 8EP