Home

V+ Language User`s Guide Version 11.0

image

Contents

1. Keyword Type Function DY RF Return a displacement component of a given transformation value DZ RF Return a displacement component of a given transformation value FINE PI Enable a high precision feature of the robot hardware servo see COARSE FLIP PI Request a change in the robot configuration during the next motion so that the pitch angle of the robot wrist has a negative value see NOFLIP FORCE S Control whether or not the optional stop on force feature of the V system is active FRAME TF Return a transformation value defined by four positions HAND RF Return the current hand opening HAND TIME P Establish the duration of the motion delay that occurs during OPENI CLOSEI and RELAXI instructions HERE PI Set the value of a transformation or precision point variable equal to the current robot location HERE TF Return a transformation value that represents the current location of the robot tool point HOUR METER RF Return the current value of the robot hour meter IDENTICAL RF Determine if two location values are exactly the same INRANGE RF Return a value that indicates if a location can be reached by the robot and if not why not INVERSE TF Return the transformation value that is the mathematical inverse of the given transformation value IPS CF Specify the units for a SPEED instruction as inches per second LATCH TF Return a transformation value representing the lo
2. DETACH Release robot for use by the MCP PROMPT Place robot at pallet origin Sans HERE loc origin Record the frame origin PROMPT Place robot at point on the pallet x axis Sans HERE loc x axis Record point on x axis PROMPT Place robot at point in positive y direction Sans HERE loc pos y Record positive y direction Creating and Altering Location Variables 125 ATTACH Re attach the robot Create the local reference frame pallet frame SET pallet frame FRAME loc origin loc x axis loc pos y loc origin cell space 50 Spacing of cells on pallet Remove the palletized items FOR i 0 TO 3 FOR J 0 TO 2 APPRO pallet frame TRANS i cell space j cell space 25 MOVE pallet frame TRANS i cell space j cell space BREAK Settle robot CLOSEI Grab the part DEPART 25 MOVE to the drop off location In the above example the code that teaches the pallet frame will need to be run only when the pallet location changes If you are building an assembly that does not have regularly spaced locations like the above example the following code will teach individual locations relative to the frame Get the locations to define the pallet frame DETACH Release robot for use by the MCP PROMPT Place robot at assembly origin Sans HERE loc origin Record the frame o
3. 203 192 Chapter 10 Programming the MCP 10 1 Intoduction This chapter provides an overview of strategies for programming the manual control pen dant General use of the manual control pendant is covered in the Manual Control Pendant User s Guide ATIACHing and DETAC Hing the Pendant Before an application program can communicate with the MCP the MCP must first be ATTACHed using the ATTACH instruction The logical unit number for the MCP is 1 The following instruction will ready the MCP for communication mcp_lun 1 ATTACH mcp_lun When the MCP is ATTACHed the USER LED on the MCP will be lit As with all other devices that are ATTACHed by a program the MCP should be DETACHed when the program is finished with the MCP The following instruction will free up the MCP DETACH mcp_lun When the MCP has been ATTACHed by an application program the user can interact with the pendant without putting the controller key switch in the Pendant position As with all I O devices the IOSTAT function should be used to check for errors after each I O operation 10 2 Writing to the Pendant Display The Pendant Display The MCP display is a 2 line 80 character LCD display It is written to using the WRITE instruction Using WRITE With the Pendant The following instructions will display a welcome message on the two lines of the pen dant display AUTO mcp_lun Pendant LUN AUTO Sintro
4. 216 Window Testing ooo 216 StatusInformation n 216 System SwItCH une a A ee he ERRAT RE EUS NA S 216 System Parameters css REOR EG AX Pee LP YR 217 11 5 Sample Pograms sells 217 Appendices A Example Vt Programs 0 00005 219 A L Pickand Place 25 5 a ne eS al ee RE 219 Features Introduced ees 219 Program Listing ee 219 Detailed Description 0 ee ee 220 Xii V Language User s Guide A 2 MenuPrmgram ees 223 Features Introduced ees 223 ProgranmiFistld tussim Had exo rne Rp eX a Rod B 223 A 3 Teaching Locations With the MCP 224 Features Introduced s 224 Program listing x uscite riu EE ay e E E TS Tubes 224 Extemal Encoder Device o o o o o o o ooo 227 B1 Parameters lee 227 B2 Device Setup ee 228 B3 Reading Device Data o o e 229 Character Sets co cs vad ies sa dani 3 eR Ee a a E 231 mti A SAO 243 Table of Contents xiii Listof Figures L O F Figure 1 1 Figure 1 2 Figure 1 3 Figure 1 4 Figure 1 5 Figure 2 1 Figure 3 1 Figure 3 2 Figure 4 1 Figure 7 1 Figure 7 2 Figure 7 3 Figure 7 4 Figure 7 5 Figure 7 6 Figure 7 7 Figure 7 8 Figure 7 9 Figure 8 1 Figure 9 1 Figure 10 1 Figure 10 2 Figure 11 1
5. ls 59 Control of Program Execution 0 o oo e e 59 Single Step Execution o o ee 59 PAUSE Instructions 1 2 a 60 Program BreakpointS 000 a 60 Program Watchpoints aaau aaa a 61 38 Chapter 2 The SEE Editor and Debugger 2 1 Basic SEE Editor Operations The SEE editor was introduced in Chapter 1 It is described in more detail in this chapter The following notation is used in the tables in this section The control key is indicated by Ctrl the alternate key is indicated by Alt and the Shift key is indicated by S When using the shift alternate and con trol keys they should be pressed at the same time as the following key Some terminals on S series systems will not have an Alt key and the Esc key must be used instead For example the equivalent of Alt A is Esc and then A the escape key should be pressed and released before the next key is pressed lt n gt indicates a number is to be entered as a command prefix without the angle brackets For example you would enter 10L to move the cursor to line 10 lt char gt indicates a character is to be entered without the angle brackets For example you would enter Sa to skip to the next a on the line Keys used only on A series controllers are marked with an A Keys used only with S series terminals are marked with an S
6. llle 120 Transformations vs Precision Points o o o ooo 120 Modifying Location Variables 0 20 00 ooo 121 Relative Transformations 0 0 00 ooo oo 121 Examples of Modifying Location Variables 122 Defining a Reference Frame 2 occ 124 Miscellaneous Location Operations 0004 126 7 4 Motion Control Instucti0MS 00005 127 Basic Motion Operations 0 0 0 0 00 ee 127 J oint Interpolated Motion vs Straight Line Motion 127 Safe Approachesand Departures o o 127 Moving an IndividualJoint 0 2 0 2 000 128 End EffectorOperation Instructions o oo 128 Continuous Path Trajectories 0 o o oo ooo occ 128 Breaking Continuous Path Operation llle 129 Procedural Motion o o o ooo 130 Procedural Motion Examples llle 130 Timing Considerations o o ooo ooo 131 RobobSpeed iaa a a a 3 de IAS 131 Motion Modifiers les 133 75 ToolTransformations llle sss 133 Defining a Tool Transformation llle 134 7 6 Summary ofMotionKeywords o o o oo 135 Input Output Operations o ooo oo 141 8 1 JeminalWV O uc Ri Vos Sa A APER ed 142 Terminal Types o ooo 142 Input Processtg r capas A e 143 Output Processing ee 144 8 2
7. logical operator 74 lt gt not equal to 73 NOT CALIBRATED 108 Notation used in this manual 6 NULL 132 133 138 Numeric argument 7 Numeric expressions 67 Numeric functions 67 Numeric representation 66 Numeric value functions 101 Numeric values representing 66 O Octal value representing 66 OFF 102 ON 102 OPEN 128 138 configuring digital signals for 128 OPENI 128 138 Operators 72 75 subtraction 72 multiplication 72 addition 72 division 72 lt less than 73 lt less than or equal to 73 lt gt not equal to 73 equal to 73 gt greater than 73 gt greater than or equal to 73 AND 74 assignment 72 BAND 75 Binary 75 Bitwise 75 BOR 75 BXOR 75 COM 75 Logical operators 74 mathematical 72 MOD 72 NOT 74 OR 74 order of evaluation 76 relational 73 XOR 74 OR logical operator 74 Order of evaluation operators 76 Output analog 146 digital 144 manual control pendant 145 serial 147 terminal 142 Output wait modes 150 OUTSIDE 101 Overview of V 3 P T pi 101 PACK 99 PARAMETER 102 Parameters 106 BELT MODE 107 HAND TIME 107 KERMIT RETRY 107 KERMIT TIMEOUT 107 NOT CALIBRATED 108 operations 106 SCREEN TIMEOUT 108 TERMINAL 108 Pasting program lines 39 PAUSE 83 94 PAYLOAD 138 PENDANT 172 Pendant see MCP PendantI O 145 Pendanttask 34 PENDANT 194 used to determine MCP state 197 with MCP speed potentiometer 196 with toggle buttons 194 Perf
8. ee 159 VO Configuration ler 159 Attaching Detaching Serial I O Lines o o ooo 159 Iiput Processing uva usnm A AP ste B aa 160 OUtpPUL PROCeSSING 4 xxn Xe RE EG A ae 160 Serial I O Examples sse 161 89 DDCMP Communication Potocol 163 GeneralOperation matana A a A e a AE E R h a es 163 Attaching Detaching DDCMP Devices 0 164 Input Processing ees 164 O utput Processing cote ede tutos Sh ee ae eR een Eds 165 ProtocolParameters o o o ooo ee a p A a 165 Status uet ee us to to ul e un a oh c ed PR un oh ee 166 8 10 Kemit Communication Protocol 166 Starting a KermitSesion 2 uaaa eee 166 File Access Using Kermit 2 1 aa 168 Bihary files vk Mekal dne Wet gare mE ME ue 169 Kermit Eine EITOTS tia ARS edP RA RYE VERA tt 170 V System ParametersforKermit selle 170 10 V Language User s Guide 8 11 Summary of I O Operations 00005 171 Graphics Programming occ 175 9 1 Creating Windows llle 176 AMACH Instruction a x uk et a RE BS 176 FOPEN Instruction 0 les 176 FCLOSE Instruction 2 2 o 177 FDELETE Instr ctlon sic Gaal ace a do RO ace alee wie 177 DETACH Instmctiorn week ica bea Ree Ree a ed eae 177 Custom Window Example 0 0000 ee ee 177 9 2 Monitoring Events ssl ess 178 G ETEVENT InSt
9. Serial Line I O 159 8 8 Serial Line I O The V controller has several serial lines that are available for general use This section describes how these lines are used for simple serial communications To use a serial line for a special protocol such as DDCMP and Kermit described later in this chapter the line must be configured using the Adept controller configuration utility program I O Configuration In addition to selecting the protocol to be used the Adept controller configuration pro gram allows the baud rate and byte format for each serial line to be defined Once the serial line configuration is defined on the V system boot disk the serial lines are set up automatically when the V system is loaded and initialized After the system is running the FSET instruction can be used to reconfigure the serial lines The following byte formats are available e Byte data length of 7 or 8 bits not including parity e One or two stop bits e Parity disabled or enabled e Odd or even parity adds 1 bit to byte length The following baud rates are available 110 300 600 1200 2400 4800 7200 9600 19200 384 00 In addition V provides automatic buffering with optional flow control for each serial line The I O configuration program can be used to enable output flow control with which V recognizes Ctrl S 19 decimal and Ctrl Q 17 decimal and uses them to suspend and resume respectively serial line output The configurat
10. Sintro Welcome to the MCP mcp lun 1 Attach the MCP check for errors and output message Detecting User Input 193 ATTACH mcp_lun IF IOSTAT mcp_lun lt 1 GOTO 100 WRITE mcp lun intro WRITE mcp_lun Instructions to follow S 100 IF IOSTAT mcp_lun lt 1 THEN Report errors YPE IOSTAT mcp lun SERROR IOSTAT MCP_LUN END DETACH mcp_lun Notice that the second WRITE instruction uses the S qualifier This qualifier suppresses the carriage return line feed lt CR LF gt that is normally sent by the WRITE instruction If this qualifier was not specified the first line displayed would have been scrolled off the top In section 10 4 we will detail the pendant control codes These codes control the cur sor position the lights on the MCP and the interpretation of MCP button presses These codes are sent to the pendant using the WRITE instruction The S qualifier must be sent with these instructions to avoid overwriting the pendant display 10 3 Detecting User Input Input from the pendant can be received in two ways e A series of button presses from the data entry buttons can be read The READ instruction is used for this type of input A single button press from any of the buttons can be detected These single but ton presses can be monitored in three different modes a The buttons can be monitored like keys on a normal keyboard b Th
11. Impactsand Trapping Points ooo eee ee 4 High Powerand Program Running Lights 0 0 5 The SEE Editor Window 1 ee 14 Argument Mapping rs 24 Calliby Valu iis RES ea Pee De ewe RUE 25 Task Scheduler 23 cies aie th sea tea he ea ae Slee Sear a 31 Phomy Example 1 usan Gag a A 33 Example Program Debugger Display ooo 54 Variable Scoping v airas eon a ea a i a es 70 Variable Scope Example 0 0020 eee 71 Priority Example 2 eer 85 Adept Robot Cartesian Space ls ee 115 XYZElementsofa Transformation 000220200 116 YAW ae a ab x RA eR RR dms 117 PEA tepals ts wie Des od I hos ipeo eee Aot RA 118 Roll ausi eu rh scelus RR Uta c oro Xx olei epit Jed 119 Relative Transformation lisse 123 Relative Locations 1 0 ooo ee 124 Recording LOCATIONS inci si Gee be Peet ee gei Pur i wu 133 ToolTransfomation sees 134 Analog I O Board Channels lille 146 Sample Men suisse tad Big 32 A ql 182 MOP Button Map ren 197 Pendant LCD Display eren 199 ConveyorTems sex ko c3 Oa ue RE 3 gp ORIGO d xus 213 xiv V Language User s Guide List of Tables L OT Table 1 1 Table 1 2 Table 1 3 Table 2 1 Table 2 2 Table 2 3 Table 2 4 Table 3 1 Table 3 2 Table 3 3 Table 3 4 Table 3 5 Table 3 6 Table 4 1 Table 5 1 Table 5 2 Table 5 3 Table 5 4 Table 6 1 Ta
12. Serial and Disk VO Basics 147 8 5 Serial and Disk I O Basics The following sections describe the basic procedures that are common to both serial and disk I O operations Section 8 6 covers disk I O in detail Section 8 8 covers serial I O in detail Logical Units All V serial and disk I O operations reference an integer value called a Logical Unit Number or LUN The LUN provides a shorthand method of identifying which device or file is being referenced by an I O operation See the ATTACH command in the V Lan guage Reference Guide for the default device LUN numbers Disk devices are different from all the other devices in that they allow files to be opened Each program task can have one file open on each disk LUN That is each program task can have multiple files open simultaneously on the same or different disk units NOTE No more than 60 disk files can be open by the entire system at any time That includes files opened by programs and by the system monitor for example for the FCOPY command The error Device not ready results if an attempt is made to open a 61st file See Chapter 9 for details on accessing the graphics window LUNS Enor Status Unlike most other V instructions I O operations are expected to fail under certain cir cumstances For example when reading a file an error status is returned to the program to indicate when the end of the file is reached The program is expected to handle this
13. Saco Figure 10 1 MC P Button Map Reading the State of the MCP It is good programming practice to check the state of the MCP before ATTACHing to it The instruction cur state PENDANT 3 will return a value to be interpreted as follows 1 Indicates that one of the predefined function buttons has been pressed 2 Indicates the MCP is in background mode not ATTACHed to an applica tion program 3 Indicates an error is being displayed 4 Indicates that the MCP is in USER mode ATTACHed to an application pro gram See section 10 6 on page 203 for a program example that checks the MCP state 198 Chapter 10 Programming the MCP 10 4 Controlling the Pendant The MCP responds to a number of control codes that affect the LCD panel whether or not the buttons are repeat buttons and the LEDs associated with the pendant buttons The control codes are listed in Table 10 1 The control codes are sent as ASCII values using the WRITE instruction The normal way to send control codes is to use the CHR function to convert a control code to its ASCII value Control Codes for the LCD Panel To clear the display and position the cursor in the middle of the top line issue the instruc tion WRITE mcp lun CHR 12 CHR 18 SCHR 20 S CHR 12 clears the pendant and places the cursor at position 1 see Figure 10 2 CHR 18 indicates that the next value received should
14. The menu event 14 has two components a button down component corresponding to a click on a menu bar selection anda button up component corresponding to the pull down selection made when the button is released After the first component pointer down on the menu bar event 1 will be 0 and event 2 will have the number of the menu bar selection Check to see if event 1 is 0 indicating a top level menu select Building a Menu Structure 181 Use the value in event 2 to select a pull down menu FSET lun pulldown event 2 menu event 2 Else execute the appropriate code for each menu selection ELSE If event 1 is not 0 then the button has been released on a pull down selection and event 1 will have the value of the top level selection menu event 2 will have the value of the pull down selection item menu event 1 item event 2 The outer CASI The inner CASI structure checks the top level menu selection structure checks the item selected from the pull down DH El CASE menu OF VALUE 1 Menu 1 CASE item OF VALUE 1 code for Item 1 1 VALUE 2 code for Item 1 2 END VALUE 2 Menu 2 CASE item OF VALUE 1 code for Item 2 1 VALUE 2 code for Item 2 2 VALUE 3 code for Item 2 3 END VALUE 3 Menu 3 CASE item OF VALUE 1 quit TRUE time to quit END END case men
15. disk file Thus you must use Ctrl Z to step across any CALL of such a routine 60 Chapter 2 The SEE Editor and Debugger NOTE The execution pointer gt will not be displayed while the system is executing an instruction Do not type a Ctrl X or Ctrl Z until the execution pointer reappears PAUSE Instuctions Debug editor mode can be used to insert PAUSE instructions in the program at strategic points Then execution will pause when those points are reached After the pause has occurred and you are ready to have execution resume you can use the PROCEED com mand The debugger Ctrl P command provides a convenient means of issuing a PROCEED command for the program being debugged The disadvantage of using PAUSE instructions however is that they must be explicitly edited into the program and later removed when debugging is completed The following section describes a more convenient way to achieve the same effect as a PAUSE instruc tion Progra m Breakpoints The V BPT command can be used to attach a breakpoint to an instruction The BPT allows either or both of the following responses to occur when the breakpoint is encoun tered during execution e Execution stops at the flagged instruction before it is executed e Values are displayed on the system terminal showing the current status of user specified expressions To set breakpoints at various points in the program enter the appropriate BPT comman
16. wrist joint is reflected in the pitch component The move ment of a fifth axis on a SCARA robot is reflected in the pitch component In this example the motion device end of arm tooling has a pitch of 40 resulting in a transformation with the value X 30 Y 100 Z 125 yaw 30 pitch 40 and roll 0 This location can be reached only by a mechanism with a fifth axis Pitch is represented as 180 not as 360 of rotation Thus a positive rotation of 190 is shown as 170 Y axis of local reference frame after applying yaw Figure 7 4 Pitch Location Variables 119 Roll Roll is defined as a rotation about the Z axis of the local reference frame after yaw and pitch have been applied Figure 7 5 shows a local reference frame in the primary robot Cartesian space and the direction roll would take within that space In this example the transformation has a value of X 30 Y 100 Z 125 yaw 30 pitch 40 and roll 20 This location can be reached only by a mechanism with fifth and sixth axes ROLL DO Z axis of local reference frame after applying yaw and pitch Z Figure 7 5 Roll 120 7 3 Chapter 7 Motion Control Operations Special Situations When the Z axes of the local and primary reference frames are parallel roll and yaw pro duce the same motion in the same plane although the two motions may be in different directions This is always the case with a four axis SCAR
17. 124 7C bar 125 7D left brace 126 7E tilde 127 7F solid A A Table C 2 Adept Character Set Continued Dec Value Hex Value Description roman chars Font 1 Fonts 5 amp 6 128 80 copyright 129 81 registered trademark 130 82 trademark M IM 131 83 bullet 132 84 superscript 133 85 double quote modified id 238 Appendix C Character Sets Table C 2 Adept Character Set C ontinued Dec Value Hex Value Description roman chars Font 1 Fonts 5 amp 6 134 86 checkmark v v 135 87 right pointing triangle gt 136 88 approximately equal symbol X o 137 89 OE ligature CE a 138 8A oe ligature ce i 139 8B beta B u 140 8C Sigma L e 141 8D Omega Q o 142 8E blank ya 143 8F blank yu 144 90 dot less i i yo 145 91 grave accent Dbl next consonant 146 92 acute accent 147 93 circumflex 5 A 148 94 tilde I 149 95 macron 3 U 150 96 breve E 151 97 dot accent O 152 98 dieresis P KA 153 99 blank KI 154 9A ring 2 KU 155 9B cedilla KE 156 9C blank KO 157 9D hungarumlaut s SA 158 9E ogonek SHI 159 9F caron SU Table C 2 Adept Character Set Continued Adept Character Set 239 Dec Value Hex Value Description roman chars Font 1 Fonts 5 amp 6 160 AO blank Yen
18. Monitoring the MCP Speed Bar sss 196 Reading the State ofthe MCP 0 0000 ee 197 10 4 Controlling the Pendant 198 Control Codesforthe LCD Panel ens 198 The Pendant LEDS xu ex Ress Rio EG B RM RE RU Beds 199 Making Pendant ButtonsRepeatButtons 199 10 5 Auto Starting Programs With the MCP 202 WATESTART netics aiie de de at oa a ERE RE le al ee ac 202 10 6 Programming Example MCP Menu 203 1 1 ConveyorTracking sss sese 207 ILI Installation 42 a a ado we SO 208 11 2 Calibration oko rz oR on Be Pole ee oe aei 209 11 3 Basic Programming Conceptss 0 2 0 eee es 209 Belt Varables 3 00 eek tas s Bae he ee ES eit Dis WEE 209 Nominal Belt Transformation o 210 Te BeltEnCoder cui eee ae ea See mets a 211 The Encoder Scaling Factor 2 000 eee eee 212 The Encoder Offset iuvat 44 ai Bae aw bela ate 212 The Belt Window 1 RR 212 Belt Relative Motion Instructions cee eee ee 214 Motion Termination 214 Defining Belt Relative Locations 2 0002 eee 215 11 4 Moving Line Pogramming 1 2 ee 215 Instructionsand Functions oo ee ee 215 Belt Variable Definition RR 216 Encoder Position and Velocity Information
19. An asterisk prompt is used instead to remind the user that task 0 is executing The asterisk prompt does not appear automatically however The prompt is displayed when ever there is input to the V system monitor from the system terminal NOTE Even though the system prompt is not displayed while program task 0 is executing V monitor commands can be entered at any time that a program is not waiting for input from the terminal The ABORT monitor command or program instruction will stop task 0 after the current robot motion completes The CYCLE END monitor command or program instruction can be used to stop the program at the end of its current execution cycle If program execution stops because of an error a PAUSE instruction or an ABORT com mand or instruction the monitor commands PROCEED or RETRY can be used to resume execution While execution is stopped the DO monitor command can be used to execute a single program instruction entered from the keyboard as though it were the next instruc tion in the program that is stopped For debugging purposes the SSTEP or XSTEP monitor commands can be used to execute a program one step at a time Also the TRACE feature can be used to follow the flow of program execution The program debugger can also be used to execute a program one instruction at a time See Chapter 2 for information on the V program debugger 1 6 Program Stacks 21 Execution of program tasks other than
20. BS 008 08 Backspace HT 009 09 Horizontal tab LF 010 0A Line feed VT 011 0B Vertical tab FF 012 0C Form feed CR 013 0D Carriage return SO 014 OE Shift out SI 015 OF Shift in DLE 016 10 Data link escape DC1 017 11 Direct control 1 DC2 018 12 Direct control 2 DC3 019 13 Direct control 3 DC4 020 14 Direct control 4 NAK 021 15 Negative acknowledge SYN 022 16 Synchronous idle ETB 023 17 End of transmission block CAN 024 18 Cancel EM 025 19 End of medium SUB 026 1A Substitute Adept Character Set 233 Table C 1 ASCII Control Values Continued Decimal Character Value Hex Value Meaning of Control Character ESC 027 1B Escape FS 028 1C File separator GS 029 1D Group separator RS 030 1E Record separator US 031 1F Unit separator DEL 127 7F Delete Table C 2 Adept Character Set Dec Value Hex Value Description Font 1 Fonts 2 3 4 5 6 000 00 cell outline 001 01 diamond 002 02 checkerboard 003 03 HT Horizontal Tab He 004 04 EF Form Feed En 005 05 CR Carriage Return E 006 06 LF Line Feed La 007 07 degree symbol 2 008 08 plus minus 009 09 NL New line N 010 0A VT Vertical Tab Va 011 0B lower right corner y 012 0C upper right corner 013 0D upper left corner p 014 OE lower left corner El 015 OF intersection 016 10 s
21. S Cursor up END IF PENDANT 45 THEN YPE SCHR 12 Cursor down line feed END UNTIL PENDANT 8 196 Chapter 10 Programming the MCP Monitoring The speed bar being pressed the speed bar Set the REC DONE KEYMODE Display speed bar value until the REC DONE DO the MCP Speed Bar on the MCP returns a value from 128 to 127 depending on where it is An argument of 2 to the PENDANT function will return the value of The following code displays the state of the speed bar button to toggle is pressed WRITE 1 PENDANT 2 UNTIL P ENDANT 8 The Slow button is intended to alter the value returned by the speed bar The following code compresses the range of values returned by 50 whenever the Slow button is nu n on Set the REC DONE KEYMODE Do until button to toggle the REC DONE button is pressed DO IF PENDANT 36 THEN YPE PENDANT 2 0 5 ELSE YPE PENDANT 2 END UNTIL PENDANT 8 Detecting User Input 197 D OJO WORLD TOOL JOINT FREE DEV2 o e e e N N OOOO S OAOA G7 G9 N wo A A al o GG GO GP GOL G7 Q9
22. STATUS 102 Status DDCMP communications 166 Step label 18 number 18 program 18 STOP 83 94 Straight line motion 127 String replacement 40 searching 40 String arrays 68 String data 65 String functions 66 99 String operator 75 Subdirectories 151 Subroutine recursive 26 reentrant 26 stack 21 requirements 22 size calculation 22 Subroutine call 79 using a string expression 79 Subroutines argument lists 24 subtraction 72 Suppressing CR LF to the MCP 193 SWITCH 102 Switches 106 109 BELT 110 CP 110 DRY RUN 110 FORCE 110 INTERACTIVE 110 MCP MESSAGES 110 MCS MESSAGES 110 MESSAGES 110 NETWORK 110 operations 109 POWER 111 RETRY 111 ROBOT 111 SET SPEED 111 TRACE 111 UPPER 111 Syntax error 19 System parameter 106 prompt 20 switch 106 109 System control functions 102 System interrupt digital I O 145 System safeguards computer controlled devices System task priorities 35 System tasks 34 7 TAS 103 TASK 103 Task availability 20 number 20 priority 28 29 program execution 20 28 releasing 30 scheduling 29 stack 21 requirements 22 size calculation 22 time slices 28 timing 28 waiting 30 Task scheduling 28 29 31 overriding 30 round robin groups 29 Task vs program priority 28 Tasks 5 system 34 35 TEACH 120 TERMINAL 108 Terminal 6 control 8 CRT 108 function keys 6 supressing message to 110 Terminal I O 142 144 Terminal input 142 Terminal graphics taks 34 TIME 103 TIME 103
23. The items in the following numbered list refer to the numbers in Figure 1 1 O On Series terminals this area shows the row and column of the cursor location O This line displays the program name and the program s parameter list The program name cannot be edited but program parameters can be added between the parenthe ses O The typing cursor In insert mode characters entered at the keyboard will be entered at the cursor position Existing characters to the right of the cursor will be pushed right In replace mode the character under the cursor will be replaced In command mode Copy Paste and similar commands will take place at the cur sor location With an A Series controller clicking with the pointer device will set the typing cursor at the pointer location The cursor cannot be set lower than the last line in a program Also the scroll bars on the monitor window can be used to scroll through the program 1 2 Using the Editor 15 Shows the name of the program currently being edited If the program is open in read only mode R will be appended to the name Shows the program step the cursor is at and the total number of lines in the program Shows the current editor mode eco 6 Shows the number of lines in the copy attach buffer Whenever a program line is Cut or Copied it is placed in the copy buffer When lines are pasted they are removed from the copy buffer and pasted in the reverse order they w
24. The signal 1003 transition is detected The task 1 reaction program begins execu tion interrupting prog_a The task 1 reaction program reenables itself and completes by issuing a RETURN instruction prog_a resumes execution in task 1 Task 1 prog_a issues a CLEAR EVENT instruction followed by a WAIT EVENT instruction to wait for its event flag to be set Task 1 is suspended and task 2 resumes execution of prog_b Task 2 has a reaction program based on signal 1010 enabled at priority 5 Task 2 prog_b issues a LOCK 10 instruction to raise its program priority to level 10 Signal 1010 is asserted externally The signal transition is not detected until the next major cycle The signal 1010 transition is detected and the task 2 reaction is triggered How ever since the reaction is at level 5 and the current program priority is 10 the reaction execution is deferred Task 2 prog_b issues a LOCK 0 instruction to lower its program priority to level 0 Since a level 5 reaction program is pending it begins execution immedi ately and sets the program priority to 5 Signal 1003 is asserted externally The signal transition is not detected until the next major cycle Program Interrupt Instructions 85 The signal 1003 transition is detected which triggers the task 1 reaction routine and also sets the task 1 event flag Since task 1 has a higher priority 30 than task 2 20 task 1 begins exec
25. The system keyboard is the primary input device for controlling the V system Adept A series systems use a PC style keyboard and high resolution graphics monitor Adept S series controllers use a Wyse WY 60 WY 70 or compatible terminal supplied by the user NOTE The word terminal is used throughout this manual to refer either to a computer terminal or to the combination of a graphics monitor and a PC style keyboard Input typed at the terminal must generally be terminated by pressing the Enter or Return key These keys are functionally identical and are often abbreviated with the symbol 1 S F9 means to hold down the Shift key while the F9 key is pressed Ctrl R means to hold down the Ctrl key while the R key is pressed The keys in the row across the top of the keyboard are referred to as function keys The V SEE program editor and the V program debugger use some of them for special func tions NOTE The Delete and BackSpace keyboard keys can always be used to erase the last character typed The Delete options associated with the F14 key on a Wyse terminal are used only by the SEE editor and the program debugger Uppercase and Lowercase Letters You will notice that a mixture of uppercase capital and lowercase letters is used through out this manual when V operations are presented For clarity all V keywords for exam ple function and instruction names are shown in uppercase and all elements that
26. These keys strokes work as described only in Command mode The copy buffer is dis carded when you exit the SEE editor but is maintained as you edit different programs without leaving the editor SEE Editor Extended Commands Editor extended commands are used for infrequent operations which do not warrant allo cation to a dedicated keyboard key The extended commands are invoked with the X command in Command mode which prompts for the name of the actual command to be performed The command name can be abbreviated to the shortest length that uniquely identifies the command After the command name or abbreviation is entered press to indicate the end of the name As indicated below some commands display a message on the editor command line Some of the commands prompt for additional input All of the following commands can be used when viewing a program in read only mode Most of the commands close the current line 48 Chapter 2 The SEE Editor and Debugger AUTO BAD DEBUG DSIZE EXACT READONLY READWRITE SEE TSIZE WHERE NOTE The settings controlled by the extended commands are all retained between editing sessions initiated with the SEE monitor command When the SEE program instruction is used to initiate program editing all the settings controlled by the extended commands are set to the initial settings described below Settings changed during the edit session are not retained after t
27. Thus only one control structure error at a time can be detected Program Organization The first step of every V program must be a PROGRAM instruction This instruction names the program defines any arguments it will receive or return and has the format PROGRAM program_name parameter_list Comment The program name is required but the parameter list and comment are optional After the PROGRAM line there are only two restrictions on the order of other instruc tions in a program AUTO LOCAL or GLOBAL instructions must precede any executable program instructions Only comment lines blank lines and other AUTO LOCAL or GLOBAL instructions are permitted between the PROGRAM step and an AUTO LOCAL or GLOBAL instruction e The end of a program is marked by a line beginning with END The V edi tors automatically add but do not display this line at the end of a program Program Variables V uses three classes of variables GLOBAL LOCAL and AUTO These are described in detail in section 3 6 on page 69 1 The PROGRAM and END lines are automatically entered by the V editors If you use another text editor for transfer to a V system you MUST enter these two lines In general any editor that produces unformatted ASCII files can be used for programming See the FORMAT command for details on creating floppy disks compatible with other operating systems 20 Chapter 1 Programming V 1 5 Ex
28. belt either 1 or 2 3 The belt encoder scaling factor which is used for converting encoder counts to millimeters of belt travel 4 An encoder offset which is used to adjust the origin of the belt frame of refer ence 5 Window parameters which define the working range of the robot along the belt These components of belt variables are described in detail in the following sections Unlike other V data types belt variables cannot be stored in a disk file for later loading However the location and real valued data used to define a belt variable can be stored and loaded in the normal ways After the data is loaded from disk DEFBELT and WINDOW instructions must be executed to define the belt variable The file LOADBELT V2 on the Adept Utility Disk contains a subroutine that will read belt data from a disk file and execute the appropriate DEFBELT and WINDOW instructions Nominal Belt Transformation The position orientation and direction of motion of a belt are defined by a transformation called the nominal belt transformation This transformation defines a reference frame aligned with the belt as follows its X Y plane coincides with the plane of the belt its X axis is parallel to the direction of belt motion and its origin is located at a point fixed in space chosen by the user Since the direction of the X axis of the nominal belt transformation is taken to be the direc tion along which the belt moves this component of
29. byte data is output to the terminal without any modifi cation TYPE and WRITE automatically append a Return character 13 decimal and Line Feed character 10 decimal to each data record unless the S format control is specified PROMPT does not append any characters Unlike all the other I O devices the terminal does not have to be attached prior to output requests If a different task is attached to the terminal however any output requests are queued until the other task detaches V system error messages are always displayed immediately regardless of the status of terminal attachment Digital I O Adept controllers can communicate in a digital fashion with external devices using the Digital I O capability Digital input reads the status of a signal controlled by user installed equipment A typical digital input operation would be to wait for a microswitch on a workcell conveyor to close indicating that an assembly is in the proper place The WAIT instruction and SIG function are used to halt program execution until a digital input channel signal achieves a specified state The program line WAIT SIG 1001 will halt program execution until a switching device attached to digital input channel 1001 is closed If signal 1002 is a sensor indicating a part feeder is empty the code IF SIG 1002 THEN CALL service feeder END will check the sensor state and call a routine to service the feeder if the sensor is on
30. gt PF3 Move right 1 item End PF4 Go to end of line Top F15 Go to top of program Bottom F16 Go to end of program Deleting Copying and Moving Lines Unlike many text editors multiple copy operations are stored in a stack Each copy opera tion places a line s on top of the stack Each paste operation removes a line s from the top of the stack and pastes it at the current location However once a single line has been pasted it is removed from the copy buffer and cannot be pasted again Key s Action Copy F9 Copy the current line into the editor s copy buffer know as the attach buffer Paste F10 Paste the most recently copied line above the current line You cannot exit SEE with lines in the attach buffer Ctrl K will remove lines from the copy buffer without pasting them into a program Lines cannot be pasted in read only mode Paste All S F10 Paste the entire copy buffer above the current line Cut S F9 Cut the current line and place it in the copy buffer Del Line S Ctrl Delete A Delete the current program line and do not place it in the copy buffer Press Undo F6 immediately after deleting to restore the line s just deleted 40 Chapter 2 The SEE Editor and Debugger Text Searching and Replacing The SEE editor can search for specific text strings or change a specified string to another string The following keys perform string
31. initiate monitor command programs that include robot motions The command WAIT START in a monitor command program will pause execution of a monitor com mand program until the key switch is correctly set and the PROGRAM START button is pressed See the V Language Reference Guide for other uses of WAIT START WARNING For this safety feature to be effective the optional front panel must be installed outside the workcell The default disk is not the same as the boot drive The boot drive is set in hardware and is used during the boot procedure to specify the drive that contains the operating sys tem Once the system is loaded the default disk is the drive and path specification for loading and storing files Programming Example MCP Menu 10 6 Programming Example MCP Menu 203 The following code implements a menu structure on the MCP Additionally section A 3 presents a program example for using the MCP to teach robot locations PROGRAM mcp main ABSTRACT MCP INPUT PARAMS OUTPUT PARAMS GLOBAL VARS cursor AUTO button mcp mcp mcp blink char noblink char beep tab on led mcp mcp mcp mcp mcp None None mcp Le scr cur pos off led MCP logical unit pend pend ant ant pendant pendant pend pend pend pend ant ant ant ant control control control control control control control contr
32. no wait format control is specified in an out put instruction Instead V immediately executes the next instruction The IOSTAT func tion will check whether or not the output has completed It returns a value of zero if the previous I O is not complete If a second output instruction for a particular LUN is encountered before the first no wait operation has completed the second instruction will automatically wait until the first is done This scheme means the no wait output is effectively double buffered If an error occurs in the first operation the second operation is canceled and the IOSTAT value is cor rect for the first operation With V the IOSTAT function can be used with a second argument of 3 to explicitly check for the completion of a no wait write Disk I O 151 8 6 Disk I O Attaching Disk Devices A disk LUN refers to a local disk device such as a 3 1 2 inch diskette drive or the optional hard disk Also a remote disk may be accessed via the Kermit protocol or a network The type of device to be accessed is determined by the DEFAULT command or the ATTACH instruction If the default device type set by the DEFAULT command is not appropriate at a particular time the ATTACH instruction can be used to override the default The syntax of the ATTACH instruction is ATTACH lun mode device See the description of ATTACH in the V Language Reference Guide for the mode options and the possible device names Th
33. run highest priority program in task until program completes waits or time slice is up run null task until an event occurs Figure 1 4 Task Scheduler 32 Chapter 1 Programming V Execution Priority Example The following example shows how the task priority scheme works The example makes the following simplifying assumptions Task 0 runs in all time slices at priority 20 Task 1 runs in all time slices at priority 10 Task 2 runs in all time slices at priority 20 All system tasks are ignored systems tasks are described in the next section All system interrupts are ignored Figure 1 5 shows three tasks executing concurrently Note that since no LOCK or REACT_ instructions are issued the program priority remains 0 for the entire segment See section 4 3 for descriptions of the REACT routines the LOCK instruction and another program execution example The illustration shows the time lines of executing programs A solid line indicates a pro gram is running and a dotted line indicates a program is waiting The Y axis shows the program priority The X axis is divided into 1 millisecond time slices The sequence of events for Priority Example 1 is o prog a issues a WAIT EVENT This suspends prog a and passes execu tion to the next highest task which is task 2 running prog c o prog c runs until it issues a RELEASE instruction Since the RELEASE has no arguments execution is p
34. tem complexity The V system continuously generates robot control commands and can concurrently interact with an operator permitting on line program generation and modi fication V provides all the functionality of modern high level programming languages includ ing Callable subroutines e Control structures Multitasking environment Recursive reentrant program execution Compatibility This manual is for used with V version 11 0 and later This manual covers the basic V system If your system is equipped with optional AdeptVision VME see the Adept Vision Reference Guide and the AdeptVision VME User s Guide for details on the vision enhance ments to basic V Manual Overview The V Language User s Guide details the concepts and strategies of programming in V Material covered includes e Functional overview of V e A description of the data types used in V e A description of the system parameters and switches e Basic programming of V systems e Editing and debugging V programs e Communication with peripheral devices e Communication with the manual control pendant e Conveyor tracking feature e Example programs e Using tool transformations e Requirements for the system terminal e Accessing external encoders Related Publications 3 Many V keywords are shown in abbreviated form in this user guide See the vt Language Reference Guide for complete details on all V keywords Related Public at
35. the variable is said to be passed by reference If a calling program passes a variable to a subroutine but the subroutine cannot pass back the variable in an altered form the variable is said to be passed by value Variables you want changed by a subroutine should be passed by reference All the vari ables passed in the CALL statement in Figure 1 2 are being passed by reference Changes made by the subroutine will be reflected in the state of the variables in the calling pro gram Arguments that are to be changed by a subroutine and passed back to the calling routine must be specified as a variable not an expression or value In addition to passing variables whose value you want changed you will also pass vari ables that are required for the subroutine to perform its task but whose value you do not want changed after the subroutine completes execution Pass these variables by value When a variable is passed by value a copy of the variable rather than the actual variable is passed to the subroutine The subroutine can make changes to the variable but the changes are not returned to the calling program the variable in the calling program will have the same value it had when the subroutine was called Figure 1 3 shows how to pass the different types of variables by value Reals and integers are surrounded by parenthe ses NULL is appended to location variables and is appended to string variables see Chapter 3
36. 4 return information about the system and system parameters Table 5 4 System Control Functions Keyword Function DEFINED Determine whether a variable has been defined ERROR Return the error number of a recent error that caused program execution to stop or caused a REACTE reaction ERROR Return the error message associated with the given error code FREE Return the amount of unused free memory storage space GET EVENT Return events that are set for the specified task ID Return values that identify the configuration of the current system ID Return the system creation date and edit revision information LAST Return the highest index used for an array dimension PARAMETE Return the current setting of the named system parameter R PRIORITY Return the current reaction lock out priority for the program SELECT Return the unit number that is currently selected by the current task for the device named STATUS Return status information for an application program SWITCH Return an indication of the setting of a system switch VO Functions 103 Table 5 4 System Control Functions Continued Keyword Function TAS Return the current value of a real valued variable and assign it a new value The two actions are done indivisibly so no other program task can modify the variable at the same time TASK Return information about a program execution
37. Adept controller configu ration program Starting a Kermit Session This section will lead you through the steps involved with initiating a Kermit file transfer session using Kermit with the V system The term remote system is used in this discus sion to refer to the computer system that is to be accessed with Kermit Kermit documentation and software are available from Kermit Distribution Columbia University Center for Computing Activities 612 West 115th Street New York NY 10025 USA 2 Only one line can be configured at any one time for use with Kermit The controller con figuration program is on the Adept Utility Diskette in the file CONFIG_C V2 Kermit Communication Protocol 167 NOTE The following information should be considered an example The specific details may not be correct for the computer system you are accessing with Kermit The first step is to start up a Kermit server on the remote system One way to do this is to go into pass through mode on the Vt system by typing the monitor command PASSTHRU KERMIT The system terminal is now connected directly to the serial line to the remote system Anything you type at the system terminal except Ctrl C and Ctrl P will be sent directly to the remote system If you cannot get any response from the remote system at this point there is probably a problem with the serial line connection A common problem is a mismatch of baud rates or other communication character
38. AdeptMotion VME systems to determine the origin and orientation of the world coordinate frame Location Variables 115 Figure 7 1 Adept Robot Cartesian Space Transformations The first three components of a transformation variable are the values for the points on the X Y and Z axes In an Adept SCARA robot the origin of this Cartesian space is the base of the robot The Z axis points straight up through the middle of the robot column The X axis points straight out and the Y axis runs left to right as you face the robot The first robot in Figure 7 1 shows the orientation of the Cartesian space for an Adept SCARA robot The location of the world coordinate system for other robots and motion devices depends on the kinematic model of the motion device For example the second robot in Figure 7 1 shows the world coordinate frame for a robot built on the Cartesian coordinate model See the kinematic device module documents for your particular motion device 116 Chapter 7 Motion Control Operations When a transformation is defined a local reference frame is created at the X Y Z location with all three local frame axes parallel to the world coordinate frame Figure 7 2 shows the first part of a transformation This transformation has the value X 30 Y 100 Z 125 yaw 0 pitch 0 and roll 0 Figure 7 2 XYZ Elements of a Transformation The second three components of a transformation variable
39. DigitalU O ie oe ee ake ae waa Late d 144 High Speed Interrupts 0 0 00 ee 145 Soft Signals iia ea ae OP ae EE ERG ERES 145 Table of Contents ix 8 3 PendantV O iii wash hae XS ee A EHE 145 8 4 Analog O ok E Meee EA EA SEX leis a 146 85 Serialand Disk I O Basics cee eee 147 Log icaltUnits 2 6 iuum hs nab hw Heed Phe bP eet a 147 Emon Stat S carro rr dha aa a Aa ee WEG 147 Attaching Detaching Logical Units 00 148 Reading JS 6x a estt meds ten duret nt ie dere hoa te 149 VIMEO as ee A TT 149 Input Wait Modes en 149 Output Wait Modes ee 150 8 6 DISKVO Cuarta Bat a A Pudet e 151 Attaching Disk Devices 1 1 aaa a 151 Disk Directores erre 151 DIK File Operations unit ek e IRE Re Eu ao 151 Opening a Disk Fie iln 152 Writing to a Disk ee 153 Reading From a Disk o o o o o o c o oo oo 153 Detaching 4 20 A A A aa 153 Disk O Example o o o oc o oo ooo 154 8 7 Advanced Disk Operatons a 155 Varable Length Records o ooo es 155 Fixed Length Records ler 155 SequentialAccessFiles ooo es 156 Random AccessFiles lees 156 Buffering and I O Overlapping lille 156 Disk Commands sasaaa aa 157 Accessing the Disk DirectorieS lesen 157 88 Senallinel O
40. FOPENA If the disk file does not exist a new file is created Otherwise an existing file is opened No error is returned in either case A sequential write or a random write with a zero record number appends data to the end of the file 4 Open for directory read FOPEND The last directory in the specified directory path is opened Only read operations are allowed Each record read returns an ASCII string containing directory information Directories should be opened using variable length sequential access mode While a file is open for write or append access another control program task cannot access that file However multiple control program tasks can access a file simultaneously in read only mode Writing to a Disk The instruction WRITE dlun in string will write the string stored in in string to the disk file open on dlun The instruction error IOSTAT dlun will return any errors generated during the write operation Reading From a Disk The instruction READ dlun in string will read from the open file on dlun up to the first CR LF or end of file if itis encoun tered and store the result in in string When the end of file is reached V error num ber 504 Unexpected end of file is generated The IOSTAT function must be used to recognize this error and halt reading of the file DO READ dlun in string TYPE in string UNTIL IOSTAT dlun 504
41. FSET 179 Function keys debugger commands 57 terminal 6 Functions 98 103 as arguments to a function 98 I O 103 location 100 logical 102 numeric value 101 SIG 144 SIG INS 145 string 99 system control 102 used in expressions 98 G GARC 190 GCHAIN 190 GCLEAR 190 GCLIP 190 GCOLOR 190 GCOPY 190 General purpose control program 17 GET EVENT 93 102 GETC 149 172 with IOSTAT 148 GETEVENT 178 GFLOOD 190 248 V Language User s Guide GICON 190 GLINE 190 GLINES 190 Global variables 69 double precision 69 GLOGICAL 190 GOTO 78 93 GPANEL 182 GPOINT 190 Graphics character set 236 gt greater than 73 gt greater than or equal to 73 GRECTANGLE 190 Gripper and digital signals 128 Gripper instructions 128 GSCAN 190 GSLIDE 184 190 GTEXTURE 190 GTYPE 190 H HALT 83 93 HAND 137 HAND TIME 107 137 HERE 120 137 Hexidecimal value representing 66 HIGH POWER 5 HOUR 137 l I O buffering 156 error status 147 opening multiple files 156 overlapping 156 I O errors checking for 186 I O functions 103 I O instructions error status 147 ID 102 ID 102 IDENTICAL 137 IF 93 94 IF GOTO 86 IF THEN ELSE 87 IGNORE with REACT 81 Importing program files 19 Initialization of variables 71 Input analog 146 digital 144 manual control pendant 145 serial 147 terminal 142 Input processing terminal interupt characters 143 Input wait modes 149 INRANGE 137 Insert SEE editormode 12 Instruction format 18 INT 101 I
42. Home cursor move to character position 1 15 Clear from cursor position to end of line Double Byte Control Codes Code Function Second Code 16 Not Used 17 Not Used 18 Position cursor Cursor position 1 80 19 Not Used 20 Not Used 21 Not Used 22 Enable blinking positions starting at Number of blinking positions 1 80 current cursor location 23 Disable blinking positions starting at Number of blinking positions 1 80 current cursor location 24 Enable repeat mode for button Button number 25 Disable repeat mode for button Button number 26 Not Used 27 Not Used Controlling the Pendant 201 Table 10 1 Pendant Control Codes Continued Code Function Second Code 28 Turn off pendant button LED Light number 29 Not used 30 Start pendant button LED blinking Light number s 31 Turn on pendant button LED Light number ip For soft buttons F buttons and REC DONE button only 202 Chapter 10 Programming the MCP 10 5 Auto Starting Programs With the MCP The CMD predefined function button provides three options for loading and auto start ing a program from the pendant These three options are AUTO START CMD1 and CMD2 The program file requirements for all three options are the same 1 The file being loaded must be on the default disk The default disk is specified with the DEFAU
43. If output flow control is enabled and output has been suspended by a Ctrl S character from the remote device a WRITE request may wait indefinitely before completing Serial Line I O 161 Serial I O Examples The first example attaches to a serial line and performs simple WRITEs and READs on the line PROGRAM serial io ABSTRACT Example program to write and read lines of text to and from serial port 1 on the SIO module AUTO slun Logical unit to communicate to serial port AUTO Stext Attach to a logical unit open communications path to serial port ATTACH slun 4 SERIAL 1 IF IOSTAT slun lt 0 GOTO 100 Write text out to the serial port WRITE slun Hello there IF IOSTAT slun 0 GOTO 100 Read a line of text from the serial port The incoming line of text must be terminated by a carriage return and line feed The READ instruction will wait until a line of text is received READ slun text IF IOSTAT slun lt 0 GOTO 100 Display any errors 100 IF IOSTAT slun 0 THEN TYPE IOSTAT slun SERROR IOSTAT slun ii D DETACH slun Detach from logical unit The next example reads data from a serial line using the GETC function with no wait mode Records that are received are displayed on the terminal In this program data records on the serial line are assumed to be terminated by an ETX character which is not displayed An empty record ter
44. Instruction NEXT Program Break a FOR DO or WHILE structure and start the next Instruction iteration of the control structure PAUSE Program Stop program execution but allow the program to be Instruction resumed PRIORITY Real Valued Return the current reaction lock out priority for the Function program REACT Program Initiate continuous monitoring of a specified digital signal REACTI Instruction and automatically trigger a subroutine call if the signal transitions properly REACTE Program Initiate the monitoring of errors that occur during Instruction execution of the current program task RELEASE Program Allow the next available program task to run Instruction RETRY System Switch Control whether the PROGRAM START button causes a program to resume RETURN Program Terminate execution of the current subroutine and resume Instruction execution of the last suspended program at the step following the CALL or CALLS instruction that caused the subroutine to be invoked RETURNE Program Terminate execution of an error reaction subroutine and Instruction resume execution of the last suspended program at the step following the instruction that caused the subroutine to be invoked RUNSIG Program Turn on or off the specified digital signal as long as Instruction execution of the invoking program task continues SET EVENT Program Set an event associated with the specified task Instruction STOP Program Terminate execution of the current
45. O acute MO Adept Character Set 241 Table C 2 Adept Character Set Continued Dec Value Hex Value Description roman chars Font 1 Fonts 5 amp 6 212 D4 O circumflex YA 213 D5 O tilde YU 214 D6 O dieresis YC 215 D7 multiply x RA 216 D8 O slash RI 217 D9 U grave RU 218 DA U acute RE 219 DB U circumflex RO 220 DC U dieresis WA 221 DD Y acute Y N 222 DE Thorn b Voiced consonant 223 DF German double s f Voiced consonant P 224 EO a grave SE 225 E1 a acute SO 226 E2 a circumflex TA 227 E3 a tilde CHI 228 E4 a dieresis TSU 229 E5 a ring TE 230 E6 ae ligature TO 231 E7 c cedilla NA 232 E8 e grave NI 233 E9 e acute NU 234 EA e circumflex NE 235 EB e dieresis NO 236 EC i grave 1 HA 237 ED i acute i HI 242 Appendix C Character Sets Table C 2 Adept Character Set C ontinued Dec Value Hex Value Description roman chars Font 1 Fonts 5 amp 6 238 EE i circumflex 1 FU 239 EF i dieresis 1 HE 240 FO eth T HO 241 F1 n tilde f MA 242 F2 o grave MI 243 F3 o acute 6 MU 244 F4 o circumflex 6 ME 245 F5 o tilde 6 MO 246 F6 o dieresis 6 YA 247 F7 divide YU 248 F8 o slash YO 249 F9 u grave RA 250 FA u acute RI 251 FB u circumflex RU 252 FC u dieresis
46. REACT REACTI or IGNORE instruction is encountered If the specified signal transition is not detected before an IGNORE or second REACT REACTI instruction is encountered the REACT REACTI instruction will have no effect on program execution The syntax for a REACT or REACTI instruction is REACT signal number program priority signal number digitalinput signal in the range 1001 to 1012 or 2001 to 2008 program the subroutine and its argument list that is to be executed when a react is initiated priority number from 1 to 127 that indicates the relative importance of the reaction The following code implements a REACT routine 35 Look for a change in signal 1001 from on to off 36 Call subroutine alarm if a change is detected 37 Set priority of alarm to 10 default would be 1 38 The main program has default priority of 0 39 40 REACT 1001 alarm 10 41 42 REACT will be in effect for the following code 43 44 OVE a 45 OVE b 46 LOCK 20 Defer any REACTions to alarm 47 OVE c 48 OVE d 49 LOCK 0 Allow REACTions 50 OVE e 51 52 Disable monitoring of signal 1001 53 54 IGNORE 1001 55 If signal 1001 transitions during execution of step 43 step 43 will complete the subroutine alarm will be called and execution will resume at step 44 82 Chapter 4 Program Control If signal 1001 transitions during execution of step 47 steps 47 48 a
47. Reference 25 Undefined Arguments ll ess 26 Progra NT FES rara Rs de kie du aa dee SEE edd 26 Reentrant Programs ss vns LARES Re ond weckt e ea ke 26 Recursive Programs lees 26 AsynchronousProcessing sees 27 Erro rra DIG rada des Dot ditte b etus D d Th ret eee a6 28 Scheduling of Program Execution Tasks 28 System Timing and Time Slices 00 ee 28 Specifying Tasks Time Slices and Priorities 28 Task Scheduling ba at RUE eeu dea te Re ELA 29 Execution Priority Example creen 32 Default Task Configuration o o o o ooo 34 System Task Configuration o o o o ooo 34 Description of System Tasks o o ooo o 34 User Task Configuration 0 o o ee 36 2 The SEE Editorand Debugger 37 2 1 Basic SEE Editor Operations 0 o oo 38 Cursor Movement es 38 Deleting Copying and Moving Lines sse 39 Text Searching and Replacing llle 40 Switching Programsinthe Editor o o o ooo o 41 The Intemal Program List eres 41 Special Editing Situations sens 43 The SEE Editorin Command Mode 44 Command Mode Copy Buffer llle 47 SEE Editor Extended Commands 47 EditMactos x REDE e
48. Setting belt parameters with SETBELT and setting encoder parameters with SETDEVICE have no affect on each other The only exceptions are the SETDEVICE initialize command and reset command which reset all errors for the specified external encoder including any belt related errors NOTE See V Language Reference Guide for complete information on the DEVICE real valued function and the SETDEVICE program instruction Parameters The external encoder device type is 0 This means that the type parameter in all DEVICE or SETDEVICE instructions that reference the external encoders must have a value of 0 The standard Adept controller allows two external encoder units These units are num bered 0 and 1 All DEVICE functions and SETDEVICE instructions that reference the external encoders must specify one of these unit numbers for the unit parameter 228 Appendix B External Encoder Device B 2 Device Setup The SETDEVICE program instruction allows the external encoders to be initialized and various parameters to be set up The action taken by the SETDEVICE instruction depends upon the value of the command parameter The syntax of the SETDEVICE instruction is S ETDEVICE 0 unit error command pl p2 The valid commands are described below Command Description 0 10 Initialize Device This command sets all scale factors offsets and limits to their default values
49. Start joint interpolated robot motion toward a location defined relative to specified location APPROS PI Start straight line robot motion toward a location defined relative to specified location BASE PI Translate and rotate the world reference frame relative to the robot BASE TF Return the transformation value that represents the translation and rotation set by the last BASE command or instruction BELOW PI Request a change in the robot configuration during the next motion so that the elbow is below the line from the shoulder to the wrist PI Program Instruction RF Real Valued Function TF Transformation Function S Switch P Parameter PF Precision Point Function SF String Function CF Conversion Factor 136 Chapter 7 Motion Control Operations Ta ble 7 1 Motion Control Operations Continued Keyword Type Function BRAKE PI Abort the current robot motion BREAK PI Suspend program execution until the current motion completes CALIBRATE PI Initialize the robot positioning system CLOSE PI Close the robot gripper immediately CLOSEI PI Close the robot gripper COARSE PI Enable a low precision feature of the robot hardware servo see FINE CONFIG RF Return a value that provides information about the robot s geometric configuration or the status of the motion servo control features CP S Control the continuous path featu
50. Step through the program executing individual steps sections of the program or complete subroutines to trace the flow of program execution A later section of this chapter describes control of program execution while debugging Use the Display F5 and Teach S4 F5 keys to display and redefine the values of variables Use edit mode to perform any desired editing operations on the program Repeat steps 2 through 5 as required Exit from the debugger The following sections describe the debugger commands and other features of the V sys tem that aid program debugging When using the debugger keep in mind Some system monitor commands are not accepted in debug monitor mode For example the COMMANDS command is not accepted In some situations the terminal cursor will be in the edit window when you want it to be in the debug window In debug monitor mode the Redraw S F6 or Undo F6 keys will force the cursor to the bottom line of the debug window Output to the screen from the program will generally be directed to the debug window However if the output includes control strings to position the cursor for example clear the screen the program output may appear in the edit win dow The Redraw S F6 key will restore the normal debugger display except in the situation described by the next item When the program displays a prompt for input in the debug window and exe cutes a PROMPT instruction everything you type before
51. The SIGNAL instruction is used for digital output In the above example the conveyor belt may need to be stopped after digital input signal 1001 signals that a part is in place The instruction SIGNAL 33 8 3 Pendant I O 145 will turn off digital output signal 33 causing the conveyor belt connected to signal 33 to stop When processing on the part is finished and the part needs to be moved out of the work area the instruction SIGNAL 33 will turn the conveyor belt back on The digital I O channels must be installed before they can be accessed by the SIG function or SIGNAL instruction The SIG INS function returns an indication of whether a given signal number is available The code line IF SIG INS 33 THEN can be used to insure that a digital signal was available before you attempted to access it The monitor command IO will display the status of all digital I O channels See the Adept MV Controller User s Guide for details on installing digital I O hardware Digital output channels are numbered from 1 to 232 Input channels are in the range 1001 to 1236 High Speed Interrupts Normally the digital I O system is checked once every V major cycle every 16ms In some cases the delay or uncertainty resulting may be unacceptable Digital signals 1001 1003 can be configured as high speed interrupts When a signal configured as a high speed interrupt transitions its state is read at system interrupt level resulting
52. The syntax for the ATTACH instruction is ATTACH glun 4 GRAPHICS glun variable that receives the number of the attached graphics logical unit All menus and graphics commands that take place within a window will also use glun FOPEN Instruction FOPEN creates a new window or reselects an existing window for input and output When a window is created its name is placed in the list of available windows displayed when the adeptlogo is clicked on The simplified syntax for FOPEN is FOPEN glun window name MAXSIZE width height glun The logical unit already ATTACHed to window name The title that will appear at the top of the window Also used to close and select the window width height Specify the largest size the window can be opened to This instruction will give you a window with all the default attributes See the description of FOPEN and FSET in the V Language Reference Guide for details on how to control the attributes of a window for example background color size and scrolling Creating Windows 177 FCLOSE Instuction FCLOSE closes a window to input and output but does not erase it or remove it from memory The syntax for FCLOSE is FCLOSE glun glun The logical unit number specified in the FOPEN instruction that opened the window FDELETE Instuction FDELETE removes a closed attached window from the screen and from graphics memory The syntax for FDELETE is FDELETE glun window_name glu
53. Time slice cycle 34 TIMER 103 Timing considerations motions 131 Toggle mode MCP 194 TOOL 140 Tool coordinates 134 point 134 transformation 134 Tool coordinate system 117 Tool transformations 133 Tools 133 TPS 103 TRACE system switch 111 Trajectory generator task 34 Trajectory continuous path 128 TRANS 121 140 TRANSB 99 TRANSB 140 Transformation belt relative 215 nominal belt 210 Transformation components pitch 118 roll 119 yaw 117 Transformations 115 123 location datatype 68 relative 121 TRUE 102 TRUNCATE 99 TYPE 142 173 Typing cursor with the debugger 55 Index 255 U nconditional branch instructions 78 Jndo F6 key 56 Jnit number logical 147 UNPACK 99 PPER system switch 111 ppercase letters 6 19 ser input MCP detecting 193 User task configuration default 36 EE E B E GC V V keyword arguments 6 V Language Reference Guide 3 V Operating System Reference Guide 3 V Operating System User s Guide 3 V system tasks 34 VAL 99 Value ASCII 65 Variable allocation 64 Variable classes 69 72 Variable declarations 19 Variable length records 155 Variables and recursive programs 70 automatic 69 belt 209 global 69 global double precision 69 initialization 71 local 69 logical 67 naming requirements 64 numeric 66 passing by reference 25 passing by value 25 scalar 7 scoping 70 string 65 Vision analysis task 34 Vision communication task 34 W WAIT 30 80 95 144 Wait
54. a normal scan is made of all other tasks to find one that is ready to run During this scan members of the original task s round robin group if any are ignored Therefore RELEASE to anyone cannot be used to pass control to a different member of the current group A WAIT program instruction with no argument suspends a task until the start of the next major cycle slice 0 At that time the task becomes runnable and will execute if selected by the normal scheduling process A WAIT with an expression performs a release to any one if the expression is FALSE On systems that include the V extensions the V task profiler can be used to determine how the various tasks are interacting It provides a means of determining how much time is being used by each task either on an average basis or as a snapshot of several consec utive cycles Within each time slice the task with highest priority can be locked out only by a servo interrupt Tasks with lower priority can run only if the higher priority task is inactive or waiting A user task waits whenever any of the following occurs e The program issues an input or output request that causes a wait The program executes a robot motion instruction while the robot is still moving in response to a previous motion instruction The program executes a WAIT or WAIT EVENT program instruction If a program is executing continuously without performing any of the above operations i
55. action Turning on Robot Power from the terminal can be hazardous if the operator does not have a clear view of the robot workspace RETRY Controls whether the PROGRAM START button on the front panel of the system controller causes a program to resume Default is disabled ROBOT This is an array of switches that control whether or not the system should access robots normally controlled by the system Default is disabled SET SPEED Enable disable the ability to set the monitor speed from the manual control pendant Default is enabled TRACE Enable disable a special mode of program execution in which each program step is displayed on the system terminal before itis executed This is useful during program development for checking the logical flow of execution also see the DRY RUN switch Default is disabled UPPER Determines whether comparisons of string values will consider lowercase letters the same as uppercase letters When this switch is enabled all lowercase letters are considered as though they are uppercase Default is enabled Motion Control Operations Intoduction Location Variables Coordinate Systems Transformations ROM ota eho cere tos Special Situations Creating and Altering Location Variables Creating Location Variables Transformations vs Precision Points Modifyin
56. all calls 7 b 56 for each time to prog 4 CALL prog 4 programis called PROGRAM prog 4 LOCAL a a 2 CALL prog_3 Figur 3 2 Variable Scope Example Variable Initialization Before a variable can be used it must be initialized String and numeric variables can be initialized by placing them on the left side of an assignment statement The statements var_one 36 Svar_two two will initialize the variables var_one and var_two var_one var_two will initialize var_one if var_two has already been initialized Otherwise an unde fined value error will be returned A variable can never be initialized on the right side of an assignment statement var_two could never be initialized by the above statement 72 3 7 Chapter 3 Data Types and Operators The statement var_one var_one 10 would be valid only if var_one had been initialized in a previous statement Strings numeric variables and location variables can be initialized by being loaded from a disk file Strings and numeric variables can be initialized with the PROMPT instruction Transformations and precision points can be initialized with the SET or HERE program instructions They can also be initialized with the HERE and POINT monitor commands or with the TEACH monitor command and the manual control pendant Operators Assignment Operator The equal sign is used to assign a value to a n
57. an expression that resolves to true or false An expression can take into account any number of variables or digital input signals so long as the final resolution of the expression is a boolean value In V any number real or integer can satisfy this require ment 0 is considered false any non zero number is considered true There are four system constants TRUE and ON that resolve to 1 and FALSE and OFF that resolve to 0 Examples of valid boolean expressions y gt 32 NOT y gt 32 x 56 x AND y x AND y OR varl lt var2 See the section Relational Operators on page 73 for details on V relational operators Conditional Branching Instructions Conditional branching instructions allow you to execute blocks of code based on the cur rent values of program variables or expressions V has three conditional branch instruc tions e TF GOTO e TF THEN ELSE CASE value OF IF GOTO IF GOTO behaves similarly to GOTO but a condition can be attached to the branch If the instruction IF logical_expression GOTO 100 is encountered the branch to label 100 will occur only if logical_expression has a value of true Conditional Branching Instructions 87 IF THEN ELSE The basic conditional instruction is the IF THEN ELSE clause This instruction has two forms IF expression THEN code block executed when expression is true END IF expression THEN code block executed when exp
58. analog IO boards AIO INS RF Test whether an analog input or output channel is installed ATTACH PI Make a device available for use by the application program BITS PI Set or clear a group of digital signals based on a value BITS RF Read multiple digital signals and return the value corresponding to the binary bit pattern present on the signals DEFAULT SF Return a string containing the current system default device unit and directory path for disk file access DETACH PI Release a specified device from the control of the application program DEVICE PI Send a command or data to an external device and optionally return data back to the program The actual operation performed depends on the device referenced DEVICE RF Return a real value from a specified device The value may be data or status information depending upon the device and the parameters DEVICES PI Send commands or data to an external device and optionally return data The actual operation performed depends on the device referenced FCLOSE PI Close the disk file graphics window or graphics icon currently open on the specified logical unit FCMND PI Generate a device specific command to the input output device specified by the logical unit FEMPTY PI Empty any internal buffers in use for a disk file or a graphics window by writing the buffers to the file or window if necessary FOPENR PI Open a disk file for read only FOPENW PI Open a disk file for read write F
59. and SEE editor 38 Searches text case sensitive 48 Searching for text in SEE editor 40 SEE editor copying lines 39 extended commands 47 SEE editor 12 16 38 61 attach buffer 39 command mode 44 commands 45 copy buffer 39 exiting 16 Index 253 macros 49 modes 12 moving the cursor 38 pasting from copy buffer 39 scrollbars 38 selecting program 41 switching program 41 SEE editor commands 45 SEE editor modes command 12 insert 12 replace 12 SELECT 102 139 semicolon 18 Sequential access files 156 SerialI O 147 150 159 170 and power failure 82 SerialI O task 34 Serial line 159 attaching 159 164 configuration 159 DDCMP see DDCMP detaching 159 164 input 160 164 Kermit see Kermit output 160 165 Servo communication task 34 SET 121 139 SET EVENT 94 with WAIT EVENT 80 SET SPEED system switch 111 SETBELT 216 SETDEVICE 172 with external encoder 227 SHIFT 121 139 Shift key 6 SIG 144 172 SIG INS 145 172 SIGN 101 SIGNAL 145 172 Signal number 7 SIN 101 SINGLE 139 Single step execution 59 Slide bars creating 184 Soft signals 145 SOLVE 139 140 Spaces 19 254 V Language User s Guide Spacing program line 19 SPEC utility program 132 SPEED 133 140 absolute speed 131 normal speed 131 Speed and the MCP 111 SPEED monitor command 131 SPEED program instruction 131 Speed vs performance 131 SOR 101 SORT 101 Stacks program 21 task execution 21 STATE 140 State of MCP determining 197
60. and robot motion makes possible the proce dural motions described later in this chapter Basic Motion Operations J oint Interpolated Motion vs Staight Line Motion The path a motion device takes when moving from one location to another can be either a joint interpolated motion or a straight line motion Joint interpolated motions move each joint at a constant velocity except during the acceleration deceleration phases see Robot Speed on page 131 Typically the robot tool tip moves in a series of arcs that rep resents the least processing intensive path the trajectory generator can formulate Straight line motions ensure that the robot tool tip traces a straight line useful for cutting a straight line or laying a bead of sealant The instruction MOVE pick will cause the robot to move to the location pick using joint interpolated motion The instruction MOVES pick will cause the robot to move the pick using a straight line motion Safe Approaches and Departures In many cases you will want to approach a location from distance offset along the tool Z axis or depart from a location along the tool Z axis before moving to the next location For example if you were inserting components into a crowded circuit board you would want the robot arm to approach a location from directly above the board so nearby parts are not disturbed Assuming you were using a four axis Adept robot the instructions APP
61. are similar to MS_DOS batch programs or UNIX scripts They are described in the V Operating System User s Guide Executable Programs There are two classes of executable programs robot control programs and general pro grams Robot Control Programs A robot control program is a V program that directly controls a robot or motion device It can contain any of the V program instructions Robot control programs are usually executed by program task 0 but they can be exe cuted by any of the program tasks available in the V system Task 0 automatically attaches the robot when program execution begins If a robot control program is executed by a task other than 0 however the program must explicitly attach the robot program tasks are described in detail later in this chapter For normal execution of a robot control program the system switch DRY RUN must be disabled and the robot must be attached by the robot control program Then any robot related error will stop execution of the program unless an error recovery program has been established see REACTE on page 82 V Program Types 17 Exclusive Control ofa Robot e Whenever a robot is attached by an active task no other task can attach that robot or execute instructions that affect it except for the BRAKE and REACTI instructions e When the robot control task stops execution for any reason the robot is detached until the task resumes at which time the task automatica
62. as follows offset 0 scale factor 1 no limit checking This command also resets any errors for the specified device This command should be issued before any other commands for a particular unit and before using the DEVICE real valued function for the unit Reset Device This command clears any errors associated with this encoder unit It does not affect the scale factor offset or limits Set Scale Factor This command sets the position and velocity scale factor for this encoder unit to the value of parameter p1 The units are millimeters per encoder count The scale factor must be set before setting the offset or limits If the scale factor is changed the offset and limit values will need to be updated Set Position Offset This command sets the position offset for this encoder unit to the value of parameter p1 The units are millimeters The scale factor must be set before setting the offset Set Position Limits This command sets the position limits for the encoder unit to the values of optional parameters p1 and p2 which are the lower and upper limits respectively If a parameter is omitted no checking is performed for that limit The units are millimeters The scale factor must be set before setting the limits Reading Device Data 229 B 3 Reading Device Data The DEVICE real valued function returns information about the encoder error status position and velocity The scale factor offset an
63. be interpreted as a cursor loca tion CHR 20 indicates the cursor should be placed at position 20 S must be appended to the WRITE instruction or a lt CR LF gt will be sent Notice that using control code 18 allows you to position the cursor without disturbing existing text The following code will place the text EXIT in the middle of the bottom line and set the text blinking WRITE mcp lun CHR 18 CHR 58 EXIT S WRITE mcp lun SCHR 18 SCHR 58 CHR 22 SCHR 4 S CHR 22 tells the pendant to start a series of blinking positions starting at the current cursor location and extending for the number of positions specified by the next control code CHR 4 This code will cause any text in positions 58 62 to blink until an instruction is sent to cancel the blinking The following code line disables the blink posi tions WRITE mcp lun CHR 18 SCHR 58 CHR 23 SCHR 4 S CHR 23 tells the pendant to cancel a series of blinking positions starting at the current cursor location and extending for the number of positions specified by the next control code CHR 4 Text can be made to blink as it is written to the display regardless of the position the text is in The following code writes the text EXIT to the middle of the bottom line starts the E blinking and then beeps the MCP WRITE mcp lun SCHR 18 SCHR 58 SCHR 2 E S WRITE
64. be made more tolerant of unusual events such as error conditions A 1 Pick and Place This program demonstrates a simple pick and place application The robot picks up parts at one location and places them at another Features Introduced e Program initialization e Variable assignment e System parameter modification e FOR loop e Motion instructions e Hand control e Terminal output Program Listing PROGRAM move parts ABSTRACT Pick up parts at location pick and put them down at place parts 100 Number of parts to be processed heightl 25 4 Approach depart height at pick height2 50 8 Approach depart height at place PARAMETER HAND TIME 0 16 Setup for slow hand 220 END Appendix A Example V Programs OPE Make sure the hand is open RIGHTY Make sure configuration is correct MOVE start Move to safe starting location FOR i 1 TO parts Process the parts APPRO pick heightl Go toward the pick up OVES pick Move to the part CLOSEI Close the hand DEPARTS heightl Back away APPRO place height2 Go toward the put down OVES place Move to the destination OPENI Release the part DEPARTS height2 Back away END Loop for next part TYPE All done IO parts parts processed RETURN End of the program Detailed Description This program has five sections formal introduction initialization of variables initializ
65. be performed using the PROMPT or TYPE instructions A file must be open using the FOPENW or FOPENA instructions before data can be writ ten to a disk device FOPENW opens a new file FOPENA opens an existing file and appends data to that file Input Wait Modes Normally V waits until the data from an input instruction is available before continuing with program execution However the READ instruction and GETC function accept an optional argument that specifies no wait mode In no wait mode these instructions return immediately with the error status 526 No data received if there is no data avail able A program can loop and use these operations repeatedly until a successful read is completed or until some other error is received The disk devices do not recognize no wait mode on input and treat such requests as nor mal input with wait requests 150 Chapter 8 Input Output Operations Output Wait Modes Normally V waits for each I O operation to be complete before continuing to the next program instruction For example the instruction TYPE X50 causes V to wait for the entire record of 50 spaces to be transmitted about 50 millisec onds with the terminal set to 9600 baud before continuing to the next program instruc tion Similarly WRITE instructions to serial lines or disk files will wait for any required physi cal output to complete before continuing This waiting is not performed if the N
66. can be freely specified by the user are shown in lowercase That is the manner in which V dis plays material that has been previously entered for example when displaying a user pro gram However you can enter material in either case that is convenient V keywords are shown in uppercase letters Parameters to keywords are shown in lower case Many Vt keywords have optional parameters and or elements Required keyword elements and parameters are shown in bold face type Optional keyword elements and parameters are shown in normal type If there is a comma following an optional parame ter the comma must be retained if the parameter is omitted unless nothing follows For example the BASE operation command or instruction has the form BASE dx dy dz rotation where all of the parameters are optional Notations and Conventions 7 To specify only a 300 millimeter change in the Z direction the operation could be entered in any of the following ways BASE 0 0 300 0 BASE 300 BASE 300 Note that the commas preceding the number 300 must be present to correctly relate the number with a Z direction change Numeric Arguments All numbers in this manual are decimal unless otherwise noted Binary numbers are shown as B octal numbers as O and hexadecimal numbers as H Several types of numeric arguments can appear in commands and instructions For each type of argument the value can generally be specified by a num
67. equivalent to the Edit F12 and Debug 5 F12 function keys depending on the current debugger mode Use Ctrl E with terminals that do not have the equivalent function keys Use Esc and then E to exit from the editor to the V system prompt Ctrl G Perform an XSTEP command for the instruction step indicated by the typing cursor This command is equivalent to the following system monitor command XSTEP debug_task current_step Ctrl N Cancel the breakpoint at the step indicated by the typing cursor see Ctrl B above This command is equivalent to the following system monitor command BPT current_program current step Key s The Program Debugger 59 Action Ctrl P PROCEED execution of the current task from the current position of the execution pointer This command is equivalent to the following system monitor command PROCEED debug_task Ctrl X Perform an XSTEP command for the current task from the current position of the execution pointer This command is equivalent to the following system monitor command XSTEP debug_task Ctrl Z Perform an SSTEP command for the current task from the current position of the execution pointer This command is equivalent to the following system monitor command SSTEP debug task Using a Pointing Device With the Debugger On A series controllers double clicking on a variable or expression will display
68. error Each program task can have its own error trap enabled Before invoking the error trapping subroutine V locks out all other reactions by raising the main program priority to 254 see above See the description of the REACTE instruc tion for further information on error trapping Scheduling of Program Execution Tasks The V system appears to execute all the program tasks at the same time However this is actually achieved by rapidly switching between the tasks many times each second with each task receiving a fraction of the total time available This is referred to as concurrent execution The following sections describe how execution time is divided among the dif ferent tasks NOTE The default task configuration will work for most applications You will not have to alter task execution priorities The default configuration is optimized for Adept s AIM software System Timing and Time Slices The amount of time a particular program task receives is determined by two parameters its assignment to the various time slices and its priority within the time slice A brief description of the system timing will help you to understand what a time slice is and how one can be selected NOTE Do not confuse task priority described here with program priority described earlier in this chapter Task priority governs the processing of the various system tasks within a time slice Program priority governs the
69. error and continue execution Similarly a serial line may return an indication of a parity error which should cause the program to retry a data transmission sequence For these reasons V I O instructions normally do not stop program execution when an error occurs Instead the success or failure of the operation is saved internally for access by the IOSTAT real valued function For example a reference to IOSTAT 5 will return a value indicating the status of the last I O operation performed on LUN 5 The values returned by IOSTAT fall into one of following three categories Value Explanation 1 The I O operation completed successfully 0 The I O operation has not yet completed This value appears only if a pre read or no wait I O is being performed lt 0 The I O operation completed with an error The error code indicates what type of error occurred The error message associated with a negative value from IOSTAT can be found in the V Language Reference Guide The ERROR string function can be used in a program or with the LISTS monitor command to generate the text associated with most I O errors 148 Chapter 8 Input Output Operations It is good practice to use IOSTAT to check each I O operation performed even if you think it cannot fail hardware problems can cause unexpected errors Note that it is not necessary to use IOSTAT after use of a GETC function since errors are returned directly by the GETC function A
70. execution of programs within a task See section 4 3 for further details see Figure 4 1 for an example Each system cycle is divided into 16 time slices of one millisecond each The time slices are numbered 0 through 15 A single occurrence of all 16 time slices is referred to as a major cycle For a robot or motion system each of these cycles corresponds to one output from the V trajectory generator to the digital servos Specifying Tasks Time Slices and Priorities Tasks 0 through 6 0 through 27 with optional V Extensions software can be used and their configuration can be tailored to suit the needs of specific applications Each program task configured for use requires dedicated system memory which is unavailable to user programs Therefore the number of tasks available should be made no larger than necessary especially if memory space for user programs is critical Scheduling of Program Execution Tasks 29 When application programs are executed their program tasks are normally assigned default time slices and priorities according to the current system configuration These defaults can be overridden temporarily for any user program task This is done by speci fying the desired time slice and priority parameters in the EXECUTE PRIME or XSTEP command used to initiate execution The temporary values remain in effect until the pro gram task is started again by a new EXECUTE PRIME or XSTEP command See the V Langua
71. general format of a V program step is Step number step label operation Comment Each item is optional and is described in detail below Step Number Each step within a program is automatically assigned a step number Steps are numbered consecutively and the numbers are automatically adjusted whenever steps are inserted or deleted Although you will never enter step numbers into programs you will see them displayed by the V system in several situations Step Label Because step numbers change as a program evolves they would not be useful for identifying steps for program controlled branching Therefore program steps can contain a step label A step label is a programmer specified integer 0 to 65535 that is placed at the start of a program line to be referenced elsewhere in the program used with GOTO statements Operation The operation portion of each step must be a valid V language keyword and may contain parameters and additional keywords The V Language Reference Guide gives detailed descriptions of all the keywords recognized by V Other instructions may be recognized if your system includes optional features such as AdeptVision Comment The semicolon character is used to indicate that the remainder of a pro gram line is comment information to be ignored by V When all the elements of a program step are omitted a blank line results Blank program lines are acceptable in V programs Blank lines are often useful to spa
72. graphic elements so the screen elements become familiar and intuitive Let the operator know what is going on Never leave the operator in the dark as to the status of a button push or menu selection Whenever possible have your windows mimic the real world the operator is working in In the interest of clarity the examples in this chapter have not been generalized When you actually program an application use generalized subroutine calls for commonly used code or your code will quickly become unmanageable Using IOSTAT The example code in this chapter leaves out critical error detection and recovery proce dures Effective application code requires these procedures The IOSTAT function should be used to build error handling routines for use with every ATTACH FOPEN FCLOSE and FSET instruction The syntax for using IOSTAT to check the status of I O requests is IOSTAT lun lun The LUN specified in the previous I O request The IOSTAT function will return the following values 1 if the last operation was successful 0 if the last operation is not yet complete 0 if the last operation failed a negative number corresponding to a standard Adept error code will be returned The following code will check for I O errors Issue I O instruction ATTACH FOPEN etc IF IOSTAT lun lt 0 THEN your code to handle the error END Graphics Programming Considerations 187 The ERROR function can be use
73. home list and show top name R Esc H Change to top program on home list R Ctrl R Change to editing program CALLed on the current line R Esc Ctrl R Change to next program on home list R Esc S Change to previous program on stack R Esc S Change to next program on stack R Miscellaneous Operations Esc Ctrl C Cancel changes to current line R Esc E Exit the editor or the debugger Ctrl E Exit the editor or the debugger Basic SEE Editor Operations 47 Table 2 4 SEE Editor Command Mode Operations Continued Keystroke s Function Char Codes Repeat the last S K Ctrl L or Ctrl U command R whichever was last Memorize current line and column Return to memorized position Refresh the full display Initiate extended command see below XDEBUG Change to debugger monitor mode A A A A A Command Mode Copy Buffer In command mode a special 25 line copy buffer is maintained This buffer is completely separate from the copy buffer described in Deleting Copying and Moving Lines on page 39 and works only when the editor is in command mode Del Line S or S Delete A removes lines from the program and places them in the special buffer Preceding Del Line S or S Delete A by a minus sign copies the line most recently deleted and removes it from the buffer Del Line S and S Delete A can be prefaced with a minus sign and a number to undelete a number of lines
74. in the appropriate text See the V Operating System User s Guide for details on using the A series monitor key board and pointing device For S series systems see the documentation provided with your terminal Editing Modes The SEE editor has three editing modes command insert and replace The status line shows the mode the editor is currently in see Figure 1 1 Unless an executing program has failed to complete normally in which case the failed program will be opened Creating a Program 13 The editor begins in command mode In command mode you do not enter actual pro gram code but enter the special editor commands listed in Tables 2 3 and 2 4 You enter actual lines of code in insert or replace mode In insert mode the characters you type are placed to the left of the cursor and existing code is pushed to the right In replace mode the characters you enter replace the character that is under the cursor Changing Editing Modes On A series controllers to enter command mode press the Edit F11 key or Esc key to enter insert mode press the Insert key the key s LED must be off press the 0 Ins key the Num Lock LED must be off press the i key the editor must be in Command mode to enter replace mode press the Replace F12 key press the r key the editor must be in Command mode On the Wyse terminal press the F7 EDIT key to toggle between the three modes Using Text Editors
75. in the next section Key s Action New F2 The editor prompts for the name of the new program to edit The new program will be accessed in read write mode unless R is specified after the program name or the program is currently executing The home pointer for the internal program list is set to the old program Go To F3 If the cursor is on a line containing a CALL instruction the program referenced by the CALL is opened in the SEE editor If the program is present on the internal program list the previous access mode will be used If the program is not on the program list the editor will remain in its current access mode Retrieve S F3 This command causes the editor to cycle through the internal program list bringing the next program in the list into the editor The access mode for the new program will be the same as the previous time the program was edited Prog Up S Ctrl Home A Home key on numeric keypad Changes to editing a program contained on the task execution stack being accessed by the editor When the new program is opened its name is added to the internal program list maintained by the editor If the execution stack is being accessed for the first time during the edit session the editor accesses the stack for the task that most recently stopped executing if the program debugger is not in use or the stack for the task being debugged The last program on the execution stack is
76. instruction MOVE loc a loc b 1loc d the robot will move to a position x 50mm y 70mm and z 30mm relative to loc a In Figure 7 6 the transformation loc b defines the transformation needed to get from the local reference frame defined by loc a to the local reference frame defined by loc c The transformation needed to go in the opposite direction from loc c to loc a can be calculated by INVERSE loc b Thus the instruction MOVE loc_c INVERSE loc_b will effectively move the robot back to loc_a Creating and Altering Location Variables 123 loc a 300 50 350 0 180 0 loc c loc a loc bz 350 70 320 0 180 0 loc bz 50 20 30 0 0 0 Figure 7 6 Relative Transformation Figure 7 6 shows the first three locations from the code examples on page 122 124 Chapter 7 Motion Control Operations Defining a Reference Frame In the example shown in Figure 7 7 a pallet is brought into the workcell on a conveyor The program that follows will teach three locations that define the pallet reference frame pallet frame and then remove the parts from the pallet The program that follows will run regardless of where the pallet is placed in the workcell as long as itis within the robot working envelope 7 loc origin Z i loc x axis loc pos y VA Figure 7 7 Relative Locations Get the locations to define the pallet
77. instructions Making smooth transitions between motion segments without stopping the robot motion is called continuous path operation That is the normal method V uses to perform robot motions If desired continuous path operation can be disabled with the CP switch When the CP switch is disabled the robot will decelerate and stop at the end of each motion seg ment before beginning to move to the next location NOTE Disabling continuous path operation does not affect forward processing the parallel operation of robot motion and program execution Continuous path transitions can occur between any combination of straight line and joint interpolated motions For example a continuous motion could consist of a straight line motion for example DEPARTS followed by a joint interpolated motion for exam ple APPRO and a final straight line motion for example MOVES Any number of motion segments can be combined this way Breaking Continuous Path Operation Certain V program instructions cause program execution to be suspended until the cur rent robot motion reaches its destination location and comes to a stop This is called breaking continuous path Such instructions are useful when the robot must be stopped while some operation is performed for example closing the hand Consider the instruc tion sequence MOVE loc 1 BREAK SIGNAL 1 The MOVE instruction starts the robot moving to loc 1 Program execution then con
78. is useful when 1 You want to resume the latest debugging session In this case the edit window and the execution pointer see Figure 2 1 will be restored as they were when the previous debugging session was ended That is debugging can continue as though it had not been interrupted 2 A program has terminated execution with an error and you want to use the debugger to investigate the cause In this case the program that failed will be displayed in the edit window with the execution pointer positioned at the step after the failed step Using the Debug Key or the DEBUG Extended Command While editing a program with the SEE editor change to the program debugger by pressing the Debug S F11 key or by entering the DEBUG extended command When the debug ger is invoked from the SEE editor you are asked which execution task you want to use Then the debugger display replaces the normal SEE editor display with the same pro gram visible in the edit window and the specified task selected While using the program debugger you may decide you want to change the default task number You can use the following steps to make that change 1 If you are in debug monitor mode press Edit F11 to select debug editor mode The debug modes are described later in this chapter 2 Enter the SEE editor DEBUG extended command 3 In response to the prompt enter the desired new task number Exiting the Debugger Press Exit F4 to exit the
79. it Y N If you answer Y the program will be created the SEE editor cursor will move to the top of the editing window and you can begin editing the program If you answer N you will be returned to the system prompt If prog name is omitted the last program edited will be brought into the editor for edit ing Program and Variable Name Requirements Program and variable names can have up to 15 characters Names must begin with a letter and can be followed by any sequence of letters numbers periods and underline charac ters Letters used in program names can be entered in either lowercase or uppercase V always displays program and variable names in lowercase The Editing Window Adept S series systems use a character based terminal such as a Wyse WY 60 When the SEE editor is open it will cover the entire terminal Adept A series systems use a graph icsbased keyboard and monitor When the SEE editor is open it will occupy the Moni tor window on the monitor If the Monitor window is not open click on the adept logo in the upper left corner of the monitor and select Monitor from the displayed list Once the SEE editor is open it functions nearly uniformly regardless of which type of Adept system it is used on The primary functional difference between the SEE editor on the A and S series systems is the assignment of special key functions and the use of the pointing device These differences are noted
80. lt less than gt greater than lt or lt less than or equal to gt or gt greater than or equal to lt gt not equal to Hu Vg If x has a value of 6 and y has a value of 10 the following boolean expressions would resolve to 1 true X lt y Vu umm IX y lt gt x and these expressions would resolve to 0 false x gt y x lt gt 6 x y un Note the difference between the assignment operator H H and the relational operator zZz X y 4 1 In this example z will be assigned a value of 0 since the boolean expression x y is false and would therefore resolve to 0 A relational operator will never change the value of the variables on either side of the relational operator 74 Chapter 3 Data Types and Operators Logical Operators Logical operators affect the resolution of a boolean variable or expression and combine several boolean expressions so they resolve to a single boolean value V uses the standard logical operators shown in Table 3 4 Table 3 4 Logical Operators Symbol Effect NOT Complement the expression or value makes a true expression or value false and vice versa AND Force two or more expressions to resolve to true before the entire expression is true OR Force at least one expression to resolve to true before the entire expression is true XOR One expression must be true and one must be false before the entire expressi
81. mcp lun SCHR 3 XIT S WRITE mcp lun CHR 7 S CHR 2 starts blink mode Any characters sent to the MCP display will blink Blink mode is canceled by CHR 3 CHR 3 cancels blink mode for subsequent characters it does not cancel blinking of previously entered characters It also does not cancel blink ing of character positions set by control code 22 CHR 7 causes the pendant to beep Controlling the Pendant 199 Figure 10 2 Pendant LCD Display The Pendant LEDs The LEDs on the soft buttons the F buttons and the REC DONE button can be lit either continuously or intermittently The following code places the text CLEAR and EXIT over the first two soft buttons lights the LED over the first soft button and blinks the light over the second soft button WRITE mcp_lun CHR 18 CHR 41 CLEAR S WRITE mcp lun SCHR 9 EXIT S WRITE mcp lun SCHR 31 SCHR 5 S WRITE mcp lun SCHR 30 SCHR 4 S CHR 9 tabs the cursor to the next soft button position CHR 31 lights an LED CHR 30 starts an LED blinking The button LED to be lit is specified in the ensuing control code In the above example button 5 s LED is turned on and button 4 s LED is set blinking The soft buttons F buttons and REC DONE button are the only buttons that have program
82. mode all records in the disk file have the same specific length Then there are no special characters embedded in the file to indicate where records begin or end Records are contiguous and may freely cross the boundaries of 512 byte sectors Fixed length record mode is selected by setting the record length parameter in the FOPEN_ instruction to the size of the record in bytes WRITE instructions then pad data records with zero bytes or truncate records as necessary to make the record length the size specified No other data bytes are appended and the S format control has no effect 156 Chapter 8 Input Output Operations In fixed length mode READ instructions always return records of the specified length If the length of the file is such that it cannot be divided into an even number of records a READ of the last record will be padded with zero bytes to make it the correct length Sequential Access Files Normally the records within a disk file are accessed in order from the beginning to the end without skipping any records Such files are called sequential files Sequential access files may contain either variable length or fixed length records Random Access Files In some applications disk files need to be read or written in a non sequential or random order V supports random access only for files with fixed length records Records are numbered starting with 1 The position of the first byte in a random acces
83. mode and waits until REC DONE is pressed Detecting User Input 195 Set the REC DONE button to toggle KEYMODE 8 1 Wait until the REC DONE button is pressed DO WAIT UNTIL PENDANT 8 The arguments to KEYMODE indicate that MCP button number 8 the REC DONE but ton is configured as a toggle button The argument to PENDANT indicates that the state of MCP button 8 is to be read Level Mode To detect the state of a button in level mode the PENDANT function must specify the button to be monitored When a button has been configured as a level button the state of the button is on as long as the button is pressed When the button is not pressed its state is off The follow ing code uses the buttons labeled 2 4 6 and 8 button numbers 45 47 49 and 57 don t confuse the button labels with the numbers returned by the PENDANT func tion to move the cursor around the terminal display The buttons are configured as level buttons so the cursor moves as long as a button is depressed Set the REC DONE button to toggle KEYMODE 8 1 Set the data entry buttons labeled 2 8 to level KEYMODE 45 51 2 DO IF PENDANT 49 HE YPE X1 S Cursor right END IF PENDA 47 HE YPE SCHR 8 Cursor left backspace END IF PENDA 5 1 HE YPE Ul
84. of 512 bytes and can cross the boundaries of 512 byte sectors The end of a record is indicated by a Line Feed character ASCII 10 Also the end of the file is indicated by the presence of a Ctrl Z character 26 decimal in the file Variable length records should not contain any internal Line Feed or Ctrl Z characters as data This format is used for loading and storing V programs and is compatible with the IBM PC standard ASCII file format Variable length record mode is selected by setting the record length parameter in the FOPEN_ instruction to zero or by omitting the parameter completely In this mode WRITE instructions automatically append Return ASCII 13 and Line Feed characters to the output data which makes it a complete record If the S format control is specified in an output specification no Return Line Feed is appended Then any subsequent WRITE will have its data concatenated to the current data as part of the same record If the Cn format control is specified n Return Line Feeds are written creating multiple records with a single WRITE When a variable length record is read using a READ instruction the Return Line Feed sequence at the end is removed before returning the data to the V program If the GETC function is used to read from a disk file all characters are returned as they appear in the file including Return Line Feed and Ctrl Z characters Fixed Length Records In fixed length record
85. of all switches are displayed Within programs the SWITCH real valued function returns the status of a switch The instruction SWITCH switch_name returns TRUE 1 0 if the switch is enabled or FALSE 0 0 if the switch is disabled In systems with AdeptVision VME some switches are organized as arrays and may be accessed by specifying the array index See the AdeptVision Reference Guide for more infor mation on such switches Setting Switc hes The ENABLE and DISABLE monitor commands program instructions control the setting of system switches The instruction ENABLE BELT will enable the BELT switch The instruction DISABLE BELT CP will disable the CP and BELT switches Multiple switches can be specified for either instruction Switches can also be set with the SWITCH program instruction Its syntax is SWITCH switch_name value This instruction differs from the ENABLE and DISABLE instructions in that the SWITCH instruction enables or disables a switch depending on the value on the right hand side of the equal sign This allows you to set switches based on a variable or expression The switch is enabled if the value is TRUE nonzero and disabled if the value is FALSE zero The instruction SWITCH CP SIG 1001 will enable the continuous path CP switch if input signal 1001 is on 110 Chapter 6 Switches and Parameters Summary of Basic System Switches The default switch
86. on the execution stack for the task being debugged Prog Up and Prog Down S and Ctrl Home and Ctrl End A The following function keys are interpreted differently by the program debugger and the SEE editor Edit F11 When the debugger is in monitor mode this key causes editor mode to be selected This key has its normal editor function selection of editor Com mand mode when in editor mode Undo F6 When the debugger is in monitor mode this key simply moves the typing cursor to the bottom of the debug window Teach S F5 Initiates changing the value of the variable at the cursor position NOTE This command cannot be used while the editor is in read write access mode You can use the READONLY or RO extended command to select read only mode As with Display F5 the typing cursor is used to point to the variable of interest Pressing Teach S F5 causes the current value of the variable to be displayed in the debug window and a prompt for a new value to be assigned to the variable For real valued variables the new value can be input as a constant a variable name or an expression For location variables the new value can be input as a location function for example HERE or TRANS or a variable name Also a compound transformation can be specified when accessing a transformation variable For string variables the new value can be input as a string constant variable name or expression 58 Chapter 2 The SEE Ed
87. oo 0 oo D Data types 65 68 integer 66 location 114 real 66 string 65 Data typing 64 DBLB 99 DBLB 99 DCB 101 DDCMP 163 166 attaching 164 communication protocol 163 246 V Language User s Guide detaching 164 input 164 operation 163 output 165 parameters 165 status 166 DEBUG 52 Debugger 52 61 breakpoints 60 commands editor mode 55 57 execution control 58 function key 57 monitor mode 57 58 display 54 exiting 53 invoking 52 modes 55 watchpoints 61 Debugger window 54 Debugging suppressing robotcommands 110 Debugging programs 52 56 DECODE 99 DECOMPOSE 126 136 DEFBELT 209 216 DEFINED 102 Defining belt variable 210 belt relative locations 215 DELAY 83 133 136 Deleting program lines 39 DEPART 127 136 Departing a location 127 DEPARTS 136 DEST 136 DETACH 171 graphics window 177 with the MCP 192 Detaching I O devices 148 logical units 148 Detecting user input from the MCP 193 DEVICE 171 with external encoder 227 Device control 227 disk 151 DEVICES 171 Digital I O 144 and grippers 128 system interrupt 145 Digitalinput 144 Digital output 145 Directories disk 151 root 151 Directory file opening 152 Disabling event monitoring 179 Disk device 151 directory 151 filename 152 Disk devices attaching 151 Disk directories 151 Disk driver task 34 Disk file opening 152 Disk I O 147 158 and power failure 82 DISTANCE 136 Distances 7 division 72 DO 93 DO UNTIL 90 Do
88. open on glun AUTO glun The slide bar will use events 8 and 9 A double click event will halt monitoring of the slide bar btn smov 8 btn sup 9 btn dclk 3 Slide bar position and start up values x 20 y 60 length 200 max pos 100 arrow inc 10 handle pos 50 Enable monitoring of slide bars and pointer drags FSET glun event object move b2 Display the slide bar GSLIDE glun 0 1 x y length max pos arrow inc handle pos Begin monitoring events and take action when the slide bar is moved Monitor events until a double click is detected then delete the slide bar DO GETEVENT glun event IF event 0 btn smov OR event 0 btn sup THEN Your code to monitor the slide bar value event 2 goes here END UNTIL event 0 btn dclk Delete the slide bar GSLIDE glun 1 1 186 Chapter 9 Graphics Programming 9 6 Graphics Programming Considerations Buttons and menus can be monitored in the same window However the code will get complicated and you might consider using different windows when the button and menu structure becomes complex Only one pull down menu can be active at any time Design your windows with the following mechanical and aesthetic considerations Keep your windows as simple and uncluttered as possible Use color carefully and purposefully e If you are using multiple windows use similar
89. opened for editing If the execution stack has already been accessed the program opened is the one that called the previous program accessed from the stack Prog Down S Ctrl End A Changes to editing a program contained on the task execution stack being accessed by the editor When the new program is opened its name is added to the internal program list maintained by the editor If the execution stack is being accessed for the first time during the edit session this command acts exactly like Prog_Up 5 or S Home A see above If the execution stack has already been accessed the program opened is the one that was called by the previous program accessed from the stack The Intemal Program List To simplify moving from one program to another during an editing session the SEE edi tor maintains an internal list of programs The program list contains the following infor mation for up to 20 programs Program name e Editor access mode last used 42 Chapter 2 The SEE Editor and Debugger Number of the step last accessed e Memorized cursor position see the M command The program list is accessed with the SEE monitor command and program instruction and with editor commands described in this chapter The editor maintains two pointers into the program list 1 The top pointer always refers to the program currently displayed in the edit window 2 The home pointer refers to the program that w
90. program cycle Instruction Controlling Programs in Multiple CPU Systems 95 Ta ble 4 1 Program Control Operations Continued Keyword Type Function WAIT Program Put the program into a wait loop until the condition is Instruction TRUE WAIT EVENT Program Suspend program execution until a specified event has Instruction occurred or until a specified amount of time has elapsed WHILE Program Initiate processing of a WHILE structure if the condition is Instruction TRUE or skipping of the WHILE structure if the condition is initially FALSE 4 8 Controlling Programs in Multiple CPU Systems V systems equipped with multiple CPUs and optional V Extensions can run multiple copies of V Keep the following considerations in mind when running multiple Vt sys tems An A Series system is required The second third etc V copies will be displayed in separate windows on the monitor These windows are labeled Monitor_2 Monitor_3 etc The system switch MONITORS must be enabled before these windows can be displayed The CPU number is determined by the board address switch see the Adept MV Con troller User s Guide ALL V copies share the same digital input output and soft signals Global variables are not shared The IOGET_ and IOPUT instructions can be used to share data between V cop ies via an 8 KB reserved section of shared memory on each board Acceptable address
91. program debugger and return to the system prompt This com mand is accepted in either debug mode In addition in debug editor mode in Command mode you can use Alt E to exit to the V system prompt or Esc and E if your keyboard does not have an Alt key 54 Chapter 2 The SEE Editor and Debugger The Debugger Display Once the program debugger has been invoked the display will look similar to that shown in Figure 2 1 NOTE The sample shown below represents the display that would appear on A series monitor You will see a slightly different display on an S series terminal DATA STRUCT start Starting location for motion end Ending height Approach depart distance Copyright c 1984 1987 1988 1989 by Adept Technology Inc LOCAL first height LOCAL end start o first TRUI Record that we re starting 2 place R Step 2 Command mode 3a Debug Window EP place OK Figure 2 1 Example Program Debugger Display The following numbered list refers to the display shown in Figure 2 1 11 The execution pointer indicates the next step in the program that will be executed O The editor information line provides the same information as during a normal editing session see Figure 1 1 on page 14 Notice that while the debugger is in monitor mode the program will be in read only mode The debug window occupies the screen below this line The typing cursor In monitor mode the curs
92. reads are enabled opening a file for read access immediately issues a read for the first sector in the file Pre read operations may actually degrade system performance if records are accessed in truly random order since sectors would be read that would never be used In this case pre reads should be disabled and the FSEEK instruction should be used to initiate a pre read of the next record to be used The function IOSTAT lun 1 returns the completion status for a pending pre read or FSEEK operation On output records are packed into sector buffers and written after the buffers are filled If no wait mode is selected for a write operation by using the N format control the Advanced Disk Operations 157 WRITE instruction does not wait for a sector to be written before allowing program execu tion to continue In random access mode a sector buffer is not normally written to disk until a record not contained in that buffer is accessed The FEMPTY instruction empties the current sector buffer by immediately writing it to the disk A file may be opened in non buffered mode which is MUCH SLOWER than normal buff ered mode but it guarantees that information that is written will not be lost due to a sys tem crash or power failure This mode was intended primarily for use with log files that are left opened over an extended period of time and intermittently updated For these types of files the additional significant o
93. searches and replacements To search for a text string 1 2 3 4 Press the Find F7 key or press F in command mode Enter a search string and press J The text will be searched for from the cursor location to the bottom of the pro gram but not from the top of the program to the cursor location ur To repeat the search press the Repeat F8 key or in command mode To find and replace a line of text 1 2 3 4 Press the Change S4 F7 key or press C in command mode Enter a search string and press J Enter the replace string and press The text will be searched for from the cursor location to the bottom of the pro gram Only one search and replace operation will take place at a time Global search and replaces are not performed AL To repeat the change press the Repeat F8 key or in command mode To cancel the change press the Undo F6 key before closing the line Normally text searches are not case sensitive The EXACT editor toggles the case sensitivity of the search operation see SEE Editor Extended Commands on page 47 NOTE Press the space bar to abort a search The latest search and replacement strings are retained between edit sessions Basic SEE Editor Operations 41 Switc hing Programs in the Editor The following function keys switch from editing one program to editing another program The internal program list mentioned below is described
94. signal is tested If the signal is on high the variable dio sample is given the value true and the IF clause executes Otherwise the ELSE clause executes dio sample SIG 1001 IF dio sample THEN Steps to take when signal is on high ELSE Steps to take when signal is off low END Since a logical expression can be used in place of a logical variable the first two lines of this example could be combined to IF SIG 1001 THEN Functions That Operate on Numeric Data Table 5 2 on page 101 summarizes the V functions that operate on numerical data Location Data Types This section gives a brief explanation of location data Chapter 7 covers locations and their use in detail 68 3 5 Chapter 3 Data Types and Operators Transformations A data type particular to V is the transformation data type This data type is a collection of several values that uniquely identify a location in Cartesian space The creation and modification of location variables are discussed in Chapter 7 Precision Points Precision points are a second data type particular to V A precision point is a collection of joint angles and translational values that uniquely identify the position and orientation of a robot The difference between transformation variables and precision point variables will become more apparent when robot motion instructions are discussed in Chapter 7 Arrays V supports arrays of up
95. symbol 161 Al inverted exclamation point i Closed circle 162 A2 cent Start quote 163 A3 sterling End quote 164 A4 currency a Comma 165 A5 yen Y End sentence 166 A6 broken bar o 167 A7 section 8 a 168 A8 dieresis i 169 A9 copyright O u 170 AA feminine ordinal E e 171 AB left guillemot o 172 AC logical not ya 173 AD en dash yu 174 AE registered yo 175 AF macron B Dbl next consonant 176 BO degree z 177 B1 plus minus A 178 B2 superscript 2 2 I 179 B3 superscript 3 U 180 B4 acute accent 181 B5 mu u O 182 B6 paragraph I KA 183 B7 centered dot KI 184 B8 cedilla KU 185 B9 superscript 1 1 KE 240 Appendix C Character Sets Table C 2 Adept Character Set C ontinued Dec Value Hex Value Description roman chars Font 1 Fonts 5 amp 6 186 BA masculine ordinal j KO 187 BB right guillemot SA 188 BC 1 4 1 4 SHI 189 BD 1 2 1 2 SU 190 BE 3 4 3 4 SE 191 BF inverted question mark SO 192 CO A grave A TA 193 C1 A acute CHI 194 C2 A circumflex TSU 195 C3 A tilde A TE 196 C4 A dieresis A TO 197 C5 A ring NA 198 C6 AE ligature A NI 199 C7 C cedilla C NU 200 C8 E grave E NE 201 C9 E acute NO 202 CA E circumflex HA 203 CB E dieresis E HI 204 CC I grave FU 205 CD I acute HE 206 CE I circumflex HO 207 CF I dieresis I MA 208 DO Eth D MI 209 D1 N tilde N MU 210 D2 O grave O ME 211 D3
96. task TIME Return an integer value representing either the date or the time specified in the given string parameter TIME Return a string value containing either the current system date and time or the specified date and time TIMER Return the current time value in seconds of the specified system timer TPS Return the number of ticks of the system clock that occur per second Ticks Per Second Example of System Control Functions The instruction IF TIMI MOV AND DEFINED loc_1 THEN Iri E y N V o e END would execute the MOVE instruction only if timer 2 had a value greater than 100 and the variable loc 1 had been defined 5 7 IO Functions V provides numerous functions for reading and writing data to and from various I O devices See Chapter 8 for a table that includes all I O functions as well as complete details on I O processing Examples of I O Functions The instructions WHILE IOSTAT 5 0 DO READ 5 txt TYPE txt END will output the characters from a disk file open on logical unit 5 Switches and Parameters Introduction e A dU LR EIU BRE ELM qu 106 Parameteis aiea a ga due esr ei e ER s 106 Viewing Parameters ess 106 Setting Parameters llle ns 107 Summary of Basic System Parameters o o oo eee 107 A Series System Terminal Settings 2 00002 eee 108 Switches gt
97. than gt gt 063 3F question 2 064 40 at a a 065 41 A A A 066 42 B B B 067 43 C C C 068 44 D D D 069 45 E E E 070 46 F F F 071 47 G G G 072 48 H H H 073 49 I I I 074 4A J J J 075 4B K K K 076 4C L L L 236 Appendix C Character Sets Ta ble C 2 Adept Character Set Continued Dec Value Hex Value Description Font 1 Fonts 2 3 4 5 amp 6 077 4D M M M 078 4E N N N 079 4F O O O 080 50 P P P 081 51 Q Q Q 082 52 R R R 083 53 S S S 084 54 T T T 085 55 U U U 086 56 V V V 087 57 W W W 088 58 X X X 089 59 Y Y Y 090 5A Z Z Z 091 5B left bracket 092 5C back slash N N 093 5D right bracket 094 5E circumflex carat A A 095 5F underscore _ 096 60 grave accent 2 i 097 61 a a a 098 62 b b b 099 63 c c c 100 64 d d d 101 65 e e e 102 66 f f f 103 67 g g g 104 68 h h h 105 69 i i i 106 6A j j j 107 6B k k k Table C 2 Adept Character Set Continued Adept Character Set 237 Dec Value Hex Value Description Font 1 Fonts 2 3 4 5 amp 6 108 6C 1 1 1 109 6D m m m 110 6E n n n 111 6F o o o 112 70 p p p 113 71 q q q 114 72 r r r 115 73 S S S 116 74 t t t 117 75 u u u 118 76 v v v 119 77 w w w 120 78 x x x 121 79 y y y 122 7A Zz Z Zz 123 7B right brace
98. that will be displayed in the debugger edit window The methods for providing this information depend on how you invoke the program debugger as described below Use the Exit F4 key or a keyboard command to exit the debugger and return to the V system monitor The DEBUG Monitor Command The following command formats will invoke the debugger from the system prompt DEBUG t prog t Initiates debugging in task number number will be determined as follows If the task number is not specified the task If any execution task has terminated execution since the start of the last debug ging session that task will be assumed If no task has terminated since the previous debugging session the previous task is accessed again The Program Debugger 53 If neither of the above situations apply the main control task number 0 is accessed Commands affecting other tasks can still be entered but their task number will have to be specified explicitly prog The named program is displayed in the debugger edit window in read only edi tor access mode If the name is omitted the program primed for the task or the last program exe cuted by the task will be selected An error will result if the named program does not exist and the DEBUG request will be aborted When the specified program is opened for read only editing its name is added at the top of the SEE editor internal program list DEBUG without any parameters
99. the parameters length and width to the program specified by array index program select from the array program list execute the specified program and resume execution of the calling program at step 50 80 Chapter 4 Program Control 4 3 Program Intemupt Instructions vt provides several ways of suspending or terminating program execution A program can be put on hold until a specific condition becomes TRUE using the WAIT instruction A program can be put on hold for a specified time period or until an event is generated in another task by the WAIT EVENT instruction A program can be interrupted based on a state transition of a digital input signal with the REACT and REACT instructions Pro gram errors can be intercepted and handled with a REACTE instruction Program execu tion can be terminated with the HALT STOP and PAUSE commands These instructions will interrupt the program they are contained in Any programs running as other tasks will not be affected Robot motion can be controlled with the BRAKE BREAK and DELAY instructions The ABORT and PROCEED monitor commands can also be used to suspend and proceed programs WAIT WAIT suspends program execution until a condition or conditions becomes true WAIT SIG 1032 1028 will delay execution until digital input signal 1032 is on and 1028 is off WAIT TIMER 1 gt 10 will suspend execution until timer 1 returns a value greater than 1
100. the value of the variable or expression If program execution has not progressed to the point where a variable has been assigned a value double clicking on the variable may return an unde fined value message Control of Program Execution While debugging programs you will want to pause execution at various points to exam ine the status of the system e g to display the values of program variables The following paragraphs describe how to control execution of the program being debugged NOTE Except for the special debugger commands mentioned below all the following techniques can be used even when the program debugger is not in use Single Step Execution The debugger Ctrl X command provides a convenient means for having program execu tion stop after each instruction is processed Each time Ctrl X is entered a V XSTEP command is processed for the program being debugged The debugger Ctrl Z command is provided to allow you to step across subroutine calls Each time Ctrl Z is entered an SSTEP command is processed for the program being debugged Thus when the execution pointer is positioned at a CALL or CALLS instruc tion typing Ctrl Z will cause the entire subroutine to be executed and execution will pause at the step following the subroutine call Ctrl Z acts exactly like Ctrl X when the current instruction is not a subroutine call NOTE You cannot single step into a subroutine that was loaded from a protected
101. to three dimensions Any V data type can be stored in an array Like simple variables array allocation and typing is dynamic Unless they are declared to be AUTOmatic array sizes do not have to be declared For example array one 2 36 allocates space for a one dimensional array named array one and places the value 36 in row two of the array The numbers inside the brackets are referred to as indices An array index can also be a variable or an expression Sarray two 4 5 row 4 col 5 allocates space for a two dimensional array named array two and places row 4 col 5 in row four column five of the array array three 2 2 4 10 5 allocates space for a three dimensional array named array three and places the value 10 5 in row two column two range four If any of the above instructions were executed and the array had already been declared the instruction would merely place the value in the appropriate location If a data type dif ferent from the one the array was originally created with is specified an error will result Arrays are allocated in blocks of 16 Thus the instruction any_array 2 50 will result in allocation of array elements 0 15 The instructions any_array 2 50 any_array 20 75 will result in the allocation of array elements 0 31 Array allocation is most efficient when the highest range index exceeds the highest col umn index and the highest colum
102. tool tip Speed set as a percentage of normal speed is the default The speed of a robot move based on normal speed is determined by the following factors e The program speed set with the SPEED program instruction This speed is set to 100 when program execution begins e The monitor speed set with the SPEED monitor command or a SPEED pro gram instruction that specifies MONITOR This speed is normally set to 50 at system startup start up SPEED can be set with the CONFIC_C utility The 132 Chapter 7 Motion Control Operations effect of the two SPEED operations is slightly different See the SPEED program instruction for further details Robot speed is the product of these two speeds With monitor speed and program speed set to 100 the robot will move at its normal speed With monitor speed set to 50 and program speed set to 50 the robot will move at 25 of its normal speed To move the robot tool tip at an absolute rate of speed a speed rate in inches per second or millimeters per second is specified in the SPEED program instruction The instruction SPEED 25 MMPS ALWAYS specifies an absolute tool tip speed of 25 millimeters per second for all robot motions until the next SPEED instruction In order for the tool tip to actually move at the specified speed e The monitor speed must be 100 The locations must be far enough apart that the robot can accelerate to the desired s
103. wee 103 Examplesof I O Functions a 103 98 Chapter 5 Functions 5 1 Using Functions V provides you with a wide variety of predefined functions for performing string math ematical and general system parameter manipulation Functions generally require you to provide them with data and they return a value based on a specific operation on that data Functions can be used anywhere a value or expression would be used Variable Assignment Using Functions The instruction Scurr_time STIME will put the current system time into the variable curr_time This is an example of a function that does not require any input data The instruction var_root SQRT x MO un will put the square root of the value x into var root x will not be changed by the function Functions Used in Expressions A function can be used wherever an expression can be used as long as the data type returned by the function is the correct type The instruction IF LEN some string gt 12 THEN will result in the boolean expression being true if the string some string has more than 12 characters The instruction array var some array VAL x will result in array var having the same value as the array cell x VAL converts a string to a real Functions as Arguments to a Function In most cases the values passed to a function are not changed This not only protects the variables you use as argum
104. will load from the remote system the programs or data contained in the specified file The file specification may be a simple file name or it may contain device and directory information The actual interpretation of the file specification depends on the remote Ker mit server as well as the type of remote system being used You may also use the V DEFAULT command to define the default disk device to be the Kermit line That is for example you can enter DEFAULT K gt directory In this command K gt tells the V system it should access the Kermit device when the local disk device is not explicitly specified and directory represents directory informa tion to be used as the default in subsequent file specifications After the above DEFAULT command is entered the command LOAD file name would load a program or data file from the Kermit line It is also possible for a V program to READ and WRITE to remote sequential files over the Kermit line To do that the program has to perform the following steps 1 ATTACH a disk logical unit specifying the physical device KERMIT explic itly or via the current default NOTE Only one logical unit in the entire V system can be attached to the KERMIT physical device at any one time An attempt to perform a second attachment will result in the error Device not ready Kermit Communication Protocol 169 2 FOPEN the desired file on that logical uni
105. 0 WAITEVENT The instruction WAIT EVENT 3 7 will suspend execution for 3 7 seconds This wait is more efficient than waiting on a timer as in the previous example since the task does not have to loop continually checking the timer value The instruction WAIT EVENT will suspend execution until another task issues a SET EVENT instruction to the waiting task If the SET EVENT does not occur the task will wait indefinitely REACT REACTI When a REACT or REACTI instruction is encountered the program will begin monitoring a digital input signal specified in the REACT instruction This signal is monitored in the background with program execution continuing normally until the specified signal transi tions When and if a transition is detected the program will suspend execution at the currently executing step REACT and REACTI suspend execution of the current program and call a specified subroutine Additionally REACTI issues a BRAKE instruction to immediately stop the current robot motion Program Interrupt Instructions 81 Both instructions specify a subroutine to be run when the digital transition is detected After the specified subroutine has completed program execution will resume at the step executing when the digital transition was detected Digital signals 1001 1012 and 2001 2008 can be used for REACT instructions The signal monitoring initiated by REACT REACTT is in effect until another
106. 0 0 9 10 9 0 0 5 0 0 0 10 10 11 0 0 5 0 0 0 11 10 11 0 0 5 0 0 0 12 10 9 0 0 5 0 0 0 13 0 0 20 15 0 0 0 5 14 0 0 0 0 0 20 15 0 15 0 0 0 0 0 0 0 0 The SEE Editorand Debugger Basic SEE Editor Operations 0 0 2 ee 38 CursorMovement neri entak Fee ee eee a ee ee ee EU AES 38 Deleting Copying and Moving Lines enn 39 Text Searching and Replacing 00 llle 40 Switching Programsinthe Editor 0002 eee oo 41 The Intemal Program List 2 ooo 41 Special Editing Situations lees 43 The SEE Editorin Command Mode ee eee 44 Command Mode Copy Buffer 2 000 000 0004 47 SEE Editor Extended Commands 47 Edit MaCTOS gt zu x xU Rea k RA Me Xe TR a D 49 Sample Editing Session o o o o 49 The Program Debugger 6 oo 52 Entering and Exiting the Debugger 00002002 eee 52 The DEBUG MonitorCommand sss 52 Using the Debug Key orthe DEBUG Extended Command 53 Exiting the Debugger naaa ee 53 The DebuggerDisplay o ooo ee 54 Debugger Operation Modes 00 cc es 55 Debugging Programs les 56 Positioning the Typing Cursor o o o o ooo 56 Debugger Key Commands lees 57 Debug MonitorMode Keyboard Commands 58 Using a Pointing Device With the Debugger
107. 0 is generally the same as for task 0 The follow ing points highlight the differences e The task number must be explicitly included in all the monitor commands and program instructions that affect program execution including EXECUTE ABORT PROCEED RETRY SSTEP and XSTEP However when the V pro gram debugger is being used the task being accessed by the debugger becomes the default task for all these commands e If the program is going to control the robot it must explicitly ATTACH the robot before executing any instructions that control the robot e Iftask 0 is not executing concurrently the V monitor prompt continues to be a dot Also the prompt is displayed after the task initiating EXECUTE com mand is processed NOTE If you want program execution to be delayed briefly to allow time for the dot prompt to be output for example to prevent it from occurring during output from the program have your program execute two WAIT instructions with no parameter The TRACE feature does not apply to tasks other than 0 NOTE To use TRACE with a program that is intended to execute in a task other than 0 execute the program as task 0 This consideration does not apply when using the V program debugger which can access any program task See section 1 9 for details on task scheduling Program Stacks When subroutine calls are made V uses an internal storage area called a stack to save information requi
108. A robot The system automati cally reflects rotation of the quill in the roll component of a transformation variable and the yaw component is forced to 0 In a SCARA robot equipped with a fifth axis rotation of the quill is reflected in the yaw component and motion of a rotating end effector sixth axis is reflected in the roll component Notice in Figure 7 2 that the local reference frame points straight up This corresponds to a situation where the end of arm tooling points straight back along the third axis In a mech anism not equipped with a 360 wrist this is an impossible position For a four axis SCARA this component must point straight down pitch 180 For a mechanism with a fifth axis this component must be within the range of motion of the fifth axis NOTE Remember when thinking about a transformation the rules of ZYZ Euler angles require that the orientation components be applied in order after the local reference frame has been defined After calculating the Cartesian components and placing a local reference frame with x y and z axes parallel to the primary reference frame X Y and Z axes the orientation components are applied in a strict order yaw is applied first then pitch and finally roll Creating and Altering Location Variables Creating Location Variables The most straightforward method of creating a location variable is to place the robot or motion device at a location and enter the monitor comma
109. Cursor Movement Tables 2 1 and 2 1 list the keys used for moving around the editor in all modes The cursor keys can be either the cursor movement keys above the trackball or the keys on the numeric keypad when Num lock is not engaged Table 2 1 Cursor Movement Keys With A Series Keyboard Cursor Key Without Ctrl Key With Ctrl Key T Up 1 line Up 1 4 page y Down 1 line Down 1 4 page gt Right 1 character Right 1 item c Left 1 character Left 1 item Home Top of program Page Up Up 1 screen Page Down Down 1 screen End End of program The scroll bars will also move through a SEE editor program The bottom scroll bar has an effect only if the editor window has been sized down Clicking on the up down arrows moves the program up or down a few lines Clicking the left right arrows moves the program left or right Clicking in a scroll bar displays the corresponding section of the Basic SEE Editor Operations 39 program e g clicking in the middle of the scroll bar displays the middle section of the program Dragging a scroll handle moves the program up or down or left or right Table 2 2 Cursor Movement Keys With Wyse Terminal Key Function Without Shift Key T Up 1 line y Down 1 line gt Right 1 character c Left 1 character Line Feed Up 1 screen Home Down 1 screen Start PF1 Go to start of line PF2 Move left 1 item
110. Devices An ATTACH request initiates the DDCMP protocol for the specified logical unit The attach will not complete until the remote system also starts up the protocol and acknowl edges the local request There is no time out limit for start up so the attach request can wait indefinitely For applications that service multiple lines no wait ATTACH mode can be used and the logical unit for each line can be polled with the IOSTAT function to detect when the remote system has started A DETACH request stops the protocol flushes any pending input data and deactivates the line Any data received on the line is ignored Input Processing When the protocol is active received DDCMP data messages are stored in internal data buffers and acknowledged immediately The maximum input message length is 512 bytes The total number of data buffers shared by all the DDCMP serial lines is initially 10 The Adept controller configuration program CONFIG C can be used to change the num ber of buffers allocated for use by DDCMP Once all the DDCMP buffers are full additional data messages are rejected with negative acknowledge NAK reason 8 Buffer temporarily unavailable It is the user s responsi bility to limit the input data flow using a higher level protocol on the remote system Input data is accessed via the V READ instruction Each READ instruction returns the contents of the next data buffer If no received data is available the read wil
111. I constant Thus the following are valid ASCII constants A rele y oe Note that the ASCII value 1 decimal value 49 is not the same as the integer value 1 dec imal value 1 0 Also itis not the same as the string value 1 The dollar sign is not considered in the character count of the variable name 66 3 3 Chapter 3 Data Types and Operators Functions That Operate on Sting Data Table 5 1 on page 99 summarizes the V functions that operate on string data Real and Integer Data Types Numbers that have a whole number and a fractional part or mantissa and exponent if the value is expressed in scientific notation belong to the data type real Numeric values having only a whole number belong to the data type integer In general V does not require you to differentiate between these two data types If an integer is required and you supply a real V will promote the real to an integer by rounding not truncation Where real values are required V considers an integer a special case of a real that does not have a fractional part The default real type is a signed 32 bit IEEE single precision number Real values can also be stored as 64 bit IEEE double precision numbers if they are specifi cally typed using the DOUBLE instruction see section 3 6 for additional details The range of integer values is 16 777 216 to 16 777 215 The range of single precision real values is 3 4 10 The range of do
112. LT DISK command The utility CONFIG_C can be used to specify a default disk at startup See the Instructions for Adept Utility Programs for details on running this utility 2 The file name must correspond to the MCP selection If CMD1 is pressed the disk file must be named CMD1 V2 If AUTO START is pressed the user will be asked to input one or two digits These digits will be used to complete the file name AUTOxx V2 A corresponding file name must exist on the default drive 3 Acommand program with the same name as the file name minus the exten sion must be one of the programs in the file If AUTO22 V2 is loaded the pro gram auto22 will be COMMANDed See the V Operating System Reference Guide for details on command programs WAITSIART Starting a robot program while the operator is in the workcell can be extremely danger ous Therefore Adept has installed the following safety procedure to prevent program startup while an operator is in the workcell Before a program auto started from the MCP will begin execution the operator will have to leave the workcell put the controller key switch in the terminal position and press the Program Start button The WAIT START instruction implements this safety feature This instruction is automatically included in any programs started with the AUTO START CMD CMD1 CMD2 and CALIBRATE buttons on the MCP You should include this safety feature in any pendant routines you write that
113. Motion Control Operations Continued Keyword Type Function POWER S Control or monitor the status of Robot Power HPPOINT PF Return a precision point value composed from the given components REACTI PI Initiate continuous monitoring of a specified digital signal Automatically stop the current robot motion if the signal properly transitions and optionally trigger a subroutine call READY PI Move the robot to the READY location above the workspace which forces the robot into a standard configuration RELAX PI Limp the pneumatic hand RELAXI PI Limp the pneumatic hand immediately RIGHTY PI Request a change in the robot configuration during the next motion so that the first two links of the robot resemble a human s right arm see LEFTY ROBOT S Enable or disable one robot or all robots RX TF Return a transformation describing a rotation about the x axis RY TF Return a transformation describing a rotation about the y axis RZ TF Return a transformation describing a rotation about the z axis SCALE TF Return a transformation value equal to the transformation parameter with the position scaled by the scale factor SELECT PI Select the unit of the named device for access by the current task SET PI Set the value of the location variable on the left equal to the location value on the right of the equal sign SET SPEED S Control whether or not the monitor speed can be chang
114. NT EVENT 94 INTB 99 INTB 101 Integer datatype 66 Integers range 66 INTERACTIVE system switch 110 Internal program list 41 Interrupts system 145 Interupting a program 80 INVERSE 137 IOGET_ 172 IOPUT_ 172 IOSTAT 172 186 reporting communication errors 147 with GETC 148 IOTAS 172 IPS 137 J Joint moving an individual 128 number 7 Joint interpolated motion 127 K KERMIT 172 Kermit 166 170 attaching 168 binary files 169 communication protocol 166 errors 170 file access input 169 operation 168 169 output 169 parameters 170 starting session 166 Kermit task 34 KERMIT RETRY parameter 107 KERMIT TIMEOUT parameter 107 172 Keyboard 6 Keyboard input 142 Keyboard mode MCP 194 KEYMODE 172 Keys Control Ctrl 6 Enter 6 function 6 57 Return 6 Shift 6 168 169 L Label program 78 Label program step 18 LAST 102 LATCH 137 LATCHED 137 LEFTY 133 137 LEN 99 less than 73 lt less than or equalto 73 LNGB 99 LNGB 99 LOADBELT V2 209 LOCAL 69 Local variables 69 Location relative to belt 215 Location data transformations 115 Location data type precision point 68 transformation 68 Location functions 100 Location values modifying 121 Location variables 114 Locations 114 122 Index 249 LOCK program instruction 27 Logical unitnumber 147 Logical constants 67 Logical expressions 67 86 Logical functions 102 Logical operators 74 AND 74 NOT 74 OR 74 XOR 74 Logical unit number for MCP 192 Lo
115. OPENA PI Open a disk file for read write append FOPEND PI Open a disk directory for read PI Program Instruction RF Real Valued Function P Parameter SF String Function 172 Chapter 8 Input Output Operations Ta ble 8 3 System Input Output Operations Continued Keyword Type Function FSEEK PI Position a file open for random access and initiate a read operation on the specified record GETC RF Return the next character byte from a device or input record on the specified logical unit IOGET_ RF Return a value from a device on the VME bus IOGETS SF Return a string value from a device on the VME bus IOPUT_ PI Write a value to a device on the VME bus IOSTAT RF Return status information for the last input output operation for a device associated with a logical unit IOTAS RF Control access to shared devices on the VME bus KERMIT RETRY P Establish the maximum number of times the local Kermit driver should retry an operation before reporting an error KERMIT TIMEOU P Establish the delay parameter that the Vt driver for the Kermit T protocol will send to the remote server KEYMODE PI Set the behavior of a group of keys on the manual control pendant PENDANT RF Return input from the manual control pendant PROMPT PI Display a string on the system terminal and wait for operator input READ PI Read a record from an open file or from an atta
116. Other Than the SEE Editor Programs can be written using any editor that creates a DOS ASCII text file These pro grams can then be stored on a V compatible disk see the FORMAT command LOADed into system memory and opened by the SEE editor When the program is loaded a syntax check is made and programs that fail the syntax check will be marked as non executable These programs can be brought into the SEE editor and any non conforming lines will be marked with a question mark Once these lines have been corrected the program can be executed In order for program files created outside of the SEE editor to LOAD correctly the follow ing requirements must be met e Each program must begin with a PROGRAM line e Each program must end with a END line this line is automatically added by the SEE editor but must be explicitly added by other editors e Each program line must be terminated with a carriage return line feed ASCII 13 ASCII10 e The end of the file not the end of each program must be marked with a Con trol Z character ASCII 27 e Lines that contain only a line feed AASCII10 are ignored 14 Chapter 1 Programming V The features of the SEE editor window are shown in Figure 1 1 2 1 o PROGRAM see sample o g o O see_sampl Step 2 of Command mode 3a E Program SEE SAMPLE doesn t exist Create it Y N Figure 1 1 The SEE Editor Window The SEE Editor Window
117. RE 253 FD y acute y RO 254 FE thorn b WA 255 FF y dieresis y N Symbols 138 139 CHR 99 DBLB 99 DECODE 99 DEFAULT 171 ENCODE 99 ERROR 102 FLTB 99 ID 102 INTB 99 IOGETS 172 LNGB 99 MID 99 TIME 103 TRANSB 99 TRUNCATE 99 UNPACK 99 to indicate belt variable 209 subtraction 72 multiplication 72 system prompt 20 addition 72 system prompt 20 division 72 semicolon 18 less than 73 lt 73 lt less than or equal to 73 lt gt not equal to 73 assignment operator 72 equal to 73 gt greater than 73 gt greater than or equal to 73 Esci A Abbreviation parameter name 106 switch name 109 ABORT 93 ABOVE 135 ABS 101 ACCEL 132 133 135 Index addition 72 Adept MV Controller User s Guide 3 Adept Vision VME User s Guide 3 AdeptMotion VME User s Guide 3 Adept Vision Reference Guide 3 AIO IN 146 171 AIO INS 146 171 AIO OUT 146 171 ALIGN 135 Alt key on S series terminals 38 ALTER 135 ALTOFF 135 ALTON 135 ALWAYS 133 AMOVE 135 AnalogI O 146 AND logicaloperator 74 Angles 7 Apostrophe 65 Apostrophe character 65 APPRO 135 Approaching a location 127 APPROS 127 135 Argument numeric 7 Arguments passing toa routine 79 program passing 24 Arithmetic functions 101 Array belt variable 210 Arrays 68 efficient allocation 68 multi dimensional 68 string 68 ASC 99 ASCII character set 231 value 65 assignment oper
118. RECORD button on the manual control pendant In the next example the robot tool is to be moved along a circular arc However the path is not prerecorded it is described mathematically based on the radius and center of the arc to be followed The program segment below assumes that a real variable radius has already been assigned the radius of the desired arc and x center and y center have been assigned the respective coordinates of the center of curvature The variables start and last are Motion Control Instructions 131 assumed to have been defined to describe the portion of the circle to be traced Finally the variable angle step is assumed to have been defined to specify the angular increment to be traversed in each incremental motion Because the DURATION instruction is used the program will move the robot tool angle step degrees around the arc every 0 5 sec ond When this program segment is executed the X and Y coordinates of points on the arc are repeatedly computed They are then used to create a transformation that defines the desti nation for the next robot motion segment DURATION 0 5 ALWAYS FOR angle start TO last STEP angle step x radius COS angle x center y radius SIN angle y center MOVE TRANS x y 0 0 180 0 END Timing Considerations Because of the computation time required by V to perform the transitions between motion segments there
119. RO place 50 MOVE place DEPART 50 128 Chapter 7 Motion Control Operations will cause joint interpolated motion to a point 50 mm above place movement down to place and movement straight up to 50 mm above place If the instructions APPROS DEPARTS and MOVES had been used the motions would have been straight line instead of joint interpolated NOTE Approaches and departs are based on the tool coordinate system not the world coordinate system Thus if the location specifies a pitch of 135 the robot will approach at a 45 angle relative to the world coordinate system See Yaw on page 117 for a description of the tool coordinate system Moving an Individual J oint You can move an individual joint of a robot using the instruction DRIVE The instructions DRIVE 2 50 0 100 DRIVE 3 25 100 will move joint 2 through 50 of motion and then move joint 3 a distance of 25 mm at SPEED 100x End Effector Operation Instructions The instructions described in this section depend on the use of two digital signals They are used to open close or relax a gripper The utility program CONFIG_R specifies which signals control the end effector See the Instructions for Adept Utility Programs The instruction OPEN will open the gripper during the ensuing motion instruction The instruction OPENI will open the gripper before any additional motion instructions are executed CLOSE and CLOSE are the complement
120. SEE Editor and Debugger 2 3 The Program Debugger V systems include a program debugger for interactively executing and modifying application programs With the debugger a program can be executed a step at a time or in larger user controlled segments while the program instructions and the program out put are simultaneously displayed in two separate sections of the monitor window NOTE The program debugger cannot access protected programs The debugger has an editor mode that allows editing of programs during the debug ging session Changes made to the program can be executed immediately to verify their correctness While the program is executing the values of program variables can easily be displayed or changed The following sections describe the use of the program debugger in detail Entering and Exiting the Debugger The program debugger can be invoked in two ways From the command line with the DEBUG monitor command e From the SEE editor with the Debug S F11 key or the DEBUG extended com mand The function keys and the SEE editor extended commands are described earlier in this chapter NOTE The program debugger cannot be invoked from the SEE editor when the editor has been initiated with the SEE program instruction When a debugging session is initiated two aspects of the debugging session need to be established the program task that will be accessed for program execution and the pro gram
121. Sc et ted a ed 80 WAIT EVENT uS a Mata Babies Bed bade Mae s ber det praed 80 REACTEREACIT iat ha eta en tg s aaa RO dtt eS aA 80 REAGE onto al do roar Ace e eet T e adu 82 REACTE and PowerFailures oo e ees 82 HALT STOP PAUSE e a RA deeper bea eR nm decr a 83 BRAKE BREAK DELAY 5 ebd Has eae ipm cg Pod 83 Additional Program Interrupt Instructions lille 83 Program Intemupt Example ens 84 Logical Boolean Expressions 0 0 0 ooo 86 Conditional Branching Instructions o o 86 IE GOTO tacks a Ace baw dees Ae tne a 86 IE THEN 3 ELSE 2125 othe E DE Above Bin de fi ue Deva RO Sie Ges 87 CASE VALUEOF ei xum dx thee eee eee eat Beh waa ee 88 Example ur is Robert eof aot Ee ee ee 88 Looping Stuctures o ee 89 FOR at eU EUR EX EEG ud ee a RE Nae EE 89 ExatnpleS cu a Ru s phong re i se 89 DO UNTIE aros RUP OPER Ur uL eed RA UE Ei Ub 90 WHIBESDG conato no o Be AA A 92 Summary of Program Control Keywords 93 Controlling Programs in Multiple CPU Systems 95 78 4 1 Chapter 4 Program Control Intoduction 4 2 This chapter introduces the structures available in V to control program execution These structures include the looping and branching instructions common to most high level lan guages as well as some instructions specific to Vt Unc onditional Branch Instructions T
122. TE based on the power failure will be executed e The REACTE based on the power failure will return error 667 Power failure detected If a REACTE is not enabled the power failure is ignored e Any disk I O that was in progress completes make sure floppy disks are not removed or exchanged during power down e Graphics operations are restored The LOCK instruction can be used to control execution of a program after a REACT or REACTI subroutine has completed 2A position on the controller configuration DIP switch enables or disables recovery and restart from a power failure If switch position 2 is on the controller will reinitialize and not attempt the recovery If switch position 2 is off the recovery described above will be attempted see the Adept MV Controller User s Guide for details on setting this switch Program Interrupt Instructions 83 Digital I O signals are reset If external devices are being controlled by digital output signals make sure the REACTE routine returns digital output signals to a safe state e All programs continue execution If the controller power switch is turned off or the length of the power down exceeds the battery capacity system state is lost and cannot be restored HALT STOP PAUSE When a HALT instruction is encountered program execution is terminated and any open serial or disk units are DETACHED and FCLOSEd PROCEED or RETRY will not resume execution When a STOP ins
123. The GETC function reads the file byte by byte if you want to examine individual bytes from the file or if the file is not delimited by CR LFs Detaching When a disk logical unit is detached any disk file that was open on that unit is automati cally closed However error conditions detected by the close operation may not be reported Therefore it is good practice to use the FCLOSE instruction to close files and to check the error status afterwards FCLOSE ensures that all buffered data for the file is written to the disk and updates the disk directory to reflect any changes made to the file The DETACH instruction frees up the logical unit The following instructions close a file and detach a disk LUN 154 FCLOSE dlun IF IOSTAT dlun IYPE END ETACH dlun D Chapter 8 Input Output Operations THEN ERROR IOSTAT dlun When a program completes normally any open disk files are automatically closed If a program stops abnormally and execution will not be proceeded the KILL monitor com mand will close any files left open by the program CAUTION While a file is open on a floppy disk do not replace the floppy disk with another disk or data may be lost and the new disk may be cor rupted Disk I O Example The following example creates a disk file writes to the file closes the file reopens the file and reads back its contents AUTO dlun i AUTO Sfile name Sfile
124. UE list of values code block executed when target is in list of values ANY code block executed when target not in any list of values END target real value to match list of values list separated by commas of real values If one of the values in the list equals target the code following that value statement will be executed Example 65 Create a menu structure using a CASE statement 66 67 50 YPE 1 Execute the program 68 YPE 2 Execute the programmer 69 YPE 3 Execute the computer 70 PROMPT Enter menu selection select 71 72 CASE select OF 73 VALUE 1 74 CALL exec program 75 VALUE 2 76 CALL exec programmer 77 VALUE 3 78 CALL exec_computer 79 ANY 80 PROMPT Entry must be from 1 to 3 select 81 GOTO 50 82 END 83 If the above code is rewritten without an ANY statement and a value other than 1 2 or 3 is entered the program will continue execution at step 83 without executing any program 4 6 Looping Structures 89 Looping Structures In many cases you will want the program to execute a block of code more than once V has three looping structures that allow you to execute blocks of code a variable number of times The three instructions are e FOR e DO UNTIL e WHILE DO FOR A FOR instruction creates an execution loop that will execute a given block of code a spec ified number of times The basic form of
125. V Language User s Guide Version 11 0 J V Language User s Guide Version 11 0 Part 00961 00230 Rev A April 1994 mja yn a 150 Rose Orchard Way San Jose CA 95134 USA Phone 408 432 0888 Fax 408 432 8707 jee a E Otto Hahn Strasse 23 44227 Dortmund Germany Phone 0231 75 89 40 Fax 0231 75 89 450 od inc 11 Voie la Cardon 91126 Palaiseau France Phone 1 69 19 16 16 Fax 1 69 32 04 62 1 2 Aza Nakahara Mitsuya Cho Toyohashi Aichi Ken 441 31 Japan 0532 65 2391 Fax 0532 65 2390 The information contained herein is the property of Adept Technology Inc and shall not be repro duced in whole or in part without prior written approval of Adept Technology Inc The informa tion herein is subject to change without notice and should not be construed as a commitment by Adept Technology Inc This manual is periodically reviewed and revised Adept Technology Inc assumes no responsibility for any errors or omissions in this document Critical evaluation of this manual by the user is welcomed Your comments assist us in preparation of future documentation A form is provided at the back of the book for submitting your comments Copyright O 1994 by Adept Technology Inc All rights reserved The Adept logo is a registered trademark of Adept Technology Inc Adept AdeptOne AdeptThree PackOne HyperDrive A Series S Series Adept MC Adept CC Adept IC Adept OC Adept MV Ade
126. V does not ask for confirmation before performing certain operations and does not output the text of error messages This switch is usually disabled when the system is being controlled by a supervisory computer to relieve the computer from having to process the text of messages Default is enabled MCP MESSAGES Controls how system error messages are handled when the controller keyswitch is not in the PENDANT position Default is disabled MCS MESSAGES Controls whether monitor commands executed with the MCS instruction will have their output displayed on the terminal Default is disabled Switches 111 Ta ble 6 2 Basic System Switches Continued Switch Use MESSAGES Controls whether output from TYPE instructions will be displayed on the terminal Default is enabled NETWORK Controls whether the V system communicates with the external communication port Until this switch is enabled V ignores the existence of the port Default is disabled POWER Tracks the status of Robot Power this switch is automatically enabled whenever Robot Power is turned on This switch can also be used to turn Robot Power on or off enabling the switch turns on Robot Power and disabling the switch turns off Robot Power Default is disabled VARNING WE RECOMMEND THAT YOU DO NOT TURN ON ROBOT POWER FROM WITHIN A PROGRAM since the robot can be activated without direct operator
127. VES wait location Return to rest location END Wait for the next part End of program The WINDOW instruction in the above program indicates that whenever a window viola tion occurs a subroutine named window error is to be executed The following is an example of what such a routine might contain WINDOW VIOLATION ROUTINE TYPE B C1 WINDOW ERROR OCCURRED C1 Find out which end of window was violated IF DISTANCE HERE window 1 DISTANCE HERE window 2 THEN Error occurred at window 2 TYPE Part moved downstream out of reach j Respond to downstream window error ELSE Error occurred at window 1 TYPE Part moved upstream out of reach j Respond to upstream window error END OVES wait location Move robot to rest location Use digital output signals to sound alarm and stop belt SIGNAL alarm stop belt HALT Halt program execution Example V Programs This appendix contains a sampling of V programs The first program is presented twice once in its entirety exactly as it would be displayed by Vt and a second time with a line by line explanation The program keywords are detailed in V Language Reference Guide NOTE The programs in this manual are not necessarily complete In most cases further refinements could be added to improve the programs For example the programs could
128. a tion of the robot location performance of the desired motion sequence and notice to the operator of completion of the task Each of these sections is described in detail below The first line of every program must have the form of the line below It is a good practice to follow that line with a brief description of the purpose of the program If there are any special requirements for use of the program they should be included as well PROGRAM move parts This line identifies the program to the V system In this case we see that the name of the program is move parts ABSTRACT Pick up parts at location pick and put them down at place This is a very brief description of the operation performed by the program Most programs will require a more extensive summary Use variables to represent constants for two reasons Using a variable name throughout a program makes the program easier to understand and only one program line needs to be modified if the value of the constant must be changed parts 100 Tell the program how many parts to process during a production run In this case 100 parts will be processed heightl 25 4 height1 controls the height of the robot path when approaching and departing from the location where the parts are to be picked up Here it is set to 25 4 milli meters that is 1 inch Pick and Place 221 height2 50 8 Similar to height1 height2 sets the height of the robo
129. a FOR loop is FOR index start_val TO end val STEP incr code block END index is a real variable that will keep track of the number of times the FOR loop has been executed This variable is available for use within the loop start_val is a real expression for the starting value of the index end_val is a real expression for the ending value of the index Execution of the loop will terminate when index reaches this value incr is a real expression indicating the amount index is to be incremented after each execution of the loop The default value is 1 Examples 88 E 89 Output even elements of array Snames up to index 32 90 9T FOR i 2 TO 32 STEP 2 92 TYPE names i 93 END 94 102 E 103 Output the values of the 2 dimensional array values in 104 column and row form 10 rows by 10 columns 105 106 FOR i 1 TO 10 90 Chapter 4 Program Control 107 FOR j 1 to 10 108 TYPE values i j S 109 END 110 TYPE Us C 111 END 112 A FOR loop can be made to count backward by entering a negative value for the step increment Count backward from 10 to 1 FOR i 10 TO 1 STEP 1 TYPE i END O00 10 01 C Changing the value of index inside a FOR loop will cause the loop to behave improp erly To avoid problems with the index make the index variable an auto variable and do not change the index from inside the FOR loop Changes to the starting and endi
130. a request to the device attached on the indicated LUN and waits until a complete data record is received before program execution continues The length of the last record read can be obtained with the IOSTAT function with its second argument set to 2 The GETC real valued function returns the next data byte from an I O device without waiting for a complete data record It is commonly used to read data from the serial lines or the system terminal It also can be used to read disk files in a byte by byte manner Special mode bits to allow reading with no echo are supported for terminal read opera tions Terminal input also can be performed using the PROMPT instruction The GETEVENT instruction can be used to read input from the system terminal This may be useful in writing programs that operate on both A series and S series controllers To read data from a disk device a file must be open on the corresponding logical unit The FOPEN_ instructions open disk files Whiting The WRITE instruction processes output to serial and disk devices and to the terminal The basic WRITE instruction issues a request to the device attached on the indicated LUN and waits until the complete data record is output before program execution continues WRITE instructions accept format control specifiers that determine how output data is formatted and whether or not an end of record mark should be written at the end of the record Terminal output also can
131. ails on the different events that can be monitored The basic strategy for an event loop is 1 Wait for an event to occur 2 When an event is detected a Ifitis the desired event go to step 3 b Otherwise return to step 1 3 Check the data from the event array not necessary for event 14 menu select a Ifitis appropriate go to step 4 b Otherwise return to step 1 4 Initiate appropriate action 5 Return to step 1 GETEVENT Instruction The instruction that initiates monitoring of pointer device and keyboard events is GETEVENT Its simplified syntax is GETEVENT lun event lun Logical unit number of the window to be monitored event Array into which the results of the detected event will be stored The value stored in event 0 indicates which event was detected If event 0 is 2 a button up event was detected in which case event 1 indicates the number of the button pressed For two button devices 2 left button 4 right button For three button devices 1 left button 2 middle button 4 right button event 2 is the X value of the pointer location of the click event 3 is the Y value of the pointer location of the click If event 0 is 14 a click on a menu bar selection was detected in which case If event 1 is 0 a click has been made to the top level menu bar In this case an FSET instruction must be executed to display the pull down options under Monitoring Events 179 the m
132. al the instructions in this manual should be followed At this point you should escape back to the local V system by typing a Ctrl C to ter minate the PASSTHRU command 168 Chapter 8 Input Output Operations NOTE A Ctrl C may be typed at any time while in PASSTHRU mode to escape back to the local system This implies that you will not be able to send a Ctrl C to the remote system If the remote system uses Ctrl C for special purposes for example the DEC VAX VMS system uses it to interrupt operations you will have to use some other means to achieve those special purposes Most Kermit servers cannot be aborted or terminated except by a special communication packet In order to terminate the remote server when communicating with a V system you must go into PASSTHRU mode as described earlier Then when a Ctrl P is typed a special packet of information is sent to the remote server that causes it to terminate After this is achieved the remote Kermit program should return to command mode and display its command prompt You may then exit Kermit and log off the remote system File Access Using Kermit After the remote Kermit server has been initiated you are ready to use the Kermit line for file access In general to access a file via Kermit with the V system all you have to do is specify the KERMIT gt physical device in a normal V file access command or instruc tion For example the command LOAD K gt file_spec
133. ame begins with H Viewing Parameters To see the state of a single parameter use the PARAMETER monitor command PARAMETER parameter_name If parameter_name is omitted the value of all parameters is displayed To retrieve the value of a parameter from within a program use the PARAMETER func tion The instruction TYPE HAND TIME parameter PARAMETER HAND TIMI Pl will display the current setting of the hand delay parameter in the monitor window The PARAMETER function can be used in any expression to include the value of a param eter For example the following program statement will increase the delay for hand actua tion PARAMETER HAND TIME PARAMETER HAND TIME 0 15 Note that the left hand occurrence of PARAMETER is the instruction name and the right hand occurrence is the function name Parameters 107 Setting Parameters To set a parameter from the command line use the PARAMETER monitor command The instruction PARAMETER SCREEN TIMEOUT 10 sets the screen blanking time to 10 seconds To set a parameter in a program use the PARAMETER program instruction The instruc tion PARAMETER NOT CALIBRATED 1 asserts the not calibrated state for robot 1 In systems with AdeptVision VME some parameters are organized as arrays and must be accessed by specifying an array inde
134. an one belt variable can be associated with the same physical belt and belt encoder In this way several work sta tions can be easily referenced on the same belt Like other variable names in V the names of belt variables are assigned by the program mer Each name must start with a letter and can contain only letters numbers periods and underline characters Letters used in variable names can be entered in either lower case or uppercase V always displays variable names in lowercase 210 Chapter 11 Conveyor Tracking To differentiate belt variables from other data types the name of a belt variable must be preceded by a percent sign As with all other V data types arrays of belt variables are permitted Hence the following are all valid belt variable names pallet on belt base plat belt 1 The DEFBELT instruction must be used to define belt variables see the Moving Line Programming section of this chapter Thus the following are not valid operations SET new belt old belt or HERE Sbelt 1 Compared to other V data types the belt variable is rather complex in that it contains several different types of information Briefly a belt variable contains the following infor mation 1 The nominal transformation for the belt This defines the position and direction of travel of the belt and its approximate center 2 The number of the encoder used for reading the instantaneous location of the
135. and simulating the dragging of a graphic across the screen GPOINT Draw a single point GRECTANGLE Draw a rectangle GSCAN Draw a series of horizontal lines GSLIDE Create a slide bar GTEXTURE Develop a texture for subsequent graphics Set subsequent graphics to transparent or opaque GTRANS Define a transformation to apply to all subsequent G instructions GTYPE Display a text string Programming the MCP Introduction suu had hae Ge Ba des WE Se E Rh Se EE 192 ATIACHing and DETACHing the Pendant ss 192 Writing to the Pendant Display 2 00022 o 192 The Pendant Display 2 0 192 Using WRITE With the Pendant irren 192 Detecting UserInput o o o oo 193 Using READ With the Pendant 2 002 193 Detecting Pendant Button Presses llle 194 Keyboard Mode es 194 Toggl Mode x o3 em Peru da 194 levelMod 3 235 et b bU RARE AGIS b eos a 195 Monitoring the MCP Speed Bar lel 196 Reading the State ofthe MCP 0 00002 eee 197 Controlling the Pendant 20000 ee 198 Control Codesforthe LCD Panel 0000 20 198 The Pendant LEDs 2 0 aaa 199 Making Pendant Buttons Repeat Buttons 00 199 Auto Starting Programs With the MCP 2 2 ee es 202 WAIT START ho Ge Sed HR Eee kee ba a eae da 202 Programming Example MCP Menu
136. are not required by V main programs and subroutines always exist as separate programs The V file structure allows you to keep a main pro gram and all the subroutines it CALLs or EXECUTEs together in a single file so that when a main program is loaded all the subroutines it calls are also loaded If a program calls a subroutine that is not resident in system memory the error Undefined program or vari able name will result See the descriptions of the STORE_ commands and the MODULE command in the V Operating System User s Guide for details For an example of creating a program file see section 2 2 on page 49 Reentrant Programs The V system allows the same program to be executed concurrently by multiple pro gram tasks That is the program can be reentered while it is already executing This allows different tasks that are running concurrently to use the same general purpose subroutine To make a program reentrant you must observe a few general guidelines when writing the program e Global variables can be read but must not be modified e Local variables should not be used Only automatic variables and subroutine arguments can be modified In special situations local variables can be used and global variables can be modified but then the program must explicitly provide program logic to interlock access to these vari ables The TAS real valued function may be helpful in these situations See the V Lan gua
137. ary instructions When an OPEN I or CLOSE I instruction is issued one solenoid is activated and the other is released To completely relax both solenoids use the instruction RELAX or RELAXI Use the system parameter HAND TIME to set the duration of the motion delay that occurs during an OPENI CLOSEI or RELAX instruction Use the function HAND to return the current state of the gripper Continuous Path Trajectories When a single motion instruction is processed such as the instruction MOVE pick the robot begins moving toward the location by accelerating smoothly to the commanded speed Sometime later when the robot is close to the destination location pick the robot will decelerate smoothly to a stop at location pick This motion is referred to as a single motion segment since it is produced by a single motion instruction Motion Control Instructions 129 When a sequence of motion instructions is executed such as MOVE loc 1 MOVE loc 2 the robot begins moving toward loc 1 by accelerating smoothly to the commanded speed just as before However the robot will not decelerate to a stop when it gets close to loc 1 Instead it will smoothly change its direction and begin moving toward loc 2 Finally when the robot is close to loc 2 it will decelerate smoothly to a stop at loc 2 This motion consists of two motion segments since it is generated by two motion
138. as edited most recently The following rules govern the program list and its pointers e WhenaSEE monitor command is entered one of the following occurs a Ifa program name is specified the new program name is added at the top of the program list b If no program name is specified and no program task has stopped execut ing since the last edit session the program list is not changed and the pro gram at the top of the list the last program edited is opened c If no program name is specified and a program task has stopped executing since the last edit session that program is added to the top of the program list and is displayed for editing When a SFE program instruction is executed a temporary program list is cre ated for that editing session The list initially includes only the current program name The list is deleted at the end of the editing session e Whenever a program not already on the list is edited during an editing session for example pressing the New F2 or Go To F3 key the new name is added at the top of the program list and the home pointer is moved to the entry for the previous program edited e Retrieve S F3 rotates the program list so the top entry moves to the bottom and all the other entries move up one position Then the top program is dis played for editing and the home pointer is positioned at the first entry below the top of the list The H command advances the home pointer
139. assed to the next highest task with a pro gram to run Since task 0 is waiting on a SET EVENT the next task is task 1 Task 2 issues a SET EVENT to task 0 and runs until the end of a time slice at which time task 0 runs Tasks 0 and 2 have the same priority so they swap execution If two tasks with equal priority are ready to run the least recently run task runs O prog c waits for a disk I O operation to complete The next highest prior ity task is 2 which runs until the I O operation completes and task 0 becomes the least recently run task prog_a completes passing control to task 2 L6 prog c completes passing control to task 1 Notice that unless both task 0 and task 2 are waiting or do not have a program to run or task 0 or task 2 RELEASES to task 1 task 1 is effectively blocked from execution Program Priority a o o 10 1 millisecond time slices task O running prog_a task priority 20 Scheduling of Program Execution Tasks 33 task waiting task running task 1 running prog_b task priority 10 One Vt Major Cycle Figure 1 5 Priority Example 1 The numbers in this example are referenced in the text on page 32 34 Chapter 1 Programming V 1 10 Default Task Configuration System Task Configuration The Adept V system has a number of internal tasks that compete with appli
140. assumed each time the V system is booted from disk After the system is booted the TERMINAL system parameter can be set to specify a different terminal type The default terminal type and communication characteristics of the serial line are set with the configuration program in the file CONFIG_C V2 on the Adept Utility Disk Terminal I O 143 Input Proc essing Terminal input is buffered by the system but is not echoed until it is actually read by the V monitor or by a program A maximum of 80 characters can be received before V begins to reject input When input is being rejected V beeps the terminal for each charac ter rejected On input V may intercept special characters Ctrl O Ctrl Q and Ctrl S and use them to control terminal output They cannot be input even by the GETC function Their func tions are shown in the table below Char Decimal Function Ctrl O 15 Suppress or stop suppressing output Ctrl Q 17 Resume output suspended by Ctrl S Ctrl S 19 Immediately suspend terminal output When Ctrl O is used to suppress output all output instructions behave normally except that no output is sent to the terminal Output suppression is canceled by typing a second Ctrl O by V writing a system error message or by a terminal read request Other special characters are recognized by the terminal input handler when processing a PROMPT or READ instruction or when reading a monitor command However these character
141. ate an object VPICTURE cam VLOCATE cam 2 IF VFEATURE 1 THEN GCOLOR vlun 1 GTRANS vlun 2 GTYPE vlun DX vis loc ELSE GCOLOR vlun 3 GTRANS vlun 0 GTYPE vlun 100 END Detach frees up the commu DETACH vlun 100 IF IOSTAT vlun lt 0 THEN TYPE Check for errors ERROR IOSTAT vlun 190 Chapter 9 Graphics Programming 9 8 Additional Graphics Instructions Table 9 1 lists the different graphics instructions See the V Language Reference Guide for complete details on using these instructions Ta ble 9 1 List of Graphics Instructions Command Action GARC Draw an arc or circle in a graphics window GCHAIN Draw a chain of points GCLEAR Clear an entire window to the background color GCLIP Constrain the area of a window within which graphics are displayed GCOLOR Set the foreground and background colors for subsequent graphics in structions GCOPY Copy one area of a graphics window to another area in the window GFLOOD Flood an area with foreground color GICON Allows you to display icons on the screen You can access the predefined Adept icons or use your own icons created with the Icon Editor see the Instructions for Adept Utility Programs GLINE Draw a line GLINES Draw multiple lines GLOGICAL Set the drawing mode for the next graphics instruction Useful for eras ing existing graphics
142. atement 88 Character set ASCII 231 graphics 236 CHR 99 CLEAR EVENT 93 CLOSE 128 136 configuring digital signals for 128 CLOSEI 128 136 COARSE 132 133 136 COM Binary Operator 75 Commands debugger editor mode 55 57 execution control 58 function key 57 monitor mode 57 58 SEE editor extended 47 Comment program 18 Communication with the MCP 192 Communications DDCMP protocol 163 Kermit protocol 166 protocol DDCMP 163 Kermit 166 serial 159 Concatenation string 75 Conditional branch instructions 86 CONFIG 136 CONFIG_R V2 and hand signals 128 Constants ASCI 65 logical 67 Continuous path breaking 129 Continuous path trajectories 128 130 Control characters 8 external device 227 robot 16 Control structures 78 95 CASE VALUE OF 88 DO UNTIL 90 FOR 89 GOTO 78 IF THEN ELSE 87 looping 89 multi branching 88 WHILE DO 92 Conventions used in this manual 6 Conveyor belt operations 208 Index 245 Conveyor tracking 208 217 Coordinate sytems 114 Coordinates tool 134 Copy program lines 39 to attach buffer 39 Copy buffer 39 pasting from 39 SEE editor 16 Copying program lines 39 COS 101 CP 110 136 CP system switch 129 CPOFF 136 CPON 136 CR LF suppressing to the MCP 193 Ctrlkey 6 Ctrl B 58 60 Ctrl E 58 Ctrl G 58 Ctrl N 58 60 Ctrl O 8 Ctrl P 59 60 Ctrl Q Ctrl R Ctrl S Ctrl U Ctrl W Ctrl X 59 Ctrl Z 8 59 Cursor movement keys 38 Customer service assistance phone numbers 9 CYCLE END 93 oo
143. ations All I O requests to a disk device are made to a file on that device A disk file is a logical collection of data records on a disk Each disk file has a name and all the names on a disk are stored in a directory on the disk The FDIRECTORY monitor command displays the names of the files on a disk LA variable length record is a text string terminated by a CR LF ASCII 13 ASCII 10 152 Chapter 8 Input Output Operations A disk file can be accessed either sequentially where data records are accessed from the beginning of the file to its end or randomly where data records are accessed in any order Sequential access is simplest and is assumed in this section Random access is described later in this chapter Opening a Disk File Before a disk file can be opened the disk the file is on must be ATTACHed The FOPEN_ instructions open disk files and file directories These instructions associate a LUN with a disk file Once a file is open the READ GETC and WRITE instructions access the file These instructions use the assigned LUN to access the file so multiple files may be open on the same disk and the I O operations for the different disk files will not affect each other The simplified syntax for FOPEN_ is FOPEN_ lun file_spec where lun logical unit number used in the ATTACH instruction file spec file specification in the form unit path filename ext unit is an optional disk unit name The s
144. ator 72 Assignment operator 72 244 V Language User s Guide system prompt 20 Asterisk prompt 20 Asynchronous processing 27 ATAN2 101 ATTACH 171 graphics window 176 with the MCP 192 Attach buffer 39 SEE editor 16 Attaching disk devices 151 I Odevices 148 logical units 148 program lines 39 robot 16 with Copy 39 AUTO 69 Automatic variables 69 B BAND Binary Operator 75 BASE 135 Battery backup and recovery from power failure 82 Battery backup module 82 BCD 101 BELOW 135 BELT 110 216 system switch 209 Belt calibration 209 encoder 211 tracking 208 variable 209 window 212 Belt encoder offset 212 Belt encoder scaling factor 212 Belt instructions BELT 216 BELT MODE 217 BSTATUS 216 DEFBELT 216 SETBELT 216 WINDOW 216 Belt tracking 208 217 BELT MODE 107 217 BELT CAL V2 209 BELTMODE 212 Binary Operators BAND 75 BOR 75 BXOR 75 COM 75 Binary value representing 66 BITS 171 Blankline 18 Boolean expressions 86 Boolean values 67 BOR Binary Operator 75 BPT 60 BRAKE 83 133 136 Branching instruction conditional 86 GOTO 78 BREAK 83 133 136 Breaking continuous path 129 Breakpoint 60 BSTATUS 216 Buffer copy 39 pasting to 39 Buffer attach 39 Button modes MCP 193 Buttons 182 BXOR Binary Operator 75 C CALIBRATE 136 CALL 79 93 passing variables with 25 CALL by reference 25 CALL by value 25 CALLS 79 93 CASE 93 Case letter case sensitivity 111 Case sensitive text searches 48 CASE St
145. ble 6 2 Table 7 1 Table 8 1 Table 8 2 Table 8 3 Table 9 1 Table 10 1 Table C 1 Table C 2 Stack Space Required bya Subroutine o System Task Prioriti S 2 0 es Default Task Priorities ee Cursor Movement Keys With A SeriesKeyboard Cursor Movement Keys With Wyse Terminal CursorMovement in Command Mode SEE Editor Command Mode Operations 4 4 Integer Value Representation 0 0200 Mathematical Operators 2 0 2 ooo Relational Operators o o ooo Logical Operators rs Bitwise Logical Operators o o o o o o ooo Orderof Operator Evaluation o oo e Program Control Operations sasaaa aaa String Related Functions 20 ooo Numeric Value Functions saasaa aaa ee Logical Functions 2 es System Control Functions scra ree iae e ce ee Basic System Parameters 0 o es Basic System Switches o o o o o oo oooooo ee Motion Control Operations leen Disk Directory Format ees Standard DDCMP NAK Reason Codes sss System Input Output Operations o o o List of Graphics Instructions o o ooo e Pendant Control Codes auauua ccoo ASCIIGortrol Values rm E A a HC S FR AdeptCharacterSet o o Introduction Compatibility o
146. bsequent lines is not consid ered Thus for example Redraw S F6 ignores an un closed line when redrawing the display In some cases closing a line will cause its length to be increased because of abbreviation expansion and line indents If the expanded line would be longer that the maximum line length allowed an error message will be displayed and you will be prevented from moving off the long line You will then have to shorten the line break it into two or more pieces or press Undo F6 to restore the previous version of the line Syntax is also checked when a line is closing If an error is detected the editor normally marks the line as a bad line by placing a in column 1 Programs 44 Chapter 2 The SEE Editor and Debugger containing bad lines cannot be executed Thus you will have to eliminate all the bad lines in a program before you will be able to execute it You can use the editor s string search feature to search through a program for question marks indicating bad lines NOTE The editor provides a command AUTO BAD that can be used to tell the editor you want to be forced to correct bad lines as soon as they are detected The SEE Editorin Command Mode In addition to the key lists in Tables 2 1 and 2 1 the key strokes listed in the following table will move the cursor when the editor is in command mode Table 2 3 Cursor Movement in Command Mode Key Action B Bum
147. c Data 67 Location Data Types llll es 67 Transfoimna MINS tr ausi eR bos S EA VERE b WS sois 68 Precision PONES xke deu ar ecole nadie 68 AnayS cieta wie e do RAPERE dtu ee dee E etu S 68 Vanable Classes uno laeti bue nate inei kUI 69 Global Vanabl s cocoa Rok uec ea Oe ee ALE ES 69 LocalVanables RR Rs 69 Automatic Variables ss 69 Scope of Variables eee 70 Variable Initialization RR BB 71 Operators oss nb aue EEG EU Ue Ed di IE uS 72 Assignment Operator aa 72 MathematicalOperators ouaaa aaa 72 Relational Operators dec rita RR Ae ei aE PA uu tas 73 Logical Operators 1 ee 74 Bitwise Logical Operators auaa o oo 75 Sting Operator aa ee 75 OrderofEvaluation 76 64 Chapter 3 Data Types and Operators 3 1 Intoduction This chapter describes the data types used by V Dynamic Data Typing and Allocation V does not require you to declare variables or their data types The first use of a variable will determine its data type and allocate space for that variable You can create variables and assign them a type as needed The program instruction real var 13 65 will create the variable real var as a real variable and assign it the value 13 65 if the real var had already been created the instruction will merely change its value Numeric string and transfo
148. can line 3 d 234 Appendix C Character Sets Ta ble C 2 Adept Character Set Continued Dec Value Hex Value Description Font 1 Fonts 2 3 4 5 6 017 11 scan line 6 i 018 12 scan line 9 E 019 13 scan line 12 020 14 scan line 15 021 15 left T bar E 022 16 right T bar 7 023 17 bottom T bar T 024 18 top T bar 7 025 19 vertical bar 026 1A less than or equal to 6 027 1B greater than or equal to 028 1C pi lowercase Y 029 1D not equal to 030 1E sterling 031 1F centered dot 032 20 space 033 21 exclaim 034 22 double quote i i 035 23 pound 036 24 dollar sign 037 25 percent 038 26 ampersand 039 27 single quote 040 28 Open parens 041 29 close parens 042 2A asterisk ed 043 2B plus 044 2C comma j 045 2D hyphen Ta ble C 2 Adept Character Set Continued Adept Character Set 235 Dec Value Hex Value Description Font 1 Fonts 2 3 4 5 6 046 2E period 047 2F slash 048 30 Zero 0 0 049 31 one 1 1 050 32 two 2 2 051 33 three 3 3 052 34 four 4 4 053 35 five 5 5 054 36 six 6 6 055 37 seven 7 7 056 38 eight 8 8 057 39 nine 9 9 058 3A colon 059 3B semi colon 060 3C less than lt lt 061 3D equal to 062 3E greater
149. cation user program tasks for time within each time slice On motion systems the Vt trajectory generator runs as the highest priority task in slice 0 and continues through as many time slices as necessary to com pute the next motion device set point On motion systems the CPU running servo code will run the servo task at interrupt level every 1 or 2 milliseconds The V system tasks run according to the priorities shown in Table 1 2 Description of System Tasks The system tasks and their functions are Trajectory Generator Terminal Graphics Monitor Network DDCMP Kermit Pendant Disk Driver Serial I O Vision Communications Vision Analysis Servo Communications Compute the series of set points that make up a robot motion Refresh the terminal or graphics monitor display Service user requests entered at the monitor window monitor com mands and responses to system prompts Handle implementation of DDCMP protocols for serial lines config ured as DDCMP lines Handle implementation of Kermit protocols for serial lines configured as Kermit lines Handle manual control pendant I O Handle requests for I O to the hard and floppy disk drives Service serial I O ports Communicate with the VIS board Evaluate vision commands Communicate with the servo interrupt routines or the VJI or VMI boards 1 The frequency at which the servo tasks interrupts the major cycle is set with the contr
150. cation of the robot at the occurrence of the last external trigger LATCHED RF Return the status of the external trigger and of the information it causes to be latched LEFTY PI Request a change in the robot configuration during the next motion so that the first two links of aSCARA robot resemble a human s left arm see RIGHTY MMPS CF Specify the units for a SPEED instruction as millimeters per second PI Program Instruction RF Real Valued Function TF Transformation Function S Switch P Parameter PF Precision Point Function SF String Function CF Conversion Factor 138 Chapter 7 Motion Control Operations Ta ble 7 1 Motion Control Operations Continued Keyword Type Function MOVE PI Initiate a joint interpolated robot motion to the position and orientation described by the given location MOVES PI Initiate a straight line robot motion to the position and orientation described by the given location MOVEF PI Initiate a three segment pick and place joint interpolated robot motion to the specified destination moving the robot at the fastest allowable speed MOVESF PI Initiate a three segment pick and place straight line robot motion to the specified destination moving the robot at the fastest allowable speed MOVET PI Initiate a joint interpolated robot motion to the position and orientation described by the given location and simulta
151. ce out program steps to make them easier to read When only the comment element of a program step is present the step is called a comment line Comments are useful to describe what the pro gram does and how it interacts with other programs Use comments to describe and explain the intent of the sections of the programs Such internal documentation will make it easier to modify and debug pro grams Format of Programs 19 The example programs in this manual and the utility programs provided by Adept with your system provide examples of programming format and style Notice that Adept pro grams contain numerous comments and blank lines When program lines are entered extra spaces can be entered between any elements in the line The V editors add or delete spaces in program lines to make them conform with the standard spacing The editors also automatically format the lines to uppercase for all key words and lowercase for all user defined names When you complete a program line by entering a carriage return moving off a line or exiting the editor the editor checks the syntax of the line If the line cannot be executed an error message is output Certain control structure errors are not checked until you exit from the editor or change to editing a different program If an error is detected at that time an error message will be output and the program will be marked as not executable Error checking stops at that point in the program
152. ched device that is not file oriented RESET PI Turn off all the external output signals SETDEVICE PI Initialize a device or set device parameters The actual operation performed depends on the device referenced SIG RF Return the logical AND of the states of the indicated digital signals SIG INS RF Return an indication of whether or not a digital I O signal is configured for use by the system or whether or not a software signal is available in the system SIGNAL PI Turn on or off external digital output signals or internal software signals TYPE PI Display the information described by the output specifications on the system terminal A blank line is output if no argument is provided PI Program Instruction RF Real Valued Function P Parameter SF String Function Summary of I O Operations Table 8 3 System Input Output Operations C ontinued 173 Keyword Type Function WRITE PI Write a record to an open file or to an attached device that is not file oriented PI Program Instruction RF Real Valued Function P Parameter SF String Function Graphics Programming Creating Windows ATACH Instruction FOPEN Instruction FCLOSE Instruction FDELETE Instruction DETACH Instruction Custom Window Example Monitoring Events GETEVENTInstruction Building a Menu Stuctur
153. coder counter value or the rate of change of the encoder counter value Window Testing The following function allows an application program to incorporate its own specialized working region strategy independent of the strategy provided as an integral part of the Vt conveyor tracking system WINDOW Real valued function that indicates where a belt relative location is or will be at some future time relative to a belt window Status Information The following function indicates the current operating status of the moving line software BSTATUS Real valued function that returns bit flags indicating the status of the moving line software System Switch The switch BELT enables disables the operation of the moving line software See the description of ENABLE DISABLE and SWITCH for details on setting and displaying the value of BELT BELT This switch must be enabled before any conveyor tracking processing begins System Parameters Sample Programs 217 The following parameter selects alternative modes of operation of the belt window testing routines See the description of PARAMETER for details on setting and displaying the paramet er values BELT MODE Bit flags for selecting special belt window testing modes of opera tion 11 5 Sample Programs The following program is an example of a robot task working from a conveyor belt The task consists of the following steps 1 2 3 4 Wait for a signal tha
154. coder variables contained in this final equation will be described in later sections The Belt Enc oder Two belt encoders are supported by the conveyor tracking feature When specified as a component of a belt variable these encoders are referred to as number 1 and number UDE Each belt encoder generates pulses that indicate both the distance that the belt has moved and the direction of travel The pulses are counted by the belt interface and the count is stored as a signed 24 bit number Therefore the value of an encoder counter can range from 22 1 8 388 607 to A 8 388 608 For example if a single count of the encoder corresponds to 0 02 millimeters 0 00008 inch of belt motion then the full range of the counter would represent motion of the belt from approximately 167 meters 550 feet to 167 meters 550 feet After a counter reaches its maximum positive or negative value its value will roll over to the maximum negative or positive value respectively This means that if the encoder value is increasing and a rollover occurs the sequence of encoder counter values will be 8 388 606 8 388 607 8 388 608 8 388 607 As long as the distance between the work space of the robot and the nominal transformation of the belt is within the distance that can be represented by the maximum encoder value V application programs normally do not have to take into account the fact that the counter will periodically roll o
155. controller If your system includes an Adept robot also have the serial number of the robot The serial numbers can be determined by using the ID command see the V Operating System User s Guide 10 Introduction Adept Bulletin Board Service Adept maintains a bulletin board service for Adept customers Adept posts application hints and utilities to this bulletin board and users may post their own hints and applica tion notes Other than long distance charges there is no charge for access to the bulletin board The BBS number is 203 264 5590 The first time you call you will be able to set up an account right from the BBS If you have any questions call 800 232 3378 and ask about the BBS Programming V Creating a Program 11 llle 12 Program and Variable Name Requirements sss 12 The Editing Window ee 12 Editing Modes caine vee e soft Cera e RESET B ta TRIP EIE 12 Using the Editor sous LEER ae dert Eras 15 Entering New Linesof Code een 15 Bating Athe EdIOF aa exte rra Res ER erf ORCI TERE E Ted 15 Vi Program Types sls 16 Executable Programs ees 16 GeneralPrograms es ens 17 Fomatof Programs ee 18 Progra MNES aAa cos o due S icem d e als tote Ge aga 18 Program Organization lees 19 Program Variables ille ns 19 Executing Programs lllll les 20 Selecting a Program Task l
156. cu tion loops remain STOP terminates the current program RUN HOLD Button Execution of program task 0 can also be controlled with the RUN HOLD button on the manual control pendant When a program is executing and the RUN HOLD button on the pendant is pressed program execution is suspended If the keyswitch on the optional front panel or on a remote front panel is set to PENDANT program execution will resume if the RUN HOLD button is held down but execution will stop again when the button is released Normal program execution can be resumed by pressing the PROGRAM START button on the optional front panel the system switch RETRY must be enabled If the keyswitch on the optional front panel or on a remote front panel is set to TERMINAL program execution can be resumed by entering a PROCEED or RETRY monitor command at the system terminal Subroutines There are three methods of exchanging information between programs The first method is with global variables Simply use the same variable names in the dif ferent programs Unless used carefully this method can make program execution unpre dictable and hard to debug It also makes it difficult to write generalized subroutines because the variable names in the main program and subroutine must always be the same The second method is with the internal program signals known as soft signals These are digital software switches whose state can be read and set by all task
157. d for different input output ranges The actual input and output voltages are determined by setting on the AIO mod ule Regardless of the input output range selected the AIO IN function returns a value in the 1 0 to 1 0 range and AIO OUT instruction expects a value in the range 1 0 to 1 0 Additionally modules can be configured for differential input which reduces the maxi mum number of input channels to 128 See the Adept MV Controller User s Guide for details on installing and configuring analog I O boards The instruction analog value AIO IN 1004 will read the current state of analog input channel 4 The instruction AIO OUT 2 0 9 will write the value 0 9 to analog output channel 2 The instruction IF AIO INS 4 THEN AIO OUT 4 0 56 END will write to output channel 4 only if output channel 4 is installed Board 1 Board 2 Board 3 Board 4 in 1001 1032 in 1033 1064 in 1065 1096 in 1097 1128 dif 1001 1016 dif 1033 1048 dif 1065 1080 dif 1097 1112 out 1 4 out 5 8 out 9 12 out 13 16 Board 5 Board 6 Board 7 Board 8 in 1129 1160 in 1161 1192 in 1193 1224 in 1225 1256 dif 1129 1144 dif 1161 1176 dif 1193 1208 dif 1225 1240 out 17 20 out 21 24 out 25 28 out 29 32 Figure 8 1 Analog I O Board Channels T Analog I O boards can be configured for differential input rather than single ended input Differential input reduces the number of channels on a single board from 32 to 16
158. d limits defined by the SETDEVICE instruction affect the velocity and position values returned The syntax for this function is D EVICE 0 unit error select The value returned depends upon the value of the select parameter as described below select Description 0 Read Hardware Status The error status of the encoder unit is returned as a 24 bit value The valid error bits for this device are listed below The corresponding error listed is the one V would report if the error occurred while tracking a belt encoder Bit Bit Mask Corresponding Error Message and Code 19 H040000 Lost encoder sync 1012 20 AH080000 Encoder quadrature error 1013 21 AH100000 No zero index 1011 Only bit 20 for encoder quadrature error is detected by the error parameter of the DEVICE function to generate an error 1 Read Position The current position of the encoder in millimeters is returned subject to the scale factor offset and limits defined by the SETDEVICE instruction The value returned is computed by position scale encoder offset position MAX position lower_limit position MIN position upper_limit 2 Read Velocity The current value of the encoder velocity in millimeters per second is returned subject to the scale factor defined by the SETDEVICE instruction The value returned is computed by velocity scale encoder_velocity 3 Read Predicted Position The predicted position of the e
159. d manually when the amber HIGH POWER light on the front of the controller is illuminated When this light is lit robot motion can be initiated from the terminal or the manual control pendant If you enter the workcell when this light is illuminated press the MAN HALT button on the manual control pendant This will pre vent anyone else from initiating unexpected robot motions from the terminal keyboard Other Computer Controlled Devices In addition these systems can be programmed to control equipment or devices other than the robot As with the robot the program controlling these devices may cause them to operate at times not anticipated by personnel Make sure that safeguards are in place to prevent personnel from entering the workcell when the blue PROGRAM RUNNING light on the front of the controller is illuminated WARNING Entering the robot workcell when either the amber HIGH POWER or the blue PROGRAM RUNNING light is illuminated can result in severe injury Adept Technology recommends the use of additional safety features such as light curtains safety gates or safety floor mats to prevent entry to the workcell while HIGH POWER is enabled These devices may be connected using the robot s remote emergency stop cir cuitry see the controller user s guide 6 Introduction Notations and Conventions This section describes various notations used throughout this manual and conventions observed by the V system Keyboard Keys
160. d to return the text of an error number The code line is TYPE SERROR IOSTAT lun Managing Windows Windows can be e Hidden but not deleted A hidden window is removed from the screen but not from graphics memory and it can be retrieved at any time FSET glun NODISPLAY Hide a window FSET glun DISPLAY Redisplay a window e Deselected sent behind the parent s window stack FSET glun STACK 1 e Selected brought to the front of the window stack FSET glun STACK 1 If you will not be reading events from a window open it in write only mode to save mem ory and processing time Only the task that opened a window in read write mode can read from it monitor events Multiple tasks can write to an open window A second task can write to an already open window by executing its own ATTACH and OPEN for the window The logical units numbers need not match but the window name must be the same If a task has the win dow Test open other tasks can write to the window by ATTACH lun 1 4 GRAPHICS FOPEN lun 1 Test MAXSIZE 200 200 WRITEONLY 188 Chapter 9 Graphics Programming 9 7 Communicating With the System Windows The Adept system has three operating system level windows the main window the mon itor window and the vision window on systems with the AdeptVision VME option The Main Window You can place menu options
161. des The program debugger has two modes of operation Use the Edit F11 and Debug S F11 keys or Ctrl E to change modes Monitor mode In this mode the program in the edit window is accessed in read only Editor mode mode and all keystrokes are interpreted as system monitor commands System and program output is displayed in the debug window While in monitor mode the program displayed in the edit window is accessed in read only mode As described in a later section most of the keyboard function keys perform the same functions as with the SEE edi tor This is the initial mode when the debugger is invoked See the section Debug Monitor Mode Keyboard Commands on page 58 for a descrip tion of how monitor mode is used As its name indicates this mode enables full editing access to the pro gram in the editor window All the features of the SEE editor can be used in this mode NOTE Programs that have been loaded from disk files with the read only attribute cannot be accessed in editor read write mode 56 Chapter 2 The SEE Editor and Debugger Debugging Programs The basic strategy for debugging a program is 1 5 6 7 Invoke the program debugger with the DEBUG monitor command the DEBUG editor extended command or the Debug S F12 key Initiate execution of the program usually with the PRIME or XSTEP monitor commands This step can be performed before or after the debugger is initi ated
162. ding motions to and from the belt all motions must be of the straight line type Thus APPROS DEPARTS MOVES and MOVEST can be used but APPRO DEPART DRIVE MOVE and MOVET cannot Motion relative to a belt is terminated by having the robot move to a location that is not defined relative to the belt variable or when a belt window violation occurs 11 3 Basic Programming Concepts This section describes the basic concepts of the Conveyor Belt Tracking feature First the data used to describe the relationship of the conveyor belt to the robot is presented Then a description of how belt relative motion instructions are specified is given Finally a description is presented of how belt relative locations are taught The V operations associated with belt tracking are disabled when the BELT system switch is disabled Thus application programs that use those operations must be sure the BELT switch is enabled Belt Variables The primary mechanism for specifying motions relative to a belt is a Vt data type called a belt variable By defining a belt variable the program specifies the relationship between a specific belt encoder and the location and speed of a reference frame that maintains a fixed position and orientation relative to the belt Alternatively a belt variable can be thought of as a transformation with a time varying component that defines the location of a refer ence frame fixed to a moving conveyor As a convenience more th
163. down the list and displays the name of the program at the new position The Alt H command switches to editing the program marked by the home pointer that program is moved to the top of the list and the home pointer is moved to the entry for the previous program edited If the home pointer has not been explicitly moved Alt H opens the previ ously edited program The program list is cleared when the ZERO monitor command is processed Basic SEE Editor Operations 43 Special Editing Situations You cannot modify the PROGRAM argument list or an AUTO instruction while the program is present on a task execution stack A program is on the execution stack if it has been executed in that task since the last KILL or ZERO instruc tion The error message Invalid when program on stack will be displayed To edit the line exit the editor and remove the program from all the execution stack s in which it appears See the STATUS monitor command for information about how to examine the execution stacks and the KILL monitor command for information on how to clear a stack If you enter a line of code that is longer than 80 characters the portion of the line longer than 80 characters will not be displayed until you move the cursor along the line or make a change to the line Then the editor temporarily wraps the line and overwrites the next line on the screen The temporarily overwritten line will be redisplayed as soon as
164. ds on the debugger command line to place the breakpoints and to specify expressions to be evaluated when the breakpoints are encountered If you do not need to have an expression evaluated at a breakpoint you can use the debugger Ctrl B command to set a pausing breakpoint that is one that will cause exe cution to stop To use the Ctrl B command you must position the typing cursor in the edit window so it is on the instruction of interest Once the cursor is positioned you can type Ctrl B to have a breakpoint placed at that instruction NOTE You can use Go To F3 and other editor commands to change the program in the edit window Thus you can move to any program you want before typing Ctrl B to set a breakpoint You do not have to explicitly change back to having the edit window show the program currently stopped The debugger will automatically display the appropriate program the next time execution stops for any reason When program execution stops at a breakpoint you can use the debugger Ctrl N com mand to cancel the breakpoint at the instruction Or you can leave the breakpoint set In either case you can type Ctrl P when you are ready to have program execution resume NOTE A BPT command with no parameters will clear the breakpoints in all the programs in the system memory except those programs that are executing Entering a BPT command with no parameters in debug monitor mode will clear breakpoints in the current progra
165. e Menu Example Creating Buttons GPANEL Instruction Button Example Creating a Slide Bar GSLIDE Example Graphics Programming Considerations Using IOSTAT Managing Windows Communicating With the System Windows The Main Window The MonitorWindow The Vision Window Additional Graphics Instructions 176 176 176 177 177 177 177 178 178 180 182 182 184 186 187 188 188 188 190 176 9 1 Chapter 9 Graphics Programming The instructions in this chapter require an Adept A series controller NOTE For clarity in presenting the programming principles examples in this chapter leave out the calls to IOSTAT that are critical to detecting and responding to I O errors Creating Windows V communicates to windows through logical units with logical unit numbers LUNs 20 to 23 reserved for window use Each task has access to its own set of four LUNs The basic strategy for using a window or any of the graphics instructions is 1 ATTACH to a logical unit FOPEN a window on the logical unit Perform the window s tasks or graphics operations 2 3 4 FCLOSE the window 5 FDELETE the window 6 DETACH from the logical unit ATIACH Instruction The ATTACH instruction sets up a communications path so a window can be written to and read from
166. e ates Bh ne te ee te Be a Bee 82 REACTE and PowerFailures ee ees 82 HALT STOP PAUSE cursos pa ia a a RP d 83 BRAKE BREAK DELAY io a dl XL US 83 Additional Program Interupt Instructions ooo 83 Program Intemupt Example een 84 4 4 Logical Boolean Expressions o 86 45 Conditional Branching InstuctionS 86 IFGO TO ot eae Sue Ra e a RAMS adn ns eit f 86 Es HEN SEESE sosa Eastside os 87 CASE VALUEOF rn 88 Example x t sem ates ahi a eG PR To s dca Peste URS on aa Se rts et 88 Table of Contents 46 Looping Stuctures o o FOR tia baa Re aw a A oe bare ea Awa dates ws EXamples erratas vis sheets te aA he fia dd DO UNTIL ae ke ee cake eee EN e ea wea SS Mea eee ES WHIESDOS kisah celta eg res eC e RITU T ols is 4 7 Summary of Program Control Keywords 48 Controlling Programs in Multiple CPU Systems nus eof Let 5 1 Using Functions ls lille Variable Assignment Using Functions o o o o o o o ooo Functions Used in Expressions o o o o ooo eee Functionsas Argumentsto a Function o o eae 52 String Related Functons o o o o o oo oo Examples of String Functions llle 5 3 Location Motion and Extemal EncoderFunctions Examplesof Location Functions cres 5 4 Numeric Value F
167. e buttons can be monitored in toggle mode on or off The state of the button is changed each time the button is pressed c The keys can be monitored in level mode The state of the button is considered on only when the button is held down The PENDANT function is used to detect button presses in these modes The KEYMODE instruction is used to set the button behavior Using READ With the Pendant The READ instruction accepts input from the pendant Data Entry Buttons 1 2 3 4 5 6 7 8 9 0 A READ instruction expects a lt CR LF gt to indicate the end of data entry On the MCP this sequence is sent by the REC DONE button similar to the Enter or Return key on a normal keyboard The DEL button behaves like the Backspace key on a normal keyboard All other pendant buttons are ignored by the READ instruction Note that the predefined function buttons are active and may be used while an attached program is waiting for input 194 Chapter 10 Programming the MCP The instruction line READ 1 response will pause the program and wait for input from the pendant The user must signal the end of input by pressing the REC DONE button The input will be stored in the string vari able response The input can be stored as a real variable but the and buttons must not be used for input Detecting Pendant Button Presses Individual MCP button p
168. e instruction ATTACH dlun 4 DISK will attach to an available disk logical unit and return the number of the logical unit in the variable dlun which can then be used in other disk I O instructions If the device name is omitted from the instruction the default device for the specified LUN is used Adept recommends that you always specify a device name with the ATTACH instruction The device SYSTEM refers to the device specified with the DEFAULT monitor command Once the attachment is made the device cannot be changed until the logical unit is detached However any of the units available on the device can be specified when open ing a file For example the V DISK units are A and C After attaching a DISK device LUN a program can open and close files on either of these disk units before detaching the LUN Disk Directories The FOPEN instructions which open disk files for reading and writing use directory paths in the same fashion as the monitor commands LOAD STORE etc Files on a disk are grouped in directories If a disk is thought of as a file cabinet then a directory can be thought of as a drawer in that cabinet Directories allow files the file folders in our file cabinet analogy that have some relationship to each other to be grouped together and separated from other files See the chapter Using Files in the V Operating System User s Guide for more details on the directory structure Disk File Oper
169. e panic buttons to turn off Robot Power Stops output to the monitor or terminal so it can be reviewed The opera tion producing the output is stopped until output is resumed by Ctrl Q Resumes output to the monitor or terminal after it has been stopped with a Ctrl S Suspends output to the monitor or terminal even though the current operation continues that is the output is lost This is useful for disre garding a portion of a lengthy output Another Ctrl O will cause the out put to be displayed again The Ctrl O condition will be canceled automatically when the current operation completes or if there is an input request from an executing pro gram Slows output to the monitor or terminal so it can be read more easily A second Ctrl W will terminate this mode and restore normal display speed The Ctrl W condition will be canceled automatically when the current operation completes or if there is an input request from an executing pro gram If typed in response to a program prompt terminates program execution with the message Unexpected end of file This is sometimes useful for aborting a program The following special control sequences are useful when entering infor mation at the system keyboard Redisplays the current input line This is useful when some output has occurred in the middle of an entry making the line difficult to read Cancels the current input line Useful if an error earlier in the line has be
170. eaction subroutine is deferred until the main pro gram priority drops Since the main program for example the robot control program normally runs at program priority zero and the minimum reaction program priority is one any reaction can normally interrupt the main program The main program priority can be raised or lowered with the LOCK program instruction and its current value can be determined with the PRIORITY real valued function When the main program priority is raised to a certain value all reactions of equal or lower prior ity are locked out When a reaction subroutine is called the main program priority is automatically set to the reaction program priority thus preventing any reactions of equal or lower program prior ity from interrupting it When a RETURN instruction is executed in the reaction program the main program priority is automatically reset to the level it had before the reaction sub routine was called For further information on reactions and program priority see the following keywords LOCK PRIORITY REACT and REACTI 28 1 9 Chapter 1 Programming V Enor Tapping Normally when an error occurs during execution of a program the program is terminated and an error message is displayed on the system terminal However if the REACTE instruction has been used to enable an error trapping program the V system will invoke that program as a subroutine instead of terminating the program that encountered the
171. ecuting Programs When V is actively following the instructions in a program it is said to be executing that program The standard V system provides for simultaneous execution of up to seven different programs for example a robot control program and up to six additional programs The optional V extensions software provides for simultaneous execution of up to 28 pro grams Execution of each program is administered as a separate program task by the system The way program execution is started depends upon the program task to be used and the type of program to be executed The following sections describe program execution in detail Selecting a Program Task Task 0 has the highest priority in the standard task configuration Thus this task is nor mally used for the primary application program For example with a robot system task 0 is normally used to execute the robot control program NOTE As a convenience when execution of task 0 begins the task always automatically selects robot 1 and attaches the robot Execution of task 0 is normally started by using the EXECUTE monitor command or by priming the program from the manual control pendant and pressing the PROGRAM START button on the optional front panel The RUN HOLD button on the manual control pendant can be held down to execute portions of the program executing as task 0 While task 0 is executing the V monitor will not display its normal dot prompt
172. ed joined using the plus sign For example Sname Adept Sincorp Inc Sconame Sname Technology Sincorp results in the variable coname having the value Adept Technology Inc 76 Chapter 3 Data Types and Operators 3 9 Order of Evaluation Expressions containing more than one operator are not evaluated in a simple left to right manner Table 3 6 lists the order in which operators are evaluated Within an expression functions are evaluated first with expressions within the function evaluated according to the table The order of evaluation can be changed using parentheses Operators within each pair of parentheses starting with the most deeply nested pair are completely evaluated accord ing to the rules in Table 3 6 before any operators outside the parentheses are evaluated Operators on the same level in the table are evaluated strictly left to right Table 3 6 Order of Operator Evaluation Operator NOT COM Unary minus MOD AND BAND OR BOR XOR BXOR lt gt lt gt lt gt Program Control Inmoduction lt i i eA a eR aS em hk A Se 78 Unconditional Branch Instructions 0 02002 ooo 78 GOTO LETT 78 GALS goon AR AE Ace b umts E de fis ase A eh ice 79 CAS A nuce eu pa Een UE a eratis oe ak ded 79 Program Intenuptinstuctions 0 0 0 0 es 80 WAM 5324 dui cence diet La ds ur audet MA
173. ed from the manual control pendant The monitor speed cannot be changed when the switch is disabled SHIFT TF Return a transformation value resulting from shifting the position of the transformation parameter by the given shift amounts SINGLE PI Limit rotations of the robot wrist joint to the range 180 degrees to 180 degrees see MULTIPLE SOLVE ANGLES PI Compute the robot joint positions for the current robot that are equivalent to a specified transformation SOLVE FLAGS RF Return bit flags representing the robot configuration specified by an array of joint positions PI Program Instruction RF Real Valued Function TF Transformation Function S Switch P Parameter PF Precision Point Function SF String Function CF Conversion Factor 140 Chapter 7 Motion Control Operations Ta ble 7 1 Motion Control Operations Continued Keyword Type Function SOLVE TRANS PI Compute the transformation equivalent to a given set of joint positions for the current robot SPEED PI Set the nominal speed for subsequent robot motions SPEED RE Return one of the system motion speed factors STATE RF Return a value that provides information about the robot system state TOOL PI Set the internal transformation used to represent the location and orientation of the tool tip relative to the tool mounting flange of the robot TOOL TF Return the value of the transformation specified in the las
174. ees 20 Program Stacks illl es 21 SackRequirements l ees 22 How of Program Execution o o occ 23 RUN HOLD Button 4 oS acta chen ERR tere ERU RV EE NUM EROR Rs 23 Subroutines lll rs 23 Argument Passing 0 2 0c 24 Prograrmi FOSA Bete A BR RE bales Mick 26 Reentrant Programs oeoa a ooo 26 AsynchronouSProcessing sss 27 Error Trappltig os uo iced eet mox Be EUR ROS Ro RUE Rosi Be E Pos Ros eei 28 Scheduling of Program Execution Tasks 28 System Timing and Time Slices llis 28 Specifying Tasks Time Slices and Priorities 0 o 28 Task Scheduling sirek e495 sux xxu Rem AS 29 Execution Priority Example ee 32 Default Task Configuration o o oco o oo oo 34 System Task Configuration saaa aaa ee 34 User Task Configuration ressa cc ee 36 12 Chapter 1 Programming V 1 1 Creating a Program V programs are created using the SEE editor This section provides a brief overview of using the editor Chapter 2 provides complete details on the SEE editor and program debugger The editor is accessed from the system prompt with the command SEE prog_name If prog_name is already resident in system memory it will be opened for editing If prog_name is not currently resident in system memory the SEE editor will open and the bottom line will ask prog_name doesn t exist Create
175. en noticed or the current input line should be ignored for some other reason How Can I Get Help 9 How Can I Get Help Within the Continental United States Adept Technology maintains a Customer Service Center at its headquarters in San Jose CA The phone numbers are Service Calls 800 232 3378 24 hours per day 7 days a week 408 433 9462 FAX Application Questions 800 232 3378 Monday to Friday 8 00 a m to 5 00 p m Pacific time 408 434 6248 FAX Training Information For information regarding Adept Training Courses in the USA please call 408 434 5024 Within Europe For European customers outside of France Adept Technology maintains a Customer Ser vice Center in Dortmund Germany The phone numbers are 49 231 75 89 40 from within Europe Monday to Friday 8 00 a m to 5 00 p m CET 49 231 75 89 450 FAX France For customers in France Adept Technology maintains a Customer Service Center in Paris France The phone numbers are 33 1 69 19 16 16 Monday to Friday 8 30 a m to 5 30 p m CET 33 1 69 32 04 62 FAX Outside Continental United States or Europe For service calls application questions and training information call the Adept customer service center in San Jose California USA 408 434 5000 408 433 9462 FAX service requests 408 434 6248 FAX application questions NOTE When calling with a controller related question please have the serial number of the
176. ents to a function but allows you to use a function as an argu ment to a function so long as the data type returned is the type expected by the function For example i SORT SOR x will result in i having the absolute value of x i D 22 2 String Related Functions 99 5 2 String Related Functions The value returned from a string function may be another string or a numeric value Table 5 1 String Related Functions Keyword Function ASC Return a single character value from within a string CHR Return a one character string having a given value DBLB Return the value of eight bytes of a string interpreted as an IEEE double precision floating point number DBLB Return an 8 byte string containing the binary representation of a real value in double precision IEEE floating point format DECODE Extract part of a string as delimited by given break characters ENCODE Return a string created from output specifications The string produced is similar to the output of a TYPE instruction FLTB Return the value of four bytes of a string interpreted as an IEEE single precision floating point number FLTB Return a 4 byte string containing the binary representation of a real value in single precision IEEE floating point format INTB Return a 2 byte string containing the binary representation of a 16 bit integer LEN Return the number of charac
177. enu bar selection and event 2 is the number from left to right of the menu bar option selected If event 1 is 1 then a selection from a pull down menu has been made and event 2 is the number of the pull down option selected You cannot use the GETEVENT instruction to specify which events to monitor It monitors all the events that are enabled for the window See descriptions of the FOPEN and FSET instructions in the V Language Reference Guide for details on using the EVENT argu ment for enabling and disabling the monitoring of various events FSET Instruction FSET is used to alter the characteristics of a window opened with an FOPEN instruction and to display pull down menus We are going to describe only the use of FSET to create the top level menu bar create the pull down menu selections below the top level menu and initiate monitoring of events The instruction for displaying a top level menu is FSET glun MENU iteml item2 iteml0 glun is the logical unit of the window the menu will be displayed in iteml iteml0 are the menu titles for a top level bar menu The items appear from left to right The instruction to display a pull down menu called when event 0 14 and event 1 0 is FSET glun PULLDOWN top_level iteml item top levels isthe number of the top level selection the pull down menu is to appear under iteml itemn are the menu items in the pull down menu The item
178. ere copied The F9 and F10 keys are used for copying and pasting program lines O This is the message line It displays various messages and prompts Using the Editor Entering New Lines of Code Once you have opened the editor and moved to insert or replace mode you can begin entering lines of code Each complete line of code needs to be terminated with a carriage return 4 If a line of code exceeds the monitor line width the editor will wrap the code to the next line and temporarily overwrite the next line Do not enter a carriage return until you have typed the complete line of code When you press after completing a line of code the SEE editor will automatically check the syntax of the line Keywords are checked for proper spelling instructions are checked for required arguments parentheses are checked for proper closing and in general the line is checked to make sure the V system will be able to execute the line of code Remember this check is solely for syntax not for program logic If the program line fails the syntax check the system will place a question mark at the beginning of the line an usually display a message indicating the problem You do not have to correct the line immediately and you can exit the editor with uncorrected pro gram lines You will not however be able to execute the program Exiting the Editor To complete an editing session and exit the editor press the F13 key on a Wyse te
179. eric constant a variable name or a mathematical expression There are some restrictions on the numeric values that are accepted by V The following rules determine how a value will be interpreted in the various situations described 1 Distances are used to define locations to which the robot is to move The unit of measure for distances is the millimeter although units are never explicitly entered for any value Values entered for distances can be positive or negative 2 Angles in degrees are entered to define and modify orientations the robot is to assume at named locations and to describe angular positions of robot joints Angle values can be positive or negative with their magnitudes limited by 180 degrees or 360 degrees depending on the usage 3 Joint numbers are integers from one up to the number of joints in the robot including the hand if a servo controlled hand is operational For Adept SCARA robots joint numbering starts with the rotation about the base referred to as joint 1 For mechanisms controlled by AdeptMotion VME see the device mod ule documentation for joint numbering 4 Signal numbers are used to identify digital on off signals They are always considered as integer values with magnitudes in the ranges 1 to 8 33 to 232 1001 to 1012 1022 to 1236 or 2001 to 2512 A negative signal number indicates an off state 5 Integer arguments can be satisfied with real values that is values with integer and f
180. es 2 Manual Overview es 2 Related Publications 0 0 0 00 es 3 Notes Cautions and Wamings 2 000 eee ees 4 Safety ssc YS ates heheh kek es ee a ee au sarta a i M 4 Reading and Training for System Users 0 a 4 System Safeguards eee 5 Computer Controled Robots lees 5 Manually Controlled Robots ills 5 Other Computer Controled Devices seen 5 Notations and Conventions o o e es 6 Keyboard Keys suana naaa 6 Uppercase and Lowercase Letters 0 oo o 6 Numeric Arguments 0 0 0 0 lens 7 OutputContolCommands 00 002 es 8 HowCanlGetHelp ee 9 Within the Continental United States o ooo 9 Service Call io a ta aia ede ey v 9 Application Questions 0 ooo 9 Training Information o o o o o ooo 9 Within Europe o o 9 Outside Continental United States or Europe 9 Adept Bulletin Board Service o o o o o ooo a 9 2 Introduction V is a computer based control system and programming language designed specifically for use with Adept Technology industrial robots vision systems and motion control sys tems As a real time system continuous trajectory computation by V permits complex motions to be executed quickly with efficient use of system memory and reduction in overall sys
181. figuration and tuning of an AdeptMotion VME system Basic use and programming of the manual control pendant Installation operation and programming of the AdeptForce VME product If your system is equipped with a robot or motion device have the device s user guide handy 4 Introduction Notes Cautions and Wamings There are three levels of special notation used in this equipment manual In descending order of importance they are WARNING If the actions indicated in a WARNING are not complied with injury or major equipment damage could result A WARNING will typi cally describe the potential hazard its possible effect and the measures that must be taken to reduce the hazard CAUTION If the action specified in the CAUTION is not complied with damage to your equipment could result NOTE A NOTE provides supplementary information emphasizes a point or procedure or gives a tip for easier Operation Safety Reading and Training for System Users Adept robot systems include computer controlled mechanisms that are capable of moving at high speeds and exerting considerable force Like all robot systems and industrial equipment they must be treated with respect by the system user Trapping Pinch Points 3 Impacts and Tra pping Points We recommend you read the American National Standard for Industrial Robot Systems Safety Requirements published by the Robotic Industries Association in conjunctio
182. for details on the different variable types In Figure 1 3 real_var_b is still being passed by reference and any changes made in the subroutine will be reflected in the calling program The subroutine cannot change any of the other variables it can make changes only to the copies of those variables that have been passed to it It is considered poor programming practice for a subroutine to change any arguments except those that are being passed back to the calling routine If in input argument must be changed we suggest you make an AUTOmatic copy of the argument and work with the copy instruction in main program CALL a_routine loc_var_a NULL real_var_a real_var_b string_var_a subroutine program header PROGRAM a_routine any_loc any_real_x any_real_y Sany_string Figure 1 3 Call by Value Values as well as variables can be passed by a CALL statement The instruction CALL a_routine loc_1 17 5 121 some string would be an acceptable call to a_routine 26 Chapter 1 Programming V Undefined Arguments If the calling program omits an argument either by leaving a blank in the argument list e g arg 1 arg 3 or by omitting arguments at the end of a list e g arg 1 arg 2 the argument will be passed as undefined The subroutine receiving the argument list can test for this value using the DEFINED function and take appropriate action Program Files Since linking and compiling
183. for the abort request to be processed V System Parameters for Kermit Two V system parameters are provided for setting communication parameters for the Kermit protocol The parameter KERMIT TIMEOUT sets the amount of time that the remote server is to wait for a response from the V system before the remote server declares a time out error and retransmits its previous message This parameter should be set to a high value less than or equal to 95 seconds when V READ or WRITE instructions performed on the Kermit line are far apart That is when there are long pauses between disk requests This can occur for example when the V program is being executed in single step mode with the program debugger The parameter KERMIT RETRY is the number of errors and retransmissions that are allowed by the local V Kermit When this number of errors is exceeded the error Too many network errors will occur When this parameter is set to a large value less than or equal to 1000 the equivalent parameter for the remote server must be set to the same value Otherwise the settings will not be effective Summary of I O Operations 171 8 11 Summary of I O Operations Table 8 3 summarizes the V I O instructions Table 8 3 System Input Output Operations Keyword Type Function AIO IN RF Read a channel from one of the analog IO boards AIO OUT PI Write to a channel on one of the
184. functions See Appendix B for details on the external encoders Examples of Location Functions The instruction rotation RZ HERE will place the value of the current rotation about the Z axis in the variable rotation The instruction dist DISTANCE HERE DEST will place the distance between the motion device s current location and its destination the value of the next motion instruction The instructions IF INRANGE loc_1 0 THEN IF SPEED 2 gt 50 THEN SPEED 50 END OVE loc 1 END will ensure loc 1 is reachable and then move the motion device to that location at a pro gram speed not exceeding 50 Numeric Value Functions 101 5 4 Numeric Value Functions The functions listed in Table 5 2 provide trigonometric statistical and data type conversion operations See Chapter 3 for additional details on arithmetic processing Table 5 2 Numeric Value Functions Keyword Function ABS Return absolute value ATAN2 Return the size of the angle in degrees that has its trigonometric tangent equal to value_1 value_2 BCD Convert a real value to Binary Coded Decimal BCD format COS Return the trigonometric cosine of a given angle DCB Convert BCD digits into an equivalent integer value FRACT Return the fractional part of the argument INT Return the integer part of the value INTB Retu
185. g Location Variables o ooo o Relative Transformations Examples of Modifying Defining a Reference Frame Location Varnables Miscellaneous Location Operations 00002000004 Motion Control Instuctions Basic Motion Operations J oint Interpolated Motion vs Straight Line Motion Safe Approachesand Departures o o ooo ooo Moving an IndividualJoint 0000 eee End Effector Operation Instru Continuous Path Trajectories GUONS 2 Eua fo eh ee AA AND Breaking Continuous Path Operation 0 0004 Procedural Motion Procedural Motion Examples anaana aaa Timing Considerations Robot Speed Motion Modifiers Tool Transformations Defining a Tool Tra nsfo matio Summary of Motion Keywords Dii A A ices Gab ITZA dis ar E a TS ITA 114 114 114 115 117 118 119 120 120 120 121 121 122 124 126 127 127 127 127 128 128 128 129 130 130 131 131 133 133 134 135 114 7 1 Chapter 7 Motion Control Operations Intoduction 7 2 A primary focus of the Vt language is to drive motion devices This chapter discusses the language elements that generate controller output to move a motion device from one loca tion to another Before we introduce the V motion instructions we should examine the V location variables and see how they
186. gana characters Font 5 is standard size and font 6 contains large characters The last column in Table C 2 shows the Katakana and Hiragana characters The Katakana characters are at ASCII 161 223 The Hiragana characters are at ASCII 136 159 and 224 255 Characters with values 0 to 31 and 127 decimal have the control meanings listed in Table C 1 when output to a serial line an ASCII terminal or the monitor window with TYPE PROMPT or WRITE instructions In files exported to other text editors or transmitted across serial lines characters 0 to 31 will generally be interpreted as having the specified control meaning The symbols shown for characters 0 to 31 and 127 in Table C 2 can be displayed only with the GTYPE instruction Characters in the extended Adept character set can be output using the CHR function For example TYPE CHR 229 will output the character to the monitor window The instruction GTYPE glun 50 50 SCHR 229 will output the same character to the window open on logical unit glun 232 Appendix C Character Sets Table C 1 ASCII Control Values Decimal Character Value Hex Value Meaning of Control Character NUL 000 00 Null SOH 001 01 Start of heading STX 002 02 Start of text ETX 003 03 End of text EOT 004 04 End of transmission ENO 005 05 Enquiry ACK 006 06 Acknowledgment BEL 007 07 Bell
187. ge Reference Guide for details Recursive Programs Recursive programs are subroutines that call themselves either directly or indirectly A direct call occurs when a program actually calls itself which is useful for some special programming situations Indirect calls are more common They occur when program A calls program B which eventually leads to another call to program A before program B returns For example an output routine may detect an error and call an error han dling routine which in turn calls the original output routine to report the error If recursive subroutine calls are used the program must observe the same guidelines as for reentrant programs see above In addition you must guarantee that the recursive calls do not continue indefinitely Otherwise the program task will run out of stack space Subroutines 27 NOTE Very strange results may occur if a non reentrant program is inadvertently called from different tasks or recursively from a single task Therefore it is good practice to make programs reentrant if possible Asynchronous Processing A particularly powerful feature of V is the ability to respond to an event such as an external signal or error condition when it occurs without the programmer having to include instructions to test repeatedly for the event If event handling is properly enabled V will react to an event by invoking a specified program just as if a CALL instruct
188. ge Reference Guide for details on these instructions Task Scheduling Tasks are scheduled to run with a specified priority in one or more time slices Tasks may have priorities from 1 to 64 and the priorities may be different in each time slice The pri ority meanings are 1 Do not run in this slice even if no other task is ready to run 0 Do not run in this slice unless no task from this slice is ready to run 1 64 Run in this slice according to specified priority Higher priority tasks may lock out lower ones Priorities are broken into the following ranges 1 31 Normal user task priorities 32 62 Used by V device drivers and system tasks 63 Used by the trajectory generator Do not use 63 or 64 unless you have very short task execution times Use of these priorities may cause jerks in robot trajectories Whenever the current task becomes inactive e g due to an I O operation a WAIT instruction or completion of the task programs V searches for a new task to run The search begins with the highest priority task in the current time slice and proceeds through that slice in order of descending priority If multiple programs are waiting to run in the task they are run according to the relative program priorities If a runnable task is not found the next higher slice is checked All time slices are checked wrapping around from slice 15 to slice 0 until the original slice is reached If no runnable tasks are encountered the V
189. gical units attaching detaching 148 Long line editing 43 Looping structures 89 Lowercase letters 6 19 LUN 147 M Macros defining 49 editing 49 Major cycle 28 MAX 101 MCP determining state of 197 level mode 195 MCP button map 197 MCP button modes keyboard 194 level 195 toggle 194 MCP control codes 198 for LCDs 198 MCP LCDs control codes 198 MCP logical unit number 192 MCP potentiometer programming 196 MCP slow button programming 196 MCP speed potentiometer programming 196 MCP MESSAGES system switch 110 MCS 94 MCS MESSAGES system switch 110 Memory required by a program 21 250 V Language User s Guide Menus creating 180 Messages controlof 110 MESSAGES system switch 110 MID 99 MIN 101 MMPS 137 MOD 72 Modes program debugger 55 Monitor task 34 Motion procedural 130 relative to belt 214 Motion control operations Motion devices and power failure 82 Motion instructions description of coordinate space 114 Mouse events monitoring 178 MOVE 127 138 MOVEF 138 MOVES 138 straight line move 127 with conveyor tracking 209 MOVESF 138 MOVEST 138 MOVET 138 Moving an individualjoint 128 Moving line feature 208 MULTIPLE 133 138 multiplication 72 114 140 N Name belt variable 209 disk file 152 parameter 106 program 12 switch 109 variable 64 NETWORK system switch 110 Network DDCMP task 34 NOFLIP 138 NONULL 132 138 NORMAL 138 Normal speed 131 NOT 138
190. h from it just as you would any other window This will free up the logical unit but will not delete the vision window You can close and detach from the vision window but you cannot delete it To preserve the vision system pull down menus open the window in write only mode FOPEN glun Vision WRITEONLY Communicating With the System Windows 189 The following example opens the vision window writes to the vision window and detaches the vision window PROGRAM label blob ABSTRACT This program demonstrates how to attach to the vision window and how to use the millimeter scaling mode of the GTRANS instruction to label a AUTO vlun cam 1 blob in the vision window Attach the vision window and get a logical unit number ATTACH vlun 4 GRAPHICS IF IOSTAT vlun lt 0 GOTO 100 FOPEN vlun Vision Open the vision window IF IOSTAT vlun lt 0 GOTO 100 Select display mode and graphics mode Display grayscale frame and graphics Take a processed picture Attempt to locate an object If an object was found Select the color black Select millimeter scaling DY vis loc Blob 3 Else if object was NOT found Select the color red Select pixel scaling 100 No object found 3 nications path VDISPLAY cam 1 1 Take a picture and loc
191. h the V FCMND instruction The following parameters can be set 1 Time before message confirmation or retransmission is attempted An acknowl edge request must have been received before this period of time or a time out occurs The default value is 3 seconds It can be set to any value from 1 to 255 seconds 2 Number of successive time outs before an unrecoverable error is signaled halt ing the protocol and aborting I O requests The default value is 8 It can be set to any value from 1 to 255 3 Number of successive negative acknowledge NAK packets that can be received before an unrecoverable error is signaled halting the protocol and aborting I O requests The default value is 8 It can be set to any value from 1 to 255 The FCMND instruction to set the parameters is as follows see V Language Reference Guide for more information on the FCMND instruction FCMND lun 501 CHR time out CHR time retry CHR nak retry where lun is the logical unit number for the serial line time out is the time out interval in seconds time retry is the successive time out maximum nak retry is the successive NAK maximum For example the instruction FCMND lun 501 CHR 2 CHR 20 CHR 8 166 Chapter 8 Input Output Operations specifies a time out interval of 2 seconds with a maximum of 20 time outs and 8 NAK retries Status The status of all DDCMP lines can be determined with the V NET monitor command which creates a d
192. he V system is planning a robot motion to a belt relative location and the destination is outside the belt window but upstream the system automatically delays motion planning until the destination is within the window However if an application program attempts to perform a motion to a belt relative destination that is out of the window at planning time or is predicted to be out by the time the destination would be reached and this destination is downstream a win dow violation condition exists Also if during the execution of a belt relative motion or while the robot is tracking the belt the destination moves outside the belt window for any reason a window violation occurs Depending upon the details of the application pro gram the program either prints an error message and halts execution or branches to a specified subroutine when a window violation occurs In order to provide flexibility with regard to the operation of the window testing mecha nism several modifications to the normal algorithms can be selected by modifying the value of the BELT MODE system parameter To assist in teaching the belt window the Adept conveyor belt calibration program con tains routines that lead the operator through definition of the required bounding transfor mations Y Nominal Transformation Upstream SE A AS ions Downstream Lower Limit Upper Llmit Belt Window Figure 11 1 Conveyor Terms 214 Chapter 11 Conveyo
193. he assembly you will have to reteach only the points that define the frame 122 Chapter 7 Motion Control Operations Examples of Modifying Location Variables Figure 7 6 shows how relative transformations work The magnitude and direction ele ments x y z but not the orientation elements y p r of an Adept transformation can be represented as a 3D vector as shown by dashed lines and arrows in Figure 7 6 The fol lowing code generates the locations shown in Figure 7 6 Define a simple transformation SET loc_a TRANS 300 50 350 0 180 0 Move to the location MOVE loc_a BREAK Move to a location offset 50mm in X 20mm in Y and 30mm in Z relative to loc_a MOVE loc a TRANS 50 20 30 BREAK Define loc b to be the current location relative to loc a HERE loc a loc b loc b 50 20 30 0 0 0 BREAK Define loc c as the vector sum of loc a and loc b SET loc c loc a loc b Loc e 350 70 320 O 190 0 Once this code has run loc b exists as a transformation that is completely independent of loc a The following instruction will move the robot move another 50mm in the x 20mm in the y and 30mm in the z direction relative to loc c MOVE loc c loc b Multiple relative transformations can be chained together If we define loc d to have the value 0 50 0 0 0 0 SET loc d TRANS 0 50 and then issue the following MOVE
194. he editor is exited detected while editing In the first mode such lines are flagged as bad lines with a question mark in column one Editing of the program can continue normally but the program will not be executable until all the bad lines are either cor rected deleted or made into comment lines In the second mode invalid lines must be corrected deleted or com mented out before the line can be closed Switches from normal program editing to use of the program debugger in its monitor mode The debugger is described in section 2 3 on page 52 Sets the size of the debug window used by the program debugger described in section 2 3 Toggles the case sensitivity of text searches In the first mode case is ignored when making text searches In the sec ond mode text searches must match upper and lower case letters exactly for a search to be successful May be abbreviated RO May be abbreviated RW Switches from debug editor mode to normal full screen program edit ing Also see the Edit F7 key In response to this command you will be shown the current size of the display and asked how many lines high you want the display to be You must specify at least seven lines Press J to retain the current setting See DSIZE above for an explanation of how the TSIZE setting affects the size of the edit and debug windows displayed by the program debugger edit window Toggle
195. he scaling factor are millimeters count This factor can be determined either directly from the details of the mechanical coupling of the encoder to the belt or experimentally by reading the encoder as the belt is moved The Adept belt calibration program supports either method of determining the encoder scaling factor If the encoder counter decreases as the belt moves in its normal direction of travel the scaling factor will have a negative value The Encoder Offset The last encoder value needed for proper operation of the moving line system is the belt encoder offset The belt encoder offset is used by V to establish the instantaneous loca tion of the belt reference frame relative to its nominal location In particular if the belt offset is set equal to the current belt encoder reading the instanta neous belt transformation will be equal to the nominal transformation The belt encoder Offset can be used in effect to zero the encoder reading or to set it to a particular value whenever necessary Unlike the encoder scaling factor which is constant for any given conveyor encoder setup the value of the belt encoder offset is variable and will usually be changed often Normally the instantaneous location of the reference frame will be established using external input from a sensory device such as a photocell or the AdeptVision system For example the VFEATURE function provided by AdeptVision returns as one of its com puted value
196. here are three unconditional branching instructions in V GOTO CALL CALLS GOTO The GOTO instruction causes program execution to branch immediately to a program label instruction somewhere else in the program The syntax for GOTO is GOTO label label is an integer entered at the beginning of a line of program code label is not the same as the program step numbers Step numbers are assigned by the system labels are entered by the programmer as the opening to a line of code In the next code example the numbers in the first column are program step numbers these numbers are not displayed in the SEE edi tor The numbers in the second column are program labels 61 62 GOTO 100 63 64 65 100 TYPE The instruction GOTO 100 got me here 66 A GOTO instruction can branch to a label before or after the GOTO instruction GOTO instructions can make program logic difficult to follow and debug especially in a long complicated program with many subroutine calls Use GOTO instructions with care A common use of GOTO is as an EXIT routine or EXIT on error instruction Unconditional Branch Instructions 79 CALL The CALL and CALLS instructions are used in V to implement subroutine calls The CALL instruction causes program execution to be suspended and execution of a new pro gram to begin When the new program has completed execution execution of the original program will resume at the instruction after the CALL inst
197. in a maxi mum delay of 1ms The controller configuration utility CONFIG_C is used to configure high speed interrupts Soft Signals Soft signals are used primarily as global flags The soft signals are in the range 2001 2512 and can be used with SIG and SIGNAL A typical use of soft signals is for inter task com munication See REACT REACTI on page 80 and the REACT instructions in the ve Language Reference Guide Soft signals may be used to communicate between different V systems running on multi ple system processors Pendant I O Most of the standard V I O operations can be used to read data from the manual control pendant keypad and to write data to the pendant display See Chapter 10 for information on accessing the manual control pendant See the CONFIG_C utility in the Instructions for Adept Utility Programs for details on configuring digital I O See the controller user s guide for details on installation If your system is equipped with multiple system processors and the optional V Exten sions software you can run different copies of V on each processor Use the CONFIG C utility to set up multiple V systems 146 Chapter 8 Input Output Operations 8 4 Analog I O Up to eight analog I O modules for a total of 32 output and 256 input channels can be installed in an Adept MV controller Figure 8 1 shows the I O channel numbers for each installed module Analog I O modules can be configure
198. ing lines exactly as shown AUTO Sans YPE Welcome CALL get_response Sans YPE Sans is now at the keyboard 7 Create the subroutine get_response a Move the cursor to the CALL line and press the Goto F3 key b The message line will indicate that get_response does not exist and ask if you want to create it Respond Y I 8 Anew program will be opened in the SEE editor window Enter the parameter for this subroutine by using the cursor keys to place the typing cursor between the parentheses on the program line and type text param 9 Move the cursor off the program line and enter the lines PROMPT May I have your name please S text param RETURN 10 Review your programs The Retrieve S F3 key will toggle you through all the programs you have edited in the current session 11 When you are satisfied your programs are correct exit the SEE editor by press ing the Exit F4 key 12 You will now be at the system prompt Test your program by entering the com mand EXECUTE sample 13 The program should greet you ask for your name and print the response on the screen message will then be displayed indicating the program completed 14 Ifall works correctly save your programs to a disk file by entering the com mand STOREP sampfile v2 1 There is no difference between a subroutine and a program 15 Sample Editing Session 51 A fi
199. inued De Parameter Use fault Min Max NOT CALIBRATED Represents the calibration status of the 7 0 7 robot s controlled by the V system SCREEN TIMEOUT Controls automatic blanking of the graphics 0 0 16383 monitor on the A Series controller TERMINAL This parameter determines how the V 4 0 4 monitor will interact with the A series system terminal The acceptable values are 0 through 4 and they have the interpretations shown in the following table The default value for TERMINAL is changed with the utility CONFIG_C V2 on the Adept Utility Disk See the Instructions for Adept Utility Programs A Series System Terminal Settings Parameter Treatment Cursor up Value Terminal Type of DEL amp BS Command 0 TTY lt echo gt None 1 CRT Erase VT 2 CRT Erase SUB 3 CRT Erase FF 4 CRT Erase ESC2M 6 3 Switches 109 Switches System switches govern various features of the V system The switches are described below See the V Language Reference Guide and the V Operating System Reference Guide for more detailed descriptions of the keywords discussed here As with system parameters the names of system switches can be abbreviated to the mini mum length required to identify the switch Viewing Switch Settings The SWITCH monitor command displays the setting of one or more system switches SWITCH switch_name switch_name If no switches are specified the settings
200. ion had been executed Such a program is said to be called asynchronously since its execution is not synchronized with the normal program flow Asynchronous processing is enabled by the REACT REACTE and REACTI program instructions Each program task can use these instructions to prepare for independent pro cessing of events In addition the optional V Extensions software uses the WINDOW instruction to enable asynchronous processing of window violations when the robot is tracking a conveyor belt see Chapter 11 Sometimes a reaction must be delayed until a critical program section has completed Also since some events are more important than others a program should be able to react to some events but not others V allows the relative importance of a reaction to be speci fied by a program priority value from 1 to 127 The higher the program priority setting the more important is the reaction NOTE Do not confuse program priority described here with task priority described later in this chapter Task priority governs the processing of the various system tasks Program priority governs the execution of programs within a program task See section 4 3 for further details see Figure 4 1 for an example A reaction subroutine is called only if the main program priority is less than that of the reaction program priority If the main program priority is greater than or equal to the reac tion program priority execution of the r
201. ion program can also enable input flow control with which V generates Ctrl S and Ctrl Q to suspend and resume respec tively input from an external source With Ctrl S and Ctrl Q flow control disabled all input and output is totally transparent and all 8 bit data bytes can be sent and received Serial lines may also be configured to use hardware modem control lines for flow control The RTS CTS lines must be installed in the modem cable standard modem cables often leave these lines out See the Adept MV Controller User s Guide for pin assignments Attaching Detac hing Serial I O Lines Serial lines must be attached before any I O operations can take place Note that only one control program task can be attached to a single serial line at any one time All other attachment requests will queue or fail depending on the setting of the mode parameter in the ATTACH instructions Attaching or detaching a serial line automatically stops any output in progress and clears all input buffers Serial lines are not automatically detached from a program unless it com pletes with success so it is possible to single step through a program or proceed from a PAUSE instruction without loss of data The controller configuration utility is on the Adept Utility Disk in the file CONFIG C V2 160 Chapter 8 Input Output Operations Input Proc essing Input data is received by V according to the byte format specified by the I O configura tion pr
202. ion will terminate the loop As long as the operator enters enough characters the loop will termi nate 92 Chapter 4 Program Control WHILE DO WHILE DO is a looping structure similar to DO UNTIL except the boolean expression is evaluated at the beginning of the loop instead of at the end This means that if the condi tion indicated by the expression is true when the WHILE DO instruction is encountered the code within the loop will not be executed at all WHILE DO loops are susceptible to infinite looping just as DO UNTIL loops are The expression controlling the loop must eventually evaluate to true for the loop to terminate The form of the WHILE DO looping structure is WHILE expression DO code block END expression isany well formed boolean expression as described at the beginning of this section The following code shows a WHILE DO loop being used to validate input Since the boolean expression is tested before the loop is executed the code within the loop will be executed only when the operator inputs an unacceptable value at step 23 20 21 Loop until an operator inputs a value in the range 32 64 22 23 PROMPT Enter a number in the range 32 to 64 ans 24 WHILE ans 32 OR ans 64 DO 25 PROMPT Number must be in the range 32 64 ans 26 END 27 In the above code an operator could enter a non numeric value in which case the pro gram would crash A more robust strategy w
203. ions In addition to this manual have the following publications handy as you set up and pro gram your Adept automation system Manual Material Covered Release Notes for V Version 11 0 V Language Reference Guide V Operating System User s Guide V Operating System Reference Guide AdeptVision VME User s Guide AdeptVision Reference Guide Instructions for Adept Utility Programs Adept MV Controller User s Guide AdeptMotion VME User s Guide Manual Control Pendant User s Guide AdeptForce VME User s Guide Robot or motion device user s guide Late breaking changes not in manuals Summary of Changes Upgrading Pre 11 0 Code A complete description of the keywords used in the basic V system A description of the V operating system Loading storing and executing programs is covered in this manual Descriptions of the V operating system commands known as monitor commands Concepts and strategies for programming the AdeptVision VME system The keywords available with systems that include the optional AdeptVision VME system Adept provides a series of programs for configuring and calibrating various features of your Adept system The use of these utility programs is described in this manual This manual details the installation configuration and maintenance of your Adept controller The controller must be set up and configured before control programs will executed properly Installation con
204. is a limit on how closely spaced commanded locations can be When locations are too close together there is not enough time for V to compute and per form the transition from one motion to the next and there will be a break in the continu ous path motion This means that the robot will stop momentarily at intermediate locations The minimum spacing that can be used between locations before this effect occurs is determined by the time required to complete the motion from one location to the next Straight line motions can be used if the motion segments take more than about 32 milli seconds each Joint interpolated motions can be used with motion segments as short as about 16 milliseconds each Robot Speed A robot move has three phases an acceleration phase where the robot accelerates to the maximum speed specified for the move a velocity phase where the robot moves at a rate not exceeding the specified maximum speed and a deceleration phase where the robot decelerates to a stop or transitions to the next motion Robot speed can mean two things how fast the robot moves between the acceleration and deceleration phases of a motion referred to in this manual as robot speed or how fast the robot gets from one place to another referred to in this manual as robot performance The robot speed between the acceleration and deceleration phases is specified as either a percentage of normal speed or an absolute rate of travel of the robot
205. istics or a bad serial line connection Previous experi ence is helpful in solving such problems Once you are able to communicate with the remote system you may have to log onto the remote system Then after you have reached the point of being able to enter commands to the system the Kermit program may be started simply by typing KERMIT or a similar command appropriate to the operating system of the remote computer The Kermit program should start up in its command mode with a prompt such as C Kermit gt You may then enter commands directly to the Kermit program For example you might want to enter commands to initialize various parameters in preparation for communica tion with the V Kermit For instance you may type SET FILE TYPE TEXT to initialize the remote file type to ASCII The actual syntax needed for these commands will depend on the remote system Refer to that system s user guide Most Kermit pro grams are equipped with help facilities that can be invoked by typing HELP or a ques tion mark After successfully initializing the desired parameters the Kermit server should be started by typing SERVER The remote server should start up and type a short message about basic server usage This message may not be applicable to use of Kermit communications with the V system Whenever the instructions for handling and terminating the server differ from those in this manu
206. itor and Debugger Debug Monitor Mode Keyboard Commands The V program debugger allows you to interactively execute and edit the program being debugged The commands described below can be used in debug monitor mode to con trol execution of the program being debugged see Control of Program Execution on page 59 NOTE All the commands described below except Ctrl E require debug monitor mode for their use Be careful not to enter Ctrl O or Ctrl S while using the debugger These control characters disable output to the terminal until a second Ctrl O or a Ctrl Q is input The following terms are used below when showing equivalent monitor commands current_program Refers to the program displayed in the edit window current_step Refers to the program step at which the movable cursor is positioned Note that even when the terminal cursor is visible in the debug win dow or on the command line the position of the movable cursor is still retained by the debugger debug_task Refers to the task number shown on the information line of the debug Key s window Action Ctrl B Set a breakpoint at the step indicated by the typing cursor also see Ctrl N below The use of breakpoints is described in Program Breakpoints on page 60 This command is equivalent to the following system monitor command BPT current_program current_step Ctrl E Alternate between debug modes This command is
207. ive to either belt There are no restrictions concerning the placement or orientation of a conveyor belt rela tive to the robot In fact belts that move uphill or downhill or at an angle to the reference frame of the robot can be treated as easily as those that move parallel to an axis of the robot reference frame The only restriction regarding a belt is thatits motion must follow a straight line path in the region where the robot is to work The following sections contain installation and application instructions for using the mov ing line feature Before using this chapter you should be familiar with V and the basic operation of the robot 11 1 Installation To set up a conveyor belt for use with a robot controlled by the V system 1 Install all the hardware components and securely fasten them in place The con veyor frame and robot base must be mounted rigidly so that no motion can occur between them 2 Install the encoder on the conveyor 3 Since any jitter of the encoder will be reflected as jitter in motions of the robot while tracking the belt make sure the mechanical connection between the belt and the encoder operates smoothly In particular eliminate any backlash in gear driven systems 4 Wire the encoder to the robot controller See the controller user s guide for loca tion of the encoder ports 5 Start up the robot system controller in the normal manner 6 Calibrate the location of the conveyor bel
208. l not complete until a data message is received No wait READ mode can be used for reading the serial line can be polled using the function IOSTAT lun 1 to detect when the read is completed Keep in mind that the DDCMP acknowledge was sent when the data was originally received and buffered not when the READ instruction is executed DDCMP Communication Protocol 165 Output Processing Output on a DDCMP line is performed using the V WRITE instruction Each WRITE instruction sends a single data message with a maximum length of 512 bytes The write request does not complete until the remote system acknowledges successful receipt of the message Retransmission because of errors is handled automatically without any action required by the V program If the no wait format control N is specified in the format list for the WRITE instruction V processing continues without waiting for the write to complete Like other output requests a second write issued before the first has completed will force the V program to wait for the first write to complete The IOSTAT lun 3 function can be used to determine whether or not a no wait write has completed NOTE A WRITE instruction automatically appends a Return character 13 decimal and Line Feed character 10 decimal to the data message unless the S format control is specified Protocol Parameters Certain parameters can be set to control the operation of DDCMP These parameters are set wit
209. large stack size before running your program Then execute the program After the program has been run and all the execution paths have been followed use the STATUS monitor command to look at the stack statistics for the program task The stack MAX value shows how much stack space your program task needs to execute The stack size can then be set to the maximum shown with a little extra for safety If it is impossible to invoke all the possible execution paths the theoretical stack limits can be calculated using Table 1 1 You can calculate the worst case stack size by adding up the overhead for all the program calls that can be active at one time Divide the total by 1024 to get the size in kilobytes Use this number in the STACK monitor command to set the size Table 1 1 Stack Space Required by a Subroutine Bytes Required For Notes 20 The actual subroutine call 32 Each subroutine argument plus one of the following 4 Each real subroutine argument or automatic variable 1 48 Each transformation subroutine argument or automatic variable 1 2 varies Each precision point subroutine argument or automatic variable 1 2 3 84 Each belt variable argument or automatic variable 172 132 Each string variable argument or automatic variable 1 2 Notes 1 If any subroutine argument or automatic variable is an array the size shown must be multiplied by the size of the array Remember that arra
210. le will be created using the default path specification that will contain the two programs sample and get_response To check that the programs were stored successfully enter the commands ZERO LOAD sampfile v2 EXECUTE sample The program should execute as before See the V Operating System User s Guide for details on the default path and options to the STORE commands When you are creating and modifying programs bear in mind If you load a file containing programs with the same names as programs resi dent in memory the resident programs will NOT be replaced You must delete from memory a program before you can load a program with the same name You cannot overwrite existing disk files A file must be deleted from disk with FDELETE before a file of the same name can be written to the same sub direc tory If you are making changes to existing files we recommend the following procedure a Rename the existing file for backup FRENAME filename bak file name v2 b Store the modified files STOREP filename v2 c When you are satisfied with the modified files delete the backup FDELETE filename bak If you have programs from multiple disk files resident in memory the module commands will help keep the various files straight See the descriptions of MODULE STOREM MIDRECTORY and DELETEM in the V Language Refer ence Guide 52 Chapter 2 The
211. letin Board Service sasaaa aaa comes 10 1 Programming Vt Lo 11 1 1 Creatinga Program ess 12 Program and Variable Name Requirements 12 The Editing Window ss 12 Editing Modes 1 52 euer Baca SIRE S NW ERU 12 Changing Editing Modes lessen 13 The SEE Editor Window es 14 Using Text Editors Other Than the SEE Editor 14 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 V Language User s Guide Using the Editor acia espe dena BES 15 Entering New Linesof Code llle 15 Bating the Ed Or s cz ose fe dined ae patie sere G 15 Saving a Program ee 16 Vi Program Types ee 16 Executable Programs 0 0 16 Robot Control Programs o 16 Exclusive Controlofa Robot 0 000000 17 GeneralPrograms ee 17 Fomatof Programs lllllll es 18 Program LineS ers 18 Program Organization saasaa aaa 19 Program Variables ess 19 Executing Programs 1 2 lille 20 Selecting a Program Task ooo 20 Program Sacks lll les 21 Stack Requiements les 21 How of Program Execution 2 000 eee eae 23 RUN HOLD BUTLON iaon t eee a ere ae ee OR ed a ek 23 Subrulines 1 lll ss 23 Argument Pasing ee 24 Mapping the Argument lst a 24 Argument Passing by Value or
212. lle 66 Numeric Expressions 0 0 00 67 LogicalExpressionS 10 67 Logical Constants 0 ae a Eaa eee 67 Table of Contents V Functions That Operate on Numeric Data 67 vi V Language User s Guide 3 4 Location Data TYpeS 0 0 0 ee 67 Transfomnatiorns 00052 dd a hae ia id 68 Precisiori PONS ieie me ca ra a a RO EO e CER a 68 3 5 Mays A e Ld eee CQ wea E Ee V PE V 68 3 6 Variable Classes eee 69 Global Vanabl sS curia a a a a te A 69 Local Vatables 5 a SERE O dl CAM n tte 69 Automatic Vanrables eh 69 Scope of Variables les 70 Variable Initialization oo o 71 3 7 Operators ita rero b A s 72 Assignment Operator ell ele 72 Mathematical Operators soaua aaa ee 72 Relational Operators o o o oo 73 Logical Operators aa 74 Bitwise Logical Operators llli 75 3 8 Sing Operator gt iii a ra a did 75 3 9 OrderofEvaluaion eee 76 Program Control cc 77 41 Introduction 1 rs 78 4 2 Unconditional Branch Instucti0ONS 78 COTO AS ec due AE AA a ET e E 78 er ME TREES PIENE 79 CAUSA A CPI PD Aa 79 4 3 Program Intenuptinstuctions 80 WAM ee to NI to eI aee a be e 80 WATREVENT 2 24 55 md a a CE EE AA rt 80 REACT REACT unta ad aa See aw we a Ad ak tad a 80 REAC TE ma tots ate te meets fe
213. lly attempts to reattach the robot If another task has attached the robot in the meantime the first task cannot be resumed Task 0 always attempts to attach robot 1 when program execution begins No other tasks can successfully attach any robot unless an explicit ATTACH instruc tion is executed e Since task 0 attempts to attach robot 1 that task cannot be executed after another task has attached that robot If you want another task to control the robot and you want to execute task 0 you must follow this sequence of events a Start task 0 b Have task 0 DETACH the robot c Start the task that will control the robot The program executing as task 0 can start up another task d Have that task ATTACH the robot e Note that robots are attached even in DRY RUN mode In this case motion com mands issued by the task are ignored and no other task can access the robot General Programs A general program is any program that does not control a robot With a robot system there can be one or more programs executing concurrently with the robot control pro gram For example an additional program might monitor and control external processes via the external digital signal lines and analog signal lines General programs can also communicate with the robot control program and each other through global variables and software signals General programs can also have a direct effect on the robot motion with the BRAKE instructio
214. m The Program Debugger 61 Progra m Watc hpoints The V WATCH command attaches a watchpoint to a variable or user specified expres sion When a watchpoint has been set the specified variable or expression is examined before each program instruction is executed by the task associated with the watchpoint The value determined is compared with the value recorded when the watchpoint was originally defined If the value has changed the task is stopped and the old and new val ues are displayed NOTE Processing watchpoints consumes a lot of execution time and can significantly slow down program execution Be sure to cancel all the watchpoints for an execution task after you are through using the task for debugging There is no shorthand debugger command for setting watchpoints but WATCH com mands can be entered on the debugger command line Data Types and Operators Inmoduction ss 64 Dynamic Data Typing and Allocation sls 64 Variable Name Requirements l see 64 String Data Type 1 o o 65 ASCUNV AMES ctn fite Su ea ek Tuto fene Boece ae Bay e ose 65 Functions That Operate on String Data o o oo 66 Real and Integer Data Types o o ccoo 66 Numeric Representation o ooo e e 66 Numeric Expressions o o 67 LogicalExpresions es 67 Logical Consants ees 67 Functions That Operate on Numeri
215. m frame loc 1 Miscellaneous Location Operations The instruction DECOMPOSE array_name loc_name will place the joint values of loc_name in the array array_name DECOMPOSE works with transformations and precision points The command WHERE will display the current robot location The BASE operation can be used to realign the world reference frame relative to the robot Motion Control Instructions 127 7 4 Motion Control Instructions V processes robot motion instructions differently from what you might expect With V a motion instruction such as MOVE part is interpreted to mean start moving the robot to location part As soon as the robot starts moving to the specified destination the Vt program continues without waiting for the robot motion to complete The instruction sequence MOVE part 1 SIGNAL 1 MOVE part 2 SIGNAL 2 will cause external output signal 1 to be turned on immediately after the robot begins moving to part 1 rather than waiting for it to arrive at the location When the second MOVE instruction is encountered V waits until the motion to part 1 is completed External output signal 2 is turned on just after the motion to part 2 begins This is known as forward processing See Breaking Continuous Path Operation on page 129 for details on how to defeat forward processing This parallel operation of program execution
216. mable LEDs Making Pendant Buttons Repeat Buttons Pendant buttons that are configured as keyboard buttons are normally repeat buttons Button presses are recorded as long as the button is held down The repeat function can be disabled requiring users to press the button once for each button press they want recorded The following instruction disables the repeat option for the period button WRITE mcp lun CHR 25 SCHR 55 S The repeat option is enabled with the instruction WRITE mcp lun CHR 24 SCHR 55 S Table 10 1 lists all the control codes used with the pendant 200 Chapter 10 Programming the MCP Table 10 1 Pendant Control Codes Single Byte Control Codes Code Function 1 Not Used 2 Enable blink mode for subsequent characters 3 Disable blink mode for subsequent characters characters will still blink if they appear in a blinking position set by code 22 4 Display cursor make the cursor visible 5 Hide cursor make the cursor invisible 6 Not Used 7 Beep 8 Backspace ignored if cursor is in character position 1 9 Tab to next soft button 10 Line feed move down in same position scroll if on line 2 11 Vertical tab move up in same position do not scroll 12 Home cursor and clear screen cancels any blinking positions but does not affect blink mode set by code 2 13 Carriage return move to column 1 of current line 14
217. minates the program PROGRAM display ABSTRACT Monitor a serial line and read data when available 162 90 Chapter 8 Input Output Operations AUTO Sbuffer char done etx ienod line etx 3 ASCII code for ETX character ienod 526 Error code for no data ATTACH line 4 SERIAL 1 IF IOSTAT line lt 0 GOTO 90 Check for errors Sbuffer Initialize buffer to empty done FALSE Assert not done DO CLEAR EVENT c GETC line 1 Read byte from the ser line WHILE c ienod DO While there is no data WAIT EVE dl Wait for an event CLEAR EVENT c GETC line 1 Read byte from the ser line END IF c lt 0 GOTO 90 Check for errors IF c etx THEN If ETX seen TYPE Sbuffer N Type buffer done LEN Sbuffer 0 Done if buffer length is 0 Sbuffer Set buffer to empty ELSE Sbuffer Sbuffer SCHR c Append next byte to buffer END UNTIL done Loop until empty buffer seen GOTO 100 Exit TYPE SERIAL LINE I O ERROR SERROR IOSTAT line PAUSE DETACH line RETURN DDCMP Communication Protocol 163 8 9 DDCMP Communication Protocol DDCMP is a rigorous protocol that automatically handles the detection of errors and the retransmission of messages when an error occurs The name stands for Digital Data Com munications Message Protoc
218. modes input 149 output 150 WATCH 61 256 V Language User s Guide Watchpoint 61 WHERE 126 WHILE 95 WHILE DO 92 WINDOW 216 Windows and multiple tasks 187 creating 176 deselecting 187 hiding 187 selecting 187 World coordinate system 114 WRITE 173 with the MCP 192 Writing to I O devices 149 X XOR logical operator 74 Y Yaw 117 Adept User s Manual Comment Form We have provided this form to allow you to make comments about this manual to point out any mistakes you may find or to offer suggestions about information you want to see added to the manual We review and revise user s manuals on a regular basis and any comments or feedback you send us will be given serious consideration Thank you for your input NAME DATE COMPANY ADDRESS PHONE MANUAL TITLE V Language User s Guide PART NUMBER 00961 00230 Rev A PUBLICATION DATE April 1994 COMMENTS MAIL TO Adept Technology Inc Technical Publications Dept 150 Rose Orchard Way San Jose CA 95134 00961 00230 Rev A
219. n although that practice is not rec ommended With the exception of the BRAKE instruction a general program cannot execute any instruction that affects the robot motion Also the BASE or TOOL settings cannot be changed by general programs Except for the robot general purpose control programs can access all the other features of the Adept system including the AdeptVision option if it is present in the system the internal and external digital signal lines the USER serial lines the system terminal the disk drives and the manual control pendant 1 If the system is in DRY RUN mode while a robot control program is executing robot motion instructions are ignored Also if the robot is detached from the program robot related errors do not affect program execution 18 1 4 Chapter 1 Programming V Note that except for the exclusion of certain instructions general purpose control pro grams are just like robot control programs Thus the term program is used in the remainder of this chapter when the material applies to either type of control program Format of Programs This section presents the format V programs must follow The format of the individual lines is described followed by the overall organization of programs This information applies to all programs regardless of their type or intended use Program Lines Each line or step of a program is interpreted by the V system as a program instruction The
220. n 5 END CASE button of Turn off LED WRITE mcp CHR mcp off led CHR button S UNTIL quit Detach from the MCP DETACH mcp 100 IF NOT quit THEN Exit on MCP busy TYPE C34 U17 The MCP is busy or not connected TYPE Press the REC DONE button to clear C5 m m PROGRAM mcp disp main ABSTRACT Soft keys on the MCP Programming Example MCP Menu 205 This program is called to display a main menu above the five INPUT PARAMS None OUTPUT PARAMS None GLOBAL VARS Clr scr pendant Cur pos pendant beep pendant control code tab pendant control code mcp mcp mcp mcp mcp MCP logical unit control code control code clear displa SOC Cursor D beep the pen tab to next Clear the display and write the top line WRITE mcp Write the menu options WRITI WRITI WRITI t op Lu Beep the WRITI Ej END mcp mcp MCP PROGRAM mcp main quit quit ABSTRACT main menu This program responds to a Quit It verifies th SCHR mcp clr scr SCHR mcp cur pos mcp Option5 SCHR mcp tab mcp Option3 SCHR mcp tab SCHR mcp beep S SCHR mcp cur pos SCHR 41 S Option4 The program assumes the MCP has been attached y amp home cursor osition dant soft button SCHR 16 MAIN MENU S SCHR mcp tab S Optio
221. n The same values as specified in the FOPEN instruction that window_name created the window DETACH Instruction DETACH frees up a LUN for use by a subsequent ATTACH instruction The syntax for DETACH is DETACH glun glun The LUN specified in a previous ATTACH instruction Custom Window Example This section of code will create and delete a window AUTO glun Graphics window LUN ATTACH glun 4 GRAPHICS Attach to a window LUN Open the window Test with a maximum size of 400 x 300 pixels FOPEN glun Test MAXSIZE 400 300 Your code for processing within the window goes here e g GTYPE glun 10 10 Hello When the window is no longer needed close and delete the window 5 and detach from the logical unit 1 FCLOS FDELE glun E glun Test T DETACH glun 178 Chapter 9 Graphics Programming 9 2 Monitoring Events The key to pointing device driven programming is an event loop In an event loop you wait for an event from the keyboard or pointer device and when the correct event occurs in the proper place your program initiates some appropriate action Vt can moni tor many different events including button up button down double click open window and menu select The example code in the following sections will use event 2 button up and event 14 menu select See the description of GETEVENT in the V Language Reference Guide for det
222. n index exceeds the highest row index Row is the first element column is the second element and range is the third element Variable Classes 69 3 6 Vanable Classes In addition to having a data type variables belong to one of three classes GLOBAL LOCAL or AUTOMATIC These classes determine how a variable can be altered by dif ferent calling instances of a program Global Variables This is the default class Unless a variable has been specifically declared to be LOCAL or AUTO a newly created variable will be considered global Once a global variable has been initialized see below it is available to any executing program until the variable is deleted or all programs that reference it are removed from system memory with a DELETE or ZERO instruction Global variables can be explicitly declared with the GLOBAL program instruction Global variables are very powerful and should be used carefully and consciously If you cannot think of a good reason to make a variable global good programming practice dic tates that you declare it to be LOCAL or AUTO NOTE For double precision real variables to be global they must be explicitly declared as global in each program they are used in GLOBAL DOUBLE dbl_real_var Local Variables Local variables are created by a program instruction similar to LOCAL the_local_var where the variable the_local_var is created as a local variable Local variables can be changed
223. n with the American National Standards Institute The publication ANSI RIA R15 06 1986 contains guidelines for robot system installation safeguarding maintenance testing startup and operator training The document is available from the American National Standards Insti tute 1430 Broadway New York NY 10018 Safety 5 System Safeguards Safeguards should be an integral part of robot workcell design installation operator training and operating procedures Adept robot systems have various communication features to aid you in constructing system safeguards These include remote emergency stop circuitry and digital input and output lines Computer Contolled Robots Adept robots are computer controlled and the program that is running the robot may cause it to move at times or along paths you may not anticipate Your system should be equipped with indicator lights that tell operators when the system is active The optional Adept front panel provides these lights When the amber HIGH POWER light and the blue PROGRAM RUNNING light on the front panel are illuminated do not enter the workcell because the robot may move unexpectedly LAMP TEST PROGRAM HIGH PENDANT REMOVE RUNNING POWER pe ONO O cda E PENDANT NETWORK ee B PROGRAM SYSTEM PENDANT START POWER O O x O O EMERGENCY STOP 77 High Power and Program Running Lights Manually Controlled Robots Adept robots can also be controlle
224. n2 SCHR mcp tab QUIT S selection from the MCP selection and passes the result INPUT PARAMS None OUTPUT PARAM quitboolean indicating whether a quit has been verified GLOBAL VARS mcp mcp cursor mcp mcp mcp mcp quit ALA SEE off led blink char noblink char tab pendant FALSE assume quit MCP logical unit pendant pendant pendant pendant control control code control code control code control code code tab to will not be verified clear display amp home turn off an LED start blink position disable blink position next soft button 206 Chapter 10 Programming the MCP Display sub menu and start the NO option blinking mcp SCHR mcp clr scr Quit Are you sure WRITE WRITE mcp SCHR mcp tab CHR mcp tab CHR mcp tab YES S WRITE mcp SCHR mcp tab CHR mcp blink char NO SCHR mcp noblink char S button PENDANT 0 if verified lse turn off the NO soft button LED Set quit to tru IF button 2 THEN quit TRUE ELSE WRITE mcp SCHR mcp off led SCHR 1 S Conveyor Trac king Installation Calibration Basic Programming Concepts Belt Vana bles iu ara e R Nominal Belt Transformation The Belt Encoder The EncoderScaling Factor The EncoderOff
225. name data tst Attach to a disk logical unit ATTACH IF IOSTAT dlun 4 dlun Open a new fil FOPENW dl IF IOSTAT un dlun Write the text FOR i WRITE 1 TO 10 dl un DISK lt 0 GOTO 100 and check status Sfile name lt 0 GOTO 100 SENCODE 1 Line IF IOSTAT dlun END Close the file FCLOSE dlun IF IOSTAT dlun Reopen the fil FOPENR DE dl IOSTAT un dlun R W EAD HILE dlun IOSTA TYPE txt READ dlun Stxt Eri ND dlun 0 GOTO 100 0 GOTO 100 and read its contents Sfile name lt 0 GOTO 100 Get first line from file gt 0 DO Stxt End of file or error se 8 7 Advanced Disk Operations 155 IF IOSTAT dlun lt 0 AND IOSTAT dlun lt gt 504 THEN 100 YPE SERROR IOSTAT dlun Report any errors END FCLOSE dlun Close the file IF IOSTAT dlun lt 0 THEN YPE SERROR IOSTAT dlun DETACH dlun Detach the LUN Advanced Disk Operations This section introduces additional parameters to the FOPEN_ instructions See the descriptions of the FOPEN_ instructions in the V Language Reference Guide for details Variable Length Records The default disk file access mode is variable length record mode In this mode records can have any length up to a maximum
226. nce to be recorded writing down the keys as you press them Then you can read from your notes as you define the equivalent macro U Process the U macro 0U Display the current definition of the U macro Esc Y Define the Y macro Y Process the Y macro OY Display the current definition of the Y macro 2 2 NOTE Macro definitions are retained between editor sessions initiated with the SEE monitor command but not between sessions initiated with the SEE program instruction Sample Editing Session The following steps will create a sample V program and subroutine give an example of parameter passing and create a disk file of the sample programs 1 With the controller on and running make sure there are no other programs in memory by entering the command ZERO 1 Memory does not have to be cleared However it will make this example simpler 50 Chapter 2 The SEE Editor and Debugger 2 The system will ask for verification that you want to delete all programs from memory This will delete the programs and data from system memory but will not delete the disk files 3 Enter the command SEE sample 4 The system will advise you that this program does not exist and ask if you want to create it Respond Y 1 5 The SEE editor window should now be displayed Enter insert mode by press ing the Insert key Edit F11 on a Wyse terminal 6 Enter the follow
227. ncoder in millimeters is returned The position is predicted 32 milliseconds in the future based upon the current position and velocity The value is scaled the same as the current position described above 4 Read Latched Position The position or the encoder in millimeters when the last external trigger occurred is returned The LATCHED real valued function may be used to determined when an external trigger has occurred and a valid position has been recorded Character Sets Tables C 1 and C 2 list the standard Adept character set Values 0 to 127 decimal are the standard ASCII character set Characters 1 to 31 are the common set of special and line drawing characters Characters 0 and 127 to 141 are Adept additions to the standard sets Characters 32 to 255 excluding 127 through 141 are the ISO standard 8859 1 character set Characters 145 to 159 are overstrike characters see the OVERSTRIKE attribute to the TERMINAL argument for the FSET instruction in the V Language Reference Guide Values 1 to 31 are also given special meaning in the extended Adept character set when they are output to a graphics window with the GTYPE instruction NOTE The full character set is defined for font 1 only Fonts 2 medium font 3 large font and 4 small font have defined characters for ASCII values 0 and 32 127 Fonts 5 and 6 have standard English characters for ASCII values 0 and 32 135 while ASCII 136 235 are Katakana and Hira
228. nd HERE loc name If you have the optional Adept manual control pendant you can use the pendant and the TEACH instruction to create location variables Transformations vs Precision Points A location can be specified using either the six components described in the previous sec tion or by specifying the state the robot joints would be in when a location is reached The former method results in a transformation variable Transformations are the most flexi ble and efficient location variables Precision points record the joint values of each joint in the motion device Precision points may be more accurate and they are the only way of extracting joint information that will allow you to move an individual joint Precision points are identified by a leading pound sign The command HERE pick will create the precision point pick equal to the current robot joint values Creating and Altering Location Variables 121 Modifying Location Variables The individual components of an existing transformation or precision point can be edited with the POINT monitor command POINT loc_name will display the transformation components of loc_name and allow you to edit them If loc_name is not defined a null transformation will be displayed for editing A location variable can be duplicated using the POINT monitor command or SET pro gram instruction The monitor command POINT loc_name loc_
229. nd 49 will complete since the program had been given a higher priority than REACT the subroutine alarm will be called and execution will resume at step 50 REACTE REACTE enables a reaction program that is run whenever a system error that would cause program execution to terminate is encountered This includes all robot errors hardware errors and most system errors it does NOT include I O errors Unlike REACT and REACTI REACTE cannot be deferred based on priority consider ations The instruction REACTE trouble will enable monitoring of system errors and execute the program trouble whenever a system error is generated REACTE and Power Failures In systems equipped with the optional battery back up module system state is saved when power fails and is automatically restored when power is restored All aspects of the system are saved except Pending serial writes fail and the I O buffer is flushed e Robots are stopped immediately high power is disabled and the robot is left uncalibrated In order to recover a motion system after a power failure the REACTE routine see below must recalibrate the motion device When a system starts backup after a power failure e SerialI O is terminated with error 667 Power failure detected e Ifa REACTE was active at power failure it will complete and a REACTE based on the power failure will be queued e Ifa REACTE is enabled but not active a REAC
230. nd finally move off the belt to a fixed location MOVES belt 1 1location3 OPENI D 1j gt K N o o CLOSEI MOVES fixed location If this example did not have the second MOVES statement the robot would continue to track the belt until a belt window violation occurred As with motions defined relative to a belt motions that move the tool off a belt that is to a fixed location must be of the straight line type Motion Termination When moving the robot relative to a belt special attention must be paid to the conditions used to determine when a motion is completed At the conclusion of a continuous path motion V normally waits until all the joints of the manipulator have achieved their final destinations to within a tight error tolerance before proceeding to the next instruction In the case of motions relative to a belt the destination is constantly changing and depend ing upon the magnitude and variability of the belt speed the robot may not always be able to achieve final positions with the default error tolerance Therefore if a motion does not successfully complete that is it is aborted due to a Time out nulling error or if it takes an excessive amount of time to complete the error toler ance for the motion should be increased by preceding the motion instruction with a Moving Line Programming 215 COARSE instruction In extreme situations it may even be necessary to en
231. neously operate the hand MOVEST PI Initiate a straight line robot motion to the position and orientation described by the given location and simultaneously operate the hand MULTIPLE PI Allow full rotations of the robot wrist joints see SINGLE NOFLIP PI Request a change in the robot configuration during the next motion so that the pitch angle of the robot wrist has a positive value see FLIP NONULL PI Instruct the Vt system not to wait for position errors to be nulled at the end of continuous path motions see NULL NORMAL TF Correct a transformation for any mathematical round off errors NOT CALIBRATE P Indicate or assert the calibration status of the robots connected to D the system NULL TF Return a null transformation value one with all zero components NULL PI Enable nulling of joint position errors OPEN PI Open the robot gripper OPENI PI Open the robot gripper immediately PAYLOAD PI Set an indication of the current robot payload HPDEST PF Return a precision point value representing the planned destination location for the current robot motion HPLATCH PF Return a precision point value representing the location of the robot at the occurrence of the last external trigger PI Program Instruction RF Real Valued Function TF Transformation Function S Switch P Parameter PF Precision Point Function SF String Function CF Conversion Factor Summary of Motion Keywords 139 Ta ble 7 1
232. ng steps 1 Go into PASSTHRU mode at the V system terminal 2 Enter a command to the remote system to exit the Kermit program it may first be necessary to terminate the server by typing Ctrl P 3 Enter a command to the remote system to set the terminal mode to no parity 4 Enter a command to the remote system to restart the Kermit program 5 Enter a command to the remote Kermit to set its file mode to binary For example SET FILE TYPE BINARY 6 Enter a command to Kermit to start the remote server 7 Type Ctrl C to escape back to the local V system VLOAD and VSTORE can be used with Kermit only in binary mode The specific commands for the remote system will depend on the system you are using 170 Chapter 8 Input Output Operations When a binary file is accessed over the Kermit line the file specified to V must have a B qualifier For example the following command will copy the file REMOTE DAT from the Kermit line to the local disk drive A FCOPY A local dat K gt remote dat B NOTE If the default setting for the remote system s serial line is other than no parity and there is no way you can change that setting it will not be possible to successfully transfer binary files using Kermit An ASCII file may be accessed as a binary file but not vice versa A file that is transferred back and forth over the Kermit line must be transferred in the same file m
233. ng vari ables will not affect the FOR loop once it is executing DO UNTIL DO UNTIL is a looping structure that will execute a given block of code an indetermi nate number of times Termination of the loop depends on the boolean expression or vari able that controls the loop becoming true The boolean is tested after each execution of the code block if the expression evaluates to true the loop is not executed again Since the expression is not evaluated until after the code block has been executed the code block will always execute at least once The form for this looping structure is DO code block UNTIL expression expression isany well formed boolean expression described above This expres sion must eventually evaluate to true or the loop will execute indefi nitely yes the infamous infinite loop Looping Structures 91 20 21 Output the numbers 1 to 100 to the screen 22 23 x 1 24 DO 25 TYPE x 26 x X t1 27 UNTIL x gt 100 28 Step 26 insures that x will reach a high enough value that the expression x gt 100 will become true 43 44 Echo up to 15 characters to the screen Stop when 15 45 characters or the character have been entered 46 47 x 1 48 DO 49 PROMPT Enter a character ans 50 TYPE ans od x x 1 52 UNTIL x gt 15 OR Sans 53 In this code either x reaching 15 or being entered at the PROMPT instruct
234. ns Keystroke s Function Char Codes Editing A Line Of Text D Delete a character I Start character Insert mode M Esc I Break line and enter Insert mode M R Start character Replace mode M Esc Return to Command mode W Delete up to the next item Esc W Delete item and start Insert mode M K lt char gt Delete kill up to character lt char gt Replace a single character M Insert a single character M Ctrl L Convert to lowercase to end of line Ctrl U Convert to uppercase to end of line Esc Ctrl B Convert tabs to blanks spaces Esc Ctrl T Convert spaces to tabs 46 Chapter 2 The SEE Editor and Debugger Table 2 4 SEE Editor Command Mode Operations Continued Keystroke s Function Char Codes Deleting Copying Moving Lines Esc D Delete a line Ctrl D Esc D Undelete last line deleted Ctrl D A Copy line to attach buffer R A Copy line from attach buffer Esc A Move line to attach buffer Ctrl A Esc A Move line from attach buffer Ctrl A E Dump attach buffer to program Esc K Delete kill line in attach buffer R Ctrl K Text Searching And Replacement F Find a string in the program R C Substitute a string in the program Repeat last Find or Change 0 Display string being searched for R Program Operations N Change to editing new program R H Rotate
235. null task executes Whenever a 1ms interval expires Vt performs a similar search of the next time slice If the next time slice does not contain a runnable task the currently executing task contin ues If more than one task in the same time slice have the same priority they become part of a round robin scheduling group Whenever a member of a round robin group is selected by the normal slice searching the group is scanned to find the member of the group that ran most recently The member that follows the most recent is run instead of the one that was originally selected If a task is in more than one round robin group in different slices then all such tasks in both slices appear to be in one big group This property can cause a task to be run ina slice you did not expect For example Slice 1 Task A priority 10 Task B priority 10 Slice 5 Task B priority 15 Task C priority 15 30 Chapter 1 Programming V All three tasks A B and C are in the same round robin group because task B appears in both Therefore task C may run in slice 1 at priority 10 or task A may run in slice 5 at priority 15 depending on which member of the group ran most recently The RELEASE program instruction may be used to bypass the normal scheduling process by explicitly passing control to another task That task then gets to run in the current time slice until it is rescheduled by the 1ms clock A task may also RELEASE to anyone which means that
236. ode each time For example if a file is copied in binary mode from the remote system to the V system then it must be copied back to the remote system in binary mode in order to preserve the file contents Kermit Line Enors The error Nonexistent file is common when using Kermit This error could mean any of several things in addition to the inability to find the desired file on the remote system the command FDIR K gt will verify the contents of a remote directory The transactions over the Kermit line are generally considered to be file transfers When the V system tries to start a file operation the local Kermit driver generally tries to open a file on the remote server If this operation fails V returns the error Nonexis tent file Among the things that could possibly cause this error are mismatched line settings like baud rate and parity unexpected server state the server didn t terminate the previous transaction as expected the server was not started correctly or the file may really not exist NOTE When an error occurs that is associated with the use of Kermit it sometimes helps to perform the following steps to make sure the remote server is in a known state 1 enter PASSTHRU mode 2 stop the remote server by typing Ctrl P several times and 3 restart the remote server If a Kermit file access is aborted by the user for example Ctrl C is typed to abort a V monitor command it may take five seconds
237. ogram The size of the buffer can be set with the CONFIG_C utility program Data errors such as parity or framing errors are also buffered and are returned in the proper order The possible data errors from the serial input lines are 522 Data error on device A data byte was received with incorrect parity or the byte generated a framing error 524 Communications overrun Data bytes were received after the input buffer was full or faster than V could process them 526 No data received If data is expected continue polling the serial line 504 Unexpected end of file A BREAK was received from the remote device Serial line input data is normally read using the GETC function since it allows the most flexible response to communications errors The READ instruction also can be used pro vided that input data is terminated by a Line Feed character 10 decimal V does not support input echoing or input line editing for the serial lines Output Proc essing All serial line output is performed using the WRITE instruction All binary data includ ing NULL characters is output without conversion If the serial line is configured to sup port parity a parity bit is automatically appended to each data byte By default the WRITE instruction appends a Return character 13 decimal and a Line Feed character 10 decimal to each data record unless the S format control is specified in the instruction parameter list
238. ol code code code code code code This program creates and monitors a menu structure on the clear display amp home Set cursor p osition turn off an LED start blink position disable blin code code Number of the soft button pressed Boolean indicating menu structure should be exited AUTO quit mcp 1 quit FALSE mcp clr scr 12 mcp cur pos 18 mcp off led 28 mcp blink char 2 mcp noblink char 3 mcp beep 7 mcp tab 9 mcp on led 31 Check to see if the MCP is free IF END P ENDANT 3 GOTO 100 Attach to the MCP ATTACH Verify ATTACH was successful IF IOSTAT mcp END mcp GOTO 100 2 THEN lt gt 1 THEN k position beep the pendant tab to next turn on an L soft button ED 204 Chapter 10 Programming the MCP DO Main processing loop Display the top level menu CALL mcp disp main Get the operator selection must be between 1 and 5 DO button PENDANT 0 UNTIL button lt 6 Turn on the LED of the selected button WRITE mcp SCHR mcp on led CHR button S Respond to the menu item selected CASE button OF VALUE 1 Verify program exit CALL mcp main quit quit pal VALUE 2 CALL mcp option 2 r1 VALUE 3 CALL mcp option 3 al VALUE 4 CALL mcp option 4 lt Dp C zj de CALL mcp optio
239. ol It is used in Digital Equipment Corporation s computer network DECnet DDCMP is readily available for public use and software packages that implement this protocol are available from Digital Equipment Corporation DEO DDCMP makes use of one or more of the general purpose USER serial lines To use a serial line for DDCMP it must be configured using the Adept I O configuration program The configuration program is on the Adept Utility Diskette in the file CONFIG C V2 The Adept implementation of DDCMP does not support maintenance messages or multi drop lines In all other respects it is a full implementation of the protocol This section is not intended to be a thorough description of DDCMP Refer to the DEC DDCMP manual for more details on protocol operation and implementation General Operation All messages transmitted by DDCMP are embedded in a packet that includes sequence information and check codes Upon receipt a message packet is checked to verify that it is received in sequence and without transmission errors To initiate communications a system sends special start up messages until the proper acknowledgement is received from the remote system This handshaking guarantees that both sides are active and ready to exchange data packets If a start request is received after the protocol is active it means that a system has stopped and restarted its end of the pro tocol and an error is signaled to the local system Once
240. ol ler configuration utility CONFIG_C 35 Default Task Configuration Ta ble 1 2 System Task Priorities System Task suorje TUNUIUWIOZ OAJIG 55 sisA euy UOISIA 13 13 13 13 13 13 13 13 13 13 13 13 13 SUOTPeo TUN WWO UOISIA 14 14 14 14 14 14 14 14 14 14 14 14 14 O I TeHos 56 56 BALI SIG 50 58 juepua 59 JULI 60 dINOGG AAOMIIN 61 IOJUOJA 62 sarydero TeurulaL 63 royerauay Aropolery 63 63 63 63 63 63 63 63 63 eos 10 11 12 13 14 15 36 Chapter 1 Programming V User Task Configuration The remaining time is allocated to the user tasks using the controller configuration utility See the description of CONFIG_C in the Instructions for Adept Utility Programs for details For each time slice you specify which tasks may run in the slice and what priority each task has in that slice The default priority configuration is shown in Table 1 3 Table 1 3 Default Task Priorities y Task a 0 1 2 3 4 5 6 7 27 0 20 19 0 0 15 0 0 0 1 20 19 0 0 15 0 0 0 2 20 21 0 0 15 0 0 0 3 20 21 0 0 15 0 0 0 4 20 19 0 0 15 0 0 0 5 20 19 0 0 15 0 0 0 6 20 21 0 0 15 0 0 0 7 20 21 0 0 15 0 0 0 8 20 19 0 0 15 0
241. om value 0 and work up AIM 2 3 does not use any of the shared area but future versions are expected to use approximately 2K of the shared area from hexadecimal value 1FFF down to about 1800 e In general robot control and system configuration changes must be performed from CPU 1 CPUs other than 1 always start up with the stand alone control module No belts or kinematic modules are loaded e Multiple CPUs can each execute their own autostart routines CPU 1 will load the normal AUTO file and execute the program auto CPU 2 will load the file AUTOO2 V2 and execute the program auto02 CPU 3 will load AUTO03 V2 and execute the program auto03 etc Functions Using Functions cc 98 Variable Assignment Using Functions ooo ooo o 98 Functions Used in Expressions ouaaa aa 98 Functionsas Argumentsto a Function aoaaa aaa oo o 98 String Related Functions ooo oo 99 Examples of String Functions 00000 eee 100 Location Motion and Extemal Encoder Functions 100 Examples of Location Functions sss 100 Numeric Value Functions 2 0 02 ee 101 Examples of Arithmetic Functions o ooo 101 Logical Functions 0 0 pc ee 102 System Control Functions 2 0 0 0 cc es 102 Example of System Control Functions 103 VO Functions eee ee RE Ree heed Bea Ree eek
242. on is true If x 6 and y 10 the following expressions will resolve to 1 true NOT x 7 x gt 2 AND y lt 10 And these expressions will resolve to 0 false NOT x 6 x lt 2 OR y gt 10 String Operator 75 Bitwise Logical Operators Bitwise logical operators operate on pairs of integers The corresponding bits of each inte ger are compared and the result is stored in the same bit position in a third binary number Table 3 5 lists the V bitwise logical operators Table 3 5 Bitwise Logical Operators Operator Effect BAND Each bit is compared using and logic If both bits are 1 then the corresponding bit will be set to 1 Otherwise the bit is set to 0 BOR Each bit is compared using or logic If either bit is 1 then the corresponding bit will be set to 1 If both bits are 0 the corresponding bit will be set to 0 BXOR Each bit is compared using exclusive or logic If both bits are 1 or both bits are 0 the corresponding bit will be set to 0 When one bit is 1 and the other is 0 the corresponding bit will be set to 1 COM This operator works on only one number Each bit is complemented 1s become 0s and 0s become 1s Examples x B1001001 BAND B1110011 results in x having a value of B1000001 x COM B100001 results in x having a value of B11110 String Operator Strings can be concatenat
243. on the top level menu bar by opening the window Screen_1 For example ATTACH glun 2 GRAPHICS FOPEN glun NScreen 1 menu iteml item2 item3 will open the main window and place three items on the top level menu bar Pull downs and event monitoring can proceed as described earlier The instruction FSET glun menu will delete the menu items The Monitor Wndow The monitor window can be opened in write only mode to change the characteristics of the monitor window For example the following instruction will open the monitor win dow disable scrolling and disallow moving of the window E FOPEN glun Monitor WRITEONLY SPECIAL NOPOSITION NOSIZI To prevent a user from accessing the monitor window use the instruction FOPEN glun Monitor WRITEONLY NOSELECTABLE To allow access FSET glun SELECTABLE The Vision Window For systems equipped with the Adept Vision VME option text or graphics can be output to the vision window and events can be monitored in the vision window To communicate with the vision window you open itjust as you would any other window For the window name you must use Vision For example FOPEN glun Vision Remember graphics output to the vision window is displayed only when a graphics dis play mode or overlay is selected When you are done communicating with the vision win dow close and detac
244. only by the program they are declared in An important difference between local variables in V and local variables in most other high level languages is that V local variables are local to all copies calling instances of a program not just a particular calling instance of that program This distinction is critical if you write recursive programs In recursive programs you will generally want to use the next variable class AUTO Automatic Variables Automatic variables are created by a program instruction similar to AUTO the_auto_var where the_auto_var is created as an automatic variable Automatic variables can be changed only by a particular calling instance of a program NOTE If LOCAL or AUTO variables are to be double precision the DOUBLE keyword must be used AUTO DOUBLE dbl_auto_var Unless the program has declared a LOCAL or AUTO variable with the same name 70 Chapter 3 Data Types and Operators Automatic variables are more like the local variables of other high level languages If you are writing programs using a recursive algorithm you will most likely want to use vari ables in the automatic class Scope of Variables The scope of a variable refers to the range of programs that can see that variable Figure 3 1 shows the scope of the different variable classes A variable can be altered by the program s indicated in the shaded area of the box it is in plus any programs that are in smaller b
245. or key to be pressed H ERE pick Prompt for third location W W RITI RITI 1 clear display 1 X17 RECORD Du ur WAIT PENDANT 3 H A D R ERE place TTACH 0 ETACH 1 ETURN Teaching Locations With the MCP 225 Record the location pick Move robot to PLACE amp press RECORD CHR 5 S Wait for key to be pressed Record the location place Reconnect to the robot Release the pendant Return to calling program B 1 Extemal Encoder Device The external encoder inputs on the system controller are normally used for conveyor belt tracking with a robot However these inputs also can be used for other sensing applica tions In such applications the DEVICE real valued function and SETDEVICE program instruction allow the external encoders to be accessed in a more flexible manner than the belt oriented instructions and functions This appendix describes the use of the DEVICE real valued function and the SETDEVICE program instruction to access the external encoder device In general SETDEVICE allows a scale factor offset and limits to be specified for a speci fied external encoder unit The DEVICE real valued function returns error status position or velocity information for the specified encoder Accessing the external encoders via DEVICE and SETDEVICE is independent of any belt tracking commands or instructions
246. or will appear in the debug window and debug and monitor commands can be entered Responses to The Program Debugger 55 program prompts will appear here Commands will appear below the debug information line Shows which task the debug session is running in Shows the debug mode In monitor mode debug and other monitor com mands can be entered and the program can executed In editor mode the typing cursor will appear in the editor window and the program can be edited Displays entered commands and the results of various debug operations The gt character serves as a prompt for user input when you are enter ing commands to the debugger After processing a command the debug ger displays ok on the command line after the command That acknowledges completion of the command regardless of whether or not the command was successful For example the command line shown in Figure 2 1 indicates that the debugger has just processed the command XSTEP place NOTE Under some circumstances the display in the edit window can be overwritten by program or system output Press Redraw S F6 key to restore the entire debugger screen Since the edit window can be moved to anywhere in the current program or even to another program this pointer may not be visible in the edit window The edit window will move to the section of program containing this pointer whenever program execution stops for any reason Debugger Operation Mo
247. ormance robot 131 PI 101 T pi 101 Pi mathematical constant 101 Pitch 118 POINT 121 POS 99 POWER 139 Power failure recovering from 82 Index 251 Power failures and REACTE 82 POWER system switch 111 Precision point location datatype 68 Precision points 120 PRIORITY 102 Priority program task 29 task 28 Procedural motion 130 PROCEED with PAUSE 83 Processing asynchronous 27 Program blankline 18 comment 18 creating 12 examples 130 219 executing 20 execution 20 format 18 19 general purpose 17 interupt 94 label 18 line format 18 memory requirements 21 naming requirements 12 pausing 83 priority 27 recursive 26 reentrant 26 saving toadiskfile 16 spacing 19 stacks 21 requirements 22 size calculation 22 step format 18 label 18 number 18 task 20 28 Program debugger 52 61 Program editor see SEE editor Program execution stopping 83 Program files 26 Program instructions APPROS 127 252 V Language User s Guide BRAKE 83 BREAK 83 CALL 79 CALLS 79 CASE VALUEOF 88 CLOSE 128 CLOSEI 128 DECOMPOSE 126 DELAY 83 DEPART 127 DO UNTIL 90 DRIVE 128 FCLOSE 177 FDELETE 177 FOPEN 176 FOR 89 FSET 179 GETEVENT 178 GOTO 78 HALT 83 HERE 120 IF GOTO 86 IF THEN ELSE 87 MOVE 127 MOVES 127 OPEN 128 OPENI 128 PAUSE 83 POINT 121 PROMPT 142 REACT 80 REACTI 80 RELAX 128 RELAXI 128 SET 121 SIGNAL 145 STOP 83 TEACH 120 TYPE 142 WAIT 80 144 WAIT EVENT 80 WHERE 126 WHILE DO 92 Program in
248. ou in is 49 22 Sample Editing Session o oo e 49 2 3 The Program Debugger ss 52 Entering and Exiting the Debugger o o o o ooo 52 The DEBUG Monitor Command seres 52 Using the Debug Key orthe DEBUG Extended Command 53 Exiting the Debugger o oo 53 The Debugger Display e 54 DebuggerOperation Modes e 55 Debugging Programs es 56 Positioning the Typing Cursor 1 2 ee 56 Debugger Key Commands eee 57 Debug MonitorMode Keyboard Commands 58 Using a Pointing Device With the Debugger 59 Control of Program Execution 0 o o e 59 Single Step Execution 0 oo e e 59 PAUSE INSHUCTIONS soe es die Rhee boi Boe Ra A ROM daa 60 Program BIeaKDOInES See Bye AAA en 60 Program Watchpoints iuo c oh eae duck dee ees 61 3 Data Types and Operators 63 3 l Inoduction ie Seat ine eee TEE ee 64 Dynamic Data Typing and Allocation lessen 64 Variable Name Requirements 00022 eee 64 3 22 Ming Data lyDe wes pce ee aoe eee AAA Pe S 65 ASGII Males a ee ra EE esce e Gee NaN hein 65 Functions That Operate on Sting Data o o o oo 66 33 RealandintegerData Types ee 66 Numeric Representation li
249. ould be to use a string variable in the PROMPT instruction and then use the DECODE and VAL functions to evaluate the input In the following code if digital signal 1033 is on when step 69 is reached the loop will not execute and the program will continue at step 73 If digital signal 1032 is off the loop will execute continually until the signal comes on 65 i 66 Create a busy loop waiting for signal 1033 to turn on 67 68 WHILE NOT SIG 1033 DO 69 70 Wait for signal 71 72 END I 73 Summary of Program Control Keywords 93 4 7 Summary of Program Control Keywords Table 4 1 summarizes the program control instructions Table 4 1 Program Control Operations Keyword Type Function ABORT Program Terminate execution of a control program Instruction CALL Program Suspend execution of the current program and continue Instruction execution with a new program that is a subroutine CALLS Program Suspend execution of the current program and continue Instruction execution with a new program that is a subroutine specified with a string value CASE Program Initiate processing of a CASE structure by defining the Instruction value of interest CLEAR EVENT Program Clear an event associated with the specified task Instruction CYCLE END Program Terminate the specified control program the next time it Instruction executes a STOP program instr
250. ow the slide bar is to be created in mode is replaced with 0 indicating a horizontal slide bar is to be created or updated 1 indicating a slide bar is to be deleted 2 indicating a vertical slide bar is to be created or updated slide id A number that will identify the slide bar This number is returned to the event queue so you can distinguish which slide was moved x y The coordinates of the top left corner of the slide bar len The width or height of the bar max pos Specifies the maximum value the slide bar will return arrow inc Specifies the increment the slide bar should register when the arrows are clicked The slide bar will be created with a scroll handle and scroll arrows handle Specifies position the scroll handle will be in when the slide bar is created GSLIDE Example We will be interested in two events when monitoring a slide bar event 8 slide bar pointer move and event 9 slide bar button up Additional event monitoring must be enabled with the FSET instruction Object must be specified to monitor slide bars and move b2 must be specified to monitor the dragging of the middle button The values returned in the GETEVENT array will be 0 the pointer device event code event 1 the ID of the slide bar as specified by slide id 2 the slide bar value 3 the maximum slide bar value The following code will display and monitor a slide bar Creating a Slide Bar 185 The slide bar will be in the window
251. oxes When a program declares an AUTO or LOCAL variable any GLOBAL variables of the same name created in other programs are not accessible EEE Local AEREA AE Atomatic varia hes Figure 3 1 Variable Scoping Figure 3 2 shows an example of using the various variable classes Notice that MN prog_1 declares a to be GLOBAL Thus it is available to all programs not having an AUTO or LOCAL a prog_2 creates an undeclared variable b By default b is GLOBAL and available to other programs not having a LOCAL or AUTO b prog_3 declares an AUTO a and will not be able to use GLOBAL a After prog_3 completes the value of AUTO a is deleted prog_4 declares a LOCAL a and therefore will not be able to use GLOBAL a Unlike the AUTO a in prog_3 however the value of LOCAL a is stored and is available for any future CALLs to prog_4 Variable Classes 71 PROGRAM prog 1 de raid GLOBAL a all programs a 4 not having AUTO CALL prog_2 or LOCAL a PROGRAM prog 2 GLOBAL a a 7 b e 12 CALL prog 3 PROGRAM prog 3 AUTO a a 23 a AUTO defined ee T for each time prog i b GLOBAL to program is called all programs not having AUTO PROGRAM prog 4 or LOCAL b LOCAL a a 2 CALL prog_3 PROGRAM prog 3 AUTO a LOCAL defined duet D en a AUTO defined once for
252. p window down a few lines Esc B Go to bottom of program Ctrl B T Bump window up a few lines Esc T Go to top of program Ctrl T Up a line Down a line Alt A Series Up a few lines Alt A Series Down a few lines Up to top of window Down to bottom of window lt n gt L Move to line lt n gt Space Right one character Esc Space Right to next item Tab Back Space Left one character Esc Back Space Esc Tab Left to previous item Return Go to start of next line Esc Return Close line and go to column 1 Basic SEE Editor Operations 45 Table 2 3 Cursor Movement in Command Mode Continued Key Action comma Go to beginning of line period Go to end of line lt n gt J Jump to column lt n gt S lt char gt Skip to character lt char gt Skip to semicolon Table 2 4 lists the actions keystrokes will perform when the editor is in Command mode The characters in the column labeled Char Codes are defined as follows M The command changes edit mode from Command mode to either Insert mode or Replace mode as indicated in the table M The command changes the mode as indicated only until the next charac ter is typed and then the editor returns to Command mode R The command can be executed when the program is being viewed in read only mode Table 2 4 SEE Editor Command Mode Operatio
253. peed and decelerate to a stop at the end of the motion Robot performance is a function of the SPEED settings and the following factors e The robot acceleration profile and ACCEL settings The default acceleration pro file is based on a normal maximum rate of acceleration and deceleration The ACCEL command can scale down these maximum rates so the robot accelera tion and or deceleration takes more time You can also define optional acceleration profiles that alter the maximum rate of change for acceleration and deceleration using the SPEC utility The location tolerance settings COARSE FINE NULL NONULL for the move The more accurately a robot must get to the actual location the more time the move will take For AdeptMotion VME devices the meaning of COARSE FINE is set with the SPEC utility Any DURATION setting DURATION forces a robot move to take a minimum time to complete regardless of the SPEED settings The maximum allowable velocity For Adept robots this is factory set For AdeptMotion VME devices this is set with the SPEC utility The inertial loading of the robot and the tuning of the robot Straight line vs joint interpolated motions for complex geometries straight line and joint interpolated paths produce different dynamic responses and therefore different motion times Robot performance for a given application can be greatly enhanced or severely degraded by the
254. pressing will be received by the program Thus you cannot issue any debugger commands at such times Positioning the Typing Cursor The typing cursor is positioned in the debug window when The program debugger is initiated Task execution is initiated or terminated in the later case the edit window will be moved as required to include the execution pointer The Redraw S F6 or Undo F6 key is pressed in debug monitor mode The debugger is switched from editor mode to monitor mode The Program Debugger 57 The typing cursor is positioned in the edit window when e Any function key operation other than Redraw S F6 or Undo F6 is per formed during debug monitor mode Note that this includes all the keys nor mally used to move the cursor in the edit window such as the arrow keys The debugger is switched from monitor mode to edit mode e With A series systems the typing cursor is positioned in the edit window if you click the pointer device anywhere in that window Debugger Key Commands Table 2 3 and Table 2 4 list all the keys interpreted as commands by the V SEE editor Except for the differences described below all the keys listed in those tables have exactly the same effect with the debugger in either of its modes as they do when used with the SEE editor detailed earlier in this chapter NOTE While using the debugger the following keys are particularly useful for moving to different programs
255. ptVision VisionWare AdeptMotion MotionWare AdeptForce AIM V and V are trademarks of Adept Technology Inc Any trademarks from other companies used in this publication are the property of those respective companies Printed in the United States of America Table of Contents OC IntrOduc HOI so iecore gee al rl air 1 Compatibility zo fice beeen ele bit ee ee eee Sie REX ee e 2 Manual Overview ita o v eo a a a eo eo a Ru 2 Related Publications 0 oo 3 Notes Cautions and Wamings es 4 Safety atea aa os Gee 6 E tana ie nai Da 4 Reading and Training for System Users lll ooo 4 System Safeguards ooo 5 ComputerControlled Robots 0 ooo o 5 Manually Controlled Robots o ooo ooo 5 OtherComputerControlled Devices 0 o ooo eee 5 Notations and Conventions e e 6 Keyboard Keys ooooooseee 6 Uppercase and Lowercase Letters 0 o o 6 Numeric Arguments sasaaa aaa 7 OutputControlCommands 1 ee 8 HowCanlGetHelp Laua 9 Within the Continental United States 0 o o 9 Service Calls usara ate aa dra RR eid ea 9 Application Questions o oo ee 9 Training Information ns See a oE o RE eR ee 9 Within EUrOpe seire od ae OM a a a E ae aw a 9 Outside Continental United States or Europe 9 Adept Bul
256. r Tracking Belt Relative Motion Instuctions To define a robot motion relative to a conveyor belt or to define a relative transformation with respect to the instantaneous location of a moving frame of reference a belt variable can be used in place of a regular transformation in a compound transformation For example the instruction MOVES belt loc 1 directs the robot to perform a straight line motion to location loc 1 which is specified relative to the location defined by the belt variable belt If a belt variable is specified it must be the first that is leftmost element in a compound transformation Only one belt variable can appear in any compound transformation Motions relative to a belt can be only of the straight line type Attempting a joint interpo lated motion relative to a belt causes an error and halts execution of the application pro gram Except for these restrictions motion statements that are defined relative to a belt are treated just like any other motion statement In particular continuous path motions rela tive to belts are permitted Once the robot has been moved to a destination that is defined relative to a belt the robot tool will continue to track the belt until it is directed to a location that is not relative to the belt For example the following series of instructions would move the tool to a location relative to a belt open the hand track the belt for two seconds close the hand a
257. rUC tio rl ucc ne Lk e ea doe 178 9 3 Building a Menu Stuctule o ee 180 Menu Example intake ea ala a Pa a eee ee eae 180 9 4 Creating Buttons oo 182 GPANELInstruction 2 0 0 0 ce ee 182 Button Example c 405422 25 ea ee beak Oa ee a EAE Y 182 95 Creating a Side Bar lisse sns 184 GSUDE Example s 184 9 6 Graphics Programming Considerations 186 Using IO STAT 5 as ec Ree ot one ede nda RR lotos 186 Managing Windows ee 187 9 7 Communicating With the System Windows 188 The Main Window ns 188 The Monitor Window ee 188 The Vision Window ee 188 9 8 Additional Graphics Instuctons 190 Programming the MCP 191 10 1 Inroduction 0 o o 192 ATIACHing and DETACHing the Pendant 192 10 2 Writing to the Pendant Display 192 The Pendant Display o o o lees 192 Using WRITE With the Pendant sells 192 10 3 Detecting Userinput 0 0 0 0 0 0 o oc 193 Using READ With the Pendant llle 193 Detecting Pendant Button Presses 0 0 00 eee eee 194 Keyboard Mode 1 0 0 0 194 TOGO EMO is ik ois Poe ea wes E TI Bat ee won 194 Level MOdes mece ds SN as tae te a Di de ane te ih a 195 Table of Contents Xi
258. ractional parts When an integer is required a real value may be used and the fractional part of the value is ignored 6 Arguments indicated as being scalar variables can be satisfied with a real value that is one with integer and fractional parts except where noted Scalars can range from 9 22 10 to 9 22 10 in value displayed as 9 22E18 and 9 22E18 1 See the IPS instruction for a special case of specifying robot speed in inches per second a Dampers specifically declared to be double precision values can range from 2 210 995 to 18 10 8 Introduction Output Control Commands The following special commands control output to the system terminal For all these com mands which are called control characters the control Ctrl key on the terminal is held down while a letter key is pressed The letter key can be typed with or without the Shift key Unlike other V commands control characters do not need to be completed by press ing the Enter or Return key Ctrl C Ctrl S Ctrl Q Ctrl O Ctrl W Ctrl Z Ctrl R Ctrl U Aborts some commands for example DIRECTORY LISTP STORE If any input has been entered at the keyboard since the current command was initiated then the first Ctrl C cancels that pending input and the second Ctrl C aborts the current command Ctrl C cannot be used to abort program execution Enter the ABORT or PANIC command at the keyboard to stop the robot program or press one of th
259. ram provides the operator with a menu of operation selections on the system terminal After accepting input from the keyboard the program executes the desired operation In this case the menu items include execution of the pick and place program teaching locations for the pick and place program and returning to a main menu SIDE EFFECTS The pick and place program may be executed and locations may be defined AUTO choice quit Sanswer Gl quit FALSI DO TYPE C2 PICK AND PLACE OPERATIONAL MENU TYPE C1 1 gt Initiate pick and place TYPE C1 2 gt Teach locations TYPE Cl 3 gt Return to previous menu C1 PROMPT Enter selection and press RETURN Sanswer choice VAL Sanswer Convert string to number CASE choice OF Process menu request VALUE 1 j selection 1 TYPE C2 Initiating Operation CALL move parts VALUE 2 Selection 2 CALL teach VALUE 3 selection 3 quit TRUE ANY P any other selection TYPE B C1 Invalid input END End of CASE structure UNTIL quit End of DO structure 224 Appendix A Example V Programs A 3 Teaching Locations With the MCP This program demonstrates how an operator can teach locations with the manual control pendant thus allowing the controller to operate without a system terminal The two line liquid crystal display LCD of the pendant is u
260. re CPOFF PI Instruct the V system to stop the robot at the completion of the next motion instruction for all subsequent motion instructions and null position errors CPON PI Instruct the V system to execute the next motion instruction or all subsequent motion instructions as part of a continuous path DECOMPOSE PI Extract the real values of individual components of a location value DELAY PI Cause robot motion to stop for the specified period of time DEPART PI Start a joint interpolated robot motion away from the current location DEPARTS PI Start a straight line robot motion away from the current location DEST TF Return a transformation value representing the planned destination location for the current robot motion DISTANCE RF Determine the distance between the points defined by two location values DRIVE PI Move an individual joint of the robot DRY RUN S Control whether or not V communicates with the robot DURATION PI Set the minimum execution time for subsequent robot motions DURATION RF Return the current setting of one of the motion DURATION specifications DX RF Return a displacement component of a given transformation value PI Program Instruction RF Real Valued Function TF Transformation Function S Switch P Parameter PF Precision Point Function SF String Function CF Conversion Factor Summary of Motion Keywords 137 Ta ble 7 1 Motion Control Operations Continued
261. red by the program that begins executing This information includes The name and step number of the calling program e Data necessary to access subroutine arguments The values of any automatic variables specified in the called program The V system allows you to explicitly allocate storage to the stack for each program task Thus the amount of stack space can be tuned for a particular application to optimize the use of system memory Stacks can be made arbitrarily large limited only by the amount of memory available on your system Stack Requirements When a Vt program is executed in a given task each program stack is allocated six kilo bytes of memory This value can be adjusted once the desired stack requirements are determined by using the STACK monitor command for example in a start up monitor command program 22 Chapter 1 Programming V One method of determining the stack requirements of a program task is simply to execute its program If the program runs out of stack space it will stop with the error message Too many subroutine calls or Not enough stack space If this happens use the STACK monitor command to increase the stack size and then issue the RETRY monitor command to continue program execution In this case you do not need to restart the program from the beginning The STATUS command will tell you how much stack space a failed task requested Alternatively you can start by setting a
262. relate to the space the motion device operates in Location Vanables Locations can be specified in two ways in V transformations and precision points A transformation is a set of six components that uniquely identifies a location in Cartesian space and the orientation of the motion device end of arm tooling at that location A transformation can also represent the location of an arbitrary local reference frame A precision point includes an element for each joint in the motion device Rotational P P joint values are measured in degrees translational joint values are measured in millime ters These values are absolute with respect the motion device s home sensors and cannot be made relative to other locations or coordinate frames Coordinate Systems Figure 7 1 shows the world coordinate system for an Adept SCARA robot and an Adept Cartesian robot Ultimately all transformations are based on a world coordinate system The V language contains several instructions for creating local reference frames building relative transformations and changing the origin of the base world coordinate frame Therefore an individual transformation may be relative to another transformation a local reference frame or an altered base reference frame Different robots and motion devices will designate different locations as the origin of the world coordinate system See the user s guide for Adept robots or the device module doc umentation for
263. resses are detected with the PENDANT function This function returns the number of the first acceptable button press The interpretation of a button press is determined by the KEYMODE instruction See the V Language Reference Guide for complete details The basic use of these two operations is described below Keyboard Mode The default mode is keyboard If a PENDANT instruction requests keyboard input the button number of the first keyboard type button pressed will be returned See Figure 10 1 for the numbers of the buttons on the MCP The following code will detect the first soft button pressed Set the soft keys to keyboard mode KEYMODE 1 5 0 Wait for a button press from buttons 1 5 DO button PENDANT 0 UNTIL button lt 6 The arguments to the KEYMODE instruction indicate that pendant buttons 1 through 5 are to be configured in keyboard mode The 0 argument to the PENDANT function indicates that the button number of the first keyboard button pressed is to be returned Toggle Mode To detect the state of a button in toggle mode the PENDANT function must specify the button to be monitored When a button is configured as a toggle button its state is maintained as on 1 or off 0 The state is toggled each time the button is pressed If an LED is associated with the button it is also toggled The following code sets the REC DONE button to toggle
264. ression is true ELSE code block executed when expression is false END expression is any well formed boolean expression described above In the following example if program execution reaches step 59 and num_parts is greater than 75 step 60 will be executed Otherwise execution will resume at step 62 56 57 CALL check num if num parts is greater than 75 58 59 IF num parts 75 THEN 60 CALL check num num parts 61 END 62 a In the following example if program execution reaches step 37 with input signal 1033 on and need_part true the program will execute steps 38 to 40 and resume at step 44 Otherwise it will execute step 42 and resume at step 44 32 A 33 If 1 0 signal 1033 is on and Boolean need_part is 34 true then pick up the part 35 else alert the operator 36 37 IF SIG 1033 AND need part THEN 38 MOVE locl 39 CLOSEI 40 DEPART 50 41 ELSE 42 TYPE Part not picked up 43 END 44 88 Chapter 4 Program Control CASE VALUE OF The IF THEN ELSE structure allows a program to take one of two different actions The CASE structure will allow a program to take one of many different actions based on the value of a variable The variable used must be a real or integer The form of the CASE structure is CASE target OF VALUE list of values code block executed when target is in list of values VAL
265. ride O NO Er aes Gee Pent at 109 Viewing Switch Settings o ooo 109 Setting Switches lens 109 Summary of Basic System Switches 0 00000 eee eee 110 106 6 1 Chapter 6 Switches and Parameters Intoduction 6 2 System parameters determine certain operating characteristics of the V system These parameters have numeric values that can be changed from the command line or from within a program to suit particular system configurations and needs The various parame ters are described in this chapter along with the operations for displaying and changing their values System switches are similar to system parameters in that they control the operating behavior of the V system Switches differ from parameters however in that they do not have numeric values Switches can be set to either enabled or disabled which can be thought of as on and off respectively All the basic system switches are described in this chapter The monitor commands and program instructions that can be used to display and change their settings are also pre sented Parameters See the V Language Reference Guide for more detailed descriptions of the keywords dis cussed here Whenever a system parameter name is used it can be abbreviated to the minimum length required to identify the parameter For example the HAND TIME parameter can be abbreviated to H since no other parameter n
266. rigin PROMPT Place robot at point on the assm x axis Sans HERE loc x axis Record point on x axis PROMPT Place robot at point in positive y direction Sans HERE loc pos y Record positive y direction Create the local reference frame assm frame SET assm frame FRAME loc origin loc x axis loc pos y loc origin Teach the locations on the assembly PROMPT Place the robot in the first location Sans HERE assm frame loc 1 Record the first location 126 Chapter 7 Motion Control Operations PROMPT Place the robot in the second location Sans HERE assm frame loc 2 Record the second location etc Move to the locations on the assembly ATTACH Re attach the robot APPRO assm frame loc 1 25 MOVE assm frame loc 1 Activate gripper DEPART 25 APPRO assm frame loc 1 25 MOVE assm frame loc 2 Activate gripper DEPART 25 In the above example the frame will need to be taught each time the assembly moves the locations on the assembly need to be taught only once The instruction HERE assm frame loc 1 tells the system to record the location loc 1 relative to assm frame rather than relative to the world coordinate frame If a sub assembly is being built relative to loc 1 the instruction HERE assm frame loc 1 sub loc 1 will create a compound transformation where sub loc 1 is relative to the transformation ass
267. rmation arrays up to three dimensions can be declared dynamically Variable Name Requirements The requirements for a valid variable name are 1 Adept reserved keywords by cannot be used Chapter 1 of the V Language Ref erence Guide lists the basic keywords reserved by Adept If you have AdeptVi sion VME Chapter 1 of the AdeptVision Reference Guide lists the additional reserved words used by the vision system 2 The first character of a variable name must be a letter 3 Allowable characters after the first character are letters numbers periods and the underline character 4 Only the first 15 characters in a variable name are significant The following are all valid variable names x count dist to part 33 ref frame The following names are invalid for the reasons indicated 3x first character not a letter one amp two amp is an invalid name character pi reserved word this is a long name too many characters All but the last of these invalid names would be rejected by V with an error message The extra long name would be truncated without warning to this is a long String Data Type 65 3 2 String Data Type Variable names are preceded with a sign to indicate that they contain string data The program instruction Sstring_name Adept V allocates the string variable string_name if it had not previously been allocated and assigns it the value Adept V Numbers can be used as
268. rminal or the Exit F4 key on an A series keyboard If your program is executable you will be returned to the system prompt without any fur ther messages If any lines of code in the program have failed the syntax check the status line will display the message Program not executable Press RETURN to continue T Programs are open in read only mode when R is appended to the SEE command when the program is opened or when a currently executing program is open 16 1 3 Chapter 1 Programming V Pressing will return you to the system prompt You may also get the message Control structure error at step xx This indicates that a control structure described in Chapter 4 has not been properly ended Pressing J will return you to the system prompt but the program you have been editing will not be executable You cannot exit the editor with lines in the copy buffer To discard unwanted lines 1 Put the editor in command mode 2 Enter the number of lines to discard and press Esc and then k Saving a Program When you exit the SEE editor changes to the program you were working on are saved only in system memory To permanently save a program to disk use one of the STORE commands described in the V Operating System User s Guide Vt Program Types There are two types of V programs Executable Programs Command Programs Executable programs are described in this section Command programs
269. rmine when the attach has completed If a task is already attached to a logical unit it will get an error immediately if it attempts to attach again without detaching regardless of the type of wait mode specified When a program is finished with a device it should detach the device with the DETACH program instruction This allows other programs to process any pending I O operations When a control program completes execution normally all I O devices attached by it are automatically detached If a program stops abnormally however most device attach ments are preserved If the control program task is resumed and attempts to reattach these logical units it may fail because of the attachments still in effect The KILL monitor com mand forces a program to detach all the devices it has attached If attached by a program the terminal and manual control pendant are detached when ever the program halts or pauses for any reason including error conditions and single step mode If the program is resumed the terminal and the manual control pendant are automatically reattached if they were attached before the termination NOTE It is possible that another program task could have attached the terminal or manual control pendant in the meantime That would result in an error message when the stopped task is restarted Serial and Disk VO Basics 149 Reading The READ instruction processes input from all devices The basic READ instruction issues
270. rn the value of two bytes of a string interpreted as a signed 16 bit binary integer MAX Return the maximum value contained in the list of values MIN Return the minimum value contained in the list of values OUTSIDE Test a value to see if it is outside a specified range PI Return the value of the mathematical constant pi 3 141593 RANDOM Return a pseudorandom number SIGN Return the value 1 with the sign of the value parameter SIN Return the trigonometric sine of a given angle SOR Return the square of the parameter SORT Return the square root of the parameter Examples of Arithmetic Functions The instructions a jg x SORT VAL Sa will result in x having a value of 4 The instruction x INT RANDOM 10 will create a pseudorandom number between 0 and 10 102 Chapter 5 Functions 5 5 Logical Functions The functions listed in Table 5 3 return boolean values These functions require no arguments and essentially operate as system constants Table 5 3 Logical Functions Keyword Function FALSE Return the value used by V to represent a logical false result OFF Return the value used by V to represent a logical false result ON Return the value used by V to represent a logical true result TRUE Return the value used by V to represent a logical true result 5 6 System Control Functions The functions listed in Table 5
271. ruction The details of subrou tine creation execution and parameter passing are covered in section 1 8 on page 23 The simplified syntax for a CALL instruction is CALL program arg_list program is the name of the program to be called The program name must be spec ified exactly and the program being CALLed must be resident in system memory arg_list is the list of arguments being passed to the subroutine These arguments can be passed either by value or by reference and must agree with the arguments expected by the program being called Subroutines and argu ment lists are described in section 1 8 on page 23 The code 48 49 CALL check_data locx locy length 50 will suspend execution of the calling program pass the arguments locx locy and length to program check_data execute check_data and after check_data has completed execution resume execution of the calling program at step 50 CALLS The CALLS instruction is identical to the CALL instruction except for the specification of program For a CALLS instruction programis a string value variable or expression This allows you to call different subroutines under different conditions using the same line of code These different subroutines must have the same arg_list The code 47 2 48 Sprogram_name program list program select 49 CALLS program name length width 50 will suspend execution of the calling program pass
272. s not program instructions Additional Program Interrupt Instructions You can specify a parameter in the instruction line for the I O instructions ATTACH READ GETC and WRITE that causes the program to suspend until the I O request has been successfully completed 84 Chapter 4 Program Control Program Intemupt Example The following example shows how the task and program priority scheme works It also shows how the asynchronous and program interrupt instructions work within the priority scheme The example makes the following simplifying assumptions Task 1 runs in all time slices at priority 30 Task 2 runs in all time slices at priority 20 All system tasks are ignored All system interrupts are ignored The illustration shows the time lines of executing programs A solid line indicates a pro gram is running and a dotted line indicates a program is waiting The Y axis shows the program priority The X axis is divided into 16 millisecond major cycles The example shows two tasks executing concurrently with REACT routines enabled for each task Note how the LOCK instructions and triggering of the REACT routines change the program priority The sequence of events for the example is QG Task 1 is running program prog_a at program priority 0 A reaction program based on signal 1003 is enabled at priority 5 Signal 1003 is asserted externally The signal transition is not detected until the next major cycle
273. s and programs 24 Chapter 1 Programming V including across CPUs in multiple CPU systems See Soft Signals on page 145 for details The third method of exchanging information is through the program argument list This method gives you better control of when variables are changed It also eliminates the requirement that the variable names in the calling program be the same as the names in the subroutine The following sections describe exchanging data through the program parameter list Argument Passing There are two important considerations when passing an argument list from a calling pro gram to a subroutine The first is making sure the calling program passes arguments in the way the subroutine expects to receive them mapping The second is determining how you want the subroutine to be able to alter the variables passing by value or reference Mapping the Argument List An argument list is a list of variables or values separated by commas The argument list passed to a calling program must match the subroutine s argument list in number of argu ments and data type of each argument see Undefined Arguments on page 26 The variable names do not have to match When a calling program passes an argument list to a subroutine the subroutine does not look at the variable names in the list but the position of the arguments in the list The argument list in the CALL statement is mapped item for item to the argument list of
274. s appear from top to bottom The relationship between these two uses of FSET will become clear when we actually build a menu structure The basic FSET instruction for monitoring menu and mouse events is FSET glun EVENT BUTTON MENU 180 Chapter 9 Graphics Programming 9 3 Building a Menu Structure The strategy for implementing a menu is 1 Declare the top level bar menu 2 Start a loop monitoring event 14 menu selection 3 When event 14 is detected check to see if the mouse event was on the top level bar menu or on a pull down option 4 If the event was a top level menu selection then display the proper pull down options 5 If the event was a pull down selection use nested CASE structures to take appropriate action based on the selections made to the top level menu and its corresponding pull down menu Menu Example This code segment will implement a menu structure for a window open on glun Set the top level menu bar and enable monitoring of events FSI FSI T glun menu Menu 1 Menu 2 Menu 3 T glun event button menu m m Define the strings for the pull down menus menu 1 Item 1 1 Item 1 2 menu 2 Item 2 1 Item 2 2 Item 2 3 menu 3 Quit Set variable for event to be monitored wn e menu 14 Start the processing loop Lu quit FALSI DO GETEVENT glun event IF event 0 wn e menu THEN
275. s between the methods the editor uses to respond to invalid lines Changes the access mode for the current program to read only mode Changes the access mode for the current program to read write mode Displays the current cursor column number The current cursor line number is always displayed on the information line at the bottom of the Sample Editing Session 49 Edit Macros Edit macros allow you to perform the same sequence of editor commands or enter the same sequence of text characters several times during an editing session Two edit macros can be defined at the same time Either macro can be invoked from any point in the definition of the other macro except that such linking is not permitted to be recursive That is a macro cannot call itself and a called macro cannot call the other macro The following commands are used to define and apply the macros All these commands can be used when viewing a program in read only mode but cannot perform any actions disallowed in read only mode Press the space bar to abort an executing macro Key s Action Esc U Define the U macro The prompt Macro Ctrl Z ends is displayed on the editor command line Press the keys you wish to have recorded in exactly the sequence they are to be processed to perform the desired operations When you have finished entering the macro definition enter Ctrl Z NOTE It may be easier to manually perform the seque
276. s can be read by the GETC function in which case their normal action is sup pressed Char Decimal Name Action Ctrl C 03 Abort the current monitor command Ctrl H 08 Backspace Delete the previous input character Ctrl I 09 Tab Move to the next tab stop Ctrl M 13 Return Complete this input line Ctrl R 18 Retype the current input line Ctrl U 21 Delete the entire current line Ctrl W 23 Start stop slow output mode Ctrl Z 26 Complete this input with an end of file error DEL 127 Delete Delete the previous input character During a PROMPT or READ instruction all control characters are ignored except those listed above Tab characters are automatically converted to the appropriate number of 1 Terminal behavior is configurable using the FLUSH and FLOW arguments to the FSET instruction See the V Language Reference Guide 144 8 2 Chapter 8 Input Output Operations space characters when they are received Tab stops are assumed to be set every eight spaces at columns 9 17 25 and cannot be changed The most significant bit of each byte is forced to zero Unlike PROMPT both READ and GETC require that the terminal be ATTACHed Normally READ and GETC echo input characters as they are processed An optional mode argument for each of these operations allows echo to be suppressed Output Processing Output to the system terminal can be performed using PROMPT TYPE or WRITE instructions All eight bit binary
277. s record can be computed by byte position 1 record number 1 record length Random access is selected by setting the random access bit in the mode parameter of the FOPEN instruction A non zero record length must also be specified A specific record is accessed by specifying the record number in a READ or WRITE instruction If the record number is omitted or is zero the record following the one last accessed is used see the FOPEN description in the V Language Reference Guide NOTE Logically each disk file appears to be simply a sequence of bytes These bytes are interpreted as grouped into records according to the manner in which the file was opened Files do not contain record format information so any file can be opened in any record mode Thus it is the programmer s responsibility to make sure files are read with the same record format as was used to create the file Buffering and I O Overlapping All physical disk I O occurs as 512 byte sector reads and writes On input records are unpacked from the sector buffer and additional sectors are read as needed to complete a record To speed up read operations V automatically issues a read request for the next sector while it is processing the current sector This request is called a pre read Pre read is selected by default for both sequential access and random access modes It can be dis abled by setting a bit in the mode parameter of the FOPEN_ instruction If pre
278. s the belt encoder offset that must be set in order to grasp an object identified by the vision system The DEVICE real valued function also returns latched or unlatched encoder values for use with SETBELT The encoder offset is set with the SETBELT program instruction as described later The Belt Window The belt window controls the region of the belt in which the robot is to work A window is a segment of the belt bounded by two planes that are perpendicular to the direction of travel of the belt Note that a window has limits only in the direction along the belt Within Vt a belt window is defined by two transformations with a WINDOW program instruction The window boundaries are computed by V as planes that are perpendicular to the direction of travel of the belt and that pass through the positions defined by the transformations Basic Programming Concepts 213 If the robot attempts to move to a belt relative location that has not yet come within the window is upstream of the window the robot can be instructed either to pause until it can accomplish the motion or immediately generate a program error If a destination moves out of the window is downstream of the window itis flagged as an error con dition and the application program can specify what action is to be taken See the descrip tion of the BELT MODE system parameter in V Language Reference Guide If the normal error testing options are selected whenever t
279. se settings For example A heavily loaded robot may actually show better performance with slower SPEED and ACCEL settings which will lessen overshoot at the end of a move and allow the robot to settle more quickly Applications such as picking up bags of product with a vacuum gripper do not require high accuracy and can generally run faster with a COARSE tolerance Tool Transformations 133 Motion Modifiers The following instructions modify the characteristics of individual motions These instructions are summarized in Table 7 1 ACCEL BRAKE BREAK COARSE FINE DURATION SPEED ABOVE BELOW CPON CPOFF FLIP NOFLIP LEFTY RIGHTY NULL NONULL SINGLE MULTIPLE Instructions that can take ALWAYS as an argument 7 5 Tool Transformations A tool transformation is a special transformation that is used to account for robot grippers or parts held in grippers that are offset from the center of the robot tool flange If a loca tion is taught using a part secured by an offset gripper the actual location recorded is not the part location but the center of the tool flange the offset gripper is attached to see Figure 7 8 If the same location is taught with a tool transformation in place the location recorded will be the center of the gripper not the center of the tool flange This allows you to change grippers and still have the robot reach the correct location Figure 7 8 shows the location of the robot when a location is taught and
280. sed to prompt the operator for the loca tions to be taught The operator can then manually position the robot at a desired location and press a key on the pendant The program automatically records the location for later use in this case for the pick and place program Features Intoduc ed Prog e Subroutine parameters e Attachments and detachments Manual control pendant interaction e WAIT instruction Location definition within a program ra m Listing PROGRAM teach pick place start ABSTRACT This program is used for teaching the locations pick place and start for the move parts program INPUT PARAM None OUTPUT PARAM pick place and start SIDE EEE ECTS Robot is detached while this routine is active AUTO clear display Sclear display CHR 12 CHR 7 ATTACH 1 Connect to the pendant DETACH 0 Release control of the robot Output prompt to the display on the manual control pendant WRITE 1 Sclear display Move robot to START amp press RECORD WRITE 1 X17 RECORD SCHR 5 S WRITE 1 SCHR 30 SCHR 3 S Blink LED on control pendant WAIT PENDANT 3 Wait for key to be pressed HERE start Record the location start Prompt for second location WRITI WRITI 1 clear display Move robot to PICK press RECORD 1 X17 RECORD SCHR 5 S B p WAIT PENDANT 3 Wait f
281. set The Belt Window Belt Relative Motion Instructions Motion Termination Defining Belt Relative Locations Moving Line Programming Instuctionsand Functions Belt Variable Definition Encoder Position and Velocity Information Window Testing Status Infomation System Switch uaaa a System Parameters auaa aaa a Sample Programs ococcoccoo oo 209 210 211 212 212 212 214 214 215 215 215 216 216 216 216 216 217 217 208 Chapter 11 Conveyor Tracking This chapter describes the Adept Conveyor Tracking moving line feature The moving line feature allows the programs to specify locations that are automatically modified to compensate for the instantaneous position of a conveyor belt Motion locations that are defined relative to a belt can be taught and played back while the belt is stationary or moving at arbitrarily varying speeds Conveyor tracking is available only for systems that have the optional V Extensions software For V to determine the instantaneous position and speed of a belt the belt must be equipped with a device to measure its position and speed As part of the moving line hardware option Adept provides an encoder and an interface for instrumenting two sep arate conveyor belts Robot motions and locations can be specified relat
282. settings at system power up are given in the switch descriptions below The switch settings are not affected by the ZERO command Optional enhancements to your V system may include additional system switches If so they are described in the documentation for the options The system switches are Ta ble 6 2 Basic System Switches Switch Use BELT Used to turn on the conveyor tracking features of V if the option is installed This switch must be enabled before any of the special conveyor tracking instructions can be executed When BELT is disabled the conveyor tracking software has a minimal impact on the overall performance of the system Default is disabled CP Enable disable continuous path motion processing see page 129 Default is enabled DRY RUN Enable disable sending of motion commands to the robot Enable this switch to test programs for proper logical flow and correct external communication without having to worry about the robot running into something Also see the TRACE switch which is useful during program checkout The manual control pendant can still be used to move the robot when DRY RUN is enabled Default is disabled FORCE Controls whether the optional stop on force feature of the V system is active Default is disabled INTERACTIVE Suppresses display of various messages on the system terminal In particular when the INTERACTIVE switch is disabled
283. specify the orientation of the end of arm tooling These three components are yaw pitch and roll These elements are figured as ZYZ Euler values Figures 7 3 through 7 5 demonstrate how these values are interpreted Location Variables 117 Yaw Yaw is a rotation about the local reference frame Z axis This rotation is not about the pri mary reference frame Z axis but is centered at the origin of the local frame of reference Figure 7 3 shows the yaw axis with a rotation of 30 Note that it is parallel to the primary reference frame Z axis but may be centered at any point in that space In this example the yaw value is 30 resulting in a transformation with the value X 30 Y 100 Z 125 yaw 30 pitch 0 and roll 0 When you are using a robot the local frame of reference defined by the XYZ components is located at the end of the robot tool flange This local reference frame is referred to as the tool coordinate system In Figure 7 3 the large Cartesian space represents a world coor dinate system The small Cartesian space represents a local tool coordinate system that would be centered at the motion device tooling flange Figure 7 3 Yaw 118 Chapter 7 Motion Control Operations Pitch Pitch is defined as a rotation about the local reference frame Y axis after yaw has been applied Figure 7 4 shows the local reference frame with a yaw of 30 and a pitch of 40 For example deflection of a
284. strings with a program instruc tion such as Snumeric_string 13 5 where numeric _string is assigned the value 13 5 The program instruction Snumeric_string 13 5 will result in an error since you are attempting to assign a real value to a string variable The following restrictions apply to string constants e g a string e ASCII values 32 space to 126 are acceptable e ASCII 34 cannot be used in a string Strings can contain from 0 to 128 characters String variables can contain values from 0 to 255 see Appendix C for the interpretation of the full character set The following are all valid names for string variables Sx Sprocess Sprototype names Spart_l The following names are invalid for strings for the reasons indicated 3x first character not a letter Sone two is an invalid name character factor prefix missing S this is a long name too many characters All but the last of these invalid names would be rejected by V with an error message The extr long name would be truncated without warning to Sthis is a long ASCII Values An ASCII value is the numeric representation of a single ASCII character See Appendix C for a complete list of the ASCII character set An ASCII value is specified by prefixing a character with an apostrophe Any ASCII character from the space character decimal value 32 to the tilde character decimal value 126 can be used as an ASCI
285. t if the file is open in fixed length record mode as long as the length is less than about 90 3 READ or WRITE variable length records using that logical unit The following V commands and instructions can be used to access files with Kermit FCOPY FOPENR STOREL VLOAD FDELETE FOPENW STOREP VSTORE LOAD FOPEND FDIRECTORY FLIST STORER STORE STORES Binary files Disk files created by the V system are called ASCII files because the files contain only ASCII characters V application programs and other computers can create non ASCII disk files which contain information that is not interpreted as ASCII characters Such files are often called binary files When Kermit is transferring normal text ASCII files the file contents are not adversely affected if the eighth bit of a byte is corrupted For example the serial line hardware would affect the eighth bit if parity checking is enabled since that bit is used for the parity information However when binary files need to be transferred the eighth bit of each byte must be pre served Thus the serial line parity must be set to no parity that is the serial ports on both the V system and the remote system must be set Also the Kermit file mode must be set to binary The parity mode for the V serial ports is set with the Adept controller configuration pro gram CONFIG_C You may be able to set the modes on the remote system by perform ing the followi
286. t will lock out any lower priority tasks in its time slice Thus programs that execute in a continuous loop should generally execute a WAIT or WAIT EVENT instruction occasion ally for example once each time through the loop This should not be done of course if timing considerations for the application preclude such execution delays If a program potentially has a lot of critical processing to perform its task should be in multiple slices and the task should have the highest priority in these slices This will guar antee the task s getting all the time needed in the multiple slices plus if needed addi tional unused time in the major cycle Figure 1 4 shows the task scheduler algorithm This flow chart assumes that the servo task is configured to run every 1ms and no task issues a RELEASE instruction Actually at the point marked run servos any system level interrupts are processed in motion sys tems the servo task is generally the most likely to interrupt and is the most time consum ing system task e slice 0 slice Slice 4 1 A Scheduling of Program Execution Tasks 31 no run servos until complete or slice is up run task until Y task completes P or time slice is up yes can current task run look ahead for l runnable task make highest in any other priority task time slice in slice or round robin group the current task
287. t TOOL command or instruction TRANS TF Return a transformation value computed from the given X Y Z position displacements and y p r orientation rotations TRANSB TF Return a transformation value represented by a 48 byte string PI Program Instruction RF Real Valued Function TF Transformation Function S Switch P Parameter PF Precision Point Function SF String Function CF Conversion Factor Input Output Operations Teminal I O Digital I O Pendant O Analog V O Serial and Disk I O Basics Disk I O Advanced Disk Operations Serial Line VO DDC MP Communication Protocol Kermit Communication Protocol Summary of I O Operations BERESREES 171 142 Chapter 8 Input Output Operations 8 1 Terminal I O The program instruction used to output text to the monitor screen is TYPE The program line TYPE This is a terminal output instruction will output the text between the quotation marks to the current cursor location If a vari able x has a value of 27 the instruction TYPE The value of x is x will output The value of x is 27 to the monitor The TYPE instruction has qualifiers for entering blank spaces and moving the cursor The instruction T TYPE C34 U17 This is the screen center will enter 34 carriage ret
288. t a part is present Pick up the part Place the part at a new location on the belt Return to a rest location to wait for the next part CAUTION These programs are meant only to illustrate programming techniques useful in typical applications Moving line programs are hard ware dependent because of the belt parameters so care must be exercised if you attempt to use these programs PROGRAM TO R Setup bel ENABL F BEL ELOCAT F t parameters PARAM ET ER B ELT MOD F 0 belt scale Define belt twice 0 03067 0 se PART ON CONV for two stations belt scale EYOR Encoder scale factor window error belt scale window error indefinite Y DEFBELT bl belt 1 32 WINDOW b1 window 1 window 2 DEFBELT b2 belt 2 32 WINDOW b2 window 1 window 2 WHILE TRUE DO Loop WAIT part ready Wait ELT b1 F HH b1 OS bl pl ES bl pl EI B BELT b2 R RTS 50 00 ROS b2 p2 ES b2 p2 F NI D EPARTS for signal that part present Read present belt position bx bx 50 00 peee 50 00 50 00 and drop of Set encoder offset for pick up stations Move to the part and pick it up Carry part to drop off location 218 Chapter 11 Conveyor Tracking MO
289. t hit its holder APPRO place height2 MOVES place OPENI DEPARTS height2 Similar to the above motion sequence these instructions cause the part to be moved to the put down location and released This marks the end of the FOR loop When this instruction is executed control is transferred back to the FOR instruction for the next cycle through the loop unless the loop count specified by parts is exceeded The final section of the program simply displays a message on the system terminal and terminates execution TYPE All done 13 parts pieces processed RETURN The above instruction will output the message All done 100 pieces processed The 10 format specification in the instruction causes the value of parts to be output as an integer value without a decimal point Although not absolutely necessary for proper execution of the program it is good programming practice to include a RETURN or STOP instruction at the end of every program This line is automatically included by the V editor to mark the program s end A 2 Menu Program 223 Menu Program This program displays a menu of operations from which an operator can choose Features Intoduc ed e Subroutines e Local variables e Terminal interaction with operator e String variables WHILE and CASE structures Progra m Listing PROGRAM sub menu ABSTRACT This prog
290. t path when approach ing and departing from the put down location It is set to 50 8 millimeters 2 inches PARAMETER HAND TIME 0 16 Set the system parameter HAND TIME so sufficient time will be allowed for actuation of the robot hand This setting will cause OPENI and CLOSEI instructions to delay program execu tion for 160 milliseconds while the hand is actuated Other important initializing functions are to make sure the robot has the desired hand opening is at a safe starting location and that SCARA robots have the desired configu ration RIGHTY Make sure the robot has a right handed configuration with the elbow of the robot to the right side of the workspace This is important if there are obstruc tions in the workspace that must be avoided This instruction will cause the robot to assume the requested configuration dur ing its next motion OPEN Make sure the hand is initially open This instruction will have its effect during the next robot motion rather than delaying program execution as would be done by the OPENI instruction MOVE start Move to a safe starting location Due to the preceding two instructions the robot will assume a right handed configuration with the hand open The location start must be defined before the program is executed That can be done for example with the HERE command The location must be chosen such that the robot can move from it to the pick up location for
291. t prompt 20 system prompt 20 Double precision variables global 69 DRIVE 128 136 DRY 136 DRY RUN system switch 110 DURATION 132 133 136 DX 136 DY 137 DZ 137 E E numeric operator 72 Editing closing aline 43 line expansion 43 longline 43 syntax check 43 Editor commands 45 Editor mode changing 13 Editors using other 19 Emergency reaction routines 80 Emergency backup 82 ENCODE 99 Encoder external 227 End effector instructions 128 Enter key 6 equal to 73 ERROR 102 Error Kermit communication 170 processing 28 syntax 19 trapping 28 Error recovery routines 80 Errors reacting tosystem 82 Esc key using instead of Alt key 38 Evaluation order of operator 76 EXECUTE 93 Executing programs 20 59 Execution pointer 54 Exiting the SEE editor 16 Extended commands SEE editor 47 External device control 227 encoder 227 F FALSE 102 FCLOSE 171 graphics window 177 FCMND 171 FDELETE 177 graphics window 177 FEMPTY 171 File name 152 opening disk file 152 Files random access 156 sequential access 156 with fixed length records 155 with variable length records 155 FINE 132 133 137 Index 247 Fixed length records 155 FLIP 137 FLTB 99 FLTB 99 FOPEN graphics window 176 FOPENA 171 FOPEND 152 172 FOPENR 152 171 FOPENW 152 171 FOR 89 93 102 looping structure 89 FORCE 137 FORCE system switch 110 Format of program lines 18 of programs 18 19 FRACT 101 FRAME 137 FREE 102 FSEEK 172
292. t relative to the robot by executing the Belt Calibration Program That program is provided in the file BELT_CAL V2 on the Adept Utility Disk supplied with your robot system When these steps have been completed the system is ready for use However each time the system is restarted the belt calibration data must be reloaded from the disk file cre ated in the above steps The next section describes loading belt calibration See the Instructions for Adept Utility Programs for details Calibration 209 11 2 Calibration The position and orientation of the conveyor belt must be precisely known in order for the robot to track motion of the belt The file BELT_CAL V2 on the Adept Utility Disk contains a program to calibrate the relationship between the belt and the robot The program saves the calibration data in a disk file for later use by application programs The DEFBELT and WINDOW program instructions must be executed before the associ ated belt is referenced in a V program We suggest you include these instructions in an initialization section of your application program Although these instructions need be executed only once no harm is done if they are executed subsequently The file LOADBELT V2 on the Adept Utility Disk contains a V subroutine that will load the belt calibration data from a disk file and execute the DEFBELT and WINDOW instruc tions See the next section While the robot is moving relative to a belt inclu
293. t window coordinates 100 100 GPANEL glun 0 100 100 45 45 Put a label in the button GTYPE glun 102 122 Label Declare a variable for pointer event 2 button up btn up 2 Set a variable that will stop the monitoring of button events hit FALSI Gl Start a loop waiting for a button up event DO GETEVENT glun event The status of a button event will be stored in event 0 i Look to see if that event was a button up event IF event 0 btn up THEN Check if the button up event was within the button area The x location is in event 1 the y location in event 2 hit event 2 gt 99 AND event 2 lt 146 hit hit AND event 3 gt 99 AND event 3 lt 146 END UNTIL hit The code for reacting to a button press is placed here This code will work for a single button but will become very unwieldy if several buttons are used In the case of several buttons you should place the button locations in arrays or a two dimensional array and then pass these locations to a subroutine that checks if the mouse event was within the array parameters passed to it 184 9 5 Chapter 9 Graphics Programming Creating a Slide Bar V allows you to create a feature similar to the window scroll bars called slide bars The syntax for a slide bar is GSLIDE glun mode slide_id x y len max_pos arrow inc handle glun The logical unit of the wind
294. tandard local disk units are A and C If no unit is specified the colon also must be omitted Then the default unit as determined by the DEFAULT command is assumed path is an optional directory path string The directory path is defined by one or more directory names each followed by a character The actual directory path is determined by combining any specified path with the path set by the DEFAULT command If path is preceded with a the path is absolute Otherwise the path is relative and is added to the current DEFAULT path specification If unit is spec ified and is different from the default unit the path is always abso lute filename is aname with 1 to 8 characters which is used as the name of the file on the disk ext is the file name extension a string with 0 to 3 characters which is used to identify the file type The four open commands are 1 Open for read only FOPENR If the disk file does not exist an error is returned No write operations are allowed so data in the file cannot be modified When accessing files on a remote system for example when using Kermit the unit can be any name string and the file name and extension can be any arbitrary string of char acters Disk I O 153 2 Open for write FOPENW If the disk file already exists an error is returned Otherwise a new file is created Both read and write operations are allowed 3 Open for append
295. terrupts 80 Program label 78 Program list internal 41 Program priority setting 94 Program tasks scheduling 28 Program vs task priority 28 Programs debugging 56 keeping subroutines with 26 robot control 16 PROMPT 142 172 Prompt system 20 R RANDOM 101 Random access files 156 REACT 80 94 REACT reaction routine 27 REACTE 82 94 and power failures 82 REACTE reaction routine 27 REACTI 80 139 REACTI reaction routine 27 Reaction routines 27 READ 149 172 with the MCP 193 Reading from input devices 149 READY 139 Real datatype 66 Records fixed length 155 variable length 155 Recovering from power failure 82 Recursive programs 26 and variables 70 variable use 69 Redraw S F6 key 56 Reentrant programs 26 Relative transformations 121 RELAX 128 139 configuring digital signals for 128 RELAXI 128 139 RELEASE 30 94 Releasing atask 30 Replace SEE editor mode 12 Replacing text case sensitive 48 SEE editor 40 RESET 172 RETRY 94 system switch 111 RETURN 94 Return key 6 RETURNE 94 RIGHTY 133 139 ROBOT 139 Robot attaching 16 control program 16 motions 127 Robot speed 131 ROBOT system switch 111 Robots and power failure 82 Roll 119 Root directory 151 Round robin group task scheduling 29 RUN HOLD button 23 RUNSIG 94 RX 139 RY 139 RZ 139 S Safety overview 4 Saving programs 16 Scalar variable 7 SCALE 139 Scheduling of execution tasks 29 Scope of variables 70 SCREEN TIMEOUT 108 Scroll bars
296. ters in the given string LNGB Return the value of four bytes of a string interpreted as a signed 32 bit binary integer LNGB Return a 4 byte string containing the binary representation of a 32 bit integer MID Return a substring of the specified string PACK Replace a substring within an array of 128 character string variables or within a non array string variable POS Return the starting character position of a substring in a string TRANSB Return a 48 byte string containing the binary representation of a transformation value TRUNCAT Return all characters in the input string until an ASCII NUL or the end of the E string is encountered UNPACK Return a substring from an array of 128 character string variables VAL Return the real value represented by the characters in the input string 100 5 3 Chapter 5 Functions Examples of Sting Functions The instruction TYPE SERROR 504 will output the text Unexpected end of file to the screen The instructions Smessage The length of this line is TYPE SENCODE message 10 LEN message 14 characters will output the message The length of this line is 42 characters Location Motion and Extemal Encoder Functions V provides numerous functions for manipulating and converting location variables See Chapter 7 for details on motion processing and a table that includes all location related
297. the actual location that is recorded when no tool transformation is in effect If the proper tool transformation is in effect when the location is taught the location recorded will be the part location and not the center of the tool flange Robot tool flange The location that is recorded H TU A The actual me d Figure 7 8 Recording Locations 134 Chapter 7 Motion Control Operations Defining a Tool Transformation If the dimensions of a robot tool are known the POINT command can be used to define a tool transformation to describe the tool The null tool has its center at the surface of the tool mounting flange and its coordinate axes parallel to that of the last joint of the robot The null tool transformation is equal to 0 0 0 0 0 0 For example if your tool has fingers that extend 50 mm below the tool flange and 100 mm in the tool x direction and you want to change the tool setting to compensate for the offset enter the following lines at the system prompt bold characters indicate those actu ally entered POINT hand tool J create a new transformation X Y Z y p T 0 00 0 00 0 00 0 000 0 000 0 000 Change 100 50 J alter it by the grip offset 0 00 100 00 50 00 0 000 0 000 0 000 Change 4d TOOL hand tool l LISTL hand tool x 3t1 y jt2 z jt3 y jt4 p jt5 r jt6 0 00 100 00 50 00 0 000 0 000 0 000 Figure 7 9 shows the TOOL that would result from the abo
298. the parts without hit ting anything After initialization the following program section performs the application tasks FOR i 1 TO parts Start a program loop The following instructions down to the END will be executed parts times After the last time the loop is executed program execu tion will continue with the TYPE instruction following the END below APPRO pick heightl Move the robot to a location that is height1 millimeters above the location pick i The APPROS instruction is not used here because its straight line motion would be slower than the motion commanded by APPRO 222 Appendix A Example V Programs MOVES pick CLOSEI Move the robot to the pick up location pick which must have been defined previously The straight line motion commanded by MOVES assures that the hand does not hit the part during the motion A MOVE instruction could be used here if there is sufficient clearance between the hand and the part to allow for a non straight line path Close the hand To assure that the part is grasped before the robot moves away the I form of the CLOSE instruction is used program execution will be sus pended while the hand is closing DEPARTS heightl Now that the robot is grasping the part we can back away from the part holder This instruction will move the hand back height1 millimeters following a straight line path to make sure the part does no
299. the protocol is active each transmitted message is acknowledged by the remote sys tem indicating that it was received correctly or requesting retransmission If a message is not acknowledged after a certain time the remote system is signaled and a retry sequence is initiated If a message is not sent correctly after a number of retries DDCMP stops the protocol and signals an error to the local system For example for computer systems with the DEC RSX 11M RSX 11M PLUS and RSX 11S operating systems DLX 11 is a compatible DDCMP handler available from DEC This software can be purchased as RSX DLX 11 V1 0 reference RSX DLX 11 User s Guide DEC order number AA K142A TC 2 Reference DECnet Digital Network Architecture Digital Data Communications Mes sage Protocol DDCMP Specification Version 4 0 March 1 1978 Digital Equipment Corporation order number AA D599A TC 164 Chapter 8 Input Output Operations Table 8 2 shows the standard DDCMP NAK reason codes generated by the Adept imple mentation of DDCMP Table 8 2 Standard DDCMP NAK Reason Codes Code Description 1 Check code error in data header or control message 2 Check code error in data field 3 REP response with NUM in REP lt gt R 8 Buffer temporarily unavailable for incoming data 9 Bytes lost due to receiver overrun 16 Message too long for buffer 17 Header format error but check code was okay Attaching Detaching DDC MP
300. the subroutine It is this mapping feature that allows you to write generalized subroutines that can be called by any number of different programs regardless of the actual values or variable names the calling program uses Figure 1 2 shows the mapping of an argument list in a CALL statement to the argument list in a sub routine The arrows indicate that each item in the list must match in position and data type but not necessarily in name The CALL statement argument list can include values and expressions as well as variable names instruction in main program CALL a_routine loc_var_a real_var_a 43 654 string_var_a subroutine program header PROGRAM a routine any loc any real x any real y Sany_string Figure 1 2 Argument Ma pping In the example in Figure 1 2 when the main program reaches the CALL instruction shown at the top of the figure the subroutine a routine is called and the argument list is passed as shown See the description of the CALL instruction for additional details on passing arrays Subroutines 25 Argument Passing by Value or Reference An important principle to grasp in using subroutine calls is how the variables being passed are affected Variables can be changed by a subroutine and the changed value can be passed back to the calling program If a calling program passes a variable to a subrou tine and the subroutine can change the variable and pass back the changed variable to the calling program
301. the transformation must be deter mined with great care Furthermore while the point defined by this transformation the origin of the frame can be selected arbitrarily it should normally be approximately at the middle of the robot s working range on the belt This transformation will usually be defined using the FRAME location valued function with recorded robot locations on the belt The easiest way to define nominal belt transformation is with the conveyor belt cali bration program provided by Adept The instantaneous location described by the belt variable will almost always be different from that specified by the nominal transformation However since the belt is constrained Basic Programming Concepts 211 to move in a straight line in the working area the instantaneous orientation of a belt vari able is constant and equal to that defined by the nominal belt transformation To determine the instantaneous location defined by a belt variable the V system per forms a computation that is equivalent to multiplying a unit vector in the X direction of the nominal transformation by a distance which is a function of the belt encoder reading and adding the result to the position vector of the nominal belt transformation Symboli cally this can be represented as instantaneous_XYZ nominal XYZ belt distance X direction of nominal transform where belt distance encoder count encoder offset encoder scaling factor The en
302. tin ues and the BREAK instruction is processed BREAK causes the V program to wait until the motion to loc 1 completes The external signal will not be turned on until the robot stops Recall that without the BREAK instruction the signal would be turned on immedi ately after the motion to loc 1 starts The following instructions always cause Vt to suspend program execution until the robot stops see V Language Reference Guide for detailed information on these instructions BASE BREAK CLOSEI CPOFF DETACH 0 HALT OPENI PAUSE RELAXI TOOL See the SPEED monitor command and SPEED program instructions 130 Chapter 7 Motion Control Operations Also the robot decelerates to a stop when the BRAKE not to be confused with BREAK instruction is executed by any program task and when the reaction associated with a REACTI instruction is triggered These events could happen at any point within a motion segment Note that these events can be initiated from a different program task The robot also decelerates and comes to a stop if no new motion instruction is encoun tered before the current motion completes This situation can occur for a variety of rea sons A WAIT or WAIT EVENT instruction is executed and the wait condition is not satisfied before the robot motion completes e A PROMPT instruction is executed and no response is entered before the robot motion completes The V program instructions between motion ins
303. tions there are no monitor commands e System switch e System parameters Instuctions and Functions This section summarizes the V instructions and functions dedicated to moving line pro cessing The belt related functions return real values Before defining a location relative to a belt you must make sure the belt encoder offset is set properly That usually involves issuing a monitor command in the form DO SETBELT belt BELT belt 216 Chapter 11 Conveyor Tracking Belt Variable Definition The following keywords are used to define the parameters of belt variables Some param eters are typically set once based upon information derived from the belt calibration pro cedure Other parameters are changed dynamically as the application program is executing DEFBELT Program instruction that creates a belt variable and defines its static char acteristics nominal transformation encoder number and encoder scaling factor SETBELT Program instruction to set the encoder offset of a belt variable This defines the instantaneous belt location relative to that of the nominal belt transformation WINDOW Program instruction for establishing the belt window boundaries and specifying a window violation error subroutine Encoder Position and Velocity Information The following function is used to read information concerning the encoder associated with a belt variable BELT Real valued function that returns the instantaneous en
304. tirely disable checking of the final error tolerance This can be done by specifying NONULL before the start of the motion Defining Belt Relative Locations In order to define locations relative to a belt belt relative compound transformations can be used as parameters to all the standard V teaching aids For example all the following commands define a location loc_1 relative to the current belt location HERE belt loc_1 POINT belt loc_1 TEACH belt loc_1 In each of these cases the instantaneous location corresponding to belt would be determined based upon the reading of the belt encoder associated with belt and loc_1 would be set equal to the difference between the current tool location and the instantaneous location defined by belt While a belt variable can be used as the first leftmost element of a compound transfor mation to define a transformation value a belt variable cannot appear by itself For exam ple LISTL will not display a belt variable directly To view the value of a belt variable enter the command LISTL Sbelt_variable NULL 11 4 Moving Line Progra mming This section describes how to access the moving line capabilities within V A functional overview is presented that summarizes the extensions to V for Conveyor Tracking All the V moving line keywords are described in detail in V Language Reference Guide The moving line extensions to V include e Instructions and func
305. truction is encountered execution of the current program cycle is termi nated and the next execution cycle resumes at the first step of the program If the STOP instruction is encountered on the last execution cycle program execution is terminated and any open serial or disk units are DETACHED and FCLOSEd PROCEED or RETRY will not resume execution See EXECUTE for details on execution cycles When a PAUSE instruction is encountered execution will be suspended After a PAUSE the system prompt will appear and Monitor Commands can be executed This allows you to check the values of program variables and set system parameters This is useful during program debugging The monitor command PROCEED will resume execution of a program inter rupted with the PAUSE command NOTE The PANIC monitor command halts program execution and robot motion immediately but leaves HIGH power on BRAKE BREAK DELAY BRAKE aborts the current robot motion This instruction can be issued from any task Pro gram execution is not suspended and the program executing as task 0 will continue exe cuting at the next instruction BREAK suspends program execution defeats forward processing until the current robot motion is completed This instruction can be executed only from a robot control program and is used when completion of the current robot motion must occur before execution of the next instruction A DELAY instruction specifies the minimum delay between robot motion
306. tructions take longer to exe cute than the robot takes to perform its motion Procedural Motion The ability to move in straight lines and joint interpolated arcs is built into the basic oper ation of V The robot tool can also move along a path that is prerecorded or described by a mathematical formula Such motions are performed by programming the robot trajec tory as the robot is moving Such a program is said to perform a procedural motion A procedural motion is a program loop that computes many short motions and issues the appropriate motion requests The parallel execution of robot motions and non motion instructions allows each successive motion to be defined without stopping the robot The continuous path feature of V automatically smoothes the transitions between the com puted motion segments Proc edural Motion Examples Two simple examples of procedural motions are described below In the first example the robot tool is moved along a trajectory described by locations stored in the array path The LAST function is used to determine the size of the array SPEED 0 75 IPS ALWAYS FOR index 0 TO LAST path MOVES path index END The robot tool will move at the constant speed of 0 75 inch per second through each loca tion defined in the array path One way to create the path array is with the V TEACH command to move the robot along the desired path and repeatedly pressing the
307. ttaching Detac hing Logical Units In general an I O device must be attached using the ATTACH instruction before it can be accessed by a program Once a specific device such as the manual control pendant is attached by one program task it cannot be used by another program task Most I O requests fail if the device associated with the referenced LUN is not attached Each program task has its own sets of disk and graphics logical units Thus more than one program task can attach the same logical unit number in those groups at the same time without interference A physical device type can be specified when the logical unit is attached If a device type is specified it supersedes the default but only for the logical unit attached The specified device type remains selected until the logical unit is detached An attach request can optionally specify immediate mode Normally an attach request is queued and the calling program is suspended if another control program task is attached to the device When the device is detached the next attachment in the queue will be processed In immediate mode the ATTACH instruction completes immediately with an error if the requested device is already attached by another control program task With V systems attach requests can also specify no wait mode This mode allows an attach request to be queued without forcing the program to wait for it to complete The IOSTAT function must then be used to dete
308. ttributes creation time and date and file size Directory entries may be read after suc cessfully executing an FOPEND instruction 158 Chapter 8 Input Output Operations Each directory record returned by a READ instruction contains an ASCII string with the information shown in Table 8 1 Table 8 1 Disk Directory Format Byte Size Description 1 8 8 ASCII file name padded with blanks on right 9 1 ASCII period character 46 decimal 10 12 3 ASCII file extension padded with blanks on right 13 20 8 ASCII file size in sectors right justified 21 1 ASCII space character 32 decimal 22 28 7 Attribute codes padded with blanks on right 29 37 9 File revision date in the format dd mmm yy 38 1 ASCII space character 32 decimal 39 46 8 File revision time in the format hh mm ss The following characters are possible in the file attribute code field of directory entries Character Meaning D Entry is a subdirectory L Entry is the volume label not supported by V P File is protected and cannot be read or modified R File is read only and cannot be modified S File is a system file The attribute field is blank if no special attributes are indicated The file revision date and time fields are blank if the system date and time had not been set when the file was created or last modified The system date and time are set with the TIME monitor command or program instruction
309. u of END if event 1 END if event 0 UNTIL quit Implementing the above code and then clicking on Menu 2 would result in the window shown in Figure 9 1 182 Chapter 9 Graphics Programming a Test 1 Menu 1 Menu 2 Menu 3 Item 2 1 Item 2 2 Item 2 3 Figure 9 1 Sample Menu 9 4 Creating Buttons Creating a button in a window is a simple matter of placing a graphic representing your button on the screen and then looking to see if a mouse event occurred within the con fines of that graphic GPANEL Instruction The GPANEL instruction is useful for creating standard button graphics The syntax for GPANEL is GPANEL glun mode x y dx dy glun The logical unit of the window the button is in mode Is replaced with 0 indicating a raised ungrooved panel 2 indicating a sunken ungrooved panel 4 indicating a raised grooved panel 6 indicating a sunken grooved panel Adding 1 to any of the mode values will fill the panel with foreground color x y Coordinates of the upper left corner of the button dx dy Width and height of the button Button Example This code segment would place a button on the screen and then monitor a button up event at that button the logical unit the button is accessing must be ATTACHed and FOPENed Creating Buttons 183 Initialize monitoring of button events for a button FSET glun event button Draw a 45x45 pixel panel a
310. uble precision real values is 1 8 1097 Numeric Representation Numeric values can be represented in the standard decimal notation or in scientific nota tion as illustrated above Numeric values can also be represented in octal binary and hexadecimal form Table 3 1 shows the required form for each integer representation Table 3 1 Integer Value Representation Prefix Example Representation none 193 decimal AB B1001 binary maximum of 8 bits A A346 octal AH AH 23FF hexadecimal 3 4 Location Data Types 67 Numeric Expressions In almost all situations where a numeric value of variable can be used a numeric expres sion can also be used The following examples all result in x having the same value 3 6 2 SORT 9 SOR 2 1 9 MOD 6 x XX Xx M ll Logical Expressions V does not have a specific logical boolean data type Any numeric value variable or expression can be used as a logical data type V considers 0 to be false and any other value to be true When a real value is used as a logical data type the value is first pro moted to an integer Logical Constants There are four logical constants TRUE and ON that will resolve to 1 and FALSE and OFF that will resolve to 0 These constants can be used anywhere a boolean expression is expected A logical value variable or expression can be used anywhere a decision is required In this example an input
311. uction or its equivalent Suspend processing of an application program or command program until a program completes execution DO Program Introduce a DO program structure Instruction EXECUTE Program Begin execution of a control program Instruction EXECUTE Monitor Begin execution of a control program Command EXIT Program Exit a FOR DO or WHILE control structure Instruction FOR Program Execute a group of program instructions a certain number Instruction of times GET EVENT Real Valued Return events that are set for the specified task Function GOTO Program Perform an unconditional branch to the program step Instruction identified by the given label HALT Program Stop program execution and do not allow the program to Instruction be resumed IE GOTO Program Branch to the specified label if the value of a logical Instruction expression is TRUE nonzero 94 Chapter 4 Program Control Table 4 1 Program Control Operations Continued Keyword Type Function TF THEN Program Conditionally execute a group of instructions or one of Instruction two groups depending on the result of a logical expression INT EVENT Program Send a SET EVENT instruction to the current task if an Instruction interrupt occurs on a specified VME bus vector LOCK Program Set the program reaction lock out priority to the value Instruction given MCS Program Invoke a monitor command from a control program
312. umeric or string variable The variable being assigned a value must appear by itself on the left side of the equal sign The right side of the equal sign can contain any variable or value of the same data type as the left side or any expression that resolves to the same data type as the left side Any variables used on the right side of an assignment operator must have been previously initialized Location variables require the use of the SET instruction for a valid assignment statement see Chapter 7 The instruction loc_varl loc_var2 is unacceptable for location and precision point variables Mathematical Operators V uses the standard mathematical operators shown in Table 3 2 Table 3 2 Mathematical Operators Symbol Function addition subtraction or unary minus id multiplication division MOD modular remainder division Operators 73 Relational Operators Relational operators are used in expressions that yield a boolean value The resolution of an expression containing a relational operator will always be 1 true or 0 false and will tell you if the specific relation stated in the expression is true or false The most common use of relational expressions is with the control structures discussed in Chapter 4 V uses the standard relational operators shown in Table 3 3 Ta ble 3 3 Relational Operators Symbol Function equal to
313. unctions 2 0002 Examples of Arithmetic Functions o o o oo oo 5 5 Logical Functions viii eek oues Re A EA 5 6 System Contol Functons ee Example of System Control Functions 57 WOFunctions es Examplesof I O Functions lll Switches and Parameters 6 1 Introduction es 6 2 Parameters cocer LESE ES RAE EIS Viewing Parameters llleel ee Setting Parameters l o e Summary of Basic System Parameters o o o A Series System Terminal Settings ooo 63 Switches 24 50 2044 rr pese i esL dup E na Viewing Switch Settings 0 002 ee Setting Switches 22 sex X ERES a E Y Rie Y epe Summary of Basic System Switches 0 00 eee vii 100 101 101 102 102 103 103 103 106 106 106 107 107 108 109 109 109 110 viii V Language User s Guide Motion Control Operations 113 71 Introduction es 114 72 LocationVarables llle 114 Coordinate Systems elles 114 TransformationS ee 115 MAW ts A LL 117 PitG ls 2 aie O 118 ROll eto atum a a n Ss ana th OE atte a fa i EA E E a 119 SpecialStuations enn 120 7 3 Creating and Altering Location Variables 120 Creating Location Variables
314. urns clear the screen move up 17 lines from the bottom of the screen and output the text message Additional qualifiers are available to format the out put of variables and control terminal behavior The program instruction used to retrieve data input from the keyboard is PROMPT The program line PROMPT Enter a value for x x will halt program execution and wait for the operator to enter a value from the keyboard in this case a real or integer value If a value of the proper data type is entered the value is assigned to the named variable if the variable does not exist it will be created and assigned the value entered and program execution will proceed Ifan improper data type is entered the system will generated an error message and halt execution String data is expected if a string variable x for example is specified All terminal input should be checked for proper data type The following code segment will insure that a positive integer is input Using the VAL function also guarantees that inadvertently entered non numeric characters will not cause a system error DO PROMPT Enter a value greater than 0 Sx x VAL x UNTIL x gt 0 Terminal Types In order for V to echo input characters properly and to generate certain displays on char acter based terminals the type of terminal being used must be specified to the system The default terminal type which is recorded on the V system disk is
315. uting its reaction routine and task 2 is suspended The task 1 reaction routine completes by issuing a RETURN instruction Control returns to prog_a in task 1 Task 1 prog_a issues a CLEAR EVENT instruction followed by a WAIT EVENT instruction to wait for its event flag to be set Task 1 is suspended and task 2 resumes execution of its reaction routine The task 2 reaction routine completes by issuing a RETURN instruction Control returns to prog_b in task 2 Task 2 prog_b issues a SET EVENT 1 instruction setting the event flag for task 1 Task 2 now issues a RELEASE program instruction to yield control of the CPU Since the task 1 event flag is now set and its priority is higher then task 2 task 1 resumes execution and task 2 is suspended 2 3 mit task waiting a task running main program E task running reaction routine D 2 a task 1 running prog_a task priority 30 10 5 E 0 L DL LL loui ILL al Is Y o O O D 0 task 2 running prog_b task priority 20 10 5 LL 0 MAA o o 0000 66 em 16ms V Major Cycles Figure 4 1 Priority Example 2 86 4 4 Chapter 4 Program Control Logical Boolean Expressions 4 5 The next two sections discuss program control structures whose execution depends on an expression or variable that will take on a boolean value a variable that is either true or false or
316. value and the program instruction SET loc_name loc_value will both result in the variable loc_name being given the value of loc_value The POINT monitor command also allows you to edit loc_name after it had been assigned the value of loc_value The following functions return transformation values TRANS Create a location by specifying individual components of a transforma tion A value can be specified for each component SHIFT Alter the Cartesian components of an existing transformation The POINT and SET operations can be used in conjunction with the transformation func tions SHIFT and TRANS to create location variables based on specific modifications of existing variables SET loc_name SHIFT loc_value BY 5 5 5 will create the location variable loc_name The location of loc_name will be shifted 5 mm in the positive X Y and Z directions from loc value Relative Transformations Relative transformations allow you to make one location relative to another and to build local reference frames that transformations can be relative to For example you may be building an assembly whose location in the workcell changes periodically If all the loca tions on the assembly are taught relative to the world coordinate frame each time the assembly is located differently in the workcell all the locations must be retaught If how ever you create a frame based on identifiable features of t
317. values are 0 to hexadecimal value 1FFF decimal value 0 to 8191 This memory area is used only for communication between V application pro grams and is not used for any other purpose It is not possible to access the rest of the processor memory map The IOTAS function can be used to interlock access to user data structures The addresses are based on single byte 8 bit values For example if you write a 32 bit value to an address it will occupy four address spaces the address that you specify and the next three addresses If you read a value from a location using a format different than the format that was used to write to that location you will also get an invalid value but you will not get an error message For example if you write using IOPUTF and read using IOPUTL your data will be invalid 96 Chapter 4 Program Control NOTE V does not enforce any memory protection schemes for use of the application shared memory area It is the user s responsibility to keep track of memory usage If you are using application or utility programs written by someone else for example Adept AIM VisionWare or AIM MotionWare you should read the documentation provided with that software to check that it does not conflict with your usage of the shared area AIM users should note that Adept plans to assign application shared memory starting from the top hexadecimal value 1FFF and working down Users should therefore start at the bott
318. ve operation gu e Figure 7 9 Tool Transformation Tool transformations are most important when e Grippers are changed frequently e The robot is vision guided e Robot locations are loaded directly from CAD data Summary of Motion Keywords 135 7 6 Summary of Motion Keywords The following table summarizes the keywords associated with motion in V These instructions are covered in detail in the V Language Reference Guide Please see the reference guide for the keyword parameters and their use Table 7 1 Motion Control Operations Keyword Type Function ABOVE PI Request a change in the robot configuration during the next motion so that the elbow is above the line from the shoulder to the wrist ACCEL PI Set acceleration and deceleration for robot motions ACCEL RF Return the current robot acceleration or deceleration setting ALIGN PI Align the robot tool Z axis with the nearest world axis ALTER PI Specify the magnitude of the real time path modification that is to be applied to the robot path during the next trajectory computation ALTOFF PI Terminate real time path modification mode alter mode ALTON PI Enable real time path modification mode alter mode and specify the way in which ALTER coordinate information will be interpreted AMOVE PI Position an extra robot axis during the next joint interpolated or straight line motion APPRO PI
319. ver The belt_distance equation described above is based upon a relative encoder value encoder count encoder offset and V automatically adjusts this calculation for any belt rollover that may occur Care must be exercised however if an application processes encoder values in any way For example a program may save encoder values associated with individual parts on the conveyor and then later use the values to determine which parts should be processed by the robot In such situations the application program may need to consider the possibility of rollover of the encoder value NOTE While the encoder counter value is stored as a 24 bit number the rate of change of the belt encoder the speed of the belt is maintained only as a 16 bit number The belt speed is used internally by V to predict 212 Chapter 11 Conveyor Tracking future positions on the belt Therefore the rate of change of the belt encoder should not exceed 32 768 counts per 16 milliseconds The Adept application program for belt calibration includes a test for this condition and prints a warning if this restriction will be violated This requirement will be a limitation only for very high speed conveyors with very high resolution encoders The Encoder Scaling Factor For any given conveyor encoder installation the encoder scaling factor is a constant number that represents the amount the encoder counter changes during a change in belt position The units of t
320. verhead of this mode is not so important as the benefit When a file is being created information about the file size is not stored in the disk direc tory until the file is closed Closing a file also forces any partial sector buffers to be written to the disk Note that aborting a program does not force files associated with it to be closed The files are not closed and the directory is not updated until a KILL command is executed or until the aborted program is executed again CAUTION To preserve newly written data do not remove a floppy disk from the drive until you are sure the file has been closed Disk Commands There are several disk oriented monitor commands that do not have a corresponding pro gram instruction The FCMND instruction must be used to perform the following actions from within a program e Rename a file e Format a disk e Create a subdirectory e Delete a subdirectory The MCS instruction can be used to issue an FCOPY command from within a program FCMND is similar to other disk I O instructions in that a logical unit must be attached and the success or failure of the command is returned via the IOSTAT real valued func tion The FCMND instruction is described in detail in V Language Reference Guide Accessing the Disk Directories The V directory structure is identical to that used by the IBM PC DOS operating system version 2 0 and later For each file the directory structure contains the file name a
321. x See the AdeptVision Reference Guide for more infor mation on such parameters Summary of Basic System Parameters System parameters are set to defaults when the V system is initialized The default val ues are indicated with each parameter description below The settings of the parameter values are not affected by the ZERO command If your robot system includes optional enhancements such as vision you will have other system parameters available Consult the documentation for the options for details The basic system parameters are Ta ble 6 1 Basic System Parameters De Parameter Use fault Min Max BELT MODE Controls the operation of the conveyor 0 0 14 tracking feature of the V system HAND TIME Determines the duration of the motion delay 0 05 0 1E18 that occurs during processing of OPENI CLOSEL and RELAX instructions The value for this parameter is interpreted as the number of seconds to delay Due to the way in which V generates its time delays the HAND TIME parameter is internally rounded to the nearest multiple of 0 016 seconds KERMIT RETRY Sets the number of times Kermit will attempt 15 1 1000 to transfer a data packet before quitting with an error KERMIT TIMEOUT Time in seconds that Kermit will wait before 8 1 95 retrying the transfer of a data packet 108 Chapter 6 Switches and Parameters Ta ble 6 1 Basic System Parameters Cont
322. y indexes start at zero 2 If a subroutine argument is always called by reference this value can be omitted for that argument 3 Requires four bytes for each joint of the robot on multiple robot systems use the robot with the most joints 1 7 Flow of Program Execution 23 How of Program Execution 1 8 Program instructions are normally executed sequentially from the beginning of a program to its end This sequential flow may be changed when a GOTO or IF GOTO instruction or a control structure is encountered The CALL instruction causes another program to be executed but it does not change the sequential flow through the calling program since execution resumes where it left off when the CALLed program executes a RETURN instruction The WAIT instruction suspends execution of the current program until a condition is satis fied The WAIT EVENT instruction suspends execution of the current program until a specified event occurs or until a specified time elapses The PAUSE and HALT instructions both terminate execution of the current program After a PAUSE program execution can be resumed with a PROCEED monitor command Execution cannot be resumed after a HALT The STOP instruction may or may not terminate program execution If there are more pro gram execution cycles to perform the STOP instruction causes the main program to be restarted at its first step even if the STOP instruction occurs in a subroutine If no exe
323. ynamic display of DDCMP activity See V Operating System Reference Guide for a description of the NET command 8 10 Kermit Communication Protocol The Kermit protocol is an error correcting protocol for transferring sequential files between computers over asynchronous serial communication lines This protocol is avail able as an option to the Adept V system Kermit is non proprietary and was originally developed at Columbia University Com puter users may copy Kermit implementations from one another or they may obtain cop ies from Columbia University for a nominal charge The following information is not intended to be a thorough description of Kermit and its use You should refer to the Kermit User Guide and the Reference Kermit Protocol Manual both available from Columbia University for more details on implementation and opera tion of the Kermit protocol The Adept implementation of Kermit can communicate only with a server see the Ker mit User Guide for a definition of terms The following material describes use of Kermit from the V system In addition to this information you will need to know how to per form steps on your computer to initiate the Kermit protocol and access disk files When the V implementation of the Kermit protocol is enabled it makes use of one of the general purpose USER serial lines on the Adept system controller For a serial line to be used with Kermit the line must have been configured using the
324. you move off the line that is wrapping on top of it NOTE You may occasionally encounter lines that are too long for SEE to process Such lines can be created with an editor on another computer or they may result from a line becoming further indented because of new surrounding control structures Any attempt to move the cursor to such a line will result in the message Line too long and the cursor will automatically move to the next line The command and others can be used to move the cursor above a long line The best way to use the SEE editor to change such a line is to 1 move the cursor to the end of the line just above the long line 2 use Insert mode to insert two or more program lines that will have the same effect as the long line plus a blank line 3 with the cursor at the blank line issue one command to delete the blank line and the long line for example S Delete in Command mode Whenever the cursor is moved off a program line and when certain commands are invoked the editor closes the current line As part of that process the line and those following it are displayed in standard V format for example abbreviation expansion letter case spacing and line indents When a long line is closed the end of the line is erased from the screen and the next line is auto matically redrawn Undo F6 will not undo changes to a closed line Until a line is closed its effect on the indenting of su

Download Pdf Manuals

image

Related Search

Related Contents

Spec Sheet - The Reynolds Company  Plantronics 79957-03 headset  取扱説明書 定量止水付 サーモスタット混合水栓  ワイヤレスキーボー ドマウスセッ ト 400-SK3007 取扱説明書 ー-はじめに  

Copyright © All rights reserved.
Failed to retrieve file