WO2021005829A1 - コントローラ、制御システム、および制御方法 - Google Patents

コントローラ、制御システム、および制御方法 Download PDF

Info

Publication number
WO2021005829A1
WO2021005829A1 PCT/JP2020/008911 JP2020008911W WO2021005829A1 WO 2021005829 A1 WO2021005829 A1 WO 2021005829A1 JP 2020008911 W JP2020008911 W JP 2020008911W WO 2021005829 A1 WO2021005829 A1 WO 2021005829A1
Authority
WO
WIPO (PCT)
Prior art keywords
access
access request
controller
database device
instruction
Prior art date
Application number
PCT/JP2020/008911
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 CN202080046727.7A priority Critical patent/CN114072738A/zh
Priority to US17/597,105 priority patent/US20220236711A1/en
Priority to EP20836957.9A priority patent/EP3998513A4/en
Publication of WO2021005829A1 publication Critical patent/WO2021005829A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2241Real time database, each processor stores in local memory used variables

Definitions

  • the present invention relates to a controller that controls a controlled object, a control system including the controller, and a control method executed by the controller.
  • Control targets such as machines and equipment used in many production sites are controlled by controllers such as programmable logic controllers (hereinafter also referred to as "PLC"). Due to recent advances in information processing technology, such controllers are becoming more multifunctional.
  • PLC programmable logic controllers
  • Patent Document 1 discloses a data collection system that stores predetermined data collected by a control device such as a programmable controller (PLC) in a database.
  • This programmable controller includes an SQL transmitter that transmits a SQL processing group including a plurality of SQL statements that access the database to the database via a communication path.
  • the controller as described above issues an access request for writing data to the database device or deleting data on the database device.
  • an access request a SQL statement typically used in a relational database management system is well known.
  • such an access request is typically generated and transmitted by executing a user program designed according to the control target.
  • the range to be written or deleted of data is specified using variable variables (parameters) in consideration of the reusability of the program. Often designed to do.
  • An object of the present disclosure is to provide a controller that can flexibly recover from an error in a database connection, a control system including the controller, and a control method executed by the controller.
  • the controller is a controller that controls a control target, includes a communication interface for accessing the database device, and an access instruction for accessing the database device, and is related to the control of the control target. It is provided with an instruction execution unit that executes a user program to be executed, and an access processing unit that generates an access request in response to the access instruction being executed by the instruction execution unit and sends the access request to the communication interface.
  • the processing unit extracts the access request satisfying a predetermined condition from the error list that records the access request when the access to the database device fails, and causes the communication interface to resend the extracted access request.
  • the access processing unit can extract only the access requests that meet the retransmission conditions from the error list and resend them to the database device 400. Therefore, it is possible to provide a controller that can flexibly recover from an error in the database connection.
  • the access request may typically be an SQL statement used in a relational database management system.
  • the instruction execution unit instructs the access processing unit to extract an access request satisfying the predetermined condition in response to the user's input regarding the setting of the predetermined condition.
  • the access request satisfying the extraction condition can be selected. Therefore, it is possible to provide a controller that can appropriately recover from an error in the database connection.
  • the instruction execution unit executes a user program for displaying information indicating the access request extracted from the error list by the access processing unit, and is selected by the user in response to the user's input regarding the selection of the access request. Instructs the access processing unit to retransmit the access request to the communication interface.
  • the user can confirm the access request to be selected from a plurality of access requests satisfying the extraction condition.
  • the access processing unit when the access processing unit succeeds in resending the access request by the communication interface, the access processing unit deletes the corresponding access request from the error list.
  • the access processing unit when the re-transmission of the access request by the communication interface fails, the access processing unit generates information regarding the re-transmission failure.
  • the control system includes the controller described in any one of the above and a database device that receives an access request from the controller.
  • the control method is a control method by a controller that controls a controlled object, in which the controller executes an access instruction for accessing the database device and the controller generates an access request.
  • a step a step in which the controller sends an access request to the database device, a step in which the controller stores the access request when access to the database device fails in the error list, and a step in which the controller determines from the error list.
  • the controller includes a step of extracting an access request satisfying the condition and a step of retransmitting the extracted access request to the database device.
  • FIG. 1st function block included in a user program It is a figure which shows an example of the 1st function block included in a user program. It is a figure which illustrated the information input to the function block shown in FIG. It is a sequence diagram which showed the procedure of the retransmission process of the SQL statement which concerns on 1st Embodiment of this embodiment. It is a schematic diagram which showed the re-transmission of the SQL statement which concerns on the 2nd Embodiment of this embodiment. It is a figure which shows an example of the 2nd function block included in a user program. It is a figure which shows an example of the 3rd function block included in a user program. It is a figure which shows an example of the 4th function block included in a user program 186.
  • a programmable controller that controls a controlled object such as a machine or equipment will be described as an example of embodying the controller.
  • the controller according to the present embodiment is not limited to PLC, and can be applied to various controllers and information processing devices.
  • FIG. 1 is a diagram for explaining a functional outline of the PLC 100 according to the present embodiment.
  • the PLC 100 is configured to be capable of transmitting and receiving data to and from the database device 400. That is, the PLC 100 and the database device 400 are configured so that data can be exchanged with each other via a network 112 such as Ethernet (registered trademark).
  • a network 112 such as Ethernet (registered trademark).
  • the PLC 100 includes an instruction execution unit 2, an access processing unit 4, and a communication interface 6. Some or all of these components may be realized by executing a program by a processor as described later, or may be realized by dedicated hardware. That is, the components shown in FIG. 1 are schematically represented from a functional point of view, and the method of realizing each component is not limited in any way.
  • the instruction execution unit 2 executes the user program 186 related to the control of the controlled object such as a machine or a device. Basically, the instruction execution unit 2 executes the user program 186 periodically or eventically. That is, the PLC 100 is configured to control the controlled object by repeating the execution of the user program 186.
  • the user program 186 is typically created by the support device 300 as described later and transmitted to the PLC 100.
  • the user program 186 executed by the instruction execution unit 2 may include an instruction (access instruction) for accessing the database device 400. In this case, the database device is executed by executing this access instruction. An internal command requesting access to 400 is issued to the access processing unit 4.
  • the access processing unit 4 When the access processing unit 4 receives an internal command requesting access to the database device 400 from the instruction execution unit 2, the access processing unit 4 issues an internal command necessary for issuing an access request to the database device 400 to the communication interface 6. That is, the access processing unit 4 causes the communication interface 6 to transmit an access request in response to the instruction execution unit 2 executing the access instruction for accessing the database device 400 included in the user program 186. That is, when the access instruction is executed in association with the execution of the user program 186, the system program 188 performs a process of generating an access request to the database device 400 according to the information specifying the access range, and sends the access request to the communication interface 6. Includes instructions for processing and to be performed through.
  • the communication interface 6 generates a command (request) necessary for communicating with the database device 400 according to an internal command from the access processing unit 4, and transmits the command (request) via the network 112. Further, the communication interface 6 receives data (execution result) transmitted from the database device 400 or the like via the network 112.
  • the processes up to the transmission of the access request to the database device in the PLC100 shown in FIG. 1 are (1) periodic / event execution of the user program 186 by the instruction execution unit 2, and (2) the access instruction included in the user program 186.
  • An internal command is issued by the access processing unit 4 for issuing an access request in response to the execution, and (3) an access request is transmitted by the communication interface 6 in response to the issuance of an internal command from the access processing unit 4.
  • FIG. 2 is a schematic diagram showing a system configuration of the control system 1 including the PLC 100 according to the present embodiment.
  • the control system 1 includes a PLC 100, a support device 300 connected to the PLC 100, and a database device 400 that receives access from the PLC 100.
  • the PLC 100 executes the user program periodically or eventically. By executing the access instruction included in this user program, the processing to the database device 400 is executed.
  • the support device 300 is a typical example of an information processing device that generates a user program executed by the PLC 100. Further, the support device 300 is connected to the PLC 100 via the connection cable 114, and provides functions such as setting various parameters, programming, monitoring, and debugging with the PLC 100.
  • the PLC 100 includes a CPU unit 104 that executes control operations and one or more IO (Input / Output) units 106. These units are configured to allow data to be exchanged with each other via the PLC system bus 108. Further, the power supply unit 102 supplies power to these units with an appropriate voltage.
  • IO Input / Output
  • the PLC 100 exchanges data with various field devices via the IO unit 106 (connected via the PLC system bus 108) and / or via the fieldbus 110. ..
  • These field devices include an actuator for performing some processing on the controlled object, a sensor for acquiring various information from the controlled object, and the like.
  • FIG. 2 includes a detection switch 10, a relay 20, and a servomotor driver 30 for driving the motor 32 as an example of such a field device.
  • a remote IO terminal 200 is also connected to the PLC 100 via a fieldbus 110. The remote IO terminal 200 basically performs processing related to general input / output processing, similarly to the IO unit 106.
  • the remote IO terminal 200 includes a communication coupler 202 for performing processing related to data transmission on the fieldbus 110, and one or more IO units 204. These units are configured to allow data to be exchanged with each other via the remote IO terminal bus 208.
  • FIG. 3 is a schematic diagram showing a hardware configuration showing a main part of the PLC 100 according to the present embodiment.
  • FIG. 4 is a schematic diagram showing a software configuration of the PLC 100 according to the present embodiment.
  • the hardware configuration of the CPU unit 104 of the PLC 100 will be described with reference to FIG.
  • the CPU unit 104 includes a processor 120, a chipset 122, a system clock 124, a main memory 126, a non-volatile memory 128, a communication connector 130, a PLC system bus controller 140, a field bus controller 150, and higher-level communication. It includes a controller 160 and a memory card interface 170.
  • the chipset 122 and the other components are each connected via various buses.
  • the processor 120 and chipset 122 are typically configured according to a general purpose computer architecture. That is, the processor 120 interprets and executes the instruction code sequentially supplied from the chipset 122 according to the internal clock. For convenience of description, only a single processor 120 will be illustrated, but any configuration may be adopted without limitation. For example, a configuration including a plurality of processors including a single core, a configuration including a plurality of single processors, a configuration including a plurality of processors including a plurality of cores, and the like may be adopted. That is, the controller according to the present embodiment may be realized by executing a program by one or more processors.
  • the chipset 122 exchanges internal data with various connected components and generates an instruction code required for the processor 120.
  • the system clock 124 generates a system clock having a predetermined period and provides the system clock to the processor 120.
  • the chipset 122 has a function of caching data and the like obtained as a result of executing arithmetic processing on the processor 120.
  • the CPU unit 104 has a main memory 126 and a non-volatile memory 128 as storage means.
  • the main memory 126 is a volatile storage area, holds various programs to be executed by the processor 120, and is also used as a working memory when executing various programs.
  • the non-volatile memory 128 non-volatilely holds an OS (Operating System), a system program, a user program, data definition information, log information, and the like.
  • OS Operating System
  • the communication connector 130 is an interface for connecting the support device 300 and the CPU unit 104 via the connection cable 114. Typically, an executable program or the like transferred from the support device 300 is taken into the CPU unit 104 via the communication connector 130.
  • the communication connector 130 is a USB connector, but the communication standard and the type of the communication connector 130 corresponding to the standard are not particularly limited.
  • the CPU unit 104 has a PLC system bus controller 140, a fieldbus controller 150, and an upper communication controller 160 as communication means. These communication circuits transmit and receive data.
  • the PLC system bus controller 140 controls the exchange of data via the PLC system bus 108. More specifically, the PLC system bus controller 140 includes a buffer memory 142, a PLC system bus control circuit 144, and a DMA (Dynamic Memory Access) control circuit 146. The PLC system bus controller 140 is connected to the PLC system bus 108 via the PLC system bus connector 148.
  • the fieldbus controller 150 includes a buffer memory 152, a fieldbus control circuit 154, and a DMA control circuit 156.
  • the fieldbus controller 150 is connected to the fieldbus 110 via the fieldbus connector 158.
  • the upper communication controller 160 includes a buffer memory 162, an upper communication control circuit 164, and a DMA control circuit 166.
  • the upper communication controller 160 is connected to the network 112 via the upper communication connector 168.
  • the memory card interface 170 connects the removable memory card 172 to the CPU unit 104 and the processor 120.
  • the software executed by the CPU unit 104 has three layers of OS180, system program 188, and user program 186.
  • the OS 180 provides a basic execution environment for the processor 120 to execute the system program 188 and the user program 186.
  • the system program 188 is a software group for providing basic functions as the PLC100. Specifically, the system program 188 includes a sequence instruction library 190, a DB (database) access processing library 191, a monitoring processing library 192, an input / output processing library 193, a Tool interface processing program 194, and a scheduler 195. Including.
  • the user program 186 is a program arbitrarily created according to the control purpose for the controlled object. That is, the user program 186 is arbitrarily designed according to the target line (process) to be controlled by using the control system 1.
  • the user program 186 cooperates with the sequence instruction library 190 to realize the control purpose in the user. That is, the user program 186 realizes the programmed operation by using the instructions, functions, function modules, and the like provided by the sequence instruction library 190. Therefore, the user program 186 and the sequence instruction library 190 may be collectively referred to as a "control program".
  • non-volatile memory 128 corresponds to a memory for storing the system program 188 and the user program 186.
  • the data definition information 182 includes a definition for treating the referenced data (input data, output data, internal data) as a unique variable when the user program 186 or the like is executed.
  • the operation log 184 when a predetermined event occurs in association with the execution of the system program 188 and the user program 186, the information of the event that has occurred is stored in association with the time information. That is, in the operation log 184, various information associated with the execution of the system program 188 and / or the user program 186 is stored as a log (history information).
  • the sequence instruction library 190 includes an instruction code group for calling an entity of a sequence instruction specified in the user program 186 with the execution of the user program 186 and realizing the content of the instruction.
  • the DB access processing library 191 includes an instruction code group for realizing the processing necessary for accessing the database device 400 with the execution of the user program 186.
  • the DB access processing library 191 includes an execution code corresponding to an instruction that can be specified in the user program 186.
  • the monitoring processing library 192 is a program for realizing the access request restriction function according to the present embodiment. Details of the functions provided by the monitoring processing library 192 will be described later.
  • the input / output processing library 193 is a program for managing the acquisition of input data and the transmission of output data between the IO unit 106 and various field devices.
  • the Tool interface processing program 194 provides an interface for exchanging data with the support device 300.
  • the scheduler 195 creates threads and procedures for executing the control program according to predetermined priorities, system timer values, and the like.
  • the user program 186 is created according to the control purpose (for example, the target line or process) of the user.
  • the user program 186 is typically in the form of an object program that can be executed by the processor 120 of the CPU unit 104.
  • the user program 186 is generated by compiling the source program described in the ladder format or the function block format in the support device 300 or the like. Then, the generated user program in the object program format is transferred from the support device 300 to the CPU unit 104 and stored in the non-volatile memory 128 or the like.
  • the processor 120 executes the user program 186 stored in the memory
  • the system program is read and the programs included in the DB access processing library 191 and the monitoring processing library 192 in the system program are executed.
  • the program described in the user program 186 that receives the execution of the access instruction and sends and receives the access request to the database device (as an example, the database connection service) and the range of accessing the database for executing the instruction are specified.
  • the configuration is not limited to the above-described embodiment as long as the configuration includes a program for monitoring information (for example, a monitoring service).
  • the support device 300 is for supporting the use of the CPU unit 104 of the PLC 100, and provides functions such as setting, programming, monitoring, and debugging of various parameters with the PLC 100.
  • FIG. 5 is a schematic diagram showing the hardware configuration of the support device 300 used by connecting to the PLC 100 according to the present embodiment.
  • the support device 300 typically comprises a general purpose computer.
  • the support device 300 stores the CPU 302 that executes various programs including the OS, the ROM (Read Only Memory) 304 that stores the BIOS and various data, and the data necessary for executing the programs in the CPU 302. It includes a memory RAM 306 that provides a work area for storing, and a hard disk (HDD) 308 that non-volatilely stores programs and the like executed by the CPU 302. More specifically, the hard disk 308 stores a support program 330 for realizing the function provided by the support device 300.
  • the support device 300 further includes a keyboard 310 and a mouse 312 for receiving operations from the user, and a monitor 314 for presenting information to the user. Further, the support device 300 includes a communication interface (IF) 318 for communicating with the PLC 100 (CPU unit 104) and the like.
  • IF communication interface
  • the support program 330 or the like executed by the support device 300 is typically stored and distributed on an optical disk 332, which is an example of a computer-readable recording medium.
  • the support program stored in the optical disk 332 is read by the optical disk reading device 316 and stored in the hard disk 308 or the like.
  • the program may be configured to be downloaded from a host computer or the like via a network.
  • the database device 400 As the database device 400, a known configuration that provides a database can be adopted. As such a database, an arbitrary configuration such as a relational data type or an object data type can be adopted. Since the database device 400 is configured according to a general-purpose computer architecture, its detailed description will not be repeated here.
  • the database device 400 receives a connection request or an access request (SQL statement in the relational data type) from the PLC 100, executes necessary processing, and responds the processing result to the PLC 100.
  • SQL statement writes the specified data to the specified position or range, reads the data stored in the specified position or range, and stores it in the specified position or range. Processing such as deleting existing data is executed.
  • the database device 400 is of relational data type and the access request is an SQL statement.
  • the database device 400 which is a device that provides a database
  • various configurations can be adopted without being limited to such a configuration. That is, any configuration can be adopted as long as it has basic functions as a database, such as a function of holding data, a function of performing processing in response to an access request, and a function of responding to a client with a processing result. Therefore, in addition to the database function to a single device, a configuration having other functions, a configuration in which a plurality of devices are linked to provide a single database function, and the like can be adopted.
  • FIG. 6 is a schematic diagram for explaining an implementation example of the access request provided by the PLC 100 according to the present embodiment.
  • FIG. 6 shows an example in which an access instruction for accessing the database device 400 is defined in the user program 186.
  • FIG. 6 shows an “DB_INSERT” instruction for inserting data into the database device 400 as an example of an access instruction, but the present invention is not limited to this, and the data to be transmitted to the database device 400 or the database device 400
  • Various instructions can be specified, including information that specifies the range (access range) for accessing data.
  • the access instruction includes information that specifies the access range for accessing the database device 400.
  • the user operates the support device 300 and specifies a DB access instruction (DB_INSERT) in the user program 186.
  • DB_INSERT DB access instruction
  • the corresponding instruction code of the DB access processing library 191 (FIG. 4) is called to generate an SQL statement including an access request to the database device 400.
  • the DB connection service realized by the DB access processing library 191 included in the system program 188 is provided, and the DB connection service is triggered by the execution of the DB access instruction in the user program 186.
  • the DB connection service generates an SQL statement and transmits the generated SQL statement to the database device via the driver software corresponding to the database device.
  • the DB access function transmits the SQL statement generated by the DB connection service to the database device 400 via the network 112 by the host communication controller 160 (FIG. 3) and the DB access processing library 191 (FIG. 4). To do.
  • the database device 400 executes processing according to the SQL statement, and if necessary, responds to the PLC 100 with the result.
  • the DB connection service associates the content of the process with the time information (that is, as an execution log) and writes it in the operation log 184 according to the execution of the process. That is, the log of the operating status of the PLC 100 is saved.
  • the DB connection service When the DB connection service generates and transmits an SQL statement in association with the execution of the access instruction, the contents are written in the operation log 184.
  • the DB connection service adds the operation log 184 to the log file 1842 stored in the memory card 172, and updates the log file 1842.
  • a log (hereinafter referred to as "failure log 1891") including an SQL statement when the access to the database device 400 fails is stored in the spool 189. .. Then, the DB connection service reads the SQL statement stored in the spool and resends it to the database device 400. At this time, the SQL statement to be retransmitted to the database device 400 can be selected by using the user program 186 or the tool provided by the support device 300.
  • the failure log 1891 is an error list that records an access request when access to the database device 400 fails.
  • the spool is not limited to be provided inside the CPU unit 104, and the spool may be provided outside the CPU unit 104 (outside the PLC 100).
  • the error list including the failure log 1891 may be stored in the memory card 172.
  • the storage area (spool or memory card) in which the failure log 1891 should be stored is referred to as a “storage destination”.
  • the support device 300 has a function for confirming the contents of the operation log 184, and when an error occurs, the user can use the function of the support device 300 to check the cause and contents of the error. You can check.
  • the function to resend only the specified SQL statement is not implemented in the user program 186, the user must refer to the log file (or failure log file) to extract the SQL statement when an error occurs. It doesn't become. However, there is a problem that it takes time and effort for the user to extract the SQL statement from the log. Further, only the function of extracting the SQL statement from the log file does not allow the user to additionally send an arbitrary SQL statement to the database device 400 via the DB connection service.
  • the storage destination is a spool and the capacity of the spool is small, the number of SQL statements that the spool can store is also limited. Therefore, it is possible that the SQL statement that the user wants to execute is not stored in the spool.
  • the access processing unit 4 shown in FIG. 1 extracts an access request satisfying a predetermined condition from an error list recording an access request when access to the database device 400 fails. Then, the access processing unit 4 causes the communication interface 6 to retransmit the extracted access request. Therefore, since it is possible to retransmit only the SQL statement that meets the conditions to the database device 400, it is possible to realize a controller that can flexibly recover from a connection error to the database device 400.
  • the retransmission of the SQL statement according to the present embodiment will be described in detail below.
  • FIG. 7 is a schematic diagram showing the retransmission of the SQL statement according to the first embodiment of the present embodiment.
  • the user program 186 identifies the SQL statement that meets the specified conditions, and extracts the specified SQL statement from the log file or spool for the DB connection service. Order to resend.
  • the selection of the SQL statement by the user program 186 is executed, for example, during the operation of the PLC 100.
  • FIG. 8 is a diagram showing an example of the first function block FB1 included in the user program 186.
  • the function block FB1 is also referred to as a block FB1.
  • block FB1 may be specified by other than the function block.
  • block FB1 may include those defined by a ladder diagram, instruction list, structured text, and any of the sequential function charts, or a combination thereof.
  • the block FB1 may also include those specified in a general-purpose programming language such as Javascript (registered trademark) or C language.
  • Block FB1 is a program for executing an instruction for controlling access to the database device 400. More specifically, the block FB1 is a program having a function of instructing a DB connection program to retransmit the SQL statement when an error occurs in accessing the database device 400.
  • the block FB1 includes input units 255A to 255E that accept settings related to retransmission of SQL statements, and output units 256A for outputting instructions for executing retransmission of SQL statements.
  • the input unit 255A shown as “Excute” accepts a setting for specifying whether or not to execute the retransmission processing of the SQL statement.
  • the input unit 255A is defined to accept "Boolean” type input. As long as “FALSE” is input to the input unit 255A, the SQL statement is not retransmitted. On the other hand, when "TRUE” is input to the input unit 255A, the processing of retransmitting the SQL statement is executed.
  • the input units 255B, 255C, 255D, and 255E each receive the SQL category, area, area path, and extraction condition.
  • a signal indicating an instruction to extract SQL matching the extraction conditions from the region is output from the output unit 256A indicated as “Done”.
  • FIG. 9 is a diagram illustrating information input to the function block shown in FIG.
  • FIG. 9 shows examples of SQL categories, regions, region paths, and extraction conditions.
  • this embodiment is not limited to the example shown in FIG.
  • FIG. 10 is a sequence diagram showing a procedure for retransmission processing of SQL statements according to the first embodiment of the present embodiment.
  • the sequence diagram shown in FIG. 10 in addition to the internal processing of the PLC 100, the communication with the support device 300 and the database device 400 is also shown.
  • the user operates the support device 300 to select a retransmission condition (sequence SQ100).
  • a retransmission condition to be input to the user program 186 (sequence SQ102).
  • the user selects an SQL category, an area, an area path, and an extraction condition via the support device 300.
  • the support device 300 transmits the information selected by the user to the PLC 100.
  • the PLC 100 executes the user program 186.
  • the input unit of the function block FB1 receives the information (SQL category, area, area path, and extraction condition) from the support device 300.
  • An instruction to re-execute the corresponding SQL statement is transmitted from the output unit of the function block FB1 to the system program 188 (DB connection service) (sequence SQ104).
  • the DB connection service issues an open command in response to the instruction from the user program 186 to open the error list (failure log file) stored in the storage destination such as the spool (sequence SQ106).
  • the DB connection service issues a grep command and searches the error list for a log containing a character string that matches the extraction condition (sequence SQ108).
  • the DB connection service receives the result of executing the grep command from the storage destination (sequence SQ110). The case where the log including the corresponding SQL statement is found in the error list will be described below.
  • the DB connection service creates an SQL statement to be retransmitted based on the SQL statement included in the extracted log (sequence SQ112).
  • the DB connection service sends the SQL statement to the database device 400 to execute access to the database device 400 (sequence SQ114).
  • the database device 400 executes the process according to the received access request, and returns the execution result to the DB connection service (sequence SQ116).
  • the user program 186 extracts an access request (SQL statement) satisfying the condition in response to the user's input regarding the setting of the predetermined condition. Instruct the access processing unit 4 (DB connection service). As a result, only the SQL statement specified by the user can be extracted from the failure log, and only the processing related to the SQL can be re-executed.
  • FIG. 11 is a schematic diagram showing the retransmission of the SQL statement according to the second embodiment of the present embodiment.
  • the user program 186 extracts a log containing the SQL statement that meets the specified conditions from the failure log 1891 stored in the spool 189.
  • the user program 186 executes a process for displaying the log on the support device 300.
  • the support device 300 displays the information contained in the log by executing the tool software.
  • the user selects the SQL statement to be resent from the displayed information.
  • the support device 300 accepts the input of the user and sends a command to the user program 186 to execute the retransmission of the SQL statement.
  • the user program 186 identifies an SQL statement that meets the specified conditions, and instructs the DB connection service to extract the identified SQL statement from the log file or spool and resend it. Retransmission of the SQL statement using the tool may be executed, for example, at the time of starting up the PLC 100 or at the time of maintenance of the PLC 100.
  • FIG. 12 is a diagram showing an example of the second function block FB2 included in the user program 186.
  • the function block FB2 is also referred to as a block FB2.
  • Block FB2 is a program having a function of instructing the DB connection service to extract the SQL statement to be retransmitted.
  • the block FB2 includes input units 265A to 265E that accept settings related to extraction of SQL statements, and output units 266A and 266B for outputting instructions for executing extraction of SQL statements.
  • the input unit 255A indicated as “Excute” accepts a setting for designating whether or not to execute the retransmission processing of the SQL statement.
  • the input unit 265A is specified to accept "Boolean" type input. As long as "FALSE" is input to the input unit 265A, the extraction of the SQL statement is not executed. On the other hand, when "TRUE" is input to the input unit 265A, the processing of extracting the SQL statement is executed.
  • the input units 265B, 265C, 265D, and 265E receive SQL categories, areas, area paths, and extraction conditions, respectively.
  • a signal indicating an instruction to extract SQL matching the extraction conditions from the region is output from the output unit 266A indicated as “Done”.
  • the handle value is output from the output unit 266B indicated as "Handle”.
  • FIG. 13 is a diagram showing an example of the third function block FB3 included in the user program 186.
  • the function block FB3 is also referred to as a block FB3.
  • Block FB3 is a program having a function of executing processing necessary for displaying the failure log extracted from the storage destination on the support device 300.
  • the block FB3 has input units 275A and 275B for receiving settings related to data acquisition, an output unit 276A for outputting an instruction for creating a list of acquired data, and an output for outputting the extracted data. Includes part 276B.
  • the input unit 275A indicated as "Excute” accepts a setting for designating whether or not to create a list of data. As an example, the input unit 275A is specified to accept "Boolean" type input. As long as “FALSE” is input to the input unit 275A, the creation of the data list is not executed. On the other hand, when "TRUE" is input to the input unit 275A, the creation of a data list is executed.
  • the input unit 275B indicated as "Handle” receives the handle value from the block FB2.
  • a signal indicating an instruction to create a list of data is output from the output unit 266A indicated as "Done”. Further, the information necessary for creating the list is output from the output unit 276B shown as "Extraction Info”.
  • FIG. 14 is a diagram showing an example of the fourth function block FB4 included in the user program 186.
  • the function block FB4 is also referred to as a block FB4.
  • block FB4 is a program having a function of instructing a DB connection program to retransmit an SQL statement when an error occurs in accessing the database device 400.
  • the block FB4 has input units 285A and 285B for accepting settings related to retransmitting SQL statements, output units 286A for outputting instructions for creating a list of acquired data, and retransmitting SQL statements. It includes an output unit 286B for outputting an instruction.
  • the input unit 285A indicated as "Excute” accepts a setting for specifying whether or not to execute the retransmission processing of the SQL statement.
  • the input unit 285A is specified to accept "Boolean” type input.
  • “FALSE” is input to the input unit 285A
  • the SQL statement is not retransmitted.
  • the processing of retransmitting the SQL statement is executed.
  • the input unit 285B shown as "Handle” receives the handle value from the block FB2.
  • FIG. 15 is a diagram showing a screen example of a tool for accepting the selection of SQL statements from the user.
  • the tool 301 includes an SQL category selection unit 351, an area selection unit 352, a path selection unit 353, and an extraction condition selection unit 354.
  • the SQL category selection unit 351 has a function of selecting the type of the SQL category (SQL command).
  • the area selection unit 352 has a function of selecting an area in which the failure log is stored.
  • the path selection unit 353 has a function of selecting the path of the area selected by the area selection unit 352.
  • Tool 301 further includes SQL execution failure log display unit 355.
  • the SQL execution failure log display unit 355 displays the information included in the failure log in a list format. Items displayed on the SQL execution failure log display unit 355 are, for example, an entry, date and time, SQL category, log code, log name, execution result, connection name, serial ID, and the like.
  • the SQL execution failure log display unit 355 among the logs displayed on the SQL execution failure log display unit 355, the log including the SQL statement to be retransmitted is highlighted and the log is selected. To.
  • Tool 301 further includes an SQL display unit 356 and an SQL resend button 357.
  • the SQL display unit 356 displays the SQL statement included in the failure log selected from the logs displayed on the SQL execution failure log display unit 355.
  • the SQL resend button 357 accepts a user operation. By operating the SQL resend button 357, the tool 301 transmits an instruction for resending the SQL statement displayed on the SQL display unit 356 to the database device 400 to the user program 186.
  • FIG. 16 is a sequence diagram showing a procedure for retransmission processing of a QL statement according to the second embodiment of the present embodiment.
  • the user operates the support device 300 to select the retransmission condition (sequence SQ100).
  • the user selects a retransmission condition to be input to the user program 186 (sequence SQ102).
  • the user selects an SQL category, an area, an area path, and an extraction condition via the support device 300.
  • the support device 300 transmits the information selected by the user to the PLC 100.
  • the PLC 100 executes the user program 186.
  • the input unit of the function block FB2 receives the information (SQL category, area, area path, and extraction condition) from the support device 300.
  • An instruction to extract the corresponding SQL statement is transmitted from the output unit of the function block FB2 to the system program 188 (DB connection service) (sequence SQ104).
  • the DB connection service issues an open command in response to the instruction from the user program 186 to open the error list (failure log file) stored in the storage destination such as the spool (sequence SQ106).
  • the DB connection service issues a grep command and searches the error list for a log containing a character string that matches the extraction condition (sequence SQ108).
  • the DB connection service receives the result of executing the grep command from the storage destination (sequence SQ110). The case where the log including the corresponding SQL statement is found in the error list will be described below.
  • the DB connection service creates an SQL statement from the extracted log (sequence SQ112). Next, the DB connection service transmits the execution result to the user program 186 (sequence SQ120).
  • the support device 300 transmits a command for confirming the extracted contents to the user program 186 in response to the user operation (sequence SQ122).
  • the user program 186 (function block FB3) transmits an instruction for displaying the extracted information to the DB connection service (sequence SQ124).
  • the DB connection service sends the execution result to the user program 186 in response to the instruction.
  • the user program 186 acquires the extracted information (sequence SQ126).
  • the support device 300 executes the program of the tool 301 so as to display the extracted information.
  • the SQL statement to be resent is selected.
  • the support device 300 instructs the PLC 100 to retransmit the SQL statement.
  • the function block FB4 instructs the DB connection service to retransmit the SQL statement (sequence SQ130).
  • the DB connection service sends the SQL statement to the database device 400 to execute access to the database device 400 (sequence SQ132).
  • the database device 400 executes the process according to the received access request, and returns the execution result to the DB connection service (sequence SQ134).
  • the user program 186 (instruction execution unit 2) displays information indicating the access request (SQL statement) extracted from the error list by the access processing unit 4 (DB connection service).
  • the user program 186 (blocks FB2 and FB3) for executing the user program 186 is executed.
  • the user program 186 (instruction execution unit 2) causes the access processing unit 4 (DB connection service) to retransmit the access request selected by the user to the communication interface 6 in response to the user's input regarding the selection of the access request. ). Therefore, as in the first mode, only the SQL statement specified by the user can be extracted from the failure log, and only the processing related to the SQL can be re-executed.
  • the user can select the SQL statement to be resent to the database device 400, the user may operate the tool so that the same SQL statement is sent to the database device 400 multiple times. In such a case, the same process for the database device 400 may be repeated a plurality of times. For example, the same data is inserted into the database device 400 multiple times. Therefore, when the processing for the database device 400 is successful by retransmitting the SQL statement, it is preferable to prevent the same SQL statement from being further transmitted to the database device (prevent erroneous retransmission of the SQL statement).
  • FIG. 17 is a sequence showing a process for preventing erroneous retransmission of the SQL statement according to the present embodiment.
  • sequence prior to sequence SQ128 is the same as the corresponding sequence shown in FIG.
  • the processing of the sequences SQ132 and SQ134 is the same as the processing of the corresponding sequences shown in FIG.
  • the DB connection service checks the response of the database device 400 by receiving the execution result from the database device 400.
  • the DB connection service receives a response indicating that the connection to the database device 400 was normal, the corresponding log (access request including SQL statement) is displayed from the list of failure logs stored in the storage destination. It is deleted (sequence SQ140).
  • sequence SQ140 the process may be executed so that the corresponding SQL statement becomes invalid.
  • the value of the flag associated with the SQL statement may be set to a value indicating that the retransmission was successful.
  • the DB connection service receives a response indicating that the connection to the database device 400 has failed, information indicating that the retransmission of the corresponding SQL statement (RESEND command) has failed is generated.
  • the information is stored in the storage destination (sequence SQL142). Therefore, in this case, the SQL statement can be retransmitted until the connection to the database device 400 becomes normal.
  • the SQL statement to be retransmitted can be selected from the log (failure log) including the SQL statement when the access to the database device 400 fails. Therefore, it is possible to flexibly recover from a connection error to the database device 400.
  • the present embodiment includes the following disclosures.
  • (Structure 1) A controller (100) that controls a controlled object.
  • a communication interface (6) for accessing the database device (400) and
  • An instruction execution unit (2) that includes an access instruction for accessing the database device (400) and executes a user program (186) related to the control of the controlled object.
  • It includes an access processing unit (4) that generates an access request in response to the access instruction being executed by the instruction execution unit (2) and transmits the access request to the communication interface (6).
  • the access processing unit (4) extracts access requests satisfying a predetermined condition from an error list that records access requests when access to the database device (400) fails, and extracts the extracted access requests.
  • the controller (100) to retransmit to the communication interface (6).
  • the instruction execution unit (2) instructs the access processing unit (4) to extract the access request satisfying the predetermined condition in response to the user's input regarding the setting of the predetermined condition.
  • the controller (100) according to 1.
  • the instruction execution unit (2) executes the user program (186) for displaying information indicating the access request extracted from the error list by the access processing unit (4), and selects the access request.
  • the controller according to configuration 1, instructing the access processing unit (4) to retransmit the access request selected by the user to the communication interface (6) in response to the user's input regarding. 100).
  • (Structure 7) It is a control method by a controller (100) that controls a control target.
  • a step in which the controller (100) generates an access request A step in which the controller (100) transmits the access request to the database device (400).
  • a control method comprising a step in which the controller (100) retransmits the extracted access request to the database device (400).

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Programmable Controllers (AREA)

