WO2020066985A1 - 制御システム、サポート装置およびサポートプログラム - Google Patents

制御システム、サポート装置およびサポートプログラム Download PDF

Info

Publication number
WO2020066985A1
WO2020066985A1 PCT/JP2019/037212 JP2019037212W WO2020066985A1 WO 2020066985 A1 WO2020066985 A1 WO 2020066985A1 JP 2019037212 W JP2019037212 W JP 2019037212W WO 2020066985 A1 WO2020066985 A1 WO 2020066985A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
safety
controller
data
drive device
Prior art date
Application number
PCT/JP2019/037212
Other languages
English (en)
French (fr)
Inventor
悠司 鈴木
佐藤 文明
亮輔 藤村
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2020066985A1 publication Critical patent/WO2020066985A1/ja

Links

Images

Classifications

    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric

Definitions

  • the present invention relates to a control system and a support device and a support program used for the control system.
  • the safety system is for providing a safety function according to international standards, and includes safety components such as a safety controller, a safety sensor, a safety switch, and a safety relay.
  • Non-Patent Document 1 specifies a safety function to be provided for a variable-speed electric drive system.
  • Non-Patent Document 1 discloses a drive such as STO (Safe Torque Off), SS1 (Safe Stop 1), SS2 (Safe Stop 2), SOS (Safe Operating Stop), and SBC (Safe Brake Control). Defines some safety functions related to the device.
  • STO Safe Torque Off
  • SS1 Safe Stop 1
  • SS2 Safe Stop 2
  • SOS Safe Operating Stop
  • SBC Safe Brake Control
  • a function for realizing the safety function is provided independently of the function of controlling the drive device.
  • Each function is provided independently of each other, and communication paths and the like are often formed independently of each other.
  • One object of the present invention is to solve the above-described problems, and an object of the present invention is to provide a control system capable of easily accessing information on the operation of a safety function.
  • a control system includes a first controller and a drive device that drives a motor according to a first command from the first controller.
  • the drive device has a safety function for driving the motor.
  • the control system is for sharing data between the second controller that transmits the second command related to the operation of the safety function to the drive device and the first controller, the drive device, and the second controller.
  • the second command is transmitted via a connection formed using a network between the second controller and the drive device.
  • the drive device includes a state management unit that manages the state of the safety function according to the second command, and a data disclosure unit that discloses, via a network, preset information among information held by the state management unit.
  • the information relating to the second command transmitted via the connection formed using the network between the second controller and the drive device can be easily transmitted from the first controller. Can access.
  • the first controller can realize control according to the operation of the safety function depending on the second command.
  • control system further includes a support device that receives designation of information disclosed by the data disclosure unit and transfers a disclosure setting specifying the designated information to the drive device.
  • necessary information can be disclosed by setting on the support device.
  • the support device refers to the disclosure setting, specifies information to be disclosed among the information managed by the state management unit, and includes the reference information for referring to the information disclosed by the data disclosure unit. Relate the meaning of the specified information.
  • the reference You can see at a glance if there is.
  • information disclosed by the data disclosure unit can be referred to as a variable.
  • the support device reflects the meaning of the information specified as the name of the variable.
  • the name of a variable indicates the meaning of each piece of information, it is possible to grasp at a glance what kind of meaning the variable has with only the name of the variable.
  • information disclosed by the data disclosure unit can be referred to as a variable.
  • the support device reflects the meaning of the information specified as the additional information added to the variable.
  • the additional information assigned to the variable indicates the meaning of each information, the meaning of the variable can be grasped at a glance only by the name of the variable.
  • the support device reflects information for specifying the drive device including the data disclosure unit in reference information for referring to information disclosed by the data disclosure unit.
  • the support device provides an environment for developing a control program executed by the first controller.
  • a control program can be created using reference information associated with the meaning of the specified information.
  • control program since the control program can be created using the reference information associated with the meaning of the specified information, the creation efficiency of the control program can be increased.
  • control system has a plurality of drive devices.
  • the support device In response to the user operation, the support device collectively activates or invalidates the disclosure through the network to the data disclosure units of all the drive devices.
  • debugging can be efficiently performed by invalidating disclosure of information collectively.
  • a support device connected to a control system.
  • the control system includes a first controller and a drive device that drives a motor according to a first command from the first controller.
  • the drive device has a safety function for driving the motor.
  • the control system is for sharing data between the second controller that transmits the second command related to the operation of the safety function to the drive device and the first controller, the drive device, and the second controller. Including networks.
  • the second command is transmitted via a connection formed using a network between the second controller and the drive device.
  • the drive device includes a state management unit that manages the state of the safety function according to the second command, and a data disclosure unit that discloses, via a network, preset information among information held by the state management unit.
  • the support device receives the specification of the information disclosed by the data disclosure unit, transfers the disclosure setting for specifying the specified information to the drive device, and is managed by the state management unit with reference to the disclosure setting.
  • the information relating to the second command transmitted via the connection formed using the network between the second controller and the drive device can be easily transmitted from the first controller. Can access.
  • the first controller can realize control according to the operation of the safety function depending on the second command.
  • a support program executed by a computer connected to a control system includes a first controller and a drive device that drives a motor according to a first command from the first controller.
  • the drive device has a safety function for driving the motor.
  • the control system is for sharing data between the second controller that transmits the second command related to the operation of the safety function to the drive device and the first controller, the drive device, and the second controller.
  • the second command is transmitted via a connection formed using a network between the second controller and the drive device.
  • the drive device includes a state management unit that manages the state of the safety function according to the second command, and a data disclosure unit that discloses, via a network, preset information among information held by the state management unit.
  • the support program receives, from the computer, the designation of the information to be disclosed by the data publishing unit, and transfers a publishing setting for specifying the designated information to the drive device. And identifying the information to be disclosed among the information managed by the data publishing unit, and associating the meaning of the identified information with reference information for referring to the information published by the data publishing unit.
  • the information relating to the second command transmitted via the connection formed using the network between the second controller and the drive device can be easily transmitted from the first controller. Can access.
  • the first controller can realize control according to the operation of the safety function depending on the second command.
  • FIG. 3 is a schematic diagram illustrating a hardware configuration example of a standard controller configuring the control system according to the present embodiment.
  • FIG. 2 is a schematic diagram illustrating a hardware configuration example of a safety controller included in the control system according to the present embodiment.
  • FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a safety driver and a servo motor configuring a control system according to the present embodiment.
  • FIG. 2 is a schematic diagram illustrating a hardware configuration example of a support device configuring the control system according to the present embodiment.
  • FIG. 9 is a sequence diagram illustrating an example of a processing procedure related to a safety function by a safety driver of the control system according to the present embodiment.
  • FIG. 4 is a diagram illustrating an example of a motion safety function provided by the control system according to the present embodiment. It is a figure showing an example of a parameter set for realizing a motion safety function stored in a safety driver of the control system according to the present embodiment.
  • FIG. 3 is a diagram for explaining a transmission mode of a communication frame in the control system according to the present embodiment.
  • FIG. 3 is a diagram for explaining data transmission in the control system according to the present embodiment.
  • FIG. 6 is a diagram for explaining a method in which a standard controller of the control system according to the present embodiment refers to information on a motion safety function.
  • FIG. 9 is a diagram for explaining another method in which the standard controller of the control system according to the present embodiment refers to information on the motion safety function. It is a figure for explaining the example of setting of the object for motion safety control which the safety driver of the control system concerning this embodiment discloses. It is a figure for explaining setting processing in a support device of a control system concerning this embodiment.
  • FIG. 6 is a diagram for explaining a method in which a standard controller of the control system according to the present embodiment refers to information on a motion safety function.
  • FIG. 9 is a diagram for explaining another method in which the standard controller of the control system according to the present embodiment refers to information on the motion safety function. It is a figure for explaining the example of setting of the object for motion safety control which the safety driver of the control system concerning this embodiment discloses. It is a figure for explaining setting processing in a support device of
  • FIG. 4 is a schematic diagram illustrating an example of a user interface screen provided by a support device of the control system according to the present embodiment.
  • FIG. 4 is a diagram showing an example of a standard control program with reference to a motion safety control object in the control system according to the present embodiment. It is a flowchart which shows an example of the setting processing procedure in the support apparatus which comprises the control system which concerns on this Embodiment. It is a figure for explaining processing of batch release setting in a support device which constitutes a control system concerning this embodiment.
  • FIG. 1 is a schematic diagram showing a configuration example of a control system 1 according to the present embodiment.
  • the control system 1 according to the present embodiment provides, for example, a safety function for the drive device specified in Non-Patent Document 1 described above, in addition to a safety function specified in IEC # 61508 or the like.
  • control system 1 mainly includes a standard controller 100, a safety controller 200 connected to standard controller 100 via field network 2, and one or more safety drivers 300.
  • Each of the safety drivers 300 is an example of a drive device, and drives a servo motor 400 that is electrically connected. Not only the servo motor 400 but also any type of actuator (for example, a three-phase AC motor, a DC motor, a single-phase AC motor, a multi-phase AC motor, a linear servo, etc.) can be adopted.
  • the entity of the safety driver 300 may be a servo driver or a general-purpose inverter device. In the following description, the safety driver 300 will be described as an example of a drive device.
  • the standard controller 100 corresponds to a first controller, and executes standard control on a control target including the servomotor 400 according to a standard control program created in advance.
  • the standard controller 100 cyclically executes a control operation according to an input signal from one or a plurality of sensors (not shown) to periodically issue a command to an actuator such as the servomotor 400. Is calculated.
  • the safety controller 200 transmits a safety command (second command) related to the operation of the safety function to the safety driver 300. More specifically, the safety controller 200 cyclically executes monitoring and control calculations for implementing a safety function for a control target independently of the standard controller 100.
  • the safety controller 200 is capable of receiving an input signal from any safety device 240 and / or outputting a command to any safety device 240.
  • the safety driver 300 drives the servomotor 400 by supplying power to the servomotor 400 in accordance with a command (first command) from the standard controller 100.
  • the safety driver 300 periodically calculates a rotational position, a rotational speed, a rotational acceleration, a generated torque, and the like of the servo motor 400 based on a feedback signal from the servo motor 400 and the like.
  • the safety driver 300 has a safety function related to the driving of the servo motor 400. More specifically, the safety driver 300 provides state information necessary for the safety function to the safety controller 200, and adjusts or cuts off the power supplied to the servomotor 400 according to the required safety function.
  • the servo motor 400 has a motor that rotates by receiving electric power from the safety driver 300, and outputs a detection signal from an encoder coupled to a rotation shaft of the motor to the safety driver 300 as a feedback signal.
  • “device” is a general term for a device that can perform data communication with another device via an arbitrary network such as the field network 2.
  • the “device” includes the standard controller 100, the safety controller 200, and the safety driver 300.
  • Standard control is a general term for processing for controlling a control target in accordance with a predetermined required specification.
  • safety control is a general term for processing for preventing human safety from being threatened by equipment and machines. The “safety control” is designed so as to satisfy requirements for realizing a safety function specified in IEC # 61508 or the like.
  • a safety function unique to a drive device is generically referred to as a “motion safety function”.
  • the “function” includes a safety function related to the drive device defined in Non-Patent Document 1 described above. For example, it includes control for monitoring the position and speed of the control axis to ensure safety.
  • process data is a general term for data used in at least one of the standard control and the safety control. Specifically, the “process data” includes input information obtained from the control target, output information output to the control target, internal information used for control calculation in each device, and the like.
  • the input information includes an ON / OFF signal (digital input) detected by a photoelectric sensor or the like, a physical signal (analog input) detected by a temperature sensor or the like, and a pulse signal (pulse input) generated by a pulse encoder or the like.
  • the output information includes ON / OFF (digital output) for driving a relay or the like, a speed command (analog output) for instructing a rotation speed of a servo motor, and a displacement command (pulse) for instructing a moving amount of a stepping motor.
  • the internal information includes state information determined by a control operation or the like that receives arbitrary process data.
  • the value of “process data” is updated every control cycle or communication cycle.
  • updating means reflecting the latest value, and may include a case where the value does not change before and after updating.
  • FIG. 2 is a schematic diagram showing functions of the control system 1 according to the present embodiment.
  • a servo control 350 that is responsible for driving servo motor 400 is mounted.
  • a command (first command) is given from the standard controller 100 to the servo control 350.
  • a motion safety function 360 is further mounted in each of the safety drivers 300.
  • the safety command (second command) is given to the motion safety function 360 from the safety controller 200.
  • the safety command is transmitted between the safety controller 200 and the safety driver 300 via the logical connection 4 formed using the field network 2.
  • the motion safety function 360 of the safety driver 300 has a motion safety function state management engine 378 (corresponding to a state management unit) that manages the state of the safety function according to a safety command.
  • the field network 2 is used to share data among the standard controller 100, one or more safety drivers 300, and the safety controller 200.
  • a data publishing architecture 6 for sharing data between devices using the field network 2 is provided.
  • Each of the safety drivers 300 has a data mirror engine 380 that publishes preset information from among the information held by the motion safety function state management engine 378 via the field network 2 (details will be described later. ). That is, the data mirror engine 380 uses the data publishing architecture 6 to copy the preset information among the information held by the motion safety function state management engine 378 so that other devices can access it.
  • the standard controller 100 and other devices can access the state information of the motion safety function 360, which is changed according to the safety command exchanged via the logical connection 4. Become. Thereby, the standard controller 100 and other devices can realize a control operation according to the operation state of the safety function in the safety driver 300.
  • FIG. 3 is a schematic diagram illustrating a hardware configuration example of the standard controller 100 included in the control system 1 according to the present embodiment.
  • the standard controller 100 includes a processor 102, a main memory 104, a storage 110, a higher-level network controller 106, a field network controller 108, a USB (Universal Serial Bus) controller 120, and a memory card interface. 112 and a local bus controller 116. These components are connected via a processor bus 118.
  • the processor 102 mainly corresponds to an arithmetic processing unit that executes a control operation related to the standard control, and includes a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. More specifically, the processor 102 reads a program (for example, the system program 1102 and the standard control program 1104) stored in the storage 110, expands the program in the main memory 104, and executes the read program. The control calculation and various processes described later are realized.
  • a program for example, the system program 1102 and the standard control program 1104
  • the main memory 104 is configured by a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory).
  • the storage 110 is composed of, for example, a nonvolatile storage device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive).
  • the storage 110 stores a standard control program 1104 created according to a control target, in addition to a system program 1102 for realizing basic functions. Further, the storage 110 stores setting information 1106 for setting variables and the like as described later.
  • the upper network controller 106 exchanges data with an arbitrary information processing device via the upper network.
  • the field network controller 108 exchanges data with an arbitrary device including the safety controller 200 and the safety driver 300 via the field network 2.
  • the field network controller 108 of the standard controller 100 functions as a communication master of the field network 2.
  • the USB controller 120 exchanges data with the support device 500 and the like via a USB connection.
  • the memory card interface 112 accepts a memory card 114 which is an example of a removable recording medium.
  • the memory card interface 112 can write data to the memory card 114 and read various data (such as logs and trace data) from the memory card 114.
  • the local bus controller 116 exchanges data with an arbitrary unit connected to the standard controller 100 via a local bus.
  • FIG. 3 illustrates a configuration example in which the processor 102 provides necessary functions by executing a program.
  • some or all of the provided functions may be replaced by a dedicated hardware circuit (for example, an ASIC). (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array) or the like.
  • the main part of the standard controller 100 may be realized using hardware that conforms to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer).
  • a plurality of OSs (Operating Systems) having different applications may be executed in parallel using virtualization technology, and a required application may be executed on each OS.
  • a configuration in which functions such as a display device and a support device are integrated with the standard controller 100 may be adopted.
  • FIG. 4 is a schematic diagram illustrating a hardware configuration example of the safety controller 200 included in the control system 1 according to the present embodiment.
  • the safety controller 200 includes a processor 202, a main memory 204, a storage 210, a field network controller 208, a USB controller 220, and a safety local bus controller 216. These components are connected via a processor bus 218.
  • the processor 202 mainly corresponds to an arithmetic processing unit that executes a control operation related to safety control, and is configured by a CPU, a GPU, and the like. Specifically, the processor 202 reads out the programs (for example, the system program 2102 and the safety program 2104) stored in the storage 210, develops them in the main memory 204, and executes them to provide necessary safety functions. Control processing for performing the control and various processes described later are realized.
  • the main memory 204 includes a volatile storage device such as a DRAM or an SRAM.
  • the storage 210 is configured by, for example, a nonvolatile storage device such as an SSD or an HDD.
  • the storage 210 stores a safety program 2104 created according to a required safety function, in addition to a system program 2102 for realizing basic functions. Further, the storage 210 stores setting information 2106 for setting variables and the like as described later.
  • the field network controller 208 exchanges data with any device including the standard controller 100 and the safety driver 300 via the field network 2.
  • the field network controller 208 of the safety controller 200 functions as a communication slave of the field network 2.
  • the USB controller 220 exchanges data with an information processing device such as the support device 500 via a USB connection.
  • the safety local bus controller 216 exchanges data with an arbitrary safety unit connected to the safety controller 200 via the safety local bus.
  • FIG. 4 shows a safety IO unit 230 as an example of the safety unit.
  • the safety IO unit 230 exchanges input / output signals with an arbitrary safety device 240. More specifically, the safety IO unit 230 receives an input signal from a safety device 240 such as a safety sensor or a safety switch. Alternatively, the safety IO unit 230 outputs a command to a safety device 240 such as a safety relay.
  • a safety device 240 such as a safety sensor or a safety switch.
  • FIG. 4 illustrates a configuration example in which the processor 202 provides necessary functions by executing a program.
  • some or all of the provided functions may be replaced by a dedicated hardware circuit (for example, an ASIC). Or an FPGA or the like).
  • the main part of the safety controller 200 may be realized using hardware that conforms to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer).
  • FIG. 5 is a schematic diagram illustrating an example of a hardware configuration of the safety driver 300 and the servo motor 400 that configure the control system 1 according to the present embodiment.
  • safety driver 300 includes a field network controller 302, a control unit 310, a drive circuit 330, and a feedback reception circuit 332.
  • the field network controller 302 exchanges data with any device including the standard controller 100 and the safety controller 200 via the field network 2.
  • the field network controller 302 of the safety driver 300 functions as a communication slave of the field network 2.
  • the control unit 310 performs an arithmetic process necessary for operating the safety driver 300.
  • the control unit 310 includes processors 312 and 314, a main memory 316, and a storage 320.
  • the processor 312 corresponds to an arithmetic processing unit that mainly executes a control operation for driving the servomotor 400.
  • the processor 314 corresponds to an arithmetic processing unit that mainly executes control arithmetic for providing a safety function related to the servomotor 400.
  • Each of the processors 312 and 314 is configured by a CPU or the like.
  • the main memory 316 is configured by a volatile storage device such as a DRAM or an SRAM.
  • the storage 320 is configured by, for example, a nonvolatile storage device such as an SSD or an HDD.
  • the storage 320 includes a servo control program 3202 for realizing the servo control 350, a motion safety program 3204 for realizing the motion safety function 360, and setting information for setting variables and the like to be disclosed to other devices. 3206 are stored.
  • FIG. 5 exemplifies a configuration in which the two processors 312 and 314 execute control calculations for different purposes to enhance reliability.
  • the configuration is not limited to this, and any configuration may be used as long as required safety functions can be realized. May be adopted.
  • control calculations corresponding to the processors 312 and 314 may be executed.
  • FIG. 5 shows an example of a configuration in which necessary functions are provided by the processors 312 and 314 executing a program, but some or all of these provided functions may be replaced by dedicated hardware circuits. (For example, ASIC or FPGA).
  • the drive circuit 330 includes a converter circuit, an inverter circuit, and the like, generates power of a specified voltage, current, and phase according to a command from the control unit 310, and supplies the generated power to the servomotor 400.
  • the feedback receiving circuit 332 receives a feedback signal from the servomotor 400 and outputs a result of the reception to the control unit 310.
  • the servomotor 400 typically includes a three-phase AC motor 402 and an encoder 404 attached to a rotating shaft of the three-phase AC motor 402.
  • the three-phase AC motor 402 is an actuator that receives the electric power supplied from the safety driver 300 and generates a rotational force.
  • FIG. 5 illustrates a three-phase AC motor as an example, but is not limited thereto, and may be a DC motor, a single-phase AC motor, or a multi-phase AC motor. Further, an actuator that generates a driving force along a straight line such as a linear servo may be employed.
  • the encoder 404 outputs a feedback signal (typically, a pulse signal of a number corresponding to the number of revolutions) according to the number of revolutions of the three-phase AC motor 402.
  • a feedback signal typically, a pulse signal of a number corresponding to the number of revolutions
  • FIG. 6 is a schematic diagram illustrating a hardware configuration example of the support device 500 configuring the control system 1 according to the present embodiment.
  • the support device 500 is implemented using hardware (for example, a general-purpose personal computer) that conforms to a general-purpose architecture.
  • support device 500 includes a processor 502, a main memory 504, an input unit 506, an output unit 508, a storage 510, an optical drive 512, and a USB controller 520. These components are connected via a processor bus 518.
  • the processor 502 includes a CPU, a GPU, and the like.
  • the processor 502 reads a program (for example, the OS 5102 and the support program 5104) stored in the storage 510, expands the program in the main memory 504, and executes the program. Implement the processing.
  • the main memory 504 includes a volatile storage device such as a DRAM or an SRAM.
  • the storage 510 includes, for example, a nonvolatile storage device such as an HDD and an SSD.
  • the storage 510 stores a support program 5104 for providing a function as the support device 500 in addition to the OS 5102 for realizing basic functions. That is, the support program 5104 is executed by a computer connected to the control system 1 to realize the support device 500 according to the present embodiment.
  • the storage 510 further stores project data 5106 created by a user in a development environment provided by executing the support program 5104.
  • the support device 500 provides a development environment in which settings for each device included in the control system 1 and creation of a program executed by each device can be integrated.
  • the project data 5106 includes data generated by such an integrated development environment.
  • the project data 5106 includes a standard control source program 5108, standard controller setting information 5110, a safety source program 5112, safety controller setting information 5114, and safety driver setting information 5116.
  • the standard control source program 5108 is converted to an object code, transmitted to the standard controller 100, and stored as the standard control program 1104 (see FIG. 3).
  • the standard controller setting information 5110 is also transmitted to the standard controller 100 and stored as setting information 1106 (see FIG. 3).
  • the safety source program 5112 is converted into an object code, transmitted to the safety controller 200, and stored as a safety program 2104 (see FIG. 3).
  • the safety controller setting information 5114 is also transmitted to the safety controller 200 and stored as setting information 2106 (see FIG. 4).
  • the safety driver setting information 5116 is transmitted to the safety driver 300 and stored as setting information 3206 (see FIG. 5).
  • the input unit 506 includes a keyboard, a mouse, and the like, and receives a user operation.
  • the output unit 508 includes a display, various indicators, a printer, and the like, and outputs a processing result from the processor 502 and the like.
  • the USB controller 520 exchanges data with the standard controller 100 or the like via a USB connection.
  • the support device 500 includes an optical drive 512, and a recording medium 514 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program in a non-transitory manner.
  • the stored program is read and installed in the storage 510 or the like.
  • the support program 5104 and the like executed by the support device 500 may be installed via a computer-readable recording medium 514, or may be installed by downloading from a server device or the like on a network.
  • the function provided by the support device 500 according to the present embodiment may be realized by using a part of a module provided by the OS.
  • FIG. 6 shows a configuration example in which the processor 502 executes a program to provide necessary functions as the support device 500.
  • the processor 502 executes a program to provide necessary functions as the support device 500.
  • some or all of the provided functions may be replaced by dedicated hardware. It may be implemented using a circuit (for example, an ASIC or an FPGA).
  • the support device 500 may be detached from the standard controller 100 while the control system 1 is operating.
  • FIG. 7 is a schematic diagram illustrating an example of function sharing of the control system 1 according to the present embodiment.
  • safety driver 300 executes servo control 350.
  • the standard control 150 includes a process of periodically calculating a command for driving the servomotor 400 in accordance with a user program preset for a control target. Further, the servo control 350 includes control for driving the servo motor 400 according to a command periodically calculated by the standard control 150, and processing for acquiring and outputting a state value indicating an operation state of the servo motor 400. .
  • the servo control 350 is performed by the processor 312 (see FIG. 5) of the safety driver 300.
  • the safety driver 300 provides a motion safety function 360 corresponding to the safety function 250 provided by the safety controller 200.
  • the motion safety function 360 is assigned to the processor 314 (see FIG. 5) of the safety driver 300.
  • the safety function 250 is predetermined based on a state value held by the standard control 150 executed by the standard controller 100, a state value indicated by a signal from the safety device 240, a state value held by the safety driver 300, and the like. When the set condition is satisfied, the safety function specified in advance is activated.
  • the process of activating the safety function specified in advance includes, for example, the output of a safety command to the safety driver 300 or the output of a safety command to the safety device 240 (for example, the safety related to power supply to a specific device). To shut off the relay).
  • the safety driver 300 provides a designated motion safety function 360 in response to a safety command from the safety controller 200.
  • processing for interrupting power supply to the servo motor 400 by intervening in control of the servo motor 400 by the servo control 350 or control of the servo motor 400 by the servo control 350 For example, a process of monitoring whether or not the state value is within a predetermined limit range is executed.
  • FIG. 8 is a sequence diagram showing an example of a processing procedure relating to a safety function by the safety driver 300 of the control system 1 according to the present embodiment.
  • a command is periodically calculated by standard control 150 of standard controller 100 and output to safety driver 300 (servo control 350) (sequence SQ2).
  • Servo control 350 of safety driver 300 drives servo motor 400 in accordance with a command from standard control 150 (sequence SQ4).
  • the safety controller 200 when a safety event occurs from the safety device 240 (for example, a safety sensor) (sequence SQ6), the safety controller 200 outputs a safety command to the safety driver 300 (motion safety function 360) (sequence SQ8). In response to this safety command, motion safety function 360 of safety driver 300 activates the designated safety function (sequence SQ10).
  • the standard control 150 of the standard controller 100 calculates and outputs a command corresponding to the activated safety function (sequence SQ12).
  • the safety driver 300 motion safety function 360
  • the safety driver 300 can drive the servomotor 400 in accordance with a command from the standard controller 100 (standard control 150), and in response to a command for enabling the safety function, the safety controller 200 (safety function 250). , A motion safety function can be realized.
  • FIG. 9 is a diagram showing an example of the motion safety function provided by the control system 1 according to the present embodiment.
  • FIG. 9A shows an example of the behavior of the servo motor 400 corresponding to STO (Safe Torque Off), and
  • FIG. 9B shows the behavior of the servo motor 400 corresponding to SS1 (Safe Stop 1). An example is shown.
  • safety driver 300 supplies power to servo motor 400. And the torque generated by the servomotor 400 is reduced to zero. As a result, the servomotor 400 stops after rotating by inertia. When a brake is mounted on the servo motor 400, the servo motor 400 can be stopped immediately.
  • safety driver 300 rotates at a predetermined acceleration. Reduce speed. At this time, the safety driver 300 may execute power recovery (that is, regeneration) from the servo motor 400 or the like. Then, when the rotation speed of the servo motor 400 becomes zero at time t2, the safety driver 300 cuts off the power supply to the servo motor 400 and makes the torque generated by the servo motor 400 zero. After time t2, the state is the same as that of the STO shown in FIG.
  • a safety function that can stop more safely according to the characteristics of the equipment mechanically connected to the servomotor 400 is appropriately provided. Selected.
  • Non-Patent Document 1 defines not only the motion safety functions shown in FIGS. 9A and 9B but also a plurality of motion safety functions. In order to realize each motion safety function, a setting for defining the behavior of the servo motor 400 is required.
  • FIG. 10 is a diagram showing an example of a parameter set 390 for realizing the motion safety function stored in the safety driver 300 of the control system 1 according to the present embodiment.
  • parameter set 390 includes one or a plurality of set values (parameters) corresponding to each of the motion safety functions provided by safety driver 300.
  • the set value corresponding to the motion safety function may include a speed range, an acceleration range, a stop time, and the like.
  • the user operates the support device 500 to determine the behavior in the motion safety function of the safety driver 300, and the parameter set 390 corresponding to the determined behavior is transferred to the safety driver 300.
  • the safety driver 300 stores a parameter set 390 from the support device 500 in advance.
  • FIG. 11 is a diagram for explaining a transmission form of a communication frame in the control system 1 according to the present embodiment.
  • process data communication is performed, and the communication frame 600 is cyclic (for example, several to several tens of msec) using the standard controller 100 as a communication master. Make a round-trip between devices.
  • the cycle at which the communication frame 600 transmits is also referred to as a process data communication cycle.
  • EtherCAT registered trademark
  • a data area is allocated to the communication frame 600 for each device.
  • each device receives the communication frame 600 transmitted periodically, each device writes the current value of the preset data in the data area allocated to the own device in the received communication frame 600. Then, the communication frame 600 after the writing of the current value is transmitted to the next device.
  • the current value of the data written by each device can be referred to from other devices.
  • the communication frame 600 When each device writes the current value of the preset data to the communication frame 600, the communication frame 600 returning to the communication master (the standard controller 100) after making a round of the field network 2 includes the latest data collected by each device. Will be included.
  • the logical connection 4 is formed between the safety controller 200 and each of the safety drivers 300 using such process data communication (see FIG. 11).
  • the logical connection 4 is used for exchanging data for realizing the safety function.
  • the logical connection 4 can be formed by using a protocol called FSoE (FailSafe over EtherCAT).
  • a dedicated data area for storing commands exchanged to form the logical connection 4 is allocated to the communication frame 600.
  • the logical connection 4 is formed by exchanging commands between devices using the dedicated data area.
  • FIG. 12 is a diagram for explaining data transmission in the control system 1 according to the present embodiment.
  • communication frame 600 defines a data area 620 used for logical connection 4 in addition to a data area 610 used for process data communication.
  • the data area 610 includes a data area 611 assigned to the standard controller 100, data areas 612, 613, 614 assigned to the safety driver 300, and a data area 615 assigned to the safety controller 200.
  • the data areas 612, 613, 614, and 615 include IN data areas 6121, 6131, 6141, and 6151 for disclosing data from each device to another device, and OUT data areas 6122 and 6122 for receiving a command from each device. 6132, 6142, and 6152.
  • the $ IN data areas 6121, 6131, 6141, and 6151 are data areas in which data to be disclosed to other devices is written out of process data managed by each device.
  • each device writes necessary data in the IN data area allocated to the own device in the communication frame 600, other devices can refer to the written data.
  • the standard controller 100 calculates a command for each device by executing a control operation related to standard control with reference to data written by each device in each communication cycle.
  • a command given to each device is written in the OUT data areas 6122, 6132, 6142, and 6152.
  • Each device generates an output signal to the control target or updates the internal control state by referring to the data stored in the OUT data area assigned to the own device in the communication frame 600. Basically, data is written in the OUT data area of each device by the standard controller 100.
  • the operation of writing and reading data of each device to and from the data area 610 used for process data communication is preset according to the data area allocated to each device. Such data write and read setting operations are performed by the user on the support device 500. Then, the setting information is transmitted from the support device 500 to each device.
  • the data area 620 used for the logical connection 4 includes the data areas 621, 622, and 623 assigned to the safety driver 300 and the data area 624 assigned to the safety controller 200.
  • Each device writes and reads a communication frame (hereinafter, also referred to as a “safety communication frame 630”) related to the logical connection 4 to and from the data areas 621, 622, 623, and 624.
  • the standard controller 100 as the communication master exchanges the stored safety communication frames 630 between the data areas 621, 622, 623, and 624.
  • the safety communication frame 630 can perform a kind of peer-to-peer communication.
  • FIG. 12 shows, as an example, a process when the safety communication frame 630 is transmitted from the safety controller 200 to the first safety driver 300.
  • the safety communication frame 630 as shown in FIG. 12 is transmitted when the safety controller 200 activates a specific motion safety function for a specific safety driver 300 or the like.
  • the safety controller 200 generates a safety communication frame 630 to be transmitted to the destination safety driver 300 and writes the generated safety communication frame 630 in the data area 624 of the communication frame 600. Thereafter, when the communication frame 600 in which the safety communication frame 630 is written arrives at the standard controller 100 as the communication master, the standard controller 100 copies the safety communication frame 630 stored in the data area 624 to the data area 621. . When the communication frame 600 in which the safety communication frame 630 is duplicated in the data area 621 arrives at the destination safety driver 300, the destination safety driver 300 refers to the data area 621 and receives the safety communication frame 630.
  • the safety communication frame 630 from the safety driver 300 to the safety controller 200 is transmitted through a communication path opposite to the above.
  • the logical connection 4 is formed using the data area 620 in the communication frame 600.
  • FIG. 13 is a schematic diagram showing an implementation example of standard control and safety control in the control system 1 according to the present embodiment.
  • FIG. 13 shows an example of the control system 1 including one safety driver 300 in addition to the standard controller 100 and the safety controller 200.
  • the standard controller 100 has a process data communication layer 170 and an IO management module 172 as main functional components.
  • the safety controller 200 includes a process data communication layer 270, an IO management module 272, a logical connection layer 276, and a safety function state management engine 278 as main functional components.
  • the safety driver 300 includes, as main functional components, a process data communication layer 370, a logical connection layer 376, a motion safety function state management engine 378, a servo control execution engine 352, and a motion safety function execution engine 362.
  • the process data communication layer 170, the process data communication layer 270, and the process data communication layer 370 are responsible for transferring the communication frame 600 on the field network 2.
  • Each of the process data communication layer 170, the process data communication layer 270, and the process data communication layer 370 updates the process data 174, 274, and 374 of each device based on the data included in the arrived communication frame 600. Further, each of the process data communication layer 170, the process data communication layer 270, and the process data communication layer 370 rewrites the communication frame 600 after writing predetermined process data in a data area allocated in advance. And sends it to the next device. At least a part of the process data is shared by the process data communication.
  • the logical connection layer 276 of the safety controller 200 and the logical connection layer 376 of the safety driver 300 handle the exchange of the safety communication frame 630. That is, the logical connection layer 276 and the logical connection layer 376 transmit commands and data using the safety communication frame 630 included in the communication frame 600 according to a protocol for forming a logical connection (FSoE in the present embodiment). Exchanges.
  • FoE protocol for forming a logical connection
  • the IO management module 172 updates the process data 174 by exchanging signals with the control target.
  • the standard control program 1104 executed by the standard controller 100 executes a control operation with reference to the process data 174, and updates the process data 174 with an execution result of the control operation.
  • the IO management module 272 updates the process data 274 by exchanging signals with the safety device 240.
  • the process data 274 is collectively expressed, but the process data updated for process data communication (for standard control) and the process data updated for communication with the safety device 240 (for safety control). May be managed at different levels.
  • the safety program 2104 executed in the safety controller 200 executes the control calculation with reference to the process data 274 and the safety function state management engine 278, and updates the process data 274 based on the execution result of the control calculation, or And outputs an internal command to the safety function state management engine 278.
  • the safety function state management engine 278 generates a command for enabling a specific motion safety function for a specific safety driver 300 in accordance with the result of execution of the control calculation by the safety program 2104.
  • the logical connection layer 276 exchanges necessary commands and information with the logical connection layer 376 of the target safety driver 300 using the safety communication frame 630 in response to a command from the safety function state management engine 278. .
  • the servo control execution engine 352 executes a control operation related to the servo control with reference to the process data 374 and the information of the feedback signal obtained via the feedback receiving circuit 332.
  • the servo control execution engine 352 updates the process data 374 based on the execution result of the control calculation, and outputs an internal command to the drive circuit 330.
  • Drive circuit 330 drives servo motor 400 according to a command from servo control execution engine 352.
  • the motion safety function state management engine 378 is equivalent to a state management unit that manages the state of the motion safety function according to a safety command from the safety controller 200.
  • the motion safety function state management engine 378 outputs an internal command to the motion safety function execution engine 362 in response to a command from the safety controller 200.
  • the motion safety function execution engine 362 executes the specified motion safety function.
  • the logical connection layer 376 exchanges necessary commands and information with the logical connection layer 276 of the safety controller 200 using the safety communication frame 630 in response to a command from the motion safety function state management engine 378.
  • the activation of the motion safety function is instructed via the logical connection 4 between the safety controller 200 and the safety driver 300.
  • the standard controller 100 cannot directly refer to the exchange between the safety controller 200 and the safety driver 300. Therefore, unless the related data is disclosed using the data area 610 used for process data communication of the communication frame 600, the standard controller 100 determines whether the motion safety function is enabled and whether the motion safety function is enabled. Timing cannot be detected.
  • the standard controller 100 refers to the information of the motion safety function will be described.
  • FIG. 14 is a diagram for explaining a method in which the standard controller 100 of the control system 1 according to the present embodiment refers to information on the motion safety function.
  • safety function state management engine 278 manages information on the motion safety function. Therefore, first, a command and / or setting for acquiring information on the motion safety function managed by the safety function state management engine 278 is added to the safety program 2104 or the like ((1) information acquisition). Then, a command and / or setting for releasing the acquired information of the motion safety function to another device is added to the safety program 2104 or the like ((2) Information disclosure). By adding such commands and / or settings, information on the motion safety function is disclosed from the safety controller 200 to other devices.
  • the safety function state management engine 278 manages information for each motion safety function, and among the information, information to be referred to by the standard controller 100 is stored in an arbitrary internal variable.
  • the setting for assignment is made.
  • a public variable for publishing to other devices is defined.
  • an instruction to copy the value of the internal variable indicating the information referred to by the standard controller 100 to the public variable is added to the safety program 2104.
  • This public variable may be defined as a global variable that can be referred to from other devices.
  • a command and / or setting for acquiring information on the motion safety function disclosed by the safety controller 200 is added to the standard control program 1104 and the like ((3) information acquisition). Then, a program for controlling the safety driver 300 using the acquired information of the motion safety function is added to the standard control program 1104 ((4) command output program addition). By adding such a command and / or setting, the standard controller 100 can output a command for controlling the safety driver 300 with reference to the information on the motion safety function.
  • a setting for assigning information disclosed by the safety controller 200 to an arbitrary internal variable of the standard controller 100 is performed. Then, a program for controlling the safety driver 300 is created using the assigned internal variables.
  • FIG. 15 is a diagram for explaining another method in which the standard controller 100 of the control system 1 according to the present embodiment refers to the information on the motion safety function.
  • safety driver 300 further includes data mirror engine 380.
  • the data mirror engine 380 corresponds to a data publishing unit that publishes, via the field network 2, information set in advance among information held by the motion safety function state management engine 378. Specifically, the data mirror engine 380 copies information selected in advance of the motion safety function information managed by the motion safety function state management engine 378 to the process data 374 in order to release the data ((( 1) Duplication).
  • a command and / or setting for acquiring information on the motion safety function disclosed by the safety driver 300 is added to the standard control program 1104 and the like ((2) information acquisition). Then, a program for controlling the safety driver 300 using the acquired information of the motion safety function is added to the standard control program 1104 ((3) command output program addition). By adding such a command and / or setting, the standard controller 100 can output a command for controlling the safety driver 300 with reference to the information on the motion safety function.
  • the motion safety function state management engine 378 of the safety driver 300 manages information for each motion safety function, and among the information, information to be referred to by the standard controller 100 is described.
  • a setting for assigning to a variable to be disclosed to another device is made.
  • information disclosed by the safety driver 300 is assigned to variables in the form of objects.
  • Such variables in the form of objects are also referred to as “motion safety control objects”.
  • Each piece of information to be published (a set of information type and value) is assigned as a property of the motion safety control object.
  • the motion safety control object corresponds to a communication object accessible via the field network 2.
  • a program for controlling the safety driver 300 is created using necessary information among information (properties) included in the motion safety control object, which is disclosed by the safety driver 300. You.
  • the standard control program executed by the standard controller 100 can be relatively easily performed by selecting information to be disclosed to the safety driver 300. 1104 can be created.
  • FIG. 16 is a diagram for explaining an example of setting a motion safety control object disclosed by the safety driver 300 of the control system 1 according to the present embodiment.
  • the motion safety control object 382 includes a control object 3821 indicating a state of issuing a command (validation / invalidation) for each motion safety and a status object 3822 indicating a state value for each motion safety. Including. In addition, not only two objects as shown in FIG. 16 but only a single object may be prepared, or more objects may be prepared.
  • the motion safety function state management engine 378 of the safety driver 300 has control objects 3781, 3782, 3873, 3784, 3785,... For each motion safety function.
  • the control objects 3781, 3782, 3873, 3784, 3785,... Are data structures that the motion safety function state management engine 378 logically holds.
  • control objects 3781, 3782, 3873, 3784, 3785,... include information 3781A, 3782A, 3784A, 3784A indicating the issue state of each motion safety command (validation / invalidation). ., And information 3781B, 3782B, 3883B, 3784B, 3785B,... Indicating the control state of each motion safety.
  • the information selected in advance among the information included in the control objects 3781, 3782, 3873, 3784, 3785,... is copied to the motion safety control object 382.
  • the motion safety control object 382 can also be referred to as a “mirror object”.
  • the mirror object reflects the information included in the motion safety control object 382 as it is, and is also a variable group that is disclosed to each device connected to the field network 2 including the standard controller 100.
  • the information allocated to the motion safety control object 382 is defined by the mirror object setting 384 (included in a part of the setting information 3206 (see FIG. 5)).
  • the mirror object setting 384 defines information to be copied as information (property) included in the motion safety control object 382 among information managed by the motion safety function state management engine 378.
  • the data mirror engine 380 is realized by the processor 312 which is an arithmetic processing unit that executes the servo control 350, and the motion safety function state management engine 378 is an arithmetic processing unit that provides the motion safety function 360. Is realized by the processor 314 which is
  • an event may be notified between the processor 312 and the processor 314 by message communication or the like.
  • the motion safety function state management engine 378 updates the information of the corresponding control object, and also updates the data mirror engine 380 (processor 312). Notify the information update.
  • the data mirror engine 380 updates the content of the motion safety control object 382.
  • the mirror object setting 384 for generating the motion safety control object 382 as described above is set in the support device 500. More specifically, in the support device 500, the mirror object setting table 560 included in a part of the safety driver setting information 5116 (see FIG. 6) is defined, and the mirror object setting table 560 is transferred to the safety driver 300. In the safety driver 300, the mirror object setting 384 is stored.
  • the mirror object setting table 560 held by the support device 500 and the mirror object setting 384 held by the safety driver 300 each correspond to a disclosure setting for specifying information to be disclosed. I do.
  • a setting process in the support device 500 regarding the mirror object setting 384 will be described.
  • FIG. 17 is a diagram for describing a setting process in the support device 500 of the control system 1 according to the present embodiment.
  • support device 500 receives settings related to standard controller 100 and safety driver 300 included in control system 1.
  • FIG. 17 shows a standard controller variable setting table 550 (included in the standard controller setting information 5110 in FIG. 6) and a mirror object setting table 560 (included in the safety driver setting information 5116 in FIG. 6) as an example of the setting. .
  • the mirror object setting table 560 is a table that defines information included in the motion safety control object 382 disclosed by the target safety driver 300.
  • the user edits the mirror object setting table 560 on the support device 500 and sets information to be included in the motion safety control object 382 published by the target safety driver 300 ((1) setting).
  • the mirror object setting table 560 includes setting fields 562 and 564 corresponding to the control object 3821 and the status object 3822 included in the motion safety control object 382, respectively.
  • the user sets the variable name 566 of the target information in each entry of the setting columns 562 and 564.
  • Information set in each entry is arbitrarily selected from the control objects 3781, 3782, 3873, 3784, 3785,... (See FIG. 16) for each motion safety function held by the motion safety function state management engine 378. You.
  • the support device 500 receives the specification of the information disclosed by the data mirror engine 380 and transfers the disclosure setting (mirror object setting table 560) for specifying the specified information to the safety driver 300.
  • the standard controller variable setting table 550 is a table that defines variables that can be referred to by the standard controller 100.
  • the standard controller variable setting table 550 includes settings for referring to the motion safety control object 382 published by the safety driver 300.
  • the standard controller variable setting table 550 includes setting fields 552 and 554 corresponding to the control object 3821 and the status object 3822 included in the motion safety control object 382, respectively.
  • the motion safety control object 382 can be referred to as it is, but in order to facilitate creation of the standard control program 1104, the motion safety control object 382 is used. It is also possible to set a variable for each attribute included in.
  • FIG. 17 shows an example in which variables are automatically set for each attribute included in the motion safety control object 382 in the standard controller variable setting table 550 based on the settings in the mirror object setting table 560.
  • the support device 500 refers to the mirror object setting table 560 (disclosure setting), specifies information to be disclosed among information managed by the motion safety function state management engine 378 of the safety driver 300, and The meaning of the specified information is associated with a variable name 556 (corresponding to reference information) for referring to information published by the data mirror engine 380.
  • variable name 556 set in the standard controller variable setting table 550 can be referred to.
  • FIG. 18 is a schematic diagram showing an example of a user interface screen provided by the support device 500 of the control system 1 according to the present embodiment.
  • setting screen 570 related to motion safety control object 382 includes a target information display field 572, a mirror object display field 574, an attribute setting field 576, and a data type setting field 578. Including.
  • the mirror object display column 574 displays each element (bit) included in the motion safety control object 382.
  • Information to be assigned to the motion safety control object 382 is set in the target information display column 572.
  • the attribute setting column 576 the attribute of information to be assigned (read-only / editable) is set.
  • the data type setting column 578 the data type (BOOL type, real number type, etc.) of the information to be assigned is set.
  • the user sets information to be included in the motion safety control object 382 by operating the setting screen 570 shown in FIG. Thereafter, when the user performs a reflection operation, a variable name that can be referred to by the standard controller 100 is automatically set as shown in FIG.
  • the setting screen 570 further has a variable name setting column 580.
  • a variable name setting column 580 a variable name for referring to each information in the standard controller 100 is set. Note that the variable name set in the variable name setting column 580 may be the same as the variable name set in the target information display column 572.
  • FIGS. 17 and 18 show configuration examples in which an arbitrary process value is referred to using a variable name as reference information. That is, in the support device 500, information disclosed by the data mirror engine 380 of the safety driver 300 can be referred to as a variable. When reflecting the meaning of each information for such a variable, it may be reflected as the name of the variable (variable name), or may be added separately from the variable name displayed when referring to the variable. May be reflected as additional information such as comments and labels.
  • the support device 500 may reflect the meaning of the information specified as the variable name, or may reflect the meaning of the information specified as the additional information added to the variable.
  • the reference information need not be a variable name.
  • a physical address or a logical address of a storage area where each process value is stored may be specified.
  • identification information indicating a physical address or a logical address may be used as reference information.
  • the meaning of the information specified as the identification information for specifying the reference information may be reflected, or the meaning of the information specified as the additional information added to the reference information may be reflected. Is also good.
  • the support device 500 includes the safety information including the data mirror engine 380 in the reference information (typically, a variable) for referring to the information published by the data mirror engine 380 of the safety driver 300.
  • Information for specifying the driver 300 may be reflected.
  • variable name including a corresponding name to each bit of the published object for motion safety control in the setting related to the standard controller 100 on the support device 500.
  • FIG. 19 is a diagram showing an example of the standard control program 1104 with reference to the motion safety control object 382 in the control system 1 according to the present embodiment.
  • FIGS. 19A and 19B show commands (codes) for controlling the safety driver 300 and the servomotor 400 when SOS (Safe Operating Stop) is enabled as a motion safety function. 1105) is shown.
  • SOS Safe Operating Stop
  • FIG. 19A shows an example of the standard control program 1104 when the motion safety control object 382 is referred to as it is, and FIG. 19B shows variables associated with the motion safety control object 382.
  • An example of the standard control program 1104 for reference is shown.
  • the support device 500 provides an environment for developing the standard control program 1104 executed by the standard controller 100.
  • the standard control program 1104 can be created using reference information (typically, each variable) associated with the meaning of the specified information as described above. .
  • FIG. 20 is a flowchart illustrating an example of a setting processing procedure in the support device 500 included in the control system 1 according to the present embodiment. Each step illustrated in FIG. 20 is typically realized by the processor 502 of the support device 500 executing the support program 5104.
  • support device 500 in response to a user operation, provides a user with a development screen for creating a program for control system 1 and performing various settings (step S100).
  • the support device 500 receives a setting related to the motion safety function of the safety driver 300 from the user (step S102). At the same time, the support device 500 receives from the user a selection of information to be made public among information included in the motion safety control object (step S104). That is, information to be included in the mirror object is selected. When receiving the operation of completing the setting by the user, the support device 500 stores the received setting as safety driver setting information 5116 (FIG. 6).
  • the support device 500 receives from the user a setting of a variable that can be used in the standard controller 100 (Step S106). Then, when the support device 500 receives an instruction from the user to reflect the information released from the safety driver 300, the support device 500 refers to the safety driver setting information 5116 and responds to the public variable group (mirror object) from the safety driver 300. The information of the motion safety control object to be executed is specified (step S108). Then, the support device 500 determines a variable name corresponding to each of the public variables from the safety driver 300 based on the information of the specified motion safety control object (Step S110).
  • the support device 500 analyzes the setting related to the motion safety function of the safety driver 300, decomposes the mirror object into bits, and generates and determines a variable name of each bit.
  • the support device 500 assigns each determined variable name to a corresponding bit, and stores the assigned result as standard controller setting information 5110 (FIG. 6) (step S112).
  • a variable to which a name reflecting the assignment setting in the safety driver 300 is assigned can be used when the standard control program is created.
  • control system 1 often includes a plurality of safety drivers 300, and in such a case, setting for each safety driver 300 makes the operation complicated.
  • FIG. 21 is a diagram for describing a batch release setting process in the support device 500 included in the control system 1 according to the present embodiment. Referring to FIG. 21, it is assumed that a mirror object setting table 560 is prepared for each of a plurality of safety drivers 300.
  • the support device 500 has a common setting template 590.
  • the common setting template 590 settings for assignment to the mirror object setting table 560 and the like are defined.
  • the content of the common setting template 590 is reflected on each of the mirror object setting tables 560 by the user performing a predetermined operation.
  • a state in which the content set in advance is reflected in each of the mirror object setting tables 560 by the user performing a predetermined operation in the support device 500 may be switched collectively. That is, when the control system 1 has a plurality of safety drivers 300, the support device 500 responds to a user operation to the data mirror engines 380 (data disclosure units) of all the safety drivers 300. The disclosure via the field network 2 may be enabled or disabled collectively.
  • the above-described debugging operation can be performed more efficiently.
  • a first controller (100); A drive device (300) for driving a motor in accordance with a first command from the first controller, the drive device having a safety function (360) for driving the motor (400); A second controller (200) for transmitting a second command related to the operation of the safety function to the drive device, A network (2) for sharing data among the first controller, the drive device, and the second controller; The second command is transmitted between the second controller and the drive device via a connection (4) formed using the network, The drive device, A state management unit (378) for managing a state of the safety function according to the second command; A control system comprising: a data publishing unit (380) for publishing preset information among information held by the state management unit via the network.
  • Configuration 1 further comprising a support device (500) for receiving designation of information published by the data publishing unit and transferring a disclosure setting (384; 560) for specifying the designated information to the drive device.
  • Control system [Configuration 3]
  • the support device refers to the disclosure setting, specifies information to be disclosed among the information managed by the state management unit, and sets reference information for referring to information disclosed by the data disclosure unit. 3.
  • information disclosed by the data disclosure unit can be referred to as a variable, The control system according to configuration 3, wherein the support device reflects the meaning of the specified information as the name of the variable.
  • the control system includes a plurality of the drive devices, 8.
  • the control system (1) A first controller (100); A drive device (300) for driving a motor in accordance with a first command from the first controller, the drive device having a safety function (360) for driving the motor;
  • the second command is transmitted between the second controller and the drive device via a connection (4) formed using the network
  • the drive device A state management unit (378) for managing a state of the safety function according to the second command;
  • the support device Means (S104) for receiving designation of information published by the data publishing unit and transferring a publication setting for specifying the designated information to the drive device; Referring to the disclosure setting, the information to be disclosed among the information managed by the state management unit is specified,
  • a support device comprising means for associating meanings (S106 to S112).
  • the control system includes: A first controller (100); A drive device (300) for driving a motor (400) in accordance with a first command from the first controller, the drive device having a safety function (360) related to driving of the motor;
  • a network (2) for sharing data among the first controller, the drive device, and the second controller;
  • the second command is transmitted between the second controller and the drive device via a connection (4) formed using the network
  • the drive device A state management unit (378) for managing a state of the safety function according to the second command;
  • a data publishing unit (380) for publishing information set in advance among the information held by the state management unit via the network,
  • the function status information can be easily accessed from the standard controller 100 independently of the logical connection.
  • the support device 500 can create the standard control program 1104 using the variable reflecting the meaning of the information released from the safety driver 300, the standard control program 1104 Can be created more efficiently.
  • 1 control system, 2 field network, 4 logical connection, 6 data open architecture 100 standard controller, 102, 202, 312, 314, 502 processor, 104, 204, 316, 504 main memory, 106 host network controller, 108, 208 , 302 ⁇ Field Network Controller, 110, 210, 320, 510 ⁇ Storage, 112 ⁇ Memory Card Interface, 114 ⁇ Memory Card, 116 ⁇ Local Bus Controller, 118, 218, 518 ⁇ Processor Bus, 120, 220, 520 ⁇ USB Controller, 150 ⁇ Standard Control, 170 , 270, 370 ⁇ process data communication layer, 172, 272 ⁇ management module, 174, 274, 374 Process data, 200 safety controller, 216 safety local bus controller, 230 safety IO unit, 240 safety device, 250 safety function, 276,376 logical connection layer, 278 safety function status management engine, 300 safety driver, 310 control unit, 330 drive Circuit, 332 feedback feedback circuit, 350 servo control, 352 servo control execution engine,

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

