Patent Description:
<CIT> discloses a system including a robot, a processing device, a robot controller that controls the robot, a processing device controller that controls the processing device, and a programmable logic controller that generates an instruction for the robot controller and the processing device controller.

<CIT> discloses a brick and tile cutting machine with a supporting stationary bed-frame and a longitudinally-reciprocating carriage mounted on the bed-frame. The brick and tile cutting machine comprises a transversely-reciprocating cutting-frame on the carriage, a shaft journaled on the bed and provided with a crank-arm, a connecting-rod between the crank and the longitudinally-movable carriage, a gear-wheel provided with a hollow hub or clutch member, a clutch member splined on the shaft, and provided with a radially projecting roller, a guide in the path of the roller when rotated by the gear-wheel to separate the clutch members.

A system is provided that is effective for improving reliability of synchronous motions via network communication of a plurality of industrial machines.

The invention is defined by the system of independent claim <NUM> and the method of independent claim <NUM>. Optional aspects of the invention are provided by the dependent claims.

According to the present disclosure, a system can be provided that is effective for improving reliability of synchronous motions via network communication of a plurality of industrial machines.

Hereinafter, an embodiment will be described in detail with reference to the drawings. In the description, elements which are the same or have the same function are given the same reference signs, and redundant descriptions thereof are omitted.

<FIG> is a schematic diagram illustrating an example of a configuration of an industrial system. An industrial system <NUM> illustrated in <FIG> includes a plurality of industrial machines <NUM> connected via a network <NUM>. The plurality of industrial machines <NUM> communicate with each other via the network <NUM>, and perform a series of motions for the purpose of production of a workpiece and the like. The series of motions includes motions synchronized with each other of at least two or more industrial machines <NUM>. The motions synchronized with each other (hereinafter, referred to as "synchronous motions") include two or more motions performed by each of the two or more industrial machines <NUM> while maintaining a predetermined mutual relationship of execution timings.

In order for the two or more industrial machines <NUM> to perform the synchronous motions, the two or more industrial machines <NUM> need to operate based on pieces of time information synchronized with each other. Thus, in the network <NUM>, a plurality of nodes <NUM> are time-synchronized, and each of the plurality of industrial machines <NUM> performs a motion based on a time acquired from the network <NUM>.

The network <NUM> is, for example, a local area network. In the network <NUM>, the local area network includes a virtual private network (VPN) via a wide area network. The plurality of nodes <NUM> include devices (e.g., server devices or client devices) interconnected by the network <NUM>. The plurality of nodes <NUM> also include a network switch that relays between devices.

For example, the plurality of nodes <NUM> include a grand master <NUM> and a plurality of network switches <NUM>. The grand master <NUM> generates a reference time being a target of time synchronization. The plurality of network switches <NUM> transfer, to the plurality of industrial machines <NUM>, time information representing a time synchronized with the reference time generated by the grand master <NUM>. The time information may include information representing the reference time and information representing a delay time with respect to the reference time. According to the information representing the reference time and the information representing the delay time with respect to the reference time, the time synchronized with the reference time is indirectly represented. For example, the grand master <NUM> and each of the plurality of network switches <NUM> transmit and receive the time information while adding a time stamp representing a transmission/reception timing.

One or more network switches <NUM> are included in a transfer path of the time information from the grand master <NUM> to each of the plurality of industrial machines <NUM>. Hereinafter, a "higher level" and a "lower level" may be used to indicate a position in a transfer path. For the sake of convenience of description, the terms indicate a positioning when a direction toward the grand master <NUM> along the transfer path is an upper side and a direction toward the industrial machine <NUM> along the transfer path is a lower side.

In the example in <FIG>, the industrial system <NUM> includes industrial machines 20A, 20B, 20C, and 20D. The plurality of network switches <NUM> include network switches 12A, 12B, 12C, 12D, 12E, 12F, and <NUM>. A transfer path R1 from the grand master <NUM> to the industrial machine 20A includes the network switches 12A, 12B, and 12D. A transfer path R2 from the grand master <NUM> to the industrial machine 20B includes the network switches 12A, 12B, and 12E. A transfer path R3 from the grand master <NUM> to the industrial machine 20C includes the network switches 12A, 12C, and 12F. A transfer path R4 from the grand master <NUM> to the industrial machine 20D includes the network switches 12A, 12C, and <NUM>. Hereinafter, in each of the transfer paths R1, R2, R3, and R4, a node (the grand master <NUM> or the network switch <NUM>) located one level higher than the network switch <NUM> is referred to as an "adjacent master", and a node (the network switch <NUM> or the industrial machine <NUM>) located one level lower than the network switch <NUM> is referred to as an "adjacent slave". For example, the grand master <NUM> is an adjacent master of the network switch 12A, and the network switch 12B is an adjacent slave of the network switch 12A. The network switch 12B is an adjacent master of the network switch 12D, and the industrial machine 20A is an adjacent slave of the network switch 12D.

The time information includes master information about a time master being a generation source of the reference time. The master information includes, for example, identification information about the time master. In <FIG>, the generation source of the reference time is the grand master <NUM> in all of the transfer paths R1, R2, R3, and R4. Thus, each of the pieces of time information transferred to the industrial machines 20A, 20B, 20C, and 20D includes, as the master information, information about the grand master <NUM> (e.g., identification information about the grand master <NUM>).