Abstract

PLC(100)は、データベース装置(400)にアクセスするための通信インターフェイス(6)と、データベース装置(400)へのアクセスのためのアクセス命令を含み、かつ制御対象の制御に関連するユーザプログラム(186)を実行する命令実行部(2)と、アクセス命令が命令実行部(2)によって実行されることに応答して、アクセス要求を生成して、アクセス要求を通信インターフェイス(6)に送信させるアクセス処理部(4)とを備える。アクセス処理部(4)は、データベース装置(400)へのアクセスが失敗したときのアクセス要求を記録したエラーリストから、所定の条件を満たすアクセス要求を抽出して、抽出されたアクセス要求を通信インターフェイス(6)に再送信させる。

Description

コントローラ、制御システム、および制御方法
 本発明は、制御対象を制御するコントローラ、そのコントローラを含む制御システムおよびコントローラによって実行される制御方法に関する。
 多くの生産現場で使用される機械や設備といった制御対象は、プログラマブルコントローラ(Programmable Logic Controller;以下「PLC」とも称す。)といったコントローラによって制御される。近年の情報処理技術の進歩によって、このようなコントローラについても多機能化が進んでいる。
 例えば、特開2012-108642号公報(特許文献1)は、プログラマブルコントローラ(PLC)等の制御装置が収集した所定のデータをデータベースに保存するデータ収集システムを開示する。このプログラマブルコントローラは、通信路を介して、データベースをアクセスするSQL文を複数含むSQL処理群をデータベースに送信するSQL送信部を含む。
特開2012-108642号公報
 上述のようなコントローラは、データをデータベース装置へ書込んだり、データベース装置上のデータを削除したりするためのアクセス要求を発行する。このようなアクセス要求としては、典型的には、リレーショナルデータベース管理システムにおいて用いられるSQL文がよく知られている。
 PLCなどのコントローラでは、典型的には、制御対象に応じて設計されるユーザプログラムが実行されることで、このようなアクセス要求が生成および送信される。このようなユーザプログラムを用いてアクセス要求を発行するような構成では、プログラムの再利用性などを考慮して、可変な変数(パラメータ)を用いてデータの書込みや削除の対象となる範囲を指定するように設計されることが多い。
 データベースへのアクセス(接続)においてエラーが生じる可能性がある。エラーからの復旧の際に柔軟に復旧できることが望ましい。
 本開示の目的は、データベース接続におけるエラーから柔軟に復旧できるコントローラ、およびそのコントローラを含む制御システム、そのコントローラにより実行される制御方法を提供することである。
 本開示の一例に係るコントローラは、制御対象を制御するコントローラであって、データベース装置にアクセスするための通信インターフェイスと、データベース装置へのアクセスのためのアクセス命令を含み、かつ制御対象の制御に関連するユーザプログラムを実行する命令実行部と、アクセス命令が命令実行部によって実行されることに応答して、アクセス要求を生成して、アクセス要求を通信インターフェイスに送信させるアクセス処理部とを備え、アクセス処理部は、データベース装置へのアクセスが失敗したときのアクセス要求を記録したエラーリストから、所定の条件を満たすアクセス要求を抽出して、抽出されたアクセス要求を、通信インターフェイスに再送信させる。
 この構成によれば、アクセス処理部は、再送の条件に適合するアクセス要求のみをエラーリストから抽出して、データベース装置400に再送することが可能である。したがってデータベース接続におけるエラーから柔軟に復旧できるコントローラを提供することができる。
 アクセス要求は、典型的には、リレーショナルデータベース管理システムにおいて用いられるSQL文であってもよい。
 好ましくは、命令実行部は、所定の条件の設定に関するユーザの入力に応じて、所定の条件を満たすアクセス要求を抽出するように、アクセス処理部に命令する。
 この構成によれば、抽出条件をユーザが設定することにより、その抽出条件を満たすアクセス要求を選択することができる。したがって、データベース接続におけるエラーから適切に復旧できるコントローラを提供できる。
 好ましくは、命令実行部は、アクセス処理部によってエラーリストから抽出されたアクセス要求を示す情報を表示するためのユーザプログラムを実行し、アクセス要求の選択に関するユーザの入力に応じて、ユーザによって選択されたアクセス要求を、通信インターフェイスに再送信させるように、アクセス処理部に命令する。
 この構成によれば、抽出条件を満たす複数のアクセス要求の中から選択すべきアクセス要求を、ユーザが確認することができる。
 好ましくは、アクセス処理部は、通信インターフェイスによるアクセス要求の再送信が成功した場合には、エラーリストから、該当のアクセス要求を削除する。
 この構成によれば、アクセス要求の再送信が一旦成功した場合に、そのアクセス要求が繰り返し再送信されることを防ぐことができる。
 好ましくは、アクセス処理部は、通信インターフェイスによるアクセス要求の再送信が失敗した場合には、再送信の失敗に関する情報を生成する。
 この構成によれば、アクセス要求の再送信に関する結果を管理することができる。
 本開示の一例に係る制御システムは、上記のいずれか1つに記載のコントローラと、コントローラからのアクセス要求を受け付けるデータベース装置とを含む。
 この構成によれば、データベース接続におけるエラーから柔軟に復旧できる制御システムを提供することができる。
 本開示の一例に係る制御方法は、制御対象を制御するコントローラによる制御方法であって、コントローラが、データベース装置へのアクセスのためのアクセス命令を実行するステップと、コントローラが、アクセス要求を生成するステップと、コントローラが、アクセス要求をデータベース装置に送信するステップと、コントローラが、データベース装置へのアクセスが失敗したときのアクセス要求をエラーリストに格納するステップと、コントローラが、エラーリストから、所定の条件を満たすアクセス要求を抽出するステップと、コントローラが、抽出されたアクセス要求を、データベース装置に再送信するステップとを備える。
 この構成によれば、データベース接続におけるエラーから柔軟に復旧できる制御方法を提供することができる。
 本発明によれば、ユーザプログラムの実行によって、不適切なアクセス要求が生成および送信されてしまうことを防止できる。
