JP2020030621A - Information processing unit and program - Google Patents

Information processing unit and program Download PDF

Info

Publication number
JP2020030621A
JP2020030621A JP2018155926A JP2018155926A JP2020030621A JP 2020030621 A JP2020030621 A JP 2020030621A JP 2018155926 A JP2018155926 A JP 2018155926A JP 2018155926 A JP2018155926 A JP 2018155926A JP 2020030621 A JP2020030621 A JP 2020030621A
Authority
JP
Japan
Prior art keywords
object code
program
component
hmi
compiler
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018155926A
Other languages
Japanese (ja)
Other versions
JP6984565B2 (en
Inventor
弓束 重森
Yumitsuka Shigemori
弓束 重森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018155926A priority Critical patent/JP6984565B2/en
Priority to PCT/JP2019/030556 priority patent/WO2020039900A1/en
Publication of JP2020030621A publication Critical patent/JP2020030621A/en
Application granted granted Critical
Publication of JP6984565B2 publication Critical patent/JP6984565B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Abstract

To provide a unit for changing the object code of a UI (User Interface) component without stopping the execution of a HMI (Human Machine Interface) program.SOLUTION: An information processing unit 100, 200, comprises: storage means (library) 113 for storing object codes associated with UI components constituting the HMI program; a compiler 1163 for generating executable object code from the source code of UI parts; and means for executing the HMI program. When executing the HMI program, the means for executing selects, as an object code of a UI component constituting the HMI program, one of the object codes generated by the compiler and the object code linked to the UI component.SELECTED DRAWING: Figure 1

Description

本開示は、情報処理装置に関し、特に、プログラマブルコントローラ(以下、PLCという)などに代表されるような制御装置に適用されるヒューマンマシンインターフェイス(以下、HMIと略す)装置などの情報処理装置に関する。   The present disclosure relates to an information processing device, and particularly to an information processing device such as a human-machine interface (hereinafter abbreviated as HMI) device applied to a control device typified by a programmable controller (hereinafter, referred to as PLC).

様々な生産および製造現場において、PLCなどの制御装置を用いたFA(ファクトリオートメーション)技術が広く普及している。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などのFA機器に応じて、これらを制御するように設計された制御プログラムを実行する。また、FAの分野に適用されるHMI装置は、制御プログラムとの間で変数のデータを遣り取りするHMIプログラムを実行する。HMIプログラムが実行されることにより、FA機器の状態を表す変数のデータが、HMIプログラムを構成するUI(ユーザインターフェイス)部品を用いて表示される。また、生産管理者などのユーザがUI部品を操作して、制御プログラムが参照する変数にデータを設定することもできる。このようにHMIプログラムは、制御プログラムとの間でデータを遣り取りする機能を備える。   In various production and manufacturing sites, FA (factory automation) technology using a control device such as a PLC is widely used. 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. By executing the HMI program, variable data indicating the status of the FA device is displayed using UI (user interface) components constituting the HMI program. Further, a user such as a production manager can operate the UI parts and set data in variables referred to by the control program. As described above, the HMI program has a function of exchanging data with the control program.

このような背景のもと、製造現場では、HMIプログラムの実行を停止することなく、HMIプログラムを構成するUI部品を変更し、変更後のHMIプログラムの実行結果をその場で確認したいとの要望がある。しかし、従来は、開発環境で予め作成された実行可能なコードであるUI部品のオブジェクトコード(拡張子がexeまたはdll)群を対象のHMI装置にロードすることにより、HMI装置にHMIプログラムが提供されていたので、製造現場でUI部品を変更しようとする場合は、HMIプログラムの実行を停止して、全てのオブジェクトをHMI装置にロードしなおす必要があった。   Against this background, there is a demand at a manufacturing site to change the UI components that make up the HMI program without stopping the execution of the HMI program, and to check the execution result of the changed HMI program on the spot. There is. However, conventionally, 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.

特表2012−512489号公報JP-T-2012-512489A

特許文献1は、デバッギングのためのユーザ・スクリプト・コードの変換方法を開示するが、HMIプログラムの実行停止を伴わずに、UI部品の変更を可能にする方法は提供しない。   Patent Literature 1 discloses a method of converting a 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.

本開示は、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することができる環境を提供することを一つの目的としている。   An 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.

本開示の一例にかかる情報処理装置は、FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを実行する情報処理装置であって、HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段と、UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラと、HMIプログラムを実行する手段と、を備え、実行する手段は、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段を含む。   An information processing apparatus according to an example of the present disclosure 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. Means for selecting one of an object code generated by a compiler and an object code associated with the UI component as an object code of a UI component constituting the HMI program.

この開示によれば、情報処理装置でHMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方が選択される。これにより、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することが可能な環境が提供される。   According to this disclosure, when the information processing apparatus 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.

上述の開示において、情報処理装置に対するユーザ操作を受付ける手段を、さらに備え、選択する手段は、受付けたユーザ操作内容を示す値が設定される入力パラメータと、入力パラメータに設定された値に従い、コンパイラにより生成されたオブジェクトコードおよびUI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数を実行する。   In the above disclosure, 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.

この開示によれば、ユーザは情報処理装置に対する操作により、いずれのオブジェクトコードを選択するかを示す値を関数の入力パラメータに設定することができる。このような入力パラメータの設定値に従い、関数が実行されることにより、コンパイラにより生成されたオブジェクトコードおよびUI部品に紐付けられたオブジェクトコードのうちユーザ操作により指定された一方を選択することができる。   According to this disclosure, a 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. By executing the function according to the set values of the input parameters, 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. .

上述の開示において、関数は、UI部品から呼出される。
この開示によれば、関数は、HMIプログラムのUI部品を実行するタイミングで呼出して実行することができる。
In the above disclosure, 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.

上述の開示において、関数は、さらに、入力パラメータに設定された値に従いコンパイラの起動を指示する指令コードを有する。   In the above disclosure, the function further has a command code for instructing activation of the compiler according to the value set in the input parameter.

この開示によれば、関数を実行中にコンパイラが起動されて、コンパイラにより生成されたオブジェクトコードを取得することができる。   According to the present disclosure, a compiler is activated during execution of a function, and an object code generated by the compiler can be obtained.

上述の開示において、ユーザ操作を受付ける手段は、情報処理装置のディスプレイに表示されるオブジェクトに対するユーザ操作を受付ける手段を含む。   In the above disclosure, 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 device.

この開示によれば、ユーザは、ディスプレイに表示されるオブジェクトを操作することにより、いずれのオブジェクトコードを選択するかを示す値を関数の入力パラメータに設定することができる。   According to this disclosure, 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.

上述の開示において、選択する手段により選択された一方が、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、オブジェクトの表示態様を変化させる手段を、さらに備える。   In the above disclosure, 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. Is further provided.

この開示によれば、ユーザはディスプレイに表示されるオブジェクトを操作した場合、選択する手段により実際に選択された一方のオブジェクトが何であるかを、当該オブジェクトの表示態様の変化から確認することができる。   According to this disclosure, 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. .

上述の開示において、関数は、さらに、コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、格納手段のオブジェクトコードの選択を指令するコードを有する。   In the above disclosure, the function further has a code for instructing selection of the object code in the storage means when a condition that the object code generated by the compiler is stored is not satisfied.

この開示によれば、関数が実行されることにより、コンパイラによるオブジェクトコードが存在しないと判定される場合は紐付けられたオブジェクトコードの方を選択させることができる。   According to the present disclosure, when the function is executed and it is determined that the object code does not exist by the compiler, the linked object code can be selected.

上述の開示において、コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされない場合に、その旨を記録する手段を、さらに備える。   In the above disclosure, when the condition that the object code generated by the compiler is stored is not satisfied, the information processing apparatus further includes a unit that records that fact.

この開示によれば、関数が実行されることにより、コンパイラによるオブジェクトコードが存在しないと判定される場合は、コンパイラにより生成されたオブジェクトコードが格納されていないとの情報を記録することができる。したがって、例えば、コンパイラが起動されたにもかかわらずコンパイラにより生成されるべきオブジェクトコードが格納されていないとのケースを記録しておくことができる。   According to the present disclosure, when it is determined by execution of a function that the object code is not present by the compiler, it is possible to record information indicating that the object code generated by the compiler is not stored. 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.

上述の開示において、コンパイラにより生成されたオブジェクトコードを用いて、格納手段の紐付けられたオブジェクトコードを上書きする。   In the above disclosure, the object code linked to the storage unit is overwritten using the object code generated by the compiler.

この開示によれば、紐付けられるオブジェクトコードを、コンパイラにより生成されたオブジェクトコードを用いて上書きすることで、紐付けられるオブジェクトコードを更新することができる。   According to this disclosure, 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.

上述の開示において、情報処理装置は、ソースコードを作成または編集するエディタを、さらに備える。   In the above disclosure, the information processing device further includes an editor that creates or edits a source code.

この開示によれば、ユーザは、コンパイラによりコンパイルされるUI部品のソースコードを、エディタを用いて編集または作成することができる。   According to this disclosure, the user can edit or create the source code of the UI component compiled by the compiler using the editor.

本開示の一例によれば、FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを、コンピュータに実行させるためのプログラムが提供される。   According to an example of the present disclosure, there is provided a program for causing a computer to execute a human machine interface (HMI) program for factory automation (FA).

上記のコンピュータは、HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段を備える。上記の実行させるためのプログラムは、コンピュータに、UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラを起動させるステップと、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップとを含む。   The computer includes storage means for storing an object code associated with a user interface (UI) component constituting 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.

この開示によれば、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方が選択される。これにより、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することが可能な環境が提供される。   According to this disclosure, when an HMI program is executed, 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.

本開示の一例によれば、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更可能な環境を提供することができる。   According to an example of the present disclosure, it is possible to provide an environment in which the object code of a UI component can be changed without stopping the execution of the HMI program.

本発明の実施の形態に係るシステム1の構成を模式的に示す図である。It is a figure showing typically composition of system 1 concerning an embodiment of the invention. 本発明の実施の形態にかかるIPC100のハードウェア構成の一例を模式的に示す図である。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. 本発明の実施の形態にかかるHMI装置200のハードウェア構成の一例を模式的に示す図である。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. 本発明の実施の形態に係るIPC100のソフトウェア構成の一例を示す模式図である。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. 本発明の実施の形態にかかるUI部品のオブジェクトコードの生成と選択の概要を模式的に示す図である。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. 本発明の実施の形態にかかる関数500の指令コードの内容を、オブジェクトコードの生成と選択の流れと関連付けて模式的に示す図である。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. 本発明の実施の形態にかかる関数500の指令コードの記述の一例を示す図である。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. 本発明の実施の形態にかかるディスプレイ117における画面の表示例を模式的に示す図である。It is a figure which shows typically the example of a display of the screen on the display 117 concerning embodiment of this invention. 本発明の実施の形態にかかる切替GUI1172の表示態様の切替えの一例を模式的に示す図である。It is a figure which shows typically an example of switching of the display mode of the switching GUI1172 concerning embodiment of this invention.

本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。   Embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings have the same reference characters allotted, and description thereof will not be repeated.

<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の両方の役割を有する。
<A. Application example>
First, an example of a scene to which the present invention is applied will be described with reference to FIG. 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.

サポート装置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コードを用いて実現される。   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 linking is realized using, for example, the ID code of the UI component 501.

本開示では「HMIプログラム」112は、IPC100のディスプレイ117またはHMI装置200のディスプレイ214に表示させる画面に対応する1または複数のページを記載するアプリケーションプログラムである。HMIプログラム112の各ページのプログラムが実行されるとディスプレイに画面が表示される。HMIプログラム112の画面は、1または複数のUI部品501から構成される。本開示では、HMIプログラム112の実行により表示される画面を「HMI画面」とも称する。   In the present disclosure, 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. When the program of each page of the HMI program 112 is executed, a screen is displayed on the display. The screen of the HMI program 112 includes one or a plurality of UI components 501. In the present disclosure, a screen displayed by executing the HMI program 112 is also referred to as an “HMI screen”.

また、「UI部品」501は、画像データ、テキストデータ、プログラムコードなどを含む。HMIプログラム112が実行されて画面が表示されるとき、UI部品501が実行されることによって、画面を構成する画面部品が表示される。画面部品は、絵、文字列などの各種オブジェクトを含む。また、UI部品501のプログラムコードが実行されることによる機能(画面部品の表示、データ入出力、操作受付などの機能)が提供される。プログラムコードは、例えばスクリプトコードを含むが、プログラムコードの種類はスクリプトコードに限定されない。UI部品501のうち画面部品を提供する部品を、GUI(グラフィカルユーザインターフェイス)部品とも称する。   The “UI parts” 501 include image data, text data, program codes, and the like. When the HMI program 112 is executed to display the screen, 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. Further, functions (functions such as display of screen components, data input / output, operation acceptance, and the like) are provided by executing the program code of the UI component 501. 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.

「ライブラリ」113は、HMIプログラム112で利用(再利用)できるUI部品501のライブラリ(ファイル)である。ライブラリ113には、UI部品501が、IPC100またはHMI装置200で実行可能なオブジェクトコードの形式で格納される。   The “library” 113 is a library (file) of the UI component 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.

IPC100またはHMI装置200でHMIプログラム112が実行されると、当該HMIプログラム112を構成するUI部品501に紐付けられたオブジェクトコードがライブラリ113から呼出されて、呼出されたオブジェクトコードが実行される。これにより、ディスプレイ117,214にUI部品501を含むHMI画面が表示される。   When the HMI program 112 is executed by the IPC 100 or the HMI device 200, the object code associated with the UI component 501 constituting the HMI program 112 is called from the library 113, and the called object code is executed. As a result, the HMI screen including the UI component 501 is displayed on the displays 117 and 214.

IPC100またはHMI装置200では、UI部品501に紐づけられたオブジェクトコードを実行することで実現される機能を、HMIプログラム112の実行を停止させることなく、動的に変更することができる。   In the IPC 100 or the HMI device 200, a 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.

具体的には、IPC100またはHMI装置200が備えるテキストエディタ1162を用いて、UI部品501が備える機能を記述するプログラムコードであるソースコードが作成または編集される。コンパイラ1163はUI部品501のソースコードを受付けて、受付けたソースコードをコンパイルして、実行可能なオブジェクトコードを生成する。IPC100またはHMI装置200は、HMIプログラム112を実行する場合に、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイルによって生成されたオブジェクトコードおよび当該UI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方を選択する。   Specifically, using the text editor 1162 included in the IPC 100 or the HMI device 200, 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. When executing the HMI program 112, 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.

このように、コンパイラ1163および参照するオブジェクトコードを選択するための機能がIPC100またはHMI装置200において実装される。   As described above, 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.

これにより、IPC100またはHMI装置200で実行されるHMIプログラム112を構成するUI部品501のオブジェクトコードを変更する場合に、HMIプログラム112の実行を停止して、サポート装置4から当該オブジェクトを再ロードする必要はない。   Thus, when changing the object code of the UI component 501 constituting the HMI program 112 executed by the IPC 100 or the HMI device 200, the execution of the HMI program 112 is stopped and the object is reloaded from the support device 4. No need.

また、IPC100またはHMI装置200では、作成または編集されたUI部品501のソースコードをコンパイルして得られたオブジェクトコードが実行された場合、ディスプレイ117(またはディスプレイ214)のHMI画面を構成する画面部品の表示態様の変化として提示することが可能となる。これにより、IPC100またはHMI装置200は、UI部品501のソースコードに関するデバッグを含む開発環境も提供し得る。   Further, in 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. Thus, 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.

また、IPC100またはHMI装置200では、コンパイラ1163により生成されたオブジェクトコードを用いて、UI部品501に紐付けられたライブラリ113中のオブジェクトコードが上書きされる。この上書きは、例えばIPC100またはHMI装置200の再起動時などに実施され得る。これにより、UI部品501に紐付けされるオブジェクトコードを、コンパイラ1163により生成されたオブジェクトコードに変更することが可能となる。   In the IPC 100 or the HMI device 200, 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.

また、上記に述べたオブジェクトコードの選択は、IPC100またはHMI装置200が受付けたユーザ操作内容を示す値が設定される入力パラメータを有した関数500が実行されることで実現され得る。関数500は、入力パラメータに設定された値に従い、コンパイラ1163により生成されたオブジェクトコードおよびUI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方の選択を指示する指令コードを有する。   Further, the selection of the object code described above can be realized by executing the function 500 having the input parameter in which the value indicating the user operation content 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.

コンパイラ1163により生成されたオブジェクトコードは、紐付けされたオブジェクトコードが格納される記憶領域(すなわちライブラリ113)とは異なる領域に格納される。これにより、上記のオブジェクトコードの選択は、オブジェクトコードを呼出すための参照先の記憶領域を異ならせることでも実現することができる。   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. Thus, the selection of the object code can be realized by changing the storage area of the reference destination for calling the object code.

また、関数500は、さらに、入力パラメータに設定された値に従いコンパイラ1163を起動させる指令コードも有する。これにより、関数500が呼出されたときに限り、コンパイラ1163を起動させることが可能となる。したがって、予めコンパイラ1163を起動させてオブジェクトコードを作成し格納しておくケースに比較して記憶領域を節約することができる。   The function 500 further 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.

以下、本開示のより具体的な応用例を詳細に説明する。なお、応用例では、IPC100においてHMIプログラム112を実行するケースを例に説明するが、HMI装置200においてHMIプログラム112を実行するケースであっても同様の実施例を適用することができるので、説明は繰返さない。   Hereinafter, more specific application examples of the present disclosure will be described in detail. In the application example, a case in which the HMI program 112 is executed in the IPC 100 will be described as an example. However, the same embodiment can be applied to a case in which the HMI program 112 is executed in the HMI device 200. Is not repeated.

<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は、一体的に構成されたタッチパネルとして提供されてもよい。
<B. Example of hardware configuration of IPC 100>
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. Referring to FIG. 2, 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. Here, the display 117 and the keyboard 122 may be provided as an integrated touch panel.

プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラムを読み出して、メインメモリ106に展開して実行することで、デバイス300またはフィールド機器などの制御対象に対する制御処理またはHMI処理を実現する。   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.

システムプログラム110は、データの入出力処理や実行タイミング制御などの、IPC100の基本的な機能を提供するための命令コードを含む。ユーザプログラムは、制御プログラム111、HMIプログラム112、Runtime600およびライブラリ113を含む。制御プログラム111は、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムなどを含む。Runtime600は、HMIプログラム112を実行する手段の一実施例であって、実行されるとHMIプログラム112を実行するための環境を提供する。   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.

ライブラリ113には、UI部品501および制御プログラム111を構成する各種の関数などが、実行可能コード(例えば、中間コード)であるオブジェクトコードの態様で登録される。本実施の形態では、HMIプログラム112を構成するUI部品501は、ライブラリ113のUI部品オブジェクトコード502と紐付けされる。   In the library 113, various functions and the like 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). In the present embodiment, the UI components 501 constituting the HMI program 112 are linked with the UI component object code 502 of the library 113.

