WO2022185589A1 - Information processing device, method, and program - Google Patents

Information processing device, method, and program Download PDF

Info

Publication number
WO2022185589A1
WO2022185589A1 PCT/JP2021/034695 JP2021034695W WO2022185589A1 WO 2022185589 A1 WO2022185589 A1 WO 2022185589A1 JP 2021034695 W JP2021034695 W JP 2021034695W WO 2022185589 A1 WO2022185589 A1 WO 2022185589A1
Authority
WO
WIPO (PCT)
Prior art keywords
cycle
communication
control
processing
time
Prior art date
Application number
PCT/JP2021/034695
Other languages
French (fr)
Japanese (ja)
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 オムロン株式会社
Publication of WO2022185589A1 publication Critical patent/WO2022185589A1/en

Links

Images

Classifications

    • GPHYSICS
    • G04HOROLOGY
    • G04GELECTRONIC TIME-PIECES
    • G04G5/00Setting, i.e. correcting or changing, the time-indication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter

Definitions

  • the present disclosure relates to a device that sets the communication cycle of a FA (Factory Automation) control system.
  • FA Fractory Automation
  • Control systems using control devices such as PLCs (Programmable Logic Controllers) are widely used at various production sites.
  • PLCs Programmable Logic Controllers
  • a distributed control system in which a plurality of controllers exchange data with each other and cooperatively control peripheral devices has been proposed.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2016-131332 discloses a configuration that realizes time synchronization while suppressing network bandwidth consumption.
  • Patent Document 2 Japanese Patent Application Laid-Open No. 2018-88646 discloses a configuration that realizes time synchronization by reducing traffic.
  • An information processing device is an information processing device that processes communication cycles of a plurality of control devices connected to a FA (factory automation) network, and each of the plurality of control devices has a control-related and a time synchronization process for synchronizing the time between the control devices according to the synchronization message, and the information processing device calculates the range of the cycle for communicating the synchronization message to each control device via the network.
  • FA factory automation
  • a range calculation unit is provided, and the range calculation unit calculates, for each control device, the margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the one time executed by the control device
  • a first calculation unit that calculates a first communication cycle from the time required for time synchronization processing, a surplus bandwidth obtained by removing the bandwidth based on the network load from the available bandwidth of the network, and one synchronization message communication and a second calculation unit that calculates a second communication cycle from the bandwidth required for each control device, and which of the longest cycle of the first communication cycles and the second communication cycle of each control device is the longest
  • the range is calculated using the one communication cycle and the communication cycle based on the predetermined synchronization accuracy.
  • the information processing device is based on the processing load of each control device and the communication load of the network. From the communication cycle and the communication cycle based on the predetermined synchronization accuracy, it is possible to calculate the range in which the cycle for communicating the synchronization message to each control device via the network should be set.
  • the range calculation unit calculates the communication cycle and the longer cycle based on predetermined synchronization accuracy as the upper limit value and the lower limit value of the range, respectively.
  • the information processing device sets the range to be equal to or more than the communication cycle based on the processing load of each control device and the communication load of the network and equal to or less than the communication cycle based on the predetermined synchronization accuracy. calculate.
  • the information processing device includes a range display unit that displays the range of cycles calculated by the range calculation unit on a display, and a range of the calculated cycles based on a user operation on the information processing device.
  • a determination unit that determines a period for communicating the message to each control device via the network.
  • the user can selectively determine the cycle for communicating the synchronization message to each control device via the network from the communication cycle range calculated and displayed by the information processing device.
  • the range display unit causes the display to display the default cycle according to the communication protocol applied to the network in association with the range.
  • data indicating the cycle determined by the determination unit is set in each control device.
  • the information processing device can automatically set the determined communication cycle to each control device.
  • the information processing device further includes an evaluation unit that evaluates synchronization accuracy when each control device executes time synchronization processing according to a synchronization message transmitted based on the determined cycle.
  • the user can use the evaluated synchronization accuracy as support information for judging the validity of the period determined by the user.
  • the first calculation unit calculates the margin time and the required time from the first information, and the first information is a predetermined period, the processing performance of each control device, and the control-related
  • the second calculation unit calculates the available bandwidth, the bandwidth based on the network load, and the bandwidth required for communication of one synchronization message from the second information.
  • the second information includes items of network transmission performance, bandwidth required for processing by each control device, and time synchronization performance of each control device
  • the information processing device further includes items of the first information
  • a UI user interface
  • the user can check the items for calculating the first communication cycle and the second communication cycle for determining the range and the synchronization accuracy, and can operate and adjust these items. .
  • the UI further displays one or more change modes for changing the calculated range, items to be adjusted in association with each change mode, and adjustment amounts.
  • the item to be adjusted to realize the change mode is The amount of adjustment can be obtained.
  • the UI further calculates a communication cycle range based on the first information, the second information, and the predetermined synchronization accuracy when an adjustment operation is received from the user. start the department.
  • the information processing device calculates the range based on the item adjusted by the user's operation, so the user can determine the appropriateness of the adjustment amount of the item from the calculated range.
  • the plurality of control devices constitute a distributed control system provided for each different FA process.
  • control device connects one or more devices to be controlled, and the predetermined cycle indicates the control cycle.
  • the range of communication cycles of synchronization messages for time synchronization can be set using control cycles.
  • a method is a method of processing communication cycles of a plurality of control devices connected to a FA (factory automation) network, wherein each of the plurality of control devices performs control-related processing and synchronization
  • An execution unit that executes processing including time synchronization processing for synchronizing time between control devices according to the message, and the method includes calculating a period range for communicating a synchronization message to each control device via a network.
  • the margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle and the time of one execution by the control device
  • a step of calculating a first communication cycle from the time required for synchronization processing, a surplus bandwidth obtained by removing a bandwidth based on the network load from the available bandwidth of the network, and a bandwidth required for communication of one synchronization message.
  • the communication cycle is based on the processing load of each control device and the communication load of the network. and the communication cycle based on the predetermined synchronization accuracy, the range in which the cycle of communicating the synchronization message to each control device via the network should be set can be calculated.
  • a program for causing a processor to execute the method described above.
  • a synchronization message is sent to each control device via the network based on the communication cycle based on the processing load of each control device and the communication load on the network, and the communication cycle based on the predetermined synchronization accuracy.
  • the range in which the communication period should be set can be calculated.
  • FIG. 2 is a block diagram showing a hardware configuration example of a control device 2 according to this embodiment
  • FIG. 2 is a block diagram showing a hardware configuration example of a support device 500 according to this embodiment
  • FIG. 2 is a block diagram showing a software configuration example of a control device 2 according to the embodiment
  • FIG. 5 is a diagram schematically showing a module configuration of support device 500 according to the present embodiment
  • FIG. 5 is a flowchart showing a schematic process of communication cycle setting according to the present embodiment; It is a figure which shows an example of the calculation process of the 1st communication period based on the processing load which concerns on this Embodiment.
  • FIG. 9 is a diagram showing an example of calculation processing of a second communication cycle based on network load according to the present embodiment;
  • FIG. 10 is a diagram showing a data flow in setting a range of communication cycles according to the present embodiment; 5 is a graph schematically showing the relationship between synchronization accuracy and the number of nodes;
  • FIG. 5 is a diagram showing an example of a UI screen for communication cycle setting according to the present embodiment;
  • FIG. 10 is a diagram showing another example of a UI screen for communication cycle setting according to the present embodiment;
  • FIG. 10 is a diagram showing an example of a UI screen for adjusting setting conditions of a periodic range according to the embodiment;
  • FIG. 3 is a diagram showing an example of a PTP communication sequence;
  • control device has a management timer that manages time.
  • the control device executes a "time synchronization process" for matching the management timer with the reference timer that manages the reference time.
  • FIG. 1 is a diagram schematically showing an example of the overall configuration of a control system 1 according to this embodiment.
  • the control system 1 realizes the FA of the production line. More specifically, in the control system 1, networks are connected at multiple levels, and different functions are assigned to the networks at each level. Specifically, but not exclusively, for example, four levels of networks 11-14 are provided.
  • the network 11 is a control level network.
  • the network 11 connects a plurality of control devices 2A, 2B and 2C, a device/line management device 190, and a display device 280 that provides a SCADA (Supervisory Control And Data Acquisition) function.
  • a data link is formed through which data can be exchanged.
  • the controllers 2A, 2B and 2C are referred to as "controller 2" when not distinguished.
  • the network 11 mainly transmits information related to time synchronization and control systems.
  • One or more field devices 90 are connected to the control device 2 . These field devices 90 may be directly connected to the control device 2 or may be connected to the control device 2 via the network 110 . Each of the one or more field devices 90 exchanges information between an actuator that exerts some physical action on a manufacturing device or a production line (hereinafter also collectively referred to as "field") and the field. Including input/output devices.
  • the control system 1 shown in FIG. 1 has a field level network 110 in addition to the four levels of networks 11-14.
  • 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 microseconds to several tens of milliseconds. Note that such update processing of exchanged data is also called input/output refresh processing.
  • the network 12 is provided as a management level network. Connected to the network 12 are a device/line management device 190 for managing devices and lines, and manufacturing management devices 380 and 390 for managing manufacturing plans and the like.
  • the equipment/line management device 190 and the manufacturing management equipments 380 and 390 exchange management information such as manufacturing plans and equipment or line information via the network 12 .
  • the network 13 is provided as a computer-level network. Connected to the network 13 are manufacturing control devices 380 and 390 and a manufacturing execution system (MES) 400 that manages a time series DB (abbreviation for database) 450 . Manufacturing control devices 380 and 390 and manufacturing execution system 400 exchange production control and information system data via network 13 .
  • MES manufacturing execution system
  • the manufacturing execution system 400 stores observed values, which are input values from the field devices 90 collected via the network 13, in the time-series DB 450 as time-series data according to the observed order. Specifically, in the present embodiment, control device 2 generates a frame containing a specified observation value and the time of the management timer, and transfers the frame to manufacturing execution system 400 via networks 11 , 12 and 13 .
  • the network 14 includes external networks such as the Internet.
  • the manufacturing execution system 400 and external devices 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 networks 11 to 14 and the network 110 adopt protocols and frameworks corresponding to such differences in required characteristics.
  • EtherNet/IP registered trademark
  • EtherCAT registered trademark
  • the protocol of the network 11 and the protocol of the network 110 may be the same or different.
  • general-purpose Ethernet As a protocol for the networks 13 and 14 belonging to the corporate network, general-purpose Ethernet or the like is used in order to ensure the diversity of connection destinations. By adopting general-purpose Ethernet, restrictions such as the amount of data that can be transmitted can be eliminated.
  • a support device 500 can be connected to the control device 2 or the device/line management device 190 .
  • the support device 500 is a device that assists preparations necessary for the control device 2 to control the controlled object.
  • the control system 1 comprises a distributed system 300 in which controllers 2A, 2B and 2C are provided in different processes 3A, 3B and 3C, respectively.
  • step 3A indicates a step of a parts feeder that conveys works (parts, members) while aligning them
  • step 3B indicates a step of moving the works aligned in step 3A by the Pick & Place operation of the robot.
  • step 3C shows the step of assembling the work after movement.
  • the operation of the field device 90 connected to the control device 2 of each process is different from the operation of the field device 90 connected to the control device 2 of the preceding and subsequent processes.
  • the operation in a certain process is performed in synchronization with the operations in the processes before and after that process.
  • the control device 2 pre-loads a control-related program including a sequence program for realizing sequence control and a motion program for realizing motion control of the field device 90 connected to the control device 2 based on a synchronized time.
  • Real-time control of the field device 90 is realized by executing it at each predetermined cycle (this is also called a control cycle).
  • time is intended to indicate a certain point in the flow of time, and is defined using units such as hours, minutes, and seconds.
  • a “timer” measures a value for controlling timing within the control device 2 and related devices, and basically includes a counter that is incremented or decremented by a predetermined value every predetermined unit time. can be configured.
  • the counter has a predetermined bit length representing, for example, an integer value.
  • the “synchronization accuracy” can be indicated based on the time difference (error or displacement) between the reference timer and the management timer of the control device 2 . Therefore, the smaller the time difference (error or displacement), the higher the "synchronization accuracy”, and the larger the time difference (error or displacement), the lower the "synchronization accuracy”.
  • the configuration that realizes time synchronization in FIG. 1 is, for example, a case where the network 11 implements data communication according to TSN (Time-Sensitive Networking), which is a protocol for industrial networks, and a case where the network 11 is EtherCAT (registered trademark: Ethernet for Control). and a case of implementing data communication according to Automation Technology).
  • TSN Time-Sensitive Networking
  • EtherCAT registered trademark: Ethernet for Control
  • Automation Technology a case of implementing data communication according to Automation Technology
  • the master serving as the "reference timer” is a timer possessed by any one of control devices 2A, 2B and 2C, and corresponds to the timer with the highest accuracy among these timers.
  • the master is not limited to the control device 2, but may be a timer of another device on the network 11 (eg device/line management device 190).
  • the support device 500 provides a support tool that assists the user in setting the communication cycle of synchronization messages for time synchronization when designing the control system 1 (or the distributed system 300).
  • the support device 500 executes communication cycle setting processing as a support tool. More specifically, the support device 500 calculates the range of communication cycles that can be set (step S5), and presents the calculated range to the user by displaying it (step S7). When the user determines a desired communication cycle within the presented communication cycle range by operating the support device 500, the support device 500 provides a command for setting the communication cycle data 200 indicating the communication cycle determined by the user. A notification is sent to each control device 2 (step S11). Details of the processing in steps S5, S7, and S11 will be described later with reference to FIG.
  • step S5 the support device 500 sets the range of cycles for communicating synchronization messages to each control device 2 via the network 11. More specifically, the support device 500 calculates the shortest communication cycle in the cycle range based on the processing load and network load of each control device 2, and sets the longest communication cycle to the system in the specifications, for example. Calculated based on the required synchronization accuracy.
  • the support device 500 sets the longer one of the first communication cycle based on the processing load of each control device 2 and the second communication cycle based on the network load as the shortest communication cycle. More specifically, the support device 500 defines the first communication cycle as a surplus time excluding the execution time of the processing based on the processing load of processing related to control in a predetermined cycle for each control device 2. and the required time for one time synchronization process executed by the control device 2 . Accordingly, the first communication period may correspond to one or more lengths of the predetermined period.
  • the support device 500 calculates the second communication cycle from the surplus bandwidth obtained by removing the bandwidth based on the network load from the available bandwidth of the network 11 and the bandwidth required for one synchronization message communication.
  • This network load may include, in addition to the load associated with communication between control devices 2 in network 11, the load associated with communication between control device 2 and a higher-level network (one or more of networks 12, 13 and 14).
  • the support device 500 selects the longer of both the longest cycle of the first communication cycles calculated for each control device 2 and the second communication cycle as the shortest communication cycle.
  • a communication cycle based on a predetermined synchronization accuracy is set to the longest communication cycle.
  • This predetermined synchronization accuracy includes the synchronization accuracy required for the control system 1 (more specifically, the distributed system 300).
  • the support device 500 presents the calculated communication cycle range of the synchronization message to the user.
  • the user determines the communication cycle to be set in each control device 2 within the presented communication cycle range, and the support device 500 transmits communication cycle data 200 notifying the determined communication cycle to each control device 2. do.
  • the user can set a communication cycle based on the processing load of each control device 2 and the network load, and which satisfies the synchronization accuracy required for the system.
  • "calculating" the load, cycle, range, etc. also includes estimating or estimating the load, cycle, range, etc.
  • the above-mentioned “margin time” corresponds to time during which time synchronization processing can be executed in a predetermined cycle.
  • “required time” indicates the time from the start to the end of processing when resources (such as processors) of the control device 2 that can be used for executing the processing are used only for executing the time synchronization processing.
  • the type of control-related processing executed by the control device 2 differ among the control devices 2, so the spare time and the required time also differ among the control devices 2.
  • FIG. Due to such characteristics of the distributed system 300, it is significant to calculate the shortest period using the first communication period based on the processing load of each control device 2.
  • the available bandwidth of the network 11 is preferentially allocated to control system data related to control-related processing in order to guarantee the data arrival time, and the surplus bandwidth is used in situations such as communication requests. Other data, such as synchronization messages, are allocated accordingly.
  • the size of the surplus band which is the remaining communication band of the network 11, changes according to the size of the "network load" including the band allocated to the control system data communication of the network 11 and the communication band with the upper network.
  • the second communication cycle also changes according to the magnitude of the network load. Due to such characteristics of network band allocation, it is significant to calculate the shortest period using the second communication period based on the network load.
  • control system 1 In control system 1 according to the present embodiment, the timers included in each of a plurality of control devices 2 are synchronized with each other. This realizes cooperative control of a plurality of field devices 90 that are connected to different control devices 2, that is, between different processes.
  • FIG. 2 is a schematic diagram showing a configuration example related to time synchronization according to this embodiment.
  • a distributed system 300 includes a plurality of control devices 2A, 2B and 2C and a plurality of field devices 90A-90I to be controlled.
  • the control system 1 employs a network in which at least some of the control devices are daisy chain connected.
  • controllers 2A, 2B and 2C functions as a master managing data transmission within corresponding network 110 .
  • Field devices 90A to 90I function as slaves that perform data transmission according to commands from corresponding masters.
  • the control devices 2A, 2B and 2C are connected to a control level 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 connected in a daisy chain to the network 110 connected to the control device 2B.
  • Field devices 90G, 90H and 90I are sequentially connected in a daisy chain to a network 110 that is sequentially connected in a chain and connected to the control device 2C.
  • the connection form of the field device 90 on the network 110 is not limited to a daisy chain.
  • control device 2 and the one or more field devices 90 can all be regarded as communication devices having a data transmission function. is transmitted to another adjacently connected communication device as needed.
  • Transmission and reception timings are synchronized between a plurality of communication devices connected to the network 110, that is, the control device 2 and one or more field devices 90 (corresponding to time synchronization (3) in the figure).
  • the control device 2 and the one or more field devices 90 each comprise timers that are time-synchronized with each other.
  • Controller 2 and one or more field devices 90 each determine when to transmit or receive data according to their time-synchronized timers.
  • timing represents the concept of timing, time, or time when some event occurs.
  • control device 2A includes timer 102A, and field devices 90A, 90B and 90C include timers 91A, 91B and 91C, respectively.
  • Timer 102A of controller 2A acts as a master, and timers 91A, 91B and 91C of field devices 90A, 90B and 90C synchronize timing with respect to this master. For example, values based on the timer value of timer 102A are set to 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.
  • Timer 102B of controller 2B acts as a master, and timers 91D, 91E and 91F of field devices 90D, 90E and 90F synchronize their timing with respect to this master. For example, values based on the timer value of timer 102B are set to 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.
  • Timer 102C of controller 2C acts as a master and timers 91G, 91H and 91I of field devices 90G, 90H and 90I synchronize their timing with respect to this master.
  • timers 91G, 91H and 91I are set to values based on the timer value of timer 102C.
  • each of the control devices 2A, 2B and 2C functions as a master that manages data transmission within the corresponding network 110, and the field device 90 connected to each control device 2 performs data transmission according to commands from the master. Acts as a slave to perform 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 and the field device 90 that constitute the network 110 .
  • the control device 2A further has a timer 101A synchronized with the timer 102A.
  • the control device 2B further has a timer 101B time-synchronized with the timer 102B.
  • the control device 2C further has a timer 101C time-synchronized with the timer 102C (corresponding to time synchronization (2) in the figure).
  • one of the timers 101A, 101B and 101C functions as a master of the control system 1 as a whole.
  • the timer 101A of the control device 2A is the master.
  • Timers 101B and 101C of controllers 2A and 2C are time synchronized with this master. Thereby, it is possible to mutually synchronize the time among the plurality of control devices 2A, 2B and 2C (corresponding to time synchronization (1) in the figure).
  • time synchronization (1), time synchronization (2) and (3) the timers of the control devices 2A, 2B and 2C are synchronized with each other, and the timers of the field devices 90 connected to each control device 2 are synchronized with each other. will do.
  • FIG. 3 is a diagram explaining data communication of the distributed system 300 according to the present embodiment.
  • NW is an abbreviation for network.
  • data is exchanged between control device 2A and a plurality of field devices 90A, 90B and 90C connected to network 110 according to a predetermined cycle based on time-synchronized timers.
  • the predetermined period is based on, for example, the control period.
  • control operations of the control device 2 and the field device 90 are realized by exchanging data through such “lower network (NW) communication” on the network 110 .
  • control timing of the field device 90 can be synchronized between the different processes that constitute the distributed system 300, and the required takt time can be achieved. can meet the time.
  • FIG. 4 is a block diagram showing a hardware configuration example of the control device 2 according to this embodiment.
  • FIG. 5 is a block diagram showing a hardware configuration example of the support device 500 according to this embodiment.
  • control device 2 includes processor 102, chipset 104, main memory device 106, secondary memory device 108, upper network controller 105, USB (Universal Serial Bus) controller 107, A memory card interface 109 , a field network controller 118 , a counter 126 and an RTC (Real Time Clock) 128 are included.
  • the processor 102 is composed of a CPU (Central Processing Unit), MPU (Microprocessor unit), GPU (Graphics Processing Unit), etc., reads various programs stored in the secondary storage device 108, and expands them to the main storage device 106. By executing the command, control according to the controlled object and various processes described later are realized.
  • the secondary storage device 108 is configured by, for example, a non-volatile storage device such as a HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • the main memory device 106 is composed of a volatile memory device such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
  • the chipset 104 realizes the processing of the control device 2 as a whole by controlling the processor 102 and each device.
  • Communication cycle data 200 is stored in the main storage device 106 .
  • the secondary storage device 108 stores not only system programs for realizing basic functions, but also user programs created according to the manufacturing devices and facilities to be controlled. Furthermore, the secondary storage device 108 also stores a time-series database as described later.
  • the host network controller 105 exchanges data with the manufacturing execution system 400 or devices on the cloud (see FIG. 1) via the host network 11 .
  • the USB controller 107 controls data exchange with the support device 500 via a USB connection.
  • the memory card interface 109 is configured such that a memory card 116 can be attached/detached, and data can be written to the memory card 116 and various data (user program, trace data, etc.) can be read from the memory card 116. ing.
  • the counter 126 is used as a time reference for managing execution timings of various processes in the control device 2 .
  • Counter 126 can be a "supervisory timer" or a "reference timer.”
  • the counter 126 of the control device 2A can constitute a reference timer
  • the counters 126 of the control devices 2B and 2C can constitute a management timer.
  • Counter 126 typically increments or decrements the counter value at predetermined intervals.
  • the counter 126 may be implemented using a hardware timer such as a high precision event timer (HPET: High Precision Event Timer) placed on the system bus that drives the processor 102, or an ASIC (Application It may be implemented using a dedicated circuit such as Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
  • HPET High Precision Event Timer
  • ASIC Application It may be implemented using a dedicated circuit such as Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
  • the RTC 128 is a kind of counter with a clock function, and provides the current time to the processor 102 and the like.
  • the field network controller 118 controls data exchange 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, .
  • Counters (counters 91A and 91B) of devices such as the counter 119 and the field device 90, the same configuration as the counter 126 described above can be adopted.
  • Counter 119 is synchronized with counter 126 .
  • the field network controller 118 functions as a communication master for performing periodic communication via the network 110, and calculates 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 successively monitored, and if necessary, a synchronization signal is output for instructing correction to a device in which a discrepancy has occurred in the counter value. In this way, the field network controller 118 has a synchronization management function of 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 .
  • FIG. 4 shows a configuration example in which necessary functions are provided by the processor 102 executing a program.
  • the main part of the control device 2 may be realized using hardware conforming to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer).
  • virtualization technology may be used to run multiple OSs (Operating Systems) for different purposes in parallel, and to run necessary applications on each OS.
  • control device 2 and the support device 500 are configured as separate units, but a configuration is adopted in which all or part of these functions are integrated into a single device. You may
  • support device 500 corresponds to an information processing device such as a computer.
  • the support device 500 includes portable and stationary information processing devices.
  • the support device 500 includes a CPU (Central Processing Unit) 501, a memory 502 composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory), a timer 503, and a hard disk composed of a non-volatile storage device such as an HDD. 504 , an input interface 505 , a display controller 506 , a communication interface 507 and a data reader/writer 508 .
  • These units are connected via a bus 509 so as to be able to communicate with each other.
  • the input interface 505 mediates data transmission between the CPU 501 and input devices such as a keyboard 510, a mouse (not shown), and a touch panel (not shown).
  • the display controller 506 is connected to the display 511 and displays the results of processing in the CPU 501 and the like.
  • Communication interface 507 communicates with control device 2 or device/line management device 190 via USB.
  • Data reader/writer 508 mediates data transmission between CPU 501 and memory card 512, which is an external storage medium.
  • the memory card 116 in FIG. 4 and the memory card 512 in FIG. 5 include a volatile storage medium or a non-volatile storage medium, for example, CF (Compact Flash: registered trademark), SD (Secure Digital), and other general-purpose storage media. It includes a semiconductor storage device, a magnetic storage medium such as a flexible disk, or an optical storage medium such as a CD-ROM (Compact Disk Read Only Memory).
  • CF Compact Flash: registered trademark
  • SD Secure Digital
  • CD-ROM Compact Disk Read Only Memory
  • the hard disk 504 stores various programs and data.
  • FIG. 5 particularly shows programs and data related to the setting support tool 560 among the tools of the support device 500 .
  • the hard disk 504 stores a setting support program 561 and specification data 550 indicating specifications of the control system 1 or distributed system 300 .
  • the setting support program 561 includes an item setting program 565 for setting items for calculating the communication cycle, a range calculation program 570 for calculating the range of the communication cycle, and the calculated cycle range displayed on the display. 511 to present to the user, a determination program 590 for determining the communication cycle based on user operation, and communication cycle data 200 indicating the determined communication cycle to each control device 2. and a setting program 595 of .
  • the range calculation program 570 includes a first calculation program 571 for calculating the above-described first communication cycle based on the processing load of each control device 2 and a second calculation program for calculating the above-described second communication cycle based on the network load. program 572;
  • the determination program 590 includes a user assistance program 591 that assists the user in resetting the communication cycle range, and an evaluation program 592 that evaluates the communication cycle determined based on the user's operation.
  • FIG. 6 is a block diagram showing a software configuration example of the control device 2 according to this embodiment.
  • control device 2 includes execution engine 150 , time series database 180 , host connection program 192 and gateway program 194 .
  • the execution engine 150 constitutes one type of program that executes various programs under the execution environment of various programs. Typically, this execution environment is provided by processor 102 of control device 2 reading a system program stored in secondary storage device 108, developing it in main storage device 106, and executing it.
  • the execution engine 150 includes a control program 152, a variable management program 160, an input program 172, and an output program 174 for realizing control-related processing related to control of the field device 90.
  • the execution engine 150 further includes a time synchronization program 177 for realizing time synchronization processing, and a gateway program 194 and a higher connection program 192 for realizing various processing including service processing related to control.
  • Execution engine 150 also includes a scheduler program 170 that manages the execution order of programs.
  • the control program 152 typically consists of a user program 154, a database writing program 156, and a serialization communication program 158.
  • the user program 154 corresponds to the main part that provides the control calculation function, and can be arbitrarily configured according to the manufacturing equipment or equipment to be controlled by the control device 2 .
  • the user program 154 can be defined, for example, by ladder logic using function blocks.
  • the database writing program 156 is called by instructions defined in the user program 154 and writes specified data to the time series database 180 .
  • the serialization communication program 158 serializes data written from the database writing program 156 to the time-series database 180 .
  • the gateway program 194 communicates with devices on the cloud. For example, the time-series data 182 of the time-series database 180 is provided to a device that provides IoT services on the cloud.
  • Database writing program 156, serialization communication program 158, and gateway program 194 may be optional components.
  • variable management program 160 manages values that can be used by the execution engine 150 in the form of variables. More specifically, the variable management program 160 stores system variables indicating the state of the control device 2, device variables indicating values held by various devices such as the field device 90 connected to the control device 2, and control device variables. 2 manages user variables that indicate values held by the user program 154 executed in step 2.
  • the input program 172 provides a function of acquiring input data from field devices 90 including devices such as actuators and sensors connected to the control device 2 .
  • the output program 174 outputs command values (output data) calculated by the user program 154 executed in the control device 2 to the field device 90 which is a target device connected via the network 110 .
  • the time synchronization program 177 mainly implements the processing of time synchronization (1) shown in FIG. Time synchronization processing will be described later with reference to FIG.
  • the scheduler program 170 manages the allocation of resources, including the processor 102, execution timing, etc., for the processes or tasks of the control device 2 according to the execution priorities assigned to the processes or tasks.
  • Such processes or tasks include processes or tasks that can be generated by the control device 2 executing the control program 152, the variable management program 160, the input program 172, the output program 174, the time synchronization program 177, and the like.
  • the time-series database 180 is typically located in the main storage device 106 or the secondary storage device 108, and has the function of storing data and responding to external requests (queries) with specified data. Equipped with a search function to Time series database 180 stores time series data 182 written by database writing program 156 . That is, the time-series database 180 stores at least 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 time series.
  • the host connection program 192 exchanges data with external devices connected to the host network 13 such as the manufacturing execution system 400 .
  • input data and calculation data can be output from the control device 2 to the manufacturing execution system 400 and manufacturing information can be received from the manufacturing execution system 400 .
  • the manufacturing execution system 400 has the time series DB 450 of FIG.
  • a database connection program 193 (the database is indicated as "DB" in the figure) can be provided instead of the host connection program 192, or as part of the host connection program 192.
  • the database connection program 193 By executing the database connection program 193 , the time series data 182 of the time series database 180 in the control device 2 can be transferred to the manufacturing execution system 400 and stored in the time series DB 450 .
  • the variable management program 160 manages the input data (state values) that the input program 172 acquires from the field and the manufacturing data that the upper connection program 192 acquires from the manufacturing execution system 400 as variables.
  • the user program 154 refers to system variables, device variables, and user variables managed by the variable management program 160, executes a control operation specified in advance, and outputs the execution result (output data) to the variable management program 160. do.
  • FIG. 7 is a diagram schematically showing the module configuration of support device 500 according to the present embodiment.
  • the modules shown in FIG. 7 are implemented by executing programs corresponding to the modules stored in the hard disk 504 of FIG.
  • the setting support tool 560 includes an item setting unit 520 corresponding to the item setting program 565 and a range calculating unit 530 corresponding to the range calculating program 570.
  • the range calculator 530 has a first calculator 531 and a second calculator 532 corresponding to the first calculator 571 and the second calculator 572 .
  • the setting support tool 560 further includes a range display section 535 corresponding to the range display program 580 , a determination section 536 corresponding to the determination program 590 , and a setting section 539 corresponding to the setting program 595 .
  • the determination unit 536 includes a user support unit 537 corresponding to the user support program 591 and an evaluation unit 538 corresponding to the evaluation program 592 .
  • the user support unit 537 includes a user interface UI (User Interface) 53 .
  • the support device 500 is associated with the setting support tool 560 and includes a display control unit 540 that controls the display 511 according to display control data based on the output from the setting support tool 560, and a user operation on the support device 500 via the keyboard 510. It has an operation receiving unit 541 for receiving.
  • the setting support tool 560 provides a UI including a display control unit 540 and an operation reception unit 541.
  • UI is a concept including a graphical user interface (GUI).
  • GUI graphical user interface
  • the item setting unit 520 sets data retrieved from the specification data 550 as items for calculating the range of the communication cycle.
  • Specification data 550 represents design specifications for control system 1 or distributed system 300 . More specifically, the specification data 550 includes, for each control device 2, UPG specification data 551 indicating the specification of UPG (User Program) executed in the control device 2, and control data indicating the control cycle in each control device 2.
  • Cycle data 552 system configuration data 553 indicating the configuration of the system, upper NW (abbreviation of network) load data 554 indicating the load related to the network 11 by communication via the upper networks 12, 13, 14, and data necessary for the system. synchronization accuracy 555.
  • the UPG specification data 551 indicates specifications of a UPG program for realizing control-related processing related to control executed in the control device 2 . More specifically, the UPG programs include control program 152 , variable management program 160 , input program 172 and output program 174 .
  • the UPG specification data 551 includes, for example, the size of each program (number of instructions, number of steps, etc.).
  • the system configuration data 553 includes the number of devices (control devices 2) connected to the network 11 (also referred to as the number of nodes), the topology, the type of each device, and various performance information.
  • the performance information includes the processing performance of each control device 2 (processor operation speed, memory size/speed, etc.), the transmission performance of the network 11 (communication speed, various bands, etc.), and the time synchronization performance of each control device 2 .
  • the information indicating the performance of time synchronization is a value having a correlation with the synchronization accuracy, for example, the resolution of the time stamp described later, the sync retention time, the maximum frequency drift, the maximum frequency jitter, etc., and one synchronization It may include the bandwidth required for message communication and the bandwidth required during execution of control-related processing.
  • the programs stored in the hard disk 504 of FIG. 5 may be provided as individual programs as shown in FIG. 5, or two or more programs may be combined and provided as one program.
  • the scheduler program 170 when executed, implements a scheduler that manages the execution order of processes in a control cycle.
  • the scheduler allocates resources, including the processor 102, to the processes or tasks of control-related processing, time synchronization processing, and service processing according to execution priorities pre-assigned to the processing.
  • the highest priority is assigned to the process or task of control-related processing
  • the lowest priority is assigned to the process or task of time synchronization processing and service processing.
  • the scheduler allocates the processor 102 to the control-related process with the highest priority in the control cycle, and allocates the processor 102 to the low-priority process in the remaining "slack time" after the execution of the control-related process is completed.
  • each control device 2 is guaranteed to execute the control-related processing within the control period, and the data exchanged between the control devices 2 is preferentially transmitted to the network 11.
  • the time synchronization process is mainly executed during the "slack time" of the control cycle.
  • the control system 1 can adopt a high precision time synchronization protocol such as IEEE1588, IEEE802.1AS, IEEE802.1AS-Rev.
  • IEEE 1588 defines PTP (Precision Time Protocol) as a high-precision time synchronization protocol.
  • PTP can be applied to a communication system that includes a master, which is a reference timer, and a slave, which is a timer that synchronizes to the reference timer.
  • frames with synchronization messages are periodically exchanged between the master and the slave, and based on the information obtained in the process, the time of the slave is adjusted to match the time of the master.
  • FIG. 16 is a diagram showing an example of the PTP time synchronization processing sequence.
  • time synchronization between the master and the slave is achieved by linking the master M and the slave S.
  • master M communicates with slave S without a repeater.
  • the master M sends a Sync message 169 to the slave S at time T1, and the slave S receives the Sync message 169 from the master at time T2.
  • Master M then sends a Follow_Up message to slave S including information indicating time T1.
  • slave S receives the Follow_Up message, it records time T1 and time T2.
  • slave S sends a Delay_Req message to master M at time T3.
  • the master M receives the Delay_Req message at time T4, it sends a Delay_Resp message to the slave S.
  • the Delay_Resp message contains information indicating time T4.
  • the slave S receives the Delay_Resp message, it can confirm that the master M has received the Delay_Req message, so it records time T3 and time T4.
  • the slave S records times T1, T2, T3, and T4 (that is, four time stamps).
  • the slave S synchronizes the time of the slave S with the master M so as to eliminate errors including communication delay time based on these time stamps.
  • the magnitude of the error represents "synchronization accuracy”.
  • Master M and slave S correspond to timer 101A of control device 2A and timer 101B of control device 2B (or timer 101C of control device 2C), respectively.
  • the control device 2 executes a correction process for correcting the time of the slave S so as to eliminate the above error.
  • Correction processing is realized by executing the correction program 178 .
  • the upper limit of the amount of correction per time is determined. Therefore, when the error is large, it is necessary to repeat the correction process multiple times, that is, to complete the correction process, it is necessary to take one or more control cycles. If the master sends the Sync message 169 (or the slave S receives the Sync message 169) before completing the correction process, the correction process based on the new time stamp cannot be executed immediately. decreases.
  • the setting support tool 560 is configured to set a communication cycle that guarantees completion of correction processing.
  • time synchronization processing includes message communication processing related to the communication sequence of FIG.
  • Communication cycle indicates a cycle for transmitting a synchronization message between master M and slave S via network 11 . More specifically, the communication cycle indicates the cycle in which the master M transmits the Sync message 169 to the slave S or the cycle in which the slave S receives the Sync message 169 from the master M.
  • the scheduler of each control device 2 allocates the processor 102 to message communication processing according to the communication cycle indicated by the communication cycle data 200 set by the setting support tool 560 . Thereby, each control device 2 can set the timing of communicating the Sync message 169 when the control device 2 completes the correction process, and as a result, accurate correction can be guaranteed.
  • the time synchronization protocol is not limited to PTP, and other wired or wireless communication protocols can be applied.
  • NTP Network Time Protocol
  • SNTP Simple Network Time Protocol
  • GPS Global Positioning System
  • Synchronous Ethernet registered trademark
  • CS-NMS Lock-sampling mutual network when NW bandwidth is limited
  • RBS Reference Broadcast Synchronization
  • RBIS Reference Broadcast Infrastructure Synchronization
  • FIG. 8 is a flow chart showing a schematic process of communication cycle setting according to the present embodiment.
  • the process of FIG. 8 includes a process of setting a "period range" which is a range in which the communication period of the synchronization message can be set, a process of determining the communication period from the period range based on the user's operation, and distributing the determined communication period. and processing to be set in the type system 300 .
  • the user operates the keyboard 510 to create specifications for the distributed system 300, and the CPU 501 stores specification data 550 indicating the created specifications in the hard disk 504 (step S1).
  • the CPU 501 executes the process of step S3 as the item setting unit 520 (step S3). More specifically, CPU 501 displays specification data 550 on display 511 .
  • the user activates the setting support tool 560 and inputs item data for setting the period range to the support device 500 .
  • the CPU 501 executes the processes of steps S5 to S11. More specifically, the CPU 501, as the item setting unit 520, sets item data based on the user operation, and the CPU 501, as the range calculation unit 530, calculates the periodic range based on the item data (step S5). , the range display unit 535 presents the calculated periodic range to the user via the display 511 (step S7). More specifically, in step S ⁇ b>7 , the CPU 501 causes the display 511 to display an image indicating the periodic range via the display control unit 540 . The CPU 501 , as the determination unit 536 , determines a user-specified communication cycle from within the cycle range displayed on the display 511 based on the user's operation from the keyboard 510 .
  • the CPU 501 determines whether or not a user operation for determining the communication cycle has been received via the operation receiving unit 541 (step S9). As 539, notification of the communication cycle data 200 indicating the determined communication cycle is transmitted to each control device 2 connected to the network 11 (step S11). Each control device 2 of the distributed system 300 sets the communication cycle data 200 notified from the support device 500 to the control device 2 (step S17).
  • step S9 determines that the user operation for determining the communication cycle has not been received (NO in step S9), for example, if it has determined that the activation operation of the user support function for resetting the cycle range has been received
  • the CPU 501 The user support unit 537 displays support information for resetting on the display 511 (step S13). Based on the displayed reset support information, the user operates the keyboard 510 to input information for resetting the period range to the support device 500 (steps S15 and S1).
  • the CPU 501 recreates (changes) the specification data 550 based on the information input by the user (step S3).
  • step S5 activates the range calculation unit 530 based on the item data of the changed specification data 550, causes the range calculation unit 530 to recalculate the period range, and instructs the user to Presented (steps S5, S7).
  • the user can set the period range while interacting with the setting support tool 560 and determine the communication period from within the set period range.
  • the CPU 201 sets the period range using the lower limit and upper limit. More specifically, the setting support tool 560 sets a period range having a width from a communication period based on the processing load of control-related processing of each control device 2 and a network load to a communication period based on the required synchronization accuracy 555. set.
  • FIG. 9 is a diagram showing an example of calculation processing of the first communication cycle based on the processing load according to this embodiment.
  • FIG. 10 is a diagram showing an example of calculation processing of the second communication cycle based on network load according to the present embodiment.
  • FIG. 11 is a diagram showing the flow of data in setting the periodic range in this embodiment. As the setting support tool 560, the CPU 501 sets the periodic range by processing data according to the flow shown in FIG. In FIG. 11, data flow is shown in association with steps S1-S7 of the process of FIG.
  • the CPU 501 executes the process of FIG. 9 as the first calculator 531 . More specifically, the CPU 501 acquires a unit time Call for calculating the processing load.
  • the unit time Call is a fixed time, and indicates, for example, the control cycle indicated by the control cycle data 552 or one second. Further, the CPU 501 calculates the processing time (processing load) required for control-related processing from the program size indicated by the UPG specification data 551 and the operation speed of the processor 102 indicated by the system configuration data 553, and converts the calculated value into unit time.
  • the CPU 501 determines the processing time C1 indicating the processing time (processing load) required for one time synchronization process in the control device 2, and the size of the time synchronization program 177 indicated by the UPG specification data 551 and the system configuration data 553 indicate the processing time C1. It is calculated from the calculation speed of the processor 102 .
  • the CPU 501 calculates the first communication cycle TC min for each control device 2 according to the procedure described above.
  • the longest first communication cycle TC min among the first communication cycles TC min of each control device 2 is a candidate for the cycle T min described later.
  • the data amount N app corresponds to the communication load (NW load) related to the network 11 in executing UPG.
  • the CPU 501 acquires the usage bandwidth of the UPG that involves network communication among the UPGs of the control-related processing from the UPG specification data 551, and calculates the NW load from the sum of the usage bandwidth of the acquired UPG and the bandwidth indicated by the upper NW load data 554. Calculate the corresponding band N app .
  • the band N syn indicates a band (transmission data amount, NW load) available for time-synchronous message communication.
  • the CPU 501 configures the band N 1 (transmission data amount, NW load) used in one time synchronization message communication (communication sequence in FIG. 16).
  • the CPU 501 compares the longest cycle of the first communication cycles TC min of each control device 2 with the second communication cycle Tn min , and determines the longer one as the cycle T min . set to The period T min can be the lower limit of the period range.
  • the CPU 501 also calculates the communication cycle T max from the necessary synchronization accuracy 555 and the transmission performance of the network 11 acquired from the system configuration data 553 and the value indicating the time synchronization performance of each control device 2 .
  • the communication cycle T max can be the upper limit of the cycle range.
  • An arithmetic expression for calculating the upper limit value Tmax and an arithmetic expression for calculating the PTP synchronization accuracy E will be described.
  • An arithmetic expression for calculating the synchronization accuracy E is known to be expressed by, for example, the following arithmetic expression (1).
  • Equation 1 (0.5 ⁇ b ⁇ (sync) 2 )+(a ⁇ b ⁇ c ⁇ d)+e (Formula 1)
  • the variable sync used in parentheses in the first term indicates the transmission cycle of the sync message 169, that is, the communication cycle for time synchronization. Note that the transmission cycle of other messages may be set to the variable sync.
  • Other variables in equation (1) indicate a value that depends on the time synchronization performance of the node (control device 2) connected to the network 11 and the maximum number of nodes connected to the network 11. As the number of nodes increases, Synchronization accuracy E calculated by (Equation 1) decreases.
  • step S5 the CPU 501 acquires the values of the variables a, b, c, d, and e from the time synchronization performance of the node (control device 2) of the system configuration data 553, and these acquired values and the necessary
  • the variable sync is calculated from (Equation 1) using the synchronization accuracy 555 (that is, corresponding to "E” in Equation 1).
  • the value of the variable sync that satisfies the required synchronization precision 555 that is, the communication period Tmax of the synchronization message is calculated.
  • the CPU 501 sets the communication cycle Tmax indicated by the calculated variable sync as the upper limit value of the cycle range.
  • FIG. 12 is a graph schematically showing the relationship between synchronization accuracy and the number of nodes.
  • the vertical axis indicates the synchronization accuracy (magnitude of error)
  • the horizontal axis indicates the number of nodes (the number of control devices 2).
  • FIG. 12 graphically shows changes in synchronization accuracy when the values 121 and 123 of the variable Sync are changed based on the simulation results.
  • the CPU 501 can acquire the upper limit value (communication cycle T max ) of the cycle range capable of satisfying the required synchronization accuracy 555 from the system configuration data 553 (the number of nodes, etc.) and (Formula 1).
  • FIG. 13 is a diagram showing an example of a UI screen for communication cycle setting according to this embodiment.
  • the CPU 501 as the range display unit 535, executes the process of step S7.
  • the UI screen of FIG. 13 is an example of a screen for accepting a user operation specifying a communication cycle, and is displayed in step S7 of FIG.
  • the screen of FIG. 13 shows a cycle range (T min to T max ), and an indicator 601 indicating the default cycle T def recommended by TSN and the median value T cen of T min to T max in association with the cycle range, It includes a communication cycle table 609 having reference values 602 for each of the communication cycles T min , T def , T cen , T max and the user-configured cycle T usr .
  • the reference value 602 of the communication cycle table 609 is a value (unit: ms) indicating the communication cycle 31 for each of the corresponding communication cycles T min , T def , T cen , T max and the cycle T usr , and based on the communication cycle.
  • synchronization accuracy 32 (unit: ⁇ s) that can be ensured for a period of time 31, a processing load 33 related to the processor 102 and a NW load 34 related to the network 11 when synchronous communication processing is executed in the communication cycle 31.
  • FIG. A processing load 33 (unit: %) indicates processing time C sync /unit time
  • a NW load 34 (unit: %) indicates data amount N sync /bandwidth N all .
  • reference value 602 (synchronization accuracy 32, processing load 33 and NW load 34) is calculated.
  • the required synchronization accuracy 555 indicated by the specification data 550 for example 10 ⁇ s, is marked with an emphasis mark (star mark in FIG. 13).
  • Reference values 602 in FIG. 13 are exemplary and not limiting.
  • the user can use the reference value 602 as support information for setting the communication cycle.
  • the user designates the default period T def (125 ms) recommended by TSN, for example, from the reference value 602 as a period having accuracy higher than the required synchronization accuracy 555 .
  • the CPU 501 determines the default period T def as the set period 604 based on the specifying operation.
  • the user can also determine a period other than the communication period 31 indicated by the reference value 602 in FIG.
  • the CPU 501 evaluates the synchronization accuracy based on the communication cycle set by the user. More specifically, when each control device 2 executes the time synchronization process in accordance with the synchronization message transmitted based on the determined set cycle 604, the CPU 501 calculates the synchronization accuracy E so that the set cycle 604 Evaluate the synchronization accuracy corresponding to
  • the user operates the keyboard 510 to set the communication cycle 31 (setting cycle 604) in the item 603.
  • the CPU 501 calculates the synchronization accuracy acquired based on the communication cycle 31 set in the item 603 and sets the calculated value as the synchronization accuracy 32 in the item 603 .
  • the CPU 501 substitutes the value of the communication cycle 31 set by the user for the variable sync, and calculates the synchronization accuracy E of the communication cycle 31 by a predetermined arithmetic expression such as (Eq. is calculated, the processing load 33 and the NW load 34 are calculated, and the calculated values are set in the item 603 .
  • a predetermined arithmetic expression such as (Eq. is calculated, the processing load 33 and the NW load 34 are calculated, and the calculated values are set in the item 603 .
  • the user determines the information evaluated for the communication cycle 31 (set cycle 604), that is, the synchronization accuracy 32, the processing load 33, and the NW load 34, and finally determines the communication cycle 31 as the set cycle 604. It can be used as support information for determining whether or not to
  • the evaluation by the evaluation unit 538 is the calculation of the synchronization accuracy 32, the processing load 33 and the NW load 34, but is not limited to the calculation of all of these, and the synchronization accuracy 32, the processing load 33 and the NW load 34, in particular the calculation of the synchronization accuracy 32 .
  • step S11 of FIG. 8 the CPU 501 sends notification of the communication cycle data 200 indicating the set cycle 604 determined by the user's operation on the UI screen of FIG.
  • FIG. 14 is a diagram showing another example of the UI screen for communication cycle setting according to the present embodiment.
  • FIG. 15 is a diagram showing an example of a UI screen for adjusting the setting condition of the periodic range according to this embodiment.
  • FIG. 13 shows a case where the condition (T max ⁇ T min ) is satisfied.
  • the communication cycle cannot be determined in the cycle range where the condition of (T max ⁇ T min ) is satisfied.
  • the user operates the button 605 in FIG. 14 to activate the setting support function of the user support unit 537 in order to acquire the period range that enables determination of the communication period.
  • the CPU 501 causes the display 511 to display the setting support information 606 of FIG. 15 as the user support unit 537 .
  • the unit ms/s shown in FIG. 15 is a unit of processing load and represents processing time (ms) per unit time (s).
  • the UI screen of FIG. 15 is provided by UI53.
  • the UI screen includes setting support information 606 , a communication cycle table 609 and buttons 608 .
  • the setting support information 606 includes items of the specification data 550 that can be adjusted to satisfy the condition (T min ⁇ T max ).
  • the setting support information 606 includes a policy 611 (reducing T min 61a and increasing T max 61b) representing a change mode of the period range for satisfying the condition of (T min ⁇ T max ), a method 612, a current state 613 indicating the current value of an item to be adjusted (changed, etc.) in order to implement the method 612, a condition 614 indicating the adjustment amount of the value of the item indicated by the current state 613, and the current state 613 and an input 615 indicating the value after user adjustment operation of the indicated item.
  • a current state 613 indicates the current value of the item to be adjusted in the specification data 550 .
  • a condition 614 indicates an adjustment amount (increase or decrease and value) of the item value indicated by the current state 613 in order to satisfy (T min ⁇ T max ).
  • the user sets the value after adjustment (change) of one or more items among the items of the current state 613 of the setting support information 606 in FIG.
  • the user can adjust the value of the item based on the condition 614 corresponding to the item.
  • the items of the current status 613 include the control period for calculating the first period, the processing performance of each control device 2, the size of control-related processing and time synchronization processing, and the like. Items of the current status 613 include the transmission performance of the network 11, the bandwidth required for processing by each control device 2, the time synchronization performance of each control device 2, and the like, for calculating the first cycle. The item of the current status 613 also includes an item of necessary synchronization accuracy.
  • the UI 53 accepts a user operation for adjusting at least one item from the screen of FIG. 15 .
  • the user in adjusting the value of the item, for example, the user sets the adjusted NW band value 607 in the input 615 by the adjusting operation.
  • the CPU 501 activates the range calculation unit 530 .
  • the CPU 501 recalculates the range of the communication cycle based on the values of the items after the adjustment operation received in the input 615 of FIG.
  • the CPU 501 sets the recalculated period range data in the communication period table 609 of FIG. Based on the values set in the communication cycle table 609, the user can determine whether to determine the communication cycle within the recalculated cycle range, and whether to reflect the values of each item of the input 615 to the system specification data 550. can be judged.
  • the case where the periodic range is recalculated using the UI screen of FIG. 15 may be other than the case where the condition (T max ⁇ T min ) is satisfied.
  • the condition of (T max ⁇ T min ) is satisfied, the user wishes to change the period range (that is, recalculate the period range to change the value of T max or T min ) 15, the user can cause the CPU 501 to recalculate the period range based on the value of the input 615 after adjustment in FIG. .
  • the setting support tool 560 based on the processing load of each control device 2 and the NW load of the network 11, a periodic range that can satisfy the required synchronization accuracy 555 is calculated and presented to the user. be.
  • the user can use the setting support tool 560 when designing the distributed system 300 (when creating the specifications) or when creating the specification data 550 when designing the system. It is possible to reduce the man-hours for such debugging work, that is, the man-hours for trial-and-error setting of items related to the communication cycle.
  • the CPU 501 of the support device 500 executes a setting support program 561 to provide the user with a setting support tool 560 for period setting.
  • Hard disk 504 can store programs and data for realizing setting support tool 560 .
  • Programs and data for realizing the setting support tool 560 may be downloaded to the hard disk 504 via the communication interface 507 and various communication lines. Alternatively, it may be downloaded to hard disk 504 via memory card 512 .
  • the memory card 512 stores information such as programs by electrical, magnetic, optical, mechanical or chemical action so that computers, other devices, machines, etc. can read the information such as programs. It is a medium to Support device 500 may acquire programs or data relating to setting support tool 560 from this memory card 512 .
  • a program can be executed by one or more processors such as the CPU 501, or by a combination of processors and circuits such as ASIC (Application Specific Integrated Circuit) and FPGA (Field-Programmable Gate Array).
  • processors such as the CPU 501
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • the information processing device is A range calculation unit (530) for calculating a range of cycles for communicating the synchronization message to each of the control devices via the network,
  • the range calculation unit For each control device, a margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the time required for one time synchronization processing executed by the control device a first calculation unit (531) for calculating the first communication cycle (TC min ) from A second calculation unit that calculates a second communication cycle (Tn min ) from the surplus bandwidth obtained by removing the bandwidth based on the
  • the range calculation unit The information processing apparatus according to configuration 1, wherein the communication cycle and the longer cycle based on the predetermined synchronization accuracy are calculated as the upper limit value and the lower limit value of the range, respectively.
  • the information processing apparatus according to configuration 1 or 2 comprising: [Configuration 4] The information processing apparatus according to configuration 3, wherein the range display unit causes the display to display a default cycle (T def ) according to a communication protocol applied to the network in association with the range.
  • T def a default cycle
  • the first calculation unit calculates the margin time and the required time from the first information
  • the first information includes items of the predetermined period, the processing performance of each control device, and the sizes of the control-related processing and the time synchronization processing
  • the second calculation unit calculates the available bandwidth, the bandwidth based on the network load, and the bandwidth required for communication of one synchronization message from the second information
  • the second information includes items of transmission performance of the network, bandwidth required for processing by each control device, and time synchronization performance of each control device, a UI (user interface) (53) that displays the first information item, the second information item, and the predetermined synchronization accuracy item, and receives a user operation for adjusting at least one item; 7.
  • the information processing apparatus according to any one of configurations 1 to 6.
  • the UI further includes: Configuration 7, wherein one or more change modes (61a, 61b) for changing the calculated range, and an item (612) to be adjusted and an adjustment amount (614) associated with each change mode are displayed.
  • Information processing equipment [Configuration 9]
  • the UI further includes: activating the range calculation unit so as to calculate the range of the communication cycle based on the first information, the second information, and the predetermined synchronization accuracy when the adjustment operation is received from the user; , Configuration 7 or 8, the information processing apparatus.
  • Configuration 7 or 8 the information processing apparatus.
  • each of the plurality of control devices constitutes a distributed control system (300) provided for each different process of the FA.
  • the control device connects one or more devices to be controlled (90A to 90I), 11.
  • the method includes: A step (S5) of calculating a period range for communicating the synchronization message to each of the control devices via the network;
  • the step of calculating the range includes: For each control device, a margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the time required for one time synchronization processing executed by the control device a step of calculating a first communication cycle (TC min ) from calculating a second communication cycle (Tn min ) from a surplus bandwidth obtained by excluding a bandwidth based on a network load from the available bandwidth of the network and a bandwidth required for communication of one synchron

Abstract

The objective of the present invention is to set a communication cycle range that satisfies a synchronization accuracy, from a processing load of a control device and a network load. This information processing device: calculates a first communication cycle for each control device, from a surplus time based on a processing load for control-related processing in a pre-determined cycle, and a required time for performing time synchronization processing once; calculates a second communication cycle from a surplus bandwidth based on the network load and a bandwidth required to communicate one synchronization message; and calculates a range for a communication cycle for the synchronization message using the longer cycle from among both the longest cycle among the first communication cycles for each control device and the second communication cycle, and a communication cycle based on a predetermined synchronization accuracy.

Description

情報処理装置、方法およびプログラムInformation processing device, method and program
 本開示は、FA(Factory Automation)の制御システムの通信周期を設定する装置に関する。 The present disclosure relates to a device that sets the communication cycle of a FA (Factory Automation) control system.
 様々な生産現場において、PLC(Programmable Logic Controller)などの制御装置を用いた制御システムが広く普及している。制御システムとしては、1台の制御装置が周辺装置を制御するシステムに加えて、複数台の制御装置が互いにデータを遣り取りして協働で周辺装置を制御する分散制御システムが提案されている。分散制御システムでは、高精度に協働するために、複数の制御装置が互いに時刻同期することが望まれる。 Control systems using control devices such as PLCs (Programmable Logic Controllers) are widely used at various production sites. As a control system, in addition to a system in which a single controller controls peripheral devices, a distributed control system in which a plurality of controllers exchange data with each other and cooperatively control peripheral devices has been proposed. In a distributed control system, it is desired that multiple controllers be time-synchronized with each other in order to cooperate with high accuracy.
 例えば、特許文献1(特開2016-131332号公報)は、ネットワーク帯域の消費量を抑制して時刻同期を実現する構成を開示する。また、特許文献2(特開2018-88646号公報)は、トラフィックを低減して時刻同期を実現する構成を開示する。 For example, Patent Document 1 (Japanese Patent Application Laid-Open No. 2016-131332) discloses a configuration that realizes time synchronization while suppressing network bandwidth consumption. Further, Patent Document 2 (Japanese Patent Application Laid-Open No. 2018-88646) discloses a configuration that realizes time synchronization by reducing traffic.
特開2016-131332号公報JP 2016-131332 A 特開2018-88646号公報JP 2018-88646 A
 FAの制御システムにおいて、要求される同期精度を満たすことができても、処理に係る負荷およびネットワークに係る負荷が大きくなってしまい、分散制御の精度が確保できない可能性が生じる。より具体的には、各制御装置において制御周期において制御処理にかかる負荷が高い場合は、制御周期内で制御処理を完了することができない。また、ネットワークにおいて制御装置間の通信のための通信帯域を確保しなければならないが、時刻同期のための通信によってネットワーク帯域が圧迫されてしまうと、当該通信帯域の確保が困難となる。 Even if the required synchronization accuracy can be met in the FA control system, the processing load and the network load will increase, and there is a possibility that the accuracy of distributed control cannot be ensured. More specifically, when the control processing load is high in each control device during the control cycle, the control processing cannot be completed within the control cycle. In addition, a communication band must be secured in the network for communication between the control devices, but if the network band is squeezed by the communication for time synchronization, it becomes difficult to secure the communication band.
 したがって、時刻同期のための通信周期を短くするほど同期精度はよくなる一方で、時刻同期処理に係る負荷またはネットワークに係る負荷は高くなるので、時刻同期の処理に係る負荷またはネットワークに係る負荷と時刻同期の高精度化との間には、いわゆるトレードオフの関係があり、適切な通信周期の設定処理が望まれる。 Therefore, the shorter the communication cycle for time synchronization, the better the synchronization accuracy, but the higher the load related to time synchronization processing or the load related to the network. There is a so-called trade-off relationship with high-precision synchronization, and an appropriate communication cycle setting process is desired.
 本開示に係る情報処理装置は、FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する情報処理装置であって、各複数の制御装置は、制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理とを含む処理を実行し、情報処理装置は、同期メッセージを、ネットワークを介し各制御装置に通信する周期の範囲を算出する範囲算出部を備え、範囲算出部は、各制御装置について、予め定められた周期における制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の時刻同期処理の所要時間とから、第1の通信周期を算出する第1算出部と、ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出する第2算出部と、を含み、各制御装置の第1の通信周期のうちの最長周期および第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて範囲を算出する。 An information processing device according to the present disclosure is an information processing device that processes communication cycles of a plurality of control devices connected to a FA (factory automation) network, and each of the plurality of control devices has a control-related and a time synchronization process for synchronizing the time between the control devices according to the synchronization message, and the information processing device calculates the range of the cycle for communicating the synchronization message to each control device via the network. A range calculation unit is provided, and the range calculation unit calculates, for each control device, the margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the one time executed by the control device A first calculation unit that calculates a first communication cycle from the time required for time synchronization processing, a surplus bandwidth obtained by removing the bandwidth based on the network load from the available bandwidth of the network, and one synchronization message communication and a second calculation unit that calculates a second communication cycle from the bandwidth required for each control device, and which of the longest cycle of the first communication cycles and the second communication cycle of each control device is the longest The range is calculated using the one communication cycle and the communication cycle based on the predetermined synchronization accuracy.
 上述の開示によれば、同期メッセージに従い制御装置間で時刻同期処理を実施する複数の制御装置がネットワーク接続される構成において、情報処理装置は、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期と、予め定められた同期精度に基づく通信周期とから、同期メッセージをネットワークを介して各制御装置に通信する周期を設定するべき範囲を算出できる。 According to the above disclosure, in a configuration in which a plurality of control devices that perform time synchronization processing between control devices according to a synchronization message are connected to a network, the information processing device is based on the processing load of each control device and the communication load of the network. From the communication cycle and the communication cycle based on the predetermined synchronization accuracy, it is possible to calculate the range in which the cycle for communicating the synchronization message to each control device via the network should be set.
 上述の開示において、範囲算出部は、範囲の上限値および下限値として、それぞれ、予め定められた同期精度に基づく通信周期および長い方の周期を算出する。 In the above disclosure, the range calculation unit calculates the communication cycle and the longer cycle based on predetermined synchronization accuracy as the upper limit value and the lower limit value of the range, respectively.
 上述の開示によれば、情報処理装置は、範囲を、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期以上であって、予め定められた同期精度に基づく通信周期以下となるように算出する。 According to the above disclosure, the information processing device sets the range to be equal to or more than the communication cycle based on the processing load of each control device and the communication load of the network and equal to or less than the communication cycle based on the predetermined synchronization accuracy. calculate.
 上述の開示において、情報処理装置は、範囲算出部によって算出された周期の範囲をディスプレイに表示させる範囲表示部と、算出された周期の範囲のうちから、情報処理装置に対するユーザ操作に基づき、同期メッセージを、ネットワークを介し各制御装置に通信する周期を決定する決定部と、をさらに備える。 In the above disclosure, the information processing device includes a range display unit that displays the range of cycles calculated by the range calculation unit on a display, and a range of the calculated cycles based on a user operation on the information processing device. A determination unit that determines a period for communicating the message to each control device via the network.
 上述の開示によれば、ユーザは、情報処理装置によって算出されて表示される通信周期の範囲から、同期メッセージを、ネットワークを介し各制御装置に通信する周期を選択的に決定できる。 According to the above disclosure, the user can selectively determine the cycle for communicating the synchronization message to each control device via the network from the communication cycle range calculated and displayed by the information processing device.
 上述の開示において、範囲表示部は、ネットワークに適用される通信プロトコルに従うデフォルトの周期を、範囲に関連付けてディスプレイに表示させる。 In the above disclosure, the range display unit causes the display to display the default cycle according to the communication protocol applied to the network in association with the range.
 上述の開示において、範囲に関連付けて表示されるデフォルトの周期を目安に、ネットワークを介し各制御装置に通信する周期を選択的に決定できる。 In the above disclosure, it is possible to selectively determine the period for communicating with each control device via the network, using the default period displayed in association with the range as a guide.
 上述の開示において、決定部によって決定された周期を示すデータを、各制御装置に設定する。 In the above disclosure, data indicating the cycle determined by the determination unit is set in each control device.
 上述の開示によれば、情報処理装置は、ユーザ操作に基づき通信周期が決定されると、決定された通信周期を自動的に各制御装置に設定できる。 According to the above disclosure, when the communication cycle is determined based on the user's operation, the information processing device can automatically set the determined communication cycle to each control device.
 上述の開示において、情報処理装置は、各制御装置が、決定された周期に基づき送信される同期メッセージに従って時刻同期処理を実行する場合、同期精度を評価する評価部を、さらに備える。 In the above disclosure, the information processing device further includes an evaluation unit that evaluates synchronization accuracy when each control device executes time synchronization processing according to a synchronization message transmitted based on the determined cycle.
 上述の開示によれば、ユーザは、評価された同期精度を当該ユーザが決定した周期の妥当性を判断するための支援情報として利用できる。 According to the above disclosure, the user can use the evaluated synchronization accuracy as support information for judging the validity of the period determined by the user.
 上述の開示において、第1算出部は、第1の情報から、余裕時間と所要時間とを算出し、第1の情報は、予め定められた周期、各制御装置が有する処理性能、および制御関連処理と時刻同期処理のサイズの各項目を含み、第2算出部は、第2の情報から、利用可能帯域、ネットワーク負荷に基づく帯域、および1回の同期メッセージの通信に必要な帯域を算出し、第2の情報は、ネットワークの伝送性能、各制御装置が処理に要する帯域と、各制御装置の時刻同期の性能の各項目を含み、情報処理装置は、さらに、第1の情報の項目、第2の情報の項目および予め定められた同期精度の項目を表示し、少なくとも1つの項目を調整するユーザ操作を受付けるUI(ユーザインターフェイス)を備える。 In the above disclosure, the first calculation unit calculates the margin time and the required time from the first information, and the first information is a predetermined period, the processing performance of each control device, and the control-related The second calculation unit calculates the available bandwidth, the bandwidth based on the network load, and the bandwidth required for communication of one synchronization message from the second information. , the second information includes items of network transmission performance, bandwidth required for processing by each control device, and time synchronization performance of each control device, and the information processing device further includes items of the first information, A UI (user interface) for displaying items of the second information and items of predetermined synchronization accuracy and accepting a user operation for adjusting at least one item is provided.
 上述の開示によれば、ユーザは、範囲を決定する第1の通信周期を第2の通信周期を算出するための項目および同期精度を確認して、これら項目を操作して調整することができる。 According to the above disclosure, the user can check the items for calculating the first communication cycle and the second communication cycle for determining the range and the synchronization accuracy, and can operate and adjust these items. .
 上述の開示において、UIは、さらに、算出された範囲を変更する1つ以上の変更態様と、各変更態様に関連付けて調整するべき項目と調整量とを表示する。 In the above disclosure, the UI further displays one or more change modes for changing the calculated range, items to be adjusted in association with each change mode, and adjustment amounts.
 上述の開示によれば、ユーザは項目を操作して調整する場合に、調整操作を支援する情報として、算出された範囲の変更態様毎に、当該変更態様を実現するために調整するべき項目と調整量とを取得できる。 According to the above disclosure, when a user operates and adjusts an item, as information supporting the adjustment operation, for each change mode of the calculated range, the item to be adjusted to realize the change mode is The amount of adjustment can be obtained.
 上述の開示において、UIは、さらに、調整する操作をユーザから受付けた場合に、第1の情報、第2の情報および予め定められた同期精度に基づき通信周期の範囲を算出するよう、範囲算出部を起動する。 In the above disclosure, the UI further calculates a communication cycle range based on the first information, the second information, and the predetermined synchronization accuracy when an adjustment operation is received from the user. start the department.
 上述の開示によれば、情報処理装置は、ユーザ操作によって調整された項目に基づき、範囲を算出するから、ユーザは、算出された範囲から、当該項目の調整量の妥当性を判断できる。 According to the above disclosure, the information processing device calculates the range based on the item adjusted by the user's operation, so the user can determine the appropriateness of the adjustment amount of the item from the calculated range.
 上述の開示において、複数の制御装置は、それぞれが、FAの異なる工程毎に備えられる分散型の制御システムを構成する。 In the above disclosure, the plurality of control devices constitute a distributed control system provided for each different FA process.
 上述の開示によれば、分散型制御システムについて、異なる工程に備えられた制御装置間で予め定められた同期精度で時刻同期するための同期メッセージの通信周期の範囲を算出できる。 According to the above disclosure, for a distributed control system, it is possible to calculate the range of communication cycles of synchronization messages for time synchronization with a predetermined synchronization accuracy between control devices provided in different processes.
 上述の開示において、制御装置は、1または複数の制御対象の機器を接続し、予め定められた周期は制御周期を示す。 In the above disclosure, the control device connects one or more devices to be controlled, and the predetermined cycle indicates the control cycle.
 上述の開示によれば、時刻同期するための同期メッセージの通信周期の範囲を、制御周期を用いて設定できる。 According to the above disclosure, the range of communication cycles of synchronization messages for time synchronization can be set using control cycles.
 本開示に係る方法は、FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する方法であって、各複数の制御装置は、制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理を含む処理を実行する実行部を有し、方法は、同期メッセージを、ネットワークを介し各制御装置に通信する周期の範囲を算出するステップを備え、範囲を算出するステップは、各制御装置について、予め定められた周期における制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の時刻同期処理の所要時間とから、第1の通信周期を算出するステップと、ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出するステップと、各制御装置の第1の通信周期のうちの最長周期および第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて範囲を算出するステップと、を含む。 A method according to the present disclosure is a method of processing communication cycles of a plurality of control devices connected to a FA (factory automation) network, wherein each of the plurality of control devices performs control-related processing and synchronization An execution unit that executes processing including time synchronization processing for synchronizing time between control devices according to the message, and the method includes calculating a period range for communicating a synchronization message to each control device via a network. In the step of calculating the range, for each control device, the margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle and the time of one execution by the control device A step of calculating a first communication cycle from the time required for synchronization processing, a surplus bandwidth obtained by removing a bandwidth based on the network load from the available bandwidth of the network, and a bandwidth required for communication of one synchronization message. a step of calculating a second communication cycle from, a longer communication cycle of both the longest cycle and the second communication cycle of the first communication cycles of each control device, and a predetermined synchronization and calculating the range using the accuracy-based communication period.
 上述の開示に係る方法によれば、同期メッセージに従い制御装置間で時刻同期処理を実施する複数の制御装置がネットワーク接続される構成において、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期と、予め定められた同期精度に基づく通信周期とから、同期メッセージをネットワークを介して各制御装置に通信する周期を設定するべき範囲を算出できる。 According to the method disclosed above, in a configuration in which a plurality of control devices that perform time synchronization processing among control devices according to a synchronization message are connected to a network, the communication cycle is based on the processing load of each control device and the communication load of the network. and the communication cycle based on the predetermined synchronization accuracy, the range in which the cycle of communicating the synchronization message to each control device via the network should be set can be calculated.
 本開示によれば、上記の記載の方法をプロセッサに実行させるためのプログラムを提供する。プログラムがプロセッサによって実行されると、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期と、予め定められた同期精度に基づく通信周期とから、ネットワークを介して各制御装置に同期メッセージを通信する周期を設定するべき範囲を算出できる。 According to the present disclosure, there is provided a program for causing a processor to execute the method described above. When the program is executed by the processor, a synchronization message is sent to each control device via the network based on the communication cycle based on the processing load of each control device and the communication load on the network, and the communication cycle based on the predetermined synchronization accuracy. The range in which the communication period should be set can be calculated.
 本開示によれば、制御装置の処理負荷とネットワーク負荷に基づき、同期精度を満たすような、時刻同期のための周期範囲を設定できる。 According to the present disclosure, it is possible to set a period range for time synchronization that satisfies the synchronization accuracy based on the processing load of the control device and the network load.
本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。It is a figure showing typically an example of the whole composition of control system 1 concerning this embodiment. 本実施の形態に係る時刻同期に関する構成例を示す模式図である。It is a schematic diagram which shows the structural example regarding the time synchronization which concerns on this Embodiment. 本実施の形態に係る分散型システム300のデータ通信を説明する図である。3 is a diagram for explaining data communication of distributed system 300 according to the present embodiment. FIG. 本実施の形態に係る制御装置2のハードウェア構成例を示すブロック図である。2 is a block diagram showing a hardware configuration example of a control device 2 according to this embodiment; FIG. 本実施の形態に係るサポート装置500のハードウェア構成例を示すブロック図である。2 is a block diagram showing a hardware configuration example of a support device 500 according to this embodiment; FIG. 本実施の形態に係る制御装置2のソフトウェア構成例を示すブロック図である。2 is a block diagram showing a software configuration example of a control device 2 according to the embodiment; FIG. 本実施の形態に係るサポート装置500のモジュール構成を模式的に示す図である。5 is a diagram schematically showing a module configuration of support device 500 according to the present embodiment; FIG. 本実施の形態に係る通信周期設定の概略処理を示すフローチャートである。5 is a flowchart showing a schematic process of communication cycle setting according to the present embodiment; 本実施の形態に係る処理負荷に基づく第1の通信周期の算出処理の一例を示す図である。It is a figure which shows an example of the calculation process of the 1st communication period based on the processing load which concerns on this Embodiment. 本実施の形態に係るネットワーク負荷に基づく第2の通信周期の算出処理の一例を示す図である。FIG. 9 is a diagram showing an example of calculation processing of a second communication cycle based on network load according to the present embodiment; 本実施の形態に係る通信周期の範囲の設定におけるデータの流れを示す図である。FIG. 10 is a diagram showing a data flow in setting a range of communication cycles according to the present embodiment; 同期精度とノード数の関係を模式的に示すグラフである。5 is a graph schematically showing the relationship between synchronization accuracy and the number of nodes; 本実施の形態に係る通信周期設定のためのUI画面の一例を示す図である。FIG. 5 is a diagram showing an example of a UI screen for communication cycle setting according to the present embodiment; 本実施の形態に係る通信周期設定のためのUI画面の他の例を示す図である。FIG. 10 is a diagram showing another example of a UI screen for communication cycle setting according to the present embodiment; 本実施の形態に係る周期範囲の設定条件を調整するUI画面の一例を示す図である。FIG. 10 is a diagram showing an example of a UI screen for adjusting setting conditions of a periodic range according to the embodiment; PTPの通信シーケンスの一例を示す図である。FIG. 3 is a diagram showing an example of a PTP communication sequence;
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are denoted by the same reference numerals, and the description thereof will not be repeated.
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。本実施の形態では、「制御装置」の典型例として、PLCを説明するが、PLCの名称に限定されることなく、本明細書に開示された技術思想は、任意の制御装置に対して適用可能である。
<A. Application example>
First, an example of a scene to which the present invention is applied will be described. In the present embodiment, a PLC will be described as a typical example of a "control device", but the technical ideas disclosed in this specification can be applied to any control device without being limited to the name of the PLC. It is possible.
 また、本実施の形態では、制御装置は時間を管理する管理タイマを有する。制御装置は、管理タイマを、基準時間を管理する基準タイマに合わせる「時刻同期処理」を実行する。 Also, in this embodiment, the control device has a management timer that manages time. The control device executes a "time synchronization process" for matching the management timer with the reference timer that manages the reference time.
 図1は、本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。 FIG. 1 is a diagram schematically showing an example of the overall configuration of a control system 1 according to this embodiment.
 図1を参照して、制御システム1は生産ラインのFAを実現する。より具体的には、制御システム1では、ネットワークが複数レベルに接続されており、各レベルのネットワークには、それぞれ異なる機能が割り当てられる。具体的には、限定されないが、例えば4つのレベルのネットワーク11~14が設けられている。  With reference to Fig. 1, the control system 1 realizes the FA of the production line. More specifically, in the control system 1, networks are connected at multiple levels, and different functions are assigned to the networks at each level. Specifically, but not exclusively, for example, four levels of networks 11-14 are provided.
 ネットワーク11は、コントロールレベルのネットワークである。ネットワーク11は、複数の制御装置2A、2Bおよび2Cと、装置/ライン管理装置190よびSCADA(Supervisory Control And Data Acquisition)機能を提供する表示装置280とが接続されており、ネットワーク11では装置間でデータを遣り取りできるデータリンクが形成される。制御装置2A、2Bおよび2Cを区別しない場合は「制御装置2」と称する。ネットワーク11は、主に、時刻同期および制御系に係る情報を伝送する。 The network 11 is a control level network. The network 11 connects a plurality of control devices 2A, 2B and 2C, a device/line management device 190, and a display device 280 that provides a SCADA (Supervisory Control And Data Acquisition) function. A data link is formed through which data can be exchanged. The controllers 2A, 2B and 2C are referred to as "controller 2" when not distinguished. The network 11 mainly transmits information related to time synchronization and control systems.
 制御装置2には、1または複数のフィールド機器90が接続される。これらのフィールド機器90は、制御装置2に直接接続される場合もあるが、ネットワーク110を介して制御装置2に接続されることもある。1または複数のフィールド機器90の各々は、製造装置または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。したがって、図1に示す制御システム1は、ネットワーク11~14の4つのレベルに加えて、フィールドレベルのネットワーク110を有する。 One or more field devices 90 are connected to the control device 2 . These field devices 90 may be directly connected to the control device 2 or may be connected to the control device 2 via the network 110 . Each of the one or more field devices 90 exchanges information between an actuator that exerts some physical action on a manufacturing device or a production line (hereinafter also collectively referred to as "field") and the field. Including input/output devices. Thus, the control system 1 shown in FIG. 1 has a field level network 110 in addition to the four levels of networks 11-14.
 ネットワーク110を介して、制御装置2とフィールド機器90との間で遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。 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 microseconds to several tens of milliseconds. Note that such update processing of exchanged data is also called input/output refresh processing.
 ネットワーク12は、管理レベルのネットワークとして提供される。ネットワーク12には、装置およびラインを管理する装置/ライン管理装置190、製造計画等を管理する製造管理装置380および390が接続される。装置/ライン管理装置190、製造管理装置380および390は、ネットワーク12を介して、製造計画等の管理情報の遣り取り、および装置またはラインの情報を遣り取りする。 The network 12 is provided as a management level network. Connected to the network 12 are a device/line management device 190 for managing devices and lines, and manufacturing management devices 380 and 390 for managing manufacturing plans and the like. The equipment/line management device 190 and the manufacturing management equipments 380 and 390 exchange management information such as manufacturing plans and equipment or line information via the network 12 .
 ネットワーク13は、コンピュータレベルのネットワークとして提供される。ネットワーク13には、製造管理装置380および390、ならびに時系列DB(データベースの略)450を管理する製造実行システム(MES:Manufacturing Execution System)400が接続される。製造管理装置380および390、ならびに製造実行システム400は、ネットワーク13を介して、生産管理および情報系のデータを遣り取りする。 The network 13 is provided as a computer-level network. Connected to the network 13 are manufacturing control devices 380 and 390 and a manufacturing execution system (MES) 400 that manages a time series DB (abbreviation for database) 450 . Manufacturing control devices 380 and 390 and manufacturing execution system 400 exchange production control and information system data via network 13 .
 製造実行システム400は、ネットワーク13を介して収集するフィールド機器90からの入力値である観測値を、観測された順番に従う時系列のデータとして時系列DB450に格納する。具体的には、本実施の形態では、制御装置2は、指定された観測値と管理タイマの時刻を含むフレームを生成し、ネットワーク11,12および13を介して製造実行システム400に転送する。 The manufacturing execution system 400 stores observed values, which are input values from the field devices 90 collected via the network 13, in the time-series DB 450 as time-series data according to the observed order. Specifically, in the present embodiment, control device 2 generates a frame containing a specified observation value and the time of the management timer, and transfers the frame to manufacturing execution system 400 via networks 11 , 12 and 13 .
 ネットワーク14は、インターネットなどの外部ネットワークを含む。ネットワーク14には、製造実行システム400とクラウド上の外部装置などが接続される。製造実行システム400は、クラウド上の装置とデータを遣り取りすることにより、時系列DB450のデータをクラウド上の装置に転送する。 The network 14 includes external networks such as the Internet. The manufacturing execution system 400 and external devices 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.
 図1に示す制御システム1において、ネットワーク11~14およびネットワーク110には、このような要求される特性の違いに応じたプロトコルおよびフレームワークが採用される。例えば、ファクトリーネットワークに属するネットワーク11および12のプロトコルとしては、汎用的なEthernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)を用いてもよい。また、ネットワーク110のプロトコルとしては、マシンコントロール用ネットワークの一例であるEtherCAT(登録商標)を採用してもよい。なお、ネットワーク11のプロトコルとネットワーク110のプロトコルとは、同じであってもよいし、異なっていてもよい。このようなマシンコントロールに適したネットワーク技術を採用することで、機器間の伝送に要する時間が保証されたリアルタイム性を提供できる。 In the control system 1 shown in FIG. 1, the networks 11 to 14 and the network 110 adopt protocols and frameworks corresponding to such differences in required characteristics. For example, as the protocol of the networks 11 and 12 belonging to the factory network, EtherNet/IP (registered trademark), which is an industrial open network in which a control protocol is implemented on general-purpose Ethernet (registered trademark), may be used. As a protocol for the network 110, EtherCAT (registered trademark), which is an example of a machine control network, may be adopted. Note that the protocol of the network 11 and the protocol of the network 110 may be the same or different. By adopting network technology suitable for such machine control, it is possible to provide real-time performance in which the time required for transmission between devices is guaranteed.
 これに対して、コーポレートネットワークに属するネットワーク13および14のプロトコルとしては、接続先の多様性を担保するために、汎用的なEthernetなどが用いられる。汎用的なEthernetを採用することで、送信可能なデータ量などの制限を排除できる。 On the other hand, as a protocol for the networks 13 and 14 belonging to the corporate network, general-purpose Ethernet or the like is used in order to ensure the diversity of connection destinations. By adopting general-purpose Ethernet, restrictions such as the amount of data that can be transmitted can be eliminated.
 制御装置2または装置/ライン管理装置190は、サポート装置500が接続され得る。サポート装置500は、制御装置2が制御対象を制御するために必要な準備を支援する装置である。 A support device 500 can be connected to the control device 2 or the device/line management device 190 . The support device 500 is a device that assists preparations necessary for the control device 2 to control the controlled object.
 制御システム1は、制御装置2A、2Bおよび2Cが、それぞれ、異なる工程3A、3Bおよび3Cに備えられる分散型システム300を備える。限定されないが、例えば、工程3Aは、ワーク(部品、部材)を整列させながら搬送するパーツフィーダの工程を示し、工程3Bは、工程3Aで整列されたワークをロボットのPick&Place動作によって移動させる工程を示し、工程3Cは移動後のワークを組立てる工程を示す。分散型システム300では、各工程の制御装置2に接続されるフィールド機器90の動作は、前後工程の制御装置2に接続されるフィールド機器90の動作とは異なる。分散型システム300における要求タクトタイムを満たすために、ある工程における動作は当該工程の前後工程の動作と同期して実施される。 The control system 1 comprises a distributed system 300 in which controllers 2A, 2B and 2C are provided in different processes 3A, 3B and 3C, respectively. Although not limited, for example, step 3A indicates a step of a parts feeder that conveys works (parts, members) while aligning them, and step 3B indicates a step of moving the works aligned in step 3A by the Pick & Place operation of the robot. , and step 3C shows the step of assembling the work after movement. In the distributed system 300, the operation of the field device 90 connected to the control device 2 of each process is different from the operation of the field device 90 connected to the control device 2 of the preceding and subsequent processes. In order to satisfy the required takt time in the distributed system 300, the operation in a certain process is performed in synchronization with the operations in the processes before and after that process.
 制御装置2は、当該制御装置2に接続されるフィールド機器90のシーケンス制御を実現するためのシーケンスプログラムおよびモーション制御を実現するためのモーションプログラムなどを含む制御に関するプログラムを、同期した時刻に基づく予め定められた周期(これを、制御周期ともいう)毎に実行することで、フィールド機器90のリアルタイム制御を実現している。 The control device 2 pre-loads a control-related program including a sequence program for realizing sequence control and a motion program for realizing motion control of the field device 90 connected to the control device 2 based on a synchronized time. Real-time control of the field device 90 is realized by executing it at each predetermined cycle (this is also called a control cycle).
 本開示において、「時刻」は、時の流れにおけるある一点を示すものを意図し、例えば、時分秒などの単位を用いて規定される。「タイマ」は、制御装置2および関連する装置内でタイミングを制御するための値を計測し、基本的には、予め定められた単位時間毎に所定値ずつインクリメントまたはデクリメントされるカウンタを含んで構成され得る。カウンタは、例えば整数値を表す予め定められたビット長を有する。基準タイマと制御装置2の管理タイマとの間の時刻の差(誤差または変位)に基づき「同期精度」を示すことができる。したがって、時刻の差(誤差または変位)が小さいほど「同期精度」は高く、時刻の差(誤差または変位)が大きいほど「同期精度」は低い。 In the present disclosure, "time" is intended to indicate a certain point in the flow of time, and is defined using units such as hours, minutes, and seconds. A "timer" measures a value for controlling timing within the control device 2 and related devices, and basically includes a counter that is incremented or decremented by a predetermined value every predetermined unit time. can be configured. The counter has a predetermined bit length representing, for example, an integer value. The “synchronization accuracy” can be indicated based on the time difference (error or displacement) between the reference timer and the management timer of the control device 2 . Therefore, the smaller the time difference (error or displacement), the higher the "synchronization accuracy", and the larger the time difference (error or displacement), the lower the "synchronization accuracy".
 図1において時刻同期を実現する構成は、例えば、ネットワーク11が産業用ネットワークのプロトコルであるTSN(Time-Sensitive Networking)に従うデータ通信を実施するケースと、ネットワーク11がEtherCAT(登録商標:Ethernet for Control Automation Technology)に従うデータ通信を実施するケースとを含み得る。なお、ネットワーク11に適用される規格は、これらに限定されず、例えばIEEE1588であってもよい。 The configuration that realizes time synchronization in FIG. 1 is, for example, a case where the network 11 implements data communication according to TSN (Time-Sensitive Networking), which is a protocol for industrial networks, and a case where the network 11 is EtherCAT (registered trademark: Ethernet for Control). and a case of implementing data communication according to Automation Technology). Note that the standards applied to the network 11 are not limited to these, and may be IEEE1588, for example.
 図1を参照して、「基準タイマ」となるマスタは、制御装置2A,2Bおよび2Cのいずれかが有するタイマであって、これらタイマのうち最も高い精度のタイマに相当する。マスタは、制御装置2に限定されず、ネットワーク11上の他の装置(例えば、装置/ライン管理装置190)のタイマであってもよい。 Referring to FIG. 1, the master serving as the "reference timer" is a timer possessed by any one of control devices 2A, 2B and 2C, and corresponds to the timer with the highest accuracy among these timers. The master is not limited to the control device 2, but may be a timer of another device on the network 11 (eg device/line management device 190).
 サポート装置500は、制御システム1(または分散型システム300)の設計時に、時刻同期のための同期メッセージの通信周期をユーザが設定するのを支援する支援ツールを提供する。 The support device 500 provides a support tool that assists the user in setting the communication cycle of synchronization messages for time synchronization when designing the control system 1 (or the distributed system 300).
 サポート装置500は、支援ツールとして、通信周期の設定処理を実行する。より具体的には、サポート装置500は、設定可能な通信周期の範囲を算出し(ステップS5)、算出した範囲を表示することで、ユーザに提示する(ステップS7)。ユーザは、サポート装置500を操作することにより、提示された通信周期の範囲において所望の通信周期を決定すると、サポート装置500は、ユーザが決定した通信周期を示す通信周期データ200を設定するための通知を、各制御装置2に送信する(ステップS11)。ステップS5、ステップS7、ステップS11の処理の詳細は図8で後述する。 The support device 500 executes communication cycle setting processing as a support tool. More specifically, the support device 500 calculates the range of communication cycles that can be set (step S5), and presents the calculated range to the user by displaying it (step S7). When the user determines a desired communication cycle within the presented communication cycle range by operating the support device 500, the support device 500 provides a command for setting the communication cycle data 200 indicating the communication cycle determined by the user. A notification is sent to each control device 2 (step S11). Details of the processing in steps S5, S7, and S11 will be described later with reference to FIG.
 サポート装置500は、ステップS5において、同期メッセージを、ネットワーク11を介し各制御装置2に通信する周期の範囲を設定する。より具体的には、サポート装置500は、周期の範囲における最短となる通信周期を、各制御装置2の処理負荷とネットワーク負荷とに基づき算出し、最長となる通信周期を、例えば仕様においてシステムに要求される同期精度に基づき算出する。 In step S5, the support device 500 sets the range of cycles for communicating synchronization messages to each control device 2 via the network 11. More specifically, the support device 500 calculates the shortest communication cycle in the cycle range based on the processing load and network load of each control device 2, and sets the longest communication cycle to the system in the specifications, for example. Calculated based on the required synchronization accuracy.
 サポート装置500は、最短となる通信周期に、各制御装置2の処理負荷に基づく第1の通信周期とネットワーク負荷に基づく第2の通信周期のうちの長い方を設定する。より具体的には、サポート装置500は、第1の通信周期を、各制御装置2について、予め定められた周期における制御に関連する処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置2が実行する1回の時刻同期処理の所要時間とから算出する。したがって、第1の通信周期は、予め定められた周期の1または複数個の長さに相当し得る。また、サポート装置500は、第2の通信周期を、ネットワーク11の利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから算出する。このネットワーク負荷は、ネットワーク11における制御装置2間の通信に係る負荷に加えて、制御装置2と上位のネットワーク(ネットワーク12、13および14の1つ以上)との通信に係る負荷を含み得る。 The support device 500 sets the longer one of the first communication cycle based on the processing load of each control device 2 and the second communication cycle based on the network load as the shortest communication cycle. More specifically, the support device 500 defines the first communication cycle as a surplus time excluding the execution time of the processing based on the processing load of processing related to control in a predetermined cycle for each control device 2. and the required time for one time synchronization process executed by the control device 2 . Accordingly, the first communication period may correspond to one or more lengths of the predetermined period. In addition, the support device 500 calculates the second communication cycle from the surplus bandwidth obtained by removing the bandwidth based on the network load from the available bandwidth of the network 11 and the bandwidth required for one synchronization message communication. This network load may include, in addition to the load associated with communication between control devices 2 in network 11, the load associated with communication between control device 2 and a higher-level network (one or more of networks 12, 13 and 14).
 サポート装置500は、上記の最短となる通信周期に、各制御装置2について算出された上記の第1の通信周期のうちの最長周期および上記の第2の通信周期の両者のうちの長い方を設定し、上記の最長となる通信周期に、予め定められた同期精度に基づく通信周期を設定する。この予め定められた同期精度は、制御システム1(より特定的には、分散型システム300)に必要とされる同期精度を含む。 The support device 500 selects the longer of both the longest cycle of the first communication cycles calculated for each control device 2 and the second communication cycle as the shortest communication cycle. A communication cycle based on a predetermined synchronization accuracy is set to the longest communication cycle. This predetermined synchronization accuracy includes the synchronization accuracy required for the control system 1 (more specifically, the distributed system 300).
 サポート装置500は、算出された同期メッセージの通信周期の範囲をユーザに提示する。ユーザは、提示された通信周期の範囲において、各制御装置2に設定するべき通信周期を決定し、サポート装置500は、決定された通信周期を通知する通信周期データ200を各制御装置2に送信する。 The support device 500 presents the calculated communication cycle range of the synchronization message to the user. The user determines the communication cycle to be set in each control device 2 within the presented communication cycle range, and the support device 500 transmits communication cycle data 200 notifying the determined communication cycle to each control device 2. do.
 これにより、ユーザは、各制御装置2の処理負荷とネットワーク負荷とに基づいた通信周期であって、システムに必要な同期精度を満たすような通信周期を設定できる。 As a result, the user can set a communication cycle based on the processing load of each control device 2 and the network load, and which satisfies the synchronization accuracy required for the system.
 本実施の形態では、負荷、周期および範囲などを「算出」することは、負荷、周期および範囲などを推定する、または見積もるとの意味も含む。上記の「余裕時間」は、予め定められた周期における時刻同期処理を実行可能な時間に相当する。また、「所要時間」は、処理を実行するために使用可能な制御装置2のリソース(プロセッサなど)を時刻同期処理の実行のみに用いた場合の処理開始から終了までの時間を示す。分散型システム300では、制御装置2が実行する制御関連処理の種類(処理のプログラムのサイズ(命令数、ステップ数)など)および制御装置2の処理性能(プロセッサの演算速度、メモリの種類、メモリの読み書き速度など)は、制御装置2間で異なるから、余裕時間および所要時間も制御装置2間で異なる。このような分散型システム300の特徴から、最短の周期を、各制御装置2の処理負荷に基づく第1の通信周期を用いて算出することに意義がある。 In the present embodiment, "calculating" the load, cycle, range, etc. also includes estimating or estimating the load, cycle, range, etc. The above-mentioned "margin time" corresponds to time during which time synchronization processing can be executed in a predetermined cycle. Also, "required time" indicates the time from the start to the end of processing when resources (such as processors) of the control device 2 that can be used for executing the processing are used only for executing the time synchronization processing. In the distributed system 300, the type of control-related processing executed by the control device 2 (processing program size (number of instructions, number of steps), etc.) and the processing performance of the control device 2 (processor operation speed, memory type, memory (read/write speed, etc.) differ among the control devices 2, so the spare time and the required time also differ among the control devices 2. FIG. Due to such characteristics of the distributed system 300, it is significant to calculate the shortest period using the first communication period based on the processing load of each control device 2. FIG.
 また、本実施の形態では、ネットワーク11の利用可能帯域は、データ到達時間を保証するために、制御関連処理に係る制御系データが優先的に割り当てられるとともに、余剰帯域は、通信要求などの状況に応じて、同期メッセージ等の他のデータが割り当てられる。ネットワーク11の制御系データ通信に割り当てられる帯域および上位ネットワークとの通信帯域を含む「ネットワーク負荷」の大きさに応じて、ネットワーク11の残り通信帯域である余剰帯域の大きさは変化し、その結果、ネットワーク負荷の大きさに応じて第2の通信周期も変化する。このようなネットワーク帯域の割り当ての特徴から、最短の周期を、ネットワーク負荷に基づく第2の通信周期を用いて算出することに意義がある。 Further, in the present embodiment, the available bandwidth of the network 11 is preferentially allocated to control system data related to control-related processing in order to guarantee the data arrival time, and the surplus bandwidth is used in situations such as communication requests. Other data, such as synchronization messages, are allocated accordingly. The size of the surplus band, which is the remaining communication band of the network 11, changes according to the size of the "network load" including the band allocated to the control system data communication of the network 11 and the communication band with the upper network. , the second communication cycle also changes according to the magnitude of the network load. Due to such characteristics of network band allocation, it is significant to calculate the shortest period using the second communication period based on the network load.
 以下、本実施の形態のより具体的な応用例について説明する。
 <B.制御システム1における時刻同期>
 本実施の形態に従う制御システム1においては、複数の制御装置2の各々が有するタイマを互いに時刻同期させる。これにより、互いに異なる制御装置2に接続される、すなわち異なる工程間において複数のフィールド機器90の協調制御を実現する。
A more specific application example of the present embodiment will be described below.
<B. Time Synchronization in Control System 1>
In control system 1 according to the present embodiment, the timers included in each of a plurality of control devices 2 are synchronized with each other. This realizes cooperative control of a plurality of field devices 90 that are connected to different control devices 2, that is, between different processes.
 以下、本実施の形態に係る制御システム1が提供する時刻同期機能について説明する。
 (b1.ネットワーク構成例)
 図2は、本実施の形態に係る時刻同期に関する構成例を示す模式図である。図2を参照して、分散型システム300は、複数の制御装置2A,2Bおよび2Cと、制御対象となる複数のフィールド機器90A~90Iとを備える。制御システム1は、一例として、少なくとも一部の制御装置がデイジーチェーン接続のネットワークを採用する。制御装置2A,2Bおよび2Cの各々は、対応するネットワーク110内のデータ伝送を管理するマスタとして機能する。フィールド機器90A~90Iは、対応するマスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。
The time synchronization function provided by the control system 1 according to this embodiment will be described below.
(b1. Network configuration example)
FIG. 2 is a schematic diagram showing a configuration example related to time synchronization according to this embodiment. Referring to FIG. 2, a distributed system 300 includes a plurality of control devices 2A, 2B and 2C and a plurality of field devices 90A-90I to be controlled. As an example, the control system 1 employs a network in which at least some of the control devices are daisy chain connected. Each of controllers 2A, 2B and 2C functions as a master managing data transmission within corresponding network 110 . Field devices 90A to 90I function as slaves that perform data transmission according to commands from corresponding masters.
 制御装置2A,2Bおよび2Cは、コントロールレベルのネットワーク11に接続されている。制御装置2Aに接続されるネットワーク110には、フィールド機器90A、90Bおよび90Cがデイジーチェーンで順次接続されており、制御装置2Bに接続されるネットワーク110には、フィールド機器90D、90Eおよび90Fがデイジーチェーンで順次接続されており、制御装置2Cに接続されるネットワーク110には、フィールド機器90G、90Hおよび90Iがデイジーチェーンで順次接続されている。フィールド機器90のネットワーク110上の接続態様は、デイジーチェーンに限定されない。 The control devices 2A, 2B and 2C are connected to a control level 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 connected in a daisy chain to the network 110 connected to the control device 2B. Field devices 90G, 90H and 90I are sequentially connected in a daisy chain to a network 110 that is sequentially connected in a chain and connected to the control device 2C. The connection form of the field device 90 on the network 110 is not limited to a daisy chain.
 ネットワーク110内において、制御装置2および1または複数のフィールド機器90は、いずれもデータ伝送機能を有する通信装置とみなし得て、通信装置は、ネットワーク110上を伝送されるデータを受信すると、当該データを必要に応じて、隣接して接続されている別の通信装置へ伝送する。 Within the network 110, the control device 2 and the one or more field devices 90 can all be regarded as communication devices having a data transmission function. is transmitted to another adjacently connected communication device as needed.
 ネットワーク110に接続される複数の通信装置、すなわち制御装置2および1または複数のフィールド機器90の間では、送受信タイミングが同期されている(図中の時刻同期(3)に相当)。具体的には、制御装置2および1または複数のフィールド機器90は、それぞれ、互いに時刻同期されたタイマを備える。制御装置2および1または複数のフィールド機器90の各々は、それらの時刻同期されたタイマに従って、データの送信または受信のタイミングを決定する。なお、本実施の形態では「タイミング」は何らかの事象が生じる時期、時間または時刻の概念を表す。 Transmission and reception timings are synchronized between a plurality of communication devices connected to the network 110, that is, the control device 2 and one or more field devices 90 (corresponding to time synchronization (3) in the figure). Specifically, the control device 2 and the one or more field devices 90 each comprise timers that are time-synchronized with each other. Controller 2 and one or more field devices 90 each determine when to transmit or receive data according to their time-synchronized timers. In the present embodiment, "timing" represents the concept of timing, time, or time when some event occurs.
 図2を参照して、制御装置2Aはタイマ102Aを備え、フィールド機器90A、90Bおよび90Cはそれぞれタイマ91A、91Bおよび91Cを備える。制御装置2Aのタイマ102Aがマスタとして機能し、フィールド機器90A、90Bおよび90Cのタイマ91A、91Bおよび91Cがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Aのタイマ値に基づく値が、タイマ91A、91Bおよび91Cに設定される。 Referring to FIG. 2, control device 2A includes timer 102A, and field devices 90A, 90B and 90C include timers 91A, 91B and 91C, respectively. Timer 102A of controller 2A acts as a master, and timers 91A, 91B and 91C of field devices 90A, 90B and 90C synchronize timing with respect to this master. For example, values based on the timer value of timer 102A are set to timers 91A, 91B and 91C.
 制御装置2Bはタイマ102Bを有しており、フィールド機器90D、90Eおよび90Fはタイマ91D、91Eおよび91Fをそれぞれ有している。制御装置2Bのタイマ102Bがマスタとして機能し、フィールド機器90D、90Eおよび90Fのタイマ91D、91Eおよび91Fがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Bのタイマ値に基づく値が、タイマ91D、91Eおよび91Fに設定される。 The control device 2B has a timer 102B, and the field devices 90D, 90E and 90F have timers 91D, 91E and 91F, respectively. Timer 102B of controller 2B acts as a master, and timers 91D, 91E and 91F of field devices 90D, 90E and 90F synchronize their timing with respect to this master. For example, values based on the timer value of timer 102B are set to timers 91D, 91E and 91F.
 制御装置2Cはタイマ102Cを有しており、フィールド機器90G、90Hおよび90Iはタイマ91G、91Hおよび91Iをそれぞれ有している。制御装置2Cのタイマ102Cがマスタとして機能し、フィールド機器90G、90Hおよび90Iのタイマ91G、91Hおよび91Iがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Cのタイマ値に基づく値が、タイマ91G、91Hおよび91Iに設定される。 The control device 2C has a timer 102C, and the field devices 90G, 90H and 90I have timers 91G, 91H and 91I respectively. Timer 102C of controller 2C acts as a master and timers 91G, 91H and 91I of field devices 90G, 90H and 90I synchronize their timing with respect to this master. For example, timers 91G, 91H and 91I are set to values based on the timer value of timer 102C.
 すなわち、制御装置2A,2Bおよび2Cの各々は、対応のネットワーク110内のデータ伝送を管理するマスタとして機能し、各制御装置2に接続されるフィールド機器90は、マスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。マスタとスレーブとの間でタイマを互いに時刻同期させることにより、ネットワーク110を構成する制御装置2とフィールド機器90との間でデータの伝送タイミングなどを互いに一致させることができる。 That is, each of the control devices 2A, 2B and 2C functions as a master that manages data transmission within the corresponding network 110, and the field device 90 connected to each control device 2 performs data transmission according to commands from the master. Acts as a slave to perform 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 and the field device 90 that constitute the network 110 .
 図2に示す例において、制御装置2Aは、さらに、タイマ102Aと時刻同期されたタイマ101Aを有している。制御装置2Bは、さらに、タイマ102Bと時刻同期されたタイマ101Bを有している。制御装置2Cは、さらに、タイマ102Cと時刻同期されたタイマ101Cを有している(図中の時刻同期(2)に相当)。制御システム1においては、例えば、タイマ101A、101Bおよび101Cのいずれかを、制御システム1全体のマスタとして機能させる。 In the example shown in FIG. 2, the control device 2A further has a timer 101A synchronized with the timer 102A. The control device 2B further has a timer 101B time-synchronized with the timer 102B. The control device 2C further has a timer 101C time-synchronized with the timer 102C (corresponding to time synchronization (2) in the figure). In the control system 1, for example, one of the timers 101A, 101B and 101C functions as a master of the control system 1 as a whole.
 一例として、図2では、制御装置2Aのタイマ101Aがマスタである。制御装置2Aと2Cのタイマ101Bと101Cはこのマスタに時刻同期する。これにより、複数の制御装置2A,2Bおよび2Cの間で、互いに時刻同期させることができる(図中の時刻同期(1)に相当)。 As an example, in FIG. 2, the timer 101A of the control device 2A is the master. Timers 101B and 101C of controllers 2A and 2C are time synchronized with this master. Thereby, it is possible to mutually synchronize the time among the plurality of control devices 2A, 2B and 2C (corresponding to time synchronization (1) in the figure).
 時刻同期(1)、時刻同期(2)および(3)によって、制御装置2A,2Bおよび2Cのタイマが互いに時刻同期し、各制御装置2に接続されたフィールド機器90それぞれのタイマが互いに時刻同期することになる。 By time synchronization (1), time synchronization (2) and (3), the timers of the control devices 2A, 2B and 2C are synchronized with each other, and the timers of the field devices 90 connected to each control device 2 are synchronized with each other. will do.
 図3は、本実施の形態に係る分散型システム300のデータ通信を説明する図である。図3以降の各図では、“NW”はネットワークの略である。図3を参照して、ネットワーク110に接続される制御装置2Aと複数のフィールド機器90A、90Bおよび90Cとの間では、時刻同期したタイマに基づく予め定められた周期に従って、データが遣り取りされる。予め定められた周期は、例えば制御周期に基づいている。 FIG. 3 is a diagram explaining data communication of the distributed system 300 according to the present embodiment. In each figure after FIG. 3, "NW" is an abbreviation for network. Referring to FIG. 3, data is exchanged between control device 2A and a plurality of field devices 90A, 90B and 90C connected to network 110 according to a predetermined cycle based on time-synchronized timers. The predetermined period is based on, for example, the control period.
 制御装置2Bと複数のフィールド機器90D、90Eおよび90Fとの間、および、制御装置2Cと複数のフィールド機器90G、90Hおよび90Iとの間においても、時刻同期したタイマに基づく予め定められた周期に従って、データが遣り取りされる。このような、ネットワーク110上の「下位ネットワーク(NW)通信」によるデータの遣り取りによって、制御装置2およびフィールド機器90の制御動作が実現される。 Also between the control device 2B and the plurality of field devices 90D, 90E and 90F, and between the control device 2C and the plurality of field devices 90G, 90H and 90I, according to a predetermined cycle based on the time-synchronized timers. , data is exchanged. Control operations of the control device 2 and the field device 90 are realized by exchanging data through such “lower network (NW) communication” on the network 110 .
 上位のネットワーク11に接続される制御装置2A,2Bおよび2Cの間では、時刻同期したタイマに基づく予め定められた周期に従って、各制御装置2が入力処理によってフィールド機器90から収集したデータ、演算処理によって生成した出力データなどが遣り取りされる。このようなネットワーク11上の「上位ネットワーク(NW)通信」によるデータの遣り取りによって、制御装置2Aに接続されるフィールド機器90、制御装置2Bに接続されるフィールド機器90および制御装置2Cに接続されるフィールド機器90を連係して動作させることができる。ネットワーク11上の「上位ネットワーク(NW)通信」には、ネットワーク12,13,14と制御装置2との間の通信も含み得る。 Between the control devices 2A, 2B, and 2C connected to the upper network 11, data collected from the field device 90 by each control device 2 through input processing, arithmetic processing, according to a predetermined cycle based on a time-synchronized timer. Output data generated by is exchanged. By exchanging data by such "upper network (NW) communication" on the network 11, the field device 90 connected to the control device 2A, the field device 90 connected to the control device 2B, and the control device 2C are connected. The field devices 90 can work together. “Upper network (NW) communication” on network 11 may include communication between networks 12 , 13 , 14 and control device 2 .
 「下位ネットワーク(NW)通信」および「上位のネットワーク(NW)通信」によって、分散型システム300を構成する異なる工程間で、フィールド機器90の制御タイミングを同期させることができて、要求されるタクトタイムを満たすことができる。 By "lower network (NW) communication" and "upper network (NW) communication", the control timing of the field device 90 can be synchronized between the different processes that constitute the distributed system 300, and the required takt time can be achieved. can meet the time.
 <C.構成と時刻同期処理>
 分散型システム300を構成する機器の構成を説明する。図4は、本実施の形態に係る制御装置2のハードウェア構成例を示すブロック図である。図5は、本実施の形態に係るサポート装置500のハードウェア構成例を示すブロック図である。
<C. Configuration and Time Synchronization Processing>
The configuration of the devices that make up the distributed system 300 will be described. FIG. 4 is a block diagram showing a hardware configuration example of the control device 2 according to this embodiment. FIG. 5 is a block diagram showing a hardware configuration example of the support device 500 according to this embodiment.
 (c1.制御装置2の構成)
 図4を参照して、制御装置2は、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ105と、USB(Universal Serial Bus)コントローラ107と、メモリカードインターフェイス109と、フィールドネットワークコントローラ118と、カウンタ126と、RTC(Real Time Clock)128とを含む。
(c1. Configuration of control device 2)
Referring to FIG. 4, control device 2 includes processor 102, chipset 104, main memory device 106, secondary memory device 108, upper network controller 105, USB (Universal Serial Bus) controller 107, A memory card interface 109 , a field network controller 118 , a counter 126 and an RTC (Real Time Clock) 128 are included.
 プロセッサ102は、CPU(Central Processing Unit)、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)などの揮発性記憶装置などで構成される。 The processor 102 is composed of a CPU (Central Processing Unit), MPU (Microprocessor unit), GPU (Graphics Processing Unit), etc., reads various programs stored in the secondary storage device 108, and expands them to the main storage device 106. By executing the command, control according to the controlled object and various processes described later are realized. The secondary storage device 108 is configured by, for example, a non-volatile storage device such as a HDD (Hard Disk Drive) or an SSD (Solid State Drive). The main memory device 106 is composed of a volatile memory device such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
 チップセット104は、プロセッサ102と各デバイスを制御することで、制御装置2全体としての処理を実現する。 The chipset 104 realizes the processing of the control device 2 as a whole by controlling the processor 102 and each device.
 主記憶装置106には、通信周期データ200が格納される。二次記憶装置108には、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラムが格納される。さらに、二次記憶装置108には、後述するような時系列データベースも格納される。 Communication cycle data 200 is stored in the main storage device 106 . The secondary storage device 108 stores not only system programs for realizing basic functions, but also user programs created according to the manufacturing devices and facilities to be controlled. Furthermore, the secondary storage device 108 also stores a time-series database as described later.
 上位ネットワークコントローラ105は、上位のネットワーク11を介して、製造実行システム400またはクラウド上の装置(図1参照)などとの間のデータを遣り取りする。USBコントローラ107は、USB接続を介してサポート装置500との間のデータの遣り取りを制御する。 The host network controller 105 exchanges data with the manufacturing execution system 400 or devices on the cloud (see FIG. 1) via the host network 11 . The USB controller 107 controls data exchange with the support device 500 via a USB connection.
 メモリカードインターフェイス109は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。 The memory card interface 109 is configured such that a memory card 116 can be attached/detached, and data can be written to the memory card 116 and various data (user program, trace data, etc.) can be read from the memory card 116. ing.
 カウンタ126は、制御装置2における各種処理の実行タイミングを管理するための時刻基準として用いられる。カウンタ126は、「管理タイマ」または「基準タイマ」となり得る。図2の時刻同期(1)においては、制御装置2Aのカウンタ126は基準タイマを構成し、制御装置2B,2Cのカウンタ126は管理タイマを構成し得る。カウンタ126は、典型的には、所定周期毎にカウンタ値をインクリメントまたはデクリメントする。カウンタ126として、プロセッサ102を駆動するシステムバス上に配置された、ハードウェアタイマーである高精度イベントタイマー(HPET:High Precision Event Timer)などを用いて実装してもよいし、あるいは、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用回路を用いて実装してもよい。 The counter 126 is used as a time reference for managing execution timings of various processes in the control device 2 . Counter 126 can be a "supervisory timer" or a "reference timer." In the time synchronization (1) of FIG. 2, the counter 126 of the control device 2A can constitute a reference timer, and the counters 126 of the control devices 2B and 2C can constitute a management timer. Counter 126 typically increments or decrements the counter value at predetermined intervals. The counter 126 may be implemented using a hardware timer such as a high precision event timer (HPET: High Precision Event Timer) placed on the system bus that drives the processor 102, or an ASIC (Application It may be implemented using a dedicated circuit such as Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
 RTC128は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ102などへ提供する。 The RTC 128 is a kind of counter with a clock function, and provides the current time to the processor 102 and the like.
 フィールドネットワークコントローラ118は、ネットワーク110を介したフィールド機器90を含む他のデバイスとの間のデータの遣り取りを制御する。フィールドネットワークコントローラ118は、他のデバイスとの間でタイミングを管理するための時刻基準として用いられるカウンタ119を有している。図4では、フィールド機器90のタイマ91はカウンタ91A、91B…で示される。 The field network controller 118 controls data exchange 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. In FIG. 4, the timer 91 of the field device 90 is indicated by counters 91A, 91B, .
 カウンタ119ならびにフィールド機器90などのデバイスが有するカウンタ(カウンタ91A,91B)については、上述のカウンタ126と同様の構成を採用できる。カウンタ119は、カウンタ126と同期する。 For the counters ( counters 91A and 91B) of devices such as the counter 119 and the field device 90, the same configuration as the counter 126 described above can be adopted. Counter 119 is synchronized with counter 126 .
 フィールドネットワークコントローラ118は、ネットワーク110を介した定周期通信を行うための通信マスタとして機能し、フィールドバスに接続されている各デバイスが有するカウンタが示すカウンタ値とカウンタ119が示すカウンタ値との差分を逐次監視して、必要に応じて、カウンタ値にずれが発生しているデバイスに対して補正を指示するための同期信号を出力する。このように、フィールドネットワークコントローラ118は、デバイスのカウンタが示すカウンタ値をカウンタ119が示すカウンタ値と一致させるための指令をデバイスへ与える同期管理機能を有している。 The field network controller 118 functions as a communication master for performing periodic communication via the network 110, and calculates 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 successively monitored, and if necessary, a synchronization signal is output for instructing correction to a device in which a discrepancy has occurred in the counter value. In this way, the field network controller 118 has a synchronization management function of 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 .
 図4には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置2の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。 FIG. 4 shows a configuration example in which necessary functions are provided by the processor 102 executing a program. (Application specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.). Alternatively, the main part of the control device 2 may be realized using hardware conforming to 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 run multiple OSs (Operating Systems) for different purposes in parallel, and to run necessary applications on each OS.
 本実施の形態に係る制御システム1においては、制御装置2およびサポート装置500が別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。 In the control system 1 according to the present embodiment, the control device 2 and the support device 500 are configured as separate units, but a configuration is adopted in which all or part of these functions are integrated into a single device. You may
 (c2.サポート装置500の構成)
 図5を参照してサポート装置500は、コンピュータなどの情報処理装置に相当する。サポート装置500は、携帯型および据え置き型の情報処理装置を含む。サポート装置500は、CPU(Central Processing Unit)501、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置で構成されるメモリ502、タイマ503、HDDなどの不揮発性に記憶装置で構成されるハードディスク504、入力インターフェース505、表示コントローラ506、通信インターフェース507、データリーダ/ライタ508を含む。これらの各部は、バス509を介して互いにデータ通信が可能なように接続されている。
(c2. Configuration of support device 500)
Referring to FIG. 5, support device 500 corresponds to an information processing device such as a computer. The support device 500 includes portable and stationary information processing devices. The support device 500 includes a CPU (Central Processing Unit) 501, a memory 502 composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory), a timer 503, and a hard disk composed of a non-volatile storage device such as an HDD. 504 , an input interface 505 , a display controller 506 , a communication interface 507 and a data reader/writer 508 . These units are connected via a bus 509 so as to be able to communicate with each other.
 入力インターフェース505は、CPU501とキーボード510、マウス(図示せず)、タッチパネル(図示せず)などの入力装置との間のデータ伝送を仲介する。表示コントローラ506は、ディスプレイ511と接続され、CPU501における処理の結果などを表示する。通信インターフェース507は、USBを介して制御装置2または装置/ライン管理装置190と通信する。データリーダ/ライタ508は、CPU501と外部の記憶媒体であるメモリカード512との間のデータ伝送を仲介する。 The input interface 505 mediates data transmission between the CPU 501 and input devices such as a keyboard 510, a mouse (not shown), and a touch panel (not shown). The display controller 506 is connected to the display 511 and displays the results of processing in the CPU 501 and the like. Communication interface 507 communicates with control device 2 or device/line management device 190 via USB. Data reader/writer 508 mediates data transmission between CPU 501 and memory card 512, which is an external storage medium.
 なお、図4のメモリカード116と図5のメモリカード512は、揮発性記憶媒体または不揮発性記憶媒体を含み、例えば、CF(Compact Flash:登録商標)、SD(Secure Digital)などの汎用的な半導体記憶デバイス、またはフレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体を含む。 Note that the memory card 116 in FIG. 4 and the memory card 512 in FIG. 5 include a volatile storage medium or a non-volatile storage medium, for example, CF (Compact Flash: registered trademark), SD (Secure Digital), and other general-purpose storage media. It includes a semiconductor storage device, a magnetic storage medium such as a flexible disk, or an optical storage medium such as a CD-ROM (Compact Disk Read Only Memory).
 ハードディスク504は、各種プログラムおよびデータを格納する。図5では、サポート装置500が有するツールのうち、特に、設定支援ツール560に関連するプログラムおよびデータが示される。ハードディスク504は、設定支援プログラム561と制御システム1または分散型システム300の仕様を示す仕様データ550を格納する。 The hard disk 504 stores various programs and data. FIG. 5 particularly shows programs and data related to the setting support tool 560 among the tools of the support device 500 . The hard disk 504 stores a setting support program 561 and specification data 550 indicating specifications of the control system 1 or distributed system 300 .
 より具体的には、設定支援プログラム561は、通信周期を算出するための項目を設定する項目設定プログラム565と、通信周期の範囲を算出する範囲算出プログラム570と、算出された周期範囲を、ディスプレイ511に表示させることによりユーザに提示する範囲表示プログラム580と、ユーザ操作に基づく通信周期を決定する決定プログラム590と、決定された通信周期を示す通信周期データ200を各制御装置2に設定するための設定プログラム595とを含む。範囲算出プログラム570は、各制御装置2の処理負荷に基づく上記に述べた第1の通信周期を算出する第1算出プログラム571とネットワーク負荷に基づく上記の第2の通信周期を算出する第2算出プログラム572とを有する。決定プログラム590は、通信周期の範囲の再設定のためにユーザを支援するユーザ支援プログラム591と、ユーザ操作に基づき決定された通信周期を評価する評価プログラム592を含む。 More specifically, the setting support program 561 includes an item setting program 565 for setting items for calculating the communication cycle, a range calculation program 570 for calculating the range of the communication cycle, and the calculated cycle range displayed on the display. 511 to present to the user, a determination program 590 for determining the communication cycle based on user operation, and communication cycle data 200 indicating the determined communication cycle to each control device 2. and a setting program 595 of . The range calculation program 570 includes a first calculation program 571 for calculating the above-described first communication cycle based on the processing load of each control device 2 and a second calculation program for calculating the above-described second communication cycle based on the network load. program 572; The determination program 590 includes a user assistance program 591 that assists the user in resetting the communication cycle range, and an evaluation program 592 that evaluates the communication cycle determined based on the user's operation.
 (c3.制御装置2のソフトウェア構成例)
 次に、本実施の形態に係る制御システム1を構成する制御装置2のソフトウェア構成例について説明する。
(c3. Software configuration example of control device 2)
Next, a software configuration example of the control device 2 configuring the control system 1 according to the present embodiment will be described.
 図6は、本実施の形態に係る制御装置2のソフトウェア構成例を示すブロック図である。図6を参照して、制御装置2は、実行エンジン150と、時系列データベース180と、上位接続プログラム192と、ゲートウェイプログラム194とを含む。 FIG. 6 is a block diagram showing a software configuration example of the control device 2 according to this embodiment. Referring to FIG. 6 , control device 2 includes execution engine 150 , time series database 180 , host connection program 192 and gateway program 194 .
 実行エンジン150は、各種プログラムの実行環境下において各種プログラムを実行する1種のプログラムを構成する。典型的には、この実行環境は、制御装置2のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで提供される。 The execution engine 150 constitutes one type of program that executes various programs under the execution environment of various programs. Typically, this execution environment is provided by processor 102 of control device 2 reading a system program stored in secondary storage device 108, developing it in main storage device 106, and executing it.
 より具体的には、実行エンジン150は、フィールド機器90の制御に関連する制御関連処理を実現するための制御プログラム152と、変数管理プログラム160と、入力プログラム172と、出力プログラム174とを含む。実行エンジン150は、さらに、時刻同期処理を実現するための時刻同期プログラム177、および制御に関するサービス処理を含む各種処理を実現するためのゲートウェイプログラム194および上位接続プログラム192を含む。また、実行エンジン150は、プログラムの実行順序を管理するスケジューラプログラム170を含む。 More specifically, the execution engine 150 includes a control program 152, a variable management program 160, an input program 172, and an output program 174 for realizing control-related processing related to control of the field device 90. The execution engine 150 further includes a time synchronization program 177 for realizing time synchronization processing, and a gateway program 194 and a higher connection program 192 for realizing various processing including service processing related to control. Execution engine 150 also includes a scheduler program 170 that manages the execution order of programs.
 制御プログラム152は、典型的には、ユーザプログラム154と、データベース書込みプログラム156と、シリアライズ通信プログラム158とにより構成される。ユーザプログラム154は、制御演算機能を提供する主たる部分に相当し、制御装置2の制御対象の製造装置や設備などに応じて任意に構成することができる。ユーザプログラム154は、例えば、ファンクションブロックなどを利用したラダーロジックなどで規定することができる。 The control program 152 typically consists of a user program 154, a database writing program 156, and a serialization communication program 158. The user program 154 corresponds to the main part that provides the control calculation function, and can be arbitrarily configured according to the manufacturing equipment or equipment to be controlled by the control device 2 . The user program 154 can be defined, for example, by ladder logic using function blocks.
 データベース書込みプログラム156は、ユーザプログラム154内に規定された命令によって呼び出され、時系列データベース180に対して指定されたデータを書込む。シリアライズ通信プログラム158は、データベース書込みプログラム156から時系列データベース180に対して書込まれるデータに対してシリアライズ処理を行う。ゲートウェイプログラム194は、クラウド上の装置と通信する。例えば、クラウド上のIoTサービスを提供する装置に対して、時系列データベース180の時系列データ182を提供する。データベース書込みプログラム156と、シリアライズ通信プログラム158と、ゲートウェイプログラム194とは、オプショナルな構成であってもよい。 The database writing program 156 is called by instructions defined in the user program 154 and writes specified data to the time series database 180 . The serialization communication program 158 serializes data written from the database writing program 156 to the time-series database 180 . The gateway program 194 communicates with devices on the cloud. For example, the time-series data 182 of the time-series database 180 is provided to a device that provides IoT services on the cloud. Database writing program 156, serialization communication program 158, and gateway program 194 may be optional components.
 変数管理プログラム160は、実行エンジン150で利用可能な値を変数の形で管理する。より具体的には、変数管理プログラム160は、制御装置2の状態などを示すシステム変数と、制御装置2と接続されるフィールド機器90等の各種デバイスが保持する値を示すデバイス変数と、制御装置2で実行されるユーザプログラム154が保持する値を示すユーザ変数とを管理する。 The variable management program 160 manages values that can be used by the execution engine 150 in the form of variables. More specifically, the variable management program 160 stores system variables indicating the state of the control device 2, device variables indicating values held by various devices such as the field device 90 connected to the control device 2, and control device variables. 2 manages user variables that indicate values held by the user program 154 executed in step 2.
 入力プログラム172は、制御装置2と接続されるアクチュエータ、センサなどのデバイスを含むフィールド機器90からの入力データを取得する機能を提供する。出力プログラム174は、制御装置2において実行されるユーザプログラム154によって算出される指令値(出力データ)を、ネットワーク110を介して接続される対象のデバイスであるフィールド機器90へ出力する。本実施の形態では、時刻同期プログラム177は、図2に示した主に、時刻同期(1)の処理を実現する。時刻同期の処理については、図16で後述する。 The input program 172 provides a function of acquiring input data from field devices 90 including devices such as actuators and sensors connected to the control device 2 . The output program 174 outputs command values (output data) calculated by the user program 154 executed in the control device 2 to the field device 90 which is a target device connected via the network 110 . In this embodiment, the time synchronization program 177 mainly implements the processing of time synchronization (1) shown in FIG. Time synchronization processing will be described later with reference to FIG.
 スケジューラプログラム170は、制御装置2のプロセスまたはタスクなどに対して、プロセッサ102を含むリソース割当てや実行タイミングなどを、プロセスまたはタスクに割当てられた実行の優先度に従い管理する。このような、プロセスまたはタスクは、制御プログラム152および変数管理プログラム160、入力プログラム172、出力プログラム174、および時刻同期プログラム177等が制御装置2により実行されることにより生成され得るプロセスまたはタスクが含まれる。 The scheduler program 170 manages the allocation of resources, including the processor 102, execution timing, etc., for the processes or tasks of the control device 2 according to the execution priorities assigned to the processes or tasks. Such processes or tasks include processes or tasks that can be generated by the control device 2 executing the control program 152, the variable management program 160, the input program 172, the output program 174, the time synchronization program 177, and the like. be
 時系列データベース180は、典型的には、主記憶装置106または二次記憶装置108に配置され、データを格納する機能とともに、外部からの要求(クエリ)に応答して、指定されたデータを応答する検索機能を搭載している。時系列データベース180は、データベース書込みプログラム156により書込まれる時系列データ182を格納している。すなわち、時系列データベース180は、入力データ、出力データ、制御プログラム152による制御演算において算出される演算データ、製造データ、イベントデータの少なくとも一部を時系列に格納する。 The time-series database 180 is typically located in the main storage device 106 or the secondary storage device 108, and has the function of storing data and responding to external requests (queries) with specified data. Equipped with a search function to Time series database 180 stores time series data 182 written by database writing program 156 . That is, the time-series database 180 stores at least 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 time series.
 上位接続プログラム192は、製造実行システム400などの上位のネットワーク13に接続された外部装置との間でデータを遣り取りする。本実施の形態に係る制御装置2においては、制御装置2から製造実行システム400に対して入力データや演算データが出力されるとともに、製造実行システム400から製造情報を受信することができる。 The host connection program 192 exchanges data with external devices connected to the host network 13 such as the manufacturing execution system 400 . In the control device 2 according to the present embodiment, input data and calculation data can be output from the control device 2 to the manufacturing execution system 400 and manufacturing information can be received from the manufacturing execution system 400 .
 本実施の形態では、製造実行システム400は図1の時系列DB450を有している。この場合には、上位接続プログラム192に代えて、あるいは、上位接続プログラム192の一部として、データベース接続プログラム193(図中ではデータベースを“DB”と示す)が設けられ得る。データベース接続プログラム193が実行されることにより、制御装置2内の時系列データベース180の時系列データ182は、製造実行システム400に転送されて、時系列DB450に格納され得る。 In this embodiment, the manufacturing execution system 400 has the time series DB 450 of FIG. In this case, instead of the host connection program 192, or as part of the host connection program 192, a database connection program 193 (the database is indicated as "DB" in the figure) can be provided. By executing the database connection program 193 , the time series data 182 of the time series database 180 in the control device 2 can be transferred to the manufacturing execution system 400 and stored in the time series DB 450 .
 変数管理プログラム160は、入力プログラム172がフィールドから取得する入力データ(状態値)および上位接続プログラム192が製造実行システム400から取得する製造データを変数として管理する。ユーザプログラム154は、変数管理プログラム160により管理されるシステム変数、デバイス変数、ユーザ変数を参照しつつ、予め指定された制御演算を実行し、その実行結果(出力データ)を変数管理プログラム160に出力する。 The variable management program 160 manages the input data (state values) that the input program 172 acquires from the field and the manufacturing data that the upper connection program 192 acquires from the manufacturing execution system 400 as variables. The user program 154 refers to system variables, device variables, and user variables managed by the variable management program 160, executes a control operation specified in advance, and outputs the execution result (output data) to the variable management program 160. do.
 (c4.サポート装置500のモジュール構成)
 図7は、本実施の形態に係るサポート装置500のモジュール構成を模式的に示す図である。図7に示すモジュールは、図5のハードディスク504に格納された当該モジュールに対応のプログラムが実行されることで実現される。
(c4. Module configuration of support device 500)
FIG. 7 is a diagram schematically showing the module configuration of support device 500 according to the present embodiment. The modules shown in FIG. 7 are implemented by executing programs corresponding to the modules stored in the hard disk 504 of FIG.
 より具体的には、設定支援ツール560は、項目設定プログラム565に対応の項目設定部520と、範囲算出プログラム570に対応の範囲算出部530とを備える。範囲算出部530は、第1算出プログラム571および第2算出プログラム572に対応する第1算出部531および第2算出部532を有する。設定支援ツール560は、さらに、範囲表示プログラム580に対応の範囲表示部535と、決定プログラム590に対応の決定部536と、設定プログラム595に対応の設定部539を含む。決定部536は、ユーザ支援プログラム591に対応のユーザ支援部537および評価プログラム592に対応の評価部538を含む。ユーザ支援部537は、ユーザインターフェイスUI(User Interface)53を含む。サポート装置500は、設定支援ツール560に関連して、設定支援ツール560からの出力に基づく表示制御データに従いディスプレイ511を制御する表示制御部540と、キーボード510を介したサポート装置500に対するユーザ操作を受け付けるための操作受付部541を有する。 More specifically, the setting support tool 560 includes an item setting unit 520 corresponding to the item setting program 565 and a range calculating unit 530 corresponding to the range calculating program 570. The range calculator 530 has a first calculator 531 and a second calculator 532 corresponding to the first calculator 571 and the second calculator 572 . The setting support tool 560 further includes a range display section 535 corresponding to the range display program 580 , a determination section 536 corresponding to the determination program 590 , and a setting section 539 corresponding to the setting program 595 . The determination unit 536 includes a user support unit 537 corresponding to the user support program 591 and an evaluation unit 538 corresponding to the evaluation program 592 . The user support unit 537 includes a user interface UI (User Interface) 53 . The support device 500 is associated with the setting support tool 560 and includes a display control unit 540 that controls the display 511 according to display control data based on the output from the setting support tool 560, and a user operation on the support device 500 via the keyboard 510. It has an operation receiving unit 541 for receiving.
 設定支援ツール560は、表示制御部540と操作受付部541とを含んで構成されるUIを提供する。本実施の形態ではUIは、グラフィカルユーザインターフェイスGUI(graphical user interface)を含む概念である。UIは、ディスプレイ511により設定支援ツール560からの情報をユーザに提示し、また、キーボード510により設定支援ツール560に対するユーザ操作を受付ける、いわゆるインタラクティブ環境を実現する。 The setting support tool 560 provides a UI including a display control unit 540 and an operation reception unit 541. In this embodiment, UI is a concept including a graphical user interface (GUI). The UI presents information from the setting support tool 560 to the user via the display 511 and accepts user operations on the setting support tool 560 via the keyboard 510, realizing a so-called interactive environment.
 項目設定部520は、仕様データ550から検索したデータを、通信周期の範囲を算出するための項目に設定する。仕様データ550は、制御システム1または分散型システム300の設計仕様を表す。より具体的には、仕様データ550は、各制御装置2について、当該制御装置2において実行されるUPG(User Program)の仕様を示すUPG仕様データ551と、各制御装置2における制御周期を示す制御周期データ552と、システムの構成を示すシステム構成データ553と、上位ネットワーク12,13,14を介した通信によりネットワーク11に係る負荷を示す上位NW(ネットワークの略)負荷データ554と、システムに必要な同期精度555を含む。 The item setting unit 520 sets data retrieved from the specification data 550 as items for calculating the range of the communication cycle. Specification data 550 represents design specifications for control system 1 or distributed system 300 . More specifically, the specification data 550 includes, for each control device 2, UPG specification data 551 indicating the specification of UPG (User Program) executed in the control device 2, and control data indicating the control cycle in each control device 2. Cycle data 552, system configuration data 553 indicating the configuration of the system, upper NW (abbreviation of network) load data 554 indicating the load related to the network 11 by communication via the upper networks 12, 13, 14, and data necessary for the system. synchronization accuracy 555.
 UPG仕様データ551は、制御装置2において実行される制御に関連する制御関連処理を実現するためのUPGプログラムの仕様を示す。より具体的には、UPGプログラムは、制御プログラム152、変数管理プログラム160、入力プログラム172および出力プログラム174を含む。UPG仕様データ551は、例えば各プログラムのサイズ(命令数、ステップ数など)を含む。 The UPG specification data 551 indicates specifications of a UPG program for realizing control-related processing related to control executed in the control device 2 . More specifically, the UPG programs include control program 152 , variable management program 160 , input program 172 and output program 174 . The UPG specification data 551 includes, for example, the size of each program (number of instructions, number of steps, etc.).
 システム構成データ553は、ネットワーク11に接続される機器(制御装置2)の台数(ノード数ともいう)、トポロジ、各機器の種類、各種性能情報を含む。性能情報は、各制御装置2の処理性能(プロセッサの演算速度、メモリサイズ・速度など)、ネットワーク11の伝送性能(通信速度、各種帯域など)、各制御装置2の時刻同期の性能を含む。時刻同期の性能を示す情報は、同期精度と相関関係を有する値であって、例えば後述するタイムスタンプの分解能と、Sync滞留時間と、最大周波数ドリフトと、最大周波数ジッタなどと、1回の同期メッセージの通信に必要な帯域と、制御関連処理の実行時の必要な帯域とを含み得る。 The system configuration data 553 includes the number of devices (control devices 2) connected to the network 11 (also referred to as the number of nodes), the topology, the type of each device, and various performance information. The performance information includes the processing performance of each control device 2 (processor operation speed, memory size/speed, etc.), the transmission performance of the network 11 (communication speed, various bands, etc.), and the time synchronization performance of each control device 2 . The information indicating the performance of time synchronization is a value having a correlation with the synchronization accuracy, for example, the resolution of the time stamp described later, the sync retention time, the maximum frequency drift, the maximum frequency jitter, etc., and one synchronization It may include the bandwidth required for message communication and the bandwidth required during execution of control-related processing.
 図5のハードディスク504に格納されたプログラムは、図5に示されるように個別のプログラムとして提供されてもよく、または、2つ以上のプログラムが組合わされて1つのプログラムとして提供されてもよい。 The programs stored in the hard disk 504 of FIG. 5 may be provided as individual programs as shown in FIG. 5, or two or more programs may be combined and provided as one program.
 (c5.スケジューラと優先度)
 スケジューラプログラム170は、実行されると、制御周期において処理の実行順序を管理するスケジューラを実現する。スケジューラは制御関連処理、時刻同期処理およびサービス処理のプロセスまたはタスクに、処理に予め割当てられた実行の優先度に従いプロセッサ102を含むリソースを割当てる。
(c5. Scheduler and Priority)
The scheduler program 170, when executed, implements a scheduler that manages the execution order of processes in a control cycle. The scheduler allocates resources, including the processor 102, to the processes or tasks of control-related processing, time synchronization processing, and service processing according to execution priorities pre-assigned to the processing.
 本実施の形態では、制御関連処理のプロセスまたはタスクは最も高い優先度が割り当てられて、時刻同期処理とサービス処理のプロセスまたはタスクは低い優先度が割り当てられる。スケジューラは、制御周期において、プロセッサ102を、制御関連処理に最優先で割当て、制御関連処理の実行が終了すると、余りの「余裕時間」において、プロセッサ102を、優先度の低い処理に割当てる。これにより、各制御装置2では制御関連処理を制御周期内で実行することが保証されるとともに、ネットワーク11には、制御装置2間で遣り取りされるデータが優先して伝送されて、データの到達時間を保証できる。本実施の形態では、説明を簡単にするために、制御周期の「余裕時間」には主に時刻同期処理が実行される。 In this embodiment, the highest priority is assigned to the process or task of control-related processing, and the lowest priority is assigned to the process or task of time synchronization processing and service processing. The scheduler allocates the processor 102 to the control-related process with the highest priority in the control cycle, and allocates the processor 102 to the low-priority process in the remaining "slack time" after the execution of the control-related process is completed. As a result, each control device 2 is guaranteed to execute the control-related processing within the control period, and the data exchanged between the control devices 2 is preferentially transmitted to the network 11. We can guarantee the time. In this embodiment, in order to simplify the explanation, the time synchronization process is mainly executed during the "slack time" of the control cycle.
 (c6.時刻同期処理)
 制御システム1では、時刻同期のために、例えばIEEE1588、IEEE802.1AS,IEEE802.1AS-Revなどの高精度時刻同期プロトコルを採用することができる。高精度時刻同期プロトコルとして、例えば、IEEE1588には、PTP(Precision Time Protocol)が規定されている。PTPは、基準タイマであるマスタと、基準タイマに同期するタイマであるスレーブとを含む通信システムに適用され得る。PTPでは、マスタとスレーブとの間で定期的に同期メッセージを有したフレームを遣り取りし、その過程で得られた情報に基づいて、スレーブの時刻をマスタの時刻に合わせる補正が行なわれる。
(c6. Time Synchronization Processing)
For time synchronization, the control system 1 can adopt a high precision time synchronization protocol such as IEEE1588, IEEE802.1AS, IEEE802.1AS-Rev. For example, IEEE 1588 defines PTP (Precision Time Protocol) as a high-precision time synchronization protocol. PTP can be applied to a communication system that includes a master, which is a reference timer, and a slave, which is a timer that synchronizes to the reference timer. In PTP, frames with synchronization messages are periodically exchanged between the master and the slave, and based on the information obtained in the process, the time of the slave is adjusted to match the time of the master.
 図16は、PTPの時刻同期処理のシーケンスの一例を示す図である。図16に示すシーケンスにおいては、マスタMとスレーブSとが連係することにより、マスタとスレーブとの間の時刻同期が実現される。説明を簡単にするために、マスタMは、中継器を介さずにスレーブSと通信する。 FIG. 16 is a diagram showing an example of the PTP time synchronization processing sequence. In the sequence shown in FIG. 16, time synchronization between the master and the slave is achieved by linking the master M and the slave S. FIG. For simplicity of explanation, master M communicates with slave S without a repeater.
 最初に、マスタMは、時刻T1でスレーブSへSyncメッセージ169を送信し、スレーブSはマスタからSyncメッセージ169を時刻T2で受信する。次に、マスタMは、時刻T1を示す情報を含むFollow_UpメッセージをスレーブSに送信する。スレーブSは、Follow_Upメッセージを受信すると、時刻T1と時刻T2とを記録する。 First, the master M sends a Sync message 169 to the slave S at time T1, and the slave S receives the Sync message 169 from the master at time T2. Master M then sends a Follow_Up message to slave S including information indicating time T1. When slave S receives the Follow_Up message, it records time T1 and time T2.
 次に、スレーブSは、時刻T3においてマスタMへDelay_Reqメッセージを送信する。マスタMは、時刻T4でDelay_Reqメッセージを受信すると、スレーブSにDelay_Respメッセージを送信する。Delay_Respメッセージは、時刻T4を示す情報を含んでいる。スレーブSは、Delay_Respメッセージを受信すると、マスタMがDelay_Reqメッセージを受信したことを確認できるため、時刻T3と時刻T4とを記録する。 Next, slave S sends a Delay_Req message to master M at time T3. When the master M receives the Delay_Req message at time T4, it sends a Delay_Resp message to the slave S. The Delay_Resp message contains information indicating time T4. When the slave S receives the Delay_Resp message, it can confirm that the master M has received the Delay_Req message, so it records time T3 and time T4.
 スレーブSは、時刻T1,T2,T3,T4(すなわち、4つのタイムスタンプ)を記録している。スレーブSは、これらタイムスタンプに基づく通信の遅延時間を含む誤差をなくすように、スレーブSをマスタMに時刻合わせする。本実施の形態では、当該誤差の大きさが「同期精度」を表す。マスタMおよびスレーブSは、それぞれ、制御装置2Aのタイマ101Aおよび制御装置2Bのタイマ101B(または制御装置2Cのタイマ101C)に対応する。 The slave S records times T1, T2, T3, and T4 (that is, four time stamps). The slave S synchronizes the time of the slave S with the master M so as to eliminate errors including communication delay time based on these time stamps. In this embodiment, the magnitude of the error represents "synchronization accuracy". Master M and slave S correspond to timer 101A of control device 2A and timer 101B of control device 2B (or timer 101C of control device 2C), respectively.
 制御装置2は、時刻同期処理において、上記の誤差をなくすようにスレーブSの時刻を補正する補正処理を実行する。補正処理は、補正プログラム178を実行することで実現される。本実施の形態では、1回あたりの補正量は上限が決められている。したがって、誤差が大きい場合、補正処理を複数回繰り返す必要がある、すなわち、補正処理を完了するには、1または複数の制御周期をかける必要がある。補正処理を完了する前に、マスタはSyncメッセージ169を送信する(または、スレーブSはSyncメッセージ169を受信する)と、新しいタイムスタンプをもとにした補正処理をすぐに実行できないため、同期精度が低下してしまう。設定支援ツール560は、補正処理を完了することを保証する通信周期を設定できるよう構成されている。 In the time synchronization process, the control device 2 executes a correction process for correcting the time of the slave S so as to eliminate the above error. Correction processing is realized by executing the correction program 178 . In this embodiment, the upper limit of the amount of correction per time is determined. Therefore, when the error is large, it is necessary to repeat the correction process multiple times, that is, to complete the correction process, it is necessary to take one or more control cycles. If the master sends the Sync message 169 (or the slave S receives the Sync message 169) before completing the correction process, the correction process based on the new time stamp cannot be executed immediately. decreases. The setting support tool 560 is configured to set a communication cycle that guarantees completion of correction processing.
 本実施の形態では、「時刻同期処理」は、通信周期毎に実施される図16の通信シーケンスに係るメッセージ通信処理と上記の補正処理とを含む。「通信周期」は、マスタMとスレーブSとの間で、同期メッセージを、ネットワーク11を介して伝送するための周期を示す。より具体的には、通信周期は、マスタMがSyncメッセージ169をスレーブSに送信する周期またはスレーブSがマスタMからSyncメッセージ169を受信する周期を示す。各制御装置2のスケジューラは、設定支援ツール560によって設定された通信周期データ200が示す通信周期に従い、プロセッサ102をメッセージ通信処理に割当てる。これにより、各制御装置2は、Syncメッセージ169を通信するタイミングを、当該制御装置2が補正処理を完了するときに設定でき、その結果、正確な補正を保証できる。 In the present embodiment, "time synchronization processing" includes message communication processing related to the communication sequence of FIG. “Communication cycle” indicates a cycle for transmitting a synchronization message between master M and slave S via network 11 . More specifically, the communication cycle indicates the cycle in which the master M transmits the Sync message 169 to the slave S or the cycle in which the slave S receives the Sync message 169 from the master M. The scheduler of each control device 2 allocates the processor 102 to message communication processing according to the communication cycle indicated by the communication cycle data 200 set by the setting support tool 560 . Thereby, each control device 2 can set the timing of communicating the Sync message 169 when the control device 2 completes the correction process, and as a result, accurate correction can be guaranteed.
 本実施の形態に係る時刻同期のプロトコルはPTPに限定されず、有線または無線通信の他のプロトコルを適用できる。例えば、NTP(Network Time Protocol)またはSNTP(Simple Network Time Protocol)、GPS(Global Positioning System)または同期イーサネット(登録商標)のプロトコル、NW帯域が制限される場合のCS-NMS(Clock-sampling mutual network synchronization)、RBS((Reference Broadcast Synchronization)およびRBIS(Reference Broadcast Infrastructure Synchronization)のプロトコルを適用することもできる。GPSおよび同期イーサネットのプロトコルは、NW負荷は関連しない。 The time synchronization protocol according to the present embodiment is not limited to PTP, and other wired or wireless communication protocols can be applied. For example, NTP (Network Time Protocol) or SNTP (Simple Network Time Protocol), GPS (Global Positioning System) or Synchronous Ethernet (registered trademark) protocol, CS-NMS (Clock-sampling mutual network when NW bandwidth is limited) Synchronization), RBS ((Reference Broadcast Synchronization) and RBIS (Reference Broadcast Infrastructure Synchronization) protocols can also be applied. GPS and synchronous Ethernet protocols are not NW load related.
 <D.フローチャート>
 図8は、本実施の形態に係る通信周期設定の概略処理を示すフローチャートである。図8の処理は、同期メッセージの通信周期を設定可能な範囲である「周期範囲」を設定する処理と、周期範囲のうちからユーザ操作に基づき通信周期を決定し、決定された通信周期を分散型システム300に設定する処理とを含む。
<D. Flowchart>
FIG. 8 is a flow chart showing a schematic process of communication cycle setting according to the present embodiment. The process of FIG. 8 includes a process of setting a "period range" which is a range in which the communication period of the synchronization message can be set, a process of determining the communication period from the period range based on the user's operation, and distributing the determined communication period. and processing to be set in the type system 300 .
 ユーザは、キーボード510を操作して、分散型システム300の仕様を作成し、CPU501は、作成された仕様を示す仕様データ550を、ハードディスク504に格納する(ステップS1)。CPU501は、項目設定部520としてステップS3の処理を実行する(ステップS3)。より具体的には、CPU501は、仕様データ550をディスプレイ511に表示する。ユーザはキーボード510を操作することにより、設定支援ツール560を起動し、周期範囲を設定するための項目データをサポート装置500に入力する。 The user operates the keyboard 510 to create specifications for the distributed system 300, and the CPU 501 stores specification data 550 indicating the created specifications in the hard disk 504 (step S1). The CPU 501 executes the process of step S3 as the item setting unit 520 (step S3). More specifically, CPU 501 displays specification data 550 on display 511 . By operating the keyboard 510 , the user activates the setting support tool 560 and inputs item data for setting the period range to the support device 500 .
 CPU501は、設定支援ツール560として、ステップS5~S11の処理を実行する。より具体的には、CPU501は、項目設定部520として、ユーザ操作に基づく項目データを設定し、CPU501は、範囲算出部530として、項目データに基づき周期範囲を算出し(ステップS5)、CPU501は、範囲表示部535として、算出した周期範囲を、ディスプレイ511を介してユーザに提示する(ステップS7)。より具体的には、ステップS7では、CPU501は、表示制御部540を介して、ディスプレイ511に周期範囲を示す画像を表示させる。CPU501は、決定部536として、キーボード510からのユーザ操作に基づき、ディスプレイ511に表示された周期範囲のうちから、ユーザ指定の通信周期を決定する。 The CPU 501, as the setting support tool 560, executes the processes of steps S5 to S11. More specifically, the CPU 501, as the item setting unit 520, sets item data based on the user operation, and the CPU 501, as the range calculation unit 530, calculates the periodic range based on the item data (step S5). , the range display unit 535 presents the calculated periodic range to the user via the display 511 (step S7). More specifically, in step S<b>7 , the CPU 501 causes the display 511 to display an image indicating the periodic range via the display control unit 540 . The CPU 501 , as the determination unit 536 , determines a user-specified communication cycle from within the cycle range displayed on the display 511 based on the user's operation from the keyboard 510 .
 CPU501は、操作受付部541を介して、通信周期を決定するユーザ操作を受け付けたか否かを判定し(ステップS9)、決定操作を受け付けたと判定すると(ステップS9でYES)、CPU501は、設定部539として、決定された通信周期を示す通信周期データ200の通知を、ネットワーク11に接続される各制御装置2に送信する(ステップS11)。分散型システム300の各制御装置2は、サポート装置500から通知された通信周期データ200を当該制御装置2に設定する(ステップS17)。 The CPU 501 determines whether or not a user operation for determining the communication cycle has been received via the operation receiving unit 541 (step S9). As 539, notification of the communication cycle data 200 indicating the determined communication cycle is transmitted to each control device 2 connected to the network 11 (step S11). Each control device 2 of the distributed system 300 sets the communication cycle data 200 notified from the support device 500 to the control device 2 (step S17).
 一方、CPU501は、通信周期を決定するユーザ操作を受け付けないと判定すると(ステップS9でNO)、例えば、周期範囲を再設定するためのユーザ支援機能の起動操作を受付けたと判定すると、CPU501は、ユーザ支援部537として、再設定のための支援情報をディスプレイ511に表示する(ステップS13)。ユーザは、表示された再設定の支援情報に基づき、キーボード510を操作して、周期範囲を再設定するための情報をサポート装置500に入力する(ステップS15、S1)。CPU501は、ユーザによる入力情報に基づき仕様データ550を再作成(変更)する(ステップS3)。これにより、設定支援ツール560は、ステップS5に移行して、変更後の仕様データ550の項目データに基づき範囲算出部530を起動し、範囲算出部530に周期範囲を再算出させて、ユーザに提示する(ステップS5、S7)。 On the other hand, if the CPU 501 determines that the user operation for determining the communication cycle has not been received (NO in step S9), for example, if it has determined that the activation operation of the user support function for resetting the cycle range has been received, the CPU 501 The user support unit 537 displays support information for resetting on the display 511 (step S13). Based on the displayed reset support information, the user operates the keyboard 510 to input information for resetting the period range to the support device 500 (steps S15 and S1). The CPU 501 recreates (changes) the specification data 550 based on the information input by the user (step S3). As a result, the setting support tool 560 proceeds to step S5, activates the range calculation unit 530 based on the item data of the changed specification data 550, causes the range calculation unit 530 to recalculate the period range, and instructs the user to Presented (steps S5, S7).
 図8の処理によれば、ユーザは、設定支援ツール560と対話しながら、周期範囲を設定し、設定された周期範囲のうちから通信周期を決定できる。 According to the process of FIG. 8, the user can set the period range while interacting with the setting support tool 560 and determine the communication period from within the set period range.
 <E.周期範囲の設定処理>
 本実施の形態では、CPU201は、設定支援ツール560として、周期範囲を下限値と上限値を用いて設定する。より具体的には、設定支援ツール560は、各制御装置2の制御関連処理の処理負荷とネットワーク負荷とに基づく通信周期から必要な同期精度555に基づく通信周期までの幅を有した周期範囲を設定する。
<E. Cycle range setting processing>
In this embodiment, the CPU 201, as the setting support tool 560, sets the period range using the lower limit and upper limit. More specifically, the setting support tool 560 sets a period range having a width from a communication period based on the processing load of control-related processing of each control device 2 and a network load to a communication period based on the required synchronization accuracy 555. set.
 図9は、本実施の形態に係る処理負荷に基づく第1の通信周期の算出処理の一例を示す図である。図10は、本実施の形態に係るネットワーク負荷に基づく第2の通信周期の算出処理の一例を示す図である。図11は、本実施の形態に周期範囲の設定におけるデータの流れを示す図である。CPU501は、設定支援ツール560として図11の示す流れでデータを処理することにより、周期範囲を設定する。図11では、データの流れが、図8の処理のステップS1~S7と関連付けて示される。 FIG. 9 is a diagram showing an example of calculation processing of the first communication cycle based on the processing load according to this embodiment. FIG. 10 is a diagram showing an example of calculation processing of the second communication cycle based on network load according to the present embodiment. FIG. 11 is a diagram showing the flow of data in setting the periodic range in this embodiment. As the setting support tool 560, the CPU 501 sets the periodic range by processing data according to the flow shown in FIG. In FIG. 11, data flow is shown in association with steps S1-S7 of the process of FIG.
 図9と図10と図11を参照して、周期範囲の下限値の周期Tminと上限値の周期Tmaxを算出する手順を説明する。CPU501は、第1算出部531として、図9の処理を実行する。より具体的には、CPU501は、処理負荷を算出するための単位時間Callを取得する。単位時間Callは一定時間であって、例えば制御周期データ552が示す制御周期または1秒を示す。また、CPU501は、UPG仕様データ551が示すプログラムのサイズと、システム構成データ553が示すプロセッサ102の演算速度とから、制御関連処理に要する処理時間(処理負荷)を算出し、算出値を単位時間Callあたりの処理時間Cappに設定し、また、CPU510は、Csyn=(Call-Capp)の演算式に従って、単位時間Callあたりの余裕の処理時間Csynを算出する。また、CPU501は、制御装置2において1回の時刻同期処理に要する処理時間(処理負荷)を示す処理時間Cを、UPG仕様データ551が示す時刻同期プログラム177のサイズとシステム構成データ553が示すプロセッサ102の演算速度とから算出する。CPU501は、制御装置2について、第1の通信周期TCmin=(C/Csyn)を算出する。CPU501は、各制御装置2について上記に述べた手順に従い第1の通信周期TCminを算出する。各制御装置2の第1の通信周期TCminのうちの最長の第1の通信周期TCminが、後述する周期Tminの候補となる。 A procedure for calculating the period T min of the lower limit value and the period T max of the upper limit value of the period range will be described with reference to FIGS. 9 , 10 and 11 . The CPU 501 executes the process of FIG. 9 as the first calculator 531 . More specifically, the CPU 501 acquires a unit time Call for calculating the processing load. The unit time Call is a fixed time, and indicates, for example, the control cycle indicated by the control cycle data 552 or one second. Further, the CPU 501 calculates the processing time (processing load) required for control-related processing from the program size indicated by the UPG specification data 551 and the operation speed of the processor 102 indicated by the system configuration data 553, and converts the calculated value into unit time. The processing time per unit time C all is set to C app , and the CPU 510 calculates the extra processing time C syn per unit time C all according to the formula C syn =(C all −C app ). In addition, the CPU 501 determines the processing time C1 indicating the processing time (processing load) required for one time synchronization process in the control device 2, and the size of the time synchronization program 177 indicated by the UPG specification data 551 and the system configuration data 553 indicate the processing time C1. It is calculated from the calculation speed of the processor 102 . The CPU 501 calculates the first communication cycle TC min =(C 1 /C syn ) for the control device 2 . The CPU 501 calculates the first communication cycle TC min for each control device 2 according to the procedure described above. The longest first communication cycle TC min among the first communication cycles TC min of each control device 2 is a candidate for the cycle T min described later.
 CPU501は、第2算出部532として、図10の処理を実行する。より具体的には、CPU501は、ネットワーク11について単位時間あたりに伝送することのできる最大のデータ量を示す帯域Nallと、UPG(制御関連処理など)に関連の通信処理においてネットワーク11を伝送されるデータ量を示す帯域Nappとを用いて、Nsyn=(Nall-Napp)の演算式に従って、帯域Nsynを算出する。帯域Nallはシステム構成データ553のネットワーク11の伝送性能から取得できる。帯域Nallは、限定されないが、例えばEtherNet(登録商標)の通信ケーブルの最大帯域100メガbps(bit per second)または1ギガbpsが適用され得る。データ量Nappは、UPGの実行においてネットワーク11に係る通信負荷(NW負荷)に相当する。CPU501は、UPG仕様データ551から、制御関連処理のUPGのうちネットワーク通信を伴うUPGの利用帯域を取得し、取得したUPGの利用帯域と上位NW負荷データ554が示す帯域との合計からNW負荷に相当する帯域Nappを算出する。帯域Nsynは、時刻同期のメッセージ通信が利用可能な帯域(伝送データ量、NW負荷)を示す。CPU501は、ネットワーク11が全く未使用の空き帯域である場合に、1回の時刻同期のメッセージ通信(図16の通信シーケンス)で使用される帯域N(伝送データ量、NW負荷)をシステム構成データ553の各制御装置2の時刻同期の性能から取得する、またはネットワーク11において実測する。CPU501は、稼働時のネットワーク11における時刻同期の通信所要時間、すなわち第2の通信周期Tnmin=(N/Nsyn)を算出する。 The CPU 501 executes the process of FIG. 10 as the second calculator 532 . More specifically, the CPU 501 determines the bandwidth N all indicating the maximum amount of data that can be transmitted per unit time with respect to the network 11, and the data transmitted through the network 11 in communication processing related to UPG (control-related processing, etc.). Band N app is used to calculate the band N syn according to the equation N syn =(N all -N app ). Bandwidth N all can be obtained from the transmission performance of network 11 in system configuration data 553 . Although the band N all is not limited, for example, a maximum band of 100 mega bps (bits per second) or 1 giga bps of an EtherNet (registered trademark) communication cable can be applied. The data amount N app corresponds to the communication load (NW load) related to the network 11 in executing UPG. The CPU 501 acquires the usage bandwidth of the UPG that involves network communication among the UPGs of the control-related processing from the UPG specification data 551, and calculates the NW load from the sum of the usage bandwidth of the acquired UPG and the bandwidth indicated by the upper NW load data 554. Calculate the corresponding band N app . The band N syn indicates a band (transmission data amount, NW load) available for time-synchronous message communication. When the network 11 is a completely unused vacant band, the CPU 501 configures the band N 1 (transmission data amount, NW load) used in one time synchronization message communication (communication sequence in FIG. 16). It is obtained from the time synchronization performance of each control device 2 in the data 553 or measured in the network 11 . The CPU 501 calculates the communication required time for time synchronization in the network 11 during operation, that is, the second communication cycle Tn min =(N 1 /N syn ).
 CPU501は、範囲算出部530として、各制御装置2の第1の通信周期TCminのうちの最長の周期と第2の通信周期Tnminとを比較し、それらのうちの長い方を周期Tminに設定する。周期Tminは、周期範囲の下限値になり得る。 The CPU 501, as the range calculation unit 530, compares the longest cycle of the first communication cycles TC min of each control device 2 with the second communication cycle Tn min , and determines the longer one as the cycle T min . set to The period T min can be the lower limit of the period range.
 また、CPU501は、必要な同期精度555とシステム構成データ553から取得されるネットワーク11の伝送性能と各制御装置2の時刻同期の性能を示す値とから、通信周期Tmaxを算出する。通信周期Tmaxは周期範囲の上限値になり得る。 The CPU 501 also calculates the communication cycle T max from the necessary synchronization accuracy 555 and the transmission performance of the network 11 acquired from the system configuration data 553 and the value indicating the time synchronization performance of each control device 2 . The communication cycle T max can be the upper limit of the cycle range.
 上限値Tmaxを算出する演算式と、PTPの同期精度Eを算出する演算式を説明する。同期精度Eを算出する演算式は、例えば、次の演算式(1)で示されることが知られている。 An arithmetic expression for calculating the upper limit value Tmax and an arithmetic expression for calculating the PTP synchronization accuracy E will be described. An arithmetic expression for calculating the synchronization accuracy E is known to be expressed by, for example, the following arithmetic expression (1).
 E=(0.5×b×(sync))+(a×b×c×d)+e…(式1)
 上記の式(1)において、第1項の括弧内に用いる変数syncは、syncメッセージ169の送信周期、すなわち時刻同期のための通信周期を示す。なお、他のメッセージの送信周期を変数syncとしてもよい。式(1)の他の変数は、ネットワーク11に接続されるノード(制御装置2)が有する時刻同期の性能に依存する値とネットワーク11に接続される最大ノード数を示し、ノード数が多くなるほど(式1)で算出される同期精度Eは低下する。
E=(0.5×b×(sync) 2 )+(a×b×c×d)+e (Formula 1)
In the above equation (1), the variable sync used in parentheses in the first term indicates the transmission cycle of the sync message 169, that is, the communication cycle for time synchronization. Note that the transmission cycle of other messages may be set to the variable sync. Other variables in equation (1) indicate a value that depends on the time synchronization performance of the node (control device 2) connected to the network 11 and the maximum number of nodes connected to the network 11. As the number of nodes increases, Synchronization accuracy E calculated by (Equation 1) decreases.
 ステップS5において、CPU501は、変数a,b,c,d,eの値を、システム構成データ553のノード(制御装置2)が有する時刻同期の性能から取得し、取得されたこれら値と必要な同期精度555(すなわち、式1の“E”に相当)とを用いて、(式1)から変数syncを算出する。これにより、必要な同期精度555を満たす変数syncの値、すなわち同期メッセージの通信周期Tmaxが算出される。CPU501は、算出された変数syncが示す通信周期Tmaxを周期範囲の上限値に設定する。 In step S5, the CPU 501 acquires the values of the variables a, b, c, d, and e from the time synchronization performance of the node (control device 2) of the system configuration data 553, and these acquired values and the necessary The variable sync is calculated from (Equation 1) using the synchronization accuracy 555 (that is, corresponding to "E" in Equation 1). As a result, the value of the variable sync that satisfies the required synchronization precision 555, that is, the communication period Tmax of the synchronization message is calculated. The CPU 501 sets the communication cycle Tmax indicated by the calculated variable sync as the upper limit value of the cycle range.
 上記の(式1)によれば、通信周期を示す変数syncの値が固定であれば、ネットワーク11に接続される制御装置2の台数が増加するほど、同期精度Eは低下する。この点を、グラフで補足する。図12は、同期精度とノード数の関係を模式的に示すグラフである。図12は、縦軸に同期精度(誤差の大きさ)をとり、横軸にノード数(制御装置2の台数)を示している。図12では、シミュレーション結果に基づき、変数Syncの値121および値123を変化させた場合の同期精度の変化がグラフで示される。グラフに示されるように、通信周期が同じであれば、ネットワーク11に接続される制御装置2の台数が増加するほど、同期精度Eは低下することが示される。したがって、必要な同期精度555を確保する場合、制御装置2の台数が多くなるほど変数syncの値は小さくなる。仮に、この変数syncの値よりも大きい値の通信周期で同期通信を実行すれば、必要な同期精度555を満たすことができなくなる。これら背景から、CPU501は、システム構成データ553(ノード数など)と(式1)とにより、必要な同期精度555を満たすことが可能な周期範囲の上限値(通信周期Tmax)を取得できる。 According to the above (Formula 1), if the value of the variable sync indicating the communication cycle is fixed, the synchronization accuracy E decreases as the number of control devices 2 connected to the network 11 increases. This point is supplemented with a graph. FIG. 12 is a graph schematically showing the relationship between synchronization accuracy and the number of nodes. In FIG. 12, the vertical axis indicates the synchronization accuracy (magnitude of error), and the horizontal axis indicates the number of nodes (the number of control devices 2). FIG. 12 graphically shows changes in synchronization accuracy when the values 121 and 123 of the variable Sync are changed based on the simulation results. As shown in the graph, if the communication cycle is the same, the synchronization accuracy E decreases as the number of control devices 2 connected to the network 11 increases. Therefore, when securing the necessary synchronization accuracy 555, the value of the variable sync decreases as the number of control devices 2 increases. If synchronous communication is executed at a communication cycle with a value greater than the value of this variable sync, the required synchronization accuracy 555 cannot be satisfied. Based on these backgrounds, the CPU 501 can acquire the upper limit value (communication cycle T max ) of the cycle range capable of satisfying the required synchronization accuracy 555 from the system configuration data 553 (the number of nodes, etc.) and (Formula 1).
 <F.周期範囲のUIと同期精度の評価>
 図13は、本実施の形態に係る通信周期設定のためのUI画面の一例を示す図である。CPU501は、範囲表示部535として、ステップS7の処理を実行する。図13のUI画面は、通信周期を指定するユーザ操作を受付ける画面の一例であって、図8のステップS7において表示される。
<F. Evaluation of UI in Cycle Range and Synchronization Accuracy>
FIG. 13 is a diagram showing an example of a UI screen for communication cycle setting according to this embodiment. The CPU 501, as the range display unit 535, executes the process of step S7. The UI screen of FIG. 13 is an example of a screen for accepting a user operation specifying a communication cycle, and is displayed in step S7 of FIG.
 図13の画面は、周期範囲(Tmin~Tmax)と、当該周期範囲に関連付けて、TSNで推奨されるデフォルト周期Tdef、Tmin~Tmaxの中央値Tcenを示すインジケータ601と、通信周期Tmin、Tdef、Tcen、Tmaxおよびユーザ設定の周期Tusrのそれぞれについての参照値602を有する通信周期テーブル609を含む。 The screen of FIG. 13 shows a cycle range (T min to T max ), and an indicator 601 indicating the default cycle T def recommended by TSN and the median value T cen of T min to T max in association with the cycle range, It includes a communication cycle table 609 having reference values 602 for each of the communication cycles T min , T def , T cen , T max and the user-configured cycle T usr .
 通信周期テーブル609の参照値602は、対応の通信周期Tmin、Tdef、Tcen、Tmaxおよび周期Tusrのそれぞれについて、通信周期31を示す値(単位:ms)、当該通信周期を元に確保できる同期精度32(単位:μs)、当該通信周期31で同期通信処理を実行する場合のプロセッサ102に係る処理負荷33およびネットワーク11に係るNW負荷34を含む。処理負荷33(単位:%)は処理時間Csync/単位時間を示し、NW負荷34(単位:%)はデータ量Nsyn/帯域Nallを示す。CPU501が、仕様データ550と図11における算出値とを用いた、(式1)を含む所定の演算式に従って、各通信周期31の値に応じた参照値602(同期精度32、処理負荷33およびNW負荷34)を算出する。図13では、参照値602のうち、仕様データ550が示す必要な同期精度555は、例えば10μsは強調マーク(図13のスターマーク)が付される。図13の参照値602は、例示であり限定されない。 The reference value 602 of the communication cycle table 609 is a value (unit: ms) indicating the communication cycle 31 for each of the corresponding communication cycles T min , T def , T cen , T max and the cycle T usr , and based on the communication cycle. synchronization accuracy 32 (unit: μs) that can be ensured for a period of time 31, a processing load 33 related to the processor 102 and a NW load 34 related to the network 11 when synchronous communication processing is executed in the communication cycle 31. FIG. A processing load 33 (unit: %) indicates processing time C sync /unit time, and a NW load 34 (unit: %) indicates data amount N sync /bandwidth N all . CPU 501 calculates reference value 602 (synchronization accuracy 32, processing load 33 and NW load 34) is calculated. In FIG. 13, among the reference values 602, the required synchronization accuracy 555 indicated by the specification data 550, for example 10 μs, is marked with an emphasis mark (star mark in FIG. 13). Reference values 602 in FIG. 13 are exemplary and not limiting.
 図8のステップS15において、ユーザは、参照値602を、通信周期を設定するための支援情報として利用できる。例えば、ユーザは、必要な同期精度555よりも高い精度を有する周期として、参照値602から、例えばTSNで推奨されるデフォルト周期Tdef(125ms)を指定操作する。CPU501は、指定操作に基づき、デフォルト周期Tdefを設定周期604として決定する。 At step S15 in FIG. 8, the user can use the reference value 602 as support information for setting the communication cycle. For example, the user designates the default period T def (125 ms) recommended by TSN, for example, from the reference value 602 as a period having accuracy higher than the required synchronization accuracy 555 . The CPU 501 determines the default period T def as the set period 604 based on the specifying operation.
 (f1.ユーザが決定した通信周期の評価)
 ユーザは、図13の参照値602が示す通信周期31以外の周期を、設定周期604として決定することもできる。その場合、CPU501は、評価部538として、ユーザ設定の通信周期に基づく同期精度を評価する。より具体的には、CPU501は、各制御装置2が、決定された設定周期604に基づき送信される同期メッセージに従って時刻同期処理を実行する場合、同期精度Eを算出することにより、当該設定周期604に対応の同期精度を評価する。
(f1. Evaluation of communication cycle determined by user)
The user can also determine a period other than the communication period 31 indicated by the reference value 602 in FIG. In that case, the CPU 501, as the evaluation unit 538, evaluates the synchronization accuracy based on the communication cycle set by the user. More specifically, when each control device 2 executes the time synchronization process in accordance with the synchronization message transmitted based on the determined set cycle 604, the CPU 501 calculates the synchronization accuracy E so that the set cycle 604 Evaluate the synchronization accuracy corresponding to
 ユーザは、キーボード510を操作し、項目603に通信周期31(設定周期604)を設定する。CPU501は、評価部538として、項目603に設定された通信周期31の元で取得される同期精度を算出し、算出値を同期精度32として項目603として設定する。項目603の同期精度32を算出する際には、CPU501は、変数syncにユーザ設定の通信周期31の値を代入して、(式1)などの所定の演算式により通信周期31の同期精度Eを算出するとともに、処理負荷33およびNW負荷34を算出し、算出された値を項目603に設定する。ユーザは、図13のUI画面において、通信周期31(設定周期604)について評価された情報、すなわち同期精度32,処理負荷33およびNW負荷34を、通信周期31を最終的に設定周期604として決定するか否かを判断するための支援情報として利用できる。 The user operates the keyboard 510 to set the communication cycle 31 (setting cycle 604) in the item 603. The CPU 501 , as the evaluation unit 538 , calculates the synchronization accuracy acquired based on the communication cycle 31 set in the item 603 and sets the calculated value as the synchronization accuracy 32 in the item 603 . When calculating the synchronization accuracy 32 of the item 603, the CPU 501 substitutes the value of the communication cycle 31 set by the user for the variable sync, and calculates the synchronization accuracy E of the communication cycle 31 by a predetermined arithmetic expression such as (Eq. is calculated, the processing load 33 and the NW load 34 are calculated, and the calculated values are set in the item 603 . On the UI screen of FIG. 13, the user determines the information evaluated for the communication cycle 31 (set cycle 604), that is, the synchronization accuracy 32, the processing load 33, and the NW load 34, and finally determines the communication cycle 31 as the set cycle 604. It can be used as support information for determining whether or not to
 本実施の形態では、評価部538による評価は、同期精度32、処理負荷33およびNW負荷34の算出であったが、これら全ての算出に限定されず、同期精度32、処理負荷33およびNW負荷34のうちの少なくとも1つ、特定的には、同期精度32の算出であってもよい。 In the present embodiment, the evaluation by the evaluation unit 538 is the calculation of the synchronization accuracy 32, the processing load 33 and the NW load 34, but is not limited to the calculation of all of these, and the synchronization accuracy 32, the processing load 33 and the NW load 34, in particular the calculation of the synchronization accuracy 32 .
 図8のステップS11では、CPU501は、図13のUI画面でユーザ操作により決定された設定周期604を示す通信周期データ200の通知を各制御装置2に送信する。 In step S11 of FIG. 8, the CPU 501 sends notification of the communication cycle data 200 indicating the set cycle 604 determined by the user's operation on the UI screen of FIG.
 (f2.周期範囲の提示とユーザ操作の他の例)
 図14は、本実施の形態に係る通信周期設定のためのUI画面の他の例を示す図である。図15は、本実施の形態に係る周期範囲の設定条件を調整するUI画面の一例を示す図である。図13は、(Tmax≧Tmin)の条件が満たされるケースであったが、例えば(Tmax<Tmin)の条件が満たされるとCPU501は、図14の画面をディスプレイ511に表示させる。(Tmax<Tmin)の条件が満たされる周期範囲では、通信周期を決定することができない。
(f2. Presentation of period range and another example of user operation)
FIG. 14 is a diagram showing another example of the UI screen for communication cycle setting according to the present embodiment. FIG. 15 is a diagram showing an example of a UI screen for adjusting the setting condition of the periodic range according to this embodiment. FIG. 13 shows a case where the condition (T max T min ) is satisfied. The communication cycle cannot be determined in the cycle range where the condition of (T max <T min ) is satisfied.
 ユーザは、通信周期の決定を可能とする周期範囲を取得するために、図14のボタン605を操作して、ユーザ支援部537の設定支援機能を起動する。ボタン605が操作されると、CPU501は、ユーザ支援部537として、図15の設定支援情報606をディスプレイ511に表示させる。図15に記載の単位ms/sは、処理負荷の単位であって、単位時間(s)当たりの処理時間(ms)を表す。 The user operates the button 605 in FIG. 14 to activate the setting support function of the user support unit 537 in order to acquire the period range that enables determination of the communication period. When the button 605 is operated, the CPU 501 causes the display 511 to display the setting support information 606 of FIG. 15 as the user support unit 537 . The unit ms/s shown in FIG. 15 is a unit of processing load and represents processing time (ms) per unit time (s).
 図15のUI画面は、UI53により提供される。UI画面は、設定支援情報606と、通信周期テーブル609と、ボタン608とを含む。設定支援情報606は、仕様データ550の各項目うち、(Tmin≦Tmax)の条件を満たすために調整可能な項目を含む。設定支援情報606は、(Tmin≦Tmax)の条件を満たすための周期範囲の変更態様を表す方針611(Tminを小さくする61aとTmaxを大きくする61b)、方針611を実現するための方法612と、方法612を実現するたに調整(変更など)されるべき項目の現在値などを示す現状613と、現状613が示す項目の値の調整量を表す条件614と、現状613が示す項目のユーザ調整操作後の値を示す入力615とを含む。現状613は、仕様データ550における調整するべき項目の現在値を示す。条件614は、(Tmin≦Tmax)を満たすために現状613が示す項目の値の調整量(増減と値)を示す。 The UI screen of FIG. 15 is provided by UI53. The UI screen includes setting support information 606 , a communication cycle table 609 and buttons 608 . The setting support information 606 includes items of the specification data 550 that can be adjusted to satisfy the condition (T min ≤ T max ). The setting support information 606 includes a policy 611 (reducing T min 61a and increasing T max 61b) representing a change mode of the period range for satisfying the condition of (T min ≤ T max ), a method 612, a current state 613 indicating the current value of an item to be adjusted (changed, etc.) in order to implement the method 612, a condition 614 indicating the adjustment amount of the value of the item indicated by the current state 613, and the current state 613 and an input 615 indicating the value after user adjustment operation of the indicated item. A current state 613 indicates the current value of the item to be adjusted in the specification data 550 . A condition 614 indicates an adjustment amount (increase or decrease and value) of the item value indicated by the current state 613 in order to satisfy (T min ≦T max ).
 ユーザは、図15の設定支援情報606の現状613の項目のうち、1または複数の項目の調整(変更)後の値を、入力615に設定する。ユーザは、当該項目に対応の条件614を目安に、項目の値を調整できる。 The user sets the value after adjustment (change) of one or more items among the items of the current state 613 of the setting support information 606 in FIG. The user can adjust the value of the item based on the condition 614 corresponding to the item.
 現状613の項目は、第1の周期を算出するための、制御周期、各制御装置2が有する処理性能、および制御関連処理と時刻同期処理のサイズなどを含む。また、現状613の項目は、第1の周期を算出するための、ネットワーク11の伝送性能、各制御装置2が処理に要する帯域と、各制御装置2の時刻同期の性能などを含む。現状613の項目は、さらに、必要な同期精度の項目も含む。UI53は、図15の画面から、少なくとも1つの項目を調整するユーザ操作を受付ける。 The items of the current status 613 include the control period for calculating the first period, the processing performance of each control device 2, the size of control-related processing and time synchronization processing, and the like. Items of the current status 613 include the transmission performance of the network 11, the bandwidth required for processing by each control device 2, the time synchronization performance of each control device 2, and the like, for calculating the first cycle. The item of the current status 613 also includes an item of necessary synchronization accuracy. The UI 53 accepts a user operation for adjusting at least one item from the screen of FIG. 15 .
 図15では、項目の値を調整において、例えば、ユーザが、調整操作によって調整後のNW帯域の値607を入力615に設定する。ユーザは、ボタン608を操作すると、CPU501は、範囲算出部530を起動する。CPU501は、範囲算出部530として、図15の入力615において受け付けた調整操作後の各項目の値に基づき、通信周期の範囲を再度算出する。CPU501は、再算出された周期範囲のデータを図15の通信周期テーブル609に設定する。ユーザは、通信周期テーブル609に設定された値に基づき、再算出された周期範囲において通信周期を決定するかを判断できるとともに、入力615の各項目の値をシステムの仕様データ550に反映するかを判断できる。 In FIG. 15, in adjusting the value of the item, for example, the user sets the adjusted NW band value 607 in the input 615 by the adjusting operation. When the user operates the button 608 , the CPU 501 activates the range calculation unit 530 . As the range calculation unit 530, the CPU 501 recalculates the range of the communication cycle based on the values of the items after the adjustment operation received in the input 615 of FIG. The CPU 501 sets the recalculated period range data in the communication period table 609 of FIG. Based on the values set in the communication cycle table 609, the user can determine whether to determine the communication cycle within the recalculated cycle range, and whether to reflect the values of each item of the input 615 to the system specification data 550. can be judged.
 図15のUI画面を用いた周期範囲の再算出が実施されるケースは、(Tmax<Tmin)の条件が満たされるケース以外であってもよい。例えば(Tmax≧Tmin)の条件が満たされるケースであっても、ユーザが周期範囲の変更を希望する(すなわち、TmaxまたはTminの値を変更する周期範囲の再算出を実施する)場合は、ユーザは、図15のUI画面を操作して、調整操作後にボタン608を操作することにより、図15の調整後の入力615の値に基づきCPU501に周期範囲を再算出させることができる。 The case where the periodic range is recalculated using the UI screen of FIG. 15 may be other than the case where the condition (T max <T min ) is satisfied. For example, even if the condition of (T max ≧T min ) is satisfied, the user wishes to change the period range (that is, recalculate the period range to change the value of T max or T min ) 15, the user can cause the CPU 501 to recalculate the period range based on the value of the input 615 after adjustment in FIG. .
 本実施の形態に係る設定支援ツール560によれば、各制御装置2の処理負荷およびネットワーク11のNW負荷に基づき、必要な同期精度555を満たすことのできる周期範囲が算出されてユーザに提示される。ユーザは、分散型システム300の設計時(仕様作成時)に、また、システム設計時の仕様データ550を作成する場合に、設定支援ツール560を利用することで、時刻同期のための通信周期に係るデバッグ作業の工数、すなわち通信周期に係る項目の試行錯誤の設定工数を削減できる。 According to the setting support tool 560 according to the present embodiment, based on the processing load of each control device 2 and the NW load of the network 11, a periodic range that can satisfy the required synchronization accuracy 555 is calculated and presented to the user. be. The user can use the setting support tool 560 when designing the distributed system 300 (when creating the specifications) or when creating the specification data 550 when designing the system. It is possible to reduce the man-hours for such debugging work, that is, the man-hours for trial-and-error setting of items related to the communication cycle.
 <G.プログラム>
 サポート装置500のCPU501は、設定支援プログラム561を実行することにより、ユーザに対し、周期設定のための設定支援ツール560を提供する。ハードディスク504には、設定支援ツール560を実現するためのプログラムおよびデータなどを記憶し得る。
<G. Program>
The CPU 501 of the support device 500 executes a setting support program 561 to provide the user with a setting support tool 560 for period setting. Hard disk 504 can store programs and data for realizing setting support tool 560 .
 設定支援ツール560を実現するためのプログラムおよびデータは、通信インターフェース507および各種通信回線を介してハードディスク504にダウンロードされてもよい。または、メモリカード512を介してハードディスク504にダウンロードされるとしてもよい。メモリカード512は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。サポート装置500は、このメモリカード512から、設定支援ツール560に関するプログラムまたはデータを取得してもよい。 Programs and data for realizing the setting support tool 560 may be downloaded to the hard disk 504 via the communication interface 507 and various communication lines. Alternatively, it may be downloaded to hard disk 504 via memory card 512 . The memory card 512 stores information such as programs by electrical, magnetic, optical, mechanical or chemical action so that computers, other devices, machines, etc. can read the information such as programs. It is a medium to Support device 500 may acquire programs or data relating to setting support tool 560 from this memory card 512 .
 プログラムは、CPU501などの1つ以上のプロセッサにより、またはプロセッサとASIC(Application Specific Integrated Circuit),FPGA(Field-Programmable Gate Array)などの回路との組合せにより実行され得る。 A program can be executed by one or more processors such as the CPU 501, or by a combination of processors and circuits such as ASIC (Application Specific Integrated Circuit) and FPGA (Field-Programmable Gate Array).
 <H.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 FA(ファクトリオートメーション)のネットワーク(11)に接続される複数の制御装置(2A、2B、2C)の通信周期を処理する情報処理装置(500)であって、
 各前記複数の制御装置は、
 制御に関連する制御関連処理と、同期メッセージ(169)に従い制御装置間で時刻同期させるための時刻同期処理とを含む処理を実行し、
 前記情報処理装置は、
 前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出する範囲算出部(530)を備え、
 前記範囲算出部は、
 前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期(TCmin)を算出する第1算出部(531)と、
 前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期(Tnmin)を算出する第2算出部(532)と、を含み、
 前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期(Tmin)と、予め定められた同期精度(555)に基づく通信周期(Tmax)とを用いて前記範囲を算出する、情報処理装置。
[構成2]
 前記範囲算出部は、
 前記範囲の上限値および下限値として、それぞれ、前記予め定められた同期精度に基づく通信周期および前記長い方の周期を算出する、構成1に記載の情報処理装置。
[構成3]
 前記範囲算出部によって算出された前記周期の範囲をディスプレイ(511)に表示させる範囲表示部(535)と、
 算出された前記周期の範囲のうちから、前記情報処理装置に対するユーザ操作に基づき、前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期を決定する決定部(536)と、をさらに備える、構成1または2に記載の情報処理装置。
[構成4]
 前記範囲表示部は、前記ネットワークに適用される通信プロトコルに従うデフォルトの周期(Tdef)を、前記範囲に関連付けて前記ディスプレイに表示させる、構成3に記載の情報処理装置。
[構成5]
 前記決定部によって決定された前記周期を示すデータを、前記各制御装置に設定する、構成3または4に記載の情報処理装置。
[構成6]
 前記各制御装置が、決定された前記周期に基づき送信される前記同期メッセージに従って前記時刻同期処理を実行する場合、同期精度を評価する評価部(538)を、さらに備える、構成3から5のいずれか1に記載の情報処理装置。
[構成7]
 前記第1算出部は、第1の情報から、前記余裕時間と前記所要時間とを算出し、
 前記第1の情報は、前記予め定められた周期、前記各制御装置が有する処理性能、および前記制御関連処理と前記時刻同期処理のサイズの各項目を含み、
 前記第2算出部は、第2の情報から、前記利用可能帯域、前記ネットワーク負荷に基づく帯域、および1回の同期メッセージの通信に必要な帯域を算出し、
 前記第2の情報は、前記ネットワークの伝送性能、前記各制御装置が処理に要する帯域と、前記各制御装置の時刻同期の性能の各項目を含み、
 前記第1の情報の項目、前記第2の情報の項目および前記予め定められた同期精度の項目を表示し、少なくとも1つの項目を調整するユーザ操作を受付けるUI(ユーザインターフェイス)(53)を備える、構成1から6のいずれか1に記載の情報処理装置。
[構成8]
 前記UIは、さらに、
 算出された前記範囲を変更する1つ以上の変更態様(61a、61b)と、各変更態様に関連付けて調整するべき項目(612)と調整量(614)とを表示する、構成7に記載の情報処理装置。
[構成9]
 前記UIは、さらに、
 前記調整する操作をユーザから受付けた場合に、前記第1の情報、前記第2の情報および前記予め定められた同期精度に基づき前記通信周期の範囲を算出するよう、前記範囲算出部を起動する、構成7または8に記載の情報処理装置。
[構成10]
 前記複数の制御装置は、それぞれが、前記FAの異なる工程毎に備えられる分散型の制御システム(300)を構成する、構成1から9のいずれか1に記載の情報処理装置。
[構成11]
 前記制御装置は、1または複数の制御対象の機器(90A~90I)を接続し、
 前記予め定められた周期は制御周期(552)を示す、構成1から10のいずれか1に記載の情報処理装置。
[構成12]
 FA(ファクトリオートメーション)のネットワーク(111)に接続される複数の制御装置(2A、2B、2C)の通信周期を処理する方法であって、
 各前記複数の制御装置は、
 制御に関連する制御関連処理と、同期メッセージ(169)に従い制御装置間で時刻同期させるための時刻同期処理を含む処理を実行する実行部(150)を有し、
 前記方法は、
 前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出するステップ(S5)を備え、
 前記範囲を算出するステップは、
 前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期(TCmin)を算出するステップと、
 前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期(Tnmin)を算出するステップと、
 前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期(Tmin)と、予め定められた同期精度(555)に基づく通信周期(Tmax)とを用いて前記範囲を算出するステップと、を含む、方法。
[構成13]
 構成12に記載の方法をプロセッサに実行させるためのプログラム(561)。
<H. Note>
The present embodiment as described above includes the following technical ideas.
[Configuration 1]
An information processing device (500) for processing communication cycles of a plurality of control devices (2A, 2B, 2C) connected to a FA (factory automation) network (11),
each of the plurality of controllers,
Execute processing including control-related processing related to control and time synchronization processing for synchronizing time between control devices according to the synchronization message (169),
The information processing device is
A range calculation unit (530) for calculating a range of cycles for communicating the synchronization message to each of the control devices via the network,
The range calculation unit
For each control device, a margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the time required for one time synchronization processing executed by the control device a first calculation unit (531) for calculating the first communication cycle (TC min ) from
A second calculation unit that calculates a second communication cycle (Tn min ) from the surplus bandwidth obtained by removing the bandwidth based on the network load from the available bandwidth of the network and the bandwidth required for communication of one synchronization message. (532), including
Based on the longer communication cycle (T min ) of both the longest cycle of the first communication cycle and the second communication cycle of each of the control devices, and a predetermined synchronization accuracy (555) An information processing apparatus that calculates the range using a communication cycle (T max ).
[Configuration 2]
The range calculation unit
The information processing apparatus according to configuration 1, wherein the communication cycle and the longer cycle based on the predetermined synchronization accuracy are calculated as the upper limit value and the lower limit value of the range, respectively.
[Configuration 3]
a range display unit (535) for displaying the period range calculated by the range calculation unit on a display (511);
a determination unit (536) for determining a cycle for communicating the synchronization message to each of the control devices via the network, based on a user operation on the information processing device, from among the range of the calculated cycles; The information processing apparatus according to configuration 1 or 2, comprising:
[Configuration 4]
The information processing apparatus according to configuration 3, wherein the range display unit causes the display to display a default cycle (T def ) according to a communication protocol applied to the network in association with the range.
[Configuration 5]
The information processing device according to configuration 3 or 4, wherein data indicating the period determined by the determining unit is set in each of the control devices.
[Configuration 6]
Any of configurations 3 to 5, further comprising an evaluation unit (538) that evaluates synchronization accuracy when each control device executes the time synchronization process according to the synchronization message transmitted based on the determined cycle 1. The information processing device according to claim 1.
[Configuration 7]
The first calculation unit calculates the margin time and the required time from the first information,
The first information includes items of the predetermined period, the processing performance of each control device, and the sizes of the control-related processing and the time synchronization processing,
The second calculation unit calculates the available bandwidth, the bandwidth based on the network load, and the bandwidth required for communication of one synchronization message from the second information,
The second information includes items of transmission performance of the network, bandwidth required for processing by each control device, and time synchronization performance of each control device,
a UI (user interface) (53) that displays the first information item, the second information item, and the predetermined synchronization accuracy item, and receives a user operation for adjusting at least one item; 7. The information processing apparatus according to any one of configurations 1 to 6.
[Configuration 8]
The UI further includes:
Configuration 7, wherein one or more change modes (61a, 61b) for changing the calculated range, and an item (612) to be adjusted and an adjustment amount (614) associated with each change mode are displayed. Information processing equipment.
[Configuration 9]
The UI further includes:
activating the range calculation unit so as to calculate the range of the communication cycle based on the first information, the second information, and the predetermined synchronization accuracy when the adjustment operation is received from the user; , Configuration 7 or 8, the information processing apparatus.
[Configuration 10]
10. The information processing apparatus according to any one of configurations 1 to 9, wherein each of the plurality of control devices constitutes a distributed control system (300) provided for each different process of the FA.
[Configuration 11]
The control device connects one or more devices to be controlled (90A to 90I),
11. The information processing apparatus according to any one of configurations 1 to 10, wherein the predetermined cycle indicates a control cycle (552).
[Configuration 12]
A method for processing communication cycles of a plurality of control devices (2A, 2B, 2C) connected to a FA (factory automation) network (111),
each of the plurality of controllers,
An execution unit (150) that executes processing including control-related processing related to control and time synchronization processing for synchronizing time between control devices according to a synchronization message (169),
The method includes:
A step (S5) of calculating a period range for communicating the synchronization message to each of the control devices via the network;
The step of calculating the range includes:
For each control device, a margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the time required for one time synchronization processing executed by the control device a step of calculating a first communication cycle (TC min ) from
calculating a second communication cycle (Tn min ) from a surplus bandwidth obtained by excluding a bandwidth based on a network load from the available bandwidth of the network and a bandwidth required for communication of one synchronization message;
Based on the longer communication cycle (T min ) of both the longest cycle of the first communication cycle and the second communication cycle of each of the control devices, and a predetermined synchronization accuracy (555) and calculating the range using a communication period (T max ).
[Configuration 13]
A program (561) for causing a processor to perform the method of arrangement 12.
 今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。 It should be considered that the embodiments disclosed this time are illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the meaning and scope equivalent to the scope of the claims.
 1 制御システム、2,2A,2B,2C 制御装置、3A,3B,3C 工程、11,12,13,14,110 ネットワーク、31,318 通信周期、32,555,E 同期精度、33,Csync 処理負荷、34,Nsyn NW負荷、53 UI、90,90A,90B,90C,90D,90E,90F,90G,90H,90I フィールド機器、126 カウンタ、102 プロセッサ、150 実行エンジン、152 制御プログラム、154 ユーザプログラム、156 データベース書込みプログラム、158 シリアライズ通信プログラム、160 変数管理プログラム、169 Syncメッセージ、170 スケジューラプログラム、172 入力プログラム、174 出力プログラム、177 時刻同期プログラム、178 補正プログラム、200 通信周期データ、300 分散型システム、500 サポート装置、510 キーボード、511 ディスプレイ、520 項目設定部、530 範囲算出部、531 第1算出部、532 第2算出部、535 範囲表示部、536 決定部、537 ユーザ支援部、538 評価部、539 設定部、540 表示制御部、541 操作受付部、550 仕様データ、551 UPG仕様データ、552 制御周期データ、553 システム構成データ、554 負荷データ、560 設定支援ツール、561 設定支援プログラム、565 項目設定プログラム、570 範囲算出プログラム、571 第1算出プログラム、572 第2算出プログラム、580 範囲表示プログラム、590 決定プログラム、591 ユーザ支援プログラム、592 評価プログラム、595 設定プログラム、601 インジケータ、602 参照値、603 項目、604 設定周期、606 設定支援情報、609 通信周期テーブル、611 方針、612 方法、613 現状、614 調整条件、615 入力。 1 Control system, 2, 2A, 2B, 2C Control device, 3A, 3B, 3C Process, 11, 12, 13, 14, 110 Network, 31, 318 Communication cycle, 32, 555, E Synchronization accuracy, 33, Csync processing Load, 34, Nsyn NW load, 53 UI, 90, 90A, 90B, 90C, 90D, 90E, 90F, 90G, 90H, 90I Field device, 126 Counter, 102 Processor, 150 Execution engine, 152 Control program, 154 User program , 156 Database write program, 158 Serialization communication program, 160 Variable management program, 169 Sync message, 170 Scheduler program, 172 Input program, 174 Output program, 177 Time synchronization program, 178 Correction program, 200 Communication cycle data, 300 Distributed system , 500 support device, 510 keyboard, 511 display, 520 item setting unit, 530 range calculation unit, 531 first calculation unit, 532 second calculation unit, 535 range display unit, 536 determination unit, 537 user support unit, 538 evaluation unit , 539 setting unit, 540 display control unit, 541 operation reception unit, 550 specification data, 551 UPG specification data, 552 control cycle data, 553 system configuration data, 554 load data, 560 setting support tool, 561 setting support program, 565 items Setting program, 570 Range calculation program, 571 First calculation program, 572 Second calculation program, 580 Range display program, 590 Decision program, 591 User support program, 592 Evaluation program, 595 Setting program, 601 Indicator, 602 Reference value, 603 Item, 604 setting cycle, 606 setting support information, 609 communication cycle table, 611 policy, 612 method, 613 current situation, 614 adjustment condition, 615 input.

Claims (13)

  1.  FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する情報処理装置であって、
     各前記複数の制御装置は、
     制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理とを含む処理を実行し、
     前記情報処理装置は、
     前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出する範囲算出部を備え、
     前記範囲算出部は、
     前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期を算出する第1算出部と、
     前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出する第2算出部と、を含み、
     前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて前記範囲を算出する、情報処理装置。
    An information processing device that processes communication cycles of a plurality of control devices connected to a FA (factory automation) network,
    each of the plurality of controllers,
    Execute processing including control-related processing related to control and time synchronization processing for synchronizing time between control devices according to a synchronization message,
    The information processing device is
    a range calculation unit that calculates a range of a cycle for communicating the synchronization message to each of the control devices via the network;
    The range calculation unit
    For each control device, a margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the time required for one time synchronization processing executed by the control device a first calculation unit that calculates a first communication cycle from
    a second calculation unit that calculates a second communication cycle from a surplus bandwidth obtained by removing a bandwidth based on a network load from the available bandwidth of the network and a bandwidth required for communication of one synchronization message; ,
    using the longer communication cycle of both the longest cycle of the first communication cycle and the second communication cycle of each of the control devices and a communication cycle based on a predetermined synchronization accuracy; An information processing device that calculates a range.
  2.  前記範囲算出部は、
     前記範囲の上限値および下限値として、それぞれ、前記予め定められた同期精度に基づく通信周期および前記長い方の周期を算出する、請求項1に記載の情報処理装置。
    The range calculation unit
    2. The information processing apparatus according to claim 1, wherein the communication cycle and the longer cycle based on the predetermined synchronization accuracy are calculated as the upper limit value and the lower limit value of the range, respectively.
  3.  前記範囲算出部によって算出された前記周期の範囲をディスプレイに表示させる範囲表示部と、
     算出された前記周期の範囲のうちから、前記情報処理装置に対するユーザ操作に基づき、前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期を決定する決定部と、をさらに備える、請求項1または2に記載の情報処理装置。
    a range display unit for displaying the range of the cycle calculated by the range calculation unit on a display;
    a determining unit configured to determine a period for communicating the synchronization message to each of the control devices via the network, based on a user operation on the information processing device, from among the range of the calculated periods. Item 3. The information processing device according to Item 1 or 2.
  4.  前記範囲表示部は、前記ネットワークに適用される通信プロトコルに従うデフォルトの周期を、前記範囲に関連付けて前記ディスプレイに表示させる、請求項3に記載の情報処理装置。 The information processing apparatus according to claim 3, wherein the range display unit causes the display to display a default cycle according to the communication protocol applied to the network in association with the range.
  5.  前記決定部によって決定された前記周期を示すデータを、前記各制御装置に設定する、請求項3または4に記載の情報処理装置。 The information processing apparatus according to claim 3 or 4, wherein data indicating the cycle determined by the determination unit is set in each of the control devices.
  6.  前記各制御装置が、決定された前記周期に基づき送信される前記同期メッセージに従って前記時刻同期処理を実行する場合、同期精度を評価する評価部を、さらに備える、請求項3から5のいずれか1項に記載の情報処理装置。 6. Any one of claims 3 to 5, further comprising an evaluation unit that evaluates synchronization accuracy when each control device executes the time synchronization processing according to the synchronization message transmitted based on the determined cycle. The information processing device according to the item.
  7.  前記第1算出部は、第1の情報から、前記余裕時間と前記所要時間とを算出し、
     前記第1の情報は、前記予め定められた周期、前記各制御装置が有する処理性能、および前記制御関連処理と前記時刻同期処理のサイズの各項目を含み、
     前記第2算出部は、第2の情報から、前記利用可能帯域、前記ネットワーク負荷に基づく帯域、および1回の同期メッセージの通信に必要な帯域を算出し、
     前記第2の情報は、前記ネットワークの伝送性能、前記各制御装置が処理に要する帯域と、前記各制御装置の時刻同期の性能の各項目を含み、
     前記第1の情報の項目、前記第2の情報の項目および前記予め定められた同期精度の項目を表示し、少なくとも1つの項目を調整するユーザ操作を受付けるUI(ユーザインターフェイス)を備える、請求項1から6のいずれか1項に記載の情報処理装置。
    The first calculation unit calculates the margin time and the required time from the first information,
    The first information includes items of the predetermined period, the processing performance of each control device, and the sizes of the control-related processing and the time synchronization processing,
    The second calculation unit calculates the available bandwidth, the bandwidth based on the network load, and the bandwidth required for communication of one synchronization message from the second information,
    The second information includes items of transmission performance of the network, bandwidth required for processing by each control device, and time synchronization performance of each control device,
    A UI (user interface) that displays the first information item, the second information item, and the predetermined synchronization accuracy item, and receives a user operation for adjusting at least one item. 7. The information processing device according to any one of 1 to 6.
  8.  前記UIは、さらに、
     算出された前記範囲を変更する1つ以上の変更態様と、各変更態様に関連付けて調整するべき項目と調整量とを表示する、請求項7に記載の情報処理装置。
    The UI further includes:
    8. The information processing apparatus according to claim 7, which displays one or more change modes for changing the calculated range, and an item to be adjusted and an adjustment amount in association with each change mode.
  9.  前記UIは、さらに、
     前記調整する操作をユーザから受付けた場合に、前記第1の情報、前記第2の情報および前記予め定められた同期精度に基づき前記通信周期の範囲を算出するよう、前記範囲算出部を起動する、請求項7または8に記載の情報処理装置。
    The UI further includes:
    activating the range calculation unit so as to calculate the range of the communication cycle based on the first information, the second information, and the predetermined synchronization accuracy when the adjustment operation is received from the user; 9. The information processing apparatus according to claim 7 or 8.
  10.  前記複数の制御装置は、それぞれが、前記FAの異なる工程毎に備えられる分散型の制御システムを構成する、請求項1から9のいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 9, wherein each of the plurality of control devices constitutes a distributed control system provided for each different process of the FA.
  11.  前記制御装置は、1または複数の制御対象の機器を接続し、
     前記予め定められた周期は制御周期を示す、請求項1から10のいずれか1項に記載の情報処理装置。
    The control device connects one or more devices to be controlled,
    The information processing apparatus according to any one of claims 1 to 10, wherein said predetermined cycle indicates a control cycle.
  12.  FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する方法であって、
     各前記複数の制御装置は、
     制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理を含む処理を実行する実行部を有し、
     前記方法は、
     前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出するステップを備え、
     前記範囲を算出するステップは、
     前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期を算出するステップと、
     前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出するステップと、
     前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて前記範囲を算出するステップと、を含む、方法。
    A method for processing communication cycles of a plurality of control devices connected to a FA (factory automation) network,
    each of the plurality of controllers,
    An execution unit that executes processing including control-related processing related to control and time synchronization processing for synchronizing time between control devices according to a synchronization message,
    The method includes:
    calculating a range of cycles for communicating the synchronization message to each of the control devices via the network;
    The step of calculating the range includes:
    For each control device, a margin time excluding the execution time of the processing based on the processing load of the control-related processing in a predetermined cycle, and the time required for one time synchronization processing executed by the control device a step of calculating a first communication cycle from
    calculating a second communication cycle from a surplus bandwidth obtained by excluding a bandwidth based on a network load from the available bandwidth of the network and a bandwidth required for communication of one synchronization message;
    using the longer communication cycle of both the longest cycle of the first communication cycle and the second communication cycle of each of the control devices and a communication cycle based on a predetermined synchronization accuracy; calculating a range.
  13.  請求項12に記載の方法をプロセッサに実行させるためのプログラム。 A program for causing a processor to execute the method according to claim 12.
PCT/JP2021/034695 2021-03-02 2021-09-22 Information processing device, method, and program WO2022185589A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021032405A JP2022133624A (en) 2021-03-02 2021-03-02 Information processing apparatus, method and program
JP2021-032405 2021-03-02

Publications (1)

Publication Number Publication Date
WO2022185589A1 true WO2022185589A1 (en) 2022-09-09

Family

ID=83154947

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/034695 WO2022185589A1 (en) 2021-03-02 2021-09-22 Information processing device, method, and program

Country Status (2)

Country Link
JP (1) JP2022133624A (en)
WO (1) WO2022185589A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7399349B1 (en) * 2022-09-21 2023-12-15 三菱電機株式会社 Setting support device, control system, setting support method and program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016131332A (en) * 2015-01-14 2016-07-21 株式会社日立製作所 Time synchronization system
WO2016129294A1 (en) * 2015-02-12 2016-08-18 株式会社神戸製鋼所 Communication control system and communication control method
JP2018110326A (en) * 2017-01-04 2018-07-12 株式会社東芝 Synchronizer, synchronization method, synchronous program, and synchronous system
JP2019062288A (en) * 2017-09-25 2019-04-18 オムロン株式会社 Control system and control unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016131332A (en) * 2015-01-14 2016-07-21 株式会社日立製作所 Time synchronization system
WO2016129294A1 (en) * 2015-02-12 2016-08-18 株式会社神戸製鋼所 Communication control system and communication control method
JP2018110326A (en) * 2017-01-04 2018-07-12 株式会社東芝 Synchronizer, synchronization method, synchronous program, and synchronous system
JP2019062288A (en) * 2017-09-25 2019-04-18 オムロン株式会社 Control system and control unit

Also Published As

Publication number Publication date
JP2022133624A (en) 2022-09-14

Similar Documents

Publication Publication Date Title
JP6962099B2 (en) Control system and control device
WO2021002421A1 (en) Control system
JP6523497B1 (en) Master controller and synchronous communication system using the same
JP6984482B2 (en) Communication systems, communication devices and communication methods
WO2015128981A1 (en) Programmable controller system and controller therefor
JP7423249B2 (en) Control device and distributed control system
KR101636496B1 (en) Signal synchronization system, node synchronization system, signal synchronization method, and node synchronization method
JP2006148907A (en) Time synchronizing method in periodically operating communication system
WO2022185589A1 (en) Information processing device, method, and program
CN115642980B (en) Distributed simulation synchronization method and system
JP2020149402A (en) Control system
WO2021131530A1 (en) Control system
JP2021012405A (en) Control system, setting device and computer program
JP4961589B2 (en) Network system and slave synchronization method
WO2018070190A1 (en) Computing device and control system
EP3764175B1 (en) Control device and control system
WO2023026431A1 (en) Communication control device, communication control method and program
Plasberg et al. Towards Distributed Real-Time capable Robotic Control using ROS2
WO2024079892A1 (en) Data collecting apparatus, data collecting system, database creating method and program
Thibodeaux The specification and implementation of a model of computation
Ring et al. Distributed clock synchronization in discrete event simulators for wireless factory automation
WO2022190416A1 (en) Control system, support method, and program
JP2022048289A (en) Control device and control system
Kerö et al. Design and efficient verification of network attached system on chip devices.
CN116184920A (en) Multi-PLC controller instruction output high-precision synchronization method based on soft timer

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: 21929152

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21929152

Country of ref document: EP

Kind code of ref document: A1