本実施の形態に係るPLCの機能的な概要を説明するための図である。 本実施の形態に係るPLCを含む制御システム1のシステム構成を示す模式図である。 本実施の形態に係るPLCの主要部を示すハードウエア構成を示す模式図である。 本実施の形態に係るPLCのソフトウェア構成を示す模式図である。 本実施の形態に係るPLCに接続して用いられるサポート装置のハードウエア構成を示す模式図である。 本実施の形態に係るPLCにより提供されるアクセス要求の実装例を説明するための模式図である。 本実施の第1の形態に係るSQL文の再送を示した模式図である。 ユーザプログラムに含まれる第1のファンクションブロックの一例を示す図である。 図8に示したファンクションブロックに入力される情報を例示した図である。 本実施の第1の形態に係る、SQL文の再送処理の手順を示したシーケンス図である。 本実施の第2の形態に係るSQL文の再送を示した模式図である。 ユーザプログラムに含まれる第2のファンクションブロックの一例を示す図である。 ユーザプログラムに含まれる第3のファンクションブロックの一例を示す図である。 ユーザプログラム186に含まれる第4のファンクションブロックの一例を示す図である。 ユーザからのSQL文の選択を受け付けるためのツールの画面例を表わす図である。 本実施の第2の形態に係る、SQL文の再送処理の手順を示したシーケンス図である。 本実施の形態に係る、SQL文の誤再送を防ぐための処理を示したシーケンスである。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
 <A.概要>
 まず、本実施の形態に係るコントローラの概要を機能面から説明する。以下の説明においては、機械や設備などの制御対象を制御するプログラマブルコントローラ(PLC)をコントローラの具現化例として説明を行う。但し、本実施の形態に係るコントローラは、PLCに限られることなく、各種のコントローラや情報処理装置へ適用可能である。
 図1は、本実施の形態に係るPLC100の機能的な概要を説明するための図である。図1を参照して、PLC100は、データベース装置400との間でデータの送受信が可能に構成される。つまり、PLC100およびデータベース装置400は、イーサネット(登録商標)などのネットワーク112を介して、データを互いに遣り取りできるように構成される。
 より具体的には、PLC100は、命令実行部2と、アクセス処理部4と、通信インターフェイス6とを含む。これらのコンポーネントの一部または全部は、後述するようなプロセッサがプログラムを実行することで実現されてもよく、専用のハードウエアで実現されてもよい。すなわち、図1に示されるコンポーネントは、機能的な観点から模式的に表現したものであって、それぞれのコンポーネントの実現方法については、何ら限定されるものではない。
 命令実行部2は、機械や装置などの制御対象の制御に係るユーザプログラム186を実行する。基本的には、命令実行部2は、ユーザプログラム186を周期的またはイベント的に実行する。すなわち、PLC100は、ユーザプログラム186の実行を繰返すことによって制御対象を制御するように構成されている。このユーザプログラム186は、典型的には、後述するようなサポート装置300で作成され、PLC100へ送信される。命令実行部2によって実行するユーザプログラム186が、データベース装置400にアクセスするための命令(アクセス命令)を含んでいる場合もあり、この場合には、このアクセス命令が実行されることで、データベース装置400へのアクセスを要求する内部コマンドがアクセス処理部4へ発行される。
 アクセス処理部4は、データベース装置400へのアクセスを要求する内部コマンドを命令実行部2から受信すると、データベース装置400へのアクセス要求発行のために必要な内部コマンドを通信インターフェイス6へ発行される。つまり、アクセス処理部4は、ユーザプログラム186に含まれるデータベース装置400にアクセスするためのアクセス命令が命令実行部2によって実行されることに応答して、通信インターフェイス6にアクセス要求を送信させる。すなわち、システムプログラム188は、ユーザプログラム186の実行に伴ってアクセス命令が実行されると、アクセス範囲を指定する情報に従って、データベース装置400に対するアクセス要求を生成する処理と、アクセス要求を通信インターフェイス6を介して実行する処理とのための命令を含む。
 通信インターフェイス6は、アクセス処理部4からの内部コマンドに従って、データベース装置400と通信するために必要なコマンド(要求)を生成し、ネットワーク112を介して送信する。また、通信インターフェイス6は、データベース装置400などからネットワーク112を介して送信されたデータ(実行結果)を受信する。
 図1に示すPLC100におけるデータベース装置へのアクセス要求を送信するまでの処理は、(1)命令実行部2によるユーザプログラム186の周期的/イベント実行、(2)ユーザプログラム186に含まれるアクセス命令の実行に応答した、アクセス処理部4によるアクセス要求発行のための内部コマンド発行、(3)アクセス処理部4からの内部コマンドの発行に応答した、通信インターフェイス6によるアクセス要求の送信、となる。
 以下、本実施の形態に係るPLC100およびそれに実装される機能について、より詳細に説明する。
 <B.システム構成>
 図2は、本実施の形態に係るPLC100を含む制御システム1のシステム構成を示す模式図である。図2を参照して、制御システム1は、PLC100と、PLC100に接続されるサポート装置300と、PLC100からのアクセスを受けるデータベース装置400とを含む。PLC100は、ユーザプログラムを周期的またはイベント的に実行する。このユーザプログラムに含まれるアクセス命令が実行されることで、データベース装置400への処理が実行される。
 サポート装置300は、PLC100で実行されるユーザプログラムを生成する情報処理装置の典型例である。さらに、サポート装置300は、接続ケーブル114を介してPLC100に接続され、PLC100との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。
 PLC100は、制御演算を実行するCPUユニット104と、1つ以上のIO(Input/Output)ユニット106とを含む。これらのユニットは、PLCシステムバス108を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット102によって適切な電圧の電源が供給される。
 制御システム1において、PLC100は、(PLCシステムバス108を介して接続される)IOユニット106を介して、および/または、フィールドバス110を介して、各種のフィールド機器との間でデータを遣り取りする。これらのフィールド機器は、制御対象に対して何らかの処理を行うためのアクチュエータや、制御対象から各種情報を取得するためのセンサなどを含む。図2には、このようなフィールド機器の一例として、検出スイッチ10と、リレー20と、モータ32を駆動するサーボモータドライバ30とを含む。PLC100には、フィールドバス110を介してリモートIOターミナル200も接続されている。リモートIOターミナル200は、基本的には、IOユニット106と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートIOターミナル200は、フィールドバス110でのデータ伝送に係る処理を行うための通信カプラ202と、1つ以上のIOユニット204とを含む。これらのユニットは、リモートIOターミナルバス208を介して、データを互いに遣り取りできるように構成される。
 <C.PLC100の構成>
 次に、本実施の形態に係るPLC100の構成について説明する。図3は、本実施の形態に係るPLC100の主要部を示すハードウエア構成を示す模式図である。図4は、本実施の形態に係るPLC100のソフトウェア構成を示す模式図である。
 図3を参照して、PLC100のCPUユニット104のハードウエア構成について説明する。CPUユニット104は、プロセッサ120と、チップセット122と、システムクロック124と、主メモリ126と、不揮発性メモリ128と、通信コネクタ130と、PLCシステムバスコントローラ140と、フィールドバスコントローラ150と、上位通信コントローラ160と、メモリカードインターフェイス170とを含む。チップセット122と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
 プロセッサ120およびチップセット122は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ120は、チップセット122から内部クロックに従って順次供給される命令コードを解釈して実行する。説明の便宜上、単一のプロセッサ120のみを例示するが、これらに限られることなく、任意の構成を採用できる。例えば、単一のコアを含むプロセッサを複数含む構成や、単一のプロセッサを複数含む構成、複数のコアを含むプロセッサを複数含む構成などを採用してもよい。つまり、本実施の形態に係るコントローラは、1または複数のプロセッサがプログラムを実行することで実現されてもよい。
 チップセット122は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ120に必要な命令コードを生成する。システムクロック124は、予め定められた周期のシステムクロックを発生してプロセッサ120に提供する。チップセット122は、プロセッサ120での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
 CPUユニット104は、記憶手段として、主メモリ126および不揮発性メモリ128を有する。主メモリ126は、揮発性の記憶領域であり、プロセッサ120で実行されるべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ128は、OS(Operating System)、システムプログラム、ユーザプログラム、データ定義情報、ログ情報などを不揮発的に保持する。
 通信コネクタ130は、接続ケーブル114を介してサポート装置300とCPUユニット104とを接続するためのインターフェイスである。典型的には、サポート装置300から転送される実行可能なプログラムなどは、通信コネクタ130を介してCPUユニット104に取込まれる。一例として、通信コネクタ130は、USBコネクタであるが、通信規格およびその規格に対応した通信コネクタ130の種類は、特に限定されない。
 CPUユニット104は、通信手段として、PLCシステムバスコントローラ140、フィールドバスコントローラ150、および上位通信コントローラ160を有する。これらの通信回路は、データの送信および受信を行う。
 PLCシステムバスコントローラ140は、PLCシステムバス108を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ140は、バッファメモリ142と、PLCシステムバス制御回路144と、DMA(Dynamic Memory Access)制御回路146とを含む。PLCシステムバスコントローラ140は、PLCシステムバスコネクタ148を介してPLCシステムバス108と接続される。
 フィールドバスコントローラ150は、バッファメモリ152と、フィールドバス制御回路154と、DMA制御回路156とを含む。フィールドバスコントローラ150は、フィールドバスコネクタ158を介してフィールドバス110と接続される。上位通信コントローラ160は、バッファメモリ162と、上位通信制御回路164と、DMA制御回路166とを含む。上位通信コントローラ160は、上位通信コネクタ168を介してネットワーク112と接続される。
 メモリカードインターフェイス170は、CPUユニット104に対して着脱可能なメモリカード172とプロセッサ120とを接続する。
 次に、図4を参照して、本実施の形態に係るPLC100が提供する各種機能を実現するためのソフトウェア構成について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット104のプロセッサ120によって実行される。
 図4を参照して、CPUユニット104で実行されるソフトウェアとしては、OS180と、システムプログラム188と、ユーザプログラム186との3階層になっている。
 OS180は、プロセッサ120がシステムプログラム188およびユーザプログラム186を実行するための基本的な実行環境を提供する。
 システムプログラム188は、PLC100としての基本的な機能を提供するためのソフトウェア群である。具体的には、システムプログラム188は、シーケンス命令ライブラリ190と、DB(データベース)アクセス処理ライブラリ191と、監視処理ライブラリ192と、入出力処理ライブラリ193と、Toolインターフェイス処理プログラム194と、スケジューラ195とを含む。
 これに対して、ユーザプログラム186は、制御対象に対する制御目的に応じて任意に作成されたプログラムである。すなわち、ユーザプログラム186は、制御システム1を用いて制御する対象のライン(プロセス)などに応じて、任意に設計される。
 ユーザプログラム186は、シーケンス命令ライブラリ190と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム186は、シーケンス命令ライブラリ190によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム186およびシーケンス命令ライブラリ190を「制御プログラム」と総称する場合もある。
 これらのプログラムやライブラリなどは、不揮発性メモリ128に格納される。すなわち、不揮発性メモリ128は、システムプログラム188とユーザプログラム186とを格納するメモリに相当する。
 データ定義情報182は、ユーザプログラム186などが実行される際に、参照されるデータ(入力データ、出力データ、内部データ)をユニークな変数として扱うための定義を含む。稼動ログ184には、システムプログラム188およびユーザプログラム186の実行に伴って、予め定められた事象が発生した際に、当該発生した事象の情報が時刻情報と関連付けて格納される。すなわち、稼動ログ184には、システムプログラム188および/またはユーザプログラム186の実行に伴う各種情報がログ(履歴情報)として格納される。
 以下、各プログラムについてより詳細に説明する。
 シーケンス命令ライブラリ190は、ユーザプログラム186の実行に伴って、ユーザプログラム186内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
 DBアクセス処理ライブラリ191は、ユーザプログラム186の実行に伴って、データベース装置400にアクセスするために必要な処理を実現するための命令コード群を含む。DBアクセス処理ライブラリ191は、ユーザプログラム186において指定可能な命令に対応する実行コードを含む。
 監視処理ライブラリ192は、本実施の形態に係るアクセス要求の制限機能を実現するためのプログラムである。監視処理ライブラリ192によって提供される機能の詳細については、後述する。
 入出力処理ライブラリ193は、IOユニット106や各種のフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
 Toolインターフェイス処理プログラム194は、サポート装置300との間でデータを遣り取りするためのインターフェイスを提供する。
 スケジューラ195は、予め定められた優先度やシステムタイマの値などに従って、制御プログラムを実行するためのスレッドやプロシージャを生成する。
 ユーザプログラム186は、上述したように、ユーザにおける制御目的(例えば、対象のラインやプロセス)に応じて作成される。ユーザプログラム186は、典型的には、CPUユニット104のプロセッサ120で実行可能なオブジェクトプログラム形式になっている。ユーザプログラム186は、サポート装置300などにおいて、ラダー形式やファンクションブロック形式で記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラムは、サポート装置300からCPUユニット104へ転送され、不揮発性メモリ128などに格納される。
 上述の説明においては、プロセッサ120がメモリに格納されているユーザプログラム186の実行にあたって、システムプログラムを読み出し、システムプログラム内のDBアクセス処理ライブラリ191および監視処理ライブラリ192に含まれるプログラムを実行する形態について例示した。しかしながら、ユーザプログラム186で記述される、アクセス命令の実行を受けて、データベース装置に対するアクセス要求を送受信するプログラム(一例として、データベース接続サービス)、および、命令実行にあたってのデータベースにアクセスする範囲を指定する情報を監視するプログラム(一例として、監視サービス)を含む構成であれば、上述の実施の形態に限定されない。
 <D.サポート装置300の構成>
 次に、本実施の形態に係るサポート装置300について説明する。サポート装置300は、PLC100のCPUユニット104の使用を支援するためのものであり、PLC100との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。
 図5は、本実施の形態に係るPLC100に接続して用いられるサポート装置300のハードウエア構成を示す模式図である。サポート装置300は、典型的には、汎用のコンピュータで構成される。
 図5を参照して、サポート装置300は、OSを含む各種プログラムを実行するCPU302と、BIOSや各種データを格納するROM(Read Only Memory)304と、CPU302でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM306と、CPU302で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)308とを含む。より具体的には、ハードディスク308には、サポート装置300が提供する機能を実現するためのサポートプログラム330が格納されている。
 サポート装置300は、さらに、ユーザからの操作を受付けるキーボード310およびマウス312と、情報をユーザに提示するためのモニタ314とを含む。さらに、サポート装置300は、PLC100(CPUユニット104)などと通信するための通信インターフェイス(IF)318を含む。
 サポート装置300で実行されるサポートプログラム330などは、典型的には、コンピュータ読取可能な記録媒体の一例である光学ディスク332に格納されて流通する。光学ディスク332に格納されたサポートプログラムは、光学ディスク読取装置316によって読み取られ、ハードディスク308などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
 <E.データベース装置400の構成>
 次に、本実施の形態に係るデータベース装置400について説明する。データベース装置400としては、データベースを提供する公知の構成を採用することができる。このようなデータベースとしては、リレーショナルデータ型やオブジェクトデータ型といった任意の構成を採用できる。データベース装置400は、汎用的なコンピュータアーキテクチャに従って構成されるため、ここではその詳細な説明は繰返さない。
 データベース装置400は、PLC100からの接続要求やアクセス要求(リレーショナルデータ型では、SQL文)を受けて、必要な処理を実行し、その処理結果などをPLC100へ応答する。典型的には、SQL文によって、指定されたデータを指定された位置または範囲に書込む、指定された位置または範囲に格納されているデータを読出す、指定された位置または範囲に格納されているデータを削除する、といった処理が実行される。以下に説明される一実施形態では、データベース装置400はリレーショナルデータ型であり、アクセス要求はSQL文である。
 上述の説明においては、データベースを提供する装置であるデータベース装置400を例示したが、このような構成に限定されることなく、各種の構成を採用できる。すなわち、データを保持する機能、アクセス要求に応じて処理を行う機能、処理結果をクライエントに応答する機能といった、データベースとしての基本的な機能を有する構成であれば、任意の構成を採用できる。そのため、単一の装置にデータベース機能に加えて、他の機能を有する構成や、複数の装置が連係して単一のデータベース機能を提供する構成などを採用できる。
 <F.データベースへのアクセス機能>
 次に、本実施の形態に係るPLC100により提供されるデータベースへのアクセス機能の実装例について説明する。
 図6は、本実施の形態に係るPLC100により提供されるアクセス要求の実装例を説明するための模式図である。図6には、ユーザプログラム186においてデータベース装置400にアクセスするためのアクセス命令が定義されている例を示す。図6には、アクセス命令の一例として、データベース装置400にデータを挿入するための「DB_INSERT」命令を示すが、これに限られることなく、データベース装置400に送信する対象のデータやデータベース装置400のデータにアクセスする範囲(アクセス範囲)を指定される情報などを含む、様々な命令を指定できる。このように、アクセス命令は、データベース装置400にアクセスするアクセス範囲を指定する情報を含む。
 典型的には、ユーザがサポート装置300を操作して、ユーザプログラム186内でDBアクセス命令(DB_INSERT)を指定したとする。このユーザプログラム186が実行され、DBアクセス命令の実行タイミングになると、DBアクセス処理ライブラリ191(図4)の対応する命令コードが呼び出されて、データベース装置400へのアクセス要求を含むSQL文が生成および送信される。すなわち、システムプログラム188に含まれるDBアクセス処理ライブラリ191によって実現されるDB接続サービスが提供されており、ユーザプログラム186内のDBアクセス命令の実行に伴って、DB接続サービスがトリガーされる。そして、DB接続サービスは、SQL文を生成し、生成したSQL文をデータベース装置に対応するドライバソフトを介してデータベース装置に送信する。具体的には、DBアクセス機能は、上位通信コントローラ160(図3)およびDBアクセス処理ライブラリ191(図4)によって、DB接続サービスが生成したSQL文を、ネットワーク112を介してデータベース装置400へ送信する。
 データベース装置400は、PLC100からのSQL文を受信すると、それに従って処理を実行し、必要に応じて、その結果をPLC100へ応答する。
 DB接続サービスは、処理の実行に応じて、その処理の内容を時刻情報と関連付けて(つまり、実行ログとして)、稼動ログ184に書込む。つまり、PLC100の稼動状況のログが保存される。DB接続サービスは、アクセス命令の実行に伴って、SQL文を生成および送信したときに、その内容を、稼動ログ184に書込む。図6に示す例では、DB接続サービスは、メモリカード172に格納されたログファイル1842に、稼働ログ184を追加して、ログファイル1842を更新する。
 DB接続サービスによるデータベース装置400へのアクセスにおいてエラーが発生した場合、データベース装置400へのアクセスに失敗したときのSQL文を含むログ(以下「失敗ログ1891」と呼ぶ)がスプール189に格納される。そして、DB接続サービスは、スプールに格納されたSQL文を読み出してデータベース装置400に再送する。このときに、ユーザプログラム186または、サポート装置300によって提供されるツールを利用して、データベース装置400に再送すべきSQL文を選択することができる。失敗ログ1891は、データベース装置400へのアクセスが失敗したときのアクセス要求を記録したエラーリストである。
 スプールは、CPUユニット104の内部に設けられるように限定されるものではなく、CPUユニット104の外部(PLC100の外部)にスプールが設けられていてもよい。失敗ログ1891を含むエラーリストは、メモリカード172に格納されてもよい。以下では、失敗ログ1891が格納されるべき記憶領域(スプールあるいはメモリカード)を「格納先」と称する。
 サポート装置300は、稼動ログ184の内容を確認するための機能を有しており、何らかのエラーが発生した場合に、ユーザはそのサポート装置300の機能を利用して、エラーの原因や内容などを確認することができる。
 <G.エラー復旧時の課題>
 データベース装置400へのアクセスにエラーが発生したときの復旧のために、格納先(たとえばスプール)に格納されたSQL文を再送することが考えられる。格納先に格納されたSQL文を一括的に送信する場合、意図されない処理が実行される可能性がある。たとえばデータベース装置400へのデータ挿入処理が複数回失敗したとする。この場合、格納先に格納されたSQL文を一括的に送信すると、データベース装置400に、同じデータが複数回挿入されるといったことが考えられる。SQL文の一括的な再送が適さない場合を考慮して、ユーザプログラム186が、指定されたSQL文のみを再送する機能を実装していることが好ましい。
 指定されたSQL文のみを再送する機能がユーザプログラム186に実装されていない場合、ユーザは、ログファイル(あるいは失敗ログファイル)を参照して、エラーが発生したときのSQL文を抽出しなければならない。しかしログからのSQL文の抽出にユーザの手間を要するという課題がある。さらに、ログファイルからSQL文を抽出するという機能のみでは、ユーザがDB接続サービスを介して任意のSQL文を追加的にデータベース装置400に送信することはできない。
 また、格納先がスプールであり、かつそのスプールの容量が小さい場合、スプールが蓄えることができるSQL文の数も制限される。したがって、ユーザが実行したいSQL文がスプールに蓄えられていない可能性も考えられる。
 本実施の形態では、図1に示したアクセス処理部4は、データベース装置400へのアクセスが失敗したときのアクセス要求を記録したエラーリストから、所定の条件を満たすアクセス要求を抽出する。そして、アクセス処理部4は、抽出されたアクセス要求を、通信インターフェイス6に再送信させる。したがって、条件に適合するSQL文のみをデータベース装置400に再送することが可能であるので、データベース装置400への接続エラーから柔軟な復旧が可能なコントローラを実現することができる。以下に、本実施の形態に係るSQL文の再送について詳細に説明する。
 <H.本実施の第1の形態に係るSQL文の再送>
 図7は、本実施の第1の形態に係るSQL文の再送を示した模式図である。第1の形態によれば、ユーザプログラム186が、指定された条件に適合するSQL文を特定するとともに、DB接続サービスに対して、その特定されたSQL文を、ログファイルまたはスプールから抽出して再送するよう命令する。ユーザプログラム186によるSQL文の選択は、たとえばPLC100の稼働中に実行される。
 図8を参照して、SQL文再送処理のためのユーザプログラム186の構成と処理内容を説明する。図8は、ユーザプログラム186に含まれる第1のファンクションブロックFB1の一例を示す図である。以下、ファンクションブロックFB1をブロックFB1とも称する。
 ブロックFB1の機能を有するプログラムは、ファンクションブロック以外で規定されてもよい。例えば、ブロックFB1は、ラダーダイアグラムで規定されるもの、命令リスト、構造化テキスト、および、シーケンシャルファンクションチャートのいずれか、あるいは、これらの組み合わせで規定されるものも含み得る。また、ブロックFB1は、JavaScript(登録商標)やC言語のような汎用的なプログラミング言語で規定されるものも含み得る。
 ブロックFB1は、データベース装置400へのアクセスを制御する命令を実行するためのプログラムである。より具体的には、ブロックFB1は、データベース装置400へのアクセスにエラーが生じたときのSQL文を再送するようにDB接続プログラムに命令する機能を有するプログラムである。
 ブロックFB1は、SQL文の再送に関する設定を受け付ける入力部255A~255Eと、SQL文の再送を実行するための命令を出力するための出力部256Aとを含む。
 「Excute」として示される入力部255Aは、SQL文の再送処理を実行するか否かを指定するための設定を受け付ける。一例として、入力部255Aは、「BOOL」型の入力を受け付けるように規定されている。入力部255Aに「FALSE」が入力されている限り、SQL文の再送が実行されない。一方で、入力部255Aに「TRUE」が入力された場合には、SQL文の再送の処理が実行される。
 入力部255B,255C,255D,255Eは、それぞれ、SQLカテゴリ、領域、領域のパス、抽出条件を受け付ける。処理が完了した場合には、抽出条件に適合するSQLを領域から抽出する命令を示す信号が、「Done」として示される出力部256Aから出力される。
 図9は、図8に示したファンクションブロックに入力される情報を例示した図である。図9には、SQLカテゴリ、領域、領域のパス、および抽出条件の各々の例が示される。しかしながら、本実施の形態は、図9に示した例によって限定されるものではない。
 図10は、本実施の第1の形態に係る、SQL文の再送処理の手順を示したシーケンス図である。図10に示すシーケンス図においては、PLC100の内部処理に加えて、サポート装置300およびデータベース装置400との遣り取りについても示す。
 あるタイミングにおいて、ユーザがサポート装置300を操作して、再送条件を選択する(シーケンスSQ100)。サポート装置300の操作により、ユーザは、ユーザプログラム186に入力すべき再送条件を選択する(シーケンスSQ102)。具体的には、ユーザはサポート装置300を介して、SQLカテゴリ、領域、領域のパス、および抽出条件を選択する。サポート装置300は、ユーザによって選択された情報を、PLC100へと送信する。
 続いて、PLC100は、ユーザプログラム186を実行する。このとき、ファンクションブロックFB1の入力部が、サポート装置300からの情報(SQLカテゴリ、領域、領域のパス、および抽出条件)を受け付ける。ファンクションブロックFB1の出力部から、該当のSQL文を再実行する命令が、システムプログラム188(DB接続サービス)に送信される(シーケンスSQ104)。
 DB接続サービスは、ユーザプログラム186からの命令に応答して、openコマンドを発行して、スプールなどの格納先に格納されたエラーリスト(失敗ログのファイル)を開く(シーケンスSQ106)。次にDB接続サービスは、grepコマンドを発行して、抽出条件に合致する文字列を含むログをエラーリスト内において検索する(シーケンスSQ108)。これにより、DB接続サービスは、grepコマンドを実行した結果を格納先から受け取る(シーケンスSQ110)。以下では、該当のSQL文を含むログがエラーリストから見つかった場合について説明する。
 DB接続サービスは、抽出されたログに含まれるSQL文に基づいて、再送されるべきSQL文を作成する(シーケンスSQ112)。DB接続サービスは、そのSQL文をデータベース装置400に送信して、データベース装置400へのアクセスを実行する(シーケンスSQ114)。データベース装置400は、受信したアクセス要求に従って処理を実行し、その実行結果をDB接続サービスへ返す(シーケンスSQ116)。
 以上説明したように、第1の形態では、ユーザプログラム186(命令実行部2)は、所定の条件の設定に関するユーザの入力に応じて、その条件を満たすアクセス要求(SQL文)を抽出するように、アクセス処理部4(DB接続サービス)に命令する。これにより、ユーザの指定したSQL文のみを失敗ログから抽出することができるとともに、そのSQLに係る処理のみを再実行することができる。
 <I.本実施の第2の形態に係るSQL文の再送>
 図11は、本実施の第2の形態に係るSQL文の再送を示した模式図である。第2の形態においてば、ユーザプログラム186は、指定された条件に適合するSQL文を含むログを、スプール189に格納された失敗ログ1891から抽出する。ユーザプログラム186は、そのログをサポート装置300において表示するための処理を実行する。
 サポート装置300はツールソフトを実行することにより、ログに含まれる情報を表示する。ユーザは表示された情報から、再送すべきSQL文を選択する。サポート装置300は、ユーザの入力を受け付けるとともに、SQL文の再送を実行するためのコマンドをユーザプログラム186に命令を送る。ユーザプログラム186は、指定された条件に適合するSQL文を特定するとともに、DB接続サービスに対して、その特定されたSQL文を、ログファイルまたはスプールから抽出して再送するよう命令する。ツールを用いたSQL文の再送は、たとえばPLC100の立ち上げ時に実行されてもよく、PLC100のメンテナンス時に実行されてもよい。
 図12~図14を参照して、SQL文抽出処理のためのユーザプログラム186の構成と処理内容を説明する。図12は、ユーザプログラム186に含まれる第2のファンクションブロックFB2の一例を示す図である。以下、ファンクションブロックFB2をブロックFB2とも称する。
 ブロックFB2は、再送されるべきSQL文を抽出するようにDB接続サービスに命令する機能を有するプログラムである。ブロックFB2は、SQL文の抽出に関する設定を受け付ける入力部265A~265Eと、SQL文の抽出を実行するための命令を出力するための出力部266A,266Bとを含む。ブロックFB1と同じく、「Excute」として示される入力部255Aは、SQL文の再送処理を実行するか否かを指定するための設定を受け付ける。一例として、入力部265Aは、「BOOL」型の入力を受け付けるように規定されている。入力部265Aに「FALSE」が入力されている限り、SQL文の抽出が実行されない。一方で、入力部265Aに「TRUE」が入力された場合には、SQL文の抽出の処理が実行される。
 入力部265B,265C,265D,265Eは、それぞれ、SQLカテゴリ、領域、領域のパス、抽出条件を受け付ける。処理が完了した場合には、抽出条件に適合するSQLを領域から抽出する命令を示す信号が、「Done」として示される出力部266Aから出力される。また、「Handle」として示される出力部266Bから、ハンドル値が出力される。
 図13は、ユーザプログラム186に含まれる第3のファンクションブロックFB3の一例を示す図である。以下、ファンクションブロックFB3をブロックFB3とも称する。
 ブロックFB3は、格納先から抽出された失敗ログをサポート装置300に表示させるために必要な処理を実行する機能を有するプログラムである。ブロックFB3は、データの取得に関する設定を受け付ける入力部275A,275Bと、取得されたデータのリストを作成するための命令を出力するための出力部276Aと、抽出されたデータを出力するための出力部276Bとを含む。「Excute」として示される入力部275Aは、データのリストを作成するか否かを指定するための設定を受け付ける。一例として、入力部275Aは、「BOOL」型の入力を受け付けるように規定されている。入力部275Aに「FALSE」が入力されている限り、データのリストの作成が実行されない。一方で、入力部275Aに「TRUE」が入力された場合には、データのリストの作成が実行される。「Handle」として示される入力部275Bは、ブロックFB2からのハンドル値を受け付ける。
 処理が完了した場合には、データのリストを作成する命令を示す信号が、「Done」として示される出力部266Aから出力される。またリストを作成するために必要な情報が、「ExtractionInfo」として示される出力部276Bから出力される。
 図14は、ユーザプログラム186に含まれる第4のファンクションブロックFB4の一例を示す図である。以下、ファンクションブロックFB4をブロックFB4とも称する。
 ブロックFB1と同じく、ブロックFB4は、データベース装置400へのアクセスにエラーが生じたときのSQL文を再送するようにDB接続プログラムに命令する機能を有するプログラムである。ブロックFB4は、SQL文の再送に関する設定を受け付ける入力部285A,285Bと、取得されたデータのリストを作成するための命令を出力するための出力部286Aと、SQL文の再送を実行するための命令を出力するための出力部286Bとを含む。
 「Excute」として示される入力部285Aは、SQL文の再送処理を実行するか否かを指定するための設定を受け付ける。一例として、入力部285Aは、「BOOL」型の入力を受け付けるように規定されている。入力部285Aに「FALSE」が入力されている限り、SQL文の再送が実行されない。一方で、入力部285Aに「TRUE」が入力された場合には、SQL文の再送の処理が実行される。「Handle」として示される入力部285Bは、ブロックFB2からのハンドル値を受け付ける。
 処理が完了した場合には、抽出条件に適合するSQL文を再送する命令を示す信号が、「Done」として示される出力部276Aから出力される。
 図15は、ユーザからのSQL文の選択を受け付けるためのツールの画面例を表わす図である。図15を参照して、サポート装置300がツールプログラムを実行することにより、図15に示した画面がサポート装置300に表示される。ツール301は、SQLカテゴリ選択部351と、領域選択部352と、パス選択部353と、抽出条件選択部354とを含む。
 SQLカテゴリ選択部351、領域選択部352、パス選択部353、および抽出条件選択部354の各々がユーザにより操作される。SQLカテゴリ選択部351は、SQLカテゴリ(SQLコマンド)の種類を選択する機能を有する。領域選択部352は、失敗ログの格納される領域を選択する機能を有する。パス選択部353は、領域選択部352により選択される領域のパスを選択する機能を有する。抽出条件選択部354は、抽出されるべきSQL文の条件を選択する機能を有する。図15に示した例では、SQLカテゴリ(「INSERT」)、領域(「稼働ログ-失敗ログ」)、領域のパス(「/fs/MEMORYCARD/DBConnection」)および抽出条件(「コネクション名=DBConnection1」)が選択される。
 ツール301は、さらに、SQL実行失敗ログ表示部355を含む。SQL実行失敗ログ表示部355は、失敗ログに含まれる情報を一覧表形式で表示する。SQL実行失敗ログ表示部355に表示される項目は、たとえばエントリ、日時、SQLカテゴリ、ログコード、ログ名、実行結果、コネクション名、シリアルID等である。ユーザがSQL実行失敗ログ表示部355を操作することにより、SQL実行失敗ログ表示部355に表示されたログのうち、再送すべきSQL文を含むログが反転表示されるとともに、当該ログが選択される。
 ツール301は、さらに、SQL表示部356と、SQL再送ボタン357とを含む。SQL表示部356は、SQL実行失敗ログ表示部355に表示されたログの中から選択された失敗ログに含まれるSQL文を表示する。SQL再送ボタン357は、ユーザの操作を受け付ける。SQL再送ボタン357が操作されることにより、ツール301は、SQL表示部356に表示されたSQL文をデータベース装置400に再送するための命令をユーザプログラム186に送信する。
 図16は、本実施の第2の形態に係る、QL文の再送処理の手順を示したシーケンス図である。第1の形態と同様に、あるタイミングにおいて、ユーザがサポート装置300を操作して、再送条件を選択する(シーケンスSQ100)。サポート装置300の操作により、ユーザは、ユーザプログラム186に入力すべき再送条件を選択する(シーケンスSQ102)。具体的には、ユーザはサポート装置300を介して、SQLカテゴリ、領域、領域のパス、および抽出条件を選択する。サポート装置300は、ユーザによって選択された情報を、PLC100へと送信する。
 続いて、PLC100は、ユーザプログラム186を実行する。このとき、ファンクションブロックFB2の入力部が、サポート装置300からの情報(SQLカテゴリ、領域、領域のパス、および抽出条件)を受け付ける。該当のSQL文を抽出する命令が、ファンクションブロックFB2の出力部から、システムプログラム188(DB接続サービス)に送信される(シーケンスSQ104)。
 DB接続サービスは、ユーザプログラム186からの命令に応答して、openコマンドを発行して、スプールなどの格納先に格納されたエラーリスト(失敗ログのファイル)を開く(シーケンスSQ106)。次にDB接続サービスは、grepコマンドを発行して、抽出条件に合致する文字列を含むログをエラーリスト内において検索する(シーケンスSQ108)。これにより、DB接続サービスは、grepコマンドを実行した結果を格納先から受け取る(シーケンスSQ110)。以下では、該当のSQL文を含むログがエラーリストから見つかった場合について説明する。
 DB接続サービスは、抽出されたログから、SQL文を作成する(シーケンスSQ112)。次に、DB接続サービスは、実行結果をユーザプログラム186に送信する(シーケンスSQ120)。
 サポート装置300は、ユーザ操作に応じて、抽出した内容を確認することの命令をユーザプログラム186に送信する(シーケンスSQ122)。命令に応じて、ユーザプログラム186(ファンクションブロックFB3)が、DB接続サービスに、抽出された情報を表示するための命令を送信する(シーケンスSQ124)。
 DB接続サービスは、命令に応じて、実行結果をユーザプログラム186に送信する。これにより、ユーザプログラム186は、抽出された情報を取得する(シーケンスSQ126)。サポート装置300は、抽出された情報を表示するようにツール301のプログラムを実行する。
 ユーザがツール301を操作することにより、再送すべきSQL文が選択される。サポート装置300は、SQL文の再送の実行をPLC100に指示する。応じて、ファンクションブロックFB4は、SQL文の再送をDB接続サービスに命令する(シーケンスSQ130)。DB接続サービスは、そのSQL文をデータベース装置400に送信して、データベース装置400へのアクセスを実行する(シーケンスSQ132)。データベース装置400は、受信したアクセス要求に従って処理を実行し、その実行結果をDB接続サービスへ返す(シーケンスSQ134)。
 以上説明したように、第2の形態では、ユーザプログラム186(命令実行部2)は、アクセス処理部4(DB接続サービス)によってエラーリストから抽出されたアクセス要求(SQL文)を示す情報を表示するためのユーザプログラム186(ブロックFB2,FB3)を実行する。ユーザプログラム186(命令実行部2)は、アクセス要求の選択に関するユーザの入力に応じて、ユーザによって選択されたアクセス要求を、通信インターフェイス6に再送信させるように、アクセス処理部4(DB接続サービス)に命令する。したがって、第1の形態と同じく、ユーザの指定したSQL文のみを失敗ログから抽出することができるとともに、そのSQLに係る処理のみを再実行することができる。
 <J.誤再送の防止>
 データベース装置400に再送すべきSQL文をユーザが選択できる場合、同じSQL文がデータベース装置400に複数回送信されるように、ユーザがツールを操作する可能性がある。このような場合、データベース装置400に対する同一の処理が複数回繰り返される可能性がある。たとえば同一のデータがデータベース装置400に複数回挿入される。したがって、SQL文の再送により、データベース装置400に対する処理が成功した場合には、同一のSQL文がさらにデータベース装置に送信されることを防ぐ(SQL文の誤再送を防ぐ)ことが好ましい。
 図17は、本実施の形態に係る、SQL文の誤再送を防ぐための処理を示したシーケンスである。図17を参照して、シーケンスSQ128以前のシーケンスについては、図16に示されている、対応するシーケンスと同じである。シーケンスSQ132,SQ134の処理も、図16に示されている、対応するシーケンスの処理と同じである。
 DB接続サービスは、データベース装置400からの実行結果を受けることにより、データベース装置400のレスポンスをチェックする。データベース装置400への接続が正常であったことを示すレスポンスをDB接続サービスが受信した場合には、格納先に格納された失敗ログのリストから、該当のログ(SQL文を含むアクセス要求)が削除される(シーケンスSQ140)。なお、シーケンスSQ140では、該当のSQL文が無効となるように処理が実行されてもよい。たとえば、SQL文に関連付けられたフラグの値を、再送信に成功したことを示す値に設定してもよい。
 一方、データベース装置400への接続が失敗であったことを示すレスポンスをDB接続サービスが受信した場合には、該当のSQL文の再送(RESENDコマンド)が失敗であったことを示す情報が生成されるとともに、その情報が格納先に格納される(シーケンスSQ142)。したがって、この場合には、データベース装置400への接続が正常となるまで、そのSQL文を再送することができる。
 以上のように、この実施の形態によれば、データベース装置400へのアクセスに失敗したときのSQL文を含むログ(失敗ログ)から、再送すべきSQL文を選択できる。したがって、データベース装置400への接続エラーから柔軟に復旧することができる。
 <K.付記>
 以上のように、本実施形態は以下のような開示を含む。