セーフティ機能の動作に関する情報に容易にアクセス可能な制御システムが提供される。制御システムは、第1および第2のコントローラと、ドライブ装置とを含む。第2のコントローラは、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して、第2の指令を送信する。ドライブ装置は、第2の指令に従ってセーフティ機能の状態を管理する状態管理部と、状態管理部が保持する情報のうち予め設定された情報を、ネットワークを介して公開するデータ公開部とを含む。

Description

制御システム、サポート装置およびサポートプログラム
 本発明は、制御システム、ならびに、制御システムに用いられるサポート装置およびサポートプログラムに関する。
 多くの製造現場において、設備や機械を安全に使用するために、セーフティシステムの導入が進みつつある。セーフティシステムは、国際規格に従うセーフティ機能を提供するためのものであり、セーフティコントローラ、セーフティセンサ、セーフティスイッチ、およびセーフティリレーといったセーフティコンポーネントで構成される。
 セーフティシステムは、設備や機械を駆動するサーボモータなどのドライブ装置に対してもセーフティ機能を提供することが要求される。例えば、非特許文献1は、可変速電動ドライブシステムに対して提供すべきセーフティ機能を規定する。
 より具体的には、非特許文献1は、STO(Safe Torque Off)、SS1(Safe Stop 1)、SS2(Safe Stop 2)、SOS(Safe Operating Stop)、SBC(Safe Brake Control)などの、ドライブ装置に関連するいくつかのセーフティ機能を規定する。
 上述したようなドライブ装置に関連するセーフティ機能を実装する場合には、ドライブ装置を制御する機能とは独立して、セーフティ機能を実現する機能が設けられる。それぞれの機能は互いに独立して設けられており、通信経路なども互いに独立して形成されていることも多い。
 一方で、ドライブ装置を制御する場合には、セーフティ機能の状態なども考慮する必要がある。
 本発明は、上述したような課題を解決することを一つの目的とし、セーフティ機能の動作に関する情報に容易にアクセス可能な制御システムを提供することを目的とする。
 本発明の一実施形態に従う制御システムは、第1のコントローラと、第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを含む。ドライブ装置はモータの駆動に関するセーフティ機能を有している。制御システムは、ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、第1のコントローラ、ドライブ装置および第2のコントローラの間で、データを互いに共有するためのネットワークとを含む。第2の指令は、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信される。ドライブ装置は、第2の指令に従ってセーフティ機能の状態を管理する状態管理部と、状態管理部が保持する情報のうち予め設定された情報を、ネットワークを介して公開するデータ公開部とを含む。
 本実施形態によれば、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信される第2の指令に係る情報を、第1のコントローラからも容易にアクセスできる。これによって、第1のコントローラは、第2の指令に依存するセーフティ機能の動作に応じた制御を実現できる。
 好ましくは、制御システムは、データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定をドライブ装置へ転送するサポート装置をさらに含む。
 本実施形態によれば、サポート装置で設定することで、必要な情報を公開することができる。
 好ましくは、サポート装置は、公開設定を参照して、状態管理部により管理される情報のうち公開対象の情報を特定するとともに、データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付ける。
 本実施形態によれば、データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付けることで、サポート装置において、各参照情報がどのような意味をもつ情報であるのかを一見して把握できる。
 好ましくは、サポート装置において、データ公開部により公開される情報を変数として参照可能になっている。サポート装置は、変数の名前として特定した情報の意味を反映する。
 本実施形態によれば、変数の名前が各情報がもつ意味を示すので、変数の名前だけで、当該変数がどのような意味をもつ情報であるのかを一見して把握できる。
 好ましくは、サポート装置において、データ公開部により公開される情報を変数として参照可能になっている。サポート装置は、変数に付与される付加情報として特定した情報の意味を反映する。
 本実施形態によれば、変数に付与される付加情報が各情報がもつ意味を示すので、変数の名前だけで、当該変数がどのような意味をもつ情報であるのかを一見して把握できる。
 好ましくは、サポート装置は、データ公開部により公開される情報を参照するための参照情報に、当該データ公開部を含んでいるドライブ装置を特定する情報を反映する。
 本実施形態によれば、複数のドライブ装置が存在する場合であっても、いずれのドライブ装置から提供される情報であるのかを一見して把握できる。
 好ましくは、サポート装置は、第1のコントローラで実行される制御プログラムを開発する環境を提供する。制御プログラムを開発する環境において、特定した情報の意味が関連付けられた参照情報を用いて、制御プログラムを作成可能になっている。
 本実施形態によれば、特定した情報の意味が関連付けられた参照情報を用いて制御プログラムを作成できるので、制御プログラムの作成効率を高めることができる。
 好ましくは、制御システムは、ドライブ装置を複数有している。サポート装置は、ユーザ操作に応答して、すべてのドライブ装置のデータ公開部に対して、ネットワークを介した公開を一括して有効化または無効化する。
 本実施形態によれば、情報の公開を一括して無効化することで、デバッグなどを効率的に行える。
 本発明の別の実施形態に従えば、制御システムに接続されるサポート装置が提供される。制御システムは、第1のコントローラと、第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを含む。ドライブ装置はモータの駆動に関するセーフティ機能を有している。制御システムは、ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、第1のコントローラ、ドライブ装置および第2のコントローラの間で、データを互いに共有するためのネットワークとを含む。第2の指令は、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信される。ドライブ装置は、第2の指令に従ってセーフティ機能の状態を管理する状態管理部と、状態管理部が保持する情報のうち予め設定された情報を、ネットワークを介して公開するデータ公開部とを含む。サポート装置は、データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定をドライブ装置へ転送する手段と、公開設定を参照して、状態管理部により管理される情報のうち公開対象の情報を特定するとともに、データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付ける手段とを含む。
 本実施形態によれば、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信される第2の指令に係る情報を、第1のコントローラからも容易にアクセスできる。これによって、第1のコントローラは、第2の指令に依存するセーフティ機能の動作に応じた制御を実現できる。
 本発明のさらに別の実施形態に従えば、制御システムに接続されるコンピュータで実行されるサポートプログラムが提供される。制御システムは、第1のコントローラと、第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを含む。ドライブ装置はモータの駆動に関するセーフティ機能を有している。制御システムは、ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、第1のコントローラ、ドライブ装置および第2のコントローラの間で、データを互いに共有するためのネットワークとを含む。第2の指令は、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信される。ドライブ装置は、第2の指令に従ってセーフティ機能の状態を管理する状態管理部と、状態管理部が保持する情報のうち予め設定された情報を、ネットワークを介して公開するデータ公開部とを含む。サポートプログラムは、コンピュータに、データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定をドライブ装置へ転送するステップと、公開設定を参照して、状態管理部により管理される情報のうち公開対象の情報を特定するとともに、データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付けるステップとを実行させる。
 本実施形態によれば、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信される第2の指令に係る情報を、第1のコントローラからも容易にアクセスできる。これによって、第1のコントローラは、第2の指令に依存するセーフティ機能の動作に応じた制御を実現できる。
 本発明によれば、セーフティ機能の動作に関する情報に容易にアクセス可能な制御システムを提供できる。
本実施の形態に係る制御システムの構成例を示す模式図である。 本実施の形態に係る制御システムが有する機能を示す模式図である。 本実施の形態に係る制御システムを構成する標準コントローラのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するセーフティコントローラのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するセーフティドライバおよびサーボモータのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムの機能分担の一例を示す模式図である。 本実施の形態に係る制御システムのセーフティドライバによるセーフティ機能に係る処理手順の一例を示すシーケンス図である。 本実施の形態に係る制御システムが提供するモーションセーフティ機能の一例を示す図である。 本実施の形態に係る制御システムのセーフティドライバに格納されるモーションセーフティ機能を実現するためのパラメータセットの一例を示す図である。 本実施の形態に係る制御システムにおける通信フレームの伝送形態を説明するための図である。 本実施の形態に係る制御システムにおけるデータ伝送を説明するための図である。 本実施の形態に係る制御システムにおける標準制御およびセーフティ制御の実装例を示す模式図である。 本実施の形態に係る制御システムの標準コントローラがモーションセーフティ機能の情報を参照する一方法を説明するための図である。 本実施の形態に係る制御システムの標準コントローラがモーションセーフティ機能の情報を参照する別の一方法を説明するための図である。 本実施の形態に係る制御システムのセーフティドライバが公開するモーションセーフティ制御用オブジェクトの設定例を説明するための図である。 本実施の形態に係る制御システムのサポート装置での設定処理を説明するための図である。 本実施の形態に係る制御システムのサポート装置が提供するユーザインターフェイス画面の一例を示す模式図である。 本実施の形態に係る制御システムにおけるモーションセーフティ制御用オブジェクトを参照した標準制御プログラムの一例を示す図である。 本実施の形態に係る制御システムを構成するサポート装置における設定処理手順の一例を示すフローチャートである。 本実施の形態に係る制御システムを構成するサポート装置における一括公開設定の処理を説明するための図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。
 図1は、本実施の形態に係る制御システム1の構成例を示す模式図である。本実施の形態に係る制御システム1は、例えば、IEC 61508などに規定されたセーフティ機能に加えて、上述の非特許文献1に規定されたドライブ装置に対するセーフティ機能を提供する。
 図1を参照して、制御システム1は、主として、標準コントローラ100、ならびに、標準コントローラ100とフィールドネットワーク2を介して接続されるセーフティコントローラ200および1または複数のセーフティドライバ300を含む。セーフティドライバ300の各々は、ドライブ装置の一例であり、電気的に接続されたサーボモータ400を駆動する。なお、サーボモータ400に限らず、任意の種類のアクチュエータ(例えば、三相交流モータ、直流モータ、単相交流モータ、多相交流モータ、リニアサーボなど)を採用できる。また、セーフティドライバ300の実体は、サーボドライバであってもよいし、汎用的なインバータ装置であってもよい。以下の説明においては、セーフティドライバ300をドライブ装置の一例として説明する。
 標準コントローラ100は、第1のコントローラに相当し、予め作成された標準制御プログラムに従って、サーボモータ400を含む制御対象に対する標準制御を実行する。典型的には、標準コントローラ100は、1または複数のセンサ(図示していない)などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ400などのアクチュエータに対する指令を周期的に算出する。
 セーフティコントローラ200は、セーフティドライバ300に対してセーフティ機能の動作に係るセーフティ指令(第2の指令)を送信する。より具体的には、セーフティコントローラ200は、標準コントローラ100とは独立して、制御対象に対するセーフティ機能を実現するための監視および制御演算をサイクリック実行する。セーフティコントローラ200は、任意のセーフティデバイス240からの入力信号の受付、および/または、任意のセーフティデバイス240への指令の出力が可能になっている。
 セーフティドライバ300は、標準コントローラ100からの指令(第1の指令)に従って、サーボモータ400に電力を供給することで、サーボモータ400を駆動する。セーフティドライバ300は、サーボモータ400からのフィードバック信号などに基づいて、サーボモータ400の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
 さらに、セーフティドライバ300は、サーボモータ400の駆動に関するセーフティ機能を有している。より具体的には、セーフティドライバ300は、セーフティ機能に必要な状態情報をセーフティコントローラ200へ提供するとともに、要求されるセーフティ機能に応じて、サーボモータ400に供給する電力を調整または遮断する。
 サーボモータ400は、セーフティドライバ300からの電力を受けて回転するモータを有するとともに、モータの回転軸に結合されたエンコーダからの検出信号をフィードバック信号としてセーフティドライバ300へ出力する。
 本明細書において、「デバイス」は、フィールドネットワーク2などの任意のネットワークを介して、他の装置とデータ通信可能な装置の総称である。本実施の形態に係る制御システム1において、「デバイス」は、標準コントローラ100、セーフティコントローラ200およびセーフティドライバ300を包含する。
 本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
 本明細書においては、ドライブ装置に特有のセーフティ機能を「モーションセーフティ機能」と総称する。典型的には、「機能」は、上述の非特許文献1に規定されるドライブ装置に関連するセーフティ機能を包含する。例えば、制御軸の位置や速度を監視して安全を確保するための制御を含む。
 本明細書において、「プロセスデータ」は、標準制御またはセーフティ制御の少なくともいずれかで用いられるデータの総称である。具体的には、「プロセスデータ」は、制御対象から取得される入力情報、制御対象へ出力される出力情報、各デバイスでの制御演算に使用される内部情報などを包含する。
 入力情報は、光電センサなどにより検出されるON/OFF信号(デジタル入力)、温度センサなどにより検出される物理信号(アナログ入力)、ならびに、パルスエンコーダなどが発生するパルス信号(パルス入力)などを包含する。出力情報は、リレーなどを駆動するためのON/OFF(デジタル出力)、サーボモータの回転速度などを指示する速度指令(アナログ出力)、ならびに、ステッピングモータの移動量などを指示する変位指令(パルス出力)などを包含する。内部情報は、任意のプロセスデータを入力とする制御演算などによって決定される状態情報などを含む。
 基本的には、「プロセスデータ」の値は、制御周期または通信周期毎に更新される。ここで、更新とは、最新の値を反映することを意味し、更新の前後において値が変化しない場合も含み得る。
 図2は、本実施の形態に係る制御システム1が有する機能を示す模式図である。図2を参照して、セーフティドライバ300の各々においては、サーボモータ400の駆動を担当するサーボ制御350が実装されている。サーボ制御350には、標準コントローラ100から指令(第1の指令)が与えられる。
 セーフティドライバ300の各々においては、モーションセーフティ機能360がさらに実装されている。モーションセーフティ機能360には、セーフティコントローラ200からセーフティ指令(第2の指令)が与えられる。このセーフティ指令は、セーフティコントローラ200とセーフティドライバ300との間にフィールドネットワーク2を利用して形成される論理コネクション4を介して送信される。
 セーフティドライバ300のモーションセーフティ機能360は、セーフティ指令に従ってセーフティ機能の状態を管理するモーションセーフティ機能状態管理エンジン378(状態管理部に相当する)を有している。
 ここで、フィールドネットワーク2は、標準コントローラ100、1または複数のセーフティドライバ300、および、セーフティコントローラ200の間で、データを互いに共有するために用いられる。制御システム1においては、フィールドネットワーク2を利用して、デバイス間でデータを共有するためのデータ公開アーキテクチャ6が用意されている。
 セーフティドライバ300の各々は、モーションセーフティ機能状態管理エンジン378が保持する情報のうち予め設定された情報を、フィールドネットワーク2を介して公開するデータミラーエンジン380(詳細については、後述する。データ公開部に相当する。)を有している。すなわち、データミラーエンジン380は、モーションセーフティ機能状態管理エンジン378が保持する情報のうち予め設定された情報を、データ公開アーキテクチャ6を利用して、他のデバイスがアクセス可能な状態に複製する。
 このような構成を採用することで、論理コネクション4を介して遣り取りされるセーフティ指令に応じて変更されるモーションセーフティ機能360の状態情報に対して、標準コントローラ100および他のデバイスからアクセスできるようになる。これにより、標準コントローラ100および他のデバイスは、セーフティドライバ300におけるセーフティ機能の動作状態に応じた制御動作を実現できる。
 <B.制御システム1に含まれるデバイスの構成例>
 次に制御システム1に含まれるデバイスの構成例について説明する。
 (b1:標準コントローラ100)
 図3は、本実施の形態に係る制御システム1を構成する標準コントローラ100のハードウェア構成例を示す模式図である。図3を参照して、標準コントローラ100は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)コントローラ120と、メモリカードインターフェイス112と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
 プロセッサ102は、主として、標準制御に係る制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラム(一例として、システムプログラム1102および標準制御プログラム1104)を読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
 メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
 ストレージ110には、基本的な機能を実現するためのシステムプログラム1102に加えて、制御対象に応じて作成された標準制御プログラム1104が格納される。さらに、ストレージ110には、後述するような変数などを設定するための設定情報1106が格納される。
 上位ネットワークコントローラ106は、上位ネットワークを介して、任意の報処理装置との間でデータを遣り取りする。
 フィールドネットワークコントローラ108は、フィールドネットワーク2を介して、セーフティコントローラ200およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。図3に示す制御システム1においては、標準コントローラ100のフィールドネットワークコントローラ108は、フィールドネットワーク2の通信マスタとして機能する。
 USBコントローラ120は、USB接続を介して、サポート装置500などとの間でデータを遣り取りする。
 メモリカードインターフェイス112は、着脱可能な記録媒体の一例であるメモリカード114を受付ける。メモリカードインターフェイス112は、メモリカード114に対してデータを書込み、メモリカード114から各種データ(ログやトレースデータなど)を読出すことが可能になっている。
 ローカルバスコントローラ116は、ローカルバスを介して、標準コントローラ100に接続される任意のユニットとの間でデータを遣り取りする。
 図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、標準コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準コントローラ100に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
 (b2:セーフティコントローラ200)
 図4は、本実施の形態に係る制御システム1を構成するセーフティコントローラ200のハードウェア構成例を示す模式図である。図4を参照して、セーフティコントローラ200は、プロセッサ202と、メインメモリ204と、ストレージ210と、フィールドネットワークコントローラ208と、USBコントローラ220と、セーフティローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
 プロセッサ202は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ202は、ストレージ210に格納されたプログラム(一例として、システムプログラム2102およびセーフティプログラム2104)を読出して、メインメモリ204に展開して実行することで、必要なセーフティ機能を提供するための制御演算、および、後述するような各種処理を実現する。
 メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
 ストレージ210には、基本的な機能を実現するためのシステムプログラム2102に加えて、要求されるセーフティ機能に応じた作成されたセーフティプログラム2104が格納される。さらに、ストレージ210には、後述するような変数などを設定するための設定情報2106が格納される。
 フィールドネットワークコントローラ208は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。図3に示す制御システム1においては、セーフティコントローラ200のフィールドネットワークコントローラ208は、フィールドネットワーク2の通信スレーブとして機能する。
 USBコントローラ220は、USB接続を介して、サポート装置500などの情報処理装置との間でデータを遣り取りする。
 セーフティローカルバスコントローラ216は、セーフティローカルバスを介して、セーフティコントローラ200に接続される任意のセーフティユニットとの間でデータを遣り取りする。図4には、セーフティユニットの一例として、セーフティIOユニット230を示す。
 セーフティIOユニット230は、任意のセーフティデバイス240との間で入出力信号を遣り取りする。より具体的には、セーフティIOユニット230は、セーフティセンサやセーフティスイッチなどのセーフティデバイス240からの入力信号を受付ける。あるいは、セーフティIOユニット230は、セーフティリレーなどのセーフティデバイス240へ指令を出力する。
 図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セーフティコントローラ200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。
 (b3:セーフティドライバ300およびサーボモータ400)
 図5は、本実施の形態に係る制御システム1を構成するセーフティドライバ300およびサーボモータ400のハードウェア構成例を示す模式図である。図5を参照して、セーフティドライバ300は、フィールドネットワークコントローラ302と、制御部310と、ドライブ回路330と、フィードバック受信回路332とを含む。
 フィールドネットワークコントローラ302は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティコントローラ200を含む任意のデバイスとの間でデータを遣り取りする。図5に示す制御システム1においては、セーフティドライバ300のフィールドネットワークコントローラ302は、フィールドネットワーク2の通信スレーブとして機能する。
 制御部310は、セーフティドライバ300を動作させるために必要な演算処理を実行する。一例として、制御部310は、プロセッサ312,314と、メインメモリ316と、ストレージ320とを含む。
 プロセッサ312は、サーボモータ400を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ314は、サーボモータ400に係るセーフティ機能を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ312,314は、いずれもCPUなどで構成される。
 メインメモリ316は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ320は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
 ストレージ320には、サーボ制御350を実現するためのサーボ制御プログラム3202と、モーションセーフティ機能360を実現するためのモーションセーフティプログラム3204と、他のデバイスに公開される変数などを設定するための設定情報3206とが格納される。
 図5には、2つのプロセッサ312,314がそれぞれ異なる目的の制御演算を実行することで信頼性を高める構成を例示するが、これに限らず、要求されるセーフティ機能を実現できればどのような構成を採用してもよい。例えば、単一のプロセッサに複数のコアが含まれるような場合には、プロセッサ312,314にそれぞれ対応する制御演算を実行するようにしてもよい。また、図5には、プロセッサ312,314がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 ドライブ回路330は、コンバータ回路およびインバータ回路などを含み、制御部310からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ400へ供給する。
 フィードバック受信回路332は、サーボモータ400からのフィードバック信号を受信して、その受信結果を制御部310へ出力する。
 サーボモータ400は、典型的には、三相交流モータ402および三相交流モータ402の回転軸に取付けられたエンコーダ404を含む。
 三相交流モータ402は、セーフティドライバ300から供給される電力を受けて回転力を発生するアクチュエータである。図5には、一例として、三相交流モータを例示するが、これに限らず、直流モータであってもよいし、単相交流モータあるいは多相交流モータであってもよい。さらに、リニアサーボのような直線に沿って駆動力を発生するアクチュエータを採用してもよい。
 エンコーダ404は、三相交流モータ402の回転数に応じたフィードバック信号(典型的には、回転数に応じた数のパルス信号)を出力する。
 (b4:サポート装置500)
 図6は、本実施の形態に係る制御システム1を構成するサポート装置500のハードウェア構成例を示す模式図である。サポート装置500は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
 図6を参照して、サポート装置500は、プロセッサ502と、メインメモリ504と、入力部506と、出力部508と、ストレージ510と、光学ドライブ512と、USBコントローラ520とを含む。これらのコンポーネントは、プロセッサバス518を介して接続されている。
 プロセッサ502は、CPUやGPUなどで構成され、ストレージ510に格納されたプログラム(一例として、OS5102およびサポートプログラム5104)を読出して、メインメモリ504に展開して実行することで、後述するような各種処理を実現する。
 メインメモリ504は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ510は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
 ストレージ510には、基本的な機能を実現するためのOS5102に加えて、サポート装置500としての機能を提供するためのサポートプログラム5104が格納される。すなわち、サポートプログラム5104は、制御システム1に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置500を実現する。
 さらに、ストレージ510には、サポートプログラム5104が実行されることで提供される開発環境においてユーザにより作成されるプロジェクトデータ5106が格納される。
 本実施の形態において、サポート装置500は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクトデータ5106は、このような統合的な開発環境によって生成されるデータを含む。典型的には、プロジェクトデータ5106は、標準制御ソースプログラム5108と、標準コントローラ設定情報5110と、セーフティソースプログラム5112と、セーフティコントローラ設定情報5114と、セーフティドライバ設定情報5116とを含む。
 標準制御ソースプログラム5108は、オブジェクトコードに変換された上で、標準コントローラ100へ送信され、標準制御プログラム1104(図3参照)として格納される。同様に、標準コントローラ設定情報5110についても標準コントローラ100へ送信され、設定情報1106(図3参照)として格納される。
 セーフティソースプログラム5112は、オブジェクトコードに変換された上で、セーフティコントローラ200へ送信され、セーフティプログラム2104(図3参照)として格納される。同様に、セーフティコントローラ設定情報5114についてもセーフティコントローラ200へ送信され、設定情報2106(図4参照)として格納される。
 セーフティドライバ設定情報5116は、セーフティドライバ300へ送信され、設定情報3206(図5参照)として格納される。
 入力部506は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。出力部508は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ502からの処理結果などを出力する。
 USBコントローラ520は、USB接続を介して、標準コントローラ100などとの間のデータを遣り取りする。
 サポート装置500は、光学ドライブ512を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体514(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ510などにインストールされる。
 サポート装置500で実行されるサポートプログラム5104などは、コンピュータ読取可能な記録媒体514を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置500が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
 図6には、プロセッサ502がプログラムを実行することで、サポート装置500として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 なお、制御システム1が稼動中において、サポート装置500は、標準コントローラ100から取り外されていてもよい。
 <C.制御システム1の機能分担>
 次に、制御システム1における機能分担の一例について説明する。図7は、本実施の形態に係る制御システム1の機能分担の一例を示す模式図である。
 図7を参照して、標準コントローラ100が実行する標準制御150に関して、セーフティドライバ300はサーボ制御350を実行する。標準制御150は、制御対象に予め設定されたユーザプログラムに従って、サーボモータ400を駆動するための指令を周期的に算出する処理を含む。また、サーボ制御350は、標準制御150により周期的に算出される指令に従ってサーボモータ400を駆動するための制御、および、サーボモータ400の動作状態を示す状態値を取得して出力する処理を含む。サーボ制御350は、セーフティドライバ300のプロセッサ312(図5参照)が担当する。
 一方、セーフティコントローラ200が提供するセーフティ機能250に対応して、セーフティドライバ300はモーションセーフティ機能360を提供する。モーションセーフティ機能360は、セーフティドライバ300のプロセッサ314(図5参照)が担当する。
 セーフティ機能250は、標準コントローラ100が実行する標準制御150が保持する状態値、セーフティデバイス240からの信号によって示される状態値、および、セーフティドライバ300が保持する状態値などに基づいて、予め定められた条件が成立すると、予め指定されているセーフティ機能を有効化する。
 予め指定されているセーフティ機能を有効化する処理は、例えば、セーフティドライバ300に対するセーフティ指令の出力、あるいは、セーフティデバイス240に対してセーフティ指令の出力(例えば、特定の装置への電力供給に係るセーフティリレーを遮断する)などを含む。
 セーフティドライバ300は、セーフティコントローラ200からのセーフティ指令に応答して、指定されたモーションセーフティ機能360を提供する。指定されたモーションセーフティ機能360の種類に応じて、サーボ制御350によるサーボモータ400の制御に介入して、サーボモータ400への電力供給を遮断する処理、あるいは、サーボ制御350によるサーボモータ400の制御の状態値が予め定められた制限範囲内に収まっているか否かを監視する処理などが実行される。
 図8は、本実施の形態に係る制御システム1のセーフティドライバ300によるセーフティ機能に係る処理手順の一例を示すシーケンス図である。図8を参照して、標準コントローラ100の標準制御150により周期的に指令が算出されて、セーフティドライバ300(サーボ制御350)に出力される(シーケンスSQ2)。セーフティドライバ300のサーボ制御350は、標準制御150からの指令に従って、サーボモータ400を駆動する(シーケンスSQ4)。
 あるタイミングにおいて、セーフティデバイス240(例えば、セーフティセンサ)からのセーフティイベントが発生すると(シーケンスSQ6)、セーフティコントローラ200は、セーフティドライバ300(モーションセーフティ機能360)にセーフティ指令を出力する(シーケンスSQ8)。このセーフティ指令に応答して、セーフティドライバ300のモーションセーフティ機能360は、指定されたセーフティ機能を有効化する(シーケンスSQ10)。
 セーフティ機能の有効化に応答して、標準コントローラ100の標準制御150からは、当該有効化されたセーフティ機能に応じた指令が算出および出力されるようになる(シーケンスSQ12)。一方、セーフティドライバ300(モーションセーフティ機能360)は、サーボモータ400の動作状態が予め定められた制限範囲内に収まっているか否かを監視する。サーボモータ400の動作状態が予め定められた制限範囲内に収まっていないと判断されると、あるいは、予め定められた停止時間が到来すると、セーフティドライバ300(モーションセーフティ機能360)は、サーボモータ400への電力供給を遮断する(シーケンスSQ14)。
 このように、セーフティドライバ300は、標準コントローラ100(標準制御150)からの指令に従ってサーボモータ400を駆動できるとともに、セーフティ機能を有効化するための指令に応じて、セーフティコントローラ200(セーフティ機能250)に対するモーションセーフティ機能を実現することができる。
 <D.制御システム1のモーションセーフティ機能>
 次に、制御システム1が提供するモーションセーフティ機能の一例について説明する。
 図9は、本実施の形態に係る制御システム1が提供するモーションセーフティ機能の一例を示す図である。図9(A)には、STO(Safe Torque Off)に対応するサーボモータ400の挙動の一例を示し、図9(B)には、SS1(Safe Stop 1)に対応するサーボモータ400の挙動の一例を示す。
 図9(A)を参照して、サーボモータ400がある回転速度で運転している状態において、時刻t1でセーフティ指令(STO)が与えられると、セーフティドライバ300は、サーボモータ400への電力供給を遮断して、サーボモータ400で発生するトルクをゼロにする。この結果、サーボモータ400は惰性で回転した後に停止する。なお、サーボモータ400にブレーキが装着されている場合には、サーボモータ400は即座に停止することもできる。
 図9(B)を参照して、サーボモータ400がある回転速度で運転している状態において、時刻t1でセーフティ指令(SS1)が与えられると、セーフティドライバ300は、予め定められた加速度で回転速度を低減する。このとき、セーフティドライバ300は、サーボモータ400からの電力回収(すなわち、回生)などを実行してもよい。そして、時刻t2においてサーボモータ400の回転速度がゼロになると、セーフティドライバ300は、サーボモータ400への電力供給を遮断して、サーボモータ400で発生するトルクをゼロにする。時刻t2以降においては、図9(A)に示すSTOと同様の状態になる。
 図9(A)に示されるSTOおよび図9(B)に示されるSS1のうち、サーボモータ400と機械的に連結されている設備の特性などに応じて、より安全に停止できるセーフティ機能が適宜選択される。
 上述し非特許文献1は、図9(A)および図9(B)に示すモーションセーフティ機能だけではなく、複数のモーションセーフティ機能を規定する。各モーションセーフティ機能を実現するためには、サーボモータ400の挙動を規定するための設定が必要となる。
 図10は、本実施の形態に係る制御システム1のセーフティドライバ300に格納されるモーションセーフティ機能を実現するためのパラメータセット390の一例を示す図である。図10を参照して、パラメータセット390は、セーフティドライバ300が提供するモーションセーフティ機能の各々に対応する1または複数の設定値(パラメータ)を含む。
 例えば、モーションセーフティ機能に対応する設定値としては、速度範囲、加速度範囲、停止時間などが含まれ得る。
 典型的には、ユーザがサポート装置500を操作してセーフティドライバ300におけるモーショセーフティ機能における挙動を決定し、その決定された挙動に対応するパラメータセット390がセーフティドライバ300へ転送される。セーフティドライバ300は、サポート装置500からのパラメータセット390を予め格納している。
 <E.制御システム1のデータ通信>
 次に、制御システム1におけるデータ通信の一例について説明する。
 図11は、本実施の形態に係る制御システム1における通信フレームの伝送形態を説明するための図である。図11を参照して、制御システム1のフィールドネットワーク2においては、プロセスデータ通信が行われており、標準コントローラ100を通信マスタとして、通信フレーム600がサイクリック(例えば、数~10数msec)にデバイス間を一巡する。通信フレーム600が伝送する周期をプロセスデータ通信周期とも称する。
 本実施の形態においては、このような通信フレーム600をサイクリックに伝送するフィールドネットワーク2のプロトコルの一例として、EtherCAT(登録商標)を採用する。
 通信フレーム600には、デバイス毎にデータ領域が割り当てられている。各デバイスは、周期的に伝送される通信フレーム600を受信すると、当該受信した通信フレーム600内の自デバイスに割り当てられたデータ領域に予め設定されたデータの現在値を書込む。そして、現在値の書込み後の通信フレーム600を次段のデバイスに送出する。各デバイスにより書込まれたデータの現在値は他のデバイスから参照可能になっている。
 各デバイスが通信フレーム600に予め設定されたデータの現在値を書込むことで、フィールドネットワーク2を一巡して通信マスタ(標準コントローラ100)に戻る通信フレーム600には、各デバイスにより収集された最新の値が含まれることになる。
 本実施の形態においては、このようなプロセスデータ通信を利用して、セーフティコントローラ200とセーフティドライバ300の各々との間で論理コネクション4が形成される(図11参照)。この論理コネクション4は、セーフティ機能を実現するためのデータの遣り取りに用いられる。
 上述したように、フィールドネットワーク2のプトロコルとしてEtherCATを採用する場合には、FSoE(FailSafe over EtherCAT)と称されるプロトコルを用いて論理コネクション4を形成できる。
 より具体的には、論理コネクション4を形成するために遣り取りされるコマンドを格納するための専用のデータ領域が通信フレーム600に割り当てられる。当該専用のデータ領域を用いて、デバイス間でコマンドを遣り取りすることで、論理コネクション4を形成する。
 図12は、本実施の形態に係る制御システム1におけるデータ伝送を説明するための図である。図12を参照して、通信フレーム600には、プロセスデータ通信に用いられるデータ領域610に加えて、論理コネクション4に用いられるデータ領域620が規定されている。
 データ領域610は、標準コントローラ100に割り当てられたデータ領域611と、セーフティドライバ300に割り当てられたデータ領域612,613,614と、セーフティコントローラ200に割り当てられたデータ領域615とを含む。
 データ領域612,613,614,615は、各デバイスから他のデバイスへデータを公開するためのINデータ領域6121,6131,6141,6151と、各デバイスでの指令を受付けるためのOUTデータ領域6122,6132,6142,6152とを含む。
 INデータ領域6121,6131,6141,6151は、各デバイスが管理するプロセスデータのうち、他のデバイスへ公開するデータが書込まれるデータ領域である。各デバイスが通信フレーム600内の自デバイスに割り当てられたINデータ領域に必要なデータを書込むことで、他のデバイスは当該書込まれたデータを参照できるようになる。通常、標準コントローラ100は、通信周期毎に、各デバイスにより書込まれたデータを参照して標準制御に係る制御演算を実行することで、各デバイスに対する指令を算出する。
 OUTデータ領域6122,6132,6142,6152には、各デバイスに与えられる指令が書込まれる。各デバイスは、通信フレーム600内の自デバイスに割り当てられたOUTデータ領域に格納されているデータを参照することで、制御対象への出力信号を生成し、あるいは、内部の制御状態を更新する。基本的には、各デバイスのOUTデータ領域には、標準コントローラ100によってデータが書込まれる。
 プロセスデータ通信に用いられるデータ領域610に対する、各デバイスのデータの書込みおよび読出し動作は、各デバイスに割り当てられるデータ領域に応じて、予め設定されている。このようなデータの書込みおよび読出しの設定操作は、サポート装置500上でユーザによって行われる。そして、サポート装置500から各デバイスに設定情報が送信される。
 一方、論理コネクション4に用いられるデータ領域620は、セーフティドライバ300に割り当てられたデータ領域621,622,623と、セーフティコントローラ200に割り当てられたデータ領域624とを含む。各デバイスは、データ領域621,622,623,624に対して、論理コネクション4に係る通信フレーム(以下、「セーフティ通信フレーム630」とも称す。)の書込みおよび読出しを行う。通信マスタである標準コントローラ100は、データ領域621,622,623,624の間で、格納されているセーフティ通信フレーム630を入れ替える。このような通信マスタによる折返し処理によって、セーフティ通信フレーム630は、一種のピアツーピアの通信が可能となる。
 図12には、一例として、セーフティコントローラ200から1番目のセーフティドライバ300へセーフティ通信フレーム630を送信する場合の処理を示す。図12に示すようなセーフティ通信フレーム630は、セーフティコントローラ200が特定のセーフティドライバ300に対して特定のモーションセーフティ機能を有効化する場合などに送信される。
 まず、セーフティコントローラ200は、送信先のセーフティドライバ300へ送信すべきセーフティ通信フレーム630を生成して、通信フレーム600のデータ領域624に書込む。その後、セーフティ通信フレーム630が書込まれた通信フレーム600が通信マスタである標準コントローラ100へ到着すると、標準コントローラ100は、データ領域624に格納されているセーフティ通信フレーム630をデータ領域621に複製する。データ領域621にセーフティ通信フレーム630が複製された通信フレーム600が送信先のセーフティドライバ300に到着すると、送信先のセーフティドライバ300は、データ領域621を参照して、セーフティ通信フレーム630を受信する。
 また、セーフティドライバ300からセーフティコントローラ200へのセーフティ通信フレーム630は、上述とは反対の通信経路で送信される。
 このように、本実施の形態に係る制御システム1においては、通信フレーム600内のデータ領域620を用いて、論理コネクション4が形成される。
 <F.標準制御およびセーフティ制御の実装例>
 上述したように、本実施の形態に係る制御システム1においては、プロセスデータ通信および論理コネクション4によるセーフティ通信が可能になっている。次に、それぞれの通信を利用した標準制御およびセーフティ制御の実装例について説明する。
 図13は、本実施の形態に係る制御システム1における標準制御およびセーフティ制御の実装例を示す模式図である。説明の便宜上、図13には、標準コントローラ100およびセーフティコントローラ200に加えて、1つのセーフティドライバ300からなる制御システム1の例を示す。
 図13を参照して、標準コントローラ100は、主たる機能構成として、プロセスデータ通信レイヤ170およびIO管理モジュール172を有している。セーフティコントローラ200は、主たる機能構成として、プロセスデータ通信レイヤ270と、IO管理モジュール272と、論理コネクションレイヤ276と、セーフティ機能状態管理エンジン278とを含む。セーフティドライバ300は、主たる機能構成として、プロセスデータ通信レイヤ370と、論理コネクションレイヤ376と、モーションセーフティ機能状態管理エンジン378と、サーボ制御実行エンジン352と、モーションセーフティ機能実行エンジン362とを含む。
 プロセスデータ通信レイヤ170、プロセスデータ通信レイヤ270およびプロセスデータ通信レイヤ370は、フィールドネットワーク2上の通信フレーム600の転送を担当する。プロセスデータ通信レイヤ170、プロセスデータ通信レイヤ270およびプロセスデータ通信レイヤ370の各々は、到着した通信フレーム600に含まれるデータに基づいて、各デバイスのプロセスデータ174,274,374を更新する。また、プロセスデータ通信レイヤ170、プロセスデータ通信レイヤ270およびプロセスデータ通信レイヤ370の各々は、予め指定されたプロセスデータを予め割り当てられているデータ領域に書込んだ上で、通信フレーム600を再生成して次段のデバイスに送出する。プロセスデータ通信によりプロセスデータの少なくとも一部は共有されることになる。
 セーフティコントローラ200の論理コネクションレイヤ276およびセーフティドライバ300の論理コネクションレイヤ376は、セーフティ通信フレーム630の遣り取りを担当する。すなわち、論理コネクションレイヤ276および論理コネクションレイヤ376は、論理コネクションを形成するためのプロトコル(本実施の形態においては、FSoE)に従って、通信フレーム600に含まれるセーフティ通信フレーム630を用いて、コマンドおよびデータを遣り取りする。
 標準コントローラ100において、IO管理モジュール172は、制御対象との間で信号を遣り取りすることで、プロセスデータ174を更新する。標準コントローラ100において実行される標準制御プログラム1104は、プロセスデータ174を参照して制御演算を実行するとともに、制御演算の実行結果でプロセスデータ174を更新する。
 セーフティコントローラ200において、IO管理モジュール272は、セーフティデバイス240との間で信号を遣り取りすることで、プロセスデータ274を更新する。図13においては、プロセスデータ274とまとめて表現しているが、プロセスデータ通信により更新されるプロセスデータ(標準制御用)と、セーフティデバイス240との遣り取りにより更新されるプロセスデータ(セーフティ制御用)とを異なるレベルで管理するようにしてもよい。
 セーフティコントローラ200において実行されるセーフティプログラム2104は、プロセスデータ274およびセーフティ機能状態管理エンジン278を参照して制御演算を実行するとともに、制御演算の実行結果に基づいて、プロセスデータ274を更新し、あるいは、セーフティ機能状態管理エンジン278に対して内部的な指令を出力する。
 セーフティ機能状態管理エンジン278は、セーフティプログラム2104による制御演算の実行結果に応じて、特定のセーフティドライバ300に対して特定のモーションセーフティ機能を有効化するための指令を生成する。論理コネクションレイヤ276は、セーフティ機能状態管理エンジン278からの指令に応答して、対象のセーフティドライバ300の論理コネクションレイヤ376との間で、セーフティ通信フレーム630を用いて必要なコマンドおよび情報を遣り取りする。
 セーフティドライバ300において、サーボ制御実行エンジン352は、プロセスデータ374およびフィードバック受信回路332を介して取得されるフィードバック信号の情報を参照してサーボ制御に係る制御演算を実行する。サーボ制御実行エンジン352は、制御演算の実行結果に基づいて、プロセスデータ374を更新するとともに、ドライブ回路330に内部的な指令を出力する。ドライブ回路330は、サーボ制御実行エンジン352からの指令に従って、サーボモータ400を駆動する。
 モーションセーフティ機能状態管理エンジン378は、セーフティコントローラ200からのセーフティ指令に従ってモーションセーフティ機能の状態を管理する状態管理部に相当する。モーションセーフティ機能状態管理エンジン378は、セーフティコントローラ200からの指令に応答して、モーションセーフティ機能実行エンジン362に対して内部的な指令を出力する。
 モーションセーフティ機能実行エンジン362は、指定されたモーションセーフティ機能を実行する。
 論理コネクションレイヤ376は、モーションセーフティ機能状態管理エンジン378からの指令に応答して、セーフティコントローラ200の論理コネクションレイヤ276との間で、セーフティ通信フレーム630を用いて必要なコマンドおよび情報を遣り取りする。
 <G.セーフティ状態情報の公開>
 上述したように、本実施の形態に係る制御システム1においては、セーフティコントローラ200とセーフティドライバ300との間の論理コネクション4を介して、モーションセーフティ機能の有効化が指示される。標準コントローラ100は、セーフティコントローラ200とセーフティドライバ300との間の遣り取りを直接参照できない。そのため、通信フレーム600のプロセスデータ通信に用いられるデータ領域610を用いて関係するデータが公開されない限り、標準コントローラ100は、モーションセーフティ機能の有効化の有無、および、モーションセーフティ機能が有効化されたタイミングなどを検出できない。以下では、標準コントローラ100がモーションセーフティ機能の情報を参照する方法について説明する。
 (g1:セーフティコントローラ200からのデータ公開)
 まず、セーフティコントローラ200からのプロセスデータ通信によるデータ公開を用いる方法について説明する。
 図14は、本実施の形態に係る制御システム1の標準コントローラ100がモーションセーフティ機能の情報を参照する一方法を説明するための図である。図14を参照して、セーフティコントローラ200においては、セーフティ機能状態管理エンジン278がモーションセーフティ機能の情報を管理している。そのため、まず、セーフティ機能状態管理エンジン278が管理しているモーションセーフティ機能の情報を取得するための命令および/または設定がセーフティプログラム2104などに追加される((1)情報取得)。そして、取得されたモーションセーフティ機能の情報を他のデバイスへ公開するための命令および/または設定がセーフティプログラム2104などに追加される((2)情報公開)。このような命令および/または設定の追加により、セーフティコントローラ200から他のデバイスに対して、モーションセーフティ機能の情報が公開される。
 より具体的な設定手順例としては、セーフティ機能状態管理エンジン278は、モーションセーフティ機能毎に情報を管理しており、これらの情報のうち標準コントローラ100で参照すべき情報を、任意の内部変数に割り付けるための設定がなされる。また、他のデバイスに公開するための公開変数が規定される。その上で、標準コントローラ100で参照される情報を示す内部変数の値を公開変数に複製するための命令がセーフティプログラム2104に追加される。この公開変数は、他のデバイスから参照可能なグローバル変数として規定されてもよい。
 一方、標準コントローラ100においては、セーフティコントローラ200により公開されるモーションセーフティ機能の情報を取得するための命令および/または設定が標準制御プログラム1104などに追加される((3)情報取得)。そして、取得されたモーションセーフティ機能の情報を用いたセーフティドライバ300を制御するためのプログラムが標準制御プログラム1104に追加される((4)指令出力プログラム追加)。このような命令および/または設定の追加により、標準コントローラ100において、モーションセーフティ機能の情報を参照して、セーフティドライバ300を制御するための指令を出力できる。
 より具体的な設定手順例としては、セーフティコントローラ200により公開された情報を、標準コントローラ100の任意の内部変数に割り付けるための設定がなされる。そして、割り付けられた内部変数を用いて、セーフティドライバ300を制御するためのプログラムが作成される。
 以上のように、セーフティコントローラ200によるデータ公開により実装する場合には、標準コントローラ100およびセーフティコントローラ200のそれぞれに対して、プログラム変更および/または設定変更などが必要となる。
 (g2:セーフティドライバ300の公開機能)
 次に、セーフティドライバ300からのプロセスデータ通信によるデータ公開を用いる方法について説明する。
 図15は、本実施の形態に係る制御システム1の標準コントローラ100がモーションセーフティ機能の情報を参照する別の一方法を説明するための図である。図15に示す構成においては、セーフティドライバ300がデータミラーエンジン380をさらに含む。
 データミラーエンジン380は、モーションセーフティ機能状態管理エンジン378が保持する情報のうち予め設定された情報を、フィールドネットワーク2を介して公開するデータ公開部に相当する。具体的には、データミラーエンジン380は、モーションセーフティ機能状態管理エンジン378が管理しているモーションセーフティ機能の情報のうち予め選択された情報を、データ公開するためにプロセスデータ374に複製する((1)複製)。
 一方、標準コントローラ100においては、セーフティドライバ300により公開されるモーションセーフティ機能の情報を取得するための命令および/または設定が標準制御プログラム1104などに追加される((2)情報取得)。そして、取得されたモーションセーフティ機能の情報を用いたセーフティドライバ300を制御するためのプログラムが標準制御プログラム1104に追加される((3)指令出力プログラム追加)。このような命令および/または設定の追加により、標準コントローラ100において、モーションセーフティ機能の情報を参照して、セーフティドライバ300を制御するための指令を出力できる。
 より具体的な設定手順例としては、セーフティドライバ300のモーションセーフティ機能状態管理エンジン378は、モーションセーフティ機能毎に情報を管理しており、これらの情報のうち標準コントローラ100で参照すべき情報を、他のデバイスに公開するための変数に割り付けるための設定がなされる。本実施の形態においては、セーフティドライバ300により公開される情報はオブジェクト形式の変数に割り付けられ、以下では、このようなオブジェクト形式の変数を「モーションセーフティ制御用オブジェクト」とも称す。公開される情報の各々(情報の種類および値からなる組)は、モーションセーフティ制御用オブジェクトのプロパティとして割り付けられることになる。モーションセーフティ制御用オブジェクトは、フィールドネットワーク2を介してアクセス可能な通信オブジェクトに相当する。
 また、標準コントローラ100においては、セーフティドライバ300により公開される、モーションセーフティ制御用オブジェクトに含まれる情報(プロパティ)のうち、必要な情報を用いて、セーフティドライバ300を制御するためのプログラムが作成される。
 以上のように、セーフティドライバ300によるデータ公開により実装する場合には、セーフティドライバ300に対して、公開すべき情報を選択さえすれば、比較的容易に、標準コントローラ100で実行される標準制御プログラム1104を作成できる。
 次に、セーフティドライバ300により公開されるモーションセーフティ制御用オブジェクトの一例について説明する。
 図16は、本実施の形態に係る制御システム1のセーフティドライバ300が公開するモーションセーフティ制御用オブジェクトの設定例を説明するための図である。
 図16に示す例において、モーションセーフティ制御用オブジェクト382は、モーションセーフティ毎の指令(有効化/無効化)の発行状態を示すコントロールオブジェクト3821と、モーションセーフティ毎の状態値を示すステータスオブジェクト3822とを含む。なお、図16に示すような2つのオブジェクトに限らず、単一のオブジェクトのみを用意してもよいし、より多くのオブジェクトを用意してもよい。
 セーフティドライバ300のモーションセーフティ機能状態管理エンジン378は、モーションセーフティ機能毎に制御用オブジェクト3781,3782,3783,3784,3785,・・・を有している。制御用オブジェクト3781,3782,3783,3784,3785,・・・は、モーションセーフティ機能状態管理エンジン378が論理的に保持するデータ構造体である。
 より具体的には、制御用オブジェクト3781,3782,3783,3784,3785,・・・は、各モーションセーフティの指令(有効化/無効化)の発行状態を示す情報3781A,3782A,3783A,3784A,3785A,・・・と、各モーションセーフティの制御状態を示す情報3781B,3782B,3783B,3784B,3785B,・・・とを含む。
 モーションセーフティ制御用オブジェクト382には、制御用オブジェクト3781,3782,3783,3784,3785,・・・に含まれる情報のうち、予め選択された情報が複製される。このように、モーションセーフティ制御用オブジェクト382には、モーションセーフティ機能状態管理エンジン378が管理する情報が複製されるので、モーションセーフティ制御用オブジェクト382を「ミラーオブジェクト」と称することもできる。
 ミラーオブジェクトは、モーションセーフティ制御用オブジェクト382に含まれる情報をそのまま反映したものであるとともに、標準コントローラ100を含むフィールドネットワーク2に接続された各デバイスに対して公開される変数群でもある。
 モーションセーフティ制御用オブジェクト382に割り付けられる情報は、ミラーオブジェクト設定384(設定情報3206(図5参照)の一部に含まれる。)により規定される。ミラーオブジェクト設定384は、モーションセーフティ機能状態管理エンジン378が管理する情報のうち、モーションセーフティ制御用オブジェクト382に含まれる情報(プロパティ)として複製すべき情報を規定するものである。
 図16に示す構成例において、データミラーエンジン380は、サーボ制御350を実行する演算処理部であるプロセッサ312によって実現され、モーションセーフティ機能状態管理エンジン378は、モーションセーフティ機能360を提供する演算処理部であるプロセッサ314によって実現される。
 このような構成を採用した場合には、プロセッサ312とプロセッサ314との間でメッセージ通信などによってイベントを通知するようにしてもよい。具体的には、モーションセーフティ機能状態管理エンジン378(プロセッサ314)は、論理コネクション4を介して何らかの指令を受けると、対応する制御用オブジェクトの情報を更新するとともに、データミラーエンジン380(プロセッサ312)に情報の更新を通知する。この更新の通知を受けて、データミラーエンジン380(プロセッサ312)は、モーションセーフティ制御用オブジェクト382の内容を更新する。
 <H.サポート装置500における設定処理>
 上述したようなモーションセーフティ制御用オブジェクト382を生成するためのミラーオブジェクト設定384は、サポート装置500において設定される。より具体的には、サポート装置500において、セーフティドライバ設定情報5116(図6参照)の一部に含まれるミラーオブジェクト設定テーブル560が規定され、ミラーオブジェクト設定テーブル560がセーフティドライバ300へ転送されることで、セーフティドライバ300においてミラーオブジェクト設定384として格納される。
 本実施の形態においては、サポート装置500が保持するミラーオブジェクト設定テーブル560、および、セーフティドライバ300が保持するミラーオブジェクト設定384は、いずれも、データ公開される情報を特定するための公開設定に相当する。以下、ミラーオブジェクト設定384に関するサポート装置500における設定処理について説明する。
 図17は、本実施の形態に係る制御システム1のサポート装置500での設定処理を説明するための図である。図17を参照して、サポート装置500は、制御システム1に含まれる標準コントローラ100およびセーフティドライバ300に係る設定を受付ける。図17には、設定の一例として、標準コントローラ変数設定テーブル550(図6の標準コントローラ設定情報5110に含まれる)およびミラーオブジェクト設定テーブル560(図6のセーフティドライバ設定情報5116に含まれる)を示す。
 ミラーオブジェクト設定テーブル560は、対象のセーフティドライバ300が公開するモーションセーフティ制御用オブジェクト382に含まれる情報を規定するテーブルである。ユーザは、サポート装置500上で、ミラーオブジェクト設定テーブル560を編集して、対象となるセーフティドライバ300が公開するモーションセーフティ制御用オブジェクト382に含めるべき情報を設定する((1)設定)。
 より具体的には、ミラーオブジェクト設定テーブル560は、モーションセーフティ制御用オブジェクト382に含まれるコントロールオブジェクト3821およびステータスオブジェクト3822にそれぞれ対応する設定欄562および564を含む。ユーザは、設定欄562および564の各エントリに、対象とする情報の変数名566を設定する。
 各エントリに設定される情報は、モーションセーフティ機能状態管理エンジン378が保持するモーションセーフティ機能毎の制御用オブジェクト3781,3782,3783,3784,3785,・・・(図16参照)から任意に選択される。
 このように、サポート装置500は、データミラーエンジン380により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定(ミラーオブジェクト設定テーブル560)をセーフティドライバ300へ転送する。
 標準コントローラ変数設定テーブル550は、標準コントローラ100で参照可能な変数を規定するテーブルである。標準コントローラ変数設定テーブル550は、セーフティドライバ300により公開されるモーションセーフティ制御用オブジェクト382を参照するための設定を含む。
 より具体的には、標準コントローラ変数設定テーブル550は、モーションセーフティ制御用オブジェクト382に含まれるコントロールオブジェクト3821およびステータスオブジェクト3822にそれぞれ対応する設定欄552および554を含む。
 本実施の形態に係る制御システム1の標準コントローラ100においては、モーションセーフティ制御用オブジェクト382をそのまま参照することもできるが、標準制御プログラム1104の作成を容易化するために、モーションセーフティ制御用オブジェクト382に含まれる各属性に対して変数を設定することも可能である。
 図17には、ミラーオブジェクト設定テーブル560における設定に基づいて、標準コントローラ変数設定テーブル550において、モーションセーフティ制御用オブジェクト382に含まれる各属性に対して変数が自動的に設定される例を示す。
 図17に示すように、ユーザがミラーオブジェクト設定テーブル560を設定した後、標準コントローラ変数設定テーブル550への反映操作を行うと、各属性に対応する変数名556が自動的に設定される。このように、サポート装置500は、ミラーオブジェクト設定テーブル560(公開設定)を参照して、セーフティドライバ300のモーションセーフティ機能状態管理エンジン378により管理される情報のうち公開対象の情報を特定するとともに、データミラーエンジン380により公開される情報を参照するための変数名556(参照情報に相当する。)に当該特定した情報の意味を関連付ける。
 標準制御プログラム1104においては、標準コントローラ変数設定テーブル550において設定された変数名556を参照することができる。
 図18は、本実施の形態に係る制御システム1のサポート装置500が提供するユーザインターフェイス画面の一例を示す模式図である。図18(A)を参照して、モーションセーフティ制御用オブジェクト382に係る設定画面570は、対象情報表示欄572と、ミラーオブジェクト表示欄574と、属性設定欄576と、データ型設定欄578とを含む。
 ミラーオブジェクト表示欄574は、モーションセーフティ制御用オブジェクト382に含まれる各要素(ビット)を表示する。対象情報表示欄572には、モーションセーフティ制御用オブジェクト382に割り当てる情報が設定される。属性設定欄576には、割り当てられる情報の属性(読取専用/編集可能の別)が設定される。データ型設定欄578には、割り当てられる情報のデータ型(BOOL型や実数型など)が設定される。
 ユーザは、図18(A)に示す設定画面570に対する操作により、モーションセーフティ制御用オブジェクト382に含めるべき情報を設定する。その後、ユーザが反映操作を行うことで、図18(B)に示すように、標準コントローラ100で参照可能な変数名が自動的に設定される。
 図18(B)に示すように、設定画面570は、変数名設定欄580をさらに有している。変数名設定欄580には、標準コントローラ100で各情報を参照するための変数名が設定される。なお、変数名設定欄580に設定される変数名は、対象情報表示欄572に設定される変数名と同一であってもよい。
 上述したように、図17および図18には、変数名を参照情報として用いて任意のプロセス値を参照する構成例を示す。すなわち、サポート装置500において、セーフティドライバ300のデータミラーエンジン380により公開される情報を変数として参照可能になっている。このような変数に対して各情報の意味を反映する場合には、変数の名前(変数名)として反映してもよいし、変数を参照する際に表示される、変数名とは別に付与されるコメントやラベルなどの付加情報として反映してもよい。
 すなわち、サポート装置500は、変数名として特定した情報の意味を反映するようにしてもよいし、変数に付与される付加情報として特定した情報の意味を反映するようにしてもよい。
 但し、参照情報としては、変数名でなくてもよい。例えば、各プロセス値が格納される記憶領域の物理アドレスあるいは論理アドレスを指定するようにしてもよい。さらにあるいは、物理アドレスあるいは論理アドレスを示す識別情報を参照情報として用いてもよい。このような場合においても、参照情報を特定する識別情報として特定した情報の意味を反映するようにしてもよいし、参照情報に付与される付加情報として特定した情報の意味を反映するようにしてもよい。
 また、図18(B)に示すように、他のセーフティドライバ300が公開するモーションセーフティ制御用オブジェクト382に含まれる情報と競合しないように、さらなる情報を付加してもよい。図18(B)に示す設定画面570においては、公開元のセーフティドライバ300を特定する情報(図18に示す例では、「E003」)を付加した変数名が採用されている。
 以上のように、サポート装置500は、セーフティドライバ300のデータミラーエンジン380により公開される情報を参照するための参照情報(典型的には、変数)に、当該データミラーエンジン380を含んでいるセーフティドライバ300を特定する情報を反映するようにしてもよい。
 また、ユーザは、サポート装置500上で、標準コントローラ100に関する設定において、公開されたモーションセーフティ制御用オブジェクトの各ビットに対して、対応する名称を含む変数名を割り当てる。このような変数名を採用することで、標準制御プログラム1104を作成する際に、モーションセーフティ制御用オブジェクト382に含まれる情報の参照を容易化でき、プログラム作成を効率化できる。すなわち、モーションセーフティ制御用オブジェクトの各ビットの意味を明示または暗示する変数名を用いて、標準制御プログラムを作成できる。
 図19は、本実施の形態に係る制御システム1におけるモーションセーフティ制御用オブジェクト382を参照した標準制御プログラム1104の一例を示す図である。図19(A)および図19(B)には、いずれも、モーションセーフティ機能としてSOS(Safe Operating Stop)が有効化された場合の、セーフティドライバ300およびサーボモータ400を制御するための命令(コード1105)を記述した部分を示す。
 図19(A)には、モーションセーフティ制御用オブジェクト382をそのまま参照する場合の標準制御プログラム1104の一例を示し、図19(B)には、モーションセーフティ制御用オブジェクト382に対応付けられた変数を参照する場合の標準制御プログラム1104の一例を示す。
 図19(A)に示す標準制御プログラム1104においては、モーションセーフティ制御用オブジェクト382の5ビット目を参照するための「E003_Mirror_Safety_statusword[3]」との参照命令582を用いたIF文が記述されている。
 これに対して、図19(B)に示す標準制御プログラム1104においては、モーションセーフティ制御用オブジェクト382の5ビット目の情報に割り当てられた「E003_SOS_command1_active」との変数名584を用いたIF文が記述されている。このように、図19(B)に示すような変数名584を用いることで、当該変数目がいずれの情報を参照しているのかを一見して把握することができる。
 このように、サポート装置500は、標準コントローラ100で実行される標準制御プログラム1104を開発する環境を提供する。この標準制御プログラム1104を開発する環境において、上述したような特定した情報の意味が関連付けられた参照情報(典型的には、各変数)を用いて、標準制御プログラム1104を作成可能になっている。
 図20は、本実施の形態に係る制御システム1を構成するサポート装置500における設定処理手順の一例を示すフローチャートである。図20に示す各ステップは、典型的には、サポート装置500のプロセッサ502がサポートプログラム5104を実行することで実現される。
 図20を参照して、サポート装置500は、ユーザ操作に応答して、制御システム1に対するプログラム作成および各種設定を行うための開発画面をユーザに提供する(ステップS100)。
 まず、サポート装置500は、セーフティドライバ300のモーションセーフティ機能に関する設定をユーザから受付ける(ステップS102)。併せて、サポート装置500は、モーションセーフティ制御用オブジェクトに含まれる情報のうち公開する情報の選択をユーザから受付ける(ステップS104)。すなわち、ミラーオブジェクトに含ませるべき情報が選択される。サポート装置500は、ユーザによる設定完了の操作を受けると、受付けた設定をセーフティドライバ設定情報5116(図6)として格納する。
 続いて、サポート装置500は、ユーザ操作に応答して、標準コントローラ100において利用可能な変数の設定をユーザから受付ける(ステップS106)。そして、サポート装置500は、ユーザからセーフティドライバ300から公開される情報を反映するとの指示を受けると、セーフティドライバ設定情報5116を参照して、セーフティドライバ300からの公開変数群(ミラーオブジェクト)に対応するモーションセーフティ制御用オブジェクトの情報を特定する(ステップS108)。そして、サポート装置500は、特定したモーションセーフティ制御用オブジェクトの情報に基づいて、セーフティドライバ300からの公開変数の各々に対応する変数名を決定する(ステップS110)。
 具体的には、サポート装置500は、セーフティドライバ300のモーションセーフティ機能に関する設定を解析して、ミラーオブジェクトをビット単位に分解するとともに、各ビットの変数名を生成および決定する。
 最終的に、サポート装置500は、決定した各変数名を対応するビットに割り当て、割り当てた結果を標準コントローラ設定情報5110(図6)として格納する(ステップS112)。以上の設定操作により、標準制御プログラムの作成時において、セーフティドライバ300における割り当て設定を反映した名称が付与された変数を利用できる。
 <I.サポート装置500からの一括設定/一括無効化/一括有効化>
 上述の公開設定の手順においては、サポート装置500でセーフティドライバ300毎に公開すべきモーションセーフティ制御用オブジェクトの情報を選択および設定することになる。
 現実の運用を想定すると、制御システム1は複数のセーフティドライバ300を含むことが多く、このような場合、セーフティドライバ300毎に設定を行うことは操作が煩雑になる。
 また、例えば、セーフティドライバ300に係るプログラムをデバッグする場合、セーフティドライバ300のモーションセーフティ機能を無効化した状態で、標準制御に係る部分だけをデバッグしたい場合がある。このとき、セーフティドライバ300からのモーションセーフティ制御用オブジェクトの情報(ミラーオブジェクト)の公開を無効化しておくことが好ましい。このような場合において、セーフティドライバ300毎に公開設定を削除もしくは無効化することは操作が煩雑になる。
 図21は、本実施の形態に係る制御システム1を構成するサポート装置500における一括公開設定の処理を説明するための図である。図21を参照して、複数のセーフティドライバ300の各々に対して、ミラーオブジェクト設定テーブル560が用意されているとする。
 サポート装置500は、共通設定テンプレート590を有している。共通設定テンプレート590は、ミラーオブジェクト設定テーブル560に対する割り当て設定などが規定されている。サポート装置500において、ユーザが所定の操作を行うことで、ミラーオブジェクト設定テーブル560の各々に対して、共通設定テンプレート590の内容が反映される。
 このような操作によって、複数のミラーオブジェクト設定テーブル560に対して、同一の設定を反映することができる。
 あるいは、共通設定テンプレート590を用いなくとも、サポート装置500において、ユーザが所定の操作を行うことで、ミラーオブジェクト設定テーブル560の各々に対して、予め設定された内容が反映されている状態と、何らの設定もなされていない状態とを一括して切り替えるようにしてもよい。すなわち、制御システム1が複数のセーフティドライバ300を有している場合において、サポート装置500は、ユーザ操作に応答して、すべてのセーフティドライバ300のデータミラーエンジン380(データ公開部)に対して、フィールドネットワーク2を介した公開を一括して有効化または無効化するようにしてもよい。
 このような一括設定の機能、一括無効化の機能、および、一括有効化の機能の一部または全部をサポート装置500に実装することで、上述したようなデバッグ時の操作を効率化できる。
 <J.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 第1のコントローラ(100)と、
 前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置(300)とを備え、前記ドライブ装置はモータ(400)の駆動に関するセーフティ機能(360)を有しており、
 前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
 前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワーク(2)とを備え、
 前記第2の指令は、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクション(4)を介して送信され、
 前記ドライブ装置は、
  前記第2の指令に従って前記セーフティ機能の状態を管理する状態管理部(378)と、
  前記状態管理部が保持する情報のうち予め設定された情報を、前記ネットワークを介して公開するデータ公開部(380)とを含む、制御システム。
[構成2]
 前記データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定(384;560)を前記ドライブ装置へ転送するサポート装置(500)をさらに備える、構成1に記載の制御システム。
[構成3]
 前記サポート装置は、前記公開設定を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、前記データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付ける、構成2に記載の制御システム。
[構成4]
 前記サポート装置において、前記データ公開部により公開される情報を変数として参照可能になっており、
 前記サポート装置は、前記変数の名前として前記特定した情報の意味を反映する、構成3に記載の制御システム。
[構成5]
 前記サポート装置において、前記データ公開部により公開される情報を変数として参照可能になっており、
 前記サポート装置は、前記変数に付与される付加情報として前記特定した情報の意味を反映する、構成3に記載の制御システム。
[構成6]
 前記サポート装置は、前記データ公開部により公開される情報を参照するための参照情報に、当該データ公開部を含んでいるドライブ装置を特定する情報を反映する、構成3~5のいずれか1項に記載の制御システム。
[構成7]
 前記サポート装置は、前記第1のコントローラで実行される制御プログラムを開発する環境を提供し、
 前記制御プログラムを開発する環境において、前記特定した情報の意味が関連付けられた参照情報を用いて、前記制御プログラムを作成可能になっている、構成3~6のいずれか1項に記載の制御システム。
[構成8]
 前記制御システムは、前記ドライブ装置を複数備えており、
 前記サポート装置は、ユーザ操作に応答して、すべてのドライブ装置のデータ公開部に対して、前記ネットワークを介した公開を一括して有効化または無効化する、構成3~7のいずれか1項に記載の制御システム。
[構成9]
 制御システムに接続されるサポート装置(500)であって、
 前記制御システム(1)は、
  第1のコントローラ(100)と、
  前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置(300)とを備え、前記ドライブ装置はモータの駆動に関するセーフティ機能(360)を有しており、
  前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
  前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワーク(2)とを備え、
 前記第2の指令は、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクション(4)を介して送信され、
 前記ドライブ装置は、
  前記第2の指令に従って前記セーフティ機能の状態を管理する状態管理部(378)と、
  前記状態管理部が保持する情報のうち予め設定された情報を、前記ネットワークを介して公開するデータ公開部(380)とを含み、
 前記サポート装置は、
  前記データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定を前記ドライブ装置へ転送する手段(S104)と、
  前記公開設定を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、前記データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付ける手段(S106~S112)とを備える、サポート装置。
[構成10]
 制御システム(1)に接続されるコンピュータ(500)で実行されるサポートプログラム(5104)であって、
 前記制御システムは、
  第1のコントローラ(100)と、
  前記第1のコントローラからの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)とを備え、前記ドライブ装置はモータの駆動に関するセーフティ機能(360)を有しており、
  前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
  前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワーク(2)とを備え、
 前記第2の指令は、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクション(4)を介して送信され、
 前記ドライブ装置は、
  前記第2の指令に従って前記セーフティ機能の状態を管理する状態管理部(378)と、
  前記状態管理部が保持する情報のうち予め設定された情報を、前記ネットワークを介して公開するデータ公開部(380)とを含み、
 前記サポートプログラムは、前記コンピュータに
  前記データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定を前記ドライブ装置へ転送するステップ(S104)と、
  前記公開設定を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、前記データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付けるステップ(S106~S112)とを実行させる、サポートプログラム。
 <K.利点>
 本実施の形態に係る制御システム1によれば、セーフティコントローラ200とセーフティドライバ300との間に形成される論理コネクションを介して遣り取りされるセーフティ指令および/またはセーフティ指令に応じて更新されるモーションセーフティ機能の状態情報を、論理コネクションとは独立して、標準コントローラ100から容易にアクセスできる。
 また、本実施の形態に係る制御システム1によれば、サポート装置500において、セーフティドライバ300から公開される情報の意味を反映した変数を用いて標準制御プログラム1104を作成できるため、標準制御プログラム1104の作成効率を高めることができる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、2 フィールドネットワーク、4 論理コネクション、6 データ公開アーキテクチャ、100 標準コントローラ、102,202,312,314,502 プロセッサ、104,204,316,504 メインメモリ、106 上位ネットワークコントローラ、108,208,302 フィールドネットワークコントローラ、110,210,320,510 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118,218,518 プロセッサバス、120,220,520 USBコントローラ、150 標準制御、170,270,370 プロセスデータ通信レイヤ、172,272 管理モジュール、174,274,374 プロセスデータ、200 セーフティコントローラ、216 セーフティローカルバスコントローラ、230 セーフティIOユニット、240 セーフティデバイス、250 セーフティ機能、276,376 論理コネクションレイヤ、278 セーフティ機能状態管理エンジン、300 セーフティドライバ、310 制御部、330 ドライブ回路、332 フィードバック受信回路、350 サーボ制御、352 サーボ制御実行エンジン、360 モーションセーフティ機能、362 モーションセーフティ機能実行エンジン、378 モーションセーフティ機能状態管理エンジン、380 データミラーエンジン、382 モーションセーフティ制御用オブジェクト、384 ミラーオブジェクト設定、390 パラメータセット、400 サーボモータ、402 三相交流モータ、404 エンコーダ、500 サポート装置、506 入力部、508 出力部、512 光学ドライブ、514 記録媒体、550 標準コントローラ変数設定テーブル、552,562 設定欄、556,566,584 変数名、560 ミラーオブジェクト設定テーブル、570 設定画面、572 対象情報表示欄、574 ミラーオブジェクト表示欄、576 属性設定欄、578 データ型設定欄、580 変数名設定欄、582 参照命令、590 共通設定テンプレート、600 通信フレーム、610,611,612,613,614,615,620,621,622,623,624,6121,6122,6131,6132,6141,6142,6151,6152 データ領域、630 セーフティ通信フレーム、1102,2102 システムプログラム、1104 標準制御プログラム、1105 コード、1106,2106,3206 設定情報、2104 セーフティプログラム、3202 サーボ制御プログラム、3204 モーションセーフティプログラム、3781,3782,3783,3784,3785 制御用オブジェクト、3781A,3781B,3782A,3782B,3783A,3783B,3784A,3784B,3785A,3785B 情報、3821 コントロールオブジェクト、3822 ステータスオブジェクト、5102 OS、5104 サポートプログラム、5106 プロジェクトデータ、5108 標準制御ソースプログラム、5110 標準コントローラ設定情報、5112 セーフティソースプログラム、5114 セーフティコントローラ設定情報、5116 セーフティドライバ設定情報。

Claims (10)

  1.  第1のコントローラと、
     前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備え、前記ドライブ装置はモータの駆動に関するセーフティ機能を有しており、
     前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
     前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワークとを備え、
     前記第2の指令は、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクションを介して送信され、
     前記ドライブ装置は、
      前記第2の指令に従って前記セーフティ機能の状態を管理する状態管理部と、
      前記状態管理部が保持する情報のうち予め設定された情報を、前記ネットワークを介して公開するデータ公開部とを含む、制御システム。
  2.  前記データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定を前記ドライブ装置へ転送するサポート装置をさらに備える、請求項1に記載の制御システム。
  3.  前記サポート装置は、前記公開設定を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、前記データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付ける、請求項2に記載の制御システム。
  4.  前記サポート装置において、前記データ公開部により公開される情報を変数として参照可能になっており、
     前記サポート装置は、前記変数の名前として前記特定した情報の意味を反映する、請求項3に記載の制御システム。
  5.  前記サポート装置において、前記データ公開部により公開される情報を変数として参照可能になっており、
     前記サポート装置は、前記変数に付与される付加情報として前記特定した情報の意味を反映する、請求項3に記載の制御システム。
  6.  前記サポート装置は、前記データ公開部により公開される情報を参照するための参照情報に、当該データ公開部を含んでいるドライブ装置を特定する情報を反映する、請求項3~5のいずれか1項に記載の制御システム。
  7.  前記サポート装置は、前記第1のコントローラで実行される制御プログラムを開発する環境を提供し、
     前記制御プログラムを開発する環境において、前記特定した情報の意味が関連付けられた参照情報を用いて、前記制御プログラムを作成可能になっている、請求項3~6のいずれか1項に記載の制御システム。
  8.  前記制御システムは、前記ドライブ装置を複数備えており、
     前記サポート装置は、ユーザ操作に応答して、すべてのドライブ装置のデータ公開部に対して、前記ネットワークを介した公開を一括して有効化または無効化する、請求項3~7のいずれか1項に記載の制御システム。
  9.  制御システムに接続されるサポート装置であって、
     前記制御システムは、
      第1のコントローラと、
      前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備え、前記ドライブ装置はモータの駆動に関するセーフティ機能を有しており、
      前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
      前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワークとを備え、
     前記第2の指令は、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクションを介して送信され、
     前記ドライブ装置は、
      前記第2の指令に従って前記セーフティ機能の状態を管理する状態管理部と、
      前記状態管理部が保持する情報のうち予め設定された情報を、前記ネットワークを介して公開するデータ公開部とを含み、
     前記サポート装置は、
      前記データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定を前記ドライブ装置へ転送する手段と、
      前記公開設定を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、前記データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付ける手段とを備える、サポート装置。
  10.  制御システムに接続されるコンピュータで実行されるサポートプログラムであって、
     前記制御システムは、
      第1のコントローラと、
      前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備え、前記ドライブ装置はモータの駆動に関するセーフティ機能を有しており、
      前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
      前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワークとを備え、
     前記第2の指令は、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクションを介して送信され、
     前記ドライブ装置は、
      前記第2の指令に従って前記セーフティ機能の状態を管理する状態管理部と、
      前記状態管理部が保持する情報のうち予め設定された情報を、前記ネットワークを介して公開するデータ公開部とを含み、
     前記サポートプログラムは、前記コンピュータに
      前記データ公開部により公開される情報の指定を受付けるとともに、当該指定された情報を特定する公開設定を前記ドライブ装置へ転送するステップと、
      前記公開設定を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、前記データ公開部により公開される情報を参照するための参照情報に当該特定した情報の意味を関連付けるステップとを実行させる、サポートプログラム。
