# US 7,395,122 B2 · Data capture for electronically delivered automation services

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,395,122 B2
- Document ID: US7395122B2
- Status: Granted
- Kind: B2
- Application number: 09/950,848
- Filed: 2001-09-12
- Published: 2003-01-16
- Granted: 2008-07-01
- Earliest claimed: 2001-07-13
- Assignees: Siemens Aktiengesellschaft
- Inventors: Volker Kreidler; Knut Lagies; Wolfgang Mutscheller; Michael Kaever; Stephan Greff; Rainer Dirnfeldner
- Web page: https://patentgrep.com/patent/US7395122B2

## CPC

- G05B 19/4063: Monitoring general control system (G05B19/4062 takes precedence)
- G05B 19/0426: {Programming the control sequence}
- G05B 2219/23298: Remote load of program, through internet
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)

## Abstract

Content is generated on a host system based on real-time data from a controlled process collected over an internet from a customer's client machine tool control system. The real-time data is captured from the client machine tool by downloading software that manipulates controller functionality to perform a data capture trace predefined events and triggers. The captured data is retrieved by the host, which may generate content based on the data, or provide selective, authorized access to the data by others.

## Claims

### Claim 1

A method for capturing data from an industrial controller comprising the steps of:
a. receiving program code over a network;
b. providing access to the program code by the industrial controller;
c. running the accessed program code to collect data from the industrial controller, wherein the data are being collected during the run-time of a control function; and
d. monitoring to ensure that collection of the data does not interfere with the run-time of the control function;
whereby access to the program code by the industrial controller is provided by compiling the program code to the controller library and linking the compiled program code to the controller base code.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising the step of running accessed code to configure events on which data are to be captured.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising the step of setting a trigger, upon the detection of which, the capture of data will be terminated.

### Claim 4 (depends on 3)

The method according to claim 3, further comprising the steps of detecting the occurrence of an event and, upon such detection, writing data, identified in a respective data list, to a location on a storage device.

### Claim 5 (depends on 2)

The method according to claim 2, further comprising the step, prior to writing captured data to a storage location, of checking to determine whether capacity for storing data has been exhausted.

### Claim 6 (depends on 5)

The method according to claim 5, wherein the step of writing data to a storage location proceeds only as long as the capacity for data collection is not exhausted.

### Claim 7 (depends on 4)

The method according to claim 4, further comprising the steps of detecting the occurrence of a trigger and, upon such detection, ceasing to write the data to a storage location.

### Claim 8 (depends on 7)

The method according to claim 7, wherein the step of ceasing to write the data to a storage location is delayed until the completion of a pre-defined, post-trigger delay period.

### Claim 9 (depends on 7)

The method according to claim 7, wherein additional events and respective triggers up to a preselected limit are defined, further comprising the steps of detecting the occurrence of the additional events and, upon each such detection, writing data, identified in additional respective data lists, to additional respective locations on the storage device.

### Claim 10 (depends on 9)

The method according to claim 9, further comprising the steps of detecting the occurrence of the additional triggers and, for each such detection, ceasing to write respective data to the respective location on the storage device.

### Claim 11 (depends on 7)

The method according to claim 7, wherein the data to be captured is identified by linking to a respective data list.

### Claim 12 (depends on 7)

The method according to claim 7, further comprising the step of ending the link to the data list.

### Claim 13 (depends on 7)

The method according to claim 7, wherein the storage location is accessible to a base component of the controller.

### Claim 14 (depends on 1)

The method according to claim 1, wherein program code comprises a compile cycle.

### Claim 15 (depends on 1)

The method of claim 1, wherein data are collected in and read from a high speed local circular buffer.

### Claim 16

A method for capturing data from a CNC machine tool, comprising the steps of:
a. receiving program code over a network;
b. providing access to program code by numerical control kernel (NCK); and
c. runrnng accessed program code to capture data from NCK;
wherein the data are collected during run-time of a control function; and
d. monitoring to ensure that collection of the data does not interfere with the run-time control function whereby access to program code by the NCK is provided by compiling the program code to the NCK library and linking the compiled program code to the NCK base code.

### Claim 17 (depends on 16)

The method according to claim 16, further comprising the step of running accessed code to configure events on which data are to be captured.

### Claim 18 (depends on 17)

The method according to claim 17, further comprising the step of setting a trigger, upon which capture of data will be terminated.

### Claim 19 (depends on 18)

The method according to claim 18, further comprising the steps of detecting the occurrence of an event and, upon such detection, writing data, identified in a respective data list, to a location on a storage device.

### Claim 20 (depends on 19)

The method according to claim 19, further comprising the step, prior to writing captured data to a storage location, of checking to determine whether capacity for storing data has been exhausted.

### Claim 21 (depends on 19)

The method according to claim 19, wherein the step of writing data to a storage location proceeds only as long as the capacity for data collection is not exhausted.

### Claim 22 (depends on 21)

The method according to claim 21, further comprising the steps of detecting the occurrence of a trigger and, upon such detection, ceasing to write the data to a storage location.

### Claim 23 (depends on 22)

The method according to claim 22, wherein the step of ceasing to write the data to a storage location is delayed until the completion of a pre-defined, post-trigger delay period.

### Claim 24 (depends on 22)

The method according to claim 22, wherein additional events and respective triggers up to a preselected limit are defined, further comprising the steps of detecting the occurrence of the additional events and, upon each such detection, writing data, identified in additional respective data lists, to additional respective locations on the storage device.

### Claim 25 (depends on 24)

