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

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

Info

Publication number
WO2020067287A1
WO2020067287A1 PCT/JP2019/037855 JP2019037855W WO2020067287A1 WO 2020067287 A1 WO2020067287 A1 WO 2020067287A1 JP 2019037855 W JP2019037855 W JP 2019037855W WO 2020067287 A1 WO2020067287 A1 WO 2020067287A1
Authority
WO
WIPO (PCT)
Prior art keywords
safety
data
control system
controller
data group
Prior art date
Application number
PCT/JP2019/037855
Other languages
English (en)
French (fr)
Inventor
大輔 玉嶋
明日香 杉山
悠司 鈴木
佐藤 文明
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to EP19864316.5A priority Critical patent/EP3859453B1/en
Priority to CN201980051798.3A priority patent/CN112567299A/zh
Priority to US17/267,038 priority patent/US11340561B2/en
Publication of WO2020067287A1 publication Critical patent/WO2020067287A1/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
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24024Safety, surveillance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

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
  • the data trace function is a function of monitoring a state value (for example, speed or the like) relating to the operation of the servomotor and outputting a transition of the state value.
  • a control system includes a first controller and a drive device that drives a motor in accordance with a first command from the first controller.
  • the drive device has a plurality of safety functions for the motor.
  • the control system includes a second controller that transmits a second command corresponding to the type of the safety function to be performed to the drive device, and a state value that changes according to the first command and that indicates an operation state of the motor.
  • a support device for accepting the setting of a data group to be collected in the control system.
  • the data group to be collected includes a state value indicating an operation state of the motor.
  • the support device includes a storage for storing collection candidate information that associates a data group of collection candidates in the control system with the types of the plurality of safety functions, and one of the plurality of safety functions.
  • a function accepting unit for accepting a selection of a function, and among a plurality of data groups defined in the collection candidate information, a collection candidate data group associated with the one safety function is the collection target data
  • an output unit for outputting as a group.
  • the data group of the collection candidates is output collectively according to the selected safety function. This eliminates the need for the user to specify data to be collected one by one. As a result, the trouble of specifying the data group to be collected is reduced. Further, the user does not need to be aware of the name of the data to be collected, and the risk of an erroneous operation accompanying the designation of the data to be collected is reduced.
  • each data group associated with the plurality of safety function types in the collection candidate information includes a safety parameter referred to when the associated safety function is executed.
  • a data group of collection candidates is output including safety parameters. This eliminates the need for the user to specify safety parameters as data to be collected.
  • the support device acquires the safety parameter included in the data group to be collected from the drive device, and traces a trace result of the state value included in the data group to be collected to the data trace. Get from module.
  • a user can acquire a trace result and a safety parameter stored in different devices.
  • the safety parameter includes a lower limit value of the state value and an upper limit value of the state value.
  • the lower limit of the state value and the upper limit of the state value are output as data to be collected. This eliminates the need for the user to specify the lower limit of the state value and the upper limit of the state value as the data to be collected.
  • the safety parameter includes a suspension time from when the drive device receives the second command to when the drive of the motor is stopped.
  • the suspension time is output as data to be collected. This eliminates the need for the user to specify the suspension grace time as the data to be collected.
  • control system includes a plurality of the drive devices, each of the plurality of drive devices drives a different motor, and the support device further includes one of the plurality of motors. And a motor receiving unit for receiving the selection of the motor.
  • the data group to be collected output by the output unit is determined based on a combination of the one safety function and the one motor.
  • a data group to be collected according to a combination of the selection of the safety function and the selection of the motor is automatically selected.
  • each of the plurality of safety functions is associated in advance with a condition for tracing the state value by the data trace module.
  • the output unit further outputs a trace condition associated with the one safety function among the plurality of trace conditions.
  • a trace condition suitable for the selected safety function is automatically selected.
  • a support device connected to the control system includes a first controller and a drive device that drives a motor in accordance with a first command from the first controller.
  • the drive device has a plurality of safety functions for the motor.
  • the control system further includes: a second controller that transmits a second command corresponding to a type of the safety function to be performed to the drive device; and an operation state of the motor that changes according to the first command.
  • the support device includes a data receiving unit that receives a setting of a data group to be collected in the control system.
  • the data group to be collected includes the state values.
  • the support device includes a storage for storing collection candidate information that associates a data group of collection candidates in the control system with the types of the plurality of safety functions, and one of the plurality of safety functions.
  • a function accepting unit for accepting a selection of a function, and among a plurality of data groups defined in the collection candidate information, a collection candidate data group associated with the one safety function is the collection target data
  • an output unit for outputting as a group.
  • the data group of the collection candidates is output collectively according to the selected safety function. This eliminates the need for the user to specify data to be collected one by one. As a result, the trouble of specifying the data group to be collected is reduced. Further, the user does not need to be aware of the name of the data to be collected, and the risk of an erroneous operation accompanying the designation of the data to be collected is reduced.
  • a support program executed by a computer connected to the control system includes a first controller and a drive device that drives a motor in accordance with a first command from the first controller.
  • the drive device has a plurality of safety functions for the motor.
  • the control system further includes: a second controller that transmits a second command corresponding to a type of the safety function to be performed to the drive device; and an operation state of the motor that changes according to the first command.
  • the support program causes the computer to execute a step of receiving a setting of a data group to be collected in the control system.
  • the data group to be collected includes the state values.
  • the support program further comprises: acquiring, by the computer, collection candidate information in which a collection candidate data group in the control system is associated with the plurality of safety function types; Receiving a selection of one safety function from among the plurality of data groups defined in the collection candidate information, and selecting a collection candidate data group associated with the one safety function from the collection target data. And outputting as a group.
  • the data group of the collection candidates is output collectively according to the selected safety function. This eliminates the need for the user to specify data to be collected one by one. As a result, the trouble of specifying the data group to be collected is reduced. Further, the user does not need to be aware of the name of the data to be collected, and the risk of an erroneous operation accompanying the designation of the data to be collected is reduced.
  • the trouble of specifying a data group to be collected can be reduced.
  • FIG. 1 is a schematic diagram illustrating a configuration example of a control system according to an embodiment. It is a schematic diagram which shows the function which the control system which concerns on Embodiment has.
  • FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a standard controller included in the control system according to the embodiment.
  • FIG. 2 is a schematic diagram illustrating a hardware configuration example of a safety controller included in the control system according to the 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 embodiment.
  • FIG. 3 is a schematic diagram illustrating a hardware configuration example of a support device configuring the control system according to the 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 embodiment.
  • FIG. 3 is a diagram illustrating an example of a motion safety function provided by the control system according to the embodiment.
  • FIG. 4 is a diagram illustrating an example of a parameter set for realizing a motion safety function stored in a safety driver of the control system according to the embodiment.
  • FIG. 3 is a diagram for explaining a transmission form of a communication frame in the control system according to the embodiment.
  • FIG. 3 is a diagram for explaining data transmission in the control system according to the embodiment.
  • FIG. 4 is a diagram illustrating an example of a control flow for realizing a data trace function.
  • FIG. 8 is a diagram illustrating a data trace screen for receiving various settings related to data trace.
  • FIG. 9 is a diagram showing a batch setting screen for a data group to be traced.
  • FIG. 5 is a conceptual diagram schematically showing a method of determining a data group to be traced.
  • FIG. 9 is a diagram for describing sampling processing of a data group to be traced.
  • FIG. 4 is a diagram illustrating a display area of a data trace screen.
  • FIG. 9 is a diagram showing a control system according to a first modification.
  • FIG. 14 is a diagram showing a control system according to a second modification.
  • FIG. 13 is a diagram showing a control system according to a third modification.
  • 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 drives a servomotor 400 that is electrically connected.
  • the control system 1 includes a support device 500 connected to the standard controller 100 via the network 3.
  • 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.
  • the support device 500 is, for example, a computer configured according to a general-purpose computer architecture.
  • 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 support device 500 provides a development environment for a standard control program for controlling the standard controller 100 and a safety program for controlling the safety controller 200.
  • the designed standard control program and safety program are transferred to the standard controller 100 and the safety controller 200 via the field network 2, respectively.
  • “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.
  • state value means data representing at least one of the state of the standard controller 100, the state of the safety controller 200, the state of the safety driver 300, and the state of the servomotor 400.
  • state value means data whose value changes in conjunction with the state of the standard controller 100, the state of the safety controller 200, the state of the safety driver 300, or the state of the servomotor 400.
  • the “state value” corresponds to a variable used in a standard control program or a safety program, and may include data representing one value, data represented as an array, data represented as a structure, and the like. .
  • “parameter” means data that is not linked to the state of the standard controller 100, the state of the safety controller 200, the state of the safety driver 300, and the state of the servomotor 400.
  • the concept of “parameter” may include a constant or a function (for example, a linear function or a quadratic function).
  • 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.
  • standard controller 100 includes a data trace module 154 as a functional module.
  • the safety driver 300 includes a control device 311 and a storage 320 as a hardware configuration.
  • the support device 500 includes a processor 502, a storage 510, and an output unit 508 as a hardware configuration.
  • the control device 311 of the safety driver 300 receives a command (first command) for realizing the standard control from the standard controller 100.
  • the control device 311 controls the safety driver 300 according to a command from the standard controller 100.
  • a command (second command) corresponding to the type of the motion safety function to be executed is given from the safety controller 200 to the control device 311 of the safety driver 300.
  • the safety driver 300 has a plurality of motion safety functions 360, and executes the motion safety function 360 according to the second command received from the safety controller 200.
  • the data trace module 154 monitors various status values related to the operation of the servo motor 400. Typically, the data trace module 154 monitors a status value that changes in response to a command (first command) from the standard controller 100.
  • the state value includes, for example, the rotation speed of the servo motor 400, the rotation acceleration of the servo motor 400, the current position of the drive target by the servo motor 400, the speed of the drive target, the acceleration of the drive target, and the like.
  • the support device 500 receives the setting of the data group to be collected in the control system 1. More specifically, the storage 510 of the support device 500 stores the collection candidate information 5118.
  • the collection candidate information 5118 data groups of collection candidates in the control system 1 are associated with a plurality of types of the motion safety functions 360.
  • the data group of the collection candidates defined in the collection candidate information 5118 includes a state value indicating the operation state of the servomotor 400, a safety parameter SP described later, and the like.
  • the output unit 508 of the support device 500 includes a display device such as a display.
  • the screen that can be displayed on the output unit 508 includes a setting area 543 for receiving selection of a motion safety function, a display area 545 for displaying a data group to be collected, and the like.
  • the setting area 543 receives selection of one motion safety function from a plurality of motion safety functions.
  • the processor 502 of the standard controller 100 associates the processor 502 of the plurality of collection candidate data groups defined in the collection candidate information 5118 with the one motion safety function. Identify the data group of collection candidates that are present. After that, the processor 502 displays the specified collection candidate data group in the display area 545 as a collection target data group.
  • the user Since the data group of the collection candidates is collectively selected according to the selected motion safety function, the user does not need to specify the data to be collected one by one. Further, the user does not need to be aware of the name of the data to be collected, and the risk of an erroneous operation accompanying the designation of data is reduced.
  • the data trace module 154 is mounted on the standard controller 100, but the data trace module 154 does not necessarily need to be mounted on the standard controller 100.
  • the data trace module 154 may be implemented in another unit (for example, a trace unit) connected to the standard controller 100, as described later.
  • the data trace module 154 may be implemented in the safety controller 200 or a server that is an external device.
  • 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 receiving 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 executes an arithmetic process necessary for operating the safety driver 300.
  • the control unit 310 includes a control device 311 that controls the safety driver 300, a main memory 316, and a storage 320.
  • the control device 311 includes one or more processors.
  • the control device 311 includes two processors 312 and 314.
  • 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 and a plurality of safety parameters SP associated with the type of the safety function 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 the feedback signal from the servo motor 400 and outputs the 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, safety driver setting information 5116, collection candidate information 5118, It includes axis information 5120, a data group 5121 to be collected, and a unit conversion table 5122.
  • 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, the axis information 5120, the data group 5121 to be collected, and the unit conversion table 5122 are also transmitted to the standard controller 100 and stored as the 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. 4).
  • 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 display may be configured integrally with the support device 500, or may be externally connected to the support device 500.
  • 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 more set values (safety 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.
  • FIG. 14 is a diagram illustrating an example of a control flow for realizing the data trace function. Hereinafter, the processing of each step shown in FIG. 14 will be described in order.
  • step S10 First, the processing in step S10 will be described with reference to FIGS.
  • step S10 shown in FIG. 14 the user performs various settings relating to data tracing on the support device 500.
  • the user sets a trace condition and a data group to be traced in the support device 500.
  • FIG. 15 is a diagram showing a data trace screen 530 for receiving various settings relating to the data trace.
  • the data trace screen 530 includes a trace condition setting area 531, a trace target data group setting area 533, and a trace result display area 535.
  • the trace condition setting area 531 includes setting areas 531A to 531E.
  • the setting area 531A receives selection of a trace type.
  • the types of trace types that can be selected include, for example, a single trace and a continuous trace.
  • the single trace is selected, data before and after the trigger condition set in the setting area 531E is satisfied is recorded.
  • the continuous trace is selected, the data to be traced continues to be recorded regardless of the trigger condition set in the setting area 531E.
  • the setting area 531B receives the setting of the sampling interval at the time of data tracing.
  • the sampling interval is set, for example, by specifying a task or a time.
  • the execution cycle of the specified task is set as a sampling cycle.
  • the specified time is set as the sampling cycle.
  • the setting area 531C receives the setting of the upper limit of the number of samplings per data. More specifically, the standard controller 100 sequentially writes the data to be traced into a predetermined storage area, and when the sampling number reaches the set upper limit, overwrites the oldest data with newer data in order.
  • the setting area 531D receives the setting of the data storage ratio before and after the trigger condition set in the setting area 531E is satisfied. More specifically, the standard controller 100 continues the data trace after the trigger condition is satisfied until data of the sampling number corresponding to the set storage ratio is collected.
  • the setting area 531E receives the setting of the trigger condition.
  • the setting area 531E receives, for example, designation of a variable to be triggered, a conditional expression (for example, an inequality or an equation) for the variable.
  • a conditional expression for example, an inequality or an equation
  • the trigger condition is satisfied.
  • a rising of a variable for example, “SS1” or the like
  • monitoring of the sampling end condition is started.
  • the sampling end condition depends on the number of samplings set in the setting area 531C and the storage ratio set in the setting area 531D.
  • the setting area 533 receives the setting of the data group to be traced.
  • the setting area 533 includes a data list 533A that displays a data group to be traced, an add button B1, a delete button B2, and a collective add button B3.
  • a data setting column is added to the data list 533A by one line.
  • the user can input the variable name of the data to be traced in the added setting column.
  • FIG. 16 is a diagram showing a batch setting screen 540 for a data group to be traced.
  • the batch setting screen 540 includes a setting area 542 (motor receiving unit) for receiving selection of an axis to be traced, a setting area 543 (function receiving unit) for receiving selection of a safety function, and a display area for displaying a group of data to be traced. 545.
  • the “axis” here refers to an axis to be driven by the servomotor 400. Since the servomotor 400 and the axis correspond one-to-one, selecting the axis to be traced is equivalent to selecting the servomotor 400 to be traced.
  • the support device 500 determines a candidate for a data group to be traced based on the axis selected in the setting area 542 and the safety function selected in the setting area 543.
  • FIG. 17 is a conceptual diagram schematically showing a method of determining a data group to be traced.
  • the support device 500 includes a processor 502 and a storage 510 as a hardware configuration.
  • the processor 502 includes a determination module 550 as a functional configuration.
  • the storage 510 includes collection candidate information 5118 and axis information 5120.
  • the collection candidate data group in the control system 1 is associated with the type of the safety function of the safety driver 300.
  • the safety functions defined in the collection candidate information 5118 include, for example, STO (Safe Torque Off), SS1 (Safe Stop 1), SS2 (Safe Stop 2), SOS (Safe Operating Stop), and SBC (Safe Brake Control). Including.
  • Each data group of collection candidates defined in the collection candidate information 5118 includes variables referred to when the safety function is executed.
  • variables associated with the safety function “SS1” include a user variable “SS1” indicating whether the safety function “SS1” is activated, a system variable “Act.Vel” indicating the speed of the servo motor 400, and a servo variable. It includes a system variable “Drvstatus.ServoOn” indicating whether or not the motor 400 is energized.
  • each data group of the collection candidates defined in the collection candidate information 5118 includes a safety parameter referred to when the safety function is executed.
  • the safety parameters associated with the safety function “SS1” include “N_Zero_SS1”, “ ⁇ N_Zero_SS1”, “T_L_SS1”, and “T_SS1”.
  • N_Zero_SS1 indicates the upper limit of the state value of the servomotor 400.
  • -N_Zero_SS1 indicates the lower limit of the state value of the servo motor 400.
  • T_L_SS1 indicates a suspension time from when the state value of the safety driver 300 becomes equal to the upper limit value “N_Zero_SS1” until the driving of the servomotor 400 is forcibly stopped. That is, in order to satisfy the specification of the safety function “SS1”, the state value of the servomotor 400 is set within the range of the upper limit value “N_Zero_SS1” and the lower limit value “-N_Zero_SS1” within the suspension delay time “T_L_SS1”. There is a need.
  • T_SS1 indicates a delay time from when the execution of the safety function “SS1” is started to when the driving of the servomotor 400 is forcibly stopped. That is, in order to satisfy the specification of the safety function “SS1”, the state value of the servomotor 400 is set within the range of the upper limit value “N_Zero_SS1” and the lower limit value “-N_Zero_SS1” within the suspension delay time “T_SS1”. There is a need.
  • the axis information 5120 includes the axis setting set for the support device 500. More specifically, the user sets an axis to be driven for each servomotor 400 in advance or before designing the standard control program 1104. Based on this setting, the support device 500 generates a structure corresponding to the set axis as a system variable. The user can describe a program for each axis using the generated structure.
  • the axis information 5120 defines each system variable (structure) generated at the time of axis setting.
  • the determination module 550 determines a data group to be collected based on a combination of the axis selected in the setting area 542 (see FIG. 16) and the safety function selected in the setting area 543 (see FIG. 16). As shown in FIG. 17, it is assumed that “MC_Axis000” is selected in the axis selection and “SS1” is selected in the function selection. In this case, the determination module 550 specifies the collection candidate data group corresponding to the safety function “SS1” with reference to the collection candidate information 5118. The determination module 550 includes the user variable “SS1” and the safety parameters “N_Zero_SS1”, “ ⁇ N_Zero_SS1”, and “T_SS1” in the specified data group as they are in the data group 5121 to be collected.
  • the determination module 550 adds the structure variable name “MC_Axis000” to the system variables “Act.Vel” and “Drvstatus.ServoOn” regarding the axes in the specified data group, and adds the system variable “MC_Axis000.Act. Vel "and” MC_Axis000.Drvstatus.ServoOn "in the data group 5121 to be collected.
  • data group 5121 to be collected determined by determination module 550 is displayed in display area 545 of collective setting screen 540.
  • the collection target data group 5121 displayed in the display area 545 is reflected in the setting area 533 of the data trace screen 530.
  • the OK button B10 is pressed while the check box 544 is checked, the trace conditions are automatically reflected in the setting area 531 of the data trace screen 530. More specifically, different trace conditions are associated in advance with the type of the safety function, and the trace condition corresponding to the type of the selected safety function is reflected in the setting area 531 of the data trace screen 530.
  • a storage ratio “100%” and a “fall” of the variable “SS1” are associated as trace conditions in the safety function “SS1”.
  • “100%” is automatically set in the setting area 531D
  • “fall” of the variable “SS1” is automatically set in the setting area 531E.
  • step S20 Referring to FIG. 14 again, the processing in step S20 will be described.
  • the processing in step S20 includes the processing in steps S22, S24, and S26.
  • step S22 it is assumed that the user has performed a trace execution operation on the support device 500.
  • step S24 the support device 500 extracts a variable from the data group to be collected set in the setting area 533 of the data trace screen 530 described above.
  • step S26 the support device 500 outputs a trace execution command to the standard controller 100 with the extracted variables as collection targets.
  • the trace execution instruction includes the information set in the setting area 531 of the data trace screen 530 described above.
  • step S30 The process of step S30 will be described with reference to FIG.
  • step S30 the standard controller 100 starts sampling processing of the data group to be traced based on the reception of the trace execution instruction from the support device 500.
  • FIG. 18 is a diagram for explaining sampling processing of a data group to be traced.
  • processor 102 of standard controller 100 includes a control module 152 and a data trace module 154 as functional modules.
  • the control module 152 outputs a command to the safety driver 300 at predetermined intervals according to the standard control program 1104.
  • the safety driver 300 controls the servomotor 400 according to a command from the standard controller 100.
  • the data trace module 154 samples a data group to be traced according to the trace condition 1108 set in the setting area 531 of the data trace screen 530 described above. More specifically, the data trace module 154 receives a data group to be traced from the safety driver 300 at a predetermined cycle and sequentially writes the data group into the storage area 104A after associating the data group with time information.
  • the storage area 104A is a volatile storage area in the standard controller 100.
  • the storage area 104A is secured, for example, in the main memory 104 (see FIG. 3).
  • the data trace module 154 starts with the oldest data group among the data groups stored in the storage area 104A in order from the newest data group. To overwrite.
  • step S40 Referring to FIG. 14 again, the process in step S40 will be described.
  • the processing in step S40 includes the processing in steps S42, S44, S46, and S48.
  • step S42 the user performs an input (hereinafter, also referred to as “trigger input”) for establishing the trigger condition set in the setting area 531E of the data trace screen 530 to the safety device 240.
  • the user may perform an input to the support device 500 instead of performing an input to the safety device 240 to satisfy the trigger condition.
  • the user can satisfy the trigger condition by changing the value of the variable related to the trigger condition on the support device 500.
  • step S44 the safety device 240 outputs the trigger input in step S42 to the safety IO unit 230.
  • step S46 the safety IO unit 230 outputs a signal corresponding to the trigger input received in step S44 to the safety controller 200.
  • step S48 the safety controller 200 activates the safety function according to the signal received in step S46.
  • the activation is realized by rewriting a variable indicating ON / OFF of the safety function.
  • the safety function "SS1" is activated by setting the variable "SS1" from ON to OFF.
  • step S50 The processing in step S50 will be described with reference to FIG.
  • step S50 the standard controller 100 executes a process of storing the data group to be traced based on the fact that the variable “SS1” has changed from ON to OFF.
  • the storage process in step S50 will be described with reference to FIG.
  • the data trace module 154 copies the data group stored in the volatile storage area 104A to the nonvolatile storage area 114A.
  • the trace result DT is stored in the nonvolatile storage area 114A.
  • the storage area 114A may be secured in the storage 110 of the standard controller 100 or may be secured in the external memory card 114.
  • step S60 Referring to FIG. 14 again, the process of step S60 will be described.
  • the processing in step S60 includes the processing in steps S61 to S67.
  • step S61 the support device 500 transmits a request to acquire the trace result DT to the standard controller 100.
  • step S62 the standard controller 100 transmits the trace result DT to the support device 500 based on the reception of the acquisition request.
  • step S63 the support device 500 determines a display target time range based on the acquired trace result DT.
  • the support device 500 determines the time range from the oldest time information to the latest time information among the time information included in the trace result DT as the display target time range.
  • step S64 the support device 500 extracts the safety parameter SP from the collection target data group set in the setting area 533 of the data trace screen 530 described above.
  • step S65 the support device 500 outputs a request to acquire the extracted safety parameter to the safety driver 300 via the standard controller 100.
  • step S66 the safety driver 300 transmits the safety parameter SP corresponding to the received acquisition request to the support device 500.
  • the safety parameter to be acquired is cached in the support device 500 (for example, in the above-described project data 5106), the communication in steps S65 and S66 does not necessarily need to be performed. In this case, the support device 500 uses the cached safety parameters without performing communication with the safety driver 300 in steps S65 and S66.
  • step S67 the support device 500 displays the trace result DT received in step S62 and the safety parameter SP received in step S66 as a data trace execution result.
  • the support device 500 acquires the safety parameter SP included in the data group to be collected from the safety driver 300, and obtains the trace result DT of the state value included in the data group to be collected by the data trace module of the standard controller 100. 154.
  • FIG. 19 is a diagram showing a display area 535 of the data trace screen 530 shown in FIG.
  • the support device 500 displays the trace result DT on a graph in which the horizontal axis indicates time and the vertical axis indicates the magnitude of the state value of the safety driver 300, and displays the safety parameter on the graph.
  • the horizontal axis of the graph indicates time
  • the vertical axis of the graph indicates the magnitude of the state value.
  • the horizontal axis of the graph indicates the magnitude of the state value.
  • the vertical axis may indicate time.
  • the safety parameter “N_Zero_SS1” indicates the upper limit of the state value of the safety driver 300.
  • the safety parameter “-N_Zero_SS1” indicates the lower limit of the state value of the safety driver 300.
  • the support device 500 represents the upper limit “N_Zero_SS1” and the lower limit “ ⁇ N_Zero_SS1” so as to be orthogonal to the vertical axis of the graph. This allows the user to more easily determine whether the state value of the safety driver 300 falls within the range of the upper limit value “N_Zero_SS1” and the lower limit value “ ⁇ N_Zero_SS1”.
  • the display mode of the upper limit “N_Zero_SS1” and the lower limit “ ⁇ N_Zero_SS1” is not limited to the example of FIG.
  • the upper limit “N_Zero_SS1” and the lower limit “ ⁇ N_Zero_SS1” may be simply indicated by numerical values.
  • the support device 500 displays the vertical axes AX1 to AX4 on the trace result DT.
  • the vertical axis AX1 indicates the timing at which the trigger condition set in the setting area 531E of the data trace screen 530 is satisfied. The timing is the same as the timing at which the execution command of the safety function “SS1” is issued.
  • the vertical axis AX1 is displayed so as to be orthogonal to the time axis.
  • the vertical axis AX2 indicates the timing when the state value of the safety driver 300 becomes equal to the upper limit value “N_Zero_SS1”.
  • the vertical axis AX2 is displayed so as to be orthogonal to the time axis.
  • the vertical axis AX3 corresponds to the timing when the suspension delay time indicated by the safety parameter “T_L_SS1” has elapsed from the timing indicated by the vertical axis AX2.
  • the vertical axis AX3 is displayed so as to be orthogonal to the time axis.
  • the vertical axis AX4 corresponds to the timing when the suspension delay time indicated by the safety parameter “T_SS1” has elapsed from the timing indicated by the vertical axis AX1.
  • the vertical axis AX4 is displayed so as to be orthogonal to the time axis.
  • the trace result DT and the safety parameter SP are displayed after matching the units. More specifically, support device 500 holds in advance a unit conversion table 5122 (see FIG. 6) for unifying the unit of the state value indicated by trace result DT and the unit indicated by safety parameter SP.
  • the support device 500 aligns the unit of the state value indicated by the trace result DT with the unit indicated by the safety parameter SP based on the unit conversion table 5122. By aligning the units, the user can easily compare the state value indicated by the trace result DT with the safety parameter SP.
  • unit conversion is not necessarily performed by the support device 500, but may be performed by the standard controller 100 or the safety driver 300.
  • unit conversion table 5122 is stored in standard controller 100. In this case, based on the unit conversion table 5122, the standard controller 100 converts the unit of the trace result DT so as to match the unit specified in step S26, and in step S62, sends the trace result DT after the unit conversion to the support device 500. Send.
  • unit conversion table 5122 is stored in safety driver 300. In this case, the safety driver 300 converts the unit of the safety parameter SP so as to match the unit specified in step S65 based on the unit conversion table 5122, and transmits the converted safety parameter SP to the support device 500 in step S66. Send.
  • FIG. 20 is a diagram showing a control system 1A according to the first modification.
  • the standard controller 100 and the safety controller 200 are connected by the field network 2.
  • standard controller 100 and safety controller 200 are connected via an internal bus.
  • Other points of control system 1A are the same as control system 1, and therefore, description thereof will not be repeated.
  • FIG. 21 is a diagram showing a control system 1B according to the second modification.
  • storage areas 104A and 114A for storing data groups to be traced and a data trace module 154 are provided in the standard controller 100.
  • storage areas 104A and 114A and data trace module 154 are provided in dedicated trace unit 180.
  • the trace unit 180 is connected to the standard controller 100, the safety controller 200, and the safety I / O 230 via an internal bus.
  • Other points of control system 1B are the same as those of control system 1, and therefore, description thereof will not be repeated.
  • FIG. 22 is a diagram showing a control system 1C according to the third modification.
  • the support device 500 is connected to the standard controller 100 via the network 3.
  • control system 1C according to the third modification support device 500 is directly connected to trace unit 180 via network 3A.
  • the other points of control system 1C are the same as control system 1, and thus description thereof will not be repeated.
  • this embodiment includes the following disclosure.
  • a control system (1) A first controller (100); A drive device (300) for driving a motor (400) in accordance with a first command from the first controller (100), wherein the drive device (300) has a plurality of safety functions for the motor (400). And A second controller (200) for transmitting a second command to the drive device (300) according to a type of a safety function to be executed; A data trace module (154) for tracing a state value indicating an operation state of the motor (400) that changes in response to the first command; A support device (500) for receiving a setting of a data group to be collected in the control system (1), wherein the data group to be collected includes a state value indicating an operation state of the motor (400).
  • the support device (500) includes: A storage (510) for storing collection candidate information that associates a collection candidate data group in the control system (1) with the plurality of safety function types; A function receiving unit (543) for receiving selection of one safety function from the plurality of safety functions; An output unit (508) for outputting, as the collection target data group, a collection candidate data group associated with the one safety function among a plurality of data groups defined in the collection candidate information; Control system, including.
  • the support device (500) includes: Acquiring the safety parameters included in the data group to be collected from the drive device (300); The control system according to configuration 2, wherein a trace result of the state value included in the data group to be collected is acquired from the data trace module (154).
  • the control system (1) includes a plurality of the drive devices (300), The plurality of drive devices (300) each drive a different motor (400),
  • the support device (500) further includes a motor receiving unit for receiving selection of one motor (400) from the plurality of motors (400),
  • the data group to be collected, which is output by the output unit (508), is determined based on a combination of the one safety function and the one motor (400).
  • the control system according to item 1.
  • a trace condition of the state value by the data trace module is associated with each of the plurality of safety functions in advance, The control system according to any one of Configurations 1 to 6, wherein the output unit (508) further outputs a trace condition associated with the one safety function among the plurality of trace conditions.
  • the control system (1) A first controller (100);
  • the control system (1) further includes: A second controller (200) for transmitting a second command to the drive device (300) according to a type of a safety function to be executed; A data trace module (154) for tracing a state value indicating an operation state of the motor (400) that changes in response to the first command;
  • the support device (500) includes: A data receiving unit that receives a setting of a data group to be collected in the control system (1), wherein the data group to be collected includes the state value; A storage (510) for storing collection candidate information that associates a collection candidate data group in the control system (1) with the plurality of safety function types; A function receiving unit (543) for receiving selection of one safety function from the plurality of safety functions; An output unit (508) for outputting, as the collection target data group, a collection candidate data group associated with the one safety function among a plurality of data groups defined in the collection candidate information;
  • a support device comprising:
  • the control system (1) A first controller (100);
  • the control system (1) further includes: A second controller (200) for transmitting a second command to the drive device (300) according to a type of a safety function to be executed; A data trace module (154) for tracing a state value indicating an operation state of the motor (400) that changes in response to the first command;
  • the support program the computer, Receiving a setting of a data group to be collected in the control system (1), wherein the data group to be collected includes the state value; Acquiring collection candidate information that associates a collection candidate data group in the control system (1) with the plurality of safety function types (S10); Receiving a selection of one safety function from the plurality of safety functions (S10); Outputting a collection candidate data group associated with the one safety function from the plurality of data groups defined in the collection candidate information as the collection target data group (S10).
  • Support programs are provided.

Landscapes

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

Abstract

収集対象のデータ群の指定に関してユーザを支援できる制御システムを提供する。制御システム(1)は、第1,第2のコントローラ(100、200)と、モータ(400)に対する複数のセーフティ機能を有しているドライブ装置(300)と、モータ(400)の動作状態を示す状態値をトレースするデータトレースモジュール(154)と、状態値を含む収集対象のデータ群の設定を受け付けるサポート装置(500)とを備える。サポート装置(500)は、収集候補のデータ群をセーフティ機能の種別に対応付けている収集候補情報を格納するストレージ(510)と、選択された一のセーフティ機能に対応付けられている収集候補のデータ群を収集対象のデータ群として出力する出力部(508)とを含む。

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のコントローラと、上記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備える。上記ドライブ装置は、モータに対する複数のセーフティ機能を有している。制御システムは、実行するセーフティ機能の種類に応じた第2の指令を上記ドライブ装置に送信する第2のコントローラと、上記第1の指令に応じて変化する、上記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールと、上記制御システム内における収集対象のデータ群の設定を受け付けるためのサポート装置とをさらに備える。上記収集対象のデータ群は、上記モータの動作状態を示す状態値を含む。上記サポート装置は、上記制御システム内における収集候補のデータ群を上記複数のセーフティ機能の種別に対応付けている収集候補情報を格納するためのストレージと、上記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるための機能受付部と、上記収集候補情報に規定されている複数のデータ群の内、上記一のセーフティ機能に対応付けられている収集候補のデータ群を上記収集対象のデータ群として出力するための出力部とを含む。
 この開示によれば、収集候補のデータ群が選択されたセーフティ機能に応じて一括で出力される。これにより、ユーザは、収集対象のデータを1つずつ指定する必要がなくなる。結果として、収集対象のデータ群を指定する手間が軽減される。また、ユーザは、収集対象のデータの名前を意識する必要もなく、収集対象のデータの指定に伴う誤操作のリスクも軽減される。
 本開示の一例では、上記収集候補情報において上記複数のセーフティ機能の種別に対応付けられている各データ群は、対応付けられているセーフティ機能の実行時に参照されるセーフティパラメータを含む。
 この開示によれば、収集候補のデータ群がセーフティパラメータを含めて出力される。これにより、ユーザは、収集対象のデータとしてセーフティパラメータを指定する必要がなくなる。
 本開示の一例では、上記サポート装置は、上記収集対象のデータ群に含まれる上記セーフティパラメータを上記ドライブ装置から取得し、上記収集対象のデータ群に含まれる上記状態値のトレース結果を上記データトレースモジュールから取得する。
 この開示によれば、ユーザは、異なる装置に格納されているトレース結果およびセーフティパラメータを取得することができる。
 本開示の一例では、上記セーフティパラメータは、上記状態値の下限値と上記状態値の上限値とを含む。
 この開示によれば、状態値の下限値および状態値の上限値が収集対象のデータとして出力される。これにより、ユーザは、収集対象のデータとして状態値の下限値および状態値の上限値を指定する必要がなくなる。
 本開示の一例では、上記セーフティパラメータは、上記ドライブ装置が上記第2の指令を受けてから上記モータの駆動を停止するまでの停止猶予時間を含む。
 この開示によれば、停止猶予時間が収集対象のデータとして出力される。これにより、ユーザは、収集対象のデータとして停止猶予時間を指定する必要がなくなる。
 本開示の一例では、上記制御システムは、上記ドライブ装置を複数備えており、複数の上記ドライブ装置は、それぞれ、異なるモータを駆動し、上記サポート装置は、さらに、複数の上記モータの中から一のモータの選択を受け付けるためのモータ受付部を含む。上記出力部によって出力される上記収集対象のデータ群は、上記一のセーフティ機能と上記一のモータとの組み合わせに基づいて決定される。
 この開示によれば、セーフティ機能の選択とモータの選択との組み合わせに応じた収集対象のデータ群が自動的に選択される。
 本開示の一例では、上記複数のセーフティ機能のそれぞれには、上記データトレースモジュールによる上記状態値のトレース条件が予め対応付けられている。上記出力部は、複数の上記トレース条件の内、上記一のセーフティ機能に対応付けられているトレース条件をさらに出力する。
 この開示によれば、選択したセーフティ機能に合ったトレース条件が自動的に選択される。
 本開示の一例では、制御システムに接続されるサポート装置が提供される。上記制御システムは、第1のコントローラと、上記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備える。上記ドライブ装置は、モータに対する複数のセーフティ機能を有している。上記制御システムは、さらに、実行するセーフティ機能の種類に応じた第2の指令を上記ドライブ装置に送信する第2のコントローラと、上記第1の指令に応じて変化する、上記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとをさらに備える。上記サポート装置は、上記制御システム内における収集対象のデータ群の設定を受け付けるデータ受付部を備える。上記収集対象のデータ群は、上記状態値を含む。上記サポート装置は、上記制御システム内における収集候補のデータ群を上記複数のセーフティ機能の種別に対応付けている収集候補情報を格納するためのストレージと、上記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるための機能受付部と、上記収集候補情報に規定されている複数のデータ群の内、上記一のセーフティ機能に対応付けられている収集候補のデータ群を上記収集対象のデータ群として出力するための出力部とを備える。
 この開示によれば、収集候補のデータ群が選択されたセーフティ機能に応じて一括で出力される。これにより、ユーザは、収集対象のデータを1つずつ指定する必要がなくなる。結果として、収集対象のデータ群を指定する手間が軽減される。また、ユーザは、収集対象のデータの名前を意識する必要もなく、収集対象のデータの指定に伴う誤操作のリスクも軽減される。
 本開示の一例では、制御システムに接続されるコンピュータで実行されるサポートプログラムが提供される。上記制御システムは、第1のコントローラと、上記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備える。上記ドライブ装置は、モータに対する複数のセーフティ機能を有している。上記制御システムは、さらに、実行するセーフティ機能の種類に応じた第2の指令を上記ドライブ装置に送信する第2のコントローラと、上記第1の指令に応じて変化する、上記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとをさらに備える。上記サポートプログラムは、上記コンピュータに、上記制御システム内における収集対象のデータ群の設定を受け付けるステップを実行させる。上記収集対象のデータ群は、上記状態値を含む。上記サポートプログラムは、上記コンピュータに、さらに、上記制御システム内における収集候補のデータ群を上記複数のセーフティ機能の種別に対応付けている収集候補情報を取得するステップと、上記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるステップと、上記収集候補情報に規定されている複数のデータ群の内、上記一のセーフティ機能に対応付けられている収集候補のデータ群を上記収集対象のデータ群として出力するステップとを実行させる。
 この開示によれば、収集候補のデータ群が選択されたセーフティ機能に応じて一括で出力される。これにより、ユーザは、収集対象のデータを1つずつ指定する必要がなくなる。結果として、収集対象のデータ群を指定する手間が軽減される。また、ユーザは、収集対象のデータの名前を意識する必要もなく、収集対象のデータの指定に伴う誤操作のリスクも軽減される。
 本発明によれば、収集対象のデータ群を指定する手間を軽減できる。
実施の形態に係る制御システムの構成例を示す模式図である。 実施の形態に係る制御システムが有する機能を示す模式図である。 実施の形態に係る制御システムを構成する標準コントローラのハードウェア構成例を示す模式図である。 実施の形態に係る制御システムを構成するセーフティコントローラのハードウェア構成例を示す模式図である。 実施の形態に係る制御システムを構成するセーフティドライバおよびサーボモータのハードウェア構成例を示す模式図である。 実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。 実施の形態に係る制御システムの機能分担の一例を示す模式図である。 実施の形態に係る制御システムのセーフティドライバによるセーフティ機能に係る処理手順の一例を示すシーケンス図である。 実施の形態に係る制御システムが提供するモーションセーフティ機能の一例を示す図である。 実施の形態に係る制御システムのセーフティドライバに格納されるモーションセーフティ機能を実現するためのパラメータセットの一例を示す図である。 実施の形態に係る制御システムにおける通信フレームの伝送形態を説明するための図である。 実施の形態に係る制御システムにおけるデータ伝送を説明するための図である。 実施の形態に係る制御システムにおける標準制御およびセーフティ制御の実装例を示す模式図である。 データトレース機能を実現するための制御フローの一例を示す図である。 データトレースに関する各種の設定を受け付けるデータトレース画面を示す図である。 トレース対象のデータ群の一括設定画面を示す図である。 トレース対象のデータ群の決定方法を概略的に示す概念図である。 トレース対象のデータ群のサンプリング処理を説明するための図である。 データトレース画面の表示領域を表した図である。 変形例1に従う制御システムを示す図である。 変形例2に従う制御システムを示す図である。 変形例3に従う制御システムを示す図である。
 以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。
 図1は、本実施の形態に係る制御システム1の構成例を示す模式図である。本実施の形態に係る制御システム1は、例えば、IEC 61508などに規定されたセーフティ機能に加えて、上述の非特許文献1に規定されたドライブ装置に対するセーフティ機能を提供する。
 図1を参照して、制御システム1は、主として、標準コントローラ100、ならびに、標準コントローラ100とフィールドネットワーク2を介して接続されるセーフティコントローラ200および1または複数のセーフティドライバ300を含む。セーフティドライバ300の各々は、電気的に接続されたサーボモータ400を駆動する。なお、サーボモータ400に限らず、任意の種類のモータを採用できる。さらに、制御システム1は、標準コントローラ100とネットワーク3を介して接続されるサポート装置500を含む。
 標準コントローラ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へ出力する。
 サポート装置500は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。サポート装置500は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。一例として、サポート装置500は、標準コントローラ100を制御するための標準制御プログラムや、セーフティコントローラ200を制御するためのセーフティプログラムの開発環境を提供する。設計された標準制御プログラムおよびセーフティプログラムは、フィールドネットワーク2を介して標準コントローラ100およびセーフティコントローラ200にそれぞれ転送される。
 本明細書において、「デバイス」は、フィールドネットワーク2などの任意のネットワークを介して、他の装置とデータ通信可能な装置の総称である。本実施の形態に係る制御システム1において、「デバイス」は、標準コントローラ100、セーフティコントローラ200およびセーフティドライバ300を包含する。
 本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
 本明細書においては、ドライブ装置に特有のセーフティ機能を「モーションセーフティ機能」と総称する。典型的には、「機能」は、上述の非特許文献1に規定されるドライブ装置に関連するセーフティ機能を包含する。例えば、制御軸の位置や速度を監視して安全を確保するための制御を含む。
 本明細書において、「状態値」および「パラメータ」の用語を対比的に用いる。「状態値」は、標準コントローラ100の状態、セーフティコントローラ200の状態、セーフティドライバ300の状態、およびサーボモータ400の状態の少なくとも1つを表わすデータを意味する。異なる言い方をすれば、「状態値」は、標準コントローラ100の状態、セーフティコントローラ200の状態、セーフティドライバ300の状態、またはサーボモータ400の状態に連動して値が変化するデータを意味する。典型的には、「状態値」は、標準制御プログラムやセーフティプログラムで用いられる変数に相当し、一つの値を表わすデータ、配列として表されるデータ、構造体として表されるデータなどを含み得る。これに対して、「パラメータ」は、標準コントローラ100の状態、セーフティコントローラ200の状態、セーフティドライバ300の状態、およびサーボモータ400の状態に連動しないデータのことを意味する。「パラメータ」との概念は、定数や関数(例えば、一次関数や二次関数など)などを含み得る。
 本明細書において、「プロセスデータ」は、標準制御またはセーフティ制御の少なくともいずれかで用いられるデータの総称である。具体的には、「プロセスデータ」は、制御対象から取得される入力情報、制御対象へ出力される出力情報、各デバイスでの制御演算に使用される内部情報などを包含する。
 入力情報は、光電センサなどにより検出されるON/OFF信号(デジタル入力)、温度センサなどにより検出される物理信号(アナログ入力)、ならびに、パルスエンコーダなどが発生するパルス信号(パルス入力)などを包含する。出力情報は、リレーなどを駆動するためのON/OFF(デジタル出力)、サーボモータの回転速度などを指示する速度指令(アナログ出力)、ならびに、ステッピングモータの移動量などを指示する変位指令(パルス出力)などを包含する。内部情報は、任意のプロセスデータを入力とする制御演算などによって決定される状態情報などを含む。
 基本的には、「プロセスデータ」の値は、制御周期または通信周期毎に更新される。ここで、更新とは、最新の値を反映することを意味し、更新の前後において値が変化しない場合も含み得る。
 図2は、本実施の形態に係る制御システム1が有する機能を示す模式図である。図2を参照して、標準コントローラ100は、機能モジュールとして、データトレースモジュール154を含む。セーフティドライバ300は、ハードウェア構成として、制御装置311と、ストレージ320とを含む。サポート装置500は、ハードウェア構成として、プロセッサ502と、ストレージ510と、出力部508とを含む。
 セーフティドライバ300の制御装置311には、標準制御を実現するための指令(第1の指令)が標準コントローラ100から与えられる。制御装置311は、標準コントローラ100からの指令に従ってセーフティドライバ300を制御する。
 また、セーフティドライバ300の制御装置311には、実行するモーションセーフティ機能の種類に応じた指令(第2の指令)がセーフティコントローラ200から与えられる。セーフティドライバ300は、複数のモーションセーフティ機能360を有しており、セーフティコントローラ200から受けた第2の指令に応じたモーションセーフティ機能360を実行する。
 データトレースモジュール154は、サーボモータ400の動作に関する各種の状態値を監視する。典型的には、データトレースモジュール154は、標準コントローラ100からの指令(第1の指令)に応じて変化する状態値を監視する。当該状態値は、例えば、サーボモータ400の回転速度、サーボモータ400の回転加速度、サーボモータ400による駆動対象の現在位置、当該駆動対象の速度、当該駆動対象の加速度などを含む。
 サポート装置500は、制御システム1内における収集対象のデータ群の設定を受け付ける。より具体的には、サポート装置500のストレージ510は、収集候補情報5118を格納している。収集候補情報5118において、制御システム1内における収集候補のデータ群が複数のモーションセーフティ機能360の種別に対応付けられている。収集候補情報5118に規定される収集候補のデータ群は、サーボモータ400の動作状態を示す状態値や、後述のセーフティパラメータSPなどを含む。
 サポート装置500の出力部508は、ディスプレイなどの表示機器を含む。出力部508に表示され得る画面は、モーションセーフティ機能の選択を受け付ける設定領域543や、収集対象のデータ群を表示する表示領域545などを含む。設定領域543は、複数のモーションセーフティ機能の中から一のモーションセーフティ機能の選択を受け付ける。モーションセーフティ機能が選択されたことに基づいて、標準コントローラ100のプロセッサ502は、収集候補情報5118に規定されている複数の収集候補のデータ群の内、当該一のモーションセーフティ機能に対応付けられている収集候補のデータ群を特定する。その後、プロセッサ502は、特定した収集候補のデータ群を収集対象のデータ群として表示領域545に表示する。
 このように、収集候補のデータ群が選択されたモーションセーフティ機能に応じて一括で選択されることで、ユーザは、収集対象のデータを1つずつ指定する必要がなくなる。また、ユーザは、収集対象のデータの名前を意識する必要もなく、データの指定に伴う誤操作のリスクも軽減される。
 なお、図2の例では、データトレースモジュール154が標準コントローラ100に実装されているが、データトレースモジュール154は、必ずしも標準コントローラ100に実装される必要はない。データトレースモジュール154は、後述するように、標準コントローラ100に接続される他のユニット(例えば、トレースユニット)に実装されてもよい。あるいは、データトレースモジュール154は、セーフティコントローラ200や外部機器であるサーバに実装されてもよい。
 <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は、セーフティドライバ300を制御する制御装置311と、メインメモリ316と、ストレージ320とを含む。制御装置311は、1つ以上のプロセッサで構成される。例えば、制御装置311は、2つのプロセッサ312,314で構成される。
 プロセッサ312は、サーボモータ400を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ314は、サーボモータ400に係るセーフティ機能を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ312,314は、いずれもCPUなどで構成される。
 メインメモリ316は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ320は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
 ストレージ320には、サーボ制御350を実現するためのサーボ制御プログラム3202と、モーションセーフティ機能360を実現するためのモーションセーフティプログラム3204と、他のデバイスに公開される変数などを設定するための設定情報3206と、セーフティ機能の種別に関連付けられた複数のセーフティパラメータSPとが格納される。
 図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と、収集候補情報5118と、軸情報5120と、収集対象のデータ群5121と、単位変換表5122を含む。
 標準制御ソースプログラム5108は、オブジェクトコードに変換された上で、標準コントローラ100へ送信され、標準制御プログラム1104(図3参照)として格納される。同様に、標準コントローラ設定情報5110、軸情報5120、収集対象のデータ群5121、および単位変換表5122についても標準コントローラ100へ送信され、設定情報1106(図3参照)として格納される。
 セーフティソースプログラム5112は、オブジェクトコードに変換された上で、セーフティコントローラ200へ送信され、セーフティプログラム2104(図4参照)として格納される。同様に、セーフティコントローラ設定情報5114についてもセーフティコントローラ200へ送信され、設定情報2106(図4参照)として格納される。
 セーフティドライバ設定情報5116は、セーフティドライバ300へ送信され、設定情報3206(図5参照)として格納される。
 入力部506は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。出力部508は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ502からの処理結果などを出力する。当該ディスプレイは、サポート装置500と一体的に構成されてもよいし、外付けでサポート装置500に接続されてもよい。
 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.データトレース機能>
 図14~図19を参照して、制御システム1におけるデータトレース機能について説明する。図14は、データトレース機能を実現するための制御フローの一例を示す図である。以下、図14に示される各ステップの処理について順に説明する。
  (G1.ステップS10)
 まず、図14~図17を参照して、ステップS10の処理について説明する。
 図14に示されるステップS10において、ユーザは、データトレースに関する各種設定をサポート装置500に対して行う。一例として、ユーザは、トレース条件やトレース対象のデータ群をサポート装置500に対して設定する。
 図15は、データトレースに関する各種の設定を受け付けるデータトレース画面530を示す図である。図15に示されるように、データトレース画面530は、トレース条件の設定領域531と、トレース対象のデータ群の設定領域533と、トレース結果の表示領域535とを含む。トレース条件の設定領域531は、設定領域531A~531Eを含む。
 設定領域531Aは、トレースタイプの選択を受け付ける。選択可能なトレースタイプの種類は、例えば、シングルトレースと、連続トレースとを含む。シングルトレースが選択された場合、設定領域531Eに設定されたトリガ条件が成立する前後のデータが記録される。連続トレースが選択された場合、設定領域531Eに設定されるトリガ条件に関わらずトレース対象のデータが記録され続ける。
 設定領域531Bは、データトレース時におけるサンプリング間隔の設定を受け付ける。サンプリング間隔は、例えば、タスクの指定や時間の指定によって設定される。タスクが指定された場合には、指定されたタスクの実行周期がサンプリング周期として設定される。時間が指定された場合には、指定された時間がサンプリング周期として設定される。
 設定領域531Cは、1データ当たりにおけるサンプリング数の上限値の設定を受け付ける。より具体的には、標準コントローラ100は、トレース対象のデータを所定の記憶領域に順次書き込み、サンプリング数が設定された上限値に達した場合には、最も古いデータから順に新しいデータで上書きする。
 設定領域531Dは、設定領域531Eに設定されるトリガ条件の成立前後におけるデータの保存比率の設定を受け受ける。より具体的には、標準コントローラ100は、トリガ条件が成立してから、設定された保存比率に相当するサンプリング数のデータを収集するまではデータトレースを継続する。
 設定領域531Eは、トリガ条件の設定を受け付ける。設定領域531Eは、例えば、トリガ対象の変数名の指定や、当該変数に対する条件式(例えば、不等式や等式など)などを受け付ける。指定された変数が指定された条件式を満たした場合に、トリガ条件が満たされる。一例として、セーフティ機能に関する変数(例えば、「SS1」など)の立ち上がりなどがトリガ条件として設定される。トリガ条件が満たされると、サンプリング終了条件の監視が開始される。サンプリング終了条件は、設定領域531Cに設定されたサンプリング数と、設定領域531Dに設定された保存比率とに依存する。一例として、サンプリング数が10000回に設定されており、保存比率が50%に設定されている場合、標準コントローラ100は、トリガ条件の成立後において、5000回(=10000回×0.5)のサンプリングを行い、その後、データトレースを停止する。これにより、トリガ条件の成立前における5000回のサンプリングデータと、トリガ条件の成立後における5000回のサンプリングデータとがトレース結果として残ることになる。
 設定領域533は、トレース対象のデータ群の設定を受け付ける。設定領域533は、トレース対象のデータ群を表示するデータリスト533Aと、追加ボタンB1と、削除ボタンB2と、一括追加ボタンB3とを含む。
 ユーザが追加ボタンB1を押下すると、データリスト533Aにデータの設定欄が一行追加される。ユーザは、追加された設定欄にトレース対象のデータの変数名などを入力することができる。
 ユーザは、データリスト533A内のいずれかの設定欄を選択した状態で削除ボタンB2を押下すると、データリスト533Aから選択した設定欄を削除することができる。
 ユーザが一括追加ボタンB3を押下すると、サポート装置500は、データトレース画面530とは別ウィンドウで、トレース対象のデータ群の一括設定画面を開く。図16は、トレース対象のデータ群の一括設定画面540を示す図である。
 一括設定画面540は、トレース対象の軸の選択を受け付ける設定領域542(モータ受付部)と、セーフティ機能の選択を受け付ける設定領域543(機能受付部)と、トレース対象のデータ群を表示する表示領域545とを含む。ここでいう「軸」とは、サーボモータ400による駆動対象の軸のことを言う。サーボモータ400および軸は、1対1に対応するので、トレース対象の軸を選択することは、トレース対象のサーボモータ400を選択することと同意である。サポート装置500は、設定領域542において選択された軸と、設定領域543において選択されたセーフティ機能とに基づいて、トレース対象のデータ群の候補を決定する。
 以下、トレース対象のデータ群の決定方法について説明する。図17は、トレース対象のデータ群の決定方法を概略的に示す概念図である。
 図17に示されるように、サポート装置500は、ハードウェア構成として、プロセッサ502と、ストレージ510とを含む。プロセッサ502は、機能構成として、決定モジュール550を含む。ストレージ510は、収集候補情報5118と、軸情報5120とを含む。
 収集候補情報5118において、制御システム1内における収集候補のデータ群がセーフティドライバ300のセーフティ機能の種別に対応付けている。収集候補情報5118に規定されるセーフティ機能は、例えば、STO(Safe Torque Off)、SS1(Safe Stop 1)、SS2(Safe Stop 2)、SOS(Safe Operating Stop)、SBC(Safe Brake Control)などを含む。
 収集候補情報5118に規定される収集候補の各データ群は、セーフティ機能の実行時に参照される変数を含む。一例として、セーフティ機能「SS1」に関連付けられる変数は、セーフティ機能「SS1」が有効化されたか否かを示すユーザ変数「SS1」、サーボモータ400の速度を示すシステム変数「Act.Vel」、サーボモータ400が通電状態か否かを示すシステム変数「Drvstatus.ServoOn」などを含む。
 また、収集候補情報5118に規定される収集候補の各データ群は、セーフティ機能の実行時に参照されるセーフティパラメータを含む。一例として、セーフティ機能「SS1」に関連付けられるセーフティパラメータは、「N_Zero_SS1」と、「-N_Zero_SS1」と、「T_L_SS1」と、「T_SS1」とを含む。
 「N_Zero_SS1」は、サーボモータ400の状態値の上限値を示す。「-N_Zero_SS1」は、サーボモータ400の状態値の下限値を示す。
 「T_L_SS1」は、セーフティドライバ300の状態値が上限値「N_Zero_SS1」と等しくなってからサーボモータ400の駆動を強制的に停止するまでの停止猶予時間を示す。すなわち、セーフティ機能「SS1」の仕様を満たすためには、サーボモータ400の状態値が、停止猶予時間「T_L_SS1」内に、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の範囲内に収められる必要がある。
 「T_SS1」は、セーフティ機能「SS1」の実行が開始されてからサーボモータ400の駆動を強制的に停止するまでの停止猶予時間を示す。すなわち、セーフティ機能「SS1」の仕様を満たすためには、サーボモータ400の状態値は、停止猶予時間「T_SS1」内に、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の範囲内に収められる必要がある。
 軸情報5120は、サポート装置500に対して設定された軸設定を含む。より具体的には、ユーザは、標準制御プログラム1104の設計時または設計前に、サーボモータ400毎に駆動対象の軸を予め設定する。この設定に基づいて、サポート装置500は、設定された軸に対応する構造体をシステム変数として生成する。ユーザは、生成された構造体を用いて各軸に対するプログラムを記述することができる。軸情報5120は、軸設定時に生成された各システム変数(構造体)を規定する。
 決定モジュール550は、設定領域542(図16参照)において選択された軸と、設定領域543(図16参照)において選択されたセーフティ機能との組み合わせに基づいて、収集対象のデータ群を決定する。図17に示されるように、軸選択で「MC_Axis000」が選択され、機能選択で「SS1」が選択されたとする。この場合、決定モジュール550は、収集候補情報5118を参照して、セーフティ機能「SS1」に対応する収集候補のデータ群を特定する。決定モジュール550は、特定したデータ群の内、ユーザ変数「SS1」およびセーフティパラメータ「N_Zero_SS1」,「-N_Zero_SS1」,「T_SS1」については、そのまま収集対象のデータ群5121に含める。一方で、決定モジュール550は、特定したデータ群の内、軸に関するシステム変数「Act.Vel」,「Drvstatus.ServoOn」については構造体変数名「MC_Axis000」を付加し、システム変数「MC_Axis000.Act.Vel」,「MC_Axis000.Drvstatus.ServoOn」として収集対象のデータ群5121に含める。
 再び図16を参照して、決定モジュール550によって決定された収集対象のデータ群5121は、一括設定画面540の表示領域545に表示される。ユーザがOKボタンB10を押下すると、表示領域545に表示されている収集対象のデータ群5121がデータトレース画面530の設定領域533に反映される。また、チェックボックス544がチェックされている状態でOKボタンB10が押下された場合、トレース条件がデータトレース画面530の設定領域531に自動で反映される。より具体的には、異なるトレース条件がセーフティ機能の種別に予め対応付けられており、選択されたセーフティ機能の種別に対応するトレース条件がデータトレース画面530の設定領域531に反映される。例えば、セーフティ機能「SS1」には、保存比率「100%」と、変数「SS1」の「立ち下がり」とがトレース条件として対応付けられているとする。この場合において、セーフティ機能「SS1」が選択されたときには、設定領域531Dには「100%」が自動で設定され、設定領域531Eには変数「SS1」の「立下り」が自動で設定される。
 一方で、ユーザがキャンセルボタンB11を押下すると、一括設定画面540に設定された内容はデータトレース画面530の設定領域533に反映されずに、一括設定画面540が閉じられる。
  (G2.ステップS20)
 再び図14を参照して、ステップS20の処理について説明する。ステップS20の処理は、ステップS22,S24,S26の処理を含む。
 ステップS22において、ユーザは、サポート装置500に対してトレース実行操作を行ったとする。
 ステップS24において、サポート装置500は、上述のデータトレース画面530の設定領域533に設定されている収集対象のデータ群の中から変数を抽出する。
 ステップS26において、サポート装置500は、抽出した変数を収集対象としてトレース実行命令を標準コントローラ100に出力する。当該トレース実行命令は、上述のデータトレース画面530の設定領域531に設定された情報を含む。
  (G3.ステップS30)
 引き続き図14を参照して、ステップS30の処理について説明する。
 ステップS30において、標準コントローラ100は、サポート装置500からトレース実行命令を受け付けたことに基づいて、トレース対象のデータ群のサンプリング処理を開始する。
 図18は、トレース対象のデータ群のサンプリング処理を説明するための図である。図18を参照して、標準コントローラ100のプロセッサ102は、機能モジュールとして、制御モジュール152と、データトレースモジュール154とを含む。
 制御モジュール152は、標準制御プログラム1104に従って予め定められた周期毎にセーフティドライバ300に指令を出力する。セーフティドライバ300は、標準コントローラ100からの指令に従ってサーボモータ400を制御する。
 データトレースモジュール154は、上述のデータトレース画面530の設定領域531に設定されたトレース条件1108に従って、トレース対象のデータ群をサンプリングする。より具体的には、データトレースモジュール154は、予め定められた周期毎にセーフティドライバ300からトレース対象のデータ群を受信し、当該データ群を時刻情報に関連付けた上で記憶領域104Aに順次書き込む。記憶領域104Aは、標準コントローラ100内の揮発性の記憶領域である。記憶領域104Aは、例えば、メインメモリ104(図3参照)内で確保されている。トレース対象のデータ群のサンプリング数が設定されている上限値に達した場合には、データトレースモジュール154は、記憶領域104Aに格納されているデータ群の内、最も古いデータ群から順に新しいデータ群で上書きする。
  (G4.ステップS40)
 再び図14を参照して、ステップS40の処理について説明する。ステップS40の処理は、ステップS42,S44,S46,S48の処理を含む。
 ステップS42において、ユーザは、上述のデータトレース画面530の設定領域531Eに設定したトリガ条件を成立させるための入力(以下、「トリガ入力」ともいう。)をセーフティデバイス240に対して行う。なお、ユーザは、トリガ条件を成立させるための入力をセーフティデバイス240に対して行う代わりに、サポート装置500に対して行ってもよい。この場合、ユーザは、サポート装置500上でトリガ条件に係る変数の値を変更することでトリガ条件を成立させることができる。
 ステップS44において、セーフティデバイス240は、ステップS42でのトリガ入力をセーフティIOユニット230に出力する。
 ステップS46において、セーフティIOユニット230は、ステップS44で受け付けたトリガ入力に応じた信号をセーフティコントローラ200に出力する。
 ステップS48において、セーフティコントローラ200は、ステップS46で受け付けた信号に応じたセーフティ機能を有効化する。当該有効化は、セーフティ機能のON/OFFを示す変数を書き換えることで実現される。ステップS48の例では、変数「SS1」をONからOFFに設定することで、セーフティ機能「SS1」が有効化されている。
  (G5.ステップS50)
 引き続き図14を参照して、ステップS50の処理について説明する。
 上述のデータトレース画面530の設定領域531Eにおいて変数「SS1」の立ち下がりがトリガ条件として設定されているとする。この場合、ステップS50において、標準コントローラ100は、変数「SS1」がONからOFFに変化したことに基づいて、トレース対象のデータ群の保存処理を実行する。
 図18を参照して、ステップS50における保存処理について説明する。データトレースモジュール154は、上述のデータトレース画面530の設定領域531Cにおいて設定されたサンプリング数の上限値と、設定領域531Dにおいて設定された保存比率とを取得し、サンプリング数の保存比率に相当する残りサンプリング数を算出する。一例として、保存比率が50%に設定されており、サンプリング数の上限値が10000回に設定されている場合には、標準コントローラ100は、残りサンプリング数を5000回(=10000回×0.5)とする。データトレースモジュール154は、トリガ条件が成立してから、残りサンプリング数の5000回のサンプリングを継続し、その後、サンプリングを停止する。これにより、トリガ条件の成立前における5000回のサンプリングデータと、トリガ条件の成立後における5000回のサンプリングデータとが記憶領域104Aに残ることになる。
 その後、データトレースモジュール154は、揮発性の記憶領域104Aに保存されているデータ群を不揮発性の記憶領域114Aにコピーする。これにより、トレース結果DTが不揮発性の記憶領域114Aに保存される。記憶領域114Aは、標準コントローラ100のストレージ110内に確保されていてもよいし、外部のメモリカード114内に確保されていてもよい。
  (G6.ステップS60)
 再び図14を参照して、ステップS60の処理について説明する。ステップS60の処理は、ステップS61~S67の処理を含む。
 ステップS61において、サポート装置500は、トレース結果DTの取得要求を標準コントローラ100に送信する。
 ステップS62において、標準コントローラ100は、当該取得要求を受信したことに基づいて、トレース結果DTをサポート装置500に送信する。
 ステップS63において、サポート装置500は、取得したトレース結果DTに基づいて、表示対象の時間範囲を決定する。一例として、サポート装置500は、トレース結果DTに含まれる時間情報の内、最も古い時間情報から最新の時間情報までを表示対象の時間範囲として決定する。
 ステップS64において、サポート装置500は、上述のデータトレース画面530の設定領域533に設定されている収集対象のデータ群の中からセーフティパラメータSPを抽出する。
 ステップS65において、サポート装置500は、抽出したセーフティパラメータの取得要求を標準コントローラ100を介してセーフティドライバ300に出力する。
 ステップS66において、セーフティドライバ300は、受信した取得要求に対応するセーフティパラメータSPをサポート装置500に送信する。
 なお、取得対象のセーフティパラメータがサポート装置500内(例えば、上述のプロジェクトデータ5106内)にキャッシュされている場合には、ステップS65,S66の通信は、必ずしも行われる必要はない。この場合、サポート装置500は、ステップS65,S66でセーフティドライバ300と通信を行わずに、キャッシュされているセーフティパラメータを利用する。
 ステップS67において、サポート装置500は、ステップS62で受信したトレース結果DTと、ステップS66で受信したセーフティパラメータSPとをデータトレースの実行結果として表示する。このように、サポート装置500は、収集対象のデータ群に含まれるセーフティパラメータSPをセーフティドライバ300から取得し、収集対象のデータ群に含まれる状態値のトレース結果DTを標準コントローラ100のデータトレースモジュール154から取得する。
 図19を参照して、ステップS67における表示処理について詳細に説明する。図19は、図15に示されるデータトレース画面530の表示領域535を表した図である。
 図19に示されるように、サポート装置500は、横軸が時間を示し、縦軸がセーフティドライバ300の状態値の大きさを示すグラフ上にトレース結果DTを表わすとともに、当該グラフ上にセーフティパラメータSPを表わす。なお、図19の例では、グラフの横軸に時間が示され、グラフの縦軸に状態値の大きさが示されているが、グラフの横軸に状態値の大きさが示され、グラフの縦軸に時間が示されてもよい。
 図19の例では、トレース結果DTとして、変数「SS1」の推移と、変数「MC_Axis000.Act.Vel」の推移と、変数「MC_Axis000.Drvstatus.ServoOn」の推移とが示されている。また、セーフティパラメータSPとして、「N_Zero_SS1」と、「-N_Zero_SS1」と、「T_SS1」と、「T_L_SS1」とが示されている。
 セーフティパラメータ「N_Zero_SS1」は、セーフティドライバ300の状態値の上限値を示す。セーフティパラメータ「-N_Zero_SS1」は、セーフティドライバ300の状態値の下限値を示す。上限値および下限値が表示されることで、ユーザは、セーフティドライバ300の状態値が上限値および下限値の範囲内に収まっているか否かを容易に判断することができる。
 典型的には、サポート装置500は、グラフの縦軸に直交するように上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」を表わす。これにより、ユーザは、セーフティドライバ300の状態値が上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の範囲内に収まっているか否かをさらに容易に判断することが可能になる。なお、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の表示態様は、図19の例に限定されない。例えば、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」は、単に数値で示されてもよい。
 また、サポート装置500は、トレース結果DTに重ねて縦軸AX1~AX4を表示する。縦軸AX1は、上述のデータトレース画面530の設定領域531Eに設定されたトリガ条件が成立したタイミングを示す。当該タイミングは、セーフティ機能「SS1」の実行指令が発せられたタイミングと同意である。縦軸AX1は、時間軸に直交するように表示される。
 縦軸AX2は、セーフティドライバ300の状態値が上限値「N_Zero_SS1」と等しくなったタイミングを示す。縦軸AX2は、時間軸に直交するように表示される。
 縦軸AX3は、縦軸AX2が示すタイミングから、セーフティパラメータ「T_L_SS1」が示す停止猶予時間が経過したタイミングに相当する。縦軸AX3は、時間軸に直交するように表示される。
 縦軸AX4は、縦軸AX1が示すタイミングから、セーフティパラメータ「T_SS1」が示す停止猶予時間が経過したタイミングに相当する。縦軸AX4は、時間軸に直交するように表示される。
 典型的には、トレース結果DTおよびセーフティパラメータSPは、単位を合わせた上で表示される。より具体的には、サポート装置500は、トレース結果DTが示す状態値の単位と、セーフティパラメータSPが示す単位とを統一するための単位変換表5122(図6参照)を予め保持している。サポート装置500は、単位変換表5122に基づいて、トレース結果DTが示す状態値の単位と、セーフティパラメータSPが示す単位とを揃える。単位が揃えられることで、ユーザは、トレース結果DTが示す状態値と、セーフティパラメータSPとを容易に比較することが可能になる。
 なお、単位変換は、必ずしもサポート装置500によって実行される必要はなく、標準コントローラ100またはセーフティドライバ300によって実行されてもよい。ある局面において、単位変換表5122は、標準コントローラ100に格納される。この場合、標準コントローラ100は、単位変換表5122に基づいて、ステップS26で指定された単位に合うようにトレース結果DTを単位変換し、ステップS62で単位変換後のトレース結果DTをサポート装置500に送信する。他の局面において、単位変換表5122は、セーフティドライバ300に格納される。この場合、セーフティドライバ300は、単位変換表5122に基づいて、ステップS65で指定された単位に合うようにセーフティパラメータSPを単位変換し、ステップS66で単位変換後のセーフティパラメータSPをサポート装置500に送信する。
 <H.変形例>
 図20~図22を参照して、図1に示される制御システム1の変形例について説明する。
 図20は、変形例1に従う制御システム1Aを示す図である。図1に示される制御システム1においては、標準コントローラ100およびセーフティコントローラ200は、フィールドネットワーク2で接続されていた。これに対して、変形例1に従う制御システム1Aにおいては、標準コントローラ100およびセーフティコントローラ200が内部バスを介して接続される。制御システム1Aのその他の点については制御システム1と同じであるので、それらの説明については繰り返さない。
 図21は、変形例2に従う制御システム1Bを示す図である。図1に示される制御システム1においては、トレース対象のデータ群を格納するための記憶領域104A,114Aと、データトレースモジュール154とが標準コントローラ100内に設けられていた。これに対して、変形例2に従う制御システム1Bにおいては、記憶領域104A,114Aとデータトレースモジュール154とが専用のトレースユニット180内に設けられる。トレースユニット180は、標準コントローラ100、セーフティコントローラ200、および安全I/O230と内部バスを介して接続される。制御システム1Bのその他の点については制御システム1と同じであるので、それらの説明については繰り返さない。
 図22は、変形例3に従う制御システム1Cを示す図である。図1に示される制御システム1においては、サポート装置500がネットワーク3を介して標準コントローラ100に接続されていた。これに対して、変形例3に従う制御システム1Cにおいては、サポート装置500は、ネットワーク3Aを介してトレースユニット180に直接的に接続される。制御システム1Cのその他の点については制御システム1と同じであるので、それらの説明については繰り返さない。
 <I.付記>
 以上のように、本実施形態は以下のような開示を含む。
 [構成1]
 制御システム(1)であって、
 第1のコントローラ(100)と、
 前記第1のコントローラ(100)からの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)とを備え、前記ドライブ装置(300)は、モータ(400)に対する複数のセーフティ機能を有しており、
 実行するセーフティ機能の種類に応じた第2の指令を前記ドライブ装置(300)に送信する第2のコントローラ(200)と、
 前記第1の指令に応じて変化する、前記モータ(400)の動作状態を示す状態値をトレースするためのデータトレースモジュール(154)と、
 前記制御システム(1)内における収集対象のデータ群の設定を受け付けるためのサポート装置(500)とをさらに備え、前記収集対象のデータ群は、前記モータ(400)の動作状態を示す状態値を含み、
 前記サポート装置(500)は、
  前記制御システム(1)内における収集候補のデータ群を前記複数のセーフティ機能の種別に対応付けている収集候補情報を格納するためのストレージ(510)と、
  前記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるための機能受付部(543)と、
  前記収集候補情報に規定されている複数のデータ群の内、前記一のセーフティ機能に対応付けられている収集候補のデータ群を前記収集対象のデータ群として出力するための出力部(508)とを含む、制御システム。
 [構成2]
 前記収集候補情報において前記複数のセーフティ機能の種別に対応付けられている各データ群は、対応付けられているセーフティ機能の実行時に参照されるセーフティパラメータを含む、構成1に記載の制御システム。
 [構成3]
 前記サポート装置(500)は、
  前記収集対象のデータ群に含まれる前記セーフティパラメータを前記ドライブ装置(300)から取得し、
  前記収集対象のデータ群に含まれる前記状態値のトレース結果を前記データトレースモジュール(154)から取得する、構成2に記載の制御システム。
 [構成4]
 前記セーフティパラメータは、前記状態値の下限値と前記状態値の上限値とを含む、構成2または3に記載の制御システム。
 [構成5]
 前記セーフティパラメータは、前記ドライブ装置(300)が前記第2の指令を受けてから前記モータ(400)の駆動を停止するまでの停止猶予時間を含む、構成2~4のいずれか1項に記載の制御システム。
 [構成6]
 前記制御システム(1)は、前記ドライブ装置(300)を複数備えており、
 複数の前記ドライブ装置(300)は、それぞれ、異なるモータ(400)を駆動し、
 前記サポート装置(500)は、さらに、複数の前記モータ(400)の中から一のモータ(400)の選択を受け付けるためのモータ受付部を含み、
 前記出力部(508)によって出力される前記収集対象のデータ群は、前記一のセーフティ機能と前記一のモータ(400)との組み合わせに基づいて決定される、構成1~5のいずれか1項に記載の制御システム。
 [構成7]
 前記複数のセーフティ機能のそれぞれには、前記データトレースモジュールによる前記状態値のトレース条件が予め対応付けられており、
 前記出力部(508)は、複数の前記トレース条件の内、前記一のセーフティ機能に対応付けられているトレース条件をさらに出力する、構成1~6のいずれか1項に記載の制御システム。
 [構成8]
 制御システム(1)に接続されるサポート装置(500)であって、
 前記制御システム(1)は、
  第1のコントローラ(100)と、
  前記第1のコントローラ(100)からの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)とを備え、前記ドライブ装置(300)は、モータ(400)に対する複数のセーフティ機能を有しており、
 前記制御システム(1)は、さらに、
  実行するセーフティ機能の種類に応じた第2の指令を前記ドライブ装置(300)に送信する第2のコントローラ(200)と、
  前記第1の指令に応じて変化する、前記モータ(400)の動作状態を示す状態値をトレースするためのデータトレースモジュール(154)とをさらに備え、
 前記サポート装置(500)は、
  前記制御システム(1)内における収集対象のデータ群の設定を受け付けるデータ受付部を備え、前記収集対象のデータ群は、前記状態値を含み、
  前記制御システム(1)内における収集候補のデータ群を前記複数のセーフティ機能の種別に対応付けている収集候補情報を格納するためのストレージ(510)と、
  前記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるための機能受付部(543)と、
  前記収集候補情報に規定されている複数のデータ群の内、前記一のセーフティ機能に対応付けられている収集候補のデータ群を前記収集対象のデータ群として出力するための出力部(508)とを備える、サポート装置。
 [構成9]
 制御システム(1)に接続されるコンピュータで実行されるサポートプログラムであって、
 前記制御システム(1)は、
  第1のコントローラ(100)と、
  前記第1のコントローラ(100)からの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)とを備え、前記ドライブ装置(300)は、モータ(400)に対する複数のセーフティ機能を有しており、
 前記制御システム(1)は、さらに、
  実行するセーフティ機能の種類に応じた第2の指令を前記ドライブ装置(300)に送信する第2のコントローラ(200)と、
  前記第1の指令に応じて変化する、前記モータ(400)の動作状態を示す状態値をトレースするためのデータトレースモジュール(154)とをさらに備え、
 前記サポートプログラムは、前記コンピュータに、
  前記制御システム(1)内における収集対象のデータ群の設定を受け付けるステップを実行させ、前記収集対象のデータ群は、前記状態値を含み、
  前記制御システム(1)内における収集候補のデータ群を前記複数のセーフティ機能の種別に対応付けている収集候補情報を取得するステップ(S10)と、
  前記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるステップ(S10)と、
  前記収集候補情報に規定されている複数のデータ群の内、前記一のセーフティ機能に対応付けられている収集候補のデータ群を前記収集対象のデータ群として出力するステップ(S10)とを実行させる、サポートプログラム。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1,1A,1B,1C 制御システム、2 フィールドネットワーク、3,3A ネットワーク、4 論理コネクション、100 標準コントローラ、102,202,312,314,502 プロセッサ、104,204,316,504 メインメモリ、104A,114A 記憶領域、106 上位ネットワークコントローラ、108,208,302 フィールドネットワークコントローラ、110,210,320,510 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118,218,518 プロセッサバス、120,220,520 USBコントローラ、150 標準制御、152 制御モジュール、154 データトレースモジュール、170,270,370 プロセスデータ通信レイヤ、172,272 管理モジュール、174,274,374 プロセスデータ、180 トレースユニット、200 セーフティコントローラ、216 セーフティローカルバスコントローラ、230 セーフティIOユニット、240 セーフティデバイス、250 セーフティ機能、276,376 論理コネクションレイヤ、278 セーフティ機能状態管理エンジン、300 セーフティドライバ、310 制御ユニット、311 制御装置、330 ドライブ回路、332 フィードバック受信回路、350 サーボ制御、352 サーボ制御実行エンジン、360 モーションセーフティ機能、362 モーションセーフティ機能実行エンジン、378 モーションセーフティ機能状態管理エンジン、390 パラメータセット、400 サーボモータ、402 三相交流モータ、404 エンコーダ、500 サポート装置、506 入力部、508 出力部、512 光学ドライブ、514 記録媒体、530 データトレース画面、531,531A,531B,531C,531D,531E,533,542,543 設定領域、533A データリスト、535,545 表示領域、540 一括設定画面、544 チェックボックス、550 決定モジュール、600 通信フレーム、610,611,612,613,614,615,620,621,622,623,624,6121,6122,6131,6132,6141,6142,6151,6152 データ領域、630 セーフティ通信フレーム、1102,2102 システムプログラム、1104 標準制御プログラム、1106,2106,3206 設定情報、1108 トレース条件、2104 セーフティプログラム、3202 サーボ制御プログラム、3204 モーションセーフティプログラム、5104 サポートプログラム、5106 プロジェクトデータ、5108 標準制御ソースプログラム、5110 標準コントローラ設定情報、5112 セーフティソースプログラム、5114 セーフティコントローラ設定情報、5116 セーフティドライバ設定情報、5118 収集候補情報、5120 軸情報、5121 収集対象のデータ群、5122 単位変換表。

