Galil DMC-1700 Manual De Usuario

Descargar
Página de 253
148 • Chapter 7 Application Programming DMC-1700/1800 
Note: An ENDIF command must always be executed for every IF command that has been executed.  It is 
recommended that the user not include jump commands inside IF conditional statements since this causes re-
direction of command execution.  In this case, the command interpreter may not execute an ENDIF command. 
Using the ELSE Command 
The ELSE command is an optional part of an IF conditional statement and allows for the execution of command 
only when the argument of the IF command evaluates False.   The ELSE command must occur after an IF command 
and has no arguments.  If the argument of the IF command evaluates false, the controller will skip commands until 
the ELSE command.  If the argument for the IF command evaluates true, the controller will execute the commands 
between the IF and ELSE command.  
Nesting IF Conditional Statements 
The DMC-1700/1800 allows for IF conditional statements to be included within other IF conditional statements.  
This technique is known as ‘nesting’ and the DMC-1700/1800 allows  up to 255 IF conditional statements to be 
nested.  This is a very powerful technique allowing the user to specify a variety of different cases for branching. 
Command Format -  IF, ELSE and ENDIF  
FORMAT: DESCRIPTION 
IF conditional statement(s) 
Execute commands proceeding IF command (up to ELSE command) if 
conditional statement(s) is true, otherwise continue executing at ENDIF 
command or optional ELSE command. 
ELSE  
Optional command.  Allows for commands to be executed when argument 
of IF command evaluates not true.  Can only be used with IF command. 
ENDIF 
Command to end IF conditional statement.  Program must have an ENDIF 
command for every IF command. 
Example using IF, ELSE and ENDIF: 
#TEST 
Begin Main Program “TEST” 
II,,3 
Enable input interrupts on input 1 and input 2 
MG “WAITING FOR INPUT 1, INPUT 2” 
Output message 
#LOOP 
Label to be used for endless loop 
JP #LOOP 
Endless loop 
EN 
End of main program 
#ININT 
Input Interrupt Subroutine 
IF (@IN[1]=0) 
IF conditional statement based on input 1 
IF (@IN[2]=0) 
2
nd
 IF conditional statement executed if 1
st
 IF conditional true 
MG “INPUT 1 AND INPUT 2 ARE ACTIVE”  Message to be executed if 2
nd
 IF conditional is true 
ELSE 
ELSE command for 2
nd
 IF conditional statement 
MG “ONLY INPUT 1 IS ACTIVE 
Message to be executed if 2
nd
 IF conditional is false 
ENDIF 
End of 2
nd
 conditional statement 
ELSE 
ELSE command for 1
st
 IF conditional statement 
MG”ONLY INPUT 2 IS ACTIVE” 
Message to be executed if 1
st
 IF conditional statement 
ENDIF 
End of 1
st
 conditional statement 
#WAIT 
Label to be used for a loop 
JP#WAIT,(@IN[1]=0) | (@IN[2]=0) 
Loop until both input 1 and input 2 are not active 
RI0 
End Input Interrupt Routine without restoring trippoints