Each of the plurality of network switches <NUM> may be a boundary clock. The boundary clock generates a time synchronized with the reference time (regenerates the reference time), based on the time information acquired from an adjacent master and the time stamp described above. The boundary clock transmits the time information including the regenerated reference time to an adjacent slave. According to this configuration, the time information including the reference time regenerated by the lowest network switch <NUM> in the transfer path is transferred to the industrial machine <NUM>.

The reference time regenerated by the boundary clock is based on the reference time generated by the grand master <NUM>. Thus, a time master of the reference time regenerated by the boundary clock is also the grand master <NUM>.

When the boundary clock is not connected to the grand master <NUM>, the boundary clock generates the reference time. In this case, the boundary clock (network switch <NUM>) that has generated the reference time without being connected to the grand master <NUM> becomes the time master.

Each of the plurality of network switches <NUM> may be a transparent clock. The transparent clock transmits, to an adjacent slave, the time information acquired from an adjacent master including a delay time generated by the transparent clock. According to this configuration, the time information including the reference time generated by the grand master <NUM> and a cumulative delay time generated in the transfer path is transferred to the industrial machine <NUM>.

The network <NUM> may perform time synchronization using the Precision Time Protocol (PTP). PTP is a time synchronization protocol defined in IEEE Std <NUM>. In the PTP, the above-described time stamp is provided in a physical layer. It is possible to select whether each node <NUM> operates only as a master that transmits the time information, operates only as a slave that receives the time information, or operates as both the master and the slave. This choice may change dynamically depending on the configuration of the network <NUM>. For example, the network <NUM> may perform time synchronization using the Generalized Precision Time Protocol (gPTP, IEEE Std <NUM>-AS).

The network <NUM> may perform time synchronization using the Network Time Protocol (NTP). In the NTP, the above-described time stamp is added in an application layer.

As illustrated above, in the industrial system <NUM> in which each of the plurality of industrial machines <NUM> acquires a time from the network <NUM> in which the plurality of nodes <NUM> are time-synchronized, it is possible that time masters of times acquired by the two or more industrial machines <NUM> are different. <FIG> illustrates a case where a communication failure has occurred between the network switch 12B and the network switch 12D, and the network switch 12D cannot acquire time information from the network switch 12B. In such a case, a time master of a time acquired by the industrial machines 20B, 20C, and 20D is the grand master <NUM>, whereas a time master of a time acquired by the industrial machine 20A is the network switch 12D.

The network <NUM> may include two or more grand masters <NUM>. In this case, it is possible that which of the two or more grand masters <NUM> is a time master differs between the plurality of industrial machines <NUM>. The time master being different may cause a difference in time between the plurality of industrial machines <NUM>. It is possible that the difference in the time between the plurality of industrial machines <NUM> affects motions performed by the plurality of industrial machines <NUM> in synchronization with each other.

Thus, at least one of the plurality of industrial machines <NUM> (first industrial machine) includes an acquisition unit <NUM> and a switching unit <NUM>. The acquisition unit <NUM> acquires master information from the network <NUM>. The switching unit <NUM> switches a control mode indicating a degree of synchronization in accordance with the master information. As illustrated in <FIG> and <FIG>, each of the plurality of industrial machines <NUM> may include the acquisition unit <NUM> and the switching unit <NUM>.

The control mode is, for example, a control method of a motion by the industrial machine <NUM>. "The control mode indicates a degree of synchronization" means that the degree of synchronization required for controlling a motion is determined by determining the control mode. "Switching the control mode" means switching the control mode between modes that require different degrees of synchronization.

A configuration in which the control mode is switched in accordance with the master information makes it possible to prevent a failure of a synchronous motion caused by the synchronization deviation in advance by switching the control mode in response to switching of the time master that may cause a synchronization deviation.

In the example in <FIG>, the industrial machine 20A detects that the time master is switched from the grand master <NUM> to the network switch 12D based on the master information, and switches the control mode in response to this. For example, the industrial machine 20A switches from a control mode that requires a high degree of time synchronization to a control mode that does not require a high degree of time synchronization. Hereinafter, an example of a configuration of the industrial machine <NUM> will be illustrated.

As illustrated in <FIG>, the industrial machine <NUM> includes a main body <NUM>, a local controller <NUM>, a server <NUM>, a base station <NUM>, and a communication terminal <NUM>. Hereinafter, the main bodies <NUM> of the industrial machines 20A, 20B, 20C, and 20D are distinguished from one another as 30A, 30B, 30C, and 30D, as appropriate. The main body <NUM> is a machine that performs a motion. A type of the main body <NUM> is not particularly limited.

As an example, the main body <NUM> illustrated in <FIG> is a mobile robot, and performs motions for performing conveyance, processing, assembly, and the like on a workpiece. Specific examples of the motions include a motion in which a component is conveyed and attached to a workpiece, a motion in which a tool such as a screw fastening tool or a welding torch is conveyed and a workpiece is processed, and a motion in which a workpiece itself is conveyed.

The main body <NUM> includes an unmanned conveyance vehicle <NUM> and a robot <NUM>. The unmanned conveyance vehicle <NUM> moves while supporting the robot <NUM>. The robot <NUM> is, for example, a vertical articulated type industrial robot. As illustrated in <FIG>, the robot <NUM> includes a base portion <NUM>, a swivel portion <NUM>, a first arm <NUM>, a second arm <NUM>, a wrist portion <NUM>, and a tip portion <NUM>. The base portion <NUM> is installed on the unmanned conveyance vehicle <NUM>. The swivel portion <NUM> is mounted on the base portion <NUM> so as to be rotatable around a vertical axis <NUM>. For example, the robot <NUM> has a joint <NUM> that attaches the swivel portion <NUM> to the base portion <NUM> so as to be rotatable around the axis <NUM>. The first arm <NUM> is connected to the swivel portion <NUM> so as to be rotatable around an axis <NUM> that intersects (e.g., is orthogonal to) the axis <NUM>. For example, the robot <NUM> has a joint <NUM> that connects the first arm <NUM> to the swivel portion <NUM> so as to be rotatable around the axis <NUM>. The term "intersect" includes in its meaning a twisted relationship such as in so-called grade separation. The same applies hereinafter. The first arm <NUM> extends from the swivel portion <NUM> along a direction that intersects (e.g., is orthogonal to) the axis <NUM>.

