JP2007094577A - 組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム - Google Patents

組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム Download PDF

Info

Publication number
JP2007094577A
JP2007094577A JP2005280680A JP2005280680A JP2007094577A JP 2007094577 A JP2007094577 A JP 2007094577A JP 2005280680 A JP2005280680 A JP 2005280680A JP 2005280680 A JP2005280680 A JP 2005280680A JP 2007094577 A JP2007094577 A JP 2007094577A
Authority
JP
Japan
Prior art keywords
task
driver
registration
configuration
embedded control
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
JP2005280680A
Other languages
English (en)
Other versions
JP4757589B2 (ja
Inventor
Shiroteru Onishi
城輝 大西
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.)
Sumitomo Heavy Industries Ltd
Original Assignee
Sumitomo Heavy Industries Ltd
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 Sumitomo Heavy Industries Ltd filed Critical Sumitomo Heavy Industries Ltd
Priority to JP2005280680A priority Critical patent/JP4757589B2/ja
Publication of JP2007094577A publication Critical patent/JP2007094577A/ja
Application granted granted Critical
Publication of JP4757589B2 publication Critical patent/JP4757589B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 ソフトウェアの開発効率やメンテナンス作業効率を向上する。
【解決手段】 制御対象である組込み制御装置に所定の処理を実行させるためのソフトウェアを管理する管理装置において、前記組込み制御装置用のOSと、タスクと、ドライバと、前記OS、前記タスク、及び前記ドライバの構成情報からなるコンフィグレーションテーブルとから、それぞれ独立したモジュールからなるロードモジュールファイルを生成するロードファイル生成手段と、前記OSのシステムコール関数のアドレス、又は前記コンフィグレーションテーブルのアドレスからなるシンボルファイルを生成するシンボルファイル生成手段と、前記ロードモジュールファイルを前記組込み制御装置に送信する送信手段とを有することにより上記課題を解決する。
【選択図】 図3

Description