Claims (9)

  1.  制御システムであって、
     第1のコントローラと、
     前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備え、前記ドライブ装置は、モータに対する複数のセーフティ機能を有しており、
     実行するセーフティ機能の種類に応じた第2の指令を前記ドライブ装置に送信する第2のコントローラと、
     前記第1の指令に応じて変化する、前記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールと、
     前記制御システム内における収集対象のデータ群の設定を受け付けるためのサポート装置とをさらに備え、前記収集対象のデータ群は、前記モータの動作状態を示す状態値を含み、
     前記サポート装置は、
      前記制御システム内における収集候補のデータ群を前記複数のセーフティ機能の種別に対応付けている収集候補情報を格納するためのストレージと、
      前記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるための機能受付部と、
      前記収集候補情報に規定されている複数のデータ群の内、前記一のセーフティ機能に対応付けられている収集候補のデータ群を前記収集対象のデータ群として出力するための出力部とを含む、制御システム。
  2.  前記収集候補情報において前記複数のセーフティ機能の種別に対応付けられている各データ群は、対応付けられているセーフティ機能の実行時に参照されるセーフティパラメータを含む、請求項1に記載の制御システム。
  3.  前記サポート装置は、
      前記収集対象のデータ群に含まれる前記セーフティパラメータを前記ドライブ装置から取得し、
      前記収集対象のデータ群に含まれる前記状態値のトレース結果を前記データトレースモジュールから取得する、請求項2に記載の制御システム。
  4.  前記セーフティパラメータは、前記状態値の下限値と前記状態値の上限値とを含む、請求項2または3に記載の制御システム。
  5.  前記セーフティパラメータは、前記ドライブ装置が前記第2の指令を受けてから前記モータの駆動を停止するまでの停止猶予時間を含む、請求項2~4のいずれか1項に記載の制御システム。
  6.  前記制御システムは、前記ドライブ装置を複数備えており、
     複数の前記ドライブ装置は、それぞれ、異なるモータを駆動し、
     前記サポート装置は、さらに、複数の前記モータの中から一のモータの選択を受け付けるためのモータ受付部を含み、
     前記出力部によって出力される前記収集対象のデータ群は、前記一のセーフティ機能と前記一のモータとの組み合わせに基づいて決定される、請求項1~5のいずれか1項に記載の制御システム。
  7.  前記複数のセーフティ機能のそれぞれには、前記データトレースモジュールによる前記状態値のトレース条件が予め対応付けられており、
     前記出力部は、複数の前記トレース条件の内、前記一のセーフティ機能に対応付けられているトレース条件をさらに出力する、請求項1~6のいずれか1項に記載の制御システム。
  8.  制御システムに接続されるサポート装置であって、
     前記制御システムは、
      第1のコントローラと、
      前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備え、前記ドライブ装置は、モータに対する複数のセーフティ機能を有しており、
     前記制御システムは、さらに、
      実行するセーフティ機能の種類に応じた第2の指令を前記ドライブ装置に送信する第2のコントローラと、
      前記第1の指令に応じて変化する、前記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとをさらに備え、
     前記サポート装置は、
      前記制御システム内における収集対象のデータ群の設定を受け付けるデータ受付部を備え、前記収集対象のデータ群は、前記状態値を含み、
      前記制御システム内における収集候補のデータ群を前記複数のセーフティ機能の種別に対応付けている収集候補情報を格納するためのストレージと、
      前記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるための機能受付部と、
      前記収集候補情報に規定されている複数のデータ群の内、前記一のセーフティ機能に対応付けられている収集候補のデータ群を前記収集対象のデータ群として出力するための出力部とを備える、サポート装置。
  9.  制御システムに接続されるコンピュータで実行されるサポートプログラムであって、
     前記制御システムは、
      第1のコントローラと、
      前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置とを備え、前記ドライブ装置は、モータに対する複数のセーフティ機能を有しており、
     前記制御システムは、さらに、
      実行するセーフティ機能の種類に応じた第2の指令を前記ドライブ装置に送信する第2のコントローラと、
      前記第1の指令に応じて変化する、前記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとをさらに備え、
     前記サポートプログラムは、前記コンピュータに、
      前記制御システム内における収集対象のデータ群の設定を受け付けるステップを実行させ、前記収集対象のデータ群は、前記状態値を含み、
      前記制御システム内における収集候補のデータ群を前記複数のセーフティ機能の種別に対応付けている収集候補情報を取得するステップと、
      前記複数のセーフティ機能の中から一のセーフティ機能の選択を受け付けるステップと、
      前記収集候補情報に規定されている複数のデータ群の内、前記一のセーフティ機能に対応付けられている収集候補のデータ群を前記収集対象のデータ群として出力するステップとを実行させる、サポートプログラム。
