DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-13 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Rischar (US 20090016475 A1) hereafter Rischar.
Regarding Claim 1:
Rischar discloses:
An industrial system for controlling backplane communication, comprising: a microcontroller,([¶0014] microprocessors) a first time module belonging to a first time domain and generating a first timestamp at an event, a second time module belonging to a second time domain and able to communicate with at least one Input/Output, I/O, module, generating a second timestamp at the event, ([¶0035] Now turning to the figures, FIG. 1 illustrates a time synchronization system 100 that can compensate for step changes in system time. The system 100 can be employed in a motion control system, such as, for example, a manufacturing motion control system within an industrial, automotive, aerospace environment, etc. The time synchronization system 100 can include a time synchronization component 102 that includes a timestamp component 104 that interacts with a time sync component 106. The timestamp component 104 can be configured to record timestamps and offsets captured from at least one network node (e.g., one or more source nodes and/or one or more destination nodes). The time synch component 106 can be configured to identify step changes to at least one master clock and synchronize a local clock time of the network node with the identified step change. Each node maintains a local time independent from other nodes, however, all notes maintain a common understanding of system time. Thus, local clocks can be adjusted to a system time based on the step changes identified by time sync component 106. ) wherein the microcontroller is configured to: calculate an offset between the second timestamp and the first timestamp, compute a clock ratio between the second time domain and the first time domain, ([¶0039] the system 100 can employ an Ethernet/IP CIP network 110 based on standard UDP (User Datagram Protocol), IEEE 1588 (PTP Time Synchronization), Ethernet technology, or the like. The time sync component 106 can determine a system time offset at substantially the same time as the timestamp is captured and the offset can be used to provide an indication of when the step change occurred in the system time. For example, various techniques can be utilized to provide a notification that system time should be manually synchronized or that an automatic synchronization has occurred. Such indication can include, but are not limited to, a visual indication (e.g., flashing light), an audio tone, an e-mail notification, a page, a voice message, etc. In more detail, the timestamp can be transmitted across or through the CIP network 110 from one clock node to a second clock node and the offset, associated with that timestamp, can be sent in conjunction with the timestamp, or at a different time. Two or more timestamps captured at the same node (and associated offsets) can be stored in the database 108 (or in another retrievable format). An algorithm can facilitate a local node adjusting the value of one or more timestamps that have been captured on that local node. It should be understood that while one or more particular algorithm may be discussed in reference to the disclosed embodiments, various algorithms, methods, and/or techniques can be employed to compensate for step changes in system time. ) transmit a message to said at least one I/O module, the message comprising the second timestamp, the offset and the clock ratio. ([¶0067] Turning to FIG. 7, illustrated is an exemplary system 700 employing the one or more embodiments disclosed herein in an industrial automation environment. It should be appreciated that system 700 is provided to facilitate understanding of aspects of the various embodiments and not to limit the scope thereof. System 700 can include a communication path or network 702 (e.g., hard-wire networks, wireless networks, local area network (LAN), wide area network (WAN), DeviceNet, ControlNet, Ethernet, EtherNet/IP, EtherCAT, Profinet, SERCOS, CAN, Precision Time Protocol, Modbus, CANopen, ARCNET, Token Ring, FDDI, etc.). System 700 can also include a switch 704 acting as a grandmaster clock such as a programmable logic controller (PLC) or other control system, for example. The switch 704 interacts with a time synchronization component 706 and can also interact with a plurality of clocks, e.g., device A 708 and device B 710. Device A 708 can communicate and provide system time for automation devices including a drilling machine 712, vertical mill 714 and a robotic welding cell 720 containing multiple robots. The time synchronization component 706 can receive data from the switch 704 and store such data to a database 714 utilizing a timestamp component 716 in association with a time sync component 718. For instance, the timestamp component 716 can collect timestamp and offset time data and employ algorithms to adjust the system time of various devices so that the associated clocks are synchronized with the switch 704 (grandmaster clock). Additionally, the switch 704 can retrieve data from the database 714 through network 702, and provide such data to various clocks within the system 700 to enable clock synchronization, for example.)
Regarding Claim 2:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein said at least one I/O module is configured to calculate an absolute timestamp based on a module timestamp, the second timestamp, the offset and the clock ratio. ([¶0068] Device B 710 in FIG. 7 can interface with the switch 704, the robotic welding cell 720, and a computer 722. The robotic welding cell 720 can be a tandem welding system that can control one or more coordinated actions between the multiple welding units. For example, this can include synchronized welding operations such that the welding units are started and stopped in a coordinated manner to facilitate an overall welding process in a manufacturing operation. As an example of this process, synchronous instructions can be issued by the computer 722 and/or over the network 702 by a PLC controller (not shown) such that the welders within the robotic welding cell 720 operate in a coordinated manner. This can include one welder performing a portion of the process with the other welder performing other portions of the process. Other actions can include controlling several welders such that similar portions of a work piece, for example, are concurrently welded at similar locations. One possible technique to perform coordinated welding is to supply the welders with a master clock reference (not shown) (e.g., externally supplied and/or derived from a clock supplied on the network 702) such that as the welders are given control commands, the welders perform these commands at a predetermined time. Thus, operations and commands can then be coordinated with the clock in a substantially synchronous manner. Other types of commands can include adjustable time delay commands for starting and stopping a weld cycle, trigger commands for on/off timing (e.g., on at same time), sending suitable output command levels per respective welder to achieve desired weld profile (e.g., a first welder intermittent, a second welder continuous). In this example, the robots are provided with local time from both device A 708 and device B 710 and therefore if the switch 704 (grandmaster clock) experiences a step change the local clocks, devices A and B (708 and 710) can detect the step change and adjust the timestamps and offsets to re-synchronize to system time or can remain on local time and can thus continue coordinated operations.)
Regarding Claim 3:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the module timestamp is generated after the first timestamp and the second timestamp. ([¶0035] Now turning to the figures, FIG. 1 illustrates a time synchronization system 100 that can compensate for step changes in system time. The system 100 can be employed in a motion control system, such as, for example, a manufacturing motion control system within an industrial, automotive, aerospace environment, etc. The time synchronization system 100 can include a time synchronization component 102 that includes a timestamp component 104 that interacts with a time sync component 106. The timestamp component 104 can be configured to record timestamps and offsets captured from at least one network node (e.g., one or more source nodes and/or one or more destination nodes). The time synch component 106 can be configured to identify step changes to at least one master clock and synchronize a local clock time of the network node with the identified step change. Each node maintains a local time independent from other nodes, however, all notes maintain a common understanding of system time. Thus, local clocks can be adjusted to a system time based on the step changes identified by time sync component 106. )
Regarding Claim 4:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the event corresponds to a Timestamp Triggering Cycle. ([¶0035] Now turning to the figures, FIG. 1 illustrates a time synchronization system 100 that can compensate for step changes in system time. The system 100 can be employed in a motion control system, such as, for example, a manufacturing motion control system within an industrial, automotive, aerospace environment, etc. The time synchronization system 100 can include a time synchronization component 102 that includes a timestamp component 104 that interacts with a time sync component 106. The timestamp component 104 can be configured to record timestamps and offsets captured from at least one network node (e.g., one or more source nodes and/or one or more destination nodes). The time synch component 106 can be configured to identify step changes to at least one master clock and synchronize a local clock time of the network node with the identified step change. Each node maintains a local time independent from other nodes, however, all notes maintain a common understanding of system time. Thus, local clocks can be adjusted to a system time based on the step changes identified by time sync component 106. )
Regarding Claim 5:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the clock ratio is determined based on a ratio between the time interval for two consecutive primary timestamps and the time interval for two consecutive secondary timestamps. ([¶0062] As such, in this example embodiment, at the index value T0, the master time is 100, the time base is 100, the timestamp is 100, and the time offset is 0. At the index T1, the master time is 200, the timestamp is 200 and again the offset is 0. Applying the above equation for T2, comparing the timestamps (in seconds, at the single first node) at index T1 and T2 can be written in abbreviated form)
Regarding Claim 6:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the absolute timestamp is calculated as the sum of the module timestamp, the offset and the product of the difference between the clock ratio and one by the difference of the module timestamp and the second timestamp. ([¶0077] At 1202, a Timestamp.sub.Received (received timestamp) can be determined by the destination node and stored in a database. At 1204 Dest.sub.Offset (current value of the local clock time offset at the destination) can be determined at the destination node and collected in the database. At 1206, a Dest.sub.LastOffset (previous value of the local clock time offset at the destination) can be determined and sent to the database for future retrieval. At 1208, the value of (Dest.sub.Offset-Dest.sub.LastOffset) can be calculated by the time sync component within the time synchronization component and the result can be stored for future access in the database. A Source.sub.Offset (received value of the local clock time offset from the source) can be determined at 1210. A Source.sub.LastOffset, which can represent the previous value of the local clock time offset from the source, can be determined at the 1212. At 1214 the value of (Dest.sub.Offset-Dest.sub.LastOffset) can be calculated. At 1216, a calculation can be performed to determine a Timestamp.sub.Compensated value. Such a value can be the sum of Timestamp.sub.Received+(Dest.sub.Offset-Dest.sub.LastOffset)-(Source.sub.- Offset-SourceLast.sub.Offset).
Regarding Claim 7:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the first time module is able to run a Generalized Precision Time Protocol stack in slave mode in the first domain, and is able to communicate with a time standard manager which runs a Generalized Precision Time Protocol stack in master mode, in order to be synchronized in time with the time standard manager. ([¶0005] The PTP protocol generates a master slave relationship among clocks in a system and within a given subnet of a network there will be a single master clock. One clock on each subnet in the system is selected as the master clock. This selection can be made by the other subnet clocks by examining information contained in special timing messages termed sync (or synchronization) messages. A sync message is sent periodically by any port associated with the clock claiming to be the master clock, and all ports use an algorithm to evaluate the sync message, termed the best clock algorithm. If a port of a master clock receives a sync message from a better (e.g., more accurate) clock, then that port will cease to be the master clock and that receiving port will assume the status of a slave port. Likewise the clock with the now designated slave port acts as a slave clock and ultimately all of the aforementioned clocks on the network derive their time from the grandmaster clock (the best master clock).)
Regarding Claim 8.
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the microcontroller, the first time module and the second time module are included in a control manager. ([¶0036] The timestamp component 104 can include a database 108 that can be configured to record the changes (if any) in timestamps and offsets of clocks on a common industrial protocol (CIP) network 110. A common industrial protocol can be, for example, DeviceNet, ControlNet, EtherNet/IP, EtherCAT, Profinet, SERCOS, CAN, Precision Time Protocol, Modbus, etc. The clocks or devices (not shown) employed by system 100 can include, for example, a grandmaster clock, master clocks, boundary clocks, ordinary clocks, etc. These various clocks can be, for example, PLC controllers, microprocessors, embedded controllers, programmable automation controllers, switches, I/O devices, standalone GPS, integrated GPS, NTP time keepers, machine clocks, computer clocks, and the like.) [¶0037] The timestamp component 104 and the time sync component 106 can facilitate identifying step changes that have occurred to the overall system time and reconfigure the times of clocks connected to a CIP network 110. A step change can be caused by, for example, losing signal with a satellite, a power outage, "hand setting" or manual setting of the master clock, etc. Timestamp component 104 can make a determination whether a correction is needed and if needed, any offsets can be automatically recorded or maintained in the database 108. Other defined parameters can be stored in database 108 including local clock time(s), system time, one or more system event, fault occurrence(s), grandmaster clock identification, master clock identification, etc. Alternatively or in addition, components and/or programming software within time synchronization component 102 can gather and store data (e.g., clock frequencies, various clock times, the clock designated as the grandmaster clock, etc.) in the database 108 of the timestamp component 104, for example.)
Regarding Claim 9:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the control manager is included in a programmable logic controller. ([¶0067] Turning to FIG. 7, illustrated is an exemplary system 700 employing the one or more embodiments disclosed herein in an industrial automation environment. It should be appreciated that system 700 is provided to facilitate understanding of aspects of the various embodiments and not to limit the scope thereof. System 700 can include a communication path or network 702 (e.g., hard-wire networks, wireless networks, local area network (LAN), wide area network (WAN), DeviceNet, ControlNet, Ethernet, EtherNet/IP, EtherCAT, Profinet, SERCOS, CAN, Precision Time Protocol, Modbus, CANopen, ARCNET, Token Ring, FDDI, etc.). System 700 can also include a switch 704 acting as a grandmaster clock such as a programmable logic controller (PLC) or other control system, for example. The switch 704 interacts with a time synchronization component 706 and can also interact with a plurality of clocks, e.g., device A 708 and device B 710. Device A 708 can communicate and provide system time for automation devices including a drilling machine 712, vertical mill 714 and a robotic welding cell 720 containing multiple robots. The time synchronization component 706 can receive data from the switch 704 and store such data to a database 714 utilizing a timestamp component 716 in association with a time sync component 718. For instance, the timestamp component 716 can collect timestamp and offset time data and employ algorithms to adjust the system time of various devices so that the associated clocks are synchronized with the switch 704 (grandmaster clock). Additionally, the switch 704 can retrieve data from the database 714 through network 702, and provide such data to various clocks within the system 700 to enable clock synchronization, for example.)
Regarding Claim 10:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the time standard manager is linked to a primary time standard by which the world regulates clocks and time. ([¶0040] Further, the system 100 can utilize, for example, American Inter Range Instrumentation Group (IRIG-B), Network Time Protocol (NTB), Telecommunications Working Group (TCWG), Global Positioning System (GPS), Precision Time Protocol (PTP) and Flooding Time Synchronization Protocol (FTSP), etc.)
Regarding Claim 11:
Rischar discloses:
A method for controlling backplane communication of an industrial system that comprises: a microcontroller, a first time module belonging to a first time domain and generating a first timestamp at an event, and a second time module belonging to a second time domain and able to communicate with at least one Input/Output, I/O, module, generating a second timestamp at the event, ([¶0035] Now turning to the figures, FIG. 1 illustrates a time synchronization system 100 that can compensate for step changes in system time. The system 100 can be employed in a motion control system, such as, for example, a manufacturing motion control system within an industrial, automotive, aerospace environment, etc. The time synchronization system 100 can include a time synchronization component 102 that includes a timestamp component 104 that interacts with a time sync component 106. The timestamp component 104 can be configured to record timestamps and offsets captured from at least one network node (e.g., one or more source nodes and/or one or more destination nodes). The time synch component 106 can be configured to identify step changes to at least one master clock and synchronize a local clock time of the network node with the identified step change. Each node maintains a local time independent from other nodes, however, all notes maintain a common understanding of system time. Thus, local clocks can be adjusted to a system time based on the step changes identified by time sync component 106. ) the method comprising the following steps in the microcontroller performing: calculating an offset between the second timestamp and the first timestamp, computing a clock ratio between the second time domain and the first time domain, ([¶0039] the system 100 can employ an Ethernet/IP CIP network 110 based on standard UDP (User Datagram Protocol), IEEE 1588 (PTP Time Synchronization), Ethernet technology, or the like. The time sync component 106 can determine a system time offset at substantially the same time as the timestamp is captured and the offset can be used to provide an indication of when the step change occurred in the system time. For example, various techniques can be utilized to provide a notification that system time should be manually synchronized or that an automatic synchronization has occurred. Such indication can include, but are not limited to, a visual indication (e.g., flashing light), an audio tone, an e-mail notification, a page, a voice message, etc. In more detail, the timestamp can be transmitted across or through the CIP network 110 from one clock node to a second clock node and the offset, associated with that timestamp, can be sent in conjunction with the timestamp, or at a different time. Two or more timestamps captured at the same node (and associated offsets) can be stored in the database 108 (or in another retrievable format). An algorithm can facilitate a local node adjusting the value of one or more timestamps that have been captured on that local node. It should be understood that while one or more particular algorithm may be discussed in reference to the disclosed embodiments, various algorithms, methods, and/or techniques can be employed to compensate for step changes in system time. ) and transmitting a message to said at least one I/O module, the message comprising the second timestamp, the offset and the clock ratio. ([¶0067] Turning to FIG. 7, illustrated is an exemplary system 700 employing the one or more embodiments disclosed herein in an industrial automation environment. It should be appreciated that system 700 is provided to facilitate understanding of aspects of the various embodiments and not to limit the scope thereof. System 700 can include a communication path or network 702 (e.g., hard-wire networks, wireless networks, local area network (LAN), wide area network (WAN), DeviceNet, ControlNet, Ethernet, EtherNet/IP, EtherCAT, Profinet, SERCOS, CAN, Precision Time Protocol, Modbus, CANopen, ARCNET, Token Ring, FDDI, etc.). System 700 can also include a switch 704 acting as a grandmaster clock such as a programmable logic controller (PLC) or other control system, for example. The switch 704 interacts with a time synchronization component 706 and can also interact with a plurality of clocks, e.g., device A 708 and device B 710. Device A 708 can communicate and provide system time for automation devices including a drilling machine 712, vertical mill 714 and a robotic welding cell 720 containing multiple robots. The time synchronization component 706 can receive data from the switch 704 and store such data to a database 714 utilizing a timestamp component 716 in association with a time sync component 718. For instance, the timestamp component 716 can collect timestamp and offset time data and employ algorithms to adjust the system time of various devices so that the associated clocks are synchronized with the switch 704 (grandmaster clock). Additionally, the switch 704 can retrieve data from the database 714 through network 702, and provide such data to various clocks within the system 700 to enable clock synchronization, for example.)
Regarding Claim 12:
Rischar discloses the limitations of parent claims:
Rischar discloses:
wherein the method further comprises the at least one I/O module performing: calculating an absolute timestamp based on the module timestamp, the second timestamp, the offset and the clock ratio. ([¶0068] Device B 710 in FIG. 7 can interface with the switch 704, the robotic welding cell 720, and a computer 722. The robotic welding cell 720 can be a tandem welding system that can control one or more coordinated actions between the multiple welding units. For example, this can include synchronized welding operations such that the welding units are started and stopped in a coordinated manner to facilitate an overall welding process in a manufacturing operation. As an example of this process, synchronous instructions can be issued by the computer 722 and/or over the network 702 by a PLC controller (not shown) such that the welders within the robotic welding cell 720 operate in a coordinated manner. This can include one welder performing a portion of the process with the other welder performing other portions of the process. Other actions can include controlling several welders such that similar portions of a work piece, for example, are concurrently welded at similar locations. One possible technique to perform coordinated welding is to supply the welders with a master clock reference (not shown) (e.g., externally supplied and/or derived from a clock supplied on the network 702) such that as the welders are given control commands, the welders perform these commands at a predetermined time. Thus, operations and commands can then be coordinated with the clock in a substantially synchronous manner. Other types of commands can include adjustable time delay commands for starting and stopping a weld cycle, trigger commands for on/off timing (e.g., on at same time), sending suitable output command levels per respective welder to achieve desired weld profile (e.g., a first welder intermittent, a second welder continuous). In this example, the robots are provided with local time from both device A 708 and device B 710 and therefore if the switch 704 (grandmaster clock) experiences a step change the local clocks, devices A and B (708 and 710) can detect the step change and adjust the timestamps and offsets to re-synchronize to system time or can remain on local time and can thus continue coordinated operations.)
Regarding Claim 13:
Rischar discloses the limitations of parent claims:
Rischar discloses:
A non-transitory computer-readable medium having embodied thereon a computer program ([¶0080] Moreover, those skilled in the art will appreciate that the inventive methods may be practiced with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based and/or programmable consumer electronics, and the like, each of which may operatively communicate with one or more associated devices. The illustrated aspects may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. However, some, if not all, aspects of the embodiments may be practiced on stand-alone computers. In a distributed computing environment, program modules may be located in local and/or remote memory storage devices. [0083] With reference to FIG. 14, an exemplary environment 1400 for implementing various aspects disclosed herein includes a computer 1402. The computer 1402 includes a processing unit 1404, a system memory 1406, and a system bus 1408. The system bus 1408 couples system components including, but not limited to, the system memory 1406 to the processing unit 1404. The processing unit 1404 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 1404.)for executing the method for controlling backplane communication of an industrial system according to claim 11. (See rejection rationale for claim 11)
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HUGH MARK ASHLEY whose telephone number is (571)272-0199. The examiner can normally be reached M-F 8-430.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Asad Nawaz can be reached at (571) 272-3988. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/HUGH MARK ASHLEY/Examiner, Art Unit 2463
/ASAD M NAWAZ/Supervisory Patent Examiner, Art Unit 2463