throbber
.
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket