Support device, support program, and control system

The support device and system simplify the identification of abnormalities in user programs by associating function block data types with variable names and providing a search and display mechanism, enabling effective troubleshooting for users with diverse expertise levels.

JP7711479B2Active Publication Date: 2025-07-23OMRON CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021132645
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-08-17
Publication Date
2025-07-23
Estimated Expiration
2041-08-17

AI Technical Summary

Technical Problem

Existing systems require experienced knowledge to identify the cause of abnormalities in user programs executed by PLCs or safety controllers, such as errors or output issues, which poses a challenge for users with limited expertise.

Method used

A support device and system that includes an interface for connecting to controllers, a storage unit for monitoring conditions associating function block data types with variable names, and a search unit to identify matching instances within the user program, along with a display unit to present the search results, allowing users to easily locate and diagnose issues.

Benefits of technology

Facilitates the easy identification of causes of abnormalities in user programs by users with varying levels of experience, enhancing troubleshooting efficiency and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007711479000001
    Figure 0007711479000001
  • Figure 0007711479000002
    Figure 0007711479000002
  • Figure 0007711479000003
    Figure 0007711479000003
Patent Text Reader

Abstract

To provide a support mechanism designed so that even a user who has little experience and knowledge can specify a factor of an anomaly that has occurred in a user program being executed.SOLUTION: A support device includes: an interface for connecting to a controller that executes a user program including a function block; a storage unit that holds a monitoring condition in which a data type of the function block and a variable name to be monitored are defined in association with each other; and a retrieving unit that retrieves an instance that matches with the data type defined in the monitoring condition among instances of the function block generated for executing the user program by means of the controller and in which the monitored variable value associated with the matched data type indicates an event to be monitored.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a support device, a support program, and a control system.

Background Art

[0002] A PLC (Programmable Logic Controller) executes a control operation according to a user program created according to a control target. The user programs executed by such PLCs are also being standardized. More specifically, the international standard IEC61131-3 defines the standard programming of PLCs.

[0003] In addition, safety controllers for realizing functional safety at the manufacturing site are also widely spread. For safety controllers, for example, the definition of function blocks that handle safety signals and the state transition of function blocks are defined standardly (see Non-Patent Document 1, etc.).

Prior Art Documents

Non-Patent Documents

[0004]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] When an abnormality occurs in the user program being executed or when the output is off, for example, in a PLC or a safety controller, it is necessary to check the instructions that make up the user program and the values of the variables referred to by the instructions to identify the cause of the abnormality. However, the operation of identifying such a cause requires experience and knowledge.

[0006] There is a demand for a mechanism that supports even users with little experience and knowledge to identify the cause of an abnormality that has occurred in the user program being executed.

Means for Solving the Problem

[0007] A support device according to an embodiment includes an interface for connecting to a controller that executes a user program including function blocks, a storage unit that holds monitoring conditions in which the data type of the function block and the variable name of the monitoring target are defined in association with each other, and among the instances of the function blocks generated to execute the user program by the controller, a search unit that searches for an instance that matches the data type defined in the monitoring conditions and in which the variable value of the monitoring target associated with the matched data type indicates a value of the monitoring target event.

[0008] According to this configuration, by evaluating the value of the variable name of the monitoring target specified for each data type according to the monitoring conditions, among the instances of the function blocks generated to execute the user program, the instances to be monitored can be more easily identified.

[0009] The support device may further include a display unit that displays a list of the instances searched by the search unit. According to this configuration, the user can check the list of the searched instances.

[0010] The display unit may display a portion of the user program in which there is a function block corresponding to the selected instance among the searched instances. According to this configuration, the user can easily confirm the corresponding portion of the user program by selecting any of the searched instances.

[0011] The display unit may further display at least one of the diag code output from the searched instance and the state name of the state transition diagram indicated by the diag code. According to this configuration, the more detailed state of the searched instance can be confirmed.

[0012] Values indicating events to be monitored corresponding to the variable names to be monitored may be predefined in association with the monitoring conditions. According to this configuration, by selecting the monitoring conditions, the values indicating the events to be monitored can be automatically determined.

[0013] The monitoring conditions may further include priorities for each data type. The display unit may display the searched instances in an order according to the priorities defined in the monitoring conditions. According to this configuration, for example, it is possible to easily sequentially confirm from the instances of the data type with a high need for countermeasures.

[0014] The monitoring conditions may include values indicating events to be monitored corresponding to the variable names to be monitored. According to this configuration, the values associated with the variable names can be arbitrarily set according to the events to be monitored.

[0015] The monitoring conditions may include at least one of a condition for monitoring that an error has occurred in the function block and a condition for monitoring a function block that is turned off. According to this configuration, it is possible to easily search for function blocks in which an error has occurred and / or function blocks that are turned off.

[0016] The user program may be a safety program. According to this configuration, search processing suitable for a safety program described using function blocks can be realized.

[0017] A support program for realizing a support device according to another embodiment causes a computer to execute steps of reading a monitoring condition in which a data type of a function block and a variable name of a monitoring target are defined in association with each other, connecting to a controller that executes a user program including the function block, and searching, among instances of function blocks generated to execute the user program by the controller, for an instance that matches the data type defined in the monitoring condition and in which a variable value of the monitoring target associated with the matched data type indicates an event of the monitoring target.

[0018] A control system according to still another embodiment includes a controller that executes a user program including function blocks, a storage unit that holds a monitoring condition in which a data type of a function block and a variable name of a monitoring target are defined in association with each other, and a search unit that searches, among instances of function blocks generated to execute the user program by the controller, for an instance that matches the data type defined in the monitoring condition and in which a variable value of the monitoring target associated with the matched data type indicates an event of the monitoring target.

Advantages of the Invention

[0019] According to the present invention, the cause of an abnormality occurring in a running user program can be more easily specified.

Brief Description of the Drawings

[0020]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Best Mode for Carrying Out the Invention

[0021] The embodiments of the present technology will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and their descriptions will not be repeated.

[0022] <A. Application Example> First, an example of the scenario to which the present invention is applied will be described. FIG. 1 is a schematic diagram showing a configuration example of a control system 1 according to the present embodiment. Referring to FIG. 1, the control system 1 includes a standard controller 100. The standard controller 100 is connected to a safety controller 200, a safety slave coupler 300, and a safety driver 400 via a field network 2. As an example of the protocol of the field network 2, EtherCAT (registered trademark) may be adopted.

[0023] The standard controller 100 executes standard control for an arbitrary control target according to a pre-created standard control program. The safety controller 200 independently of the standard controller 100 executes safety control for an arbitrary control target according to a pre-created safety program.

[0024] In this specification, "standard control" is a general term for processes for controlling a control target in accordance with predetermined requirement specifications. On the other hand, "safety control" is a general term for processes for preventing the safety of people from being threatened by facilities, machines, etc. "Safety control" is designed to meet the requirements for realizing safety functions defined in IEC61508, etc.

[0025] In this specification, the standard control program arbitrarily created to achieve standard control and the safety program arbitrarily created to achieve safety control may be collectively referred to as "user programs". Also, in this specification, the standard controller 100 and the safety controller 200 may be collectively referred to as "controllers". Therefore, both the standard controller 100 and the safety controller 200 are examples of controllers that execute user programs. The user program includes function blocks as described later.

[0026] The safety slave coupler 300 is capable of receiving an input signal from an arbitrary safety device 350 and providing it to the safety controller 200, and / or outputting a command from the safety controller 200 to an arbitrary safety device 350. Note that the safety device 350 may be directly connected to the safety controller 200.

[0027] The safety driver 400 drives the servo motor 450 that is electrically connected. The safety driver 400 also has a safety function related to the driving of the servo motor 450.

[0028] A support device 500 can be connected to the standard controller 100. The support device 500 provides an environment for developing user programs (standard control program 1104 and / or safety program 2104) executed by the controller (standard controller 100 and / or safety controller 200). In addition to creating and changing programs executed by the standard controller 100 and / or the safety controller 200, the support device 500 may provide a function for monitoring the program execution state in the control system 1 and the like.

[0029] Note that a display device (not shown) may be connectable to the standard controller 100. The display device, also referred to as an HMI (Human Machine Interface) or a PT (Programmable Terminal), provides a monitoring operation screen with reference to the information held by the controller (the standard controller 100 and / or the safety controller 200), and sends an instruction corresponding to a user operation to the standard controller 100.

[0030] <B. Configuration Example of Devices Included in Control System 1> Next, a configuration example of the devices included in control system 1 will be described.

[0031] (b1: Standard Controller 100) FIG. 2 is a schematic diagram showing a hardware configuration example of the standard controller 100 that constitutes the control system 1 according to the present embodiment. Referring to FIG. 2, the standard controller 100 includes a processor 102, a main memory 104, a storage 110, an upper network controller 106, a field network controller 108, a USB (Universal Serial Bus) controller 120, a memory card interface 112, and a local bus controller 116. These components are connected via a processor bus 118.

[0032] The processor 102 mainly corresponds to an arithmetic processing unit that executes control operations related to standard control, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), etc. Specifically, the processor 102 reads out programs (for example, a system program 1102 and a standard control program 1104) stored in the storage 110, expands them in the main memory 104, and executes them, thereby realizing control operations according to the control target and various processes as described later.

[0033] The main memory 104 is composed of a volatile memory device such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory). The storage 110 is composed of a non-volatile memory device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive), for example.

[0034] The storage 110 stores a system program 1102 for realizing basic functions and a standard control program 1104 created according to the control target.

[0035] The upper network controller 106 exchanges data with any information processing device via the upper network.

[0036] The field network controller 108 exchanges data with any device via the field network 2. In the configuration shown in FIG. 2, the field network controller 108 functions as the communication master of the field network 2.

[0037] The USB controller 120 exchanges data with a support device 500 or the like via a USB connection.

[0038] The memory card interface 112 accepts a memory card 114 which is an example of a removable storage medium. The memory card interface 112 can read and write any data to and from the memory card 114.

[0039] The local bus controller 116 exchanges data with any unit connected to the standard controller 100 via the local bus.

[0040] (b2: Safety controller 200) Figure 3 is a schematic diagram showing a hardware configuration example of the safety controller 200 that constitutes the control system 1 according to the present embodiment. Referring to FIG. 3, the safety controller 200 includes a processor 202, a main memory 204, a storage 210, a field network controller 208, a USB controller 220, and a safety local bus controller 216. These components are connected via a processor bus 218.

[0041] The processor 202 mainly corresponds to an arithmetic processing unit that executes control operations related to safety control, and is composed of a CPU, a GPU, or the like.

[0042] The main memory 204 is composed of a volatile storage device such as a DRAM or an SRAM. The storage 210 is composed of a non-volatile storage device such as an SSD or an HDD, for example.

[0043] The storage 210 stores a system program 2102 for realizing basic functions and a safety program 2104 created according to the required safety functions.

[0044] The field network controller 208 exchanges data with any device via the field network 2.

[0045] The USB controller 220 exchanges data with an information processing device such as the support device 500 via a USB connection.

[0046] The safety local bus controller 216 exchanges data with any safety IO unit 230 connected to the safety controller 200 via the safety local bus.

[0047] (b3: Safety slave coupler 300) FIG. 4 is a schematic diagram showing a hardware configuration example of the safety slave coupler 300 that constitutes the control system 1 according to the present embodiment. Referring to FIG. 4, the safety slave coupler 300 includes a processor 302, a main memory 304, a storage 310, a field network controller 308, and a safety local bus controller 316. These components are connected via a processor bus 318.

[0048] The processor 302 mainly corresponds to an arithmetic processing unit that executes control operations for operating the safety slave coupler 300, and is composed of a CPU, a GPU, or the like.

[0049] The main memory 304 is composed of a volatile storage device such as a DRAM or an SRAM. The storage 310 is composed of a non-volatile storage device such as an SSD or an HDD, for example.

[0050] The storage 310 stores a system program 3102 for realizing basic functions.

[0051] The field network controller 308 exchanges data with any device via the field network 2. In the configuration shown in FIG. 4, the field network controller 308 functions as a communication slave of the field network 2.

[0052] The safety local bus controller 316 exchanges data with any safety IO unit 330 connected to the safety slave coupler 300 via the safety local bus.

[0053] (b4: Safety driver 400 and servo motor 450) FIG. 5 is a schematic diagram showing a hardware configuration example of the safety driver 400 and the servo motor 450 that constitute the control system 1 according to the present embodiment. Referring to FIG. 5, the safety driver 400 includes a field network controller 402, a control unit 410, a drive circuit 430, and a feedback reception circuit 432.

[0054] The control unit 410 executes arithmetic processing necessary to operate the safety driver 400. As an example, the control unit 410 includes processors 412 and 414, a main memory 416, and a storage 420. The processor 412 mainly executes control arithmetic for driving the servo motor 450, and the processor 414 mainly executes control arithmetic for providing a safety function related to the servo motor 450. Both the processors 412 and 414 are configured by a CPU or the like. The configuration is not limited to that of FIG. 5, and a configuration realized by a single processor may be adopted.

[0055] The main memory 416 is composed of a volatile storage device such as a DRAM or an SRAM. The storage 420 is composed of a non-volatile storage device such as an SSD or an HDD, for example.

[0056] The storage 420 stores a servo control program 4202 for realizing servo control and a motion safety program 4204 for realizing a motion safety function.

[0057] The drive circuit 430 includes a converter circuit, an inverter circuit, etc., and generates electric power with a specified voltage, current, and phase according to a command from the control unit 410 and supplies it to the servo motor 450.

[0058] The feedback reception circuit 432 receives a feedback signal from the servo motor 450 and outputs the reception result to the control unit 410.

[0059] The servo motor 450 typically includes a three-phase AC motor 452 and an encoder 454 attached to the rotating shaft of the three-phase AC motor 452.

[0060] (b5: Support device 500) FIG. 6 is a schematic diagram showing an example of the hardware configuration of a support device 500 that constitutes the control system 1 according to the present embodiment. The support device 500 is realized, for example, using hardware (e.g., a general-purpose personal computer) that follows a general-purpose architecture.

[0061] Referring to FIG. 6, the support device 500 includes a processor 502, a main memory 504, an input unit 506, an output unit 508, a storage 510, an optical drive 512, and a USB controller 520. These components are connected via a processor bus 518.

[0062] The processor 502 is composed of a CPU, a GPU, etc., reads programs (e.g., an OS 5102 and a support program 5104) stored in the storage 510, expands them in the main memory 504, and executes them to realize various processes as described later.

[0063] The main memory 504 is composed of a volatile storage device such as DRAM or SRAM. The storage 510 is composed of a non-volatile storage device such as an HDD or an SSD, for example.

[0064] Stored in the storage 510 are an OS 5102 for realizing basic functions, a support program 5104 for providing functions as the support device 500, project data 5106 created by a user in a development environment, and monitoring conditions 570 used in the search process described later. The storage 510 is an example of a storage unit that holds the monitoring conditions 570.

[0065] The support device 500 provides a development environment that enables the integrated creation of programs executed on each device included in the control system 1. Substantially, the support program 5104 realizes the support device 500. The project data 5106 includes data generated by such an integrated development environment. Typically, the project data 5106 includes a standard control source program 5108 and a safety source program 5110.

[0066] The standard control source program 5108 is converted into object code and then transmitted to the standard controller 100 and stored as the standard control program 1104 (see FIG. 2).

[0067] The safety source program 5110 is converted into object code and then transmitted to the safety controller 200 and stored as the safety program 2104 (see FIG. 2).

[0068] The input unit 506 is composed of a keyboard, a mouse, etc. and receives user operations. The output unit 508 is composed of a display, various indicators, a printer, etc. and outputs processing results from the processor 502, etc.

[0069] The USB controller 520 is an example of an interface for connecting to a controller that executes a user program, and exchanges data with the standard controller 100, etc. via a USB connection.

[0070] The support device 500 has an optical drive 512, and a program stored therein is read from a storage medium 514 (for example, an optical storage medium such as a DVD (Digital Versatile Disc)) that non-transitorily stores a computer-readable program and installed in the storage 510, etc.

[0071] Support programs 5104 and the like executed by the support device 500 may be installed via a computer-readable storage medium 514, or may be installed by downloading from a server device or the like on the network. Further, the functions provided by the support device 500 according to the present embodiment may be realized by using a part of the modules provided by the OS.

[0072] Note that during the operation of the control system 1, the support device 500 may be removed from the standard controller 100.

[0073] (b6: Other forms) Although FIGS. 2 to 6 show configuration examples in which one or a plurality of processors execute a program to provide necessary functions, part or all of these provided functions may be implemented using a dedicated hardware circuit (for example, an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)).

[0074] Further, the main parts of the standard controller 100, the safety controller 200, and the safety slave coupler 300 may be realized using hardware (for example, an industrial personal computer based on a general-purpose personal computer) according to a general-purpose architecture. In this case, virtualization technology may be used to execute a plurality of OSs with different uses in parallel and execute necessary applications on each OS. Further, a configuration in which functions such as the support device 500 and the display device are integrated into the standard controller 100 may be adopted.

[0075] <C. Troubleshooting> Next, troubleshooting when an abnormality occurs in the user program being executed by the controller will be described.

[0076] The user (maintenance staff) connects the support device 500 to the target controller arranged at the manufacturing site and starts monitoring the user program being executed by the controller.

[0077] For example, among the function blocks included in the user program, identify the function block in which the value of a specific output variable (for example, variable name "Error") has become a value indicating that an error has occurred (for example, "TRUE"). After identifying the function block where an error has occurred, identify the cause of the error, etc. from the input variables connected to the function block.

[0078] Alternatively, among the function blocks included in the user program, identify the function block with its output off. In this specification, "output off" means a state where the function block being focused on outputs a value different from the value that should be output during normal operation. In this case, identify the function block in which the value of the output variable indicating the output signal has become a value indicating that it is not being output normally (for example, "FALSE" or "INACTIVE", etc.). After identifying the function block with its output off, take necessary actions by referring to the state of safety devices related to the function block, etc., to restore the abnormal state.

[0079] Next, an example of the state when an abnormality occurs in the user program being executed by the controller will be described.

[0080] FIG. 7 is a schematic diagram showing an example of the state of the user program when an abnormality occurs in the control system 1 according to the present embodiment.

[0081] Referring to FIG. 7, a safety program 2104 (being executed by the safety controller 200), which is an example of the user program, includes instances 241 and 242 of two function blocks.

[0082] Instance 241 corresponds to the function block of "SF_EmergencyStop" (Emergency Stop), and instance 242 is the function block of "SF_EDM" (External Device Monitoring).

[0083] Figure 7 shows an example where the process assigned to instance 241 is executed normally, while an error has occurred in the process assigned to instance 242. More specifically, in instance 241, the value of the output variable 2410 with the variable name "Error" is "FALSE", while in instance 242, the value of the output variable 2420 with the variable name "Error" is "TRUE".

[0084] Also, corresponding to the presence or absence of an error, the output of instance 241 shown in Figure 7 is normal (output on), and instance 242 shown in Figure 7 has its output off. More specifically, in instance 241, the value of the output variable 2412 with the variable name "S_EStopOut" is "TRUE", while in instance 242, the value of the output variable 2422 with the variable name "S_EDM_Out" is "FALSE". That is, for the function block of "SF_EmergencyStop", a normal output is when the value of the output variable with the variable name "S_EStopOut" is "TRUE", and for the function block of "SF_EDM", a normal output is also when the value of the output variable with the variable name "S_EDM_Out" is "TRUE".

[0085] Figure 8 is a schematic diagram showing another example of the state of the user program when an abnormality occurs in the control system 1 according to the present embodiment.

[0086] The safety program 2104 shown in FIG. 8 (which is being executed by the safety controller 200) includes an instance 243 of a user-defined function block. An error has occurred in the process handled by the instance 243, and the value of the output variable 2430 with the variable name "Abort" has become "TRUE".

[0087] Also, in response to the occurrence of the error, the instance 243 shown in FIG. 8 is turned off. More specifically, in the instance 243, the output variables 2432 with the variable name "FB_SR1", 2434 with the variable name "FB_SR2", 2436 with the variable name "FB_SR3", and 2438 with the variable name "FB_SR4" all have values that have become "FALSE". The normal output for the values of these output variables 2432, 2434, 2436, 2438 is that they should all be "TRUE".

[0088] For example, when some error occurs, it is necessary to identify the instance of the function block in which the error has occurred. FIG. 7 shows one instance corresponding to each of two data type function blocks, but it is often the case that there are multiple instances corresponding to function blocks of the same data type.

[0089] Therefore, in order to identify the instance in which the error has occurred, for the function block "SF_EmergencyStop", it is necessary to search for the instance in which the value of the output variable with the variable name "Error" has become "TRUE". Also, for the function block "SF_EDM", it is necessary to search for the instance in which the value of the output variable with the variable name "Error" has become "TRUE".

[0090] The data types of function blocks (such as "SF_EmergencyStop" and "SF_EDM") and the variable names used are often predefined in international standards and the like in advance. However, for user-defined function blocks as shown in Fig. 8, since the variable names (output variable names) related to the occurrence of errors and / or operating states cannot be uniquely determined, it is necessary to know in advance the variable names to be confirmed and then examine the target instances. Furthermore, for user-defined function blocks, the number of target variables itself may not be one, and there may be multiple cases.

[0091] The control system 1 according to the present embodiment prepares a mechanism for predefining variable names to be monitored in association with the data types of function blocks in order to search for instances in which an error has occurred, instances that are output-off, or instances that meet arbitrary conditions. The control system 1 searches for the target instances by determining whether, for each instance included in the user program, the variable of the predefined target variable name indicates a value that meets the conditions. Note that a value taken by the variable name to be monitored may be further added as a condition.

[0092] <D. Instance Search> Next, the process of searching for instances in the user program in the control system 1 according to the present embodiment will be described.

[0093] Fig. 9 is a schematic diagram showing a configuration for realizing the process related to instance search in the control system 1 according to the present embodiment. In Fig. 9, as an example, an example in which the safety program 2104 executed by the safety controller 200 is set as the monitoring target is shown, but the standard control program 1104 executed by the standard controller 100 can also be set as the monitoring target.

[0094] Referring to Fig. 9, the control system 1 includes a search module 550 and a display module 560 as main functional configurations for realizing the process related to instance search.

[0095] The search module 550 searches for instances of function blocks included in the user program being executed that match the monitoring condition 570. In the monitoring condition 570, the data type of the function block and the variable name to be monitored are defined in association with each other.

[0096] More specifically, the search module 550 searches for instances among the instances of function blocks generated for executing the safety program 2104 (user program) by the safety controller 200 (controller) that match the data type defined in the monitoring condition 570 and for which the variable value to be monitored associated with the matched data type indicates the event to be monitored. Then, the search module 550 adds the searched instances to the search results.

[0097] Note that the value indicating the event to be monitored associated with the variable name to be monitored may be predefined in association with the corresponding monitoring condition. For example, for the monitoring condition 570 for error occurrence monitoring, "TRUE" may be set in advance as the value indicating the object to be monitored, and for the monitoring condition 570 for output off monitoring, "FALSE" may be set in advance as the value indicating the object to be monitored.

[0098] Also, the search module 550 may provide a user interface for creating and updating the monitoring condition 570.

[0099] The display module 560 displays a list of the instances searched by the search module 550. The search results include the POU name and the instance name for moving to the target part within the user program being executed.

[0100] FIG. 9(A) shows a configuration example in which the search module 550 and the display module 560 are arranged in the support device 500. The support device 500 is connected to the safety controller 200 via a standard controller 100 (not shown). In response to a user operation, the search module 550 of the support device 500 refers to the safety program 2104 executed by the safety controller 200 and searches for an instance that matches the monitoring condition 570.

[0101] FIG. 9(B) shows a configuration example in which the search module 550 is arranged in the safety controller 200 and the display module 560 is arranged in the support device 500. In response to a user operation, the search module 550 of the safety controller 200 refers to the safety program 2104 and searches for an instance that matches the monitoring condition 570. The search result by the search module 550 is provided to the display module 560 of the support device 500 via a standard controller 100 (not shown).

[0102] FIG. 9(C) shows a configuration example in which the search module 550 and the display module 560 are arranged in the safety controller 200. In response to a user operation, the search module 550 of the safety controller 200 refers to the safety program 2104 and searches for an instance that matches the monitoring condition 570. The search result by the search module 550 is provided to the display module 560 of the support device 500 via a standard controller 100 (not shown).

[0103] FIG. 10 is a schematic diagram showing an example of the monitoring condition 570 for error occurrence monitoring of the control system 1 according to the present embodiment. FIG. 11 is a schematic diagram showing an example of the monitoring condition 570 for output off monitoring of the control system 1 according to the present embodiment.

[0104] The monitoring condition 570 for error occurrence monitoring is a condition for monitoring that an error has occurred in the function block. The monitoring condition 570 for output off monitoring is a condition for monitoring that the function block is in the output off state. At least one of these monitoring conditions 570 may be prepared, or completely different monitoring conditions 570 may be prepared.

[0105] Referring to FIG. 10, the monitoring condition 570 for error occurrence monitoring includes a definition associating the data type of the function block to be monitored and the output variable for determining the occurrence of an error. As an example, the monitoring condition 570 for error occurrence monitoring includes a standard function block condition 571 and a user-defined function block condition 572.

[0106] The standard function block condition 571 includes conditions for a pre-prepared function block. The pre-prepared function block may be defined according to an international standard or the like, or may be defined uniquely by the manufacturer.

[0107] Also, the user-defined function block condition 572 includes conditions for the user-defined function block. For example, even when it is not desired to disclose the internal logic for security reasons (for example, in a protected state), the output variable of the instance of the function block can be monitored. Therefore, by being able to set conditions for the user-defined function block, it is possible to search for an instance of the user-defined function block in which an error has occurred.

[0108] Each of the standard function block condition 571 and the user-defined function block condition 572 includes, as items to be set, an activation flag 573, a priority 574, a data type 575, and an error signal 576.

[0109] The activation flag 573 defines whether the function block in the corresponding column is to be monitored. More specifically, if the activation flag 573 is in a checked state, the function block in the corresponding column is set as the monitoring target.

[0110] The priority 574 defines the search order of the function blocks in the corresponding column. The monitoring condition 570 may include the priority 574 for each data type. The instances of the function blocks are sequentially searched in the order according to the value of the priority 574. In the example shown in FIG. 10, a lower value indicates a higher priority. Therefore, the instances of the function blocks are displayed in ascending order of the value of the priority 574. That is, the display module 560 may display the searched instances in the order according to the priority 574 defined in the monitoring condition 570.

[0111] The data type 575 defines the data type of the function block to be monitored. The data type 575 of the standard function block condition 571 is set to the data type of the pre-prepared function block. Also, the data type 575 of the user-defined function block condition 572 is set to the data type of the function block arbitrarily created by the user.

[0112] The error signal 576 defines the variable name used for error occurrence monitoring among the variables set in the function block in the corresponding column. In error occurrence monitoring, the value indicating the monitoring target is "TRUE". That is, if the value of the variable set in the error signal 576 is "TRUE", it indicates that an error has occurred. That is, the instance in which the value of the variable set in the error signal 576 is "TRUE" is extracted.

[0113] Referring to FIG. 11, the monitoring condition 570 for output-off monitoring includes a definition associating the data type of the function block to be monitored with the output variable for determining output-off. The monitoring condition 570 for output-off monitoring shown in FIG. 11 is substantially the same as the monitoring condition 570 for error monitoring (see FIG. 10), except that the safety output 577 is adopted instead of the error signal 576. That is, the monitoring condition 570 for output-off monitoring also includes the standard function block condition 571 and the user-defined function block condition 572.

[0114] The safety output 577 defines the variable name used for output-off monitoring among the variables set in the function block of the corresponding column. Since user-defined function blocks often handle multiple output signals, multiple safety outputs 577 may be set for the same function block.

[0115] In output-off monitoring, the value indicating the object to be monitored is "FALSE". That is, if the value of the variable set in the safety output 577 is "FALSE", it indicates that the output is off. That is, an instance where the value of the variable set in the safety output 577 is "FALSE" is extracted.

[0116] In the standard function block condition 571 of the monitoring condition 570 for error occurrence monitoring (FIG. 10) and the monitoring condition 570 for output-off monitoring (FIG. 11), conditions for the pre-prepared function block are set, so the correspondence between the data type 575 and the error signal 576, and / or the correspondence between the data type 575 and the safety output 577 may be configured so that the user cannot change them.

[0117] FIG. 12 is a schematic diagram showing an example of the general monitoring condition 570 of the control system 1 according to the present embodiment. Referring to FIG. 12, the general monitoring condition 570 includes the standard function block condition 571 and the user-defined function block condition 572.

