Information processing device, information processing method, and program

By introducing monitoring devices into industrial networks to record and store frame log data in real time, the problem of anomaly analysis and recovery in control systems is solved, enabling rapid anomaly handling and system recovery.

CN121752964APending Publication Date: 2026-03-27MUWANSI SOFTWARE TECHNOLOGY CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-26
Publication Date
2026-03-27

Smart Images

  • Figure CN121752964A_ABST
    Figure CN121752964A_ABST
Patent Text Reader

Abstract

Provided is an information processing device that is connected to a host and one or more slaves via an industrial network, the information processing device comprising: a reception unit that receives, within the industrial network, frames repeatedly transmitted by the host; a first storage unit that stores log data of frames; an extraction unit that extracts, from the first storage unit, log data of a frame from a point in time at which the occurrence of an abnormality is detected to a predetermined time when the occurrence of the abnormality is detected, when the occurrence of the abnormality is detected; a second storage unit that stores log data of the extracted frame as pre-failure log data; and a transmission unit that transmits the pre-failure log data to the host via the industrial network in response to a request from the host.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to an information processing apparatus, an information processing method, and a program. BACKGROUND

[0002] In the fields of robots and FA (factory automation), etc., it is required that the position of a belt conveyor or the position of an arm, etc. be operated in an intended manner. In order to operate like this, it is necessary that a plurality of control target devices such as servo motors or step motors be operated in high precision in synchronization. For example, Patent Literature 1 discloses a command system for motion control capable of achieving smooth control using inexpensive and simple low-speed communication.

[0003] PRIOR ART DOCUMENTS

[0004] PATENT LITERATURE

[0005] Patent Literature 1: Japanese Patent Application Publication No. 2010-170435 SUMMARY

[0006] In a control system including a controller and a control target machine, a network connecting the controller and the control target machine is called an industrial network. In a case where an operation of the control system connected through the industrial network is abnormal, it is desired to investigate what causes the abnormality to occur, and to smoothly perform recovery according to the investigation result.

[0007] Therefore, an object of the present disclosure is to provide a technology capable of more rapidly performing abnormality analysis and / or recovery in a case where an abnormality occurs in a control system connected through an industrial network.

[0008] An information processing apparatus according to an aspect of the present disclosure is an information processing apparatus connected to a host and one or more slaves via an industrial network, and includes a reception unit that receives a frame repeatedly transmitted by the host within the industrial network, a first storage unit that stores log data of the frame, an extraction unit that extracts, in a case where it is detected that an abnormality has occurred in the host or the one or more slaves, log data of the frame from a time point at which the abnormality is detected to a prescribed time before the abnormality, a second storage unit that stores the extracted log data of the frame as pre-failure log data, and a transmission unit that transmits the pre-failure log data to the host via the industrial network in response to a request from the host.

[0009] EFFECT OF THE INVENTION

[0010] According to the present disclosure, it is possible to provide a technology capable of more rapidly performing abnormality analysis and / or recovery in a case where an abnormality occurs in a control system connected through an industrial network. BRIEF DESCRIPTION OF DRAWINGS

[0011] Figure 1is a diagram showing an example of the control system 1 according to the present embodiment.

[0012] Figure 2 An example of the structure of a frame used in the industrial network is shown.

[0013] Figure 3 is a diagram for explaining the time synchronization processing.

[0014] Figure 4 is a diagram showing an example of the structure of the slave.

[0015] Figure 5 is a diagram showing an example of the hardware structure of the monitoring device.

[0016] Figure 6 is a diagram showing an example of the functional block structure of the monitoring device.

[0017] Figure 7 is a diagram showing a state in which the synchronization processing is operating normally.

[0018] Figure 8 is a diagram for explaining an event that occurs when the master cannot transmit frames at equal intervals due to an abnormality.

[0019] Figure 9 is a diagram for explaining an event that occurs when the local clock of the master or slave is abnormal and the reference time point is deviated.

[0020] Figure 10 is a diagram for explaining an event that occurs when the local clock of the monitoring device is abnormal.

[0021] Figure 11 is a diagram showing the relationship between the combination of the synchronization processing abnormality and the cause of the synchronization processing abnormality.

[0022] Figure 12 is a flowchart showing an example of the processing flow in which the synchronization processing abnormality is detected.

[0023] Figure 13 is a diagram showing a specific example of the synchronization abnormality detection processing.

[0024] Figure 14 is a diagram for explaining a modified example.

[0025] Figure 15 is a diagram for explaining a modified example.

[0026] Figure 16 is a timing chart showing an example of the processing flow in which log data is extracted at the time of an abnormality and transmitted to the master.

[0027] Figure 17 is a diagram showing an example of the frame data saved in the log data before the failure.

[0028] Explanation of reference numerals in the attached figures

[0029] 1: Control system; 10: Host; 11: Processor; 12: Storage device; 13: Network IF; 14: Input device; 15: Output device; 20: Slave; 30: Monitoring device; 110: Display unit; 120: Collection unit; 130: First detection unit; 140: Extraction unit; 150: First storage unit; 151: Log accumulation DB; 152: Configuration file; 210: Slave processing unit; 220: Communication module; 221: Third storage unit; 230: Periodic processing unit; 231: Second detection unit; 300: Second storage unit; 310: FIFO queue; 320: Log data before failure. Detailed Implementation

[0030] Embodiments of this disclosure will be described with reference to the accompanying drawings. Furthermore, components labeled with the same reference numerals in the drawings have the same or similar structures.

[0031] <System Architecture>

[0032] Figure 1 This diagram illustrates an example of the control system 1 according to this embodiment. The control system 1 includes a host 10, one or more slave devices 20, and a monitoring device 30. The host 10, the one or more slave devices 20, and the monitoring device 30 are connected via an industrial network.

[0033] The host 10 is a device that implements a specified function in the control system 1 by controlling the slave 20. The host 10 may be, for example, a motion controller, a sequence controller, a robot controller, etc. Furthermore, the host 10 may also be referred to as a controller or a control device. The host 10 may be a device implemented using dedicated hardware, or it may be a general-purpose information processing device that has installed a non-real-time operating system (OS) or a real-time operating system (OS). Specific examples of non-real-time OS include Windows (registered trademark) and macOS (registered trademark). Specific examples of real-time OS include RTX (Real-Time Extension) and RTH (Real-Time Hypervisor). Specific examples of general-purpose information processing devices include PCs (personal computers), laptop PCs, and servers.

[0034] Slave devices 20, such as servo motors (including servo drivers), stepper motors, and sensors, are devices that perform various processes on the control system 1. Each slave device is divided into a communication processing unit that processes the communication protocols used in the industrial network and an application unit that performs processes such as motion control.

[0035] Monitoring device 30 is a device that monitors the operational status of control system 1, continuously recording frames (also referred to as data or data packets) flowing through the industrial network, and detecting anomalies occurring in control system 1. Furthermore, monitoring device 30 operates as a slave device 20 within control system 1. That is, monitoring device 30 is recognized as slave device 20 by host device 10. Monitoring device 30 can be a device implemented using dedicated hardware, or it can be a general-purpose information processing device or computer equipped with a non-real-time operating system or a real-time operating system.

[0036] Protocols used in industrial networks may include, for example, Ethernet (EtherCAT) (registered trademark) and Ethernet / IP (EtherNet / IP). In the following description, the industrial network will be described as Ethernet, but this embodiment is not limited to this. Any communication protocol can be used, as long as it communicates in a master-slave manner and has the synchronization function described later.

[0037] In an industrial network, the host 10 and slave devices 20 (including monitoring devices 30) communicate in real-time. In real-time communication, a fixed-length frame sent by the host 10 passes sequentially through each slave device 20 and eventually returns to the host 10. Furthermore, each slave device 20 can read data destined for itself from the frame as it passes through, and can also write data destined for the host 10 or other slave devices 20 into the frame. Figure 1 In this example, frames sent from host 10 pass through slave devices 20 and monitoring device 30 in the order of S1 to S6, and return to host 10. Furthermore, each slave device 20 processes the frame when it first passes through monitoring device 30, but does not process the frame when it returns to host 10. For example, slave device 20-1 processes the frame received in S1 (writes and / or reads data), but for the frame received in S5, it does not process it and directly transmits it to host 10. Similarly, slave device 20-2 processes the frame received in S2 (writes and / or reads data), but for the frame received in S4, it does not process it and directly transmits it to slave device 20-1.