(構成1)
 制御対象を制御するコントローラ(100)であって、
 データベース装置(400)にアクセスするための通信インターフェイス(6)と、
 前記データベース装置(400)へのアクセスのためのアクセス命令を含み、かつ前記制御対象の制御に関連するユーザプログラム(186)を実行する命令実行部(2)と、
 前記アクセス命令が前記命令実行部(2)によって実行されることに応答して、アクセス要求を生成して、前記アクセス要求を前記通信インターフェイス(6)に送信させるアクセス処理部(4)とを備え、
 前記アクセス処理部(4)は、前記データベース装置(400)へのアクセスが失敗したときのアクセス要求を記録したエラーリストから、所定の条件を満たすアクセス要求を抽出して、抽出されたアクセス要求を、前記通信インターフェイス(6)に再送信させる、コントローラ(100)。
(構成2)
 前記命令実行部(2)は、前記所定の条件の設定に関するユーザの入力に応じて、前記所定の条件を満たす前記アクセス要求を抽出するように、前記アクセス処理部(4)に命令する、構成1に記載のコントローラ(100)。
(構成3)
 前記命令実行部(2)は、前記アクセス処理部(4)によって前記エラーリストから抽出された前記アクセス要求を示す情報を表示するための前記ユーザプログラム(186)を実行し、前記アクセス要求の選択に関するユーザの入力に応じて、前記ユーザによって選択された前記アクセス要求を、前記通信インターフェイス(6)に再送信させるように、前記アクセス処理部(4)に命令する、構成1に記載のコントローラ(100)。