フラッシュメモリ108は、さらにシステム変数、デバイス変数およびユーザ変数などを含む変数テーブル1146を格納する。プロセッサ102は、変数テーブル1146の変数に設定された制御指令値などを参照しながら制御プログラム111を実行し、デバイス300の状態値などを変数テーブル1146の変数に設定する。また、プロセッサ102は、変数テーブル1146の変数に設定された値を参照しながらHMIプログラム112を実行し、また、UI部品501の画面部品から受付けたユーザ操作内容に従う値を変数テーブル1146の変数に設定する。これにより、変数テーブル1146の変数を介して、デバイス300の状態値をUI部品501の画面部品で表示することができ、また、画面部品から受付けたユーザ操作に従う値による制御指令値を用いてデバイス300を制御することが可能となる。   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. Thereby, 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.

また、フラッシュメモリ108は、コンパイラ1163が生成したUI部品501のオブジェクトコードであるコンパイル後オブジェクトコード701(後述する)を格納するためのオブジェクトコード格納領域E1を有する。   Further, the flash memory 108 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.

チップセット104は、各コンポーネントを制御することで、IPC100全体としての処理を実現する。   The chipset 104 realizes the processing of the entire IPC 100 by controlling each component.

内部バスコントローラ129は、IPC100と内部バスを通じて連結されるI/Oユニット14との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ124は、IPC100と図示しないフィールドバスを通じて連結されるI/Oユニット16との間でデータを遣り取りするインターフェイスである。内部バスコントローラ129およびフィールドバスコントローラ124は、対応のI/Oユニット14および16にそれぞれ入力される状態値を取得するとともに、プロセッサ102での演算結果を対応のI/Oユニット14および16から制御指令値としてそれぞれ出力する。   The internal bus controller 129 is an interface for exchanging data between the IPC 100 and the I / O unit 14 connected via 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.

外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。IPC100は、外部ネットワークコントローラ116またはメモリカードインターフェイス118を介してサポート装置4または他の制御装置(PLC101など)とデータを遣り取りする。   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.

PLC100がプログラムを実行することで提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。   Some or all of the functions provided by the PLC 100 executing the program may be implemented as dedicated hardware circuits.

<C.HMI装置200のハードウェア構成例>
次に、HMI装置200のハードウェア構成例について説明する。図3は、本発明の実施の形態にかかるHMI装置200のハードウェア構成の一例を模式的に示す図である。図3を参照して、HMI装置200は、据え置き型でもよく、または製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
<C. Example of hardware configuration of HMI device 200>
Next, an example of a hardware configuration of the HMI device 200 will be described. 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. Referring to FIG. 3, 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.

HMI装置200は、OS(Operating System)を含む各種プログラムを実行するCPU202と、BIOSや各種データを格納するROM(Read Only Memory)104と、CPU202でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM(Random Access Memory)206と、CPU202で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)208とを含む。   The HMI device 200 stores a CPU 202 that executes various programs including an OS (Operating System), a ROM (Read Only Memory) 104 that stores a BIOS and various data, and data necessary for the CPU 202 to execute the programs. And a hard disk (HDD) 208 for storing programs executed by the CPU 202 in a nonvolatile manner.