[0118] Each of the standard function block condition 571 and the user-defined function block condition 572 includes, as items to be set, an activation flag 573, a priority 574, a data type 575, a monitoring signal 578, and a set value 579.

[0119] The activation flag 573, the priority 574, and the data type 575 are the same as the monitoring condition 570 shown in FIGS. 9 and 10.

[0120] The monitoring signal 578 defines the variable name to be used for the target monitoring among the variables set in the function block of the corresponding column.

[0121] The set value 579 defines a value indicating the event to be monitored associated with the variable name of the variable to be monitored. That is, it defines the condition for the value taken by the variable in the corresponding column. That is, if the variable of interest has a set value (for example, "TRUE"), the instance of interest is extracted as meeting the condition.

[0122] As shown in FIG. 11, as the monitoring condition 570, by defining a set of the variable name of the variable to be monitored and the value taken by the variable to be monitored for each data type of the function block, both monitoring of error occurrence and output off can be performed with a single monitoring condition 570, and arbitrary monitoring conditions can be freely set.

[0123] FIG. 13 is a schematic diagram showing an example of the standard function block definition in the control system 1 according to the present embodiment. FIG. 13 shows an example of the default setting values of the data type 575 (FIGS. 11 and 12), the error signal 576 (FIG. 11), and the monitoring signal 578 (FIG. 12) for the data types (22 types) of the function blocks defined in Non-Patent Document 1.

[0124] That is, the value of "Data type of function block" in FIG. 13 is set as the value of data type 575. The value of "Output variable used for error occurrence monitoring" in FIG. 13 is set as the value of error signal 576. The value of "Output variable used for output off monitoring" in FIG. 13 is set as the value of monitoring signal 578. In operation, a function block to be excluded from monitoring can also be excluded from monitoring condition 570.

[0125] FIG. 14 is a schematic diagram showing an example of a search result by the control system 1 according to the present embodiment. By searching for instances of function blocks that meet the conditions according to the priority 574 set in the monitoring condition 570, a search result 580 as shown in FIG. 14 is generated.

[0126] More specifically, the search result 580 includes a program name 581, a data type 582, an instance name 583, and a detail button 584.

[0127] The program name 581 is the name of the program including the searched instance. The data type 582 is the data type of the searched function block. The instance name 583 is the name of the searched instance.

[0128] When using the monitoring condition 570 (FIG. 10) for error occurrence monitoring, instances of function blocks in which an error has occurred are listed in the search result 580. On the other hand, when using the monitoring condition 570 (FIG. 12) for output off monitoring, instances of function blocks that are output off are listed in the search result 580.

[0129] When any of the detailed buttons 584 is selected, the part of the user program where the searched instance exists is displayed. That is, the display module 560 displays the part of the user program where the function block corresponding to the selected instance among the searched instances exists. Alternatively, when the user program is being displayed, it may be possible to jump to the part where the searched instance exists.

[0130] Note that when the update button 585 is selected, the search process is executed again. Note that even if the update button 585 is not selected, the search process may be repeatedly executed at predetermined time intervals.

[0131] Also, when the monitoring target is the safety program 2104, in addition to the search results, the signature code 588 may be output.

[0132] FIG. 15 is a schematic diagram showing another example of the search results by the control system 1 according to the present embodiment. FIG. 15(A) shows an example of the search results 580A using the monitoring condition 570 for error monitoring, and FIG. 15(B) shows an example of the search results 580B using the monitoring condition 570 for output off monitoring.

[0133] The search results 580A further include a diag code 586 and a status name 587 as compared with the search results 580 (FIG. 14). As the diag code 586, the value of the diag code, which is one of the output variables of the searched instance, is output. As the status name 587, the status name of the state transition diagram indicated by the corresponding diag code is output. The output status name is typically defined by an international standard or the like.

[0134] Regarding the search results 580B as well, as with the search results 580A, compared with the search results 580 (FIG. 14), they further include a diag code 586 and a status name 587. The values output as the diag code 586 and the status name 587 correspond to the output off.

[0135] In this way, the display module 560 may further display at least one of the diagnostic code 586 output from the searched instance and the state name 587 of the state transition diagram indicated by the diagnostic code 586.

[0136] Note that when an error occurs or when the target safety device performs a blocking operation (normal operation), the output turns off. However, in the search result 580B shown in FIG. 15(B), it is possible to search in any case.

[0137] Furthermore, by selecting any instance listed in FIG. 15(A) and / or FIG. 15(B) and the user performing a specific operation, a manual or help screen for the selected instance may be displayed.

[0138] As described above, by using the monitoring condition 570 (FIG. 10) for error occurrence monitoring to obtain the search result 580, the user can easily confirm a list of instances (function blocks) in which an error has occurred in the user program. Then, by the user selecting the detail button 584 corresponding to the target instance (function block), the user can move to the target part in the user program, more easily confirm the related logic, and more easily identify the cause of the abnormality.

[0139] Similarly, by using the monitoring condition 570 (FIG. 11) for output off monitoring to obtain the search result 580, the user can easily confirm a list of instances (function blocks) in which the output is off in the user program. Then, by the user selecting the detail button 584 corresponding to the target instance (function block), the user can move to the target part in the user program, more easily confirm the related logic, and more easily identify the cause of the abnormality.

[0140] <E. Processing Procedure> FIG. 16 is a flowchart showing a processing procedure related to instance search of the control system 1 according to the present embodiment. Each step shown in FIG. 16 is typically realized by the processor 502 of the support device 500 executing the support program 5104 (see FIG. 9(A)). However, at least a part of the steps shown in FIG. 16 may be executed by the safety controller 200 and / or the standard controller 100.

