Patent Description:
A programmable logic controller (PLC) is employed as a control device configured to control a facility or a machine. In addition to the PLC, a safety system including a safety controller and various safety components may also be arranged.

With advance of information and communication technology (ICT), such an industrial controller has also increasingly been networked. In a known configuration, as disclosed, for example, in PTL <NUM> (<CIT>), in addition to a CPU unit configured to perform computing processing, a communication unit responsible for communication processing is attached. As disclosed in PTL <NUM> (<CIT>), a configuration in which a communication module representing one exemplary IO module is attached separately from a CPU module to perform communication processing is general. Document Omron: "Machine Automation Controller NX-series Safety Control Unit User's Manual", , <NUM> February <NUM> (<NUM>-<NUM>-<NUM>), XP002807853, Retrieved from the Internet: URL:https://www. support-omron. fr/telechargements/documentations/<NUM>-<NUM>-<NUM>%<NUM>-%<NUM>-<NUM>-<NUM>%<NUM>-%<NUM>/Z930-E1-<NUM>+NX%20Safety+User%20Manual. pdf [retrieved on <NUM>-<NUM>-<NUM>] describes a safety controller from Omron that integrates safety into EtherNet/IP and EtherCAT systems.

Normally, in a control operation for controlling an object to be controlled such as a facility or a machine, input and output data (IO data) should periodically be updated. In order to periodically update such IO data, data should periodically be exchanged with a device from which IO data is collected.

In periodically exchanging data over a network, however, there are various restriction factors, and it is not easy to determine to which value a communication cycle time should be set.

An object of the present invention is to provide a configuration in which a settable range of a cycle time of exchange of data with a device can readily be determined.

According to one embodiment of the present invention, a control system is disclosed in claim <NUM>.

According to this embodiment, since the settable range of the cycle time of exchange of data with the device is determined based on contents of processing performed by the control means and settings involved with communication processing, even a user with less knowledge can set an appropriate cycle time.

The determination means may determine the settable range with both of a restriction factor determined in accordance with the contents of processing performed by the control means and a restriction factor determined in accordance with settings involved with communication processing by the communication processing means being reflected. According to this configuration, an appropriate range on which both of the restriction factor determined in accordance with contents of processing performed by the control means and the restriction factor determined in accordance with settings involved with communication processing by the communication processing means are reflected can be determined.

The determination means may determine the settable range based on at least one of the number of connections and a data size of data exchanged with the device. According to this configuration, an appropriate range can be determined in accordance with data exchanged with the device.

The determination means may determine the settable range based on a cycle time of the control operation performed by the control means. According to this configuration, an appropriate range can be determined in accordance with the cycle time of the control operation.

The determination means may determine the settable range based on priority defined for the control operation performed by the control means. According to this configuration, an appropriate range can be determined in accordance with priority defined for the control operation.

The determination means may determine the settable range based on processing capability of the control device. According to this configuration, an appropriate range can be determined in accordance with processing capability of the control device.

The determination means may determine the settable range for each device with which the control device exchanges data. According to this configuration, when data is exchanged with a plurality of devices, a range appropriate for each device can be determined.

Notification means configured to give a notification when a set value of the cycle time of exchange of data with the device is out of the settable range determined by the determination means may further be included. According to this configuration, when a currently set value is out of the settable range of the cycle time, a user can be prompted to make appropriate change.

According to another embodiment of the present invention, a support apparatus directed to a control system including a control device and a device configured to communicate with the control device is provided. The control device includes control means configured to periodically perform a control operation for controlling an object to be controlled and communication processing means configured to perform communication processing for periodically exchanging data with the device. The support apparatus includes providing means configured to provide a development environment for performing at least a part of creation of contents of processing performed by the control means and making of settings involved with communication processing by the communication processing means and determination means configured to determine a settable range of a cycle time of exchange of data with the device based on contents set in the development environment provided by the providing means.

According to yet another embodiment of the present invention, a program is disclosed in claim <NUM>.

According to the present invention, a settable range of a cycle time of exchange of data with a device can readily be determined.

An embodiment of the present invention will be described in detail with reference to the drawings. The same or corresponding elements in the drawings have the same reference characters allotted and description thereof will not be repeated.

An exemplary scene to which the present invention is applied will initially be described with reference to <FIG>.

<FIG> is a diagram for illustrating overview of processing in a control system <NUM> according to the present embodiment. Referring to <FIG>, a control device <NUM> is connected to one or more devices over a process network <NUM>. A hub <NUM> may be arranged in process network <NUM>.

Control device <NUM> periodically performs a control operation for controlling an object to be controlled. Control device <NUM> performs communication processing for periodically exchanging data with the device. In other words, data is periodically exchanged between control device <NUM> and the device.

In consideration of such communication processing, control device <NUM> can determine a settable range of a cycle time (communication cycle time) of exchange of data with the device. Specifically, control device <NUM> calculates a settable communication cycle time in accordance with processing performed in control device <NUM> and settings involved with communication processing.

Calculation of such a settable communication cycle time may be based on restriction factors as below.

Such restriction factors may be determined based on contents set in a development environment provided by a support apparatus as will be described later and a settable communication cycle time may be calculated based on the determined restriction factors.

The "settable range" is a term encompassing a range within which a value of interest can effectively be set, and may encompass not only a case in which both of an upper limit and a lower limit are defined but also a case in which only the lower limit or only the upper limit is defined. In particular in the present embodiment, attention is paid to determination of the lower limit (minimum value).

