Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Jack H.Integration and automation of manufacturing systems.2001.pdf
Скачиваний:
80
Добавлен:
23.08.2013
Размер:
3.84 Mб
Скачать

page 286

9.5.2 Movemaster Programs

All comments follow a semi-colon at any position on a line

Statements are ended with a colon, and as long as colons are used, more than one statement can be used on a line.

Line numbering is required.

Dimensions are given in millimeters in the programs.

A sample program is given below with comments for explanation,

10 NT

20 SP 7 ; set speed

30 MO 10, C ;move to position 10 with the hand closed 40 MO 9, O ;move to position 9 with the hand opened 50 TI 40 ;stop for 4 seconds

60 GT 30 ;goto line 30

9.5.2.0.1 - Language Examples

• The example below shows how points are defined and used. Please be aware that point location values are not normally defined in a program. Normally they are programmed by hand, and then when the program is run, it refers to them by number (from 1 to 629)

page 287

10 NT ; move to the nest or neutral position, this is almost straight up 20 OG ; move to the reference or zero position

30 TL 20 ; this will set the tool length as 20mm for all cartesian position calculations 40 PD 3, 0, 350, 250, -10, -20 ; define position #3 with joint angles

50 MO 3 ; move the robot to position #3

60 DW 20,20,0; a cartesian move 20 mm in the x and 20 mm in the y directions 70 HE 4; stores the current location as position #4

80 IP; moves the tool to position #5 ; assume that positions 5-10 are already defined 90 MC 6,10 ; continuous motion through positions 6, 7, 8, 9 and then stop at point 10 100 DP; the robot moves to position #9 and stops

110 PD 11, 0, 0, 10, 0, 0 ; define a vector (point #11) with only a z component

120 MA 9, 11, O ; move away from point #9 a distance of vector #11 with gripper open 130 MJ 10, 10, 0, 0, 0 ; move the joints (shoulder and elbow) 10 degrees

140 MP 10, 20, 30, 40, 50 ; move to cartesian position (10,20,30) with roll=40,pitch=50 150 SP 3 ; set the speed low to increase accuracy

160 MS 8, 5 ; straight line motion to point #8 as approximated with 5 knot points 170 MT 8, -40 ; causes the tool to move 40mm straight back from point #8

• The example below shows how we can define and use pallets. The definition of a pallet covers a number of lines to define the pallet size and then the location. We must also define points to indicate where the pallet lies in space. For the example below these points would have to be position numbers 20 (pallet origin), 21 (origin to end of first column), 22 (origin to end of first row), 23 (origin to diagonal corner of pallet). Note: if using pallet #3 these counters would be 30-33, and point 3 would move.

20

PA 2, 3,

4 ; pallet #2

is defined as having 3 columns and 4 rows

30

SC 21,

1

; set counter

#21 for columns

to 1 - each pallet # has dedicated counters

40

SC 22,

2

; set counter

#22 for rows to

2 - each pallet # has dedicated counters

50

PT 2

;

calculates the point for pallet #2 to move to - this will become point #2

60

MO 2

;

move to the new

position just calculated

70

SC 22,3 ; move the counter to the next row

80

PT 2

;

calculate a new

pallet position

 

90

MO 2

;

move to the new

pallet position

 

page 288

• The example below shows some of the position commands. These positions are normally defined outside the program by moving the robot to desired locations. These positions are not always absolute, and in some cases will act as displacement vectors.

10 PC 1; the clears the position #1 value

20 PD 2, 0, 300, 250, 50, -30 ; define position 2 with cartesian x,y,z and pitch,roll 30 HE 3 ; defines the current robot position as position #3

40 PX 1,2 ; the values of positions #1 and #2 have been swapped 50 PD 4, 0, 20, 0, 0, 0 ; define a new position

60 SF 1, 4 ; this will add #4 to #1 and store it in #1 becoming (0, 320, 250, 50, -30)

• The example below shows some of the counter and branching functions. These tend to use a status register approach - for example, a value to be compared will be loaded on one line, the next line will compare it and a branch instruction will occur on the specified condition. For-next loops have been constructed as part of this example.

page 289

10 SC 1, 2 ; set counter 1 to a value of 2

20 CP 1 ; load counter #1 into the comparison register

30 EQ 10, 100 ; if the value loaded in the last line is 10, jump to line 100 40 IC 1 ; increment the value of counter #1

50 GT 20 ; goto line 20 to continue the loop 100 DC 1 ; decrement the value of counter #1

110 CP 1 ; load counter #1 into the comparison register

120 LT 1, 100 ; if the value loaded in the last line is larger than 1, jump to line 100

150 GS 200 ; goto the subroutine at line 200 160 ED ; end the program

200RC 10 ; a for-next loop command

210RC 5 ; a nested loop

220NX ; this loop will cycle through the loop declared on line 210

230NX ; this loop will cycle through the loop declared on line 200

240RT ; return from the subroutine

The example below shows how to use various gripper and I/O functions. There are eight input bits and 8 output bits available.

10GC ; close the gripper

20 GO ; open the gripper

30 GP 5, 2, 3 ; this defines the gripping force as 5 (N?) and the holding force as 2, there will be 3/10 of a second delay while the gripper settles

40 GC ; close the gripper using the gripper force 50 OB -7 ; turn off the 7th output bit

60 TB +6, 50 ; if the 6th input bit is on go to line 50 70