- GOTO SCREEN begin *>SCREEN begin - POWER RESUME ON - GET NUMBER BACKGROUND STYLE SETUP: 2 dim pbox%(250) - PUT LARGE TEXT AT (3,4): "EASON TECHNOLOGY" - PUT LARGE TEXT AT (10,3): "TO" - PUT HUGE TEXT AT (2,1): "WELCOME!" - DELAY 1500 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (1,1): "You are about to see a demonstration of" - PUT TEXT AT (1,2): "Eason Technology's Model 1100 Industrial" - PUT TEXT AT (1,3): "Controller/Operator Interface. To begin" - PUT TEXT AT (1,4): "the demonstration, press 'DEMO' (F1)." - SOFTKEY (1) "DEMO" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " MAIN MENU SELECTION " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN main - PUT REVERSE TEXT AT (15,1): "MAIN MENU" - PUT TEXT AT (1,2): "PRESS 'MOTOR' FOR MOTION CONTROL DEMO" - PUT TEXT AT (1,3): "PRESS 'ANLOG' FOR AN ANALOG I/O DEMO" - PUT TEXT AT (1,4): "PRESS 'CNT' FOR A COUNTER I/O DEMO" - PUT TEXT AT (1,5): "PRESS 'I/O' FOR AN I/O DEMO" - PUT TEXT AT (1,6): "PRESS 'PLC'S' FOR A PLC DEMO" - PUT TEXT AT (1,7): "PRESS 'SHOW' FOR A SELF RUNNING DEMO" - SOFTKEY (1) "MOTOR" GOTO SCREEN mtrbegin - SOFTKEY (2) "ANLOG" GOTO SCREEN analog - SOFTKEY (3) "COUNT" GOTO SCREEN cntdemo - SOFTKEY (4) " I/O" GOTO SCREEN iodemo - SOFTKEY (5) "PLC'S" GOTO SCREEN plcdemo - SOFTKEY (6) "SHOW" GOTO SCREEN showscrn - SOFTKEY (9) "" GOTO SCREEN byebye help = 0 - HOT KEY (9) DISABLE - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " MOTOR CONTROLLER SECTION " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN mtrbegin - PUT TEXT AT (1,5): "This program is specifically designed to" - PUT TEXT AT (4,6): "control the Parker Compumotor SX" - PUT TEXT AT (14,7): "Motor-Driver." - PUT LARGE TEXT AT (2,1): "PARKER COMPUMOTOR" - PUT LARGE TEXT AT (3,2): "SX DEMO PROGRAM" - DELAY 2000 - GOTO SCREEN testsx - LABEL initunit - COMMENT "Initialize units for DRIVE" pitch=5 dd&=onerev dscale=1 dlbl$="STEPS" vd%=10 vscale=1 vlbl$="REVS/SECOND" ascale=1 ad%=100 albl$="REVS/SEC^2" - RETURN - TITLE:::::::::: "INITIALIZE SX" :::::::::::: *>SCREEN testsx - PUT TEXT AT (2,1): "ATTEMPTING TO ESTABLISH COMMUNICATION" - PUT TEXT AT (8,2): "WITH THE SX MOTOR/DRIVE." - PUT LARGE TEXT AT (2,3): "PLEASE STAND BY..." onerev=25000 drtype=1 - GOSUB LABEL initunit - COM: INIT COM 1 ECHO 1 BAUD 96 HANDSHAKE 0 TIMEOUT 250 STRIP 1 - DELAY 750 n = 1 - LABEL comtests - COM: PUT COM 1 TEXT "1E 1K 1MN 1R" - COM: GET COM 1 TEXT stat$ if stat$ = "*R" or stat$ = "*S" then goto runsx if n = 11 then goto notalksx - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT LARGE TEXT AT (1,1): "DRIVE NOT RESPONDING" - PUT TEXT AT (4,4): "RETRYING CHECK-OUT TEN MORE TIMES" - PUT TEXT AT (14,6): "ATTEMPT #" - PUT NUMBER n AT (24,6) USING "##" n = n+1 - GOTO LABEL comtests - LABEL notalksx - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (3,1): "CANNOT ESTABLISH COMMUNICATIONS WITH" - PUT TEXT AT (15,2): "MOTOR/DRIVE" - DELAY 1000 - GOTO SCREEN errexit - LABEL runsx - COM: INIT COM 1 ECHO 1 BAUD 96 HANDSHAKE 0 TIMEOUT 1000 STRIP 1 - COM: PUT COM 1 TEXT "1SSI1 1LD3 1A100 1V10 1D25000" - COM: PUT COM 1 TEXT "1DPE1" - COM: GET COM 1 TEXT ps$ ps$=right$(ps$,11):pzero&=val(ps$) - CLEAR GRAPHICS SCREEN - GOTO SCREEN mmain - TITLE:::::::::: ":::::::::::::" :::::::::::: - TITLE:::::::::: "MAIN RUN LOOP" :::::::::::: - TITLE:::::::::: ":::::::::::::" :::::::::::: *>SCREEN mmain - PUT TEXT AT (1,3): "A-V-D CHANGE ACCEL,VEL, AND DISTANCE" - PUT TEXT AT (1,4): "UNITS CHANGE UNITS" - PUT TEXT AT (1,5): "RUN PERFORM MOVES, VIEW STATUS" - PUT TEXT AT (1,6): "SEQ DOWNLOAD AND EXECUTE A SEQUENCE" - PUT TEXT AT (1,7): "GO MAKE A MOVE" - PUT LARGE TEXT AT (2,1): "SELECT A FUNCTION:" - SOFTKEY (1) "A-V-D" GOTO SCREEN avdset - SOFTKEY (2) "UNITS" GOTO SCREEN units - SOFTKEY (3) " RUN" GOTO SCREEN runscr - SOFTKEY (4) " SEQ" GOTO SCREEN sequence - SOFTKEY (5) "MOVE" GOTO SCREEN start - SOFTKEY (6) "EXIT" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "SET ACCELERATION, VELOCITY, DISTANCE, AND PITCH" :::::::::::: *>SCREEN QUICK avdset - CLEAR SCREEN - PUT TEXT AT (1,3): "ACCEL CHANGE ACCELERATION" - PUT TEXT AT (1,4): "VEL CHANGE VELOCITY" - PUT TEXT AT (1,5): "DIST CHANGE DISTANCE" - PUT TEXT AT (1,6): "PITCH CHANGE SCREW PITCH" - PUT TEXT AT (1,7): "DEFLT RESTORE SYSTEM DEFAULTS" - PUT LARGE TEXT AT (1,1): "MOTION PARAMETERS: " - SOFTKEY (1) "ACCEL" GOTO SCREEN accelset - SOFTKEY (2) " VEL" GOTO SCREEN velset - SOFTKEY (3) "DIST" GOTO SCREEN distset - SOFTKEY (4) "PITCH" GOTO SCREEN pitchset - SOFTKEY (5) "DEFLT" GOTO SCREEN defltscr - SOFTKEY (6) "EXIT" GOTO SCREEN mmain - SOFTKEY WAIT - TITLE:::::::::: "SET UP ACCELERATION" :::::::::::: *>SCREEN accelset - PUT TEXT AT (1,2): "ACCELERATION IN" - PUT TEXT AT (1,4): "ENTER ACCELERATION:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - PUT TEXT AT (17,2): albl$ ad% = ad% / ascale - GET NUMBER ad% AT (21,4) USING "###.##" DEFAULT ad% ad% = ad% * ascale a$="1A"+str$(ad%) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN avdset - TITLE:::::::::: "SET UP VELOCITY" :::::::::::: *>SCREEN velset - PUT TEXT AT (1,2): "VELOCITY IN" - PUT TEXT AT (1,4): "ENTER VELOCITY:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - PUT TEXT AT (13,2): vlbl$ vd% = vd% / vscale - GET NUMBER vd% AT (21,4) USING "###.##" DEFAULT vd% vd% = vd% * vscale a$="1V"+str$(vd%) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN avdset - TITLE:::::::::: "SET UP DISTANCE" :::::::::::: *>SCREEN distset - PUT TEXT AT (1,2): "DISTANCE IN" - PUT TEXT AT (1,4): "ENTER DISTANCE:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - PUT TEXT AT (13,2): dlbl$ td = dd& / dscale - GET NUMBER td AT (18,4) USING "-#########.##" DEFAULT td dd& = td * dscale a$="1D"+str$(dd&) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN avdset - TITLE:::::::::: "SET UP SCREW PITCH" :::::::::::: *>SCREEN pitchset - PUT TEXT AT (1,1): "Enter a screw pitch which will provide" - PUT TEXT AT (1,2): "translation between motor rotation and" - PUT TEXT AT (1,3): "linear travel." - PUT TEXT AT (1,5): "ENTER SCREW PITCH:" - PUT TEXT AT (1,7): "ENTER TO ACCEPT OR ENTER A NEW VALUE" - GET NUMBER pitch AT (20,5) USING "##.###" DEFAULT pitch - COM: PUT COM 1 TEXT a$ - GOTO SCREEN units - TITLE:::::::::: "RESTORE SYSTEM DEFAULTS" :::::::::::: *>SCREEN defltscr - GOSUB LABEL initunit - COM: PUT COM 1 TEXT "1S 1V10 1A100 1D25000" - GOTO SCREEN avdset - TITLE:::::::::: "SET DISPLAY / ENTRY UNITS" :::::::::::: *>SCREEN units - PUT TEXT AT (2,4): "LINEAR MEASURE ASSUMES A PITCH" - PUT TEXT AT (2,5): "LEAD SCREW ON A LINEAR TRANSLATION" - PUT TEXT AT (2,6): "DEVICE." - PUT LARGE TEXT AT (1,1): "SELECT MOTION UNITS-" - PUT NUMBER pitch AT (27,4) USING "##.###" - SOFTKEY (1) "STEPS" GOTO SCREEN steps - SOFTKEY (2) "MILS" GOTO SCREEN mils - SOFTKEY (3) "INCH" GOTO SCREEN inch - SOFTKEY (4) " MM" GOTO SCREEN mms - SOFTKEY (5) " UM" GOTO SCREEN ums - SOFTKEY (6) "EXIT" GOTO SCREEN mmain - SOFTKEY WAIT - TITLE:::::::::: "SCALE UNITS IN STEPS" :::::::::::: *>SCREEN steps - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (3,2): "STEPS" dscale = 1 dlbl$ = "STEPS" vscale = 1 vlbl$ = "REVS/SECOND" ascale = 1 albl$ = "REVS/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN MILS" :::::::::::: *>SCREEN mils - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (4,2): "MILS" dscale = onerev*pitch/1000 dlbl$ = "MILS" vscale = pitch vlbl$ = "INCHES/SECOND" ascale = pitch albl$ = "INCHES/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN INCHES" :::::::::::: *>SCREEN inch - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (10,2): "IN" - PUT HUGE TEXT AT (3,2): "INCHES" dscale = onerev*pitch dlbl$ = "INCHES" vscale = pitch vlbl$ = "INCHES/SECOND" ascale = pitch albl$ = "INCHES/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN MILLIMETERS" :::::::::::: *>SCREEN mms - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (10,2): "IN" - PUT HUGE TEXT AT (1,2): "MILLIMETER" dscale = onerev*pitch/25.4 dlbl$ = "MM" vscale = 25.4*pitch vlbl$ = "MM/SECOND" ascale = 25.4*pitch albl$ = "MM/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "SCALE UNITS IN MICRONS" :::::::::::: *>SCREEN ums - PUT LARGE TEXT AT (1,1): "UNITS ARE NOW SCALED" - PUT LARGE TEXT AT (9,2): "IN" - PUT HUGE TEXT AT (2,2): "MICRONS" dscale = onerev*pitch/25400 dlbl$ = "MICRONS" vscale = 25400*pitch vlbl$ = "MICRONS/SECOND" ascale = 25400*pitch albl$ = "MICRONS/SEC^2" - DELAY 1000 - GOTO SCREEN mmain - TITLE:::::::::: "STATUS AND MOVE SYSTEM" :::::::::::: *>SCREEN runscr - CLEAR SCREEN - PUT TEXT AT (2,4): "POSITION:" - PUT TEXT AT (4,5): "STATUS:" - PUT TEXT AT (4,6): "LIMITS:" - PUT TEXT AT (4,7): "INPUTS:" - PUT LARGE TEXT AT (2,1): "RUN SX MOTOR/DRIVE" - PUT TEXT AT (24,4): dlbl$ gostr$="1S 1A"+str$(ad%)+" 1V"+str$(vd%)+" 1D"+str$(dd&) - COM: PUT COM 1 TEXT gostr$ - SOFTKEY (1) "ZERO" GOTO SCREEN zeroscr - SOFTKEY (2) "MOVE" GOTO SCREEN starts - SOFTKEY (3) "STOP" GOTO SCREEN stops - SOFTKEY (4) "EDIT" GOTO SCREEN editscr - SOFTKEY (6) "EXIT" GOTO SCREEN mmain 'hard coded for improved speed... - LABEL statloop print#1,"1DPE1":line input#1,e$:line input#1,ps$:ps$=right$(ps$,11) px&=val(ps$)-pzero&:p=px&:px&=px&/dscale:p=p/dscale if dscale= 1 then pos11,4:print using"-###########";px&; if dscale<>1 then pos11,4:print using"-#######.###";p; print#1,"1R":line input#1,e$:line input#1,stat$ pos12,5:if stat$="*R"then print"READY "; if stat$="*S"then print"READY, ATTENTION NEEDED"; if stat$="*B"then print"BUSY "; if stat$="*C"then print"BUSY, ATTENTION NEEDED "; if stat$="*Z"then print"BUSY, AUTORUN MODE "; print#1,"1IS":line input#1,e$:line input#1,iostat$ lim$="" if mid$(iostat$,4,1)="1" then lim$="CW" if mid$(iostat$,5,1)="1" then lim$=lim$+"CCW" if lim$<>"" then lim$="LIMIT(S) ACITIVE: "+lim$ if lim$="" then lim$= "NO LIMITS ACTIVE " pos12,6:print lim$; iobits$=mid$(iostat$,7,4)+mid$(iostat$,12,4) pos12,7:print iobits$; skey%=inkey():if skey%=0then goto statloop if skey%=15104then goto zeroscr if skey%=15360then goto starts if skey%=15616then goto stops if skey%=15872then goto editscr if skey%=16384then goto mmain - GOTO LABEL statloop - LABEL zeroscr print#1,"1DPE1":line input#1,e$:line input#1,ps$:ps$=right$(ps$,11) pzero&=val(ps$) - GOTO LABEL statloop - TITLE:::::::::: "START MOTION" :::::::::::: - LABEL starts print#1,"1G":line input#1,e$ - GOTO LABEL statloop - TITLE:::::::::: "STOP MOTION" :::::::::::: - LABEL stops print#1,"1S":line input#1,e$ - GOTO LABEL statloop - TITLE:::::::::: "EDIT MOVE DATA" :::::::::::: *>SCREEN QUICK editscr - PUT LARGE TEXT AT (1,1): " EDIT-PRESS ENTER " - CLEAR SCREEN - PUT TEXT AT (1,4): "MOVE DIST:" - PUT TEXT AT (2,5): "VELOCITY:" - PUT TEXT AT (5,6): "ACCEL:" - PUT TEXT AT (26,4): dlbl$ - PUT TEXT AT (26,5): vlbl$ - PUT TEXT AT (26,6): albl$ td = dd& / dscale - PUT NUMBER td AT (12,4) USING "-#########.##" dd& = td * dscale a$="1D"+str$(dd&) - COM: PUT COM 1 TEXT a$ vd% = vd% / vscale - PUT NUMBER vd% AT (19,5) USING "###.##" vd% = vd% * vscale a$="1V"+str$(vd%) - COM: PUT COM 1 TEXT a$ ad% = ad% / ascale - PUT NUMBER ad% AT (19,6) USING "###.##" ad% = ad% * ascale a$="1A"+str$(ad%) - COM: PUT COM 1 TEXT a$ td = dd& / dscale - GET NUMBER td AT (12,4) USING "-#########.##" DEFAULT td dd& = td * dscale a$="1D"+str$(dd&) - COM: PUT COM 1 TEXT a$ vd% = vd% / vscale - GET NUMBER vd% AT (19,5) USING "###.##" DEFAULT vd% vd% = vd% * vscale a$="1V"+str$(vd%) - COM: PUT COM 1 TEXT a$ ad% = ad% / ascale - GET NUMBER ad% AT (19,6) USING "###.##" DEFAULT ad% ad% = ad% * ascale a$="1A"+str$(ad%) - COM: PUT COM 1 TEXT a$ - GOTO SCREEN runscr - TITLE:::::::::: "DOWNLOAD AND RUN A SEQUENCE" :::::::::::: *>SCREEN QUICK sequence - CLEAR SCREEN - PUT TEXT AT (3,3): "A SEQUENCE TO THE MOTION CONTROLLER" - PUT LARGE TEXT AT (1,1): " TRANSMITTING... " i=1 - LABEL seq1 - COM: PUT COM 1 TEXT "1R" - COM: GET COM 1 TEXT stat$ if i=2 then goto seqerr i=i+1 if stat$ <> "*R" and stat$ <> "*S" then goto seq1 seq$="1A100 1V20 1D25000 1G 1H+ 1G 1V5 1H- 1G 1V10 1H+ 1G" - COM: PUT COM 1 TEXT "1XE1 1XD1" - COM: PUT COM 1 TEXT seq$ - COM: PUT COM 1 TEXT "1XT" n=1 - LABEL sxseq1 - COM: PUT COM 1 TEXT "1R" - COM: GET COM 1 TEXT stat$ delay 10 if n=10 then goto seqerr n=n+1 if stat$ <> "*R" then goto sxseq1 - PUT TEXT AT (11,4): "SEQUENCE CONTENTS:" - PUT TEXT AT (2,5): seq$ - PUT TEXT AT (3,7): "RUNNING SEQUENCE TEN TIMES...." - COM: PUT COM 1 TEXT "1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1 1XR1" i=1 - LABEL seqdone - COM: PUT COM 1 TEXT "1R" - COM: GET COM 1 TEXT stat$ if stat$ <> "*R" and stat$ <> "*S" then goto seqdone - GOTO SCREEN mmain - TITLE:::::::::: "SEQUENCE ERROR" :::::::::::: - LABEL seqerr - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - KEY OFF - PUT LARGE TEXT AT (1,1): "CAN'T SEND SEQUENCE" - PUT TEXT AT (2,5): "RETURNING TO MOTION SELECTION MENU...." - DELAY 1500 - CLEAR GRAPHICS SCREEN - GOTO SCREEN mmain - TITLE:::::::::: "START MOTION" :::::::::::: *>SCREEN QUICK start - CLEAR SCREEN - PUT LARGE TEXT AT (1,1): " MOTION HAS BEGUN " - COM: PUT COM 1 TEXT "1G" - DELAY 250 - GOTO SCREEN mmain - TITLE:::::::::: "KILL MOTION" :::::::::::: *>SCREEN QUICK kill - CLEAR SCREEN - PUT LARGE TEXT AT (1,1): " STOPPING MOTION " - COM: PUT COM 1 TEXT "1S" - DELAY 500 - GOTO SCREEN mmain *>SCREEN errexit - PUT TEXT AT (1,1): "The Model 1100 was unable to communicate" - PUT TEXT AT (1,2): "with the Parker Compumotor SX Motor-" - PUT TEXT AT (1,3): "Drive. Check your connections. Do you" - PUT TEXT AT (1,4): "have the demo cable (9-pin to bare wire)" - PUT TEXT AT (1,5): "connected to COM1 on the Model 1000 and" - PUT TEXT AT (1,6): "the SX Motor-Driver RS232 connector? If" - PUT TEXT AT (1,7): "you have questions about connections," - SOFTKEY (1) "MORE" GOTO SCREEN errmore - SOFTKEY WAIT *>SCREEN errmore - PUT TEXT AT (1,1): "refer to Section 5.6.1 of the Model 1100" - PUT TEXT AT (1,2): "manual. If you need further assistance" - PUT TEXT AT (1,3): "contact Eason Technology at:" - PUT TEXT AT (9,5): "PHONE: (707) 433-2854" - PUT TEXT AT (11,6): "FAX: (707) 433-3706" - SOFTKEY (1) "MORE" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " SIMULATED ANALOG DEMONSTRATION SCREENS " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN analog - PUT TEXT AT (1,3): "This MODEL 1100 has an A03 analog option" - PUT TEXT AT (1,4): "installed. It adds 8, 12-bit inputs and" - PUT TEXT AT (1,5): "2, 12-bit outputs. All analog I/O is" - PUT TEXT AT (1,6): "optically isolated." - PUT TEXT AT (1,7): "Press to continue." - PUT LARGE TEXT AT (1,1): "ANALOG DEMONSTRATION" - SOFTKEY (1) "MORE" GOTO SCREEN anascr1 help = 5 - SOFTKEY WAIT *>SCREEN anascr1 - PUT TEXT AT (1,6): "| | | | |" - PUT TEXT AT (1,7): "-10V -5V 0V 5V 10V" - PUT LARGE TEXT AT (4,1): "ANALOG INPUTS:" - SOFTKEY (1) "CONT" GOTO SCREEN anascr2 - BAR GRAPH UPPER LEFT (0,28) LOWER RIGHT (239,39) ORIENT: 0 - BAR GRAPH SCALE LOWER LIMIT 1024 UPPER LIMIT 0 - LABEL anasc1a - OPTION: READ A/D 8 INTO aval& - BAR GRAPH DISPLAY: aval& aval&=(aval&*(-4))+2048 - OPTION: SET D/A 2 TO aval& - SOFTKEY CHECK - GOTO LABEL anasc1a *>SCREEN anascr2 - PUT TEXT AT (14,3): "Watch the METER" - PUT TEXT AT (14,5): "Voltage:" - PUT TEXT AT (1,7): "Press to return to the main menu" - PUT LARGE TEXT AT (5,1): "ANALOG OUTPUT:" - PUT TEXT AT (1,6): "-10" - PUT TEXT AT (1,1): "+10" - SOFTKEY (1) "CONT" GOTO SCREEN main - BAR GRAPH UPPER LEFT (20,2) LOWER RIGHT (40,45) ORIENT: 1 - BAR GRAPH SCALE LOWER LIMIT -2048 UPPER LIMIT 2048 - LABEL anasc2a - SOFTKEY CHECK aval%=rnd(4096)-2048 - OPTION: SET D/A 2 TO aval% aval=aval%/204.7 - PUT NUMBER aval AT (23,5) USING "##.###" - CURSOR 0 - BAR GRAPH DISPLAY: aval% - DELAY 1000 - GOTO LABEL anasc2a - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " COUNTER DEMONSTRATION PROGRAM " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN cntdemo - PUT TEXT AT (1,1): "The Model 1100 can be configured with" - PUT TEXT AT (1,2): "up to FOUR high speed counters. These" - PUT TEXT AT (1,3): "counters can be configured to count" - PUT TEXT AT (1,4): "encoders, switches, and other digital" - PUT TEXT AT (1,5): "inputs at rates up to 1 Mhz." - SOFTKEY (1) "MORE" GOTO SCREEN cntdemo1 - SOFTKEY WAIT *>SCREEN cntdemo1 - PUT TEXT AT (1,5): "CURRENT" - PUT TEXT AT (1,6): "POSITION" - PUT TEXT AT (35,6): "COUNTS" - PUT LARGE TEXT AT (1,1): "ENCODERS CAN BE USED" - PUT LARGE TEXT AT (1,2): "FOR CONTROL/DISPLAY:" - PUT LARGE TEXT AT (5,3): ":" - SOFTKEY (6) "EXIT" GOTO SCREEN main - LABEL cntdem2 - OPTION: READ COUNTER 1 INTO count& - PUT LARGE NUMBER count& AT (7,3) USING "-#########" - DELAY 150 - SOFTKEY CHECK - GOTO LABEL cntdem2 - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " I/O DEMONSTRATION PROGRAM " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN iodemo - PUT TEXT AT (1,1): "The Model 1100 has 24 digital I/O points" - PUT TEXT AT (1,2): "which have a multitude of uses. They" - PUT TEXT AT (1,3): "are optically isolated, common grounded," - PUT TEXT AT (1,4): "and capable of directly interfacing to" - PUT TEXT AT (1,5): "industry standard opto I/O racks. Each" - PUT TEXT AT (1,6): "point can be EITHER an input or an" - PUT TEXT AT (1,7): "output." - SOFTKEY (1) "MORE" GOTO SCREEN iodemo1 - SOFTKEY WAIT *>SCREEN iodemo1 - PUT TEXT AT (2,3): "CAN BE USED TO LOOK AT PUSHBUTTONS AND" - PUT TEXT AT (2,4): "SENSORS OF MANY TYPES AND TO ACTIVATE" - PUT LARGE TEXT AT (2,1): "INPUTS AND OUTPUTS" - PUT LARGE TEXT AT (6,3): "LIGHTS..." for n=1 to 15 - I/O: PUT I/O BIT PATTERN "000000000000" - DELAY 250 - I/O: PUT I/O BIT PATTERN "101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "010101010101" - DELAY 250 next out -1 - PUT LARGE TEXT AT (2,3): "RELAYS AND BEEPERS" for n=1 to 5 - I/O: SET I/O BIT 12 TO 0 - DELAY 500 - I/O: SET I/O BIT 12 TO 1 - DELAY 300 next out -1 - PUT LARGE TEXT AT (2,3): " AND MUCH MORE! " - SOFTKEY (1) "MORE" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " PLC DEMONSTRATION PROGRAM " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN plcdemo - PUT TEXT AT (1,1): "The Model 1100 can be interfaced to a" - PUT TEXT AT (1,2): "number of industry standard PLC's via" - PUT TEXT AT (1,3): "serial communication. Once a PLC inter-" - PUT TEXT AT (1,4): "face is installed, the 1100 can read or" - PUT TEXT AT (1,5): "write data bits, registers, and in some" - PUT TEXT AT (1,6): "cases I/O inside the PLC with a few" - PUT TEXT AT (1,7): "simple commands." - SOFTKEY (1) "MORE" GOTO SCREEN plcdemo1 - SOFTKEY WAIT *>SCREEN plcdemo1 - PUT TEXT AT (1,1): "The Model 1100 can interface to the" - PUT TEXT AT (1,2): "following PLCs:" - PUT TEXT AT (2,3): "ALLEN-BRADLEY GE FANUC" - PUT TEXT AT (4,4): "PLC5 SERIES 1" - PUT TEXT AT (4,5): "SLC500 SERIES 90" - PUT TEXT AT (2,6): "OMRON MODICON" - PUT TEXT AT (4,7): "HOSTLINK MODBUS" - SOFTKEY (1) "MORE" GOTO SCREEN plcdemo2 - SOFTKEY WAIT *>SCREEN plcdemo2 - PUT TEXT AT (1,1): "AND MORE..." - PUT TEXT AT (2,3): "SIEMENS AND MORE TO COME!" - PUT TEXT AT (4,4): "SIMATIC TI305" - PUT TEXT AT (4,5): "SIMATIC TI405" - PUT TEXT AT (4,6): "SIMATIC TI505" - SOFTKEY (1) "MORE" GOTO SCREEN main - SOFTKEY WAIT - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " FREE RUNNING SHOW DEMONSTRATION " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN showscrn - HOT KEY (9) "a" INTERRUPT: GOSUB LABEL main help=4 - LABEL showstar ' - CURSOR 0 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - I/O: PUT I/O BIT PATTERN "0000000000000" call box(1,1,20,20,1) call getimage(0,0,21,21,pbox%(1)) for n=1 to 150 x=rnd(219):y=rnd(43) call putimage(x,y,pbox%(1)) next out -1 - PUT REVERSE LARGE TEXT AT (8,1): "EASON" - PUT REVERSE TEXT AT (15,3): "TECHNOLOGY" CALL BANNER(5,3,"MODEL 1100",2,,1) - DELAY 2500 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN ' ' plot some random lines ( looks good! ) ' - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "1010101010101" - DELAY 150 - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 out -1 pos 3,8 print "The 1100 comes ready to do graphics"; pos 40,8 call line( 239,25,0,25,1 ) x% = 0 : y% = 1 label show3 y% = rnd(25) * sgn(y%) * (-1) call line( ,,x%,y%+25,1 ) x% = x% + 1 + rnd(4) if x%<240 then goto show3 delay 500 : cls : call gcls() ' ' ' show off the i/o possibilities by drawing the back side of the ' MODEL 1100 and pointing to the different connectors ' - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "1010101010101" - DELAY 150 - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 out -1 gosub soiback pos 1,1 print "The MODEL 1100 has a" print "large variety of I/O" print " possibilities" print print " Standard" print " features" print " include..." pos 40,8 : delay 2000 ' ' tell viewer about the two rs-232 ports ' - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "1010101010101" - DELAY 150 - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 out -1 cls print print "Two RS-232/422 or 485" print " ports that can be" print " independently" print " configured!" ' call banner( 4,4,"COM1",0 ): ' point to the COM1 connector call line( 83, 55, 106, 55, 1 ) call line( 106, 55, 177, 27, 1 ) pos 40,8 : delay 3000 call line( 83, 55, 106, 55, 0 ) call line( 106, 55, 177, 27, 0 ) call banner( 4,4," ",0 ) gosub drawopt ' call banner( 4,4,"COM2",0 ): ' point to the COM2 connector call line( 87, 55, 106, 55, 1 ) call line( 106, 55, 193, 27, 1 ) pos 40,8 : delay 2000 call line( 87, 55, 106, 55, 0 ) call line( 106, 55, 193, 27, 0 ) call banner( 4,4," ",0 ) - DELAY 1000 - GOSUB LABEL showserl ' ' tell viewer about the keyboard and printer interface ' - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "1010101010101" - DELAY 150 - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 out -1 cls print print "One IBM keyboard and" print " printer interface!" ' call banner( 4,3," KB",0 ): ' point to the KB and PRT connectors call banner( 4,4,"PRT",0 ) call line( 79, 39, 106, 39, 1 ) call line( 106, 39, 189, 11, 1 ) call line( 79, 55, 168, 47, 1 ) pos 40,8 : delay 3000 call banner( 4,3," ",0 ) call banner( 4,4," ",0 ) call line( 79, 39, 106, 39, 0 ) call line( 106, 39, 189, 11, 0 ) call line( 79, 55, 168, 47, 0 ) gosub drawopt ' ' tell viewer about the option boards ' - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "1010101010101" - DELAY 150 - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 out -1 cls print " Two internal slots" print " for option boards," print " for example:" print print " quadrature counter" print " or" print " 12 bit D/A and A/D" for x = 1 to 4 pos 23,3 : print"OPT 1"; : pos 40,8 delay 1000 pos 23,3 : print" "; pos 23,6 : print"OPT 2"; : pos 40,8 delay 1000 pos 23,6 : print" "; next - GOSUB LABEL showopt ' ' tell about the 24 bit i/o bus and point to the connector ' - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "1010101010101" - DELAY 150 - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 out -1 print print "24 bit parallel I/O" print "that is internally" print "optically isolated" call banner( 4,4,"IO24",0 ) call line( 85,55, 191,55, 1) delay 3000 - GOSUB LABEL showio ' ' ' scroll ending message from left to right and ' - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 - I/O: PUT I/O BIT PATTERN "1010101010101" - DELAY 150 - I/O: PUT I/O BIT PATTERN "0101010101010" - DELAY 250 out -1 cls : call gcls() a$ = "you have just seen a brief demonstration of the MODEL 1100" a$ = " " + a$ + " " for n=1 to 59 delay 100 call banner( 1,2,left$(a$,20),0 ) a$ = right$( a$, len(a$)-1 ) next call gcls():cls - SOFTKEY CHECK goto showstar ' draw the back side of the MODEL 1100 ' label soiback call gcls() label drawopt col% = 126 ox% = col%+53:oy% = 3: gosub drawpin ox% = col%+69:oy% = 3: gosub drawpin ox% = col%+45:oy% = 36:gosub drawpin call box( col%+69, 31, col%+75, 60, 1 ) call box( col%, 0, col%+84, 63, 1 ) call box( col%+4, 4, col%+38, 29, 1 ) call box( col%+4, 34, col%+38, 59, 1 ) call line( 190, 5, 191, 5, 1 ) call line( 189, 6, 192, 6, 1 ) call line( 189, 7, 192, 7, 1 ) call line( 190, 8, 191, 8, 1 ) return ' ' draw a 25 pin RS-232 connector ' label drawpin for y% = oy%+3 to oy%+17 step 2 : ' draw the pins of the connector call set( ox%+2, y%, 1 ) call set( ox%+4, y%+1, 1 ) next call set( ox%+2, y%, 1): ' draw the very last pin call line( ox%, oy%, ox%, oy%+22, 1 ): 'draw the frame call line( ox%+6, oy%+2, ox%+6, oy%+20, 1 ): ' of the connector call line( ox%, oy%, ox%+6, oy%+2, 1 ) call line( ox%, oy%+22, ox%+6, oy%+20, 1) return - LABEL showserl - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (1,3): "CAN BE USED TO SEND DATA TO DEVICES THAT" - PUT TEXT AT (1,4): "USE RS232, RS422, OR RS485, SUCH AS:" - PUT LARGE TEXT AT (1,1): "SERIAL COMMUNICATION" - PUT LARGE TEXT AT (1,3): "OTHER COMPUTERS..." - DELAY 1000 - PUT LARGE TEXT AT (16,3): " AND" - PUT LARGE TEXT AT (1,4): "MOTION CONTROLLERS." - DELAY 1500 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN gosub drawopt - RETURN - LABEL showopt - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT TEXT AT (1,5): "CURRENT" - PUT TEXT AT (1,6): "POSITION" - PUT TEXT AT (35,6): "COUNTS" - PUT TEXT AT (14,7): "(SIMULATED DATA)" - PUT LARGE TEXT AT (1,1): "ENCODERS CAN BE USED" - PUT LARGE TEXT AT (1,2): "FOR CONTROL/DISPLAY:" count&=0 - PUT LARGE TEXT AT (5,3): ":" for i = 1 to 20 count&=count&+123 - PUT LARGE NUMBER count& AT (7,3) USING "-#########" - DELAY 150 next i - PUT LARGE TEXT AT (6,3): " " - PUT TEXT AT (1,6): "VOLTAGE " - PUT TEXT AT (35,6): "VOLTS " - PUT TEXT AT (14,7): "(SIMULATED DATA)" - PUT LARGE TEXT AT (1,1): " ANALOG DATA CAN BE " - PUT LARGE TEXT AT (1,2): "BROUGHT IN & PUT OUT" - PUT LARGE TEXT AT (5,3): ":" anashow = 0 for i = 1 to 20 anashow = anashow+1.126 - PUT LARGE NUMBER anashow AT (9,3) USING "##.###" - DELAY 150 next i - CLEAR GRAPHICS SCREEN - CLEAR SCREEN gosub drawopt - RETURN - LABEL showio - CLEAR GRAPHICS SCREEN - CLEAR SCREEN - PUT LARGE TEXT AT (2,1): "INPUTS AND OUTPUTS" - PUT LARGE TEXT AT (6,3): "LIGHTS..." - DELAY 2500 - PUT LARGE TEXT AT (3,3): "RELAYS AND VALVES" - DELAY 2500 - PUT LARGE TEXT AT (3,3): " AND MUCH MORE! " - RETURN - TITLE:::::::::: "----------------------------------------------" :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: " EXIT DEMONSTRATION PROGRAM " :::::::::::: - TITLE:::::::::: " " :::::::::::: - TITLE:::::::::: "----------------------------------------------" :::::::::::: *>SCREEN byebye - PUT HUGE TEXT AT (1,1): "THANK YOU!" - PUT LARGE TEXT AT (3,3): "FOR WORKING WITH" - PUT LARGE TEXT AT (2,4): "EASON TECHNOLOGY!!" - CURSOR 0 - DELAY 3000 - CLEAR GRAPHICS SCREEN - CLEAR SCREEN END - END OF PSEUDOCODE