WO2021131530A1 - 制御システム - Google Patents

制御システム Download PDF

Info

Publication number
WO2021131530A1
WO2021131530A1 PCT/JP2020/044659 JP2020044659W WO2021131530A1 WO 2021131530 A1 WO2021131530 A1 WO 2021131530A1 JP 2020044659 W JP2020044659 W JP 2020044659W WO 2021131530 A1 WO2021131530 A1 WO 2021131530A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
unit
counter
control
control system
Prior art date
Application number
PCT/JP2020/044659
Other languages
English (en)
French (fr)
Inventor
重行 江口
西山 佳秀
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to EP20907744.5A priority Critical patent/EP4083726A4/en
Priority to US17/781,322 priority patent/US12105551B2/en
Priority to CN202080082096.4A priority patent/CN114761889A/zh
Publication of WO2021131530A1 publication Critical patent/WO2021131530A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13063Synchronization between modules
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15063Real time clock
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/21Pc I-O input output
    • G05B2219/21055Number of halfwaves equals number of I-O, send block of halfwaves, synchro gap

Definitions

  • This disclosure relates to an FA (Factory Automation) control system.
  • FA technology using a control device such as a PLC (programmable logic controller) is widely used at various production sites.
  • a control device such as a PLC (programmable logic controller)
  • the accuracy of the clock that manages the actual time was not high in the FA control system, so a counter for control was implemented separately from the clock, but a highly accurate clock that manages the actual time can now be used. It is becoming.
  • a mechanism for synchronizing the control counter with the real time has been proposed.
  • Patent Document 1 discloses a configuration in which a PLC includes an internal clock, acquires a global time from a time server, and synchronizes the internal clock with the acquired global time.
  • An object of the present disclosure is to use a conventional control counter to provide a time with accuracy that can be used in the environment or operation of a control system.
  • the control system is a factory automation control system, which uses a first unit and a second unit for exchanging data, a clock, and a control counter and a second unit provided in the first unit.
  • Each unit is provided with a synchronization means for synchronizing with the control counter provided in the unit, and each unit is information shared between the units and is related to conversion for calculating the time from the counter value of the counter of the unit. It is provided with an information storage means for storing.
  • the clock includes an external clock outside the unit or an internal clock included in one of the first unit and the second unit.
  • an external clock or an internal clock of the unit can be used as the clock for synchronizing the counters between the units. This allows the control system to provide a time that has the accuracy of the external clock or the internal clock of the unit, i.e., with the accuracy available in the environment or operation of the control system.
  • the synchronization means adjusts the values of the counters synchronized with each other of the first unit and the second unit in accordance with the time of the external clock when the accuracy of the time managed by the external clock satisfies a predetermined condition. To do.
  • the values of the counters synchronized with each other of the first unit and the second unit are adjusted according to the time of the external clock. By doing so, the counter value of the counter can be synchronized with the external clock.
  • the synchronization means synchronizes the counters of the first unit and the second unit with reference to the time managed by the internal clock.
  • the value of the counters synchronized with each other of the first unit and the second unit is the time of the internal clock provided in the unit. Can be synchronized based on.
  • the conversion information includes the difference between the counter value and the reference counter value of each unit and the conversion formula for converting the real time from the reference time corresponding to the reference counter value, and the reference time is a clock. Including the time of.
  • each unit can calculate the time from the conversion formula by using the reference counter value, the clock time corresponding thereto, and the counter value of the unit.
  • one unit comprises a management means for managing information about the conversion shared with the other unit, the management means relating to the conversion shared according to the clock used to synchronize the control counter. Update the information.
  • the management means can update the conversion information shared between the units according to the clock used for counter synchronization. For example, if the clock is an external clock, that is, if the accuracy of time management of the external clock satisfies a predetermined condition, the conversion information is not updated and remains fixed, but the accuracy does not satisfy the predetermined condition. If so, update the conversion information based on the time of the internal clock.
  • the management means transfers the conversion formula to the reference counter value and the reference time, respectively, to the counter value of one unit and the counter value. Update so that the time of the corresponding internal clock is set.
  • the conversion formula can be updated by setting the counter value corresponding to the time of the internal clock used for counter synchronization.
  • the first unit exchanges data with the second unit via the data bus
  • the control system comprises a third unit networked to one unit, and the synchronization means. Further, the counter included in one unit and the control counter included in the third unit are synchronized, and the third unit stores information on conversion shared between the units.
  • the time conversion configuration based on the counter synchronization configuration and conversion information can be expanded to the units on the network.
  • the conversion information includes information on the accuracy of the time managed by the clock used for counter synchronization.
  • each unit with information on the accuracy of the time managed by the clock used for counter synchronization through the information on conversion.
  • each unit calculates the time from the counter value of the counter according to the shared conversion information, and outputs a response including the calculated time to the time inquiry received from the application.
  • the application can provide a configuration for referencing (querying) the converted time in the unit.
  • conversion is performed when an inquiry is received.
  • a configuration for providing the converted time to the application it is possible to provide a configuration for performing conversion for each inquiry. Therefore, the application can obtain the latest converted value (time).
  • each unit stores the converted time, and the response includes the stored converted time.
  • a conventional control counter can be used to provide a time with accuracy that can be used in the environment or operation of a control system.
  • FIG. 9 is a diagram schematically showing an example of a configuration for time synchronization managed by the control device 2 according to the present embodiment.
  • the factory automation control system includes a plurality of control devices. This control device corresponds to, for example, a PLC.
  • the control device includes a first unit (CPU unit 100) and a second unit (functional unit 200) for exchanging data.
  • the control system uses a clock to synchronize the control counter 126 included in the first unit and the control counter 213 included in the second unit in synchronization processing units (synchronization processing unit 216, synchronization processing unit 114). To be equipped.
  • Each unit stores information shared between units, and stores time conversion information 30 related to conversion for converting time from a counter value of a counter included in the unit.
  • the time conversion information 30 is distributed by the conversion information management unit 115 (conversion information management unit 215) so as to be shared between the units.
  • control system includes a configuration in which control counters are synchronized between units, and a configuration in which time conversion information 30 related to conversion for calculating time from the counter values of the synchronized counters is shared between units.
  • the clock used for counter synchronization is the master clock 191A, which is an external clock outside the unit, or the internal clock included in one of the first unit and the second unit (for example, the RTC (Real Time) included in the CPU unit 100).
  • Clock) 128) can be included. Therefore, the control system can provide a time using a clock available to the system, i.e., a time with accuracy in the available environment and operation. This makes it possible for the control system to provide a time that can flexibly correspond to the environment or operation of the system.
  • PLC control device
  • control system the entire system including the PLC (control device) is also referred to as a "control system” below.
  • FIG. 1 is a diagram schematically showing an example of the overall configuration of the control system 1 according to the present embodiment.
  • networks are connected to a plurality of levels, and different functions are assigned to the networks at each level. Specifically, for example, four levels of networks 11 to 14 are provided, but not limited to.
  • Network 11 is a control level network.
  • the network 11 provides a plurality of control devices 2A, 2B and 2C (hereinafter, also collectively referred to as “control device 2”), a device / line management device 190, and a SCADA (Supervisory Control And Data Acquisition) function.
  • the display device 280 is connected, and a data link capable of exchanging data between the devices is formed in the network 11.
  • the device / line management device 190 and the display device 280 correspond to devices connected to the network and devices for managing the production line.
  • the network 11 mainly provides transmission of information related to the control system as a main function.
  • Various field devices 90 such as sensors and actuators are connected to the control device 2. These field devices 90 may be directly connected to the control device 2 via an input / output unit mounted on the control device 2, or may be connected to the control device 2 via the network 110.
  • the control device 2 is connected to one or more networks 110.
  • One or more field devices 90 are connected to each network 110.
  • Each of the one or more field devices 90 exchanges information with an actuator that exerts some physical action on a manufacturing apparatus, a production line, or the like (hereinafter, also collectively referred to as a "field"), and a field.
  • a field level network 110 is further added.
  • the data exchanged between the control device 2 and the field device 90 via the network 110 is updated in a very short cycle of several hundred ⁇ sec order to several tens of msec order.
  • the data update process of such exchanged data is also referred to as input / output refresh process.
  • Network 12 is provided as a management level network.
  • a device / line management device 190 for managing devices and lines, and manufacturing control devices 380 and 390 for managing manufacturing plans and the like are connected to the network 12.
  • the device / line management device 190, the manufacturing control devices 380 and 390 exchange management information such as a manufacturing plan and exchange device or line information via the network 12.
  • Network 13 is provided as a computer-level network.
  • the manufacturing management devices 380 and 390 and the manufacturing execution system (MES: Manufacturing Execution System) 400 that manages the time series DB (abbreviation of database) 450 are connected to the network 13.
  • the manufacturing control devices 380 and 390 and the manufacturing execution system 400 exchange production control and information system data via the network 13.
  • the manufacturing execution system 400 stores the observed values, which are input values from the field device 90 collected via the network 13, in the time series DB 450 as time series data according to the observed order.
  • the control device 2 has a function of generating a frame including a designated observed value.
  • the control device 2 transfers the generated frame to the manufacturing execution system 400 via the networks 11, 12 and 13.
  • the manufacturing execution system 400 stores the frames of the observed values received from the control device 2 in the time series DB 450 according to the time series.
  • time series data is a series of data obtained by continuously (or discontinuously) observing changes in data (observed values) for an arbitrary object over time. Means a value.
  • the "observed value” is a concept that collectively refers to a value (actual value) that can be used in a control calculation in the control device 2, and is typically acquired from a controlled object and input to the control calculation. Values (measured values obtained from fields, etc.), output values for controlled objects determined by control operations based on the acquired input values (command values given to fields, etc.), operations calculated in the process of control operations It can include values (arbitrary variable values) and the like. That is, the "observed value” includes an arbitrary value that can be stored as data in the control device 2 or can be output externally as data from the control device 2.
  • Network 14 includes an external network such as the Internet.
  • the manufacturing execution system 400 and an external device on the cloud are connected to the network 14.
  • the manufacturing execution system 400 transfers the data of the time series DB 450 to the device on the cloud by exchanging data with the device on the cloud.
  • the support device 500 can be connected to the control device 2.
  • the support device 500 is a device that supports the preparation necessary for the control device 2 to control the controlled object.
  • the support device 500 may also be connected to the device / line management device 190.
  • step 3A shows an assembly process of a product (work)
  • step 3B shows a painting process of the assembled product
  • step 3C shows an inspection process of the painted product.
  • control system data data for actually controlling the device
  • control system data data for actually controlling the device
  • the network 13 and the network 14 at a higher level are also called “corporate network”, and are data for monitoring, managing, and controlling production activities at production lines / factories (hereinafter, "information system data”).
  • information system data data for monitoring, managing, and controlling production activities at production lines / factories
  • protocols and frameworks corresponding to such differences in required characteristics are adopted.
  • EtherNet / IP registered trademark
  • EtherCAT registered trademark
  • the protocol of the network 11 (first protocol) and the protocol of the network 110 (second protocol) may be the same or different.
  • each of the plurality of control devices 2A, 2B, and 2C connected to the network 11 transmits / receives data to / from one or a plurality of field devices 90 connected via the network 110.
  • the control device 2 has a process of collecting data (input data) collected or generated by the field device 90 (input process) and a process of generating data (output data) such as a command to the field device 90 (output data). Arithmetic processing) and processing (output processing) of transmitting the generated output data to the target field device 90 are executed.
  • control device 2 has a timer that defines the timing of data transmission and is time-synchronized with each other between the subjects (that is, one or a plurality of field devices 90) to which data is transmitted and received.
  • the time is not synchronized between the plurality of control devices 2, for example, the field device 90 connected to one control device 2 and the field device 90 connected to another control device 2 The time cannot be synchronized between them. As a result, the timings of the input / output refresh processes may not match, and it becomes difficult to operate a plurality of field devices 90 connected to different control devices 2 in cooperation with each other.
  • the timers of each of the plurality of control devices 2 are time-synchronized with each other. As a result, it is possible to realize coordinated control of a plurality of field devices 90 connected to different control devices 2, that is, between different processes.
  • FIG. 2 is a schematic diagram showing a network configuration example of the control system 1 according to the present embodiment.
  • the control system 1 shown in FIG. 2 includes a plurality of control devices 2A, 2B and 2C, and a plurality of field devices 90A to 90I.
  • the control system 1 employs a network in which at least some control devices are daisy-chained.
  • Each of the control devices 2A, 2B and 2C functions as a master that manages data transmission within the corresponding network 110.
  • the field devices 90A to 90I function as slaves that transmit data according to a command from the corresponding master.
  • the control devices 2A, 2B and 2C are connected to the control level network 11 (upper network).
  • a device / line management device 190 is connected to the network 11.
  • Field devices 90A, 90B and 90C are sequentially connected in a daisy chain to the network 110 connected to the control device 2A, and field devices 90D, 90E and 90F are daisy connected to the network 110 connected to the control device 2B.
  • the field devices 90G, 90H and 90I are sequentially connected by a daisy chain to the network 110 which is sequentially connected by a chain and is connected to the control device 2C.
  • control device 2 and one or a plurality of field devices 90 can all be regarded as communication devices having a data transmission function.
  • the control device 2 and one or a plurality of field devices 90 receives data transmitted on the network from a communication device connected adjacently, the data is required. It has a function of transmitting to another communication device connected adjacently according to the above.
  • the transmission / reception timing is synchronized between the plurality of communication devices connected to the network 110, that is, the control device 2 and the one or the plurality of field devices 90 (time synchronization in the figure). Equivalent to (3)).
  • each of the control device 2 and one or the plurality of field devices 90 includes a timer (or a counter that is synchronously incremented or decremented) that is time-synchronized with each other.
  • Each of the controller 2 and one or more field devices 90 determines the timing of data transmission or reception according to their time-synchronized timers or counters.
  • timing represents the concept of time, time, or time when some event occurs.
  • time synchronization means synchronizing timers, time data, etc. possessed by each other.
  • the control device 2A includes a timer 102A, and the field devices 90A, 90B and 90C include timers 91A, 91B and 91C, respectively.
  • the timer 102A of the control device 2A functions as a master, and the timers 91A, 91B and 91C of the field devices 90A, 90B and 90C synchronize the timing with reference to this master. For example, values based on the timer value of the timer 102A are set in the timers 91A, 91B and 91C.
  • the control device 2B has a timer 102B, and the field devices 90D, 90E and 90F have timers 91D, 91E and 91F, respectively.
  • the timer 102B of the control device 2B functions as a master, and the timers 91D, 91E and 91F of the field devices 90D, 90E and 90F synchronize the timing with reference to this master. For example, values based on the timer value of the timer 102B are set in the timers 91D, 91E and 91F.
  • the control device 2C has a timer 102C, and the field devices 90G, 90H and 90I have timers 91G, 91H and 91I, respectively.
  • the timer 102C of the control device 2C functions as a master, and the timers 91G, 91H and 91I of the field devices 90G, 90H and 90I synchronize the timing with reference to this master. For example, values based on the timer value of the timer 102C are set in the timers 91G, 91H and 91I.
  • each of the control devices 2A, 2B, and 2C functions as a master that manages data transmission in the corresponding network 110, and the field device 90 connected to each control device 2 transmits data according to a command from the master. Act as a slave to do. By synchronizing the timers between the master and the slave, the data transmission timing and the like can be matched between the control device 2 constituting the network 110 and the field device 90.
  • the control device 2A further has a timer 101A that is time-synchronized with the timer 102A.
  • the control device 2B further has a timer 101B that is time-synchronized with the timer 102B.
  • the control device 2C further has a timer 101C that is time-synchronized with the timer 102C (corresponding to the time synchronization (2) in the figure).
  • any one of the timers 101A, 101B and 101C can function as a master of the entire control system 1.
  • the timer 101A of the control device 2A is set as the master, and the timers of the control devices 2B and 2C synchronize the time with this master.
  • the time can be synchronized with each other between the plurality of control devices 2A, 2B and 2C (corresponding to the time synchronization (1) in the figure).
  • each of the plurality of control devices 2A, 2B and 2C has an inter-device timer (timers 101A, 101B and 101C) whose time is synchronized with each other among the plurality of control devices 2A, 2B and 2C, and the network 110. It has inter-device timers (timers 102A, 102B and 102C) that are time-synchronized with one or more field devices 90 connected via the inter-device timer, and the inter-device timer and the inter-device timer are time-synchronized with each other. ..
  • time-synchronized inter-device timer (timer 102A) between the control device 2A and the field devices 90A, 90B and 90C and the time-synchronized device between the control device 2B and the field devices 90D, 90E and 90F.
  • the timer (timer 102B) and the inter-device timer (timer 102C) whose time is synchronized between the control device 2C and the field devices 90G, 90H and 90I are time-synchronized with each other.
  • FIG. 2 has described a configuration example in which the timer of any of the control devices 2 is set as the master, the time acquired from the outside via the network 11 may be used as the master, or the device / line management device 190.
  • the timer of an external device such as may be used as a master.
  • FIG. 3 is a schematic diagram showing data communication processing of the control system 1 according to the present embodiment.
  • data is exchanged between the control device 2A connected to the network 110 and the plurality of field devices 90A, 90B and 90C according to a predetermined system cycle.
  • NW lower network
  • the data collected from the field device 90 by each control device 2 by the input processing and the output data generated by the arithmetic processing according to a predetermined system cycle. Etc. are exchanged.
  • the field device 90 connected to the control device 2A, the field device 90 connected to the control device 2B, and the field device 90 connected to the control device 2C can be operated in cooperation with each other. That is, the field equipment 90 can be operated in cooperation between different processes.
  • the communication on the network 11 is also referred to as "upper network (NW) communication".
  • the timing at which the transmission of data in the lower network communication should be started is determined based on the timers that are time-synchronized with each other among the plurality of control devices 2A, 2B and 2C. ..
  • the timing of exchanging data with the field device 90 can be matched between the plurality of control devices 2A, 2B and 2C, and as a result, the field device 90 can be used between different processes.
  • the control timing can be synchronized.
  • FIG. 4 is a schematic view showing a configuration example of the unit of the control device 2 according to the present embodiment.
  • the control device 2 included in the control system 1 includes a CPU (Central Processing Unit) unit 100 (hereinafter referred to as a CPU unit 100), one or more functional units 200, and one or more functions. Includes unit 300.
  • the number of functional units 300 included in the control device 2 is four, but the number is not limited to four if it is one or more, and the number of functional units 200 included in the control device 2 is two, but one. If it is the above, it is not limited to two.
  • the CPU unit 100 connects one or a plurality of functional units 200 to the data bus 111 via the signal line 113. Further, the CPU unit 100 connects one or a plurality of functional units 300 via the data bus 112.
  • the data bus 111 is, but is not limited to, an I / O serial interface bus that complies with, for example, PCIe (PCI Express).
  • the signal line 113 is an optical fiber cable or an electrical signal cable, and transmits a time synchronization signal 130 which will be described later as a trigger signal.
  • the CPU unit 100 has a program execution unit that executes a program created according to the control target. More specifically, the CPU unit 100 corresponds to an arithmetic processing unit that executes a system program and various user programs.
  • the functional unit 200 carries out communication processing or information processing.
  • the functional unit 200 includes an interface for connecting the data bus 111 and a signal port 212P for connecting the signal line 113.
  • the functional unit 200 is arranged so as to mediate between the network 11 and the control device 2, so that the CPU unit 100 communicates data with a device connected to the network 11 via the functional unit 200. It can be carried out. Further, by connecting the signal line 113 between the signal port 110P of the CPU unit 100 and the signal port 212P of the functional unit 200, the CPU unit 100 and the functional unit 200 transmit the time synchronization signal 130 via the signal line 113. Receive.
  • the functional unit 200 monitors the access to the CPU unit 100 from the Internet such as the network 14, and the access to the CPU unit 100 from other devices in the network 11, and the occurrence of some security event. Is detected, the inside or outside of the control device 2 is notified of the detected security event.
  • the information processing performed by the functional unit 200 is not limited to the security monitoring process.
  • the functional unit 300 functions as a so-called I / O unit that exchanges signals with equipment and devices to be controlled such as a field device 90 and various devices (sensors, actuators, etc.) arranged therein. Be prepared. Specifically, the functional unit 300 outputs the command value calculated by the CPU unit 100 to the field, or collects the input value from the field.
  • the functional unit 300 includes, for example, a DI (Digital Input) module that receives a digital signal from a control target, a DO (Digital Output) module that outputs a digital signal to the control target, and an AI (AI) that receives an analog signal from the control target.
  • DI Digital Input
  • DO Digital Output
  • AI AI
  • the functional unit 300 may include a controller equipped with special functions such as PID (Proportional Integral Derivative) control and motion control.
  • PID Proportional Integral Derivative
  • the functional unit 200 or the functional unit 300 can be provided as an expansion unit that can be detachably attached to the CPU unit 100.
  • FIG. 5 is a block diagram showing a hardware configuration example of the CPU unit 100 included in the control device 2 according to the present embodiment.
  • the CPU unit 100 includes a processor 102, a chipset 104, a main storage device 106, a secondary storage device 108, an upper network controller 105, a USB (Universal Serial Bus) controller 107, a memory card interface 109, and a local. It includes bus controllers 120 and 122, field network controllers 118, counter 126, RTC (Real Time Clock) 128, and signal port 110P.
  • a processor 102 includes a processor 102, a chipset 104, a main storage device 106, a secondary storage device 108, an upper network controller 105, a USB (Universal Serial Bus) controller 107, a memory card interface 109, and a local. It includes bus controllers 120 and 122, field network controllers 118, counter 126, RTC (Real Time Clock) 128, and signal port 110P.
  • RTC Real Time Clock
  • the processor 102 is composed of a CPU, an MPU (microprocessor unit), a GPU (Graphics Processing Unit), etc., reads various programs stored in the secondary storage device 108, expands them into the main storage device 106, and executes them. , Control according to the control target, and various processes as described later are realized.
  • the secondary storage device 108 is composed of, for example, a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • the main storage device 106 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory).
  • the chipset 104 realizes the processing of the CPU unit 100 as a whole by controlling the processor 102 and each device.
  • the secondary storage device 108 in addition to the system program for realizing the basic functions, a user program created according to the manufacturing device or equipment to be controlled is stored. Further, the time conversion information 30 is stored in the secondary storage device 108. The time conversion information 30 indicates information related to conversion for calculating the time (real time) from the value of the counter provided in each unit.
  • the secondary storage device 108 also stores a time-series database as described later.
  • the device that stores the time conversion information 30 is not limited to the secondary storage device 108, and may be stored in the main storage device 106.
  • the upper network controller 105 exchanges data with the manufacturing execution system 400 or a device on the cloud (see FIG. 1) via the upper network 11.
  • the USB controller 107 controls the exchange of data with the support device 500 via the USB connection.
  • the memory card interface 109 is configured so that the memory card 116 can be attached and detached, data can be written to the memory card 116, and various data (user programs, trace data, etc.) can be read from the memory card 116. ing.
  • the counter 126 is used as a time reference for managing the execution timing of various processes in the CPU unit 100.
  • the counter 126 typically increments or decrements the counter value at predetermined intervals.
  • the counter 126 may be implemented by using a high precision event timer (HPET: High Precision Event Timer) or the like, which is a hardware timer arranged on the system bus that drives the processor 102, or it may be implemented by using an ASIC (Application). It may be mounted using a dedicated circuit such as Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
  • the RTC128 is a kind of counter having a timekeeping function, and provides the current time to the processor 102 or the like.
  • the local bus controller 122 is an interface for exchanging data with the functional units 300-1, 300-2, ... Which can be connected to the CPU unit 100.
  • the local bus controller 122 uses a counter 124 as a time reference for managing timing with the functional units 300-1, 300-2, ..., Which are other devices connected via the data bus 112. Have.
  • each of the functional units 300-1, 300-2, ... Has a counter 125 used as a time reference for managing timing between the local bus controller 122 and the other functional units 300. ..
  • the same configuration as that of the counter 126 described above can be adopted.
  • the field network controller 118 controls the exchange of data with other devices including the field device 90 via the network 110.
  • the field network controller 118 has a counter 119 used as a time reference for managing timing with other devices.
  • the timer 91 of the field device 90 is indicated by counters 91A, 91B ....
  • the local bus controller 120 is an interface for exchanging data with the functional units 200-1, 200-2, ... Which can be connected to the CPU unit 100.
  • the local bus controller 120 uses a counter 121 used as a time reference for managing timing between the functional units 200-1, 200-2, ..., Which are other devices connected via the data bus 111. Have.
  • each of the functional units 200-1, 200-2, ... Has a counter 213 used as a time reference for managing the timing with the local bus controller 120.
  • the counter 121 and the counter 213 can adopt the same configuration as the counter 126 described above.
  • each device on the network 110 also has a counter used as a time reference for managing the timing with the field network controller 118.
  • the same configuration as the counter 126 described above can be adopted.
  • the field network controller 118 functions as a communication master for performing constant periodic communication via the network 110, and is the difference between the counter value indicated by the counter of each device connected to the fieldbus and the counter value indicated by the counter 119. Is sequentially monitored, and if necessary, a synchronization signal for instructing correction is output to the device in which the counter value is deviated. As described above, the field network controller 118 has a synchronization management function for giving a command to the device to match the counter value indicated by the counter of the device with the counter value indicated by the counter 119.
  • a signal line 113 that transmits a time synchronization signal 130 is connected to the signal port 110P.
  • the counter 119, the counter 121, and the counter 124 are synchronized with the counter 126.
  • FIG. 5 shows a configuration example in which the necessary functions are provided by the processor 102 executing the program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC). It may be implemented using (Application specific Integrated Circuit) or FPGA (Field-Programmable Gate Array). Alternatively, the main part of the CPU unit 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs (Operating Systems) having different uses in parallel, and to execute necessary applications on each OS.
  • OSs Operating Systems
  • the CPU unit 100 and the support device 500 are configured as separate bodies, but a configuration is adopted in which all or part of these functions are integrated into a single device. You may.
  • FIG. 6 is a block diagram showing a hardware configuration example of the functional unit 200 included in the control device 2 according to the present embodiment.
  • the functional unit 200 includes a processor 202, a chipset 204, a main memory 206, a storage 208, an inter-unit interface 210, a network interface 220, and a signal port 212P.
  • a signal line 113 that transmits a time synchronization signal 130 is connected to the signal port 212P.
  • the processor 202 is composed of a CPU, an MPU, a GPU, and the like. Like the CPU unit 100 described above, the functional unit 200 has one or more processors 202 and / or a processor 202 having one or more cores. By controlling the processor 202 and peripheral elements, the chipset 204 realizes the processing of the functional unit 200 as a whole.
  • Chipset 204 includes a signal generator 205, which is a circuit element that generates a time synchronization signal 130. The time synchronization signal 130 from the signal generator 205 is sent to the signal line 113 via the signal port 212P.
  • the main memory 206 is composed of a volatile storage device such as a DRAM or SRAM.
  • the storage 208 is composed of, for example, a non-volatile storage device such as a flash memory.
  • the processor 202 reads various programs stored in the storage 208, expands them in the main memory 206, and executes them to realize processing such as monitoring of security events.
  • the storage 208 stores a system program 22 including an OS (Operating System) 27 for realizing basic processing and a user program 20. Further, the storage 208 stores the time conversion information 30 which is the information related to the conversion for calculating the actual time from the counter value of the counter 213, and also stores the time series data of the observed values collected by the functional unit 200. Has 21.
  • the storage device for storing the time conversion information 30 is not limited to the storage 208, and may be the main memory 206.
  • the user program 20 includes a time management program 26 that manages the time handled by the functional unit 200 and a security program 24 for security monitoring processing.
  • the time management program 26 includes a counter synchronization program 23 for synchronizing counters between units, and a correction program 25 that corrects the counter value when executed.
  • the security program 24 When the security program 24 is executed, the security program 24 performs security monitoring processing based on security settings that prescribe rules and the like defined in advance by the operator or administrator of the control device 2, and collects observation values based on the processing results. Then, it is stored in the storage area 21 as time series data.
  • the counter value correction process is executed by executing the correction program 25, and the correction process will be described later.
  • the inter-unit interface 210 connects the data bus 111.
  • the inter-unit interface 210 exchanges data with the CPU unit 100 or another functional unit 200 via the data bus 111.
  • the inter-unit interface 210 includes a data communication circuit 211 including a controller (indicated by Tx / Rx CTRL in the figure) and a buffer for transmitting and receiving data to and from the CPU unit 100 or another functional unit 200, and a counter 213.
  • the network interface 220 includes a controller (indicated by Tx / Rx CTRL in the figure) 222 and a buffer 226 for exchanging data via the network 11.
  • the buffer provided in the inter-unit interface 210 and the network interface 220 corresponds to a storage unit that temporarily stores data to be transmitted and data received.
  • the counter 213 has the same configuration as the counter 126 (see FIG. 5) included in the CPU unit 100.
  • the network interface 220 and the inter-unit interface 210 of the functional unit 200 include, for example, a NIC (Network Interface Card).
  • FIG. 6 shows a configuration example in which necessary processing is realized by executing a program by the processor 202, and a part or all of the processing provided is a dedicated hardware circuit (for example, an example). It may be implemented using an ASIC or FPGA).
  • FIG. 7 is a block diagram showing a hardware configuration example of the functional unit 300 included in the control device 2 according to the present embodiment.
  • the functional unit 300 provides various functions necessary for realizing control of various machines or equipment by the control system 1. More specifically, each of the functional units 300 includes a functional module 157, an I / O (input / output) interface 159, and a communication circuit 161.
  • the function module 157 is a part that executes the main processing of each function unit 300, and controls the collection of field information from the machine or equipment to be controlled and the output of a command signal to the machine or equipment to be controlled.
  • the I / O interface 159 is a circuit that mediates the exchange of signals with a machine or equipment to be controlled.
  • the communication circuit 161 processes the data sequentially transferred to the data bus 112. That is, when the communication circuit 161 receives some data via the data bus 112, the communication circuit 161 processes the received data and then transmits the communication data to the functional unit 300 located next on the data bus 112. Communication circuit 161 provides a function of relaying such data.
  • the communication circuit 161 includes transmission / reception ports 162, 164, a controller for transmission / reception (indicated by Tx / Rx CTRL in the figure) 166, and a counter 168.
  • the transmission / reception ports 162 and 164 are parts that are physically connected to the data bus 112, and perform processing such as reception and reproduction of data transmitted on the data bus 112 in accordance with a command from the controller 166 to perform data. Achieve sequential transfer of.
  • the controller 166 performs data processing such as reading data transferred on the data bus 112 and changing data.
  • the counter 168 generates a clock that serves as a reference for timing such as command output by the controller 166 or processing execution by the function module 157.
  • a counter using a real-time clock can be adopted, but in the present embodiment, a free-run counter that counts up (increments) at a predetermined cycle can be applied.
  • FIG. 8 is a block diagram showing a software configuration example of the CPU unit 100 according to the present embodiment.
  • the CPU unit 100 includes a PLC engine 150, a time series database 180, an upper connection program 192, and a gateway program 194.
  • the PLC engine 150 executes various programs under the execution environment of various programs. Typically, this execution environment is provided by the processor 102 of the CPU unit 100 reading the system program stored in the secondary storage device 108, deploying it in the main storage device 106, and executing it.
  • the PLC engine 150 includes a control program 152, a variable management program 160, a scheduler program 170, an input program 172, an output program 174, a time synchronization program 177, and a conversion information management program 179.
  • the variable management program 160, the scheduler program 170, the input program 172, and the output program 174 may be implemented as a part of the system program. In this case, each function provided by these programs may be provided by a single system program.
  • the control program 152 is typically composed of a user program 154, a database writing program 156, and a serialization communication program 158.
  • the user program 154 corresponds to a main part that provides a control calculation function, and can be arbitrarily configured according to a manufacturing device or equipment to be controlled by the CPU unit 100.
  • the user program 154 can be defined by, for example, a ladder logic using a function block or the like.
  • the database writing program 156 is called by the instruction specified in the user program 154 and writes the specified data to the time series database 180.
  • the serialization communication program 158 performs serialization processing on the data written from the database writing program 156 to the time series database 180. More specifically, the serialization communication program 158 executes a process (serialization) of converting time-series data into a storeable byte string. The target data is converted into a predetermined byte string by the serialization process and then stored in the time series database 180. It should be noted that the serialization process does not necessarily have to be performed according to the speed of writing data to the time series database 180, the data capacity, and the like. That is, the serialized communication program 158 has an optional configuration.
  • the variable management program 160 manages the values available in the PLC engine 150 in the form of variables. More specifically, the variable management program 160 includes system variables indicating the state of the CPU unit 100 and device variables indicating values held by various devices connected to the CPU unit 100 via the local bus or field bus. , A user variable indicating a value held by the user program 154 executed by the CPU unit 100 is managed.
  • the input program 172 provides a function of acquiring input data from various devices connected to the CPU unit 100 via a local bus or a field bus.
  • the output program 174 outputs a command value (output data) calculated by the user program 154 executed in the CPU unit 100 to a target device connected via the data bus 112 or the network 110.
  • the time synchronization program 177 realizes time synchronization between the execution cycle of the control program in the CPU unit 100, the functional unit 200 connected to the data bus 112, and the field device 90 connected to the network 110.
  • the time synchronization program 177 includes a correction program 178 for appropriately correcting a timer managed for time synchronization. When the correction program 178 is executed, the correction process described later is executed, and the correction process will be described later.
  • the conversion information management program 179 realizes the management of conversion information related to conversion for calculating the time from the counter value.
  • the management of conversion information realized by the conversion information management program 179 includes sharing of conversion information between units. Sharing of conversion information is realized, for example, by distributing the time conversion information 30 to another unit.
  • the scheduler program 170 manages resource allocation, execution timing, etc. for processes or tasks of the CPU unit 100. Such a process or task can be generated by executing the control program 152, the variable management program 160, the input program 172, the output program 174, the time synchronization program 177, the conversion information management program 179, and the like by the CPU unit 100. Contains a process or task.
  • the time-series database 180 is typically located in the main storage 106 or the secondary storage 108, and has a function of storing data and responds to a request (query) from the outside and responds to the specified data. It is equipped with a search function.
  • the time series database 180 stores the time series data 182 written by the database writing program 156. That is, the time series database 180 stores at least a part of the input data, the output data, the calculation data calculated in the control calculation by the control program 152, the manufacturing data, and the event data in the time series.
  • Such input data and output data include data received by the CPU unit 100 from the functional unit 300 and data transmitted by the CPU unit 100 to the functional unit 300.
  • the event data may include data related to security monitoring received by the CPU unit 100 from the functional unit 200.
  • the upper connection program 192 exchanges data with an external device connected to the upper network 13 such as the manufacturing execution system 400.
  • input data and calculation data can be output from the CPU unit 100 to the manufacturing execution system 400, and manufacturing information can be received from the manufacturing execution system 400.
  • the higher-level connection program 192 provides a manufacturing data acquisition function for acquiring manufacturing data from the manufacturing execution system 400 associated with the controlled object.
  • the manufacturing execution system 400 has a time series DB 450.
  • a database connection program 193 (the database is referred to as "DB" in the figure) may be provided in place of the higher connection program 192 or as a part of the higher connection program 192.
  • the database connection program 193 may, for example, send a query such as SQL to a relational database and execute a process of receiving a response.
  • the time-series data 182 of the time-series database 180 in the CPU unit 100 can be transferred to the manufacturing execution system 400 and stored in the time-series DB 450. Details of the time-series data output to the manufacturing execution system 400 by the database connection program 193 will be described later.
  • the gateway program 194 communicates with the device on the cloud.
  • the time series data 182 of the time series database 180 is provided to the device that provides the IoT service on the cloud.
  • the gateway program 194 acquires data of a specified type from the time series database 180 at a specified cycle and outputs the data as time series data.
  • the time-series data output to the IoT service providing device by the gateway program 194 can have, for example, the same configuration as the time-series data output to the manufacturing execution system 400 by the database connection program 193.
  • the input program 172 of the CPU unit 100 acquires input data from a field device 90 such as a sensor via the data buses 111, 112 and / or the network 110.
  • the upper connection program 192 of the CPU unit 100 acquires manufacturing data from the manufacturing execution system 400.
  • the variable management program 160 manages these acquired input data and manufacturing data as variables.
  • the user program 154 executes a predetermined control operation while referring to the system variables, device variables, and user variables managed by the variable management program 160, and outputs the execution result (output data) to the variable management program 160. To do.
  • the output program 174 outputs the output data calculated by the control calculation of the user program 154 as control output to the field device 90 such as an actuator via the data bus 112 and / or the network 110.
  • the database writing program 156 writes the specified observation values among the variables managed by the variable management program 160 into the time series database 180.
  • the higher-level connection program 192 uses the values of the specified variables among the variables managed by the variable management program 160 and / or the specified data of the time-series data 182 stored in the time-series database 180 in a time-series manner. It is output as data to the manufacturing execution system 400.
  • the gateway program 194 uses the values of the specified variables among the variables managed by the variable management program 160 and / or the specified data among the time series data 182 stored in the time series database 180 as time series data. Is output to the IoT service.
  • the IoT service providing device provides, for example, a service that performs behavior analysis based on time-series data from the CPU unit 100 and performs predictive maintenance of equipment and devices to be controlled.
  • the control device 2 has a function of synchronizing the time and the counter (hereinafter, also referred to as “time synchronization” and “counter synchronization”, respectively).
  • time is intended to indicate a certain point in the flow of time, and is defined by using a unit such as hour, minute, or second.
  • the "counter” includes a value for controlling timing in the control device 2 and related devices, and is basically a value that is incremented or decremented by a predetermined value every predetermined unit time (hereinafter referred to as "counter”).
  • the value indicated by the counter is also referred to as "counter value”).
  • the counter value corresponds to the value of the timer, but is not limited, and represents, for example, a 64-bit length integer value capable of expressing the order of nanoseconds.
  • time synchronization using a counter value is adopted between the units constituting the control device 2 and between each unit and another device including the field device 90.
  • each control device 2 receive (acquire) the counter value of the master clock, which is the reference clock for managing the real time, from the network 11, and the time triggered by the time synchronization signal 130.
  • the configuration for realizing synchronization will be described.
  • the time synchronization signal 130 is generated by the signal generator 205 shown in FIG. 6 of the functional unit 200 and transmitted to the signal line 113.
  • a configuration that realizes such time synchronization is, for example, a case where the network 11 carries out data communication according to TSN (Time-Sensitive Networking) and a case where the network 11 carries out data communication according to EtherCAT (registered trademark: Ethernet for Control Automation Technology). It may include cases to be implemented.
  • the standard applied to the network 11 is not limited to these, and may be, for example, IEEE1588.
  • the master clock 191A for managing the time is provided, for example, by the device / line management device 190 on the network 11.
  • the master clock 191A indicates, for example, an absolute time (real time) managed by a time synchronization server arranged on the Internet.
  • the master clock 191A can be used as a reference clock for counter synchronization, and the master clock 191A as a reference clock may be provided in another device on the network 11.
  • the CPU unit 100 includes a synchronization processing unit 114 when the time synchronization program 177 is executed.
  • the synchronization processing unit 114 communicates with the device / line management device 190 via the host network controller 105 and refers to the master clock 191A.
  • the synchronization processing unit 114 corrects the transmission delay of the network 11 or the like when acquiring the time of the master clock 191A by utilizing the function of the device / line management device 190 as a time synchronization server. As a result, the synchronization processing unit 114 can acquire a more accurate time from the master clock 191A.
  • the synchronization processing unit 114 when the synchronization processing unit 114 acquires the time using the time synchronization protocol, the synchronization processing unit 114 latches the counter value of the counter 126 at the timing when the time synchronization protocol is executed. As a result, the time acquired from the master clock 191A and the counter value can be linked. The result of such association is "time conversion information 30". Maintaining the association corresponds to synchronization of the master clock 191A and the CPU unit 100. Further, in maintaining this association, the "time conversion information 30" may be updated, the time in the unit (time of RTC128) may be updated, and the counter may be corrected.
  • the functional unit 200 includes a synchronization processing unit 216 realized by executing the counter synchronization program 23.
  • the synchronization processing unit 216 of the functional unit 200 receives the counter value of the counter 126 from the CPU unit 100 via the data bus 111 at the time of startup, and sets the received counter value in the counter 213. After that, the synchronization processing unit 216 periodically updates (increments or decrements) the counter value of the counter 213 in synchronization with the output from the internal hardware circuit, and updates the updated value to the control counter 213. Set. As a result, the counter value of the counter 213 is periodically updated.
  • the scheduler program 170 schedules the control program 152 and the like with reference to the control counter 126. Further, the input program 172 and the output program 174 perform time synchronization with each device with reference to the counter 119 and the counter 124 synchronized with the counter 126. As a result, scheduling of the control program 152 and the like in the CPU unit 100 and time synchronization between each device connected to the control device 2 and the control device 2 can be performed with reference to the master clock 191A. As a result, scheduling of a control program or the like in the CPU unit 100 and input / output between each device (field device 90 or the like) connected to the control device 2 and the control device 2 are performed in synchronization with the master clock 191A. It becomes possible.
  • the synchronization processing unit 216 of the functional unit 200 and the synchronization processing unit 114 of the CPU unit 100 perform correction processing for reducing the synchronization deviation.
  • This correction process is realized by executing the correction program 178 in the synchronization processing unit 114, and is realized by executing the correction program 25 in the synchronization processing unit 216.
  • the synchronization processing unit 114 and the synchronization processing unit 216 perform correction processing including latch processing by using the time synchronization signal 130 as a trigger from the signal line 113.
  • the synchronization processing unit 114 and the synchronization processing unit 216 receive (input) the time synchronization signal 130, they latch (acquire) the counter values of the counter 126 and the counter 231 and determine the latched counter values. Store in the storage area of. After that, the synchronization processing unit 114 and the synchronization processing unit 216 exchange latched counter values with each other via the data bus 111 to collate them, and based on the collation result, the difference between the counter values (hereinafter, this difference is synchronized). (Also called deviation) is derived, and the counter value of the corresponding counter is adjusted with the adjustment value based on the difference so that the derived difference becomes small. This adjustment includes, for example, a counter value correction process in which the counter value is added or subtracted by the adjustment value.
  • the timing at which the synchronization deviation adjustment is performed may be the time when the time synchronization signal 130 is received, or may be after a predetermined time has elapsed from the time when the time synchronization signal 130 is received.
  • the unit of the source of the time synchronization signal 130 is not limited to the functional unit 200, and may be another unit provided in the control system 1.
  • the time synchronization signal 130 is output periodically, for example, every 1 ms, but the method is not limited to the method of periodically outputting the signal 130.
  • the functional unit 200 may output the time synchronization signal 130 when the counter value of the counter 213 becomes equal to a certain indicated value.
  • the master clock 191A is used as the reference clock for synchronizing the counters, but the reference clock for time synchronization can be switched.
  • the synchronization processing unit 114 determines whether or not the accuracy of the time (for example, milliseconds, microseconds, etc.) satisfies a predetermined condition with respect to the time received from the master clock 191A.
  • the index of time accuracy is not limited to milliseconds, microseconds, and the like.
  • the index may include information such as the accuracy (server name, etc.) of the server that is the source of the master clock 191A, the synchronization protocol, and the timezone indicated by the master clock 191A. Therefore, the predetermined condition may include that the value indicated by the index of time accuracy is a predetermined value.
  • the counter values of the counters 126 and 213 are adjusted in accordance with the time received from the master clock 191A in the above time synchronization.
  • the synchronization processing unit 114 determines that the accuracy of the time received from the master clock 191A does not satisfy the predetermined condition, one of the CPU unit 100 and the function unit 200
  • the counter 126 of the CPU unit 100 and the counter 213 of the functional unit 200 are synchronized with respect to the time managed by the internal clock provided in the unit.
  • the RTC 128 is used as the internal clock, but when the functional unit 200 includes an internal clock corresponding to the RTC, the internal clock of the functional unit 200 may be used as the reference clock.
  • the synchronization processing unit 114 acquires, for example, the accuracy of the time managed by the master clock 191A from the configuration information indicating the configuration of the control system 1. Can be done.
  • control system 1 may further include a unit 370 different from the CPU unit 100 and the functional unit 200, and cause the unit 370 to perform the time synchronization process described above.
  • the unit 370 can be connected to the signal line 113 and the data bus 111.
  • the unit 370 includes a hardware processor, and the hardware processor executes a program to synchronize the counter 126 of the CPU unit 100 and the counter 213 of the functional unit 200. Specifically, when the unit 370 detects the time synchronization signal 130 on the signal line 113, the unit 370 reads the counter value from the counter 126 and the counter 213 via the data bus 111. The unit 370 uses the read counter value to correct the counter values of the counters 126 and 213 so as to reduce the synchronization deviation as described above. The unit 370 sets the corrected counter value to each counter via the data bus 111.
  • each control device 2 using the time of the master clock 191A, (i) time synchronization is realized between the units, and (ii) time synchronization is realized between each unit and the device connected to the unit. (Iii) In the CPU unit 100, the scheduler program 170 realizes time synchronization for the execution of the control program 152, the input program 172, and the output program 174. Further, when each control device 2 performs time synchronization using a common master clock 191A, (iv) time synchronization can be realized between different control devices 2. Further, when the control device 2 is provided for each different process, time synchronization can be performed between the different processes.
  • FIG. 10 is a diagram schematically showing an example of the time conversion information 30 according to the present embodiment.
  • the time conversion information 30 is information shared between units, and includes information related to conversion for calculating the actual time from the value of the counter.
  • the time conversion information 30 includes a conversion formula 36 and a conversion table 35 shared between units. In the present embodiment, sharing of the conversion formula between the units is realized by using the conversion table 35 shown in FIG.
  • the conversion formula 36 calculates the elapsed time from the base time (baseTOD) using the control counter value (currentCount-baseCount), and adds the base time (baseTOD) to this calculated value to obtain the current real time. This is an equation to obtain (currentTOD).
  • the conversion table 35 includes a description 32 of the element, an example 33 of the type / unit, and an example 34 of the value in association with each of the elements 31 of the table.
  • Element 31 includes, for example, "baseCount”, “baseTOD”, “timezone” and “timeSource”.
  • BaseCount” and “baseTOD” indicate operands of conversion formula 36.
  • “baseCount” is a reference control counter value, and in the present embodiment, indicates the counter value of the counter 126 of the CPU unit 100.
  • “baseTOD” is a value paired with the value of "baseCount”, and in the present embodiment, it indicates a TOD value which is a clock value of RTC128 of the CPU unit 100.
  • the time management unit 117 shown in FIG. 11 of the CPU unit 100 sets the values read from the element 31 of the conversion table 35 in the operands (baseCount) and (baseTOD) of the conversion formula 36, respectively, and sets the counter 126 for control.
  • the value of (currentTOD) indicating the current real time is calculated from the conversion formula 36.
  • the conversion information management unit 215, which will be described later, of the functional unit 200 sets the values read from the element 31 of the conversion table 35 in the operands (baseCount) and (baseTOD) of the conversion formula 36, respectively, and counters for control.
  • the value of (currentTOD) indicating the current real time is calculated from the conversion formula 36. In the calculation, appropriate conversion of units is performed.
  • the master for example, the CPU unit 100
  • distributes the time conversion information 30 to the slave for example, the functional unit 200
  • FIG. 11 is a diagram schematically showing an example of a configuration for sharing the time conversion information 30 according to the present embodiment.
  • two slaves (functional unit 200) are connected to the master (CPU unit 100).
  • the number of slaves connected to the master is one or a plurality.
  • the conversion information management unit 115 of the master distributes (transmits) the time conversion information 30 stored in the secondary storage device 108 to each slave (corresponding to (1) distribution in the figure). This distribution is carried out, for example, via the data bus 111.
  • the slave includes a conversion information management unit 215 realized by executing the time management program 26.
  • the conversion information management unit 215 receives the time conversion information 30 transmitted from the master, stores it in the storage 208, and calculates the current time (currentTOD) described above using the time conversion information 30. Further, the conversion information management unit 215 adjusts the current time managed by the time manager 214 provided in the OS 27 with the calculated current time (corresponding to (2) adjustment in the figure).
  • the current time managed by the OS 27 can be updated to the current time (currentTOD) calculated from the time conversion information 30 shared between the units, and as a result, the current time managed by the unit can be updated. Times can be synchronized between units.
  • the conversion information management unit provided in the functional unit 200 becomes the master and manages the time conversion information 30. Then, it may be delivered to the CPU unit 100 which is a slave.
  • the slave to which the time conversion information 30 is distributed by the master is not limited to the functional unit 200 so that the time conversion information 30 is shared between the units.
  • Such slaves may include, for example, a functional unit 300 or a field device 90.
  • FIG. 12 is a diagram schematically showing another example of the configuration for sharing the time conversion information 30 according to the present embodiment.
  • FIG. 12 shows, for example, a field device 90 connected to the network 110 as a unit that shares the time conversion information 30 with the master.
  • the CPU unit 100 synchronizes time with the field devices 90A, 90B and 90C connected via the network 110 (for example, EtherCAT (registered trademark)). More specifically, the control counter 119 of the CPU unit 100 and the counters 91A, 91B and 91C of the field devices 90A, 90B and 90C are time-synchronized with each other. In FIG. 12, the time conversion information 30 from the master is distributed to the field device 90B, but it may be distributed to other field devices.
  • EtherCAT registered trademark
  • the shared conversion table 35 element 31 "baseCount” and “baseTOD” are clocks in which the protocol of the network 110 is synchronized between devices (example: Distributed Clock (DC) in EtherCAT). It is a pair of the value and the corresponding TOD value.
  • DC Distributed Clock
  • the CPU unit 100 exchanges data with the functional unit 200 via the data bus 111 and communicates with a third unit connected to the network 110.
  • the synchronization processing unit synchronizes the counter 126 included in the CPU unit 100 with the control counter 91 included in the field device 90.
  • a counter 119 that is time-synchronized with the counter 126 is shown.
  • the field device 90 stores the time conversion information 30 delivered from the CPU unit 100.
  • the control counter can be synchronized between the CPU unit 100, the functional unit 200, and the field device 90, and the time conversion information 30 can be shared between the units.
  • FIG. 13 shows a case where the application queries the OS 27 for the current time
  • FIGS. 14 and 15 show a case where the application queries the conversion information management unit 215 for the current time.
  • the time manager 214 of the OS 27 returns the managed current time to the application as a response (step (2)).
  • the existing application can acquire the current time through a general interface, that is, the current time calculated from the time conversion information 30 shared by the conversion information management unit 215 between the units.
  • the conversion information management unit 215 when the application queries the conversion information management unit 215 for the current time (step (1)), the conversion information management unit 215 refers (reads) the current counter value from the control counter 213 (reads). Step (2)), the current time is calculated based on the conversion table 35 and the conversion formula 36 using the counter value as (currentCount) (step (3)), and the calculated current time is returned to the application as a response. (Step (4)).
  • the conversion information management unit 215 receives the inquiry, the current time is calculated using the counter value (currentCount) indicated by the counter 231. Therefore, the application can acquire the current time with high accuracy. ..
  • the conversion information management unit 215 internally holds the current counter value of the counter 213 and the current time calculated from the time conversion information 30, and appropriately updates the held current time (step (step (step)). 1)).
  • the conversion information management unit 215 receives an inquiry about the current time from the application (step (2))
  • the conversion information management unit 215 returns the calculated current time held as a response to the application (step (3)).
  • the conversion information management unit 215 even if the application makes inquiries frequently, the conversion information management unit 215 only returns the current time held (that is, it is not necessary to calculate the current time each time an inquiry is made. ), Frequent access to the hardware (for example, counter 213) by the conversion information management unit 215 can be avoided.
  • each unit may provide one of the methods according to the cases shown in FIGS. 13 to 15, or may provide a plurality of methods.
  • FIG. 16 is a diagram schematically showing a configuration in which the time conversion information 30 is shared according to the accuracy of the reference clock according to the present embodiment.
  • FIG. 16 shows, for example, two functional units 200 connected to the CPU unit 100 via the data bus 111.
  • the two functional units 200 are distinguished as the functional unit 200A and the functional unit 200B in FIG. 16, but these functional units have the same configuration.
  • the functional unit 200A communicates with an external time server that provides the master clock 191A.
  • FIG. 17 is a flowchart of processing when the accuracy of the reference clock according to the present embodiment satisfies a predetermined condition.
  • This reference clock corresponds to, for example, the master clock 191A
  • the master clock 191A is, for example, the ground master clock of the TSN provided by the apparatus / line management apparatus 190.
  • the synchronization processing unit 216 (FIG. 9) of the functional unit 200A of FIG. 16 implements a time synchronization protocol with the device / line management device 190 (step S1).
  • the synchronization processing unit 216 inquires about the current time (real time) of the master clock 191A (step S3), and receives the current time of the master clock 191A from the device / line management device 190 (step S5).
  • the synchronization processing unit 216 acquires the synchronization result 261 (FIG. 16) (step S7), and transmits the acquired synchronization result 261 to the CPU unit 100 (step S9).
  • the result 261 of this synchronization includes (counter value of counter 213 corresponding to the real time of master clock 191A).
  • the synchronization processing unit 114 (FIG. 9) of the CPU unit 100 receives the synchronization result 261 from the functional unit 200A (step S11), and analyzes the received synchronization result (step S13). In the analysis, the synchronization processing unit 114 compares the real time and the counter value of the synchronization result 261 with the values of "baseTOD" and "baseCount” in the conversion table 35, respectively, and based on the comparison result, the external real time. The counter value of the counter 126 (FIG. 9) is adjusted (corrected) so as to be synchronized with the progress of (step S15). The counter value after correction (addition or subtraction) is set in the counter 126.
  • the synchronization processing unit 114 determines the difference between the element 31 (baseCount, baseTOD) of the conversion table 35 currently held and the synchronization result 261 acquired this time for each of the time (TOD) and the counter value. calculate.
  • the calculated difference in TOD and the difference in counter value are the progress of the control counter 126 with respect to the master clock 191A, which is an external clock. It becomes a difference (advanced / delayed).
  • the synchronization processing unit 114 corrects the control counter of the controller so as to cancel the difference in the progress of the calculated control counter 126. In the correction, subtraction or addition is performed little by little over time so that the control during execution is not affected.
  • the correction may include the correction of the speed itself of the control counter 126.
  • the synchronization processing unit 114 and the synchronization processing unit 216 carry out the time synchronization processing described above (steps S17 and S19).
  • the time synchronization process triggered by the time synchronization signal 130 is similarly performed between the synchronization processing unit 216 of the functional unit 200B and the synchronization processing unit 114 of the CPU unit 100.
  • step S15 is not executed when the first time synchronization protocol is executed after the control system 1 is started. That is, the time conversion information 30 including the conversion formula 36 for calculating the difference is not yet stored in each unit. In this case, the CPU unit 100 updates the time conversion information 30 including the conversion formula 36 using the synchronization result 261 and distributes the updated time conversion information 30 to the unit group and shares it between the units.
  • the control counter 126 of the CPU unit 100 is corrected by using the synchronization result 261, that is, the counter 126 synchronizes with the master clock 191A, so that the control counter of each unit is master clocked. It can be synchronized with 191A.
  • the counter for control of each unit can be accurately synchronized with the master clock 191A (synchronization deviation can be reduced).
  • the control system 1 can acquire the real time from an external highly accurate clock (master clock 191A), and can operate the time of the entire system and a counter for control in synchronization with the actual time.
  • the process when the accuracy of the time managed by the master clock 191A does not satisfy the predetermined condition will be described with reference to FIG. 9 as appropriate.
  • the time conversion information 30 is updated according to the synchronization result 261.
  • the synchronization processing unit 216 (FIG. 9) of the functional unit 200A of FIG. 16 implements a time synchronization protocol with the device / line management device 190 (steps S1, S3, S5).
  • the synchronization processing unit 216 acquires the synchronization result 261 (FIG. 16) (step S7), and transmits the acquired synchronization result 261 to the CPU unit 100 (step S9).
  • the synchronization processing unit 114 (FIG. 9) of the CPU unit 100 receives the synchronization result 261 from the functional unit 200A (step S11).
  • the conversion information management unit 115 updates the time conversion information 30 based on the received synchronization result 261 (step S21), and transmits (delivers) the updated time conversion information 30 to the functional unit 200A (step S23).
  • the conversion information management unit 215 of the functional unit 200 receives the time conversion information 30 (step S25), and updates (overwrites) the original time conversion information 30 of the storage 208 with the received updated time conversion information 30 (step S25). Step S27).
  • the synchronization processing unit 114 and the synchronization processing unit 216 synchronize the counter 126 of the CPU unit 100 and the counter 213 of the functional unit 200 (steps S24 and S28).
  • step S21 above the conversion information management unit 115 analyzes the synchronization result 261 and updates the conversion table 35 and the current time of the RTC 128 based on the analysis result. This update is repeated (over time) using, for example, a small adjustment amount so that a large time change does not occur.
  • the conversion information management unit 115 uses the current counter value of the counter 126 to display the synchronization result 261 (time, counter corresponding to the time). Value).
  • the conversion information management unit 115 sets the time indicated by the synchronization result 261 and the counter value corresponding to the time in the conversion table 35 as “baseTOD” and “baseCount”, respectively, and updates the conversion table 35.
  • the counter synchronization process is executed after the time conversion information 30 is delivered, but the execution timing of the synchronization process is not limited to this.
  • the processing related to the update and sharing of the time conversion information 30 (steps S23, S25, S27) and the time synchronization processing triggered by the time synchronization signal 130 (steps S24, S28) are performed by the functional unit 200B and the CPU unit 100. It will be carried out in the same way.
  • the RTC 128 of the CPU unit 100 is synchronized with the time of the master clock 191A by using the synchronization result 261, that is, the counter 126 is synchronized with the master clock 191A.
  • the time acquired from the master clock 191A can be shared between the units by the time conversion process using the time conversion information 30 in each unit.
  • the functional unit 200B can communicate with an external server provided with the master clock 191. In that case, the functional unit 200B performs the same processing as the processing performed by the functional unit 200A (FIGS. 17 and 18). But it can be done.
  • FIG. 19 is a diagram showing a configuration example of the manufacturing execution system 400 according to the present embodiment.
  • the manufacturing execution system 400 is realized by using hardware (for example, a general-purpose personal computer) that follows a general-purpose architecture.
  • the manufacturing execution system 400 includes a processor 402, a main memory 404, an input unit 406, an output unit 408, a storage 410, an optical drive 415, and a USB controller for communicating with an external device. Includes 420 and network interface 413 connecting networks 13 and 14. These components are connected via the processor bus 418.
  • the processor 402 is composed of a CPU, a GPU, and the like, reads a program stored in the storage 410, expands it into the main memory 404, and executes it to realize various processes as described later.
  • the main memory 404 is composed of a volatile storage device such as DRAM or SRAM.
  • the storage 410 is composed of, for example, a non-volatile storage device such as an HDD or SSD.
  • the storage 410 in addition to the OS 412 for realizing the basic functions, various programs for providing the functions as the manufacturing execution system 400 are stored.
  • the various programs include a DB management program 411. Further, the storage 410 has an area for storing the time series DB 450.
  • the input unit 406 is composed of a keyboard, a mouse, and the like, and receives user operations on the manufacturing execution system 400.
  • the output unit 408 is composed of a display, various indicators, a printer, and the like, and outputs a processing result from the processor 402 and the like.
  • the manufacturing execution system 400 has an optical drive 415, and is composed of a recording medium 414 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores a computer-readable program.
  • a recording medium 414 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • the program stored in is read and installed in the storage 410 or the like.
  • FIG. 19 shows a configuration example in which the functions required for the manufacturing execution system 400 are provided by the processor 402 executing the program, and some or all of these provided functions are provided by dedicated hardware. It may be implemented using a hardware circuit (eg, ASIC or FPGA).
  • a hardware circuit eg, ASIC or FPGA.
  • FIG. 20 is a diagram showing a DB manager provided by executing the DB management program 411 of FIG.
  • the DB manager 451 provided by executing the DB management program 411 by the processor 402 manages the time series DB 450 (for example, DB generation, aggregation, editing, analysis, output, etc.). To do.
  • FIG. 21 and 22 are schematic views showing a processing example when the control device 2 according to the present embodiment transmits time series data to the manufacturing execution system 400.
  • FIG. 21 shows a case where the time synchronization process is not executed
  • FIG. 22 shows a case where the time synchronization process is performed.
  • 23 and 24 are diagrams schematically showing frames of time series data generated in the control device 2 according to the present embodiment.
  • FIG. 25 is a diagram schematically showing an example of the time series DB 450 according to the present embodiment.
  • FIG. 21 shows a configuration in which the control devices 2A and 2B are connected to the manufacturing execution system 400 via the upper network 13. In the configuration shown in FIG. 21, it is assumed that the time synchronization is not performed between the control device 2A and the control device 2B.
  • Each time series data includes the observed values collected by the control devices 2A and 2B and the time associated with each observed value. Conversely, in the configuration shown in FIG. 21, the control devices 2A and 2B can only add a time as information indicating the collection timing of each observed value. The time is managed by the control devices 2A and 2B, respectively, and the time synchronization is incomplete.
  • the times do not completely match between the time-series data collected by the manufacturing execution system 400, so that the DB manager 451 aggregates (that is, integrates) the respective time-series data at the exact timing. ) Cannot be done.
  • the control device 2A and the control device 2B are provided with the time-synchronized counter described above and the time converted by the time conversion information 30.
  • the time series data frames transmitted from the control devices 2A and 2B are associated with the observation values collected in the steps 3A and 3B, and the time indicating the timing of collecting each observation value (for example, time conversion).
  • the time converted in the information 30) and the counter value can be included. Examples of these frames are shown in FIGS. 23 and 24.
  • FIG. 23 shows a frame of time-series data transmitted from the control device 2A to the time-series DB 450
  • FIG. 24 shows a frame of time-series data transmitted from the control device 2B to the time-series DB 450.
  • the DB manager 451 can adjust the timing of the observed value included in the time series data by using the counter value or the time of the time series data of the frame received from each of the control devices 2A and 2B. That is, the DB manager 451 aggregates the observed values collected by the different control devices 2 (different processes) with the time axes almost completely matched, and the aggregated data is as shown in FIG. 25. , Stored as line data in the time series DB450. The line data stored in the time series DB 450 is used, for example, for analysis of observed values.
  • each unit (functional unit 200, CPU unit 100, functional unit 300, field device 90) uses an existing control counter provided in the own unit to synchronize the time with the master clock 191A and to synchronize the time with the master clock 191A. Time synchronization between units can be realized. In this case, each unit does not need to implement and execute a special time reference protocol (eg, a costly protocol with a mechanism to compensate for fluctuations in the time required for communication).
  • a special time reference protocol eg, a costly protocol with a mechanism to compensate for fluctuations in the time required for communication.
  • any one of the units in which the control counters are synchronized with each other establishes a time synchronization relationship with the external master clock 191A. All units that are time-synchronized with each other can share the same time (time of master clock 191A).
  • the "counter value" can be made independent from the time of the master clock 191A thereafter.
  • the control system 1 Even if there are changes in the configuration and environment related to the control system 1, such as the presence or absence of an external time server, the time management accuracy of the time server is low, and the discontinuous change of the time provided by the time server, the control system 1 Then, the control counters of each unit can be maintained in a state of time synchronization with each other. This makes it possible to maintain a stable control operation in the control system 1.
  • Factory automation control system (1) The first unit (100) and the second unit (200) that exchange data, A synchronization means (115, 215,) that uses a clock (191A, 128) to synchronize the control counter (126) included in the first unit with the control counter (213) included in the second unit. 370) and Each unit A control system including information storage means (108, 2018) for storing information (30) related to conversion for calculating a time from a counter value of the counter of the unit, which is information shared between units.
  • the information regarding the conversion includes the difference between the counter value and the reference counter value of each unit, and the conversion formula (36) for converting the actual time from the reference time corresponding to the reference counter value.
  • the control system according to any one of configurations 2 to 4, wherein the reference time includes the time of the clock.
  • One of the units comprises management means (115, 215) for managing the conversion information shared with the other unit.
  • the control system according to configuration 5, wherein the control means updates shared information about the conversion in response to the clock used to synchronize the control counter.
  • the management means When the accuracy of the time managed by the external clock does not satisfy a predetermined condition, the conversion formula is applied to the reference counter value and the reference time, respectively, and the counter value corresponding to the counter value and the counter value of the one unit, respectively.
  • the control system according to configuration 6, which updates so that the time of the internal clock is set.
  • the first unit exchanges data with the second unit via the data bus (111).
  • the control system includes a third unit (90) connected to the one unit by a network (110).
  • the synchronization means further The counter included in the one unit and the control counter (91) included in the third unit are synchronized with each other.
  • the third unit is The control system according to any one of configurations 2 to 7, which stores information related to the conversion shared between units.
  • the control system according to configuration 10 The control system according to configuration 10, wherein the conversion is performed when the inquiry is received.
  • Each of the above units Stores the converted time and The control system according to configuration 10 or 11, wherein the response includes the converted time stored.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

