WO2020110668A1 - 制御装置、サポート装置、および通信システム - Google Patents

制御装置、サポート装置、および通信システム Download PDF

Info

Publication number
WO2020110668A1
WO2020110668A1 PCT/JP2019/043973 JP2019043973W WO2020110668A1 WO 2020110668 A1 WO2020110668 A1 WO 2020110668A1 JP 2019043973 W JP2019043973 W JP 2019043973W WO 2020110668 A1 WO2020110668 A1 WO 2020110668A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
communication
relay device
command
relay
Prior art date
Application number
PCT/JP2019/043973
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 CN201980058646.6A priority Critical patent/CN112655175B/zh
Priority to EP19889785.2A priority patent/EP3890247A4/en
Priority to US17/285,096 priority patent/US20210349446A1/en
Publication of WO2020110668A1 publication Critical patent/WO2020110668A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13058One instruction of plc generates a whole independent sequence, relay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/4026Bus for use in automation systems
    • 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 technique for supporting a setting work regarding communication between a control device and another device.
  • Control devices such as PLC (Programmable Logic Controller) have been introduced at various manufacturing sites.
  • a control device is a kind of computer, and executes a control program designed according to a manufacturing apparatus, manufacturing equipment, or the like.
  • the control device is connected to various devices inside or outside the factory via a relay device.
  • Patent Document 1 discloses a control device that is communicably connected to a cloud system outside a factory via a router, which is an example of a relay device.
  • Patent Document 2 discloses a control device communicatively connected to another control device via a router, which is an example of a relay device.
  • the setting for the relay device is complicated, and it is necessary to learn the setting method.
  • the present invention is intended to solve the above-mentioned problems, and an object thereof is to facilitate settings made to a relay device.
  • a control device that can communicate with another device via a relay device.
  • the control device is configured to communicate between the storage device, in which a user program including at least one command for performing communication setting related to communication via the relay device is stored, and the relay device, based on the execution condition of the command being satisfied.
  • It includes a communication setting unit that transmits and receives commands and performs communication settings indicated by the commands.
  • the control device executes the process according to the specified setting content. Communication settings for the relay device can be easily performed.
  • the storage unit stores conversion information including a protocol for each type of relay device.
  • the control device further includes a conversion information identification unit that determines the type of the relay device based on device information included in the relay device and identifies conversion information based on the type of the relay device.
  • the communication setting unit transmits/receives a command to/from the relay device based on the conversion information specified by the conversion information.
  • the user can make communication settings without being aware of the type of relay device.
  • conversion information is stored in the storage unit for each instruction content.
  • the conversion information specifying unit specifies the conversion information based on the instruction for which the execution condition is satisfied and the type of the relay device.
  • control device since the control device does not need to store the program according to the content of the instruction and the type of the relay device, the amount of data stored in the storage unit can be reduced.
  • the user program includes a command related to communication setting and a priority command having a higher priority than this command.
  • the control device further includes a fixed cycle task execution unit that repeatedly executes the priority instruction at a fixed cycle.
  • the communication setting unit issues a command related to communication setting so as not to interfere with the execution of the priority command.
  • control device is communicably connected to the first device that manages the first field device group and the second device that manages the second field device group via the relay device.
  • the storage unit stores a first recipe including a condition for moving the first field device group and a second recipe including a condition for moving the second field device group.
  • the user program includes an instruction to switch the device at the connection destination and an instruction to switch the recipe according to the switching.
  • a support device for supporting the development of a user program for a control device capable of communicating with another device via a relay device.
  • the support device includes a storage unit that stores at least one command for performing communication settings related to communication via the relay device, and a control unit that generates a user program by combining at least one command stored in the storage unit.
  • Including and The control unit creates the user program in a format in which the control device can send and receive commands to and from the relay device when the command is executed.
  • a communication system including a relay device and a control device capable of communicating with another device via the relay device.
  • the control device includes a storage unit that stores a user program including at least one command for performing communication settings related to communication via the relay device,
  • a communication setting unit that transmits and receives a command to and from the relay device and performs communication setting indicated by the command based on satisfaction of the execution condition of the command.
  • the control device executes the process according to the specified setting content.
  • An environment is provided that facilitates communication settings for a relay device.
  • FIG. 3 is a diagram showing a system configuration of the communication system according to the first embodiment. It is a schematic diagram which shows an example of a device structure of a CPU unit. It is a schematic diagram which shows the software structure of a CPU unit. It is a schematic diagram which shows an example of an apparatus structure of a support apparatus. It is a schematic diagram which shows the software structure of a support apparatus. It is a figure which shows the function structure of the controller implement
  • FIG. 10 is a diagram showing a timing at which a fixed cycle task execution unit and a communication setting unit execute processing when the user program shown in FIGS. 8 and 9 is executed. It is a figure which shows the exchange of the command between a communication setting part and a setting information update part. It is an example of an instruction prepared in the support device. It is a figure which shows the modification of a communication system.
  • FIG. 6 is a diagram showing a schematic configuration of a control device according to a second embodiment.
  • FIG. 1 is a diagram schematically showing an application scene of control device 100A according to the present embodiment.
  • the control device 100A is communicably connected to other devices (devices 41A, 41B, 41C) via the relay device 200A.
  • the communication setting is a setting related to communication with another device and is a setting performed for the relay device 200A.
  • the execution condition of the instruction a is satisfied
  • the execution condition of the instruction b is satisfied when the execution of the instruction a is completed
  • the execution condition of the instruction c is satisfied when the execution of the instruction b is completed.
  • the storage unit 106A stores a user program 1066A that the execution condition of the instruction d is satisfied when the execution of the instruction c is completed.
  • the user program 1066A is created, for example, by the development environment provided by the support device 30A.
  • the support device 30A is realized, for example, by using hardware that conforms to a general-purpose architecture.
  • the communication setting unit 160A exchanges a command with the relay device 200A when executing the command a.
  • the communication setting unit 160A executes the instruction b, and when executing the instruction b, exchanges a command with the relay device 200A.
  • the communication setting unit 160A exchanges commands with the relay device 200A.
  • the communication setting unit 160A exchanges this command as the command is executed.
  • the communication setting for the relay device 200A can be performed without learning the detailed command exchange between the relay device 200A and the control device 100A.
  • FIG. 2 is a diagram showing a system configuration of the communication system 1 according to the first embodiment.
  • the communication system 1 is a system installed at a manufacturing site 2 where manufacturing work is actually performed.
  • the communication system 1 is used by people working at the manufacturing site 2 (hereinafter, also referred to as “users”).
  • the communication system 1 provides an environment for making settings (hereinafter, also referred to as “communication settings”) between a remote site 4 that can be remotely viewed and operated on the manufacturing site 2 and the manufacturing site 2. provide.
  • the communication system 1 includes a controller 10 that controls a manufacturing apparatus, a robot and the like, and a touch panel type HMI (Human Machine Interface) 20 that a user operates to perform communication settings.
  • a controller 10 that controls a manufacturing apparatus, a robot and the like
  • a touch panel type HMI Human Machine Interface
  • the controller 10 is communicably connected to the HMI 20 via the information network NW1, and the user operates the HMI 20 to set communication according to the setting instruction output from the HMI 20.
  • the controller 10 is connected to the field device group 40 via the control network NW2.
  • the field device group 40 includes devices that collect data from controlled devices or control-related manufacturing devices, production lines, and the like (hereinafter, also collectively referred to as “field”).
  • An input relay, various sensors, etc. are assumed as a device for collecting such data.
  • the field device group 40 further includes a device that gives some action to the field based on a command generated by the controller 10.
  • An output relay, a contactor, a servo driver, a servo motor, or any other actuator is assumed as a device that gives some action to such a field.
  • the field device group 40 includes a remote I/O (Input/Output) device 41, a relay group 42, a servo driver 45, and a servo motor 46, which are connected to the controller 10.
  • a remote I/O (Input/Output) device 41 Input/Output
  • a relay group 42 Input/Output
  • a servo driver 45 Servo motor 46
  • the controller 10 includes a CPU unit 100, a relay unit 200, and a power supply unit 300.
  • the power supply unit 300 supplies electric power to various devices forming the controller 10, such as the CPU unit 100.
  • the CPU unit 100 corresponds to a control device that executes a control calculation for a control target.
  • the CPU unit 100 is connected to the computer 4a of the remote site 4 via the relay unit 200.
  • the CPU unit 100 controls the control target by executing a user program created according to the control purpose of the user.
  • the CPU unit 100 can control various devices connected to the CPU unit 100. Specifically, the CPU unit 100 can control the relay unit 200 as a control target, and can change the state of the relay unit 200. Specifically, the CPU unit 100 can set the relay unit 200.
  • the relay unit 200 By setting the relay unit 200, the communication setting between the remote site 4 and the manufacturing site 2 is performed.
  • the user program for communication setting is executed according to the setting change instruction output from the HMI 20 when the user operates the HMI 20.
  • the user program is created by the development environment provided by the support device 30.
  • the CPU unit 100 includes an interface for connecting to the support device 30.
  • the user program created by the support device 30 is installed in the CPU unit 100 from the support device 30 and executed by the CPU unit 100.
  • the user program is written in a programming language defined as a programming language for PLC applications in the international standard IEC61131-3.
  • the user program is a ladder diagram (LD: Ladder Diagram), a function block diagram (FBD: Function Block Diagram), a sequential function chart (SFC: Sequential Function Chart), an instruction list (IL: Instruction List), a structured It is a program written in one or more of five types of text (ST: Structured Text).
  • the relay unit 200 is a control device having a router function, and provides a relay function that mediates the exchange of data between the CPU unit 100 and another device.
  • the relay unit 200 is communicatively connected to the network in the remote site 4 via the network NW3.
  • a computer 4a is connected to the network in the remote site 4. That is, the relay unit 200 mediates the exchange of data between the CPU unit 100 and the computer 4a. More specifically, the relay unit 200 can communicate with the relay 4b to which the computer 4a is connected via the network NW3.
  • the network NW3 is assumed to be the Internet, a VPN (Virtual Private Network), a dedicated line, a communication line combining these, or the like, and may be either a wired network or a wireless network.
  • the network NW3 is a VPN.
  • the CPU unit 100 is assigned “192.168.1.1/24” as an IP address.
  • “192.168.1.254/24” is assigned to the relay unit 200 as an IP address.
  • the relay 4b is assigned an IP address "192.168.2.254/24". "192.168.2.1/24" is assigned as the IP address to the computer 4a.
  • FIG. 3 is a schematic diagram showing an example of the device configuration of the CPU unit 100.
  • the CPU unit 100 includes a processor 102, a main memory 104, a storage 106, an information network controller 108, a control network controller 110, an inter-unit bus controller 112, a local bus controller 114, a USB controller 116, And a memory card interface 118. These components are connected via the processor bus 120.
  • the processor 102 corresponds to an arithmetic processing unit that executes a control operation related to standard control, and is configured by a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. A configuration having a plurality of cores may be adopted as the processor 102, or a plurality of processors 102 may be arranged. Thus, the CPU unit 100 has one or more processors 102 and/or a processor 102 having one or more cores.
  • the processor 102 reads a program stored in the storage 106, expands it in the main memory 104, and executes it, thereby implementing control calculation according to the control target and various processes described later.
  • the main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
  • the storage 106 is composed of, for example, a non-volatile storage device such as SSD (Solid State Drive) or HDD (Hard Disk Drive).
  • the storage 106 stores various programs executed by the processor 102 and various data necessary for executing the programs.
  • the information network controller 108 mediates communication with the HMI 20 via the information network NW1 (see FIG. 2).
  • the information network NW1 for example, a network protocol such as EtherNet/IP (registered trademark) that guarantees punctuality is preferable.
  • the control system network controller 110 mediates communication with the field device group 40 via the control system network NW2 (see FIG. 2).
  • the control network NW2 for example, a network protocol such as EtherCAT (registered trademark) that guarantees punctuality is preferable.
  • the inter-unit bus controller 112 is a device for connecting to another unit so that data communication is possible.
  • the relay unit 200 and the power supply unit 300 are connected via the inter-unit bus controller 112 of the CPU unit 100.
  • the inter-unit bus controller 112 for example, a device complying with a known data transmission standard (eg, PCI Express) can be adopted.
  • the local bus controller 114 mediates communication with an input/output unit directly attached to the CPU unit 100 via a local bus (not shown).
  • the sequence command program 644 includes a command code group for calling the substance of the sequence command specified in the user program 1066 and executing the contents of the command as the user program 1066 is executed.
  • the software executed by the support device 30 includes at least an OS 352 and a support program 354. These programs are stored in the storage 35.
  • the data used for executing the program includes a function block library (hereinafter also referred to as “FB library”) 356 and a command library 358, and is stored in the storage 35.
  • FB library function block library
  • the OS 352 provides a basic environment in which support program 354 can be executed.
  • the support program 354 is a program for realizing the function provided by the support device 30, and provides a function for creating the user program 1066.
  • the FB library 356 is a library of function blocks that are program components defined for each instruction information for generating the user program 1066.
  • the FB library 356 includes a function block 400 corresponding to an instruction necessary for setting communication.
  • a function block corresponding to an instruction to write the VPN setting between the manufacturing site 2 and the remote site 4 in the relay unit 200 and an instruction to read the VPN setting written in the relay unit 200
  • the FB library 356 includes a function block for performing the setting, a function block corresponding to an instruction for validating the setting written in the relay unit 200, and the like.
  • the command library 358 is a library of conversion information 582 including a protocol related to command transmission/reception performed between the relay unit 200 and the CPU unit 100. More specifically, the protocol is information including a procedure of transmitting/receiving a command and a type of the command.
  • the CPU unit 100 sets the communication setting for the relay unit 200 according to the protocol included in the conversion information 582.
  • the conversion information 582 is stored in the command library 358 as a command group 580 for each type of command supported by the relay unit 200.
  • a command group 580A for converting into a command of company A and a command group 580B for converting into a command of company B are stored in the command library 358.
  • Each command group 580 includes conversion information 582 for converting the function block 400 into a corresponding command.
  • the function block 400 and the command library 358 are distributed in a state where they are stored in the recording medium 36a by a controller maker or a specialized software company, for example.
  • the user can use the function block 400 and the command library 358 by installing the function block 400 and the command library 358 stored in the recording medium 36a in the support device 30.
  • the support program 354 includes an editor 541, a compiler 542, a debugger 543, a GUI (Graphical User Interface) module 544, a simulator 545, and a data storage unit 550.
  • editor 541 a compiler 542
  • debugger 543 a GUI (Graphical User Interface) module 544
  • GUI Graphic User Interface
  • simulator 545 a simulator 545
  • data storage unit 550 a data storage unit 550.
  • the compiler 542 provides a function of compiling a source program and generating a user program 1066 in a program format executable by the controller 10.
  • the debugger 543 provides a function for debugging the source program of the user program 1066.
  • the GUI module 544 has a function of providing a user interface screen for the designer to input various data and parameters.
  • the user interface screen is displayed on the output unit 34 including a display.
  • the various functions shown in FIG. 7 are realized when the execution condition of the function block 400 related to the communication setting included in the user program 1066 is satisfied and the instruction indicated by the function block 400 is executed by the processor 102.
  • the fixed cycle task execution unit 140 executes a task at a fixed cycle, and the task includes a process of acquiring the execution status of the instruction of the communication setting unit 160. That is, the fixed cycle task execution unit 140 monitors the execution of the instruction performed by the communication setting unit 160.
  • the setting information storage unit 220 of the relay unit 200 stores information regarding communication settings. While commands are exchanged between the relay unit 200 and the CPU unit 100, the information (setting information 222) regarding the communication settings stored in the setting information storage unit 220 is modified.
  • the user working at the manufacturing site 2 changes the state of the relay unit 200, which is a relay device, in the same manner as when controlling devices such as the field device group 40 without acquiring specialized knowledge about security and communication. be able to.
  • the CPU unit 100 can change the communication setting as the state of the relay device.
  • a method of executing a user program is adopted as a method of changing the state of the relay unit 200 from the CPU unit 100.
  • FIGS. 8 and 9 are diagrams showing an example of a user program 1066 in which a function block related to communication setting is incorporated.
  • the user program 1066 shown in FIGS. 8 and 9 is specified by the ladder program. This user program 1066 is stipulated to set the VPN so that maintenance can be performed from the remote site 4 when an abnormality occurs in the manufacturing site 2 and the controller 10 is set to the maintenance mode.
  • the user program 1066 is defined by input elements IN1 to IN6, function blocks FB1 to FB3, structured text ST, and output elements OUT1 to OUT5.
  • the function block FB1 is referred to as “RC_SetVPNServerSetting”.
  • the function block FB1 indicates an instruction to write the VPN setting between the manufacturing site 2 and the remote site 4 in the relay unit 200.
  • the function block FB1 includes input units 412A to 412K that receive input of setting conditions to be written in the relay unit 200, and output units 414A to 414D that output the result of the writing process.
  • the input units 412B to 412K indicate VPN setting conditions, and the VPN is defined according to the setting conditions input to the input units 412B to 412K.
  • the input unit 412B indicated as "VPNServerAddress” accepts an input for designating an IP address used as a VPN server.
  • This IP address is one of one or a plurality of IP addresses preset in the relay unit 200.
  • the CPU unit 100 specifies a target for communication setting according to the IP address input to the input unit 412B. In the example shown in FIG. 8, “192.168.1.254/24” is input to the input unit 412B, and the CPU unit 100 selects “192.168..25” among the IP addresses assigned to the relay unit 200. 1.254/24” is used as the address for the VPN server.
  • the input unit 412C indicated as “LoginID” accepts the input of the user ID for setting the VPN.
  • the input unit 412D indicated as “Login Password” accepts the input of the password for setting the VPN.
  • the user ID and the password are information necessary for remotely accessing the relay unit 200.
  • the input unit 412E indicated as "VPNServerConfigName" accepts an input of a VPN server name that can be set arbitrarily.
  • the input unit 412F indicated as “VPNClientAddress” accepts an input for designating the IP address assigned to the relay 4b that accesses the relay unit 200 on the network outside the field network.
  • “20.0.0.1” is input to the input unit 412F, and the relay unit 200 is configured to include the relay 4b to which the IP address “20.0.0.1” is assigned. Access from.
  • the input unit 412G indicated as “PreSharedKey” receives an input for designating a pre-shared key for determining whether to permit remote access.
  • the input unit 412I indicated as “EncryptionAlgorithm” accepts an input for designating an encryption algorithm used in the set VPN.
  • EncryptionAlgorithm For example, DES (Data Encryption Standard), 3DES, AES (Advanced Encryption Standard), etc. are assumed as the encryption algorithm.
  • the input unit 412J indicated as “DestinationIPAddress” receives an input for designating the IP address of the device that accesses the set VPN.
  • “192.168.2.0” is input to the input unit 412J, and the relay unit 200 permits access to the device to which “192.168.2.0” is assigned. ..
  • the input unit 412K indicated as “Destination Network Mask” accepts the input for designating the netmask of the IP address input to the input unit 412J.
  • the function block FB2 is referred to as “RC_ApplyVPNServerSetting”.
  • the function block FB2 shows an instruction to validate the VPN setting written in the relay unit 200.
  • the function block FB2 includes input units 422A to 422E that receive an input for designating the VPN setting to be validated, and output units 424A to 424D that output the result of the validation process.
  • the information received by the input units 422B to 424E is information for identifying the VPN server to be validated. Detailed information received by each of the input units 422B to 424E is common to the information received by the input units 412B to 414E, and thus description thereof will be omitted. Further, the information output by the output units 424A to 424D is common to the information output from the output units 414A to 414D, and thus description thereof will be omitted.
  • the function block FB3 is referred to as "RC_GetVPNServerSetting".
  • the function block FB3 shows an instruction to read the VPN setting written in the relay unit 200.
  • the function block FB3 includes input units 432A to 432E that receive an input for designating a VPN setting to be read, and output units 434A to 434J that output the result of the activation process.
  • the information received by the input units 432A to 434E is common to the information received by the input units 412A to 414E, and thus the description thereof is omitted. Further, the information output by the output units 434A to 434D is common to the information output from the output units 414A to 414D, and thus description thereof will be omitted.
  • the information output by the output units 414E to 414J is the result of the VPN setting input and designated by the input units 432A to 434E. Along with the output of information from all of the output units 414E to 414J, a signal indicating normal termination is output from the output unit 414A indicated as "Done".
  • the structured text ST is referred to as "RC_CheckVPNServerSettinging".
  • the structured text ST indicates an instruction for determining whether or not the written VPN setting information and the read VPN setting information match.
  • the command indicated by the structured text ST is set collation processing. More specifically, in the structured text ST, the information input to the input unit 412F to the input unit 412K of the function block FB1 and the information output from the output units 432E to 432J of the function block FB3 match each other. If there is a match, the value of the variable “CheckVPNDone” is set to “True” (ON), and if any one of them does not match, the value of the variable “CheckVPNDone” is set to “False” (OFF).
  • the values of the input elements IN1 to IN6 change according to the assigned variable. More specifically, the variable “Status_Err” is assigned to the input element IN1.
  • the value of the variable “Status_Err” changes to “True” (ON) based on the state of the controller 10 being in the error state. In other cases, the value of the variable “Status_Err” is "False” (OFF).
  • a variable “SetVPNFlag” is assigned to the input element IN3.
  • the value of the variable “SetVPNFlag” is associated with the output element OUT1.
  • the output element OUT1 When the output element OUT1 outputs “True” (ON), the output element OUT1 changes to "True” (ON). In other cases, the value of the variable “SetVPNFlag” is “False” (OFF).
  • the output element OUT1 outputs “True” (ON) when both the input element IN0 and the input element IN1 are “True” (ON), and outputs “False” (OFF) in other cases. To do.
  • the variable “SetVPNDone” is assigned to the input element IN4.
  • the value of the variable “SetVPNDone” is associated with the output element OUT2.
  • the output element OUT2 changes to "True” (ON) based on the output of "True” (ON). In other cases, the value of the variable “SetVPNDone” is “False” (OFF).
  • the variable "ApplyVPNDone” is assigned to the input element IN5.
  • the value of the variable “ApplyVPNDone” is associated with the output element OUT3.
  • the output element OUT3 changes to "True” (ON) based on the output of "True” (ON). In other cases, the value of the variable “ApplyVPNDone” is “False” (OFF).
  • FIG. 10 is a diagram showing timings at which the periodic task execution unit 140 and the communication setting unit 160 execute processing when the user program shown in FIGS. 8 and 9 is executed.
  • the fixed cycle task execution unit 140 repeatedly executes the user program 1066 according to the control cycle of the controller 10.
  • the series of processes executed by the fixed cycle task execution unit 140 is always executed once for each control cycle T.
  • a series of processes (referred to as priority process 142) executed by the fixed cycle task execution unit 140 includes an I/O refresh process 144. In the I/O refresh process 144, the value of the variable is updated.
  • the periodic task execution unit 140 updates the value of the variable by executing the I/O refresh process 144, and in the subsequent process, determines whether or not the execution condition of the process related to communication setting is satisfied.
  • the communication setting unit 160 executes the process related to the communication setting for which the execution condition is satisfied after the execution of the priority process 142 is completed.
  • the communication setting unit 160 interrupts the process being executed when the next cycle is started, and then restarts the interrupted process when the execution of the priority process 142 is completed again.
  • the writing process is a process executed by the communication setting unit 160.
  • the communication setting unit 160 starts the writing process at a timing t3 when the priority process 142 of the second period is completed, and interrupts the writing process at a timing t4 when the third period starts. After that, the writing process suspended from the timing t4 when the priority process 142 of the third cycle is completed is restarted.
  • the communication setting unit 160 outputs a signal indicating that the process is being executed during the writing process, and outputs a signal indicating that the process is completed normally. In the example shown in FIG. 10, it is assumed that the writing process ends at timing t5.
  • the execution condition of the validation process indicated by the function block FB2 of FIG. 8 is satisfied.
  • the processing of the user program 1066 shown in FIGS. 8 and 9 proceeds in cooperation with the communication setting unit 160 and the periodic task execution unit 140. Then, after the setting collating process indicated by the structured text ST is completed, the communication setting unit 160 does not perform the process until another execution condition is satisfied.
  • the communication setting unit 160 converts the command indicated by the function block 400 into a command that can be exchanged with the relay unit 200, based on the conversion information 582 specified by the conversion information specifying unit 180, and the relay unit 200.
  • a command is exchanged with the device 200 and the command indicated by the function block 400 is executed.
  • the communication setting unit 160 exchanges commands with the relay unit 200 according to the item determined in S106.
  • the processes of S108 to S128 are executed. Note that the processing of S108 to S128 is an example, and this processing may differ depending on the model of the relay unit 200, and the command (language) used when exchanging may also differ.
  • the communication setting unit 160 determines whether there is an abnormality based on the confirmation result notified from the setting information updating unit 240 (S120). If there is an abnormality (YES in S120), more specifically, if a new IP address cannot be used, communication setting section 160 outputs a signal indicating abnormal termination and the abnormality that has occurred (S122). If there is no abnormality (NO in S120), more specifically, if a new IP address can be used, the communication setting unit 160 instructs the setting information updating unit 240 to write information related to the setting content ( S124).
  • the setting information updating unit 240 stores the information related to the setting contents in the setting information storage unit 220 and notifies the communication setting unit 160 of the completion of the storage (S126).
  • the communication setting unit 160 outputs a signal indicating that the processing has been completed normally (S128).
  • the communication setting unit 160 defines the procedure of the process executed with the setting information updating unit 240 in order to execute one command (function block) selected by the user, and follows the specified procedure.
  • the selected instruction is performed by executing the process.
  • items that can be set from the CPU unit 100 to the relay unit 200 are IP address, IP address routing (communication route), communication port, port mirroring, NAT (Network Address Translation) or NAPT (Network Address Port). Translation), VLAN (Virtual LAN), Qos (Quality of Service), user authentication, ACL (Access Control List), firewall setting, digital certificate, status, log, report notification, etc.
  • Parameter is information that is input or output when the command is executed.
  • the IP address for example, the IP address, the network mask, the default gateway, the DNS (Domain Name System) server, the host name, etc. are specified as parameters.
  • the commands prepared for the IP address for example, acquisition, writing, reflection, list acquisition, and clear can be prepared.
  • the IP router table is specified as a parameter.
  • commands prepared for IP address routing for example, acquisition, writing, reflection, list acquisition, and clear can be prepared.
  • In the settings related to port mirroring, for example, mirroring port, monitor port, etc. are specified as parameters.
  • commands prepared for the port mirroring for example, acquisition, writing, reflection, list acquisition, clear, and valid/invalid can be prepared.
  • the IP address to be used, the port conversion table indicating the conversion rule, etc. are specified as parameters.
  • the commands prepared for NAT or NATP for example, acquisition, writing, reflection, list acquisition, clear, and valid/invalid can be prepared.
  • VLAN ID VLAN ID
  • VLAN port number VLAN PortNumber
  • port number set as an access port or a trunk port etc. are specified as parameters.
  • commands prepared for the VLAN for example, acquisition, writing, reflection, list acquisition, clear, and valid/invalid can be prepared.
  • the priority when transferring a frame is specified as a parameter.
  • the commands prepared for Qos for example, acquisition, writing, reflection, list acquisition, clear, and valid/invalid can be prepared.
  • user information of the relay unit 200 such as a user name and password is specified as a parameter.
  • commands prepared for user authentication for example, acquisition, writing, reflection, list acquisition, clear, and valid/invalid can be prepared.
  • commands prepared for the ACL for example, acquisition, writing, reflection, list acquisition, clear, and valid/invalid can be prepared.
  • digital certificates of network devices are specified as parameters.
  • an electronic certificate is output.
  • commands prepared for the electronic certificate for example, acquisition, writing, reflection, list acquisition, clear, and valid/invalid can be prepared.
  • the status of the relay unit 200 is specified as a parameter.
  • the status of the relay unit 200 is output.
  • the commands prepared for the status for example, acquisition, reflection, list acquisition, and valid/invalid can be prepared.
  • the log of the relay unit 200 is specified as a parameter.
  • the log of the relay unit 200 is output.
  • the commands prepared for the log it is possible to prepare, for example, reflection, list acquisition, clear, and valid/invalid.
  • the address that is the information of the log notification destination is specified as a parameter.
  • the commands prepared for the report notification it is possible to prepare, for example, acquisition, writing, reflection, list acquisition, clear and valid/invalid.
  • the communication system may be configured by a controller including a CPU that configures the function of the control device and a CPU that configures the function of the relay device. Further, a communication system may be configured by mounting a multi-core CPU having a processor core that configures the function of the control device and a processor core that configures the function of the relay device in the controller.
  • the communication system 1 includes the HMI 20 in the first embodiment, it does not have to include the HMI.
  • the execution condition of the communication setting is satisfied based on the signal output from the HMI 20, it may be satisfied based on the investigation received by the input unit provided in the CPU unit 100.
  • the execution condition of the communication setting may be established based on the state of the controller 10 or a signal output from the field network regardless of the user's operation. If the communication settings are changed, the communication may be interrupted, which may have a great influence on the manufacturing site 2. Therefore, the execution condition of the communication settings may be established by a user operation. ..
  • the CPU unit 100 is provided with the conversion information 582 corresponding to the model of the relay unit 200 and the command.
  • the command may be prepared for each model of the relay unit 200 without providing the conversion information 582.
  • a user program including instructions corresponding to the relay unit 200 connected to the CPU unit 100 may be installed from the support device 30 to the CPU unit 100, and the user program may be different for each model of the relay unit 200.
  • all the user programs may be installed in the CPU unit 100, and the user programs may be executed according to the type of the connected relay unit 200.
  • the CPU unit 100 acquires the device information 260 of the relay unit 200 as the model of the relay unit 200 and specifies the conversion information 582 based on the device information 260, but the model of the relay unit 200 is specified by the user. May be performed. For example, a screen requesting specification of the model may be displayed on the HMI 20, and the conversion information 582 may be specified based on the input to the HMI 20.
  • the communication system 1a includes a relay device 200b that is an Ethernet switch, a host controller 100b that manages one or more lines of the manufacturing site 2, and a manufacturing line that is connected to the host controller 100b via the relay device 200b. It includes devices 41a to 41c that are controllers to be managed.
  • the host controller 100b is an example of the control device of the present invention.
  • the devices 41a to 41c are examples of devices connected to the control device via a relay device.
  • the relay device 200b is an example of the relay device of the present invention.
  • the relay device 200b includes a plurality of ports 210a to 210d.
  • the number of ports included in the relay device 200b is not limited to four, and may be three or less, or five or more.
  • the host controller 100b is connected to the port 210a.
  • a device 41a which is a controller that manages the line for the product A, is connected to the port 210b.
  • a field device group 40a necessary for manufacturing the product A is connected to the device 41a.
  • a device 41b that is a controller that manages the product B line is connected to the port 210c.
  • a field device group 40b required for manufacturing the product B is connected to the device 41b.
  • a device 41c that is a controller that manages the line for the product C is connected to the port 210d.
  • a field device group 40c necessary for manufacturing the product C is connected to the device 41c.
  • the user program 1066b is created, for example, by using the support device 30, and is installed from the support device 30 to the upper controller 100b.
  • the recipes 1068a to 1068c may be installed from the support device 30 or may be installed in the host controller 100b while being stored in a storage medium such as a memory card.
  • the host controller 100b includes a communication setting unit 160b, as in the first embodiment.
  • the communication setting unit 160b exchanges commands with the relay device 200b when executing each command included in the user program 1066b.
  • the user program 1066b is programmed to be executed in the order of (1) instruction ⁇ recipe update ⁇ (2) instruction ⁇ (3) instruction.
  • the recipe is data including conditions such as a production procedure, a production type or parameters suitable for production.
  • a control device (100, 100A, 100a, 100b) capable of communicating with another device (4a, 41A, 41B, 41C, 41a, 41b, 41c) via a relay device (200, 200A, 200a, 200b) ,
  • a storage unit (106, 106A) storing a user program (1066, 1066A, 1066a) including at least one command (FB1, FB2, FB3) for performing communication settings relating to communication via the relay device;
  • a control device comprising: a communication setting unit (160, 160A, 160b) that transmits and receives a command to and from the relay device based on satisfaction of an execution condition of the command, and performs the communication setting indicated by the command. ..
  • the storage unit stores conversion information (582) including the protocol for each type of the relay device, A relay information specifying unit (180) that determines the type of the relay device based on device information (260) included in the relay device, and identifies the conversion information based on the type of the relay device.
  • the control device according to configuration 2, wherein the communication setting unit transmits/receives a command to/from the relay device based on the conversion information specified by the conversion information.
  • the conversion information is stored in the storage unit for each content of the instruction, The control device according to configuration 3, wherein the conversion information identification unit identifies the conversion information based on an instruction for which an execution condition is satisfied and a type of the relay device.
  • the user program includes an instruction relating to the communication setting and a priority instruction having a higher priority than the instruction, A periodic task execution unit (140) for repeatedly executing the priority instruction in a regular cycle, 5.
  • the control device according to any one of configurations 1 to 4, wherein the communication setting unit issues an instruction related to the communication setting so as not to prevent execution of the priority instruction.
  • ⁇ Structure 7> A user for a control device (100, 100A, 100a, 100b) capable of communicating with another device (4a, 40A, 40B, 40C, 41a, 41b, 41c) via a relay device (200, 200A, 200a, 200b).
  • the control device is A storage unit (106, 106A) storing a user program (1066, 1066A, 1066a) including at least one command (FB1, FB2, FB3) for performing communication settings related to communication via the relay device;
  • a communication system including: a communication setting unit (160, 160A, 160b) that transmits and receives a command to and from the relay device based on satisfaction of an execution condition of the instruction, and performs the communication setting indicated by the instruction. ..
  • 1,1a communication system 2 manufacturing site, 4 remote site, 4a computer, 4b repeater, 10,10a controller, 30,30A support device, 31,102 processor, 32,104 main memory, 33 input section, 34 output section , 35, 106 storage, 36 optical drive, 36a recording medium, 38, 120 processor bus, 40, 40a, 40b, 40c field device group, 41A, 41B, 41C, 41 device, 41a, 41b, 41c, C device, 42 Relay group, 45 servo driver, 46 servo motor, 100 CPU unit, 100b host controller, 100A control unit, 106A storage unit, 108 information system network controller, 110 control system network controller, 112 unit bus controller, 114 local bus controller, 118 memory card interface, 118a memory card, 140 fixed-cycle task execution unit, 142 priority process, 144 I/O refresh process, 160, 160A, 160b communication setting unit, 180 conversion information specifying unit, 182 conversion information group, 200, 200A , 200b relay device, 210a, 210b, 210c, 180

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Small-Scale Networks (AREA)

Abstract

中継装置に対して行う設定を容易にすることを目的とする。 中継装置を介して他の装置と通信可能に構成された制御装置は、他の装置との間の通信に関する設定である通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、通信設定を行う通信設定部とを備える。通信設定部は、命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、当該命令が示す通信設定を行う。

Description

制御装置、サポート装置、および通信システム
 本発明は、制御装置と他の装置との間の通信に関する設定作業を支援するための技術に関する。
 様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムが実行される。制御装置は、中継装置を介して工場内または工場外の様々な装置と接続される。
 たとえば、特許第6407494号公報(特許文献1)には、中継装置の一例であるルータを介して、工場の外のクラウドシステムと通信可能に接続された制御装置が開示されている。
 また、国際公開第2016/157477号(特許文献2)には、中継装置の一例であるルータを介して、他の制御装置と通信可能に接続された制御装置が開示されている。
特許第6407494号公報 国際公開第2016/157477号
 しかし、中継装置に対する設定は複雑であり、設定方法の学習が必要となる。すなわち、工場内のネットワークを設計し、運用するためには、ネットワークの設計を行う者の教育だけでなく、工場内の現場で設計されたネットワークを運用する者に対しても教育を行う必要があった。そのため、中継装置に対して行う設定の複雑さが、工場内にネットワークを構築することを困難にする一つの要因となっていた。
 本発明は、上記課題を解決することを目的とするものであって、中継装置に対して行う設定を容易にすることを目的とする。
 本開示の一例によれば、中継装置を介して他の装置と通信可能な制御装置が提供される。制御装置は、中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、命令が示す通信設定を行う通信設定部とを含む。
 この開示によれば、中継装置との間でのコマンドの送受信の方法を知らないユーザであっても、通信設定を指定すれば、指定した設定内容に応じた処理を制御装置が実行するため、中継装置に対する通信設定を容易に行うことができる。
 上述の開示において、中継装置との間で行われるコマンドの送受信にかかるプロトコルは、中継装置の種類に応じて異なる。通信設定部は、中継装置の種類に応じたプロトコルに従い、中継装置との間でコマンドの送受信を行う。
 この開示によれば、種々の中継装置に対応することができ、ユーザは複数種類の中継装置を利用することができる。
 上述の開示において、記憶部は、プロトコルを含む変換情報を、中継装置の種類ごとに格納する。制御装置は、中継装置の種類を中継装置が備えるデバイス情報に基づいて判断し、中継装置の種類に基づいて変換情報を特定する変換情報特定部をさらに含む。通信設定部は、変換情報が特定した変換情報に基づいて中継装置との間でコマンドの送受信を行う。
 この開示によれば、ユーザは中継装置の種類を意識することなく、通信設定を行うことができる。
 上述の開示において、変換情報は、命令の内容ごとに記憶部に格納される。変換情報特定部は、実行条件が成立した命令および中継装置の種類に基づいて変換情報を特定する。
 この開示によれば、制御装置は、命令の内容と中継装置の種類とに応じたプログラムを記憶しておく必要がないため、記憶部に格納するデータ量を減らすことができる。
 上述の開示において、ユーザプログラムは、通信設定にかかる命令と、この命令に比べて優先度の高い優先命令とを含む。制御装置は、優先命令を定周期で繰り返し実行する定周期タスク実行部をさらに含む。通信設定部は、前記優先命令の実行を妨げないように通信設定にかかる命令を行う。
 この開示によれば、優先度の高い命令を妨げることなく、通信設定にかかる命令を実行することができる。
 上述の開示において、制御装置は、中継装置を介して第1のフィールド装置群を管理する第1機器と、第2のフィールド装置群を管理する第2機器と通信可能に接続されている。記憶部は、第1のフィールド装置群を動かす条件を含む第1のレシピと、第2のフィールド装置群を動かす条件を含む第2のレシピとを格納する。ユーザプログラムは、接続先の機器を切り替える命令と、切り替えに応じてレシピを切り替える命令とを含む。
 この開示によれば、段取り替えを容易に行うことができる。
 本開示の別の一例によれば、中継装置を介して他の装置と通信可能な制御装置用のユーザプログラムの開発を支援するためのサポート装置が提供される。サポート装置は、中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ格納する記憶部と、記憶部に格納された少なくとも一つの命令を組み合わせてユーザプログラムを生成するための制御部とを含む。制御部は、命令の実行時に制御装置が中継装置との間でコマンドの送受信を行うことが可能な形式でユーザプログラムを作成する。
 この開示によれば、中継装置との間でのコマンドの送受信の方法を知らないユーザであっても、中継装置に対する通信設定を容易に行うためのユーザプログラムを作成することができる。
 本開示の別の一例によれば、中継装置と、中継装置を介して他の装置と通信可能な制御装置とを含む通信システムが提供される。制御装置は、中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、
  命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、命令が示す通信設定を行う通信設定部とを含む。
 この開示によれば、中継装置との間でのコマンドの送受信の方法を知らないユーザであっても、通信設定を指定すれば、指定した設定内容に応じた処理を制御装置が実行するため、中継装置に対する通信設定を容易に行う環境が提供される。
 中継装置に対して行う設定を容易に行うことが可能な環境が提供される。
本実施の形態に係る制御装置の適用場面を模式的に示す図である。 実施の形態1に係る通信システムのシステム構成を示す図である。 CPUユニットの装置構成の一例を示す模式図である。 CPUユニットのソフトウェア構成を示す模式図である。 サポート装置の装置構成の一例を示す模式図である。 サポート装置のソフトウェア構成を示す模式図である。 通信設定に係るプログラムの実行により実現されるコントローラの機能構成を示す図である。 通信設定に係るファンクションブロックを組み込んだユーザプログラムの例を示す図である。 通信設定に係るファンクションブロックを組み込んだユーザプログラムの例を示す図である。 図8および図9に示すユーザプログラムを実行したときの定周期タスク実行部および通信設定部が処理を実行するタイミングを示す図である。 通信設定部と設定情報更新部との間のコマンドの遣り取りを示す図である。 サポート装置において用意されている命令の一例である。 通信システムの変形例を示す図である。 実施の形態2の制御装置の概略構成を示す図である。
 以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
 §1 適用例
 図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御装置100Aの適用場面を模式的に示す図である。制御装置100Aは、中継装置200Aを介して、他の装置(装置41A,41B,41C)と通信可能に接続されている。
 制御装置100Aは、他の装置との間の通信に関する設定である通信設定を行うための命令を少なくとも一つ含むユーザプログラム1066Aが格納された記憶部106Aと、通信設定を行う通信設定部160Aとを備える。
 通信設定は、他の装置との間の通信に関する設定であって、中継装置200Aに対して行う設定をいう。
 通信設定部160Aは、命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、当該命令が示す通信設定を行う。
 たとえば、図1に示す例では、命令aの実行条件が成立し、命令aの実行が完了すると命令bの実行条件が成立し、命令bの実行が完了すると命令cの実行条件が成立し、命令cの実行が完了すると命令dの実行条件が成立するというユーザプログラム1066Aを記憶部106Aは格納する。
 このユーザプログラム1066Aは、たとえば、サポート装置30Aが提供する開発環境によって作成される。サポート装置30Aは、たとえば、汎用的なアーキテクチャに従うハードウェアを用いて実現される。
 通信設定部160Aは、図1に示すように、命令aを実行するにあたり、中継装置200Aとの間でコマンドの遣り取りを行う。通信設定部160Aは、命令aの実行が完了すると、命令bを実行し、命令bの実行にあたり中継装置200Aとの間でコマンドの遣り取りを行う。同様に、命令c、命令dの実行にあたっても、通信設定部160Aは、中継装置200Aとの間でコマンドの遣り取りを行う。
 このように、通信設定においては、中継装置200Aと制御装置100Aとの間でコマンドの遣り取りが必要であるものの、通信設定部160Aが命令の実行に伴い、このコマンドの遣り取りを行うため、ユーザは、中継装置200Aと制御装置100Aとの間で行われる詳細なコマンドの遣り取りについて学習しなくとも、中継装置200Aに対する通信設定を行うことが可能である。
 §2 構成例
 [実施の形態1]
 <A.通信システムのシステム構成>
 図2は、実施の形態1に係る通信システム1のシステム構成を示す図である。通信システム1は、製造作業が実際に行われる製造現場2に設置されるシステムである。通信システム1は、製造現場2で働く人々(以下、「ユーザ」ともいう。)によって利用される。通信システム1は、製造現場2に対してリモートで閲覧や操作が可能なリモートサイト4と製造現場2との間の通信に関する設定(以下、「通信設定」ともいう。)を行うための環境を提供する。
 通信システム1は、製造装置やロボットなどを制御するコントローラ10と、ユーザが通信設定を行うために操作するタッチパネル式のHMI(Human Machine Interface)20とを含む。
 コントローラ10は、情報系ネットワークNW1を介してHMI20と通信可能に接続されており、HMI20をユーザが操作することでHMI20から出力される設定指示に従って通信設定を行う。
 コントローラ10は、制御系ネットワークNW2を介してフィールド装置群40と接続されている。フィールド装置群40は、制御対象または制御に関連する製造装置や生産ラインなど(以下、「フィールド」とも総称する。)からデータを収集する装置を含む。このようなデータを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群40は、さらに、コントローラ10にて生成される指令に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。
 図2に示す例においては、フィールド装置群40は、リモートI/O(Input/Output)装置41と、リレー群42と、サーボドライバ45およびサーボモータ46とを含み、これらがコントローラ10に接続されている例を示す。
 コントローラ10は、CPUユニット100と、中継ユニット200と、電源ユニット300とを含む。電源ユニット300は、CPUユニット100などコントローラ10を構成する各種装置に電力を供給する。
 CPUユニット100は、制御対象についての制御演算を実行する制御装置に相当する。CPUユニット100は、中継ユニット200を介して、リモートサイト4のコンピュータ4aと接続される。CPUユニット100は、ユーザにおける制御目的に応じて作成されるユーザプログラムを実行することで、制御対象を制御する。CPUユニット100は、CPUユニット100に接続された種々の装置を制御対象とすることが可能である。具体的には、CPUユニット100は、中継ユニット200を制御対象とすることができ、中継ユニット200の状態を変更することができる。具体的には、CPUユニット100は、中継ユニット200の設定を行うことができる。中継ユニット200の設定が行われることで、リモートサイト4と製造現場2との間の通信設定が行われることとなる。なお、実施の形態1において、通信設定にかかるユーザプログラムは、ユーザがHMI20を操作することでHMI20から出力される設定変更指示に従って実行される。
 ユーザプログラムは、サポート装置30が提供する開発環境によって作成される。CPUユニット100は、サポート装置30と接続するためのインターフェイスを備える。サポート装置30で作られたユーザプログラムは、サポート装置30からCPUユニット100にインストールされ、CPUユニット100によって実行される。ユーザプログラムは、国際規格IEC61131-3においてPLCアプリケーションのプログラミング言語として規定されたプログラム言語で記述されたものである。具体的には、ユーザプログラムは、ラダーダイアグラム(LD:Ladder Diagram)、ファンクションブロックダイアグラム(FBD:Function Block Diagram)、シーケンシャルファンクションチャート(SFC:Sequential Function Chart)、インストラクションリスト(IL:Instruction List)、ストラクチャードテキスト(ST:Structured Text)の5種類のうちの一または複数の言語で記述されたプログラムである。
 中継ユニット200は、ルータ機能を有する制御機器であって、CPUユニット100と他の装置との間のデータの遣り取りを仲介する中継機能を提供する。図2に示す例では、中継ユニット200は、ネットワークNW3を経由してリモートサイト4内のネットワークと通信可能に接続される。リモートサイト4内のネットワークには、コンピュータ4aが接続されている。すなわち、中継ユニット200は、CPUユニット100とコンピュータ4aとの間のデータの遣り取りを仲介する。より具体的には、中継ユニット200は、ネットワークNW3を経由してコンピュータ4aが接続された中継器4bと通信可能である。
 ネットワークNW3としては、インターネット、VPN(Virtual Private Network)、専用回線、またはこれらを組み合わせた通信回線などが想定され、有線のネットワークと無線のネットワークとのうちのいずれのネットワークであってもよい。実施の形態1においては、ネットワークNW3は、VPNである。
 CPUユニット100と中継ユニット200との間の通信を可能にするネットワークにおいて、一例として、CPUユニット100には、IPアドレスとして「192.168.1.1/24」が割り当てられる。中継ユニット200には、IPアドレスとして「192.168.1.254/24」が割り当てられる。
 ネットワークNW3において、一例として、中継ユニット200には、IPアドレスとして「10.0.0.1」が割り当てられる。中継器4bには、IPアドレスとして「20.0.0.1」が割り当てられる。
 中継器4bとコンピュータ4aとの間の通信を可能にするネットワークにおいて、一例として、中継器4bには、IPアドレスとして「192.168.2.254/24」が割り当てられる。コンピュータ4aには、IPアドレスとして「192.168.2.1/24」が割り当てられる。
 <B.CPUユニットの装置構成>
 図3は、CPUユニット100の装置構成の一例を示す模式図である。CPUユニット100は、プロセッサ102と、メインメモリ104と、ストレージ106と、情報系ネットワークコントローラ108と、制御系ネットワークコントローラ110と、ユニット間バスコントローラ112と、ローカルバスコントローラ114と、USBコントローラ116と、メモリカードインターフェイス118とを備える。これらのコンポーネントは、プロセッサバス120を介して接続されている。
 プロセッサ102は、標準制御に係る制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。このように、CPUユニット100は、1または複数のプロセッサ102、および/または、1または複数のコアを有するプロセッサ102を有している。プロセッサ102は、ストレージ106に格納されたプログラムを読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
 メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ106は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
 ストレージ106には、プロセッサ102が実行する各種プログラムおよびプログラムの実行に必要な各種データが格納される。
 情報系ネットワークコントローラ108は、情報系ネットワークNW1(図2参照)を介してHMI20との通信を仲介する。情報系ネットワークNW1としては、たとえば、EtherNet/IP(登録商標)などの定時性が保証されるネットワークプロトコルが好ましい。
 制御系ネットワークコントローラ110は、制御系ネットワークNW2(図2参照)を介してフィールド装置群40との通信を仲介する。制御系ネットワークNW2としては、たとえば、EtherCAT(登録商標)などの定時性が保証されるネットワークプロトコルが好ましい。
 ユニット間バスコントローラ112は、他のユニットとデータ通信可能に接続するためのデバイスである。実施の形態1においては、CPUユニット100のユニット間バスコントローラ112を介して、中継ユニット200および電源ユニット300が接続される。ユニット間バスコントローラ112としては、例えば、公知のデータ伝送規格(例えば、PCI Express)などに従うデバイスを採用できる。
 ローカルバスコントローラ114は、図示しないローカルバスを介してCPUユニット100に直接装着される入出力ユニットとの間の通信を仲介する。
 USBコントローラ116は、USB接続を介して、サポート装置30などとの間でデータを遣り取りする。
 メモリカードインターフェイス118は、着脱可能な記録媒体の一例であるメモリカード118aを受付ける。メモリカードインターフェイス118は、メモリカード118aに対してデータを書込み、メモリカード118aから各種データを読出すことが可能になっている。
 <C.CPUユニットのソフトウェア構成>
 図4は、CPUユニット100のソフトウェア構成を示す模式図である。図4には、実施の形態1に係る各種機能を提供するためのソフトウェア群の一例を示す。これらのソフトウェア群に含まれる命令コードは、ストレージ106に格納されており、適切なタイミングで読み出され、CPUユニット100のプロセッサ102によって実行される。
 CPUユニット100で実行されるソフトウェアとしては、基本的には、OS(Operating System)1062と、システムプログラム1064と、ユーザプログラム1066とを含む。
 OS1062は、CPUユニット100のコンピュタアーキテクチャに応じて設計されており、プロセッサ102がシステムプログラム1064およびユーザプログラム1066を実行するための基本的な実行環境を提供する。OS1062は、典型的には、コントローラのメーカあるいは専門のソフトウェア会社などによって提供される。
 システムプログラム1064は、コントローラ10としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム1064は、スケジューラプログラム642と、シーケンス命令プログラム644と、入出力処理プログラム646と、アクセス処理プログラム648とを含む。システムプログラム1064に含まれる各プログラムは、典型的には、コントローラのメーカあるいは専門のソフトウェア会社などによって提供される。
 ユーザプログラム1066は、ユーザにおける制御目的に応じて作成される。実施の形態1において、ユーザプログラム1066は、例えばサポート装置30において生成される。ユーザプログラム1066は、サポート装置30からUSBケーブルを介してCPUユニット100に転送され、ストレージ106に格納される。
 ユーザプログラム1066は、シーケンス命令プログラム644と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム1066は、シーケンス命令プログラム644によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。
 スケジューラプログラム642は、予め定められた優先度に従ってプログラムをプロセッサ102に実行させる。プログラムは、実行タイミングが保証されている必要性が高いプログラムと、実行タイミングが保証されている必要性が低いプログラムとを含む。たとえば、複数の制御装置を協働して動かすためのプログラムは、実行タイミングが保証されている必要性が高い。一方、通信設定を行なうためのプログラムは、実行タイミングが保証されている必要性が低い。実行タイミングが保証されている必要性が高いプログラムは、定周期で繰り返し実行される定周期タスクに設定される。これに対して、実行タイミングが保証されている必要性が低いプログラムは、定周期タスクに設定されたプログラムの実行を妨げないように、定周期タスクを実行していないプロセッサ102の空き時間に実行される。なお、ここで、「タスク」とはコンピューティング資源を割当てる制御の対象となる基本単位のことをいう。スケジューラプログラム642は、プロセッサ102が実行する各プログラムについて、処理開始および処理中断、ならびに、処理中断後の処理再開を制御する。
 シーケンス命令プログラム644は、ユーザプログラム1066の実行に伴って、ユーザプログラム1066内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
 入出力処理プログラム646は、コントローラ10に接続されたフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
 アクセス処理プログラム648は、ユーザプログラム1066の実行に伴って、通信設定を行なうために必要な処理を実現するための命令コード群を含む。
 <D.サポート装置の装置構成>
 図5は、サポート装置30の装置構成の一例を示す模式図である。サポート装置30は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
 サポート装置30は、プロセッサ31と、メインメモリ32と、入力部33と、出力部34と、ストレージ35と、光学ドライブ36と、通信インターフェィスの一実施例であるUSBコントローラ37とを含む。これらのコンポーネントは、プロセッサバス38を介して接続されている。
 プロセッサ31は、CPUやGPUなどで構成され、ストレージ35に格納されたプログラムを読出して、メインメモリ32に展開して実行することで、後述するような各種処理を実現する。
 メインメモリ32は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ35は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
 ストレージ35には、ユーザプログラム1066を作成するにあたって利用される各種データおよび、ユーザプログラム1066の開発を支援するためのプログラムが格納される。
 入力部33は、キーボードやマウスなどで構成され、サポート装置30に対するユーザ操作を受付ける。
 出力部34は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ31からの処理結果などを出力する。実施の形態1において、出力部34はディスプレイで構成されているものとする。
 USBコントローラ37は、USB接続を介して、CPUユニット100などとの間のデータを遣り取りする。
 サポート装置30は、光学ドライブ36を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体36a(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ35などにインストールされる。
 サポートプログラム354やファンクションブロック400などは、コンピュータ読取可能な記録媒体36aを介してサポート装置30にインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置30が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
 図5には、プロセッサ31がプログラムを実行することで、サポート装置30として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 <E.サポート装置30のソフトウェア構成>
 図6は、サポート装置30のソフトウェア構成を示す模式図である。図6には、実施の形態1に係る各種機能を提供するためのソフトウェア群の一例を示す。これらのソフトウェア群に含まれる命令コードは、適切なタイミングで読み出され、サポート装置30のプロセッサ31によって実行される。
 サポート装置30で実行されるソフトウェアは、少なくとも、OS352と、サポートプログラム354とを含む。これらのプログラムは、ストレージ35に格納されている。また、プログラムの実行に利用されるデータは、ファンクションブロックライブラリ(以下、「FBライブラリ」ともいう。)356と、コマンドライブラリ358とを含み、ストレージ35に格納されている。
 OS352は、サポートプログラム354を実行可能な基本的な環境を提供する。サポートプログラム354は、サポート装置30が提供する機能を実現するためのプログラムであって、ユーザプログラム1066を作成するための機能を提供する。
 FBライブラリ356は、ユーザプログラム1066を生成するための命令情報ごとに規定されたプログラム部品であるファンクションブロックのライブラリである。FBライブラリ356は、通信の設定に必要な命令に対応するファンクションブロック400を含む。実施の形態1において、たとえば、製造現場2とリモートサイト4との間でのVPN設定を中継ユニット200に書き込むという命令に対応するファンクションブロック、中継ユニット200に書き込まれたVPN設定を読み出す命令に対応するファンクションブロック、中継ユニット200に書き込まれた設定を有効にする命令に対応するファンクションブロックなどがFBライブラリ356に含まれる。
 ユーザは、ファンクションブロック400の実行に必要なパラメータを入力部33を介して入力することができ、パラメータを入力したファンクションブロック400を組合わせることでユーザプログラム1066を作成する。
 コマンドライブラリ358は、中継ユニット200とCPUユニット100との間で行われるコマンドの送受信にかかるプロトコルを含む変換情報582のライブラリである。より具体的には、プロトコルは、コマンドの送受信の手順、およびコマンドの種類とを含む情報である。CPUユニット100は、変換情報582に含まれるプロトコルに従い中継ユニット200に対して通信設定を行う。
 変換情報582は、中継ユニット200がサポートするコマンドの種類ごとにコマンド群580としてコマンドライブラリ358に格納されている。たとえば、A社のコマンドに変換するためのコマンド群580AとB社のコマンドに変換するためのコマンド群580Bなどがコマンドライブラリ358に格納されている。各コマンド群580は、各々、ファンクションブロック400を対応するコマンドに変換する変換情報582を含む。
 これらのファンクションブロック400およびコマンドライブラリ358は、たとえば、コントローラのメーカあるいは専門のソフトウェア会社などが記録媒体36aに格納させた状態で流通する。ユーザは、記録媒体36aに格納されたファンクションブロック400およびコマンドライブラリ358をサポート装置30にインストールすることで、ファンクションブロック400およびコマンドライブラリ358を利用することができる。
 サポートプログラム354は、エディタ541と、コンパイラ542と、デバッガ543と、GUI(Graphical User Interface)モジュール544と、シミュレータ545と、データ格納部550とを含む。
 エディタ541は、ユーザプログラム1066のソースプログラムを作成するための入力および編集といった機能を提供する。より具体的には、エディタ541は、キーボードまたはマウスで構成された入力部33をユーザが操作してユーザプログラム1066のソースプログラムを作成する機能に加えて、作成したソースプログラムの保存機能および編集機能を提供する。エディタ541は、設計者の操作に応じて、FBライブラリ356から選択されたファンクションブロック400を用いて、ユーザプログラム1066のソースプログラムを作成する。
 コンパイラ542は、ソースプログラムをコンパイルして、コントローラ10で実行可能なプログラム形式のユーザプログラム1066を生成する機能を提供する。
 デバッガ543は、ユーザプログラム1066のソースプログラムに対してデバッグを行うための機能を提供する。
 GUIモジュール544は、設計者が各種データやパラメータなどを入力するためのユーザインターフェイス画面を提供する機能を有する。当該ユーザインターフェイス画面は、ディスプレイで構成された出力部34に表示される。
 シミュレータ545は、サポート装置30内にコントローラ10でのプログラムの実行をシミュレーションする環境を構築する。
 データ格納部550には、作成されたユーザプログラム1066が格納される。このユーザプログラム1066は、一または複数のファンクションブロック400を含む。データ格納部550に格納されたユーザプログラム1066は、USBケーブルを介してCPUユニット100に送られ、設定される。このとき、ユーザプログラム1066に含まれるファンクションブロック400に対応する変換情報582も併せてCPUユニット100に送られ、設定される。なお、実施の形態1において、サポート装置30は、ファンクションブロック400に対応する変換情報582を各コマンド群580からそれぞれ抽出し、抽出した全ての変換情報582をCPUユニット100に送る。
 これにより、通信設定を行なうためのユーザプログラムを、FAの分野で利用されるIECプログラムで作成することができる。その結果、IECプログラムの設計者が、新たに通信機能を設定するための学習をしなくとも、通信機能にかかる設定を行なうためのユーザプログラムを作成することができる。
 なお、図6に示す例では、FBライブラリ356およびコマンドライブラリ358がサポート装置30のストレージ35に格納されているものとしたが、FBライブラリ356およびコマンドライブラリ358のうちの少なくとも一方が、サポート装置30とネットワークを介して接続可能なサーバ装置に格納されていてもよい。
 <F.通信設定に係るプログラムの実行により実現される機能構成>
 図7は、通信設定に係るプログラムの実行により実現されるコントローラ10の機能構成を示す図である。
 図7に示す各種機能は、ユーザプログラム1066に含まれる通信設定に関するファンクションブロック400の実行条件が成立し、ファンクションブロック400が示す命令がプロセッサ102により実行されることで実現される。
 CPUユニット100は、定周期タスク実行部140と、通信設定部160と、変換情報特定部180とを含む。中継ユニット200は、設定情報格納部220と、設定情報更新部240とを含む。
 定周期タスク実行部140は、定周期タスクを定周期で繰り返し実行する。定周期タスク実行部140は、少なくとも、ファンクションブロック400が示す命令を実行するか否かの判断を行う。ファンクションブロック400が示す命令の実行条件が成立すると、定周期タスク実行部140は、通信設定部160にファンクションブロック400が示す命令の実行を指示する。
 変換情報特定部180は、CPUユニット100に接続されている中継ユニット200が解釈可能なコマンドを特定し、特定したコマンドに変換するための変換情報582を特定する。より具体的には、変換情報特定部180は、中継ユニット200のデバイス情報260を中継ユニット200から取得し、デバイス情報260に基づいて変換情報582を特定する。デバイス情報260は、たとえば、MAC(Media Access Control)アドレスが想定される。
 より具体的には、サポート装置30からユーザプログラム1066がインストールされるときには、ユーザプログラム1066に含まれる1または複数のファンクションブロック400の各々に対応する変換情報582が各コマンド群580から抽出され、CPUユニット100にインストールされる。この変換情報582の集合を変換情報群182とする。変換情報特定部180は、変換情報群182から、通信設定部160が実行するファンクションブロック400と、特定したデバイス情報260とに基づいて変換情報582を特定する。たとえば、CPUユニット100に接続されている中継ユニット200がA社のコマンドを解釈し、通信設定部160がファンクションブロックAの命令を実行する場合、変換情報特定部180は、変換情報aaを特定することとなる。
 通信設定部160は、変換情報特定部180が特定した変換情報582に基づいて、ファンクションブロック400が示す命令を中継ユニット200との間でコマンドの遣り取りを行なうことで実行する。
 定周期タスク実行部140は定周期でタスクを実行し、当該タスクには通信設定部160の命令の実行状況を取得する処理が含まれる。すなわち、定周期タスク実行部140は、通信設定部160が行なう命令の実行を監視する。
 中継ユニット200の設定情報格納部220は、通信設定に関する情報が格納されている。中継ユニット200とCPUユニット100との間でコマンドが遣り取りされる中で、設定情報格納部220に格納された通信設定に関する情報(設定情報222)は改変される。
 中継ユニット200の設定情報更新部240は、通信設定部160とコマンドの遣り取りをし、コマンドの遣り取りをする中で、設定情報格納部220に設定情報222を格納する。
 製造現場2においては、CPUユニット100を中心にフィールド装置群40などの装置が制御される。実施の形態1において、CPUユニット100は、中継装置である中継ユニット200と遣り取りができるコマンドに変換した上で、中継ユニット200との間でデータの遣り取りを行い、中継ユニット200の通信設定を行う。すなわち、実施の形態1の通信システム1は、フィールド装置群40などの装置を制御する制御装置であるCPUユニット100から、通信を中継する中継装置である中継ユニット200の状態を変えることができる。
 そのため、製造現場2で働くユーザは、セキュリティや通信に対する専門的な知識を身につけなくとも、フィールド装置群40などの装置を制御するときと同じように中継装置である中継ユニット200の状態を変えることができる。実施の形態1においては、CPUユニット100は、中継装置の状態として、通信の設定を変更することができる。また、実施の形態1において、CPUユニット100から中継ユニット200の状態を変える方法として、ユーザプログラムを実行するという方法が採用されている。
 <G.プログラム例>
 (G1.ユーザプログラム)
 図8および図9を参照して、ファンクションブロックの使用例について説明する。図8および図9は、通信設定に係るファンクションブロックを組み込んだユーザプログラム1066の例を示す図である。
 図8および図9に示すユーザプログラム1066は、ラダープログラムで規定されている。このユーザプログラム1066は、製造現場2において異常が発生し、コントローラ10がメンテナンスモードに設定された場合に、リモートサイト4からメンテナンスを行えるようにVPNの設定を行なうことが規定されている。
 ユーザプログラム1066は、入力要素IN1~IN6と、ファンクションブロックFB1~FB3と、ストラクチャードテキストSTと、出力要素OUT1~OUT5とで規定されている。
 ファンクションブロックFB1は、「RC_SetVPNServerSetting」と称される。ファンクションブロックFB1は、製造現場2とリモートサイト4との間でのVPN設定を中継ユニット200に書き込むという命令を示している。ファンクションブロックFB1は、中継ユニット200に書き込む設定条件の入力を受け付ける入力部412A~412Kと、書き込み処理を行った結果を出力するための出力部414A~414Dとを含む。
 入力部412B~412KはVPNの設定条件を示しており、入力部412B~412Kに入力された設定条件にしたがってVPNが規定される。
 「Execute」として示される入力部412Aは、書き込み処理を実行するか否かを指定するための設定を受け付ける。一例として、入力部412Aは、「True」(ON)または「False」(OFF)の入力を受け付ける。入力部412Aに「False」が入力されている限り、書き込み処理は実行されない。図8に示す例では、入力要素IN3の値が「True」(ON)となったときに書き込み処理が実行される。
 「VPNServerAddress」として示される入力部412Bは、VPNサーバとして利用するIPアドレスを指定するための入力を受け付ける。このIPアドレスは、中継ユニット200に予め設定されている1または複数のIPアドレスのうちの一のIPアドレスである。CPUユニット100は、入力部412Bに入力されたIPアドレスに従って、通信設定を行なう対象を特定する。図8に示す例では、入力部412Bに「192.168.1.254/24」が入力されており、CPUユニット100は、中継ユニット200に割り振られたIPアドレスのうち、「192.168.1.254/24」をVPNサーバ用のアドレスとして利用する。
 「LoginID」として示される入力部412Cは、VPNの設定を行なうためのユーザIDの入力を受け付ける。「LoginPassword」として示される入力部412Dは、VPNの設定を行なうためのパスワードの入力を受け付ける。ユーザIDおよびパスワードは、中継ユニット200に対してリモートアクセスする際に必要な情報である。
 「VPNSeverConfigName」として示される入力部412Eは、任意に設定可能なVPNサーバの名称の入力を受け付ける。
 「VPNClientAddress」として示される入力部412Fは、フィールドネットワークの外部のネットワーク上で、中継ユニット200に対してアクセスする中継器4bに割り当てられているIPアドレスを指定するための入力を受け付ける。図8に示す例では、入力部412Fに「20.0.0.1」が入力されており、中継ユニット200は、「20.0.0.1」のIPアドレスが割り当てられた中継器4bからのアクセスを許可する。
 「PreSharedKey」として示される入力部412Gは、リモートアクセスを許可するか否かを決定するための事前共有鍵を指定するための入力を受け付ける。
 「AuthenticationAlgorithm」として示される入力部412Hは、設定されたVPNにおいて利用される認証アルゴリズムを指定するための入力を受け付ける。認証アルゴリズムは、たとえば、MD5(Message Digest Algorithm 5),SHA(Secure Hash Algorithm)-1,HMAC(Hash-based Message Authentication Code)などが想定される。
 「EncryptionAlgorithm」として示される入力部412Iは、設定されたVPNにおいて利用される暗号アルゴリズムを指定するための入力を受け付ける。暗号アルゴリズムは、たとえば、DES(Data Encryption Standard),3DES,AES(Advanced Encryption Standard)などが想定される。
 「DestinationIPAddress」として示される入力部412Jは、設定されたVPNにアクセスする機器のIPアドレスを指定するための入力を受け付ける。図8に示す例では、入力部412Jに「192.168.2.0」が入力されており、中継ユニット200は、「192.168.2.0」が割り当てられた機器のアクセスを許可する。
 「DestinationNetworkMask」として示される入力部412Kは、入力部412Jに入力されたIPアドレスのネットマスクを指定するための入力を受け付ける。
 書き込み処理が正常に実行された場合には、正常終了を示す信号が、「Done」として示される出力部414Aから出力される。書き込み処理の実行中には、書き込み処理中を示す信号が、「Busy」として示される出力部414Bから出力される。VPN設定が正常に書き込まれなかった場合には、異常終了を示す信号が、「Error」として示される出力部414Cから出力される。この場合には、さらに、エラーの内容を識別するためのエラーIDが、「ErrorID」として示される出力部414Dから出力される。
 ファンクションブロックFB2は、「RC_ApplyVPNServerSetting」と称される。ファンクションブロックFB2は、中継ユニット200に書き込まれたVPN設定を有効にする命令を示している。ファンクションブロックFB2は、有効にするVPN設定を指定するための入力を受け付ける入力部422A~422Eと、有効化処理を行った結果を出力するための出力部424A~424Dとを含む。
 入力部422B~424Eが受け付ける情報は、有効にするVPNサーバを特定するための情報である。入力部422B~424Eの各々が受け付ける詳細な情報は、入力部412B~414Eが受け付ける情報と共通するため、説明を省略する。また、出力部424A~424Dが出力する情報は、出力部414A~414Dが出力する情報と共通するため、説明を省略する。
 ファンクションブロックFB3は、「RC_GetVPNServerSetting」と称される。ファンクションブロックFB3は、中継ユニット200に書き込まれたVPN設定を読み出す命令を示している。ファンクションブロックFB3は、読み出す対象のVPN設定を指定するための入力を受け付ける入力部432A~432Eと、有効化処理を行った結果を出力するための出力部434A~434Jとを含む。
 入力部432A~434Eが受け付ける情報は、入力部412A~414Eが受け付ける情報と共通するため、説明を省略する。また、出力部434A~434Dが出力する情報は、出力部414A~414Dが出力する情報と共通するため、説明を省略する。出力部414E~414Jが出力する情報は、入力部432A~434Eに入力されて指定されたVPN設定の結果である。出力部414E~414Jの全てから情報が出力されたことに伴って、正常終了を示す信号が、「Done」として示される出力部414Aから出力される。
 ストラクチャードテキストSTは、「RC_CheckVPNServerSetting」と称される。ストラクチャードテキストSTは、書き込まれたVPN設定の情報と、読み出されたVPN設定の情報とが一致しているか否かを判定するための命令を示している。ストラクチャードテキストSTが示す命令を設定照合処理とする。より具体的には、ストラクチャードテキストSTは、ファンクションブロックFB1の入力部412F~入力部412Kに入力された各情報と、ファンクションブロックFB3の出力部432E~432Jから出力された各情報とが一致している場合に、変数「CheckVPNDone」の値を「True」(ON)にし、いずれか一つでも一致していなけらば、変数「CheckVPNDone」の値を「False」(OFF)にする。
 入力要素IN1~IN6の値は、割付けられている変数に応じて変化する。より具体的には、入力要素IN1には、変数「Status_Err」が割り当てられている。変数「Status_Err」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「Status_Err」の値は、コントローラ10の状態がエラー状態となったことに基づいて、「True」(ON)に変化する。その他の場合、変数「Status_Err」の値は、「False」(OFF)となる。
 入力要素IN2には、変数「Mode_maintenance」が割り当てられている。変数「Mode_maintenance」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「Mode_maintenance」の値は、ユーザがHMI20を操作して、コントローラ10をリモートメンテナンスを実行するモードに変化させたことに基づいて、「True」(ON)に変化する。その他の場合、変数「Mode_maintenance」の値は、「False」(OFF)となる。なお、リモートメンテナンスを実行するモードに変化させる契機は、HMI20からの操作に限らず、コントローラ10に設けられた図示しないスイッチへの操作によるものであってもよい。
 入力要素IN3には、変数「SetVPNFlag」が割り当てられている。変数「SetVPNFlag」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「SetVPNFlag」の値は、出力要素OUT1に関連付けられている。出力要素OUT1から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「SetVPNFlag」の値は、「False」(OFF)となる。なお、出力要素OUT1は、入力要素IN0および入力要素IN1がいずれも「True」(ON)となるときに、「True」(ON)を出力し、その他の場合、「False」(OFF)を出力する。
 入力要素IN4には、変数「SetVPNDone」が割り当てられている。変数「SetVPNDone」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「SetVPNDone」の値は、出力要素OUT2に関連付けられている。出力要素OUT2から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「SetVPNDone」の値は、「False」(OFF)となる。なお、出力要素OUT2は、ファンクションブロックFB1の出力部414Aから正常終了を示す信号が出力されると、「False」(=OFF)から「True」(ON)に変化する。
 入力要素IN5には、変数「ApplyVPNDone」が割り当てられている。変数「ApplyVPNDone」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「ApplyVPNDone」の値は、出力要素OUT3に関連付けられている。出力要素OUT3から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「ApplyVPNDone」の値は、「False」(OFF)となる。なお、出力要素OUT3は、ファンクションブロックFB2の出力部424Aから正常終了を示す信号が出力されると、「False」(=OFF)から「True」(ON)に変化する。
 入力要素IN6には、変数「GetVPNDone」が割り当てられている。変数「GetVPNDone」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「GetVPNDone」の値は、出力要素OUT4に関連付けられている。出力要素OUT4から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「GetVPNDone」の値は、「False」(OFF)となる。なお、出力要素OUT4は、ファンクションブロックFB3の出力部434Aから正常終了を示す信号が出力されると、「False」(=OFF)から「True」(ON)に変化する。
 出力要素OUT5には、変数「CheckVPNDone」が割り当てられている。変数「CheckVPNDone」は、ストラクチャードテキストSTにおいて、書き込まれたVPN設定の情報と、読み出されたVPN設定の情報とが全て一致している場合に「True」(ON)となり、少なくとも一の情報が一致しなかった場合およびストラクチャードテキストSTのプログラムが実行されていないときに「False」(OFF)となる。
 (G2.実行タイミング)
 図10は、図8および図9に示すユーザプログラムを実行したときの定周期タスク実行部140および通信設定部160が処理を実行するタイミングを示す図である。
 定周期タスク実行部140は、コントローラ10の制御周期に従ってユーザプログラム1066を繰り返し実行する。定周期タスク実行部140において実行される一連の処理は、制御周期Tごとに必ず1周期実行される。定周期タスク実行部140が実行する一連の処理(優先処理142と称する)には、I/Oリフレッシュ処理144が含まれる。I/Oリフレッシュ処理144においては、変数の値が更新される。
 定周期タスク実行部140は、I/Oリフレッシュ処理144を実行することで変数の値を更新し、その後の処理で、通信設定にかかる処理の実行条件の成立の有無を判断する。通信設定にかかる処理の実行条件が成立している場合、通信設定部160は、優先処理142の実行が完了した後、実行条件の成立している通信設定にかかる処理を実行する。通信設定部160は、次の周期が開始されると実行中の処理を中断し、その後、優先処理142の実行が再度完了すると、中断した処理を再開する。
 図10に示す例においては、タイミングt1でエラー信号が出力され、タイミングt2でメンテナンスモードに設定されたものとする。メンテナンスモードに設定されたタイミングt2における制御周期Tを第1周期とすると、第2周期に実行されるI/Oリフレッシュ処理144で、変数「SetVPNFlag」は「False」(=OFF)から「True」(ON)に変化する。これにより、図8のファンクションブロックFB1が示す書き込み処理の実行条件が成立する。
 書き込み処理は、通信設定部160が実行する処理である。通信設定部160は、第2周期の優先処理142が完了したタイミングt3から書き込み処理を開始し、第3周期の始まるタイミングt4で書き込み処理を中断する。その後、第3周期の優先処理142が完了したタイミングt4から中断した書き込み処理を再開する。
 通信設定部160は、書き込み処理の実行中は処理の実行中を示す信号を出力し、処理が正常に終了すると、正常終了を示す信号を出力する。図10に示す例では、タイミングt5で書き込み処理が終了したものとする。
 タイミングt5で書き込み処理が終了すると、第N+1周期で実行されるI/Oリフレッシュ処理144で、変数「SetVPNDone」は「False」(=OFF)から「True」(ON)に変化する。これにより、図8のファンクションブロックFB2が示す有効化処理の実行条件が成立する。
 このように、図8および図9に示すユーザプログラム1066の処理は、通信設定部160と定周期タスク実行部140とが協働して進める。そして、ストラクチャードテキストSTが示す設定照合処理が完了した以降は、他の実行条件が成立するまで通信設定部160は、処理を行わない。
 (G3.CPUユニットと中継ユニットとの間のコマンドの遣り取り)
 図8および図9に示すユーザプログラムを実行したときにCPUユニット100の通信設定部160と中継ユニット200の設定情報更新部240との間で行われる具体的なコマンドの遣り取りについて説明する。図11は、通信設定部160と設定情報更新部240との間のコマンドの遣り取りを示す図である。図11においては、通信設定処理の一例として書き込み処理について説明する。なお、図11においては、図10に示すような処理の中断、再開の記載を省略している。また、ステップは、以下、「S]と省略する。
 前述のように、通信設定部160は、変換情報特定部180が特定した変換情報582に基づいて、ファンクションブロック400が示す命令を中継ユニット200との間でやり取り可能なコマンドに変換し、中継ユニット200との間でコマンドの遣り取りを行ない、ファンクションブロック400が示す命令を実行する。
 より具体的には、通信設定部160は、書き込み処理の実行条件が成立して(S100)、定周期タスク実行部140から書き込み処理の実行について指示を受ける(S102)。通信設定部160は、受けた指示、すなわち実行するファンクションブロック400の種類に対応する変換情報582を特定する(S104)。より具体的には、通信設定部160は、変換情報特定部180に変換情報582の特定を指示し、特定結果を変換情報特定部180から受けることで、変換情報582を特定する。
 通信設定部160は、S104において特定した変換情報582に従ってファンクションブロックFB1が示す命令を解釈し、コマンドの種類、および処理手順などの処理の内容を決定する(S106)。
 通信設定部160は、S106においてい決定した事項に従って、中継ユニット200との間でのコマンドの遣り取りを行う。図11に示す例では、S108~S128の処理が実行される。なお、S108~S128の処理は一例であって、この処理は中継ユニット200の機種に応じて異なる場合もあり、また、遣り取りを行う際に利用されるコマンド(言語)も異なる場合がある。
 通信設定部160は、たとえば、新たに設定するユーザ名、パスワードが利用可能か否かの確認を設定情報更新部240に対して行う(S108)。
 設定情報更新部240は、設定情報格納部220に格納されている情報に基づいて新たに設定するユーザ名、パスワードが利用可能か否かを確認し、確認結果を通信設定部160に通知する(S110)。
 通信設定部160は、設定情報更新部240から通知された確認結果に基づいて、異常があるか否かを判定する(S112)。通信設定部160は、異常がある場合(S112においてYES)、より具体的には、新たに設定するユーザ名、パスワードを利用できない場合、異常終了を示す信号および発生した異常を出力する(S114)。通信設定部160は、異常がない場合(S112においてNO)、より具体的には、新たに設定するユーザ名、パスワードを利用できる場合、指定されたIPアドレスをVPNサーバとして利用可能か否かの確認を設定情報更新部240に対して行う(S116)。
 設定情報更新部240は、設定情報格納部220に格納されている情報および中継ユニット200に対して割り当てられているポートの情報に基づいて指定されたIPアドレスをVPNサーバとして利用可能か否かを確認し、確認結果を通信設定部160に通知する(S118)。
 通信設定部160は、設定情報更新部240から通知された確認結果に基づいて、異常があるか否かを判定する(S120)。通信設定部160は、異常がある場合(S120においてYES)、より具体的には、新たにIPアドレスを利用できない場合、異常終了を示す信号および発生した異常を出力する(S122)。通信設定部160は、異常がない場合(S120においてNO)、より具体的には、新たにIPアドレスを利用できる場合、設定内容にかかる情報の書き込み指示を設定情報更新部240に対して行う(S124)。
 設定情報更新部240は、設定内容にかかる情報を設定情報格納部220に格納し、格納の完了を通信設定部160に対して通知する(S126)。
 通信設定部160は、処理が正常に終了したことを示す信号を出力する(S128)。定周期タスク実行部140は、処理が正常に終了したことを受けて、出力要素OUT2を「False」(=OFF)から「True」(ON)に変化させる。
 これによりファンクションブロックFB2の実行条件が成立し、次の処理が実行される。なお、図11においては、ファンクションブロックFB2以降の処理は省略する。
 このように、通信設定部160は、ユーザが選択した一の命令(ファンクションブロック)を実行するために、設定情報更新部240との間で実行する処理の手順などを規定し、規定した手順に従って処理を実行することで選択された命令を行う。
 <H.通信設定の具体例>
 図12は、サポート装置30において用意されている命令の一例である。実施の形態1においては、中継ユニット200にVPN設定を書き込むという命令、中継ユニット200に書き込まれたVPN設定を有効にする命令、および中継ユニット200に書き込まれたVPN設定を読み出す命令を一例として説明した。中継ユニット200との間でのデータの遣り取りが必要な命令としては、図12に示す命令が想定される。
 図12においては、各設定対象について、当該設定対象に対して想定される命令が「チェック印」で示されている。また、各設定対象について、当該設定対象に設定において必要なパラメータが設定パラメータの列に示されている。
 具体的には、CPUユニット100から中継ユニット200に対して設定可能な事項として、IPアドレス、IPアドレスルーティング(通信経路)、通信ポート、ポートミラーリング、NAT(Network Address Translation)またはNAPT(Network Address Port Translation)、VLAN(Virtual LAN)、Qos(Quality of Service)、ユーザ認証、ACL(Access Control List:アクセス制限リスト)、ファイアフォール設定、電子証明書、ステータス、ログ、レポート通知などが挙げられる。
 設定内容は、取得(Get)、書込(Set)、反映(Apply)、一覧取得(GetList)、クリア(Clear)、および有効・無効(Enable/Disable)が設けられている。取得(Get)は、設定事項に関する情報を取得することを意味する。書込(Set)は、設定事項に関する情報を書き込むことを意味する。反映(Apply)は、設定事項に関する情報を反映することを意味する。一覧取得(GetList)は、設定事項に関する情報の一覧を取得することを意味する。たとえば、一覧取得(GetList)の命令が実行されると、中継装置に接続されているすべての機器から設定事項に関する情報を取得できたり、設定事項に関わるすべての情報を取得できたりする。クリア(Clear)は、設定事項に関する情報を消去したり初期値にもどしたりすることを意味する。有効・無効(Enable/Disable)は、設定された事項の有効・無効を意味する。
 パラメータは、命令を実行する際に入力または出力される情報である。IPアドレスに関する設定においては、たとえば、IPアドレス,ネットワークマスク,デフォルトゲートウェイ,DNS(Domain Name System)サーバー,ホスト名などがパラメータとして規定されている。また、IPアドレスについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、およびクリアを用意することが可能である。
 IPアドレスルーティングに関する設定においては、たとえば、IPルーターテーブルなどがパラメータとして規定されている。また、IPアドレスルーティングについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、およびクリアを用意することが可能である。
 通信ポートに関する設定においては、通信速度、双方向通信(Duplex)の方式などがパラメータとして規定されている。通信ポートについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、およびクリアを用意することが可能である。
 ポートミラーリングに関する設定においては、たとえば、ミラーリングポート、モニタポートなどがパラメータとして規定されている。ポートミラーリングについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 NATまたはNATPに関する設定においては、たとえば、使用するIPアドレス、変換ルールを示すポート変換テーブルなどがパラメータとして規定されている。NATまたはNATPについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 VLANに関する設定においては、たとえば、VLAN ID、VLANのポート番号(VLAN PortNumber)、アクセスポートまたはトランクポートとして設定されるポート番号などがパラメータとして規定されている。VLANについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 Qosに関する設定においては、たとえば、フレームを転送する際の優先度がパラメータとして規定されている。Qosについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 ユーザ認証に関する設定においては、たとえば、ユーザ名やパスワードなどの中継ユニット200のユーザ情報がパラメータとして規定されている。ユーザ認証について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 ACLについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 ファイアウォール設定について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 電子証明書に関する設定において、たとえば、ネットワーク機器の電子証明書がパラメータとして規定されている。たとえば、電子証明書が出力される。電子証明書について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
 ステータスに関する設定においては、たとえば、中継ユニット200のステータスがパラメータとして規定されている。たとえば、中継ユニット200のステータスが出力される。ステータスについて用意されている命令としては、たとえば、取得、反映、一覧取得、および有効・無効を用意することが可能である。
 ログに関する設定においては、たとえば、中継ユニット200のログがパラメータとして規定されている。たとえば、中継ユニット200のログが出力される。ログについて用意されている命令としては、たとえば、反映、一覧取得、クリアおよび有効・無効を用意することが可能である。
 レポート通知に関する設定においては、たとえば、ログの通知先の情報であるアドレスがパラメータとして規定されている。レポート通知について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリアおよび有効・無効を用意することが可能である。
 <I.変形例>
 (変形例1)
 実施の形態1において、通信システム1は、中継ユニット200およびCPUユニット100から構成されるとした。通信システム1の構成は図1に示した構成に限られない。図13は、通信システムの変形例を示す図である。実施の形態1においては、中継装置は制御装置であるCPUユニット100とともに一のコントローラ10を構成する中継ユニット200であるとした。なお、中継装置は、コントローラ10を構成するものである必要はなく、たとえば、図13に示すように、ルータのような中継装置200aであってもよい。図13中のコントローラ10aは、中継ユニット200を含まない構成である。
 また、制御装置の機能を構成するCPUと、中継装置の機能を構成するCPUとを備えるコントローラによって通信システムを構成してもよい。また、制御装置の機能を構成するプロセッサコアと中継装置の機能を構成するプロセッサコアとを備えるマルチコアCPUをコントローラに搭載することで通信システムを構成してもよい。
 (変形例2)
 実施の形態1において、通信システム1は、HMI20を含むものとしたが、HMIを備えていなくともよい。たとえば、通信設定の実行条件が、HMI20から出力される信号に基づいて成立したが、CPUユニット100に入力部を設け、当該入力部が受け付けた捜査に基づいて成立するものであってもよい。また、通信設定の実行条件は、ユーザの操作にかかわらず、コントローラ10の状態や、フィールドネットワークから出力される信号に基づいて成立するものであってもよい。なお、通信設定が変更されると、通信が途切れてしまい、製造現場2に対して多大な影響を与える虞があるため、通信設定の実行条件は、ユーザの操作により成立するようにしてもよい。
 (変形例3)
 実施の形態1において、CPUユニット100は、中継ユニット200の機種および命令に応じた変換情報582を備えるものとした。なお、変換情報582を備えることなく、中継ユニット200の機種ごとに命令を用意してもよい。この場合に、サポート装置30からCPUユニット100へは、CPUユニット100に接続された中継ユニット200に応じた命令を含むユーザプログラムをインストールしてもよく、また、中継ユニット200の機種ごとにユーザプログラムを用意し、すべてのユーザプログラムをCPUユニット100にインストールし、接続された中継ユニット200の種類に応じてユーザプログラムを実行するようにしてもよい。
 また、CPUユニット100は、中継ユニット200の機種を中継ユニット200のデバイス情報260を取得し、デバイス情報260に基づいて変換情報582を特定するものとしたが、中継ユニット200の機種の指定をユーザに行わせるようにしてもよい。たとえば、HMI20に機種の特定を要求する画面を表示させ、HMI20への入力に基づいて変換情報582を特定するようにしてもよい。
 [実施の形態2]
 実施の形態1において、中継装置は、リモートサイト4のネットワークとCPUユニット100の間の通信を中継する装置であった。中継装置は、製造現場2内の各コントローラとそれらのコントローラを統括して管理するコントローラとを中継するスイッチであってもよい。図14は、実施の形態2の制御装置の概略構成を示す図である。
 通信システム1aは、Ethernetスイッチである中継装置200bと、製造現場2の一または複数のラインを管理する上位コントローラ100bと、中継装置200bを介して上位コントローラ100bと接続されている一の製造ラインを管理するコントローラである機器41a~41cとを含む。上位コントローラ100bは、本願発明の制御装置の一例である。機器41a~41cは、中継装置を介して制御装置と接続される機器の一例である。中継装置200bは、本願発明の中継装置の一例である。
 中継装置200bは、複数のポート210a~210dを備える。なお、中継装置200bが有するポートの数は、4つに限られるものではなく、3つ以下であってもよく、また、5つ以上であってもよい。
 ポート210aには、上位コントローラ100bが接続されている。ポート210bには、製品A用のラインを管理するコントローラである機器41aが接続されている。機器41aには、製品Aを製造するために必要なフィールド装置群40aが接続されている。ポート210cには、製品B用のラインを管理するコントローラである機器41bが接続されている。機器41bには、製品Bを製造するために必要なフィールド装置群40bが接続されている。ポート210dには、製品C用のラインを管理するコントローラである機器41cが接続されている。機器41cには、製品Cを製造するために必要なフィールド装置群40cが接続されている。
 上位コントローラ100bは、(1)選択された一または複数の機器との間の通信を切断する(リンクオフ)、(2)選択された一または複数の機器との間の通信をつなげる(リンクオン)、(3)つなげた通信を確認するという3つの命令が組み合わされた構成のユーザプログラム1066aをストレージ106に格納する。また、ストレージ106は、フィールド装置群40a~40cごとに、フィールド装置群を動かすための条件を含むレシピ1068a~1068cを格納する。レシピとは、生産手順、生産品種または生産に適したパラメータなどの条件を含むデータである。すなわち、レシピ1068aは、フィールド装置群40aを動かすための条件を含み、この条件とは、製品Aを製造するための生産手順、生産品種または生産に適したパラメータなどの条件を含む。
 ユーザプログラム1066bは、たとえばサポート装置30を利用して作成され、サポート装置30から上位コントローラ100bにインストールされる。また、レシピ1068a~1068cは、サポート装置30からインストールされてもよく、また、メモリーカードなどの記憶媒体に格納された状態で上位コントローラ100bにインストールされてもよい。
 上位コントローラ100bは、実施の形態1と同様、通信設定部160bを備える。通信設定部160bは、ユーザプログラム1066bに含まれる各命令を実行するにあたり、中継装置200bとの間でコマンドの遣り取りをする。
 ユーザプログラム1066bは、(1)の命令→レシピの更新→(2)の命令→(3)の命令の順で行われるようにプログラミングされている。ここで、レシピとは、生産手順、生産品種または生産に適したパラメータなどの条件を含むデータである。
 すなわち、上位コントローラ100bは、ユーザプログラム1066bの実行条件が成立した場合に、中継装置200bとデータを遣り取りすることでポート210bとの通信を切断し、その後、レシピを製品A用のレシピから製品C用のレシピに切り替える。上位コントローラ100bは、レシピを切り替えたのち、中継装置200bとデータを遣り取りすることで新たにポート210dとの間の通信を確立させる。そして、上位コントローラ100bは、機器Cとの間の通信が確立されたか否かのテストを行い、通信の確立が確認されると処理が正常に終了したものとする。
 このように、通信の切り替え機能を有する中継装置200bを利用し、各ポートに予め機器を接続しておくことで、段取り替えを容易に行うことができる。また、予め機器を中継装置200bに接続しておくことで、段取り替えのときに機器同士を接続する線を抜いたりさしたりする必要がなく、接続線の劣化を防止することができるとともに、接続間違いを防止することができる。
 §3 付記
 以上のように、上記の実施の形態1,2および変形例は以下のような開示を含む。
 <構成1>
 中継装置(200,200A,200a,200b)を介して他の装置(4a,41A,41B,41C,41a,41b,41c)と通信可能な制御装置(100,100A,100a,100b)であって、
 前記中継装置を介した通信に関する通信設定を行うための命令(FB1,FB2,FB3)を少なくとも一つ含むユーザプログラム(1066,1066A,1066a)が格納された記憶部(106,106A)と、
 前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部(160,160A,160b)とを備える、制御装置。
 <構成2>
 前記中継装置との間で行われるコマンドの送受信にかかるプロトコルは、当該中継装置の種類に応じて異なり、
 前記通信設定部は、前記中継装置の種類に応じたプロトコルに従い、当該中継装置との間でコマンドの送受信を行う、構成1に記載の制御装置。
 <構成3>
 前記記憶部は、前記プロトコルを含む変換情報(582)を、前記中継装置の種類ごとに格納し、
 前記中継装置の種類を当該中継装置が備えるデバイス情報(260)に基づいて判断し、当該中継装置の種類に基づいて前記変換情報を特定する変換情報特定部(180)をさらに備え、
 前記通信設定部は、前記変換情報が特定した前記変換情報に基づいて当該中継装置との間でコマンドの送受信を行う、構成2に記載の制御装置。
 <構成4>
 前記変換情報は、前記命令の内容ごとに前記記憶部に格納され、
 前記変換情報特定部は、実行条件が成立した命令および前記中継装置の種類に基づいて前記変換情報を特定する、構成3に記載の制御装置。
 <構成5>
 前記ユーザプログラムは、前記通信設定にかかる命令と、当該命令に比べて優先度の高い優先命令とを含み、
 前記優先命令を定周期で繰り返し実行する定周期タスク実行部(140)をさらに備え、
 前記通信設定部は、前記優先命令の実行を妨げないように前記通信設定にかかる命令を行う、構成1~構成4のうちいずれか1項に記載の制御装置。
 <構成6>
 前記中継装置を介して第1のフィールド装置群を管理する第1機器(41a)と、第2のフィールド装置群を管理する第2機器(41c)と通信可能に接続されており、
 前記記憶部は、前記第1のフィールド装置群を動かす条件を含む第1のレシピ(1068a)と、前記第2のフィールド装置群を動かす条件を含む第2のレシピ(1068c)とを格納し、
 前記ユーザプログラムは、接続先の機器を切り替える命令と、当該切り替えに応じてレシピを切り替える命令とを含む、構成1~構成5のうちいずれか1に記載の制御装置。
 <構成7>
 中継装置(200,200A,200a,200b)を介して他の装置(4a,40A,40B,40C,41a,41b,41c)と通信可能な制御装置(100,100A,100a,100b)用のユーザプログラムの開発を支援するためのサポート装置(30,30A)であって、
 前記中継装置を介した通信に関する通信設定を行うための命令(FB1,FB2,FB3)を少なくとも一つ格納する記憶部(106,106A)と、
 前記記憶部に格納された少なくとも一つの前記命令を組み合わせて前記ユーザプログラムを生成するための制御部(31)とを備え、
 前記制御部は、前記命令の実行時に前記制御装置が前記中継装置との間でコマンドの送受信を行うことが可能な形式で前記ユーザプログラムを作成する、サポート装置。
 <構成8>
 中継装置(200,200A,200a,200b)と、
 前記中継装置を介して他の装置と通信可能な制御装置(100,100A,100a,100b)とを備え、
 前記制御装置は、
  前記中継装置を介した通信に関する通信設定を行うための命令(FB1,FB2,FB3)を少なくとも一つ含むユーザプログラム(1066,1066A,1066a)が格納された記憶部(106,106A)と、
  前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部(160,160A,160b)とを備える、通信システム。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
 1,1a 通信システム、2 製造現場、4 リモートサイト、4a コンピュータ、4b 中継器、10,10a コントローラ、30,30A サポート装置、31,102 プロセッサ、32,104 メインメモリ、33 入力部、34 出力部、35,106 ストレージ、36 光学ドライブ、36a 記録媒体、38,120 プロセッサバス、40,40a,40b,40c フィールド装置群、41A,41B,41C,41 装置、41a,41b,41c,C 機器、42 リレー群、45 サーボドライバ、46 サーボモータ、100 CPUユニット、100b 上位コントローラ、100A 制御装置、106A 記憶部、108 情報系ネットワークコントローラ、110 制御系ネットワークコントローラ、112 ユニット間バスコントローラ、114 ローカルバスコントローラ、118 メモリカードインターフェイス、118a メモリカード,140 定周期タスク実行部、142 優先処理、144 I/Oリフレッシュ処理、160,160A,160b 通信設定部、180 変換情報特定部、182 変換情報群、200,200A,200b 中継装置、210a,210b,210c,210d ポート、220 設定情報格納部、222 設定情報、240 設定情報更新部、260 デバイス情報、300 電源ユニット、354 サポートプログラム、356 FBライブラリ、358 コマンドライブラリ、400 ファンクションブロック、541 エディタ、542 コンパイラ、543 デバッガ、544 GUIモジュール、545 シミュレータ、550 データ格納部、580,580A,580B コマンド群、582 変換情報、642 スケジューラプログラム、644 シーケンス命令プログラム、646 入出力処理プログラム、648 アクセス処理プログラム、1064 システムプログラム、1066,1066A,1066a,1066b ユーザプログラム、1068a,1068b,1068c レシピ。 

Claims (8)

  1.  中継装置を介して他の装置と通信可能な制御装置であって、
     前記中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、
     前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部とを備える、制御装置。
  2.  前記中継装置との間で行われるコマンドの送受信にかかるプロトコルは、当該中継装置の種類に応じて異なり、
     前記通信設定部は、前記中継装置の種類に応じたプロトコルに従い、当該中継装置との間でコマンドの送受信を行う、請求項1に記載の制御装置。
  3.  前記記憶部は、前記プロトコルを含む変換情報を、前記中継装置の種類ごとに格納し、
     前記中継装置の種類を当該中継装置が備えるデバイス情報に基づいて判断し、当該中継装置の種類に基づいて前記変換情報を特定する変換情報特定部をさらに備え、
     前記通信設定部は、前記変換情報が特定した前記変換情報に基づいて当該中継装置との間でコマンドの送受信を行う、請求項2に記載の制御装置。
  4.  前記変換情報は、前記命令の内容ごとに前記記憶部に格納され、
     前記変換情報特定部は、実行条件が成立した命令および前記中継装置の種類に基づいて前記変換情報を特定する、請求項3に記載の制御装置。
  5.  前記ユーザプログラムは、前記通信設定にかかる命令と、当該命令に比べて優先度の高い優先命令とを含み、
     前記優先命令を定周期で繰り返し実行する定周期タスク実行部をさらに備え、
     前記通信設定部は、前記優先命令の実行を妨げないように前記通信設定にかかる命令を行う、請求項1~請求項4のうちいずれか1項に記載の制御装置。
  6.  前記中継装置を介して第1のフィールド装置群を管理する第1機器と、第2のフィールド装置群を管理する第2機器と通信可能に接続されており、
     前記記憶部は、前記第1のフィールド装置群を動かす条件を含む第1のレシピと、前記第2のフィールド装置群を動かす条件を含む第2のレシピとを格納し、
     前記ユーザプログラムは、接続先の機器を切り替える命令と、当該切り替えに応じてレシピを切り替える命令とを含む、請求項1~請求項5のうちいずれか1に記載の制御装置。
  7.  中継装置を介して他の装置と通信可能な制御装置用のユーザプログラムの開発を支援するためのサポート装置であって、
     前記中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ格納する記憶部と、
     前記記憶部に格納された少なくとも一つの前記命令を組み合わせて前記ユーザプログラムを生成するための制御部とを備え、
     前記制御部は、前記命令の実行時に前記制御装置が前記中継装置との間でコマンドの送受信を行うことが可能な形式で前記ユーザプログラムを作成する、サポート装置。
  8.  中継装置と、
     前記中継装置を介して他の装置と通信可能な制御装置とを備え、
     前記制御装置は、
      前記中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、
      前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部とを備える、通信システム。
PCT/JP2019/043973 2018-11-28 2019-11-08 制御装置、サポート装置、および通信システム WO2020110668A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201980058646.6A CN112655175B (zh) 2018-11-28 2019-11-08 控制装置、支持装置及通信系统
EP19889785.2A EP3890247A4 (en) 2018-11-28 2019-11-08 CONTROL DEVICE, SUPPORT DEVICE AND COMMUNICATION SYSTEM
US17/285,096 US20210349446A1 (en) 2018-11-28 2019-11-08 Control device, support device, and communication system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018222648A JP7159818B2 (ja) 2018-11-28 2018-11-28 制御装置および通信システム
JP2018-222648 2018-11-28

Publications (1)

Publication Number Publication Date
WO2020110668A1 true WO2020110668A1 (ja) 2020-06-04

Family

ID=70852232

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/043973 WO2020110668A1 (ja) 2018-11-28 2019-11-08 制御装置、サポート装置、および通信システム

Country Status (5)

Country Link
US (1) US20210349446A1 (ja)
EP (1) EP3890247A4 (ja)
JP (1) JP7159818B2 (ja)
CN (1) CN112655175B (ja)
WO (1) WO2020110668A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240028013A1 (en) 2021-05-28 2024-01-25 Mitsubishi Electric Corporation Remote system, remote connection method and computer readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS647494B2 (ja) 1983-09-19 1989-02-09 Hitachi Ltd
JP2007053485A (ja) * 2005-08-16 2007-03-01 Nec Corp ネットワーク機器制御システム
WO2014133015A1 (ja) * 2013-02-27 2014-09-04 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
WO2016117079A1 (ja) * 2015-01-22 2016-07-28 三菱電機株式会社 プログラマブルロジックコントローラ設定ファイル生成支援装置
WO2016157477A1 (ja) 2015-04-01 2016-10-06 三菱電機株式会社 管理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174306A (ja) * 2003-11-20 2005-06-30 Omron Corp 通信インタフェースおよびネットワークシステムならびにプログラマブルコントローラ
US8195844B2 (en) * 2007-09-20 2012-06-05 Siemens Aktiengesellschaft Systems, devices, and/or methods for managing communications
JP2012009996A (ja) * 2010-06-23 2012-01-12 National Institute Of Information & Communication Technology 情報処理システム、中継装置、および情報処理方法
EP2421298A1 (en) * 2010-08-17 2012-02-22 Alcatel Lucent Transmitting radio configuration parameters from a base station to a relay node
US8898243B2 (en) * 2013-04-08 2014-11-25 Jani Turkia Device relay control system and method
JP2015130121A (ja) * 2014-01-08 2015-07-16 ヤマハ株式会社 中継装置
US10663951B2 (en) * 2015-06-12 2020-05-26 Fuji Corporation Relay device and manufacturing system
JP6477281B2 (ja) * 2015-06-17 2019-03-06 株式会社オートネットワーク技術研究所 車載中継装置、車載通信システム及び中継プログラム
JP6772899B2 (ja) * 2017-03-06 2020-10-21 横河電機株式会社 管理装置、中継装置、フィールド無線システム、設定方法、プログラム及び記録媒体
CN114258119B (zh) * 2018-05-31 2023-11-03 阿里巴巴集团控股有限公司 基于中继设备的通信方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS647494B2 (ja) 1983-09-19 1989-02-09 Hitachi Ltd
JP2007053485A (ja) * 2005-08-16 2007-03-01 Nec Corp ネットワーク機器制御システム
WO2014133015A1 (ja) * 2013-02-27 2014-09-04 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
WO2016117079A1 (ja) * 2015-01-22 2016-07-28 三菱電機株式会社 プログラマブルロジックコントローラ設定ファイル生成支援装置
WO2016157477A1 (ja) 2015-04-01 2016-10-06 三菱電機株式会社 管理システム

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
CN112655175A (zh) 2021-04-13
CN112655175B (zh) 2022-12-27
EP3890247A1 (en) 2021-10-06
EP3890247A4 (en) 2022-08-24
JP7159818B2 (ja) 2022-10-25
JP2020088690A (ja) 2020-06-04
US20210349446A1 (en) 2021-11-11