[0141] Referring to FIG. 16, the support device 500 reads the monitoring condition 570 in response to a user operation (step S2). For example, either the monitoring condition 570 for error occurrence monitoring or the monitoring condition 570 for output off monitoring may be selected. At this time, a value indicating a predetermined event to be monitored may be set according to the selected monitoring condition 570.

[0142] The support device 500 accesses the controller to be monitored and obtains a list of programs (user programs) being executed (step S4). That is, the support device 500 executes a process of connecting to the controller that executes the user program. Then, the search process is started.

[0143] The support device 500 selects one of the programs being executed with reference to the list obtained in step S4 (step S6), and extracts instances of function blocks included in the selected program (step S8). If the selected program does not include an instance of a function block (NO in step S10), the processes in steps S12 to S24 are skipped.

[0144] The support device 500 selects one of the extracted instances of function blocks (step S12), and determines whether the data type of the function block corresponding to the selected instance is included in the read monitoring condition 570 (step S14).

[0145] If the data type of the function block corresponding to the selected instance is not included in the loaded monitoring condition 570 (NO in step S14), the processing from step S12 and below is repeated.

[0146] If the data type of the function block corresponding to the selected instance is included in the loaded monitoring condition 570 (YES in step S14), the support device 500 determines the output variable to be monitored defined in the monitoring condition 570 (step S16), and acquires the value of the determined output variable to be monitored (step S18). Then, the support device 500 determines whether the value of the acquired output variable to be monitored indicates an event to be monitored (step S20).

[0147] If the value of the output variable to be monitored indicates an event to be monitored (YES in step S20), the support device 500 adds the information about the target instance to the search result (step S22). On the other hand, if the value of the output variable to be monitored does not indicate an event to be monitored (NO in step S20), the processing of step S22 is skipped.

[0148] The support device 500 determines whether the processing has been completed for all of the extracted instances (step S24). If the processing has not been completed for all of the extracted instances (NO in step S24), the processing from step S12 and below is repeated.

[0149] If the processing has been completed for all of the extracted instances (YES in step S24), the support device 500 determines whether the processing has been completed for all of the programs being executed (step S26). If the processing has not been completed for all of the programs being executed (NO in step S26), the processing from step S6 and below is repeated.

[0150] If the processing is completed for all the programs being executed (YES in step S26), the support device 500 sorts the information of the instances included in the search results according to the priority based on the data type of the corresponding function block set in the monitoring condition 570 (step S28). The support device 500 outputs the sorted search results (step S30). Then, the processing ends.

[0151] Note that when the update button 585 (Figs. 14 and 15) is selected, the processing from step S4 and below is repeatedly executed. Even if the update button 585 is not selected, the processing from step S4 and below may be repeatedly executed at predetermined time intervals.

[0152] Also, in the extraction of the function block to be monitored (step S8), if a user-defined function block is extracted and the extracted user-defined function block is not protected, the processing from steps S8 to S24 may be recursively executed for the user-defined function block.

[0153] <F. Modification Example> In the control system 1 shown in Fig. 1, a configuration example is shown in which the support device 500 is connected to the standard controller 100 and the support device 500 accesses the safety controller 200 via the standard controller 100. However, it is not limited to this, and the support device 500 may be connected to the safety controller 200 and the support device 500 may directly access the safety controller 200.

[0154] Note that the search process according to the present embodiment is also applicable to the standard control program 1104 executed by the standard controller 100. In this case, the support device 500 may be connected to the target standard controller 100 so that the support device 500 directly accesses the target standard controller 100. Alternatively, the support device 500 may be connected to another standard controller 100 so that the support device 500 accesses the target standard controller 100 via the other standard controller 100.

[0155] Further, part or all of the functions necessary for the search process according to the present embodiment may be implemented not in the support device 500 but in a display device such as an HMI or a PT. In this case, the display device such as an HMI or a PT functions as the support device 500.

[0156] <G. Supplementary Note> The present embodiment as described above includes the following technical ideas.

[0157] [Configuration 1] An interface (520) for connecting to a controller (100; 200) that executes a user program (1104; 2104) including function blocks, A storage unit (510) that holds a monitoring condition (570) in which the data type of the function block and the variable name of the monitoring target are defined in association with each other, Among the instances of function blocks generated to execute the user program in the controller, an instance that matches the data type (575) defined in the monitoring condition and in which the variable value (576; 577; 578) of the monitoring target associated with the matching data type indicates an event of the monitoring target is searched for by a search unit (550). A support device comprising.

[0158] [Configuration 2] The support device according to Configuration 1, further comprising a display unit (560) that displays a list of the instances searched by the search unit.

[0159] [Configuration 3] The display unit is the support device according to Configuration 2, which displays a part of the user program in which a function block corresponding to the selected instance among the searched instances exists.

[0160] [Configuration 4] The display unit is the support device according to Configuration 2 or 3, which further displays at least one of the diag code (586) output from the searched instance and the state name (587) of the state transition diagram indicated by the diag code.

[0161] [Configuration 5] The monitoring condition further includes a priority (574) for each data type. The display unit is the support device according to any one of Configurations 2 to 4, which displays the searched instances in an order according to the priority defined in the monitoring condition.

[0162] [Configuration 6] The support device according to any one of Configurations 1 to 5, in which a value indicating an event to be monitored associated with the variable name to be monitored is predefined in association with the monitoring condition.

[0163] [Configuration 7] The monitoring condition includes a value (579) indicating an event to be monitored associated with the variable name to be monitored, and the support device according to any one of Configurations 1 to 6.

[0164] [Configuration 8] The monitoring condition includes at least one of a condition for monitoring that an error has occurred in a function block and a condition for monitoring a function block with its output off, and the support device according to any one of Configurations 1 to 7.

[0165] [Configuration 9] The user program is a safety program (2104), and the support device according to any one of Configurations 1 to 8.