[0038] In this embodiment, the monitoring device 30 is connected to all slave devices 20 in the industrial network in order to detect anomalies generated in the host 10 and slave devices 20. In other words, the monitoring device 30 operates as a terminal slave device 20. For example, assume that there are slave devices 20-1 and 20-2 in the control system 1. In this case, the monitoring device 30 is connected to the industrial network such that frames output from the host 10 pass sequentially through slave devices 20-1, 20-2, and the monitoring device 30.

[0039] (Framework structure used in industrial networks)

[0040] Figure 2This is a diagram illustrating an example of the structure of a frame used in industrial networks. A frame includes an Ethernet header, Ethernet data, and an FCS (Flame Check Sequence). Ethernet data includes a header and a datagram.

[0041] The datagram is further divided into N datagram areas. Each datagram area includes a datagram header, data, and a Working Counter (WKC). The datagram header stores commands indicating the data processing method (writing values, reading values, etc.) and the address indicating the destination for processing the data.

[0042] In industrial networks, different datagrams are used when data is sent from host 10 to slave 20 and when data is sent from slave 20 to host 10. That is, at least two datagrams are assigned to a slave 20 that is sending and receiving data with host 10.

[0043] Here, in order for the master 10 to write a value to the memory (also called a register) of the slave 20 or to read a value from the memory of the slave 20, the master 10 must specify the address of the memory to which the value is to be written or read. In industrial networks, there are two methods for specifying the memory address.

[0044] The first method directly specifies the physical address of the memory by combining the identifier of the slave device 20 (referred to as the "configuration address" in EtherCAT) with the address of the memory possessed by the slave device 20 (meaning the actual address, referred to as the "register address" in EtherCAT). Alternatively, when writing or reading values ​​from the memory possessed by the slave device 20, indices and sub-indices can be used instead of register addresses. The indices and sub-indices correspond to the content of the data stored in the memory; by specifying the indices and sub-indices, values ​​can be written and read without considering the actual address. Furthermore, the correspondence between the indices and sub-indices and the memory addresses is predefined within the slave device 20.

[0045] The second method treats all the storage spaces of all slave devices 20 in the control system 1 as a single storage space, using a logical address to represent the location within that storage space. Furthermore, data representing the correspondence between the logical address and the address (actual address) of the memory of each slave device 20 is pre-set in each slave device 20. By utilizing the logical address, the master device 10 can write and read data regardless of which slave device 20 is being accessed.

[0046] In addition to specifying the memory address, the host 10 also performs the processing of writing values ​​to and reading values ​​from the memory by specifying commands. Examples of commands include FPWR (data write to slave 20 and physical address), FPRD (data read from slave 20 and physical address), LWR (data write to logical address), and LRD (data read from logical address).

[0047] (Summary of synchronous processing)

