Galil DMC-1800, DMC-1700 user manual Example - Limit Switch, Example - Position Error

Models: DMC-1800 DMC-1700

1 253
Download 253 pages 18.39 Kb
Page 158
Image 158
Example - Limit Switch:

SUBROUTINE

DESCRIPTION

 

 

#LIMSWI

Limit switch on any axis goes low

 

 

#ININT

Input specified by II goes low

 

 

#POSERR

Position error exceeds limit specified by ER

 

 

#MCTIME

Motion Complete timeout occurred. Timeout period set by TW command

 

 

#CMDERR

Bad command given

 

 

#AUTO

Automatically executes on power up

 

 

#AUTOERR

Automatically executes when a checksum is encountered during #AUTO

 

start-up. Check error condition with _RS.

 

bit 0 for variable checksum error

 

bit 1 for parameter checksum error

 

bit 2 for program checksum error

 

bit 3 for master reset error (there should be no program )

 

 

#AMPERR

Error reported from Galil AMP-19xxx

 

 

 

 

For example, the #POSERR subroutine will automatically be executed when any axis exceeds its position error limit. The commands in the #POSERR subroutine could decode which axis is in error and take the appropriate action. In another example, the #ININT label could be used to designate an input interrupt subroutine. When the specified input occurs, the program will be executed automatically.

NOTE: An application program must be running for automatic monitoring to function.

Example - Limit Switch:

This program prints a message upon the occurrence of a limit switch. Note, for the #LIMSWI routine to function, the DMC-1700/1800 must be executing an applications program from memory. This can be a very simple program that does nothing but loop on a statement, such as #LOOP;JP #LOOP;EN. Motion commands, such as JG 5000 can still be sent from the PC even while the “dummy” applications program is being executed.

:ED

Edit Mode

000 #LOOP

Dummy Program

001 JP #LOOP;EN

Jump to Loop

002 #LIMSWI

Limit Switch Label

003 MG “LIMIT OCCURRED”

Print Message

004 RE

Return to main program

<control> Q

Quit Edit Mode

:XQ #LOOP

Execute Dummy Program

:JG 5000

Jog

:BGX

Begin Motion

Now, when a forward limit switch occurs on the X axis, the #LIMSWI subroutine will be executed.

Notes regarding the #LIMSWI Routine:

1)The RE command is used to return from the #LIMSWI subroutine.

2)The #LIMSWI subroutine will be re-executed if the limit switch remains active. The #LIMSWI routine is only executed when the motor is being commanded to move.

Example - Position Error

:ED

Edit Mode

000 #LOOP

Dummy Program

150 • Chapter 7 Application Programming

DMC-1700/1800

Page 158
Image 158
Galil DMC-1800, DMC-1700 user manual Example - Limit Switch, Example - Position Error, Notes regarding the #LIMSWI Routine