HMI装置200は、さらに、HMI装置200に対するユーザの操作を受付けるキーボード210およびマウス212を含む入力部211と、情報をユーザに提示するためのディスプレイ214とを含む。HMI装置200は、PLC101またはサポート装置4と通信するための通信インターフェイス218を含む。入力部211は、ディスプレイ214と一体的に構成されるタッチパネルとして提供されてもよい。   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.

HMI装置200は、記録媒体250からそれに格納されているプログラムを読み取るための記録媒体読取装置217を含む。   The HMI device 200 includes a recording medium reading device 217 for reading a program stored in the recording medium 250.

<D.IPC100のソフトウェア構成>
図4は、本発明の実施の形態に係るIPC100のソフトウェア構成の一例を示す模式図である。図4を参照して、IPC100では、ハイパーバイザがIPC100のハードウェアリソースを管理するとともに、リアルタイムOS114およびWindows(登録商標)などの汎用OS1161に対して、これらのハードウェアリソースを調停しながら割当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムOS114および汎用OS1161を実行させる。すなわち、ハイパーバイザを用いて、異なる種類のOSを実行する仮想化環境を実現する。リアルタイムOS114と汎用OS1161との間は、ハイパーバイザを介して、論理的なネットワークが構成されている。
<D. Software Configuration of IPC 100>
FIG. 4 is a schematic diagram showing an example of a software configuration of IPC 100 according to the embodiment of the present invention. Referring to FIG. 4, in IPC 100, 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.

リアルタイムOS114では、制御プログラム111が実行される。制御プログラム111の実行にあたって、変数マネージャ1142と、タスクスケジューラ1143と、プログラムマネージャ1144と、I/O(Input/Output)制御プログラム1145とが連係する。このような連携により、制御対象であるデバイス300からの信号の取得、制御ロジックの実行、実行結果の反映(アクチュエータの制御)を繰返す。制御プログラム111の実行時において、変数マネージャ1142は、I/Oユニット14または16を介して入出力する状態値または制御指令値を変数テーブル1146の変数に設定する。   In the real-time OS 114, the control program 111 is executed. In executing the control program 111, 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 from the device 300 to be controlled, execution of control logic, and reflection of the execution result (actuator control) are repeated. When the control program 111 is executed, 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.

一方、汎用OS1161の下では、任意のユーザアプリケーションである例えばHMIプログラム112を含むユーザアプリケーション1164、汎用アプリケーション1165、テキストエディタ1162、コンパイラ1163およびRuntime600を備える。汎用アプリケーション1165は、汎用OS1161で実行可能な標準的なアプリケーションであり、HMIプログラム112などのユーザアプリケーションと連係することで、汎用的な処理や機能を用いて、より少ない工数でシステムを構築することができる。   On the other hand, under the general-purpose OS 1161, 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. By linking with a user application such as the HMI program 112, the general-purpose application 1165 can use a general-purpose process or function to construct a system with less man-hours. Can be.

テキストエディタ1162は、キーボード122を介して受付けたユーザ操作に従いUI部品501のソースコードを作成または編集する。ソースコードとして、本実施の形態では、例えばJava(登録商標)スクリプトを例示するが、ソースコードの種類はスクリプトに限定されない。   The text editor 1162 creates or edits the source code of the UI component 501 according to a user operation received via the keyboard 122. In the present embodiment, a Java (registered trademark) script is exemplified as the source code, but the type of the source code is not limited to the script.

コンパイラ1163は、ソースコードを受付けて、受付けたソースコードをコンパイルし、オブジェクトコードを生成する。コンパイラ1163は、フラッシュメモリ108の記憶領域からソースコード700を読出すことにより、ソースコード700を受付ける。または、フラッシュメモリ108の記憶領域に格納されるソースコード700は、テキストエディタ1162により作成または編集されたソースコードを含むが、テキストエディタ1162により作成または編集されたソースコードに限定されない。例えば、ソースコードを格納したメモリカード120から、メモリカードインターフェイス118を介して読出されたソースコードであってもよい。   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. Alternatively, 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. For example, the source code may be read from the memory card 120 storing the source code via the memory card interface 118.

これにより、コンパイル後オブジェクトコード701が取得される。ソースコードがスクリプトである場合、コンパイラ1163としてスクリプトに適合したスクリプトコンパイラが適用される。   As a result, the compiled object code 701 is obtained. When the source code is a script, a script compiler suitable for the script is applied as the compiler 1163.

Runtime600は、HMIプログラム112の実行時に呼出し可能な関数500を備える。関数500のコードは、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびUI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502のうちの一方の選択を指示する指令コードを含む。関数500の指令コードの詳細は後述する。   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.