[0048] Figure 3 This diagram illustrates the general outline of the synchronization process. The industrial network achieves high-precision time synchronization (e.g., a time synchronization deviation within 1 microsecond) between each slave device 20. In the case of Ethernet control automation technology, this synchronization process is called DC (Distributed Clock) synchronization. By performing the synchronization process, each slave device 20 synchronizes at a predetermined reference time (hereinafter referred to as the "reference time"), and each slave device 20 performs various processes based on the reference time. Furthermore, to reduce costs, the clock accuracy of the master device 10 is often lower than that of the clocks of the slave devices 20. Therefore, in the synchronization process, the local clock maintained by the slave device 20 capable of performing the synchronization process among the slave devices 20 connected in series with the industrial network can also be used as the reference time. In the following description, the slave device 20 that uses its local clock as the reference time is referred to as the "synchronization master / slave". Additionally, in this embodiment, the synchronization master / slave is the initial slave device 20 among the slave devices 20 connected in series with the industrial network capable of performing the synchronization process (in... Figure 1 In the example, this is slave device 20-1. Additionally, the reference time is called the reference clock in Ethernet control automation technology. Furthermore, if the master device 10 maintains a clock with the same high precision as the slave device 20, the local clock of the master device 10 can also be used as the reference time.

[0049] A reference time is an absolute time measured from a given point (zero). Reference times can also be represented using a specified number of bits. For example, in Ethernet control automation technology, a 32-bit or 64-bit value is used, starting from January 1, 2001, 00:00:00. Furthermore, the smallest unit of a reference time can be 1 microsecond or 1 nanosecond.

[0050] To achieve synchronous processing, the host 10 pre-determines the frame propagation delay between the synchronous master / slave and each slave 20, as well as the difference (offset value) between the reference time and the local clock of each slave, according to the Ethernet control automation technical specifications, and writes these values ​​into the memory of each slave 20. Each slave 20 other than the synchronous master / slave can calculate the reference time by adding this offset value to its own local clock.

[0051] In addition, there is usually a slight deviation (also known as drift) in the time marked by the clock, so after a long time after synchronization is completed, the deviation from the reference time also becomes larger. Therefore, in order to suppress the deviation from the reference time (i.e., to compensate for clock drift), the host 10 periodically distributes the reference time.

[0052] Specifically, the synchronous master and slave devices, following the instructions of the master 10, save the reference time in the frames received from the master 10 and send the frame containing the reference time to the next slave 20. Each slave 20 retrieves the reference time from the frame containing the received reference time and writes the retrieved reference time frame into its own memory. In the following description, the frame used to distribute the reference time to each slave 20 is referred to as a "reference time frame". Alternatively, all frames repeatedly sent by the master 10 can also be reference time frames. Or, a reference time frame can be one every N frames (N being a natural number) of all frames repeatedly sent by the master 10. Figure 3 The example shows a scenario where all frames are reference time frames, and the synchronization master-slave 20-1 stores the reference time in frames A and B received from the master 10 and sends them to the slave 20-2.

[0053] Each slave device 20, other than the master and slave devices, obtains its reference time from the received reference time frame. As described above, each slave device 20 knows the propagation delay between itself and the master and slave devices. Therefore, by adding the propagation delay to the reference time contained in the reference time frame, it can identify the correct reference time. That is, each slave device 20, other than the master and slave devices, can correct its identified reference time to the correct reference time based on the reference time contained in the reference time frame.

[0054] As described above, the synchronous master and slave devices save their own local clock time as a reference time in the frame received from the master 10 and send it to the next slave 20. The value of the local clock saved by the synchronous master and slave devices as the reference time only needs to be the time from when the synchronous master and slave devices receive the frame to when they send the frame containing the reference time to the next slave 20.

[0055] Figure 4This diagram illustrates a structural example of a slave device. Each slave device's communication processing unit 20b synchronizes with the reference time by referring to the reference time, propagation delay, and deviation written into the communication processing unit's memory 20a. Next, each slave device generates a synchronization signal repeatedly at a predetermined period according to the synchronized reference time and notifies its application unit 20c. The synchronization signal is referred to as SYNC0 / SYNC1, etc., in control automation technology. The initial time of the synchronization signal's repeated generation (hereinafter referred to as the "start time of the synchronization signal") and the generation period of the synchronization signal (hereinafter referred to as the "synchronization signal period") are notified in advance from the master device 10 to each slave device 20. The start time of the synchronization signal is specified as an absolute time according to the time axis of the reference time.

[0056] When using synchronization processing, the master 10 repeatedly sends frames at the same period as the generation period of the synchronization signal, so that a frame arrives at each slave 20 between two consecutive synchronization signals. However, as mentioned above, the accuracy of the clock possessed by the master 10 is often lower than the accuracy of the clock possessed by the slave 20. Therefore, the period at which a frame arrives at each slave 20 will deviate slightly from the period at which the synchronization signal is generated in each slave 20.

[0057] In the frames repeatedly transmitted by the master 10 at a predetermined period, in addition to the aforementioned reference time, a data storage area is also included. This area stores, for example, commands and values ​​for writing values ​​to the memory of each slave 20 and / or commands for reading values ​​from the memory 20a of each slave 20. The communication processing unit 20b of the slave 20 reads values ​​from the received frames according to the commands and writes them to the memory 20a. Furthermore, the application unit 20c of the slave 20 performs application processing (e.g., motion control) using the values ​​written to the memory 20a at the time when the synchronization signal is notified by the communication function unit. In other words, as long as the time synchronization function operates normally and the master 10 continuously transmits frames at a predetermined period, the timing of generating the synchronization signal in each slave 20 is consistent across the slaves, and the timing of application processing by each slave 20 is also consistent.

[0058] For example, such as Figure 3 As shown, for the frame arrival time, slave 20-2 becomes the amount of the propagation delay between the synchronization master / slave 20-1 and slave 20-2. However, since application processing (AP processing) is executed with the synchronization signal as the trigger, the timing of the start of application processing in the synchronization master / slave 20-1 is the same as the timing of the start of application processing in slave 20-2.

[0059] (Summary of the processes performed by the monitoring device)

[0060] In this embodiment, the monitoring device 30 performs the following processing.

[0061] 1. Synchronization Processing Anomaly Detection: The monitoring device 30 detects an anomaly in the synchronization process and notifies the user or host 10 of the management and control system 1.

[0062] 2. Frame recording immediately preceding the anomaly: The monitoring device 30 continuously records (captures) frames flowing through the industrial network and saves log data of one or more captured frames. Furthermore, if an anomaly is detected in the control system 1, log data of one or more frames flowing through the industrial network during a specified period prior to the anomaly is extracted from the saved log data. Additionally, upon receiving a request from the host 10, the monitoring device 30 transmits the extracted log data of one or more frames to the host 10 via the industrial network.

[0063] <Hardware Structure>

[0064] Figure 5 This diagram illustrates an example of the hardware structure of the monitoring device 30. The monitoring device 30 includes a processor 11 such as a CPU (Central Processing Unit) or GPU (Graphical Processing Unit), a storage device 12 such as RAM (Random Access Memory) or ROM (Read Only Memory), HDD (Hard Disk Drive) and / or SSD (Solid State Drive), a network interface 13 for wired or wireless communication, an input device 14 for accepting input operations, and an output device 15 for outputting information. The input device 14 may be, for example, a keyboard, touch panel, mouse, and / or microphone. The output device 15 may be, for example, a display, touch panel, and / or speaker.

[0065] <Functional Block Structure>

[0066] Figure 6 This diagram illustrates an example of the functional block structure of the monitoring device 30. The monitoring device 30 includes a non-real-time OS 100, a real-time OS 200, and a second storage unit 300. The non-real-time OS 100 includes a display unit 110, a collection unit 120, a first detection unit 130, an extraction unit 140, and a first storage unit 150. The real-time OS 200 includes a slave processing unit 210. The slave processing unit 210 includes a communication module 220 and a periodic processing unit 230. The communication module 220 includes a third storage unit 221, and the periodic processing unit 230 includes a second detection unit 231.

[0067] The first storage unit 150, the second storage unit 300, and the third storage unit 221 can be implemented using the storage device 12 included in the monitoring device 30. Furthermore, the display unit 110, the collection unit 120, the first detection unit 130, the retrieval unit 140, and the slave processing unit 210 can be implemented by the processor 11 of the monitoring device 30 executing a program stored in the storage device 12. This program can be stored in a storage medium. The storage medium storing the program can be a computer-readable, non-transitory storage medium. There are no particular limitations on the non-transitory storage medium; for example, it can be a USB (Universal Serial Bus) memory or a CD-ROM (Compact Disc Read-Only Memory).

[0068] The first storage unit 150 is located in the non-real-time OS and stores a log accumulation database 151 and a configuration file 152. The log accumulation database 151 is a database that stores frames captured by the communication module 220 of the real-time OS 200 flowing through the industrial network. The configuration file 152 stores various data that specify the operation of the monitoring device 30.

[0069] The second storage unit 300 is located in a memory that can be accessed by both the non-real-time OS 100 and the real-time OS.

[0070] The display unit 110 operates in a non-real-time OS and displays various screens on a monitor or the like. For example, the display unit 110 displays a screen on a monitor or the like that showing detected abnormal content.

[0071] The collection unit 120 operates in a non-real-time OS, acquiring frames flowing through the industrial network from the real-time OS 200 via a FIFO (First In First Out) queue 310 contained in the second storage unit 300, and storing them in the log accumulation DB151 of the first storage unit 150. In other words, the first storage unit 150 (log accumulation DB151) stores log data of more than one received frame.

[0072] The first detection unit 130 operates in a non-real-time OS and detects any anomalies related to the synchronization processing performed between the host 10 and one or more slave units 20 based on a reference time distributed within the industrial network by analyzing the frames received by the communication module 220.

[0073] The extraction unit 140 operates on a non-real-time OS. When the first detection unit 130 detects an anomaly in the host 10 or one or more slave devices 20, it extracts log data from the log accumulation DB 151, covering frames from the moment the anomaly was detected until a predetermined time (before a second time). Furthermore, the extraction unit 140 stores the extracted frame log data in the second storage unit 300 as pre-fault log data 320. In other words, the second storage unit 300 stores the log data extracted by the extraction unit 140 as pre-fault log data 320.

[0074] The slave processing unit 210 performs various processes for the monitoring device 30 to operate as a slave device 20.

[0075] The communication module 220 operates in the real-time OS 200, capturing frames flowing through the industrial network and storing them in the third storage unit 221. Additionally, the communication module 220 retrieves data destined for itself according to commands contained in frames flowing through the industrial network and stores it in the third storage unit 221. Furthermore, according to commands contained in frames flowing through the industrial network, it retrieves data destined for the host 10 from the third storage unit 221 and stores it in the frames. As described above, the monitoring device 30 operates as a slave device 20 of the terminal. That is, the third storage unit 221 corresponds to the memory of the slave device 20 described in "(Frame Structure Used in Industrial Networks)". For example, if the command contained in the frame is FPWR and the address contained in the frame points to the monitoring device 30, the communication module 220 stores the value contained in the frame in the area specified by the address contained in the frame in the third storage unit 221. In addition, if the command contained in the frame is FPRD and the address contained in the frame points to the monitoring device 30, the communication module 220 obtains the value from the area specified by the address contained in the frame in the third storage unit 221 and stores it in the frame.

[0076] The periodic processing unit 230 operates within the real-time OS 200. The periodic processing unit 230 retrieves frames flowing through the industrial network from the third storage unit 221 and repeats the processing stored in the FIFO queue 310 at a predetermined period (e.g., the period at which frames are sent from the host 10). Additionally, the periodic processing unit 230 retrieves data stored in frames from the pre-fault log data 320 and stores it in the third storage unit 221.

[0077] The second detection unit 231 analyzes the frames captured by the communication module 220 to detect any anomalies related to the synchronization processing performed between the host 10 and one or more slave devices 20 based on a reference time distributed within the industrial network. Furthermore, it is assumed that the monitoring device 30 includes at least one of the first detection unit 130 and the second detection unit 231. That is, the monitoring device 30 can detect any anomalies in the synchronization processing on the non-real-time OS 100 side (i.e., at the first detection unit 130) or on the real-time OS 200 side (i.e., at the second detection unit 231). The first detection unit 130 and the second detection unit 231 may also be referred to as "anomaly detection units".

[0078] The communication module 220 can be referred to as a "transmitter" and a "receiver". The communication module 220 (receiver) receives frames repeatedly transmitted from the host 10 within the industrial network. In addition, the communication module 220 (transmitter) transmits pre-fault log data 320 to the host 10 via the industrial network upon request from the host 10.

[0079] <Processing Flow>

[0080] (Simultaneous processing of anomaly detection)

[0081] Next, the handling of anomalies detected by the monitoring device 30 during synchronization processing will be explained in detail. In the following explanation, it is assumed that the synchronization processing anomaly is detected by the first detection unit 130, but as mentioned above, the synchronization processing anomaly can also be detected by the second detection unit 231. Furthermore, in the following explanation, the slave device 20 and the monitoring device 30 will be described as different devices.

[0082] The monitoring device 30 detects synchronization processing anomalies in two modes, synchronization anomaly A and synchronization anomaly B, as described below, and determines the cause of the synchronization processing anomaly based on the combination of these two modes. Furthermore, synchronization anomaly A and synchronization anomaly B can also be referred to as the "first anomaly" and the "second anomaly," respectively.

[0083] Synchronization Anomaly A: The time between two consecutive synchronization signals generated when the reference time frame should have been received does not include the reference time stored in the reference time frame.

[0084] Synchronization Anomaly B: A situation in which the difference between the reference times contained in two consecutive time synchronization frames deviates from the difference between the times of the two consecutive time synchronization frames received by the monitoring device 30.

[0085] Figure 7 This is a diagram illustrating the normal operating state of the synchronization process. (Using...) Figure 7 Specific instructions on how to handle synchronization anomalies A and B.

[0086] [Synchronization Error A]

[0087] exist Figure 7 In the diagram, the horizontal axis t represents the moment when the synchronization signal is generated. The way the moment when the synchronization signal is generated is not limited. For example, it can be represented by a 32-bit or 64-bit value, starting from 00:00:00 on January 1, 2000. The smallest unit of time can be 1 nanosecond.

[0088] exist Figure 7 In this example, the synchronization signal period is set to 1000 (e.g., 1ms), and each frame is set as a reference time frame. Furthermore, slave device 20-1 is a synchronous master-slave, referred to as synchronous master-slave 20-1 in the following description. That is, synchronous master-slave 20-1 saves the reference time in the reference time frame received from master device 10 and sends it to slave device 20-2. Slave device 20-2 obtains the reference time from the received reference time frame and sends the reference time frame to monitoring device 30. Monitoring device 30 also obtains the reference time from the received reference time frame and sends the reference time frame to master device 10.

[0089] The host 10 repeatedly transmits a reference time frame at a period approximately the same as the period of the synchronization signal. For example, reference time frame A is transmitted by the host 10 during the period from the generation of synchronization signal Sy1 to the generation of synchronization signal Sy2, and returns to the host 10 before the generation of synchronization signal Sy2 via slave devices 20-1, 20-2, and monitoring device 30. Therefore, under normal synchronization processing conditions, slave devices 20 and monitoring device 30 will always receive a reference time frame between two consecutive synchronization signals.

[0090] The initial synchronization signal is generated at a time designated as the "start time of the synchronization signal," and subsequent synchronization signals are generated after each "synchronization signal period." That is, the time for generating the Nth synchronization signal (where N is an integer greater than or equal to 1) can be calculated using the expression "start time of the synchronization signal + (N-1) × synchronization signal period." Thus, it can be said that the Nth frame transmitted after the start of synchronization processing should be received by slave device 20 during the period from "start time of the synchronization signal + (N-1) × synchronization signal period" to "start time of the synchronization signal + N × synchronization signal period."

[0091] Here, in the reference time frame received from the master 10, the synchronous master-slave 20-1 saves the time of its own local clock as the reference time and sends it to the slave 20-2. Furthermore, as described above, the value of the local clock saved by the synchronous master-slave 20-1 as the reference time is simply the time from the moment the synchronous master-slave 20-1 receives the frame until it sends the frame containing the saved reference time to the slave 20-2. Therefore, the first detection unit 130 determines whether a reference time exists between the times when the reference time frame should be received and the times when two consecutive synchronization signals are generated by the reference time frame repeatedly sent by the master 10, thereby detecting whether there is an abnormality in synchronization error A.

[0092] More specifically, if the first detection unit 130 determines that no synchronization anomaly A has occurred when there is a reference time between the times when two consecutive synchronization signals are generated within one or more slave devices 20 (or synchronous master-slave devices) that should receive the reference time frame, and a reference time exists between those times. Conversely, if the first detection unit 130 determines that no synchronization anomaly A has occurred when there is no reference time between the times when two consecutive synchronization signals are generated within one or more slave devices 20 (or synchronous master-slave devices) that should receive the reference time frame, and a reference time exists between those times.

[0093] The first detection unit 130 can also acquire the "start time of the synchronization signal" and the "synchronization signal period," and calculate (estimate) the time when the two consecutive synchronization signals generated by the reference time frame should be received based on the acquired "start time of the synchronization signal" and "synchronization signal period." For example, suppose the reference time frame is the Xth frame transmitted after the start time of the synchronization signal. In this case, the first detection unit 130 can use the expression "start time of the synchronization signal + (X-1) × synchronization signal period" to calculate (estimate) the time when the first synchronization signal of the two consecutive synchronization signals generated by the reference time frame should be received. In addition, the first detection unit 130 can use the expression "start time of the synchronization signal + X × synchronization signal period" to calculate (estimate) the time when the second synchronization signal of the two consecutive synchronization signals generated by the reference time frame should be received.

[0094] As explained below, synchronization anomaly A is detected when the host 10 cannot send frames at equal intervals due to a failure of the local clock within the host 10, or when a failure of the local clock of the synchronization master and slave causes a deviation in the reference time stored in the reference time frame.

[0095] Figure 8 This diagram illustrates the events that occur when host 10 malfunctions and is unable to send frames at equal intervals. Points not specifically mentioned can be compared to... Figure 7 Same.Figure 8 In the example, an anomaly occurs in the host 10, causing a delay in the timing of sending the reference time frame C from the host 10. In this case, the reference time stored in the reference time frame C becomes the time (8600) when the master-slave 20-1 receives the reference time frame C. However, the time when each slave 20 should receive the reference time frame C is the period from the time of generating synchronization signal Sy3 (7500) to the time of generating synchronization signal Sy4 (8500). Therefore, when the first detection unit 130 receives the reference time frame C, it determines that the reference time (8600) contained in the reference time frame C does not exist during the period when the reference time frame C should have been received (the period from the time of generating synchronization signal Sy3 (7500) to the time of generating synchronization signal Sy4 (8500)), and detects that a synchronization anomaly A has occurred.

[0096] Figure 9 This diagram illustrates the events that occur when the local clock of a synchronous master and slave device malfunctions, causing a deviation in the reference time. Points not specifically mentioned can be compared with... Figure 7 Same. Figure 9 In the example, the local clock of the synchronous master-slave 20-1 times out earlier than the actual time. As a result, the reference time stored in frames C and D is not the actual time. Figure 7 Instead of the values ​​shown as 7800 and 8800, the values ​​deviate to 8600 and 11500. Therefore, when the first detection unit 130 receives the reference time frame C, it determines that the reference time (8600) contained in the reference time frame C does not exist during the period when the reference time frame C should have been received (from the time when the synchronization signal Sy3 is generated (7500) to the time when the synchronization signal Sy4 is generated (8500)), and detects that a synchronization abnormality A has occurred.

[0097] [Synchronization error B]

[0098] When the local clock of the synchronous master-slave 20-1 is normal (i.e., the reference time stored in the reference time frame by the synchronous master-slave 20-1 is normal), and the local clock of the monitoring device 30 is also normal, the difference between the times of two consecutive reference time frames received by the monitoring device 30 should be almost the same as the difference between the reference times contained in those two reference time frames. For example, in Figure 7 In the example, the difference (1000) between the time when the monitoring device 30 receives frame A (5950) and the time when the monitoring device 30 receives frame B (6950) is the same as the difference (1000) between the reference time of frame A, the reference time of frame B, and the reference time of frame A (6800).

[0099] Therefore, the first detection unit 130 detects any abnormalities related to synchronization processing based on the difference between the times of two consecutive reference time frames (including the reference time) received by the monitoring device 30, and the difference between the reference times contained in each of the two consecutive reference time frames. More specifically, if the "deviation" between the time difference of the two consecutive reference time frames and the difference between the reference times contained in each of the two consecutive reference time frames is less than a predetermined value, the first detection unit 130 determines that no synchronization abnormality B has occurred. Conversely, if the "deviation" between the time difference of the two consecutive reference time frames and the difference between the reference times contained in each of the two consecutive reference time frames exceeds a predetermined value, the first detection unit 130 determines that synchronization abnormality B has occurred. The method for calculating the deviation will be described later.

[0100] As explained below, synchronization anomaly B is detected when the local clock of the synchronization master-slave 20-1 fails and the reference time stored in the reference time frame deviates, or when the monitoring device 30 is unable to correctly determine the time of the received frame due to a failure of the local clock of the monitoring device 30.

[0101] exist Figure 9 In the example, the local clock of the synchronous master-slave 20-1 times out earlier than the actual time. As a result, the reference time stored in frames C and D is not the actual time. Figure 7 Instead of the values ​​shown (7800 and 8800), the value deviates to 8600. Therefore, the first detection unit 130 determines that the difference (1000) between the time of receiving frame B (6950) and the time of receiving frame C (7950) deviates from the difference (1800) between the reference time (6800) stored in frame B and the reference time (8600) stored in frame C by a predetermined value (e.g., 0.1), and detects that a synchronization anomaly B has occurred.

[0102] Figure 10 This is a diagram used to illustrate events that occur when the local clock of monitoring device 30 malfunctions. Points not specifically mentioned can be compared with... Figure 7 Same. Figure 10 In the example, because the local clock of monitoring device 30 is later than the actual time, the time at which frames C and D are received is not the actual time. Figure 7Instead of the values ​​shown as 7950 and 8950, the values ​​deviate to 7450 and 7950. Therefore, the first detection unit 130 determines that the difference (500) between the time of receiving frame B (6950) and the time of receiving frame C (7450) deviates from the difference (1000) between the reference time (6800) stored in frame B and the reference time (7800) stored in frame C by a predetermined value (e.g., 0.1), and detects that a synchronization anomaly B has occurred.

[0103] As described above, the causes of synchronization anomalies are considered to be three cases: a failure of the host 10 to send frames at equal intervals, a failure of the local clock of the synchronization master-slave 20-1 causing a deviation in the reference time stored in the reference time frame, or a failure of the local clock of the monitoring device 30. Furthermore, for each cause, the mode in which the anomaly is detected differs between synchronization anomaly A and synchronization anomaly B.

[0104] If this relationship is set as a table, then as follows Figure 11 As shown. Figure 11 This is a diagram showing the relationship between the combinations of synchronization processing anomalies and the causes of the synchronization processing anomalies. The first detection unit 130, according to... Figure 11 The relationship shown indicates the main cause of the anomaly. Specifically, if the first detection unit 130 generates synchronization anomaly A but not synchronization anomaly B, it determines that the transmission period of the frames repeatedly transmitted from the host 10 is abnormal. Furthermore, if the first detection unit 130 generates synchronization anomaly B but not synchronization anomaly A, it determines that the clock of the monitoring device 30 is abnormal. Finally, if both synchronization anomaly A and synchronization anomaly B occur, the first detection unit 130 determines that the clocks of the master and slave synchronization devices are abnormal.

[0105] (Synchronous processing of anomaly detection procedure) Reference signal frame

[0106] Figure 12 This is a flowchart illustrating an example of a process for detecting synchronization processing anomalies. Figure 12In this description, it is assumed that the host 10 repeatedly transmits frames according to the synchronization signal period. Furthermore, "frame" refers to both the reference time frame and frames other than the reference time frame (i.e., frames that do not contain the reference time frame). Before starting operations such as motion control, the control system 1 performs initialization processing, such as allocating various data settings for motion control. When the initialization processing is complete, the control system 1 transitions to a state where operation can begin (called the "operational state"). Additionally, before transitioning to the operational state, the monitoring device 30 pre-acquires the "start time of the synchronization signal" and the "synchronization signal period." Furthermore, T-init, used in the following description, represents the "start time of the synchronization signal." The count m is an integer greater than or equal to 1, representing the cumulative number of reference time frames received by the monitoring device 30. The count n is an integer greater than or equal to 1, representing the cumulative number of frames received by the monitoring device 30 (where the initial reference time frame is taken as the first frame, and frames received before that reference time frame are not counted). Furthermore, the initial values ​​of count n and m are 0.

[0107] In step S20, the first detection unit 130 obtains a frame from the log accumulation DB151.

[0108] In step S21, if the frame is a reference time frame, the first detection unit 130 proceeds to the processing flow of step S22. If the frame is not a reference time frame, it proceeds to the processing flow of step S23.

[0109] In step S22, if the count m is 1 or higher, the first detection unit 130 increments the count n by 1 and proceeds to the processing flow of step S37. If the count m is 0, the first detection unit 130 does nothing and proceeds to the processing flow of step S37.

[0110] In step S23, the first detection unit 130 increments the counts n and m by 1.

[0111] In step S24, the first detection unit 130 stores the reference time value included in the reference time frame in the variable Rt[m].

[0112] In step S25, the first detection unit 130 stores the time (clock value of monitoring device 30) when the communication module 220 receives the reference time frame in the variable Nt[m].

[0113] In step S26, when m=1, the process proceeds to step S27, instead of proceeding to step S28 when m=1.

[0114] In step S27, the first detection unit 130 calculates the time when the monitoring device 30 begins anomaly detection processing (hereinafter referred to as "anomaly detection start time") (T-start). Furthermore, the anomaly detection start time (T-start) can be calculated using the following formula (1). Additionally, X is an integer greater than or equal to 0.

[0115] Equation (1): When T-start = T-init + (synchronization signal period × X), the maximum T-start of variable Rt[1] is satisfied.

[0116] In step S28, the first detection unit 130 calculates the variable T using the following formula (2). n .

[0117] Equation (2): T n = T-start + synchronization signal period × (n-1)

[0118] In step S29, the first detection unit 130 calculates the variable T using the following formula (3). n+1 .

[0119] Equation (3): T n+1 = T - start + synchronization signal period × (n)

[0120] In step S30, the first detection unit 130 enters the processing flow of step S31 if the following formula (4) is satisfied, and enters the processing flow of step S32 if the following formula (4) is not satisfied.

[0121] Equation (4): T n <Rt[m]<T n+1

[0122] In step S31, the first detection unit 130 determines that a synchronization anomaly A has been detected.

[0123] In step S32, if the count m is 2 or more, the first detection unit 130 proceeds to the processing flow of step S33; if the count m is 1, it proceeds to the processing flow of step S37.

[0124] In step S33, the first detection unit 130 calculates the variable E1 using the following formula (5).

[0125] Equation (5): E1 = Rt[m] - Rt[m-1]

[0126] In step S34, the first detection unit 130 calculates the variable E2 using the following formula (6).

[0127] Equation (6): E2 = Nt[m] - Nt[m-1]

[0128] In step S35, the first detection unit 130 calculates the degree of deviation using the following formula (7). If the degree of deviation exceeds a predetermined value, the process proceeds to step S36. If the degree of deviation is below the predetermined value, the process proceeds to step S37. In addition, Abs in formula (7) represents the absolute value.

[0129] Equation (7): Degree of deviation = Abs(1.0 - (E1 / E2))

[0130] In step S36, the first detection unit 130 determines that a synchronization anomaly B has been detected.

[0131] In step S37, the first detection unit 130 returns to step S20 without ending the anomaly detection process, and ends the process if the anomaly detection process is terminated. Figure 12 The processing.

[0132] By executing the processing flow described above, using Figure 13 This section provides a specific example of a clock anomaly detected in the master-slave synchronization mechanism as one of the synchronization anomalies.

[0133] Figure 13 This is a diagram illustrating a specific example of synchronization anomaly detection and processing. In Figure 13 In the example, assume the start time (T-init) of the synchronization signal is 5500 (the time when the start of the reference time is set to 0), and the period of the synchronization signal is 1000 (e.g., 1ms). In addition, the reference times stored in reference time frames B, D, E, and H are 7000, 9000, 11000, and 14000, respectively.

[0134] The following is for reference Figure 12 and Figure 13 Assuming a synchronization anomaly occurs in the local clock of the master and slave devices, this describes the handling of the synchronization anomaly detected by monitoring device 30. Additionally, Figure 12 The specified value in step S35 is set to 0.1.

[0135] First, the first detection unit 130 acquires frame A ( Figure 12 S20, S21 - No, S22, S37 - No). Next, the first detection unit 130 acquires the reference time frame B and increments the counts n and m by 1 respectively. Figure 12 S20, S21-, S23). In addition, the first detection unit 130 stores the reference time value 7000 contained in the reference time frame B in the variable Rt[1], and stores the time 7200 when the communication module 220 receives the reference time frame B in the variable Nt[1]. The variable T-start is calculated according to equation (1). Figure 12 S24, S25, S26 - are, S27).