The second arm <NUM> is connected to an end portion of the first arm <NUM> so as to be rotatable around an axis <NUM> parallel to the axis <NUM>. For example, the robot <NUM> has a joint <NUM> that connects the second arm <NUM> to the first arm <NUM> so as to be rotatable around the axis <NUM>. The second arm <NUM> has an arm base portion <NUM> extending from the end portion of the first arm <NUM> along a direction that intersects (e.g., is orthogonal to) the axis <NUM>, and an arm end portion <NUM> further extending from an end portion of the arm base portion <NUM> along the same direction. The arm end portion <NUM> is rotatable around an axis <NUM> with respect to the arm base portion <NUM>. The axis <NUM> intersects (e.g., is orthogonal to) the axis <NUM>. For example, the robot <NUM> has a joint <NUM> that connects the arm end portion <NUM> to the arm base portion <NUM> so as to be rotatable around the axis <NUM>.

The wrist portion <NUM> is connected to an end portion of the arm end portion <NUM> so as to be rotatable around an axis <NUM> that intersects (e.g., is orthogonal to) the axis <NUM>. For example, the robot <NUM> has a joint <NUM> that connects the wrist portion <NUM> to the arm end portion <NUM> so as to be rotatable around the axis <NUM>. The wrist portion <NUM> extends from the end portion of the arm end portion <NUM> along a direction that intersects (e.g., is orthogonal to) the axis <NUM>. The tip portion <NUM> is connected to an end portion of the wrist portion <NUM> so as to be rotatable around an axis <NUM> that intersects (e.g., is orthogonal to) the axis <NUM>. For example, the robot <NUM> has a joint <NUM> that connects the tip portion <NUM> to the wrist portion <NUM> so as to be rotatable around the axis <NUM>. An end effector is provided on the tip portion <NUM>. Specific examples of the end effector include a hand that grips a workpiece, and a work tool that performs processing, assembly, and the like on a workpiece.

Actuators <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> respectively drive the joints <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Each of the actuators <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> includes, for example, an electric motor and a transmission unit (e.g., a reduction gear) that transmits power of the electric motor to a corresponding one of the joints <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. For example, the actuator <NUM> drives the joint <NUM> so as to rotate the swivel portion <NUM> around the axis <NUM>. The actuator <NUM> drives the joint <NUM> so as to rotate the first arm <NUM> around the axis <NUM>. The actuator <NUM> drives the joint <NUM> so as to rotate the second arm <NUM> around the axis <NUM>. The actuator <NUM> drives the joint <NUM> so as to rotate the arm end portion <NUM> around the axis <NUM>. The actuator <NUM> drives the joint <NUM> so as to rotate the wrist portion <NUM> around the axis <NUM>. The actuator <NUM> drives the joint <NUM> so as to rotate the tip portion <NUM> around the axis <NUM>.

The main body <NUM> is not necessarily limited to the mobile robot described above, and may be a robot fixed in a certain position. The main body <NUM> may be an unmanned conveyance vehicle that performs a motion for conveying a conveyance target object such as a workpiece.

Referring back to <FIG>, the local controller <NUM> controls the main body <NUM>. For example, the local controller <NUM> communicates with the server <NUM>, and controls the main body <NUM>, based on an instruction from the server <NUM>. Hereinafter, the communication performed by the local controller <NUM> with the server <NUM> is referred to as "inter-device communication". The local controller <NUM> may be capable of autonomously performing at least a part of the control of the main body <NUM> without being based on an instruction from the server <NUM>. In this case, the local controller <NUM> controls the main body <NUM> based on, for example, an operation program stored in the local controller <NUM>. The operation program includes a plurality of operation commands in time series. Each of the plurality of operation commands includes an operation target position and an operation target speed of the main body <NUM>. An example of the operation target position of the main body <NUM> includes an operation target position of the tip portion <NUM>. The operation target orientation of the tip portion <NUM> includes an operation target orientation of the tip portion <NUM>.

The server <NUM> communicates with the local controller <NUM> by the inter-device communication described above, and controls the main body <NUM> via the local controller <NUM>. For example, the server <NUM> causes the main body <NUM> to perform a synchronous motion with the main body <NUM> of another industrial machine <NUM>. For example, a server 100A in the industrial machine 20A causes a main body 30A to perform a synchronous motion with main bodies 30B, 30C, and 30D. Specific examples of such a synchronous motion include the following. Example <NUM>) The main body 30A and at least one of the main bodies 30B, 30C, and 30D cooperate to hold and convey the same workpiece. Example <NUM>) The main body 30A performs a motion such as processing and assembly on a workpiece held and conveyed by at least any of the main bodies 30B, 30C, and 30D.