本発明は、組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムに関し、特にソフトウェアの開発効率やメンテナンス作業効率を向上させるための組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムに関する。
近年、例えば多軸モータコントローラや位置決めステージコントローラ等に代表される産業用途の組込み制御システム等、ある特定用途に専用化した装置に組込まれたマイコン制御システムにおいては、組込まれるソフトウェアが大規模化/複雑化してきている。ここで、図1は、従来における組込み制御システムのソフトウェア開発環境の一構成例を示す図である。
図1に示すように、従来のソフトウェアの開発は、作成したOS(Operating System)、OSが管理する処理単位であるタスク、及びドライバ(割込み処理単位)からなるソフトウェアのソースファイル11を、ソフトウェアの開発環境12に含まれるコンパイラ/アセンブラ13により機械語に翻訳し、また開発環境12のリンカ14によりターゲット機器(実際にプログラムを実行させる組込み制御システム)上における物理メモリアドレスを決定して、機械語に翻訳されたロードモジュールファイル15を出力する。なお、本明細書においてソースファイルをコンパイル/アセンブルし、更にリンクを行なうまでの一連の処理を「構築」という。
また、上述により得られるロードモジュール化されたファイルは、ターゲット機器となる機器にダウンロードされる。ここで、ダウンロードの仕組みについて図を用いて説明する。図2は、従来におけるダウンロードシステムの一構成例を示す図である。図2は、ロードモジュールをターゲット機器へダウンロードするシステム構成の一例である。
図2には、システム構成として上述した図1に示すソフトウェア構成を示す管理装置としてのパソコン21と、パソコン21の開発環境により作成されたソフトウェアをダウンロードする組込み制御装置としてのターゲット機器22とを有するよう構成されている。なお、パソコン21には、通信ネットワーク等を介してロードモジュール15をターゲット機器22に送信するためのロードツール23を有する。
また、ターゲット機器22には、蓄積手段(記憶領域)としてROM(Read Only Memory)24とRAM(Random Access Memory)25とを有するよう構成されている。なお、ターゲット機器22のROM24には、OS、タスク、及びドライバが保存されている。
ここで、ターゲット機器22の電源がONされると、ROM24に蓄積されているデータがRAM25にコピーされ、ターゲット機器22におけるそれ以降の動作については、RAM25上でプログラムが実行される。なお、ROM24とは、フラッシュROM等に代表されるようなソフトウェアにより書込み可能なROM全般を指している。
また、タスク、ドライバの中にはロード機能を備えるものが含まれており、パソコン21から通信媒体(RS−232C、USB(Universal Serial Bus)、Ethernet(登録商標)等)を通じて受信したダウンロードデータをROMへ格納する機能を備えている。
ここで、図2に示すように、従来ではソフトウェアの構築単位として1システムあたりに1ロードモジュールで開発されていた。このため、ソフトウェア開発の分業が困難であり、開発効率を低下させていた。また、些細な仕様変更時でもソフトウェア全体を再構築しなければならず、更にターゲット機器に再ロードする必要があるため、開発効率/メンテナンス作業効率を低下させていた。
そこで、上述の問題に対応するため、リアルタイムOSとアプリケーションプログラムを備えたシステムがある(例えば、特許文献1参照。)。特許文献1に示されている技術は、複数のタスクと、タスク動作を規定するすべての情報,追加/変更用のプログラムコードからなる動作記述部と、動作記述部を参照してシステム全体を制御するカーネル(OS)部と、動作記述部に変更を加えるためのインタフェースを外部に提供するインタフェース部とを有し、保守端末からインタフェース部に対してデータを入力することにより、タスク情報(優先度,ID,スタックサイズ等)の変更や新規タスクの追加を行うものである。
特開2000−66906号公報
しかしながら、特許文献1に示されている技術は、出荷時に組込まれたOSとアプリケーション自体に対して変更を行なうための手段を備えておらず、変更の範囲が限られるという問題があった。
また、最近のソフトウェアの大規模化/複雑化しているため、製作/デバッグ等の開発効率や製品出荷後のバージョンアップ等のメンテナンス作業効率が低下するという問題が生じている。
本発明は、上記の問題点に鑑みてなされたものであって、ソフトウェアの開発効率やメンテナンス作業効率を向上させるための組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムを提供することを目的とする。
上述の目的を達成するために、本発明は、制御対象である組込み制御装置にソフトウェアによる所定の処理を実行させるよう制御を行うための組込み制御方法において、前記組込み制御装置用のOSと、前記OSに対応したタスク又はドライバと、前記OS、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを前記組込み制御装置の記憶領域に蓄積する蓄積ステップと、OSシステムコール関数と、前記タスク及び前記ドライバが有する登録テーブルと、前記コンフィグレーションテーブルとを前記記憶領域の固定アドレスに配置し、前記タスク又は前記ドライバが前記OSシステムコール関数のシンボルを参照してOSシステムコールを発行する発行ステップと、前記OSが前記登録テーブル及び前記コンフィグレーションテーブルのシンボルを参照して前記タスク又は前記ドライバを登録する登録ステップとを有することを特徴とする。したがって、ソフトウェアを分割してモジュール化し、更に所定のコンフィグレーション設定を行うことにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
更に、前記登録ステップは、前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に、前記識別情報を読出す読出しステップと、前記読出しステップにより得られた識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断し、前記識別情報が一致している場合に、前記登録テーブルの処理関数アドレスを前記OS内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成する生成ステップとを有することが好ましい。これにより、OS、タスク、ドライバをモジュール分割してもコンフィグレーションテーブルにより、対応関係を容易に把握することができる。
更に、前記登録テーブルは、前記タスク又は前記ドライバの識別情報、及び処理関数のアドレスのうち少なくとも1つからなる登録情報を有し、前記コンフィグレーションテーブルは、OSタイマソース、OSタイマ周期、タスク又はドライバの識別情報、登録テーブルの先頭アドレス、起動タイプ、優先度、スタックサイズのうち少なくとも1つからなるコンフィグレーション情報を有することが好ましい。これにより、ソフトウェアのモジュール単位での製作やデバッグ、バージョンアップ、コンフィグレーション設定等が可能となり、開発効率やメンテナンス作業等の効率を向上することができる。
また、本発明は、制御対象である組込み制御装置に所定の処理を実行させるためのソフトウェアを管理する管理装置において、前記組込み制御装置用のOSと、タスクと、ドライバと、前記OS、前記タスク、及び前記ドライバの構成情報からなるコンフィグレーションテーブルとから、それぞれ独立したモジュールからなるロードモジュールファイルを生成するロードファイル生成手段と、前記OSのシステムコール関数のアドレス、又は前記コンフィグレーションテーブルのアドレスからなるシンボルファイルを生成するシンボルファイル生成手段と、前記ロードモジュールファイルを前記組込み制御装置に送信する送信手段とを有することを特徴とする。したがって、ソフトウェアを分割してモジュール化し、更に所定のコンフィグレーション設定を行うことにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
更に、前記ロードファイル生成手段は、前記タスク又は前記ドライバに関する情報を、ロードファイルの予め設定された位置に配置することが好ましい。これにより、特別なアドレス指定を行うことなく、タスク又は前記ドライバに関する情報を容易に把握することができる。
更に、本発明は、前記シンボルファイル生成手段は、前記OSのシステムコール関数を、前記制御対象機器が有する記憶領域における予め設定された固定アドレスに配置させるようにシンボルファイルを生成することが好ましい。これにより、特別なアドレス指定を行うことなく、OSのシステムコール関数を取得することができる。
また、本発明は、予め蓄積されたソフトウェアにより所定の処理を実行する組込み制御装置において、前記組込み制御装置用のOSと、前記OSに対応したタスク又はドライバと、前記OS、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを受信する受信手段と、予め所定の記憶領域に蓄積されているOS、タスク、ドライバ、コンフィグレーションテーブルのうち、少なくとも1つを初期化する初期化手段と、前記受信手段により得られるデータに基づいて前記タスク又は前記ドライバを登録する登録手段とを有することを特徴とする。したがって、OS、タスク、ドライバ、及びコンフィグレーションテーブルが分割してモジュール化され、更に所定のコンフィグレーション設定が行なわれていることにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
更に、前記登録手段は、前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に前記識別情報を読出し、読出された識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断して前記識別情報が一致している場合に前記登録テーブルの処理関数アドレスを前記OS内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成することが好ましい。これにより、OS、タスク、ドライバをモジュール分割してもコンフィグレーションテーブルにより、対応関係を容易に把握することができる。
また、本発明は、前記請求項4乃至6の何れか1項に記載された管理装置と、前記請求項7又は8に記載された組込み制御装置とをそれぞれ1つ以上備えた組込み制御システムとすることが好ましい。これにより、例えば、1つの管理装置で複数の組込み制御装置を管理することができ、また、複数の管理装置で1つの組込み制御装置を管理することができる。
本発明によれば、ソフトウェアの開発効率やメンテナンス作業効率を向上することができる。
次に、本発明における組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムを好適に実施した形態について、図面を用いて説明する。
<管理装置>
図3は、本実施形態における管理装置の機能構成の一例を示す図である。図3に示す管理装置30は、汎用のコンピュータやサーバ等に代表されるものである、管理装置30は、ソースファイル生成手段31と、ロードファイル生成手段32と、シンボルファイル生成手段33と、蓄積手段34と、送受信手段35と、入力手段36と、出力手段37と、制御手段38とを有するよう構成されている。なお、ロードファイル生成手段32及びシンボルファイル生成手段33は開発環境39を示すものであり、コンパイラ/アセンブラ、リンカの機能を有している。
ソースファイル生成手段31は、入力手段36により、管理者等にて入力されるデータからソースファイルを生成する。なお、本発明では、ソフトウェアをターゲット機器(組込み制御装置)に用いられているOS、タスク、ドライバ、及びコンフィグレーションテーブルにそれぞれ独立したモジュールに分割されたソースファイルを生成する。ここで、上述したコンフィグレーションテーブルとは、OS、タスク、及び/又はドライバの構成情報を示したものである。
また、ソースファイルを取得する際には、上述したようにソールファイル生成手段31により生成する以外にも、例えば送受信手段35によりインターネットやLAN(Local Area Network)に代表される通信ネットワークを介して他のコンピュータ等から取得することもできる。
ロードファイル生成手段32は、ソースファイルを入力してコンパイラ/アセンブラ、リンカの機能を用いてロードモジュールファイルを生成する。また、シンボルファイル生成手段33は、OSシステムコール関数のアドレスが蓄積されたシンボルファイル、及びコンフィグレーションテーブルのアドレス情報が蓄積されたシンボルファイルを生成する。
また、蓄積手段34は、上述したソースファイルやロードファイル、シンボルファイル等を蓄積する。送受信手段35は、管理装置30と、ターゲット機器(組込み制御装置)とを通信ネットワーク等を介して接続し、ロードファイルの送信や制御信号の送受信等を行う。
また、入力手段36は、コンピュータを使用する管理者等が操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザからのプログラムの実行等、各種操作信号を入力する。また、出力手段37は、本発明における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ(モニタ)を有し、制御手段38が有する制御プログラムの実行経過や結果等を表示することができる。また、制御手段38は、各種演算や管理装置30における各構成部とのデータの入出力や実行指示等の処理を行い、管理装置30全体の制御を行う。
次に、本実施形態におけるソフトウェア開発環境例について説明する。図4は、本実施形態におけるソフトウェア開発環境の一構成例を示す図である。なお、図4は、図1に対応させた開発環境の構成例であり、本発明ではソフトウェアをOS、タスク、ドライバ、及びコンフィグレーションテーブルをモジュールに分割し、それぞれ別々にソースファイルを作成する。また、そのソースファイルを構築してロードモジュールを作成する。
つまり、図4に示すように、OS、タスク、ドライバ、及びコンフィグレーションテーブル用のそれぞれのソースファイル41−1〜41−4を構成し、開発環境42であるコンパイラ/アセンブラ43及びリンカ44によりそれぞれが個別のファイルで構築され、ロードモジュールファイル45−1〜45−5が生成される。
なお、上述したようにOS、タスク、ドライバ、及びコンフィグレーションテーブルをそれぞれ別々に構築した場合には、タスクやドライバからOSのシステムコールを発行できなくなる。したがって、これを解決するためにOSのシステムコール関数のシンボル(関数や変数のアドレス定義)を参照する。シンボルの参照は、まず、OS構築時にシステムコール関数アドレスのシンボルファイル46−1を出力するように開発環境を設定する。そして、ここで出力されたOSのシンボルファイルをタスクとドライバの構築時にリンクすることによってシンボルの参照(システムコールの発行)が可能となる。
なお、開発環境にシンボルファイルを出力する機能がなければ、OSのシステムコール関数のアドレスをタスクやドライバ側で定義すればよい。これにより、OSのシステムコール発行が可能となる。また、OSのシステムコール関数を固定アドレスに配置すれば、OSの変更に伴ってタスクとドライバを再構築する必要がなくなる。
また、上述したようにOS、タスク、ドライバ、及びコンフィグレーションテーブルをそれぞれ別々に構築した場合には、OS側からもタスクやドライバが参照できなくなる。したがって、これを解決するために、まずタスクやドライバにはOSへの登録テーブルを持たせ、ここに関数アドレス等を配置する。更に、コンフィグレーションテーブルモジュールを作成し、ここにタスクとドライバの構成情報を設定する。
ターゲット機器側のOSは、初期化時に登録テーブルとコンフィグレーションテーブルとを参照してタスクとドライバとの登録処理を行う。また、参照方法は、OSシステムコール関数の参照と同様に、コンフィグレーションテーブルアドレスのシンボルファイル46−2を作成し、このシンボルファイル46−2を参照すればよい。
なお、OSシステムコールとは、OS(のカーネル部分)が提供する機能のうち、プロファイルから呼び出せるようになっている機能、もしくはその呼び出し規約である。このシステムコールには、ファイルアクセスやメモリの割り当て、子プロセスの生成等の機能が用意されている。
このように、登録テーブルとコンフィグレーションテーブルとをターゲット機器のメモリの固定アドレスに配置すれば、タスク、ドライバ、コンフィグレーションテーブル設定値の変更に伴ってOSを再構築する必要がなくなる。
<組込み制御装置(ターゲット機器)>
次に、組込み制御装置の機能構成例について図を用いて説明する。図5は、本実施形態における組込み制御装置の機能構成の一例を示す図である。図5に示す組込み制御装置50は、初期化手段51と、蓄積手段(記憶領域)52としてのROM53、RAM54と、送受信手段55と、タスク・ドライバ登録手段56と、制御手段57とを有するよう構成されている。初期化手段51は、ターゲット機器の起動時にROM53に登録されているOS、タスク、ドライバ、コンフィグレーションテーブル等の全てをRAM54に移動する。
また、ROM53は、ソフトウェアプログラムの保存と、OS、タスク、ドライバ、コンフィグレーションテーブルの蓄積を行う。また、RAM54は、ソフトウェアプログラムの実行と、OS、タスク、ドライバ、及びコンフィグレーションテーブルの蓄積を行う。
送受信手段55は、組込み制御装置50と、管理装置30とを通信ネットワーク等を介して接続し、ロードファイル、シンボルファイル等のソフトウェアデータの受信や制御信号の送受信等を行う。また、タスク・ドライバ登録手段56は、ターゲット機器側のOSにより初期化時に登録テーブルとコンフィグレーションテーブルとを参照してタスクとドライバの登録処理を行う。また、制御手段57は、各種演算や組込み制御装置50における各構成部とのデータの入出力や実行指示等の処理を行い、組込み制御装置50全体の制御を行う。
<登録テーブル・コンフィグレーションテーブルの例>
次に、登録テーブルとコンフィグレーションテーブルについて図を用いて説明する。図6は、登録テーブルとコンフィグレーションテーブルの一例を示す図である。なお、図6(a)は、タスク/ドライバの登録テーブルとして蓄積される項目(登録情報)を示し、図6(b)はコンフィグレーションテーブルとして蓄積される項目(コンフィグレーション情報)を示している。
ここで、図6(a)に示す登録テーブルには、「タスクあるいはドライバの識別情報(名前(文字列))」、「初期化処理関数のアドレス」、「通常処理関数のアドレス」、「終了処理関数のアドレス」等の項目を有する。また、図6(b)に示すコンフィグレーションテーブルには、「OS情報」、「タスク情報」、「ドライバ情報」の項目を有する。
ここで、「OS情報」には、「OSタイマソース」や「OSタイマ周期」等のOSタイマ関係のパラメータが蓄積されており、「タスク情報」及び「ドライバ情報」には、「登録テーブルに記載された名前(識別情報)」や、「登録テーブルの先頭アドレス」、「起動タイプ」、「ID」、「優先度」、「スタックサイズ」等が蓄積されている。
なお、本実施形態において、図6(a)に示すタスクやドライバの登録テーブルは、組込み制御装置50が登録内容を容易に把握できるように予め設定された位置、例えばタスク/ドライバの先頭等に固定配置される。また同様に、図6(b)に示すコンフィグレーションテーブルは、OSから参照するために予め設定されたアドレス位置に配置される。
<本実施形態におけるダウンロードシステム構成>
ここで、上述した本実施形態におけるロードモジュールをターゲット機器(組込み制御装置)へダウンロードするシステムの例について、図を用いて説明する。図7は、本実施形態におけるダウンロードシステム(組込み制御システム)の一構成例を示す図である。図7には、システム構成として上述した図2と同様に、汎用コンピュータとしてのパソコン71と、パソコン71の開発環境により作成されたソフトウェアをダウンロードするターゲット機器(組込み制御装置)72とを有するよう構成されている。
なお、本発明におけるシステム構成は図7に限定されることはなく、例えば、パソコン71及び/又はターゲット機器72を複数備えた構成にしてもよい。これにより、例えば、1つのパソコンで、複数のターゲット機器を管理することができ、また、複数のパソコンで1つのターゲット機器を管理することができる。
ここで、パソコン71には、上述したように分割されたロードモジュール45−1〜45−4を、通信ネットワーク等を介してターゲット機器72に送信するためのロードツール73を有し、ターゲット機器72には、蓄積手段(記憶領域)としてのROM74とRAM75とを有している。
ターゲット機器72のROM74には、上述したようにモジュール分割されたOS、コンフィグレーションテーブル、タスク、及びドライバが保存されている。ここで、ターゲット機器72の電源がONされると、ROM74に蓄積されているデータがRAM75にコピーされ、それ以降のターゲット機器における動作については、RAM75上でプログラムが実行されることで動作が行われる。なお、ROM74とは、フラッシュROM等に代表されるようにソフトウェアにより書込み可能なROM全般を指している。
また、タスク、ドライバの中にはロード機能を備えるものが含まれており、パソコン71から通信媒体(RS−232C、USB(Universal Serial Bus)、Ethernet(登録商標)等)を通じて受信したダウンロードデータをROMへ格納する機能を備えている。
また、本実施形態におけるダウンロードは、パソコン71上のロードツールからモジュール毎に行われる。モジュールのアドレスは、開発環境によるリンク時に決定しているため、ターゲット機器に問い合せるという手順は必要ない。また、コンフィグレーションテーブルは、開発環境によってロードモジュールを生成してもよいし、ロードツールにコンフィグレーションテーブルの設定値を編集する編集機能を持たせてもよい。
<OSの初期化処理>
ここで、上述した本実施形態における登録テーブルとコンフィグレーションテーブルを参照して行われるOSの初期化処理手順の例についてフローチャートを用いて説明する。
図8は、登録テーブルとコンフィグレーションテーブルを参照して行われるOSの初期化処理手順の一例を示すフローチャートである。まず、ターゲット機器72の電源をONすると、初期化処理のプログラムはROM74の先頭から実行され、ROM74上にあるプログラムを全てRAM75へコピーし(S01)、以降のプログラムはRAM75上で実行される。
次に、OS内部のデータを初期化し(S02)、登録テーブルとコンフィグレーションテーブルを参照してタスクとドライバを登録(S03)する。更に、タスクとドライバを初期化(S04)すると共に、タスク、ドライバを起動する(S05)。最後に、コンフィグレーションのOS情報を参照してOSタイマを起動し(S06)、ターゲット機器72を起動する(S07)。
次に、上述したS03のタスク、ドライバ登録処理について説明する。なお、タスクとドライバとは同様の登録処理を行うため、ここではタスクを用いて登録処理手順について具体的に説明する。
図9は、タスクの登録処理手順の一例を示すフローチャートである。まず、コンフィグレーションテーブルのタスク情報を参照し(S11)、タスクの名前(文字列)が設定されているか否かを判断する(S12)。タスクの名前が設定されている場合(S12において、YES)、登録テーブルの先頭アドレスを参照して登録テーブルの名前を読み出し(S13)、次にタスクの名前と登録されたテーブルの名前とが一致しているか否かを判断する(S14)。
ここで、両者のテーブルの名前が一致している場合(S14において、YES)、登録テーブルの各関数アドレスをOS内部に保存し(S15)、コンフィグレーションテーブルの起動タイプ、ID等を参照してタスクを生成する(S16)。
また、S16の処理が終了後、タスクの名前が設定されていない場合(S12において、NO)、又は両者のテーブルの名前が一致していない場合(S14において、NO)、コンフィグレーションテーブルに設定可能なタスク数分の処理を行ったかを判断する(S17)。設定可能なタスク数分行っていない場合(S17において、NO)、S11に戻り、次のタスクについて上述した処理を行う。また、設定可能なタスク数分行った場合(S17において、YES)、処理を終了する。
ここで、ドライバの登録処理手順についても上述した処理中の「タスク」を「ドライバ」に置き換えて同様の手順で処理を行なう。これにより、簡便な方法でソフトウェアをモジュール化し、更にコンフィグレーション設定を実現することができる。これにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
なお、上述した実施形態では、タスク、ドライバの両方について登録処理を行う形態について説明したが、本発明においてはこの限りではなく、タスク、ドライバのどちらか一方でもよい。
上述したように、本発明では、OSシステムコール関数、登録テーブル、及びコンフィグレーションテーブルを固定アドレスに配置し、タスク及びドライバはOSシステムコール関数のシンボルを参照してOSシステムコールを発行する。また、OSは、コンフィグレーションテーブル及び登録テーブルを参照してタスクやドライバを登録するという簡便な方法でソフトウェアをOS、タスク、ドライバ、及びコンフィグレーションテーブルという独立モジュールに分割することができる。これにより、ソフトウェアのモジュール単位の製作やデバッグ、バージョンアップ、コンフィグレーション設定等が可能となり、開発効率やメンテナンス作業等の効率を向上することができる。
また、開発段階においても全てモジュール化されているため、全モジュールを個別に変更することができる。したがって、従来のように変更の範囲が限られるという問題がない。更に、簡便なモジュール化を実現することで、ターゲット機器にメモリ情報を問い合せた上でリンクする必要がないため、構築の仕組みが複雑になるというような問題もない。更に、簡便なモジュール化により、専用のモジュールビルダを開発もしくは購入する必要がないため、使用可能な開発環境が制限されるという問題もない。
上述したように本発明によれば、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
なお、本発明は、多軸モータコントローラや位置決めステージコントローラ、射出成形機用コントローラ、レーザ加工機用コントローラ、その他の産業用途の組込み制御システムや、テレビ、複写機、産業ロボット、冷蔵庫、洗濯機、電子ジャー等に組み込まれた多種の制御システムにも適用することができる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
従来における組込み制御システムのソフトウェア開発環境の一構成例を示す図である。 従来におけるダウンロードシステムの一構成例を示す図である。 本実施形態における管理装置の機能構成の一例を示す図である。 本実施形態におけるソフトウェア開発環境の一構成例を示す図である。 本実施形態における組込み制御装置の機能構成の一例を示す図である。 登録テーブルとコンフィグレーションテーブルの一例を示す図である。 本実施形態におけるダウンロードシステムの一構成例を示す図である。 登録テーブルとコンフィグレーションテーブルを参照して行われるOSの初期化処理手順の一例を示すフローチャートである。 タスクの登録処理手順の一例を示すフローチャートである。
符号の説明
11,41 ソースファイル
12,39,42 開発環境
13,43 コンパイラ/アセンブラ
14,44 リンカ
15,45 ロードモジュールファイル
21,71 パソコン
22,72 ターゲット機器
23,73 ロードツール
24,53,74 ROM
25,54,75 RAM
30 管理装置
31 ソースファイル生成手段
32 ロードファイル生成手段
33 シンボルファイル生成手段
34,52 蓄積手段
35,55 送受信手段
36 入力手段
37 出力手段
38,57 制御手段
46 シンボルファイル
51 初期化手段
56 タスク・ドライバ登録手段

Claims (9)

  1. 制御対象である組込み制御装置にソフトウェアによる所定の処理を実行させるよう制御を行うための組込み制御方法において、
    前記組込み制御装置用のOS(Operating System)と、前記OSに対応したタスク又はドライバと、前記OS、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを前記組込み制御装置の記憶領域に蓄積する蓄積ステップと、
    OSシステムコール関数と、前記タスク及び前記ドライバが有する登録テーブルと、前記コンフィグレーションテーブルとを前記記憶領域の固定アドレスに配置し、前記タスク又は前記ドライバが前記OSシステムコール関数のシンボルを参照してOSシステムコールを発行する発行ステップと、
    前記OSが前記登録テーブル及び前記コンフィグレーションテーブルのシンボルを参照して前記タスク又は前記ドライバを登録する登録ステップとを有することを特徴とする組込み制御方法。
  2. 前記登録ステップは、
    前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に、前記識別情報を読出す読出しステップと、
    前記読出しステップにより得られた識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断し、前記識別情報が一致している場合に、前記登録テーブルの処理関数アドレスを前記OS内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成する生成ステップとを有することを特徴とする請求項1に記載の組込み制御方法。
  3. 前記登録テーブルは、前記タスク又は前記ドライバの識別情報、及び処理関数のアドレスのうち少なくとも1つからなる登録情報を有し、
    前記コンフィグレーションテーブルは、OSタイマソース、OSタイマ周期、タスク又はドライバの識別情報、登録テーブルの先頭アドレス、起動タイプ、優先度、スタックサイズのうち少なくとも1つからなるコンフィグレーション情報を有することを特徴とする請求項1又は2に記載の組込み制御方法。
  4. 制御対象である組込み制御装置に所定の処理を実行させるためのソフトウェアを管理する管理装置において、
    前記組込み制御装置用のOSと、タスクと、ドライバと、前記OS、前記タスク、及び前記ドライバの構成情報からなるコンフィグレーションテーブルとから、それぞれ独立したモジュールからなるロードモジュールファイルを生成するロードファイル生成手段と、
    前記OSのシステムコール関数のアドレス、又は前記コンフィグレーションテーブルのアドレスからなるシンボルファイルを生成するシンボルファイル生成手段と、
    前記ロードモジュールファイルを前記組込み制御装置に送信する送信手段とを有することを特徴とする管理装置。
  5. 前記ロードファイル生成手段は、
    前記タスク又は前記ドライバに関する情報を、ロードファイルの予め設定された位置に配置することを特徴とする請求項4に記載の管理装置
  6. 前記シンボルファイル生成手段は、
    前記OSのシステムコール関数を、前記制御対象機器が有する記憶領域における予め設定された固定アドレスに配置させるようにシンボルファイルを生成することを特徴とする請求項4又は5に記載の管理装置。
  7. 予め蓄積されたソフトウェアにより所定の処理を実行する組込み制御装置において、
    前記組込み制御装置用のOSと、前記OSに対応したタスク又はドライバと、前記OS、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを受信する受信手段と、
    予め所定の記憶領域に蓄積されているOS、タスク、ドライバ、コンフィグレーションテーブルのうち、少なくとも1つを初期化する初期化手段と、
    前記受信手段により得られるデータに基づいて前記タスク又は前記ドライバを登録する登録手段とを有することを特徴とする組込み制御装置。
  8. 前記登録手段は、
    前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に前記識別情報を読出し、読出された識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断して前記識別情報が一致している場合に前記登録テーブルの処理関数アドレスを前記OS内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成することを特徴とする請求項7に記載の組込み制御装置。
  9. 前記請求項4乃至6の何れか1項に記載された管理装置と、前記請求項7又は8に記載された組込み制御装置とをそれぞれ1つ以上備えた組込み制御システム。
JP2005280680A 2005-09-27 2005-09-27 組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム Expired - Fee Related JP4757589B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005280680A JP4757589B2 (ja) 2005-09-27 2005-09-27 組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005280680A JP4757589B2 (ja) 2005-09-27 2005-09-27 組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム

Publications (2)

Publication Number Publication Date
JP2007094577A true JP2007094577A (ja) 2007-04-12
JP4757589B2 JP4757589B2 (ja) 2011-08-24

Family

ID=37980255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005280680A Expired - Fee Related JP4757589B2 (ja) 2005-09-27 2005-09-27 組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム

Country Status (1)

Country Link
JP (1) JP4757589B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211193A (ja) * 2008-02-29 2009-09-17 Nec Electronics Corp マイクロコンピュータ、組み込みプログラム及び組み込みプログラム作成方法
US7915021B2 (en) 2007-09-26 2011-03-29 Hitachi, Ltd. Mutant firefly luciferase
JP2012038196A (ja) * 2010-08-10 2012-02-23 Fujitsu Telecom Networks Ltd プログラム評価装置
JP2014512584A (ja) * 2011-02-23 2014-05-22 コンチネンタル オートモーティヴ ゲゼルシャフト ミット ベシュレンクテル ハフツング 自動車用制御装置を構成する方法、コンピュータプログラムおよび制御装置
US8857900B2 (en) 2011-11-11 2014-10-14 GM Global Technology Operations LLC Water box and method for production
CN111538488A (zh) * 2020-04-17 2020-08-14 荏原冷热系统(中国)有限公司 一种单片机驱动程序生成方法及装置
CN111722870A (zh) * 2020-06-10 2020-09-29 中国第一汽车股份有限公司 一种电控单元的驱动配置方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03231328A (ja) * 1990-02-07 1991-10-15 Fujitsu Ltd ファイル自動作成方式
JP2000066906A (ja) * 1998-08-20 2000-03-03 Toshiba Corp マイコン組込み制御用システム
JP2003303161A (ja) * 2002-04-11 2003-10-24 Nec Commun Syst Ltd デバイスドライバの組み込み・実行方式、組み込み・実行方法、及びプログラム
JP2004192604A (ja) * 2002-10-15 2004-07-08 Mitsubishi Electric Corp 組込みソフトウェア開発装置及び組込みソフトウェア開発方法
JP2005141435A (ja) * 2003-11-05 2005-06-02 Omron Corp ツール

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03231328A (ja) * 1990-02-07 1991-10-15 Fujitsu Ltd ファイル自動作成方式
JP2000066906A (ja) * 1998-08-20 2000-03-03 Toshiba Corp マイコン組込み制御用システム
JP2003303161A (ja) * 2002-04-11 2003-10-24 Nec Commun Syst Ltd デバイスドライバの組み込み・実行方式、組み込み・実行方法、及びプログラム
JP2004192604A (ja) * 2002-10-15 2004-07-08 Mitsubishi Electric Corp 組込みソフトウェア開発装置及び組込みソフトウェア開発方法
JP2005141435A (ja) * 2003-11-05 2005-06-02 Omron Corp ツール

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7915021B2 (en) 2007-09-26 2011-03-29 Hitachi, Ltd. Mutant firefly luciferase
JP2009211193A (ja) * 2008-02-29 2009-09-17 Nec Electronics Corp マイクロコンピュータ、組み込みプログラム及び組み込みプログラム作成方法
JP2012038196A (ja) * 2010-08-10 2012-02-23 Fujitsu Telecom Networks Ltd プログラム評価装置
JP2014512584A (ja) * 2011-02-23 2014-05-22 コンチネンタル オートモーティヴ ゲゼルシャフト ミット ベシュレンクテル ハフツング 自動車用制御装置を構成する方法、コンピュータプログラムおよび制御装置
US9043084B2 (en) 2011-02-23 2015-05-26 Continental Automotive Gmbh Method for configuring a control apparatus for a motor vehicle, computer program and control apparatus
US8857900B2 (en) 2011-11-11 2014-10-14 GM Global Technology Operations LLC Water box and method for production
CN111538488A (zh) * 2020-04-17 2020-08-14 荏原冷热系统(中国)有限公司 一种单片机驱动程序生成方法及装置
CN111722870A (zh) * 2020-06-10 2020-09-29 中国第一汽车股份有限公司 一种电控单元的驱动配置方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP4757589B2 (ja) 2011-08-24