[0136] Here, in equation (1), let T-start be T-start = 5500 + 1000 = 6500 when X = 1, which satisfies T-start < 7000. Next, let T-start be T-start = 5500 + 1000 × 2 = 7500 when X = 2, which does not satisfy T-start < 7000. Therefore, the value of T-start is 6500.

[0137] Next, the first detection unit 130 calculates the variable T according to equations (2) and (3). n and variable T n+1 ( Figure 12 (S28, S29). Since n = 1 at this time, T n The value is 6500 + 1000 × (1 - 1) = 6500. Similarly, T n+1 It equals 6500 + 1000 × 1 = 7500.

[0138] The first detection unit 130 determines whether equation (4) is satisfied. At this time, m = 1, Rt[1] is 7000, therefore 6500 < Rt[1] < 7500 ( Figure 12 (S30). Therefore, the first detection unit 130 determines that no synchronization abnormality A has occurred. Next, since m=1, the first detection unit 130 skips... Figure 12 The processing flow of steps S33 to S36 (S32 - No).

[0139] Next, the first detection unit 130 receives frame C and increments n by 1 ( Figure 12 (S20, S21-No, S22). At this time, n=2, m=1.

[0140] Next, the first detection unit 130 acquires the reference time frame D and increments the counts n and m by 1 respectively. Figure 12 S20, S21-S23). In addition, the first detection unit 130 stores the reference time value 9000 contained in the reference time frame D in the variable Rt[2], and stores the time 9200 when the communication module 220 receives the reference time frame D in the variable Nt[2]. Figure 12 (S24, S25).

[0141] Next, the first detection unit 130 calculates the variable T according to equations (2) and (3). n and variable T n+1 ( Figure 12 (S28, S29). Since n = 3 at this time, T n The result is 6500 + 1000 × (3 - 1) = 8500. Similarly, T... n+1 It equals 6500 + 1000 × 3 = 9500.

[0142] The first detection unit 130 determines whether equation (4) is satisfied. At this time, m = 2, Rt[2] is 9000, therefore 8500 < Rt[2] < 9500 is satisfied. Figure 12 S30- is). Therefore, the first detection unit 130 determines that no synchronization abnormality A has occurred. In addition, the first detection unit 130 calculates E1 and E2 according to equations (5) and (6). Figure 12 S32- is, S33, S34). E1 is Rt[2]-Rt[1]=9000-7000=2000, E2 is Nt[2]-Nt[1]=9200-7200=2000. The first detection unit 130 determines whether equation (7) is satisfied. Figure 12 S35). Since Abs(1.0-E2 / E1)=1.0-2000 / 2000=0, which is below the specified value of 100, the first detection unit 130 determines that no synchronization abnormality B has been generated. Figure 12 S35- is).