Principal data transmitted and received between the control device and each device is herein described as a "frame". Transmitted and received data, however, should not be interpreted as being limited by the term "frame", but for example, a case in which data is transmitted and received in a unit of a "packet" or a case in which data is transmitted and received in a unit of a data string that is longer may also be encompassed.

The terms "standard control" and "safety control" are herein used in comparison to each other. "Standard control" is collective denotation of processing for controlling an object to be controlled in accordance with required specifications determined in advance. "Safety control" is collective denotation of processing for preventing human safety from being threatened by a facility or a machine. "Safety control" is designed to meet requirements for performing the safety function defined under IEC <NUM>.

An exemplary configuration of control system <NUM> according to the present embodiment will initially be described. <FIG> is a schematic diagram showing an exemplary configuration of control system <NUM> according to the present embodiment.

Referring to <FIG>, control system <NUM> includes control device <NUM>, one or more remote IO apparatuses <NUM>, and one or more slave devices, by way of example.

Control device <NUM> is a processing entity that performs a control operation, and includes a standard control unit <NUM>, a safety control unit <NUM>, and one or more functional units <NUM>. Standard control unit <NUM> performs a control operation involved with standard control and communication processing as will be described later. Safety control unit <NUM> performs a control operation involved with safety control. Each functional unit <NUM> performs processing in accordance with a function (for example, an input and output function, a position control function, a PID control function, etc.) implemented in each unit. Safety control unit <NUM> can also be regarded as a kind of functional unit <NUM>.

Standard control unit <NUM> is electrically connected to safety control unit <NUM> and functional unit <NUM> through an internal bus <NUM>.

Control device <NUM> (standard control unit <NUM>) is electrically connected to remote IO apparatus <NUM> over a field network <NUM>. Control device <NUM> is communicatively connected further to a safety driver <NUM> which is an exemplary slave device with process network <NUM> and hub <NUM> being interposed.

Field network <NUM> is a communication medium for data transmission for factory automation (FA). A frame can be transmitted over field network <NUM> in each predetermined cycle time, and time of arrival of data at each node within the network is guaranteed. In control system <NUM> according to the present embodiment, EtherCAT® is adopted for field network <NUM> as an exemplary protocol under which such time of arrival of data is guaranteed. Data used for safety control as will be described later may be transmitted in conformity with functional safety over EtherCAT® (FSoE) using EtherCAT®.

Process network <NUM> is a communication medium for data transmission for FA, similarly to field network <NUM>. In control system <NUM> according to the present embodiment, EtherNet/IP™ is adopted for process network <NUM>. Data used for safety control as will be described later may be transmitted in conformity with CIP Safety using EtherNet/IP™.

Control device <NUM> (standard control unit <NUM>) may further be connected to higher-order network <NUM>. Any information processing apparatus such as a gateway or a database server may be connected to higher-order network <NUM>.

Remote IO apparatus <NUM> includes a coupler unit <NUM> and one or more functional units <NUM>. Remote IO apparatus <NUM> collects various types of information from an object to be controlled and transmits them to control device <NUM>, and provides a signal to the control device or performs processing in accordance with an instruction included in data from control device <NUM>.

Coupler unit <NUM> mediates data exchange between control device <NUM> (standard control unit <NUM>) and functional unit <NUM>. In addition, coupler unit <NUM> transmits data received in a frame to functional unit <NUM>, and when coupler unit <NUM> receives data from functional unit <NUM>, it prepares for storage of the received data in a frame that will arrive next.

Functional unit <NUM> is substantially identical to functional unit <NUM> included in control device <NUM>, and performs processing in accordance with a function (for example, an input and output function, a position control function, a PID control function, etc.) implemented in each unit.

Coupler unit <NUM> may also include a safety functional unit <NUM> by way of example of functional unit <NUM>. <FIG> shows an example in which a single remote IO apparatus <NUM> includes safety functional unit <NUM>. Safety functional unit <NUM> performs a function involved with safety control. By way of example, safety functional unit <NUM> is a safety IO unit. The safety IO unit performs an input function to accept a signal from a safety component <NUM> such as an emergency stop button, a safety door switch, or a safety light curtain and/or an output function to provide a signal to safety component <NUM>.

Data may be exchanged between safety control unit <NUM> and safety functional unit <NUM> in conformity with FSoE which represents a kind of peer-to-peer communication using a frame periodically transmitted over field network <NUM>.

<FIG> shows safety driver <NUM> that drives a motor <NUM> as a slave device. Safety driver <NUM> drives connected motor <NUM> in response to an instruction from control device <NUM> (standard control unit <NUM>) and includes also a function as a safety component involved with drive of motor <NUM>. Motor <NUM> is an arbitrary mobile body such as a servo motor, an induction motor, a synchronous motor, or a linear motor.

Safety driver <NUM> exchanges data with control device <NUM> (standard control unit <NUM>) by using connection established therebetween. An example in which CIP Safety is adopted as a protocol for exchange of data will be described below.

A support apparatus <NUM> is directed to control system <NUM>, and provides a user with an environment for creation and debugging of a program to be executed in control device <NUM> (standard control unit <NUM> and safety control unit <NUM>) and for support of various types of settings.

An exemplary hardware configuration of main apparatuses included in control system <NUM> will now be described.

<FIG> is a schematic diagram showing an exemplary hardware configuration of standard control unit <NUM> included in control system <NUM> according to the present embodiment. Referring to <FIG>, standard control unit <NUM> includes a processor <NUM>, a chip set <NUM>, a main memory <NUM>, a storage <NUM>, a network controller <NUM>, a universal serial bus (USB) controller <NUM>, a memory card interface <NUM>, an internal bus controller <NUM>, a field network controller <NUM>, a process network controller <NUM>, a counter <NUM>, and a real time clock (RTC) <NUM>.

Processor <NUM> corresponds to a computing processing unit that performs a control operation or the like, and is configured with a central processing unit (CPU), a micro processing unit (MPU), or a graphics processing unit (GPU). Specifically, processor <NUM> performs an operation involved with standard control and communication processing as will be described later by reading a program (by way of example, a system program and a standard control program (a user program)) stored in storage <NUM>, developing the program on main memory <NUM>, and executing the program. Storage <NUM> is implemented, for example, by a non-volatile storage device such as a hard disk drive (HDD) or a solid state drive (SSD). Main memory <NUM> is implemented by a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM).

Chip set <NUM> performs processing as standard control unit <NUM> as a whole by mediating data exchange between processor <NUM> and each device.

In addition to a system program for performing a basic function, a standard control program for realizing standard control created in conformity with an object to be controlled such as a facility or a machine is stored in storage <NUM>.

Network controller <NUM> exchanges data with an arbitrary information processing apparatus such as a gateway or a database server over higher-order network <NUM>.

USB controller <NUM> exchanges data with support apparatus <NUM> through USB connection.

Memory card interface <NUM> is constructed such that a memory card <NUM> is attachable thereto and detachable therefrom, and allows writing of data into memory card <NUM> and reading of various types of data (a standard control program or trace data) from memory card <NUM>.

Internal bus controller <NUM> corresponds to a communication interface for electrical connection of standard control unit <NUM> to safety control unit <NUM> and functional unit <NUM> through internal bus <NUM>. Internal bus controller <NUM> functions as a communication master for cyclic communication through internal bus <NUM>.

Field network controller <NUM> corresponds to a communication interface for electrical connection between standard control unit <NUM> and remote IO apparatus <NUM> over field network <NUM>. Field network controller <NUM> functions as a communication master for cyclic communication over field network <NUM>.

Process network controller <NUM> corresponds to a communication interface for electrical connection between standard control unit <NUM> and safety driver <NUM> over process network <NUM>. Process network controller <NUM> is responsible for communication control for exchange of data in each predetermined cycle time over process network <NUM>.

Counter <NUM> is used as time reference for managing timing of execution of various programs to be executed in standard control unit <NUM>. RTC <NUM> is a kind of counter with a time counting function and provides current time to processor <NUM> or the like.

Though <FIG> shows an exemplary configuration in which a necessary function is provided by execution of a program by processor <NUM>, a part or the entirety of these provided functions may be performed by using dedicated hardware circuitry (for example, an ASIC or an FPGA). Alternatively, a principal part of standard control unit <NUM> may be implemented by hardware (for example, an industrial personal computer based on a general-purpose personal computer) in accordance with a general-purpose architecture. In this case, using virtualization technology, a plurality of operating systems (OSs) different in application may be executed in parallel and a necessary application may be executed on each OS. A configuration in which a function of a display apparatus or a support apparatus is incorporated in standard control unit <NUM> may be adopted.

<FIG> is a schematic diagram showing an exemplary hardware configuration of safety control unit <NUM> included in control system <NUM> according to the present embodiment. Referring to <FIG>, safety control unit <NUM> includes an internal bus controller <NUM> and a main controller <NUM>.

Internal bus controller <NUM> corresponds to a communication interface for electrical connection between standard control unit <NUM> and safety control unit <NUM> through internal bus <NUM>. Internal bus controller <NUM> functions as a communication slave for participating in data communication through internal bus <NUM>.

Main controller <NUM> includes a processor <NUM>, a main memory <NUM>, and a storage <NUM>. Processor <NUM> corresponds to a computing processing unit that performs a control operation or communication processing and is configured with a CPU, an MPU, or a GPU. Specifically, processor <NUM> carries out safety control or the like by reading a safety program <NUM> stored in storage <NUM>, developing the safety program on main memory <NUM>, and executing the safety program.

Though <FIG> shows an exemplary configuration in which a necessary function is provided by execution of a program by processor <NUM>, a part or the entirety of these provided functions may be performed by using dedicated hardware circuitry (for example, an ASIC or an FPGA).

<FIG> is a schematic diagram showing an exemplary hardware configuration of support apparatus <NUM> included in control system <NUM> according to the present embodiment. Support apparatus <NUM> is implemented by hardware (for example, a general-purpose personal computer) in accordance with a general-purpose architecture by way of example.

Referring to <FIG>, support apparatus <NUM> includes a processor <NUM>, a main memory <NUM>, an input device <NUM>, an output device <NUM>, a storage <NUM>, an optical drive <NUM>, and a USB controller <NUM>. These components are connected to one another through a processor bus <NUM>.

Processor <NUM> is configured with a CPU, an MPU, or a GPU, and performs various types of processing as will be described later by reading a program (an OS <NUM> and a support program <NUM> by way of example) stored in storage <NUM>, developing the program on main memory <NUM>, and executing the program.

Main memory <NUM> is implemented by a volatile storage device such as a DRAM or an SRAM. Storage <NUM> is implemented by a non-volatile storage device such as an HDD or an SSD.

In addition to OS <NUM> for performing a basic function, support program <NUM> for providing a function as support apparatus <NUM> is stored in storage <NUM>. Support program <NUM> provides a development environment for performing at least a part of creation of contents of processing performed by standard control unit <NUM> and making of settings involved with communication processing.