Similar Documents

Publication Publication Date Title
JP4757589B2 (ja) 組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム
EP3059647B1 (en) Techniques for improving industrial control systems
JP2008509483A (ja) 予期せず/変化するハードウェア環境へのソフトウェアとファームウェアの適応
JP2008509483A5 (ja)
KR102156371B1 (ko) 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치
US20020095425A1 (en) Apparatus and method for updating applications to embedded devices and peripherals within a network environment
JP2009146229A (ja) プログラマブルコントローラシステム
KR100322006B1 (ko) 펌웨어 보드의 프로그램을 변경하기 위한 장치 및 방법
US20060184924A1 (en) Intelligent platform management interface firmware architecture and method of building the same
JP2013518733A (ja) ロボットシステムの制御方法及びその装置
CN110647349B (zh) 一种实现iOS APP持续交付的方法
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JPH03229352A (ja) プログラム変更方法
JP2015215865A (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP2004280299A (ja) コントローラ、開発装置及びシステム
JP2005141435A (ja) ツール
JP6821101B1 (ja) 数値制御装置
JP2009282934A (ja) プログラマブルコントローラシステム
JP4877257B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
KR101086363B1 (ko) 런타임을 이용한 로봇 시스템 제어 방법 및 그 장치
WO2020026737A1 (ja) サポート装置およびサポートプログラム
JP2007280214A (ja) プログラマブルコントローラ
US20080250395A1 (en) Method for Producing Documentation
JP2008299763A (ja) 分散オブジェクト開発ツール
JP2002091762A (ja) プログラム生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110408

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110601

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees