JP2020030621A - Information processing unit and program - Google Patents
Information processing unit and program Download PDFInfo
- 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
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
Abstract
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.
特許文献1は、デバッギングのためのユーザ・スクリプト・コードの変換方法を開示するが、HMIプログラムの実行停止を伴わずに、UI部品の変更を可能にする方法は提供しない。
本開示は、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.
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。 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
サポート装置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
本開示では「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
また、「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
「ライブラリ」113は、HMIプログラム112で利用(再利用)できるUI部品501のライブラリ(ファイル)である。ライブラリ113には、UI部品501が、IPC100またはHMI装置200で実行可能なオブジェクトコードの形式で格納される。
The “library” 113 is a library (file) of the
IPC100またはHMI装置200でHMIプログラム112が実行されると、当該HMIプログラム112を構成するUI部品501に紐付けられたオブジェクトコードがライブラリ113から呼出されて、呼出されたオブジェクトコードが実行される。これにより、ディスプレイ117,214にUI部品501を含むHMI画面が表示される。
When the
IPC100またはHMI装置200では、UI部品501に紐づけられたオブジェクトコードを実行することで実現される機能を、HMIプログラム112の実行を停止させることなく、動的に変更することができる。
In the
具体的には、IPC100またはHMI装置200が備えるテキストエディタ1162を用いて、UI部品501が備える機能を記述するプログラムコードであるソースコードが作成または編集される。コンパイラ1163はUI部品501のソースコードを受付けて、受付けたソースコードをコンパイルして、実行可能なオブジェクトコードを生成する。IPC100またはHMI装置200は、HMIプログラム112を実行する場合に、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイルによって生成されたオブジェクトコードおよび当該UI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方を選択する。
Specifically, using the
このように、コンパイラ1163および参照するオブジェクトコードを選択するための機能がIPC100またはHMI装置200において実装される。
As described above, the function for selecting the
これにより、IPC100またはHMI装置200で実行されるHMIプログラム112を構成するUI部品501のオブジェクトコードを変更する場合に、HMIプログラム112の実行を停止して、サポート装置4から当該オブジェクトを再ロードする必要はない。
Thus, when changing the object code of the
また、IPC100またはHMI装置200では、作成または編集されたUI部品501のソースコードをコンパイルして得られたオブジェクトコードが実行された場合、ディスプレイ117(またはディスプレイ214)のHMI画面を構成する画面部品の表示態様の変化として提示することが可能となる。これにより、IPC100またはHMI装置200は、UI部品501のソースコードに関するデバッグを含む開発環境も提供し得る。
Further, in the
また、IPC100またはHMI装置200では、コンパイラ1163により生成されたオブジェクトコードを用いて、UI部品501に紐付けられたライブラリ113中のオブジェクトコードが上書きされる。この上書きは、例えばIPC100またはHMI装置200の再起動時などに実施され得る。これにより、UI部品501に紐付けされるオブジェクトコードを、コンパイラ1163により生成されたオブジェクトコードに変更することが可能となる。
In the
また、上記に述べたオブジェクトコードの選択は、IPC100またはHMI装置200が受付けたユーザ操作内容を示す値が設定される入力パラメータを有した関数500が実行されることで実現され得る。関数500は、入力パラメータに設定された値に従い、コンパイラ1163により生成されたオブジェクトコードおよびUI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方の選択を指示する指令コードを有する。
Further, the selection of the object code described above can be realized by executing the
コンパイラ1163により生成されたオブジェクトコードは、紐付けされたオブジェクトコードが格納される記憶領域(すなわちライブラリ113)とは異なる領域に格納される。これにより、上記のオブジェクトコードの選択は、オブジェクトコードを呼出すための参照先の記憶領域を異ならせることでも実現することができる。
The object code generated by the
また、関数500は、さらに、入力パラメータに設定された値に従いコンパイラ1163を起動させる指令コードも有する。これにより、関数500が呼出されたときに限り、コンパイラ1163を起動させることが可能となる。したがって、予めコンパイラ1163を起動させてオブジェクトコードを作成し格納しておくケースに比較して記憶領域を節約することができる。
The
以下、本開示のより具体的な応用例を詳細に説明する。なお、応用例では、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
<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
FIG. 2 is a diagram schematically illustrating an example of a hardware configuration of the
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラムを読み出して、メインメモリ106に展開して実行することで、デバイス300またはフィールド機器などの制御対象に対する制御処理またはHMI処理を実現する。
The
システムプログラム110は、データの入出力処理や実行タイミング制御などの、IPC100の基本的な機能を提供するための命令コードを含む。ユーザプログラムは、制御プログラム111、HMIプログラム112、Runtime600およびライブラリ113を含む。制御プログラム111は、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムなどを含む。Runtime600は、HMIプログラム112を実行する手段の一実施例であって、実行されるとHMIプログラム112を実行するための環境を提供する。
The
ライブラリ113には、UI部品501および制御プログラム111を構成する各種の関数などが、実行可能コード(例えば、中間コード)であるオブジェクトコードの態様で登録される。本実施の形態では、HMIプログラム112を構成するUI部品501は、ライブラリ113のUI部品オブジェクトコード502と紐付けされる。
In the
フラッシュメモリ108は、さらにシステム変数、デバイス変数およびユーザ変数などを含む変数テーブル1146を格納する。プロセッサ102は、変数テーブル1146の変数に設定された制御指令値などを参照しながら制御プログラム111を実行し、デバイス300の状態値などを変数テーブル1146の変数に設定する。また、プロセッサ102は、変数テーブル1146の変数に設定された値を参照しながらHMIプログラム112を実行し、また、UI部品501の画面部品から受付けたユーザ操作内容に従う値を変数テーブル1146の変数に設定する。これにより、変数テーブル1146の変数を介して、デバイス300の状態値をUI部品501の画面部品で表示することができ、また、画面部品から受付けたユーザ操作に従う値による制御指令値を用いてデバイス300を制御することが可能となる。
The
また、フラッシュメモリ108は、コンパイラ1163が生成したUI部品501のオブジェクトコードであるコンパイル後オブジェクトコード701(後述する)を格納するためのオブジェクトコード格納領域E1を有する。
Further, the
チップセット104は、各コンポーネントを制御することで、IPC100全体としての処理を実現する。
The
内部バスコントローラ129は、IPC100と内部バスを通じて連結されるI/Oユニット14との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ124は、IPC100と図示しないフィールドバスを通じて連結されるI/Oユニット16との間でデータを遣り取りするインターフェイスである。内部バスコントローラ129およびフィールドバスコントローラ124は、対応のI/Oユニット14および16にそれぞれ入力される状態値を取得するとともに、プロセッサ102での演算結果を対応のI/Oユニット14および16から制御指令値としてそれぞれ出力する。
The
外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。IPC100は、外部ネットワークコントローラ116またはメモリカードインターフェイス118を介してサポート装置4または他の制御装置(PLC101など)とデータを遣り取りする。
The
PLC100がプログラムを実行することで提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
Some or all of the functions provided by the
<C.HMI装置200のハードウェア構成例>
次に、HMI装置200のハードウェア構成例について説明する。図3は、本発明の実施の形態にかかるHMI装置200のハードウェア構成の一例を模式的に示す図である。図3を参照して、HMI装置200は、据え置き型でもよく、または製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
<C. Example of hardware configuration of
Next, an example of a hardware configuration of the
HMI装置200は、OS(Operating System)を含む各種プログラムを実行するCPU202と、BIOSや各種データを格納するROM(Read Only Memory)104と、CPU202でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM(Random Access Memory)206と、CPU202で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)208とを含む。
The
HMI装置200は、さらに、HMI装置200に対するユーザの操作を受付けるキーボード210およびマウス212を含む入力部211と、情報をユーザに提示するためのディスプレイ214とを含む。HMI装置200は、PLC101またはサポート装置4と通信するための通信インターフェイス218を含む。入力部211は、ディスプレイ214と一体的に構成されるタッチパネルとして提供されてもよい。
The
HMI装置200は、記録媒体250からそれに格納されているプログラムを読み取るための記録媒体読取装置217を含む。
The
<D.IPC100のソフトウェア構成>
図4は、本発明の実施の形態に係るIPC100のソフトウェア構成の一例を示す模式図である。図4を参照して、IPC100では、ハイパーバイザがIPC100のハードウェアリソースを管理するとともに、リアルタイムOS114およびWindows(登録商標)などの汎用OS1161に対して、これらのハードウェアリソースを調停しながら割当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムOS114および汎用OS1161を実行させる。すなわち、ハイパーバイザを用いて、異なる種類のOSを実行する仮想化環境を実現する。リアルタイムOS114と汎用OS1161との間は、ハイパーバイザを介して、論理的なネットワークが構成されている。
<D. Software Configuration of
FIG. 4 is a schematic diagram showing an example of a software configuration of
リアルタイムOS114では、制御プログラム111が実行される。制御プログラム111の実行にあたって、変数マネージャ1142と、タスクスケジューラ1143と、プログラムマネージャ1144と、I/O(Input/Output)制御プログラム1145とが連係する。このような連携により、制御対象であるデバイス300からの信号の取得、制御ロジックの実行、実行結果の反映(アクチュエータの制御)を繰返す。制御プログラム111の実行時において、変数マネージャ1142は、I/Oユニット14または16を介して入出力する状態値または制御指令値を変数テーブル1146の変数に設定する。
In the real-
一方、汎用OS1161の下では、任意のユーザアプリケーションである例えばHMIプログラム112を含むユーザアプリケーション1164、汎用アプリケーション1165、テキストエディタ1162、コンパイラ1163およびRuntime600を備える。汎用アプリケーション1165は、汎用OS1161で実行可能な標準的なアプリケーションであり、HMIプログラム112などのユーザアプリケーションと連係することで、汎用的な処理や機能を用いて、より少ない工数でシステムを構築することができる。
On the other hand, under the general-
テキストエディタ1162は、キーボード122を介して受付けたユーザ操作に従いUI部品501のソースコードを作成または編集する。ソースコードとして、本実施の形態では、例えばJava(登録商標)スクリプトを例示するが、ソースコードの種類はスクリプトに限定されない。
The
コンパイラ1163は、ソースコードを受付けて、受付けたソースコードをコンパイルし、オブジェクトコードを生成する。コンパイラ1163は、フラッシュメモリ108の記憶領域からソースコード700を読出すことにより、ソースコード700を受付ける。または、フラッシュメモリ108の記憶領域に格納されるソースコード700は、テキストエディタ1162により作成または編集されたソースコードを含むが、テキストエディタ1162により作成または編集されたソースコードに限定されない。例えば、ソースコードを格納したメモリカード120から、メモリカードインターフェイス118を介して読出されたソースコードであってもよい。
The
これにより、コンパイル後オブジェクトコード701が取得される。ソースコードがスクリプトである場合、コンパイラ1163としてスクリプトに適合したスクリプトコンパイラが適用される。
As a result, the compiled
Runtime600は、HMIプログラム112の実行時に呼出し可能な関数500を備える。関数500のコードは、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびUI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502のうちの一方の選択を指示する指令コードを含む。関数500の指令コードの詳細は後述する。
The
<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,
図5を参照して、テキストエディタ1162は、キーボード122を介したユーザの操作内容を受付けて、受付けた操作内容に従いUI部品のスクリプトを作成または編集する。作成または編集されたスクリプトを含むソースコード700はフラッシュメモリ108の予め定められた記憶領域に格納される。
Referring to FIG. 5,
Runtime600は、キーボード122を介して予め定められたユーザ操作を受付けたときフラグ602に操作内容に従う値を設定する。フラグ602は、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびライブラリ113の中の紐付けされたUI部品オブジェクトコード502のいずれを実行するべきかを指示する値が設定される。フラグ602には、例えば「True」または「false」の値が設定される。
When receiving a predetermined user operation via the
また、Runtime600は、HMIプログラム112を構成するUI部品501のオブジェクトコードを実行するとき、当該オブジェクトコードの実行により関数500が呼出される。Runtime600は、呼出された関数500を実行するとき、フラグ602の値を、関数500の入力パラメータの値として設定し、入力パラメータの値に基き当該関数500の指令コードを実行する。この指令コードは、Runtime600が実行可能なコードを表す。
In addition, when the
関数500が実行される場合、入力パラメータの値に従いコンパイラ1163が起動される。コンパイラ1163が起動されると、コンパイラ1163は、対象のソースコード700を受付けて、受付けたソースコード700をコンパイルし、コンパイル後オブジェクトコード701を生成する。
When the
コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。これにより、IPC100では、HMIプログラム112のUI部品501のオブジェクトコードとして、ライブラリ113中の紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を備えることができる。
The compiled
HMIプログラム112の実行中にUI部品501を実行する場合は、関数500が実行されることにより、フラグ602に値に従い、UI部品501のオブジェクトコードとして、ライブラリ113中のUI部品501に紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701のうちの一方が選択的に読出されて実行される。
When the
<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
図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
まず、スクリプト処理部601は、ディスプレイ117に表示される画面部品である切替GUI1172を介して受付けたユーザ操作内容に基づく値をフラグ602に設定する。切替GUI1172については後述する。なお、当該ユーザ操作内容は、キーボード122を介して受付けてもよい。
First, the script processing unit 601 sets a value based on the user operation content received via the
HMIプログラム112のUI部品501が実行されると、スクリプト処理部601が呼出される。スクリプト処理部601は関数500を実行する。
When the
関数500が実行されると、フラグ602の値がチェックされる(処理P511)。チェックによりフラグ602は「True」と判定されると、スクリプト処理部601はコンパイラ1163を起動する。コンパイラ1163は、予め記憶されたスクリプトパス603に基づきフラッシュメモリ108からソースコード700をアクセス(抽出)する(処理P512)。コンパイラ1163は、アクセスされたソースコード700をコンパイルすることにより、コンパイル後オブジェクトコード701を生成する(処理P513)。コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。
When the
次に、呼出し部のコードが実行される(処理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
これにより、スクリプト処理部601の呼出し元であるHMIプログラム112のUI部品501のオブジェクトコードが実行される。その実行結果は、例えばUI部品501による画面部品の表示態様の変更などにより出力される。
As a result, the object code of the
なお、図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
<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
スクリプト処理部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
スクリプト処理部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
なお、ステップS9におけるコンパイラ1163を呼出す時期は、HMIプログラム112の実行中にUI部品501が実行されるタイミング(時期)に限定されず、他のタイミングであってもよい。他のタイミングとしては、例えば、ソースコード700が編集または作成されたタイミング、またはユーザが指定したタイミングなどを含み得る。
The timing at which the
スクリプト処理部601は関数500を呼出し、関数500の指令コードを実行する。まず、フラグ602の値を判定し(ステップS13)、その判定結果に基く、オブジェクトのコードの呼出しが実施される。
The script processing unit 601 calls the
スクリプト処理部601は、フラグ602の値が「True」ではないと判定すると(ステップS13でNO)、スクリプト処理部601はライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502を呼出す(ステップS21)。
When the script processing unit 601 determines that the value of the
一方、フラグ602の値が「True」であると判定すると(ステップS13でYES)、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在するか否か、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されているかを判定する(ステップS15)。
On the other hand, when determining that the value of the
スクリプト処理部601は、コンパイル後オブジェクトコード701が存在する、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていると判定すると(ステップS15でYES)、スクリプト処理部601はオブジェクトコード格納領域E1からコンパイル後オブジェクトコード701を呼出す(ステップS17)。
If the script processing unit 601 determines that the compiled
スクリプト処理部601は、コンパイル後オブジェクトコード701を呼出したとき、ディスプレイ117の切替GUI1172である画面部品を所定の表示態様に変更する(ステップS19)。これにより、ユーザに対して、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が選択されて、オブジェクトコード格納領域E1から呼出されて実行される旨の通知を出力することができる。
When calling up the compiled
ステップ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
この異常のデータは、例えば、その時のフラグ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
<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
ソースコード700の編集または作成が終了すると、ウインドウW2が消去されて、画面は、例えば図9(B)に切替わる。図9(B)の画面においては、スクリプト処理部601により切替GUI1172と上書きGUI1173のアイコンも表示される。
When the editing or creation of the
切替GUI1172がユーザにより操作されると、スクリプト処理部601は切替GUI1172の操作内容を受付けて、受付けた操作内容に基づき、フラグ602に「True」または「False」を設定する。
When the
このように、切替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
ここで、図9(B)は、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が実行されたHMI画面とすれば、図9(A)の画面部品V1の表示色は、コンパイル後オブジェクトコード701が実行されることにより、図9(B)のように別の色に変化している。ユーザは、画面部品V1の表示色が変化したことから、生成または編集したソースコード700の適否を判断する、すなわちデバッグするための判断指標を得ることができる。なお、画面部品V1の表示態様の変化は色に限定されず、例えば形状であってもよい。
Here, if the HMI screen in which the
これにより、サポート装置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
図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
<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
ここで、上記の(背景技術)でも述べたように、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
<J.プログラム>
本実施の形態に示したIPC100においてHMIプログラム112の開発環境を提供するRuntime600は、フラッシュメモリ108などの記憶部に格納されている。プロセッサ102は、記憶部からRuntime600を読出し、メインメモリ106を構成するRAMなどに展開する。そして、プロセッサ102は、RAMに展開された当該プログラムを解釈及び実行して、IPC100の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
<J. Program>
またRuntime600は、IPC100に付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカード120などのコンピュータ読取り可能な記憶媒体にて記録させて、プログラム製品として提供することもできる。このような記憶媒体は、プロセッサその他装置、機械などが記憶されたプログラムなどの情報を読み取り可能なように、当該プログラムなどの情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。IPC100は、この記憶媒体から、Runtime600を取得してもよい。
The
あるいは、Runtime600は、IPC100に内蔵する図示しないHDD(Hard Disc Drive)などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。
Alternatively, the
また、HMI装置200においても、HMIプログラム112の開発環境を提供するRuntime600が実行される。HMI装置200では、Runtime600は、HMI装置200の記憶部(HDD208、記録媒体250など)に格納されている。CPU202は、記憶部からRuntime600を読出し、RAM206などに展開する。そして、CPU202は、RAM206に展開された当該プログラムを解釈及び実行して、HMI装置200の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
Also, in the
このような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)とを含む、プログラム。
<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 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 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 9]
The information processing apparatus according to any one of
[Configuration 10]
10. The information processing device according to any one of
[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)
前記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.
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コードを有する、請求項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.
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコードを有する、請求項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.
前記コンピュータは、前記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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021250900A1 (en) * | 2020-06-12 | 2021-12-16 | 三菱電機株式会社 | Control system |
Families Citing this family (2)
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)
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 |
-
2018
- 2018-08-23 JP JP2018155926A patent/JP6984565B2/en active Active
-
2019
- 2019-08-02 WO PCT/JP2019/030556 patent/WO2020039900A1/en active Application Filing
Patent Citations (3)
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)
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 |