(57)【要約】【課題】システムソフトウェアの追加、削除、処理入れ替え等の変更に容易かつ迅速に対応できるようにする。【解決手段】システムソフトウェア登録テーブル１５に格納されたプログラム実行アドレスを介して間接的にメインルーチンが実行されるようにプログラムし、サブルーチン実行登録テーブル１６に格納されたプログラム実行アドレスを介して間接的にサブルーチンが実行されるようにプログラムし、システムソフトウェア登録テーブル１５およびサブルーチン実行登録テーブル１６を変更してシステムソフトウェアのカスタマイズをする。【選択図】    図１
2004341667.tif 000002
【特許請求の範囲】
【請求項１】
制御装置としての機能を実現するためのシステムソフトウェアと、制御装置の制御スケジュールを管理するスケジューラと、前記システムソフトウェアを読み出して実行するＣＰＵとを備えた制御装置において、
プログラム識別子とプログラム実行アドレスの組をメインルーチンから実行されるサブルーチンの順番に格納するサブルーチン実行登録テーブルと、プログラム識別子とプログラム実行アドレスと前記サブルーチン実行登録テーブルの格納アドレスの組をメインルーチン、サブルーチンに関わらずシステムソフトウェアを構成する各プログラムごとに格納するシステムソフトウェア登録テーブルと、ユーザが作成したプログラムを格納するカスタマイズプログラムメモリと、前記サブルーチン実行登録テーブルと前記システムソフトウェア登録テーブルと前記カスタマイズプログラムメモリに格納されたプログラムを記憶する手段と、システムソフトウェアのメインルーチンで実行させる処理の指定およびユーザが作成したプログラムを入力するプログラム作成手段とを備え、
前記システムソフトウェア登録テーブルに格納されたプログラム実行アドレスを介して間接的にメインルーチンを実行するプログラムを作成し、
前記サブルーチン実行登録テーブルに格納されたプログラム実行アドレスを介して間接的にサブルーチンを実行するプログラムを作成し、
前記システムソフトウェア登録テーブルおよび前記サブルーチン実行登録テーブルを変更してシステムソフトウェアのカスタマイズを行う
ことを特徴とする制御装置のカスタマイズ方法。
【請求項２】
メインルーチンの処理順序を変更する場合と、処理を削除する場合および実行する処理を他の処理と入れ替える場合は、
ユーザが前記プログラム作成手段により実行する処理を指定し、
前記指定された処理に基づいて前記サブルーチン実行登録テーブルを変更する
ことを特徴とする請求項１記載の制御装置のカスタマイズ方法。
【請求項３】
メインルーチンおよびサブルーチンをユーザが作成した別のプログラムに変更する場合は、
ユーザが前記プログラム作成手段によりユーザ作成プログラムを指定し、
指定されたユーザ作成プログラムを前記カスタマイズプログラムメモリに格納するとともに、前記システムソフトウェア登録テーブルを検索して既に登録されていれば、前記システムソフトウェア登録テーブルおよびサブル−チン実行登録テーブルを更新し、
登録されていなければ前記システムソフトウェア登録テーブルに新たに登録する
ことを特徴とする請求項１記載の制御装置のカスタマイズ方法。
【請求項４】
制御装置としての機能を実現するためのシステムソフトウェアと、制御装置の制御スケジュールを管理するスケジューラと、前記システムソフトウェアを読み出して実行するＣＰＵとを備えた制御装置において、
システムソフトウェアのメインルーチンから実行されるサブルーチンの個数とサブルーチンのプログラム実行アドレスをシステムソフトウェアのメインルーチンが実行する順番にサブルーチンの個数分格納するサブルーチンコールテーブルと、プログラム識別子とプログラム実行アドレスの組をサブルーチンごとに格納するサブルーチン登録テーブルと、プログラム識別子と前記サブルーチンコールテーブルのアドレスの組をシステムソフトウェアのメインルーチンごとに格納するメインルーチン登録テーブルと、システムソフトウェアのカスタマイズ用に作成したプログラムを格納するカスタマイズプログラムメモリと、前記サブルーチンコールテーブルと前記サブルーチン登録テーブルと前記メインルーチン登録テーブルと前記カスタマイズプログラムメモリに格納されたプログラムを記憶する手段と、システムソフトウェアのメインルーチンで実行させる処理の指定およびシステムソフトウェアのカスタマイズ用に作成したプログラムを入力するプログラム作成手段とを備え、
前記メインルーチン登録テーブルを介して前記サブルーチンコールテーブルに格納されている個数分プログラム実行アドレスを順次呼び出してサブルーチンを実行させるシステムソフトウェアのメインルーチンをプログラムし、
前記サブルーチン登録テーブルと前記メインルーチン登録テーブルおよび前記サブルーチンコールテーブルを変更してシステムソフトウェアのカスタマイズを行う
ことを特徴とする制御装置のカスタマイズ方法。
【請求項５】
システムソフトウェアのメインルーチンの処理順序を変更する場合および実行する処理を他の処理と入れ替える場合は、
前記プログラム作成手段により実行する処理を指定し、
前記指定された処理に基づいて前記サブルーチンコールテーブルを変更する
ことを特徴とする請求項４記載の制御装置のカスタマイズ方法。
【請求項６】
システムソフトウェアのメインルーチンに処理を追加する場合および処理を削除する場合は、
前記プログラム作成手段により実行する処理を指定し、
前記指定された処理に基づいて前記サブルーチンコールテーブルおよび前記メインルーチン登録テーブルを変更する
ことを特徴とする請求項４記載の制御装置のカスタマイズ方法。
【請求項７】
システムソフトウェアのメインルーチンから呼び出されて実行されるサブルーチンをカスタマイズ用に作成したカスタマイズプログラムに変更する場合は、
前記プログラム作成手段によりカスタマイズプログラムを指定し、
指定されたカスタマイズプログラムを前記カスタマイズプログラムメモリに格納するとともに、前記サブルーチン登録テーブルを検索して既に登録されていれば、前記サブルーチン登録テーブルおよび前記サブル−チンコールテーブルを更新し、
登録されていなければ前記サブルーチン登録テーブルに新たに登録するとともに前記サブル−チンコールテーブルを更新する
ことを特徴とする請求項４記載の制御装置のカスタマイズ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムソフトウェアのカスタマイズを容易に行うことができるようにした数値制御装置などの制御装置に関する。
【０００２】
【従来の技術】
従来の制御装置について図を用いて説明する。図１１は、制御装置の構成と当該制御装置において行われるシステムソフトウェアの実行過程とを複合的に表した説明図である。図１１の制御装置は、当該制御装置を動作させるために予め制御装置メーカにより書き込まれたＲＯＭ１２と、必要に応じてデータの登録等に使用されるＲＡＭ１１と、ＲＯＭ１２に書き込まれたＩ／Ｏ機器入出力機能処理等のシステムソフトウェアのプログラムを読み出して実行するＣＰＵ１０と、割り込み信号や定周期信号などにより制御装置の制御スケジュールを管理するスケジューラ１３と、制御装置に接続されているＩ／Ｏ機器２、サーボ系装置３、その他周辺機器４とのデータの入出力を行う入出力回路１４とから構成されている。
図１１の制御装置において、ＲＯＭ１２に書き込まれたシステムソフトウェア、すなわちＩ／Ｏ機器入出力機能処理ＭＰ１、サーボ制御機能処理ＭＰ２、．．．、その他機能処理ＭＰｎの各プログラムのメインルーチンは、スケジューラ１３により優先度の高い順にＣＰＵ１０に読み出されて実行される。また、上記システムソフトウェアの各プログラムは、通常、処理単位でサブルーチンとしてまとめられ、メインルーチンからサブルーチンを呼び出す構成となっている。例えば、サーボ制御機能処理ＭＰ２は、メインルーチンからサブルーチン（処理Ａ、処理Ｂ、処理Ｃ）を順次呼び出して実行される（ステップＳＴ１〜ステップＳＴ３）。
しかしながら、制御装置の各種機能は、制御装置メーカにより制御装置のシステムソフトウェアに組み込まれ固定されたものであるため、以下のような問題があった。
制御装置を機械システムに組み込む際に、当該機械システムの特徴を最大限引き出すためにシステムソフトウェアの変更が必要になった場合、制御装置メーカがシステムソフトウェア変更の要求を受けて、制御装置のシステムソフトウェアを変更しなければならない。システムソフトウェアの変更にあたっては、メーカとユーザの間で、改造要求、仕様策定、ソフトウェア変更の実施、動作チェック等の一連の手続きが必要とされ、システムソフトウェアの変更には、多大な時間、労力、費用を要するという問題があった。
そのため、従来の制御装置におけるシステムソフトウェアのカスタマイズ方法としては、パラメータの設定等により処理の実行判断を行わせたり、カスタマイズ用に作成したプログラムをカスタマイズが必要と想定される場所で実行させるようになっている。
図１２は、パラメータの設定等により処理の実行判断を行わせることで、処理を削除する（すなわち、処理を実行させない）ようにしたものである。図１２において、処理Ａ、処理Ｂと順次実行され、処理Ｃを削除する場合は、処理Ｃ有効を設定するパラメータを無効（すなわちＮｏ）に設定しておけば、処理Ｃが実行されずに次の処理へと実行が移ることになる。処理Ｃを実行させる場合は、処理Ｃ有効を設定するパラメータを有効（すなわちＹｅｓ）に設定しておけばよい。このように、処理を削除するためのカスタマイズ方法として、実行するかどうかのパラメータを判断する処理を実行させるようになっている。
図１３は、カスタマイズ用に追加したプログラムをカスタマイズが必要であろうと想定される場所で実行させるようにすることで、システムソフトウェアのカスタマイズを行うようにしたものである。図１３において、処理Ａ、処理Ｂ、処理Ｃと順次実行され、カスタマイズプログラム処理Ｄが登録されていれば、処理Ｄが実行され、登録されていなければ次の処理へと実行が移ることになる。このように、処理を追加するためのカスタマイズ方法として、カスタマイズ用に作成したプログラムをカスタマイズが必要と想定される場所で実行させるようになっている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開平１０−２８９０１１号公報（第３図）
【０００４】
【発明が解決しようとする課題】
しかしながら、図１２、図１３に示したような従来の制御装置では、処理Ａ、処理Ｂなどすべての処理においてカスタマイズが想定される場合は、すべての処理に上記と同じような処理を施す必要があり、実用的ではないため、通常は限られた場所に施されており、カスタマイズの自由度が低いという問題があった。また、処理の実行順序を変更したり、システムソフトウェアとしてすでにＲＯＭに書き込まれた機能処理プログラムの代わりに、全く異なる処理を行うことで機能を実現するプログラムと入れ替える場合には、やはり制御装置メーカに依頼してシステムソフトウェアを変更してもらう必要があり、多大な時間、労力、費用を要するというような問題も抱えていた。
そこで、本発明はこのような問題点に鑑みてなされたものであり、制御装置のシステムソフトウェアの追加、削除、実行順序の変更、処理入れ替え等の変更に容易かつ迅速に対応することができる数値制御装置などの制御装置およびそのカスタマイズ方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、制御装置としての機能を実現するためのシステムソフトウェアと、制御装置の制御スケジュールを管理するスケジューラと、前記システムソフトウェアを読み出して実行するＣＰＵとを備えた制御装置において、プログラム識別子とプログラム実行アドレスの組をメインルーチンから実行されるサブルーチンの順番に格納するサブルーチン実行登録テーブルと、プログラム識別子とプログラム実行アドレスと前記サブルーチン実行登録テーブルの格納アドレスの組をメインルーチン、サブルーチンに関わらずシステムソフトウェアを構成する各プログラムごとに格納するシステムソフトウェア登録テーブルと、ユーザが作成したプログラムを格納するカスタマイズプログラムメモリと、前記サブルーチン実行登録テーブルと前記システムソフトウェア登録テーブルと前記カスタマイズプログラムメモリに格納されたプログラムを記憶する手段と、システムソフトウェアのメインルーチンで実行させる処理の指定およびユーザが作成したプログラムを入力するプログラム作成手段とを備え、前記システムソフトウェア登録テーブルに格納されたプログラム実行アドレスを介して間接的にメインルーチンを実行するプログラを作成し、前記サブルーチン実行登録テーブルに格納されたプログラム実行アドレスを介して間接的にサブルーチンを実行するプログラムを作成し、前記システムソフトウェア登録テーブルおよび前記サブルーチン実行登録テーブルを変更してシステムソフトウェアのカスタマイズを行うことを特徴とするものである。
このようになっているため、システムソフトウェアとして予めＲＯＭに書き込まれている処理をユーザが変更する、すなわちシステムソフトウェアのカスタマイズを容易かつ迅速に行うことができ、結果的に機械の性能や機能の向上を図ることができる。
【０００６】
また、請求項２に記載の発明は、メインルーチンの処理順序を変更する場合と、処理を削除する場合および実行する処理を他の処理と入れ替える場合は、ユーザが前記プログラム作成手段により実行する処理を指定し、前記指定された処理に基づいて前記サブルーチン実行登録テーブルを変更することを特徴とするものである。
このようになっているため、予めＲＯＭに書き込まれているシステムソフトウェアのメインル−チンの処理順序の変更、処理の削除、処理の入れ替えをユーザが容易かつ迅速に行うことができる。
【０００７】
また、請求項３に記載の発明は、メインルーチンおよびサブルーチンをユーザが作成した別のプログラムに変更する場合は、ユーザが前記プログラム作成手段によりユーザ作成プログラムを指定し、指定されたユーザ作成プログラムを前記カスタマイズプログラムメモリに格納するとともに、前記システムソフトウェア登録テーブルを検索して既に登録されていれば、前記システムソフトウェア登録テーブルおよびサブル−チン実行登録テーブルを更新し、登録されていなければ前記システムソフトウェア登録テーブルに新たに登録することを特徴とするものである。
このようになっているため、予めＲＯＭに書き込まれているシステムソフトウェアのメインルーチンおよびサブルーチンをユーザが作成した別のプログラムに容易かつ迅速に変更することができる。
【０００８】
請求項４に記載の発明は、制御装置としての機能を実現するためのシステムソフトウェアと、制御装置の制御スケジュールを管理するスケジューラと、前記システムソフトウェアを読み出して実行するＣＰＵとを備えた制御装置において、システムソフトウェアのメインルーチンから実行されるサブルーチンの個数とサブルーチンのプログラム実行アドレスをシステムソフトウェアのメインルーチンが実行する順番にサブルーチンの個数分格納するサブルーチンコールテーブルと、プログラム識別子とプログラム実行アドレスの組をサブルーチンごとに格納するサブルーチン登録テーブルと、プログラム識別子と前記サブルーチンコールテーブルのアドレスの組をシステムソフトウェアのメインルーチンごとに格納するメインルーチン登録テーブルと、システムソフトウェアのカスタマイズ用に作成したプログラムを格納するカスタマイズプログラムメモリと、前記サブルーチンコールテーブルと前記サブルーチン登録テーブルと前記メインルーチン登録テーブルと前記カスタマイズプログラムメモリに格納されたプログラムを記憶する手段と、システムソフトウェアのメインルーチンで実行させる処理の指定およびシステムソフトウェアのカスタマイズ用に作成したプログラムを入力するプログラム作成手段とを備え、前記メインルーチン登録テーブルを介して前記サブルーチンコールテーブルに格納されている個数分プログラム実行アドレスを順次呼び出してサブルーチンを実行させるシステムソフトウェアのメインルーチンをプログラムし、前記サブルーチン登録テーブルと前記メインルーチン登録テーブルおよび前記サブルーチンコールテーブルを変更してシステムソフトウェアのカスタマイズを行うことを特徴とするものである。
このようになっているため、システムソフトウェアとして予めＲＯＭに書き込まれているメインルーチンの処理を変更する、すなわちシステムソフトウェアのカスタマイズを容易かつ迅速に行うことができ、結果的に機械の性能や機能の向上を図ることができる。
【０００９】
また、請求項５に記載の発明は、システムソフトウェアのメインルーチンの処理順序を変更する場合および実行する処理を他の処理と入れ替える場合は、前記プログラム作成手段により実行する処理を指定し、前記指定された処理に基づいて前記サブルーチンコールテーブルを変更することを特徴とするものである。
このようになっているため、予めＲＯＭに書き込まれているシステムソフトウェアのメインル−チンの処理順序の変更や処理の入れ替え、すなわちシステムソフトウェアのメインルーチンのカスタマイズを容易かつ迅速に行うことができる。
【００１０】
また、請求項６に記載の発明は、システムソフトウェアのメインルーチンに処理を追加する場合および処理を削除する場合は、前記プログラム作成手段により実行する処理を指定し、前記指定された処理に基づいて前記サブルーチンコールテーブルおよび前記メインルーチン登録テーブルを変更することを特徴とするものである。
このようになっているため、予めＲＯＭに書き込まれているシステムソフトウェアのメインル−チンの処理の追加や処理の削除、すなわちシステムソフトウェアのメインルーチンのカスタマイズを容易かつ迅速に行うことができる。
【００１１】
また、請求項７に記載の発明は、システムソフトウェアのメインルーチンから呼び出されて実行されるサブルーチンをカスタマイズ用に作成したカスタマイズプログラムに変更する場合は、前記プログラム作成手段によりカスタマイズプログラムを指定し、指定されたカスタマイズプログラムを前記カスタマイズプログラムメモリに格納するとともに、前記サブルーチン登録テーブルを検索して既に登録されていれば、前記サブルーチン登録テーブルおよび前記サブル−チンコールテーブルを更新し、登録されていなければ前記サブルーチン登録テーブルに新たに登録するとともに前記サブル−チンコールテーブルを更新することを特徴とするものである。
このようになっているため、予めＲＯＭに書き込まれているシステムソフトウェアのメインルーチンから呼び出されて実行されるサブルーチンをシステムソフトウェアのカスタマイズ用に作成した別のプログラムに容易かつ迅速に変更することができ、システムソフトウェアのカスタマイズを容易かつ迅速に行うことができる。
【００１２】
【発明の実施の形態】
以下、本発明の具体的実施例を図に基づいて説明する。
図１は、本発明の制御装置の構成を示す説明図である。図１の制御装置は、システムソフトウェアの処理を実行する構成部分を示している。図において、１は制御装置であり、ＣＰＵ１０と、スケジューラ１３と、システムソフトウェア登録テーブル１５と、サブルーチン実行登録テーブル１６と、カスタマイズプログラムメモリ１７と、システムソフトウェアの各プログラム１８から構成される。ＣＰＵ１０は制御装置１を動作させるために予め制御装置メーカにより書き込まれたシステムソフトウェアの各プログラム１８およびユーザが作成したプログラムを読み出して実行する。スケジューラ１３は割り込み信号や定周期信号などにより制御装置１の制御スケジュールを管理する。システムソフトウェア登録テーブル１５はプログラム識別子とプログラム実行アドレスとサブルーチン実行登録テーブルの格納アドレスの組がメインルーチン、サブルーチンに関わらずシステムソフトウェアを構成する各プログラム１８ごとに格納されている。サブルーチン実行登録テーブル１６はプログラム識別子とプログラム実行アドレスの組がメインルーチンから実行されるサブルーチンの順番に格納されている。カスタマイズプログラムメモリ１７はユーザが作成したプログラムを記憶し、ＣＰＵ１０に呼び出されて実行される。システムソフトウェア登録テーブル１５とサブルーチン実行登録テーブル１６とカスタマイズプログラムメモリ１７は、ＥＥＰＲＯＭやＦＬＡＳＨメモリ等の読み書き可能な記憶手段に格納されている。システムソフトウェアの各プログラム１８は制御装置１に接続されているＩ／Ｏ機器２やサーボ系装置３等を制御するために通常ＲＯＭ等に予め制御装置メーカにより書き込まれ記憶されている。また、システムソフトウェアの各プログラム１８はメインルーチンとサブルーチンで構成され、サブルーチンは、ＣＰＵ１０によってサブル−チン実行登録テーブル１６のプログラム実行アドレスを介してメインルーチンから呼び出されて実行される。メインルーチンは、スケジューラ１３により優先度の高い順にシステムソフトウェア登録テーブル１６のプログラム実行アドレスを介してＣＰＵ１０によって読み出されて実行される。２はリミットスイッチや電磁弁などのＩ／Ｏ機器で制御装置１に接続される。３はサーボモータ等のサーボ系装置であり、制御装置１に接続される。４はディスプレイやキーボード等の周辺機器であり、制御装置１に接続される。５はプログラム作成手段で、パーソナルコンピュータ等のプログラム作成装置を使用して、システムソフトウェアのメインルーチンで実行する処理の指定およびユーザが作成したプログラムを制御装置１に入力する。
【００１３】
図２は、システムソフトウェア登録テーブル１５とサブルーチン実行登録テーブル１６のデータ構造を示す説明図である。図１１の制御装置におけるシステムソフトウェアを例に説明する。図１１の制御装置のシステムソフトウェアは、Ｉ／Ｏ機器入出力機能処理ＭＰ１、サーボ制御機能処理ＭＰ２、．．．、その他機能処理ＭＰｎの各メインルーチンと、各メインルーチンから呼び出されるサブルーチンとで構成されている。例えば、サーボ制御機能処理ＭＰ２のメインルーチンは、処理Ａ、処理Ｂ、処理Ｃのサブルーチンを順次呼び出す構成となっている。図２において、システムソフトウェア登録テーブル１５には、システムソフトウェアのメインルーチンとサブルーチンの登録データが格納されている。すなわち、Ｉ／Ｏ機器入出力機能処理ＭＰ１、サーボ制御機能処理ＭＰ２、．．．、その他機能処理ＭＰｎのメインルーチンと、各メインルーチンから呼び出されるサブルーチンの登録データが格納されている。登録データは、プログラム識別子１５０と、プログラム実行アドレス１５１と、サブルーチン実行登録テーブル格納アドレス１５２から構成される。プログラム識別子１５０は、各プログラムを区別するものであり、プログラム名称であってもよいし、一意的な番号や記号であってもよい。本実施例では、サーボ制御機能処理ＭＰ２のメインルーチンのプログラム識別子は、“ＭＰ２”とする。プログラム格納アドレス１５１は、プログラムが実際に実行される所定のアドレスが格納されている。サブルーチン実行登録テーブル格納アドレス１５２は、メインルーチンから呼び出されるサブルーチンを登録したサブルーチン実行登録テーブル１６の所定のアドレスが格納されている。なお、メインルーチンから呼び出されるサブルーチンがない場合は、ないことを表す識別子を格納する。識別子は、決められた数字でもよいし、番号や記号でもよい。同じように他のメインルーチン、サブルーチンもシステムソフトウェア登録テーブル１５に格納されている。
サブルーチン実行登録テーブル１６には、システムソフトウェアのメインルーチンごとに、そのメインルーチンから呼び出される各サブルーチンの登録データが呼び出されて実行されるサブルーチン順に格納されている。登録データは、プログラム識別子１６０と、プログラム実行アドレス１６１から構成される。プログラム識別子１６０とプログラム実行アドレス１６１は、システムソフトウェア登録テーブル１５の登録データにおけるプログラム識別子およびプログラム実行アドレスと同じものである。サーボ制御機能処理ＭＰ２のメインルーチンを例に説明する。サーボ制御機能処理ＭＰ２のメインルーチンは、処理Ａ、処理Ｂ、処理Ｃのサブルーチンを順次呼び出す構成となっている。本実施例では、サブルーチン処理Ａ、処理Ｂ、処理Ｃのプログラム識別子は、それぞれ“ＳＰ１”、“ＳＰ２”、“ＳＰ３”とする。従って、サーボ制御機能処理ＭＰ２のメインルーチンのサブルーチン実行登録テーブル１６には、処理Ａのプログラム識別子“ＳＰ１”、処理Ａの実行アドレス、処理Ｂのプログラム識別子“ＳＰ２”、処理Ｂの実行アドレス、処理Ｃのプログラム識別子“ＳＰ３”、処理Ｃの実行アドレスが格納されている。同じように他のメインルーチンについても、サブルーチン実行登録テーブル１６がそれぞれ格納され、その格納アドレスがシステムソフトウェア登録テーブル１５のサブルーチン実行登録テーブル格納アドレスにそれぞれ格納されている。
なお、システムソフトウェア登録テーブル１５およびサブルーチン実行登録テーブル１６は、予め制御装置メーカにより作成され、制御装置１に記憶されて出荷される。また、システムソフトウェア登録テーブル１５およびサブルーチン実行登録テーブル１６をユーザから変更されることで危険を生じるプログラムや、カスタマイズの必要のないプログラムは登録しないようにしておいてもよい。
【００１４】
次に、本発明の制御装置におけるシステムソフトウェアの実行過程を具体的に説明する。図３は、本発明の制御装置１の構成と当該制御装置において行われるシステムソフトウェア処理の実行過程とを複合的に表した説明図である。図３の制御装置１は以下のように構成されている。
図３の制御装置１は、当該制御装置を動作させるために予め制御装置メーカにより書き込まれたＲＯＭ１２と、必要に応じてデータの登録等に使用されるＲＡＭ１１と、ＲＯＭ１２に書き込まれたＩ／Ｏ機器入出力機能処理等のシステムソフトウェアのプログラムを読み出して実行するＣＰＵ１０と、割り込み信号や定周期信号などにより制御装置の制御スケジュールを管理するスケジューラ１３と、制御装置１に接続されているＩ／Ｏ機器２、サーボ系装置３、その他周辺機器４とのデータの入出力を行う入出力回路１４とから構成されている。図３の制御装置１において、ＲＯＭ１２に書き込まれたシステムソフトウェア、すなわちＩ／Ｏ機器入出力機能処理ＭＰ１、サーボ制御機能処理ＭＰ２、．．．、その他機能処理ＭＰｎの各プログラムのメインルーチンは、スケジューラ１３により優先度の高い順にシステムソフトウェア登録テーブル１５のプログラム実行アドレスを介してＣＰＵ１０に読み出されて実行される。また、上記システムソフトウェアの各プログラムは、処理単位でサブルーチンとしてまとめられ、メインルーチンからサブルーチン実行登録テーブル１６のプログラム実行アドレスを介して実行するサブルーチンを呼び出す構成となっている。
【００１５】
サーボ制御機能処理ＭＰ２を例に具体的に実行過程を説明する。
本実施例では、システムソフトウェア登録テーブル１５には、サーボ制御機能処理ＭＰ２のメインルーチン、および処理Ａサブルーチン、処理Ｂサブルーチン、処理Ｃサブルーチンが登録されており、サーボ制御機能処理ＭＰ２のサブルーチン実行登録テーブル１６には、処理Ａ、処理Ｂ、処理Ｃの登録データが格納されていることとする。
サーボ制御機能処理ＭＰ２のメインルーチンは、システムソフトウェア登録テーブル１５のプログラム実行アドレス１５１を介してスケジューラ１３によりＣＰＵ１０に読み出されて実行される。ＣＰＵ１０によりメインル−チンが呼び出されると、まず処理Ａがサブルーチン実行登録テーブル１６のプログラム実行アドレス１６１を介して間接的にＣＰＵ１０から呼び出されて実行される（ステップＳＴ１）。次いで、同じように処理Ｂ、処理Ｃの順にサブルーチン実行登録テーブル１６のプログラム実行アドレスを介して間接的にＣＰＵ１０から呼び出されて実行される（ステップＳＴ２、ステップＳＴ３）。
このようになっているので、サブルーチン実行登録テーブル１６のプログラム実行アドレス１６１を変更すれば、ＣＰＵ１０に実行させるメインルーチンの処理を変更できるようになっている。また、システムソフトウェア登録テーブル１５のプログラム実行アドレス１５１を変更すれば、ＣＰＵ１０に実行させるサーボ制御機能処理ＭＰ２の処理を変更できるようになっている。
従って、システムソフトウェア登録テーブル１５やサブルーチン実行登録テーブル１６を変更するだけで予めＲＯＭ１２に書き込まれたシステムソフトウェアの処理を任意に変更することができる。
【００１６】
次に、本発明の制御装置におけるシステムソフトウェアのカスタマイズ方法の手順についてフローチャートを参照しながら説明する。まず、メインルーチンの処理順序の変更や、処理の削除や、処理の入れ替えを行う場合について説明する。
図４は、本発明の制御装置において、処理順序を変更する場合のカスタマイズ方法の手順を示したフローチャートである。まず、メインルーチンから呼び出されて実行される処理、すなわちサブルーチンを指定するデータをパーソナルコンピュータ等のプログラム作成手段５により行い、例えばテキストファイル形式で記述する（ステップＳ１）。指定するデータの構造は、例えば、変更するメインプログラムのプログラム識別子、最初に実行するサブルーチンのプログラム識別子、次に実行するサブルーチンのプログラム識別子、．．．、で構成される。サーボ制御機能処理ＭＰ２のメインルーチンを例に説明する。サーボ制御機能処理ＭＰ２のメインルーチンを、処理Ａ、処理Ｃ、処理Ｂの順に処理順序を変更する場合のデータ構造は、サーボ制御機能処理メインルーチン“ＭＰ２”、処理Ａサブルーチン“ＳＰ１”、処理Ｃサブルーチン“ＳＰ３”、処理Ｂサブルーチン“ＳＰ２”となる。メインルーチンの処理を削除する場合は、上記指定データにおいて、実行するサブルーチンのプログラム識別子に削除することを表す識別子を格納する。識別子は、決められた数字でもよいし、番号や記号でもよい。メインルーチンが実行する処理を他の処理と入れ替える場合は、上記指定データにおいて、実行するサブルーチンのプログラム識別子に、例えば処理Ｂサブルーチン“ＳＰ２”の代わりに処理Ｎサブルーチン“ＳＰｎ”を格納する。
【００１７】
次に、作成したデータを制御装置に入力する（ステップＳ２）。作成したデータが制御装置に入力されると、入力されたデータの解析およびサブルーチン実行テーブルの変更を行う（ステップＳ３）。ステップＳ３は具体的には以下のように行われる。
１．指定されたデータにおいて、変更するメインルーチンのプログラム識別子がシステムソフトウェア登録テーブル１５に登録されているか判断し、登録されていなければエラーをプログラム入力手段５に返信する。
２．指定されたサブルーチンのプログラム識別子が削除することを表す識別子かどうか判断する。
３．削除することを表す識別子であれば、システムソフトウェア登録テーブル１５のサブルーチン実行登録テーブル格納アドレスからサブルーチン実行登録テーブル１６に何もしないですぐにメインルーチンに戻るプログラムだけのサブルーチンを登録する。何もしないですぐにメインルーチンに戻るプログラムだけのサブルーチンは、システムソフトウェアとして制御装置に予め格納されており、プログラム識別子も一意的に決められている。
４．削除することを表す識別子でなければ、変更するメインルーチンのプログラム識別子に基づいてシステムソフトウェア登録テーブル１５のサブルーチン実行登録テーブル格納アドレスからサブルーチン実行登録テーブル１６に登録データを登録する。
５．指定された変更するサブルーチンのプログラム識別子の数だけ、上記２〜４を繰り返し行う。
なお、上記ステップＳ３の一連の処理は、システムソフトウェアとして制御装置に予め格納されている。
このようになっているため、予めＲＯＭに書き込まれているシステムソフトウェアのメインル−チンの処理順序の変更、処理の削除、処理の入れ替えをユーザが容易かつ迅速に行うことができる。
【００１８】
次に、メインルーチンやサブルーチンへの処理の追加や、全く別のプログラムへ変更する場合について説明する。
図５は、本発明の制御装置において、ユーザが作成した別のプログラムに変更する場合のカスタマイズ方法の手順を示したフローチャートである。まず、変更するメインルーチン、またはサブルーチンのプログラム作成をパーソナルコンピュータ等のプログラム作成手段５により行い、例えばテキストファイル形式で記述し、コンパイル、リンクなどを行い、ＣＰＵが実行できる機械語プログラムへ変換し、変更するメインルーチン、またはサブルーチンのプログラムを指定するデータを作成する（ステップＳ１０）。指定するデータの構造は、例えば、変更するメインルーチンまたはサブルーチンのプログラム識別子、作成した機械語プログラムで構成される。処理ＡサブルーチンＳＰ１を例に説明する。処理ＡサブルーチンＳＰ１を変更する場合のデータ構造は、処理Ａサブルーチンのプログラム識別子“ＳＰ１”、作成した処理Ａサブルーチンの機械語プログラムとなる。
【００１９】
次に、作成したデータ、すなわちユーザが作成した処理Ａサブルーチンのプログラムを制御装置に入力する（ステップＳ１１）。作成したデータが制御装置に入力されると、入力されたデータの解析およびサブルーチン実行テーブルの変更を行う（ステップＳ１２）。ステップＳ１２は具体的には以下のように行われる。
１．指定されたデータにおいて、ユーザが作成した機械語プログラムをカスタマイズプログラムメモリ１７に格納する。
２．変更するメインルーチンまたはサブルーチンのプログラム識別子がシステムソフトウェア登録テーブル１５に登録されているか判断し、登録されていなければシステムソフトウェア登録テーブル１５に新たに登録する。
３．登録されていれば、システムソフトウェア登録テーブル１５のデータを更新する。なお、システムソフトウェア登録テーブル１５のサブルーチン実行登録テーブル格納アドレスには、呼び出すサブルーチンがないことを表す識別子を格納しておく。
４．変更するメインルーチンまたはサブルーチンのプログラム識別子に基づいてシステムソフトウェア登録テーブル１５に登録されている全てのプログラムについて、システムソフトウェア登録テーブル１５のサブルーチン実行登録テーブル格納アドレスからサブルーチン実行登録テーブル１６のプログラム識別子と変更するメインルーチンまたはサブルーチンのプログラム識別子と一致するものがないかチェックし、一致していれば、該当するサブルーチン実行登録テーブル１６のプログラム実行アドレスを更新する。
なお、上記ステップＳ１２の一連の処理は、システムソフトウェアとして制御装置に予め格納されている。
このようになっているため、予めＲＯＭに書き込まれているシステムソフトウェアのメインルーチンおよびサブルーチンをユーザが作成した別のプログラムに容易かつ迅速に変更することができる。
【００２０】
次に、本発明の第２の具体的実施例を図に基づいて説明する。
図６は、本発明の制御装置の構成を示す説明図である。図６の制御装置は、システムソフトウェアの処理を実行する構成部分を示している。図において、６１は制御装置であり、ＣＰＵ６０と、スケジューラ１３と、メインルーチン登録テーブル６５と、サブルーチン登録テーブル６６と、サブルーチンコールテーブル６７と、カスタマイズプログラムメモリ６８と、システムソフトウェアの各プログラム１８から構成される。ＣＰＵ６０は制御装置を動作させるために予め制御装置メーカにより書き込まれたシステムソフトウェアの各プログラムおよびカスタマイズ用に作成したプログラムを読み出して実行する。スケジューラ１３は割り込み信号や定周期信号などにより制御装置６１の制御スケジュールを管理する。メインルーチン登録テーブル６５はプログラム識別子とサブルーチンコールテーブルの格納アドレスの組がシステムソフトウェアのメインルーチンごとに格納されている。サブルーチン登録テーブル６６はプログラム識別子とプログラム実行アドレスの組がサブルーチンごとに格納されている。サブルーチンコールテーブル６７はシステムソフトウェアのメインルーチンから実行されるサブルーチンの個数と、サブルーチンの実行アドレスがシステムソフトウェアのメインルーチンから実行される順番に格納されている。カスタマイズプログラムメモリ６８はシステムソフトウェアのカスタマイズ用に作成したプログラムを記憶し、システムソフトウェアのメインルーチンから呼び出されて実行される。メインルーチン登録テーブル６５とサブルーチン登録テーブル６６とサブルーチンコールテーブル６７とカスタマイズプログラムメモリ６８は、ＥＥＰＲＯＭやＦＬＡＳＨメモリ等の読み書き可能な記憶手段に格納されている。システムソフトウェアの各プログラム１８は制御装置６１に接続されているＩ／Ｏ機器やサーボ系装置等を制御するために通常ＲＯＭ等に予め制御装置メーカにより書き込まれ記憶されている。また、システムソフトウェアの各プログラム１８はメインルーチンとサブルーチンで構成され、サブルーチンは、ＣＰＵ６０によってサブルーチンコールテーブル６７のプログラム実行アドレスを介してメインルーチンから呼び出されて実行される。メインルーチンは、スケジューラ１３により優先度の高い順に予めＲＯＭに記憶されている所定のアドレスによりＣＰＵ６０に読み出されて実行される。２はリミットスイッチや電磁弁などのＩ／Ｏ機器で制御装置６１に接続される。３はサーボモータ等のサーボ系装置であり、制御装置６１に接続される。４はディスプレイやキーボード等の周辺機器であり、制御装置６１に接続される。６２はプログラム作成手段であり、パーソナルコンピュータ等のプログラム作成装置を使用して、システムソフトウェアのメインルーチンで実行する処理の指定およびシステムソフトウェアのカスタマイズ用に作成したカスタマイズプログラムを制御装置６１に入力する。
【００２１】
図７は、メインルーチン登録テーブル６５とサブルーチン登録テーブル６６とサブルーチンコールテーブル６７のデータ構造を示す説明図である。図１１の制御装置におけるシステムソフトウェアを例に説明する。図１１の制御装置のシステムソフトウェアは、Ｉ／Ｏ機器入出力機能処理ＭＰ１、サーボ制御機能処理ＭＰ２、．．．、その他機能処理ＭＰｎの各メインルーチンと、各メインルーチンから呼び出されるサブルーチンとで構成されている。例えば、サーボ制御機能処理ＭＰ２のメインルーチンは、処理Ａ、処理Ｂ、処理Ｃのサブルーチンを順次呼び出す構成となっている。図７において、メインルーチン登録テーブル６５には、システムソフトウェアのメインルーチンの登録データが格納されている。すなわち、Ｉ／Ｏ機器入出力機能処理ＭＰ１、サーボ制御機能処理ＭＰ２、．．．、その他機能処理ＭＰｎのメインルーチンの登録データが格納されている。登録データは、プログラム識別子７８と、サブルーチンコールテーブル格納アドレス７９から構成される。プログラム識別子７８は各プログラムを区別するものであり、プログラム名称であってもよいし、一意的な番号や記号であってもよい。本実施例では、サーボ制御機能処理ＭＰ２のメインルーチンのプログラム識別子は、“ＭＰ２”とする。サブルーチンコールテーブル格納アドレス７９はメインルーチンから呼び出されて実行されるサブルーチンを登録したサブルーチンコールテーブル６７の所定のアドレスが格納されている。同じように他のメインルーチンについても、メインルーチン登録テーブル６５にそれぞれ格納される。
サブルーチン登録テーブル６６には、システムソフトウェアのメインルーチンごとに、そのメインルーチンから呼び出される各サブルーチンの登録データが格納されている。登録データは、プログラム識別子１６０と、プログラム実行アドレス１６１から構成される。プログラム識別子１６０は、各プログラムを区別するものであり、プログラム名称であってもよいし、一意的な番号や記号であってもよい。プログラム格納アドレス１６１はプログラムが実際に実行される所定のアドレスが格納されている。サーボ制御機能処理ＭＰ２のメインルーチンを例に説明する。サーボ制御機能処理ＭＰ２のメインルーチンは、処理Ａ、処理Ｂ、処理Ｃのサブルーチンを順次呼び出す構成となっている。本実施例では、サブルーチン処理Ａ、処理Ｂ、処理Ｃのプログラム識別子は、それぞれ“ＳＰ１”、“ＳＰ２”、“ＳＰ３”とする。従って、サーボ制御機能処理ＭＰ２のメインルーチンのサブルーチン登録テーブル６６には、処理Ａのプログラム識別子“ＳＰ１”、処理Ａの実行アドレス、処理Ｂのプログラム識別子“ＳＰ２”、処理Ｂの実行アドレス、処理Ｃのプログラム識別子“ＳＰ３”、処理Ｃの実行アドレスが格納されている。同じように他のサブルーチンについても、サブルーチン登録テーブル６６にそれぞれ格納される。
サブルーチンコールテーブル６７には、システムソフトウェアのメインルーチンごとに、そのメインルーチンから実行されるサブルーチンの個数と、サブルーチンの実行アドレスがシステムソフトウェアのメインルーチンから実行される順番に格納されている。サーボ制御機能処理ＭＰ２のメインルーチンを例に説明する。サーボ制御機能処理ＭＰ２のメインルーチンは、処理Ａ、処理Ｂ、処理Ｃの３個のサブルーチンを順次呼び出す構成となっている。従って、サーボ制御機能処理ＭＰ２のメインルーチンのサブルーチンコールテーブル６７には、メインルーチンＭＰ２から実行されるサブルーチンの個数“３”と、サブルーチン処理Ａの“実行アドレス”、サブルーチン処理Ｂの“実行アドレス”、サブルーチン処理Ｃの“実行アドレス”が格納されている。同じように他のメインルーチンについても、サブルーチンコールテーブル６７がそれぞれ格納され、その格納アドレスがメインルーチン登録テーブル６５のサブルーチンコールテーブル格納アドレスにそれぞれ格納されている。
なお、メインルーチンから呼び出されるサブルーチンがない場合は、サブルーチンコールテーブル６７の実行サブルーチン個数に“０”を格納する。
なお、メインルーチン登録テーブル６５とサブルーチン登録テーブル６６およびサブルーチンコールテーブル６７は、予め制御装置メーカにより作成され、制御装置に記憶されて出荷される。また、メインルーチン登録テーブル６５において、変更されることで危険を生じるプログラムや、カスタマイズの必要のないプログラムは登録しないようにしておいてもよい。
【００２２】
次に、本発明の制御装置におけるシステムソフトウェアの実行過程を具体的に説明する。図８は、本発明の制御装置の構成と当該制御装置において行われるシステムソフトウェア処理の実行過程とを複合的に表した説明図である。図８の制御装置６１は以下のように構成されている。
図８の制御装置６１は、当該制御装置を動作させるために予め制御装置メーカにより書き込まれたＲＯＭ１２と、必要に応じてデータの登録等に使用されるＲＡＭ１１と、ＲＯＭ１２に書き込まれたＩ／Ｏ機器入出力機能処理等のシステムソフトウェアのプログラムを読み出して実行するＣＰＵ６０と、割り込み信号や定周期信号などにより制御装置の制御スケジュールを管理するスケジューラ１３と、制御装置６１に接続されているＩ／Ｏ機器２、サーボ系装置３、その他周辺機器４とのデータの入出力を行う入出力回路１４とから構成されている。図８の制御装置６１において、ＲＯＭ１２に書き込まれたシステムソフトウェア、すなわちＩ／Ｏ機器入出力機能処理ＭＰ１、サーボ制御機能処理ＭＰ２、．．．、その他機能処理ＭＰｎの各プログラムのメインルーチンは、スケジューラ１３により優先度の高い順に予めＲＯＭに記憶されている所定のアドレスによりＣＰＵ６０に読み出されて実行される。また、上記システムソフトウェアの各プログラムは、処理単位でサブルーチンとしてまとめられ、メインルーチンからメインルーチン登録テーブル６５およびサブルーチンコールテーブル６７のプログラム実行アドレスを介して実行するサブルーチンを呼び出す構成となっている。
【００２３】
サーボ制御機能処理ＭＰ２を例に具体的に実行過程を説明する。
本実施例では、メインルーチン登録テーブル６５には、サーボ制御機能処理ＭＰ２のメインルーチンが登録されており、サーボ制御機能処理ＭＰ２のサブルーチンコールテーブル６７には、処理Ａ、処理Ｂ、処理Ｃの３個のサブルーチンのプログラム実行アドレスが格納されているものとする。
サーボ制御機能処理ＭＰ２のメインルーチンは、スケジューラ１３により予めＲＯＭに記憶されている所定のアドレスによりＣＰＵ６０に読み出されて実行される。ＣＰＵ６０によりメインル−チンが呼び出されると、メインルーチンの処理は具体的には以下のように行われる。メインルーチン登録テーブル６５のサブルーチンコールテーブル格納アドレスを参照し、サブルーチンコールテーブル６７に格納されている実行サブルーチン１のプログラム実行アドレスを介して第１のサブルーチン（すなわち、処理Ａサブルーチン）を実行する（ステップＳＴ１）。
【００２４】
次に、メインルーチン登録テーブル６５のサブルーチンコールテーブル格納アドレスを参照し、サブルーチンコールテーブル６７に格納されている実行サブルーチンの個数から格納されている実行サブルーチンをすべて実行したか判断し、すべての実行を完了していなければステップＳＴ１に戻る（ステップＳＴ２）。すなわち、サーボ制御機能処理ＭＰ２の例では、ステップＳＴ１、ステップＳＴ２を３回繰り返すことで、処理Ａサブルーチン、次いで、処理Ｂサブルーチン、最後に処理Ｃサブルーチンが実行されることになる。なお、メインルーチン登録テーブル６５のサブルーチンコールテーブル格納アドレスを参照し、サブルーチンコールテーブル６７に格納されている実行サブルーチンの個数が０の場合は、サブルーチンコールテーブル６７に実行するサブルーチンがないことを表しているので、この場合は、１回も実行せずにメインルーチンに戻るようにしておく。
このようになっているので、サブルーチンコールテーブル６７のプログラム実行アドレスを変更すれば、ＣＰＵ６０に実行させるサーボ制御機能処理ＭＰ２の処理順序の変更、処理の入れ替えを行うことができるようになっている。また、サブルーチンコールテーブル６７に格納するサブルーチンの個数およびプログラム実行アドレスを変更するとともに、メインルーチン登録テーブル６５のサブルーチンコールテーブル格納アドレスを変更すれば、ＣＰＵ６０に実行させるサーボ制御機能処理ＭＰ２の処理の追加、削除を行うことができるようになっている。
従って、メインルーチン登録テーブル６５やサブルーチンコールテーブル６７を変更するだけで予めＲＯＭ１２に書き込まれたシステムソフトウェアの処理を任意に変更することができる。
【００２５】
次に、本発明の制御装置におけるシステムソフトウェアのカスタマイズ方法の手順についてフローチャートを参照しながら説明する。まず、メインルーチンの処理順序の変更、処理の入れ替え、処理の追加、処理の削除を行う場合について説明する。
図９は、本発明の制御装置において、処理順序を変更する場合のシステムソフトウェアのカスタマイズ方法の手順を示したフローチャートである。まず、システムソフトウェアのメインルーチンから呼び出されて実行される処理、すなわちサブルーチンを指定するデータをパーソナルコンピュータ等のプログラム作成手段６２により行い、例えばテキストファイル形式で記述する（ステップＳ１）。指定するデータの構造は、例えば、変更するメインルーチンのプログラム識別子、メインルーチンが実行するサブルーチンの個数、メインルーチンが最初に実行するサブルーチンのプログラム識別子、次に実行するサブルーチンのプログラム識別子、．．．、で構成される。サーボ制御機能処理ＭＰ２のメインルーチンを例に説明する。サーボ制御機能処理ＭＰ２のメインルーチンの実行順序を処理Ａサブルーチン、処理Ｃサブルーチン、処理Ｂサブルーチンの順に変更する場合のデータ構造は、サーボ制御機能処理メインルーチン“ＭＰ２”、サブルーチンの個数“３”、処理Ａサブルーチン“ＳＰ１”、処理Ｃサブルーチン“ＳＰ３”、処理Ｂサブルーチン“ＳＰ２”となる。
【００２６】
次に、作成したデータを制御装置に入力する（ステップＳ２）。作成したデータが制御装置に入力されると、入力されたデータの解析およびサブルーチンコールテーブル６７の変更を行う（ステップＳ３）。ステップＳ３は具体的には以下のように行われる。
１．指定されたメインルーチンのプログラム識別子がメインルーチン登録テーブル６５に登録されているか判断し、登録されていなければエラーをプログラム入力手段６２に返信する。
２．指定されたサブルーチンの個数をサブルーチンコールテーブル６７に格納する。
３．指定されたデータにおいて、実行するサブルーチンのプログラム識別子がサブルーチン登録テーブル６６に登録されているか判断し、登録されていなければエラーをプログラム入力手段６２に返信する。
４．実行するサブルーチンのプログラム識別子に基づいてサブルーチン登録テーブル６６内の該当サブルーチンのプログラム実行アドレスをサブルーチンコールテーブル６７に格納する。
５．指定されたサブルーチンの個数だけ、上記３〜４を繰り返し行う。
なお、上記ステップＳ３の一連の処理は、システムソフトウェアとして制御装置に予め格納されている。
また、メインルーチンが実行する処理を他の処理と入れ替える場合は、プログラム作成手段６２で指定するデータにおいて、実行するサブルーチンのプログラム識別子に、例えば処理Ｂサブルーチン“ＳＰ２”の代わりに処理Ｎサブルーチン“ＳＰｎ”を格納すればよい。
また、メインルーチンに処理を追加する場合は、プログラム作成手段６２で指定するデータにおいて、追加するサブルーチンのプログラム識別子を追加するとともに、サブルーチンの個数を追加するサブルーチンを加算した数にすればよい。例えば、処理Ｂサブルーチン“ＳＰ２”の次に処理Ｎサブルーチン“ＳＰｎ”を追加する場合のデータ構造は、サーボ制御機能処理メインルーチン“ＭＰ２”、サブルーチンの個数“４”、処理Ａサブルーチン“ＳＰ１”、処理Ｃサブルーチン“ＳＰ３”、処理Ｂサブルーチン“ＳＰ２”、処理Ｎサブルーチン“ＳＰｎ”とすればよい。なお、上記ステップＳ３の処理において、メインルーチンに処理を追加した場合、ステップ３の１〜５の一連の処理で作成したサブルーチンコールテーブル６７のアドレスをメインルーチン登録テーブル６５の該当するメインルーチンのサブルーチンコールテーブル格納アドレスに格納するようにシステムソフトウェアをプログラムしておけばよい。
また、メインルーチンの処理を削除する場合は、プログラム作成手段６２で指定するデータにおいて、削除するサブルーチンのプログラム識別子を削除するとともに、サブルーチンの個数を削除するサブルーチンを減算した数にすればよい。例えば、処理Ｂサブルーチン“ＳＰ２”を削除する場合のデータ構造は、サーボ制御機能処理メインルーチン“ＭＰ２”、サブルーチンの個数“２”、処理Ａサブルーチン“ＳＰ１”、処理Ｃサブルーチン“ＳＰ３”とすればよい。なお、上記ステップＳ３の処理において、メインルーチンの処理を削除した場合、ステップ３の１〜５の一連の処理で作成したサブルーチンコールテーブル６７のアドレスをメインルーチン登録テーブル６５の該当するメインルーチンのサブルーチンコールテーブル格納アドレスに格納するようにシステムソフトウェアをプログラムしておけばよい。
このようになっているため、予めＲＯＭ１２に書き込まれているシステムソフトウェアのメインル−チンの処理順序の変更、処理の入れ替え、処理の追加、処理の削除、すなわちシステムソフトウェアのカスタマイズを容易かつ迅速に行うことができる。
【００２７】
次に、サブルーチンへの処理の追加や、全く別のプログラムへ変更する場合について説明する。
図１０は、本発明の制御装置においてカスタマイズ用に作成した別のプログラムに変更する場合のシステムソフトウェアのカスタマイズ方法の手順を示したフローチャートである。まず、変更するサブルーチンのプログラム作成をパーソナルコンピュータ等のプログラム作成手段６２により行い、例えばテキストファイル形式で記述し、コンパイル、リンクなどを行い、ＣＰＵが実行できる機械語プログラムへ変換し、変更するサブルーチンのプログラムを指定するデータを作成する（ステップＳ１０）。指定するデータの構造は、例えば、変更するサブルーチンのプログラム識別子、作成した機械語プログラムで構成される。処理ＡサブルーチンＳＰ１を例に説明する。処理ＡサブルーチンＳＰ１をカスタマイズする場合のデータ構造は、処理Ａサブルーチンのプログラム識別子“ＳＰ１”、作成したカスタマイズ化処理Ａサブルーチンの機械語プログラムとなる。
【００２８】
次に、作成したデータ、すなわちシステムソフトウェアのカスタマイズ用に作成したカスタマイズ化処理Ａサブルーチンの機械語プログラムを制御装置に入力する（ステップＳ１１）。作成したデータが制御装置に入力されると、入力されたデータの解析およびサブルーチン登録テーブル６６の変更およびサブルーチンコールテーブル６７の変更を行う（ステップＳ１２）。ステップＳ１２は具体的には以下のように行われる。
１．システムソフトウェアのカスタマイズ用に作成したカスタマイズ化処理Ａサブルーチンの機械語プログラムをカスタマイズプログラムメモリ６８に格納する。
２．指定されたサブルーチンのプログラム識別子がサブルーチン登録テーブル６６に登録されているか判断し、登録されていなければサブルーチン登録テーブル６６に新たに登録する。
３．登録されていれば、サブルーチン登録テーブル６６のデータを更新する。
４．また、登録されていれば、メインルーチン登録テーブル６５に登録されている全てのメインルーチンについて、メインルーチン登録テーブル６５のサブルーチンコールテーブル格納アドレスからサブルーチンコールテーブル６７のプログラム実行アドレスと、３で更新する前のプログラム実行アドレスと一致するものがないかチェックし、一致していれば、該当するサブルーチンコールテーブル６７のプログラム実行アドレスを３で更新したプログラム実行アドレスに更新する。
なお、上記ステップＳ１２の一連の処理は、システムソフトウェアとして制御装置に予め格納されている。
このようになっているため、予めＲＯＭに書き込まれているサブルーチン、すなわちシステムソフトウェアのメインルーチンの処理をカスタマイズ用に作成した別のプログラムに容易かつ迅速に変更することができ、システムソフトウェアのカスタマイズを容易かつ迅速に行うことができる。
【００２９】
【発明の効果】
以上述べたように、本発明によれば、システムソフトウェア登録テーブルやサブルーチン実行登録テーブルを変更することによって、予めＲＯＭに書き込まれたシステムソフトウェアの処理を任意に変更することができ、すなわちシステムソフトウェアのカスタマイズを容易かつ迅速に行うことができるという効果がある。結果的に、固定化された制御装置のシステムソフトウェアの処理をユーザが使用する機械に応じて柔軟に変更することができるので、機械の性能や機能の向上を図ることができるという効果がある。
また、本発明によれば、サブルーチン登録テーブルやメインルーチン登録テーブルおよびサブルーチンコールテーブルを変更することによって、予めＲＯＭに書き込まれたシステムソフトウェアのメインルーチンの処理を任意に変更することができ、すなわちシステムソフトウェアのカスタマイズを容易かつ迅速に行うことができるという効果がある。結果的に、固定化された制御装置のシステムソフトウェアの処理をユーザが使用する機械に応じて柔軟に変更することができ、機械の性能や機能の向上を図ることができるという効果がある。
【図面の簡単な説明】
【図１】本発明の方法が適用される制御装置の構成を示す説明図
【図２】制御装置の構成を補足するデータ説明図
【図３】制御装置の構成と当該制御装置において行われるシステムソフトウェア処理の実行過程とを複合的に表した説明図
【図４】処理順序を変更する場合のカスタマイズ方法の手順を示したフローチャート
【図５】ユーザが作成した別のプログラムに変更する場合のカスタマイズ方法の手順を示したフローチャート
０５３）▲９▼
【図６】本発明の第２実施例の方法が適用される制御装置の構成を示す説明図
【図７】制御装置の構成を補足するデータ説明図
【図８】制御装置の構成と当該制御装置において行われるシステムソフトウェア処理の実行過程とを複合的に表した説明図
【図９】処理順序を変更する場合のシステムソフトウェアのカスタマイズ方法の手順を示したフローチャート
【図１０】カスタマイズ用に作成した別のプログラムに変更する場合のシステムソフトウェアのカスタマイズ方法の手順を示したフローチャート
【図１１】従来の制御装置の構成と当該制御装置において行われるシステムソフトウェア処理の実行過程とを複合的に表した説明図
【図１２】従来の制御装置において処理を削除する場合のシステムソフトウェアのカスタマイズ方法を説明するフローチャート
【図１３】従来の制御装置において処理を追加する場合のシステムソフトウェアのカスタマイズ方法を説明するフローチャート
【符号の説明】
１、６１  制御装置
２  Ｉ／Ｏ機器
３  サーボ系装置
４  周辺機器
５、６２  プログラム作成手段
１０、６０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  スケジューラ
１４  入出力回路
１５  システムソフトウェア登録テーブル
１６  サブルーチン実行登録テーブル
１７、６８  カスタマイズプログラムメモリ
１８  システムソフトウェアの各プログラム
６５  メインルーチン登録テーブル
６６  サブルーチン登録テーブル
６７  サブルーチンコールテーブル
７８、１５０、１６０  プログラム識別子
７９  サブルーチンコールテーブル格納アドレス
１５１、１６１  プログラム実行アドレス
１５２  サブルーチン実行登録テーブル格納アドレス
【図１】
2004341667.tif 000003
【図２】
2004341667.tif 000004
【図３】
2004341667.tif 000005
【図４】
2004341667.tif 000006
【図５】
2004341667.tif 000007
【図６】
2004341667.tif 000008
【図７】
2004341667.tif 000009
【図８】
2004341667.tif 000010
【図９】
2004341667.tif 000011
【図１０】
2004341667.tif 000012
【図１１】
2004341667.tif 000013
【図１２】
2004341667.tif 000014
【図１３】
2004341667.tif 000015