(構成4)
 前記アクセス処理部(4)は、前記通信インターフェイス(6)による前記アクセス要求の再送信が成功した場合には、前記エラーリストから、該当のアクセス要求を削除する、構成1から構成3のいずれか1つに記載のコントローラ(100)。
(構成5)
 前記アクセス処理部(4)は、前記通信インターフェイス(6)による前記アクセス要求の再送信が失敗した場合には、前記再送信の失敗に関する情報を生成する、構成4に記載のコントローラ(100)。
(構成6)
 構成1から構成5のいずれかに記載のコントローラ(100)と、
 前記コントローラ(100)からのアクセス要求を受け付けるデータベース装置(400)とを含む、制御システム。
(構成7)
 制御対象を制御するコントローラ(100)による制御方法であって、
 前記コントローラ(100)が、データベース装置(400)へのアクセスのためのアクセス命令を実行するステップと、
 前記コントローラ(100)が、アクセス要求を生成するステップと、
 前記コントローラ(100)が、前記アクセス要求を前記データベース装置(400)に送信するステップと、
 前記コントローラ(100)が、前記データベース装置(400)へのアクセスが失敗したときのアクセス要求をエラーリストに格納するステップと、
 前記コントローラ(100)が、前記エラーリストから、所定の条件を満たすアクセス要求を抽出するステップと、
 前記コントローラ(100)が、抽出されたアクセス要求を、前記データベース装置(400)に再送信するステップとを備える、制御方法。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、2 命令実行部、4 アクセス処理部、6 通信インターフェイス、10 検出スイッチ、20 リレー、30 サーボモータドライバ、32 モータ、100 PLC、102 電源ユニット、104 CPUユニット、106 IOユニット、108 PLCシステムバス、110 フィールドバス、112 ネットワーク、114 接続ケーブル、120 プロセッサ、122 チップセット、124 システムクロック、126 主メモリ、128 不揮発性メモリ、130 通信コネクタ、140 PLCシステムバスコントローラ、142,152,162 バッファメモリ、144 PLCシステムバス制御回路、146,156,166 DMA制御回路、148 PLCシステムバスコネクタ、150 フィールドバスコントローラ、154 フィールドバス制御回路、158 フィールドバスコネクタ、160 上位通信コントローラ、164 上位通信制御回路、168 上位通信コネクタ、170 メモリカードインターフェイス、172 メモリカード、180 OS、182 データ定義情報、184 稼動ログ、1842 ログファイル、186 ユーザプログラム、188 システムプログラム、189 スプール、1891 失敗ログ、190 シーケンス命令ライブラリ、191 DB(データベース)アクセス処理ライブラリ、192 監視処理ライブラリ、193 入出力処理ライブラリ、194 Toolインターフェイス処理プログラム、195 スケジューラ、200 リモートIOターミナル、202 通信カプラ、208 ターミナルバス、255A~255E,265A~265E,275A,275B,285A,285B 入力部、256A,266A,266B,276A,276B,286A,286B 出力部、300 サポート装置、301 ツール、302 CPU、304 ROM、306 RAM、308 ハードディスク、310 キーボード、312 マウス、314 モニタ、316 光学ディスク読取装置、330 サポートプログラム、332 光学ディスク、351 カテゴリ選択部、352 領域選択部、353 パス選択部、354 抽出条件選択部、355 実行失敗ログ表示部、356 SQL表示部、357 SQL再送ボタン、400 データベース装置、FB1~FB4 ファンクションブロック、SQ100~SQ142 シーケンス。