<E.UI部品のオブジェクトコードの生成と選択>
図5は、本発明の実施の形態にかかるUI部品のオブジェクトコードの生成と選択の概要を模式的に示す図である。図5を参照して、IPC100の汎用OS(Windows)の下でテキストエディタ1162と、Runtaime600が実行可能である。Runtime600が実行されることにより、HMIプログラム112を実行するための実行環境が提供される。実行環境の下では、コンパイラ1163を実行することができる。
<E. Generation and Selection of UI Component Object Code>
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. Referring to FIG. 5, text editor 1162 and Runtaime 600 can be executed under a general-purpose OS (Windows) of IPC 100. When 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.

図5を参照して、テキストエディタ1162は、キーボード122を介したユーザの操作内容を受付けて、受付けた操作内容に従いUI部品のスクリプトを作成または編集する。作成または編集されたスクリプトを含むソースコード700はフラッシュメモリ108の予め定められた記憶領域に格納される。   Referring to FIG. 5, text editor 1162 receives a user operation content via keyboard 122 and creates or edits a UI component script according to the received operation content. The source code 700 including the created or edited script is stored in a predetermined storage area of the flash memory 108.

Runtime600は、キーボード122を介して予め定められたユーザ操作を受付けたときフラグ602に操作内容に従う値を設定する。フラグ602は、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびライブラリ113の中の紐付けされたUI部品オブジェクトコード502のいずれを実行するべきかを指示する値が設定される。フラグ602には、例えば「True」または「false」の値が設定される。   When receiving a predetermined user operation via the keyboard 122, the Runtime 600 sets a value according to the operation content in the flag 602. 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.

また、Runtime600は、HMIプログラム112を構成するUI部品501のオブジェクトコードを実行するとき、当該オブジェクトコードの実行により関数500が呼出される。Runtime600は、呼出された関数500を実行するとき、フラグ602の値を、関数500の入力パラメータの値として設定し、入力パラメータの値に基き当該関数500の指令コードを実行する。この指令コードは、Runtime600が実行可能なコードを表す。   In addition, when 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. When executing the called function 500, 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.

関数500が実行される場合、入力パラメータの値に従いコンパイラ1163が起動される。コンパイラ1163が起動されると、コンパイラ1163は、対象のソースコード700を受付けて、受付けたソースコード700をコンパイルし、コンパイル後オブジェクトコード701を生成する。   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.

コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。これにより、IPC100では、HMIプログラム112のUI部品501のオブジェクトコードとして、ライブラリ113中の紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を備えることができる。   The compiled object code 701 is stored in the object code storage area E1 of the flash memory 108. Thus, 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.

HMIプログラム112の実行中にUI部品501を実行する場合は、関数500が実行されることにより、フラグ602に値に従い、UI部品501のオブジェクトコードとして、ライブラリ113中のUI部品501に紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701のうちの一方が選択的に読出されて実行される。   When the UI component 501 is executed during the execution 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.

<F.関数の処理内容と指令コード>
図6は、本発明の実施の形態にかかる関数500の指令コードの内容を、オブジェクトコードの生成と選択の流れと関連付けて模式的に示す図である。図7は、本発明の実施の形態にかかる関数500の指令コードの記述の一例を示す図である。図7を参照して、関数500はスクリプト形式による指令コード511〜516を含む。指令コード511〜516のそれぞれが実行されると、図6中に示す対応の処理P511〜P516が実現される。
<F. Function processing contents and command codes>
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 object code generation and selection. 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 instruction codes 511 to 516 in a script format. When each of the command codes 511 to 516 is executed, corresponding processes P511 to P516 shown in FIG. 6 are realized.

図6を参照して、Windowsの実行環境のもとで各種アプリケーションを実行する.NET環境が提供される。.NET環境のもとでRuntime600を実行することによりHMIプログラムの実行環境であるHMI実行環境が提供される。HMI実行環境においては、関数500などの各種スクリプトを処理するスクリプト処理部601が動作する。   Referring to FIG. 6, a .NET environment for executing various applications under a Windows execution environment is provided. By executing Runtime 600 under the .NET environment, an HMI execution environment, which is an execution environment of the HMI program, is provided. In the HMI execution environment, a script processing unit 601 that processes various scripts such as the function 500 operates.

まず、スクリプト処理部601は、ディスプレイ117に表示される画面部品である切替GUI1172を介して受付けたユーザ操作内容に基づく値をフラグ602に設定する。切替GUI1172については後述する。なお、当該ユーザ操作内容は、キーボード122を介して受付けてもよい。   First, 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.

HMIプログラム112のUI部品501が実行されると、スクリプト処理部601が呼出される。スクリプト処理部601は関数500を実行する。   When the UI component 501 of the HMI program 112 is executed, the script processing unit 601 is called. The script processing unit 601 executes the function 500.

関数500が実行されると、フラグ602の値がチェックされる(処理P511)。チェックによりフラグ602は「True」と判定されると、スクリプト処理部601はコンパイラ1163を起動する。コンパイラ1163は、予め記憶されたスクリプトパス603に基づきフラッシュメモリ108からソースコード700をアクセス(抽出)する(処理P512)。コンパイラ1163は、アクセスされたソースコード700をコンパイルすることにより、コンパイル後オブジェクトコード701を生成する(処理P513)。コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。   When the function 500 is executed, the value of the flag 602 is checked (process P511). When the flag 602 is determined to be “True” by the check, 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.

次に、呼出し部のコードが実行される(処理P514)。呼出し部は、フラグ602の値に基き、ライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択する。スクリプト処理部601は、選択された方の記憶領域からオブジェクトコードを呼出し実行する。   Next, the code of the calling unit is executed (process P514). Based on the value of the flag 602, 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.

これにより、スクリプト処理部601の呼出し元であるHMIプログラム112のUI部品501のオブジェクトコードが実行される。その実行結果は、例えばUI部品501による画面部品の表示態様の変更などにより出力される。   As a result, 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.

なお、図6では、スクリプト呼出し部504は、フラグ602の値に基き、紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択したが、選択の基準はフラグ602の値に限定されない。例えば、図7の指令コード514に示されるように、オブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納(ロード)されているか否かの判断に基づき、紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択するとしてもよい。   In FIG. 6, 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.

<G.処理フローチャート>
図8は、本発明の実施の形態にかかる処理の一例を示す概略フローチャートである。図8に従い処理を説明する。まず、テキストエディタ1162はキーボード122を介して受付けるユーザ操作内容に基づくスクリプト形式のソースコード700を編集または作成する(ステップS3)。ソースコード700はファイル形式でフラッシュメモリ108に格納される。
<G. Processing flowchart>
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.

スクリプト処理部601は、ソースコード700のファイルの格納場所を示すファイルパスをスクリプトパス603に設定する(ステップS5)。また、スクリプト処理部601は、切替GUI1172を介して受付けたユーザ操作内容に従う値をフラグ602に設定する(ステップS7)。   The script processing unit 601 sets a 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).