[0143] Next, the first detection unit 130 receives frame E and increments n by 1 ( Figure 12 (S20, S21-No, S22). At this time, n=4, m=2.

[0144] Next, the first detection unit 130 acquires the reference time frame F, increments the count n and the count m by 1, stores the reference time value 11000 contained in the reference time frame F in the variable Rt[3], stores the time 11200 when the communication module 220 receives the reference time frame F in the variable Nt[3], and calculates the variable T according to equations (2) and (3). n and variable T n+1 ( Figure 12 (S23, S24, S25, S26 - no, S28, S29). Since n = 5 at this time, T n The value is 6500 + 1000 × (5 - 1) = 10500. Similarly, T n+1 It equals 6500 + 1000 × 5 = 11500.

[0145] The first detection unit 130 determines whether equation (4) is satisfied. At this time, m = 3, Rt[3] is 11000, therefore 10500 < Rt[3] < 11500 is satisfied. Figure 12 S30 - No). Therefore, the first detection unit 130 determines that no synchronization abnormality A has occurred. In addition, the first detection unit 130 calculates E1 and E2 according to equations (5) and (6). Figure 12 S33, S34). E1 is Rt[3] - Rt[3] = 11000 - 9000 = 2000, E2 is Nt[3] - Nt[2] = 11200 - 9200 = 2000. The first detection unit 130 determines whether equation (7) is satisfied.Figure 12 S35). Since Abs(1.0-E2 / E1)=1.0-2000 / 2000=0, which is below the specified value of 100, the first detection unit 130 determines that no synchronization abnormality B has been generated. Figure 12 (S35 - No).

