WO2020039900A1 - 情報処理装置およびプログラム - Google Patents
情報処理装置およびプログラム Download PDFInfo
- Publication number
- WO2020039900A1 WO2020039900A1 PCT/JP2019/030556 JP2019030556W WO2020039900A1 WO 2020039900 A1 WO2020039900 A1 WO 2020039900A1 JP 2019030556 W JP2019030556 W JP 2019030556W WO 2020039900 A1 WO2020039900 A1 WO 2020039900A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- object code
- program
- component
- hmi
- compiler
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Definitions
- the present disclosure relates to an information processing device, and more particularly to an information processing device such as a human-machine interface (hereinafter abbreviated as HMI) device applied to a control device represented by a programmable logic controller (hereinafter, referred to as a PLC). .
- HMI human-machine interface
- PLC programmable logic controller
- FA advanced automation
- a control device such as a PLC
- Such a control device is a kind of computer, and executes a control program designed to control the FA device such as a manufacturing device or a manufacturing facility according to the FA device.
- An HMI device applied to the field of FA executes an HMI program for exchanging variable data with a control program.
- variable data indicating the status of the FA device is displayed using UI (user interface) components constituting the HMI program.
- UI user interface
- a user such as a production manager can operate the UI parts and set data in variables referred to by the control program.
- the HMI program has a function of exchanging data with the control program.
- the HMI program is provided to the HMI device by loading a group of object codes (extension: exe or dll) of UI components, which are executable codes created in advance in the development environment, into the target HMI device. Therefore, when attempting to change a UI part at a manufacturing site, it is necessary to stop the execution of the HMI program and reload all the objects to the HMI device.
- a group of object codes extension: exe or dll
- Patent Document 1 discloses a method of converting user script code for debugging, but does not provide a method of enabling a change of a UI component without stopping execution of an HMI program.
- One object of the present disclosure is to provide an environment in which the object code of a UI component can be changed without stopping the execution of the HMI program.
- An information processing apparatus is an information processing apparatus that executes a human-machine interface (HMI) program for factory automation (FA), and is linked to a user interface (UI) component included in the HMI program.
- Storage means for storing the obtained object code, a compiler for generating an executable object code from the source code of the UI component, and means for executing the HMI program, wherein the execution means executes the HMI program.
- the object code generated by the compiler and the object code associated with the UI component are used as the object code of the UI component constituting the HMI program. One of them is selected. This provides an environment in which the object code of the UI component can be changed without stopping the execution of the HMI program.
- the apparatus further comprises means for receiving a user operation on the information processing apparatus, wherein the means for selecting comprises: a compiler configured to input a value indicating the content of the received user operation; A function having a command code for instructing selection of one of the object code generated by the above and the object code linked to the UI component is executed.
- the user can set a value indicating which object code is to be selected as an input parameter of a function by operating the information processing apparatus.
- a value indicating which object code is to be selected By operating the information processing apparatus.
- one of the object code generated by the compiler and the object code linked to the UI component specified by the user operation can be selected. .
- the function is called from the UI component. According to this disclosure, the function can be called and executed at the timing of executing the UI component of the HMI program.
- the function further has a command code for instructing activation of the compiler according to the value set in the input parameter.
- the compiler is activated during execution of the function, and the object code generated by the compiler can be obtained.
- the means for receiving a user operation includes a means for receiving a user operation on an object displayed on a display of the information processing apparatus.
- a user can set a value indicating which object code is to be selected as an input parameter of a function by operating an object displayed on a display.
- means for changing a display mode of an object according to which one selected by the selecting means is an object code generated by a compiler or an object code associated with the UI component.
- the user when the user operates an object displayed on the display, the user can confirm what one of the objects actually selected by the selecting unit is from a change in the display mode of the object. .
- the function further has a code for instructing selection of the object code in the storage unit when the condition that the object code generated by the compiler is stored is not satisfied.
- the linked object code when the function is executed and the compiler determines that the object code does not exist, the linked object code can be selected.
- the present disclosure when it is determined that the object code is not present by the compiler by executing the function, information that the object code generated by the compiler is not stored can be recorded. Therefore, for example, it is possible to record a case where the object code to be generated by the compiler is not stored even though the compiler is activated.
- the object code associated with the storage unit is overwritten using the object code generated by the compiler.
- the object code to be linked can be updated by overwriting the object code to be linked with the object code generated by the compiler.
- the information processing apparatus further includes an editor for creating or editing a source code.
- the user can edit or create the source code of the UI component compiled by the compiler using the editor.
- a program for causing a computer to execute a human machine interface (HMI) program for factory automation (FA) is provided.
- HMI human machine interface
- FA factory automation
- the computer includes storage means for storing an object code associated with a user interface (UI) component included in the HMI program.
- the program to be executed includes a step of causing a computer to start a compiler that generates an executable object code from the source code of the UI component, and a step of executing a HMI program by executing a HMI program. Selecting one of the object code generated by the compiler and the object code associated with the UI component as the object code.
- one of an object code generated by a compiler and an object code linked to the UI component is used as an object code of a UI component constituting the HMI program. Selected. This provides an environment in which the object code of the UI component can be changed without stopping the execution of the HMI program.
- FIG. 1 is a diagram schematically illustrating an example of a hardware configuration of an IPC 100 according to an embodiment of the present invention.
- FIG. 2 is a diagram schematically illustrating an example of a hardware configuration of an HMI device 200 according to the embodiment of the present invention.
- FIG. 3 is a schematic diagram illustrating an example of a software configuration of the IPC 100 according to the embodiment of the present invention.
- FIG. 4 is a diagram schematically illustrating an outline of generation and selection of an object code of a UI component according to the embodiment of the present invention.
- FIG. 7 is a diagram schematically showing the contents of a command code of a function according to the embodiment of the present invention, in association with the flow of object code generation and selection processing.
- FIG. 5 is a diagram showing an example of a description of a command code of a function 500 according to the embodiment of the present invention.
- 5 is a schematic flowchart illustrating an example of a process according to the embodiment of the present invention. It is a figure which shows typically the example of a display of the screen on the display 117 concerning embodiment of this invention. It is a figure which shows typically an example of switching of the display mode of the switching GUI1172 concerning embodiment of this invention.
- FIG. 1 is a diagram schematically showing a configuration of a system 1 according to an embodiment of the present invention.
- the system 1 includes one or a plurality of devices 300 to be controlled, such as an FA manufacturing apparatus and a manufacturing facility, an IPC (industrial computer) 100 and a PLC 101 corresponding to a control apparatus of the device 300, an HMI apparatus 200, and a general-purpose computer.
- a corresponding support device 4 is provided.
- the device 300 communicates with the IPC 100 and the PLC 101 via a network such as EtherCAT (registered trademark).
- the PLC 100 executes the control program 111 of the device 300.
- the HMI device 200 executes an HMI program 112 for exchanging data with a control program 111 executed by the PLC 100.
- the IPC 100 executes the control program 111 and executes the HMI program 112 for exchanging data with the control program 111. Therefore, IPC 100 has the role of both the control device and HMI device 200.
- the support device 4 develops the control program 111 and the HMI program 112, transfers (loads) the developed control program 111 to the IPC 100 and the PLC 101, and transfers the developed HMI program 112 to the HMI device 200.
- the IPC 100 and the HMI device 200 are examples of an information processing device that executes the HMI program 112. Further, the support device 4 develops a UI component 501 constituting the HMI program 112 and transfers the object code of the UI component 501 to the IPC 100 and the HMI device 200.
- the IPC 100 and the HMI device 200 include a library 113 corresponding to a storage unit that stores an object code associated with the UI component 501. Note that this association is realized using, for example, an ID (identification) code of the UI component 501.
- the “HMI program” 112 is an application program that describes one or a plurality of pages corresponding to a screen displayed on the display 117 of the IPC 100 or the display 214 of the HMI device 200.
- a screen is displayed on the display.
- the screen of the HMI program 112 includes one or a plurality of UI components 501.
- a screen displayed by executing the HMI program 112 is also referred to as an “HMI screen”.
- ⁇ The“ UI parts ”501 include image data, text data, program codes, and the like.
- the UI parts 501 are executed to display the screen parts constituting the screen.
- the screen parts include various objects such as pictures and character strings.
- functions functions such as display of screen components, data input / output, operation acceptance, and the like
- the program code includes, for example, a script code, but the type of the program code is not limited to the script code.
- a component that provides a screen component among the UI components 501 is also referred to as a GUI (graphical user interface) component.
- the “library” 113 is a library (file) of the UI parts 501 that can be used (reused) by the HMI program 112.
- the library 113 stores the UI components 501 in the form of an object code executable by the IPC 100 or the HMI device 200.
- the object code linked to the UI component 501 constituting the HMI program 112 is called from the library 113, and the called object code is executed.
- the HMI screen including the UI component 501 is displayed on the displays 117 and 214.
- the function realized by executing the object code linked to the UI component 501 can be dynamically changed without stopping the execution of the HMI program 112.
- a source code which is a program code describing a function included in the UI component 501 is created or edited.
- the compiler 1163 receives the source code of the UI component 501, compiles the received source code, and generates an executable object code.
- the IPC 100 or the HMI device 200 determines, as the object code of the UI component 501 constituting the HMI program 112, the object code generated by the compilation and the library 113 associated with the UI component 501. Select one of the object codes.
- the function for selecting the compiler 1163 and the object code to be referred to is implemented in the IPC 100 or the HMI device 200.
- the IPC 100 or the HMI device 200 when the object code obtained by compiling the source code of the created or edited UI component 501 is executed, the screen component configuring the HMI screen of the display 117 (or the display 214) Can be presented as a change in the display mode.
- the IPC 100 or the HMI device 200 can also provide a development environment including debugging of the source code of the UI component 501.
- the object code in the library 113 associated with the UI component 501 is overwritten using the object code generated by the compiler 1163. This overwriting can be performed, for example, when the IPC 100 or the HMI device 200 is restarted. As a result, the object code linked to the UI component 501 can be changed to the object code generated by the compiler 1163.
- the selection of the object code described above can be realized by executing the function 500 having an input parameter in which a value indicating the content of the user operation received by the IPC 100 or the HMI device 200 is set.
- the function 500 has a command code for instructing selection of one of the object code generated by the compiler 1163 and the object code of the library 113 linked to the UI component 501 according to the value set in the input parameter.
- the object code generated by the compiler 1163 is stored in an area different from the storage area (that is, the library 113) in which the linked object code is stored.
- the selection of the object code can be realized by changing the storage area of the reference destination for calling the object code.
- the function 500 also has a command code for activating the compiler 1163 according to the value set in the input parameter. This allows the compiler 1163 to be activated only when the function 500 is called. Therefore, the storage area can be saved as compared with the case where the compiler 1163 is activated in advance to create and store the object code.
- FIG. 2 is a diagram schematically illustrating an example of a hardware configuration of the IPC 100 according to the embodiment of the present invention.
- IPC 100 includes a processor 102 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit), a chipset 104, a main memory 106, a flash memory 108, an external network controller 116, , A memory card interface 118, a display driver 119 for controlling the display 117, an input interface 121, an internal bus controller 129, and a field bus controller 124.
- the input interface 121 controls a keyboard 122, which is one embodiment of an operation receiving unit that receives a user operation on the IPC 100.
- the display 117 and the keyboard 122 may be provided as an integrated touch panel.
- the processor 102 reads out the system program 110 and the user program stored in the flash memory 108, expands and executes the system program 110 in the main memory 106, and thereby realizes control processing or HMI processing for a control target such as the device 300 or a field device. I do.
- the system program 110 includes instruction codes for providing basic functions of the IPC 100, such as data input / output processing and execution timing control.
- the user program includes a control program 111, an HMI program 112, a Runtime 600, and a library 113.
- the control program 111 includes a sequence program for executing sequence control, a motion program for executing motion control, and the like.
- the Runtime 600 is an embodiment of the means for executing the HMI program 112, and provides an environment for executing the HMI program 112 when executed.
- various functions constituting the UI parts 501 and the control program 111 are registered in the form of object codes which are executable codes (for example, intermediate codes).
- object codes which are executable codes (for example, intermediate codes).
- the UI components 501 constituting the HMI program 112 are linked with the UI component object code 502 of the library 113.
- the flash memory 108 further stores a variable table 1146 including system variables, device variables, user variables, and the like.
- the processor 102 executes the control program 111 while referring to the control command value and the like set to the variable in the variable table 1146, and sets the state value and the like of the device 300 to the variable in the variable table 1146. Further, the processor 102 executes the HMI program 112 while referring to the values set in the variables of the variable table 1146, and also converts the value according to the user operation content received from the screen component of the UI component 501 into the variable of the variable table 1146. Set.
- the status value of the device 300 can be displayed on the screen component of the UI component 501 via the variable of the variable table 1146, and the control command value based on the value according to the user operation received from the screen component is used for the device. 300 can be controlled.
- the flash memory 108 also has an object code storage area E1 for storing a compiled object code 701 (described later), which is an object code of the UI component 501 generated by the compiler 1163.
- the chipset 104 realizes processing of the entire IPC 100 by controlling each component.
- the internal bus controller 129 is an interface for exchanging data between the IPC 100 and the I / O unit 14 connected through the internal bus.
- the field bus controller 124 is an interface for exchanging data between the IPC 100 and the I / O unit 16 connected via a field bus (not shown).
- the internal bus controller 129 and the field bus controller 124 obtain the status values input to the corresponding I / O units 14 and 16, respectively, and control the operation result in the processor 102 from the corresponding I / O units 14 and 16. Each is output as a command value.
- the external network controller 116 controls data exchange through various wired / wireless networks.
- the memory card interface 118 is configured so that the memory card 120 can be attached and detached, and can write data to the memory card 120 and read data from the memory card 120.
- the IPC 100 exchanges data with the support device 4 or another control device (such as the PLC 101) via the external network controller 116 or the memory card interface 118.
- Part or all of the functions provided by the PLC 100 executing the program may be implemented as a dedicated hardware circuit.
- FIG. 3 is a diagram schematically illustrating an example of a hardware configuration of the HMI device 200 according to the embodiment of the present invention.
- HMI device 200 may be a stationary type, or may be provided in the form of a notebook personal computer that is highly portable at a manufacturing site.
- the HMI device 200 includes a CPU 202 that executes various programs including an OS (Operating System), a ROM (Read Only Memory) 104 that stores a BIOS (Basic Input / Output System) and various data, and a CPU 202 that executes programs. It includes a memory RAM (Random Access Memory) 206 that provides a work area for storing necessary data, and a hard disk (HDD) 208 that stores programs executed by the CPU 202 in a nonvolatile manner.
- OS Operating System
- ROM Read Only Memory
- BIOS Basic Input / Output System
- BIOS Basic Input / Output System
- the HMI device 200 further includes an input unit 211 including a keyboard 210 and a mouse 212 for accepting a user operation on the HMI device 200, and a display 214 for presenting information to the user.
- the HMI device 200 includes a communication interface 218 for communicating with the PLC 101 or the support device 4.
- the input unit 211 may be provided as a touch panel configured integrally with the display 214.
- the HMI device 200 includes a recording medium reading device 217 for reading a program stored in the recording medium 250 from the recording medium 250.
- FIG. 4 is a schematic diagram showing an example of a software configuration of IPC 100 according to the embodiment of the present invention.
- the hypervisor manages hardware resources of IPC 100 and allocates these hardware resources to real-time OS 114 and general-purpose OS 1161 such as Windows (registered trademark) while arbitrating. Then, the real-time OS 114 and the general-purpose OS 1161 independent of each other are executed on a common hardware resource. That is, a virtual environment in which different types of OSs are executed is realized using the hypervisor.
- a logical network is configured between the real-time OS 114 and the general-purpose OS 1161 via a hypervisor.
- the control program 111 is executed.
- a variable manager 1142, a task scheduler 1143, a program manager 1144, and an I / O (Input / Output) control program 1145 are linked. Through such cooperation, acquisition of a signal (control signal) from the device 300 to be controlled, execution of the control logic, and reflection of the execution result (control of the actuator) are repeated.
- the variable manager 1142 sets a state value or a control command value input / output via the I / O unit 14 or 16 to a variable in the variable table 1146.
- an arbitrary user application such as a user application 1164 including the HMI program 112, a general-purpose application 1165, a text editor 1162, a compiler 1163, and a Runtime 600 are provided.
- the general-purpose application 1165 is a standard application that can be executed by the general-purpose OS 1161.
- the general-purpose application 1165 can use a general-purpose process or function to construct a system with less man-hours. Can be.
- the text editor 1162 creates or edits the source code of the UI component 501 according to the user operation received via the keyboard 122.
- a Java (registered trademark) script is exemplified as the source code, but the type of the source code is not limited to the script.
- the compiler 1163 receives the source code, compiles the received source code, and generates an object code.
- Compiler 1163 accepts source code 700 by reading source code 700 from the storage area of flash memory 108.
- the source code 700 stored in the storage area of the flash memory 108 includes a source code created or edited by the text editor 1162, but is not limited to the source code created or edited by the text editor 1162.
- the source code may be read from the memory card 120 storing the source code via the memory card interface 118.
- a post-compilation object code 701 to be described later is obtained.
- the source code is a script
- a script compiler suitable for the script is applied as the compiler 1163.
- the Runtime 600 includes a function 500 that can be called when the HMI program 112 is executed.
- the code of the function 500 instructs selection of one of the compiled object code 701 and the UI component object code 502 of the library 113 linked to the UI component 501 as the object code of the UI component 501 constituting the HMI program 112. Command code.
- the details of the command code of the function 500 will be described later.
- FIG. 5 is a diagram schematically illustrating an outline of generation and selection of the object code of the UI component according to the embodiment of the present invention.
- a text editor 1162 and a Runtime 600 can be executed under a general-purpose OS (Windows) of IPC 100.
- Windows general-purpose OS
- the Runtime 600 is executed, an execution environment for executing the HMI program 112 is provided. Under the execution environment, the compiler 1163 can be executed.
- text editor 1162 receives a user operation via keyboard 122 and creates or edits a UI component script in accordance with the received operation.
- the source code 700 including the created or edited script is stored in a predetermined storage area of the flash memory 108.
- the Runtime 600 sets a value according to the operation content in the flag 602 when a predetermined user operation is received via the keyboard 122.
- the flag 602 has a value indicating which of the compiled object code 701 and the linked UI component object code 502 in the library 113 should be executed as the object code of the UI component 501 constituting the HMI program 112. Is set. For example, a value of “True” or “false” is set in the flag 602.
- the Runtime 600 executes the object code of the UI component 501 included in the HMI program 112, the function 500 is called by executing the object code.
- the Runtime 600 sets the value of the flag 602 as the value of the input parameter of the function 500, and executes the instruction code of the function 500 based on the value of the input parameter.
- This command code represents a code that the Runtime 600 can execute.
- the compiler 1163 When the function 500 is executed, the compiler 1163 is activated according to the value of the input parameter. When the compiler 1163 is activated, the compiler 1163 receives the target source code 700, compiles the received source code 700, and generates a compiled object code 701.
- the compiled object code 701 is stored in the object code storage area E1 of the flash memory 108.
- the IPC 100 can include the linked UI component object code 502 in the library 113 and the compiled object code 701 of the object code storage area E1 as the object code of the UI component 501 of the HMI program 112.
- the function 500 is executed, and the UI component 501 is linked to the UI component 501 in the library 113 as an object code of the UI component 501 according to the value of the flag 602.
- One of the compiled UI part object code 502 and the compiled object code 701 in the object code storage area E1 is selectively read and executed.
- FIG. 6 is a diagram schematically showing the contents of the instruction code of the function 500 according to the embodiment of the present invention in association with the flow of the object code generation and selection processing.
- FIG. 7 is a diagram illustrating an example of a description of a command code of the function 500 according to the embodiment of the present invention. Referring to FIG. 7, function 500 includes command codes 511 to 516 in a script format. When each of the instruction codes 511 to 516 is executed, corresponding processes P511 to P516 shown in FIG. 6 are realized.
- a .NET environment for executing various applications under the Windows execution environment is provided.
- an HMI execution environment which is an execution environment of the HMI program, is provided.
- a script processing unit 601 that processes various scripts such as the function 500 operates.
- the script processing unit 601 sets a value based on the user operation content received via the switching GUI 1172, which is a screen component displayed on the display 117, in the flag 602.
- the switching GUI 1172 will be described later.
- the contents of the user operation may be received via the keyboard 122.
- the script processing unit 601 executes the function 500.
- the script processing unit 601 activates the compiler 1163.
- the compiler 1163 accesses (extracts) the source code 700 from the flash memory 108 based on the script path 603 stored in advance (process P512).
- the compiler 1163 generates the compiled object code 701 by compiling the accessed source code 700 (process P513).
- the compiled object code 701 is stored in the object code storage area E1 of the flash memory 108.
- the code of the calling unit is executed (process P514).
- the calling unit calls the UI component object code 502 linked to the UI component 501 of the library 113 (process P516) and calls the compiled object code 701 of the object code storage area E1 (process P515).
- the script processing unit 601 calls and executes the object code from the selected storage area.
- the object code of the UI component 501 of the HMI program 112 from which the script processing unit 601 is called is executed.
- the execution result is output by, for example, changing the display mode of the screen component by the UI component 501.
- the script calling unit 504 is one of the call of the linked UI component object code 502 (process P516) and the call of the compiled object code 701 (process P515) based on the value of the flag 602. Was selected, but the selection criterion is not limited to the value of the flag 602. For example, as shown by the instruction code 514 in FIG. 7, based on the determination as to whether or not the compiled object code 701 is stored (loaded) in the object code storage area E1, the associated UI part object code 502 One of the call (process P516) and the call of the compiled object code 701 (process P515) may be selected.
- FIG. 8 is a schematic flowchart illustrating an example of a process according to the embodiment of the present invention. The processing will be described with reference to FIG. First, the text editor 1162 edits or creates a script-format source code 700 based on the contents of a user operation received via the keyboard 122 (step S3). The source code 700 is stored in the flash memory 108 in a file format.
- the script processing unit 601 sets the file path indicating the storage location of the file of the source code 700 in the script path 603 (Step S5).
- the script processing unit 601 sets a value according to the user operation content received via the switching GUI 1172 in the flag 602 (step S7).
- the script processing unit 601 calls the compiler 1163 (step S9), and the called compiler 1163 reads the source code 700 from the flash memory 108 according to the file path set in the script path 603, and compiles the read source code 700. (Step S11). Thus, the compiled object code 701 is generated and stored in the object code storage area E1.
- the timing at which the compiler 1163 is called in step S9 is not limited to the timing (timing) at which the UI component 501 is executed during the execution of the HMI program 112, and may be another timing.
- the other timing may include, for example, a timing at which the source code 700 is edited or created, or a timing designated by a user.
- the script processing unit 601 calls the function 500 and executes the instruction code of the function 500. First, the value of the flag 602 is determined (step S13), and the code of the object is called based on the determination result.
- the script processing unit 601 determines that the value of the flag 602 is not “True” (NO in step S13)
- the script processing unit 601 calls the UI component object code 502 linked to the UI component 501 of the library 113 ( Step S21).
- the script processing unit 601 determines whether or not the compiled object code 701 exists, that is, the compiled object code 701 is stored in the object code storage area E1. It is determined whether the code 701 is stored (step S15).
- the script processing unit 601 determines that the compiled object code 701 exists, that is, that the compiled object code 701 is stored in the object code storage area E1 (YES in step S15), the script processing unit 601 stores the object code.
- the post-compilation object code 701 is called from the area E1 (step S17).
- the script processing unit 601 calls up the compiled object code 701
- the script processing unit 601 changes the screen component that is the switching GUI 1172 of the display 117 to a predetermined display mode (step S19).
- the user is notified that the compiled object code 701 is selected as the object code of the UI component 501, and the selected compiled object code 701 is called from the object code storage area E1 and executed. Can be output.
- step S15 if the script processing unit 601 determines that the compiled object code 701 does not exist, that is, that the compiled object code 701 is not stored in the object code storage area E1 (NO in step S15), the script processing unit 601 The 601 calls the UI component object code 502 of the library 113 linked to the UI component 501, and records abnormal data in a readable log file of the flash memory 108 (step S23).
- the abnormal data includes, for example, the value of the flag 602 (“True”) at that time and data indicating that there is no object code 701 after compilation. Therefore, the user can know the abnormality by subsequently outputting and analyzing the log file.
- FIG. 9 is a diagram schematically illustrating a display example of a screen on the display 117 according to the embodiment of the present invention.
- FIG. 9A shows an example of a screen of the display 117 when the source code 700 is edited or created by the text editor 1162, for example. This screen is divided into, for example, windows W1 and W2, an HMI screen is displayed in window W1 by executing HMI program 112, and a source code 700 is displayed in window W2 by executing text editor 1162. Edit or create screen is displayed.
- the window W2 is deleted, and the screen is switched to, for example, the screen of FIG.
- the script processing unit 601 also displays the icons of the switching GUI 1172 and the overwriting GUI 1173.
- the script processing unit 601 receives the operation content of the switching GUI 1172 and sets “True” or “False” in the flag 602 based on the received operation content.
- the value according to the user operation content received from the switching GUI 1172 is set in the flag 602, so that the instruction to generate the post-compilation object code 701 by compiling the source code 700 or the object code of the UI component 501 An instruction to switch from the linked UI component object code 502 to the post-compilation object code 701 can be given to the script processing unit 601.
- the display color of the screen part V1 in FIG. 9B when the object code 701 is executed, the color has changed to another color as shown in FIG. Since the display color of the screen component V1 has changed, the user can determine whether the generated or edited source code 700 is appropriate, that is, can obtain a determination index for debugging.
- the change in the display mode of the screen component V1 is not limited to the color, and may be, for example, a shape.
- the UI parts 501 configuring the HMI program 112 can be used.
- the HMI program 112 can be dynamically changed by creating or editing the source code or object code of the HMI program 112, and the execution result of the HMI program 112 by the changed code can be monitored in real time. This enables the IPC 100 or the HMI device 200 to provide a development environment including editing and debugging of the HMI program 112 as in the case of the support device 4 and the like.
- FIG. 10 is a diagram schematically illustrating an example of switching of the display mode of the switching GUI 1172 according to the embodiment of the present invention.
- the script processing unit 601 switches the display mode of the switching GUI 1172 by executing the script of the switching GUI 1172.
- the switching GUI 1172 is displayed as shown in FIG. 10A, and the compiled object code 701 is executed in step S19 in FIG. ,
- the switching GUI 1172 is displayed as shown in FIG.
- the switching of the display mode of the switching GUI 1172 is not limited to the mode of FIG.
- the UI part object code 502 linked to the UI part 501 of the library 113 is overwritten using the compiled object code 701 of the object code storage area E1. Is done.
- the UI component object code 502 linked to the UI component 501 of the library 113 can be updated using the compiled object code 701 generated by the IPC 100 without loading the object code from the support device 4. .
- the timing of performing this overwriting includes, for example, when the IPC 100 is restarted.
- Runtime 600 that provides a development environment for HMI program 112 in IPC 100 shown in the present embodiment is stored in a storage unit such as flash memory 108.
- the processor 102 reads the Runtime 600 from the storage unit and expands the Runtime 600 in a RAM or the like that forms the main memory 106. Then, the processor 102 interprets and executes the program expanded in the RAM, and controls each component of the IPC 100. By executing, it is possible to realize various processes described in the present embodiment.
- the Runtime 600 must be recorded on a computer-readable storage medium such as a flexible disk, a CD-ROM (Compact Disk-Read Only Memory), a ROM, a RAM, and a memory card 120 attached to the IPC 100, and provided as a program product. Can also.
- a storage medium stores information such as a program stored in an electrical, magnetic, optical, mechanical, or chemical operation so that a processor or other device or machine can read information such as a stored program.
- Is a medium that accumulates. The IPC 100 may acquire the Runtime 600 from this storage medium.
- the Runtime 600 may be recorded on a recording medium (not shown) such as an HDD (Hard Disc Drive) built in the IPC 100 to provide the program.
- a recording medium such as an HDD (Hard Disc Drive) built in the IPC 100 to provide the program.
- the program can be provided by downloading from a network (not shown) via a communication interface.
- a Runtime 600 for providing a development environment for the HMI program 112 is executed.
- the Runtime 600 is stored in a storage unit (the HDD 208, the recording medium 250, and the like) of the HMI device 200.
- the CPU 202 reads the Runtime 600 from the storage unit and expands the Runtime 600 in the RAM 206 or the like. Then, the CPU 202 interprets and executes the program developed in the RAM 206 to control each component of the HMI device 200. By executing, it is possible to realize various processes described in the present embodiment.
- Such a Runtime 600 is recorded on a computer-readable recording medium such as a flexible disk, a CD-ROM (Compact Disk-Read Only Memory), a ROM 204, a RAM 206, and a recording medium 250 attached to the HMI device 200, and described above.
- a computer-readable recording medium such as a flexible disk, a CD-ROM (Compact Disk-Read Only Memory), a ROM 204, a RAM 206, and a recording medium 250 attached to the HMI device 200, and described above.
- the program can be provided as a program product.
- the program can be provided by recording on a recording medium such as the HDD 208 built in the HMI device 200.
- the program can be provided by downloading from a network (not shown) via a communication interface.
- An information processing apparatus for executing a human machine interface (HMI) program (112) for factory automation (FA), Storage means (113) for storing an object code (502) associated with a user interface (UI) component (501) constituting the HMI program; A compiler (1163) for generating an executable object code (701) from the UI component source code (700); Means (600) for executing the HMI program, The means for performing Means for selecting one of an object code generated by the compiler and an object code associated with the UI component as an object code of a UI component constituting the HMI program when executing the HMI program ( 601).
- HMI human machine interface
- FA factory automation
- Storage means for storing an object code (502) associated with a user interface (UI) component (501) constituting the HMI program
- a compiler for generating an executable object code (701) from the UI component source code (700)
- Means (600) for executing the HMI program The means for performing Means for selecting one of an object code generated by the compiler and an
- the function further comprises: The information processing apparatus according to configuration 2 or 3, further comprising a command code (513) for instructing activation of the compiler according to a value set in the input parameter.
- the means for receiving the user operation includes: The information processing apparatus according to any one of Configurations 2 to 4, further comprising a unit configured to receive a user operation on an object (1172) displayed on a display of the information processing apparatus.
- [Configuration 6] Means for changing the display mode of the object according to whether the one selected by the selecting means is an object code generated by the compiler or an object code linked to the UI component ( S19, FIG. 10), the information processing apparatus according to configuration 5, further comprising:
- the function further comprises: When the condition that the object code generated by the compiler is stored is not satisfied, any one of the configurations 2 to 6 has a code (514, 516) for instructing the storage unit to select the object code. 2.
- the information processing device according to 1.
- the computer includes storage means (113) for storing an object code (502) associated with a user interface (UI) component (501) constituting the HMI program,
- the program to be executed is executed by the computer, Activating a compiler that generates an executable object code (701) from the source code of the UI component (S9);
- 1 system, 4 support device 100 IPC, 102 processor, 108 flash memory, 112 HMI program, 113 library, 117, 214 display, 122, 210 keyboard, 200 HMI device, 300 device, 500 function, 501 UI component, 502 UI Parts object code, 504 script calling unit, 511 to 516 command code, 600 Runtime, 601 script processing unit, 602 flag, 603 script path, 700 source code, 701 compiled object code, 1162 text editor, 1163 compiler, E1 object code Storage area, 1172 ⁇ switching GUI, 1173 ⁇ overwrite GUI, P511 to P516 ⁇ processing, V1 ⁇ Screen parts, W1, W2 window.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Programmable Controllers (AREA)
Abstract
HMIプログラムの実行を停止せずにUI部品のオブジェクトコードを変更する。情報処理装置は、HMIプログラムを構成するUI部品に紐付けられたオブジェクトコードを格納する格納手段と、UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラと、HMIプログラムを実行する手段と、を備える。実行する手段は、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する。
Description
本開示は、情報処理装置に関し、特に、プログラマブルロジックコントローラ(以下、PLCという)などに代表されるような制御装置に適用されるヒューマンマシンインターフェイス(以下、HMIと略す)装置などの情報処理装置に関する。
様々な生産および製造現場において、PLCなどの制御装置を用いたFA(ファクトリオートメーション)技術が広く普及している。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などのFA機器に応じて、これらを制御するように設計された制御プログラムを実行する。また、FAの分野に適用されるHMI装置は、制御プログラムとの間で変数のデータを遣り取りするHMIプログラムを実行する。HMIプログラムが実行されることにより、FA機器の状態を表す変数のデータが、HMIプログラムを構成するUI(ユーザインターフェイス)部品を用いて表示される。また、生産管理者などのユーザがUI部品を操作して、制御プログラムが参照する変数にデータを設定することもできる。このようにHMIプログラムは、制御プログラムとの間でデータを遣り取りする機能を備える。
このような背景のもと、製造現場では、HMIプログラムの実行を停止することなく、HMIプログラムを構成するUI部品を変更し、変更後のHMIプログラムの実行結果をその場で確認したいとの要望がある。しかし、従来は、開発環境で予め作成された実行可能なコードであるUI部品のオブジェクトコード(拡張子がexeまたはdll)群を対象のHMI装置にロードすることにより、HMI装置にHMIプログラムが提供されていたので、製造現場でUI部品を変更しようとする場合は、HMIプログラムの実行を停止して、全てのオブジェクトをHMI装置にロードしなおす必要があった。
特許文献1は、デバッギングのためのユーザ・スクリプト・コードの変換方法を開示するが、HMIプログラムの実行停止を伴わずに、UI部品の変更を可能にする方法は提供しない。
本開示は、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することができる環境を提供することを一つの目的としている。
本開示の一例にかかる情報処理装置は、FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを実行する情報処理装置であって、HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段と、UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラと、HMIプログラムを実行する手段と、を備え、実行する手段は、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段を含む。
この開示によれば、情報処理装置でHMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方が選択される。これにより、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することが可能な環境が提供される。
上述の開示において、情報処理装置に対するユーザ操作を受付ける手段を、さらに備え、選択する手段は、受付けたユーザ操作内容を示す値が設定される入力パラメータと、入力パラメータに設定された値に従い、コンパイラにより生成されたオブジェクトコードおよびUI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数を実行する。
この開示によれば、ユーザは情報処理装置に対する操作により、いずれのオブジェクトコードを選択するかを示す値を関数の入力パラメータに設定することができる。このような入力パラメータの設定値に従い、関数が実行されることにより、コンパイラにより生成されたオブジェクトコードおよびUI部品に紐付けられたオブジェクトコードのうちユーザ操作により指定された一方を選択することができる。
上述の開示において、関数は、UI部品から呼出される。
この開示によれば、関数は、HMIプログラムのUI部品を実行するタイミングで呼出して実行することができる。
この開示によれば、関数は、HMIプログラムのUI部品を実行するタイミングで呼出して実行することができる。
上述の開示において、関数は、さらに、入力パラメータに設定された値に従いコンパイラの起動を指示する指令コードを有する。
この開示によれば、関数を実行中にコンパイラが起動されて、コンパイラにより生成されたオブジェクトコードを取得することができる。
上述の開示において、ユーザ操作を受付ける手段は、情報処理装置のディスプレイに表示されるオブジェクトに対するユーザ操作を受付ける手段を含む。
この開示によれば、ユーザは、ディスプレイに表示されるオブジェクトを操作することにより、いずれのオブジェクトコードを選択するかを示す値を関数の入力パラメータに設定することができる。
上述の開示において、選択する手段により選択された一方が、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、オブジェクトの表示態様を変化させる手段を、さらに備える。
この開示によれば、ユーザはディスプレイに表示されるオブジェクトを操作した場合、選択する手段により実際に選択された一方のオブジェクトが何であるかを、当該オブジェクトの表示態様の変化から確認することができる。
上述の開示において、関数は、さらに、コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、格納手段のオブジェクトコードの選択を指令するコードを有する。
この開示によれば、関数が実行されることにより、コンパイラによるオブジェクトコードが存在しないと判定される場合は紐付けられたオブジェクトコードの方を選択させることができる。
上述の開示において、コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされない場合に、その旨を記録する手段を、さらに備える。
この開示によれば、関数が実行されることにより、コンパイラによるオブジェクトコードが存在しないと判定される場合は、コンパイラにより生成されたオブジェクトコードが格納されていないとの情報を記録することができる。したがって、例えば、コンパイラが起動されたにもかかわらずコンパイラにより生成されるべきオブジェクトコードが格納されていないとのケースを記録しておくことができる。
上述の開示において、コンパイラにより生成されたオブジェクトコードを用いて、格納手段の紐付けられたオブジェクトコードを上書きする。
この開示によれば、紐付けられるオブジェクトコードを、コンパイラにより生成されたオブジェクトコードを用いて上書きすることで、紐付けられるオブジェクトコードを更新することができる。
上述の開示において、情報処理装置は、ソースコードを作成または編集するエディタを、さらに備える。
この開示によれば、ユーザは、コンパイラによりコンパイルされるUI部品のソースコードを、エディタを用いて編集または作成することができる。
本開示の一例によれば、FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを、コンピュータに実行させるためのプログラムが提供される。
上記のコンピュータは、HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段を備える。上記の実行させるためのプログラムは、コンピュータに、UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラを起動させるステップと、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップとを含む。
この開示によれば、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方が選択される。これにより、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することが可能な環境が提供される。
本開示の一例によれば、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更可能な環境を提供することができる。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本発明の実施の形態に係るシステム1の構成を模式的に示す図である。システム1は、FAの製造装置や製造設備などの制御対象である1または複数のデバイス300、デバイス300の制御装置に相当するIPC(産業用コンピュータ)100およびPLC101、HMI装置200、および汎用コンピュータに相当するサポート装置4を備える。デバイス300は、EtherCAT(登録商標)などのネットワークを介してIPC100およびPLC101と通信する。PLC100はデバイス300の制御プログラム111を実行する。HMI装置200は、PLC100で実行される制御プログラム111とデータを遣り取りするHMIプログラム112を実行する。IPC100は制御プログラム111を実行するとともに、当該制御プログラム111とデータを遣り取りするHMIプログラム112を実行する。したがって、IPC100は、制御装置とHMI装置200の両方の役割を有する。
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本発明の実施の形態に係るシステム1の構成を模式的に示す図である。システム1は、FAの製造装置や製造設備などの制御対象である1または複数のデバイス300、デバイス300の制御装置に相当するIPC(産業用コンピュータ)100およびPLC101、HMI装置200、および汎用コンピュータに相当するサポート装置4を備える。デバイス300は、EtherCAT(登録商標)などのネットワークを介してIPC100およびPLC101と通信する。PLC100はデバイス300の制御プログラム111を実行する。HMI装置200は、PLC100で実行される制御プログラム111とデータを遣り取りするHMIプログラム112を実行する。IPC100は制御プログラム111を実行するとともに、当該制御プログラム111とデータを遣り取りするHMIプログラム112を実行する。したがって、IPC100は、制御装置とHMI装置200の両方の役割を有する。
サポート装置4は、制御プログラム111およびHMIプログラム112を開発し、開発された制御プログラム111をIPC100およびPLC101に転送(ロード)し、また開発されたHMIプログラム112をHMI装置200に転送する。IPC100とHMI装置200は、HMIプログラム112を実行する情報処理装置の一例である。また、サポート装置4は、HMIプログラム112を構成するUI部品501を開発し、UI部品501のオブジェクトコードをIPC100およびHMI装置200に転送する。IPC100およびHMI装置200は、UI部品501に紐付けられたオブジェクトコードを格納する格納手段に相当するライブラリ113を備える。なお、この紐付けは、例えば、UI部品501のID(identification)コードを用いて実現される。
本開示では「HMIプログラム」112は、IPC100のディスプレイ117またはHMI装置200のディスプレイ214に表示させる画面に対応する1または複数のページを記載するアプリケーションプログラムである。HMIプログラム112の各ページのプログラムが実行されるとディスプレイに画面が表示される。HMIプログラム112の画面は、1または複数のUI部品501から構成される。本開示では、HMIプログラム112の実行により表示される画面を「HMI画面」とも称する。
また、「UI部品」501は、画像データ、テキストデータ、プログラムコードなどを含む。HMIプログラム112が実行されて画面が表示されるとき、UI部品501が実行されることによって、画面を構成する画面部品が表示される。画面部品は、絵、文字列などの各種オブジェクトを含む。また、UI部品501のプログラムコードが実行されることによる機能(画面部品の表示、データ入出力、操作受付などの機能)が提供される。プログラムコードは、例えばスクリプトコードを含むが、プログラムコードの種類はスクリプトコードに限定されない。UI部品501のうち画面部品を提供する部品を、GUI(グラフィカルユーザインターフェイス)部品とも称する。
「ライブラリ」113は、HMIプログラム112で利用(再利用)できるUI部品501のライブラリ(ファイル)である。ライブラリ113には、UI部品501が、IPC100またはHMI装置200で実行可能なオブジェクトコードの形式で格納される。
IPC100またはHMI装置200でHMIプログラム112が実行されると、当該HMIプログラム112を構成するUI部品501に紐付けられたオブジェクトコードがライブラリ113から呼出されて、呼出されたオブジェクトコードが実行される。これにより、ディスプレイ117,214にUI部品501を含むHMI画面が表示される。
IPC100またはHMI装置200では、UI部品501に紐づけられたオブジェクトコードを実行することで実現される機能を、HMIプログラム112の実行を停止させることなく、動的に変更することができる。
具体的には、IPC100またはHMI装置200が備えるテキストエディタ1162を用いて、UI部品501が備える機能を記述するプログラムコードであるソースコードが作成または編集される。コンパイラ1163はUI部品501のソースコードを受付けて、受付けたソースコードをコンパイルして、実行可能なオブジェクトコードを生成する。IPC100またはHMI装置200は、HMIプログラム112を実行する場合に、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイルによって生成されたオブジェクトコードおよび当該UI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方を選択する。
このように、コンパイラ1163および参照するオブジェクトコードを選択するための機能がIPC100またはHMI装置200において実装される。
これにより、IPC100またはHMI装置200で実行されるHMIプログラム112を構成するUI部品501のオブジェクトコードを変更する場合に、HMIプログラム112の実行を停止して、サポート装置4から当該オブジェクトを再ロードする必要はない。
また、IPC100またはHMI装置200では、作成または編集されたUI部品501のソースコードをコンパイルして得られたオブジェクトコードが実行された場合、ディスプレイ117(またはディスプレイ214)のHMI画面を構成する画面部品の表示態様の変化として提示することが可能となる。これにより、IPC100またはHMI装置200は、UI部品501のソースコードに関するデバッグを含む開発環境も提供し得る。
また、IPC100またはHMI装置200では、コンパイラ1163により生成されたオブジェクトコードを用いて、UI部品501に紐付けられたライブラリ113中のオブジェクトコードが上書きされる。この上書きは、例えばIPC100またはHMI装置200の再起動時などに実施され得る。これにより、UI部品501に紐付けされるオブジェクトコードを、コンパイラ1163により生成されたオブジェクトコードに変更することが可能となる。
また、上記に述べたオブジェクトコードの選択は、IPC100またはHMI装置200が受付けたユーザ操作内容を示す値が設定される入力パラメータを有した関数500が実行されることで実現され得る。関数500は、入力パラメータに設定された値に従い、コンパイラ1163により生成されたオブジェクトコードおよびUI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方の選択を指示する指令コードを有する。
コンパイラ1163により生成されたオブジェクトコードは、紐付けされたオブジェクトコードが格納される記憶領域(すなわちライブラリ113)とは異なる領域に格納される。これにより、上記のオブジェクトコードの選択は、オブジェクトコードを呼出すための参照先の記憶領域を異ならせることでも実現することができる。
また、関数500は、さらに、入力パラメータに設定された値に従いコンパイラ1163を起動させる指令コードも有する。これにより、関数500が呼出されたときに限り、コンパイラ1163を起動させることが可能となる。したがって、予めコンパイラ1163を起動させてオブジェクトコードを作成し格納しておくケースに比較して記憶領域を節約することができる。
以下、本開示のより具体的な応用例を詳細に説明する。なお、応用例では、IPC100においてHMIプログラム112を実行するケースを例に説明するが、HMI装置200においてHMIプログラム112を実行するケースであっても同様の実施例を適用することができるので、説明は繰返さない。
<B.IPC100のハードウェア構成例>
図2は、本発明の実施の形態にかかるIPC100のハードウェア構成の一例を模式的に示す図である。図2を参照して、IPC100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、外部ネットワークコントローラ116と、メモリカードインターフェイス118と、ディスプレイ117を制御する表示ドライバ119と、入力インターフェイス121と、内部バスコントローラ129と、フィールドバスコントローラ124とを含む。入力インターフェイス121は、IPC100に対するユーザ操作を受付ける操作受付部の一実施列であるキーボード122を制御する。ここでは、ディスプレイ117とキーボード122は、一体的に構成されたタッチパネルとして提供されてもよい。
図2は、本発明の実施の形態にかかるIPC100のハードウェア構成の一例を模式的に示す図である。図2を参照して、IPC100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、外部ネットワークコントローラ116と、メモリカードインターフェイス118と、ディスプレイ117を制御する表示ドライバ119と、入力インターフェイス121と、内部バスコントローラ129と、フィールドバスコントローラ124とを含む。入力インターフェイス121は、IPC100に対するユーザ操作を受付ける操作受付部の一実施列であるキーボード122を制御する。ここでは、ディスプレイ117とキーボード122は、一体的に構成されたタッチパネルとして提供されてもよい。
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラムを読み出して、メインメモリ106に展開して実行することで、デバイス300またはフィールド機器などの制御対象に対する制御処理またはHMI処理を実現する。
システムプログラム110は、データの入出力処理や実行タイミング制御などの、IPC100の基本的な機能を提供するための命令コードを含む。ユーザプログラムは、制御プログラム111、HMIプログラム112、Runtime600およびライブラリ113を含む。制御プログラム111は、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムなどを含む。Runtime600は、HMIプログラム112を実行する手段の一実施例であって、実行されるとHMIプログラム112を実行するための環境を提供する。
ライブラリ113には、UI部品501および制御プログラム111を構成する各種の関数などが、実行可能コード(例えば、中間コード)であるオブジェクトコードの態様で登録される。本実施の形態では、HMIプログラム112を構成するUI部品501は、ライブラリ113のUI部品オブジェクトコード502と紐付けされる。
フラッシュメモリ108は、さらにシステム変数、デバイス変数およびユーザ変数などを含む変数テーブル1146を格納する。プロセッサ102は、変数テーブル1146の変数に設定された制御指令値などを参照しながら制御プログラム111を実行し、デバイス300の状態値などを変数テーブル1146の変数に設定する。また、プロセッサ102は、変数テーブル1146の変数に設定された値を参照しながらHMIプログラム112を実行し、また、UI部品501の画面部品から受付けたユーザ操作内容に従う値を変数テーブル1146の変数に設定する。これにより、変数テーブル1146の変数を介して、デバイス300の状態値をUI部品501の画面部品で表示することができ、また、画面部品から受付けたユーザ操作に従う値による制御指令値を用いてデバイス300を制御することが可能となる。
また、フラッシュメモリ108は、コンパイラ1163が生成したUI部品501のオブジェクトコードであるコンパイル後オブジェクトコード701(後述する)を格納するためのオブジェクトコード格納領域E1を有する。
チップセット104は、各コンポーネントを制御することで、IPC100全体としての処理を実現する。
内部バスコントローラ129は、IPC100と内部バスを通じて連結されるI/Oユニット14との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ124は、IPC100と図示しないフィールドバスを通じて連結されるI/Oユニット16との間でデータを遣り取りするインターフェイスである。内部バスコントローラ129およびフィールドバスコントローラ124は、対応のI/Oユニット14および16にそれぞれ入力される状態値を取得するとともに、プロセッサ102での演算結果を対応のI/Oユニット14および16から制御指令値としてそれぞれ出力する。
外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。IPC100は、外部ネットワークコントローラ116またはメモリカードインターフェイス118を介してサポート装置4または他の制御装置(PLC101など)とデータを遣り取りする。
PLC100がプログラムを実行することで提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
<C.HMI装置200のハードウェア構成例>
次に、HMI装置200のハードウェア構成例について説明する。図3は、本発明の実施の形態にかかるHMI装置200のハードウェア構成の一例を模式的に示す図である。図3を参照して、HMI装置200は、据え置き型でもよく、または製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
次に、HMI装置200のハードウェア構成例について説明する。図3は、本発明の実施の形態にかかるHMI装置200のハードウェア構成の一例を模式的に示す図である。図3を参照して、HMI装置200は、据え置き型でもよく、または製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
HMI装置200は、OS(Operating System)を含む各種プログラムを実行するCPU202と、BIOS(Basic Input/Output System)や各種データを格納するROM(Read Only Memory)104と、CPU202でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM(Random Access Memory)206と、CPU202で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)208とを含む。
HMI装置200は、さらに、HMI装置200に対するユーザの操作を受付けるキーボード210およびマウス212を含む入力部211と、情報をユーザに提示するためのディスプレイ214とを含む。HMI装置200は、PLC101またはサポート装置4と通信するための通信インターフェイス218を含む。入力部211は、ディスプレイ214と一体的に構成されるタッチパネルとして提供されてもよい。
HMI装置200は、記録媒体250からそれに格納されているプログラムを読み取るための記録媒体読取装置217を含む。
<D.IPC100のソフトウェア構成>
図4は、本発明の実施の形態に係るIPC100のソフトウェア構成の一例を示す模式図である。図4を参照して、IPC100では、ハイパーバイザがIPC100のハードウェアリソースを管理するとともに、リアルタイムOS114およびWindows(登録商標)などの汎用OS1161に対して、これらのハードウェアリソースを調停しながら割当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムOS114および汎用OS1161を実行させる。すなわち、ハイパーバイザを用いて、異なる種類のOSを実行する仮想化環境を実現する。リアルタイムOS114と汎用OS1161との間は、ハイパーバイザを介して、論理的なネットワークが構成されている。
図4は、本発明の実施の形態に係るIPC100のソフトウェア構成の一例を示す模式図である。図4を参照して、IPC100では、ハイパーバイザがIPC100のハードウェアリソースを管理するとともに、リアルタイムOS114およびWindows(登録商標)などの汎用OS1161に対して、これらのハードウェアリソースを調停しながら割当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムOS114および汎用OS1161を実行させる。すなわち、ハイパーバイザを用いて、異なる種類のOSを実行する仮想化環境を実現する。リアルタイムOS114と汎用OS1161との間は、ハイパーバイザを介して、論理的なネットワークが構成されている。
リアルタイムOS114では、制御プログラム111が実行される。制御プログラム111の実行にあたって、変数マネージャ1142と、タスクスケジューラ1143と、プログラムマネージャ1144と、I/O(Input/Output)制御プログラム1145とが連係する。このような連携により、制御対象であるデバイス300からの信号(制御信号)の取得、制御ロジックの実行、実行結果の反映(アクチュエータの制御)を繰返す。制御プログラム111の実行時において、変数マネージャ1142は、I/Oユニット14または16を介して入出力する状態値または制御指令値を変数テーブル1146の変数に設定する。
一方、汎用OS1161の下では、任意のユーザアプリケーションである例えばHMIプログラム112を含むユーザアプリケーション1164、汎用アプリケーション1165、テキストエディタ1162、コンパイラ1163およびRuntime600を備える。汎用アプリケーション1165は、汎用OS1161で実行可能な標準的なアプリケーションであり、HMIプログラム112などのユーザアプリケーションと連係することで、汎用的な処理や機能を用いて、より少ない工数でシステムを構築することができる。
テキストエディタ1162は、キーボード122を介して受付けたユーザ操作に従いUI部品501のソースコードを作成または編集する。ソースコードとして、本実施の形態では、例えばJava(登録商標)スクリプトを例示するが、ソースコードの種類はスクリプトに限定されない。
コンパイラ1163は、ソースコードを受付けて、受付けたソースコードをコンパイルし、オブジェクトコードを生成する。コンパイラ1163は、フラッシュメモリ108の記憶領域からソースコード700を読出すことにより、ソースコード700を受付ける。または、フラッシュメモリ108の記憶領域に格納されるソースコード700は、テキストエディタ1162により作成または編集されたソースコードを含むが、テキストエディタ1162により作成または編集されたソースコードに限定されない。例えば、ソースコードを格納したメモリカード120から、メモリカードインターフェイス118を介して読出されたソースコードであってもよい。
これにより、後述するコンパイル後オブジェクトコード701が取得される。ソースコードがスクリプトである場合、コンパイラ1163としてスクリプトに適合したスクリプトコンパイラが適用される。
Runtime600は、HMIプログラム112の実行時に呼出し可能な関数500を備える。関数500のコードは、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびUI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502のうちの一方の選択を指示する指令コードを含む。関数500の指令コードの詳細は後述する。
<E.UI部品のオブジェクトコードの生成と選択>
図5は、本発明の実施の形態にかかるUI部品のオブジェクトコードの生成と選択の概要を模式的に示す図である。図5を参照して、IPC100の汎用OS(Windows)の下でテキストエディタ1162と、Runtime600が実行可能である。Runtime600が実行されることにより、HMIプログラム112を実行するための実行環境が提供される。実行環境の下では、コンパイラ1163を実行することができる。
図5は、本発明の実施の形態にかかるUI部品のオブジェクトコードの生成と選択の概要を模式的に示す図である。図5を参照して、IPC100の汎用OS(Windows)の下でテキストエディタ1162と、Runtime600が実行可能である。Runtime600が実行されることにより、HMIプログラム112を実行するための実行環境が提供される。実行環境の下では、コンパイラ1163を実行することができる。
図5を参照して、テキストエディタ1162は、キーボード122を介したユーザの操作内容を受付けて、受付けた操作内容に従いUI部品のスクリプトを作成または編集する。作成または編集されたスクリプトを含むソースコード700はフラッシュメモリ108の予め定められた記憶領域に格納される。
Runtime600は、キーボード122を介して予め定められたユーザ操作を受付けたときフラグ602に操作内容に従う値を設定する。フラグ602は、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびライブラリ113の中の紐付けされたUI部品オブジェクトコード502のいずれを実行するべきかを指示する値が設定される。フラグ602には、例えば「True」または「false」の値が設定される。
また、Runtime600は、HMIプログラム112を構成するUI部品501のオブジェクトコードを実行するとき、当該オブジェクトコードの実行により関数500が呼出される。Runtime600は、呼出された関数500を実行するとき、フラグ602の値を、関数500の入力パラメータの値として設定し、入力パラメータの値に基き当該関数500の指令コードを実行する。この指令コードは、Runtime600が実行可能なコードを表す。
関数500が実行される場合、入力パラメータの値に従いコンパイラ1163が起動される。コンパイラ1163が起動されると、コンパイラ1163は、対象のソースコード700を受付けて、受付けたソースコード700をコンパイルし、コンパイル後オブジェクトコード701を生成する。
コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。これにより、IPC100では、HMIプログラム112のUI部品501のオブジェクトコードとして、ライブラリ113中の紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を備えることができる。
HMIプログラム112の実行中にUI部品501を実行する場合は、関数500が実行されることにより、フラグ602に値に従い、UI部品501のオブジェクトコードとして、ライブラリ113中のUI部品501に紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701のうちの一方が選択的に読出されて実行される。
<F.関数の処理内容と指令コード>
図6は、本発明の実施の形態にかかる関数500の指令コードの内容を、オブジェクトコードの生成と選択の処理の流れと関連付けて模式的に示す図である。図7は、本発明の実施の形態にかかる関数500の指令コードの記述の一例を示す図である。図7を参照して、関数500はスクリプト形式による指令コード511~516を含む。指令コード511~516のそれぞれが実行されると、図6中に示す対応の処理P511~P516が実現される。
図6は、本発明の実施の形態にかかる関数500の指令コードの内容を、オブジェクトコードの生成と選択の処理の流れと関連付けて模式的に示す図である。図7は、本発明の実施の形態にかかる関数500の指令コードの記述の一例を示す図である。図7を参照して、関数500はスクリプト形式による指令コード511~516を含む。指令コード511~516のそれぞれが実行されると、図6中に示す対応の処理P511~P516が実現される。
図6を参照して、Windowsの実行環境のもとで各種アプリケーションを実行する.NET環境が提供される。.NET環境のもとでRuntime600を実行することによりHMIプログラムの実行環境であるHMI実行環境が提供される。HMI実行環境においては、関数500などの各種スクリプトを処理するスクリプト処理部601が動作する。
まず、スクリプト処理部601は、ディスプレイ117に表示される画面部品である切替GUI1172を介して受付けたユーザ操作内容に基づく値をフラグ602に設定する。切替GUI1172については後述する。なお、当該ユーザ操作内容は、キーボード122を介して受付けてもよい。
HMIプログラム112のUI部品501が実行されると、スクリプト処理部601が呼出される。スクリプト処理部601は関数500を実行する。
関数500が実行されると、フラグ602の値がチェックされる(処理P511)。チェックによりフラグ602は「True」と判定されると、スクリプト処理部601はコンパイラ1163を起動する。コンパイラ1163は、予め記憶されたスクリプトパス603に基づきフラッシュメモリ108からソースコード700をアクセス(抽出)する(処理P512)。コンパイラ1163は、アクセスされたソースコード700をコンパイルすることにより、コンパイル後オブジェクトコード701を生成する(処理P513)。コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。
次に、呼出し部のコードが実行される(処理P514)。呼出し部は、フラグ602の値に基き、ライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択する。スクリプト処理部601は、選択された方の記憶領域からオブジェクトコードを呼出し実行する。
これにより、スクリプト処理部601の呼出し元であるHMIプログラム112のUI部品501のオブジェクトコードが実行される。その実行結果は、例えばUI部品501による画面部品の表示態様の変更などにより出力される。
なお、図6では、スクリプト呼出し部504は、フラグ602の値に基き、紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択したが、選択の基準はフラグ602の値に限定されない。例えば、図7の指令コード514に示されるように、オブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納(ロード)されているか否かの判断に基づき、紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択するとしてもよい。
<G.処理フローチャート>
図8は、本発明の実施の形態にかかる処理の一例を示す概略フローチャートである。図8に従い処理を説明する。まず、テキストエディタ1162はキーボード122を介して受付けるユーザ操作内容に基づくスクリプト形式のソースコード700を編集または作成する(ステップS3)。ソースコード700はファイル形式でフラッシュメモリ108に格納される。
図8は、本発明の実施の形態にかかる処理の一例を示す概略フローチャートである。図8に従い処理を説明する。まず、テキストエディタ1162はキーボード122を介して受付けるユーザ操作内容に基づくスクリプト形式のソースコード700を編集または作成する(ステップS3)。ソースコード700はファイル形式でフラッシュメモリ108に格納される。
スクリプト処理部601は、ソースコード700のファイルの格納場所を示すファイルパスをスクリプトパス603に設定する(ステップS5)。また、スクリプト処理部601は、切替GUI1172を介して受付けたユーザ操作内容に従う値をフラグ602に設定する(ステップS7)。
スクリプト処理部601は、コンパイラ1163を呼出し(ステップS9)、呼出されたコンパイラ1163はスクリプトパス603に設定されたファイルパスに従い、フラッシュメモリ108からソースコード700を読出し、読出されたソースコード700をコンパイルする(ステップS11)。これにより、コンパイル後オブジェクトコード701が生成されて、オブジェクトコード格納領域E1に格納される。
なお、ステップS9におけるコンパイラ1163を呼出す時期は、HMIプログラム112の実行中にUI部品501が実行されるタイミング(時期)に限定されず、他のタイミングであってもよい。他のタイミングとしては、例えば、ソースコード700が編集または作成されたタイミング、またはユーザが指定したタイミングなどを含み得る。
スクリプト処理部601は関数500を呼出し、関数500の指令コードを実行する。まず、フラグ602の値を判定し(ステップS13)、その判定結果に基く、オブジェクトのコードの呼出しが実施される。
スクリプト処理部601は、フラグ602の値が「True」ではないと判定すると(ステップS13でNO)、スクリプト処理部601はライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502を呼出す(ステップS21)。
一方、フラグ602の値が「True」であると判定すると(ステップS13でYES)、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在するか否か、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されているかを判定する(ステップS15)。
スクリプト処理部601は、コンパイル後オブジェクトコード701が存在する、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていると判定すると(ステップS15でYES)、スクリプト処理部601はオブジェクトコード格納領域E1からコンパイル後オブジェクトコード701を呼出す(ステップS17)。
スクリプト処理部601は、コンパイル後オブジェクトコード701を呼出したとき、ディスプレイ117の切替GUI1172である画面部品を所定の表示態様に変更する(ステップS19)。これにより、ユーザに対して、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が選択されて、選択されたコンパイル後オブジェクトコード701がオブジェクトコード格納領域E1から呼出されて実行される旨の通知を出力することができる。
ステップS15に戻り、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在しない、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていないと判定すると(ステップS15でNO)、スクリプト処理部601は、UI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502を呼出すとともに、フラッシュメモリ108の読出し可能なログファイルに異常のデータを記録する(ステップS23)。
この異常のデータは、例えば、その時のフラグ602の値(「True」)と、コンパイル後オブジェクトコード701が無かった旨のデータを含む。したがって、ユーザは、その後にログファイルを出力して解析することで、異常を知ることができる。
<H.表示例>
図9は、本発明の実施の形態にかかるディスプレイ117における画面の表示例を模式的に示す図である。図9の(A)は、例えばテキストエディタ1162によりソースコード700を編集または作成する時のディスプレイ117の画面例を示す。この画面は、例えばウインドウW1とW2に分割されて、ウインドウW1にはHMIプログラム112が実行されることによるHMI画面が表示されて、ウインドウW2にはテキストエディタ1162が実行されることによるソースコード700の編集または作成の画面が表示されている。
図9は、本発明の実施の形態にかかるディスプレイ117における画面の表示例を模式的に示す図である。図9の(A)は、例えばテキストエディタ1162によりソースコード700を編集または作成する時のディスプレイ117の画面例を示す。この画面は、例えばウインドウW1とW2に分割されて、ウインドウW1にはHMIプログラム112が実行されることによるHMI画面が表示されて、ウインドウW2にはテキストエディタ1162が実行されることによるソースコード700の編集または作成の画面が表示されている。
ソースコード700の編集または作成が終了すると、ウインドウW2が消去されて、画面は、例えば図9の(B)の画面に切替わる。図9の(B)の画面においては、スクリプト処理部601により切替GUI1172と上書きGUI1173のアイコンも表示される。
切替GUI1172がユーザにより操作されると、スクリプト処理部601は切替GUI1172の操作内容を受付けて、受付けた操作内容に基づき、フラグ602に「True」または「False」を設定する。
このように、切替GUI1172から受付けたユーザ操作内容に従う値がフラグ602に設定されることにより、ソースコード700をコンパイルすることによるコンパイル後オブジェクトコード701の生成の指示、またはUI部品501のオブジェクトコードとして、紐付けられたUI部品オブジェクトコード502からコンパイル後オブジェクトコード701に切替えることの指示を、スクリプト処理部601に与えることができる。
ここで、図9の(B)は、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が実行されたHMI画面とすれば、図9の(A)の画面部品V1の表示色は、コンパイル後オブジェクトコード701が実行されることにより、図9の(B)のように別の色に変化している。ユーザは、画面部品V1の表示色が変化したことから、生成または編集したソースコード700の適否を判断する、すなわちデバッグするための判断指標を得ることができる。なお、画面部品V1の表示態様の変化は色に限定されず、例えば形状であってもよい。
これにより、サポート装置4などの開発環境を備えない環境であっても、例えば製造現場などのようにHMIプログラム112の開発環境を備えない環境であっても、HMIプログラム112を構成するUI部品501のソースコードまたはオブジェクトコードを作成または編集することで動的に変更し、変更後のコードによるHMIプログラム112の実行結果をリアルタイムにモニタすることができる。このことは、IPC100またはHMI装置200において、サポート装置4などと同様にHMIプログラム112のエディトとデバッグを含む開発環境の提供を可能にする。
図10は、本発明の実施の形態にかかる切替GUI1172の表示態様の切替えの一例を模式的に示す図である。例えば、スクリプト処理部601は、切替GUI1172のスクリプトを実行することにより、切替GUI1172の表示態様を切替える。例えば、紐付けられたUI部品オブジェクトコード502が実行される場合は、切替GUI1172は図10の(A)のように表示されて、図8のステップS19でコンパイル後オブジェクトコード701が実行される場合は、切替GUI1172は図10の(B)のように表示される。切替GUI1172の表示態様の切替えにより、ユーザに対し、紐付けられたUI部品オブジェクトコード502およびコンパイル後オブジェクトコード701のいずれが実行されるかを示す通知を出力することができる。なお、切替GUI1172の表示態様の切替えは図10の態様に限定されない。
<I.オブジェクトコードの上書き>
本発明の実施の形態では、ユーザは上書きGUI1173を操作した場合、ライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502は、オブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を用いて上書きされる。これにより、ライブラリ113のUI部品501に紐付けされたUI部品オブジェクトコード502を、サポート装置4からのオブジェクトコードのロードなしに、IPC100で生成したコンパイル後オブジェクトコード701を用いて更新することができる。この上書きを実施するタイミングは、例えば、IPC100の再起動時が含まれる。
本発明の実施の形態では、ユーザは上書きGUI1173を操作した場合、ライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502は、オブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を用いて上書きされる。これにより、ライブラリ113のUI部品501に紐付けされたUI部品オブジェクトコード502を、サポート装置4からのオブジェクトコードのロードなしに、IPC100で生成したコンパイル後オブジェクトコード701を用いて更新することができる。この上書きを実施するタイミングは、例えば、IPC100の再起動時が含まれる。
ここで、上記の(背景技術)でも述べたように、IPC100またはHMI装置200のライブラリ113内のオブジェクトコードの一部を変更する場合であっても、ライブラリ113内の全てのオブジェクトコードを配置(ロード)し直す必要があったが、本実施の形態では、このような再ロードは必要ない。すなわち、上書きGUI1173を操作することで、ライブラリ113のUI部品501に紐付けされたUI部品オブジェクトコード502のみを対象に、コンパイル後オブジェクトコード701を用いて更新(上書き)することができる。このような利点は、UI部品501のコードがブラウザアーキテクチャ(HTML(HyperText Markup Language)5/CSS(Cascading Style Sheets))で記述される環境においても同様に得ることができる。
<J.プログラム>
本実施の形態に示したIPC100においてHMIプログラム112の開発環境を提供するRuntime600は、フラッシュメモリ108などの記憶部に格納されている。プロセッサ102は、記憶部からRuntime600を読出し、メインメモリ106を構成するRAMなどに展開する。そして、プロセッサ102は、RAMに展開された当該プログラムを解釈及び実行して、IPC100の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
本実施の形態に示したIPC100においてHMIプログラム112の開発環境を提供するRuntime600は、フラッシュメモリ108などの記憶部に格納されている。プロセッサ102は、記憶部からRuntime600を読出し、メインメモリ106を構成するRAMなどに展開する。そして、プロセッサ102は、RAMに展開された当該プログラムを解釈及び実行して、IPC100の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
またRuntime600は、IPC100に付属するフレキシブルディスク、CD-ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカード120などのコンピュータ読取り可能な記憶媒体にて記録させて、プログラム製品として提供することもできる。このような記憶媒体は、プロセッサその他装置、機械などが記憶されたプログラムなどの情報を読み取り可能なように、当該プログラムなどの情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。IPC100は、この記憶媒体から、Runtime600を取得してもよい。
あるいは、Runtime600は、IPC100に内蔵する図示しないHDD(Hard Disc Drive)などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。
また、HMI装置200においても、HMIプログラム112の開発環境を提供するRuntime600が実行される。HMI装置200では、Runtime600は、HMI装置200の記憶部(HDD208、記録媒体250など)に格納されている。CPU202は、記憶部からRuntime600を読出し、RAM206などに展開する。そして、CPU202は、RAM206に展開された当該プログラムを解釈及び実行して、HMI装置200の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
このようなRuntime600はHMI装置200に付属するフレキシブルディスク、CD-ROM(Compact Disk-Read Only Memory)、ROM204、RAM206および記録媒体250などのコンピュータ読取り可能な記録媒体にて記録させて、上記に述べたIPC100の場合と同様にプログラム製品として提供することもできる。あるいは、HMI装置200に内蔵するHDD208などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。
<K.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラム(112)を実行する情報処理装置(100、200)であって、
前記HMIプログラムを構成するユーザインターフェイス(UI)部品(501)に紐付けられたオブジェクトコード(502)を格納する格納手段(113)と、
UI部品のソースコード(700)から実行可能なオブジェクトコード(701)を生成するコンパイラ(1163)と、
前記HMIプログラムを実行する手段(600)と、を備え、
前記実行する手段は、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段(601)を含む、情報処理装置。
[構成2]
前記情報処理装置に対するユーザ操作を受付ける手段(122、210)を、さらに備え、
前記選択する手段は、
受付けたユーザ操作内容を示す値が設定される入力パラメータ(602)と、前記入力パラメータに設定された値に従い、前記コンパイラにより生成されたオブジェクトコードおよび前記UI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数(500)を実行する、構成1に記載の情報処理装置。
[構成3]
前記関数は、前記UI部品から呼出される、構成2に記載の情報処理装置。
[構成4]
前記関数は、さらに、
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コード(513)を有する、構成2または3に記載の情報処理装置。
[構成5]
前記ユーザ操作を受付ける手段は、
前記情報処理装置のディスプレイに表示されるオブジェクト(1172)に対するユーザ操作を受付ける手段を含む、構成2から4のいずれか1に記載の情報処理装置。
[構成6]
前記選択する手段により選択された前記一方が、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、前記オブジェクトの表示態様を変化させる手段(S19、図10)を、さらに備える、構成5に記載の情報処理装置。
[構成7]
前記関数は、さらに、
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコード(514、516)を有する、構成2から6のいずれか1に記載の情報処理装置。
[構成8]
前記コンパイラにより生成されたオブジェクトコードが格納されているとの前記条件が満たされない場合に、その旨を記録する手段(S23)を、さらに備える、構成7に記載の情報処理装置。
[構成9]
前記コンパイラにより生成されたオブジェクトコードを用いて、前記格納手段の紐付けられたオブジェクトコードを上書きする(1173)、構成1から8のいずれか1に記載の情報処理装置。
[構成10]
前記ソースコードを作成または編集するエディタ(1162)を、さらに備える、構成1から9のいずれか1に記載の情報処理装置。
[構成11]
FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラム(112)を、コンピュータ(100、200)に実行させるためのプログラム(600)であって、
前記コンピュータは、前記HMIプログラムを構成するユーザインターフェイス(UI)部品(501)に紐付けられたオブジェクトコード(502)を格納する格納手段(113)を備え、
前記実行させるためのプログラムは、前記コンピュータに、
UI部品のソースコードから実行可能なオブジェクトコード(701)を生成するコンパイラを起動させるステップ(S9)と、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップ(S13)とを含む、プログラム。
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラム(112)を実行する情報処理装置(100、200)であって、
前記HMIプログラムを構成するユーザインターフェイス(UI)部品(501)に紐付けられたオブジェクトコード(502)を格納する格納手段(113)と、
UI部品のソースコード(700)から実行可能なオブジェクトコード(701)を生成するコンパイラ(1163)と、
前記HMIプログラムを実行する手段(600)と、を備え、
前記実行する手段は、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段(601)を含む、情報処理装置。
[構成2]
前記情報処理装置に対するユーザ操作を受付ける手段(122、210)を、さらに備え、
前記選択する手段は、
受付けたユーザ操作内容を示す値が設定される入力パラメータ(602)と、前記入力パラメータに設定された値に従い、前記コンパイラにより生成されたオブジェクトコードおよび前記UI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数(500)を実行する、構成1に記載の情報処理装置。
[構成3]
前記関数は、前記UI部品から呼出される、構成2に記載の情報処理装置。
[構成4]
前記関数は、さらに、
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コード(513)を有する、構成2または3に記載の情報処理装置。
[構成5]
前記ユーザ操作を受付ける手段は、
前記情報処理装置のディスプレイに表示されるオブジェクト(1172)に対するユーザ操作を受付ける手段を含む、構成2から4のいずれか1に記載の情報処理装置。
[構成6]
前記選択する手段により選択された前記一方が、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、前記オブジェクトの表示態様を変化させる手段(S19、図10)を、さらに備える、構成5に記載の情報処理装置。
[構成7]
前記関数は、さらに、
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコード(514、516)を有する、構成2から6のいずれか1に記載の情報処理装置。
[構成8]
前記コンパイラにより生成されたオブジェクトコードが格納されているとの前記条件が満たされない場合に、その旨を記録する手段(S23)を、さらに備える、構成7に記載の情報処理装置。
[構成9]
前記コンパイラにより生成されたオブジェクトコードを用いて、前記格納手段の紐付けられたオブジェクトコードを上書きする(1173)、構成1から8のいずれか1に記載の情報処理装置。
[構成10]
前記ソースコードを作成または編集するエディタ(1162)を、さらに備える、構成1から9のいずれか1に記載の情報処理装置。
[構成11]
FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラム(112)を、コンピュータ(100、200)に実行させるためのプログラム(600)であって、
前記コンピュータは、前記HMIプログラムを構成するユーザインターフェイス(UI)部品(501)に紐付けられたオブジェクトコード(502)を格納する格納手段(113)を備え、
前記実行させるためのプログラムは、前記コンピュータに、
UI部品のソースコードから実行可能なオブジェクトコード(701)を生成するコンパイラを起動させるステップ(S9)と、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップ(S13)とを含む、プログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 システム、4 サポート装置、100 IPC、102 プロセッサ、108 フラッシュメモリ、112 HMIプログラム、113 ライブラリ、117,214 ディスプレイ、122,210 キーボード、200 HMI装置、300 デバイス、500 関数、501 UI部品、502 UI部品オブジェクトコード、504 スクリプト呼出し部、511~516 指令コード、600 Runtime、601 スクリプト処理部、602 フラグ、603 スクリプトパス、700 ソースコード、701 コンパイル後オブジェクトコード、1162 テキストエディタ、1163 コンパイラ、E1 オブジェクトコード格納領域、1172 切替GUI、1173 上書きGUI、P511~P516 処理、V1 画面部品、W1,W2 ウインドウ。
Claims (11)
- FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを実行する情報処理装置であって、
前記HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段と、
UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラと、
前記HMIプログラムを実行する手段と、を備え、
前記実行する手段は、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段を含む、情報処理装置。 - 前記情報処理装置に対するユーザ操作を受付ける手段を、さらに備え、
前記選択する手段は、
受付けたユーザ操作内容を示す値が設定される入力パラメータと、前記入力パラメータに設定された値に従い、前記コンパイラにより生成されたオブジェクトコードおよび前記UI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数を実行する、請求項1に記載の情報処理装置。 - 前記関数は、前記UI部品から呼出される、請求項2に記載の情報処理装置。
- 前記関数は、さらに、
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コードを有する、請求項2または3に記載の情報処理装置。 - 前記ユーザ操作を受付ける手段は、
前記情報処理装置のディスプレイに表示されるオブジェクトに対するユーザ操作を受付ける手段を含む、請求項2から4のいずれか1項に記載の情報処理装置。 - 前記選択する手段により選択された前記一方が、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、前記オブジェクトの表示態様を変化させる手段を、さらに備える、請求項5に記載の情報処理装置。
- 前記関数は、さらに、
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコードを有する、請求項2から6のいずれか1項に記載の情報処理装置。 - 前記コンパイラにより生成されたオブジェクトコードが格納されているとの前記条件が満たされない場合に、その旨を記録する手段を、さらに備える、請求項7に記載の情報処理装置。
- 前記コンパイラにより生成されたオブジェクトコードを用いて、前記格納手段の紐付けられたオブジェクトコードを上書きする、請求項1から8のいずれか1項に記載の情報処理装置。
- 前記ソースコードを作成または編集するエディタを、さらに備える、請求項1から9のいずれか1項に記載の情報処理装置。
- FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを、コンピュータに実行させるためのプログラムであって、
前記コンピュータは、前記HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段を備え、
前記実行させるためのプログラムは、前記コンピュータに、
UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラを起動させるステップと、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップとを含む、プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018155926A JP6984565B2 (ja) | 2018-08-23 | 2018-08-23 | 情報処理装置およびプログラム |
JP2018-155926 | 2018-08-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020039900A1 true WO2020039900A1 (ja) | 2020-02-27 |
Family
ID=69592788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/030556 WO2020039900A1 (ja) | 2018-08-23 | 2019-08-02 | 情報処理装置およびプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6984565B2 (ja) |
WO (1) | WO2020039900A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023145362A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
WO2023145361A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021250900A1 (ja) * | 2020-06-12 | 2021-12-16 | 三菱電機株式会社 | 制御システム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016001376A (ja) * | 2014-06-11 | 2016-01-07 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置 |
JP2016224771A (ja) * | 2015-06-01 | 2016-12-28 | 富士電機株式会社 | 情報処理装置及び情報処理方法 |
JP2018045544A (ja) * | 2016-09-16 | 2018-03-22 | オムロン株式会社 | プログラム処理装置およびプログラム |
-
2018
- 2018-08-23 JP JP2018155926A patent/JP6984565B2/ja active Active
-
2019
- 2019-08-02 WO PCT/JP2019/030556 patent/WO2020039900A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016001376A (ja) * | 2014-06-11 | 2016-01-07 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置 |
JP2016224771A (ja) * | 2015-06-01 | 2016-12-28 | 富士電機株式会社 | 情報処理装置及び情報処理方法 |
JP2018045544A (ja) * | 2016-09-16 | 2018-03-22 | オムロン株式会社 | プログラム処理装置およびプログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023145362A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
WO2023145361A1 (ja) * | 2022-01-31 | 2023-08-03 | オムロン株式会社 | ロボット制御システムおよびロボット制御システムを構成する方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2020030621A (ja) | 2020-02-27 |
JP6984565B2 (ja) | 2021-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4950454B2 (ja) | テスト自動化のスタック階層化 | |
WO2020039900A1 (ja) | 情報処理装置およびプログラム | |
US20100017812A1 (en) | Deploy Anywhere Framework For Heterogeneous Mobile Application Development | |
JP2006350549A (ja) | 統合シミュレーションシステム | |
KR20070058954A (ko) | 임베디드 시스템 프로토타입 개발 지원 장치 및 방법 | |
US20100146254A1 (en) | Method for binarizing initial script on operating system and operating method of binary script | |
JP5552300B2 (ja) | 接続機器シミュレータのシーケンス制御装置、方法、及びプログラム | |
JP2007086921A (ja) | 機械装置制御プログラム実行システム | |
WO2020246097A1 (ja) | サポート装置およびサポートプログラム | |
WO2012104959A1 (ja) | モーションsfcプログラム部品作成装置 | |
US11429357B2 (en) | Support device and non-transient computer-readable recording medium recording support program | |
JP6794668B2 (ja) | プログラミング装置 | |
JP2006172128A (ja) | プログラム連携システムの処理方法および情報処理装置 | |
JP5058219B2 (ja) | シナリオ作成方法、その装置、プログラム及び記録媒体 | |
JP2009163423A (ja) | プログラム連携システム及びそのシミュレーション制御方法 | |
JP5481267B2 (ja) | 制御プログラム作成装置および制御プログラム作成装置の駆動方法 | |
JP2008033572A (ja) | 画面作成装置、画面作成プログラムおよびそれを記録した記録媒体 | |
JPH10247142A (ja) | プロセス制御プログラムのプログラミングシステムおよびプログラミング方法 | |
JP2019113952A (ja) | 情報処理装置及びプログラム | |
JP7234810B2 (ja) | サポート装置およびサポートプログラム | |
WO2024181367A1 (ja) | 環境構築支援システム、環境構築支援プログラム及び環境構築支援方法 | |
US7685585B1 (en) | Creating an explicit flow control in an implicit flow programming environment | |
JP3270729B2 (ja) | 拡張命令セット・シミュレータ | |
Lamberský et al. | Development of Simulink blockset for embedded system with complex peripherals | |
Sinkkonen | Asymmetric multiprocessing of Linux and hard real-time systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19851791 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19851791 Country of ref document: EP Kind code of ref document: A1 |