(57)【要約】【課題】  ラダー言語プログラムとＣ言語プログラムの間でデータを高速で送受信させ、両プログラムをモーション制御に同期させる。【解決手段】  エンジニアリングツール１０のプロジェクト設定ファイル１４、１７に従ってロードされたＣ言語プログラム１３、１６がタスク型プロジェクト１２であればリアルタイムＯＳ３のタスクとして動作させ、関数型プロジェクト１５であれば他のタスクから関数としてコール可能な状態でメモリ７に格納する。【選択図】図１
2006178818.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイムＯＳと、メモリと、ラダー言語プログラムをモーション制御周期に同期させて実行する実行手段と、前記ラダー言語プログラムとＣ言語プログラムの両方が動作するマイクロプロセッサと
を備えたモーションコントローラにおいて、
エンジニアリングツールのプロジェクト設定ファイルに従ってロードされた前記Ｃ言語プログラムがタスク型プロジェクトであれば前記リアルタイムＯＳのタスクとして動作させ、前記Ｃ言語プログラムが関数型プロジェクトであれば他のタスクから関数としてコール可能な状態で前記メモリに格納することを特徴とするモーションコントローラ。
【請求項２】
Ｃ言語プログラムをプロジェクトという単位で管理し、前記Ｃ言語プログラムをモーションコントローラのリアルタイムＯＳ上で独立して動作可能なタスク型プロジェクトとしてロードするか、あるいは他のタスクからコールされることによって動作可能な関数型プロジェクトとしてロードするかのいずれかを選択する選択手段を備え、
その選択手段がいずれを選んだかという情報を含むプロジェクトの属性情報をプロジェクト設定ファイルとして保存し、前記Ｃ言語プログラムと前記プロジェクト設定ファイルを前記モーションコントローラへロードすることを特徴とするエンジニアリングツール。
【請求項３】
リアルタイムＯＳと、メモリと、ラダー言語プログラムをモーション制御周期に同期させて実行する実行手段と、前記ラダー言語プログラムとＣ言語プログラムの両方が動作するマイクロプロセッサとを備えたモーションコントローラと、
前記Ｃ言語プログラムをプロジェクトという単位で管理し、前記Ｃ言語プログラムを前記リアルタイムＯＳ上で独立して動作可能なタスク型プロジェクトとしてロードするか、あるいは他のタスクからコールされることによって動作可能な関数型プロジェクトとしてロードするかのいずれかを選択する選択手段を備え、その選択手段がいずれを選んだかという情報を含むプロジェクトの属性情報をプロジェクト設定ファイルとして保存し、前記Ｃ言語プログラムと前記プロジェクト設定ファイルを前記モーションコントローラへロードするエンジニアリングツールとを備え、
前記プロジェクト設定ファイルに従ってロードされたＣ言語プログラムがタスク型プロジェクトであれば前記リアルタイムＯＳのタスクとして動作させ、ロードされたＣ言語プログラムが関数型プロジェクトであれば他のタスクから関数としてコール可能な状態で前記モーションコントローラの前記メモリに格納されることを特徴とするＣ言語実行システム。
【請求項４】
前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称と開始アドレスを関連付けした情報として持つ関数型プロジェクト管理テーブルと、
前記関数型プロジェクトのプロジェクト名称を引数として入力して前記関数型プロジェクト管理テーブルを検索し、前記関数型プロジェクトのプロジェクト名称から前記関数型プロジェクトの開始アドレスを求めてその開始アドレスをコールするラダー言語のファンクションブロックとを備え、
ラダー言語プログラムから前記ファンクションブロックをコールして間接的に前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムをコールすることを特徴とする請求項１に記載のモーションコントローラ。
【請求項５】
前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称と開始アドレスを関連付けした情報として持つ関数型プロジェクト管理テーブルと、
前記関数型プロジェクトのプロジェクト名称を引数として入力して前記関数型プロジェクト管理テーブルを検索し、前記関数型プロジェクトのプロジェクト名称から前記関数型プロジェクトの開始アドレスを求めてその開始アドレスをコールするアプリケーションインターフェースを備え、
前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムから前記アプリケーションインターフェースをコールすることによって間接的に前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムをコールすることを特徴とする請求項１に記載のモーションコントローラ。
【請求項６】
前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称を前記リアルタイムＯＳのタスク名称としてタスクを登録し、前記タスク型プロジェクトのプロジェクト名称とタスク起床やタスクの中断などのタスク操作の種別を引数として入力し、プロジェクト名称をタスク名称として扱いタスク操作の種別に対応した前記リアルタイムＯＳが提供する機能をコールするラダー言語のファンクションブロックを持ち、前記ラダー言語プログラムから前記ファンクションブロックをコールすることによって間接的に他の前記タスク型プロジェクトのタスクを操作することを特徴とする請求項１に記載のモーションコントローラ。
【請求項７】
前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称を前記リアルタイムＯＳのタスク名称としてタスクを登録し、前記タスク型プロジェクトのプロジェクト名称とタスク起床やタスクの中断などのタスク操作の種別を引数として入力し、前記プロジェクト名称をタスク名称として扱いタスク操作の種別に対応した前記リアルタイムＯＳが提供する機能をコールするアプリケーションインターフェースを備え、前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムから前記アプリケーションインターフェースをコールすることによって間接的に他の前記タスク型プロジェクトのタスクを操作することを特徴とする請求項１に記載のモーションコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械や自動組み立て装置、自動搬送装置などの制御に用いる数値制御装置に関する発明であり、特にＣ言語で書かれたアプリケーションプログラムを用いるモーションコントローラに関する。
【背景技術】
【０００２】
モーションコントローラ用のプログラム言語としてラダー言語やＧ言語、専用モーション言語などが使われるのが一般的であるが、最近はコンピュータ言語として汎用性のあるＣ言語が広く使われるようになっており、モーションコントローラに適用することの関心が高まっている。
ここで従来のモーションコントローラについて図を用いて説明する。図４は従来のモーションコントローラ１Ｂの構成を示すブロック図であり、ラダー言語アプリケーションプログラム実行用モジュール３０とＣ言語アプリケーションプログラム実行用モジュール３４の２つのモジュールを備えてＢＵＳ３８で接続されている。それぞれのモジュール３０、３４にはマイクロプロセッサ３１、３５が実装されており、ラダー言語アプリケーションプログラム３２とＣ言語アプリケーションプログラム３６がそれぞれのマイクロプロセッサ３１、３５上で動作する。各モジュール３０、３４はそれぞれＢＵＳインターフェース３３、３７を備えており、そのＢＵＳインターフェース３３、３７を介してＢＵＳ３８に接続されている（例えば特許文献１参照）。
このように、ラダー言語アプリケーションプログラム３２とＣ言語アプリケーションプログラム３６の両方が同一のマイクロプロセッサ上で動作する構成にはなっておらず、Ｃ言語アプリケーションプログラム３６が動作するモジュール３４は、ラダー言語アプリケーションプログラム３２が動作するモジュール３０から見て補助的なモジュールという位置付けになっていた。
【特許文献１】特開平９−２７４５１１
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このように従来技術ではモジュール間がＢＵＳで接続されているため、ラダー言語アプリケーションプログラムとＣ言語アプリケーションプログラム間で高速なデータの授受ができないという問題があった。また、ラダー言語アプリケーションプログラムとＣ言語アプリケーションプログラムが異なるマイクロプロセッサ上で動作するため、ラダー言語アプリケーションプログラムからＣ言語アプリケーションプログラムを関数としてコールすることができないという問題もあった。さらに、ラダー言語アプリケーションプログラム実行用モジュールがモーション制御に同期している場合は、ラダー言語アプリケーションプログラムの任意の実行タイミングでＣ言語アプリケーションプログラムをコールするような、Ｃ言語のアプリケーションプログラムを構築することができないという問題もあった。
そこで本発明は、上記の問題に鑑みてなされたものであり、ラダー言語アプリケーションプログラムとＣ言語アプリケーションプログラム間で高速なデータの授受ができ、ラダー言語アプリケーションプログラムからＣ言語アプリケーションプログラムを関数としてコールすることができ、ラダー言語アプリケーションプログラム実行用モジュールがモーション制御に同期している場合でも、ラダー言語アプリケーションプログラムの任意の実行タイミングでＣ言語アプリケーションプログラムをコールすることができるモーションコントローラを提供することを目的としている。
【課題を解決するための手段】
【０００４】
そこで第１の本発明は、リアルタイムＯＳと、メモリと、ラダー言語プログラムをモーション制御周期に同期させて実行する実行手段と、前記ラダー言語プログラムとＣ言語プログラムの両方が動作するマイクロプロセッサとを備えたモーションコントローラにおいて、エンジニアリングツールのプロジェクト設定ファイルに従ってロードされた前記Ｃ言語プログラムがタスク型プロジェクトであれば前記リアルタイムＯＳのタスクとして動作させ、前記Ｃ言語プログラムが関数型プロジェクトであれば他のタスクから関数としてコール可能な状態で前記メモリに格納することを特徴としている。
また第２の本発明は、Ｃ言語プログラムをプロジェクトという単位で管理し、前記Ｃ言語プログラムをモーションコントローラのリアルタイムＯＳ上で独立して動作可能なタスク型プロジェクトとしてロードするか、あるいは他のタスクからコールされることによって動作可能な関数型プロジェクトとしてロードするかのいずれかを選択する選択手段を備え、その選択手段がいずれを選んだかという情報を含むプロジェクトの属性情報をプロジェクト設定ファイルとして保存し、前記Ｃ言語プログラムと前記プロジェクト設定ファイルを前記モーションコントローラへロードすることを特徴としている。
また第３の本発明は、リアルタイムＯＳと、メモリと、ラダー言語プログラムをモーション制御周期に同期させて実行する実行手段と、前記ラダー言語プログラムとＣ言語プログラムの両方が動作するマイクロプロセッサとを備えたモーションコントローラと、前記Ｃ言語プログラムをプロジェクトという単位で管理し、前記Ｃ言語プログラムを前記リアルタイムＯＳ上で独立して動作可能なタスク型プロジェクトとしてロードするか、あるいは他のタスクからコールされることによって動作可能な関数型プロジェクトとしてロードするかのいずれかを選択する選択手段を備え、その選択手段がいずれを選んだかという情報を含むプロジェクトの属性情報をプロジェクト設定ファイルとして保存し、前記Ｃ言語プログラムと前記プロジェクト設定ファイルを前記モーションコントローラへロードするエンジニアリングツールと、を備え、前記プロジェクト設定ファイルに従ってロードされたＣ言語プログラムがタスク型プロジェクトであれば前記リアルタイムＯＳのタスクとして動作させ、ロードされたＣ言語プログラムが関数型プロジェクトであれば他のタスクから関数としてコール可能な状態で前記モーションコントローラの前記メモリに格納されることを特徴としている。
また第４の本発明は、前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称と開始アドレスを関連付けした情報として持つ関数型プロジェクト管理テーブルと、前記関数型プロジェクトのプロジェクト名称を引数として入力して前記関数型プロジェクト管理テーブルを検索し、前記関数型プロジェクトのプロジェクト名称から前記関数型プロジェクトの開始アドレスを求めてその開始アドレスをコールするラダー言語のファンクションブロックとを備え、ラダー言語プログラムから前記ファンクションブロックをコールして間接的に前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムをコールすることを特徴としている。
また第５の本発明は、前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称と開始アドレスを関連付けした情報として持つ関数型プロジェクト管理テーブルと、前記関数型プロジェクトのプロジェクト名称を引数として入力して前記関数型プロジェクト管理テーブルを検索し、前記関数型プロジェクトのプロジェクト名称から前記関数型プロジェクトの開始アドレスを求めてその開始アドレスをコールするアプリケーションインターフェースを備え、前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムから前記アプリケーションインターフェースをコールすることによって間接的に前記関数型プロジェクトとしてロードされた前記Ｃ言語プログラムをコールすることを特徴としている。
また第６の本発明は、前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称を前記リアルタイムＯＳのタスク名称としてタスクを登録し、前記タスク型プロジェクトのプロジェクト名称とタスク起床やタスクの中断などのタスク操作の種別を引数として入力し、プロジェクト名称をタスク名称として扱いタスク操作の種別に対応した前記リアルタイムＯＳが提供する機能をコールするラダー言語のファンクションブロックを持ち、前記ラダー言語プログラムから前記ファンクションブロックをコールすることによって間接的に他の前記タスク型プロジェクトのタスクを操作することを特徴としている。
また第７の本発明は、前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムのプロジェクト名称を前記リアルタイムＯＳのタスク名称としてタスクを登録し、前記タスク型プロジェクトのプロジェクト名称とタスク起床やタスクの中断などのタスク操作の種別を引数として入力し、前記プロジェクト名称をタスク名称として扱いタスク操作の種別に対応した前記リアルタイムＯＳが提供する機能をコールするアプリケーションインターフェースを備え、前記タスク型プロジェクトとしてロードされた前記Ｃ言語プログラムから前記アプリケーションインターフェースをコールすることによって間接的に他の前記タスク型プロジェクトのタスクを操作することを特徴としている。
【発明の効果】
【０００５】
第１の本発明によると、エンジニアリングツールのプロジェクト設定ファイルに従ってロードされたＣ言語プログラムがタスク型プロジェクトであればリアルタイムＯＳのタスクとして動作させ、Ｃ言語プログラムが関数型プロジェクトであれば他のタスクから関数としてコール可能な状態でメモリに格納するので、用途に適したプロジェクトタイプを選択することが可能であるという効果がある。また、ラダー言語プログラムとＣ言語プログラムの両方が同一のマイクロプロセッサ上で動作するため、ラダー言語プログラムとＣ言語プログラム間のデータの授受が高速におこなうことができるという効果がある。
また第２の本発明によると、Ｃ言語プログラムをプロジェクトという単位で管理し、Ｃ言語プログラムをモーションコントローラのリアルタイムＯＳ上で独立して動作可能なタスク型プロジェクトとしてロードするか、あるいは他のタスクからコールされることによって動作可能な関数型プロジェクトとしてロードするかのいずれかを選択する選択手段を備えて、いずれを選んだかという情報を含むプロジェクトの属性情報をプロジェクト設定ファイルとして保存し、Ｃ言語プログラムとプロジェクト設定ファイルをモーションコントローラへロードするので、用途に適したプロジェクトタイプを選択することが可能であるという効果がある。また、タスク型プロジェクトは、リアルタイムＯＳ上のタスクとして独立して動作させることが可能であるため、ラダー言語プログラムなしでもＣ言語プログラムのみでアプリケーションプログラムを構築することも可能であるという効果がある。また、ラダー言語プログラムと共存しながら必要な部分だけＣ言語プログラムでアプリケーションプログラムを構築することが可能であるため、信号処理に強いラダー言語と複雑な数値演算に強いＣ言語を用途に応じて使い分けることが可能であるという効果がある。
また第３の本発明によると、リアルタイムＯＳと、メモリと、ラダー言語プログラムをモーション制御周期に同期させて実行する実行手段と、ラダー言語プログラムとＣ言語プログラムの両方が動作するマイクロプロセッサとを備えたモーションコントローラと、Ｃ言語プログラムをプロジェクトという単位で管理し、Ｃ言語プログラムをリアルタイムＯＳ上で独立して動作可能なタスク型プロジェクトとしてロードするか、あるいは他のタスクからコールされることによって動作可能な関数型プロジェクトとしてロードするかのいずれかを選択する選択手段を備え、その選択手段がいずれを選んだかという情報を含むプロジェクトの属性情報をプロジェクト設定ファイルとして保存し、Ｃ言語プログラムとプロジェクト設定ファイルをモーションコントローラへロードするエンジニアリングツールと、を備え、プロジェクト設定ファイルに従ってロードされたＣ言語プログラムがタスク型プロジェクトであればリアルタイムＯＳのタスクとして動作させ、ロードされたＣ言語プログラムが関数型プロジェクトであれば他のタスクから関数としてコール可能な状態でモーションコントローラのメモリに格納されるので、関数型プロジェクトとしてロードされたＣ言語プログラムがモーション制御に同期しているラダー言語プログラムからコールされた場合は、Ｃ言語プログラムでモーション制御のアプリケーションプログラムを構築することが可能であるという効果がある。また、タスク型プロジェクトとしてロードされたＣ言語プログラムは、リアルタイムＯＳ上のタスクとして独立して動作させることが可能であり、リアルタイムＯＳ上でのタスクの優先度を選択することが可能であるため、優先度の選択によりモーション制御に同期した動作をおこなう用途、高度な数値演算のように処理に時間がかかるような用途や、逐次実行動作のように処理時間を気にすることなく継続的にアプリケーションプログラムの動作をおこなう必要がある用途にも適用することができるという効果がある。
また第４の本発明によると、関数型プロジェクトとしてロードされたＣ言語プログラムのプロジェクト名称と開始アドレスを関連付けした情報として持つ関数型プロジェクト管理テーブルと、関数型プロジェクトのプロジェクト名称を引数として入力して関数型プロジェクト管理テーブルを検索し、関数型プロジェクトのプロジェクト名称から関数型プロジェクトの開始アドレスを求めてその開始アドレスをコールするラダー言語のファンクションブロックとを備え、ラダー言語プログラムからファンクションブロックをコールして間接的に関数型プロジェクトとしてロードされたＣ言語プログラムをコールするので、ラダー言語プログラムの一部分だけをＣ言語プログラムで記述したいといった要求にも応えることが可能であるという効果がある。また、ラダー言語プログラムからコールされたタイミングでＣ言語プログラムの実行がおこなわれるため、リアルタイムＯＳやタスクの概念を意識することなしにＣ言語プログラムでを構築することが可能でというある効果がある。
また第５の本発明によると、関数型プロジェクトとしてロードされたＣ言語プログラムのプロジェクト名称と開始アドレスを関連付けした情報として持つ関数型プロジェクト管理テーブルと、関数型プロジェクトのプロジェクト名称を引数として入力して関数型プロジェクト管理テーブルを検索し、関数型プロジェクトのプロジェクト名称から関数型プロジェクトの開始アドレスを求めてその開始アドレスをコールするアプリケーションインターフェースを備え、タスク型プロジェクトとしてロードされたＣ言語プログラムからアプリケーションインターフェースをコールすることによって間接的に関数型プロジェクトとしてロードされたＣ言語プログラムをコールするので、タスク型プロジェクトとしてロードされた複数のＣ言語プログラムから共通にコール可能な関数として使用することが可能であるという効果がある。
また第６の本発明によると、タスク型プロジェクトとしてロードされたＣ言語プログラムのプロジェクト名称をリアルタイムＯＳのタスク名称としてタスクを登録し、タスク型プロジェクトのプロジェクト名称とタスク起床やタスクの中断などのタスク操作の種別を引数として入力し、プロジェクト名称をタスク名称として扱いタスク操作の種別に対応したリアルタイムＯＳが提供する機能をコールするラダー言語のファンクションブロックを持ち、ラダー言語プログラムからファンクションブロックをコールすることによって間接的に他のタスク型プロジェクトのタスクを操作するので、ラダー言語プログラムの実行タイミングで、タスク型プロジェクトとしてロードされたＣ言語プログラムの実行制御が可能であるという効果がある。
また第７の本発明によると、タスク型プロジェクトとしてロードされたＣ言語プログラムのプロジェクト名称をリアルタイムＯＳのタスク名称としてタスクを登録し、タスク型プロジェクトのプロジェクト名称とタスク起床やタスクの中断などのタスク操作の種別を引数として入力し、プロジェクト名称をタスク名称として扱いタスク操作の種別に対応したリアルタイムＯＳが提供する機能をコールするアプリケーションインターフェースを備え、タスク型プロジェクトとしてロードされたＣ言語プログラムからアプリケーションインターフェースをコールすることによって間接的に他のタスク型プロジェクトのタスクを操作するので、ラダー言語プログラムの実行タイミングとは独立して、Ｃ言語プログラムからタスク型プロジェクトとしてロードされた他のＣ言語プログラムの実行制御が可能であるという効果がある。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施例を図に基づいて説明する。
【実施例１】
【０００７】
図１は、本発明の第１の実施例を説明するブロック図である。図中、１は本発明のモーションコントローラであり、２はモーションコントローラ１に実装されたマイクロプロセッサ、３はモーションコントローラ１上で動作するリアルタイムＯＳ、４はリアルタイムＯＳ３上で動作し、モーション制御と同期したラダー言語プログラムのダラー言語タスク、５と６はリアルタイムＯＳ３上で動作するＣ言語プログラムのタスク、７はＣ言語プログラムの関数が格納されたメモリ、８と９はＣ言語プログラムのＣ言語関数である。１０はモーションコントローラ用のエンジニアリングツールであり、１１はハードディスク等の記憶装置、１２はタスク型プロジェクト、１３はタスク型プロジェクトとして作成されたＣ言語プログラム、１４はタスク型プロジェクトの属性情報が格納されたプロジェクト設定ファイル、１５は関数型プロジェクト、１６は関数型プロジェクトとして作成されたＣ言語プログラム、１７は関数型プロジェクトの属性情報が格納されたプロジェクト設定ファイルである。
Ｃ言語プログラムはプロジェクトという単位で作成されており、プロジェクトの属性情報に基づいてプロジェクト設定ファイル１４、１７が作成されている。エンジニアリングツール１０がプログラムをダウンロードする時は、Ｃ言語プログラム１３、１６とそのプロジェクト設定ファイル１４、１７の両方をダウンロードする。モーションコントローラ１はプロジェクト設定ファイル１４、１７に従ってロードされたＣ言語プログラム１３、１６がタスク型プロジェクト１２であればリアルタイムＯＳ３のタスクとして動作させ、ロードされたＣ言語プログラム１３、１６が関数型プロジェクト１５であれば他のタスクから関数としてコール可能な状態でモーションコントローラ１のメモリ７に格納する。
【実施例２】
【０００８】
図２は第２の実施例を説明するブロック図である。図中、１は本発明のモーションコントローラであり、３はモーションコントローラ上で動作するリアルタイムＯＳ、４はリアルタイムＯＳ３上で動作し、モーション制御と同期したラダー言語プログラムのラダー言語タスク、１８はラダー言語プログラムで記述されたＣ言語関数呼び出し用ファンクションブロック、５はリアルタイムＯＳ３上で動作するＣ言語プログラムのＣ言語タスク、２０はＣ言語プログラムからコールすることができるＣ言語関数呼び出し用ＡＰＩ、７はＣ言語プログラムの関数が格納されるメモリ、８と９はＣ言語プログラムのＣ言語関数、１９は関数型プロジェクトとしてロードされたＣ言語プログラムのプロジェクト名称と開始アドレスを関連付けした情報として持つ関数型プロジェクト管理テーブルである。
ラダー言語タスク４は、関数型プロジェクトのプロジェクト名称を引数として入力してＣ言語関数呼び出し用ファンクションブロック１８を実行する。Ｃ言語関数呼び出し用ファンクションブロック１８は与えられたプロジェクト名称で関数型プロジェクト管理テーブル１９を検索して関数型プロジェクトの開始アドレスを求め、そのアドレスをコールしてロードされたＣ言語プログラムを間接的な関数型プロジェクトとして実現している。
Ｃ言語タスク５は、関数型プロジェクトのプロジェクト名称を引数として入力してＣ言語関数呼び出し用ＡＰＩ１９をコールする。Ｃ言語関数呼び出し用ＡＰＩ１９は与えられたプロジェクト名称で関数型プロジェクト管理テーブル１９を検索して関数型プロジェクトの開始アドレスを求め、そのアドレスをコールしてロードされたＣ言語プログラムを間接的な関数型プロジェクトとして実現している。
なお、図示していないが、コールしたＣ言語関数からさらにＣ言語関数呼び出し用ＡＰＩ２０をコールし、他のＣ言語関数をコールすることも可能である。
【実施例３】
【０００９】
図３は、第３の実施例を説明するブロック図である。図中、１は本発明のモーションコントローラであり、３はモーションコントローラ１上で動作するリアルタイムＯＳ、４はリアルタイムＯＳ３上で動作しモーション制御と同期したラダー言語プログラムのラダー言語タスク、２１はラダー言語プログラムで記述されたタスク操作用ファンクションブロック、５と６はリアルタイムＯＳ３上で動作するＣ言語プログラムのＣ言語タスク、２３はＣ言語プログラムからコールすることができるタスク操作用ＡＰＩ、２２はモーションコントローラ用のエンジニアリングツール１０と通信するエンジニアリングツールインターフェースである。
ラダー言語タスク４は、タスク型プロジェクトのプロジェクト名称とタスクの起床や中断など操作の種別を引数として入力してタスク操作用ファンクションブロック２１を実行する。タスク操作用ファンクションブロック２１は、プロジェクト名称をタスク名称として扱い、タスク操作の種別に対応したリアルタイムＯＳ３が提供する機能をコールすることによって他のタスク型プロジェクトのタスク操作を間接的に実現している。
Ｃ言語タスク５、６は、タスク型プロジェクトのプロジェクト名称とタスクの起床や中断など操作の種別を引数として入力してタスク操作用ＡＰＩ２３をコールする。タスク操作用ＡＰＩ２３は、プロジェクト名称をタスク名称として扱いタスク操作の種別に対応したリアルタイムＯＳ３が提供する機能をコールして他のタスク型プロジェクトのタスク操作を間接的に実現している。
エンジニアリングツール１０からもタスク型プロジェクトのプロジェクト名称とタスクの起床や中断など操作の種別を含むタスク操作の指令を通信線を介してモーションコントローラ１に伝達する。タスク走査の指令を受け取ったエンジニアリングツールインターフェース２２はプロジェクト名称をタスク名称として扱いタスク操作の種別に対応したリアルタイムＯＳ３が提供する機能をコールして指定したタスク型プロジェクトのタスク操作を間接的に実現している。
【産業上の利用可能性】
【００１０】
本発明は、工作機械、自動組み立て装置および自動搬送装置などの制御に用いられる数
値制御装置に適用が可能である。
【図面の簡単な説明】
【００１１】
【図１】本発明のモーションコントローラのブロック図
【図２】第２実施例のモーションコントローラのブロック図
【図３】第３実施例のモーションコントローラのブロック図
【図４】従来のモーションコントローラのブロック図
【符号の説明】
【００１２】
１、１Ｂ  モーションコントローラ、 ２、３１、３５  マイクロプロセッサ、
３  リアルタイムＯＳ、             ４  ラダー言語タスク、
５、６  Ｃ言語タスク、             ７  メモリ、
８、９  Ｃ言語関数、        １０  エンジニアリングツール、
１１  記憶装置、                   １２  タスク型プロジェクト、
１３、１６  Ｃ言語プログラム、     １４、１７  プロジェクト設定ファイル、
１５  関数型プロジェクト、         
１８  Ｃ言語関数呼び出し用ファンクションブロック、
１９  関数型プロジェクト管理テーブル、
２０  Ｃ言語関数呼び出し用ＡＰＩ、 ２１  タスク操作用ファンクションブロック、
２２  エンジニアリングツールインターフェース、
２３  タスク操作用ＡＰＩ、
３０  ラダー言語アプリケーションプログラム実行用モジュール、
３２  ラダー言語アプリケーションプログラム、
３３、３７  ＢＵＳインターフェース、
３４  Ｃ言語アプリケーションプログラム実行用モジュール、
３６  Ｃ言語アプリケーションプログラム、
３８  ＢＵＳ
【図１】
2006178818.tif 000003
【図２】
2006178818.tif 000004
【図３】
2006178818.tif 000005
【図４】
2006178818.tif 000006