[0146] Next, the first detection unit 130 receives frame G and increments n by 1 ( Figure 12 (S22). At this time, n = 6, m = 3.

[0147] Next, the first detection unit 130 acquires the reference time frame H and increments the count n and count m by 1. Figure 11 S20, S21-S23). In addition, the first detection unit 130 stores the reference time value 14000 contained in the reference time frame H in the variable Rt[4], and stores the time 13200 when the communication module 220 receives the reference time frame H in the variable Nt[4]. The variable T is calculated according to equations (2) and (3). n and variable T n+1 ( Figure 12 (S24, S25, S26 - no, S28, S29). Since n = 7 at this time, T n The result is 6500 + 1000 × (7 - 1) = 12500. Similarly, T n+1 It equals 6500 + 1000 × 7 = 13500.

[0148] The first detection unit 130 determines whether equation (4) is satisfied. At this time, m = 4, Rt[4] is 14000, therefore 12500 < Rt[4] < 13500 is not satisfied. Figure 12 S30-No). Therefore, the first detection unit 130 determines that a synchronization anomaly A has occurred ( Figure 14 S31). In addition, the first detection unit 130 calculates E1 and E2 according to equations (5) and (6). Figure 15 S33, S34). E1 is Rt[4] - Rt[3] = 14000 - 11000 = 3000, E2 is Nt[4] - Nt[3] = 13200 - 11200 = 2000. The first detection unit 130 determines whether equation (7) is satisfied. Figure 14 S35). Since Abs(1.0 - E2 / E1) = Abs(1.0 - 3000 / 2000) = 0.5, which is not below the specified value of 0.1, the first detection unit 130 judges that a synchronization abnormality B has occurred. Figure 15 (S35-No, S36).

[0149] As described above, the first detection unit 130 detects synchronization anomaly A and synchronization anomaly B, according to... Figure 15The table indicates that the clock of the synchronous master-slave 20-1 is abnormal.

[0150] [A variation of synchronous anomaly detection]

[0151] (Variation Example 1)

[0152] In the synchronization processing anomaly detection described above, the monitoring device 30 may also perform either the detection of synchronization anomaly A or the detection of synchronization anomaly B.

[0153] (Variation Example 2)

[0154] In the log accumulation DB151, the content of the latest frame captured by the communication module 220 is sequentially saved corresponding to the time when each frame was received by the monitoring device 30 (more specifically, the communication module 220). Therefore, the first detection unit 130 can also... Figure 15 The flowchart shown analyzes the frames sequentially stored in the log accumulation DB151 to quickly detect synchronization anomalies. Alternatively, the first detection unit 130 can also... Figure 16 The flowchart shown illustrates how batch processing analyzes frames accumulated in the log DB151 to detect synchronization anomalies.

[0155] (Variation Example 3)

[0156] The clock of monitoring device 30 does not necessarily have to operate on the same time axis as the reference time. The clock of monitoring device 30 may also operate on a different time axis than the reference time.

[0157] (Variation Example 4)

[0158] Figure 17 and Figure 16 This diagram is used to illustrate a variation. Since industrial networks process frames in real-time, a propagation delay occurs from the time a frame arrives at the master / slave synchronizing unit until it reaches the slave 20, which is the last unit to process the frame. Additionally, it can be assumed that there is a slight time delay between the frame arriving at slave 20 and its readiness for processing by the application unit.

[0159] For example, in ​ In the example, frame A arrives at slave 20-2 just before the time t2 when synchronization signal 2 is about to be generated. Therefore, it is assumed that even if slave 20-2 receives frame A at that time, it will be difficult to start AP processing in sync with time t2. Therefore, the first detection unit 130 can also take this time delay into account to detect whether there is an abnormality in synchronization error A.

[0160] For example, the first detection unit 130 can also determine the time when the reference time frame should be received from the reference time frame in the frame repeatedly transmitted from the host 10, which is the time of the first synchronization signal 1 among the two consecutive synchronization signals generated. ​ The time from t1 to the time when the second synchronization signal 2 is generated ( ​ t2) The time specified in advance (third time) ​ During the period t2-a), is there a reference time to detect whether there is an anomaly A in the synchronization anomaly? The specified time (third time) can be set to be longer than the sum of the propagation delay D between the synchronization master and slave and the slave 20 of the last processed frame and the processing delay time within the slave 20.

[0161] More specifically, the first detection unit 130 can determine that no synchronization abnormality A has occurred if a reference time exists between the time when the first synchronization signal of two consecutive synchronization signals is generated in one or more slave devices (or synchronous master-slave devices) that should receive the reference time frame, and the time when the second synchronization signal is generated in one or more slave devices before a predetermined time (third time). Alternatively, the first detection unit 130 can also determine that a synchronization abnormality A has occurred if no reference time exists between the time when the first synchronization signal of two consecutive synchronization signals is generated in one or more slave devices (or synchronous master-slave devices) that should receive the reference time frame, and the time when the second synchronization signal is generated in one or more slave devices (or synchronous master-slave devices) before a predetermined time (third time).