PCT/JP2019/037212 2018-09-28 2019-09-24 制御システム、サポート装置およびサポートプログラム WO2020066985A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018185437A JP7115195B2 (ja) 2018-09-28 2018-09-28 制御システム、サポート装置、サポートプログラム
JP2018-185437 2018-09-28

Publications (1)

Publication Number Publication Date
WO2020066985A1 true WO2020066985A1 (ja) 2020-04-02

Family

ID=69950809

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/037212 WO2020066985A1 (ja) 2018-09-28 2019-09-24 制御システム、サポート装置およびサポートプログラム

Country Status (2)

Country Link
JP (1) JP7115195B2 (ja)
WO (1) WO2020066985A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164143A (ja) * 2004-12-10 2006-06-22 Yokogawa Electric Corp プラント制御システム
JP2007193843A (ja) * 2001-05-31 2007-08-02 Omron Corp 安全コントローラ及びコントローラシステム並びにコントローラの連結方法及びコントローラシステムの制御方法
JP2013161106A (ja) * 2012-02-01 2013-08-19 Omron Corp サポート装置およびサポートプログラム
JP2016045712A (ja) * 2014-08-22 2016-04-04 株式会社日立産機システム プログラマブルロジックコントローラ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193843A (ja) * 2001-05-31 2007-08-02 Omron Corp 安全コントローラ及びコントローラシステム並びにコントローラの連結方法及びコントローラシステムの制御方法
JP2006164143A (ja) * 2004-12-10 2006-06-22 Yokogawa Electric Corp プラント制御システム
JP2013161106A (ja) * 2012-02-01 2013-08-19 Omron Corp サポート装置およびサポートプログラム
JP2016045712A (ja) * 2014-08-22 2016-04-04 株式会社日立産機システム プログラマブルロジックコントローラ