In Example <NUM> described above, the motion of the main body 30A needs to be synchronized with the motion of at least one of the main bodies 30B, 30C, and 30D such that the tip portion <NUM> of the main body 30A has a predetermined position and orientation with respect to the tip portion <NUM> of at least one of the main bodies 30B, 30C, and 30D. In Example <NUM> described above, the motion of the main body 30A needs to be synchronized with the motion of at least one of the main bodies 30B, 30C, and 30D such that the tip portion <NUM> of the main body 30A has a predetermined position and orientation with respect to a workpiece held and conveyed by the tip portion <NUM> of at least one of the main bodies 30B, 30C, and 30D.

The base station <NUM> is connected to the server <NUM>, and the communication terminal <NUM> is connected to the base station <NUM>. The base station <NUM> and the communication terminal <NUM> perform wireless communication for the inter-device communication described above. For example, the base station <NUM> and the communication terminal <NUM> perform mobile communication. The mobile communication may be communication by a fifth generation mobile communication system (<NUM> communication).

As illustrated in <FIG>, the server <NUM> includes, as functional components (hereinafter referred to as "functional blocks"), the acquisition unit <NUM>, a time generation unit <NUM>, a communication unit <NUM>, a controller <NUM>, a detection unit <NUM>, a difference confirmation unit <NUM>, the switching unit <NUM>, and a notification unit <NUM>. The acquisition unit <NUM> acquires the above-described time information from the network <NUM>. For example, the acquisition unit <NUM> acquires the above-described time information from the network switch <NUM>.

The time generation unit <NUM> generates a time synchronized with the reference time, based on the time information acquired by the acquisition unit <NUM>. As described above, when the network switch <NUM> is a boundary clock, the time information acquired by the acquisition unit <NUM> includes a reference time regenerated by the network switch <NUM> one level higher than the industrial machine <NUM>. The time generation unit <NUM> generates a time synchronized with the reference time, based on the reference time regenerated by the network switch <NUM>.

As described above, when the network switch <NUM> is a transparent clock, the time information acquired by the acquisition unit <NUM> includes a reference time generated by the grand master <NUM> and a cumulative delay time. The time generation unit <NUM> generates a time synchronized with the reference time, based on the reference time generated by the grand master <NUM> and the cumulative delay time.

Hereinafter, the time generated by the time generation unit <NUM> is referred to as a "generated time". The generated time is included in the time acquired by the server <NUM>.

The communication unit <NUM> performs inter-server communication with the server <NUM> of another industrial machine <NUM> via the network <NUM>. The communication unit <NUM> transmits and receives a progress of a synchronous motion by the main body <NUM> and the like to and from the server <NUM> of the other industrial machine <NUM> through the inter-server communication. The communication unit <NUM>, through the inter-server communication, transmits the generated time to the server <NUM> of the other industrial machine <NUM> and receives a generated time of the server <NUM> of the other industrial machine <NUM> from the server <NUM> of the other industrial machine <NUM>. Hereinafter, the generated time of the server <NUM> of the other industrial machine <NUM> is referred to as a "comparison target time".

The controller <NUM> communicates with the local controller <NUM> through the inter-device communication described above, and controls the main body <NUM> via the local controller <NUM>. The controller <NUM> causes the main body <NUM> to perform a motion in a predetermined control mode. The motion that the controller <NUM> causes the main body <NUM> to perform includes the synchronous motion described above.

For example, the controller <NUM> causes the main body <NUM> to perform the synchronous motion at a predetermined timing, based on the generated time. The synchronous motions are performed due to two or more main bodies <NUM> performing a motion at a predetermined timing based on times synchronized with each other.

The controller <NUM> is capable of controlling the main body <NUM> in a plurality of types of control modes. The plurality of types of control modes may include two or more control modes having synchronization levels different from each other. The synchronization level is a synchronization level required between the main body <NUM> and the other industrial machine <NUM> in order to cause the main body <NUM> to perform a motion without any trouble. The synchronization level indicates, for example, a magnitude of a difference between the generated time and the comparison target time is. A high synchronization level indicates that a difference between the generated time and the comparison target time is small. A low synchronization level indicates that a difference between the generated time and the comparison target time is large.

In all of the control modes, the controller <NUM> controls the main body <NUM> based on a predetermined operation program. Similar to the above-described operation program, the operation program here also includes a plurality of operation commands in time series.

The controller <NUM> may repeatedly execute, in a predetermined control cycle, receiving feedback information indicating a state of the main body <NUM> from the local controller <NUM>, generating a control instruction based on the feedback information such that the main body <NUM> follows an operation command, and transmitting the control instruction to the local controller <NUM>. In this case, the local controller <NUM> repeats, in the control cycle, transmitting the feedback information to the server <NUM>, receiving the control instruction from the server <NUM>, and operating the main body <NUM> based on the received control instruction.

The controller <NUM> may perform synchronous communication based on the generated time. The synchronous communication is communication in which transmission and reception of a predetermined data set are repeated in a fixed communication cycle. For example, the controller <NUM> may perform the synchronous communication with the controller <NUM> of another server <NUM> (hereinafter referred to as "another controller <NUM>"). As an example, the controller <NUM> repeats, in a communication cycle, transmitting a first data set to the other controller <NUM>, and receiving a second data set from the other controller <NUM>.

After the controller <NUM> transmits the first data set, a variation in time until the other controller <NUM> receives the first data set may occur. Similarly, after the other controller <NUM> transmits the second data set, a variation in time until the controller <NUM> receives the second data set may occur. In order to suppress this variation, the controller <NUM> may, based on the generated time, add first communication cycle information designating a communication cycle in which the first data set is to be read and transmit the first data set to the other controller <NUM>. In this case, the other controller <NUM> stores the received first data set in advance until the communication cycle designated by the first communication cycle information, and reads the first data set in the communication cycle. Similarly, the other controller <NUM> may, based on the generated time, add second communication cycle information designating a communication cycle in which the second data set is to be read and transmit the second data set to the controller <NUM>. In this case, the controller <NUM> stores the received second data set in advance until the communication cycle designated by the second communication cycle information, and reads the second data set in the communication cycle.

