`
`United States Patent [:91
`
`Toke et a1.
`
`[11]
`
`[45]
`
`4,138,718
`
`Feb. 6, 1979
`
`Bensaude et n].—“Host Processor Control of Satellite
`Disk Storage".
`
`Primary Examiner—Harvey E. Springborn
`Attorney. Agent, wfi‘m—erles 5: Brady
`
`[75]
`
`[56]
`
`3.310.104
`
`ABSTRACT
`[57]
`A numerical control system which employs a pro-
`grnmmed numerical control processor to perform the
`numerical control functions is coupled to a bulk storage
`device by . W mpum_ The bulk storage device
`stores a download Iibnry which includes not only part
`programs, but also system software programs and diag-
`nostlc programs which my be downloaded to the nu-
`maria! control system upon request By domdoadins II
`system software program the numerical control capabil-
`.
`.
`.
`mes ol' the syotem can be comoletely reconfigured to. In
`mono met, Prowde I new mint-
`
`-
`
`Reform Cited
`U.s. PATENT DOCUMENTS
`1
`............................. .. 3
`lgizj;
`flag! .I_ _
`
`5/1914 Lunacy
`OTHER PUBLICATIONS
`
`IBM TDD-vol. 14. No. II, Apr. 1972. pp. 3418-3419—
`
`9 Gal-I, 22 [howling figures
`
`[S4] NUMERICAL CONTROL SYSTEM WITH
`DOWNLOADING CAPABILITY
`Inventors: Ronald J. Toke. Bralenahl Village;
`Willi" *- M Memo“ both or
`Ohio
`[73] Assignee: Allen-Bradley Conway. Milwaukeo
`“’1'-
`[2}] App" No“ “50"”
`[22] Fund;
`Nov. :4, 1m
`C(lfi1 ......................... Goa? 3/132:
`[58] ml}! m 364/200 MS We. 9w Ms File
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 1
`
`
`
`
`
`Sheet 1 of 21
`
`4,138,718
`
`U.S. Patent
`
`Feb. 6, 1979
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 2
`
`
`
`
`
`Sheet 2 of 21
`
`4,138,718
`
`US. Patent
`
`Feb. 6, 1979
`
`‘34:; 2
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 3
`
`
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 3 of 21
`
`4,138,718
`
`0*-
`
`
`
`
`y.
`4
`_J
`t—
`a.
`a:
`U 0‘!
`_.
`
`D_
`
`g
`
`e
`w
`x
`
`.1
`< .J
`u 0
`_ I:
`c:
`:—
`m z
`2 O
`D U
`z
`
`:5
`
`J.)
`N
`
`r“
`n1
`
`Ewi—z:
`
`H.
`
`u
`m
`a. n “ 2%
`
`— .-
`— ‘-
`
`oN
`
`\“=l.ff
`
`W!
`
`3%
`
`550
`
`55!
`
`
`
`r—
`
`READ/WRITE
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 4
`
`
`
`t
`
`.m
`
`9
`
`1
`
`.fl.5528Sonm¢_o:.5.m.4mg4%5MIIIIIIIIIIllU<¢.mwm.llllllllllI-P.mu.>595.
`
`
`
`mSign?
`
`.szan...\zuooozuIfi.\|||||||||||I-M..Efl
`
`F3
`
`man
`
`6.lllllllllllI-
`
`t.flJInmGIlllllllllllI-EIwoamehMIsEIMIIII
`rm\mn"ngofi55832..»
`
`
`2mRIIuIHmwmmammummbmtno.
`
`4.kmIIIIIIIIIIIIII.2.
`
`
`
`4.56mIIIIxmplmwwIWleI-
`“mun—mg.
`
`4,298352723:«53E05:
`
`5.5.3..
`
`0m.35xx?3558:
`...ED.m\mamE3«8385.cAw3xm11...amno
`
`|
`
`mmmmmv.n.”P.mmmXD.0
`C05
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 5
`
`
`
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 5 of 21
`
`Smmmoomn.
`
`Orruiztmd
`
`45.xV.‘s?any
`
`.
`
`cuxudfiaz
`
`Kuhn—Guma);
`
`s?
`
`c8309:
`
`x030
`
`#5050
`
`Om_
`
`m9
`
`INSTRUCTION
`REGISTER
`
`gOO¢m|O¢0§
`
`
`
`>1.acuadum
`
`5.02m!
`
`
`
`4,138,718
`
`
`
`mam«Go5330:...
`
`..\\
`
`
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 6
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 6
`
`
`
`
`
`
`
`
`
`U.S.
`
`Patent
`
`Feb. 6. 1979
`
`Sheet 6 of 21
`
`4,138,718
`
`3
`
`mEm.
`
`
`mmE55.3.".aE?
`
`$7
`:92...as
`
`inhmauia
`
`muhmammZ".
`
`:vi
`
`0*-
`\0
`
`,2
`
`.1...y
`a?
`
`3.2
`
`56030W1|“WEfl
`
` L REGISTER
`
`m<mwxuudmths.
`
`1.3.011
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 7
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 7
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Feb. 6. 1979
`
`ADDRESS
`
`Sheet 7 of 21
`
`4,138,718
`
`REGISTER
`
`lUT/OUTPU DATA BUS
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 8
`
`
`
`
`
`U.S. Patent
`
`Feb. 6, 1979
`
`Sheet 3 of21
`
`4,138,718
`
`I2?
`
`M0
`
` BINARY
`
`is.7
`
`BO
`
`JG
`
`h!fl§:2ra
`
`
`
`
`i
`
`
`1'28
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 9
`
`
`
`
`
`U.S. Patent
`
`Feb. 6. 1979
`
`Sheet 9 of 21
`
`4,138,718
`
`3 C
`
`'13-‘43. 8A
`
`5”
`
`525
`
`526
`
`DISABLE
`INTEHRUPTS cc
`TURN-OFF
`OUTPUTS
`
`SU BROUTINE
`
`F ETC H DOWN-
`LOAD REQUEST
`wono {JUMP
`TO TRANSMIT
`
`FETCH VERSION
`1.0. CHARACTERG
`JUMP TO
`TRANSMIT
`SUBROUTINE
`
`
`
`
`
`5
`
`27
`
`JUMP TO
`RECEIVE
`SUBROUTINE
`
`NEGATE6
`STORE RECORD
`SIZE AT
`
`“COUNT”
`
` lNlTiALIZE
`CHECKSUM
`
`IN
`B REGISTER
`
`
`
`
`
`
`52?
`
`5.30
`
`535
`
`JUMP TO
`RECEIVE
`SUBROUTINE
`
`T0
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 10
`
`
`
`US. Patent
`
`Feb. 6. 1979
`
`Sheet no of21
`
`4,138,718
`
` $18. SB
`
`5:51
`
`
`
`
`
`
`
`STORE STARTING
`ADDRESS OF
`DOWNLOADED
`RECORD AT
`"ADDR"
`
`
`
` 536
`
`
`
` CHECK “ADDR”
`TO DETERMINE
`
`IF WITHIN
`
`COM MUNICATIONS
`
`PROGRAM
`
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 11
`
` INDICATE
`
`
`
`“ADDRESS ERRCIR'I
`ON CRT 9
`
` JUMP TO
`
`RECEIVE
`
`SUBROUTINE
`
`
`
` STORE
`INSTRUCTION IN
`
`MEMORY 30
`
`AT LOCATION
`INDICATED BY
`“ADDR'I
`
`
`
`535
`
`INCRE ME NT
`
`"A DDR" G“COUNT"
`
`‘- UPDATE
`
`CHECKSUM
`AC CUMMULATOR
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 11
`
`
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 11 of 21
`
`4,138,718
`
`
`
`INDICATE
`"CHECKSUM
`
`ERROR"
`
`ON CRT 9
`
`
`
`
`
`‘F-ig. 8c
`
`JUMP TO
`
`REC EIVE
`SUBROUTINE
`
`COMPARE
`
`CHECKSUM WORD
`WITH
`CHECKSUM
`ACCUMMULATOR
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 12
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 12 of 21
`
`
`
`hazy—cut:
`
`29.5.09.
`
`to
`
`oxgurux
`
`mar—50¢
`
`Panto—uh:—
`
`29.501
`
`«.0
`
`
`
`mun—(mmundk
`
`u2that
`
`.5
`
`u0.>¢wm
`
`mztbom
`
`2m.2¢:om!0:¢um
`
`
`
`nabsrmPanz—
`
`“.0
`
`
`
`mwutfiawzwmzum
`
`hz<nzumuo
`
`
`
`2:101!.uhaouxu
`
`.9.
`
`02
`
`1m—
`
`
`
`mt
`
`
`
`0230:exudm
`
`mmESOm
`
`ban—PDQ wadihuOm
`
`muu_>un_
`
`02.95.20to
`
`nabs—h
`
`zeta-5933.2.
`
`mar—bocnam
`
` 4,138,718
`
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 13
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 13
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 13 of 21
`
`4,138,718
`
`@113. 10 INITIALIZE
`
`
`
`FOR NEW
`PROGRAH
`
`UPDATE
`
`CRT
`
`DISPLAY
`
`
`MODE
`
`?
`
`MANUAL
`
`
`
`
`CALL BLOCK
`
`
`
`EXECUTE
`ROUTINE
`
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 14
`
`
`
`DECODE
`
`AND SET UP
`
`
`
`
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 14
`
`
`
`U.S. Patent
`
`Feb. 6, 1979
`
`Sheet 14 of21
`
`4,138,718
`
`‘3‘1'65. 11A
`
`
`
` BLOCK
`EXECUTE
`
`ROUTINE
`
`SET UP
`BLOCK
`EXECUTION
`FLAGS
`
`
`
`NSC II DATA
`
`INITIALIZ
`
`BUFFERS
`
`YES
`
`BLOCK
`'DELETE
`
`?
`
`R ES ET
`
`EXCHANGE
`
`
`
`
`
`
`
`
`STATE OF
`pREwou3
`BLOCK
`
`
`
`ICT IVE AND
`TEMPORARY
`BUFFER POINT 3‘
`
`
`
`
`
`EXECUTE
`PRELUDE
`FUNCTIONS AND
`WE aLocx
`ACTIVE
`
`
`
`UPDATE
`POINTERS
`T0 NEXT
`BLOCK
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 15
`
`
`
`A36 11 DATA
`
`BLOCK
`
`RELEASE
`
`ENABLE
`INTERPOLATION
`
`SET UP
`
`NEXT
`
`BLOCK
`
`
`
` INITIATE
`TAPE REMER
`
`IF STORAGE
`AVAILABLE
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 15
`
`
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 15 of 21
`
`4,138,718
`
`@
`
`%Ic3. llB
`
`
`
`UPDATE
`
`CRT
`CRT
`
`DISPLAY
`DISPLAY
`
`
`
`
`
`UPDATE
`
`
`
`BLOCK END
`POINT
`
`YES
`
`YES
`
`60¢
`MODE
`?
`
`no
`
`EXECUTE
`
`POSTLUDE
`
`FUNCTIONS
`
`
`
` UPDATE
`
`
`
`CRT
`
`DISPLhY
`
` OFFSETS
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 16
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 16 of 21
`
`4,138,718
`
`$1.5. 12A
`
`
` l0.24
`MSEC.
`INTERRUPT
`
`
`ALL
`
`REGISTERS
`
` IO USE
`INTERRUPT
`
`
`
`NO
`
`RESET
`PRELUDE fl
`POSTLIJDE
`
`FLAGS
`
`
`
`I56
`STATU 3 OF
`
`
`SENS I N6
`DEVICES
`FLAG S EXECUTE
`
`IE?
`
`INHIBIT
`
`INTERPOLATION
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 17
`
`
`SERVO-
`HECHANISM
`
`
`SERVICE
`
`
`
`I64-
`
`Il CODE
`
`CLEAR
`VARIOUS
`BLOCK DATA
`
`MACHINE
`DEPENDQNT
`SOFTWARE
`ROUTINE
`
`
` OUTPUT
`STATUS OF
`
`
`OPERATING
`
`DEVICES
`
`
`
`194
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 17
`
`
`
`
`
`U.S. Patent
`
`Feb. 6, 1979
`
`Sheet 17 of 21
`
`4,138,718
`
`‘313. 123
`
`
`
`
`INHIBIT INTER-
`
`I66
`
`SUBROUTINE
`
`TURN on
`PROGRhI
`STOP FLAG
`
`
`
`Eon
`STOP
`
`?
`
`nor BUSY
`
`YES
`
`ANY
`STOP
`COD?ES
`YES
`
`REG U E ST
`
`CYCLE
`
`STOP
`
`"53
`
`
`
`YES
`
`EMERGENCY
`57,9"
`‘uo
`EMERGENCY
`
`STOP
`FROG ESSOR
`
`EN D
`0F Bil—00"
`
`no
`
`RESET
`
`POSTLUDE
`
`FL”
`
`
`
`5""
`
`RESTORE
`
`REGISTERS
`
`SET TIMED
`INTERRUPT
`FLAG T0
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 18
`
`
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 13 of 21
`
`4,138,718
`
`$13. 13A
`
`SIB
`
`5L3
`
`514
`
`
`
`é
`
`DISSABLE
`INTERRUF’TS
`TUFIN OF
`OUT PUT DEV ICES
`
`
`
`
`
`
`
`FE"?
`
` RECEIVE
`
`REPLY FROM
`HOST COMPUTER
`AND DISPLAY ON
`CHT 9
`
`
`
`DISPLAY
`“READY”
`
`0N CRT 9
`
`
`
`INPUT COMMAND
`TRANSMIT
`'
`FROM
`COMMAND
`KEYBOARD 7
`TO HOST
`
`COM PUTER
`
`
`
`
`
`
`
` "SIGN ON"
`COMMAND ?
`
`5|?
`
`
`
`
`'SIGN OFF"
`COMMAND?
`
`
`
`
`DOW NLOAD
`
`
`*-
`COMMAND 7!
`
`ON CRT 9
`
`YES
`
`DISPLAY
`(I.
`
`
`
`
`SEI
`
`TRANSMIT
`DOWNLOAD
`COMMAND TO
`
`HOST COMFUT ER
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 19
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 19
`
`
`
`
`
`US. Patent
`
`Feb. 5, 1979
`
`Sheet 19 0:21
`
`4,138,718
`
`522.
`
`REPLY FROM
`
`HOST COMPUTER
`AND DISPLAY
`
`
`
` RECBVE
`
`
`IT ON CRTS
`
`
`
`5.7.3
`
`
`
`TYPE "1"
`
`
`
`CODE
`
`REPLY
`
`
` JUMP To
`
`
`‘10A02" OF
`
`RESIDENT
`
`?
`
`
`
`COMMUMCATIONS
`PROGRAM
`
`$13. 133
`
`
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 20
`
`
`
`
`
`U.S. Patent
`
`Feb. 6, 1979
`
`Sheet 20 of 21
`
`4,138,718
`
`‘3‘1g. M-
`
`REQUEST
`
`FROM NC
`
`ACHINE
`
`
`
`REC EIVE AND
`
`STORE MACHINE
`
`
`IDENTIFICATION
`
`
`
`
`TRANSMIT
`
`I
`ll
`'BUSV
`RECEIVE AND
`
`STORE FILE
`“55’5ng
`
`NAM AND TYPE
`
`MACHINE
`
`
`
`
`
`TRANSMIT
`ERROR
`
`
`
`
`
`
`SECURITY
`CLE?RED
`MESSAGE TO
`
`NC MACHINE
`
`ANY
`REQUEST
`FROM NC
`MACHINE
`
`E
`
`
`
`TRANSMIT
`
`
`
`
`READ DATA
`DATA RECORD
`RECORD FROM
`TO NC
`DOWNLOAD
`MACHINE
`
`LIBRARY
`
`
`
`CONV ERT
`
`DATA RECORD
`
`
`TO ASCII
`
`C HARAC T ERS
`
`554-
`
`550
`
`
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 21
`
`
`
`US. Patent
`
`Feb. 6, 1979
`
`Sheet 21 of 21
`
`4,138,718
`
`.
`$13. 15
`
`
`
`
`
`RESlDENT
`COMMUNICATIONS
`PROGRAM (I28 LINES}
`
`HIGHEST 4K MEMORY ADDRESS
`
`00000
`
`551
`
`READ/WRITE
`
`MEMORY
`
`31:5. 16
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 22
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 22
`
`
`
`
`
`4,133,718
`
`1
`
`NUMERICAL CONTROL srsrm WITH
`DOWNLOADING CAPABILITY
`
`BACKGROUND OF THE INVENTION
`
`
`
`The field of the invention is numerical control sys-
`tems, and particularly. numerical control systems of the
`type which employ programmed processors as the
`means for carrying out the numerical control functions.
`Such a numerical control system is known in the art
`as a computer numerical control or “CNC” and they
`are characterized generally by their use of a pro-
`grammed minicomputer or microprocessor in lieu of
`hardwired logic circuitry. Such a system which em-
`ploys a programmed processor is disclosed in 1.7.5. Pat.
`No. 4,038,533 which issued on July 26, 1977 and is
`entitled “Industrial Control Processor System." Al-
`though CNC systems are programmable and do there-
`fore ofl‘er a certain amount of flexibility, as a practical
`matter the system program which determines the basic
`operational characteristics of the system is seldom ai-
`tered once the system is attached to a specific machine
`tool. For example,
`the CNC system may be pro-
`grammed to provide full contouring for a three-axis
`milling machine without automatic tool changer and
`with certain “canned cycles." That software system is
`usually not altered during the life of the machine despite
`the fact that for much of the time the machine tool may
`not require contouring capability and could make better
`use of the memory space occupied by the circular and
`linear interpolation programs.
`The flexibility afforded by the use ofa programmable
`processor in a numerical control system has thus never
`been fully realized in prior systems.
`SUMMARY OF THE INVENTION
`
`The present invention relates to a numerical control
`system in which a system program may be readily
`downloaded from a library stored in a bull: storage
`device. More specifically. the invented numerical con-
`trol system includes a main memory. a processor, a
`read-only memory which stores a resident communica-
`tion program. means for transferring the resident com-
`munications program from the read-only memory to the
`main memory and for initiating the execution of said
`program by the numerical control system processor. a
`storage device for storing a plurality of programs in-
`cluding a system program for the numerical control
`system, and a host processor coupled to said storage
`device and said numerical control system processor and
`being responsive to a download command generated by
`said numerical control system processor during its exe-
`cution of the resident communications program to
`download said system program to the main memory.
`wherein the numerical control system processor jumps
`from the resident communications program to said
`downloaded system program after the download has
`been completed.
`A general object of the invention is to download a
`system program to the memory of a CNC system. If the
`main memory is completely empty. as for example, after
`a prolonged power failure or a malfunctiOn which
`erases part or all of the system program, a new system
`program can be downloaded from the download library
`in the storage device by initiating the execution of the
`resident communications program.
`Another object of the invention is to enable the oper-
`star to select a system program from the download
`
`10
`
`15
`
`2.0
`
`25
`
`35
`
`45
`
`55
`
`60
`
`65
`
`2
`library. A manual data entry means such as a keyboard
`is associated with the numerical control processor and
`the download command is selected by the operator to
`identify a specific program in the download library. In
`this manner different system programs may be down-
`loaded to alter the capabilities of the numerical control
`system to meet the requirements of the machine tool to
`which it is attached and the part being machined.
`The foregoing and other objects and advantages of
`the invention will appear from the following descrip-
`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 necessarily represent the full scope of the invention,
`however, and reference is made to the claims herein for
`interpreting the breadth of the invention.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`I. is a perspective View of the system of the
`FIG.
`present invention connected to a machine tool;
`FIG. 2 is a perspective view of the numerical control
`system which forms part of the system of FIG. 1 with
`the enclosure door open;
`FIG. 3 is a block diagram of the system of FIG. 1;
`FIGS. 4a and 4b are a block diagram of the industrial
`control processor which forms part of the system of
`FIG. 3;
`FIG. 5 is a block diagram of the arithmetic and logic
`processor which forms part of the industrial control
`processor of FIG. 46;
`FIG. 6 is a block diagram of the input/output cir-
`cuitry which forms a part of the industrial control pro-
`cessor of FIG. 4b,-
`FIG. 7 is a schematic diagram of the priority encoder
`circuit which forms part of the industrial control pro-
`cessor of FIG. 40:
`FIGS. Ina—c are a flow chart of the resident communi-
`cations program whieh forms part of the industrial con-
`trol processor of FIG. 4;
`FIG. 9 is a flow chart of a system program which
`may be stored in the numerical control processor mem-
`cry;
`FIG. 10 is a flow chart of the main controller routine
`which forms part of the software system of FIG. 9;
`FIGS. 11:: and 11b is a flow chart of the block exe-
`cute routine which forms part of the software system of
`FIG. 9,
`FIGS. 12:! and 125 is a flow chart of the ten millisec-
`ond timed interrupt routine which forms part of the
`software system of FIG. 9;
`FIGS. 13a and 13b is a flow chart of a program called
`COMPAC which is stored in the download library;
`FIG. 14 is a flow chart of the download program
`(DNLDNC) stored in the host computer memory of
`FIG. 3;
`FIG. 15 is a representation of the contents of the
`numerical control system memory at one stage of the
`download procedure; and
`FIG. 16 is a block diagram of the host computer of
`FIG. 1.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`Referring to FIG. 1, a numerical control system is
`housed in a cabinet 1 and connected through a cable 2 to
`a multi-function machine tool with automatic tool
`changer 3. The numerical control system controls the
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 23
`
`
`
`
`
`3
`motion of a cutting tool 4 along two or more axes of
`motion in response to a part program which is read
`from a tape reader 5. In addition, the numerical control
`system operates in response to commands read from the
`tape reader 5 to control auxiliary functions on the ma-
`chine tool 3, such as autOmatic tool selection and chang-
`ing from a tool magazine 6. pallet selection and chang-
`ing. spindle speed and coolant operation. The imple-
`mentation of such auxiliary functions involves the sens-
`ing of one-bit signals generated by numerous input de-
`vices such as limit switches, selector switches. and
`photo-electric cells. which are mounted to the machine
`tool 3, and the operation of numerous output devices
`such as solenoids. lights, relays and motor starters. The
`numbers and types of such input and output devices. as
`well as the manner in which they are operated. will
`vary considerably from machine to machine.
`The numerical control system includes a programma-
`ble interface which allows it to be easily interfaced with
`machine tools of any make and model. This interface is
`accomplished by entering a control program comprised
`of programmable controller-type instructions through a
`keyboard 7. When this control program is executed the
`system operates as a programmable controller to selec-
`tively sense the status of the particular input devices on
`the machine tool to be controlled and to selectively
`operate the output devices thereon to provide the de-
`sired manner of operation.
`Mounted to the door of the cabinet 1 immediately
`above the keyboard 7 is an amociated cathode ray tube
`(CRT) display 9. Mounted to the right of the keyboard
`7 and CRT display 9 is a main control panel III which
`includes a variety of pushbuttons and selector switches
`for providing standard operator controls such as mode
`selection. feedrate override. spindle speed override. jog
`select. axis select. etc. One of the pushbuttons enables
`the keyboard 7 to enter data.
`Referring particularly to FIGS. 2 and 3. the elements
`of the numerical control system are mounted within the
`cabinet 1 to allow easy access for inspection. testing and
`maintenanceThekeMd'lismounIedtothecabinet
`door 11 along with the tape reader 5. CRT display 9 and
`main control panel 10. A secondary control panel 12
`mounts immediately above the tape reader 5 and all of
`these system 1/0 devices are connected to a numerical 45
`control processor 13 which is housed at the bottom of
`the cabinet I. More specifically. the tape reader 5 con-
`nects through a cable 14. the secondary control panel 12
`connects through a cable 15. the keyboard 1 connects
`through a cable 25. the CRT display 9 connects through
`a cable 1‘1, and the main control panel 10 connects
`through a cable 18 to a wire harness 19 which leads to
`the processor 13. A processor Front panel 26 provides a
`number of manually operable pualtbuttons and visual
`indicators which relate to the operation ofthe procmor
`l3 and which are connected thereto through a bus 21.
`Two input/output (1/0) interface racks 20 and 21 are
`mounted in the cabinet 1 above the processor 13 and are
`connected thereto by a wiring barn 22 which extends
`upward along their left-hand side. A main power supply
`23 mounts above the 1/0 interface rack 21 and a mem—
`
`IO
`
`15
`
`25
`
`35
`
`55
`
`ory power supply 24 mounts on the left side wall of the
`cabinet 1.
`The 1/0 interface racks 20 and 21 mount a variety of
`inth circuits and output circuits on closely spaced,
`vertically disposed printed circuit boards (not shown in
`the drawings}. These input and output circuits serve to
`couple the industrial control processor 13 with the
`
`65
`
`4,138,718
`
`4
`cable 2 that leads to the machine tool 3 and may include
`input circuits for sensing the status of limit, selector and
`pushbutton switches such as that disclosed in U.S. Pat.
`No. 3,643,115 entitled "Interface Circuit for Industrial
`Control Systems." and output circuits for driving sole-
`noids and motors such as that disclosed in U.S. Pat. No.
`3.745.546 entitled "Controller Output Circuit." The
`input circuits also include position feedback accumula-
`tors which receive feedback data from the position
`transducers on the machine tool 3 and the output cir-
`cuits include registers for prOViding axis motion com-
`mand words to the machine tool servo mechanisms.
`Referring particularly to FIGS. 1-3, the numerical
`control system 1 is connected to a host computer 500
`through a cable 301 in what is known in the art as a
`DNC configuration. The cable 50] connects to a uni-
`versal asynchronous receiver/transmitter (UAR/T) 8
`which is mounted within the numerical control preces-
`sor housing 13 and it in tum is connected to the numeri-
`cal control processor 13 through the wire harness 19.
`The UAR/T 8 is treated as another input/output device
`by the processor 13 as will be described in more detail
`hereinafter.
`The host computer 500 is a general purpose digital
`computer such as the Model 7/32 manufactured by
`lnterdata. Inc. As will be described in more detail here-
`inafter. it is coupled to the cable 50! by a UAR/l" 502
`which connects to an 1/0 port on a coniputer processor
`550. The processor 550 is coupled to a read/write mem—
`ory 551 through a bus 552 and a bulk storage device 507
`in the form of a disc couples to the memory 551 and it
`serves to store not only a large number of part pro-
`grams. but also. a variety of numerical control system
`software packages which may be downloaded to the
`numerical control system 1. Programs stored in the host
`computer memory 331 enable the computer to commu-
`nicate with the numerical control system 1 and to man-
`age the library of programs stored in the bulk storage
`507.
`As will be described in more detail hereinafter. an
`Operator at the numerical control system 1 can call up a
`particular part program or a particular numerical con-
`trol software system by generating commands through
`the keyboard 7. Referring particularly to FIG. 3. a
`communications package stored in a numerical control
`system memory 34 couples these commands to the host
`computer sun. which in turn reads the selected part
`program or numerical control system software package
`out of the bulk storage 501 and downloads it to the
`numerical control system 1. The downloaded program
`is stored in the memory 34 at a location determined by
`the communications package. To better understand the
`nature of a numerical control sofiware system package
`which can be downloaded from the bulk storage 507 to
`the memory 3‘, a description of a preferred numerical
`control system — both hardware and software — will
`now be made. This preferred numerical control system
`is sold commercially by the Allen-Bradley Company as
`the Model 13111 B and it is described in detail in U.S.
`Pat. No. 4,038,533.
`Referring particularly to FIGS. 4:: and 4b, the numer-
`ical control processor 13 is organized around a sixteen-
`bit bidirectional processor data bus 30. Data is moved
`from one element of the procmsor to another through
`this data bus 3|) in response to the execution of a micro-
`instruction which is held in a 24—bit micro-instruction
`register 31. Each such micro-instruction indicates the
`source of the data to be applied to the data bus 30. the
`
`
`
`PMC Exhibit 2123
`
`Apple v. PMC
`|PR2016-01520
`
`Page 24
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 24
`
`
`
`
`
`4,138,718
`
`5
`destination of the data, and any operations that are to be
`performed on that data. The micro-instructions are
`stored in a micro-program read—only memory 32, and
`one is read out every 200 hand-seconds through a bus 33
`to the micro-instruction register. 31. The readronly
`memory 32 stores a large number of separately address-
`able, or selectable, micro-routines, each of which is
`comprised of a set of micro-instructions. To enable the
`processor 13 to perform a desired function, the appro-
`priate micro-routine is stored in the read-only memory
`32 and it is selected for execution by a 16-bit macro-
`instruction which is stored in a read/write main mem-
`ory 34.
`The main memory 34 is comprised of 4K by l dy—
`namic MOS RAMs which are organized to store up to
`32,000 16-bit words. Macro-instructions and data are
`read out of and written into the main memory 3‘
`through a l6—bit memory data register 35 which con-
`nects to the processor data bus 30. The memory words
`are selected, or addressed, through a 15-bit ory
`address register 36 which also connects to the processor
`data bus 30. To write into the main memory 3‘, an
`address is first loaded into the memory address register
`36 by applying a logic high voltage to its clock lead 29.
`The data to be loaded appears on the processor data bus
`30 and is gated through the memory data register by
`applying a logic high voltage to its data in clack lead 2‘7.
`A logic high voltage is then applied to a read/write
`control line 34’ on the memory 34 to complete the load-
`ing operation. Data or a macro-instruction is read out of
`an addressed line of the main memory 34 when a
`READ micro-instruction is executed. A logic low volt-
`age is applied to the read/write control line 34' and a
`logic high voltage is applied to a data out enable line 28
`on the memory data register 35. The data word is mo-
`mentarily stored in the register 35 and is subsequently
`transferred through the processor data bus 30 to the
`desired destination.
`
`In response to the execution ofa micro-routine called
`FETCH, which includes the READ micro-instruction,
`a macro-hastruction is read from the main memory 34
`and coupled to a 16-bit macro-imitruction register 37
`through the data bus 30. The macro-instruction is stored
`in the register 37 by a logic high voltage which is ap-
`plied to a macro-instruction register clock line 37'. Cer-
`tain of the macro-instructions include operation codes
`which are coupied through an instructiOn register bus
`39 to a macro-decoder circuit 38, and other instmctions
`also include a bit pointer code which is coupled through
`the same instruction register bus 39 to a bit pointer
`circuit 4-0. The bit pointer circuit 10 is a binary decoder
`having four inputs connected to the least significant
`digit outputs of the macro—instruction register 37 and
`having a set of 16 outputs connected to mpective leads
`in the processor data bus 30. In response to the execu-
`tion of a selected micro-instruction (MASK), a logic
`high voltage is applied to a terminal 41, and the bit
`pointer circuit 40 drives a selected one of the sixteen
`leads in the prooessor data bus 30 to a logic low voltage.
`The bit pointer circuit 40 facilitates the execution of
`certain programmable controller type macro-instruc-
`tions.
`In response to an Operation code in a macro-instruc-
`tion stored in the register 37, one of the micro-routines
`in the read-only memory 32 is selected. The operation
`code is applied to the macro-decoder circuit 38 which
`enables one of four mapper proms 42-45 and addresses
`a selected line in the enabled mapper prom. Each line of
`
`nects to the prooessor data bus 30 and to the micro-
`
`6
`the mapper proms I‘ll—45 stores a twelve-bit nucro-rou-
`tine starting addresa. which when read out, is coupled
`through a anew-program address bus 46 to preset a
`twelve-bit micro-program sequencer 47. The sequencer
`47 is a presenable counter which includes a load tenni-
`md 52, an increment terminal 53 and a clock terminal 54.
`The clock terminal 54 is driven by a five-megahertz
`clock signal which is generated by a processor clock
`circuit 85 that is coupled to the sequencer 47 through an
`AND gate 86. Each time a logic high clock pulse is
`applied to the terminal 54 on the micro-program se-
`quencer 4'7, it is either preset to an address which ap-
`pears on the bus 46 or it is incremented one count. Con-
`currently, the micro-histruction register 31 is clocked
`through a line 88 and AND gate 88' to read and store
`the micro-instructiou which is addressed by the micro-
`program sequencer 47. The AND gates 86 and 88 can
`be disabled in response to selected codes in a micro-
`instruction to decouple the 5 mHz clock. Such decou-
`pling of the clock 85 from the sequencer 47 occurs. for
`example, during input and output operatiOns to allow
`data one micro-second to propagate.
`Each micro-second which is read out of the read-only
`memory 32 to the micro-instruction register 31 is cou-
`pled through a micro-nonunion bus 31a to a micro-
`instruction decoder circuit 18 which is also coupled to
`the clock line 88. The micro-instructions are decoded
`and executed before the next clock pulse is applied to
`the terminal 54 on the micro-program sequencer 47.
`Each micro-instruction is comprised of a plurality of
`separate codes called micro-orders which are each sepa-
`rately decoded to enable one of the processor elements.
`Each micro-routine stored in the micro-program
`read-Only memory 32 is terminated with a special mi-
`cro-instruction which includes a code, or micro-order,
`identified hereinafier by the mnemonic BOX or EOXS.
`When coupled to the micro-instruction decoder circuit
`48, this code causes a logic high voltage to be generated
`on an BOX line ‘9 to a priority mapper prom 50. If the
`industrial control processor 13 is in the RUN mode. the
`starting address of the FETCH micro-routine is read
`from the priority mapper prom 50 and is applied to the
`micro-sequencer 1!? through the bus 46. The micro-
`instruction decoder circuit 48 also generates a logic
`high voltage on a preset line 51 which connects to the
`load terminal 52 on the micro-program sequencer 47 to
`preset the sequencer 47 to the starting address of the
`FETCH micro-routine.
`As indicated above, the FETCH micro-routine func-
`tions to read the next macro-instruction to be executed
`from the main memory 34, couple it to the macro-
`instruction register 37, and initiate the execution of that
`macro-instruction. The last micro-instruction in the
`FETCH micro-routine includes a code which is identi—
`fied hereinafter by the mnemonic MAP. This micro-
`instrucu'on code causes the micro-instruction decoder
`circuit 48 to generate a logic high voltage to the macro-
`decoder circuit 38 through a MAP line 52 and to
`thereby initiate decoding of
`the macro-instruction
`which is stored in the macro-instruction register 37. A
`logic high voltage is also generated on the preset line 51
`to load the micro-program sequencer 4'7 with the start-
`ing address of the micro-routine called for by the de-
`coded macro-instruction.
`As shown in FIG. db, mathematical and logical oper-
`ations are performed by the industrial control processor
`13 in an arithmetic and logic processor 55 which con—
`
`5
`
`IO
`
`[5
`
`20
`
`25
`
`30
`
`35
`
`4O
`
`45
`
`50
`
`55
`
`60
`
`65
`
`PMC Exhibit 2123
`Apple v. PMC
`IPR2016-01520
`Page 25
`
`
`
`
`
`4,138,718
`
`7
`instruction decoder circuit 48 through a bus 56. Refer-
`ring particularly to FIG. 5. the arithmetic and logic
`processor 55 includes a 16-bit "L" register 57 which has
`inputs that connect to the leads in the processor data bus
`30 and a corresponding set of outputs which connect
`through a bus 58 to the “B” inputs ofa 16-bit arithmetic
`and logic unit (ALU) 59. Data on the bus 30 is clocked
`into the L register 51 when a logic high is applied to a
`lead 60 and the L register 57 is cleared when a logic
`high is applied to a lead 61. The leads 60 and 61 connect
`to the micro-instruction decoder circuit 48 through the
`bus 56 and are thus controlled by selected micro-
`instructions.
`The ALU 59 is campfised of four commercially
`available arithmetic logic units combined with a com-
`mercially available full carry look-ahead circuit to per-
`form high speed functions such as add, substract. decre-
`ment and straight transfer. The ALU 59 has a set of 16
`“A” inputs which connect directly to the leads in the
`prooessor data bus 30 and a set of four function-select
`lines 62 which connect to the micro-instruction decoder
`circuit 48 through the bus 56. In response to selected
`micro-instructions. the ALU 59 performs functions on
`data applied to its A and 8 inputs and generates the
`16-bit results to a shifter circuit 63 through a bus 64.
`Also, the ALU 59 generates signals to an ALU de-
`coder 114 which indicate when the result of a logical or
`arithmetic function is zero. all “ones,” odd, negative or
`when it causes an overflow or a carry. The existence of
`such a condition is separately tested by micro-orders, or
`codes in micro-instructions which enable the ALU de-
`coder 114 through the bus 56. The existence of the
`tested condition results in the generation of a logic high
`on a skip line 115 which connects to the decoder 48.
`The existence of an overflow condition in the ALU
`59 can also be stored in an overflow flip-flop 116 when
`a logic high is applied to its clock terminal through a
`line 117 by the decoder circuit 48. The Q output on the
`flip-flop 116 connects to the ALU decoder 114 and its
`condition can be tested by an appropriate micro-order.
`A system flag flip-flop 118 connects to the ALU de-
`coder 114 and it can be clocked in response to an appro-
`priate micro-order through a line 119 from. th