Support device, control method, and support program
By supporting the user interface and disclosure setting part of the device, users can specify role permissions to control the disclosure of variables, solving the problem of lack of security in variable disclosure settings in the existing technology and achieving enhanced security of variable disclosure.
Patent Information
- Application Number
- CN202480011541.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-03-14
- Filing Date
- 2024-03-06
- Publication Date
- 2025-09-05
AI Technical Summary
In the prior art, the public setting of variables in user programs lacks security control, and any user can access the public variables, resulting in insufficient security.
A support device is provided, which has a user interface and a disclosure setting unit, allowing a user to specify a role to control the reading and execution permissions of an external device on a variable, generate disclosure setting information, and control a device to manage the disclosure of the variable according to the setting information.
Through role authority control, the security of variables exposed to external devices is enhanced, conflicts in variable public settings are avoided, and the security of the system is improved.
Smart Images

Figure CN120604182A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a support device, a control method, and a support program, and more particularly to a support device that supports a control device that controls a control object according to a user program, a control method for the support device, and a support program that supports the control device. Background Art
[0002] Factory automation (FA) systems, which automate production processes, are becoming increasingly common in various production sites. FA systems are comprised of a variety of industrial drive devices. Examples of these industrial drive devices include mobile worktables for moving workpieces, conveyors for transporting workpieces, and robotic arms for moving workpieces to predetermined destinations. These drive devices are controlled by industrial control devices such as programmable logic controllers (PLCs) or robot controllers.
[0003] The control device controls various driven devices according to a program (hereinafter referred to as a "user program") pre-designed by a designer or other person. Designers can use a support device that supports the control device to develop any user program that matches the driven device being controlled.
[0004] Control devices like these are becoming increasingly popular if they support OPC UA (Open Platform Communications Unified Architecture). OPC UA is a standard communication specification designed to enable data exchange between multiple devices, regardless of vendor or operating system type. Using OPC UA-compliant control devices allows external devices to easily access data managed by the control devices.
[0005] Here, the user of the control device needs to make settings in advance (hereinafter also referred to as “disclosure settings”) such as which data among the data managed by the control device is to be made public, which data is to be made read-only, and which data is to be made executable.
[0006] In this regard, Japanese Patent Application Laid-Open No. 2019-159632 (Patent Document 1) discloses a development support device configured to publicly set variables included in a user program for each predetermined namespace.
[0007] Prior art literature
[0008] Patent Literature
[0009] Patent Document 1: Japanese Patent Application Publication No. 2019-159632 Summary of the Invention
[0010] Problems to be solved by the invention
[0011] According to the development support device disclosed in Patent Document 1, users can publicly set variables contained in user programs according to each predetermined namespace. However, any user can access the public variables to execute them. Therefore, there is room for improvement to enhance security.
[0012] One object of the present disclosure is to solve the above-mentioned problems, and an object of the present disclosure is to provide a technology capable of enhancing security related to disclosure of variables to an external device.
[0013] Means for solving problems
[0014] According to one example of the present disclosure, a support device is provided that supports a control device that controls a control object according to a user program. The support device comprises: a providing unit that provides a user interface for a user to make a public setting of at least one variable generated when the user program is executed to an external device; and a public setting unit that generates public setting information based on the public setting made by the user using the user interface. The control device manages the public disclosure of at least one variable generated when the user program is executed to an external device based on the public setting information. The public setting information includes at least one of the following information: information that sets whether an external device is allowed to read at least one variable in accordance with at least one role; and information that sets whether an external device is allowed to execute at least one variable in accordance with at least one role. The user interface is configured so that the user specifies any role among at least one role to make the public setting.
[0015] According to the present disclosure, a user can specify any one of at least one role to set whether to allow an external device to read at least one variable and whether to allow an external device to execute at least one of at least one variable, thereby strengthening security related to the disclosure of variables to external devices.
[0016] In the above disclosure, the at least one role includes: a first role; and a second role that allows a greater number of at least one variable to be disclosed to the external device than the first role.
[0017] According to the disclosure, a user can specify either a first role or a second role that discloses at least one variable to an external device more than the first role, to set whether the external device is allowed to read at least one variable and whether the external device is allowed to execute at least one of the at least one variables, thereby enhancing the security related to the disclosure of variables to external devices.
[0018] In the above disclosure, at least one variable disclosed to an external device when the second role is specified includes all of the at least one variable allowed to be disclosed to an external device when the first role is specified, and at least one variable allowed to be disclosed to an external device when the first role is specified does not include all of the at least one variable allowed to be disclosed to an external device when the second role is specified.
[0019] According to the present disclosure, the user can disclose all of at least one variable to the external device by designating the first role, while not disclosing all of the at least one variable to the external device by designating the second role.
[0020] In the above disclosure, a user program includes first identification information that identifies an instance generated when a function block included in the user program is executed. The function block has inherent second identification information and predetermines at least one variable used during execution. The user interface is configured so that a user specifies at least one of the first identification information and the second identification information to make a disclosure setting.
[0021] According to the present disclosure, a user can specify at least one of a variable disclosure setting using first identification information for identifying an instance generated when a function block is executed and a variable disclosure setting using second identification information unique to the function block, thereby efficiently setting the variable disclosure setting to an external device.
[0022] In the above disclosure, the user interface is configured to publicly set at least one variable stored in each instance corresponding to the first identification information specified by the user.
[0023] According to the present disclosure, the user can also make public settings for at least one variable stored in the instance corresponding to the designated first identification information, thereby enabling more detailed and efficient settings for disclosing the variable to the external device.
[0024] In the above disclosure, the disclosure setting information includes information that the disclosure setting made using the first identification information takes precedence over the disclosure setting made using the second identification information.
[0025] According to this disclosure, users can give priority to the public settings of variables using the first identification information that identifies the instance over the public settings of variables using the second identification information inherent in the function block, thereby avoiding conflicts between the public settings of variables in the instance and the public settings of variables in the function block.
[0026] In the above disclosure, the disclosure setting information includes information that the disclosure setting made using the second identification information takes precedence over the disclosure setting made using the first identification information.
[0027] According to the disclosure, the user can give priority to the disclosure setting of the variable using the second identification information inherent in the function block over the disclosure setting of the variable using the first identification information of the identification instance, thereby avoiding the conflict between the disclosure setting of the variable in the instance and the disclosure setting of the variable in the function block.
[0028] In the above disclosure, the user interface is configured to enable selection of which of the first identification information and the second identification information is to be prioritized for disclosure setting.
[0029] According to the disclosure, the user can choose which of the disclosure settings of the variables using the first identification information that identifies the instance and the disclosure settings of the variables using the second identification information inherent in the function block should take priority. Therefore, the priority can be considered to avoid conflicts between the disclosure settings of the variables in the instance and the disclosure settings of the variables in the function block.
[0030] According to another example of the present disclosure, a control method for a support device is provided, wherein the support device supports a control device that controls a control object according to a user program. The control method includes the following steps: a step of providing a user interface for a user to make a public setting of at least one variable generated when the user program is executed to an external device; and a step of generating public setting information based on the public setting made by the user using the user interface. The control device manages the disclosure of at least one variable generated when the user program is executed to an external device based on the public setting information. The public setting information includes at least one of the following information: information for setting whether an external device is allowed to read at least one variable in accordance with at least one role; and information for setting whether an external device is allowed to execute at least one variable in accordance with at least one role. The user interface is configured so that the user specifies any role among the at least one role to make the public setting.
[0031] According to the present disclosure, a user can specify any one of at least one role to set whether to allow an external device to read at least one variable and whether to allow an external device to execute at least one of at least one variable, thereby strengthening security related to the disclosure of variables to external devices.
[0032] According to another example of the present disclosure, there is provided a support program that supports a control device that controls a control object according to a user program. The support program causes a computer to execute the following steps: a step of providing a user interface for a user to make a public setting of at least one variable generated when executing the user program to an external device; and a step of generating public setting information based on the public setting made by the user using the user interface. The control device manages the public setting information of at least one variable generated when executing the user program to an external device. The public setting information includes at least one of the following information: information that sets whether an external device is allowed to read at least one variable in accordance with at least one role; and information that sets whether an external device is allowed to execute at least one variable in accordance with at least one role. The user interface is configured so that the user specifies any one of the at least one role to make the public setting.
[0033] According to the present disclosure, a user can specify any one of at least one role to set whether to allow an external device to read at least one variable and whether to allow an external device to execute at least one of at least one variable, thereby strengthening security related to the disclosure of variables to external devices. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] Figure 1 This is a diagram showing an example of a control system to which a support device according to the embodiment is applied.
[0035] Figure 2 This diagram shows an example of instantiation of a function block (FB definition).
[0036] Figure 3 This is a diagram showing an example of the hardware configuration of the control device.
[0037] Figure 4 This is a diagram showing an example of the hardware configuration of a support device.
[0038] Figure 5 This is a diagram showing an example of the hardware configuration of an external device.
[0039] Figure 6 This is a sequence diagram showing the processing flow of each of the support device, control device, drive device, and external device.
[0040] Figure 7 This is a diagram showing an example of a development screen as a user interface provided by the support device.
[0041] Figure 8 This is a diagram showing an example of a user setting screen as a user interface provided by the support device.
[0042] Figure 9This is a diagram showing an example of a user setting screen provided by the support device as a user interface.
[0043] Figure 10 This is a diagram showing an example of a public setting screen provided by the support device as a user interface.
[0044] Figure 11 This is a diagram showing an example of a public setting screen provided by the support device as a user interface.
[0045] Figure 12 This is a diagram showing an example of the access rights for each role.
[0046] Figure 13 This is a diagram showing an example of the access rights for each role.
[0047] Figure 14 This is a diagram showing an example of a public setting screen provided by the support device as a user interface.
[0048] Figure 15 This is a diagram showing a modified example of a public setting screen provided by the support device as a user interface.
[0049] Figure 16 This is a diagram showing a modified example of a public setting screen provided by the support device as a user interface.
[0050] Figure 17 This is a diagram showing a modified example of a public setting screen provided by the support device as a user interface.
[0051] Figure 18 This is a diagram showing a modified example of a public setting screen provided by the support device as a user interface.
[0052] Figure 19 This is a diagram showing a modified example of a public setting screen provided by the support device as a user interface. Detailed Implementation Modes
[0053] The embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In addition, for the same or corresponding parts in the drawings, the same reference numerals are used and the description thereof will not be repeated.
[0054] <A. Application Example>
[0055] Refer to Figure 1 , and an example of a scenario in which the support device 100 of the present disclosure is applied will be described. Figure 1 This is a diagram showing an example of the control system 1 of the support device 100 to which the embodiment is applied. The control system 1 is an FA system that automates the production process. As Figure 1As shown, the control system 1 includes a control device 200 , a drive device 400 as a control target of the control device 200 , an external device 300 that exchanges data with the control device 200 , and a support device 100 that supports the control device 200 .
[0056] The control device 200 is a device such as a PLC that executes a user program 230 for controlling the controlled object. The control device 200 is communicatively connected to the drive device 400 via the control system network 10. The control system network 10 preferably employs a field network that performs fixed-cycle communication and guarantees data arrival time. Examples of such fixed-cycle field networks include EtherCAT (registered trademark), EtherNet / IP (registered trademark), and CompoNet (registered trademark). Alternatively, the control device 200 can be communicatively connected to the drive device 400 via a remote I / O (Input / Output) device or I / O unit serving as the control system network 10.
[0057] The control device 200 is communicatively connected to the external device 300 via the information system network 20. The information system network 20 is preferably a network that complies with a communication standard that enables data exchange regardless of the vendor or OS (Operating System) type. Examples of such communication standards include OPC UA. The communication standard adopted by the information system network 20 is not limited to OPC UA. For example, the information system network 20 may also be a network that complies with a communication standard specific to a particular vendor or OS.
[0058] When the information system network 20 is an OPC UA-compliant network, the control device 200 functions as an OPC UA server, and the external device 300 functions as an OPC UA client. In such an OPC UA-compliant control system 1, the external device 300, acting as an OPC UA client, can easily access data managed by the control device 200, acting as an OPC UA server. Hereinafter, the services provided by such a control system 1 will also be referred to as "network public services."
[0059] The control device 200 is communicatively connected to the support device 100 via a USB (Universal Serial Bus) connection or the like.
[0060] Drive equipment 400 includes various industrial devices used to automate production processes. For example, drive equipment 400 includes a robot controller 400A that controls a robot 401A, a servo driver 400B that controls a servo motor 401B, and sensors 400C that collect various data. These drive equipment 400 are controlled by control device 200 via control system network 10.
[0061] The external device 300 obtains the data managed by the control device 200 via the information system network 20. The external device 300 includes, for example, an HMI (Human Machine Interface), a notebook or desktop PC (Personal Computer), a smartphone, a tablet terminal, or other information processing devices with a display function. Figure 1 In the figure, HMI 300A and HMI 300B are shown as examples of external devices 300. Furthermore, external devices 300 are not limited to information processing devices with display functions, such as HMIs, but may also be other control devices (such as PLCs) different from control device 200. For example, control system 1 may be configured such that data managed by each of the control devices 200 is exchanged between the multiple control devices 200 by connecting the multiple control devices 200 in a communicative manner.
[0062] The support device 100 is, for example, a notebook or desktop PC, a smartphone, a tablet terminal, or other information processing device capable of developing a user program 230 for the control device 200. A development tool 150 can be installed in the support device 100. The development tool 150 is an application for supporting the control device 200 and is implemented by executing the support program 130 described later. The development tool 150 provides a designer with a user interface for developing the user program 230. As an example of the development tool 150, "Sysmac Studio" manufactured by Omron Corporation can be cited. The designer can use the user interface provided by the development tool 150 to develop the user program 230 and install the developed user program 230 in the control device 200. For example, the user program 230 is sent to the control device 200 as an executable file compiled by the support device 100.
[0063] In the control system 1 configured as described above, for security reasons, the user must pre-configure whether to disclose data managed by the control device 200 to the external device 300 (disclosure setting). "User" includes the designer of the user program 230, the user of the control system 1, or the administrator of the control system 1. "Disclosure" includes at least one of reading and writing variables. Data managed by the control device 200 includes at least one variable stored in the instance generated when the user program 230 is executed.
[0064] A "variable" is a concept that represents any numerical value or string used by control device 200 during the execution of user program 230. The term "variable" is used as the antonym of a constant whose value never changes. Furthermore, a "variable" is not limited to input / output data exchanged with the outside world or temporary data used during internal processing; it can also be considered a container (memory area) that stores such input / output data or temporary data.
[0065] User program 230 can be written in any programming language. For example, user program 230 is defined using at least one of a ladder diagram (LD), instruction list (IL), structured text (ST), and sequential function chart (SFC). User program 230 can also be defined in a general-purpose programming language such as JavaScript (registered trademark) or C.
[0066] The user program 230 of the embodiment is created in accordance with IEC 61131-3, a standard governing programming for PLCs, an example of the control device 200, and is composed of program components called POUs (Program Organization Units). User program 230 includes function blocks (hereinafter also referred to as "FBs") as components of the POUs.
[0067] A "function block" is a componentized function that is used repeatedly within the user program 230. More specifically, a function block is a POU used when creating a component (e.g., a class) in which output variables such as a timer or counter sometimes differ for the same input variable depending on the state of the drive device 400 that is the control object. In a function block, at least one variable used when executing the function block is predetermined. "At least one variable" includes, for example, input variables, output variables, input / output variables, and internal variables. Input variables are variables used within a function block as input data input to the function block. Output variables are variables used within a function block as output data output from the function block. Input / output variables are variables used within a function block as input / output data for the function block. Internal variables are variables used to temporarily store data within a function block.
[0068] Function blocks prepared in advance as classes are also called FB definitions. When configured in user program 230, a function block (FB definition) is independently processed as an instance in user program 230, allowing it to actually run on user program 230. Generally, the term "function block" encompasses both function blocks (FB definitions) representing classes and function blocks instantiated by being built into user program 230. However, in this embodiment, "function block" refers to function blocks (FB definitions) representing classes.
[0069] Reference Figure 2 , explains the instantiation of function blocks (FB definitions). Figure 2 This is a diagram showing an example of instantiation of a function block (FB definition). Figure 2 As shown, FB1 (FB definition) predefines at least one variable (Var1, Var2, ...). This FB1 (FB definition) is configured in user program 230 and processed separately as FB1 corresponding to instance 1 and FB1 corresponding to instance 2 in user program 230.
[0070] An "instance" is created by configuring a function block (FB definition) in user program 230. Each instance specified in user program 230 uses a separate memory area. By creating multiple instances based on a single function block (FB definition) in user program 230, the user can cause control device 200 to execute the same function but process different input and output data according to user program 230.
[0071] like Figure 2 As shown, a function block (FB definition) has a unique "namespace" as identification information. For example, a function block (FB definition) has "FB1" as its namespace. Furthermore, instances have a unique "instance name" as identification information. For example, FB1 corresponding to instance 1 has "FB1instance1" as its instance name, and FB1 corresponding to instance 2 has "FB1instance2" as its instance name.
[0072] return Figure 1 The control device 200 includes a variable space 210, an address space 220, a user program 230, a communication management program 240, user setting information 250, and public setting information 260. These pieces of information are stored in a storage device 202 of the control device 200 described later.
[0073] The variable space 210 is a memory area containing at least one variable generated when executing the user program 230. Figure 1 In one example, the variable space 210 includes a plurality of variables, such as a variable A, a variable B, and a variable C. These variables can be updated while the control device 200 executes the user program 230 to control the drive device 400 .
[0074] The address space 220 is a memory area containing the address of at least one variable node corresponding to at least one variable stored in the variable space 210. Figure 1 In one example, the address space 220 includes addresses of variable node A, variable node B, and variable node C. Each address of variable node A, variable node B, and variable node C includes information for accessing each variable A, variable B, and variable C included in the variable space 210 .
[0075] The user program 230 is a program in which processing for the control device 200 to control the drive device 400 as a control target is described. The user program 230 is generated by the support device 100 and installed in the control device 200.
[0076] The communication management program 240 is a program for causing the control device 200 to function as an OPC UA server. It describes the process for causing the control device 200 to disclose publicly available variables to the external device 300 in response to an access request from the external device 300. The communication management program 240 is generated by the support device 100 and installed in the control device 200.
[0077] User settings information 250 includes login information for managing users who request access to data (variables, etc.) managed by the control device 200 using an external device 300. Hereinafter, to distinguish between "users" such as the designer of the user program 230, the user of the control system 1, or the administrator of the control system 1, users who request access to data managed by the control device 200 using an external device 300 will also be referred to as "access users." It should be noted that "users" and "access users" can be the same person or different individuals. Access users who can access data managed by the control device 200 are pre-registered in the control device 200 as user settings information 250. User settings information 250 is generated by the support device 100 and downloaded to the control device 200.
[0078] The public setting information 260 includes information for specifying public settings of data managed by the control device 200 with respect to the external device 300. The public setting information 260 is generated by the support device 100 and downloaded to the control device 200.
[0079] The control device 200 includes a disclosure management unit 270. In response to an access request from an external device 300, the disclosure management unit 270 discloses publicly accessible data to the external device 300 in accordance with the communication management program 240. For example, upon receiving an access request for a variable from the external device 300, the disclosure management unit 270 authenticates the accessing user based on the user settings information 250. After successfully authenticating the user, the disclosure management unit 270 determines, based on the disclosure settings information 260, whether disclosure of the variable subject to the access request is permitted. If disclosure of the variable subject to the access request is permitted, the disclosure management unit 270 extracts the address for accessing the variable subject to the access request from the address space 220 and discloses the address to the external device 300, the requesting source. The external device 300 can access the requested variable based on the address obtained from the control device 200.
[0080] In this manner, in control system 1, control device 200 can disclose variables generated during execution of user program 230 to external device 300 in response to a request from external device 300. Furthermore, control device 200 can authenticate accessing users based on user setting information and disclose only variables permitted for disclosure to external device 300 based on disclosure setting information.
[0081] However, regarding the disclosure of variables, it is important to strengthen security. Therefore, the support device 100 of the embodiment is configured so that, in order to strengthen security, the user designates any one of at least one role and performs disclosure settings of at least one variable to the external device 300 according to the at least one role.
[0082] Specifically, the support device 100 includes a provision unit 110 and a disclosure setting unit 120 as the functions of the development tool 150. The provision unit 110 provides a user interface (a disclosure setting screen described later) for allowing a user to make disclosure settings to the external device 300 for at least one variable stored in an instance generated when the user program 230 is executed. Furthermore, the user interface is configured so that the user can specify any one of at least one role and make the disclosure settings for the at least one variable to the external device 300.
[0083] The “public setting” includes at least one of the following: setting whether to allow the external device 300 to read at least one variable according to at least one role; and setting whether to allow the external device 300 to execute (eg, export) at least one variable according to at least one role.
[0084] "Roles" include the roles, positions, ranks, and positions of access users, such as the designer of the user program 230, the user of the control system 1, or the administrator of the control system 1. In the control system 1 of the embodiment, "roles" include observers, operators, maintainers, designers, and administrators. Observers are people who only observe (view) data (variables, etc.) managed by the control device 200. Operators are people who operate the control device 200. Maintainers are people who maintain the control device 200 and drive devices 400, etc., included in the control system 1. Designers are people who design the control device 200 and drive devices 400, etc. included in the control system 1. Administrators manage the control device 200 and drive devices 400, etc. included in the control system 1 and manage observers, operators, maintainers, and designers, etc. The support device 100 is configured to allow public settings to be made according to the roles to which access users belong, among these multiple roles.
[0085] Furthermore, since the control device 200 generates a large number of variables when executing the user program 230, making public settings for each variable is very troublesome. Therefore, the support device 100 of the embodiment is configured to enable setting the public settings of variables to the external device 300 by specifying at least one of a variable public setting that uses an instance name to identify an instance generated when a function block is executed, and a variable public setting that uses a namespace unique to the function block.
[0086] Specifically, the user interface provided by the providing unit 110 of the support device 100 is configured to allow the user to specify at least one of an instance name and a namespace to set whether to disclose at least one variable to the external device 300 .
[0087] The public setting unit 120 generates public setting information 260 based on settings made by the user using the user interface (public setting screen) provided by the providing unit 110. The public setting information 260 includes at least one of the following: information that specifies whether the external device 300 is permitted to read at least one variable, depending on at least one role; and information that specifies whether the external device 300 is permitted to execute (e.g., export) at least one variable, depending on at least one role. The public setting information 260 generated by the public setting unit 120 is downloaded to the control device 200.
[0088] According to the support device 100 having such a configuration, the user can specify any party in at least one role to set whether to disclose at least one variable to the external device 300, and further set which of the disclosed variables is read-only and which variable can be executed, etc. Therefore, the security related to the disclosure of variables to the external device 300 can be strengthened. Furthermore, the user can perform the disclosure setting of variables to the external device 300 according to each instance name or each namespace. Therefore, there is no need to separately perform the disclosure setting for a huge number of variables generated when the user program 230 is executed, and the effort for the disclosure setting can be greatly omitted.
[0089] <B. Structure of the control device>
[0090] Refer to Figure 3 , and the hardware structure of the control device 200 will be described. Figure 3 is a diagram showing an example of the hardware structure of the control device 200. As Figure 3 shown, the control device 200 includes a processor 201, a storage device 202, a memory 203, a chipset 204, a control system interface 205, an information system interface 206, a USB controller 207, and a storage medium interface 208 as main components.
[0091] The processor 201 is a computing entity (computer) that performs various processes by executing various programs. The processor 201 may be comprised of, for example, a CPU (central processing unit) or an MPU (microprocessing unit). While the processor 201 has the function of executing various processes by executing programs, some or all of these functions may be implemented using dedicated hardware circuits such as an ASIC (application-specific integrated circuit) or an FPGA (field-programmable gate array). The processor 201 is not limited to a processor in the narrow sense that executes processes using a stored program, such as a CPU or MPU. It may also include hardwired circuits such as an ASIC or FPGA. Therefore, the processor 201 can also be considered a processing circuit whose processes are predefined by computer-readable code and / or hardwired circuits. Furthermore, the processor 201 may consist of a single chip or multiple chips. Furthermore, the processor 201 and its associated processing circuits may be comprised of multiple computers connected to each other by wired or wireless means, such as a local area network or wireless network. The processor 201 and related processing circuits may also be formed by a cloud computer, which performs remote calculations based on input data and outputs the calculation results to other devices located remotely.
[0092] The storage device 202 stores various programs and data executed by the processor 201. The storage device 202 may be one or more non-transitory computer-readable media or one or more computer-readable storage media. Examples of the storage device 202 include a hard disk drive (HDD) and a solid state drive (SSD). In the control device 200 of the embodiment, the storage device 202 stores a variable space 210, an address space 220, a user program 230, a communication management program 240, user setting information 250, and public setting information 260.
[0093] The memory 203 includes a volatile storage area (such as a work area) that temporarily stores program codes, working memory, etc. when the processor 201 executes various programs. As an example of the memory 203, volatile memories such as DRAM (dynamic random access memory) and SRAM (static random access memory), or non-volatile memories such as ROM (Read Only Memory) and flash memory can be cited.
[0094] The chipset 204 has a relay function for managing and processing data exchange between the devices constituting the control device 200.
[0095] The control system interface 205 is an interface that mediates data exchange between the control device 200 and the drive device 400.
[0096] The information system interface 206 is an interface that mediates data exchange between the control device 200 and the external device 300.
[0097] The USB controller 207 is an interface that mediates data exchange between the control device 200 and the support device 100.
[0098] The storage medium interface 208 is configured to be able to mount and dismount the storage medium 209, and is an interface for the control device 200 to write various data such as user programs 230, communication management programs 240, user setting information 250, and public setting information 260 to the storage medium 209, or for the control device 200 to read the various data from the storage medium 209. In addition, the storage medium 209 can be one or more non-temporary computer-readable media (non-transitory computer readable medium) such as a memory card, a removable disk, or a USB memory, or can be one or more computer-readable storage media (computer readable storage medium).
[0099] <C. Structure of the Support Device>
[0100] Refer to Figure 4 , and the hardware structure of the support device 100 will be described. Figure 4 is a diagram showing an example of the hardware structure of the support device 100. As Figure 4 shown, the support device 100 includes a processor 101, a storage device 102, a memory 103, a bus 104, a display unit 105, an input unit 106, a USB controller 107, and a storage medium interface 108 as main components.
[0101] Processor 101 is a computing entity (computer) that performs various processes by executing various programs. Processor 101 may be comprised of, for example, a CPU or MPU. While processor 101 has the function of executing various processes by executing programs, some or all of these functions may be implemented using dedicated hardware circuitry, such as an ASIC or FPGA. Processor 101 is not limited to a processor in the narrow sense of a CPU or MPU that executes processes using a stored program; it may also include hardwired circuitry, such as an ASIC or FPGA. Therefore, processor 101 can also be considered processing circuitry whose processes are predefined by computer-readable code and / or hardwired circuitry. Processor 101 may consist of a single chip or multiple chips. Furthermore, processor 101 and its associated processing circuitry may be comprised of multiple computers interconnected by wired or wireless means, such as a local area network or wireless network. Processor 101 and its associated processing circuitry may also be comprised of a cloud computer that remotely performs computations based on input data and outputs the computational results to other remote devices.
[0102] The storage device 102 stores various programs and data executed by the processor 101. The storage device 102 may be one or more non-transitory computer-readable media or one or more computer-readable storage media. Examples of the storage device 102 include a HDD and a SSD. In the support device 100 of this embodiment, the storage device 102 stores a support program 130.
[0103] The memory 103 includes a volatile storage area (e.g., a work area) that temporarily stores program code, work memory, etc. when the processor 101 executes various programs. Examples of the memory 103 include volatile memories such as DRAM and SRAM, and nonvolatile memories such as ROM and flash memory.
[0104] The bus 104 has a relay function for managing and processing data exchange between the devices constituting the support device 100 .
[0105] The display unit 105 is, for example, a display. Alternatively, the display unit 105 may be an interface for connecting to the display, mediating data exchange between the support device 100 and the display. In other words, the support device 100 may include a display as a component or may be separate from the display.
[0106] The input unit 106 is, for example, a peripheral device such as a keyboard or a mouse. Additionally, the input unit 106 can also be an interface for connecting a peripheral device configured to mediate data exchange between the support device 100 and the peripheral device. That is, the support device 100 can be configured to include a peripheral device such as a keyboard or a mouse, or can be separate from the peripheral device.
[0107] The USB controller 107 is an interface that mediates data exchange between the support device 100 and the control device 200.
[0108] The storage medium interface 108 is configured to be able to attach and detach the storage medium 109, and is an interface for the support device 100 to write various data such as the support program 130 to the storage medium 109 or for the support device 100 to read the various data from the storage medium 109. Additionally, the storage medium 109 can be one or more non - transitory computer - readable media such as a memory card, a removable disk, or a USB memory, or can be one or more computer - readable storage media.
[0109] <D. Structure of External Device>
[0110] Refer to Figure 5 The hardware structure of the external device 300 will be described. Figure 5 This is a diagram showing an example of the hardware structure of the external device 300. As Figure 5 shown, the external device 300 includes a processor 301, a storage device 302, a memory 303, a bus 304, a display unit 305, an input unit 306, a communication interface 307, and a storage medium interface 308 as main components.
[0111] Processor 301 is a computing entity (computer) that performs various processes by executing various programs. Processor 301 may be comprised of, for example, a CPU or MPU. While processor 301 has the function of executing various processes by executing programs, some or all of these functions may be implemented using dedicated hardware circuitry, such as an ASIC or FPGA. Processor 301 is not limited to a processor in the narrow sense of a CPU or MPU that executes processes using a stored program; it may also include hardwired circuitry, such as an ASIC or FPGA. Therefore, processor 301 can also be considered processing circuitry in which processing is predefined using computer-readable code and / or hardwired circuitry. Processor 301 may consist of a single chip or multiple chips. Furthermore, processor 301 and its associated processing circuitry may be comprised of multiple computers interconnected by wired or wireless means, such as a local area network or wireless network. Processor 301 and its associated processing circuitry may also be comprised of a cloud computer that remotely performs computations based on input data and outputs the computational results to other remote devices.
[0112] The storage device 302 stores various programs and data executed by the processor 301. The storage device 302 may be one or more non-transitory computer-readable media or one or more computer-readable storage media. Examples of the storage device 302 include an HDD and an SSD. In the external device 300 of the embodiment, the storage device 302 stores a communication program 330. The communication program 330 is a program for enabling the external device 300 to function as an OPC UA client and describes the processing for the external device 300 to request access to variables managed by the control device 200.
[0113] The memory 303 includes a volatile storage area (e.g., a work area) that temporarily stores program code, work memory, etc. when the processor 301 executes various programs. Examples of the memory 303 include volatile memories such as DRAM and SRAM, and nonvolatile memories such as ROM and flash memory.
[0114] The bus 304 has a relay function for managing and processing data exchange between the devices constituting the external device 300 .
[0115] The display unit 305 is, for example, a display. Additionally, the display unit 305 can also be an interface for connecting a display configured to mediate data exchange between the external device 300 and the display. That is, the external device 300 can be configured to include a display or can be separate from the display.
[0116] The input unit 306 is, for example, a peripheral device such as a keyboard or a mouse. Additionally, the input unit 306 can also be an interface for connecting a peripheral device configured to mediate data exchange between the external device 300 and the peripheral device. That is, the external device 300 can be configured to include a peripheral device such as a keyboard or a mouse or can be separate from the peripheral device.
[0117] The communication interface 307 is an interface that mediates data exchange between the external device 300 and the control device 200.
[0118] The storage medium interface 308 is configured to be able to mount and dismount the storage medium 309 and is an interface for allowing the external device 300 to write various data such as the communication program 330 to the storage medium 309 or to read the various data from the storage medium 309. Additionally, the storage medium 309 can be one or more non - transitory computer readable media such as a memory card, a removable disk, or a USB memory, or can be one or more computer readable storage media.
[0119] <E. Sequence Flow>
[0120] Refer to Figure 6 , and the processing flows of the support device 100, the control device 200, the drive device 400, and the external device 300 will be described. Figure 6 It is a sequence diagram showing the processing flows of the support device 100, the control device 200, the drive device 400, and the external device 300 respectively. Figure 6 Each step (STEP) (hereinafter represented by "S") of the support device 100 shown is implemented by the processor 101 executing the support program 130. Figure 6 Each step of the control device 200 shown is implemented by the processor 201 executing the user program 230 and the communication management program 240. Figure 6 Each step of the external device 300 shown is implemented by the processor 301 executing the communication program 330.
[0121] As Figure 6As shown, when the support device 100 receives an operation for displaying a development screen, it displays the development screen on the display unit 105 (S11). The user develops the user program 230 using the development screen. Figure 7 This will be described later. The support device 100 compiles the user program 230 and transmits it to the control device 200 as an executable file ( S12 ).
[0122] Upon receiving the user program 230 transmitted from the support device 100 , the control device 200 stores the user program 230 in the storage device 202 ( S21 ).
[0123] When the support device 100 receives an operation for displaying the user setting screen, it displays the user setting screen on the display unit 105 (S13). The user can use the user setting screen to register a specific person as an access user of the network public service and assign a role to the access user. Figure 8 and Figure 9 The support device 100 generates user setting information 250 based on the input content of the user setting screen ( S14 ) and transmits the user setting information 250 to the control device 200 ( S15 ).
[0124] Upon receiving the user setting information 250 transmitted from the support device 100 , the control device 200 stores the user setting information 250 in the storage device 202 ( S22 ).
[0125] When the support device 100 receives an operation for displaying the public setting screen, it displays the public setting screen on the display unit 105 (S16). The user uses the public setting screen to input information related to the public setting of the data (variables, etc.) managed by the control device 200 to the external device 300. Figures 10 to 14 This will be described later. The support device 100 generates the public setting information 260 based on the input content of the public setting screen ( S17 ). The support device 100 transmits the public setting information 260 to the control device 200 ( S18 ).
[0126] Upon receiving the public setting information 260 transmitted from the support device 100 , the control device 200 stores the public setting information 260 in the storage device 202 ( S23 ).
[0127] Upon receiving an execution command from user program 230, control device 200 executes user program 230 to control drive device 400. If user program 230 is a cyclically executed program, control device 200 repeatedly executes the command set contained in user program 230 according to a predetermined control cycle. More specifically, control device 200 executes the first to last lines of user program 230 in one control cycle, and then executes the first to last lines of user program 230 again in the next control cycle. Control device 200 generates a command value in each control cycle and outputs the command value to drive device 400.
[0128] As described above, the control device 200 executes the user program 230 to control the drive device 400 , thereby storing variables in each instance predetermined by the user program 230 .
[0129] When the access user accesses a variable generated when the user program 230 is executed, the external device 300 receives login information input by the access user ( S31 ).
[0130] When the control device 200 receives the login information input into the external device 300, it compares the login information with the login information contained in the user setting information 250. If the comparison result shows that the login information input into the external device 300 is consistent with the login information contained in the user setting information 250, it is determined that the authentication of the accessing user is legitimate.
[0131] When the variable that the access user wishes to access is determined, the external device 300 receives information for determining the variable input by the access user ( S33 ) and requests the control device 200 to access the variable specified by the access user ( S34 ).
[0132] When the control device 200 receives an access request from the external device 300, it determines whether to permit disclosure of the variables subject to the access request to the accessing user based on the disclosure settings information 260 (S25). If disclosure of the variables subject to the access request to the accessing user is not permitted (No in S25), the control device 200 does not disclose the variables subject to the access request to the accessing user and proceeds to the next step. On the other hand, if disclosure of the variables subject to the access request to the accessing user is permitted (Yes in S25), the control device 200 transmits the address for accessing the variables subject to the access request to the external device 300 (S26).
[0133] The external device 300 displays the variable to be accessed on the display unit 305 based on the address received from the control device 200 ( S34 ).
[0134] Thus, in the case of an access request for a variable from an access user, the control device 200 can disclose the variable to the access user on the condition that the disclosure of the variable is permitted based on the disclosure settings set by the support device 100.
[0135] <F. Development Screen of User Program>
[0136] Refer to Figure 7 , and the development screen 151 of the user program 230 will be described. Figure 7 It is a diagram showing an example of a development screen provided by the support device 100 as a user interface.
[0137] The user program 230 is described in ladder logic. By combining arbitrary function blocks in the development screen 151 or specifying the input-output relationships of variables or function blocks, the user can design the user program 230 corresponding to the drive device 400 of the control object.
[0138] The user program 230 includes at least one function block. For example, as Figure 7 shown, the user program 230 includes a function block (FB definition) with "FB1" attached as a namespace and a function block (FB definition) with "FB2" attached as a namespace. FB1 is defined in the user program 230 as FB1 corresponding to instance 1 and FB1 corresponding to instance 2. For FB1 corresponding to instance 1, "FB1 Instance 1" is attached as an instance name. For FB1 corresponding to instance 2, "FB2 Instance 1" is attached as an instance name. FB2 is defined in the user program 230 as FB2 corresponding to instance 1 and FB2 corresponding to instance 2. For FB2 corresponding to instance 1, "FB2 Instance 1" is attached as an instance name. For FB2 corresponding to instance 2, "FB2 Instance 2" is attached as an instance name.
[0139] The function block corresponding to FB1 Instance 1 executes its own function based on variable 1 associated with its input. The execution result of the function block corresponding to FB1 Instance 1 is reflected in variable 2 associated with its output. The function block corresponding to FB1 Instance 2 executes its own function based on variable 2 associated with its input. The execution result of the function block corresponding to FB1 Instance 2 is reflected in variable 3 associated with its output. The function block corresponding to FB2 Instance 1 executes its own function based on variable 3 associated with its input. The execution result of the function block corresponding to FB2 Instance 1 is reflected in variable 4 associated with its output. The function block corresponding to FB2 Instance 2 executes its own function based on variable 4 associated with its input. The execution result of the function block corresponding to FB2 Instance 2 is reflected in variable 5 associated with its output.
[0140] In this way, the user can develop an arbitrary user program 230 by combining variables or function blocks on the development screen 151.
[0141] <G. User Setting Screen>
[0142] Refer to Figure 8 and Figure 9 to describe the user setting screen 152. Figure 8 and Figure 9 is a diagram showing an example of the user setting screen 152 provided by the support device 100 as a user interface. Figure 8 The shown user setting screen 152 is a user interface for registering an access user. As Figure 8 shown, the user setting screen 152 includes input fields 1521, 1522, 1523 and icons 1524, 1525.
[0143] The input field 1521 is an input field for entering a user name. The input field 1522 is an input field for entering a password. The input field 1523 is an input field for entering a confirmation password. The icon 1524 is an icon to be operated when confirming the input. The icon 1525 is an icon to be operated when canceling the input.
[0144] The user enters the user name of a specific person to be registered for the network public service into the input field 1521 on the user setting screen 152, and enters the password of the specific person into the input field 1522 and the input field 1523, and then operates the icon 1524. Thus, the user can register a specific person as an access user for the network public service on the user setting screen 152.
[0145] Figure 9 The shown user setting screen 152 is a user interface for assigning roles to each registered access user. As Figure 9 shown, the user setting screen 152 includes selection fields 1531, 1532 and icons 1533, 1534.
[0146] The selection field 15% is a selection field for the user to select an arbitrary access user from at least one registered access user. In Figure 9 the example, the selection field 1531 includes access users attached with "User A", access users attached with "User B", and access users attached with "User C" as options. The selection field 1532 is a selection field for the user to assign an arbitrary role to each access user from a plurality of pre-determined roles. In Figure 9In the example, the selection bar 1532 includes "observer", "operator", "maintainer", "designer", and "manager" as options. Additionally, the selection bar 1532 may also include roles other than observer, operator, maintainer, designer, and manager.
[0147] The user can select one role in a pull-down manner from at least one role included in the selection bar 1532 for each access user, taking the username of the access user shown in the selection bar 1531 as a clue. For example, in Figure 9 the example, the role of manager is assigned to user A, the role of maintainer is assigned to user B, and the role of operator is assigned to user C.
[0148] In this way, the user can use the user setting screen 152 to register access users and assign roles to the registered access users.
[0149] <H. Public Setting Screen>
[0150] Refer to Figures 10 to 14 to explain the public setting screen 154. Figures 10 to 14 is a diagram showing an example of the public setting screen 154 provided as a user interface by the support device 100. As Figure 10 and Figure 11 shown, the public setting screen 154 includes icons 1545, 1548 and selection bars 1543, 1544, 1546, 1547.
[0151] The selection bar 1543 is a selection bar for the user to select any function block from at least one function block used in the user program 230. In Figure 10 and Figure 11 the example, the selection bar 1543 includes the function block attached with "FB1" and the function block attached with "FB2" as options. The selection bar 1544 is a selection bar for the user to assign any role to the function block selected in the selection bar 1543 from a plurality of pre-determined roles. In Figure 10 the example, the selection bar 1544 includes "observer", "operator", "maintainer", "designer", and "manager" as options. Additionally, the selection bar 1544 may also include roles other than observer, operator, maintainer, designer, and manager. The icon 1545 is an icon that is operated when specifying the function block selected in the selection bar 1543.
[0152] The selection bar 1546 is a selection bar for the user to select any instance from at least one instance specified in the user program 230. In Figure 10 as well as Figure 11In the example, selection bar 1546 includes an instance with "FB1 instance 1", an instance with "FB1 instance 2", an instance with "FB2 instance 1", and an instance with "FB2 instance 2" as options. Selection bar 1547 is a selection bar for the user to assign any role from a plurality of predetermined roles to the instance selected in selection bar 1546. Figure 11 In the example shown in FIG. 1546 , selection bar 1547 includes "Observer," "Operator," "Maintainer," "Designer," and "Manager" as options. Alternatively, selection bar 1547 may include roles other than observer, operator, maintainer, designer, and manager. Icon 1548 is an icon that is operated when specifying the instance selected in selection bar 1546.
[0153] Here, refer to Figure 12 and Figure 13 Describe the access rights for each role. Figure 12 and Figure 13 This is a diagram showing an example of the access rights for each role. Figure 12 As shown, the access rights of each role are predetermined based on the importance of the role.
[0154] For example, Figure 12 As shown, when the role assigned to the access user is "Observer", the variables allowed to be disclosed to the access user are the variables corresponding to the variable node assigned to "Observer". In other words, the access user as "Observer" can only access the variables that "Observer" can access.
[0155] If the access user is assigned the "Operator" role, the variables permitted to be disclosed to the access user are those corresponding to the variable nodes assigned to the "Observer" and "Operator" roles, respectively. In other words, the access user as an "Operator" can access the variables that are accessible to both the "Observer" and "Operator" roles.
[0156] If the access user is assigned the "Maintainer" role, the variables permitted to be disclosed to the access user are those corresponding to the variable nodes assigned to "Observer," "Operator," and "Maintainer," respectively. In other words, the access user as a "Maintainer" can access the variables accessible to each of the "Observer," "Operator," and "Maintainer" roles.
[0157] If the access user is assigned the role "Designer," the variables permitted to be disclosed to the access user are those corresponding to the variable nodes assigned to "Observer," "Operator," "Maintainer," and "Designer," respectively. In other words, the access user "Designer" can access the variables accessible to "Observer," "Operator," "Maintainer," and "Designer," respectively.
[0158] If the access user is assigned the role "Manager," the variables permitted to be disclosed to the access user are those corresponding to the variable nodes assigned to "Observer," "Operator," "Maintainer," "Designer," and "Manager," respectively. In other words, the access user as "Manager" can access the variables that are accessible to "Observer," "Operator," "Maintainer," "Designer," and "Manager," respectively.
[0159] In this way, the "Observer" user has the fewest variables granted access rights, while the "Manager" user has the most variables granted access rights. Furthermore, in the above example, the user can use the support device 100 to pre-set variable nodes assigned to the "Observer," "Operator," "Maintainer," "Designer," and "Manager" roles. For example, the user can use the support device 100 to assign variables accessible to the "Observer," "Operator," "Maintainer," "Designer," and "Manager" roles, respectively, from at least one variable managed by the control device 100.
[0160] In addition, if Figure 13 As shown, if the role assigned to the access user is "Observer", the function that can be executed for the variables that are allowed to be disclosed is the Browse function. In other words, the access user as "Observer" can only browse the names of the variables that are allowed to be disclosed.
[0161] If the access user is assigned the "Operator" or "Maintainer" role, the only executable functions for variables permitted for public access are Browse and Read. In other words, an "Operator" or "Maintainer" access user can only browse the names of variables permitted for public access and read their values.
[0162] If the access user is assigned the "Designer" or "Administrator" role, the available functions for publicly accessible variables are Browse, Read, and Write. Specifically, a "Designer" or "Administrator" access user can browse the names of publicly accessible variables, read their values, and write values to them. Writing a value to a variable corresponds to executing the variable.
[0163] in addition, Figure 13The access rights shown for each role are examples. Different access rights can also be granted to observers, operators, maintainers, designers, and managers. For example, observers can only be allowed to browse, while operators, maintainers, designers, and managers can be allowed to browse, read, and write. Alternatively, the functions permitted to observers, operators, maintainers, designers, and managers can be different, or some or all of the permitted functions can be the same.
[0164] like Figure 10 As shown, when the user specifies a function block (namespace) for public setting, they select one function block from among the function blocks labeled "FB1" and "FB2" in selection field 1543 and operate icon 1545. This allows the user to select a function block from at least one function block in selection field 1543.
[0165] Furthermore, the user can select a role from at least one role included in the selection bar 1544 in a drop-down form for the function block selected in the selection bar 1543. Figure 10 In the example, an operator is assigned to the function block assigned "FB2." Consequently, the control device 200 permits disclosure of only those variables permitted to be disclosed to the operator, among those generated when the function block assigned "FB2" is executed. Specifically, the control device 200 is configured to disclose the variables generated when the function block assigned "FB2" is executed to the operator, maintainer, designer, and administrator, respectively, based on the disclosure setting information 260. Furthermore, in this case, regardless of whether FB2 instance 1 or FB2 instance 2 is executed, the control device 200 discloses the variables generated during execution to the accessing user according to their role.
[0166] like Figure 11 As shown, when the user specifies an instance (instance name) for public setting, he or she selects an instance from "FB1 Instance 1," "FB1 Instance 2," "FB2 Instance 1," and "FB2 Instance 2" included in selection field 1546 and operates icon 1548. Thus, the user can select an instance from at least one instance included in selection field 1546.
[0167] Furthermore, the user can select a role from at least one role included in the selection bar 1547 in a drop-down form for the instance selected in the selection bar 1546. Figure 11In the example, an administrator is assigned to FB2 instance 1. Therefore, control device 200 permits disclosure of only those variables permitted to be disclosed to the administrator, among those generated when FB2 instance 1 is executed. Specifically, control device 200 is configured to disclose only the variables generated when FB2 instance 1 is executed to the administrator based on disclosure setting information 260. Furthermore, for instances other than FB2 instance 1, namely, FB1 instance 1, FB1 instance 2, and FB2 instance 2, control device 200 determines whether to disclose variables based on separate disclosure settings.
[0168] By assigning roles to function blocks and instances, the user can set the variables to be disclosed according to the roles predetermined for the accessing user. This allows the user to enhance security regarding the disclosure of variables to the external device 300.
[0169] Furthermore, users can publicly configure variables using the function block's unique namespace and can publicly configure variables using instance names that identify instances generated when the function block is executed. This eliminates the need for users to publicly configure the large number of variables generated when executing user program 230, minimizing the effort required for public configuration. Furthermore, users can shorten public configuration time and reduce public configuration errors. Consequently, users can reduce development costs by concentrating the effort and time required for public configuration on other, more complex tasks.
[0170] Furthermore, by using namespaces to publicly configure variables, users can, for example, publicly configure variables used in a selected function block, regardless of which instance the function block corresponds to. Alternatively, by using instance names to publicly configure variables, users can, for example, publicly configure variables used only in a selected instance among multiple instances of the same function block. This allows users to more efficiently configure variable disclosure settings to external devices 300.
[0171] like Figure 14 As shown, the support device 100 may also be configured to be able to set whether to disclose at least one variable stored in each instance specified by itself to the external device 300. For example, Figure 14 As shown, the disclosure setting screen 154 includes a name field 1551 indicating the name of each variable stored in one instance, a data type field 1552 indicating the data type of each variable, and a network disclosure field 1553 indicating the type of network disclosure.
[0172] When the user Figure 10 and Figure 11When a selected instance is selected in the selection bar 1546 shown, at least one variable corresponding to the role used in the selected instance is shown as an option in the name bar 1551. The user can, using the names of the variables shown in the name bar 1551 as a clue, select "public" or "non - public" in a drop - down form for each variable in the network disclosure bar 1553. For example, in Figure 14 In the example of, regarding the FB2 instance 1 which is publicly available as a whole and has a manager assigned, "public" was selected for Var1, Var2, and Var3 that can be accessed by the manager. In this case, the control device 200 allows Var1, Var2, and Var3 to be publicly disclosed to the external device 300. On the other hand, regarding the FB2 instance 1 which is publicly available as a whole and has a manager assigned, "non - public" was selected for Var4 that can be accessed by the manager. In this case, even if the accessing user is a manager, the control device 200 does not allow Var4 to be publicly disclosed to the external device 300.
[0173] In this way, since the user can further perform public settings for at least one variable saved in an instance that allows public disclosure, it is possible to set the public disclosure of variables to the external device 300 in a more detailed and efficient manner.
[0174] <I. Modification Example>
[0175] The present disclosure is not limited to the above - described embodiments, and various modifications and applications are also possible. Specifically, the support device 100 of the embodiment can perform public settings for variables using namespaces and public settings for variables using instance names. Therefore, the support device 100 may also have a structure for eliminating the adverse effects when performing both public settings simultaneously.
[0176] For example, when the user assigns an operator to FB2, the public setting is performed as follows: for accessing users assigned as an operator, a maintainer, a designer, or a manager, variables generated when executing the function block attached with "FB2" are publicly disclosed. On the other hand, when the user assigns a manager to the FB2 instance 1, the public setting is performed as follows: only variables generated when executing the FB2 instance 1 are publicly disclosed to accessing users assigned as a manager. In such a case, in the public setting using a namespace, for the function block attached with "FB2", public disclosure of variables is allowed for accessing users assigned as an operator, a maintainer, a designer, or a manager. In contrast, in the public setting using an instance, for the FB2 instance 1, public disclosure of variables is allowed only for accessing users assigned as a manager. Therefore, a contradiction may occur between the two.
[0177] Therefore, the support device 100 may be configured to be able to set only one of the public setting using the namespace and the public setting using the instance.
[0178] And, as Figures 15 to 17 As shown, the support device 100 may be configured to give priority to either the public setting using the namespace or the public setting using the instance. Figures 15 to 17 15 is a diagram showing a modified example of the public setting screen 154 as a user interface provided by the support device 100 .
[0179] like Figure 15 As shown, the disclosure setting information 260 may also include information that sets whether to disclose variables specified by instance names to the external device 300 in a manner that prioritizes variables specified by namespaces over variables specified by namespaces. For example, even if, under the disclosure setting using namespaces, disclosure of variables for a function block labeled "FB2" is permitted to users assigned the operator, maintainer, designer, or administrator role, while under the disclosure setting using instances, disclosure of variables for FB2 instance 1 is permitted only to users assigned the administrator role, the control device 200, based on the disclosure setting information 260, discloses variables used in FB2 instance 1 to the external device 300 only to users assigned the administrator role, thereby avoiding conflicts between the two.
[0180] like Figure 16 As shown, the disclosure setting information 260 may also include information that sets whether to disclose variables specified by namespaces to the external device 300, giving priority to variables specified by instance names. In this way, for example, even if the disclosure setting using namespaces allows disclosure of variables for a function block assigned "FB2" to access users assigned the operator, maintainer, designer, or administrator, while the disclosure setting using instances allows disclosure of variables for FB2 instance 1 only to access users assigned the administrator, the control device 200, based on the disclosure setting information 260, discloses the variables used in FB2 instance 1 using FB2 to the external device 300 to access users assigned the operator, maintainer, designer, or administrator, thereby avoiding conflicts between the two.
[0181] like Figure 17As shown, the public setting screen 154 includes a selection bar 1549 for the user to set whether to prioritize the variable corresponding to either the namespace or the instance name for disclosure to the external device 300. When the user selects one of the namespace and the instance name for the priority disclosure setting in the selection bar 1549, the support device 100 prioritizes the selected one by the user to generate the public setting information 260. Thus, for example, when the user selects the instance name in the selection bar 1549, the control device 200 discloses, based on the public setting information 260, only the variables used in the FB2 instance 1 to the access users assigned with the administrator to the external device 300, thereby avoiding contradictions between the two.
[0182] Also, as Figure 18 and Figure 19 shown, the support device 100 may also be configured to assign multiple roles to each of the namespace and the instance, rather than being limited to one role. Figure 18 and Figure 19 are diagrams showing a modified example of the public setting screen as the user interface provided by the support device 100.
[0183] As Figure 18 shown, the user can select multiple roles in a dropdown form from at least one role included in the selection bar 1544 for the function block selected in the selection bar 1543. For example, in Figure 18 the example, the function block attached with "FB2" is assigned with an observer and an operator. In this case, the control device 200 is configured to disclose, based on the public setting information 260, the variables generated when executing the function block attached with "FB2" to the observer and the operator, respectively.
[0184] As Figure 19 shown, the user can select multiple roles in a dropdown form from at least one role included in the selection bar 1547 for the instance selected in the selection bar 1546. For example, in Figure 19 the example, the FB2 instance 1 is assigned with a designer and an administrator. In this case, the control device $$$$200 is configured to disclose, based on the public setting information 260, the variables generated when executing the FB2 instance 1 to the designer and the administrator, respectively.
[0185] <J. Addendum>
[0186] As described above, the following disclosure is included in the present embodiment.
[0187] (Structure 1)
[0188] A support device 100 supports a control device 200 that controls a control object according to a user program 230, wherein the support device 100 includes: a providing unit 110 that provides a user interface for allowing a user to make a public setting of at least one variable generated when the user program is executed relative to an external device 300; and a public setting unit 120 that generates public setting information 260 based on the public setting made by the user using the user interface. The control device manages the public setting of the at least one variable generated when the user program is executed relative to the external device based on the public setting information, the public setting information including at least one of the following information: information for setting whether the external device is allowed to read the at least one variable in accordance with at least one role; and information for setting whether the external device is allowed to execute the at least one variable in accordance with the at least one role. The user interface is configured so that the user specifies any of the at least one role to make the public setting.
[0189] (Structure 2)
[0190] The support device according to Structure 1, wherein the at least one role includes: a first role; and a second role that allows a greater number of the at least one variable to be disclosed to the external device than the first role.
[0191] (Structure 3)
[0192] A support device according to structure 2, wherein the at least one variable disclosed to the external device when the second role is specified includes all of the at least one variable allowed to be disclosed to the external device when the first role is specified, and the at least one variable allowed to be disclosed to the external device when the first role is specified does not include all of the at least one variable allowed to be disclosed to the external device when the second role is specified.
[0193] (Structure 4)
[0194] A support device according to any one of Structures 1 to 3, wherein the user program includes first identification information, the first identification information identifies an instance generated when a function block included in the user program is executed, the function block has inherent second identification information, and the at least one variable used during execution is predetermined, and the user interface is configured so that the user specifies at least one of the first identification information and the second identification information to perform the public setting.
[0195] (Structure 5)
[0196] In the support device according to the fourth configuration, the user interface is configured to perform the public setting on the at least one variable stored in each of the instances corresponding to the first identification information specified by the user.
[0197] (Structure 6)
[0198] The support device according to Structure 4 or Structure 5, wherein the disclosure setting information includes information that the disclosure setting made using the first identification information takes precedence over the disclosure setting made using the second identification information.
[0199] (Structure 7)
[0200] The support device according to Structure 4 or Structure 5, wherein the disclosure setting information includes information that the disclosure setting made using the second identification information takes precedence over the disclosure setting made using the first identification information.
[0201] (Structure 8)
[0202] According to the support device of the fourth or fifth configuration, the user interface is configured to enable selection of which of the first identification information and the second identification information is to be used for the disclosure setting to be prioritized.
[0203] (Structure 9)
[0204] A control method for a support device 100, wherein the support device supports a control device 200 for controlling a control object according to a user program 230, wherein the control method comprises the following steps: a step S16 of providing a user interface, wherein the user interface is used for a user to make a public setting of at least one variable generated when the user program is executed relative to an external device 300; and a step S17 of generating public setting information based on the public setting made by the user using the user interface, wherein the control device manages the public setting of the at least one variable generated when the user program is executed relative to the external device based on the public setting information, wherein the public setting information includes at least one of the following information: information for setting whether the external device is allowed to read the at least one variable in accordance with at least one role; and information for setting whether the external device is allowed to execute the at least one variable in accordance with the at least one role, wherein the user interface is configured so that the user specifies any of the at least one role to make the public setting.
[0205] (Structure 10)
[0206] A support program 130 that supports a control device 200 for controlling a control object according to a user program 230, wherein the support program causes a computer 101 to execute the following steps: a step S16 of providing a user interface for a user to make a public setting of at least one variable generated when executing the user program with respect to an external device; and a step S17 of generating public setting information based on the public setting made by the user using the user interface, wherein the control device manages the disclosure of the at least one variable generated when executing the user program with respect to the external device based on the public setting information, and the public setting information includes at least one of the following information: information for setting whether to allow the external device to read the at least one variable corresponding to at least one role; and information for setting whether to allow the external device to execute the at least one variable corresponding to the at least one role, and the user interface is configured such that the user designates any one of the at least one role to make the public setting.
[0207] <K. Advantages>
[0208] According to the support device 100 of the embodiment, the user can designate any one of at least one role to set whether to disclose at least one variable to the external device 300, and thus, the security related to the disclosure of the variable to the external device 300 can be strengthened.
[0209] It should be considered that the embodiments disclosed herein are illustrative rather than restrictive in all respects. The scope of the present invention is not represented by the above description, but by the claims, and is intended to include meanings equivalent to the claims and all modifications within the scope.
[0210] Reference Numeral Explanation
[0211] 1 Control system; 10 Control system network; 20 Information system network; 100 Support device; 101, 201, 301 Processor; 102, 202, 302 Storage device; 103, 203, 303 Memory; 104, 304 Bus; 105, 305 Display unit; 106, 306 Input unit; 107, 207 USB controller; 108, 208, 308 Storage medium interface; 109, 209, 309 Storage medium; 110 Provider; 120 Public setting unit; 130 Support program; 150 Development tool; 151 Development screen; 152 User setting screen; 154 Public setting screen; 200 Control device; 204 Chipset; 205 Control system interface; 206 Information system interface; 210 Variable space; 220 Address space; 230 User program; 240 Communication management program; 250 User setting information; 260 Public setting information; 270 Public management Management unit; 300 external device; 307 communication interface; 330 communication program; 400 driving device; 400A robot controller; 400B servo drive; 400C sensor; 401A robot; 401B servo motor; 1521, 1522, 1523 input fields; 1524, 1525, 1533, 1534, 1545, 1548 icons; 1531, 1532, 1543, 1544, 1546, 1547, 1549 selection fields; 1551 name field; 1552 data type field; 1553 network disclosure field.
Claims
1. A support device that supports a control device that controls a control object according to a user program, wherein: The supporting device comprises: a providing unit configured to provide a user interface for allowing a user to publicly set at least one variable generated when the user program is executed to an external device; as well as a public setting unit that generates public setting information based on the public setting performed by the user using the user interface, The control device manages disclosure of the at least one variable generated when the user program is executed to the external device based on the disclosure setting information. The disclosure setting information includes at least one of the following information: information setting whether the external device is allowed to read the at least one variable according to at least one role; and information setting whether the external device is allowed to execute the at least one variable according to the at least one role. The user interface is configured so that the user designates any one of the at least one role and performs the disclosure setting.
2. The support device according to claim 1, wherein: The at least one role includes: a first role; and a second role that allows a greater number of the at least one variable to be disclosed to the external device than the first role.
3. The support device according to claim 2, wherein: The at least one variable disclosed to the external device when the second role is specified includes all of the at least one variable allowed to be disclosed to the external device when the first role is specified, and the at least one variable allowed to be disclosed to the external device when the first role is specified does not include all of the at least one variable allowed to be disclosed to the external device when the second role is specified.
4. The support device according to any one of claims 1 to 3, wherein: The user program includes first identification information that identifies an instance generated when a function block included in the user program is executed. The function block has inherent second identification information and has predetermined at least one variable used during execution. The user interface is configured so that the user specifies at least one of the first identification information and the second identification information to perform the disclosure setting.
5. The support device according to claim 4, wherein: The user interface is configured to perform the public setting on the at least one variable stored in each instance corresponding to the first identification information specified by the user.
6. The support device according to claim 4, wherein: The public setting information includes information that the public setting made using the first identification information takes precedence over the public setting made using the second identification information.
7. The support device according to claim 4, wherein: The public setting information includes information that the public setting performed using the second identification information takes precedence over the public setting performed using the first identification information.
8. The support device according to claim 4, wherein: The user interface is configured to enable selection of which of the first identification information and the second identification information is to be used for the disclosure setting to be prioritized.
9. A control method for a support device, wherein the support device supports a control device that controls a control object according to a user program, wherein: The control method comprises the following steps: providing a user interface for allowing a user to publicly set at least one variable generated when executing the user program to an external device; as well as generating public setting information based on the public setting made by the user using the user interface, The control device manages disclosure of the at least one variable generated when the user program is executed to the external device based on the disclosure setting information. The disclosure setting information includes at least one of the following information: information setting whether the external device is allowed to read the at least one variable according to at least one role; and information setting whether the external device is allowed to execute the at least one variable according to the at least one role. The user interface is configured so that the user designates any one of the at least one role and performs the disclosure setting.
10. A support program that supports a control device that controls a control object according to a user program, wherein: The support program causes the computer to execute the following steps: providing a user interface for allowing a user to publicly set at least one variable generated when executing the user program to an external device; as well as generating public setting information based on the public setting made by the user using the user interface, The control device manages disclosure of the at least one variable generated when the user program is executed to the external device based on the disclosure setting information. The disclosure setting information includes at least one of the following information: information setting whether the external device is allowed to read the at least one variable according to at least one role; and information setting whether the external device is allowed to execute the at least one variable according to the at least one role. The user interface is configured so that the user designates any one of the at least one role and performs the disclosure setting.
Citation Information
Patent Citations
Control system, development assistance apparatus and development assistance program
JP2019159632A