In this manner, each of the controller <NUM> and the other controller <NUM> performs the processing of suppressing a variation in the transmission/reception timing of the first data set and the second data set, based on times synchronized with each other, and thus the synchronous communication can be performed with high reliability.

The controller <NUM> may perform the synchronous communication with the local controller <NUM>. For example, the controller <NUM> may add first control cycle information designating a control cycle in which a control instruction is to be read and transmit the control instruction to the local controller <NUM>. In this case, the local controller <NUM> stores the received control instruction in advance until the control cycle designated by the first control cycle information, reads the control instruction in the control cycle, and controls the main body <NUM>, based on the read control instruction. Similarly, the local controller <NUM> may add second control cycle information designating a control cycle in which feedback information needs to be read and transmits the feedback information to the server <NUM>. In this case, the communication unit <NUM> stores the feedback information until the control cycle designated by the second control cycle information. The controller <NUM> reads the feedback information in the control cycle designated by the second control cycle information, and generates a control instruction based on the read feedback information. As a result, influence, on a motion of the main body <NUM>, of a variation in the transmission/reception timing of the feedback information and the control instruction is suppressed.

In this manner, each of the industrial machines <NUM> performs, based on a time synchronized with the reference time, the control for suppressing the influence of the variation in the transmission/reception timing of the feedback information and the control instruction on the motion of the main body <NUM>, and thus the reliability of the synchronous motion by the main body <NUM> can be further improved.

The detection unit <NUM> detects switching of a time master, based on master information (hereinafter, referred to as "master information acquired by the acquisition unit <NUM>") included in the time information acquired by the acquisition unit <NUM>. For example, the detection unit <NUM> stores the master information acquired by the acquisition unit <NUM> at a predetermined timing as "reference master information", and compares the master information subsequently acquired by the acquisition unit <NUM> with the reference master information to detect the switching of the time master.

When the switching of the time master is detected by the detection unit <NUM>, the difference confirmation unit <NUM> confirms a difference between the generated time described above and the comparison target time described above.

The difference confirmation unit <NUM> may confirm a difference between the generated time and the comparison target time even before the switching of the time master is detected by the detection unit <NUM>. For example, the difference confirmation unit <NUM> may confirm whether there is a difference between the generated time and the comparison target time before the server <NUM> causes the main body <NUM> to perform the synchronous motion. In this case, the detection unit <NUM> may store the reference master information described above at a timing in which the difference confirmation unit <NUM> confirms that there is no difference between the generated time and the comparison target time.

Note that "there is no difference" is not necessarily limited to a case where the difference is <NUM>, and includes a case where there is a difference to an extent that there is no problem with the synchronous motion. The same applies hereinafter. The difference confirmation unit <NUM> may determine whether there is a difference between the generated time and the comparison target time based on whether a time master at the generated time is the same as a time master at the comparison target time, instead of comparing the generated time and the comparison target time. For example, the difference confirmation unit <NUM> may determine that there is no difference when the time master at the generated time and the time master at the comparison target time are the same. In this case, the communication unit <NUM> may receive information about the time master at the comparison target time from the server <NUM> of the other industrial machine <NUM>.

The difference confirmation unit <NUM> may determine whether there is a difference between the generated time and the comparison target time based on continuity of the generated time, instead of comparing the generated time and the comparison target time. For example, every time a generated time is generated, the difference confirmation unit <NUM> compares a difference between the generated time and a preceding generated time (hereinafter, referred to as a "time difference") with an elapsed time from a generation timing of the preceding generated time. When there is no difference between the time difference and the elapsed time, the difference confirmation unit <NUM> determines that there is continuity of the generated time, and when there is a difference between the time difference and the elapsed time, the difference confirmation unit <NUM> determines that there is no continuity of the generated time. When the difference confirmation unit <NUM> determines that there is no continuity of the generated time, the difference confirmation unit <NUM> may assume that a difference has occurred between the generated time and the comparison target time. Note that the absence of continuity of the generated time does not necessarily mean that a difference has occurred between the generated time and the comparison target time, but it is possible to assume to some extent that a difference has occurred due to the absence of continuity. For example, in a situation where the generated time and the comparison target time are synchronized with each other, a difference occurs between the generated time and the comparison target time when the continuity of the comparison target time is maintained and the continuity of the generated time is lost. According to the configuration in which the occurrence of a difference is assumed based on continuity, it is possible to assume the occurrence of a difference between the generated time and the comparison target time even when the communication unit <NUM> does not receive the comparison target time from the server <NUM> of the other industrial machine <NUM>.

The switching unit <NUM> switches the control mode of the main body <NUM> by the controller <NUM> in accordance with the master information. When the control mode is switched by the switching unit <NUM>, the controller <NUM> controls the main body <NUM> in the control mode that was switched to.

For example, the plurality of types of control modes described above may include a synchronous mode in which two or more industrial machines <NUM> are synchronized (two or more industrial machines <NUM> are caused to perform synchronous motions), and a safety mode with a lower synchronization level than the synchronous mode. In this case, when the switching of the time master is detected while the controller <NUM> controls the main body <NUM> in the synchronous mode, the switching unit <NUM> may switch the control mode from the synchronous mode to the safety mode.