Similar Documents

Publication Publication Date Title
US11099951B2 (en) Cyberattack-resilient control system design
US11212322B2 (en) Automated discovery of security policy from design data
JP2006270359A (ja) 生産システムにおけるネットワーク開通方法
WO2020110668A1 (ja) 制御装置、サポート装置、および通信システム
US11165745B2 (en) Control system, controller, and control method
JP2019179476A (ja) サポート装置、サポートプログラム、設定方法
US10715396B2 (en) Support apparatus, non-transitory computer readable recording medium and setting method
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
US20230160592A1 (en) Control system
US20190303319A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
TW201633811A (zh) 多裝置網路管理方法與系統
WO2022124153A1 (ja) ロボット制御装置、ロボット制御システム及びロボット制御方法
JP2019180019A (ja) 制御装置
WO2022254953A1 (ja) 制御システムおよび制御方法
US11651006B2 (en) Method of visualizing screen content on a data visualization system, and data visualization system for visualizing screen content
WO2021166308A1 (ja) 監視制御装置およびクライアントpc
JP7163657B2 (ja) サポート装置、設定方法、および設定プログラム
JP7437408B2 (ja) 設定装置、通信システム、設定方法、及びプログラム
JP6547020B2 (ja) Ipアドレス付与のない隔離運転での仮想コンポーネントによる機械の試運転
WO2020137343A1 (ja) サポート装置、支援プログラムおよび制御装置
WO2020137345A1 (ja) コントローラシステム、制御装置および制御プログラム
JP2023111376A (ja) ロボット制御システムおよび制御装置
JP2019185516A (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: 19889785

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

Country of ref document: EP

Effective date: 20210628