[0166] [Configuration 10] A support program (5104) for realizing a support device, which causes a computer (500) to read a monitoring condition (570) in which the data type of a function block and the variable name of a monitoring target are defined in association with each other (step S2); connect to a controller (100; 200) that executes a user program (1104; 2104) including a function block (step S4); search for an instance of a function block generated to execute the user program by the controller, the instance matching the data type (575) defined in the monitoring condition and the variable value (576; 577; 578) of the monitoring target associated with the matching data type being a value indicating an event to be monitored (steps S6 to S26). A support program.

[0167] [Configuration 11] A controller (100; 200) that executes a user program (1104; 2104) including a function block, a storage unit (510) that holds a monitoring condition (570) in which the data type of a function block and the variable name of a monitoring target are defined in association with each other, and a search unit (550) that searches for an instance of a function block generated to execute the user program by the controller, the instance matching the data type (575) defined in the monitoring condition and the variable value (576; 577; 578) of the monitoring target associated with the matching data type being a value indicating an event to be monitored. A control system.

[0168] [H. Advantage] The control system 1 according to the present embodiment extracts instances of function blocks included in a user program, and when the extracted instances correspond to function blocks of a pre-specified data type and the output variables of the pre-specified variable names of the instances are pre-specified values, they are determined to be target instances. By adopting such monitoring conditions in which the data type and variable names are associated with each other, it is possible to troubleshoot abnormalities that occur during the execution of the user program.

[0169] The embodiments disclosed this time should be considered as illustrative in all respects and not restrictive. The scope of the present invention is shown not by the above description but by the scope of claims, and it is intended that all modifications within the meaning and scope equivalent to the scope of claims be included.

Description of Reference Signs

[0170] 1 Control system, 2 Field network, 100 Standard controller, 102, 202, 302, 412, 414, 502 Processors, 104, 204, 304, 416, 504 Main memories, 106 Upper network controller, 108, 208, 308, 402 Field network controllers, 110, 210, 310, 420, 510 Storages, 112 Memory card interface, 114 Memory card, 116 Local bus controller, 118, 218, 318, 518 Processor buses, 120, 220, 520 USB controllers, 200 Safety controller, 216, 316 Safety local bus controllers, 230, 330 IO units, 241, 242, 243 Instances, 300 Safety slave coupler, 350 Safety device, 400 Safety driver, 410 Control unit, 430 Drive circuit, 432 Feedback reception circuit, 450 Servo motor, 452 Three-phase AC motor, 454 Encoder, 500 Support device, 506 Input unit, 508 Output unit, 512 Optical drive, 514 Storage medium, 550 Search module, 560 Display module, 570 Monitoring conditions, 571 Standard function block conditions, 572 User-defined function block conditions, 573 Enable flag, 574 Priority, 575, 582 Data types, 576 Error signal, 577 Safety output, 578 Monitoring signal, 579 Set value, 580, 580A, 580B Search results, 581 Program name, 583 Instance name, 584 Detail button, 585 Update button, 586 Diagnostic code, 587 Status name, 588 Signature code, 1102, 2102, 3102 System programs, 1104 Standard control program, 2104 Safety program, 2410, 2412, 2420, 2422, 2430, 2432, 2434, 2436, 2438 Output variables, 4202 Servo control program, 4204 Motion safety program, 5102 OS, 5104 Support program, 5106 Project data, 5108 Standard control source program, 5110 Safety source program.

Claims

1. An interface for connecting to a controller that executes a user program including function blocks, a storage unit that holds monitoring conditions in which the data type of the function block and the variable name of the monitoring target are defined in association with each other, a search unit that searches for an instance of a function block generated to execute the user program in the controller, the instance matching the data type of the function block defined in the monitoring conditions and the variable value of the monitoring target associated with the matching data type being a value indicating an event to be monitored. A support device comprising:

2. The support device according to claim 1, further comprising a display unit that displays a list of the instances searched by the search unit.

3. The support device according to claim 2, wherein the display unit displays a part of the user program in which the function block corresponding to the selected instance among the searched instances exists.

4. The support device according to claim 2 or 3, wherein the display unit further displays at least one of the diagnostic code output from the searched instance and the state name of the state transition diagram indicated by the diagnostic code.

5. The monitoring conditions further include a priority for each data type, The support device according to any one of claims 2 to 4, wherein the display unit displays the searched instances in an order according to the priority defined in the monitoring conditions.

6. The support device according to any one of claims 1 to 5, wherein a value indicating an event to be monitored associated with the variable name of the monitoring target is predetermined in association with the monitoring conditions.

7. The support device according to any one of claims 1 to 6, wherein the monitoring conditions include a value indicating an event to be monitored associated with the variable name of the monitoring target.

8. The support device according to any one of claims 1 to 7, wherein the monitoring conditions include at least one of a condition for monitoring that an error has occurred in the function block and a condition for monitoring a function block with output off.

9. The support device according to any one of claims 1 to 8, wherein the user program is a safety program.

10. A support program for realizing a support device, which causes a computer to, A step of reading a monitoring condition in which a data type of a function block and a variable name of a monitoring target are defined in association with each other; A step of connecting to a controller that executes a user program including the function block; A support program that causes the following steps to be executed: a step of searching, among instances of function blocks generated to execute the user program by the controller, for an instance that matches the data type of the function block defined in the monitoring condition and in which the variable value of the monitoring target associated with the matched data type indicates an event of the monitoring target. [

11. ] A controller that executes a user program including a function block; A storage unit that holds a monitoring condition in which a data type of a function block and a variable name of a monitoring target are defined in association with each other; A control system including: a search unit that searches, among instances of function blocks generated to execute the user program by the controller, for an instance that matches the data type of the function block defined in the monitoring condition and in which the variable value of the monitoring target associated with the matched data type indicates an event of the monitoring target.

Citation Information

Patent Citations

  • Abnormality analysis device and method for controlling the same device

    JP2011175353A

  • Evaluation system, evaluation program, and evaluation method

    JP2017167652A

  • Control system, support device, and support program

    JP2021060675A