The switching unit <NUM> may switch from the synchronous mode to the safety mode in at least a part of cases where the switching of the time master is detected. For example, the switching unit <NUM> may switch from the synchronous mode to the safety mode when a difference is confirmed by the difference confirmation unit <NUM> among the cases where switching of the time master is detected.

The safety mode may be a mode with a lower synchronization level than at least the synchronous mode. Examples of the safety mode include the following. Example <NUM>-<NUM>) The main body <NUM> is caused to continue the synchronous motion at a reduced speed as compared to during execution of the synchronous mode. Example <NUM>-<NUM>) The main body <NUM> is caused to perform a motion (hereinafter referred to as an "asynchronous motion") that is not synchronized with the main body <NUM> of the other industrial machine <NUM>. Example <NUM>-<NUM>) The main body <NUM> is stopped and the stopped state is maintained. Example <NUM>-<NUM>) The main body <NUM> is stopped and returned to an initial state before a start of the synchronous motion.

According to Example <NUM>-<NUM>, after the switching unit <NUM> switches from the synchronous mode to the safety mode, the controller <NUM> reduces the speed and causes the main body <NUM> to continue the synchronous motion. According to Example <NUM>-<NUM>, after the switching unit <NUM> switches from the synchronous mode to the safety mode, the controller <NUM> causes the main body <NUM> to stop the synchronous motion and causes the main body <NUM> to perform the asynchronous motion. According to Example <NUM>-<NUM>, after the switching unit <NUM> switches from the synchronous mode to the safety mode, the controller <NUM> causes the main body <NUM> to stop the synchronous motion. According to Example <NUM>-<NUM>, after the switching unit <NUM> switches from the synchronous mode to the safety mode, the controller <NUM> causes the main body <NUM> to stop the synchronous motion and causes the main body <NUM> to return to the initial state before the start of the synchronous motion.

The plurality of types of control modes may include two or more safety modes with different synchronization levels. For example, the two or more safety modes include a first safety mode, and a second safety mode with a lower synchronization level than the first safety mode. In this case, when the difference confirmation unit <NUM> determines that there is a difference, the difference confirmation unit <NUM> may further determine a magnitude of the difference. The switching unit <NUM> may switch from the synchronous mode to the first safety mode when the difference is smaller than a predetermined level, and may switch from the synchronous mode to the second safety mode when the difference is greater than the predetermined level. When the first safety mode is Example <NUM>-<NUM> described above, Examples <NUM>-<NUM> to <NUM>-<NUM> described above and the like may be the second safety mode.

When the switching unit <NUM> switches the control mode from the synchronous mode to the safety mode, the notification unit <NUM> notifies the other industrial machine <NUM> (second industrial machine). For example, the notification unit <NUM> causes the communication unit <NUM> to transmit notification contents to the other industrial machine <NUM>. The notification contents for the other industrial machine <NUM> may be, for example, an advance notice of switching the control mode from the synchronous mode to the safety mode, or an after-the-fact notice of switching the control mode from the synchronous mode to the safety mode.

The notification contents may be information serving as a trigger for the switching unit <NUM> to switch the control mode from the synchronous mode to the safety mode. Examples of the information serving as the trigger include detection of the switching of the time master by the detection unit <NUM>, and confirmation of a difference by the difference confirmation unit <NUM>. The notification unit <NUM> may acquire the information serving as the trigger from the detection unit <NUM>, the difference confirmation unit <NUM>, or the like, and may notify both the switching unit <NUM> and the other industrial machine <NUM> of the information. In this case, the switching unit <NUM> switches the control mode based on the notification from the notification unit <NUM>.

In the other industrial machine <NUM>, the notification described above is received by the communication unit <NUM>. When the communication unit <NUM> receives the notification described above, the switching unit <NUM> of the other industrial machine <NUM> switches the control mode in the other industrial machine <NUM> from the synchronous mode to the safety mode.

The plurality of types of control modes may include an asynchronous mode in which the two or more industrial machines <NUM> are not synchronized with each other and a synchronous mode in which the two or more industrial machines <NUM> are synchronized with each other, and the controller <NUM> may control the main body <NUM> in the synchronous mode after controlling the main body <NUM> in the asynchronous mode.

In this case, when the switching of the time master is detected by the detection unit <NUM> during a period in which the control mode is the asynchronous mode, the difference confirmation unit <NUM> may confirm whether a difference has occurred between the generated time and the comparison target time. When the difference confirmation unit <NUM> confirms that no difference has occurred, the switching unit <NUM> switches the control mode from the asynchronous mode to the synchronous mode. When the difference confirmation unit <NUM> confirms that a difference has occurred, the switching unit <NUM> stops the switching from the asynchronous mode to the synchronous mode.

The communication unit <NUM> may receive the notification described above from the notification unit <NUM> of the other industrial machine <NUM>. In this case, the switching unit <NUM> switches the control mode from the synchronous mode to the safety mode. The difference confirmation unit <NUM> may confirm the difference described above prior to the switching of the control mode by the switching unit <NUM>. The switching unit <NUM> may switch from the synchronous mode to the safety mode when a difference has been confirmed by the difference confirmation unit <NUM> among cases where the communication unit <NUM> receives the notification contents described above.

The server <NUM> may further include a continuity confirmation unit <NUM>. When the switching of the time master is detected by the detection unit <NUM>, the continuity confirmation unit <NUM> confirms that a time before and a time after the switching of the time master are continuous (continuity of the generated time described above). When the continuity cannot be confirmed by the continuity confirmation unit <NUM>, the switching unit <NUM> may switch the control mode from the synchronous mode to the safety mode.