Claims (7)

  1.  制御対象を制御するコントローラであって、
     データベース装置にアクセスするための通信インターフェイスと、
     前記データベース装置へのアクセスのためのアクセス命令を含み、かつ前記制御対象の制御に関連するユーザプログラムを実行する命令実行部と、
     前記アクセス命令が前記命令実行部によって実行されることに応答して、アクセス要求を生成して、前記アクセス要求を前記通信インターフェイスに送信させるアクセス処理部とを備え、
     前記アクセス処理部は、前記データベース装置へのアクセスが失敗したときのアクセス要求を記録したエラーリストから、所定の条件を満たすアクセス要求を抽出して、抽出されたアクセス要求を、前記通信インターフェイスに再送信させる、コントローラ。
  2.  前記命令実行部は、前記所定の条件の設定に関するユーザの入力に応じて、前記所定の条件を満たす前記アクセス要求を抽出するように、前記アクセス処理部に命令する、請求項1に記載のコントローラ。
  3.  前記命令実行部は、前記アクセス処理部によって前記エラーリストから抽出された前記アクセス要求を示す情報を表示するための前記ユーザプログラムを実行し、前記アクセス要求の選択に関するユーザの入力に応じて、前記ユーザによって選択された前記アクセス要求を、前記通信インターフェイスに再送信させるように、前記アクセス処理部に命令する、請求項1に記載のコントローラ。
  4.  前記アクセス処理部は、
     前記通信インターフェイスによる前記アクセス要求の再送信が成功した場合には、前記エラーリストから、該当のアクセス要求を削除する、請求項1から請求項3のいずれか1項に記載のコントローラ。
  5.  前記アクセス処理部は、
     前記通信インターフェイスによる前記アクセス要求の再送信が失敗した場合には、前記再送信の失敗に関する情報を生成する、請求項4に記載のコントローラ。
  6.  請求項1から請求項5のいずれか1項に記載のコントローラと、
     前記コントローラからのアクセス要求を受け付けるデータベース装置とを含む、制御システム。
  7.  制御対象を制御するコントローラによる制御方法であって、
     前記コントローラが、データベース装置へのアクセスのためのアクセス命令を実行するステップと、
     前記コントローラが、アクセス要求を生成するステップと、
     前記コントローラが、前記アクセス要求を前記データベース装置に送信するステップと、
     前記コントローラが、前記データベース装置へのアクセスが失敗したときのアクセス要求をエラーリストに格納するステップと、
     前記コントローラが、前記エラーリストから、所定の条件を満たすアクセス要求を抽出するステップと、
     前記コントローラが、抽出されたアクセス要求を、前記データベース装置に再送信するステップとを備える、制御方法。
