JP2020021155A - サポート装置およびサポートプログラム - Google Patents

サポート装置およびサポートプログラム Download PDF

Info

Publication number
JP2020021155A
JP2020021155A JP2018142645A JP2018142645A JP2020021155A JP 2020021155 A JP2020021155 A JP 2020021155A JP 2018142645 A JP2018142645 A JP 2018142645A JP 2018142645 A JP2018142645 A JP 2018142645A JP 2020021155 A JP2020021155 A JP 2020021155A
Authority
JP
Japan
Prior art keywords
program
type
code
hmi
compatible
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018142645A
Other languages
English (en)
Other versions
JP7001012B2 (ja
Inventor
弓束 重森
Yumitsuka Shigemori
弓束 重森
ファーズマン マーク
Furthman Mark
ファーズマン マーク
アプス ニック
Apps Nick
アプス ニック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018142645A priority Critical patent/JP7001012B2/ja
Priority to EP19845516.4A priority patent/EP3832457A4/en
Priority to CN201980038770.6A priority patent/CN112272820B/zh
Priority to PCT/JP2019/027337 priority patent/WO2020026737A1/ja
Priority to US17/253,119 priority patent/US11429357B2/en
Publication of JP2020021155A publication Critical patent/JP2020021155A/ja
Application granted granted Critical
Publication of JP7001012B2 publication Critical patent/JP7001012B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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
    • G05B19/054Input/output

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】HMIプログラムの構成要素に適合するOSの種類を多様化する。【解決手段】サポート装置(200)はFAの対象の制御装置(100-1、100−2)で実行されるHMIプログラム(112)を構成するUI要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定を受付け、指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成し、第2種類のOSに適合するプログラムコードと、対象装置が有するOSは第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コードとを含むラッパープログラムを生成する。ラッパープログラムが組込まれたHMIプログラムから実行可能コードのプログラムが生成される。【選択図】図1

Description

本開示は、FA(ファクトリオートメーション)のプログラムの開発を支援するサポート装置および開発支援プログラムに関する。
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA技術が広く普及している。近年の情報通信技術(ICT:Information and Communication Technology)の発展に伴って、このようなFA分野における制御装置もますます高性能化および高機能化している。
これに伴い、FA制御に関する各種プログラムの開発においても、例えばWindows(登録商標)のOSに適合したアプリケーションプログラムの開発環境において提供される外部コントロールを、非WindowsであってFA向けのOSに適合したアプリケーションプログラムを構成するUI(ユーザインターフェイス)要素として利用したいとの要望がある。例えば、制御装置を介してフィールド機器の状態をモニタまたは制御するためのUI画面を提供するためのHMI(ヒューマンマシンインターフェイス)プログラムを構成するUI要素として、外部コントローラを利用したいとの要望がある。
特許文献1(特表2015−524126号公報)では、ソースコードのうちプラットフォーム非依存のソースコードが、異なるプラットフォーム及び/又はバージョンのために注釈を付されたソースコードの1又は複数の部分を用いて拡張されることを開示する。
特表2015−524126号公報
特許文献1は、ソースコードの拡張を開示するが、汎用OSに適合した外部コントロールを、非汎用OSに適合したプログラムを構成するUI要素として利用可能にする技術は開示しない。
本開示の一つの目的は、HMIプログラムの構成要素に適合するOSの種類を限定せず多様化することを可能にするプログラム開発の支援環境を提供することである。
この開示の一例にかかるサポート装置は、FA(ファクトリオートメーション)の対象装置で実行されるHMI(ヒューマンマシンインターフェイス)プログラムの開発を支援するサポート装置であって、HMIプログラムを構成するUI(ユーザインターフェイス)要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定を受付ける受付手段と、指定がなされたUI要素から、対象装置が備えるOSの種類を含む第2種類のOSに適合するUI要素のプログラムコードを生成するコード生成手段と、生成された第2種類のOSに適合するプログラムコードと、対象装置が有するOSは第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コードとを含むラッパープログラムを生成するラッパー生成手段と、を備え、第1種類のOSに適合するプログラムコードのUI要素としてラッパープログラムが組込まれたHMIプログラムから実行可能コードのプログラムを生成する。
この開示によれば、HMIプログラムの構成要素として、第1種類のOSに適合したUI要素により構成されるHMIプログラムと、OSを含む第2種類のOSに適合したUI要素により構成されるHMIプログラムを並行して開発することを可能にするプログラム開発の支援環境を実現できる。
これにより、第1種類のOSが汎用のOSであれば、汎用OSに適合するアプリケーションの開発環境において提供されるUI要素を、FA分野のHMIプログラムの開発にも利用することが可能となる。
上述の開示において、ラッパー生成手段は、さらに、指令コードに、対象装置が有するOSは第1種類のOSであるとの条件が満たされる場合に第1種類のOSに適合するプログラムコードのUI要素を含むHMIプログラムの実行モジュールの生成を指令するコードを含める。
この開示によれば、HMIプログラムが対象装置で実行される場合に、対象装置が第1種類のOSを備える場合は、第1種類のOSに適合するプログラムコードのUI要素を含むHMIプログラムの実行モジュールが生成され、また、対象装置が第2種類のOSを備える場合は、第2種類のOSに適合するプログラムコードのUI要素を含むHMIプログラムの実行モジュールが生成される。
これにより、1つのHMIプログラムのプログラムコードから、第1種類のOSに適合する実行モジュールと、第2種類のOSに適合する実行モジュールとを生成することができる。したがって、第1種類のOSに適合したプログラム開発環境と第2種類のOSに適合したプログラム開発環境の両方を準備することなく、各種類のOSに適合した1つのHMIプログラムを生成することができる。
上述の開示において、コード生成手段は、第1種類のOSに適合するプログラムコードのUI要素のプロパティのうち第2種類のOSに適合するプログラムコードのUI要素のプロパティに一致するプロパティを抽出し、抽出されたプロパティを含むUI要素のプログラムコードから、第2種類のOSに適合するUI要素のプログラムコードを生成する。
上述の開示によれば、第1種類のOSに適合するプログラムコードのUI要素のプロパティを用いて、第2種類のOSに適合するUI要素のプログラムコードが生成される。したがって、新たな情報を必要とせずに、第2種類のOSに適合するUI要素のプログラムコードを生成することができる。
上述の開示において、UI要素の選択候補の一覧を出力する手段と、一覧に、受付手段が受付ける第1種類のOSに適合するプログラムコードのUI要素を登録する登録手段と、をさらに備え、一覧からユーザが選択するUI要素を用いてHMIプログラムを編集する。
上述の開示によれば、ユーザは、第1種類のOSに適合するプログラムコードのUI要素を、UI要素の選択候補の一覧に登録することで、当該UI要素を一覧から選択してHMIプログラムを構成するUI要素として用いることができる。
上述の開示において、ラッパー生成手段は、実行可能コードのプログラムを生成するとき、ラッパープログラムを生成する。
上述の開示によれば、編集されたHMIプログラムの実行可能コードのプログラムを生成するときに、ラッパープログラムを生成することができる。
上述の開示において、ラッパー生成手段は、登録手段により第1種類のOSに適合するプログラムコードのUI要素が一覧に登録されるとき、ラッパープログラムを生成する。
上述の開示によれば、第1種類のOSに適合するプログラムコードのUI要素を一覧に登録するときに、ラッパープログラムを生成することができる。
上述の開示において、対象装置が備えるOSの種類が第1種類でないとき、コード生成手段は、指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成する。
上述の開示によれば、対象装置のOSの種類が第1種類に該当すればコード生成手段によるプログラムコードの生成およびラッパー生成手段によるラッパープログラムの生成を省略することができる。
この開示の一例にかかるサポートプログラムは、FA(ファクトリオートメーション)の対象装置で実行されるHMI(ヒューマンマシンインターフェイス)プログラムの開発を支援するサポートプログラムであって、コンピュータに、HMIプログラムを構成するUI(ユーザインターフェイス)要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定を受付けるステップと、指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成するステップと、生成された第2種類のOSに適合するプログラムコードと、対象装置が有するOSは第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コードとを含むラッパープログラムを生成するステップと、第1種類のOSに適合するプログラムコードのUI要素としてラッパープログラムが組込まれたHMIプログラムから実行可能コードのプログラムを生成するステップを実行させる、サポートプログラム。
この開示によれば、HMIプログラムの構成要素として、第1種類のOSに適合したUI要素により構成されるHMIプログラムと、OSを含む第2種類のOSに適合したUI要素により構成されるHMIプログラムを並行して開発することを可能にするプログラム開発の支援環境を実現できる。
これにより、第1種類のOSが汎用のOSであれば、汎用OSに適合するアプリケーションの開発環境において提供されるUI要素を、FA分野のHMIプログラムの開発にも利用することが可能となる。
この開示によれば、HMIプログラムの構成要素に適合するOSの種類を限定せずに多様化することを可能にするプログラム開発の支援環境を提供することができる。
本発明の実施の形態に係るシステムの構成を模式的に示す図である。 本発明の実施の形態にかかる制御装置100のハードウェア構成の一例を模式的に示す図である。 本発明の実施の形態にかかるサポート装置200のハードウェア構成の一例を模式的に示す図である。 本発明の実施の形態にかかるプログラムの開発環境と実行環境の全体構成の一例を模式的に示す図である。 本発明の実施の形態にかかるサポート装置200における開発環境と実行環境の具体的な構成例を模式的に示す図である。 本発明の実施の形態にかかる外部コントロールのコンバート処理のためのモジュール構成の一例を模式的に示す図である。 本発明の実施の形態にかかるツールボックス管理の処理の概要を模式的に示す図である。 本発明の実施の形態にかかるI/F変換ソースコードを生成する処理の一例を模式的に示す図である。 本発明の実施の形態にかかるI/F変換オブジェクトの一例を模式的に示す図である。 本発明の実施の形態にかかるHMIプログラムの編集(エディト)時の表示画面の一例を模式的に示す図である。 本発明の実施の形態にかかるHMIプログラム112の内部コードの一部を例示する図である。 本発明の実施の形態にかかる外部コントロール501を開発環境42に取込む処理の一例を概略的に示すフローチャートである。 本発明の実施の形態に係るエディトおよびコンパイルの処理の一例を示すフローチャートである。 本発明の実施の形態に係るHMIプログラム実行時の外部コントロールの処理の一例を示すフローチャートである。 本発明の実施の形態に係る制御装置100のソフトウェア構成の一例を示す模式図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本発明の実施の形態に係るシステムの構成を模式的に示す図である。本実施の形態に係るサポート装置200は、FAの対象装置で実行されるHMIプログラムの開発を支援する装置であり、例えば汎用のコンピュータを適用することができる。対象装置は、制御装置としてのIPC(産業用コンピュータ)100−1およびPLC100−2を含む。制御装置は、任意の制御対象となるフィールドに設けられるデバイス300(例えば、製造装置や設備)を制御する。
サポート装置200は、HMIプログラム112の編集し、および編集後のHMIプログラム112をコンパイルする。コンパイルにより、HMIプログラム112から、対象装置が実行可能プログラムコードからなる実行形式プログラムが生成される。対象装置は、サポート装置200から転送された実行形式のHMIプログラム112を実行することにより、HMI画面を表示する。
サポート装置200は、HMIプログラム112を構成するUI(ユーザインターフェイス)要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定をユーザから受付けると、指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成する。サポート装置200は、生成された第2種類のOSに適合するプログラムコードと、対象装置が有するOSは第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コードとを含むラッパープログラムに相当するI/F変換オブジェクト425Bを生成する。サポート装置200は、コンパイル時は、第1種類のOSに適合するプログラムコードのUI要素として上記のラッパープログラム(I/F変換オブジェクト425B)が組込まれたHMIプログラム112から実行可能形式のプログラムを生成する。
図1の構成においては、サポート装置200からHMIプログラム112が対象装置に転送されて、対象装置で実行される場合に、ラッパープログラムが実行されることにより、対象装置が第1種類のOSを備える場合は、例えばIPC100−1では、第1種類のOSに適合するプログラムコードのUI要素(例えば外部コントロール501)を含むHMIプログラムの実行モジュール600が生成される。また、対象装置が第2種類のOSを備える場合は、例えばPLC100では、第2種類のOSに適合するプログラムコードのUI要素(外部コントロール501の代替コントロール502)を含むHMIプログラムの実行モジュール700が生成される。
このようにラッパープログラムが実行されることにより、同一のHMIプログラム112のソースコードから、外部コントロール501を含むWindowsに適合する実行モジュールと、外部コントロール501ではない代替コントロール502を含む非WindowsのOSに適合する実行モジュールとを生成することができる。
これにより、サポート装置200において、第1種類のOSに適合したプログラム開発環境と第2種類のOSに適合したプログラム開発環境の両方を準備せずとも、対象装置が備える各種類のOSに適合可能なHMIプログラム112を開発することができる。
上記の第1種類のOSは、典型的には、例えばWindows(登録商標)などの汎用のOSであり、第2種類のOSは、第1種類のOSとは異なる種類のOSであり、典型的には、FA向けのプログラムに適用されるOSである。例えば、非WindowsのLinux(登録商標)、UNIX(登録商標)などを含む。また、第1種類のOSと第2種類のOSは、バージョン違いのOSであってもよい。例えば、第1種類のOSはWindows10(登録商標)および第2種類のOSはWindowsCE(登録商標)であってもよい。
なお、本実施の形態では、OSに適合するプログラム(またはプログラムコード)は、当該OSの下で解釈および実行可能なコード体系を有するプログラムまたはプログラムコードを示す。
以下、本発明のより具体的な応用例として、本実施の形態にかかるサポート装置200が提供するHMIプログラムの開発環境を詳細に説明する。
<B.システム構成>
図1は、本発明の実施の形態に係るシステムの構成を模式的に示す図である。図1を参照して、FAのシステム1は、制御装置としてのIPC(産業用コンピュータ)100−1およびPLC100−2、複数のデバイス300、およびサポート装置200をネットワーク接続する。制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムなどのユーザプログラムが実行される。このようなユーザプログラムは、制御装置とは別に用意された開発環境としてのサポート装置200で開発される。
サポート装置200は、例えば汎用のコンピュータであり、システム1の各種プログラムを統合して開発する環境を提供するとともに、制御装置に対してユーザプログラムを転送する機能を提供する。以降では、IPC100−1およびPLC100−2を制御装置100と総称する。デバイス300は、制御対象となる図示しないフィールド機器をネットワーク接続する。制御対象は、例えばセンサ、アクチュエータなどを含み得る。
サポート装置200と制御装置100の間は、例えばUSB(Universal Serial Bus)に従う伝送路が採用される。制御装置100とデバイス300の伝送路は、例えばTSN(Time-sensitive networking)規格に従いデータの到達時間が保証されるバスまたはネットワークを採用することが好ましい。例えばマシンコントロール用ネットワークの一例であるEtherCAT(登録商標)が採用され得る。
サポート装置200において開発されるユーザプログラムは、例えば制御装置100がデバイス300を制御するための制御演算を実施するための制御プログラムおよびHMI処理を実施するためのHMIプログラムなどの各種のプログラムを含む。これらユーザプログラムは、例えばLinux(登録商標)、UNIX(登録商標)などの非Windowsに適合するプログラムまたはWindowsに適合するプログラムを含み得るが、OSの種類はこれらに限定されない。開発されたプログラムは、サポート装置200から制御装置100に転送されて制御装置100のプロセッサにより実行される。
制御演算は、デバイス300がフィールド機器から収集したデータまたは生成したデータの処理、デバイス300に対する指令などのデータを生成する処理(演算処理)、生成した出力データを対象のデバイス300へ送信する処理(出力処理)などを含む。
HMI処理は、FAの各種機器(制御装置100、デバイス300およびフィールド機器)の状態などの情報を収集する、収集情報をHMI画面で出力する、および各種機器を操作するためのユーザ設定(指令、値などの設定)操作を、HMI画面などを介して受付けるなどの処理を含む。
なお、図1に示すシステム1においては、サポート装置200は、制御装置100とは別体として備えられるが、サポート装置200は、制御装置100に一体的に備えられてもよい。すなわち、サポート装置200が有する機能は、制御装置100に内蔵され得る。
<C.制御装置100のハードウェア構成例>
図2は、本発明の実施の形態にかかる制御装置100のハードウェア構成の一例を模式的に示す図である。図2を参照して、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、外部ネットワークコントローラ116と、メモリカードインターフェイス118と、内部バスコントローラ122と、フィールドバスコントローラ124とを含む。
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラムを読み出して、メインメモリ106に展開して実行することで、デバイス300またはフィールド機器などの制御対象に対する制御処理またはHMI処理を実現する。
システムプログラム110は、データの入出力処理や実行タイミング制御などの、PLC100の基本的な機能を提供するための命令コードを含む。ユーザプログラムは、制御対象に応じて任意に設計される制御プログラム111およびHMIプログラム112、およびライブラリ113を含む。制御プログラム111は、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムなどを含む。HMIプログラム112は、例えば各HMI画面に対応したプログラムを含む。ライブラリ113には、外部コントロール501、HMIプログラムを構成するUI(User Interface)要素および制御プログラムを構成する関数などの単位プログラムなどが、実行可能コード(例えば、中間コード)の態様で登録される。UI要素は、後述する図5のユーザが定義したユーザ定義UI1163およびシステムにより定義されるシステム定義UI1162の実行可能コードを含む。
チップセット104は、各コンポーネントを制御することで、PLC100全体としての処理を実現する。
内部バスコントローラ122は、PLC100と内部バスを通じて連結されるI/Oユニット14との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ124は、PLC100と図示しないフィールドバスを通じて連結されるI/Oユニット16との間でデータを遣り取りするインターフェイスである。内部バスコントローラ122およびフィールドバスコントローラ124は、対応のI/Oユニット14および16にそれぞれ入力される状態値を取得するとともに、プロセッサ102での演算結果を対応のI/Oユニット14および16から指令値としてそれぞれ出力する。
外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。制御装置100は、外部ネットワークコントローラ116またはメモリカードインターフェイス118を介してサポート装置200とデータを遣り取りする。
PLC100がプログラムを実行することで提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
<D.サポート装置200のハードウェア構成例>
次に、サポート装置200のハードウェア構成例について説明する。図3は、本発明の実施の形態にかかるサポート装置200のハードウェア構成の一例を模式的に示す図である。図3を参照して、サポート装置200は、据え置き型でもよく、または制御装置100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
サポート装置200は、OSを含む各種プログラムを実行するCPU202と、BIOSや各種データを格納するROM(Read Only Memory)104と、CPU202でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM(Random Access Memory)206と、CPU202で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)208とを含む。
サポート装置200は、さらに、サポート装置200に対するユーザの操作を受付けるキーボード210およびマウス212を含む入力部211と、情報をユーザに提示するためのディスプレイ214とを含む。サポート装置200は、制御装置100と通信するための通信インターフェイス218を含む。入力部211は、ディスプレイ214と一体的に構成されるタッチパネルとして提供されてもよい。
サポート装置200は、記録媒体250からそれに格納されているサポートプログラムを読み取るための記録媒体読取装置217を含む。このサポートプログラムは、プログラム開発環境を実現するプログラムを含み得る。
<E.制御装置100のソフトウェア構成>
図15は、本発明の実施の形態に係る制御装置100のソフトウェア構成の一例を示す模式図である。図15は、例えばIPC100−1の構成例を示す。
図15を参照して、制御装置100においては、ハイパーバイザが制御装置100のハードウェアリソースを管理するとともに、リアルタイムOS114およびWindows512などの汎用OS1161に対して、これらのハードウェアリソースを調停しながら割当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムOS114および汎用OS1161を実行させる。すなわち、ハイパーバイザを用いて、異なる種類のOSを実行する仮想化環境を実現する。リアルタイムOS114と汎用OS1161との間は、ハイパーバイザを介して、論理的なネットワークが構成されている。
リアルタイムOS114では、シーケンスプログラムを含む制御プログラム111が実行される。制御プログラム111の実行にあたって、タスクスケジューラ1142と、プログラムマネージャ1144と、I/O(Input/Output)制御プロセス1146とが連係する。制御プログラム111は、予め実行可能コードに変換されて、実行時は、タスクスケジューラ1142、プログラムマネージャ1144、I/O制御プロセス1146と連係しつつ、制御対象からの信号の取得、制御ロジックの実行、実行結果の反映(アクチュエータの制御)を繰返す。
汎用OS1161の下では、任意のユーザアプリケーションである例えばHMIプログラム112を含むユーザアプリケーション1164および汎用アプリケーション1162がライブラリ113の各種プログラムを呼出しながら実行される。汎用アプリケーション1162は、汎用OS1161で実行可能な標準的なアプリケーションであり、HMIプログラム112などのユーザアプリケーションと連係することで、汎用的な処理や機能を用いて、より少ない工数でシステムを構築することができる。
ライブラリ113は、システム定義UI1162、ユーザ定義UI1163および外部コントロール501を、実行可能コードからなる実行可能形式で備える。
また、汎用OS1161の下では、第1種類のOS(汎用OS)に適合する実行モジュール600または第2種類のOS(非汎用OS)に適合する実行モジュール700が生成され得る。
<F.プログラム開発環境と実行環境>
図4は、本発明の実施の形態にかかるプログラムの開発環境と実行環境の全体構成の一例を模式的に示す図である。図4を参照して、開発環境42はサポート装置200において提供されて、実行環境は制御装置100で提供される。図4では、開発環境と実行環境は別の装置に備えられるが、同一の装置で提供されてもよい。なお、開発環境42を構成する各種プログラムおよびデータは、サポート装置200のRAM206などの記憶部に格納される。
図4を参照して、開発環境42と実行環境は、Windows40およびドットネット(.NET)のフレームワーク41の上で提供される。開発環境42は、例えばVB.NET(ヴィジュアル ベーシック ドットネット)のスクリプトによるHMIプログラム言語処理系46、HMI向けUI要素の処理系45、UI要素のコンパイラ43およびHMIプログラムのコンパイラ44を含む。実行環境は、HMIプログラムを実行するためのライブラリなどの実行可能コードからなるアセンブリ49を備える。本実施の形態では、開発環境において、HMI言語処理系のエディタ309およびHMI向けUI要素の処理系45で生成されたプログラムソースコードは、UI要素のコンパイラ43およびコンパイラ44によりコンパイルされる。コンパイルによりソースコードは実行可能コード(中間コード)からなる実行可能形式のファイルとされる。コンパイル後のHMIプログラムは、HMI向けの実行環境において、アセンブリ49を利用して実行モジュールとされて、実行モジュールが実行される。実行モジュールは、実行可能形式のHMIプログラム112にUI要素の実行可能形式のオブジェクトをリンクすることにより提供される。
図5は、本発明の実施の形態にかかるサポート装置200における開発環境と実行環境の具体的な構成例を模式的に示す図である。図5を参照して、サポート装置200では、PCのハードウェアリソースの下で実行されるWindows40と、Windows40の下で提供されるFA開発環境507の各種プログラムの下でHMIプログラム112の開発環境42を提供するプログラムが実行される。これらプログラムは、開発環境42における外部コントロールコンバータ425、コンパイラ506およびエディタ309を含む。これらHMIプログラム112の開発環境を実現するためのプログラムからなるサポートプログラム710は、RAM206に格納される。
外部コントロールコンバータ425は、Windowsに適合するプログラムを構成するためのUI要素として提供される外部コントロール501を、非WindowsのOSの下で実行可能にするためのコードに変換する。コンパイラ506は、図4のUI要素のコンパイラ43およびコンパイラ44を含む。エディタ309は、ユーザ操作を受付けて、受付けた操作内容に従いHMIプログラム112を編集(作成)する。また、FA開発環境507のもとでは、制御プログラム111を開発する環境も提供される。外部コントロール501、HMIプログラム112および制御プログラム111もRAM206に格納される。
制御プログラム111は、PLCのためのプログラミングの規格であるIECに従うプログラムと各種ライブラリを含む。HMIプログラム112は、当該HMIプログラム112を構成するUI要素として、ユーザが定義したUIまたはシステムが定義したUIを含む。なお、ユーザは、エディト時に、HMIプログラム112を構成するUI要素として外部コントロール501を選択することができる。
FA開発環境507の下でコンパイラ506が起動されると、HMIプログラム112はコンパイルされて、HMIプログラム112のソースコードから実行可能コードが生成される。実行可能コードのHMIプログラム112は、制御装置100に転送される。
制御装置100の実行環境では、Windows512の下で起動されるRuntime(ランタイム)513により、実行可能コードのHMIプログラム112の実行が支援される。Runtime513は、実行可能コードのHMIプログラム112からWindows512に適合した実行モジュールを生成する。Windows512は、HMIプログラム112の実行モジュールのコードを解釈および実行することにより、各種UI要素を含むHMI画面を提示するなどのHMI処理が実施される。
また、コンパイルされた制御プログラム111の実行可能コードは、リアルタイムOS114により解釈および実行されて、制御処理が実施される。
制御装置100では、HMI処理を実施するHMIプログラム112と制御処理を実施する制御プログラムの間で、両者のOSおよび論理的なネットワーク(図15参照)を介してデータを遣り取りすることができる。これにより、例えば、実行環境においては、制御処理によって取得される制御対象のフィールド機器の状態(センサの出力など)を、HMI画面のUI要素の表示態様(例えば、表示色など)により提示することが可能となる。また、HMI画面のUI要素を操作して入力されたデータを、制御処理により制御対象のフィールド機器の状態を変更するデータとして用いることができる。
<G.外部コントロールコンバートのための構成>
図6は、本発明の実施の形態にかかる外部コントロールのコンバート処理のためのモジュール構成の一例を模式的に示す図である。図6を参照して、開発環境42は、入力部211を介したユーザ操作から受付けるコンパイル指示421Aに従い、コンパイラ506を起動するコンパイル実行部421、OS種類保持部424、および外部コントロールコンバータ425を含む。コンパイラ506は、UI要素から構成されるHMIプログラム112をコンパイルするHMIコンパイラ422と、外部コントロール501をコンパイルするWinAppコンパイラ423を含む。
OS種類保持部424は、制御装置100のOS種類424Aを取得しRAM206などのメモリに保持(記憶)する。OS種類保持部424は、OS種類424Aを、入力部211を介したユーザ操作の内容から取得する、または制御装置100から受信することで取得する。OS種類424Aを取得するために、サポート装置200は例えばHTTP(Hypertext Transfer Protocol)などの通信プロトコルに従い制御装置100と通信する。
外部コントロールコンバータ425は、入力部211を介したユーザ操作に従い、外部コントロール501の取込指示425Kを受付けている場合、RAM206に格納されている外部コントロール501をアクセスし、外部コントロール501のコードからI/F(インターフェイス)変換ソースコード425Aを生成しRAM206に格納する。I/F変換ソースコード425Aでは、Windowsに適合した外部コントロール501のI/F部分のソースコードを非WindowsのUI要素に適合したコードを含む。図6の各部の動作の詳細は、図12の説明において後述する。
<H.エディタ処理>
図7は、本発明の実施の形態にかかるツールボックス管理の処理の概要を模式的に示す図である。図10は、本発明の実施の形態にかかるHMIプログラムの編集(エディト)時の表示画面の一例を模式的に示す図である。図11は、本発明の実施の形態にかかるHMIプログラム112の内部コードの一部を例示する図である。
(h1.エディト処理)
本実施の形態では、エディタ309はHMIプログラム112を編集する場合に、例えば図10に示すエディタ画面をディスプレイ214に表示させる。本実施の形態では、HMIプログラム112はHMI画面に対応するページ毎のプログラムを含む。HMIプログラム112は複数ページから構成されて、エディタ画面では、HMIプログラのページ461と、ツールボックス462とが表示される。ツールボックス462のデータは、例えばRAM206に格納されて、HMIプログラムの編集時にエディタ309によりRAM206から読出されて表示される。
図10を参照して、ツールボックス462は、ディスプレイ214に表示されることにより、UI要素の選択候補の一覧を出力する手段に相当する。具体的には、この一覧には、HMIプログラム112の編集に用いることができるUI要素の名前などの識別子の一覧が含まれる。ツールボックス462に登録可能なUI要素は、FAのHMIためのユーザ定義UIまたはシステム定義UIと、外部コントロール501を含み得る。UI要素には、例えばボタン、ランプなどのGUI要素を含み得る。
ページ461を編集する場合、ユーザは、入力部211を操作してツールボックス462の中からUI要素を選択し、ページ461の所望の位置まで選択したUI要素をドラッグ操作で移動させてドロップ操作する。エディタ309は、ドラッグ/ドロップ操作を受付けて、当該ページ461のHMIプログラムに選択されたUI要素が組込まれるようにページ461を編集(作成)する。ユーザは、ディスプレイ214のページ461の切替操作により、他のページ461に切替え表示して同様に編集することができる。このように、ユーザは、プログラムコードを入力せずとも、ページ461にUI要素を配置する操作を行なうことで、HMIプログラム112を編集することができる。
例えば、ページ461を構成するUI要素として外部コントロール501が選択された場合、ページ461のソースコードに、I/F変換後の外部コントロール501を呼出すためのコードが追加される。例えば、エディタ309は、図11のように、外部コントロール501の名前にconverted_を追加した“converted_SampleControl”の名前を用い外部コントロール501の呼出コードが追加される。
(h2.ツールボックス462の登録)
次に、上記のエディト処理で用いるツールボックス462に、外部コントロール501を登録するための構成を説明する。
図7を参照して、開発環境42は、外部コントロールファイル選択部427、ラッパー生成部428を備える外部コントロールコンバータ425およびツールボックス管理部391を備える。ユーザは入力部211を操作して、機能メニュー426から外部コントロール501の取込機能を選択する。外部コントロールファイル選択部427は、ユーザの当該選択操作に従う外部コントロール取込指示425Kに基づき、RAM206から選択された外部コントロール501の実行可能コードのファイル(“SampleControl.dll”)を検索する。
外部コントロールコンバータ425は、外部コントロール501のファイル名である“SampleControl”のツールボックス462への登録依頼を管理部391に出力する。ツールボックス管理部391は、ツールボックス462のUI要素の候補の一覧に、入力部211を介したユーザ操作により受付けるWindowsに適合するプログラムコードのUI要素、すなわち外部コントロール501を登録する登録手段に相当する。この場合、ツールボックス管理部391は、外部コントロール501の名前“SampleControl”をツールボックス462に登録する。これにより、HMIプログラム112の編集に用いることができるUI要素の候補として、ユーザが選択した外部コントロール501を、ツールボックス462の一覧に登録することができる。
<I.外部コントロールコンバート処理>
図8は、本発明の実施の形態にかかるI/F変換ソースコードを生成する処理の一例を模式的に示す図である。図9は、本発明の実施の形態にかかるI/F変換オブジェクトの一例を模式的に示す図である。
(i1.I/F変換ソースコードの生成)
外部コントロールコンバータ425は、I/F変換ソースコードの生成処理を実施する。具体的には、外部コントロールコンバータ425は、ツールボックス462に登録される外部コントロール501のファイル“SampleControl.dll”のコードから、I/F変換ソースコード425Aを生成する。また、外部コントロールコンバータ425は、I/F変換ソースコード425Aをコンパイルして、I/F変換オブジェクト425Bを生成する。I/F変換オブジェクト425Bは、外部コントロール501のファイル“SampleControl.dll”を呼出すための指令コード(スクリプトなど)を有する。
まず、図8を参照して、外部コントロールコンバータ425は、外部コントロール501のファイル“SampleControl.dll”のコードを解析し、コードからI/F(インターフェイス)425Cを抽出する。また、外部コントロールコンバータ425は、I/F425Cと、必要I/F425Dとを比較する。この「I/F」は、外部コントロール501またはUI要素が有する属性であって、例えば表示の属性(色、サイズなど)または他のUI要素や他のプログラムなどとデータを授受するため通信属性などを含み得る。必要I/F425Dは、FAのHMIのUI要素として必要なプロパティを含むI/Fを示す。より典型的には、非WindowsのOSに適合したプログラムコードで示されるUI要素が有するプロパティを含むI/Fを示す。なお、必要I/F425Dのデータは、RAM206などに保持(格納)されている。
外部コントロールコンバータ425は、I/F比較の結果に基き、抽出I/F425Cが有するプロパティのうち、必要I/F425Dに含まれるプロパティと一致するプロパティ(属性の種類と数)を抽出する。外部コントロールコンバータ425は、抽出(一致)プロパティを用いて外部コントロール501をFAのHMIのUI要素として、すなわち非WindowsのOSに適合したUI要素として提示するためのソースコード425Gを生成する。I/F変換ソースコード425Aは、呼出し先の外部コントロール501の名前425Eと変換後のソースコード425Gを含む。
(i2.I/F変換オブジェクト425Bの生成)
外部コントロールコンバータ425のラッパー生成部428は、I/F変換ソースコード425Aをコンパイルすることにより例えば図9のI/F変換オブジェクト425Bを生成する。図9のI/F変換オブジェクト425Bはラッパープログラムの形式を有する。すなわち、I/F変換オブジェクト425Bは、Windowsが解釈および実行可能なソースコード425Hと、非WindowsのOSにより解釈および実行可能なソースコード425Gと、ラッパー部500を含む。
ソースコード425Hは、Windows512の下でのRuntaime513に対して、呼出し先の外部コントロール501の名前と、当該外部コントロール501を呼出し実行することを指示するコードを含む。
ソースコード425Gは、非WindowsのOSの下でのRuntimeに対して、ソースコード425Hから非WindowsのOSに適合したUI要素のオブジェクトモジュールを生成することを指示するコードを含む。
I/F変換オブジェクト425Bは、外部コントロール501の“SampleControl.dll”のようなHMLプログラムの実行モジュールに対して動的にリンクされる実行可能コードからなるファイルではなく、ソースコード425Gが実行されることにより実行可能コードからなるオブジェクトモジュールに変換されるような、中間コードともいえる。
ラッパー部500は、実行されると、制御装置100のRuntimeにOS種類を判断させ、判断されたOS種類に基づき、ソースコード425Hによる実行モジュールを生成するか否かの切替えを指示するコードを含む。より具体的には、このコードが実行されると、OS種類がWindowsであるとの条件が満たされる場合は、制御装置100のOS(Windows512)により提供される外部コントロール501を含むHMIプログラム112の実行モジュールが生成される。これに対し、判断されたOS種類が非Windowsであるとの条件が満たされる場合は、ソースコード425Gが実行される。これにより、外部コントロール501を代替するコントロール(UI要素)を実現するためにソースコード425Gの実行可能コードを含むHMIプログラム112の実行モジュールが生成される。
このようにラッパー部500が実行されることにより、同一のHMIプログラム112のソースコードから、外部コントロール501を含むWindowsに適合する実行モジュールと、外部コントロール501ではない代替の外部コントロールを含む非WindowsのOSに適合する実行モジュールと生成することができる。
なお、外部コントロールコンバータ425が、I/F変換オブジェクト425Bを生成する時期は特に限定されない。例えば、外部コントロールコンバータ425は、コンパイラ506によりHMIプログラム112から実行形式プログラムが生成するとき、I/F変換オブジェクト425B(ラッパープログラム)を生成する。
これにより、I/F変換オブジェクト425Bの生成を1回でませることができる。つまり、HMIプログラム112の編集時は、HMIプログラム112を構成するUI要素の変更が試行錯誤的に頻繁になされるとの背景がある。このような背景を考慮すると、編集時にI/F変換オブジェクト425Bを生成するとすれば当該生成は比較的頻繁に繰返されることになる。これに対して、HMIプログラム112をコンパイルするときにI/F変換オブジェクト425Bを生成する場合は、上記で述べたようにI/F変換オブジェクト425Bの生成をコンパイル時の1回で済ませることができる。
また、他の時期として、外部コントロールコンバータ425は、ツールボックス管理部391による外部コントロール501がツールボックス462に登録されるときに、I/F変換オブジェクト425Bを生成することもできる。この場合は、HMIプログラム112のコンパイル時にはI/F変換オブジェクト425Bの生成は不要であるから、コンパイルの所要時間を短くすることができる。
<J.外部コントロール取込処理>
図12は、本発明の実施の形態にかかる外部コントロール501を開発環境42に取込む処理の一例を概略的に示すフローチャートである。図12のフローチャートに従い、図7を参照しながら、外部コントロール501を開発環境42で利用可能なUI要素として取り込む処理を説明する。
図12を参照して、外部コントロールコンバータ425は、入力部211を介したユーザ操作から、外部コントロール取込指示425Kを受付けると(ステップS1)、OS種類保持部424により保持されている対象装置のOS種類を取得し(ステップS3)、OS種類はWindowsを示すかを判断する(ステップS5)。外部コントロールコンバータ425は、OS種類は非Windowsを示すと判断すると(ステップS5でYES)一連の処理を終了する。
一方、外部コントロールコンバータ425は、OS種類はWindowsを示すと判断すると(ステップS5でNO)、外部コントロールコンバータ425は、図8の手順に従いI/F変換ソースコード425Aを生成し、RAM206に格納する(ステップS7)。
外部コントロールコンバータ425は、I/F変換ソースコード425Aをコンパイルして、I/F変換オブジェクト425Bを取得する(ステップS9)。
外部コントロールコンバータ425は、ツールボックス管理部391に、I/F変換オブジェクト425Bの登録を依頼する(ステップS11)。ツールボックス管理部391は、登録依頼を受けると、I/F変換オブジェクト425Bから外部コントロール501の名前を抽出し(ステップS13)、抽出した外部コントロール501の名前を、RAM206のツールボックス462のデータに追加(登録)する(ステップS15)。その後、処理は終了する。なお、ツールボックス462に登録される外部コントロール501の名前には、RAM206の対応のI/F変換オブジェクト425Bが紐付けされる。
<K.エディトおよびコンパイル処理>
図13は、本発明の実施の形態に係るエディトおよびコンパイルの処理の一例を示すフローチャートである。図13のフローチャートに従い、開発環境42におけるエディタ309によるHMIプログラムの編集と、HMIプログラムのコンパイルとを説明する。エディタ時には、図10のようにディスプレイ214には、HMIプログラム112とツールボックス462が表示される。
図13を参照して、エディタ309は、入力部211を介して、ツールボックス462からユーザが選択した名前の外部コントロールをUI要素としてHMIプログラムに組込むための、ドラッグ/ドロップ操作を受付ける(ステップS21)。
エディタ309は、受付けたユーザ操作内容に従い、ユーザが選択した外部コントロールに関連付けられたRAM206のI/F変換オブジェクト425Bが有するオブジェクト名を、呼出し先オブジェクト名として、HMIプログラム112のプロジェクトデータに反映する(ステップS23)。これにより、HMIプログラム112を構成するUI要素として外部コントロールを組込むことが可能となる。
開発環境42は、入力部211を介してユーザからHMIプログラムのコンパイル指示421Aを受付けると(ステップS25)、コンパイル実行部421を起動する。
コンパイル実行部421は、HMIプログラム112のプロジェクトデータをコンパイルするために、WinAppコンパイラ423とHMIコンパイラ422を起動する。WinAppコンパイラ423は、HMIプログラムを走査し、HMIプログラムを構成するUI要素のうち外部コントロール501のI/F変換ソースコードをコンパイルし、HMIコンパイラはHMIプログラムのソースコードをコンパイルする(ステップS27)。
このように、HMIプログラムがコンパイルされることにより、HMIプログラムのソースコードから実行可能コードが生成される。コンパイル時において、コンパイラは、HMIプログラム112を走査し、外部コントロールの呼出命令を検出すると、呼出命令から外部コントローラの名前を抽出する。コンパイラは、抽出された外部コントロールの名前に紐付けされているI/F変換オブジェクト425BをRAM206から検索し、検索されたI/F変換オブジェクト425Bを含むHMIプログラム112の実行可能コードを生成する。
開発環境42は、コンパイルにより取得された実行可能コードからなるHMIプログラムを転送する(ステップS29)。この転送は、対象装置である制御装置100への伝送路を介した転送(ダウンロード)、またはRAM206または記憶媒体250などの記憶部への格納などの概念を示す。
<L.対象装置におけるHMIプログラムの実行>
図14は、本発明の実施の形態に係るHMIプログラム実行時の外部コントロールの処理の一例を示すフローチャートである。
図14を参照して、制御装置100では、Runtime513は、実行可能コードであるHMIプログラム112を起動し実行する(ステップS31)。
HMIプログラムを実行中に、外部コントロールの呼出命令が実行される場合、Runtime513は、外部コントロールのラッパープログラムの中のラッパー部500を起動する(ステップS33)。ラッパー部500が起動されると、Runtime513は、ラッパー部500の指令コードを解釈しながら、以降のステップS35、S37、S39およびS41の処理を実行する。これにより、HMIプログラム112の実行可能コードからなる実行モジュールが生成される。
具体的には、Runtime513は、当該Runtime513を実行するOSの種類を取得する(ステップS35)。例えば、OS種類は、予め定められた記憶領域から読出すことにより取得することができる。
Runtime513は、取得されたOS種類はWindowsであるか否かを判断する(ステップS37)。Runtime513は、OS種類はWindowsであると判断すると(ステップS37でYES)、ラッパープログラムのI/F変換ソースコード425Gを呼出すことなく、外部コントロール501によるUI要素を提示するための実行モジュール600を生成する(ステップS39)。
一方、Runtime513は、OS種類は非Windowsであると判断すると(ステップS37でNO)、I/F変換ソースコード425Gを解釈し実行する(ステップS41)。これにより、Runtime513は、I/F変換ソースコード425Gに従いUI要素を提示するための実行モジュール700を生成する(ステップS39)。
図14の処理によれば、HMIプログラムを実行することにより、同一のHMIプログラムのソースコードから、外部コントロール501を含むWindowsに適合した実行モジュール600と、外部コントロール501を代替するI/F変換ソースコード425Gによる非Windowsに適合した実行モジュール700とを生成することができる。
<M.プログラム>
本実施の形態に示した各フローチャートの処理を含む開発環境42の下の各種の処理を実行するためのサポートプログラムは、サポート装置200の記憶部(ROM204、RAM206、HDD208、記録媒体250など)に格納されている。CPU202は、記憶部からサポートプログラムを読出し、実行することにより、本実施の形態で説明した開発環境42における各種処理を実現することが可能となる。
このようなサポートプログラムは、サポート装置200に付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM、RAMおよび記録媒体250などのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、サポート装置200に内蔵するHDD208などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インターフェイスを介したダウンロードによって、プログラムを提供することもできる。
<N.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
FA(ファクトリオートメーション)の対象装置(100)で実行されるHMI(ヒューマンマシンインターフェイス)プログラム(112)の開発を支援するサポート装置(200)であって、
前記HMIプログラムを構成するUI(ユーザインターフェイス)要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定を受付ける受付手段(211)と、
前記指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコード(425A)を生成するコード生成手段(425)と、
生成された前記第2種類のOSに適合するプログラムコードと、前記対象装置が有するOSは前記第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コード(500)とを含むラッパープログラム(425B)を生成するラッパー生成手段(428)と、
前記第1種類のOSに適合するプログラムコードのUI要素として前記ラッパープログラムが組込まれた前記HMIプログラムから前記実行可能コードのプログラムを生成する、サポート装置。
[構成2]
前記ラッパー生成手段は、さらに、
前記指令コードに、前記対象装置が有するOSは前記第1種類のOSであるとの条件が満たされる場合に前記第1種類のOSに適合するプログラムコードのUI要素を含むHMIプログラムの実行モジュールの生成を指令するコード(425E)を含める、構成1に記載のサポート装置。
[構成3]
前記コード生成手段は、
前記第1種類のOSに適合するプログラムコードのUI要素のプロパティのうち前記第2種類のOSに適合するプログラムコードのUI要素のプロパティに一致するプロパティを抽出し、抽出されたプロパティを含むUI要素のプログラムコードから、前記第2種類のOSに適合するUI要素のプログラムコードを生成する、構成1または2に記載のサポート装置。
[構成4]
前記UI要素の選択候補の一覧を出力する手段(462)と、
前記一覧に、前記受付手段が受付ける前記第1種類のOSに適合するプログラムコードのUI要素を登録する登録手段(391)と、をさらに備え、
前記一覧からユーザが選択するUI要素を用いて前記HMIプログラムを編集する、構成1から3のいずれか1に記載のサポート装置。
[構成5]
前記ラッパー生成手段は、
前記実行形式生成手段により前記実行可能コードのプログラムを生成するとき、前記ラッパープログラムを生成する、構成4に記載のサポート装置。
[構成6]
前記ラッパー生成手段は、
前記登録手段により前記第1種類のOSに適合するプログラムコードのUI要素が前記一覧に登録されるとき、前記ラッパープログラムを生成する、構成4に記載のサポート装置。
[構成7]
前記対象装置が備えるOSの種類が前記第1種類にでないとき、前記コード生成手段は、前記指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成する、構成1から6のいずれか1に記載のサポート装置。
[構成8]
FA(ファクトリオートメーション)の対象装置(100)で実行されるHMI(ヒューマンマシンインターフェイス)プログラム(112)の開発を支援するサポートプログラム(710)であって、
前記サポートプログラムは、コンピュータ(200)に、
前記HMIプログラムを構成するUI(ユーザインターフェイス)要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定を受付けるステップ(S21)と、
前記指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成するステップ(S7)と、
生成された前記第2種類のOSに適合するプログラムコードと、前記対象装置が有するOSは前記第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コードとを含むラッパープログラムを生成するステップ(S9)と、
前記第1種類のOSに適合するプログラムコードのUI要素として前記ラッパープログラムが組込まれた前記HMIプログラムから実行可能コードのプログラムを生成するステップ(S27)を含む、サポートプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 システム、42 開発環境、100 制御装置、200 サポート装置、309 エディタ、391 ツールボックス管理部、421 コンパイル実行部、421A コンパイル指示、424 種類保持部、424A OS種類、425 外部コントロールコンバータ、425A,425G 1/F変換ソースコード、425B 1/F変換オブジェクト、428 ラッパー生成部、462 ツールボックス、500 ラッパー部、501 外部コントロール、502 代替コントロール、600,700 実行モジュール、710 サポートプログラム。

Claims (8)

  1. FA(ファクトリオートメーション)の対象装置で実行されるHMI(ヒューマンマシンインターフェイス)プログラムの開発を支援するサポート装置であって、
    前記HMIプログラムを構成するUI(ユーザインターフェイス)要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定を受付ける受付手段と、
    前記指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成するコード生成手段と、
    生成された前記第2種類のOSに適合するプログラムコードと、前記対象装置が有するOSは前記第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コードとを含むラッパープログラムを生成するラッパー生成手段と、を備え、
    前記第1種類のOSに適合するプログラムコードのUI要素として前記ラッパープログラムが組込まれた前記HMIプログラムから実行可能コードのプログラムを生成する、サポート装置。
  2. 前記ラッパー生成手段は、さらに、
    前記指令コードに、前記対象装置が有するOSは前記第1種類のOSであるとの条件が満たされる場合に前記第1種類のOSに適合するプログラムコードのUI要素を含むHMIプログラムの実行モジュールの生成を指令するコードを含める、請求項1に記載のサポート装置。
  3. 前記コード生成手段は、
    前記第1種類のOSに適合するプログラムコードのUI要素のプロパティのうち前記第2種類のOSに適合するプログラムコードのUI要素のプロパティに一致するプロパティを抽出し、抽出されたプロパティを含むUI要素のプログラムコードから、前記第2種類のOSに適合するUI要素のプログラムコードを生成する、請求項1または2に記載のサポート装置。
  4. 前記UI要素の選択候補の一覧を出力する手段と、
    前記一覧に、前記受付手段が受付ける前記第1種類のOSに適合するプログラムコードのUI要素を登録する登録手段と、をさらに備え、
    前記一覧からユーザが選択するUI要素を用いて前記HMIプログラムを編集する、請求項1から3のいずれか1項に記載のサポート装置。
  5. 前記ラッパー生成手段は、
    前記実行可能コードのプログラムを生成するとき、前記ラッパープログラムを生成する、請求項4に記載のサポート装置。
  6. 前記ラッパー生成手段は、
    前記登録手段により前記第1種類のOSに適合するプログラムコードのUI要素が前記一覧に登録されるとき、前記ラッパープログラムを生成する、請求項4に記載のサポート装置。
  7. 前記対象装置が備えるOSの種類が前記第1種類でないとき、前記コード生成手段は、前記指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成する、請求項1から6のいずれか1項に記載のサポート装置。
  8. FA(ファクトリオートメーション)の対象装置で実行されるHMI(ヒューマンマシンインターフェイス)プログラムの開発を支援するサポートプログラムであって、
    前記サポートプログラムは、コンピュータに、
    前記HMIプログラムを構成するUI(ユーザインターフェイス)要素であって、第1種類のOSに適合するプログラムコードのUI要素の指定を受付けるステップと、
    前記指定がなされたUI要素から、第2種類のOSに適合するUI要素のプログラムコードを生成するステップと、
    生成された前記第2種類のOSに適合するプログラムコードと、前記対象装置が有するOSは前記第1種類のOSではないとの条件が満たされる場合に当該プログラムコードを含む実行モジュールの生成を指令する指令コードとを含むラッパープログラムを生成するステップと、
    前記第1種類のOSに適合するプログラムコードのUI要素として前記ラッパープログラムが組込まれた前記HMIプログラムから実行可能コードのプログラムを生成するステップを実行させる、サポートプログラム。
JP2018142645A 2018-07-30 2018-07-30 サポート装置およびサポートプログラム Active JP7001012B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018142645A JP7001012B2 (ja) 2018-07-30 2018-07-30 サポート装置およびサポートプログラム
EP19845516.4A EP3832457A4 (en) 2018-07-30 2019-07-10 SUPPORT DEVICE AND SUPPORT PROGRAM
CN201980038770.6A CN112272820B (zh) 2018-07-30 2019-07-10 支持装置以及支持程序的记录介质
PCT/JP2019/027337 WO2020026737A1 (ja) 2018-07-30 2019-07-10 サポート装置およびサポートプログラム
US17/253,119 US11429357B2 (en) 2018-07-30 2019-07-10 Support device and non-transient computer-readable recording medium recording support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018142645A JP7001012B2 (ja) 2018-07-30 2018-07-30 サポート装置およびサポートプログラム

Publications (2)

Publication Number Publication Date
JP2020021155A true JP2020021155A (ja) 2020-02-06
JP7001012B2 JP7001012B2 (ja) 2022-01-19

Family

ID=69231725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018142645A Active JP7001012B2 (ja) 2018-07-30 2018-07-30 サポート装置およびサポートプログラム

Country Status (5)

Country Link
US (1) US11429357B2 (ja)
EP (1) EP3832457A4 (ja)
JP (1) JP7001012B2 (ja)
CN (1) CN112272820B (ja)
WO (1) WO2020026737A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11620120B1 (en) * 2021-09-27 2023-04-04 Amazon Technologies, Inc. Configuration of secondary processors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164258A (ja) * 2004-12-06 2006-06-22 Internatl Business Mach Corp <Ibm> 特定のプラットフォームによって使用するためのグラフィカル・ユーザ・インターフェース(gui)モデルを生成するための方法、システム、およびプログラム
JP2012194845A (ja) * 2011-03-17 2012-10-11 Fujitsu Semiconductor Ltd ラッパープログラム及び集積回路装置
JP2018045544A (ja) * 2016-09-16 2018-03-22 オムロン株式会社 プログラム処理装置およびプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
GB0307805D0 (en) * 2003-04-04 2003-05-07 Intuwave Ltd A method of enabling source code to be used to generate a first and a second software application,each compatible with a different operating system
US20060129972A1 (en) * 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
US7907966B1 (en) * 2005-07-19 2011-03-15 Aol Inc. System and method for cross-platform applications on a wireless phone
US8694988B2 (en) * 2010-10-22 2014-04-08 Adobe Systems Incorporated Runtime extensions
US20120284631A1 (en) * 2011-05-02 2012-11-08 German Lancioni Methods to adapt user interfaces and input controls
US10402208B2 (en) 2012-06-18 2019-09-03 Microsoft Technology Licensing, Llc Adaptive portable libraries
CN103984541B (zh) * 2014-04-14 2018-04-27 美的集团股份有限公司 基于终端源代码生成应用程序的方法和系统
EP2958010A1 (en) * 2014-06-20 2015-12-23 Thomson Licensing Apparatus and method for controlling the apparatus by a user
US9983869B2 (en) 2014-07-31 2018-05-29 The Mathworks, Inc. Adaptive interface for cross-platform component generation
US9513978B2 (en) * 2014-10-17 2016-12-06 International Business Machines Corporation Integrated support for application porting transparency and streamlined system migration in heterogeneous platform environments
CN104484171B (zh) * 2014-12-11 2018-05-29 深圳市路通网络技术有限公司 终端界面设计系统、方法及相关设备
CN104503819A (zh) * 2015-01-05 2015-04-08 中国科学院计算技术研究所 一种面向异os的汇编器及汇编移植方法
US9836286B2 (en) * 2015-03-27 2017-12-05 Ca, Inc. Co-existential wrapping system for mobile applications
US20180121215A1 (en) * 2015-04-23 2018-05-03 Fluent Systems, Inc. Dynamic and customizable user interface platform
US9674963B1 (en) * 2015-06-03 2017-06-06 Eric Sari Multilevel machine to process coatings
US10643023B2 (en) * 2015-09-25 2020-05-05 Oath, Inc. Programmatic native rendering of structured content
US9747145B2 (en) * 2015-10-08 2017-08-29 Ca, Inc. Mobile application configuration agnostic to operating system versions
CN105760176B (zh) * 2016-03-15 2019-06-07 青岛海信移动通信技术股份有限公司 一种web应用程序打包方法、启动方法及相应装置
US10402181B2 (en) * 2016-07-18 2019-09-03 Airwatch Llc Generating and optimizing deployment configurations for enrolled devices
US10564988B1 (en) * 2017-12-22 2020-02-18 Intuit Inc. Deploying cross-platform applications on mobile devices with native and web components
CN108037927B (zh) * 2017-12-29 2020-10-30 有米科技股份有限公司 开发包打包方法、系统、可读存储介质和计算机设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164258A (ja) * 2004-12-06 2006-06-22 Internatl Business Mach Corp <Ibm> 特定のプラットフォームによって使用するためのグラフィカル・ユーザ・インターフェース(gui)モデルを生成するための方法、システム、およびプログラム
JP2012194845A (ja) * 2011-03-17 2012-10-11 Fujitsu Semiconductor Ltd ラッパープログラム及び集積回路装置
JP2018045544A (ja) * 2016-09-16 2018-03-22 オムロン株式会社 プログラム処理装置およびプログラム

Also Published As

Publication number Publication date
US11429357B2 (en) 2022-08-30
EP3832457A4 (en) 2022-04-20
CN112272820A (zh) 2021-01-26
JP7001012B2 (ja) 2022-01-19
US20210263715A1 (en) 2021-08-26
WO2020026737A1 (ja) 2020-02-06
EP3832457A1 (en) 2021-06-09
CN112272820B (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
US9817640B2 (en) System, method and platform of establishing application program having capability of dynamically linking external dynamic link function
CN110928529B (zh) 辅助算子开发的方法和系统
CN109542556B (zh) 一种基于Activiti的流程与表单交互方法及系统
JP5171790B2 (ja) 情報処理装置、通信システムおよびプログラム
GB2407893A (en) Software development for a wireless mobile device
CN101256482A (zh) 一种嵌入式应用程序的开发系统及方法
US8448151B2 (en) Method for binarizing initial script on operating system and operating method of binary script
WO2020039900A1 (ja) 情報処理装置およびプログラム
JP7001012B2 (ja) サポート装置およびサポートプログラム
JP7172864B2 (ja) サポート装置およびサポートプログラム
JP7024679B2 (ja) 開発支援プログラム、開発支援装置、および開発支援方法
WO2019171794A1 (ja) サポート装置およびサポートプログラム
Thomas et al. Simulation factory: Taming application configuration and workflow on high-end resources
US20210271458A1 (en) Managing an app method and system
US9646118B1 (en) Linking of simulators into a circuit design tool
JP7234810B2 (ja) サポート装置およびサポートプログラム
JP7238678B2 (ja) 情報処理装置、サポートプログラムおよびサポートシステム
TWI667613B (zh) 前端整合開發管理系統及其方法
EP3832411A1 (en) Support device and support program
Lamberský et al. Development of Simulink blockset for embedded system with complex peripherals
EP2239658A1 (en) Custom command line switch
Meijer Real-time robot software framework on Raspberry PI using Xenomai and ROS2
JP2003296138A (ja) 組込み機器用アプリケーションのシミュレートデバッグ方法
Eickhold et al. AmbiComp: A platform for distributed execution of Java programs on embedded systems by offering a single system image.
JP2014153861A (ja) 自立型制御装置システム、コンパイラおよび自立型制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201211

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: 20211124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211207

R150 Certificate of patent or registration of utility model

Ref document number: 7001012

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150