In this manner, discontinuity of the time triggers the switching of the control mode from the synchronous mode to the safety mode. The notification contents described above from the notification unit <NUM> to the other industrial machine <NUM> may be discontinuous in time. The notification unit <NUM> may acquire an occurrence of the discontinuity in time from the continuity confirmation unit <NUM> and notify both the switching unit <NUM> and the other industrial machine <NUM> of the occurrence of the discontinuity in time. In this case, the switching unit <NUM> switches the control mode based on the notification from the notification unit <NUM>.

<FIG> is a block diagram illustrating an example of a hardware configuration of the server <NUM> and the local controller <NUM>. As illustrated in <FIG>, the server <NUM> includes a circuit <NUM>. The circuit <NUM> includes a processor <NUM>, a memory <NUM>, a storage <NUM>, a communication port <NUM>, and a communication port <NUM>.

The storage <NUM> is a non-volatile storage medium. Specific examples of the storage <NUM> include a hard disk and a flash memory. The storage <NUM> may be a portable storage medium such as an optical disk. The storage <NUM> stores a program for causing the server <NUM> to acquire master information from the network <NUM> and switch the control mode in accordance with the master information. For example, the storage <NUM> stores a program for causing the server <NUM> to configure each of the above functional blocks.

The memory <NUM> is, for example, a temporary storage medium such as a random access memory, and temporarily stores the program loaded from the storage <NUM>. The processor <NUM> includes one or more arithmetic elements, and configures each of the above functional blocks in the server <NUM> by executing the program loaded into the memory <NUM>. The communication port <NUM> performs the inter-server communication with the other industrial machine <NUM> via the network <NUM> in response to a request from the processor <NUM>. The communication port <NUM> performs inter-device communication with the local controller <NUM> via the base station <NUM> and the communication terminal <NUM> in response to a request from the processor <NUM>.

The local controller <NUM> includes a circuit <NUM>. The circuit <NUM> includes a processor <NUM>, a memory <NUM>, a storage <NUM>, a communication port <NUM>, and a drive circuit <NUM>.

The storage <NUM> is a non-volatile storage medium. Specific examples of the storage <NUM> include a hard disk and a flash memory. The storage <NUM> may be a portable storage medium such as an optical disk. The storage <NUM> stores a program for controlling the main body <NUM>.

The memory <NUM> is, for example, a temporary storage medium such as a random access memory, and temporarily stores the program loaded from the storage <NUM>. The processor <NUM> includes one or more arithmetic elements, and controls the main body <NUM> by executing the program loaded into the memory <NUM>. The communication port <NUM> performs the inter-device communication with the server <NUM> via the communication terminal <NUM> and the base station <NUM> in response to a request from the processor <NUM>. The drive circuit <NUM> supplies drive power to the main body <NUM> in response to a request from the processor <NUM>.

The configuration described above is merely an example, and can be modified as appropriate. For example, the industrial machine <NUM> may perform the inter-device communication between the server <NUM> and the local controller <NUM> through wired communication. The server <NUM> and the local controller <NUM> may be integrated into one device. The servers <NUM> of two or more industrial machines <NUM> may be integrated into a server device of the industrial system <NUM>. In this case, the servers <NUM> of the two or more industrial machines <NUM> are implemented by software in the server device of the industrial system <NUM>.

Hereinafter, an example of a control procedure executed by the industrial machine <NUM> will be illustrated. The control procedure includes performing a motion synchronized with another motion in the other industrial machine <NUM> based on a time acquired from the network <NUM>, acquiring master information, and switching a control mode according to the master information. Hereinafter, the control procedure will be divided into a control start procedure and a control mode change procedure.

As illustrated in <FIG>, the server <NUM> first executes steps S01 and S02. In step S01, the acquisition unit <NUM> acquires time information from the network <NUM>. In step S02, the time generation unit <NUM> generates a time synchronized with a reference time based on the time information. The time generated in step S02 is the generated time described above.

Subsequently, the server <NUM> executes steps S03 and S04. In step S03, the communication unit <NUM> receives the comparison target time described above from the server <NUM> of the other industrial machine <NUM>. In step S04, the difference confirmation unit <NUM> confirms that there is no difference between the generated time and the comparison target time.

Subsequently, the server <NUM> executes steps S05 and S06. In step S05, the detection unit <NUM> stores master information as reference master information. In step S06, the controller <NUM> starts control of the main body <NUM> based on the generated time. This completes the control start procedure.

The control mode change procedure is executed after the control start procedure described above. As illustrated in <FIG>, the server <NUM> first executes steps S11 and S12. In step S11, the acquisition unit <NUM> acquires the time information from the network <NUM>. In step S12, the time generation unit <NUM> updates the generated time based on the time information.

Subsequently, the server <NUM> executes step S13. In step S13, the detection unit <NUM> compares master information included in the time information acquired in step S11 with the reference master information to confirm whether a time master has been switched. In step S13, when it is determined that the time master has not been switched, the server <NUM> executes step S14. In step S14, the notification unit <NUM> confirms whether the communication unit <NUM> has received a notification that a difference has been confirmed. In step S14, when it is determined that the notification that the difference has been confirmed has not been received, the server <NUM> returns the processing to step S11.

In step S13, when it is determined that the time master has been switched, the server <NUM> executes steps S15 and S16. In step S15, the communication unit <NUM> receives the comparison target time described above from the server <NUM> of the other industrial machine <NUM>. In step S16, the difference confirmation unit <NUM> confirms a difference between the generated time and the comparison target time. In step S16, when it is determined that there is no difference, the server <NUM> executes step S17. In step S17, the detection unit <NUM> stores the master information after switching as reference master information. Subsequently, the server <NUM> returns the processing to step S11.

In step S16, when it is determined that there is a difference, the server <NUM> executes step S21. In step S21, the notification unit <NUM> notifies the switching unit <NUM> and the server <NUM> of the other industrial machine <NUM> that there is a difference. In step S14, when it is determined that the communication unit <NUM> has received the notification described above, the server <NUM> executes step S22. In step S22, the notification unit <NUM> notifies the switching unit <NUM> that the notification has been received.

Subsequently, the server <NUM> executes step S23. In step S23, the switching unit <NUM> switches the control mode based on the notification in step S21 or step S22. The controller <NUM> stops control of the main body <NUM> in the control mode before switching, and controls the main body <NUM> in the control mode after switching. This completes the control mode switching procedure. Note that in the above-described procedure, a case has been described as an example where the notification unit <NUM> notifies, as notification contents, that the difference confirmation unit <NUM> has confirmed a difference, but the notification contents are not limited thereto as described above. The procedure described above can be changed as appropriate depending on a difference in the notification contents and the like.

The procedure described above may be executed while the main body <NUM> is being controlled in the asynchronous mode. In this case, the switching unit <NUM> switches, in advance during the asynchronous mode, to the control mode that normally comes after the execution of the asynchronous mode. For example, the switching unit <NUM> switches whether transitioning, to the synchronous mode that normally comes after the execution of the asynchronous mode, is enabled. <FIG> is a flowchart illustrating an example of a control procedure executed by the server <NUM> after the execution of the asynchronous mode, based on a switching result of whether the transitioning is enabled.

As illustrated in <FIG>, the server <NUM> first executes steps S31 and S32. In step S31, the controller <NUM> waits for a timing to transition from the asynchronous mode to the synchronous mode. In step S32, the switching unit <NUM> confirms the determination result of whether transitioning to the synchronous mode is enabled. In step S32, when it is determined that transitioning to the synchronous mode is enabled, the server <NUM> executes step S33. In step S33, the switching unit <NUM> causes the control mode to transition from the asynchronous mode to the synchronous mode. The controller <NUM> starts control of the main body <NUM> in the synchronous mode. In step S32, when it is determined that transitioning to the synchronous mode is disabled, the server <NUM> executes step S34. In step S34, the switching unit <NUM> does not cause the control mode to transition from the asynchronous mode to the synchronous mode. The controller <NUM> continues control of the main body <NUM> in the asynchronous mode. As described above, a switching result of the control mode performed in advance during the execution of the asynchronous mode is reflected in the control after the execution of the asynchronous mode.

As described above, the server <NUM> may further include the continuity confirmation unit <NUM>. <FIG> illustrates an example of a switching procedure of a control mode when the continuity confirmation unit <NUM> is included. As illustrated in <FIG>, the server <NUM> executes steps S41, S42, and S43 similarly to steps S11, S12, and S13. In step S41, the acquisition unit <NUM> acquires the time information from the network <NUM>. In step S42, the time generation unit <NUM> updates the generated time based on the time information. In step S43, the detection unit <NUM> confirms whether a time master has been switched.

In step S43, when it is determined that the time master has not been switched, the server <NUM> executes step S44. In step S44, the notification unit <NUM> confirms whether the communication unit <NUM> has received a notification of an occurrence of discontinuity. In step S44, when it is determined that the communication unit <NUM> has not received the notification of the occurrence of the discontinuity, the server <NUM> returns the processing to step S41.

In step S43, when it is determined that the time master has been switched, the server <NUM> executes step S45. In step S45, the continuity confirmation unit <NUM> confirms whether the discontinuity occurs in a time before and a time after the switching of the time master.

In step S45, when it is determined that the discontinuity has occurred, the server <NUM> executes step S46. In step S46, the notification unit <NUM> notifies the switching unit <NUM> and the server <NUM> of the other industrial machine <NUM> that the discontinuity has occurred. In step S44, when it is determined that the communication unit <NUM> has received the notification of the occurrence of the discontinuity, the server <NUM> executes step S47. In step S47, the notification unit <NUM> notifies the switching unit <NUM> that the notification has been received.

Claim 1:
An industrial system(<NUM>), comprising:
a network(<NUM>) and two or more industrial machines(<NUM>) connected via the network (<NUM>), wherein the industrial machines (<NUM>) are configured to perform motions synchronized with each other by performing the motions based on a time acquired from the network(<NUM>) in which a plurality of nodes(<NUM>) are time-synchronized, the plurality of nodes (<NUM>) including devices interconnected by the network (<NUM>), wherein
a first industrial machine(<NUM>) included in the two or more industrial machines(<NUM>) includes:
an acquisition unit(<NUM>) configured to acquire master information about a time master being a generation source of the time;
a switching unit(<NUM>) configured to switch a control mode indicating a degree of the synchronization in accordance with the master information; and
a detection unit(<NUM>) configured to detect switching of the time master based on the master information acquired by the acquisition unit(<NUM>); wherein
the switching unit(<NUM>) is further configured to switch, when the switching of the time master is detected, the control mode from a synchronous mode in which the two or more industrial machines(<NUM>) are synchronized to a safety mode in which a difference between a time acquired by a second industrial machine(<NUM>) included in the two or more industrial machines(<NUM>) and a time acquired by the first industrial machine(<NUM>) is larger than that in the synchronous mode.