JP6984565B2 - Information processing equipment and programs - Google Patents
Information processing equipment and programs Download PDFInfo
- Publication number
- JP6984565B2 JP6984565B2 JP2018155926A JP2018155926A JP6984565B2 JP 6984565 B2 JP6984565 B2 JP 6984565B2 JP 2018155926 A JP2018155926 A JP 2018155926A JP 2018155926 A JP2018155926 A JP 2018155926A JP 6984565 B2 JP6984565 B2 JP 6984565B2
- 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.)
- Active
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 OR CALCULATING; 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Programmable Controllers (AREA)
Description
本開示は、情報処理装置に関し、特に、プログラマブルコントローラ(以下、PLCという)などに代表されるような制御装置に適用されるヒューマンマシンインターフェイス(以下、HMIと略す)装置などの情報処理装置に関する。 The present disclosure relates to an information processing device, and more particularly to an information processing device such as a human-machine interface (hereinafter abbreviated as HMI) device applied to a control device such as a programmable controller (hereinafter referred to as PLC).
様々な生産および製造現場において、PLCなどの制御装置を用いたFA(ファクトリオートメーション)技術が広く普及している。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などのFA機器に応じて、これらを制御するように設計された制御プログラムを実行する。また、FAの分野に適用されるHMI装置は、制御プログラムとの間で変数のデータを遣り取りするHMIプログラムを実行する。HMIプログラムが実行されることにより、FA機器の状態を表す変数のデータが、HMIプログラムを構成するUI(ユーザインターフェイス)部品を用いて表示される。また、生産管理者などのユーザがUI部品を操作して、制御プログラムが参照する変数にデータを設定することもできる。このようにHMIプログラムは、制御プログラムとの間でデータを遣り取りする機能を備える。 FA (factory automation) technology using a control device such as a PLC is widely used in various production and manufacturing sites. 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. Further, the HMI device applied in the field of FA executes an HMI program for exchanging variable data with a control program. When the HMI program is executed, the data of the variable representing the state of the FA device is displayed by using the UI (user interface) component constituting the HMI program. In addition, a user such as a production manager can operate UI parts to set data in variables referenced by a control program. In this way, 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, at the manufacturing site, there is a desire to change the UI parts that make up the HMI program and check the execution result of the changed HMI program on the spot without stopping the execution of the HMI program. There is. However, conventionally, the HMI program is provided to the HMI device by loading the object code (extension exe or dll) of the UI component, which is the executable code created in advance in the development environment, into the target HMI device. Therefore, when trying to change the UI parts at the manufacturing site, it was necessary to stop the execution of the HMI program and reload all the objects into the HMI device.
特許文献1は、デバッギングのためのユーザ・スクリプト・コードの変換方法を開示するが、HMIプログラムの実行停止を伴わずに、UI部品の変更を可能にする方法は提供しない。
本開示は、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することができる環境を提供することを一つの目的としている。 One object of the present disclosure is to provide an environment in which the object code of a UI component can be changed without stopping the execution of the HMI program.
本開示の一例にかかる情報処理装置は、FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを実行する情報処理装置であって、HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段と、UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラと、HMIプログラムを実行する手段と、を備え、実行する手段は、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段を含む。 The information processing device according to an example of the present disclosure is an information processing device that executes a human machine interface (HMI) program for FA (factory automation), and is associated with a user interface (UI) component constituting the HMI program. A storage means for storing the stored object code, a compiler for generating executable object code from the source code of the UI component, and a means for executing the HMI program are provided, and the means for executing the HMI program is when the HMI program is executed. Includes means for selecting one of the object code generated by the compiler and the object code associated with the UI component as the object code of the UI component constituting the HMI program.
この開示によれば、情報処理装置でHMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方が選択される。これにより、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することが可能な環境が提供される。 According to this disclosure, when an HMI program is executed by an information processing apparatus, the object code of the UI component constituting the HMI program is the object code generated by the compiler and the object code associated with the UI component. 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 means for further providing and selecting the means for accepting the user operation for the information processing apparatus is the compiler according to the input parameter in which the value indicating the received user operation content is set and the value set in the input parameter. Executes a function having a command code indicating the selection of one of the object code generated by and the object code associated with the UI component.
この開示によれば、ユーザは情報処理装置に対する操作により、いずれのオブジェクトコードを選択するかを示す値を関数の入力パラメータに設定することができる。このような入力パラメータの設定値に従い、関数が実行されることにより、コンパイラにより生成されたオブジェクトコードおよびUI部品に紐付けられたオブジェクトコードのうちユーザ操作により指定された一方を選択することができる。 According to this disclosure, the user can set a value indicating which object code to select in the input parameter of the function by operating the information processing apparatus. By executing the function according to the set value of such an input parameter, it is possible to select one of the object code generated by the compiler and the object code associated with the UI component specified by the user operation. ..
上述の開示において、関数は、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 instructing the compiler to start according to the values set in the input parameters.
この開示によれば、関数を実行中にコンパイラが起動されて、コンパイラにより生成されたオブジェクトコードを取得することができる。 According to this disclosure, the compiler can be invoked while the function is being executed to retrieve the object code generated by the compiler.
上述の開示において、ユーザ操作を受付ける手段は、情報処理装置のディスプレイに表示されるオブジェクトに対するユーザ操作を受付ける手段を含む。 In the above disclosure, the means for accepting user operations includes means for accepting user operations for an object displayed on the display of the information processing apparatus.
この開示によれば、ユーザは、ディスプレイに表示されるオブジェクトを操作することにより、いずれのオブジェクトコードを選択するかを示す値を関数の入力パラメータに設定することができる。 According to this disclosure, the user can set a value indicating which object code to select in the input parameter of the function by manipulating the object displayed on the display.
上述の開示において、選択する手段により選択された一方が、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、オブジェクトの表示態様を変化させる手段を、さらに備える。 In the above disclosure, a means for changing the display mode of an object according to whether one of the selected means is an object code generated by a compiler or an object code associated with the UI component. Further prepare.
この開示によれば、ユーザはディスプレイに表示されるオブジェクトを操作した場合、選択する手段により実際に選択された一方のオブジェクトが何であるかを、当該オブジェクトの表示態様の変化から確認することができる。 According to this disclosure, when the user manipulates an object displayed on the display, it is possible to confirm what is one of the objects actually selected by the means of selection from the change in the display mode of the object. ..
上述の開示において、関数は、さらに、コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、格納手段のオブジェクトコードの選択を指令するコードを有する。 In the above disclosure, the function further has code that directs the selection of the object code of the storage means when the condition that the object code generated by the compiler is stored is not satisfied.
この開示によれば、関数が実行されることにより、コンパイラによるオブジェクトコードが存在しないと判定される場合は紐付けられたオブジェクトコードの方を選択させることができる。 According to this disclosure, when the function is executed and the compiler determines that the object code does not exist, the associated object code can be selected.
上述の開示において、コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされない場合に、その旨を記録する手段を、さらに備える。 In the above disclosure, if the condition that the object code generated by the compiler is stored is not satisfied, a means for recording to that effect is further provided.
この開示によれば、関数が実行されることにより、コンパイラによるオブジェクトコードが存在しないと判定される場合は、コンパイラにより生成されたオブジェクトコードが格納されていないとの情報を記録することができる。したがって、例えば、コンパイラが起動されたにもかかわらずコンパイラにより生成されるべきオブジェクトコードが格納されていないとのケースを記録しておくことができる。 According to this disclosure, when it is determined that the object code by the compiler does not exist by executing the function, it is possible to record the information 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 started.
上述の開示において、コンパイラにより生成されたオブジェクトコードを用いて、格納手段の紐付けられたオブジェクトコードを上書きする。 In the above disclosure, the object code generated by the compiler is used to overwrite the object code associated with the storage means.
この開示によれば、紐付けられるオブジェクトコードを、コンパイラにより生成されたオブジェクトコードを用いて上書きすることで、紐付けられるオブジェクトコードを更新することができる。 According to this disclosure, the associated object code can be updated by overwriting the associated object code with the object code generated by the compiler.
上述の開示において、情報処理装置は、ソースコードを作成または編集するエディタを、さらに備える。 In the above disclosure, the information processing apparatus further comprises an editor for creating or editing 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 an editor.
本開示の一例によれば、FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを、コンピュータに実行させるためのプログラムが提供される。 According to an example of the present disclosure, a program for causing a computer to execute a human-machine interface (HMI) program for FA (factory automation) is provided.
上記のコンピュータは、HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段を備える。上記の実行させるためのプログラムは、コンピュータに、UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラを起動させるステップと、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップとを含む。 The above-mentioned computer includes a storage means for storing an object code associated with a user interface (UI) component that constitutes an HMI program. The above program for execution includes the step of invoking a compiler that generates executable object code from the source code of the UI component on the computer, and the UI component that constitutes the HMI program when the HMI program is executed. The object code includes a step of selecting one of the object code generated by the compiler and the object code associated with the UI component.
この開示によれば、HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方が選択される。これにより、HMIプログラムの実行を停止することなく、UI部品のオブジェクトコードを変更することが可能な環境が提供される。 According to this disclosure, when executing an HMI program, as the object code of the UI component constituting the HMI program, one of the object code generated by the compiler and the object code associated with the UI component is used. Be 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 the 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 are designated by the same reference numerals and the 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 situation in 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 more pages corresponding to a screen to be displayed on the
また、「UI部品」501は、画像データ、テキストデータ、プログラムコードなどを含む。HMIプログラム112が実行されて画面が表示されるとき、UI部品501が実行されることによって、画面を構成する画面部品が表示される。画面部品は、絵、文字列などの各種オブジェクトを含む。また、UI部品501のプログラムコードが実行されることによる機能(画面部品の表示、データ入出力、操作受付などの機能)が提供される。プログラムコードは、例えばスクリプトコードを含むが、プログラムコードの種類はスクリプトコードに限定されない。UI部品501のうち画面部品を提供する部品を、GUI(グラフィカルユーザインターフェイス)部品とも称する。
Further, the "UI component" 501 includes image data, text data, a program code, and the like. When the
「ライブラリ」113は、HMIプログラム112で利用(再利用)できるUI部品501のライブラリ(ファイル)である。ライブラリ113には、UI部品501が、IPC100またはHMI装置200で実行可能なオブジェクトコードの形式で格納される。
The "library" 113 is a library (file) of
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, the source code, which is the program code for describing the functions included in the
このように、コンパイラ1163および参照するオブジェクトコードを選択するための機能がIPC100またはHMI装置200において実装される。
In this way, the
これにより、IPC100またはHMI装置200で実行されるHMIプログラム112を構成するUI部品501のオブジェクトコードを変更する場合に、HMIプログラム112の実行を停止して、サポート装置4から当該オブジェクトを再ロードする必要はない。
As a result, when 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により生成されたオブジェクトコードに変更することが可能となる。
Further, 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, the case where 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. IPC100 hardware configuration example>
FIG. 2 is a diagram schematically showing an example of the 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. Hardware configuration example of
Next, a hardware configuration example 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. IPC100 software configuration>
FIG. 4 is a schematic diagram showing an example of the software configuration of the IPC100 according to the embodiment of the present invention. With reference to FIG. 4, in the IPC100, the hypervisor manages the hardware resources of the IPC100 and allocates these hardware resources to the real-time OS114 and the general-purpose OS1161 such as Windows (registered trademark) while arbitrating. Then, the real-
リアルタイム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
Runtime600は、HMIプログラム112の実行時に呼出し可能な関数500を備える。関数500のコードは、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびUI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502のうちの一方の選択を指示する指令コードを含む。関数500の指令コードの詳細は後述する。
<E.UI部品のオブジェクトコードの生成と選択>
図5は、本発明の実施の形態にかかるUI部品のオブジェクトコードの生成と選択の概要を模式的に示す図である。図5を参照して、IPC100の汎用OS(Windows)の下でテキストエディタ1162と、Runtaime600が実行可能である。Runtime600が実行されることにより、HMIプログラム112を実行するための実行環境が提供される。実行環境の下では、コンパイラ1163を実行することができる。
<E. Generating and selecting object code for UI parts>
FIG. 5 is a diagram schematically showing an outline of generation and selection of an object code of a UI component according to an embodiment of the present invention. With reference to FIG. 5, the
図5を参照して、テキストエディタ1162は、キーボード122を介したユーザの操作内容を受付けて、受付けた操作内容に従いUI部品のスクリプトを作成または編集する。作成または編集されたスクリプトを含むソースコード700はフラッシュメモリ108の予め定められた記憶領域に格納される。
With reference to FIG. 5, the
Runtime600は、キーボード122を介して予め定められたユーザ操作を受付けたときフラグ602に操作内容に従う値を設定する。フラグ602は、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびライブラリ113の中の紐付けされたUI部品オブジェクトコード502のいずれを実行するべきかを指示する値が設定される。フラグ602には、例えば「True」または「false」の値が設定される。
The
また、Runtime600は、HMIプログラム112を構成するUI部品501のオブジェクトコードを実行するとき、当該オブジェクトコードの実行により関数500が呼出される。Runtime600は、呼出された関数500を実行するとき、フラグ602の値を、関数500の入力パラメータの値として設定し、入力パラメータの値に基き当該関数500の指令コードを実行する。この指令コードは、Runtime600が実行可能なコードを表す。
Further, when the
関数500が実行される場合、入力パラメータの値に従いコンパイラ1163が起動される。コンパイラ1163が起動されると、コンパイラ1163は、対象のソースコード700を受付けて、受付けたソースコード700をコンパイルし、コンパイル後オブジェクトコード701を生成する。
When the
コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。これにより、IPC100では、HMIプログラム112のUI部品501のオブジェクトコードとして、ライブラリ113中の紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を備えることができる。
After compilation, the
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 details and command code>
FIG. 6 is a diagram schematically showing the contents of the command code of the
図6を参照して、Windowsの実行環境のもとで各種アプリケーションを実行する.NET環境が提供される。.NET環境のもとでRuntime600を実行することによりHMIプログラムの実行環境であるHMI実行環境が提供される。HMI実行環境においては、関数500などの各種スクリプトを処理するスクリプト処理部601が動作する。
With reference to FIG. 6, a .NET environment for executing various applications under the Windows execution environment is provided. By executing
まず、スクリプト処理部601は、ディスプレイ117に表示される画面部品である切替GUI1172を介して受付けたユーザ操作内容に基づく値をフラグ602に設定する。切替GUI1172については後述する。なお、当該ユーザ操作内容は、キーボード122を介して受付けてもよい。
First, the script processing unit 601 sets 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 calling of the associated UI component object code 502 (processing P516) and the calling of the compiled object code 701 (processing 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 showing an example of the process according to the embodiment of the present invention. The process 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 of calling 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, if it is determined that the value of the
スクリプト処理部601は、コンパイル後オブジェクトコード701が存在する、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていると判定すると(ステップS15でYES)、スクリプト処理部601はオブジェクトコード格納領域E1からコンパイル後オブジェクトコード701を呼出す(ステップS17)。
When the script processing unit 601 determines that the
スクリプト処理部601は、コンパイル後オブジェクトコード701を呼出したとき、ディスプレイ117の切替GUI1172である画面部品を所定の表示態様に変更する(ステップS19)。これにより、ユーザに対して、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が選択されて、オブジェクトコード格納領域E1から呼出されて実行される旨の通知を出力することができる。
When the
ステップS15に戻り、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在しない、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていないと判定すると(ステップS15でNO)、スクリプト処理部601は、UI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502を呼出すとともに、フラッシュメモリ108の読出し可能なログファイルに異常のデータを記録する(ステップS23)。
Returning to step S15, when the script processing unit 601 determines that the
この異常のデータは、例えば、その時のフラグ602の値(「True」)と、コンパイル後オブジェクトコード701が無かった旨のデータを含む。したがって、ユーザは、その後にログファイルを出力して解析することで、異常を知ることができる。
The abnormal data includes, for example, the value of the
<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 showing 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に与えることができる。
In this way, by setting 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, assuming that FIG. 9B is an HMI screen in which the
これにより、サポート装置4などの開発環境を備えない環境であっても、例えば製造現場などのようにHMIプログラム112の開発環境を備えない環境であっても、HMIプログラム112を構成するUI部品501のソースコードまたはオブジェクトコードを作成または編集することで動的に変更し、変更後のコードによるHMIプログラム112の実行結果をリアルタイムにモニタすることができる。このことは、IPC100またはHMI装置200において、サポート装置4などと同様にHMIプログラム112のエディトとデバッグを含む開発環境の提供を可能にする。
As a result, 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 showing 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. Overwrite object code>
In the embodiment of the present invention, when the user operates the overwrite GUI1173, the UI
ここで、上記の(背景技術)でも述べたように、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 technique), all the object codes in the
<J.プログラム>
本実施の形態に示したIPC100においてHMIプログラム112の開発環境を提供するRuntime600は、フラッシュメモリ108などの記憶部に格納されている。プロセッサ102は、記憶部からRuntime600を読出し、メインメモリ106を構成するRAMなどに展開する。そして、プロセッサ102は、RAMに展開された当該プログラムを解釈及び実行して、IPC100の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
<J. Program>
The
また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の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
Further, the
このようなRuntime600はHMI装置200に付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM204、RAM206および記録媒体250などのコンピュータ読取り可能な記録媒体にて記録させて、上記に述べたIPC100の場合と同様にプログラム製品として提供することもできる。あるいは、HMI装置200に内蔵するHDD208などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。
Such a
<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. Addendum>
The present embodiment as described above includes the following technical ideas.
[Structure 1] An information processing apparatus (100, 200) that executes a human-machine interface (HMI) program (112) for FA (factory automation).
A storage means (113) for storing an object code (502) associated with a user interface (UI) component (501) constituting the HMI program, and a storage means (113).
A compiler (1163) that generates an executable object code (701) from the source code (700) of the UI component, and
The means (600) for executing the HMI program is provided.
The means to carry out is
When executing the HMI program, a means for selecting one of the object code generated by the compiler and the object code associated with the UI component as the object code of the UI component constituting the HMI program ( An information processing apparatus including 601).
[Structure 2]
Further provided with means (122, 210) for accepting user operations on the information processing apparatus.
The means of selection is
Of the input parameter (602) in which a value indicating the received user operation content is set, the object code generated by the compiler according to the value set in the input parameter, and the object code associated with the UI component. The information processing apparatus according to
[Structure 3]
The information processing device according to configuration 2, wherein the function is called from the UI component.
[Structure 4]
The function further
The information processing apparatus according to configuration 2 or 3, which has a command code (513) for instructing the activation of the compiler according to a value set in the input parameter.
[Structure 5]
The means for accepting the user operation is
The information processing apparatus according to any one of configurations 2 to 4, which includes means for receiving a user operation on an object (1172) displayed on the display of the information processing apparatus.
[Structure 6]
A means for changing the display mode of the object according to whether the one selected by the selection means is an object code generated by the compiler or an object code associated with the UI component (the means). The information processing apparatus according to
[Structure 7]
The function further
When the condition that the object code generated by the compiler is stored is not satisfied, any one of the configurations 2 to 6 having the code (514, 516) for instructing the selection of the object code of the storage means. The information processing apparatus according to 1.
[Structure 8]
The information processing apparatus according to
[Structure 9]
The information processing apparatus according to any one of
[Structure 10]
The information processing apparatus according to any one of
[Structure 11]
A program (600) for causing a computer (100, 200) to execute a human-machine interface (HMI) program (112) for FA (factory automation).
The computer includes a storage means (113) for storing an object code (502) associated with a user interface (UI) component (501) constituting the HMI program.
The program for executing the program is carried out by the computer.
The step (S9) of invoking the compiler that generates the executable object code (701) from the source code of the UI component, and
When executing the HMI program, a step of selecting one of the object code generated by the compiler and the object code associated with the UI component as the object code of the UI component constituting the HMI program ( A program including S13).
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 It should be considered that the embodiments disclosed this time are exemplary in all respects and not restrictive. The scope of the present invention is shown by the scope of claims, not the above description, and is intended to include all modifications within the meaning and scope equivalent to the scope of 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 processors, 108 flash memory, 112 HMI programs, 113 libraries, 117,214 displays, 122,210 keyboards, 200 HMI devices, 300 devices, 500 functions, 501 UI parts, 502 UI Part object code, 504 script caller, 511-516 command code, 600 Runtime, 601 script processor, 602 flag, 603 script path, 700 source code, 701 post-compiled object code, 1162 text editor, 1163 compiler, E1 object code Storage area, 1172 switching UI, 1173 overwrite UI, P511-P516 processing, V1 screen components, W1, W2 windows.
Claims (10)
前記情報処理装置に対するユーザ操作を受付ける手段と、
前記HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段と、
UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラと、
前記HMIプログラムを実行する手段と、を備え、
前記実行する手段は、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段を含み、
前記選択する手段は、
前記受付ける手段によって受付けたユーザ操作内容を示す値が設定される入力パラメータと、前記入力パラメータに設定された値に従い、前記コンパイラにより生成されたオブジェクトコードおよび前記UI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数を実行する手段を有する、情報処理装置。 An information processing device that executes a human-machine interface (HMI) program for FA (factory automation).
A means for accepting user operations on the information processing device,
A storage means for storing the object code associated with the user interface (UI) component constituting the HMI program, and
A compiler that generates executable object code from the source code of UI parts, and
The means for executing the HMI program is provided.
The means to carry out is
When executing the HMI program, a means for selecting one of the object code generated by the compiler and the object code associated with the UI component as the object code of the UI component constituting the HMI program. seen including,
The means of selection is
An input parameter in which a value indicating a user operation content accepted by the accepting means is set, and an object code generated by the compiler and an object code associated with the UI component according to the value set in the input parameter. An information processing apparatus having means for executing a function having a command code instructing the selection of one of them.
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コードを有する、請求項1または2に記載の情報処理装置。 The function further
The information processing apparatus according to claim 1 or 2 , which has a command code for instructing the activation of the compiler according to a value set in the input parameter.
前記情報処理装置のディスプレイに表示されるオブジェクトに対するユーザ操作を受付ける手段を含む、請求項1から3のいずれか1項に記載の情報処理装置。 The means for accepting the user operation is
The information processing apparatus according to any one of claims 1 to 3 , further comprising means for accepting a user operation on an object displayed on the display of the information processing apparatus.
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコードを有する、請求項1から5のいずれか1項に記載の情報処理装置。 The function further
When the condition of the object code generated by the compiler is stored is not satisfied, it has the code for instructing the selection of the object code of the storage unit, according to any one of claims 1 5 Information processing device.
前記コンピュータは、前記HMIプログラムを構成するユーザインターフェイス(UI)部品に紐付けられたオブジェクトコードを格納する格納手段を備え、
前記実行させるためのプログラムは、前記コンピュータに、
当該コンピュータに対するユーザ操作を受付けるステップと、
UI部品のソースコードから実行可能なオブジェクトコードを生成するコンパイラを起動させるステップと、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップとを実行させ、
前記選択させるステップは、前記コンピュータに、
前記受付けるステップにおいて受付けたユーザ操作内容を示す値が設定される入力パラメータと、前記入力パラメータに設定された値に従い、前記コンパイラにより生成されたオブジェクトコードおよび前記UI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数を実行させるステップを有する、プログラム。 A program for making a computer execute a human-machine interface (HMI) program for FA (factory automation).
The computer comprises a storage means for storing an object code associated with a user interface (UI) component constituting the HMI program.
The program for executing the program is carried out by the computer.
Steps to accept user operations on the computer and
Steps to start a compiler that generates executable object code from the source code of UI parts,
When executing the HMI program, a step of selecting one of the object code generated by the compiler and the object code associated with the UI component as the object code of the UI component constituting the HMI program. To execute,
The step of making the selection is performed by the computer.
An input parameter in which a value indicating the received user operation content is set in the acceptance step, an object code generated by the compiler according to the value set in the input parameter, and an object code associated with the UI component. A program having steps to execute a function having a command code instructing the selection of one of them.
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 JP2020030621A (en) | 2020-02-27 |
| JP6984565B2 true 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) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6921344B1 (en) * | 2020-06-12 | 2021-08-18 | 三菱電機株式会社 | Control system |
| JP2023111377A (en) * | 2022-01-31 | 2023-08-10 | オムロン株式会社 | A robot control system and how to configure a robot control system |
| JP2023111378A (en) * | 2022-01-31 | 2023-08-10 | オムロン株式会社 | A robot control system and how to configure a robot control system |
Family Cites Families (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 apparatus and information processing method |
| JP6786984B2 (en) * | 2016-09-16 | 2020-11-18 | オムロン株式会社 | Program processing equipment and programs |
-
2018
- 2018-08-23 JP JP2018155926A patent/JP6984565B2/en active Active
-
2019
- 2019-08-02 WO PCT/JP2019/030556 patent/WO2020039900A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| WO2020039900A1 (en) | 2020-02-27 |
| JP2020030621A (en) | 2020-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4950454B2 (en) | Stack hierarchy for test automation | |
| US8769553B2 (en) | Deploy anywhere framework for heterogeneous mobile application development | |
| JPH05505695A (en) | An improved software debugging system and method specifically for debugging code within a multi-architecture environment. | |
| CN102955723B (en) | Automatic hardware testing method and system | |
| JP6984565B2 (en) | Information processing equipment and programs | |
| US8448151B2 (en) | Method for binarizing initial script on operating system and operating method of binary script | |
| KR20070058954A (en) | Apparatus and method for supporting embedded system prototype development | |
| EP1924927B1 (en) | Declaratively defined control actions | |
| JP5552300B2 (en) | Sequence control apparatus, method, and program for connected device simulator | |
| JP2006099798A (en) | Operation method for computer system | |
| WO2016003850A1 (en) | Rule-based activation of behaviors in an extensible software application | |
| CN102081520A (en) | Method and system for establishing graphical user interface of embedded digital video recorder | |
| CN112306844B (en) | Interface test method, device and equipment of software development system and storage medium | |
| JP5058219B2 (en) | Scenario creation method, apparatus, program, and recording medium | |
| JP7001012B2 (en) | Support equipment and support programs | |
| EP0801348A1 (en) | Method of monitoring the operation of a computer | |
| JP2000330821A (en) | How to create software for embedded systems | |
| JPH10247142A (en) | Process control program programming system and programming method | |
| CN119597272B (en) | Method and system for constructing single page application based on state-driven low code | |
| JP2001318796A (en) | Program execution control method using internal and external event driven system, recording medium and program preparation support system | |
| JP2011165051A (en) | Development support device, method and program | |
| US20240419480A1 (en) | Information processing system | |
| CN120202442A (en) | Development assistance device, development assistance method and development assistance program | |
| Le | Comparing State Management Between Redux And Zustand In React | |
| GB2485204A (en) | Automating testing of an application using a hook mechanism |
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 |