Also Published As

Publication number Publication date
JP7115195B2 (ja) 2022-08-09
JP2020057064A (ja) 2020-04-09

Similar Documents

Publication Publication Date Title
EP2498156B1 (en) Industrial simulation using redirected I/O module configurations
JP4807475B1 (ja) 演算ユニット、出力制御方法、およびプログラム
EP2592516B1 (en) Data resource identity
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
JP2017187993A (ja) 制御装置、制御方法およびプログラム
WO2021065032A1 (ja) 制御システム、サポート装置およびサポートプログラム
WO2013145940A1 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2020067286A1 (ja) 制御システム、サポート装置、サポートプログラム
WO2020066985A1 (ja) 制御システム、サポート装置およびサポートプログラム
JP7087951B2 (ja) 制御システム、制御方法、ドライブ装置
WO2020066986A1 (ja) 制御システム、サポート装置およびサポートプログラム
JP7087952B2 (ja) 制御システム、サポート装置、サポートプログラム
WO2020067287A1 (ja) 制御システム、サポート装置、サポートプログラム
JP7063222B2 (ja) 制御システム、サポート装置およびプログラム
JP7040389B2 (ja) 制御システム、サポート装置、およびサポートプログラム
JP7172397B2 (ja) 制御システム、サポート装置およびプログラム
JP7240282B2 (ja) 産業用コントロール装置及びアクティベーション方法
JP2022139149A (ja) 制御システムおよび制御方法
Lewin Motion control: to network or not to network? Understanding how motion control architectures fit a particular application also can help in deciding what motion control network should be used

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

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

Country of ref document: EP

Kind code of ref document: A1