Furthermore, project data <NUM> created by a user in the development environment provided by execution of support program <NUM> is stored in storage <NUM>.

Support apparatus <NUM> provides the development environment that allows, in an integrated manner, settings for each device included in control system <NUM> and creation of a program to be executed in each device. Project data <NUM> includes data generated in such an integrated development environment. Typically, project data <NUM> includes a standard control source program <NUM>, standard controller setting information <NUM>, a safety source program <NUM>, safety controller setting information <NUM>, and safety driver setting information <NUM>.

Standard control source program <NUM> is converted to an object code, then transmitted to standard control unit <NUM>, and stored as a standard control program <NUM>. Similarly, standard controller setting information <NUM> is also transmitted to standard control unit <NUM>.

Safety source program <NUM> is converted to an object code, then transmitted to safety control unit <NUM>, and stored as safety program <NUM> (see <FIG>). Similarly, safety controller setting information <NUM> is also transmitted to safety control unit <NUM>.

Safety driver setting information <NUM> is transmitted to safety driver <NUM>.

Input device <NUM> is constituted of a keyboard, a mouse, and the like, and accepts an operation by a user. Output device <NUM> is constituted of a display, various indicators, a printer, and the like, and provides a result of processing from processor <NUM>.

USB controller <NUM> exchanges data with standard control unit <NUM> and the like through USB connection.

Support apparatus <NUM> includes optical drive <NUM>. A program stored in a recording medium <NUM> in which a computer readable program is stored in a non-transitory manner (for example, an optical recording medium such as a digital versatile disc (DVD)) is read from the recording medium and installed in storage <NUM> or the like.

Though support program <NUM> and the like executed in support apparatus <NUM> may be installed from computer readable recording medium <NUM>, it may be installed as being downloaded from a server apparatus over a network. A function provided by support apparatus <NUM> according to the present embodiment may be performed by using a part of a module provided by the OS.

Though <FIG> shows an exemplary configuration in which a necessary function as support apparatus <NUM> is provided by execution of a program by processor <NUM>, a part or the entirety of these provided functions may be performed by using dedicated hardware circuitry (for example, an ASIC or an FPGA).

While control system <NUM> is operating, support apparatus <NUM> may be detached from standard control unit <NUM>.

Communication processing in control device <NUM> will now be described.

<FIG> is a schematic diagram for illustrating FSoE in control system <NUM> according to the present embodiment. <FIG> shows an example in which data collected by safety functional unit <NUM> connected through a bus to coupler unit <NUM> is transmitted to safety control unit <NUM> in a configuration in which standard control unit <NUM> and coupler unit <NUM> are connected to each other over field network <NUM>.

A frame in conformity with EtherCAT® is periodically transmitted to field network <NUM>. Standard control unit <NUM> obtains input data collected by the functional unit through frames periodically transmitted over field network <NUM>. Standard control unit <NUM> performs a control operation based on obtained input data and transmits in frames, a control instruction (output data) obtained by performing the control operation to the functional unit.

More specifically, standard control unit <NUM> periodically executes a control task <NUM> in correspondence with a frame transmission cycle time over field network <NUM>. In other words, standard control unit <NUM> implementing control device <NUM> periodically performs a control operation for controlling an object to be controlled. In each cycle of execution (task cycle time) of control task <NUM>, IO refresh processing <NUM>, user program execution processing <NUM> such as a sequence operation, motion program execution processing <NUM>, and the like is performed. IO refresh processing <NUM> is processing for updating data included in a frame transmitted over field network <NUM> to a state that can be referred to in standard control unit <NUM>. The frame transmission cycle time is normally set to coincide with the task cycle time in standard control unit <NUM>.

Data transmitted in conformity with FSoE is transmitted to standard control unit <NUM> in frames transmitted over field network <NUM>, and thereafter transferred to safety control unit <NUM> through internal bus <NUM> (see <FIG> and <FIG>) under the control by standard control unit <NUM>. In other words, standard control unit <NUM> mediates data for implementing FSoE.

Processing for transferring data transmitted over field network <NUM> to safety control unit <NUM> and processing for storing data transmitted from safety control unit <NUM> in frames and sending the frames over field network <NUM> (such processing being also referred to as "FSoE data loopback processing" below) is performed as a part of IO refresh processing <NUM> included in control task <NUM>.

As FSoE data loopback processing is performed as a part of IO refresh processing <NUM>, responsiveness of FSoE can be secured. In other words, a time period required for exchange of data in conformity with FSoE is guaranteed as a time period determined in accordance with the task cycle time (that is, the transmission cycle time).

<FIG> is a schematic diagram for illustrating CIP Safety in control system <NUM> according to the present embodiment. <FIG> shows an example in which data is exchanged between safety control unit <NUM> and safety driver <NUM> in a configuration in which standard control unit <NUM> and safety driver <NUM> representing an exemplary slave device are connected to each other over process network <NUM>.

Under CIP Safety, a frame (a CIP Safety frame) is exchanged for each connection defined in advance between standard control unit <NUM> and each slave device (safety driver <NUM> in the example shown in <FIG>). An expected packet interval (EPI) is set in advance as a cycle time within which exchange of a frame for each connection can be completed. In other words, all CIP Safety frames corresponding to each connection are generated and transmitted at least once within a corresponding EPI. The EPI may be defined for each communication counterpart device (target device).