PCT/JP2020/008911 2019-07-08 2020-03-03 コントローラ、制御システム、および制御方法 WO2021005829A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080046727.7A CN114072738A (zh) 2019-07-08 2020-03-03 控制器、控制系统以及控制方法
US17/597,105 US20220236711A1 (en) 2019-07-08 2020-03-03 Controller, control system, and control method
EP20836957.9A EP3998513A4 (en) 2019-07-08 2020-03-03 CONTROL DEVICE, CONTROL SYSTEM AND CONTROL METHOD

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-126704 2019-07-08
JP2019126704A JP7331507B2 (ja) 2019-07-08 2019-07-08 コントローラ、制御システム、および制御方法

Publications (1)

Publication Number Publication Date
WO2021005829A1 true WO2021005829A1 (ja) 2021-01-14

Family

ID=74114609

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/008911 WO2021005829A1 (ja) 2019-07-08 2020-03-03 コントローラ、制御システム、および制御方法

Country Status (5)

Country Link
US (1) US20220236711A1 (ja)
EP (1) EP3998513A4 (ja)
JP (1) JP7331507B2 (ja)
CN (1) CN114072738A (ja)
WO (1) WO2021005829A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887310A (ja) * 1994-09-14 1996-04-02 Toshiba Corp プログラマブルコントローラ
JP2012108642A (ja) 2010-11-16 2012-06-07 Fuji Electric Co Ltd データ収集システム、データ収集システムの異常要因判定方法
JP2014157483A (ja) * 2013-02-15 2014-08-28 Omron Corp コントローラおよび情報処理装置
JP2014197346A (ja) * 2013-03-29 2014-10-16 オムロン株式会社 コントローラおよびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6201298B2 (ja) * 2012-11-14 2017-09-27 オムロン株式会社 コントローラおよびプログラム
JP6171386B2 (ja) * 2013-02-15 2017-08-02 オムロン株式会社 コントローラ、情報処理装置およびプログラム
JP6171387B2 (ja) * 2013-02-15 2017-08-02 オムロン株式会社 コントローラ、情報処理装置およびプログラム
CN109739806A (zh) * 2018-12-28 2019-05-10 安谋科技(中国)有限公司 内存访问方法、内存访问控制器和片上系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887310A (ja) * 1994-09-14 1996-04-02 Toshiba Corp プログラマブルコントローラ
JP2012108642A (ja) 2010-11-16 2012-06-07 Fuji Electric Co Ltd データ収集システム、データ収集システムの異常要因判定方法
JP2014157483A (ja) * 2013-02-15 2014-08-28 Omron Corp コントローラおよび情報処理装置
JP2014197346A (ja) * 2013-03-29 2014-10-16 オムロン株式会社 コントローラおよびプログラム

Also Published As

Publication number Publication date
EP3998513A1 (en) 2022-05-18
JP7331507B2 (ja) 2023-08-23
EP3998513A4 (en) 2023-07-19
JP2021012563A (ja) 2021-02-04
US20220236711A1 (en) 2022-07-28
CN114072738A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
WO2015136959A1 (ja) 制御システム、方法、プログラムおよび情報処理装置
JP6171387B2 (ja) コントローラ、情報処理装置およびプログラム
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
JP6171386B2 (ja) コントローラ、情報処理装置およびプログラム
KR102015717B1 (ko) 시스템 설계 지원 장치, 시스템 설계 지원 방법 및 시스템 설계 지원 프로그램
EP3236325A1 (en) Control apparatus, relay apparatus, control method for control apparatus, control method for relay apparatus, control program and storage medium
EP2733613B1 (en) Controller and program
JP6442131B2 (ja) 制御システムおよび制御装置
KR102194974B1 (ko) 프로세스 검증 기능이 구비된 전력 계통 감시 및 제어 시스템
WO2021005829A1 (ja) コントローラ、制御システム、および制御方法
US6351826B1 (en) Method and apparatus for automatically verifying communication software
JP6171385B2 (ja) コントローラおよび情報処理装置
EP3104236A1 (en) Control device, control system, support apparatus, and control-device maintenance management method
JP6064749B2 (ja) コントローラおよびプログラム
US11340590B2 (en) Data collection system, data collection method, and information storage medium
US7872964B2 (en) File transmission terminal
JP4490379B2 (ja) ノード管理装置及びノード管理方法及びプログラム
US20230030476A1 (en) Control device for industrial machine
CN110100208B (zh) 可编程显示器及数据取得方法
CN112272802B (zh) 支持装置以及记录介质
JP7227015B2 (ja) ラダープログラム編集システム、サーバ、端末装置、ラダープログラム編集方法及びプログラム
JP2007213192A (ja) リモートコンソール装置、遠隔操作方法、リモートコンソールプログラム
JP4748326B2 (ja) 分散型制御システム
JP2014127055A (ja) Plcの周辺装置
CN113312209A (zh) 一种数据热备方法、装置、服务器和存储介质

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020836957

Country of ref document: EP

Effective date: 20220208