従来の制御用のカウンタを用いて時刻を利用可能な構成を提供する。ファクトリオートメーションの制御システムは、データを遣り取りする第1のユニット(100)および第2のユニット(200)と、クロック(191A)を用いて、第1のユニットが備える制御用のカウンタ(126)と第2のユニットが備える制御用のカウンタ(213)とを同期させる同期手段と、を備え、各ユニットは、ユニット間で共有される情報であって、当該ユニットのカウンタのカウンタ値から時刻を算出する換算に関する情報(30)を格納する。

Description

制御システム
 本開示は、FA(Factory Automation)の制御システムに関する。
 様々な生産現場において、PLC(プログラマブルロジックコントローラ)などの制御装置を用いたFA技術が広く普及している。従来は、FAの制御システムにおいて実時刻を管理する時計の精度が高くなかったので、時計とは別に制御用のカウンタが実装されていたが、実時刻を管理する高精度な時計が利用可能になりつつある。このような利用方法として、制御用のカウンタを実時刻に同期させる仕組みが提案されている。
 例えば、特開2018-190216号公報(特許文献1)は、PLCが内部クロックを備え、時刻サーバからグローバル時刻を取得し、内部クロックを取得したグローバル時刻に同期させる構成を開示する。
特開2018-190216号公報
 制御システムにおいて管理可能な実時刻の精度は上がりつつあるが、その一方で、制御用のカウンタは従来のものを利用しつつ、制御システムにおいて高精度な時刻を利用したいとの要望がある。
 本開示の目的は、従来の制御用のカウンタを用いて、制御システムの環境または運用において利用可能な精度を有した時刻を提供することである。
 この開示にかかる制御システムは、ファクトリオートメーションの制御システムであって、データを遣り取りする第1のユニットおよび第2のユニットと、クロックを用いて、第1のユニットが備える制御用のカウンタと第2のユニットが備える制御用のカウンタとを同期させる同期手段と、を備え、各ユニットは、ユニット間で共有される情報であって、当該ユニットのカウンタのカウンタ値から時刻を算出する換算に関する情報を格納するための情報格納手段を備える。
 上述の開示によれば、換算に関する情報を用いてカウンタ値から時刻を算出することによって、従来の制御用のカウンタを用いながら、制御システムの環境または運用において利用可能な精度を有した時刻を提供することができる。
 上述の開示において、クロックは、ユニット外の外部クロックまたは第1のユニットおよび第2のユニットのうちの一方のユニットが備える内部クロックを含む。
 上述の開示によれば、ユニット間のカウンタを同期させるためのクロックとして、外部クロックまたはユニットの内部クロックを利用できる。これにより、制御システムは、外部クロックまたはユニットの内部クロックの精度を有した、すなわち制御システムの環境または運用において利用可能な精度を有した時刻を提供することができる。
 上述の開示において、同期手段は、外部クロックが管理する時刻の精度が所定条件を満たすとき、第1のユニットおよび第2のユニットの互いに同期するカウンタの値を、外部クロックの時刻に合わせて調整する。
 上述の開示によれば、外部クロックの精度が所定条件を満たす、例えば精度が高い場合は、第1のユニットおよび第2のユニットの互いに同期するカウンタの値は、外部クロックの時刻に合わせて調整されることで、カウンタのカウンタ値を外部クロックに同期させることができる。
 上述の開示において、同期手段は、外部クロックが管理する時刻の精度が所定条件を満たさないとき、内部クロックが管理する時刻を基準として、第1のユニットおよび第2のユニットのカウンタを同期させる。
 上述の開示によれば、外部クロックの精度が所定条件を満たさない、例えば精度が低い場合は、第1のユニットおよび第2のユニットの互いに同期するカウンタの値は、ユニットが備える内部クロックの時刻を基準に同期させることができる。
 上述の開示において、換算に関する情報は、各ユニットのカウンタ値と基準カウンタ値との差と、基準カウンタ値に対応する基準時刻から実時刻を換算するための換算式を含み、基準時刻は、クロックの時刻を含む。
 上述の開示によれば、各ユニットは、基準カウンタ値、これに対応するクロックの時刻および当該ユニットのカウンタ値を用いて、換算式から時刻を算出することができる。
 上述の開示において、一方のユニットは、他のユニットと共有される換算に関する情報を管理する管理手段を備え、管理手段は、制御用のカウンタの同期に用いるクロックに応じて、共有される換算に関する情報を更新する。
 上述の開示によれば、管理手段は、ユニット間で共有される換算に関する情報を、カウンタの同期に用いるクロックに応じて更新することができる。例えば、クロックが外部クロックであれば、すなわち外部クロックの時刻の管理の精度が所定条件を満たす場合は、換算に関する情報は更新されずに固定のままであるが、当該精度が所定条件を満たさない場合は、換算に関する情報を内部クロックの時刻に基づき更新する。
 上述の開示において、管理手段は、外部クロックが管理する時刻の精度が所定条件を満たさないとき、換算式を、基準カウンタ値および基準時刻に、それぞれ、一方のユニットのカウンタ値および当該カウンタ値に対応する内部クロックの時刻が設定されるように更新する。
 上述の開示によれば、換算式を、カウンタの同期に用いる内部クロックの時刻と対応するカウンタ値を設定することで更新できる。
 上述の開示において、第1のユニットは、データバスを介して第2のユニットとデータを遣取りし、制御システムは、一方のユニットにネットワーク接続される第3のユニットを備え、同期手段は、さらに、一方のユニットが備えるカウンタと第3のユニットが備える制御用のカウンタとを同期させ、第3のユニットは、ユニット間で共有される換算に関する情報を格納する。
 上述の開示によれば、カウンタの同期の構成および換算に関する情報に基づく時刻の換算の構成を、ネットワーク上のユニットにも展開することができる。
 上述の開示において、換算に関する情報は、カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を含む。
 上述の開示によれば、換算に関する情報を介して、各ユニットに、カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を提供することができる。
 上述の開示において、各ユニットは、共有される換算に関する情報に従い、カウンタのカウンタ値から時刻を算出し、アプリケーションから受付ける時刻の問合せに対し、算出された時刻を含む応答を出力する。
 上述の開示によれば、ユニットにおいてはアプリケーションが、換算された時刻を参照(問合せ)する構成を提供することができる。
 上述の開示において、問合せを受付けたとき換算を実施する。
 上述の開示によれば、アプリケーションに、換算された時刻を提供する構成として、問合せ毎に換算を実施する構成を提供できる。したがって、アプリケーションは、最新の換算値(時刻)を取得できる。
 上述の開示において、各ユニットは、換算された時刻を格納し、応答は、格納されている換算された時刻を含む。
 上述の開示によれば、アプリケーションからの問合せの都度、換算を実施するのではなく、その時に格納されている(既に換算された)時刻を提供することができる。したがって、問合せの都度、換算を実施する必要はないので、換算に係る負荷を低減できる。
 本開示によれば、従来の制御用のカウンタを用いて、制御システムの環境または運用において利用可能な精度を有した時刻を提供できる。