PCT/JP2019/037855 2018-09-28 2019-09-26 制御システム、サポート装置、サポートプログラム WO2020067287A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP19864316.5A EP3859453B1 (en) 2018-09-28 2019-09-26 Control system
CN201980051798.3A CN112567299A (zh) 2018-09-28 2019-09-26 控制系统、支持装置、支持程序
US17/267,038 US11340561B2 (en) 2018-09-28 2019-09-26 Control system, support device, and storage medium

Applications Claiming Priority (2)

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

Publications (1)

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

Family

ID=69950728

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/037855 WO2020067287A1 (ja) 2018-09-28 2019-09-26 制御システム、サポート装置、サポートプログラム

Country Status (5)

Country Link
US (1) US11340561B2 (ja)
EP (1) EP3859453B1 (ja)
JP (1) JP7024678B2 (ja)
CN (1) CN112567299A (ja)
WO (1) WO2020067287A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017079009A (ja) * 2015-10-21 2017-04-27 株式会社キーエンス プログラマブル・ロジック・コントローラのモニタ装置
JP2018005453A (ja) * 2016-06-30 2018-01-11 オムロン株式会社 セーフティシステム、プログラム、および方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004055971B8 (de) * 2004-11-19 2012-06-21 Kw-Software Gmbh Verfahren und Vorrichtung zur sicheren Parametierung gemäß IEC 61508 SIL 1 bis 3 oder EN 954-1 Kategorie 1 bis 4
JP6477553B2 (ja) * 2016-03-14 2019-03-06 オムロン株式会社 プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法
JP6919186B2 (ja) * 2016-12-14 2021-08-18 オムロン株式会社 制御システム、制御プログラムおよび制御方法
JP6369590B1 (ja) * 2017-04-11 2018-08-08 株式会社安川電機 モータ制御システム、モータ制御装置、及び安全機能設定方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017079009A (ja) * 2015-10-21 2017-04-27 株式会社キーエンス プログラマブル・ロジック・コントローラのモニタ装置
JP2018005453A (ja) * 2016-06-30 2018-01-11 オムロン株式会社 セーフティシステム、プログラム、および方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"IEC 61800-5-2:2016 Adjustable speed electrical power drive systems-Part 5-2: Safety requirements-Functional", INTERNATIONAL ELECTROTECHNICAL COMMISSION, 18 April 2016 (2016-04-18)
See also references of EP3859453A4

