[go: up one dir, main page]

JP6984565B2 - Information processing equipment and programs - Google Patents

Information processing equipment and programs Download PDF

Info

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
Application number
JP2018155926A
Other languages
Japanese (ja)
Other versions
JP2020030621A (en
Inventor
弓束 重森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2018155926A priority Critical patent/JP6984565B2/en
Priority to PCT/JP2019/030556 priority patent/WO2020039900A1/en
Publication of JP2020030621A publication Critical patent/JP2020030621A/en
Application granted granted Critical
Publication of JP6984565B2 publication Critical patent/JP6984565B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

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.

特表2012−512489号公報Special Table 2012-512489

特許文献1は、デバッギングのためのユーザ・スクリプト・コードの変換方法を開示するが、HMIプログラムの実行停止を伴わずに、UI部品の変更を可能にする方法は提供しない。 Patent Document 1 discloses a method for converting a user script code for debugging, but does not provide a method for enabling a change in a UI component without stopping the execution of an HMI program.

本開示は、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.

本発明の実施の形態に係るシステム1の構成を模式的に示す図である。It is a figure which shows typically the structure of the system 1 which concerns on embodiment of this invention. 本発明の実施の形態にかかるIPC100のハードウェア構成の一例を模式的に示す図である。It is a figure which shows typically an example of the hardware composition of IPC100 which concerns on embodiment of this invention. 本発明の実施の形態にかかるHMI装置200のハードウェア構成の一例を模式的に示す図である。It is a figure which shows an example of the hardware structure of the HMI apparatus 200 which concerns on embodiment of this invention schematically. 本発明の実施の形態に係るIPC100のソフトウェア構成の一例を示す模式図である。It is a schematic diagram which shows an example of the software structure of IPC100 which concerns on embodiment of this invention. 本発明の実施の形態にかかるUI部品のオブジェクトコードの生成と選択の概要を模式的に示す図である。It is a figure which shows the outline of the generation and selection of the object code of the UI component which concerns on embodiment of this invention schematically. 本発明の実施の形態にかかる関数500の指令コードの内容を、オブジェクトコードの生成と選択の流れと関連付けて模式的に示す図である。It is a figure which shows typically the content of the command code of the function 500 which concerns on embodiment of this invention in relation with the flow of the generation and selection of the object code. 本発明の実施の形態にかかる関数500の指令コードの記述の一例を示す図である。It is a figure which shows an example of the description of the command code of the function 500 which concerns on embodiment of this invention. 本発明の実施の形態にかかる処理の一例を示す概略フローチャートである。It is a schematic flowchart which shows an example of the process which concerns on embodiment of this invention. 本発明の実施の形態にかかるディスプレイ117における画面の表示例を模式的に示す図である。It is a figure which shows typically the display example of the screen in the display 117 which concerns on embodiment of this invention. 本発明の実施の形態にかかる切替GUI1172の表示態様の切替えの一例を模式的に示す図である。It is a figure which shows an example of the switching of the display mode of the switching GUI1172 according to the embodiment of the present invention schematically.

本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。 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 system 1 according to an embodiment of the present invention. The system 1 includes one or a plurality of devices 300 to be controlled such as FA manufacturing devices and manufacturing equipment, IPC (industrial computer) 100 and PLC 101 corresponding to the control device of the device 300, HMI device 200, and a general-purpose computer. A corresponding support device 4 is provided. The device 300 communicates with the IPC 100 and the PLC 101 via a network such as EtherCAT®. The PLC 100 executes the control program 111 of the device 300. The HMI device 200 executes an HMI program 112 that exchanges data with a control program 111 executed by the PLC 100. The IPC 100 executes the control program 111 and also executes the HMI program 112 that exchanges data with the control program 111. Therefore, the IPC 100 has the role of both a control device and an HMI device 200.

サポート装置4は、制御プログラム111およびHMIプログラム112を開発し、開発された制御プログラム111をIPC100およびPLC101に転送(ロード)し、また開発されたHMIプログラム112をHMI装置200に転送する。IPC100とHMI装置200は、HMIプログラム112を実行する情報処理装置の一例である。また、サポート装置4は、HMIプログラム112を構成するUI部品501を開発し、UI部品501のオブジェクトコードをIPC100およびHMI装置200に転送する。IPC100およびHMI装置200は、UI部品501に紐付けられたオブジェクトコードを格納する格納手段に相当するライブラリ113を備える。なお、この紐付けは、例えば、UI部品501のIDコードを用いて実現される。 The support device 4 develops the control program 111 and the HMI program 112, transfers (loads) the developed control program 111 to the IPC 100 and the PLC 101, and transfers the developed HMI program 112 to the HMI device 200. The IPC 100 and the HMI device 200 are examples of information processing devices that execute the HMI program 112. Further, the support device 4 develops the UI component 501 constituting the HMI program 112, and transfers the object code of the UI component 501 to the IPC 100 and the HMI device 200. The IPC 100 and the HMI device 200 include a library 113 corresponding to a storage means for storing an object code associated with the UI component 501. It should be noted that this association is realized by using, for example, the ID code of the UI component 501.

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

また、「UI部品」501は、画像データ、テキストデータ、プログラムコードなどを含む。HMIプログラム112が実行されて画面が表示されるとき、UI部品501が実行されることによって、画面を構成する画面部品が表示される。画面部品は、絵、文字列などの各種オブジェクトを含む。また、UI部品501のプログラムコードが実行されることによる機能(画面部品の表示、データ入出力、操作受付などの機能)が提供される。プログラムコードは、例えばスクリプトコードを含むが、プログラムコードの種類はスクリプトコードに限定されない。UI部品501のうち画面部品を提供する部品を、GUI(グラフィカルユーザインターフェイス)部品とも称する。 Further, the "UI component" 501 includes image data, text data, a program code, and the like. When the HMI program 112 is executed and the screen is displayed, the UI component 501 is executed to display the screen components constituting the screen. Screen parts include various objects such as pictures and character strings. In addition, functions (functions such as screen component display, data input / output, and operation reception) are provided by executing the program code of the UI component 501. The program code includes, for example, a script code, but the type of the program code is not limited to the script code. Of the UI parts 501, the parts that provide screen parts are also referred to as GUI (graphical user interface) parts.

「ライブラリ」113は、HMIプログラム112で利用(再利用)できるUI部品501のライブラリ(ファイル)である。ライブラリ113には、UI部品501が、IPC100またはHMI装置200で実行可能なオブジェクトコードの形式で格納される。 The "library" 113 is a library (file) of UI components 501 that can be used (reused) in the HMI program 112. The UI component 501 is stored in the library 113 in the form of an object code that can be executed by the IPC 100 or the HMI device 200.

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

IPC100またはHMI装置200では、UI部品501に紐づけられたオブジェクトコードを実行することで実現される機能を、HMIプログラム112の実行を停止させることなく、動的に変更することができる。 In the IPC 100 or the HMI device 200, the function realized by executing the object code associated with the UI component 501 can be dynamically changed without stopping the execution of the HMI program 112.

具体的には、IPC100またはHMI装置200が備えるテキストエディタ1162を用いて、UI部品501が備える機能を記述するプログラムコードであるソースコードが作成または編集される。コンパイラ1163はUI部品501のソースコードを受付けて、受付けたソースコードをコンパイルして、実行可能なオブジェクトコードを生成する。IPC100またはHMI装置200は、HMIプログラム112を実行する場合に、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイルによって生成されたオブジェクトコードおよび当該UI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方を選択する。 Specifically, the source code, which is the program code for describing the functions included in the UI component 501, is created or edited by using the text editor 1162 included in the IPC 100 or the HMI apparatus 200. The compiler 1163 accepts the source code of the UI component 501, compiles the accepted source code, and generates an executable object code. When the IPC 100 or the HMI device 200 executes the HMI program 112, the object code of the UI component 501 constituting the HMI program 112 is the object code generated by compilation and the library 113 associated with the UI component 501. Select one of the object codes.

このように、コンパイラ1163および参照するオブジェクトコードを選択するための機能がIPC100またはHMI装置200において実装される。 In this way, the compiler 1163 and the function for selecting the object code to be referred to are implemented in the IPC100 or the HMI device 200.

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

また、IPC100またはHMI装置200では、作成または編集されたUI部品501のソースコードをコンパイルして得られたオブジェクトコードが実行された場合、ディスプレイ117(またはディスプレイ214)のHMI画面を構成する画面部品の表示態様の変化として提示することが可能となる。これにより、IPC100またはHMI装置200は、UI部品501のソースコードに関するデバッグを含む開発環境も提供し得る。 Further, in the IPC 100 or the HMI device 200, when the object code obtained by compiling the source code of the UI component 501 created or edited is executed, the screen component constituting the HMI screen of the display 117 (or the display 214) is executed. It is possible to present as a change in the display mode of. Thereby, the IPC 100 or the HMI device 200 may also provide a development environment including debugging of the source code of the UI component 501.

また、IPC100またはHMI装置200では、コンパイラ1163により生成されたオブジェクトコードを用いて、UI部品501に紐付けられたライブラリ113中のオブジェクトコードが上書きされる。この上書きは、例えばIPC100またはHMI装置200の再起動時などに実施され得る。これにより、UI部品501に紐付けされるオブジェクトコードを、コンパイラ1163により生成されたオブジェクトコードに変更することが可能となる。 Further, in the IPC 100 or the HMI device 200, the object code in the library 113 associated with the UI component 501 is overwritten by using the object code generated by the compiler 1163. This overwrite may be performed, for example, when the IPC 100 or the HMI device 200 is restarted. This makes it possible to change the object code associated with the UI component 501 to the object code generated by the compiler 1163.

また、上記に述べたオブジェクトコードの選択は、IPC100またはHMI装置200が受付けたユーザ操作内容を示す値が設定される入力パラメータを有した関数500が実行されることで実現され得る。関数500は、入力パラメータに設定された値に従い、コンパイラ1163により生成されたオブジェクトコードおよびUI部品501に紐付けられたライブラリ113のオブジェクトコードのうちの一方の選択を指示する指令コードを有する。 Further, the selection of the object code described above can be realized by executing the function 500 having an input parameter in which a value indicating the user operation content accepted by the IPC 100 or the HMI device 200 is set. The function 500 has a command code indicating the selection of the object code generated by the compiler 1163 and the object code of the library 113 associated with the UI component 501 according to the value set in the input parameter.

コンパイラ1163により生成されたオブジェクトコードは、紐付けされたオブジェクトコードが格納される記憶領域(すなわちライブラリ113)とは異なる領域に格納される。これにより、上記のオブジェクトコードの選択は、オブジェクトコードを呼出すための参照先の記憶領域を異ならせることでも実現することができる。 The object code generated by the compiler 1163 is stored in an area different from the storage area (that is, the library 113) in which the associated object code is stored. Thereby, the above-mentioned selection of the object code can also be realized by making the storage area of the reference destination for calling the object code different.

また、関数500は、さらに、入力パラメータに設定された値に従いコンパイラ1163を起動させる指令コードも有する。これにより、関数500が呼出されたときに限り、コンパイラ1163を起動させることが可能となる。したがって、予めコンパイラ1163を起動させてオブジェクトコードを作成し格納しておくケースに比較して記憶領域を節約することができる。 The function 500 also has a command code for invoking the compiler 1163 according to the values set in the input parameters. This makes it possible to start the compiler 1163 only when the function 500 is called. Therefore, the storage area can be saved as compared with the case where the compiler 1163 is started in advance to create and store the object code.

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

<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 IPC 100 according to the embodiment of the present invention. With reference to FIG. 2, the IPC 100 includes a processor 102 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit), a chip set 104, a main memory 106, a flash memory 108, and an external network controller 116. , A memory card interface 118, a display driver 119 that controls the display 117, an input interface 121, an internal bus controller 129, and a field bus controller 124. The input interface 121 controls the keyboard 122, which is an implementation row of the operation receiving unit that accepts the user operation for the IPC 100. Here, the display 117 and the keyboard 122 may be provided as an integrally configured touch panel.

プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラムを読み出して、メインメモリ106に展開して実行することで、デバイス300またはフィールド機器などの制御対象に対する制御処理またはHMI処理を実現する。 The processor 102 reads out the system program 110 and the user program stored in the flash memory 108, expands them in the main memory 106, and executes them to realize control processing or HMI processing for a controlled object such as a device 300 or a field device. do.

システムプログラム110は、データの入出力処理や実行タイミング制御などの、IPC100の基本的な機能を提供するための命令コードを含む。ユーザプログラムは、制御プログラム111、HMIプログラム112、Runtime600およびライブラリ113を含む。制御プログラム111は、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムなどを含む。Runtime600は、HMIプログラム112を実行する手段の一実施例であって、実行されるとHMIプログラム112を実行するための環境を提供する。 The system program 110 includes an instruction code for providing basic functions of the IPC 100 such as data input / output processing and execution timing control. The user program includes a control program 111, an HMI program 112, a Runtime 600 and a library 113. The control program 111 includes a sequence program for executing sequence control, a motion program for executing motion control, and the like. The Runtime 600 is an embodiment of the means for executing the HMI program 112, and when executed, provides an environment for executing the HMI program 112.

ライブラリ113には、UI部品501および制御プログラム111を構成する各種の関数などが、実行可能コード(例えば、中間コード)であるオブジェクトコードの態様で登録される。本実施の形態では、HMIプログラム112を構成するUI部品501は、ライブラリ113のUI部品オブジェクトコード502と紐付けされる。 In the library 113, various functions constituting the UI component 501 and the control program 111 are registered in the form of an object code which is an executable code (for example, an intermediate code). In the present embodiment, the UI component 501 constituting the HMI program 112 is associated with the UI component object code 502 of the library 113.

フラッシュメモリ108は、さらにシステム変数、デバイス変数およびユーザ変数などを含む変数テーブル1146を格納する。プロセッサ102は、変数テーブル1146の変数に設定された制御指令値などを参照しながら制御プログラム111を実行し、デバイス300の状態値などを変数テーブル1146の変数に設定する。また、プロセッサ102は、変数テーブル1146の変数に設定された値を参照しながらHMIプログラム112を実行し、また、UI部品501の画面部品から受付けたユーザ操作内容に従う値を変数テーブル1146の変数に設定する。これにより、変数テーブル1146の変数を介して、デバイス300の状態値をUI部品501の画面部品で表示することができ、また、画面部品から受付けたユーザ操作に従う値による制御指令値を用いてデバイス300を制御することが可能となる。 The flash memory 108 further stores a variable table 1146 including system variables, device variables, user variables, and the like. The processor 102 executes the control program 111 while referring to the control command value or the like set in the variable of the variable table 1146, and sets the state value or the like of the device 300 in the variable of the variable table 1146. Further, the processor 102 executes the HMI program 112 while referring to the values set in the variables of the variable table 1146, and sets the values according to the user operation contents received from the screen components of the UI component 501 into the variables of the variable table 1146. Set. As a result, the state value of the device 300 can be displayed on the screen component of the UI component 501 via the variable in the variable table 1146, and the device uses the control command value based on the value according to the user operation received from the screen component. It becomes possible to control 300.

また、フラッシュメモリ108は、コンパイラ1163が生成したUI部品501のオブジェクトコードであるコンパイル後オブジェクトコード701(後述する)を格納するためのオブジェクトコード格納領域E1を有する。 Further, the flash memory 108 has an object code storage area E1 for storing the post-compiled object code 701 (described later) which is the object code of the UI component 501 generated by the compiler 1163.

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

内部バスコントローラ129は、IPC100と内部バスを通じて連結されるI/Oユニット14との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ124は、IPC100と図示しないフィールドバスを通じて連結されるI/Oユニット16との間でデータを遣り取りするインターフェイスである。内部バスコントローラ129およびフィールドバスコントローラ124は、対応のI/Oユニット14および16にそれぞれ入力される状態値を取得するとともに、プロセッサ102での演算結果を対応のI/Oユニット14および16から制御指令値としてそれぞれ出力する。 The internal bus controller 129 is an interface for exchanging data between the IPC 100 and the I / O unit 14 connected through the internal bus. The fieldbus controller 124 is an interface for exchanging data between the IPC 100 and the I / O unit 16 connected through a fieldbus (not shown). The internal bus controller 129 and the fieldbus controller 124 acquire the state values input to the corresponding I / O units 14 and 16, respectively, and control the calculation result in the processor 102 from the corresponding I / O units 14 and 16. It is output as a command value.

外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。IPC100は、外部ネットワークコントローラ116またはメモリカードインターフェイス118を介してサポート装置4または他の制御装置(PLC101など)とデータを遣り取りする。 The external network controller 116 controls the exchange of data through various wired / wireless networks. The memory card interface 118 is configured so that the memory card 120 can be attached and detached, and data can be written to and read from the memory card 120. The IPC 100 exchanges data with the support device 4 or another control device (such as PLC 101) via the external network controller 116 or the memory card interface 118.

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

<C.HMI装置200のハードウェア構成例>
次に、HMI装置200のハードウェア構成例について説明する。図3は、本発明の実施の形態にかかるHMI装置200のハードウェア構成の一例を模式的に示す図である。図3を参照して、HMI装置200は、据え置き型でもよく、または製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
<C. Hardware configuration example of HMI device 200>
Next, a hardware configuration example of the HMI device 200 will be described. FIG. 3 is a diagram schematically showing an example of the hardware configuration of the HMI device 200 according to the embodiment of the present invention. With reference to FIG. 3, the HMI device 200 may be stationary or may be provided in the form of a notebook personal computer with excellent portability at the manufacturing site.

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

HMI装置200は、さらに、HMI装置200に対するユーザの操作を受付けるキーボード210およびマウス212を含む入力部211と、情報をユーザに提示するためのディスプレイ214とを含む。HMI装置200は、PLC101またはサポート装置4と通信するための通信インターフェイス218を含む。入力部211は、ディスプレイ214と一体的に構成されるタッチパネルとして提供されてもよい。 The HMI device 200 further includes an input unit 211 including a keyboard 210 and a mouse 212 for receiving user operations on the HMI device 200, and a display 214 for presenting information to the user. The HMI device 200 includes a communication interface 218 for communicating with the PLC 101 or the support device 4. The input unit 211 may be provided as a touch panel integrally configured with the display 214.

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

<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-time OS 114 and the general-purpose OS 1161 independent of each other are executed on the common hardware resource. That is, a hypervisor is used to realize a virtualized environment in which different types of OSs are executed. A logical network is configured between the real-time OS 114 and the general-purpose OS 1161 via a hypervisor.

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

一方、汎用OS1161の下では、任意のユーザアプリケーションである例えばHMIプログラム112を含むユーザアプリケーション1164、汎用アプリケーション1165、テキストエディタ1162、コンパイラ1163およびRuntime600を備える。汎用アプリケーション1165は、汎用OS1161で実行可能な標準的なアプリケーションであり、HMIプログラム112などのユーザアプリケーションと連係することで、汎用的な処理や機能を用いて、より少ない工数でシステムを構築することができる。 On the other hand, under the general-purpose OS 1161, any user application such as a user application 1164 including an HMI program 112, a general-purpose application 1165, a text editor 1162, a compiler 1163, and a Runtime 600 is provided. The general-purpose application 1165 is a standard application that can be executed by the general-purpose OS 1161, and by linking with a user application such as the HMI program 112, a system can be constructed with less man-hours by using general-purpose processing and functions. Can be done.

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

コンパイラ1163は、ソースコードを受付けて、受付けたソースコードをコンパイルし、オブジェクトコードを生成する。コンパイラ1163は、フラッシュメモリ108の記憶領域からソースコード700を読出すことにより、ソースコード700を受付ける。または、フラッシュメモリ108の記憶領域に格納されるソースコード700は、テキストエディタ1162により作成または編集されたソースコードを含むが、テキストエディタ1162により作成または編集されたソースコードに限定されない。例えば、ソースコードを格納したメモリカード120から、メモリカードインターフェイス118を介して読出されたソースコードであってもよい。 The compiler 1163 accepts the source code, compiles the accepted source code, and generates the object code. The compiler 1163 accepts the source code 700 by reading the source code 700 from the storage area of the flash memory 108. Alternatively, the source code 700 stored in the storage area of the flash memory 108 includes the source code created or edited by the text editor 1162, but is not limited to the source code created or edited by the text editor 1162. For example, the source code may be read from the memory card 120 storing the source code via the memory card interface 118.

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

Runtime600は、HMIプログラム112の実行時に呼出し可能な関数500を備える。関数500のコードは、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびUI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502のうちの一方の選択を指示する指令コードを含む。関数500の指令コードの詳細は後述する。 Runtime 600 includes a function 500 that can be called when the HMI program 112 is executed. The code of the function 500 indicates selection of one of the compiled object code 701 and the UI component object code 502 of the library 113 associated with the UI component 501 as the object code of the UI component 501 constituting the HMI program 112. Includes a command code to do. The details of the command code of the function 500 will be described later.

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

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

Runtime600は、キーボード122を介して予め定められたユーザ操作を受付けたときフラグ602に操作内容に従う値を設定する。フラグ602は、HMIプログラム112を構成するUI部品501のオブジェクトコードとして、コンパイル後オブジェクトコード701およびライブラリ113の中の紐付けされたUI部品オブジェクトコード502のいずれを実行するべきかを指示する値が設定される。フラグ602には、例えば「True」または「false」の値が設定される。 The Runtime 600 sets a value according to the operation content to the flag 602 when a predetermined user operation is received via the keyboard 122. The value of the flag 602 indicates whether to execute the post-compiled object code 701 or the associated UI component object code 502 in the library 113 as the object code of the UI component 501 constituting the HMI program 112. Set. For example, a value of "True" or "false" is set in the flag 602.

また、Runtime600は、HMIプログラム112を構成するUI部品501のオブジェクトコードを実行するとき、当該オブジェクトコードの実行により関数500が呼出される。Runtime600は、呼出された関数500を実行するとき、フラグ602の値を、関数500の入力パラメータの値として設定し、入力パラメータの値に基き当該関数500の指令コードを実行する。この指令コードは、Runtime600が実行可能なコードを表す。 Further, when the Runtime 600 executes the object code of the UI component 501 constituting the HMI program 112, the function 500 is called by the execution of the object code. When executing the called function 500, the Runtime 600 sets the value of the flag 602 as the value of the input parameter of the function 500, and executes the command code of the function 500 based on the value of the input parameter. This command code represents a code that can be executed by Runtime600.

関数500が実行される場合、入力パラメータの値に従いコンパイラ1163が起動される。コンパイラ1163が起動されると、コンパイラ1163は、対象のソースコード700を受付けて、受付けたソースコード700をコンパイルし、コンパイル後オブジェクトコード701を生成する。 When the function 500 is executed, the compiler 1163 is started according to the value of the input parameter. When the compiler 1163 is started, the compiler 1163 accepts the target source code 700, compiles the accepted source code 700, and generates the object code 701 after compilation.

コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。これにより、IPC100では、HMIプログラム112のUI部品501のオブジェクトコードとして、ライブラリ113中の紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701を備えることができる。 After compilation, the object code 701 is stored in the object code storage area E1 of the flash memory 108. As a result, the IPC 100 can include the linked UI component object code 502 in the library 113 and the compiled object code 701 of the object code storage area E1 as the object code of the UI component 501 of the HMI program 112.

HMIプログラム112の実行中にUI部品501を実行する場合は、関数500が実行されることにより、フラグ602に値に従い、UI部品501のオブジェクトコードとして、ライブラリ113中のUI部品501に紐付けられたUI部品オブジェクトコード502およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701のうちの一方が選択的に読出されて実行される。 When the UI component 501 is executed during the execution of the HMI program 112, the function 500 is executed, and the object code of the UI component 501 is associated with the UI component 501 in the library 113 according to the value of the flag 602. One of the compiled UI component object code 502 and the object code storage area E1 and the post-compiled object code 701 is selectively read and executed.

<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 function 500 according to the embodiment of the present invention in relation to the flow of generation and selection of the object code. FIG. 7 is a diagram showing an example of a description of a command code of the function 500 according to the embodiment of the present invention. With reference to FIG. 7, function 500 includes command codes 511-516 in script form. When each of the command codes 511 to 516 is executed, the corresponding processes P511 to P516 shown in FIG. 6 are realized.

図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 Runtime 600 under the .NET environment, the HMI execution environment which is the execution environment of the HMI program is provided. In the HMI execution environment, the script processing unit 601 that processes various scripts such as the function 500 operates.

まず、スクリプト処理部601は、ディスプレイ117に表示される画面部品である切替GUI1172を介して受付けたユーザ操作内容に基づく値をフラグ602に設定する。切替GUI1172については後述する。なお、当該ユーザ操作内容は、キーボード122を介して受付けてもよい。 First, the script processing unit 601 sets the flag 602 to a value based on the user operation content received via the switching GUI1172, which is a screen component displayed on the display 117. The switching GUI 1172 will be described later. The user operation content may be received via the keyboard 122.

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

関数500が実行されると、フラグ602の値がチェックされる(処理P511)。チェックによりフラグ602は「True」と判定されると、スクリプト処理部601はコンパイラ1163を起動する。コンパイラ1163は、予め記憶されたスクリプトパス603に基づきフラッシュメモリ108からソースコード700をアクセス(抽出)する(処理P512)。コンパイラ1163は、アクセスされたソースコード700をコンパイルすることにより、コンパイル後オブジェクトコード701を生成する(処理P513)。コンパイル後オブジェクトコード701は、フラッシュメモリ108のオブジェクトコード格納領域E1に格納される。 When the function 500 is executed, the value of the flag 602 is checked (process P511). When the check determines that the flag 602 is "True", the script processing unit 601 starts the compiler 1163. The compiler 1163 accesses (extracts) the source code 700 from the flash memory 108 based on the script path 603 stored in advance (process P512). The compiler 1163 generates the object code 701 after compilation by compiling the accessed source code 700 (process P513). After compilation, the object code 701 is stored in the object code storage area E1 of the flash memory 108.

次に、呼出し部のコードが実行される(処理P514)。呼出し部は、フラグ602の値に基き、ライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびオブジェクトコード格納領域E1のコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択する。スクリプト処理部601は、選択された方の記憶領域からオブジェクトコードを呼出し実行する。 Next, the code of the calling unit is executed (process P514). Based on the value of the flag 602, the calling unit calls the UI component object code 502 associated with the UI component 501 of the library 113 (process P516) and the compiled object code 701 of the object code storage area E1 (process P515). ) Is selected. The script processing unit 601 calls and executes the object code from the selected storage area.

これにより、スクリプト処理部601の呼出し元であるHMIプログラム112のUI部品501のオブジェクトコードが実行される。その実行結果は、例えばUI部品501による画面部品の表示態様の変更などにより出力される。 As a result, the object code of the UI component 501 of the HMI program 112, which is the caller of the script processing unit 601 is executed. The execution result is output, for example, by changing the display mode of the screen component by the UI component 501.

なお、図6では、スクリプト呼出し部504は、フラグ602の値に基き、紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択したが、選択の基準はフラグ602の値に限定されない。例えば、図7の指令コード514に示されるように、オブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納(ロード)されているか否かの判断に基づき、紐付けられたUI部品オブジェクトコード502の呼出し(処理P516)およびコンパイル後オブジェクトコード701の呼出し(処理P515)のうちの一方を選択するとしてもよい。 In FIG. 6, the script calling unit 504 is one of the 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 flag 602. However, the selection criteria are not limited to the value of flag 602. For example, as shown in the command code 514 of FIG. 7, the associated UI component object code 502 is based on the determination of whether or not the compiled object code 701 is stored (loaded) in the object code storage area E1. One of the call (process P516) and the call of the object code 701 after compilation (process P515) may be selected.

<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 text editor 1162 edits or creates a script-format source code 700 based on the user operation content received via the keyboard 122 (step S3). The source code 700 is stored in the flash memory 108 in a file format.

スクリプト処理部601は、ソースコード700のファイルの格納場所を示すファイルパスをスクリプトパス603に設定する(ステップS5)。また、スクリプト処理部601は、切替GUI1172を介して受付けたユーザ操作内容に従う値をフラグ602に設定する(ステップS7)。 The script processing unit 601 sets a file path indicating the storage location of the file of the source code 700 in the script path 603 (step S5). Further, the script processing unit 601 sets the value according to the user operation content received via the switching GUI 1172 in the flag 602 (step S7).

スクリプト処理部601は、コンパイラ1163を呼出し(ステップS9)、呼出されたコンパイラ1163はスクリプトパス603に設定されたファイルパスに従い、フラッシュメモリ108からソースコード700を読出し、読出されたソースコード700をコンパイルする(ステップS11)。これにより、コンパイル後オブジェクトコード701が生成されて、オブジェクトコード格納領域E1に格納される。 The script processing unit 601 calls the compiler 1163 (step S9), and the called compiler 1163 reads the source code 700 from the flash memory 108 according to the file path set in the script path 603, and compiles the read source code 700. (Step S11). As a result, the object code 701 is generated after compilation and stored in the object code storage area E1.

なお、ステップS9におけるコンパイラ1163を呼出す時期は、HMIプログラム112の実行中にUI部品501が実行されるタイミング(時期)に限定されず、他のタイミングであってもよい。他のタイミングとしては、例えば、ソースコード700が編集または作成されたタイミング、またはユーザが指定したタイミングなどを含み得る。 The timing of calling the compiler 1163 in step S9 is not limited to the timing (timing) when the UI component 501 is executed during the execution of the HMI program 112, and may be another timing. Other timings may include, for example, the timing when the source code 700 is edited or created, the timing specified by the user, and the like.

スクリプト処理部601は関数500を呼出し、関数500の指令コードを実行する。まず、フラグ602の値を判定し(ステップS13)、その判定結果に基く、オブジェクトのコードの呼出しが実施される。 The script processing unit 601 calls the function 500 and executes the command code of the function 500. First, the value of the flag 602 is determined (step S13), and the code of the object is called based on the determination result.

スクリプト処理部601は、フラグ602の値が「True」ではないと判定すると(ステップS13でNO)、スクリプト処理部601はライブラリ113のUI部品501に紐付けられたUI部品オブジェクトコード502を呼出す(ステップS21)。 When the script processing unit 601 determines that the value of the flag 602 is not "True" (NO in step S13), the script processing unit 601 calls the UI component object code 502 associated with the UI component 501 of the library 113 (NO). Step S21).

一方、フラグ602の値が「True」であると判定すると(ステップS13でYES)、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在するか否か、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されているかを判定する(ステップS15)。 On the other hand, if it is determined that the value of the flag 602 is "True" (YES in step S13), the script processing unit 601 determines whether or not the post-compiled object code 701 exists, that is, the post-compiled object in the object code storage area E1. It is determined whether the code 701 is stored (step S15).

スクリプト処理部601は、コンパイル後オブジェクトコード701が存在する、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていると判定すると(ステップS15でYES)、スクリプト処理部601はオブジェクトコード格納領域E1からコンパイル後オブジェクトコード701を呼出す(ステップS17)。 When the script processing unit 601 determines that the post-compiled object code 701 exists, that is, the post-compiled object code 701 is stored in the object code storage area E1 (YES in step S15), the script processing unit 601 stores the object code. The object code 701 is called after compilation from the area E1 (step S17).

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

ステップS15に戻り、スクリプト処理部601は、コンパイル後オブジェクトコード701が存在しない、すなわちオブジェクトコード格納領域E1にコンパイル後オブジェクトコード701が格納されていないと判定すると(ステップS15でNO)、スクリプト処理部601は、UI部品501に紐付けられたライブラリ113のUI部品オブジェクトコード502を呼出すとともに、フラッシュメモリ108の読出し可能なログファイルに異常のデータを記録する(ステップS23)。 Returning to step S15, when the script processing unit 601 determines that the post-compiled object code 701 does not exist, that is, the post-compiled object code 701 is not stored in the object code storage area E1 (NO in step S15), the script processing unit 601 calls the UI component object code 502 of the library 113 associated with the UI component 501, and records the abnormal data in the readable log file of the flash memory 108 (step S23).

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

<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 display 117 according to the embodiment of the present invention. FIG. 9A shows a screen example of the display 117 when the source code 700 is edited or created by, for example, a text editor 1162. This screen is divided into, for example, windows W1 and W2, the HMI screen by executing the HMI program 112 is displayed in the window W1, and the source code 700 by executing the text editor 1162 is displayed in the window W2. The screen for editing or creating is displayed.

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

切替GUI1172がユーザにより操作されると、スクリプト処理部601は切替GUI1172の操作内容を受付けて、受付けた操作内容に基づき、フラグ602に「True」または「False」を設定する。 When the switching GUI 1172 is operated by the user, the script processing unit 601 receives the operation content of the switching GUI 1172 and sets "True" or "False" to the flag 602 based on the received operation content.

このように、切替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 GUI 1172 to the flag 602, it is instructed to generate the post-compiled object code 701 by compiling the source code 700, or as the object code of the UI component 501. , The instruction to switch from the associated UI component object code 502 to the compiled object code 701 can be given to the script processing unit 601.

ここで、図9(B)は、UI部品501のオブジェクトコードとしてコンパイル後オブジェクトコード701が実行されたHMI画面とすれば、図9(A)の画面部品V1の表示色は、コンパイル後オブジェクトコード701が実行されることにより、図9(B)のように別の色に変化している。ユーザは、画面部品V1の表示色が変化したことから、生成または編集したソースコード700の適否を判断する、すなわちデバッグするための判断指標を得ることができる。なお、画面部品V1の表示態様の変化は色に限定されず、例えば形状であってもよい。 Here, assuming that FIG. 9B is an HMI screen in which the post-compiled object code 701 is executed as the object code of the UI component 501, the display color of the screen component V1 of FIG. 9A is the post-compiled object code. By executing 701, the color is changed to another color as shown in FIG. 9B. Since the display color of the screen component V1 has changed, the user can obtain a judgment index for judging the suitability of the generated or edited source code 700, that is, for debugging. The change in the display mode of the screen component V1 is not limited to the color, and may be, for example, a shape.

これにより、サポート装置4などの開発環境を備えない環境であっても、例えば製造現場などのようにHMIプログラム112の開発環境を備えない環境であっても、HMIプログラム112を構成するUI部品501のソースコードまたはオブジェクトコードを作成または編集することで動的に変更し、変更後のコードによるHMIプログラム112の実行結果をリアルタイムにモニタすることができる。このことは、IPC100またはHMI装置200において、サポート装置4などと同様にHMIプログラム112のエディトとデバッグを含む開発環境の提供を可能にする。 As a result, even in an environment that does not have a development environment such as the support device 4, or an environment that does not have a development environment for the HMI program 112 such as a manufacturing site, the UI components 501 constituting the HMI program 112 By creating or editing the source code or object code of, it can be dynamically changed, and the execution result of the HMI program 112 by the changed code can be monitored in real time. This makes it possible to provide a development environment including editing and debugging of the HMI program 112 in the IPC 100 or the HMI device 200 as in the support device 4 and the like.

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

<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 component object code 502 associated with the UI component 501 of the library 113 is overwritten by using the compiled object code 701 of the object code storage area E1. Will be done. As a result, the UI component object code 502 associated with the UI component 501 of the library 113 can be updated using the post-compiled object code 701 generated by the IPC 100 without loading the object code from the support device 4. .. The timing for performing this overwriting includes, for example, the restart of the IPC100.

ここで、上記の(背景技術)でも述べたように、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 library 113 are arranged (even if a part of the object codes in the library 113 of the IPC100 or the HMI device 200 is changed. It was necessary to reload (load), but in this embodiment, such reloading is not necessary. That is, by operating the overwrite GUI1173, only the UI component object code 502 associated with the UI component 501 of the library 113 can be updated (overwritten) using the post-compiled object code 701. Such an advantage can be similarly obtained in an environment in which the code of the UI component 501 is described in the browser architecture (HTML (HyperText Markup Language) 5 / CSS (Cascading Style Sheets)).

<J.プログラム>
本実施の形態に示したIPC100においてHMIプログラム112の開発環境を提供するRuntime600は、フラッシュメモリ108などの記憶部に格納されている。プロセッサ102は、記憶部からRuntime600を読出し、メインメモリ106を構成するRAMなどに展開する。そして、プロセッサ102は、RAMに展開された当該プログラムを解釈及び実行して、IPC100の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。
<J. Program>
The Runtime 600 that provides the development environment for the HMI program 112 in the IPC 100 shown in the present embodiment is stored in a storage unit such as a flash memory 108. The processor 102 reads the Runtime 600 from the storage unit and expands it into a RAM or the like constituting the main memory 106. Then, the processor 102 interprets and executes the program expanded in the RAM, and controls each component of the IPC 100. By executing this, it becomes possible to realize various processes described in the present embodiment.

またRuntime600は、IPC100に付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカード120などのコンピュータ読取り可能な記憶媒体にて記録させて、プログラム製品として提供することもできる。このような記憶媒体は、プロセッサその他装置、機械などが記憶されたプログラムなどの情報を読み取り可能なように、当該プログラムなどの情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。IPC100は、この記憶媒体から、Runtime600を取得してもよい。 The Runtime 600 is provided as a program product by recording on a computer-readable storage medium such as a flexible disk, a CD-ROM (Compact Disk-Read Only Memory), a ROM, a RAM, and a memory card 120 attached to the IPC100. You can also. Such a storage medium can electrically, magnetically, optically, mechanically or chemically act on the information of the program or the like so that the processor or other device, the machine or the like can read the information of the stored program or the like. It is a medium that accumulates by. The IPC 100 may acquire a Runtime 600 from this storage medium.

あるいは、Runtime600は、IPC100に内蔵する図示しないHDD(Hard Disc Drive)などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。 Alternatively, the Runtime 600 can be recorded on a recording medium such as an HDD (Hard Disc Drive) (not shown) built in the IPC 100 to provide a program. The program can also be provided by downloading from a network (not shown) via a communication interface.

また、HMI装置200においても、HMIプログラム112の開発環境を提供するRuntime600が実行される。HMI装置200では、Runtime600は、HMI装置200の記憶部(HDD208、記録媒体250など)に格納されている。CPU202は、記憶部からRuntime600を読出し、RAM206などに展開する。そして、CPU202は、RAM206に展開された当該プログラムを解釈及び実行して、HMI装置200の各構成要素を制御する。実行することにより、本実施の形態で説明した各種処理を実現することが可能となる。 Further, the HMI device 200 also executes the Runtime 600 that provides the development environment for the HMI program 112. In the HMI device 200, the Runtime 600 is stored in a storage unit (HDD 208, recording medium 250, etc.) of the HMI device 200. The CPU 202 reads the Runtime 600 from the storage unit and expands it to the RAM 206 or the like. Then, the CPU 202 interprets and executes the program expanded in the RAM 206 to control each component of the HMI device 200. By executing this, it becomes possible to realize various processes described in the present embodiment.

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

<K.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラム(112)を実行する情報処理装置(100、200)であって、
前記HMIプログラムを構成するユーザインターフェイス(UI)部品(501)に紐付けられたオブジェクトコード(502)を格納する格納手段(113)と、
UI部品のソースコード(700)から実行可能なオブジェクトコード(701)を生成するコンパイラ(1163)と、
前記HMIプログラムを実行する手段(600)と、を備え、
前記実行する手段は、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択する手段(601)を含む、情報処理装置。
[構成2]
前記情報処理装置に対するユーザ操作を受付ける手段(122、210)を、さらに備え、
前記選択する手段は、
受付けたユーザ操作内容を示す値が設定される入力パラメータ(602)と、前記入力パラメータに設定された値に従い、前記コンパイラにより生成されたオブジェクトコードおよび前記UI部品に紐付けられたオブジェクトコードのうちの一方の選択を指示する指令コードを有する関数(500)を実行する、構成1に記載の情報処理装置。
[構成3]
前記関数は、前記UI部品から呼出される、構成2に記載の情報処理装置。
[構成4]
前記関数は、さらに、
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コード(513)を有する、構成2または3に記載の情報処理装置。
[構成5]
前記ユーザ操作を受付ける手段は、
前記情報処理装置のディスプレイに表示されるオブジェクト(1172)に対するユーザ操作を受付ける手段を含む、構成2から4のいずれか1に記載の情報処理装置。
[構成6]
前記選択する手段により選択された前記一方が、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、前記オブジェクトの表示態様を変化させる手段(S19、図10)を、さらに備える、構成5に記載の情報処理装置。
[構成7]
前記関数は、さらに、
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコード(514、516)を有する、構成2から6のいずれか1に記載の情報処理装置。
[構成8]
前記コンパイラにより生成されたオブジェクトコードが格納されているとの前記条件が満たされない場合に、その旨を記録する手段(S23)を、さらに備える、構成7に記載の情報処理装置。
[構成9]
前記コンパイラにより生成されたオブジェクトコードを用いて、前記格納手段の紐付けられたオブジェクトコードを上書きする(1173)、構成1から8のいずれか1に記載の情報処理装置。
[構成10]
前記ソースコードを作成または編集するエディタ(1162)を、さらに備える、構成1から9のいずれか1に記載の情報処理装置。
[構成11]
FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラム(112)を、コンピュータ(100、200)に実行させるためのプログラム(600)であって、
前記コンピュータは、前記HMIプログラムを構成するユーザインターフェイス(UI)部品(501)に紐付けられたオブジェクトコード(502)を格納する格納手段(113)を備え、
前記実行させるためのプログラムは、前記コンピュータに、
UI部品のソースコードから実行可能なオブジェクトコード(701)を生成するコンパイラを起動させるステップ(S9)と、
前記HMIプログラムを実行する場合に、当該HMIプログラムを構成するUI部品のオブジェクトコードとして、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちの一方を選択させるステップ(S13)とを含む、プログラム。
<K. 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 configuration 1, which executes a function (500) having a command code instructing one of the selections.
[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 configuration 5, further comprising S19, FIG. 10).
[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 configuration 7, further comprising means (S23) for recording the condition that the condition that the object code generated by the compiler is stored is not satisfied.
[Structure 9]
The information processing apparatus according to any one of configurations 1 to 8, wherein the object code generated by the compiler overwrites the object code associated with the storage means (1173).
[Structure 10]
The information processing apparatus according to any one of configurations 1 to 9, further comprising an editor (1162) for creating or editing the source code.
[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)

FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを実行する情報処理装置であって、
前記情報処理装置に対するユーザ操作を受付ける手段と、
前記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.
前記関数は、前記UI部品から呼出される、請求項に記載の情報処理装置。 The information processing apparatus according to claim 1 , wherein the function is called from the UI component. 前記関数は、さらに、
前記入力パラメータに設定された値に従い前記コンパイラの起動を指示する指令コードを有する、請求項またはに記載の情報処理装置。
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項に記載の情報処理装置。
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.
前記選択する手段により選択された前記一方が、前記コンパイラにより生成されたオブジェクトコードおよび当該UI部品に紐付けられたオブジェクトコードのうちのいずれであるかに従い、前記オブジェクトの表示態様を変化させる手段を、さらに備える、請求項に記載の情報処理装置。 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 information processing apparatus according to claim 4 , further comprising. 前記関数は、さらに、
前記コンパイラにより生成されたオブジェクトコードが格納されているとの条件が満たされないときは、前記格納手段の前記オブジェクトコードの選択を指令するコードを有する、請求項からのいずれか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.
前記コンパイラにより生成されたオブジェクトコードが格納されているとの前記条件が満たされない場合に、その旨を記録する手段を、さらに備える、請求項に記載の情報処理装置。 The information processing apparatus according to claim 6 , further comprising means for recording the condition that the condition that the object code generated by the compiler is stored is not satisfied. 前記コンパイラにより生成されたオブジェクトコードを用いて、前記格納手段の紐付けられたオブジェクトコードを上書きする、請求項1からのいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 7 , wherein the object code generated by the compiler overwrites the object code associated with the storage means. 前記ソースコードを作成または編集するエディタを、さらに備える、請求項1からのいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 8 , further comprising an editor for creating or editing the source code. FA(ファクトリオートメーション)のためのヒューマンマシンインターフェイス(HMI)プログラムを、コンピュータに実行させるためのプログラムであって、
前記コンピュータは、前記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.
JP2018155926A 2018-08-23 2018-08-23 Information processing equipment and programs Active JP6984565B2 (en)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2020030621A 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)

* Cited by examiner, † Cited by third party
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)

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

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