Standard control unit <NUM> transfers a frame received from each slave device to safety control unit <NUM> through internal bus <NUM>. In other words, standard control unit <NUM> functions as a bridge that mediates frame transfer between each slave device and safety control unit <NUM>. The function as the bridge is performed as communication processing <NUM> independent of control task <NUM>.

In communication processing <NUM>, a CIP Safety communication service <NUM> for processing a CIP Safety frame in conformity with CIP Safety is performed.

By separating communication processing <NUM> from control task <NUM>, responsiveness of CIP Safety can be secured without being affected by a time period required for user program execution processing <NUM> performed in control task <NUM>. In other words, by performing control task <NUM> and communication processing <NUM> independently of each other, both of a shorter cycle time of execution of the standard control program (user program) in standard control unit <NUM> and improvement in responsiveness of CIP Safety can be achieved.

An exemplary implementation of CIP Safety in control device <NUM> will now be described.

<FIG> is a schematic diagram showing an exemplary functional configuration for implementing CIP Safety in control device <NUM> according to the present embodiment. Referring to <FIG>, control device <NUM> includes CIP Safety communication service <NUM>, a CIP Safety protocol stack <NUM>, and a safety control executer <NUM> as functions in connection with CIP Safety.

CIP Safety communication service <NUM> corresponds to a processing module configured to process a CIP Safety frame. Specifically, CIP Safety communication service <NUM> receives a CIP Safety frame from a slave device and provides the received CIP Safety frame to CIP Safety protocol stack <NUM>. CIP Safety communication service <NUM> transmits the CIP Safety frame to a destination slave device in response to an instruction from CIP Safety protocol stack <NUM>.

CIP Safety protocol stack <NUM> manages exchange of a CIP Safety frame in conformity with CIP Safety. Specifically, CIP Safety protocol stack <NUM> analyzes the provided CIP Safety frame and provides data (input data) included therein to safety control executer <NUM>. CIP Safety protocol stack <NUM> generates a CIP Safety frame in accordance with a control instruction (output data) from safety control executer <NUM> and provides the CIP Safety frame to CIP Safety communication service <NUM>.

Safety control executer <NUM> calculates a control instruction (output data) by performing a control operation involved with safety control based on the input data from CIP Safety protocol stack <NUM>.

<FIG> is a schematic diagram showing an exemplary implementation of the functional configuration shown in <FIG>. <FIG> shows an exemplary configuration including standard control unit <NUM> and safety control unit <NUM>. In this exemplary configuration, CIP Safety communication service <NUM> is implemented in standard control unit <NUM> and CIP Safety protocol stack <NUM> and safety control executer <NUM> are implemented in safety control unit <NUM>.

<FIG> shows an exemplary configuration in which all functions are implemented in safety control unit <NUM>. In the exemplary configuration, CIP Safety communication service <NUM>, CIP Safety protocol stack <NUM>, and safety control executer <NUM> are implemented in safety control unit <NUM>.

Without being limited to the exemplary configuration shown in <FIG>, any form of implementation may be adopted.

Standard control unit <NUM> or safety control unit <NUM> that implements control device <NUM> thus performs communication processing for periodically exchanging data with a slave device.

Responsiveness (a minimum value of the EPI) of CIP Safety will now be described.

A shorter EPI means a shorter cycle time of update of data. Therefore, in consideration of control performance or the like, the EPI preferably as short as possible is set. A settable EPI, however, is determined under restrictions as shown below.

A settable range of the EPI is determined based on at least one of such restriction factors. Each restriction factor will be described below.

Various types of settings for a unit that affect responsiveness of CIP Safety include each cycle time of execution (task cycle time) of control task <NUM>. Therefore, in control system <NUM> according to the present embodiment, the settable range of the EPI may be determined based on a cycle time (task cycle time) of a control operation performed in standard control unit <NUM>.

Contents of settings for CIP Safety include the number of connections and a data size in CIP Safety. The number of connections in CIP Safety may include both of the number of connections (the maximum number) specifically supported by control system <NUM> and the number of connections arbitrarily set by a user. The data size in CIP Safety may encompass both of a size of data allocated to each connection and total data allocated to all connections.

<FIG> is a schematic diagram for illustrating exemplary contents of settings for CIP Safety in control device <NUM> according to the present embodiment. <FIG> shows an example in which connections C1 to C100 are set and <FIG> shows an example in which connections C1 to C10 are set.

As is seen from comparison between <FIG>, as the number of connections is larger, the EPI is longer. Similarly, as the data size is larger, the EPI is longer.

Depending on contents of settings for CIP Safety, responsiveness of CIP Safety (that is, the minimum value of the EPI) thus varies. Therefore, in control system <NUM> according to the present embodiment, the settable range of the EPI may be determined based on at least one of the number of connections and a data size of data exchanged with a slave device.

Since one or more connections can be defined for each communication counterpart device (target device), the EPI can also be defined for each target device. In other words, the settable range of the EPI may be determined for each device with which control device <NUM> exchanges data.

Processing capability (spec) of a unit that provides CIP Safety communication service <NUM> means hardware performance of a unit (standard control unit <NUM> or safety control unit <NUM> as shown in <FIG>) in which CIP Safety communication service <NUM> is implemented. Such processing capability (spec) is dependent on performance of a processor mounted on the unit, a memory capacity, a data transmission rate, and the like.

Therefore, in control system <NUM> according to the present embodiment, the settable range of the EPI may be determined based on processing capability of control device <NUM> (standard control unit <NUM> and safety control unit <NUM>).

<FIG> is a schematic diagram for illustrating exemplary execution of the CIP Safety communication service in control device <NUM> according to the present embodiment. <FIG> shows exemplary execution in the unit (standard control unit <NUM> or safety control unit <NUM>) that provides CIP Safety communication service <NUM>.