[0162] (Frames recorded immediately before the anomaly occurred)

[0163] Next, the process of extracting log data of frames that flowed through the industrial network before the anomaly occurred in the control system 1 and sending the extracted log data to the host 10 will be described.

[0164] Here, the data content accumulated in the log accumulation DB151 is explained. The log accumulation DB151 stores frames captured by the communication module 220 of the real-time OS 200 flowing through the industrial network. At this time, the frame data stored in the log accumulation DB151 may also include an identifier (first identifier) ​​that uniquely identifies frames repeatedly transmitted from the host 10. This unique identifier is called a "cycle number." The cycle number is a number managed by the host 10 and the monitoring device 30 and is not included in the frame. For example, after the host 10 transitions to an operational state, it sets the cycle number of the initially transmitted frame to 0 and increments the cycle number each time a frame is transmitted. Similarly, after the monitoring device 30 transitions to an operational state, it sets the cycle number of the initially received frame to 0 and increments the cycle number each time a frame is received.

[0165] Furthermore, the data in the frame stored in the log accumulation DB151 may include an identifier (second identifier) ​​that indicates the destination or storage location of data (also referred to as an object) written or read in frames repeatedly sent from host 10. The identifier representing this storage location may be a combination of an identifier (configuration address) that identifies slave 20, an index, and a sub-index.

[0166] Similarly, the pre-fault log data 320, which contains log data extracted from the log accumulation DB151, may also include a cycle number and an identifier (second identifier) ​​indicating the memory location.

[0167] That is, by specifying a cycle number, the monitoring device 30 can retrieve frame data sent from the host with a specified cycle number from the pre-fault log data 320. Furthermore, by specifying a cycle number and an identifier indicating a memory location, the monitoring device 30 can retrieve frame data sent from the host with a specified cycle number, i.e., data sent to a specific memory of a specific slave device 20, or data read from a specific memory of a specific slave device 20 and stored in a frame, from the pre-fault log data 320.

[0168] When an anomaly is detected in the host 10 or one or more slave devices 20, the extraction unit 140 extracts log data from the log accumulation DB 151 from the time the anomaly was detected up to a predetermined time (before the first time). The time the anomaly was detected can be either the time the monitoring device 30 detects the anomaly or the time the monitoring device 30 receives a frame indicating that the anomaly has occurred. Furthermore, the extraction unit 140 stores the extracted log data as pre-fault log data 320 in a second storage unit 300 accessible by the real-time OS 200.

[0169] Here, the specified time (first time) can be specified by the host 10 or stored in the preset file 152. The specified time can be expressed using the number of loops (e.g., 1000 loops) or a specific time length (e.g., 1 second). When expressed using the number of loops, the specified time can also be called the "specified number of loops". Furthermore, since the length of one loop is the same as the period of the synchronization signal, the number of loops and the time length can be converted to each other. Therefore, expressing the specified time using a specific time length and expressing it using the number of loops are synonymous.

[0170] The second detection unit 231 can also determine that the host 10 has malfunctioned if it cannot receive repeatedly transmitted frames from the host 10 within a certain period of time (the second time). This certain period of time can be called a "watchdog timer." The WD timer can be specified by the host 10 or stored in a preset file 152. Furthermore, the monitoring device 30 can also determine that an malfunction has occurred in the host 10 or one or more slave devices 20 if it detects the aforementioned synchronization malfunction A or synchronization malfunction B. The WD timer can be represented by a number of cycles (e.g., 100 cycles) or by a specific time length (e.g., 0.1 seconds). Moreover, as mentioned above, since the number of cycles and the time length are interchangeable, representing the WD timer with a specific time length and representing it with a number of cycles are synonymous.

[0171] Upon receiving a request from the host 10, the communication module 220 transmits log data stored in the pre-fault log data 320 to the host 10 via the industrial network. Specifically, the communication module 220 (receiving unit) receives a transmission request from the host 10 containing a cycle number (first identifier) ​​of the pre-fault log data. Furthermore, upon receiving this transmission request, the communication module 220 (transmitting unit) transmits the frame data specified by the cycle number from the pre-fault log data to the host 10.

[0172] Additionally, the communication module 220 (receiving unit) can also receive from the host 10 a transmission request for pre-fault log data containing a cycle number (first identifier) ​​and an identifier indicating a memory location (second identifier). Furthermore, upon receiving this transmission request, the communication module 220 (transmitting unit) can also transmit data from the pre-fault log data, specifically the frame specified by the cycle number, corresponding to the identifier indicating the memory location (i.e., data written to or read from the memory represented by the identifier).

[0173] Additionally, the slave processing unit 210 can also delete the pre-fault log data 320 upon receiving an instruction from the host 10. Specifically, the communication module 220 (receiving unit) can also receive a deletion request for the pre-fault log data 320 from the host 10, and the second detection unit 231 deletes the pre-fault log data 320 upon receiving the deletion request. The second detection unit 231 can also be referred to as a "deletion processing unit".

[0174] ​ This is a timing diagram illustrating an example of the processing flow when an exception occurs, log data is extracted and sent to host 10.

[0175] In step S100, the host 10 writes the WD timer and the specified cycle number into a designated storage area in the third storage unit 221 of the monitoring device 30 by sending a frame containing the WD timer and the specified cycle number. The second detection unit 231 of the monitoring device 30 identifies the value of the WD timer and the specified cycle number by acquiring the WD timer and the specified cycle number written to the third storage unit 221.

[0176] After the processing flow in step S100 is completed, the control system 1 switches to the runnable state and starts sending frames from the host 10.

[0177] In step S101, the second detection unit 231 detects an anomaly. For example, the second detection unit 231 may also detect an anomaly if no frames are received from the host 10 within a period set by the WD timer. Upon detecting an anomaly, the second detection unit 231 stores in the third storage unit 221 an "anomaly detection flag" indicating that an anomaly was detected, and an "anomaly detection time loop number" indicating the loop number of the last received frame when the anomaly was detected. Storing the anomaly detection flag and the anomaly detection time loop number in the third storage unit 221 enables the host 10 to recognize that an anomaly has occurred within the industrial network. Furthermore, the second detection unit 231 notifies the extraction unit 140 that an anomaly has occurred. For example, the second detection unit 231 may also store the anomaly detection flag and the anomaly detection time loop number in the second storage unit 300, and the extraction unit 140 retrieves the anomaly detection flag and the anomaly detection time loop number by periodically accessing the second storage unit 300.

[0178] In step S102, when the second detection unit 231 notifies the second detection unit 231 of an anomaly, the extraction unit 140 extracts log data from the log accumulation DB151 for frames from the loop number detected when the anomaly was detected to the specified loop number, and saves it in the pre-fault log data 320. Additionally, the extraction unit 140 notifies the second detection unit 231 that the pre-fault log data 320 has been saved. For example, the extraction unit 140 may also save information indicating that the saving of the pre-fault log data 320 is complete in the second storage unit 300. The extraction unit 140 periodically accesses the second storage unit 300 and checks for the presence of this information, thereby identifying that the pre-fault log data 320 is saved in the second storage unit 300.

[0179] If the second detection unit 231 has stored the pre-fault log data 320 in the second storage unit 300, it stores the extraction completion flag in the third storage unit 221. The extraction completion flag indicates that the extraction of the pre-fault log data 320 is complete, and the pre-fault log data 320 can be read from the host 10.

[0180] In step S103, the communication module 220 receives an instruction from the host 10, stores the anomaly detection flag, the anomaly detection loop number, and the extraction completion flag in a frame, and sends it to the host 10. The host 10, by reading the anomaly detection flag, the anomaly detection loop number, and the extraction completion flag from the received frame, identifies that an anomaly was detected in the monitoring device 30, the loop number at the time of the anomaly, and the log data 320 prior to the fault that can be read from the monitoring device 30. Alternatively, the processing flow of step S103 can also be executed, for example, through the screen of the host 10 operated by an administrator or other personnel managing the host 10.

[0181] In step S104, the host 10 determines, based on the monitoring device 30, which frame with which loop number to read, which slave 20 to read, and which index and sub-index values ​​to read from the loop number from the time of anomaly detection to the specified loop number. Alternatively, this determination can be performed by a manager of the host 10 specifying the loop number, etc.

