Galil DMC-1800 Manual De Usuario
138 • Chapter 7 Application Programming DMC-1700/1800
‘ BOTTOM LINE
CR 1500,270,-180
‘ HALF CIRCLE MOTION
VP 0,3000
‘ TOP LINE
CR 1500,90,-180
‘ HALF CIRCLE MOTION
VE
‘ END VECTOR SEQUENCE
BGS
‘ BEGIN SEQUENCE MOTION
EN
‘ END OF PROGRAM
CR 1500,270,-180
‘ HALF CIRCLE MOTION
VP 0,3000
‘ TOP LINE
CR 1500,90,-180
‘ HALF CIRCLE MOTION
VE
‘ END VECTOR SEQUENCE
BGS
‘ BEGIN SEQUENCE MOTION
EN
‘ END OF PROGRAM
Note: The NO command is an actual controller command. Therefore, inclusion of the NO commands will require
process time by the controller.
process time by the controller.
Executing Programs - Multitasking
The DMC-1700/1800 can run up to 8 independent programs simultaneously. These programs are called threads and
are numbered 0 through 7, where 0 is the main thread. Multitasking is useful for executing independent operations
such as PLC functions that occur independently of motion.
are numbered 0 through 7, where 0 is the main thread. Multitasking is useful for executing independent operations
such as PLC functions that occur independently of motion.
The main thread differs from the others in the following ways:
1. Only the main thread, thread 0, may use the input command, IN.
2. When input interrupts are implemented for limit switches, position errors or command errors, the subroutines
2. When input interrupts are implemented for limit switches, position errors or command errors, the subroutines
are executed as thread 0.
To begin execution of the various programs, use the following instruction:
To begin execution of the various programs, use the following instruction:
XQ #A, n
Where n indicates the thread number. To halt the execution of any thread, use the instruction
HX n
where n is the thread number.
Note that both the XQ and HX commands can be performed by an executing program.
The example below produces a waveform on Output 1 independent of a move.
Note that both the XQ and HX commands can be performed by an executing program.
The example below produces a waveform on Output 1 independent of a move.
#TASK1 Task1
label
AT0
Initialize reference time
CB1
Clear Output 1
#LOOP1 Loop1
label
AT 10
Wait 10 msec from reference time
SB1
Set Output 1
AT -40
Wait 40 msec from reference time, then initialize reference
CB1
Clear Output 1
JP #LOOP1
Repeat Loop1
#TASK2 Task2
label
XQ #TASK1,1
Execute Task1
#LOOP2 Loop2
label