In each of <FIG>, a common resource is used to perform a service X <NUM> and a service Y <NUM> in addition to CIP Safety communication service <NUM>. <FIG> shows an example in which CIP Safety communication service <NUM> is performed with priority higher than other services being placed thereon, and <FIG> shows an example in which CIP Safety communication service <NUM> is performed with priority lower than other services being placed thereon.

More specifically, when CIP Safety communication service <NUM> is higher in priority than other services as shown in <FIG>, the EPI can be shorter because CIP Safety communication service <NUM> is preferentially performed.

In contrast, when other services are higher in priority than CIP Safety communication service <NUM> as shown in <FIG>, a cycle time of performing CIP Safety communication service <NUM> is longer, and hence the EPI is accordingly inevitably longer.

Responsiveness (that is, the minimum value of the EPI) of CIP Safety thus varies depending on contents of the service performed in the unit that provides CIP Safety communication service <NUM> and the priority defined for each service. Therefore, in control system <NUM> according to the present embodiment, the settable range of the EPI may be determined based on the priority defined for a control operation performed in standard control unit <NUM>.

Normally, for each of other services provided by the unit that provides CIP Safety communication service <NUM>, activation or inactivation of execution can be set in advance. At least one of services, however, cannot be inactivated, and execution thereof may be fixed.

The priority in the unit that provides CIP Safety communication service <NUM> can arbitrarily be set. The priority of at least one of services may also be set to a designed value.

As described above, responsiveness of CIP Safety is preferably enhanced as much as possible (that is, the EPI as short as possible is set) to improve control performance. It may be difficult, however, to shorten the length of the EPI due to various restrictions. In control system <NUM> according to the present embodiment, the settable range of the EPI may be determined with both of the restriction factor (by way of example, (<NUM>), (<NUM>-<NUM>), and (<NUM>-<NUM>) described above) determined in accordance with contents of processing performed by standard control unit <NUM> and safety control unit <NUM> that implement control device <NUM> and the restriction factor (by way of example, (<NUM>) described above) determined in accordance with settings involved with communication processing being reflected.

Control device <NUM> according to the present embodiment can also provide a function to support settings of responsiveness (the length of the EPI) of CIP Safety with the restriction factors as described above being reflected. The function to support settings of responsiveness (the length of the EPI) of CIP Safety will be described below. Specifically, control system <NUM> according to the present embodiment can automatically calculate a minimum value of the settable EPI determined in accordance with performance of the unit and current settings.

An exemplary method of calculating a minimum value of a settable EPI will initially be described.

<FIG> is a diagram showing an exemplary parameter table <NUM> used for calculating a minimum value of the EPI settable in control system <NUM> according to the present embodiment. Referring to <FIG>, parameter table <NUM> includes parameter values including a first parameter <NUM>, a second parameter <NUM>, and a third parameter group <NUM> for each type of a controller (typically, standard control unit <NUM>) by way of example.

First parameter <NUM> reflects a restriction factor for "(<NUM>) Various types of settings for unit that affect responsiveness of CIP Safety.

Second parameter <NUM> reflects a restriction factor for "(<NUM>) Contents of settings for CIP Safety.

Third parameter group <NUM> reflects a restriction factor for "(<NUM>-<NUM>) Other services provided by unit that provides CIP Safety communication service <NUM>" and "(<NUM>-<NUM>) Priority in unit that provides CIP Safety communication service <NUM>.

First parameter <NUM>, second parameter <NUM>, and third parameter group <NUM> each reflect the restriction factor for "(<NUM>) Processing capability (spec) of unit that provides CIP Safety communication service <NUM>.

As shown in <FIG>, as the type of the controller of interest is determined, five corresponding parameter values are read from parameter table <NUM>. The minimum value of the settable EPI is calculated in accordance with an expression (<NUM>) as shown below, based on the read parameter values and contents of settings. <MAT> A set value Ts represents each cycle time (task cycle time) of execution of control task <NUM>. In other words, set value Ts means an IO refresh cycle time. A set value Sc represents the number of connections of CIP Safety. A data size of CIP Safety may be employed as set value Sc.

Parameter values (parameter values c, d, and e) in third parameter group <NUM> reflect a service to be performed, priority, and the like. Therefore, when the service performed in the controller of interest or the priority is changed, the minimum value of the settable EPI may be calculated again in accordance with the changed contents of settings.

<FIG> is a diagram for illustrating processing for calculating again the minimum value of the EPI settable in control system <NUM> according to the present embodiment. Referring to <FIG>, when contents of the service performed in the controller of interest or the priority defined for the service are/is changed, an applied parameter may be selected again and the minimum value of the settable EPI may be calculated again.

In the example shown in <FIG>, priority of CIP Safety communication service <NUM> is highest next to service X <NUM>. Service Y <NUM> and a service Z <NUM> are lower in priority than CIP Safety communication service <NUM>.

In such a case, it is substantially only service X <NUM> that affects execution of CIP Safety communication service <NUM>. Therefore, in calculating the minimum value of the settable EPI, only a parameter value corresponding to service X <NUM> may be reflected. For example, when parameter values c, d, and e included in third parameter group <NUM> correspond to service X <NUM>, service Y <NUM>, and service Z <NUM>, respectively, only parameter value c is reflected. In other words, the minimum value of the settable EPI is calculated in accordance with an expression (<NUM>) as shown below. <MAT> Thus, only the parameter associated with the service higher in priority than CIP Safety communication service <NUM> among services performed in the controller of interest may be reflected.