Also Published As

Publication number Publication date
EP3859453A4 (en) 2022-06-22
JP7024678B2 (ja) 2022-02-24
US20210302920A1 (en) 2021-09-30
CN112567299A (zh) 2021-03-26
EP3859453B1 (en) 2024-04-03
US11340561B2 (en) 2022-05-24
EP3859453A1 (en) 2021-08-04
JP2020052899A (ja) 2020-04-02

Similar Documents

Publication Publication Date Title
CN109983412B (zh) 控制装置、计算机可读记录介质以及控制方法
JP2018097663A (ja) 制御システム、制御プログラムおよび制御方法
CN110456707B (zh) 控制装置
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
JP7294085B2 (ja) 制御システム、制御装置および制御方法
WO2020067286A1 (ja) 制御システム、サポート装置、サポートプログラム
WO2021065032A1 (ja) 制御システム、サポート装置およびサポートプログラム
WO2013145940A1 (ja) 情報処理装置、情報処理方法、およびプログラム
US11855907B2 (en) Robot control system and control method
WO2020067287A1 (ja) 制御システム、サポート装置、サポートプログラム
WO2020105372A1 (ja) 制御システム、制御方法、ドライブ装置
JP7200580B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7115195B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7087952B2 (ja) 制御システム、サポート装置、サポートプログラム
JP6962303B2 (ja) 制御システム、サポート装置、サポートプログラム
WO2020071373A1 (ja) 制御システム、サポート装置およびプログラム
JP2021142625A (ja) ロボット制御システムおよび制御方法
JP2020057210A (ja) 制御システム、サポート装置およびプログラム
JP2020057152A (ja) 制御システム、サポート装置、およびサポートプログラム

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019864316

Country of ref document: EP

Effective date: 20210428