`Umted States Patent
`Wilson et al.
`
`[191
`
`(543
`
`pRo(;R_A_MM_ABLEMO'1'[0NCON‘1‘ROLLER
`“tn-H GRAp].uCAL PRQGRALINIEQG A11}
`
`[75]
`
`[
`
`°"
`
`Inventors: Gregory S. Wilson, Merrimack
`County, N.H.; David E. I-Ialp-erl,
`wind”, county, v;_; Ma.-1; _,.;_
`Chsflee’ Grafton County‘ N11‘
`: All
`_Bmd]
`Co
`In
`73 A -
`]
`mgnee Mi1e‘:aukeeeais_mPanY’
`21 A 1 N
`109 783
`’
`I
`_""'
`’
`[
`[22] Fdcd:
`Aug‘ 20’ 1993
`[51]
`Int. Cl.‘
`G05B 19/18; GCISB ll/01
`[52]
`11.5. C1.
`364/167.01; 364/146;
`.
`364/147; 364/191; 364/192; 395/ 159;
`313/568.1
`364/140, 146, 147, 167.01,
`[58] Field of Search
`364/188, 191, 192; 395/ 159, 161; 318/567,
`568.l
`
`c”
`
`[56]
`
`References Cited
`1.1.3. PATENT DOCUMENTS
`4,315,315 2/1932 Kossiakoff
`4,327,404 5/ 1939 Earstow et a1.
`5,122,111? 6/1992 Hayashi
`
`364./:91
`.. 364;’188
`
`364.?-1-74.01
`
`I|||ll|||||||I|ll|||||l|l|l|l|||||||||l||||||||lllll|||lll|l||||||l||||||||
`US{J053922[}‘!A
`mu Patent Number:
`[453 Date of Patent:
`
`5,392,207
`Feb. 21, 1995
`
`
`
`364./146
`364/-1-‘IE
`.. 395/3100
`364/1-1?
`395.3161
`395K147
`395.3300
`
`5,153,441 12;1992 Onarheitn etal. .... ..
`5,173,869 12/1992 Sakamoto et a1
`5,l8'l',T33
`2.11993 Marmelstein
`5,243,511
`9x1993 Zifferer et al. .
`5.287,-I49
`2./1994 Kojima
`5,29l,58? M1994 Kodoeluy eta].
`5,301,336 4/1994 Kodoeky ct a].
`Primary Exam:‘ner—Paul P. Gordon
`Attorney, Agent, or Firm—Keith M. Baxter; John J.
`Horn; H. Fredrick I-Iamann
`[57]
`.-uasnmcr
`A programming aid for troubleshooting real-time mo-
`tion control programs controlling servo motors em-
`plays a graphical control language in which function-
`ally related groups of instructions are represented by
`icons displayed on a prograrnming terminal and inter-
`connected by sequence lines to indicate the order of the
`instruction’: execution. The programming terminal re-
`ceives the address of the instructions being executed
`and identifies this address to 21 displayed icon to modify
`the icon thus indicating the internal operation of the
`program on a real time basis with little interruption of
`the °°"”°1P’°°e55-
`
`5 Claims, 5 Drawing Sheets
`
`INTERPREIER
`I/*0 SERWGE
`
`Page 1 of 14
`Page 1 of 14
`
`AMS
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`Exhibit 2017
`
`RA V AMS
`
`IPR2017—00048
`
`
`
`I
`
`I
`I
`I
`
`I
`'
`
`I
`I
`i
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`40
`
`38
`
`‘*2
`
`I
`30
`I
`I,/ I
`I
`I
`I
`I
`I
`I
`I
`I
`10
`II
`:
`I K“
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`1
`I
`I
`I
`Ixo Zzmlmi
`
`51
`
`Paocesson
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`27
`
`57
`
`22
`
`2‘
`
`INTERPREIER
`III} SERVICE
`
`I/II
`
`U.S. Patent
`
`Feb. 21, 1995
`
`Sheet 1 of 5
`
`5,392,207
`
`PROGRAMMING TERMINAL
`
`_______ _ _
`
`
`I
`
`
`Page 2 of 14
`Page 2 of 14
`
`AMS
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`Exhibit 2017
`
`RA V AMS
`
`IPR2017—00048
`
`
`
`U.S. Patent
`
`Feb. 21, 1995
`
`Sheet 2 of 5
`
`5,392,207
`
`K45/
`
`Z3I
`
`l—‘
`31:.
`EE-
`-E
`."..-'.'-'as
`E
`
`NewModule
`
`NewModule
`
`Page 3 of 14
`Page 3 of 14
`
`IPR2017—00048
`
`AMS
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`Exhibit 2017
`
`RA V AMS
`
`
`
`U.S. Patent
`
`Feb. 21, 1995
`
`Sheet 3 of 5
`
`5,392,207
`
`ENTER
`
`YES
`
`100
`
`NO
`
`RECEIVE CURRENT
`SCRIPT ADDRESS
`FROM CONTROLLER
`
`FIND BLOCK:
`
`READ IMAGE scam
`mom ZERO TO cunasm
`SCRIPT ADDRESS TO
`EXTRACT BLOCK ID
`
`REMOVE I-IIGHUGHT
`FROM LAST ICON,
`HIGHLIGHT CURRENT
`ICON
`
`DELAY 250 ms
`
`110
`
`Page 4 of 14
`Page 4 of 14
`
`|-'|G_ 5
`
`IPR2017—00048
`
`AMS
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`Exhibit 2017
`
`RA V AMS
`
`
`
`U.S. Patent
`
`Feb. 21, 1995
`
`Sheet 4 of 5
`
`5,392,207
`
`112
`
`
`
`
`FIND ADDRESS:
`
`READ IMAGE SCRIPT FROM
`ZERO TO ADDRESS
`OF FIRST BLOCK ID OF
`SELECTED ICON TO
`EXTRACT ICON ADDRESS
`
`
`
`118
`
`SET
`BREAKPOINT
`?
`
`SELECT ICON
`
`FIG. 6
`
`120
`
`TRANSMIT
`
`!B{reaIq3oint)
`(BREAK as
`I
`{sum
`{ICON ADDRESS)
`
`RECEIVE BREAKPOINT
`ADDRESS
`
`
`
`105
`
` 103
`
`FIND BLOCK
`
`HIGHLIGHT ICON
`
`Page 5 of 14
`Page 5 of 14
`
`AMS
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`Exhibit 2017
`
`RA V AMS
`
`IPR2017—00048
`
`
`
`U.S. Patent
`
`Feb. 21, 1995
`
`Sheet 5 of 5
`
`5,392,207
`
`FIG. 7
`
`N0
`
`
`
`0WAIT F R
`
`142
`
`Page 6 of 14
`Page 6 of 14
`
`IPR2017—00048
`
`AMS
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`Exhibit 2017
`
`RA V AMS
`
`
`
`1
`
`5,392,207
`
`PRDG MOTION OON'I'ROI.LER
`‘WITH GRAPHICAL PROGRAMLIING AID
`
`FIELD OF THE INVENTION
`
`This invention relates generally to motion controllers
`for providing real-time control of industrial servo mo-
`tors, and more particularly to a method ofprogrammiug
`such motion controllers.
`BACKGROUND ART
`
`10
`
`including generally motors whose
`Servo motors,
`torque, position, or velocity may be controlled in re-
`sponse to a feedback signal, are used widely in industrial
`processes where control of these quantifies is critical.
`lu application, the servo motor is typically associated
`with a sensor for providing a feedback signal for the
`controlled quantity. For example, for the control of
`either position or velocity, the sensor may be a position
`sensor sensing angular position of the motor. Two com-
`mon position sensors are resolvers, providing phased
`sinusoidal outputs depending on the angle of the resolv-
`ers‘ input shaft, and rotary encoders, providing either a
`digital word indicating absolute angular position or a
`series of pulses indicating incremental motion and direc-
`non.
`
`The servo motor is typically associated with a motor
`amplifier which provides power for driving the motor.
`For a DC servo motor, the servo amplifier is a high
`powered DC amplifier. More complex motor amplifiers
`are used for driving hntshless AC motors where com-
`mutation of the current flow in the windings is required.
`Amplifiers which provide commutation also typically
`require a position feedback signal from the position
`sensor.
`
`While some motor amplifiers may be programmed to
`provide rudimentary, higher-level control of the motor,
`such as setting limits of output speed, velocity or
`torque, ordinarily, more complex control of motor mo-
`tion is done by a motion controller.
`A motion controller incorporates specialized cir-
`cuitry dedicated to real—time motion control in response
`to signais received from the position sensor. For exam-
`ple,
`the motion controller may implement
`the well
`known proportional/integral/derivative (PID)
`type
`control loop. The motion controller typically includes a
`general purpose computer which may be programmed
`to provide a series of useful control fiinctions. For ex-
`ample, the velocity profile of the motors motion be-
`tween two positions may be controlled. Profiles for
`such motion may be selected in the program to be a
`trapezoid, where the velocity ramps linearly up or
`down at the beginning or end of the motion, or an “S
`curve” or “parabola", in which the straight ramps of the
`trapezoid are replaced by curved shapes having con-
`strained higher derivatives.
`Motion control functions having general use in multi-
`ple applications may be incorporated as instructions
`into a higher level “motion control” language. The
`operator programs the motion control computer using
`these instructions and standard computer instructions
`like branching instructions and loop instructions.
`The instructions for programming the motion con-
`troller may be entered via a programming terminal
`attached to the motion controller. Typically, these in-
`structions are in the form of human readable alphanu-
`meric mnemonics which are received by the motion
`controller and stored in internal memory. For example,
`
`20
`
`25
`
`30
`
`40
`
`4-5
`
`50
`
`65
`
`2
`the characters “M100” might be used to instruct the
`motion controller that the motor should he moved by
`100 units.
`Typically, during real-time control of the motor, an
`interpreter program withi11 the motion controller con-
`verts cach alphanumeiic mnemonic of the program into
`machine instructions, one at a. time as the instructions
`are needed. The machine instructions may be directly
`executed by the general purpose computer of the mo-
`tion controller to produce the necessary output signals
`needed to drive the motor amplifier.
`It is known to display on a computer screen, a sche-
`matized picture of the controlled process, such as a
`conveyor line, indicating its physical operation as it is
`controlled. Such a picture displays the outputs and.
`inputs to the motion controller, as they affect the con-
`trolled process, and may indirectly permit the monitor-
`ing of the operation of the controller as manifest in
`interactions betw the motion controller and the con-
`trolled process. Such pictures of the process being con-
`trolled will be termed data-flow representations because
`they primarily indicate the data-flow between the inputs
`and outputs of the control process.
`Such data.-flow representations may assist the human
`programmer in verifying the operation of the control
`program being executed by the motion controller. Nev-
`ertheless, the use of such data-flow representations in
`troubleshooting or “debugging” the control program is
`limited by the fact that the important internal operation
`of the control program is not shown and may not be
`apparent from the outputs to or inputs from the con-
`trolled P106853. This shortcoming is most acute when
`outputs to the controlled process are complex logical
`combinations of inputs, output and internal states of the
`controlling program—as is often the case.
`SUWIMARY OF THE INVENTION
`
`The present invention provides a programming aid
`useful for troubleshooting a real-time motion control
`program represented as a sezies of interconnected
`graphical icons. where each icon depicts one or more
`sequential steps of the motion control program. As the
`motion control program runs in real-time, the visual
`aspect of the icons is modified to provide a direct and
`immediate indication of the internal operation of the
`control program. This is in contrast to the data flow
`representation, described above. which cannot show
`the internal operation of the control program.
`The depiction of the present invention will be termed
`a “sequential-flow representation" indicating that
`it
`directly illustrates the sequence of steps of the motion
`control program.
`Specifically, the present invention provides a. method
`for programming a motion controller where the fI.t‘St
`step is the selection of a set of graphical icons to be
`displayed on an electronic display where each icon
`represents at least one sequtial step in the control of
`the motor. The icons are interconnected so as to pro-
`vide an indication of the sequence of the steps employed
`in the program and the interconnected icons are con-
`verted to instructions of a control program in accor-
`dance with the sequce of interconnections. The con-
`trol program is run on the controller to control the
`motor and the icons on the electronic display are modi-
`fied in appearance as the instructions of the control
`program associated with those icons are run on the
`controller.
`
`Page 7 of 14
`Page 7 of 14
`
`AMS
`
`Exhibit 2017
`
`RA V AMS
`
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`IPR2017—00048
`
`
`
`5,392,201’
`
`3
`It is one object of the invention to provide a real-time
`and intuitive representation of the operation cfa control
`program beyond that which may be achieved simply by
`observing the inputs and outputs of the controlled pro-
`ems.
`
`Modifying the icons in synchrony with the running of
`the control program may be accomplished by periodi-
`cally polling the motion controller to provide an indica-
`tion ofthe address of the portion ofthe control program
`currently being executed and then using a separate com-
`puter. associated with the electronic display, to match
`the portion of the control program to the particular icon
`to be modified and to modify that icon.
`It is thus another object of the invention to permit
`real-time visuai tracking of the control program with-
`out disrupting the real-time control process. The polling
`may be done at a low rate, compatible with the speed at
`which a human operator may assimiiate visual data. By
`the interaction between the motion controller
`and the display to a simple communication of an ad-
`dress, this infrequent interruption may be discharged
`quickly so that the total overhead added to the control
`tasks of the motion controller remains insignificant.
`The matching of the address of the control program
`to a particular icon may be accomplished by associating
`inslrructions of the program with a block identifier indi-
`cating the icon from which the instructions were de-
`rived during the initial compilation. The programming
`computer may then read the control program or a copy
`to quickly identify the icon related to each program
`address.
`After icons that have been interconnected are con-
`verted to a control program, one or more icons may be
`selected as a breakpoint. The address of the portion of
`the control program related to that icon may be deter-
`mined and that icon may be modified in appearance
`when that portion of code is run as indicated by the
`address
`It is thus another object of the invention to provide an
`indication that the control program has executed one or
`more internal steps without interrupting the rail-time
`nature ofthe control. By changing the appearance of an
`icon, the functioning of a particular portion of the con-
`trol program may be verified without stopping the con-
`trol program. Again, the overhead involved in effecting
`this break point is
`by relating the icon to an
`address in the control program which may be simply
`detected.
`Once the interconnected icons are converted to the
`instnictions of a control program, the program may be
`run and the appearance of a first icon may be modified,
`that icon being associated with a. first. instruction. Fur-
`ther instructions are then run until
`instructions are
`reached that are not associated with the first icon. The
`running of the control program is then stopped until a
`restart command is received.
`It is thus another object of the invention to provide a
`stepping mode of reviewing the internal operations of a
`control program employing the intuitive notions of the
`graphic icons yet accounting for the fact that a graphic
`icon may embrace more than one instruction or sequen-
`tial step in the control process. After an icon is modi-
`fied, indicating that its functions are being executed,
`additional instructions are run until all instructions re-
`lated to that icon have been executed. Thus, correlation
`between the modification of the icon and the running of
`the instructions associated with that icon may be pre-
`served even for single step operation.
`
`4
`The foregoing and other objects and advantages of
`the invention will appear from the following d¢SCrip~
`tion. In the description, reference is made to the accom-
`panying drawings which form a part hereof and in
`which there is shown by way of illustration a preferred
`embodiment of the invention. Such embodiment does
`not represent the full scope of the invention, however,
`and reference is made to the claims herein for interpret-
`ing the scope of the invention.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`25
`
`FIG. 1 is a block diagram showing the major compo-
`nents of a motion controller and its accompanying pro-
`gamming terminal
`illustrating the duplicate control
`scripts contained in the programming terminal and the
`controller as used in the present invention;
`FIG. 2 is the image of a computer display showing
`graphic icons, each representing a sequential control
`function,
`interconnected to form a control program
`such as might be displayed on the programming termi-
`nal of FIG. 1 and executed on the controller of FIG. 1;
`FIG. 3 is a schematic representation of the script of
`FIG. 1 as may be convened from the image of FIG. 2
`showing the concatenation of block identifiers onto
`each line of the script;
`FIG. 4 is a figure similar to FIG. 2 showing one icon
`in highlighted form such as may be used to indicate
`progress of the control program when it is executing;
`FIG. 5 is a flow chart indicating the steps performed
`by the programming terminal of FIG. I in tracing a
`real-time control program in which functional blocks
`are highlighted in the manner shown in FIG. 4;
`FIG. 6 is a flow chart indicating the steps performed
`by the programming terminal of FIG. 1 in setting break-
`points as identified by the icons shown in FIG. 2;
`FIG. 7 is a flow chart indicating the steps performed
`by the programming terminal of FIG. 1 in stepping
`through the control program according to the division
`of the functional blocks by the icons shown in FIG. 2.
`DETAILED DESCRIPTION OF TI-[E
`PREFERRED EMBODIMENT
`
`45
`
`55
`
`65
`
`Referring to FIG. 1, a motion controller 10 may
`provide command signals 12 to a motor amplifier III-
`which in turn provides controlled power.
`through
`power cables 16, to servo motor 18. The motor ampli-
`fier 14 is selected to match the requirements ofthe servo
`motor 18 and may be a high powered DC amplifier if
`servo motor 18 is a DC motor or may be an amplifier
`with commutating ability if servo motor 18 is a brush-
`less AC motor. A suitable servo motor 18 and motor
`amplifier 14 is sold by Allen-Bradley, the assignee of the
`present application, under
`the designation l386DS
`motor and 1386/l326DS DC servo drive system.
`The motor incorporates a rotary shaft encoder (not
`shown) which provides position feedback signals 21]
`received by the motion controller 10 for use in its feed-
`back control algorithms. As is known in the art, the
`position feedback signals 20 would also be provided to
`the motor amplifier 14 for commutating control when
`servo motor 18 is a brushless AC-type motor.
`Motion controller 10 includes a processor 22 gener-
`ally consisting of a specialized motion control micro-
`processor and dedicated peripherals which together
`produce the necessary command signals 12 and receive
`the position feedback signals 20 through input/output
`(“I/O") circuitry 24. The processor 22 may, for exam-
`ple, be a 8{l96GSD motion control microprocessor man-
`
`Page 8 of 14
`Page 8 of 14
`
`AMS
`
`Exhibit 2017
`
`RA V AMS
`
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`lPR2017—00048
`
`
`
`5,392,207
`
`5
`
`20
`
`25
`
`45
`
`50
`
`5
`ufactured by the Intel Corporation having ofiices in
`Santa Clara, Calif.
`The U0 circuitry 24 may include a serial communi-
`cations port for connecting to a serial link 26 as is well
`known in the art. The processor 22 also communicates
`with computer memory 21 which is a combination of
`dynamic random access memory (“DRAM”), erasable
`programable read only memory (“EPROM"} and bat-
`tery backed, nonvolatile static random access memory
`("SRAM”).
`the processor 22 re-
`Generally, during operation,
`ceives data and program instructions from the memory
`2''! to provide command signals 12 to the motor ampli-
`fier 14 in response to a motion control script 23 and in
`response to position feedback signals 20 received from
`the servo motor 18. The motion control script 28 com-
`prises data and programming instructions and is con-
`tained within memory 27.
`The motion control script 28 is generated by a pro-
`graming terminal 30 communicating with the motion
`controller 10 via. the serial link 26 as received by 1/0
`circuitry 24. The programming terminal 30 may be a
`general purpose PC-type computer having a display 32
`and an input device such as keyboard 34 and mouse 36.
`The programming terminal 30 includes a. processor 38,
`being a general purpose microprocessor, memory 40,
`and I/O circuitry 42. Importantly, in the present inven-
`tion, memory 40 of the programing terminal 30 holds a
`mirror image script 44 being identical to the motion
`control script 28 held in memory 2’.-' of the motion con-
`troller ltl. I/0 circuitry 42 receives the serial link 26
`and thus permits communication of digital data and
`programming instructions between the programming
`terminal 3-0 and the motion controller ll]. l/0 circuitry
`42 also provides communication between the processor
`38 and the display 32 for displaying information rele-
`vant to the programming and operation of the control-
`ler 10, and between the processor 38 and the keyboard
`34 and mouse 36.
`
`GRAPHICAL PROGRAMMING
`
`Referring now to FIGS. 1 and 2, the mirror image
`script 44 and motion control script 28 hold the neces-
`sary instructions and data needed to ca.rry out the de-
`sired control of the servo motor 18. These scripts in and
`28 are generated by means of a. graphic motion control
`language (GML) editor I-5 contained in memory 40
`which permits programming in a graphical motion con-
`trol language “GML” whose instructions are repre-
`sented by function block icons 4-6 that may be displayed
`on display 32 and which each represent one or more
`instructions that may be interpreted by the processor 22.
`The icons 4-6 are pictorial representations of the func-
`tions performed by the instructions associated with the
`icon and are framed by a square outline. One or more
`input terminals 48 are associated with each icon 4-6 and
`are represented by an arrow head to the right of and
`pointed inward toward the square outline of the icon 46.
`Likewise, one or more output terminals 50 are associ-
`ated with each icon -16 and are represented by black-
`ened squares abutting the right side of the square outline
`of the icon 46.
`Each icon 46 represents one or more predefined in-
`structious in the high level language interpreted by the
`motion controller 10. For example, the high level in-
`struction of MOVE AXIS is reprmented by a move axis
`icon 52 which is associated with instrucxioits that cause
`the movement of the servo motor 18. The move axis
`
`6
`icon 52 has programmable parameters, values for which
`may be entered by means of keyboard 34. For example,
`operator entered parameters control the profile of the
`motion, e.g.: trapezoidal. S-curve or parabolic, and the
`maxhnum speed of the motion. Other parameters may
`also be entered such as the destination position. Thus
`the move axis icon 52 ultimately represents a collection
`of predefined instructions and operator entered data
`necessary to undertake a particular function.
`Other functional blocks include those that effect a
`return of the servo motor 18 to a predefined home posi-
`tion, represented by the home axis icon 54-, those that
`await and accept an external input, represented by the
`wait~for~input—on icon 58. Icons 4-6 may also represent
`logic or flow instructions represented in low-level com-
`puter languages, for example, the repeat loop icon 56
`which permits the repetitive execution of other icons
`for a predetermined number of times.
`Groups of icons 46 may be visually and functionally
`braced within a module icon 60 which may be “ex-
`ptoded" to reveal the contained modules. The instruc-
`tions of the icons 416 contained within the module icon
`60 are executed upon execution of the module. Thus,
`module icon 60 acts as a visual representation of a sub-
`routine in the motion control language. The icons are
`generally captioned according to their function; the
`module icons 6|] are initially given the caption “New
`Module” which may be changed by the operator.
`Many additional icons 4&6 are available for instruc-
`tions providing functions such as checking a timer sta-
`tus, activating and deactivating feedback algorithms,
`performing mathematical calculations, activating con-
`trol outputs. providing printed reports to the operator
`and accepting operator input from an on-line terminal
`(not shown).
`Each of these different icons 4-6 may be placed on the
`display 32 associated with the program.mi.ug terminal
`38. Specifically. the icons 4-6 are selected from a pallet
`of possible functional blocks (not shown) representing
`the predefined high level instruction set of the motion
`controller 10 and positioned by means of the mouse 36
`Once positioned,
`the programmable parameters re-
`quired by the function of each icon may be entered. For
`example, in the repeat loop icon 56, the number of repe-
`titions must be entered through the keyboard 34.
`The icons are then interconnected by means of their
`input and output terminals 48 and SI] between special
`start and end icons 62 and 64, respectively, to indicate
`the sequence of instructions of the motion control script
`28. In particular, the motion control mpt 28 ultimately
`produced begins at start icon 62 whose output terminal
`50 may connected to one input terminal of one of the
`icons 4-6. For example. the output terminal 50 of the
`start icon 62 may be connected to the input terminal 48
`of the home axis icon 54.
`Such connections between icons are represented by a
`sequence line 65 on the display 32. The sequence line 65
`between the start icon 62 and the home axis icon 54
`indicates that at the start of the motion control script 28,
`the first set of instructions are those associated with the
`home axis icon 54 and thus that the motor initially is
`returned to a home position.
`Continuing with this example, the output terminal 50
`of the home axis icon 54 may be connected to the input
`terminal 48 of the repeat loop icon 56 which executes a
`loop defined on a path from its lower most output termi-
`nal 50, for the specified number of repetitions.
`
`Page 9 of 14
`Page 9 of 14
`
`AMS
`
`Exhibit 2017
`
`RA V AMS
`
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`IPR2017—00048
`
`
`
`5,392,207
`
`7
`The lower most output terminal 50 of the repeat loop
`icon 66 may in turn be connected to the input terminal
`of a wait-for-input on icon 58. Thus, the program after
`positioning the servo motor 18 at a home position, per
`the instructions of the home axis icon 56, waits for an
`input from one of the control I/Cl lines 13 to the motion
`controller III as designated as a parameter of the wait-
`for-input-on icon 58. When that designated input
`is
`received. the control procem continues following the
`path represented by a sequence line 65 from the output
`terminal of the wait-for-input-on icon 58 to the input
`terminal of a move axis icon 52.
`The move axis icon 52 executes the instructions nec-
`essary to move the servo motor 18 by a predetermined
`amount as programmed by the operator through param-
`eters entered by keyboard 34-. At the conclusion of this
`move axis, the program may be caused to proceed back
`to the input terminal 48 of the repeat loop icon 56 so as
`to repeat this sequence of waiting and moving reflected
`by wait-for-input-on icon 58 and move axis icon 52 for
`a specified number of times.
`The upper right most output terminal 50 of the repeat
`loop icon 56 provides the next instructions for the mo-
`tion oontrol script after the looping has terminated. In
`this case, the output of the repeat loop icon 56 is shown
`connected to an input of a module entitled “reset proce-
`dure” as represented by module icon 60 which may
`incorporate one or more additional modules for func-
`tional blocks (not shown).
`The conclusion of the motion control script 28 de-
`fined by the icons 4-6 and sequence lines 65 is indicated
`by a connection between the output terminal 50 of an
`icon 46 to the input terminal of the d icon 64.
`All of the instructions necessary to generate a motion
`control script 28 for controlling a servo motor 18 may
`be rapidly and intuitively generated through the use of
`these iconic representations of progranuning steps as
`interconnected by sequence line 65 between a start icon
`62 and an end icon 64. The icons in conjunction with the
`use of modules 60 provide a clean visual representation
`of the program as logically divided by icon grouped
`functions and by module grouped icons. The use of the
`icons and modules, which allow groups of functional
`blocks to be thus collected, prevents visual clutter and
`clarly emphasizes the structure of the motion control
`wript.
`The positioning and interconnection of the icons 46
`on the display 32 is performed by manipulation of the
`mouse 36 which may “drag" the icons to the desired
`position and “draw“ interconnecting lines by selecting
`line endpoints on the desired icons 46. Once the icons 4-6
`are interconnected, a connection list is generated identi-
`fying each displayed icon by a different block identifica-
`tion number 66 together with its connection to other
`functional blocks. No two icons, ev if they invoke the
`same fimctions, have the same block identification num-
`ber 66.
`The operator then instructs the programming termi-
`nal 3ll to compile the motion control script 23 to be
`downloaded into the motion controller II]. The compi-
`lation is performed by a compiler program forming part
`of the GM]. editor 45 and which gerates the motion
`control script II! from instructions and data associated
`with the selected and interconnected icons 46 and in the
`order of the interconnection of the icons 46.
`In the example of FIG. 2. the compilation starts at the
`start icon 62. The home axis icon 54 connected to the
`start icon 62 by a sequence line 65 is identified and the
`
`S
`
`20
`
`25
`
`35
`
`45
`
`SD
`
`65
`
`instructions necessary to produce the function of the
`home axis icon 54 is inserted into a portion of memory
`40 allocated for the mirror image script 44 together
`with those parameters needed for that function as have
`been previously entered by the operator.
`Referring now also to FIG. 3, the function performed
`by the home axis icon 54 may require the execution of a
`number of instructions by the processor 22. Each in-
`struction for a particular icon 4-6 is arranged in memory
`40 as a series of "lines” 43 being contiguous words 47 of
`memory II-III terminated by a line return character 49.
`The words 47 of each line 43 hold ASCAII characters
`representing the human readable mnemonics of the
`instructions and the division of the memory into lines 43
`rellects the logical separation of the characters into the
`mnemonic instructions.
`The instntctions of each line 43 and the number of
`lines 43 is predetermined by the icon 46 from which the
`lines are compiled. However, as described above, oper-
`ator selectable parameters are typically associated with
`the functions of each icon 4-6 and change the number
`and length of the lines 43 associated with the given icon
`4-6. Thus, the location of each instruction in memory 40
`may vary depending not only on the preceding instruc-
`tions of other icons but also on the parameters selected
`by the operator. For this reason, each line 43, as it is
`compiled. is associated with a block identification num-
`ber 66 formed of several additional words 67 at the end
`of the line 1-3 prior to the line return character 49. Multi-
`ple contiguous lines may have the same block identifica-
`tion number 66.
`At the conclusion of the compilation of a given icon
`46, a next icon is compiled as determined by the se-
`quence lines 65 and the instruction and parameters for
`that icon are concatenated to the existing mirror image
`script 44: In the example of FIG. 2, the next icon 46 is
`the repeat loop icon 56 which when compiled generates
`instructions causing the repeating of the functions of
`selected other icons -I-6 within the loop formed by se-
`quence lines 65 connected to the repeat loop icon 56.
`In this example. within that loop are the wait-for-
`input-on icon 58 and the move axis icon 52. Each line of
`instructions generated includes a block identification
`number 66 indicating the functional block from which
`the instructions were derived.
`The compilation process continues for each of the
`icons 4-6 displayed on the display 32 and for each icon 46
`within a module icon 6|] and for icons 46 within mod-
`ules 60 nested within other modules 60 until the end
`icon 64 is reached by a sequce line 65 indicating that
`the compilation is complete. Thus, the icons 4-6 provide
`a higher level graphical language producing an AS-
`CAII “source code" which could be used (and previ-
`ously was used) to directly program the motion control-
`ler 10.
`Importautly, at the conclusion of the compilation, the
`mirror image script 44 comprises a continuous sequence
`of characters in words 4'! arranged in lines 43 terminat-
`ing in a block idtification number 66 identifying the
`icon from which the instructions were derived and a
`line return character 49. Each character may therefore
`be assigned a script address being a sequential integer
`starting at zero and incremented according to the ordi-
`nality of the word 4'?‘ in the mirror image script 44
`which clearly and uniquely identifies that word 4?.
`The mirror image script 44 is then transmitted by the
`processor 38 of the programming terminal 30 through
`the I/O circuitry 42 and serial link 26 into the motion
`
`Page 10 of 14
`Page 10 of 14
`
`IPR2017—OOO48
`
`AMS
`
`Exhibit 20 1 7
`
`RAVAMS
`
`AMS
`Exhibit 2017
`RA v AMS
`IPR2017-00048
`
`
`
`5,392,207
`9
`controller 10 to be contained within the motion control-
`ler's memory 27 as motion control script 28, identical to
`the mirror image script 44, for execution by processor
`22.
`During that execution of the motion control script 28,
`each line 43 of the motion control script 28 is read by an
`interpreter-I/O service program 57 running on proces-
`sor 22 which translates the mnemonic instructions of
`that line 43 into machine executable instructions or data
`for use by the processor 22.
`During operation of the motion controller 10 in real-
`time, the processor 22 fetches one or more instructions
`from the memory 2'7, interprets those instructions and
`executes the interpreted instructions