Since there is no essential restriction factor for a maximum value of the EPI, a predetermined value may be set as the maximum value of the EPI. Alternatively, any value smaller than a time period on which determination as a communication error (time-out) is based may be set as the maximum value of the EPI.

A function to calculate the minimum value of the settable EPI as described above is typically implemented in support apparatus <NUM>. A functional configuration in an implementation in support apparatus <NUM> will be described below.

<FIG> is a block diagram showing an exemplary functional configuration of support apparatus <NUM> included in control system <NUM> according to the present embodiment. A main function shown in <FIG> is performed by execution of support program <NUM> by processor <NUM> of support apparatus <NUM> (<FIG>).

Referring to <FIG>, support apparatus <NUM> includes a program developer <NUM> and an EPI calculator <NUM>.

Program developer <NUM> provides an interface for developing a program to be executed in control device <NUM> and for making necessary settings. Program developer <NUM> generates project data <NUM> (see <FIG> or the like) including standard control source program <NUM>, standard controller setting information <NUM>, safety source program <NUM>, safety controller setting information <NUM>, and safety driver setting information <NUM>, in accordance with an operation by a user.

Program developer <NUM> thus provides a development environment for performing at least a part of creation of contents of processing performed by standard control unit <NUM> and safety control unit <NUM> that implement control device <NUM> and making of settings involved with communication processing.

EPI calculator <NUM> calculates the minimum value of the settable EPI based on setting information <NUM> (including standard controller setting information <NUM> and safety controller setting information <NUM>) generated by program developer <NUM> and parameter table <NUM> (see <FIG>). The minimum value of the settable EPI calculated by EPI calculator <NUM> may be presented to a user through output device <NUM> (see <FIG> and the like) such as a display.

EPI calculator <NUM> thus determines a settable range of a cycle time (EPI) of exchange of data with a slave device based on contents set in the development environment provided by program developer <NUM>.

An exemplary user interface screen for presenting to a user, a result of calculation of the minimum value of the settable EPI as described above will now be described.

<FIG> is a diagram showing an exemplary user interface screen provided by control system <NUM> according to the present embodiment. A user interface screen <NUM> shown in <FIG> may typically be shown on support apparatus <NUM>.

Referring to <FIG>, user interface screen <NUM> includes an EPI settable range <NUM> brought in correspondence with setting information <NUM>. Setting information <NUM> includes a task cycle time <NUM> (setting Ts), the number of connections <NUM> (setting Sc), and type information <NUM> as setting items.

Support apparatus <NUM> thus calculates the minimum value of the settable EPI and presents the minimum value to the user, together with setting information corresponding to calculation of the EPI.

<FIG> is a diagram showing another exemplary user interface screen provided by control system <NUM> according to the present embodiment. In a user interface screen <NUM> shown in <FIG>, a current EPI set value <NUM> is shown for each target device <NUM>. Setting information <NUM> (a task cycle time <NUM> (setting Ts), the number of connections <NUM> (setting Sc), and type information <NUM>) is shown in correspondence with EPI set value <NUM> for each target device <NUM>.

When EPI set value <NUM> is smaller than the minimum value of the settable EPI calculated based on corresponding setting information <NUM> (that is, out of the settable range), an error may be presented to the user. The error may be presented in any form, and for example, such a manner that a color of a character or a background of corresponding EPI set value <NUM> is different from that in a normal manner of representation may be adopted. <FIG> shows an example in which an attention representation <NUM> for presenting an error is given for EPI set value <NUM>. Alternatively, corresponding EPI set value <NUM> may blink or an audio notification may be given.

As shown in <FIG>, for EPI set value <NUM> that falls under an error, a message <NUM> that suggests change of contents of settings in setting information <NUM> may be shown such that the EPI is within the settable range. In an example shown in <FIG>, a message indicating that EPI set value <NUM> can be within the settable range by reducing the number of connections <NUM> (setting Sc) is presented. Contents included in message <NUM> that suggest change of contents of settings are determined by generation by support apparatus <NUM>, of some candidates different in setting information <NUM> and calculation of the minimum value of the settable EPI for each candidate.

Without being limited to the number of connections <NUM>, change of other contents of settings may be suggested.

<FIG> is a diagram showing yet another exemplary user interface screen provided by control system <NUM> according to the present embodiment. A user interface screen <NUM> shown in <FIG> provides an interface for making settings involved with CIP Safety. User interface screen <NUM> includes information on connection defined for a port to be set.

More specifically, user interface screen <NUM> includes a flag <NUM> for selecting activation or inactivation of settings of connection, setting <NUM> of data allocated to connection of interest, a minimum value <NUM> of the corresponding settable EPI, and a time period <NUM> for network response to a communication counterpart device (target device). Time period <NUM> for network response may be set to a value calculated by simulation or a value obtained by actual measurement (an actually measured value).

When the set value of the EPI is out of the settable range in such a setting interface, an error message <NUM> including the settable range may be shown.

In generating a program in an executable form transferred from project data <NUM> to each unit in the development environment provided by support apparatus <NUM>, whether or not the set EPI is within the settable range may be determined, and when the EPI is out of the settable range, an error message may be presented.

As shown in <FIG> and <FIG> described above, support apparatus <NUM> may perform a notification function to give a notification when a set value of a cycle time of exchange of data with a slave device is out of the settable range of the EPI.

A processing procedure for performing processing for calculating the minimum value of the settable EPI as described above will now be described.