本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。 本実施の形態に従う制御システム1のネットワーク構成例を示す模式図である。 本実施の形態に従う制御システム1のデータ通信処理を示す模式図である。 本実施の形態に係る制御装置2のユニットの構成例を示す模式図である。 本実施の形態に係る制御装置2が備えるCPUユニット100のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置2が備える機能ユニット200のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置2が備える機能ユニット300のハードウェア構成例を示すブロック図である。 本実施の形態に係るCPUユニット100のソフトウェア構成例を示すブロック図である。 本実施の形態に係る制御装置2が管理する時刻同期のための構成の一例を模式的に示す図である。 本実施の形態に係る時刻換算情報30の一例を模式的に示す図である。 本実施の形態に係る時刻換算情報30を共有する構成の一例を模式的に示す図である。 本実施の形態に係る時刻換算情報30を共有する構成の他の例を模式的に示す図である。 本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。 本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。 本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。 本実施の形態に係る基準クロックの精度に応じて時刻換算情報30を共有する構成を模式的に示す図である。 本実施の形態に係る基準クロックの精度は所定条件を満たす場合の処理のフローチャートである。 本実施の形態に係る基準クロックの精度は所定条件を満たさない場合の処理のフローチャートである。 本実施の形態に係る製造実行システム400の構成例を示す図である。 図19のDB管理プログラム411が実行されることで提供されるDBマネージャーを示す図である。 本実施の形態に係る制御装置2が製造実行システム400に時系列データを送信する場合の処理例を示す模式図である。 本実施の形態に係る制御装置2が製造実行システム400に時系列データを送信する場合の処理例を示す模式図である。 本実施の形態に係る制御装置2において生成される時系列データのフレームを模式的に示す図である。 本実施の形態に係る制御装置2において生成される時系列データのフレームを模式的に示す図である。 本実施の形態に係る時系列DB450の一例を模式的に示す図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。図9は、本実施の形態に係る制御装置2が管理する時刻同期のための構成の一例を模式的に示す図である。ファクトリオートメーションの制御システムは、複数の制御装置を備える。この制御装置は、例えばPLCに相当する。制御装置は、データを遣り取りする第1のユニット(CPUユニット100)および第2のユニット(機能ユニット200)を備える。制御システムは、クロックを用いて、第1のユニットが備える制御用のカウンタ126と第2のユニットが備える制御用のカウンタ213とを同期させる同期処理部(同期処理部216、同期処理部114)を備える。各ユニットは、ユニット間で共有される情報であって、当該ユニットが備えるカウンタのカウンタ値から時刻を換算するための換算に関する時刻換算情報30を格納している。時刻換算情報30は、換算情報管理部115(換算情報管理部215)によって、ユニット間で共有されるように、当該時刻換算情報30の配信が実施される。
 したがって、制御システムは、ユニット間で制御用のカウンタ同士を同期させる構成と、同期したカウンタのカウンタ値から時刻を算出する換算に関する時刻換算情報30をユニット間で共有する構成とを備える。これら両方の構成を備えることで、制御システムでは、各ユニットが備える制御用のカウンタは従来のものを用いて、ユニット間で同期した時刻を提供する仕組みを実現することができる。
 カウンタの同期に用いるクロックには、ユニット外の外部クロックであるマスタクロック191Aまたは第1のユニットおよび第2のユニットのうちの一方のユニットが備える内部クロック(例えばCPUユニット100が備えるRTC(Real Time Clock)128)を含めることができる。したがって、制御システムでは、システムが利用可能なクロックを用いた時刻、すなわち利用可能な環境および運用における精度を有した時刻を提供することが可能となる。これにより、制御システムは、当該システムの環境または運用に柔軟に対応し得る時刻を提供することが可能となる。
 以下、本実施の形態のより具体的な応用例について説明する。
 以下の説明においては、「制御装置」の典型例として、PLCを説明するが、PLCの名称に限定されることなく、本明細書に開示された技術思想は、任意の制御装置に対して適用可能である。また、PLC(制御装置)を含むシステム全体を、以下では「制御システム」とも称する。
 <B.制御システムの全体構成>
 まず、本実施の形態に従うFAに適用され得る制御システムの全体構成について説明する。図1は、本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。
 図1を参照して、制御システム1では、ネットワークが複数レベルに接続されており、各レベルのネットワークには、それぞれ異なる機能が割り当てられる。具体的には、限定されないが、例えば4つのレベルのネットワーク11~14が設けられている。
 ネットワーク11は、コントロールレベルのネットワークである。ネットワーク11は、複数の制御装置2A、2Bおよび2C(以下、「制御装置2」と総称することもある。)と、装置/ライン管理装置190よびSCADA(Supervisory Control And Data Acquisition)機能を提供する表示装置280とが接続されており、ネットワーク11では装置間でデータを遣り取りできるデータリンクが形成される。装置/ライン管理装置190および表示装置280は、ネットワークに接続される装置および生産ラインを管理する機器に相当する。ネットワーク11は、主として、制御系に係る情報の伝送を主たる機能として提供する。
 制御装置2には、例えばセンサ、アクチュエータといった各種のフィールド機器90が接続される。これらのフィールド機器90は、制御装置2に装着される入出力ユニットを介して制御装置2に直接接続される場合もあるが、ネットワーク110を介して制御装置2に接続されることもある。図1では、制御装置2は、1または複数のネットワーク110に接続される。各ネットワーク110には、1または複数のフィールド機器90が接続される。1または複数のフィールド機器90の各々は、製造装置または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。したがって、図1に示す制御システム1では、ネットワーク11~14の4つのレベルに加えて、フィールドレベルのネットワーク110がさらに追加されている。
 ネットワーク110を介して、制御装置2とフィールド機器90との間で遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
 ネットワーク12は、管理レベルのネットワークとして提供される。ネットワーク12には、装置およびラインを管理する装置/ライン管理装置190、製造計画等を管理する製造管理装置380および390が接続される。装置/ライン管理装置190、製造管理装置380および390は、ネットワーク12を介して、製造計画等の管理情報の遣り取り、および装置またはラインの情報を遣り取りする。
 ネットワーク13は、コンピュータレベルのネットワークとして提供される。ネットワーク13には、製造管理装置380および390、ならびに時系列DB(データベースの略)450を管理する製造実行システム(MES:Manufacturing Execution System)400が接続される。製造管理装置380および390、ならびに製造実行システム400は、ネットワーク13を介して、生産管理および情報系のデータを遣り取りする。
 製造実行システム400は、ネットワーク13を介して収集するフィールド機器90からの入力値である観測値を、観測された順番に従う時系列のデータとして時系列DB450に格納する。
 具体的には、本実施の形態では、制御装置2は、指定された観測値を含むフレームを生成する機能を有する。制御装置2は、生成されるフレームをネットワーク11,12および13を介して製造実行システム400に転送する。製造実行システム400は、制御装置2から受信した観測値のフレームを時系列に従い時系列DB450に格納する。
 本実施の形態では、時系列DB450に格納されるデータを「時系列データ」とも称す。本実施の形態において、「時系列データ」は、任意の対象についてのデータ(観測値)の時間的な変化を連続的(あるいは、一定間隔をおいて不連続)に観測して得られる一連の値を意味する。
 本明細書において「観測値」は、制御装置2での制御演算において利用可能な値(実値)を総称する概念であり、典型的には、制御対象から取得されて制御演算に入力される値(フィールドから取得された測定値など)、取得された入力値に基づいて制御演算によって決定される制御対象に対する出力値(フィールドへ与えられる指令値など)、制御演算の過程において算出される演算値(任意の変数値)などを含み得る。すなわち、「観測値」は、制御装置2においてデータとして格納できる、あるいは、制御装置2からデータとして外部出力できる任意の値を包含するものである。
 ネットワーク14は、インターネットなどの外部ネットワークを含む。ネットワーク14には、製造実行システム400とクラウド上の外部装置などが接続される。製造実行システム400は、クラウド上の装置とデータを遣り取りすることにより、時系列DB450のデータをクラウド上の装置に転送する。
 制御装置2は、サポート装置500が接続され得る。サポート装置500は、制御装置2が制御対象を制御するために必要な準備を支援する装置である。サポート装置500は装置/ライン管理装置190にも接続され得る。
 制御システム1のネットワーク11に接続される制御装置2A、2Bおよび2Cは、それぞれ、異なる工程3A、3Bおよび3Cに備えられる。限定されないが、例えば、工程3Aは製品(ワーク)の組立工程を示し、工程3Bは組立てられた製品の塗装工程を示し、工程3Cが塗装された製品の検査工程を示す。
 図1に示す制御システム1において、ネットワーク12およびそれ以下のレベルにあるネットワーク11およびネットワーク110は、「ファクトリーネットワーク」とも称され、機器を現実に制御するためのデータ(以下、「制御系データ」と総称することもある)を遣り取りする制御系通信を提供する。一方、ネットワーク13およびそれ以上のレベルにあるネットワーク14は、「コーポレートネットワーク」とも称され、生産ライン/工場での生産活動などを監視・管理・制御するためのデータ(以下、「情報系データ」と総称することもある)を遣り取りする情報系通信を提供する。
 ネットワーク11~14およびネットワーク110には、このような要求される特性の違いに応じたプロトコルおよびフレームワークが採用される。例えば、ファクトリーネットワークに属するネットワーク11および12のプロトコルとしては、汎用的なEthernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)を用いてもよい。また、ネットワーク110のプロトコルとしては、マシンコントロール用ネットワークの一例であるEtherCAT(登録商標)を採用してもよい。なお、ネットワーク11のプロトコル(第1のプロトコル)とネットワーク110のプロトコル(第2のプロトコル)とは、同じであってもよいし、異なっていてもよい。このようなマシンコントロールに適したネットワーク技術を採用することで、機器間の伝送に要する時間が保証されたリアルタイム性を提供できる。
 これに対して、コーポレートネットワークに属するネットワーク13および14のプロトコルとしては、接続先の多様性を担保するために、汎用的なEthernetなどが用いられる。汎用的なEthernetを採用することで、送信可能なデータ量などの制限を排除できる。
 <C.制御システム1における時刻同期>
 図1に示すファクトリーネットワークにおいては、ネットワーク11に接続される複数の制御装置2A,2Bおよび2Cの各々は、ネットワーク110を介して接続される1または複数のフィールド機器90とのデータを送受信する。具体的には、制御装置2は、フィールド機器90において収集または生成されたデータ(入力データ)を収集する処理(入力処理)、フィールド機器90に対する指令などのデータ(出力データ)を生成する処理(演算処理)および、生成した出力データを対象のフィールド機器90へ送信する処理(出力処理)などを実行する。
 ネットワーク110では、データの到着時間が保証される必要がある。そのため、制御装置2は、データ伝送のタイミングを規定する、データが送受信される主体(すなわち、1または複数のフィールド機器90)の間で互いに時刻同期されたタイマを有している。
 しかしながら、複数の制御装置2の間で時刻同期がとれていない場合には、例えば、1つの制御装置2に接続されるフィールド機器90と、別の制御装置2に接続されるフィールド機器90との間は時刻同期させることができない。その結果、入出力リフレッシュ処理のタイミングが一致しない場合が生じ得るため、互いに異なる制御装置2に接続される複数のフィールド機器90を連係して動作させることが困難となる。
 そこで、本実施の形態に従う制御システム1においては、複数の制御装置2の各々が有するタイマを互いに時刻同期させる。これにより、互いに異なる制御装置2に接続される、すなわち異なる工程間において複数のフィールド機器90の協調制御を実現する。
 以下、本実施の形態に係る制御システム1が提供する時刻同期機能について説明する。
 (c1.ネットワーク構成例)
 次に、本実施の形態に従う制御システム1のネットワーク構成例について説明する。図2は、本実施の形態に従う制御システム1のネットワーク構成例を示す模式図である。
 図2に示す制御システム1は、複数の制御装置2A,2Bおよび2Cと、複数のフィールド機器90A~90Iとを備える。制御システム1は、一例として、少なくとも一部の制御装置がデイジーチェーン接続のネットワークを採用する。制御装置2A,2Bおよび2Cの各々は、対応するネットワーク110内のデータ伝送を管理するマスタとして機能する。フィールド機器90A~90Iは、対応するマスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。
 制御装置2A,2Bおよび2Cは、コントロールレベルのネットワーク11(上位のネットワーク)に接続されている。ネットワーク11には、例えば装置/ライン管理装置190が接続されている。
 制御装置2Aに接続されるネットワーク110には、フィールド機器90A、90Bおよび90Cがデイジーチェーンで順次接続されており、制御装置2Bに接続されるネットワーク110には、フィールド機器90D、90Eおよび90Fがデイジーチェーンで順次接続されており、制御装置2Cに接続されるネットワーク110には、フィールド機器90G、90Hおよび90Iがデイジーチェーンで順次接続されている。
 ネットワーク110内において、制御装置2および1または複数のフィールド機器90は、いずれもデータ伝送機能を有する通信装置とみなすことができる。図2に示す例においては、制御装置2および1または複数のフィールド機器90の各々は、隣接して接続されているある通信装置から、ネットワーク上を伝送されるデータを受信すると、当該データを必要に応じて、隣接して接続されている別の通信装置へ伝送する機能を有している。
 本実施の形態に従う制御システム1において、ネットワーク110に接続される複数の通信装置、すなわち制御装置2および1または複数のフィールド機器90の間では、送受信タイミングが同期されている(図中の時刻同期(3)に相当)。具体的には、制御装置2および1または複数のフィールド機器90の各々は、互いに時刻同期されたタイマ(あるいは、同期してインクリメントまたはデクリメントされるカウンタ)を備える。制御装置2および1または複数のフィールド機器90の各々は、それらの時刻同期されたタイマまたはカウンタに従って、データの送信または受信のタイミングを決定する。
 なお、本実施の形態では「タイミング」は何らかの事象が生じる時期、時間または時刻の概念を表す。また、「時刻同期」とはお互いが有するタイマ,時間データ等を同期させることを示す。
 図2を参照して、制御装置2Aはタイマ102Aを備え、フィールド機器90A、90Bおよび90Cはそれぞれタイマ91A、91Bおよび91Cを備える。制御装置2Aのタイマ102Aがマスタとして機能し、フィールド機器90A、90Bおよび90Cのタイマ91A、91Bおよび91Cがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Aのタイマ値に基づく値が、タイマ91A、91Bおよび91Cに設定される。
 制御装置2Bはタイマ102Bを有しており、フィールド機器90D、90Eおよび90Fはタイマ91D、91Eおよび91Fをそれぞれ有している。制御装置2Bのタイマ102Bがマスタとして機能し、フィールド機器90D、90Eおよび90Fのタイマ91D、91Eおよび91Fがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Bのタイマ値に基づく値が、タイマ91D、91Eおよび91Fに設定される。
 制御装置2Cはタイマ102Cを有しており、フィールド機器90G、90Hおよび90Iはタイマ91G、91Hおよび91Iをそれぞれ有している。制御装置2Cのタイマ102Cがマスタとして機能し、フィールド機器90G、90Hおよび90Iのタイマ91G、91Hおよび91Iがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Cのタイマ値に基づく値が、タイマ91G、91Hおよび91Iに設定される。
 すなわち、制御装置2A,2Bおよび2Cの各々は、対応のネットワーク110内のデータ伝送を管理するマスタとして機能し、各制御装置2に接続されるフィールド機器90は、マスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。マスタとスレーブとの間でタイマを互いに時刻同期させることにより、ネットワーク110を構成する制御装置2とフィールド機器90との間でデータの伝送タイミングなどを互いに一致させることができる。
 図2に示す例において、制御装置2Aは、さらに、タイマ102Aと時刻同期されたタイマ101Aを有している。制御装置2Bは、さらに、タイマ102Bと時刻同期されたタイマ101Bを有している。制御装置2Cは、さらに、タイマ102Cと時刻同期されたタイマ101Cを有している(図中の時刻同期(2)に相当)。制御システム1においては、例えば、タイマ101A、101Bおよび101Cのいずれかを、制御システム1全体のマスタとして機能させることができる。
 一例として、図2では、制御装置2Aのタイマ101Aがマスタに設定され、制御装置2B,2Cのタイマがこのマスタに時刻同期する。これにより、複数の制御装置2A,2Bおよび2Cの間で、互いに時刻同期させることができる(図中の時刻同期(1)に相当)。
 このように、複数の制御装置2A,2Bおよび2Cの各々は、複数の制御装置2A,2Bおよび2Cの間で互いに時刻同期された装置間タイマ(タイマ101A、101Bおよび101C)と、ネットワーク110を介して接続される1または複数のフィールド機器90と時刻同期された機器間タイマ(タイマ102A、102Bおよび102C)とを有しており、装置間タイマと機器間タイマとは互いに時刻同期している。この結果、制御装置2Aおよびフィールド機器90A、90Bおよび90Cの間で時刻同期された機器間タイマ(タイマ102A)と、制御装置2Bおよびフィールド機器90D、90Eおよび90Fの間で時刻同期された機器間タイマ(タイマ102B)と、制御装置2Cおよびフィールド機器90G、90Hおよび90Iの間で時刻同期された機器間タイマ(タイマ102C)とが互いに時刻同期することになる。
 なお、図2には、いずれかの制御装置2のタイマをマスタとして設定する構成例について説明したが、ネットワーク11を介して外部から取得する時刻をマスタとしてもよく、または装置/ライン管理装置190などの外部装置のタイマをマスタとしてもよい。
 (c2.時刻同期したデータ通信)
 図3は、本実施の形態に従う制御システム1のデータ通信処理を示す模式図である。図3を参照して、ネットワーク110に接続される制御装置2Aと複数のフィールド機器90A、90Bおよび90Cとの間では、予め定められたシステム周期に従って、データが遣り取りされる。
 制御装置2Bと複数のフィールド機器90D、90Eおよび90Fとの間、および、制御装置2Cと複数のフィールド機器90G、90Hおよび90Iとの間においても、システム周期に従って、データが遣り取りされる。このようなデータの遣り取りによって、制御装置2およびフィールド機器90の制御動作が実現される。以下の説明では、ネットワーク110上の通信を「下位ネットワーク(NW)通信」とも称する。
 上位のネットワーク11に接続される制御装置2A,2Bおよび2Cの間では、予め定められたシステム周期に従って、各制御装置2が入力処理によってフィールド機器90から収集したデータ、演算処理によって生成した出力データなどが遣り取りされる。このようなデータの遣り取りによって、制御装置2Aに接続されるフィールド機器90、制御装置2Bに接続されるフィールド機器90および制御装置2Cに接続されるフィールド機器90を連係して動作させることができる。すなわち、異なる工程間でフィールド機器90を連係して動作させることができる。以下の説明では、ネットワーク11上の通信を「上位のネットワーク(NW)通信」とも称する。
 本実施の形態に従う制御システム1においては、下位ネットワーク通信におけるデータの伝送を開始すべきタイミングは、複数の制御装置2A,2Bおよび2Cの間で互いに時刻同期されているタイマに基づいて決定される。これにより、複数の制御装置2A,2Bおよび2Cの間では、フィールド機器90との間でデータを遣り取りするタイミングなどを互いに一致させることができるため、結果的に、異なる工程間でフィールド機器90の制御タイミングを同期させることができる。
 <D.制御装置2の構成と時刻同期>
 図4は、本実施の形態に係る制御装置2のユニットの構成例を示す模式図である。図4を参照して、制御システム1が備える制御装置2は、CPU(Central Processing Unit)のユニット100(以下、CPUユニット100と称する)、1または複数の機能ユニット200、および1または複数の機能ユニット300を含む。図4では、制御装置2が備える機能ユニット300は4台としているが、1台以上であれば4台に限定されず、また制御装置2が備える機能ユニット200は2台としているが、1台以上であれば2台に限定されない。CPUユニット100は、1または複数の機能ユニット200を、データバス111と信号線113を介して接続する。また、CPUユニット100は、1または複数の機能ユニット300を、データバス112を介して接続する。
 データバス111は、限定されないが、例えばPCIe(PCI Express(ピーシーアイエクスプレス))に従うI/Oシリアルインタフェースのバスである。信号線113は、光ファイバケーブルまたは電気的な信号ケーブルであり、トリガ信号である後述する時刻同期信号130を伝送する。
 CPUユニット100は、制御対象に応じて作成されたプログラムを実行するプログラム実行部を有している。より具体的には、CPUユニット100は、システムプログラムおよび各種のユーザプログラムを実行する演算処理部に相当する。
 機能ユニット200は、通信処理または情報処理を実施する。機能ユニット200は、データバス111を接続するインターフェイスおよび信号線113を接続する信号ポート212Pを備える。機能ユニット200はネットワーク11と制御装置2との間を仲介するように配置されることで、CPUユニット100は、機能ユニット200を介して、ネットワーク11に接続されたデバイスとの間でデータ通信を行うことができる。また、CPUユニット100の信号ポート110Pと機能ユニット200の信号ポート212Pとの間に信号線113が接続されることで、CPUユニット100および機能ユニット200は信号線113を介して時刻同期信号130を受信する。
 本実施の形態において、機能ユニット200は、CPUユニット100に対するネットワーク14等のインターネットからのアクセス、および、ネットワーク11内の他の装置からのCPUユニット100に対するアクセスを監視するとともに、何らかのセキュリティ事象の発生を検知すると、制御装置2の内部または外部へ当該検知したセキュリティ事象に係る通知を行う。なお、機能ユニット200が実施する情報処理は、セキュリティ監視処理に限定されない。
 機能ユニット300は、フィールド機器90等の制御対象の設備および装置、ならびに、それらに配置されている各種デバイス(センサやアクチュエータなど)との間で信号を遣り取りする、いわゆるI/Oユニットの機能を備える。具体的には、機能ユニット300は、CPUユニット100において算出される指令値をフィールドへ出力、あるいは、フィールドからの入力値を収集する。機能ユニット300としては、例えば、制御対象からのデジタル信号を受取るDI(Digital Input)モジュール、制御対象に対してデジタル信号を出力するDO(Digital Output)モジュール、制御対象からのアナログ信号を受取るAI(Analog Input)モジュール、制御対象に対してアナログ信号を出力するAO(Analog Output)モジュールのうち1または複数のモジュールを有している。さらに、機能ユニット300としては、PID(Proportional Integral Derivative)制御やモーション制御といった特殊機能を実装したコントローラを含み得る。
 機能ユニット200または機能ユニット300は、CPUユニット100に対して、着脱自在に外付けされ得る拡張ユニットとして提供され得る。
 (d1.CPUユニット100の構成)
 図5は、本実施の形態に係る制御装置2が備えるCPUユニット100のハードウェア構成例を示すブロック図である。
 CPUユニット100は、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ105と、USB(Universal Serial Bus)コントローラ107と、メモリカードインターフェイス109と、ローカルバスコントローラ120,122と、フィールドネットワークコントローラ118と、カウンタ126と、RTC(Real Time Clock)128と、信号ポート110Pを含む。
 プロセッサ102は、CPU、MPU(microprocessor unit)、GPU(Graphics Processing Unit)などで構成され、二次記憶装置108に格納された各種プログラムを読出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。二次記憶装置108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。主記憶装置106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。
 チップセット104は、プロセッサ102と各デバイスを制御することで、CPUユニット100全体としての処理を実現する。
 二次記憶装置108には、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラムが格納される。さらに、二次記憶装置108には、時刻換算情報30が格納される。時刻換算情報30は、各ユニットが備えるカウンタの値から時刻(実時間)を算出するための換算に関する情報を示す。また、二次記憶装置108には、後述するような時系列データベースも格納される。なお、時刻換算情報30を格納するデバイスは、二次記憶装置108に限定されず、主記憶装置106に格納されてもよい。
 上位ネットワークコントローラ105は、上位のネットワーク11を介して、製造実行システム400またはクラウド上の装置(図1参照)などとの間のデータを遣り取りする。USBコントローラ107は、USB接続を介してサポート装置500との間のデータの遣り取りを制御する。
 メモリカードインターフェイス109は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
 カウンタ126は、CPUユニット100における各種処理の実行タイミングを管理するための時刻基準として用いられる。カウンタ126は、典型的には、所定周期毎にカウンタ値をインクリメントまたはデクリメントする。カウンタ126として、プロセッサ102を駆動するシステムバス上に配置された、ハードウェアタイマーである高精度イベントタイマー(HPET:High Precision Event Timer)などを用いて実装してもよいし、あるいは、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用回路を用いて実装してもよい。
 RTC128は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ102などへ提供する。
 ローカルバスコントローラ122は、CPUユニット100に接続され得る機能ユニット300-1,300-2,…との間でデータを遣り取りするインターフェイスである。ローカルバスコントローラ122は、データバス112を介して接続される他のデバイスである、機能ユニット300-1,300-2,…との間でタイミングを管理するための時刻基準として用いられるカウンタ124を有している。同様に、機能ユニット300-1,300-2,…の各々も、ローカルバスコントローラ122および他の機能ユニット300との間でタイミングを管理するための時刻基準として用いられるカウンタ125を有している。カウンタ124およびカウンタ125については、上述のカウンタ126と同様の構成を採用できる。
 フィールドネットワークコントローラ118は、ネットワーク110を介したフィールド機器90を含む他のデバイスとの間のデータの遣り取りを制御する。フィールドネットワークコントローラ118は、他のデバイスとの間でタイミングを管理するための時刻基準として用いられるカウンタ119を有している。図5では、フィールド機器90のタイマ91をカウンタ91A、91B…で示される。
 ローカルバスコントローラ120は、CPUユニット100に接続され得る機能ユニット200-1,200-2,…との間でデータを遣り取りするインターフェイスである。ローカルバスコントローラ120は、データバス111を介して接続される他のデバイスである、機能ユニット200-1,200-2,…との間でタイミングを管理するための時刻基準として用いられるカウンタ121を有している。同様に、機能ユニット200-1,200-2,…の各々も、ローカルバスコントローラ120との間でタイミングを管理するための時刻基準として用いられるカウンタ213を有している。カウンタ121およびカウンタ213は上述のカウンタ126と同様の構成を採用できる。
 また、ネットワーク110上の各デバイスも、フィールドネットワークコントローラ118との間でタイミングを管理するための時刻基準として用いられるカウンタを有している。
 カウンタ119ならびにフィールド機器90などのデバイスが有するカウンタ(カウンタ91)については、上述のカウンタ126と同様の構成を採用できる。
 フィールドネットワークコントローラ118は、ネットワーク110を介した定周期通信を行うための通信マスタとして機能し、フィールドバスに接続されている各デバイスが有するカウンタが示すカウンタ値とカウンタ119が示すカウンタ値との差分を逐次監視して、必要に応じて、カウンタ値にずれが発生しているデバイスに対して補正を指示するための同期信号を出力する。このように、フィールドネットワークコントローラ118は、デバイスのカウンタが示すカウンタ値をカウンタ119が示すカウンタ値と一致させるための指令をデバイスへ与える同期管理機能を有している。
 信号ポート110Pは、時刻同期信号130を伝送する信号線113が接続される。
 図5のCPUユニット100では、カウンタ119、カウンタ121およびカウンタ124は、カウンタ126と同期する。
 図5には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、CPUユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 本実施の形態に係る制御システム1においては、CPUユニット100およびサポート装置500が別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
 (d2.機能ユニット200の構成)
 図6は、本実施の形態に係る制御装置2が備える機能ユニット200のハードウェア構成例を示すブロック図である。図6を参照して、機能ユニット200は、プロセッサ202、チップセット204、主メモリ206、ストレージ208、ユニット間インターフェイス210、ネットワークインターフェイス220、および信号ポート212Pを含む。信号ポート212Pは、時刻同期信号130を伝送する信号線113が接続される。
 プロセッサ202は、CPU、MPU、GPUなどで構成される。上述のCPUユニット100と同様に、機能ユニット200は、1または複数のプロセッサ202、および/または、1または複数のコアを有するプロセッサ202を有している。チップセット204は、プロセッサ202および周辺エレメントを制御することで、機能ユニット200全体としての処理を実現する。チップセット204は、時刻同期信号130を生成する回路素子である信号ジェネレーター205を含む。信号ジェネレーター205からの時刻同期信号130は、信号ポート212Pを介して信号線113に送出される。主メモリ206は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ208は、例えば、フラッシュメモリなどの不揮発性記憶装置などで構成される。
 プロセッサ202は、ストレージ208に格納された各種プログラムを読出して、主メモリ206に展開して実行することで、例えばセキュリティ事象の監視などの処理を実現する。ストレージ208には、基本的な処理を実現するためのOS(Operating System)27を含むシステムプログラム22とユーザプログラム20を格納する。また、ストレージ208は、カウンタ213のカウンタ値から実時刻を算出するための換算に関する情報である時刻換算情報30を格納するとともに、機能ユニット200が収集した観測値の時系列データを格納する記憶領域21を有する。なお、時刻換算情報30を格納する記憶デバイスは、ストレージ208に限定されず、主メモリ206であってもよい。
 ユーザプログラム20は、機能ユニット200が扱う時刻を管理する時刻管理プログラム26およびセキュリティ監視処理のためのセキュリティプログラム24を含む。時刻管理プログラム26は、ユニット間でカウンタを同期するためのカウンタ同期プログラム23、および実行されるとカウンタ値を補正する補正プログラム25を含む。セキュリティプログラム24は、実行されると、制御装置2の運用者または管理者などが予め定めた規則などを規定するセキュリティ設定に基づく、セキュリティ監視処理を実施し、処理の結果に基く観測値を収集し、時系列データとして記憶領域21に格納する。補正プログラム25が実行されることによりカウンタ値の補正処理が実施されるが、補正処理については後述する。
 ユニット間インターフェイス210は、データバス111を接続する。ユニット間インターフェイス210は、データバス111を介してCPUユニット100または他の機能ユニット200とデータを遣り取りする。
 ユニット間インターフェイス210は、CPUユニット100または他の機能ユニット200とデータを送受信するためのコントローラ(図中ではTx/Rx CTRLで示す)およびバッファを備えるデータ通信回路211、およびカウンタ213を備える。
 ネットワークインターフェイス220は、ネットワーク11を介してデータを遣り取りするためにコントローラ(図中ではTx/Rx CTRLで示す)222およびバッファ226を含む。
 ユニット間インターフェイス210およびネットワークインターフェイス220が備えるバッファは、送信すべきデータおよび受信したデータなどを一時的に蓄える記憶部に相当する。カウンタ213は、CPUユニット100が備えるカウンタ126(図5参照)と同様の構成を備える。
 機能ユニット200のネットワークインターフェイス220およびユニット間インターフェイス210は、例えばNIC(Network Interface Card)を備える。また、図6は、プロセッサ202がプログラムを実行することで必要な処理が実現される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装されてもよい。
 (d3.機能ユニット300の構成)
 図7は、本実施の形態に係る制御装置2が備える機能ユニット300のハードウェア構成例を示すブロック図である。図7を参照して、機能ユニット300は、制御システム1による様々な機械または設備等の制御を実現するために必要な各種機能を提供する。より具体的には、機能ユニット300の各々は、機能モジュール157と、I/O(入出力)インターフェイス159と、通信回路161とを含む。
 機能モジュール157は、各機能ユニット300の主たる処理を実行する部分であり、制御対象の機械または設備などからのフィールド情報の収集および制御対象の機械または設備などへの指令信号の出力などを司る。
 I/Oインターフェイス159は、制御対象の機械または設備等との間の信号の遣り取りを仲介する回路である。
 通信回路161は、データバス112を順次転送されるデータを処理する。すなわち、通信回路161は、データバス112を介して何らかのデータを受信すると、当該受信したデータを処理した後に、データバス112上において次に位置する機能ユニット300へ当該通信データを送信する。通信回路161は、このようなデータをリレーする機能を提供する。
 より具体的には、通信回路161は、送受信ポート162,164、送受信のためのコントローラ(図中ではTx/Rx CTRLで示す)166およびカウンタ168を含む。
 送受信ポート162,164は、データバス112と物理的に接続される部位であり、コントローラ166からの指令に従って、データバス112上を伝送されるデータの受信および再生などの処理を行うことで、データの順次転送を実現する。
 コントローラ166は、データバス112上を転送されるデータの読出し、データの変更等のデータ処理を実施する。
 カウンタ168は、コントローラ166による指令出力または機能モジュール157での処理実行などのタイミングの基準となるクロックを発生する。カウンタ168には、例えばリアルタイムクロックによるカウンタを採用することもできるが、本実施の形態においては、所定周期でカウントアップ(インクリメント)するフリーランカウンタを適用することができる。
 (d4.CPUユニット100のソフトウェア構成例)
 次に、本実施の形態に係る制御システム1を構成するCPUユニット100のソフトウェア構成例について説明する。
 図8は、本実施の形態に係るCPUユニット100のソフトウェア構成例を示すブロック図である。図8を参照して、CPUユニット100は、PLCエンジン150と、時系列データベース180と、上位接続プログラム192と、ゲートウェイプログラム194とを含む。
 PLCエンジン150は、各種プログラムの実行環境下において各種プログラムを実行する。典型的には、この実行環境は、CPUユニット100のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで提供される。
 より具体的には、PLCエンジン150は、制御プログラム152と、変数管理プログラム160と、スケジューラプログラム170と、入力プログラム172と、出力プログラム174と、時刻同期プログラム177と、換算情報管理プログラム179とを含む。変数管理プログラム160と、スケジューラプログラム170と、入力プログラム172と、出力プログラム174とについては、システムプログラムの一部として実装されてもよい。この場合には、これらのプログラムが提供するそれぞれの機能を単一のシステムプログラムが提供するようにしてもよい。
 制御プログラム152は、典型的には、ユーザプログラム154と、データベース書込みプログラム156と、シリアライズ通信プログラム158とにより構成される。ユーザプログラム154は、制御演算機能を提供する主たる部分に相当し、CPUユニット100の制御対象の製造装置や設備などに応じて任意に構成することができる。ユーザプログラム154は、例えば、ファンクションブロックなどを利用したラダーロジックなどで規定することができる。
 データベース書込みプログラム156は、ユーザプログラム154内に規定された命令によって呼び出され、時系列データベース180に対して指定されたデータを書込む。
 シリアライズ通信プログラム158は、データベース書込みプログラム156から時系列データベース180に対して書込まれるデータに対してシリアライズ処理を行う。より具体的には、シリアライズ通信プログラム158は、時系列データを格納可能なバイト列に変換する処理(シリアライズ)を実行する。対象のデータは、シリアライズ処理により所定のバイト列に変換された上で、時系列データベース180内に格納される。なお、時系列データベース180へのデータ書込みの速度およびデータ容量などに応じて、必ずしもシリアライズ処理を行う必要はない。すなわち、シリアライズ通信プログラム158はオプショナルな構成である。
 変数管理プログラム160は、PLCエンジン150で利用可能な値を変数の形で管理する。より具体的には、変数管理プログラム160は、CPUユニット100の状態などを示すシステム変数と、CPUユニット100とローカルバスまたはフィールドバスを介して接続される各種デバイスが保持する値を示すデバイス変数と、CPUユニット100で実行されるユーザプログラム154が保持する値を示すユーザ変数とを管理する。
 入力プログラム172は、CPUユニット100とローカルバスまたはフィールドバスを介して接続される各種デバイスから入力データを取得する機能を提供する。
 出力プログラム174は、CPUユニット100において実行されるユーザプログラム154によって算出される指令値(出力データ)をデータバス112またはネットワーク110を介して接続される対象のデバイスへ出力する。
 時刻同期プログラム177は、CPUユニット100内の制御プログラムの実行周期、データバス112に接続される機能ユニット200、およびネットワーク110に接続されるフィールド機器90と相互の間で時刻同期を実現する。時刻同期プログラム177は、時刻同期をとるために管理するタイマを適宜補正するための補正プログラム178を備える。補正プログラム178が実行されることにより後述する補正処理が実施されるが、補正処理については後述する。
 換算情報管理プログラム179は、カウンタの値から時刻を算出するための換算に関する換算情報の管理を実現する。換算情報管理プログラム179が実現する換算情報の管理には、ユニット間における換算情報の共有を含む。換算情報の共有は、例えば時刻換算情報30を他のユニットに配信することにより実現される。
 スケジューラプログラム170は、CPUユニット100のプロセスまたはタスクなどに対して、リソース割当てや実行タイミングなどを管理する。このような、プロセスまたはタスクは、制御プログラム152および変数管理プログラム160、入力プログラム172、出力プログラム174、時刻同期プログラム177および換算情報管理プログラム179等がCPUユニット100により実行されることにより生成され得るプロセスまたはタスクが含まれる。
 時系列データベース180は、典型的には、主記憶装置106または二次記憶装置108に配置され、データを格納する機能とともに、外部からの要求(クエリ)に応答して、指定されたデータを応答する検索機能を搭載している。時系列データベース180は、データベース書込みプログラム156により書込まれる時系列データ182を格納している。すなわち、時系列データベース180は、入力データ、出力データ、制御プログラム152による制御演算において算出される演算データ、製造データ、イベントデータの少なくとも一部を時系列に格納する。このような入力データおよび出力データには、CPUユニット100が機能ユニット300から受信するデータおよびCPUユニット100が機能ユニット300へ送信するデータが含まれる。また、イベントデータには、CPUユニット100が、機能ユニット200から受信するセキュリティ監視に関するデータが含まれ得る。
 上位接続プログラム192は、製造実行システム400などの上位のネットワーク13に接続された外部装置との間でデータを遣り取りする。本実施の形態に係るCPUユニット100においては、CPUユニット100から製造実行システム400に対して入力データや演算データが出力されるとともに、製造実行システム400から製造情報を受信することができる。このように、上位接続プログラム192は、制御対象に関連付けられた製造実行システム400から製造データを取得する製造データ取得機能を提供する。
 本実施の形態では、製造実行システム400は時系列DB450を有している。この場合には、上位接続プログラム192に代えて、あるいは、上位接続プログラム192の一部として、データベース接続プログラム193(図中ではデータベースを“DB”と示す)が設けられ得る。データベース接続プログラム193は、例えば、リレーショナルデータベースに対してSQLなどのクエリを送信するとともに、応答を受信する処理を実行するようにしてもよい。データベース接続プログラム193が実行されることにより、CPUユニット100内の時系列データベース180の時系列データ182は、製造実行システム400に転送されて、時系列DB450に格納され得る。データベース接続プログラム193により製造実行システム400へ出力される時系列データの詳細については後述する。
 ゲートウェイプログラム194は、クラウド上の装置と通信する。例えば、クラウド上のIoTサービスを提供する装置に対して、時系列データベース180の時系列データ182を提供する。具体的には、ゲートウェイプログラム194は、時系列データベース180から、指定された種類のデータを指定された周期で取得して、時系列データとして出力する。ゲートウェイプログラム194によりIoTサービスの提供装置へ出力される時系列データは、例えば、データベース接続プログラム193により製造実行システム400へ出力される時系列データと同様な構成を備えることができる。
 CPUユニット100の入力プログラム172は、データバス111,112および/またはネットワーク110を介してセンサ等のフィールド機器90から入力データを取得する。
 CPUユニット100の上位接続プログラム192は、製造実行システム400から製造データを取得する。変数管理プログラム160は、これらの取得された入力データおよび製造データを変数として管理する。
 ユーザプログラム154は、変数管理プログラム160により管理されるシステム変数、デバイス変数、ユーザ変数を参照しつつ、予め指定された制御演算を実行し、その実行結果(出力データ)を変数管理プログラム160に出力する。
 出力プログラム174は、ユーザプログラム154の制御演算によって算出される出力データを制御出力として、データバス112および/またはネットワーク110を介してアクチュエータ等のフィールド機器90へ出力する。
 データベース書込みプログラム156は、変数管理プログラム160により管理される変数のうち指定された観測値を時系列データベース180に書込む。
 上位接続プログラム192は、変数管理プログラム160により管理される変数のうち指定された変数の値、および/または、時系列データベース180に格納された時系列データ182のうち指定されたデータを、時系列データとして製造実行システム400へ出力する。
 ゲートウェイプログラム194は、変数管理プログラム160により管理される変数のうち指定された変数の値、および/または、時系列データベース180に格納された時系列データ182のうち指定されたデータを、時系列データとしてIoTサービスへ出力する。IoTサービスの提供装置は、例えば、CPUユニット100からの時系列データに基づいて、挙動解析を行って、制御対象の設備や装置などの予知保全などを行うサービスを提供する。
 <E.時刻同期の構成>
 まず、本実施の形態に係る制御装置2は、時刻およびカウンタを同期させる機能(以下、それぞれ「時刻同期」および「カウンタ同期」とも称す。)を有している。
 本明細書において、「時刻」は、時の流れにおけるある一点を示すものを意図し、例えば、時分秒などの単位を用いて規定される。「カウンタ」は、制御装置2および関連する装置内でタイミングを制御するための値を包含し、基本的には、予め定められた単位時間毎に所定値ずつインクリメントまたはデクリメントされる値(以下では、カウンタが示す値を「カウンタ値」とも称す。)を示す。本実施の形態では、限定されないが、カウンタ値はタイマの値に相当し、限定されないが、例えばナノ秒のオーダを表現し得る64ビット長の整数値を表す。
 本実施の形態では、制御装置2を構成するユニット間および各ユニットとフィールド機器90を含む他のデバイスとの間では、カウンタ値を用いた時刻同期が採用される。
 再び、図9を参照して、ネットワーク11から各制御装置2が実時刻を管理する基準クロックであるマスタクロックのカウンタ値を受信(取得)するための構成、および時刻同期信号130をトリガとして時刻同期の実現するための構成を説明する。図9では、時刻同期信号130は、機能ユニット200の図6に示す信号ジェネレーター205により生成されて信号線113に伝送される。
 このような時刻同期を実現する構成は、例えば、ネットワーク11がTSN(Time-Sensitive Networking)に従うデータ通信を実施するケースと、ネットワーク11がEtherCAT(登録商標:Ethernet for Control Automation Technology)に従うデータ通信を実施するケースとを含み得る。なお、ネットワーク11に適用される規格は、これらに限定されず、例えばIEEE1588であってもよい。
 図9を参照して、時刻を管理するマスタクロック191Aは、例えばネットワーク11上の装置/ライン管理装置190により提供される。マスタクロック191Aは、例えばインターネット上に配置された時刻同期サーバが管理する絶対時刻(実時刻)を示す。マスタクロック191Aは、カウンタ同期のための基準クロックとして用いることができて、基準クロックとしてのマスタクロック191Aは、ネットワーク11上の他の装置に備えられてもよい。
 CPUユニット100は、時刻同期プログラム177が実行されることにより、同期処理部114を備える。同期処理部114は、上位ネットワークコントローラ105を介して装置/ライン管理装置190と通信し、マスタクロック191Aを参照する。同期処理部114は、装置/ライン管理装置190の時刻同期サーバとしての機能を利用して、マスタクロック191Aの時刻を取得するとき、ネットワーク11等の伝送遅延を補正する。これにより、同期処理部114は、マスタクロック191Aから、より正確な時刻を取得することができる。また、同期処理部114は、時刻同期プロトコルを用いて時刻を取得する際に、同期処理部114は時刻同期プロトコルを実行したタイミングにおけるカウンタ126のカウンタ値をラッチする。これにより、マスタクロック191Aから取得される時刻とカウンタ値の紐付けが得られる。このような紐付けの結果は「時刻換算情報30」となる。紐付けを維持することは、マスタクロック191AとCPUユニット100の同期に相当する。また、この紐付けを維持するにあたって、「時刻換算情報30」の更新、ユニット内の時刻(RTC128の時刻)の更新、カウンタの補正が実行され得る。
 機能ユニット200は、カウンタ同期プログラム23が実行されることにより実現される同期処理部216を備える。機能ユニット200の同期処理部216は、例えば起動時にデータバス111を介してCPUユニット100からカウンタ126のカウンタ値を受信し、受信したカウンタ値をカウンタ213に設定する。以降は、同期処理部216は、カウンタ213のカウンタ値を内部のハードウェア回路からの出力に同期して周期的に更新(インクリメント、またはデクリメント)し、更新後の値を制御用のカウンタ213に設定する。これにより、カウンタ213のカウンタ値は周期的に更新される。
 CPUユニット100では、スケジューラプログラム170は、制御用のカウンタ126を基準にして制御プログラム152等のスケジューリングを実施する。また、入力プログラム172および出力プログラム174は、カウンタ126に同期したカウンタ119およびカウンタ124を基準にして各デバイスと時刻同期を実施する。これにより、CPUユニット100内における制御プログラム152等のスケジューリング、および制御装置2に接続される各デバイスと当該制御装置2の時刻同期を、マスタクロック191Aを基準にして実施することが可能となる。その結果、CPUユニット100内における制御プログラム等のスケジューリングおよび制御装置2に接続される各デバイス(フィールド機器90など)と当該制御装置2の間の入出力を、マスタクロック191Aに同期させて実施することが可能となる。
 (e1.同期処理部によるカウンタの調整処理)
 本実施の形態では、例えば、カウンタ126のカウンタ値の更新はCPUユニット100の内部のハードウェア回路の出力信号に同期して実施される。そのため、ハードウェア回路の誤差等に起因して機能ユニット200のカウンタ213のカウンタ値と、CPUユニット100のカウンタ126のカウンタ値との差(以下、これを同期ずれともいう)が大きくなる可能性がある。同期ずれが大きくなると、CPUユニット100内における制御プログラムのスケジューリング、および制御装置2に接続される各デバイスと当該制御装置2との間の入出力を、マスタクロック191Aに同期させて実施することができないとの事態が生じる。なお、上記の差が生じる要因は、ハードウェア回路の誤差等に限定されない。
 このような事態を防止するために、機能ユニット200の同期処理部216とCPUユニット100の同期処理部114は、同期ずれを低減するための補正処理を実施する。この補正処理は、同期処理部114では補正プログラム178が実行されることにより実現されて、同期処理部216では補正プログラム25が実行されることにより実現される。同期処理部114および同期処理部216は、信号線113から時刻同期信号130をトリガとして、ラッチ処理を含む補正処理を実施する。
 ラッチ処理では、同期処理部114および同期処理部216は、それぞれ、時刻同期信号130を受信(入力)したとき、カウンタ126およびカウンタ231のカウンタ値をラッチ(取得)し、ラッチしたカウンタ値を所定の記憶領域に格納する。その後、同期処理部114および同期処理部216は、データバス111を介して、ラッチされたカウンタ値を相互に遣り取りして照合し、照合の結果に基づきカウンタ値の差(以下、この差を同期ずれともいう)を導出し、導出された差が小さくなるように、対応するカウンタのカウンタ値を差に基づく調整値で調整する。この調整は、例えば、カウンタ値を調整値で加算または減算するカウンタ値の補正処理を含む。
 なお、同期ずれの調整が実施されるタイミングは、時刻同期信号130が受信された時点であってもよく、または、時刻同期信号130を受信した時から所定時間経過後であってもよい。
 また、時刻同期信号130の送信元のユニットは、機能ユニット200に限定されず、制御システム1に備えられる他のユニットであってもよい。本実施の形態では、時刻同期信号130は、周期的に、例えば1m秒毎に出力されるが、周期的に出力される方式に限定されない。例えば、機能ユニット200は、カウンタ213のカウンタ値が、ある指示値に等しくなったときに、時刻同期信号130が出力するとしてもよい。
 (e2.実時刻を提供するクロックの切替)
 上記の実施の形態では、マスタクロック191Aをカウンタを同期させるための基準クロックとして用いたが、時刻同期のための基準クロックを切替えることができる。
 具体的には、同期処理部114(または同期処理部216)は、マスタクロック191Aから受信する時刻について、時刻の精度(例えば、ミリ秒、マイクロ秒など)が所定条件を満たすか否かを判断する。なお、時刻の精度の指標は、ミリ秒、マイクロ秒などに限定されない。例えば、指標は、マスタクロック191Aの供給源(timesource)となるサーバの精度(サーバ名など)、同期のプロトコル、マスタクロック191Aが示すtimezoneなどの情報を含んでもよい。したがって、所定条件は、時刻の精度の指標が示す値が、所定値であることを含み得る。マスタクロック191Aが供給する時刻の精度は所定条件を満たすと判断されたとき、上記の時刻同期において、カウンタ126と213のカウンタ値は、マスタクロック191Aから受信される時刻に合わせて調整される。
 これに対して、同期処理部114(または同期処理部216)は、マスタクロック191Aから受信する時刻の精度は所定条件を満たさないと判断したとき、CPUユニット100および機能ユニット200のうちの一方のユニットが備える内部クロックが管理する時刻を基準として、CPUユニット100のカウンタ126および機能ユニット200のカウンタ213を同期させる。本実施の形態では、この内部クロックとして、RTC128を用いるが、機能ユニット200がRTCに対応する内部クロックを備える場合は、基準クロックとして機能ユニット200の内部クロックを用いてもよい。
 本実施の形態では、同期処理部114(または同期処理部216)は、マスタクロック191Aが管理する時刻の精度を、限定されないが、例えば、制御システム1の構成を示すコンフィグレーション情報から取得することができる。
 (e3.時刻同期の他の実装例)
 図9を参照して、制御システム1は、さらに、CPUユニット100および機能ユニット200とは異なるユニット370を備えて、ユニット370に上記に述べた時刻同期処理を実施させてもよい。
 ユニット370は、信号線113とデータバス111に接続され得る。ユニット370は、ハードウェアプロセッサを備えて、ハードウェアプロセッサがプログラムを実行することにより、CPUユニット100のカウンタ126および機能ユニット200のカウンタ213を同期させる。具体的には、ユニット370は、信号線113において時刻同期信号130を検出すると、データバス111を介してカウンタ126とカウンタ213からカウンタ値を読出す。ユニット370は、読出されたカウンタ値を用いて上記に述べたように、同期ずれを小さくするようカウンタ126および213のカウンタ値を補正する。ユニット370は、補正後のカウンタ値を、データバス111を介して各カウンタに設定する。
 以上のとおり、各制御装置2においては、マスタクロック191Aの時刻を用いて、(i)ユニット間で時刻同期が実現され、また(ii)各ユニットと当該ユニットに接続されるデバイス間で時刻同期が実現され、また(iii)CPUユニット100ではスケジューラプログラム170により制御プログラム152,入力プログラム172および出力プログラム174の実行についての時刻同期が実現される。さらに各制御装置2が共通のマスタクロック191Aを用いた時刻同期を実施することで、(iv)異なる制御装置2の間で時刻同期を実現することができる。また、異なる工程毎に制御装置2が備えられる場合は、異なる工程間で時刻同期を実施することができる。
 <F.時刻換算情報と換算の例>
 図10は、本実施の形態に係る時刻換算情報30の一例を模式的に示す図である。時刻換算情報30は、ユニット間で共有される情報であって、カウンタの値から実時刻を算出する換算に関する情報を含む。例えば、時刻換算情報30は、ユニット間で共有される換算式36と変換表35を含む。本実施の形態では、ユニット間での換算式の共有は、図10に示される変換表35を用いて実現される。
 換算式36は、例えば、currentTOD = baseTOD + (currentCount - baseCount)である。換算式36は、基準時刻(baseTOD)からの経過時間を制御用のカウンタ値を用いた(currentCount - baseCount)で算出し、この算出値に基準時刻(baseTOD)を加算することで現在の実時刻(currentTOD)を得る式である。
 図10を参照して変換表35は、表の要素31のそれぞれに対応付けて、当該要素の説明32、型・単位の例33および値の例34を含む。要素31は、例えば「baseCount」と「baseTOD」と「timezone」と「timeSource」を含む。「baseCount」と「baseTOD」は、換算式36のオペランドを示す。具体的には、「baseCount」は、基準となる制御用カウンタ値であって、本実施の形態では、CPUユニット100のカウンタ126のカウンタ値を示す。また、「baseTOD」は、「baseCount」の値と対になる値とであって、本実施の形態では、CPUユニット100のRTC128のクロック値であるTOD値を示す。
 CPUユニット100の図11に示す時刻管理部117は、換算式36のオペランド(baseCount)および(baseTOD)に、それぞれ、変換表35の要素31から読出した値を設定し、制御用のカウンタ126の現在のカウンタ値をオペランド(currentCount)に設定することにより、換算式36から現在の実時刻を示す(currentTOD)の値を算出する。同様に、機能ユニット200の後述する換算情報管理部215は、換算式36のオペランド(baseCount)および(baseTOD)に、それぞれ、変換表35の要素31から読出した値を設定し、制御用のカウンタ213の現在のカウンタ値をオペランド(currentCount)に設定することにより、換算式36から現在の実時刻を示す(currentTOD)の値を算出する。なお、演算においては、単位の適切な変換が実施される。
 換算の一例として、変換表35とcurrentCount=333444555666のケースでは、次のように現在の実時刻が換算される。
 currentTOD={秒=1558436425, ナノ秒=849614166}(=May 21 20:00:25 2019 (JST))
 なお、変換表35の要素31のうち、「timezone」と「timeSource」は、カウンタの同期に用いるクロックが管理する時刻の精度に関する情報の一例であって、換算に際してはオプション情報として扱うこともできる。
 <G.時刻換算情報30の共有>
 本実施の形態では、例えば、時刻換算情報30が各ユニット間で共有されるように、マスタ(例えばCPUユニット100)が時刻換算情報30をスレーブ(例えば機能ユニット200)に配信する。
 図11は、本実施の形態に係る時刻換算情報30を共有する構成の一例を模式的に示す図である。図11では、マスタ(CPUユニット100)には、例えば2台のスレーブ(機能ユニット200)が接続されている。なお、マスタに接続されるスレーブの台数は、1台または複数台である。
 マスタの換算情報管理部115は、二次記憶装置108に格納されている時刻換算情報30を各スレーブに配信(送信)する(図中の(1)配信に相当)。この配信は、例えばデータバス111を介して実施される。スレーブは、時刻管理プログラム26が実行されることで実現される換算情報管理部215を備える。換算情報管理部215は、マスタから送信された時刻換算情報30を受信し、ストレージ208に格納するとともに、時刻換算情報30を用いて上記に述べた現在時刻(currentTOD)を算出する。また、換算情報管理部215は、OS27が備える時間マネージャー214が管理する現在時刻を、算出された現在時刻で調整する(図中の(2)調整に相当)。これにより、各スレーブでは、OS27が管理する現在時刻を、ユニット間で共有される時刻換算情報30から算出された現在時刻(currentTOD)に更新することができて、その結果、ユニットが管理する現在時刻を、ユニット間で互いに同期させることができる。
 なお、機能ユニット200がRTC128に対応する内部クロックを備えて、マスタクロック191Aを当該内部クロックを同期させる場合は、機能ユニット200が備える換算情報管理部がマスタとなって、時刻換算情報30を管理し、スレーブとなるCPUユニット100に配信するとしてもよい。
 (g1.時刻換算情報30の共有の他の例)
 本実施の形態では、例えば、時刻換算情報30が各ユニット間で共有されるように、マスタによって時刻換算情報30が配信されるスレーブは機能ユニット200に限定されない。このようなスレーブには、例えば、機能ユニット300またはフィールド機器90が含まれ得る。図12は、本実施の形態に係る時刻換算情報30を共有する構成の他の例を模式的に示す図である。
 図12では、例えば、マスタと時刻換算情報30を共有するユニットとしてネットワーク110に接続されたフィールド機器90が示される。
 CPUユニット100は、ネットワーク110(例えばEtherCAT(登録商標))を介して接続されるフィールド機器90A、90Bおよび90Cと互いに時刻同期する。より具体的には、CPUユニット100の制御用のカウンタ119とフィールド機器90A、90Bおよび90Cのカウンタ91A、91Bおよび91Cが互いに時刻同期する。図12では、マスタからの時刻換算情報30はフィールド機器90Bに配信されているが、他のフィールド機器に配信されてもよい。
 なお、図12のケースでは、共有される変換表35の要素31の「baseCount」と「baseTOD」は、そのネットワーク110のプロトコルが機器間で同期するクロック(例:EtherCATではDistributed Clock (DC))値と、それに対応するTOD値のペアとなる。
 図12によれば、CPUユニット100は、データバス111を介して機能ユニット200とデータを遣取りするとともに、ネットワーク110に接続される第3のユニットと通信する。同期処理部は、CPUユニット100が備えるカウンタ126とフィールド機器90が備える制御用のカウンタ91とを同期させる。図12では、CPUユニット100のカウンタ126として、当該カウンタ126に時刻同期しているカウンタ119が示されている。フィールド機器90は、CPUユニット100から配信される時刻換算情報30を格納する。これにより、CPUユニット100、機能ユニット200およびフィールド機器90の間で、制御用のカウンタを同期させることができるとともに、時刻換算情報30をユニット間で共有できる。
 <H.現在時刻を参照するための構成>
 図13、図14および図15は、本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。機能ユニットのアプリケーションは、限定されないが、例えばセキュリティプログラム24を含み得る。図13は、アプリケーションがOS27に現在時刻を問合せるケースを示す、図14と図15は、アプリケーションは換算情報管理部215に現在時刻を問合せるケースを示す。
 図13を参照して、アプリケーションはOS27に現在時刻を問合わせると(ステップ(1))、OS27の時間マネージャー214は、応答として、管理している現在時刻をアプリケーションに返信する(ステップ(2))。図13のケースでは、既存のアプリケーションは、一般的なインターフェイスで現在時刻を、すなわち換算情報管理部215がユニット間で共有する時刻換算情報30から算出された現在時刻を取得することができる。
 図14を参照して、アプリケーションは換算情報管理部215に現在時刻を問合せると(ステップ(1))、換算情報管理部215は制御用のカウンタ213から現在のカウンタ値を参照(読出)し(ステップ(2))、当該カウンタ値を(currentCount)として用いて、変換表35および換算式36に基づき、現在時刻を算出し(ステップ(3))、算出した現在時刻を、応答としてアプリケーションに返信する(ステップ(4))。図14のケースでは,換算情報管理部215が問合せを受信したときにカウンタ231が示すカウンタ値(currentCount)を用いて現在時刻が算出されるので、アプリケーションは高い精度を有した現在時刻を取得できる。
 図15のケースでは、換算情報管理部215は、内部にカウンタ213の現在のカウンタ値と時刻換算情報30から算出した現在時刻を保持し、保持される現在時刻を適宜更新している(ステップ(1))。換算情報管理部215は、アプリケーションから現在時刻の問合わせを受けると(ステップ(2))、保持している計算済みの現在時刻を応答としてアプリオケーションに返信する(ステップ(3))。図15のケースでは、アプリケーションが高い頻度で問合せを実施するとしても、換算情報管理部215は保持されている現在時刻を返信するだけなので(すなわち、問合せの都度、現在時刻を算出する必要はなく)、換算情報管理部215によるハードウェア(例えば、カウンタ213)への高頻度なアクセスを回避することができる。
 なお、各ユニットは、図13~図15に示すケースに従う方法のうちの1つを提供してもよく、または、複数の方法を提供してもよい。
 <I.基準クロックの精度に応じた時刻換算情報30の共有>
 図16は、本実施の形態に係る基準クロックの精度に応じて時刻換算情報30を共有する構成を模式的に示す図である。図16では、CPUユニット100にデータバス111を介して接続される例えば2台の機能ユニット200が示されている。2台の機能ユニット200は、図16では、機能ユニット200Aと機能ユニット200Bとして区別されるが、これら機能ユニットは同様の構成を備えている。図16では、これら機能ユニット200のうち、機能ユニット200Aがマスタクロック191Aを提供する外部の時刻サーバと通信する。図17は、本実施の形態に係る基準クロックの精度は所定条件を満たす場合の処理のフローチャートである。図18は、本実施の形態に係る基準クロックの精度は所定条件を満たさない場合の処理のフローチャートである。この基準クロックは、例えば、マスタクロック191Aに相当し、マスタクロック191Aは、例えば装置/ライン管理装置190が提供するTSNのグランドマスタクロックである。
 図17を参照して、マスタクロック191Aが管理する時刻の精度が所定条件を満たす場合の処理を、適宜、図9を参照しつつ説明する。このケースでは、時刻換算情報30は固定である。まず、図16の機能ユニット200Aの同期処理部216(図9)は、装置/ライン管理装置190との間で時刻同期のプロトコルを実施する(ステップS1)。例えば、ステップS1では、同期処理部216は、マスタクロック191Aの現在時刻(実時刻)を問合せ(ステップS3)、装置/ライン管理装置190からマスタクロック191Aの現在時刻を受信する(ステップS5)。
 同期処理部216は同期の結果261(図16)を取得し(ステップS7)、取得した同期の結果261をCPUユニット100に送信する(ステップS9)。この同期の結果261は、(マスタクロック191Aの実時刻と対応するカウンタ213のカウンタ値)を含む。
 CPUユニット100の同期処理部114(図9)は、機能ユニット200Aから同期の結果261を受信し(ステップS11)、受信した同期の結果を分析する(ステップS13)。分析において、同期処理部114は、同期の結果261の実時刻およびカウンタ値を、それぞれ、変換表35の「baseTOD」および「baseCount」の値と比較し、比較の結果に基づき、外部の実時間の経過に同期するようにカウンタ126(図9)のカウンタ値を調整(補正)する(ステップS15)。カウンタ126には、補正(加算または減算)後のカウンタ値が設定される。
 具体的には、同期処理部114は、現在保持している変換表35の要素31(baseCount,baseTOD)と今回取得された同期の結果261の差を、時刻(TOD)およびカウンタ値のそれぞれについて計算する。
 算出されたTODの差、カウンタ値の差分の差(=TOD上の経過時間と、カウンタ上の経過時間の差)が、外部の時計であるマスタクロック191Aに対する、制御用のカウンタ126の進捗の差分(進んでいる・遅れている)となる。同期処理部114は、算出した制御用のカウンタ126の進捗の差分を相殺するように、コントローラの制御用カウンタを補正する。補正では、実行中の制御に影響が発生しないよう、時間をかけて少量ずつ減算または加算を実施する。なお、補正には、制御用のカウンタ126の速度そのものの補正を含んでもよい。
 その後、時刻同期信号130(図9)をトリガとして、同期処理部114および同期処理部216は、上記に述べた時刻同期処理を実施する(ステップS17,S19)。この時刻同期信号130をトリガとした時刻同期処理は、機能ユニット200Bの同期処理部216およびCPUユニット100の同期処理部114との間でも同様に実施される。
 なお、ステップS15の処理は、制御システム1の起動後、最初の時刻同期プロトコルの実行時には実施されない。つまり、差分を計算するための換算式36を含む時刻換算情報30がまだ各ユニットに格納されていないからである。この場合は、CPUユニット100は、同期の結果261を用いて換算式36を含む時刻換算情報30を更新し、ユニット群に更新後の時刻換算情報30を配信し、ユニット間で共有する。
 図17では、同期の結果261を用いてCPUユニット100の制御用のカウンタ126が補正されることで、すなわちカウンタ126がマスタクロック191Aに同期することで、各ユニットの制御用のカウンタをマスタクロック191Aに同期させることができる。ステップS1の処理は定期的に実施されることで、各ユニットの制御用のカウンタをマスタクロック191Aに精度良く同期させる(同期ずれを少なくする)ことができる。制御システム1は外部の精度の高い時計(マスタクロック191A)から実時刻を取得し、システム全体の時刻と制御用のカウンタを、これに同期させて動作することができる。
 これに対して、図18の処理では、同期の結果261を用いた制御用のカウンタ126の補正は実施されず、換算情報管理部115(図9)は、同期の結果261に基づき変換表35を更新(変更)する。
 図18を参照して、マスタクロック191Aが管理する時刻の精度が所定条件を満たさない場合の処理を、適宜、図9を参照して説明する。このケースでは、時刻換算情報30は同期の結果261に応じて更新される。まず、図16の機能ユニット200Aの同期処理部216(図9)は、装置/ライン管理装置190との間で時刻同期のプロトコルを実施する(ステップS1、S3、S5)。同期処理部216は同期の結果261(図16)を取得し(ステップS7)、取得した同期の結果261をCPUユニット100に送信する(ステップS9)。CPUユニット100の同期処理部114(図9)は、機能ユニット200Aから同期の結果261を受信する(ステップS11)。
 換算情報管理部115は、受信した同期の結果261に基づき時刻換算情報30を更新し(ステップS21)、更新後の時刻換算情報30を機能ユニット200Aに送信(配信)する(ステップS23)。機能ユニット200の換算情報管理部215は、時刻換算情報30を受信し(ステップS25)、受信した更新後の時刻換算情報30により、ストレージ208の元の時刻換算情報30を更新(上書き)する(ステップS27)。
 そして、同期処理部114と同期処理部216は、CPUユニット100のカウンタ126と機能ユニット200のカウンタ213を同期させる(ステップS24、S28)。
 上記のステップS21では、換算情報管理部115は、同期の結果261を分析し、分析の結果に基づき、変換表35を更新するとともに、RTC128の現在時刻を更新する。この更新は、大きな時刻の変化が生じないよう、例えば小さい調整量を用いて繰り返し実施(時間をかけて実施)する。ここで、同期の結果261が、時刻のみの形式であった場合、換算情報管理部115は、カウンタ126の現在のカウンタ値を用いて、同期の結果261を(時刻,当該時刻に対応するカウンタ値)に変更する。換算情報管理部115は、同期の結果261が示す時刻および当該時刻に対応するカウンタ値を、それぞれ、「baseTOD」および「baseCount」として変換表35に設定し、変換表35を更新する。
 なお、図18では、カウンタの同期処理は、時刻換算情報30の配信の後に実施されているが、同期処理の実施タイミングはこれに限定されない。上記の時刻換算情報30の更新および共有に係る処理(ステップS23、S25、S27)および時刻同期信号130をトリガとした時刻同期処理(ステップS24、S28)は、機能ユニット200BとCPUユニット100との間でも同様に実施される。
 図18では、同期の結果261を用いてCPUユニット100のRTC128はマスタクロック191Aの時間に同期することで、すなわちカウンタ126がマスタクロック191Aに同期する。これにより、各ユニットにおける時刻換算情報30を用いた時刻換算処理によって、ユニット間でマスタクロック191Aから取得した時刻を共有することが可能となる。
 なお、機能ユニット200Bは、マスタクロック191を備える外部のサーバと通信することが可能であり、その場合、機能ユニット200Aで実施された処理(図17と図18)と同様の処理を機能ユニット200Bでも実施することができる。
 <J.時系列データの処理>
 図19は、本実施の形態に係る製造実行システム400の構成例を示す図である。製造実行システム400は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
 図19を参照して、製造実行システム400は、プロセッサ402と、メインメモリ404と、入力部406と、出力部408と、ストレージ410と、光学ドライブ415と、外部装置と通信するためのUSBコントローラ420と、ネットワーク13,14を接続するネットワークインターフェイス413を含む。これらのコンポーネントは、プロセッサバス418を介して接続されている。
 プロセッサ402は、CPUやGPUなどで構成され、ストレージ410に格納されたプログラムを読出して、メインメモリ404に展開して実行することで、後述するような各種処理を実現する。
 メインメモリ404は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ410は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
 ストレージ410には、基本的な機能を実現するためのOS412に加えて、製造実行システム400としての機能を提供するための各種プログラムが格納される。各種プログラムは、DB管理プログラム411を含む。また、ストレージ410は、時系列DB450を格納する領域を有する。
 入力部406は、キーボードやマウスなどで構成され、製造実行システム400に対するユーザ操作を受付ける。出力部408は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ402からの処理結果などを出力する。
 製造実行システム400は、光学ドライブ415を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体414(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ410などにインストールされる。
 図19には、プロセッサ402がプログラムを実行することで、製造実行システム400として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 図20は、図19のDB管理プログラム411が実行されることで提供されるDBマネージャーを示す図である。図20を参照して、プロセッサ402により、DB管理プログラム411が実行されることで提供されるDBマネージャー451は、時系列DB450を管理(例えば、DBの生成,集約,編集,解析,出力等)する。
 (J1.観測値の時刻同期)
 図21と図22は、本実施の形態に係る制御装置2が製造実行システム400に時系列データを送信する場合の処理例を示す模式図である。図21は時刻同期処理が実施されないケースを示し、図22は時刻同期処理が実施されるケースを示す。図23と図24は、本実施の形態に係る制御装置2において生成される時系列データのフレームを模式的に示す図である。図25は、本実施の形態に係る時系列DB450の一例を模式的に示す図である。
 図21には、制御装置2A,2Bが上位のネットワーク13を介して製造実行システム400と接続されている構成を示す。図21に示す構成においては、制御装置2Aと制御装置2Bとの間では時刻同期がなされていないとする。
 各時系列データには、制御装置2A,2Bが収集した観測値および各観測値に対応付けられる時刻が含まれる。逆にいえば、図21に示す構成においては、制御装置2A,2Bは、各観測値の収集タイミングを示す情報としては時刻を付加することしかできない。時刻は、制御装置2A,2Bがそれぞれ管理するものであり、時刻同期は不完全である。
 その結果、製造実行システム400にて収集される時系列データの間では、時刻が完全には一致しないので、DBマネージャー451は、タイミングを正確に合せてそれぞれの時系列データを集約(すなわち、統合)することはできない。
 これに対して、図22に示す構成においては、制御装置2Aと制御装置2Bとは上記に述べた時刻同期されたカウンタおよび時刻換算情報30で換算された時刻を備えている。その結果、制御装置2A,2Bからそれぞれ送信される時系列データのフレームには、工程3A,3Bにおいて収集した観測値に対応付けて、各観測値を収集したタイミングを示す時刻(例えば、時刻換算情報30で換算された時刻)およびカウンタ値を含めることができる。これらフレームの一例が図23と図24に示される。図23では、制御装置2Aから時系列DB450に送信される時系列データのフレームが示されて、図24では、制御装置2Bから時系列DB450に送信される時系列データのフレームが示される。
 DBマネージャー451は、制御装置2A,2Bのそれぞれから受信したフレームの時系列データが有するカウンタ値または時刻を用いて、時系列データに含まれる観測値のタイミングを合せることができる。すなわち、DBマネージャー451は、異なる制御装置2(異なる工程)でそれぞれ収集された観測値であっても、時間軸をほぼ完全に一致させて集約し、集約したデータを、図25に示すように、時系列DB450にラインデータとして格納する。時系列DB450に格納されたラインデータは、例えば、観測値の解析に用いられる。
 <K.利点>
 本実施の形態においては、各ユニット(機能ユニット200、CPUユニット100、機能ユニット300、フィールド機器90)は、自ユニットが備える既存の制御用のカウンタを用いて、マスタクロック191Aとの時刻同期およびユニット間の時刻同期を実現することができる。この場合、各ユニットは、特別な時刻参照のプロトコル(例えば、通信の所要時間のゆれを補償する仕組みを備えたコストがかかるプロトコル)を実装および実行する必要はない。
 上記の時刻同期に関して、図16に示されるように、制御用のカウンタが相互に同期しているユニット群のうちいずれか一台が外部のマスタクロック191Aと時刻同期する関係を確立することで、互いに時刻同期しているユニットすべてが同じ時刻(マスタクロック191Aの時刻)を共有することができる。
 各ユニットの制御用のカウンタは一旦、マスタクロック191Aと時刻同期すれば、その後は、その「カウンタ値」をマスタクロック191Aの時刻から独立させることができる。これにより、外部の時刻サーバの有無、時刻サーバの時刻の管理精度が低い、時刻サーバが提供する時刻の非連続な変更など、制御システム1に関する構成および環境の変動があるとしても、制御システム1では、各ユニットの制御用のカウンタを互いに時刻同期した状態に維持することができる。このことは、制御システム1において安定した制御動作を維持することを可能にする。
 <L.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 ファクトリオートメーションの制御システム(1)であって、
 データを遣り取りする第1のユニット(100)および第2のユニット(200)と、
 クロック(191A、128)を用いて、前記第1のユニットが備える制御用のカウンタ(126)と前記第2のユニットが備える制御用のカウンタ(213)とを同期させる同期手段(115、215、370)と、を備え、
 各ユニットは、
 ユニット間で共有される情報であって、当該ユニットの前記カウンタのカウンタ値から時刻を算出する換算に関する情報(30)を格納するための情報格納手段(108、2018)を備える、制御システム。
[構成2]
 前記クロックは、ユニット外の外部クロック(191A)または前記第1のユニットおよび前記第2のユニットのうちの一方のユニットが備える内部クロック(128)を含む、構成1に記載の制御システム。
[構成3]
 前記同期手段は、
 前記外部クロックが管理する時刻の精度が所定条件を満たすとき、前記第1のユニットおよび前記第2のユニットの互いに同期するカウンタの値を、前記外部クロックの時刻に合わせて調整する、構成2に記載の制御システム。
[構成4]
 前記同期手段は、
 前記外部クロックが管理する時刻の精度が所定条件を満たさないとき、前記内部クロックが管理する時刻を基準として、前記第1のユニットおよび前記第2のユニットのカウンタを同期させる、構成2または3に記載の制御システム。
[構成5]
 前記換算に関する情報は、各ユニットの前記カウンタ値と基準カウンタ値との差と、前記基準カウンタ値に対応する基準時刻から実時刻を換算するための換算式(36)を含み、
 前記基準時刻は、前記クロックの時刻を含む、構成2から4のいずれか1に記載の制御システム。
[構成6]
 前記一方のユニットは、他のユニットと共有される前記換算に関する情報を管理する管理手段(115、215)を備え、
 前記管理手段は、前記制御用のカウンタの同期に用いる前記クロックに応じて、共有される前記換算に関する情報を更新する、構成5に記載の制御システム。
[構成7]
 前記管理手段は、
 前記外部クロックが管理する時刻の精度が所定条件を満たさないとき、前記換算式を、前記基準カウンタ値および前記基準時刻に、それぞれ、前記一方のユニットの前記カウンタ値および当該カウンタ値に対応する前記内部クロックの時刻が設定されるように更新する、構成6に記載の制御システム。
[構成8]
 前記第1のユニットは、データバス(111)を介して前記第2のユニットとデータを遣取りし、
 前記制御システムは、前記一方のユニットにネットワーク(110)接続される第3のユニット(90)を備え、
 前記同期手段は、さらに、
 前記一方のユニットが備える前記カウンタと前記第3のユニットが備える制御用のカウンタ(91)とを同期させ、
 前記第3のユニットは、
 ユニット間で共有される前記換算に関する情報を格納する、構成2から7のいずれか1に記載の制御システム。
[構成9]
 前記換算に関する情報は、前記カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を含む、構成1から8のいずれか1に記載の制御システム。
[構成10]
 前記各ユニットは、
 共有される前記換算に関する情報に従い、前記カウンタのカウンタ値から前記時刻を換算し、
 アプリケーションから受付ける前記時刻の問合せに対し、換算された前記時刻を含む応答を出力する、構成1から9のいずれか1に記載の制御システム。
[構成11]
 前記問合せを受付けたとき前記換算を実施する、構成10に記載の制御システム。
[構成12]
 前記各ユニットは、
 換算された前記時刻を格納し、
 前記応答は、格納されている前記換算された時刻を含む、構成10または11に記載の制御システム。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、2 制御装置、11,12,13,14,110 ネットワーク、23 カウンタ同期プログラム、24 セキュリティプログラム、25,178 補正プログラム、26 時刻管理プログラム、30 時刻換算情報、35 変換表、36 換算式、90 フィールド機器、91A,119,121,124,125,126,168,213,231 カウンタ、100 CPUユニット、370 ユニット、111,112 データバス、113 信号線、114,216 同期処理部、115,215 換算情報管理部、130 時刻同期信号、177 時刻同期プログラム、179 換算情報管理プログラム、200 機能ユニット、205 信号ジェネレーター、261 同期の結果。

Claims (12)

  1.  ファクトリオートメーションの制御システムであって、
     データを遣り取りする第1のユニットおよび第2のユニットと、
     クロックを用いて、前記第1のユニットが備える制御用のカウンタと前記第2のユニットが備える制御用のカウンタとを同期させる同期手段と、を備え、
     各ユニットは、
     ユニット間で共有される情報であって、当該ユニットの前記カウンタのカウンタ値から時刻を算出する換算に関する情報を格納するための情報格納手段を備える、制御システム。
  2.  前記クロックは、ユニット外の外部クロックまたは前記第1のユニットおよび前記第2のユニットのうちの一方のユニットが備える内部クロックを含む、請求項1に記載の制御システム。
  3.  前記同期手段は、
     前記外部クロックが管理する時刻の精度が所定条件を満たすとき、前記第1のユニットおよび前記第2のユニットの互いに同期するカウンタの値を、前記外部クロックの時刻に合わせて調整する、請求項2に記載の制御システム。
  4.  前記同期手段は、
     前記外部クロックが管理する時刻の精度が所定条件を満たさないとき、前記内部クロックが管理する時刻を基準として、前記第1のユニットおよび前記第2のユニットのカウンタを同期させる、請求項2または3に記載の制御システム。
  5.  前記換算に関する情報は、各ユニットの前記カウンタ値と基準カウンタ値との差と、前記基準カウンタ値に対応する基準時刻から実時刻を換算するための換算式を含み、
     前記基準時刻は、前記クロックの時刻を含む、請求項2から4のいずれか1項に記載の制御システム。
  6.  前記一方のユニットは、他のユニットと共有される前記換算に関する情報を管理する管理手段を備え、
     前記管理手段は、前記制御用のカウンタの同期に用いる前記クロックに応じて、共有される前記換算に関する情報を更新する、請求項5に記載の制御システム。
  7.  前記管理手段は、
     前記外部クロックが管理する時刻の精度が所定条件を満たさないとき、前記換算式を、前記基準カウンタ値および前記基準時刻に、それぞれ、前記一方のユニットの前記カウンタ値および当該カウンタ値に対応する前記内部クロックの時刻が設定されるように更新する、請求項6に記載の制御システム。
  8.  前記第1のユニットは、データバスを介して前記第2のユニットとデータを遣取りし、
     前記制御システムは、前記一方のユニットにネットワーク接続される第3のユニットを備え、
     前記同期手段は、さらに、
     前記一方のユニットが備える前記カウンタと前記第3のユニットが備える制御用のカウンタとを同期させ、
     前記第3のユニットは、
     ユニット間で共有される前記換算に関する情報を格納する、請求項2から7のいずれか1項に記載の制御システム。
  9.  前記換算に関する情報は、前記カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を含む、請求項1から8のいずれか1項に記載の制御システム。
  10.  前記各ユニットは、
     共有される前記換算に関する情報に従い、前記カウンタのカウンタ値から前記時刻を換算し、
     アプリケーションから受付ける前記時刻の問合せに対し、換算された前記時刻を含む応答を出力する、請求項1から9のいずれか1項に記載の制御システム。
  11.  前記問合せを受付けたとき前記換算を実施する、請求項10に記載の制御システム。
  12.  前記各ユニットは、
     換算された前記時刻を格納し、
     前記応答は、格納されている前記換算された時刻を含む、請求項10または11に記載の制御システム。
PCT/JP2020/044659 2019-12-25 2020-12-01 制御システム WO2021131530A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20907744.5A EP4083726A4 (en) 2019-12-25 2020-12-01 CONTROL SYSTEM
US17/781,322 US12105551B2 (en) 2019-12-25 2020-12-01 Control system
CN202080082096.4A CN114761889A (zh) 2019-12-25 2020-12-01 控制系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019234534A JP7375532B2 (ja) 2019-12-25 2019-12-25 制御システム
JP2019-234534 2019-12-25

Publications (1)

Publication Number Publication Date
WO2021131530A1 true WO2021131530A1 (ja) 2021-07-01

Family

ID=76573905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/044659 WO2021131530A1 (ja) 2019-12-25 2020-12-01 制御システム

Country Status (5)

Country Link
US (1) US12105551B2 (ja)
EP (1) EP4083726A4 (ja)
JP (1) JP7375532B2 (ja)
CN (1) CN114761889A (ja)
WO (1) WO2021131530A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023062930A1 (ja) * 2021-10-14 2023-04-20 株式会社日立製作所 制御装置、制御システム、及び時刻同期方法
WO2023238410A1 (ja) * 2022-06-10 2023-12-14 日本電信電話株式会社 制御装置、制御方法、及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016092544A (ja) * 2014-10-31 2016-05-23 ヤマハ発動機株式会社 制御システム、制御方法および拡張ボード
JP2018151918A (ja) * 2017-03-14 2018-09-27 オムロン株式会社 制御装置、データ構造、情報処理方法
JP2018190216A (ja) 2017-05-09 2018-11-29 オムロン株式会社 制御装置、タイムスタンプ修正方法、プログラムおよびデータ構造
JP2018190473A (ja) * 2018-09-10 2018-11-29 三菱電機株式会社 機能ユニット及び制御装置
JP2019146060A (ja) * 2018-02-22 2019-08-29 オムロン株式会社 通信システム、通信装置および通信方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113671894B (zh) 2015-11-05 2024-02-13 三菱电机株式会社 功能单元及控制装置
DE102016104767B4 (de) * 2016-03-15 2017-10-12 Pilz Gmbh & Co. Kg Vorrichtung und Verfahren zum Steuern einer automatisierten Anlage
JP6698578B2 (ja) * 2017-04-19 2020-05-27 三菱電機株式会社 アンテナ位置計測装置
DE102020202690B3 (de) * 2020-03-03 2021-07-15 Zf Friedrichshafen Ag Synchronisieren eines Slave-Zeitgebers mit einem Master-Zeitgeber
DE102021111071B4 (de) * 2021-04-29 2023-03-30 Technische Universität Chemnitz - Körperschaft des öffentlichen Rechts Verfahren zum Abgleich und/oder zur Synchronisation von Zählerwerten von zumindest zwei Geräten, Gerät und Anordnung von Geräten

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016092544A (ja) * 2014-10-31 2016-05-23 ヤマハ発動機株式会社 制御システム、制御方法および拡張ボード
JP2018151918A (ja) * 2017-03-14 2018-09-27 オムロン株式会社 制御装置、データ構造、情報処理方法
JP2018190216A (ja) 2017-05-09 2018-11-29 オムロン株式会社 制御装置、タイムスタンプ修正方法、プログラムおよびデータ構造
JP2019146060A (ja) * 2018-02-22 2019-08-29 オムロン株式会社 通信システム、通信装置および通信方法
JP2018190473A (ja) * 2018-09-10 2018-11-29 三菱電機株式会社 機能ユニット及び制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4083726A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023062930A1 (ja) * 2021-10-14 2023-04-20 株式会社日立製作所 制御装置、制御システム、及び時刻同期方法
WO2023238410A1 (ja) * 2022-06-10 2023-12-14 日本電信電話株式会社 制御装置、制御方法、及びプログラム

Also Published As

Publication number Publication date
JP7375532B2 (ja) 2023-11-08
JP2021103439A (ja) 2021-07-15
US20230023970A1 (en) 2023-01-26
US12105551B2 (en) 2024-10-01
EP4083726A1 (en) 2022-11-02
EP4083726A4 (en) 2024-01-10
CN114761889A (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
WO2021002421A1 (ja) 制御システム
CN108572613B (zh) 控制装置、信息处理方法
CN111034128B (zh) 控制系统以及控制装置
WO2021131530A1 (ja) 制御システム
WO2019163443A1 (ja) 通信システム、通信装置および通信方法
JP2018173710A (ja) 制御装置、制御プログラム、および制御システム
WO2020184086A1 (ja) 制御システム
WO2020194714A1 (ja) 通信システム、通信装置及びプログラム
JP2022133624A (ja) 情報処理装置、方法およびプログラム
WO2018070190A1 (ja) 演算装置および制御システム
EP3764175A1 (en) Control device and control system
CN114600416B (zh) 控制系统、控制系统的通信控制方法以及控制装置
WO2022030402A1 (ja) 制御装置およびプログラム
WO2024162337A1 (ja) 制御装置、制御システム、方法およびプログラム
Huang et al. Research on software synchronization method of real-time ethernet distributed motion control system
CN115801164A (zh) 网络中的时间同步

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20907744

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020907744

Country of ref document: EP

Effective date: 20220725