[0182] In step S105, the host 10 sends a frame including an identifier representing the monitoring device 30, a cycle number of the frame to be read, an identifier (configuration address) of the slave 20 to be read, and an index and sub-index corresponding to the read value, to read the frame data with the cycle number determined in the processing flow of step S104. Alternatively, the identifier of the slave 20 to be read, and the index and sub-index corresponding to the read value can be omitted. For example, if it is desired to obtain all data of a frame with a certain cycle number, the host 10 can specify only the cycle number and can omit the identifier, index, and sub-index of the slave 20 to be read.

[0183] In step S106, the communication module 220 saves the frame data with the cycle number indicated by the host 10 in the processing flow of step S105 into the frame received from the host 10 in the processing flow of step S105 and sends it to the host 10. The host 10 obtains the frame data with the specified cycle number from the received frame. In addition, if the host 10 reads frame data of multiple cycles, it repeats the processing flow of steps S105 and S106.

[0184] In step S107, the host 10 stores the acquired frame data.

[0185] ​ This diagram illustrates an example of frame data stored in the pre-failure log data 320. The record value index is an identifier used to uniquely identify entries recorded in the pre-failure log data 320. For example, if the goal is to retrieve all values ​​from frames with loop numbers from 1000 to 1049, host 10 specifies a loop number of 1000 in the processing flow of step S105, and in the processing flow of step S106, the process of retrieving data from frames with a loop number of 1000 is repeated 50 times while incrementing the loop number. Return ​ Let me continue explaining.

[0186] The frames used in the processing flow of steps S105 and S106 can be frames or frames that are sent non-periodically without being related to the synchronization process.

[0187] In step S108, in order to delete the pre-fault log data 320 stored in the monitoring device 30, the host 10 writes the reset command flag in a predetermined storage area in the third storage unit 221 of the monitoring device 30 by sending a frame containing the identifier of the monitoring device 30, the index and sub-index of the storage area representing the storage reset command flag, and the reset command flag value.

[0188] In step S109, the second detection unit 231 of the monitoring device 30 deletes the log data 320 prior to the fault upon detecting that a reset command flag has been written into the third storage unit 221. Additionally, the second detection unit 231 deletes the anomaly detection flag, the anomaly detection cycle number, and the extraction completion flag stored in the third storage unit 221.

[0189] <Summary>

[0190] According to the implementation method described above, anomalies occurring in control systems connected via industrial networks can be detected earlier. Furthermore, in the event of anomalies in a control system connected via an industrial network, anomaly analysis and / or recovery can be performed more quickly.

[0191] Furthermore, since the monitoring device 30 analyzes the frames sent from the host 10 according to each generation cycle of the synchronization signal, it is able to quickly detect the occurrence of synchronization anomalies before the next generation cycle of the synchronization signal arrives.

[0192] Furthermore, the monitoring device 30 detects anomalies in two modes: synchronization anomaly A and synchronization anomaly B. Therefore, the monitoring device 30 can specifically determine the main cause of a synchronization anomaly occurring in the control system 1. Specifically, it can determine whether the anomaly is due to an anomaly in the monitoring device 30's own clock, an anomaly in the transmission period of frames sent by the host 10, or an anomaly in the local clock of the synchronization master and slave.

[0193] Without the monitoring device 30, even if a synchronization anomaly occurs, it would be difficult to distinguish whether the anomaly is caused by the local clock of the host 10 or the local clock of the synchronization master / slave. On the other hand, in this embodiment, the occurrence of the synchronization anomaly is monitored separately from the host 10 by the monitoring device 30, thus enabling a more specific determination of the cause of the synchronization anomaly.

[0194] Additionally, the monitoring device 30 captures frames sent from the host 10 and stores them in a log accumulation DB151 on the non-real-time OS 100. By storing the log accumulation DB151 on the non-real-time OS side, which is capable of handling large amounts of data, the monitoring device 30 is able to capture and store a large amount of frame data.

[0195] Furthermore, when the monitoring device 30 detects an anomaly, it extracts the frame data preceding the impending anomaly from the log accumulation DB151 and stores the extracted pre-fault log data 320 in memory accessible to the real-time OS 200. Since a non-real-time OS is difficult to process in real-time, it cannot obtain and write the pre-fault log data 320 to frames according to the frame cycle. However, because the real-time OS 200 can reference the pre-fault log data 320, the monitoring device 30 can obtain and write the pre-fault log data 320 to frames according to the synchronization signal cycle. In other words, the host 10 can read the pre-fault log data 320 using frames repeatedly sent according to the synchronization signal cycle.

[0196] In addition, the host 10 can determine the position where motion control stopped by reading the log data 320 before the fault, and can continue motion control from the stopped position after the fault is recovered.

[0197] In addition, the monitoring device 30 transmits the pre-fault log data 320 via an industrial network. Thus, even if the host 10 used in the control system 1 has difficulty making external inputs such as USB, the monitoring device 30 can easily transmit the pre-fault log data 320 to the host 10.

[0198] The embodiments described above are for the purpose of understanding this disclosure and are not intended to limit or interpret this disclosure. The flowcharts, sequences, elements and their configurations, materials, conditions, shapes, and dimensions described in the embodiments are not limited to examples and can be appropriately modified. In addition, the structures shown in different embodiments can be partially substituted or combined.

Claims

1. An information processing device, which is connected to a host and one or more slave devices via an industrial network, comprising: The receiving unit receives frames repeatedly transmitted by the host within the industrial network; The first storage unit stores the log data of the frame; The extraction unit, upon detecting an anomaly in the host or one or more slave devices, extracts log data from the first storage unit for frames from the moment the anomaly was detected to a predetermined time prior. The second storage unit stores the log data of the extracted frame as log data prior to the failure. and The sending unit, in response to a request from the host, sends the pre-fault log data to the host via the industrial network.

2. The information processing apparatus according to claim 1, wherein, The information processing device has a non-real-time OS and a real-time OS. The receiving unit operates in the real-time OS. The first storage unit is located in the non-real-time OS. The extraction unit operates in the non-real-time OS. The second storage unit is disposed in the real-time OS and the memory accessible by the real-time OS. The transmitting unit operates in the real-time OS.

3. The information processing apparatus according to claim 1, wherein, The log data of the frame contains a first identifier that uniquely identifies the frame repeatedly sent by the host. The receiving unit receives from the host a transmission request for the pre-fault log data containing the first identifier. Upon receiving the transmission request, the transmitting unit sends the data of the frame specified by the first identifier in the pre-fault log data to the host.

4. The information processing apparatus according to claim 3, wherein, The log data of the frame also includes a second identifier, which indicates a memory location associated with data stored in frames repeatedly transmitted by the host. The receiving unit receives from the host a transmission request for the pre-fault log data, which includes the first identifier and the second identifier. Upon receiving the transmission request, the transmitting unit transmits the data corresponding to the second identifier in the frame specified by the first identifier from the pre-fault log data to the host.

5. The information processing apparatus according to claim 1, wherein, The receiving unit receives a request from the host to delete the log data prior to the failure. The information processing device has a deletion processing unit, which deletes the log data prior to the fault upon receiving the deletion request.

6. An information processing method, which is an information processing device connected to a host and one or more slave devices via an industrial network, includes the following steps: Receive frames repeatedly transmitted by the host within the industrial network; The log data of the frame is stored in the first storage unit; If an anomaly is detected in the host or one or more slave devices, log data of the frames from the moment the anomaly is detected to a predetermined time prior is retrieved from the first storage unit. The extracted log data of the frame is stored in the second storage unit as the log data before the failure. and In response to a request from the host, the pre-failure log data is sent to the host via the industrial network.

7. A program that causes a computer connected to a host and one or more slave computers via an industrial network to perform the following steps: Receive frames repeatedly transmitted by the host within the industrial network; The log data of the frame is stored in the first storage unit; If an anomaly is detected in the host or one or more slave devices, log data of the frames from the moment the anomaly is detected to a predetermined time prior is retrieved from the first storage unit. The extracted log data of the frame is stored in the second storage unit as the log data before the failure. and In response to a request from the host, the pre-failure log data is sent to the host via the industrial network.

Citation Information

Patent Citations

  • System and method for instructing motion control, and motion control system

    JP2010170435A