スクリプト処理部601は、コンパイラ1163を呼出し(ステップS9)、呼出されたコンパイラ1163はスクリプトパス603に設定されたファイルパスに従い、フラッシュメモリ108からソースコード700を読出し、読出されたソースコード700をコンパイルする(ステップS11)。これにより、コンパイル後オブジェクトコード701が生成されて、オブジェクトコード格納領域E1に格納される。   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.

なお、ステップS9におけるコンパイラ1163を呼出す時期は、HMIプログラム112の実行中にUI部品501が実行されるタイミング(時期)に限定されず、他のタイミングであってもよい。他のタイミングとしては、例えば、ソースコード700が編集または作成されたタイミング、またはユーザが指定したタイミングなどを含み得る。   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.

スクリプト処理部601は関数500を呼出し、関数500の指令コードを実行する。まず、フラグ602の値を判定し(ステップS13)、その判定結果に基く、オブジェクトのコードの呼出しが実施される。   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.

スクリプト処理部601は、フラグ602の値が「True」ではないと判定すると(ステップS13でNO)、スクリプト処理部601はライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502を呼出す(ステップS21)。   When 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).

一方、フラグ602の値が「True」であると判定すると(ステップS13でYES)、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在するか否か、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されているかを判定する(ステップS15)。   On the other hand, when determining that the value of the flag 602 is “True” (YES in step S13), 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).

スクリプト処理部601は、コンパイル後オブジェクトコード701が存在する、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていると判定すると(ステップS15でYES)、スクリプト処理部601はオブジェクトコード格納領域E1からコンパイル後オブジェクトコード701を呼出す(ステップS17)。   If 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).

スクリプト処理部601は、コンパイル後オブジェクトコード701を呼出したとき、ディスプレイ117の切替GUI1172である画面部品を所定の表示態様に変更する(ステップS19)。これにより、ユーザに対して、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が選択されて、オブジェクトコード格納領域E1から呼出されて実行される旨の通知を出力することができる。   When calling up the compiled object code 701, the script processing unit 601 changes the screen component, which is the switching GUI 1172 of the display 117, to a predetermined display mode (step S19). Thus, it is possible to output a notification to the user that the compiled object code 701 is selected as the object code of the UI component 501 and is called from the object code storage area E1 and executed.

ステップS15に戻り、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在しない、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていないと判定すると(ステップS15でNO)、スクリプト処理部601は、UI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502を呼出すとともに、フラッシュメモリ108の読出し可能なログファイルに異常のデータを記録する(ステップS23)。   Returning to 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).

この異常のデータは、例えば、その時のフラグ602の値(「True」)と、コンパイル後オブジェクトコード701が無かった旨のデータを含む。したがって、ユーザは、その後にログファイルを出力して解析することで、異常を知ることができる。   The abnormal data includes, for example, the value of the flag 602 (“True”) at that time and data indicating that the compiled object code 701 is not present. Therefore, the user can know the abnormality by subsequently outputting and analyzing the log file.

<H.表示例>
図9は、本発明の実施の形態にかかるディスプレイ117における画面の表示例を模式的に示す図である。図9(A)は、例えばテキストエディタ1162によりソースコード700を編集または作成する時のディスプレイ117の画面例を示す。この画面は、例えばウインドウW1とW2に分割されて、ウインドウW1にはHMIプログラム112が実行されることによるHMI画面が表示されて、ウインドウW2にはテキストエディタ1162が実行されることによるソースコード700の編集または作成の画面が表示されている。
<H. Display example>
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.

ソースコード700の編集または作成が終了すると、ウインドウW2が消去されて、画面は、例えば図9(B)に切替わる。図9(B)の画面においては、スクリプト処理部601により切替GUI1172と上書きGUI1173のアイコンも表示される。   When the editing or creation of the source code 700 is completed, the window W2 is deleted, and the screen is switched to, for example, FIG. 9B. 9B, the script processing unit 601 also displays the icons of the switching GUI 1172 and the overwriting GUI 1173.

切替GUI1172がユーザにより操作されると、スクリプト処理部601は切替GUI1172の操作内容を受付けて、受付けた操作内容に基づき、フラグ602に「True」または「False」を設定する。   When the switching GUI 1172 is operated by the user, 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.

このように、切替GUI1172から受付けたユーザ操作内容に従う値がフラグ602に設定されることにより、ソースコード700をコンパイルすることによるコンパイル後オブジェクトコード701の生成の指示、またはUI部品501のオブジェクトコードとして、紐付けられたUI部品オブジェクトコード502からコンパイル後オブジェクトコード701に切替えることの指示を、スクリプト処理部601に与えることができる。   As described above, 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.

ここで、図9(B)は、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が実行されたHMI画面とすれば、図9(A)の画面部品V1の表示色は、コンパイル後オブジェクトコード701が実行されることにより、図9(B)のように別の色に変化している。ユーザは、画面部品V1の表示色が変化したことから、生成または編集したソースコード700の適否を判断する、すなわちデバッグするための判断指標を得ることができる。なお、画面部品V1の表示態様の変化は色に限定されず、例えば形状であってもよい。   Here, if the HMI screen in which the post-compiled object code 701 is executed as the object code of the UI part 501 is shown in FIG. 9B, the display color of the screen part V1 in FIG. By executing 701, the color has changed to another color as shown in FIG. 9B. 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.

これにより、サポート装置4などの開発環境を備えない環境であっても、例えば製造現場などのようにHMIプログラム112の開発環境を備えない環境であっても、HMIプログラム112を構成するUI部品501のソースコードまたはオブジェクトコードを作成または編集することで動的に変更し、変更後のコードによるHMIプログラム112の実行結果をリアルタイムにモニタすることができる。このことは、IPC100またはHMI装置200において、サポート装置4などと同様にHMIプログラム112のエディトとデバッグを含む開発環境の提供を可能にする。   Thus, even in an environment that does not have a development environment such as the support device 4 or an environment that does not have a development environment of the HMI program 112 such as a manufacturing site, for example, the UI parts 501 that configure the HMI program 112 can be used. Of the HMI program 112 can be dynamically changed by creating or editing the source code or the 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.

図10は、本発明の実施の形態にかかる切替GUI1172の表示態様の切替えの一例を模式的に示す図である。例えば、スクリプト処理部601は、切替GUI1172のスクリプトを実行することにより、切替GUI1172の表示態様を切替える。例えば、紐付けられたUI部品オブジェクトコード502が実行される場合は、切替GUI1172の図10(A)のように表示されて、図8のステップS19でコンパイル後オブジェクトコード701が実行される場合は、切替GUI1172は図10(B)のように表示される。切替GUI1172の表示態様の切替えにより、ユーザに対し、紐付けられたUI部品オブジェクトコード502およびコンパイル後オブジェクトコード701のいずれが実行されるかを示す通知を出力することができる。なお、切替GUI1172の表示態様の切替えは図10の態様に限定されない。   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. For example, the script processing unit 601 switches the display mode of the switching GUI 1172 by executing the script of the switching GUI 1172. For example, when the linked UI parts object code 502 is executed, it is displayed as shown in FIG. 10A of the switching GUI 1172, and when the compiled object code 701 is executed in step S19 of FIG. , The switching GUI 1172 is displayed as shown in FIG. By switching the display mode of the switching GUI 1172, it is possible to output to the user a notification indicating which of the linked UI component object code 502 and the compiled object code 701 is to be executed. The switching of the display mode of the switching GUI 1172 is not limited to the mode of FIG.

<I.オブジェクトコードの上書き>
本発明の実施の形態では、ユーザは上書きGUI1173を操作した場合、ライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502は、オブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を用いて上書きされる。これにより、ライブラリ113のUI部品501に紐付けされたUI部品オブジェクトコード502を、サポート装置4からのオブジェクトコードのロードなしに、IPC100で生成したコンパイル後オブジェクトコード701を用いて更新することができる。この上書きを実施するタイミングは、例えば、IPC100の再起動時が含まれる。
<I. Overwriting Object Code>
In the embodiment of the present invention, when the user operates the overwrite GUI 1173, 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. Thus, 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.

ここで、上記の(背景技術)でも述べたように、IPC100またはHMI装置200のライブラリ113内のオブジェクトコードの一部を変更する場合であっても、ライブラリ113内の全てのオブジェクトコードを配置(ロード)し直す必要があったが、本実施の形態では、このような再ロードは必要ない。すなわち、上書きGUI1173を操作することで、ライブラリ113のUI部品501に紐付けされたUI部品オブジェクトコード502のみを対象に、コンパイル後オブジェクトコード701を用いて更新(上書き)することができる。このような利点は、UI部品501のコードがブラウザアーキテクチャ(HTML(HyperText Markup Language)5/CSS(Cascading Style Sheets))で記述される環境においても同様に得ることができる。   Here, as described in the above (background art), even when a part of the object code in the library 113 of the IPC 100 or the HMI device 200 is changed, all the object codes in the library 113 are arranged ( Although it was necessary to reload), in the present embodiment, such reloading is not necessary. That is, by operating the overwrite GUI 1173, it is possible to update (overwrite) only the UI component object code 502 linked to the UI component 501 of the library 113 using the compiled object code 701. Such an advantage can be obtained in an environment where the code of the UI component 501 is described in a browser architecture (HyperText Markup Language (HTML) 5 / Cascading Style Sheets (CSS)).

<J.プログラム>
本実施の形態に示したIPC100においてHMIプログラム112の開発環境を提供するRuntime600は、フラッシュメモリ108などの記憶部に格納されている。プロセッサ102は、記憶部からRuntime600を読出し、メインメモリ106を構成するRAMなどに展開する。そして、プロセッサ102は、RAMに展開された当該プログラムを解釈及び実行して、IPC100の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
<J. Program>
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.

またRuntime600は、IPC100に付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカード120などのコンピュータ読取り可能な記憶媒体にて記録させて、プログラム製品として提供することもできる。このような記憶媒体は、プロセッサその他装置、機械などが記憶されたプログラムなどの情報を読み取り可能なように、当該プログラムなどの情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。IPC100は、この記憶媒体から、Runtime600を取得してもよい。   The Runtime 600 must be recorded on a computer-readable storage medium such as a flexible disk, a compact disk-read only memory (CD-ROM), a ROM, a RAM, and a memory card 120 attached to the IPC 100 and provided as a program product. You can also. Such 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.

あるいは、Runtime600は、IPC100に内蔵する図示しないHDD(Hard Disc Drive)などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。   Alternatively, 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 a program. Also, the program can be provided by downloading from a network (not shown) via a communication interface.

また、HMI装置200においても、HMIプログラム112の開発環境を提供するRuntime600が実行される。HMI装置200では、Runtime600は、HMI装置200の記憶部(HDD208、記録媒体250など)に格納されている。CPU202は、記憶部からRuntime600を読出し、RAM206などに展開する。そして、CPU202は、RAM206に展開された当該プログラムを解釈及び実行して、HMI装置200の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。   Also, in the HMI device 200, a Runtime 600 that provides a development environment for the HMI program 112 is executed. In the HMI device 200, 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.

このようなRuntime600はHMI装置200に付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM204、RAM206および記録媒体250などのコンピュータ読取り可能な記録媒体にて記録させて、上記に述べたIPC100の場合と同様にプログラム製品として提供することもできる。あるいは、HMI装置200に内蔵するHDD208などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。   Such 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. As in the case of the IPC 100, it can be provided as a program product. Alternatively, the program can be provided by recording on a recording medium such as the HDD 208 built in the HMI device 200. Also, the program can be provided by downloading from a network (not shown) via a communication interface.

<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)とを含む、プログラム。
<K. Appendix>
The present embodiment as described above includes the following technical ideas.
[Configuration 1] An information processing apparatus (100, 200) 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).
[Configuration 2]
Means (122, 210) for receiving a user operation on the information processing apparatus,
The means for selecting
An input parameter (602) in which a value indicating the content of the received user operation is set, and an object code generated by the compiler and an object code linked to the UI component in accordance with the value set in the input parameter The information processing device according to configuration 1, wherein the information processing device executes a function (500) having a command code for instructing one of the following.
[Configuration 3]
The information processing device according to configuration 2, wherein the function is called from the UI component.
[Configuration 4]
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.
[Configuration 5]
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:
[Configuration 7]
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.
[Configuration 8]
The information processing device according to configuration 7, further comprising: a unit (S23) for recording, when the condition that the object code generated by the compiler is stored is not satisfied, that fact is not satisfied.
[Configuration 9]
The information processing apparatus according to any one of Configurations 1 to 8, wherein the object code associated with the storage unit is overwritten using the object code generated by the compiler (1173).
[Configuration 10]
10. The information processing device according to any one of Configurations 1 to 9, further comprising an editor (1162) for creating or editing the source code.
[Configuration 11]
A program (600) for causing a computer (100, 200) to execute a human machine interface (HMI) program (112) for factory automation (FA),
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);
A step of, when executing the HMI program, 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 included in the HMI program ( S13).

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiments disclosed this time are to be considered in all respects as illustrative and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

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 ウインドウ。   1 system, 4 support devices, 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 parts, 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 overwriting GUI, P511 to P516 processing, V1 screen component, W1, W2 Window.

Claims (11)

FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを実行する情報処理装置であって、
前記HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段と、
UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラと、
前記HMIプログラムを実行する手段と、を備え、
前記実行する手段は、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段を含む、情報処理装置。
An information processing apparatus for executing a human machine interface (HMI) program for factory automation (FA),
Storage means for storing an object code associated with a user interface (UI) component constituting the HMI program;
A compiler that generates an executable object code from the source code of the UI component;
Means 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 linked to the UI component as an object code of a UI component constituting the HMI program when the HMI program is executed. Information processing device, including.
前記情報処理装置に対するユーザ操作を受付ける手段を、さらに備え、
前記選択する手段は、
受付けたユーザ操作内容を示す値が設定される入力パラメータと、前記入力パラメータに設定された値に従い、前記コンパイラにより生成されたオブジェクトコードおよび前記UI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数を実行する、請求項1に記載の情報処理装置。
Means for receiving a user operation on the information processing apparatus, further comprising:
The means for selecting
An input parameter in which a value indicating the content of the received user operation is set, and one of an object code generated by the compiler and an object code linked to the UI component in accordance with the value set in the input parameter The information processing device according to claim 1, wherein the information processing device executes a function having a command code for instructing selection.
前記関数は、前記UI部品から呼出される、請求項2に記載の情報処理装置。   The information processing apparatus according to claim 2, wherein the function is called from the UI component. 前記関数は、さらに、
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コードを有する、請求項2または3に記載の情報処理装置。
The function further comprises:
The information processing apparatus according to claim 2, further comprising a command code for instructing activation of the compiler in accordance with a value set in the input parameter.
前記ユーザ操作を受付ける手段は、
前記情報処理装置のディスプレイに表示されるオブジェクトに対するユーザ操作を受付ける手段を含む、請求項2から4のいずれか1項に記載の情報処理装置。
The means for receiving the user operation includes:
The information processing apparatus according to claim 2, further comprising a unit configured to receive a user operation performed on an object displayed on a display of the information processing apparatus.
前記選択する手段により選択された前記一方が、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、前記オブジェクトの表示態様を変化させる手段を、さらに備える、請求項5に記載の情報処理装置。   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 The information processing apparatus according to claim 5, further comprising: 前記関数は、さらに、
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコードを有する、請求項2から6のいずれか1項に記載の情報処理装置。
The function further comprises:
7. The apparatus according to claim 2, further comprising a code for instructing the storage unit to select the object code when a condition that the object code generated by the compiler is stored is not satisfied. Information processing device.
前記コンパイラにより生成されたオブジェクトコードが格納されているとの前記条件が満たされない場合に、その旨を記録する手段を、さらに備える、請求項7に記載の情報処理装置。   The information processing apparatus according to claim 7, further comprising: a unit that, when the condition that the object code generated by the compiler is stored is not satisfied, records the fact. 前記コンパイラにより生成されたオブジェクトコードを用いて、前記格納手段の紐付けられたオブジェクトコードを上書きする、請求項1から8のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the object code associated with the storage unit is overwritten using an object code generated by the compiler. 前記ソースコードを作成または編集するエディタを、さらに備える、請求項1から9のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising an editor that creates or edits the source code. FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを、コンピュータに実行させるためのプログラムであって、
前記コンピュータは、前記HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段を備え、
前記実行させるためのプログラムは、前記コンピュータに、
UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラを起動させるステップと、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップとを含む、プログラム。
A program for causing a computer to execute a human machine interface (HMI) program for factory automation (FA),
The computer includes storage means for storing an object code associated with a user interface (UI) component constituting the HMI program,
The program to be executed is executed by the computer,
Activating a compiler that generates an executable object code from the source code of the UI component;
When executing the HMI program, 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; The program, including.
JP2018155926A 2018-08-23 2018-08-23 Information processing equipment and programs Active JP6984565B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018155926A JP6984565B2 (en) 2018-08-23 2018-08-23 Information processing equipment and programs
PCT/JP2019/030556 WO2020039900A1 (en) 2018-08-23 2019-08-02 Information processing apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018155926A JP6984565B2 (en) 2018-08-23 2018-08-23 Information processing equipment and programs

Publications (2)

Publication Number Publication Date
JP2020030621A true JP2020030621A (en) 2020-02-27
JP6984565B2 JP6984565B2 (en) 2021-12-22

Family

ID=69592788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018155926A Active JP6984565B2 (en) 2018-08-23 2018-08-23 Information processing equipment and programs

Country Status (2)

Country Link
JP (1) JP6984565B2 (en)
WO (1) WO2020039900A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021250900A1 (en) * 2020-06-12 2021-12-16 三菱電機株式会社 Control system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023111377A (en) * 2022-01-31 2023-08-10 オムロン株式会社 Robot control system and method for configuring robot control system
JP2023111378A (en) * 2022-01-31 2023-08-10 オムロン株式会社 Robot control system and method of configuring robot control system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016001376A (en) * 2014-06-11 2016-01-07 富士電機株式会社 Programmable controller system, and support device of the same
JP2016224771A (en) * 2015-06-01 2016-12-28 富士電機株式会社 Information processing device and information processing method
JP2018045544A (en) * 2016-09-16 2018-03-22 オムロン株式会社 Program processing apparatus and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016001376A (en) * 2014-06-11 2016-01-07 富士電機株式会社 Programmable controller system, and support device of the same
JP2016224771A (en) * 2015-06-01 2016-12-28 富士電機株式会社 Information processing device and information processing method
JP2018045544A (en) * 2016-09-16 2018-03-22 オムロン株式会社 Program processing apparatus and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021250900A1 (en) * 2020-06-12 2021-12-16 三菱電機株式会社 Control system

Also Published As

Publication number Publication date
JP6984565B2 (en) 2021-12-22
WO2020039900A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
US8769553B2 (en) Deploy anywhere framework for heterogeneous mobile application development
WO2020039900A1 (en) Information processing apparatus and program
KR100808257B1 (en) Apparatus and Method for prototype development of embedded system
US8448151B2 (en) Method for binarizing initial script on operating system and operating method of binary script
JP5552300B2 (en) Sequence control apparatus, method, and program for connected device simulator
JP2007086921A (en) Machinery control program execution system
KR20030027790A (en) General-purpose software development support system
CN112328225A (en) Page operation method and operation system thereof
US11429357B2 (en) Support device and non-transient computer-readable recording medium recording support program
JP2006172128A (en) Processing method and information processing device for program cooperation system
JP2020060855A (en) Development support program, development support device, and development support method
JP6794668B2 (en) Programming device
JP2009223471A (en) Simulation system
JP5058219B2 (en) Scenario creation method, apparatus, program, and recording medium
JP4925514B2 (en) Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system
JP2009163423A (en) Program cooperation system and simulation control method therefor
JPH10247142A (en) System and method for programming process control program
JP2011165051A (en) Development support device, method and program
JP2011227823A (en) Control program creation apparatus and method for driving the same
US7685585B1 (en) Creating an explicit flow control in an implicit flow programming environment
JP3270729B2 (en) Extended instruction set simulator
Sinkkonen Asymmetric multiprocessing of Linux and hard real-time systems
Harel et al. Capturing and executing behavioral requirements: the play-in/play-out approach
JP2023128052A (en) information processing system
JP2000250777A (en) Information processor, information processing method and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211013

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211108

R150 Certificate of patent or registration of utility model

Ref document number: 6984565

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150