5.4.6 Standalone Example Program 6 – Single Thread with subroutine
Download this program:
Summary of operation
Using a subroutine, increment the X axis by 1000 whenever the DI1 rising edge is detected.
Program code
PRG 0                                        ;Program start line, Program 0
HSPD=20000                        ;Set high speed to 20,000 pulses/sec
LSPD=1000                        ;Set low speed to 1000 pulses/sec
ACC=300                        ;Set acceleration to 300 msec
ABS                                ;Set move mode to absolute mode
EO=1                                ;Enable the X-axis
V1=0                                ;Set variable 1 to 0
WHILE 1=1                        ;Forever loop
        IF DI1=1                ;If digital input 1 is on, execute the following commands
                GOSUB 1        ;Execute subroutine 1
        ENDIF                        ;End of the IF loop
ENDWHILE                        ;Go back to WHILE statement
END ;End of program 0
SUB 1                                        ;Subroutine start line, subroutine 1
        XV1                                ;Move X-axis to V1 target position
        WAITX                                ;Wait for X-axis move to complete
        V1=V1+1000                        ;Increment V1 by 1,000
        WHILE DI1=1                        ;Wait until the DI1 is turned off (prevent multiple increments)
        ENDWHILE                        ;Go back to WHILE statement
ENDSUB ;End of subroutine 1
< Previous Section | Topic Home | Home | Next Section >