<FIG> is a flowchart showing an exemplary procedure of processing performed in support apparatus <NUM> included in control system <NUM> according to the present embodiment. Each step shown in <FIG> is performed by execution of support program <NUM> by processor <NUM> of support apparatus <NUM> (<FIG>).

Referring to <FIG>, support apparatus <NUM> starts providing the development environment in response to an operation by a user (step S100). Specifically, support apparatus <NUM> performs processing for providing the development environment for performing at least a part of creation of contents of processing performed by standard control unit <NUM> and making of settings involved with communication processing.

Support apparatus <NUM> generates a program and determines various types of setting information in response to an operation by the user (step S102). Then, support apparatus <NUM> determines whether or not information necessary for calculation of the minimum value of the settable EPI is ready (step S104). When information necessary for calculation of the minimum value of the settable EPI is not ready (NO in step S104), support apparatus <NUM> repeats processing in step S102 or later.

When information necessary for calculation of the minimum value of the settable EPI is ready (YES in step S104), support apparatus <NUM> selects one device (target device) of interest of calculation (step S106) and calculates the minimum value of the settable EPI based on relevant setting information (step S108). In other words, support apparatus <NUM> performs processing for determining the settable range of the EPI which is a cycle time of exchange of data with a slave device, based on contents set in the development environment.

In succession, support apparatus <NUM> determines whether or not the minimum value of the settable EPI has been calculated for all devices of interest of calculation (step S110). When there remains a device for which the minimum value of the settable EPI has not been calculated (NO in step S110), support apparatus <NUM> repeats processing in step S106 or later.

When the minimum value of the settable EPI has been calculated for all devices of interest of calculation (YES in step S110), support apparatus <NUM> determines whether or not there is an EPI smaller in minimum value of the corresponding settable EPI among one or more currently set EPIs (step S112).

When there is an EPI smaller in minimum value of the corresponding settable EPI among the one or more currently set EPIs (YES in step S <NUM><NUM>), support apparatus <NUM> specifies the EPI smaller in minimum value of the settable EPI (step S <NUM>). When there is no EPI smaller in minimum value of the settable EPI (NO in step S <NUM>), processing in step S <NUM> is skipped.

Then, support apparatus <NUM> presents to a user, the calculated minimum value of the settable EPI and an error for the EPI smaller in minimum value of the settable EPI (step S <NUM>). Then, the process ends.

In the description above, an exemplary configuration in which support apparatus <NUM> calculates the minimum value of the settable EPI is mainly described. Without being limited to support apparatus <NUM>, any processing entity can calculate the minimum value of the settable EPI. For example, a controller (standard control unit <NUM> or safety control unit <NUM>) may calculate the minimum value of the EPI or a computer arranged on a cloud may calculate the minimum value of the EPI based on setting information provided from support apparatus <NUM>. In other words, any processing entity may perform the method of calculating the minimum value of the settable EPI according to the present embodiment.

CIP Safety is mainly described in detail in the description above. Without being limited to CIP Safety, however, the present invention is widely applicable to data communication in which data of a predetermined data size is periodically exchanged with one or more communication counterparts. For example, the present invention is applicable to normal frame transmission in conformity with EtherNet/IP™.

Control device <NUM> including standard control unit <NUM> and safety control unit <NUM> independent of each other is exemplified in the description above. Without being limited to such a configuration, however, a single controller in which functions of both of these units are integrated may be implemented. Since the essence of the present invention resides in communication processing, control device <NUM> including both of standard control unit <NUM> and safety control unit <NUM> does not necessarily have to be employed but the control device may be configured to include only any one of the units.

According to the present embodiment, a settable range of a cycle time (EPI) of exchange of data between control device <NUM> and a slave device can be determined based on contents of processing performed in control device <NUM> and settings involved with communication processing. Therefore, even a user with less knowledge can set an appropriate cycle time. Thus, occurrence of failure such as communication disconnection due to expiration of the cycle time can be prevented in control devices of various types that are variously set depending on an object to be controlled.

Since the settable range of the cycle time (EPI) of exchange of data can be calculated according to the present embodiment, tuning for finding an appropriate cycle time within the calculated range can readily be achieved.

According to the present embodiment, without existence of real control device <NUM>, the settable range of the cycle time (EPI) of exchange of data can be known in advance, and hence apparatus design can readily be made.

It should be understood that the embodiment disclosed herein is illustrative and non-restrictive in every respect. The scope of the present invention is defined by the terms of the claims.

Claim 1:
A control system (<NUM>) including a control device (<NUM>) and a device (<NUM>) configured to communicate with the control device, the control system comprising:
communication processing means (<NUM>) configured to perform communication processing (<NUM>) for periodically exchanging data frames with the device over a field network in accordance with a frame transmission cycle;
control means (<NUM>) connected to the communication processing means through an internal bus (<NUM>), wherein the communication processing means is configured to mediate frame transfer between the device and the control means, wherein the control means is configured to periodically perform a control operation (<NUM>) for controlling the device, wherein the control operation comprises determining a control instruction based on input data obtained from a frame received from the device, wherein the control means is configured to include the control instruction in a frame for transmission to the device;
providing means (<NUM>; <NUM>) configured to provide a development environment for performing at least a part of creation of contents of processing performed by the control means and making of settings involved with communication processing by the communication processing means; and
determination means (<NUM>; <NUM>) configured to determine a settable range of a cycle time of the frame transmission cycle for the exchange of data frames with the device, based on contents set in the development environment provided by the providing means.