The method according to claim 24, further comprising the steps of detecting the occurrence of the additional triggers and, for each such detection, ceasing to write respective data to the respective location on the storage device.

### Claim 26 (depends on 19)

The method according to claim 19, wherein the data to be captured is identified by linking to a respective data list.

### Claim 27 (depends on 26)

The method according to claim 26, further comprising the step of ending the link to the data list.

### Claim 28 (depends on 16)

The method according to claim 16, wherein the storage location is accessible to a base component of the CNC.

### Claim 29 (depends on 16)

The method according to claim 16, wherein program code comprises a compile cycle.

### Claim 30 (depends on 16)

The method of claim 16, wherein data are collected in and read from a high speed local circular buffer.

### Claim 31 (depends on 16)

The method of claim 16, wherein data are being collected during the runtime of an NCK machine control function, the method comprising the further step of monitoring to ensure that collection of the data does not interfere with run-time process.

### Claim 32

A system for capturing real-time data from an industrial controller haviyng associated with it identifying information, the system comprising:
a base subsystem in communication over a network with a host system and in communication with a human-machine interface (HMI) subsystem, a compile cycle, a data storage device for storing the industrial controller identifying information, and at least one control task, the base subsystem being adapted to receive programming code from the host via download over the network and, per instructions in the downloaded code, to detect the occurrence of an event, and, upon such detection, to write real-time data to a respective location in the storage device,
wherein the real-time data are collected during a run-time of a control function; and
wherein monitoring is performed to ensure that collection of the real-time data does not interfere with run-time control function; and
wherein the programming code is compiled to an industrial controller library and the compiled program code is linked to base code of the industrial controller.

### Claim 33 (depends on 32)

The system according to claim 32, further configured to detect the occurrence of a trigger and, upon such detection, to cease writing the real-time data to the respective location in the storage device.

### Claim 34 (depends on 32)

The system according to claim 32, wherein the at least one control task comprises a non-cyclic task.

### Claim 35 (depends on 32)

The system of claim 32, wherein the industrial controller is a CNC tool.

### Claim 36 (depends on 32)

The system according to claim 32, wherein the at least one control task comprises an interpolator (IPO) control task.

### Claim 37 (depends on 32)

The system according to claim 32, wherein the at least one control task comprises a servo control task.

### Claim 38 (depends on 32)

The system according to claim 32, wherein the at least one control task comprises a drive control task.

### Claim 39 (depends on 32)

The system according to claim 32, wherein the at least one control task comprises a pre-run task.

### Claim 40

A system for capturing real-time data from an industrial controller, the system comprising: a controller in communication over a network with a host system and in communication with a human-machine interface (HMI), a compile cycle, a data storage device for storing identifying information associated with the controller, and at least one control task, the controller being configured to receive programming code from the host via download over the network and, per instructions in the downloaded code, to detect the occurrence of an event, and, upon such detection, to write real-time data to a respective location in the storage device,
wherein the real-time data are collected during run-time of a control function and wherein monitoring is performed to ensure that collection of real-time data does not interfere with run-time control function;
wherein the programming code is compiled to a controller library and the compiled program code is linked to base code of the controller.

### Claim 41 (depends on 40)

The system according to claim 40, wherein the controller means comprises a CNC machine tool controller.

### Claim 42 (depends on 41)

The system according to claim 41, wherein the controller means comprises a base subsystem.

### Claim 43 (depends on 40)

The system according to claim 40, further configured to detect the occurrence of a trigger and, upon such detection, to cease writing the real-time data to the respective location in the storage device.

### Claim 44 (depends on 40)

The system according to claim 40, wherein the at least one control task comprises a non-cyclic task.

### Claim 45 (depends on 40)

The system according to claim 40, wherein the at least one control task comprises an interpolator (IPO) control task.

### Claim 46 (depends on 40)

The system according to claim 40, wherein the at least one control task comprises a servo control task.

### Claim 47 (depends on 40)

The system according to claim 40, wherein the at least one control task comprises a drive control task.

### Claim 48 (depends on 40)

The system according to claim 40, wherein the at least one control task comprises a pre-run task.

### Claim 49

A method for remotely configuring a numerical control kernel (NCK) of a computerized numerical controller (CNC) for capturing real-time data from the numerical control kernel (NCK), the CNC in communication over a network with a host system, the CNC further having associated with it identifying information and comprising a human-machine interface (HMI) for maintaining communication with the host and communicating with the NCK via an interface, the host being in communication with a data storage device for storing CNC identifying information and in which is also stored data capture software for use with an identified CNC, the method comprising the steps of: retrieving CNC identifying information over the network from the CNC; retrieving from the data storage device software for configuring a data capture trace for the CNC, the retrieval based on identifying information for the CNC; and downloading software over the network from the host to the HMI, the downloaded software adapted for configuring a data capture trace without modifying the NCK,
wherein said data capture trace captures data during run-time of a control function and wherein monitoring is performed to ensure that collection of the data does not interfere with run-time control function; and
wherein the software is compiled to the CNC library and the compiled program code is linked to base code of the CNC.

### Claim 50 (depends on 49)

The method according to claim 49, wherein the CNC identifying information comprises a machine code unique to the CNC.

### Claim 51 (depends on 50)

The method according to claim 50, wherein the downloaded software comprises a compile cycle for extending NCK data capture trace functionality.

### Claim 52 (depends on 50)

The method according to claim 50, wherein the HMI supports machine handler and machine handler interface software for communications between the HMI and the NCK.
