JP2004280222A - コントローラ - Google Patents

コントローラ Download PDF

Info

Publication number
JP2004280222A
JP2004280222A JP2003067631A JP2003067631A JP2004280222A JP 2004280222 A JP2004280222 A JP 2004280222A JP 2003067631 A JP2003067631 A JP 2003067631A JP 2003067631 A JP2003067631 A JP 2003067631A JP 2004280222 A JP2004280222 A JP 2004280222A
Authority
JP
Japan
Prior art keywords
program
monitoring
processor
controller
main
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.)
Pending
Application number
JP2003067631A
Other languages
English (en)
Inventor
Kasuke Nagao
嘉祐 長尾
Masanori Kadowaki
正規 門脇
Masayuki Masuda
真之 益田
Masazumi Kitamura
正純 北村
Takashi Inoue
貴史 井上
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 JP2003067631A priority Critical patent/JP2004280222A/ja
Publication of JP2004280222A publication Critical patent/JP2004280222A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】高機能かつ低製造コストのコントローラを提供する。
【解決手段】計測装置36から出力される計測値が予め定められた条件を満たすか否かを判断するための監視プログラム44cが記憶された共有メモリ44と、監視プログラム44cを実行する監視用プロセッサ42と、予め定められた条件と対応付けられ、制御対象機器の制御を行なうサブプログラム48fと、当該サブプログラムを呼び出し実行するメインプログラム48gとが記憶されたメモリ48と、メインプログラム48gを実行するメインプロセッサ46とを備え、計測値が予め定められた条件を満たした場合に、監視プログラム44cがメインプログラム48gに対してイベントを送信し、メインプログラム48gは、当該イベントに応答して、当該条件に対応するサブプログラム48fを呼び出し実行し、当該条件に応じた制御対象機器を制御する。
【選択図】 図2

Description

【0001】
【発明の属する技術分野】
本発明は、コントローラに関し、特に、複数のプロセッサを有するコントローラに関する。
【0002】
【従来の技術】
FA(Factory Automation)を実現するために、工場等の製造現場では、PLC(Programmable Logic Controller)に代表されるコントローラが製品の製造ライン等で従来使用されている。特に、製造現場では、予め定められた時間内に一定の処理を確実に実行することができるコントローラが求められる。
【0003】
従来のコントローラは、単一のプロセッサがコントローラの外部機器からの入力信号および内部のデータを監視し、一定の条件が満たされた場合に特定のプログラムを起動している(例えば、特許文献1参照。)。
【0004】
(第1の従来例)
図14は、従来のコントローラの構成の一例を示したブロック図である。従来のコントローラ90は、単一のプロセッサ92とメモリ94とを含む。
【0005】
プロセッサ92は、外部の1つ以上の計測装置(外部機器)36より出力される計測値をコントローラ90の入力ポート(図示せず)より入力信号として受ける。メモリ94には、プロセッサ92で実行される入力信号の値を監視する監視プログラム94aとコントローラ90の出力ポート(図示せず)に接続された制御対象機器(図示せず)を制御するためのサブプログラム94bとが記憶されている。
【0006】
プロセッサ92は、メモリ94に記憶されている監視プログラム94aを常時実行し、入力信号の監視を行なう。プロセッサ92は、光電センサから出力されるオン信号またはオフ信号や、温度調節器などの計測装置36から出力されるPID(P:比例、I:積分、D:微分)値などを入力信号として入力ポートより受けとりメモリに記憶する。そしてプロセッサが監視プログラム94aに沿って実行することで、入力信号が所定の条件を満たすか否かを判断する。所定の条件を満たす場合には、プロセッサ92は、サブプログラム94bを実行し、当該条件に応じた制御対象機器を制御する。監視プログラム94aは、計測装置36から出力される大量の計測値を入力信号として受け、複雑な条件演算処理を実行しなければならない。このことは、製造装置の分野において特徴的なことである。
【0007】
(第2の従来例)
図15は、従来のコントローラの他の構成の一例を示したブロック図である。従来のコントローラ100は、ASIC(Application Specific Integrated Circuit)に代表される専用ハードウェア102と、プロセッサ104と、メモリ106とを含む。メモリ106には、コントローラ100の出力ポート(図示せず)に接続された制御対象機器(図示せず)を制御するためのサブプログラム94bが記憶されている。
【0008】
専用ハードウェア102は、外部の計測装置36より出力される計測値を入力信号として受け、所定の条件を満たすか否かを判断するための演算を実行し、所定の条件が満たされた場合に割込信号を出力する。プロセッサ104は、当該割込信号に応答して、メモリ106に記憶されているサブプログラム94bを実行する。
【0009】
(第3の従来例)
図16は、従来のコントローラのさらに他の構成の一例を示したブロック図である。従来のコントローラ110は、上述したコントローラ90および100とは異なり、複数のプロセッサを備えるコントローラであり、ラダー言語プロセッサ112と、プロセッサ114と、メモリ116〜120とを含む。
【0010】
メモリ116には、コントローラ110の入出力ポート(図示せず)より入出力される入出力データ116aが記憶されている。メモリ118には、コントローラ110の入出力ポートに接続された制御対象機器(図示せず)を制御するための制御プログラム118aが記憶されている。メモリ120には、制御対象機器の制御以外の補助的なデータ処理を実行するプログラムであるファームウェア120aが記憶されている。制御プログラム118aは、ラダー言語で記述されたソースプログラムをラダー言語プロセッサ112の実行形式に予めコンパイルしたものである。ラダー言語とは、PLCで汎用的に使われる計算機言語の一種である。
【0011】
計測装置36から出力される計測値は入力信号としてラダー言語プロセッサ112に入力され、入出力データ116aとしてメモリ116に記憶される。ラダー言語プロセッサ112では、制御プログラム118aが常に実行され、サイクリックスキャン方式に従い、制御対象機器の制御が実行される。プロセッサ114は、ラダー言語プロセッサ112と連携を取りつつ、制御対象機器の制御以外の補助的なプログラムを実行する。
【0012】
【特許文献1】
特開平5−181512号公報
【0013】
【発明が解決しようとする課題】
しかしながら、図14に示される第1の従来例に係るコントローラ90は、単一のプロセッサ92が監視プログラム94aおよびサブプログラム94bの2つのプログラムを実行している。このため、計測装置36で何らかの事象が発生してから予め定められたタクトタイムが終了するまでの間に、サブプログラム94bを起動し、制御対象機器を制御し、その処理を終了させるためには極めて処理能力の高いプロセッサ92とデータの読出しおよび書込みを高速に処理可能なメモリ94を使用しなければならない。このため、コントローラ90の材料コストが高くなり、伴って製造コストが高くなるという問題がある。
【0014】
また、図15に示される第2の従来例に係るコントローラ100は、計測装置36から出力される入力信号の条件演算処理を専用ハードウェア102が実行している。このため、条件演算処理を高速に実行することができ、計測装置36で何らかの事象が発生してから予め定められたタクトタイムが終了するまでの間に、確実に制御対象機器の処理を終了させるように制御可能である。その反面、入力信号の条件演算処理を専用ハードウェア102が担当しているため、予め定められた入力信号に対する予め定められた条件演算処理しか実行できない。よって、コントローラ100を使用する製造装置が変われば計測装置36も変わるので、それに伴い専用ハードウェア102も変えなければならない。また、入力信号数が多く条件演算処理が複雑な場合には、専用ハードウェア102の設計および開発に時間とコストとを要する。このように専用ハードウェア102を用いて入力信号の条件判断を行なうコントローラ100は、製造装置の変化に柔軟に対応できないという問題がある。
【0015】
さらに、図16に示される第3の従来例に係るコントローラ110は、ラダー言語プロセッサ112およびプロセッサ114の2つのプロセッサを備えてはいるものの、ラダー言語プロセッサ112がサイクリックスキャン方式に従い計測装置36からの入力信号に基づいて制御対象機器を制御しており、プロセッサ114は補助的な処理を実行するのみである。このため、ラダー言語プロセッサ112に接続されたメモリ116および118に大容量のメモリを使用しなければならず、コントローラ110の製造コストが高くなるという問題がある。また、プロセッサ114で補助的に実行されるプログラムはファームウェア120aとして固定化されており、ユーザが自由にプログラムをすることができない。このため、コントローラ110は、製造装置の変化に柔軟に対応できないという問題がある。
【0016】
そこで、本発明は、上述の問題点を解決するためになされたものであり、高機能かつ低製造コストのコントローラを提供することを目的とする。
また、製造装置の変化に柔軟に対応することができるコントローラを提供することも目的とする。
【0017】
【課題を解決するための手段】
上記目的を達成するために本発明に係るコントローラは、制御対象装置を制御するコントローラであって、外部の機器から入力した信号が予め定められた条件を満たすか否かを判断するための監視プログラムと、前記条件と対応付けられ、前記制御対象機器の制御を行なうサブプログラムと、当該サブプログラムを呼び出して実行するメインプログラムとが記憶されたメモリ(第1の実施形態では「メモリ」および「共有メモリ」に対応。)と、前記監視プログラムの少なくとも一部を実行する監視用プロセッサと、前記メインプログラムを実行するメインプロセッサとを備え、前記監視プログラムは、前記入力信号が前記条件を満たした場合に、前記メインプログラムに対してイベントを送信するプログラムであり、前記メインプログラムは、前記イベントに応答して、当該条件に対応する前記サブプログラムを呼び出して実行し、当該条件に応じた前記制御対象機器を制御するプログラムであることを特徴とする。
【0018】
この構成によると、コントローラに2つのプロセッサを使用しており、監視用プロセッサは、外部の機器から入力した入力信号の監視用として使用され、メインプロセッサは、制御対象機器の制御用として使用される。このように、プロセッサにかかる負荷を分散させているため、安価なプロセッサ2つでコントローラを構成することができる。このため、制御性能を保障した機能でかつ低製造コストのコントローラを提供することができる。
【0019】
なお、「機器」は、コントローラの外部の機器であり、具体的には、メカニカルスイッチ、光電スイッチ、近接スイッチなどのオンオフ動作する機器や、距離計、圧力計、温度計などの物理量を計測する計測装置(計測器)や、光などを検出するセンサを含むものである。また、温度調節器、位置決め装置などの制御に関する信号を出力する装置も含む。実施の形態で「計測装置」と呼んでいるものは、この機器に相当する。
【0020】
また「入力する信号」とは、外部の機器から出力された信号を含む。具体的には、スイッチなどの接点状態としてのオン/オフ信号や、センサなどのセンシング信号、計測装置の計測値、制御に関する信号なども含む。実施の形態で「計測値」や「入力信号」と呼んでいる信号は、この「入力信号」に相当する。
【0021】
なおまた、「予め定められた条件を満たすか否かを判断する」とは、機器の状態を判断して予め定められた状態に変化したか否かを識別する意味を含む。または機器になんらかの事象が発生したことを判断することも含む。具体的な例は、あるスイッチがオフからオンに変化したことを判断することや、計測器の計測結果が所定のしきい値を超えたことを判断すること、温度調節器が異常状態になったことなどがある。つまり「条件」というのは、コントローラにとって、制御に関わる入力情報がある状態になることを判断するための「基準」という意味で、換言すると機器で生じた事象に基づいて何らかの制御をするかどうかを決めるための「基準」と言う意味でもある。
【0022】
また、前記メモリには、さらに、予め定められた規則に従い、前記監視プログラムを、前記監視用プロセッサで実行される第1監視プログラムと前記メインプロセッサで実行される第2監視プログラムとに分割する分割プログラムと、分割された前記第1監視プログラムおよび前記第2監視プログラムを前記メモリに格納する格納プログラム(実施形態では「交換配信プログラム」に対応。)とが記憶されており、前記監視用プロセッサは、前記メモリに記憶された前記第1監視プログラムを実行し、前記メインプロセッサは、前記メインプログラムと、前記第2監視プログラムと、前記分割プログラムと、前記格納プログラムとを実行するようにしてもよい。
【0023】
このように、監視プログラムの一部をメインプロセッサで実行させている。これにより、プロセッサにかかる負荷をさらに効率的に分散させることが可能となる。このため、より安価なプロセッサ2つでコントローラを構成することができる。つまりは、制御プログラムの構成に柔軟に対応しつつ、高機能かつ低製造コストのコントローラを提供することができる。
【0024】
さらに、前記分割プログラムは、所定の時間内に前記メインプロセッサが処理可能な命令のステップ数と、前記メインプロセッサで実行される前記サブプログラムのうちの最大ステップ数との差以下の命令のステップ数を有するように前記第2監視プログラムを作成するプログラムであってもよい。
【0025】
これにより、メインプロセッサでは、処理可能な命令のステップ数を超える処理を負担することはなくなる。このため、メインプロセッサで実行されるサブプログラムの処理時間が確保でき、所定の時間内に制御対象機器の処理が確実に実行されることが保証される。
【0026】
さらにまた、前記監視プログラムは前記メインプロセッサおよび前記監視用プロセッサのいずれの実行形式にも変換可能な中間言語で記述されており、前記格納プログラムは、前記中間言語で記述された前記第1監視プログラムを前記監視用プロセッサの実行形式に変換してから格納し、前記中間言語で記述された前記第2監視プログラムを前記メインプロセッサの実行形式に変換してから格納するプログラムであってもよい。
【0027】
これにより、格納プログラムは、中間言語形式で記述された監視プログラムを実行形式に変換するのみでよく、コントローラに大規模なコンパイラを用意する必要がなくなる。また、コントローラにはメインプロセッサおよび監視プロセッサのいずれの実行形式にも変換可能な中間言語の監視プログラムが供給されるため、コンピュータによる監視プログラムの変更に柔軟に対応することができる。
【0028】
また、前記中間言語は、IEC(International Electrotechnical Commission)61131−3で規定されているIL(Instruction List)言語であってもよい。
【0029】
この言語は、ニーモニックプログラムを記述可能な中間言語であり、機械語に近いレベルの記述が可能である。したがって、この中間言語を実行形式に変換するために必要なコンパイラは小規模なもので済む。よって、コントローラに用意しなければならないコンパイラをより小規模なものにすることができる。
【0030】
また、前記監視用プロセッサと前記メインプロセッサとは通信網を介して相互に接続されていてもよい。この発明は、第2の実施形態で実現されている。
これにより、外部の機器が離れた位置に存在する場合であっても2つのプロセッサで外部の機器の監視をすることができる。
【0031】
また、前記監視用プロセッサは、ラダー言語で記述されたプログラムを実行するプロセッサであってもよい。ラダー言語のプロセッサはリアルタイム性能に優れていて、監視処理に適している。したがって、専用のプロセッサは通常のプロセッサに比べて高性能にでき、安価である。このため、より製造コストの低いコントローラを提供することができる。
【0032】
本発明の他の局面に係るプログラムは、上述のコントローラにメインプログラムと監視プログラムとを供給するプログラムであって、実行形式のサブプログラムを呼び出して実行する、メインプロセッサの実行形式の前記メインプログラムを作成するステップと、ソースプログラム形式の前記監視プログラムを前記メインプロセッサおよび監視用プロセッサのいずれの実行形式にも変換可能な中間言語に変換するステップと、中間言語形式の前記監視用プログラムを、前記コントローラに向けてダウンロードするダウンロードステップとをコンピュータに実行させることを特徴とする。
【0033】
このように、コンピュータからコントローラに提供される監視プログラムは予めメインプロセッサおよび監視プロセッサのいずれの実行形式にも変換可能な中間言語に変換され、コントローラに向けてダウンロードされる。このため、コントローラは中間言語形式で記述された監視プログラムを実行形式に変換するのみでよく、コントローラに大規模なコンパイラを用意する必要がなくなる。また、コントローラにはメインプロセッサおよび監視プロセッサのいずれの実行形式にも変換可能な中間言語の監視プログラムが供給されるため、コンピュータによる監視プログラムの変更に柔軟に対応することができる。
【0034】
本発明のさらに他の局面に係る監視プログラムの分割配信方法は、プロセッサを2つ有し制御対象機器を制御するコントローラで実行される監視プログラムの分割配信方法であって、一方のプロセッサでは前記制御対象機器の制御を行なうサブプログラムと、当該サブプログラムを呼び出して実行するメインプログラムとが実行され、2つのプロセッサのいずれの実行形式にも変換可能な中間言語で記述され、外部の機器から出力される計測値が予め定められた条件を満たすか否かを判断するための監視プログラムを、予め定められた規則に基づき分割する分割ステップと、分割された監視プログラムを前記一方のプロセッサおよび他方のプロセッサに配信する配信ステップとを含むことを特徴とする好ましくは、前記分割ステップでは、所定の時間内に前記一方のプロセッサが処理可能な命令のステップ数と、前記一方のプロセッサで実行される前記サブプログラムのうちの最大ステップ数との差以下の命令のステップ数を有するように前記監視プログラムを分割する。
【0035】
これにより、メインプロセッサでは、処理可能な命令のステップ数を超える処理を負担することはなくなる。このため、メインプロセッサで実行されるサブプログラムの処理時間が確保でき、所定の時間内に制御対象機器の処理が確実に実行されることが保証される。
【0036】
【発明の実施形態】
以下、本発明の実施形態に係るコントローラについて図面を用いて詳細に説明する。
【0037】
(第1の実施形態)
図1は、本発明の第1の実施形態に係るコントローラの周辺環境を示した図である。コントローラ34は、製造現場で用いられ、製品の製造装置等を制御するためのものである。コントローラ34で実行されるプログラムは、予めパーソナルコンピュータやEWS(Engineering Workstation)などのコンピュータ32で作成され、コントローラ34にダウンロードされる。
【0038】
コントローラ34には、光電センサ36a、圧力スイッチ36b、温度調節器36cなどの計測装置(外部の機器)36が接続されている。コントローラ34は、計測装置36の出力を入力信号として受け、プログラムを実行することで入力信号が所定の条件を満たすか否かの判断を行ない、所定の条件が満たされた場合には、制御対象機器(図示せず)を制御する。制御対象機器としては、ロボットアームやベルトコンベアなど製造装置に応じて様々なものが考えられる。
【0039】
図2は、コントローラ34の内部構成を示したブロック図である。コントローラ34は2つのプロセッサにより制御対象機器の制御を行なう装置であり、主に計測装置36からの入力信号を監視し、所定の条件を満たすか否かを判断する監視用プロセッサ42と、主に制御対象機器を制御するメインプロセッサ46と、監視用プロセッサ42およびメインプロセッサ46の双方に接続された共有メモリ44と、メインプロセッサ46のみに接続されたメモリ48とを含む。
【0040】
メモリ48には、内部変数値48aと、分割プログラム48bと、交換配信プログラム48cと、監視プログラム48dと、監視プログラム48eと、サブプログラム48fと、メインプログラム48gとが記憶されている。
【0041】
内部変数値48aは、コントローラ34の内部状態を表す値である。監視プログラム48dは、コンピュータ32で開発され、計測装置36からの入力信号を監視するようにメインプロセッサを動作させるためのプログラムであり、監視用プロセッサ42およびメインプロセッサ46のいずれの実行形式にも変換可能な中間言語形式で記述されている。サブプログラム48fは、制御対象機器の制御処理を実行するためのプログラムであり、メインプロセッサ46の実行形式で記述されている。メインプログラム48gは、監視プログラム48eからの指示に基づいてサブプログラム48fを呼び出して実行する。分割プログラム48bは、監視プログラム48dを監視用プロセッサ42で実行される部分とメインプロセッサ46で実行される部分とに分割するプログラムである。交換配信プログラム48cは、2つに分割された中間言語形式の監視プログラムを、それぞれコンパイルして実行形式に変換し、共有メモリ44およびメモリ48に配信するプログラムである。監視プログラム48eは、交換配信プログラム48cにより配信された実行形式のプログラムである。
【0042】
共有メモリ44には、入力データ44aと、内部変数値44bと、監視プログラム44cとが記憶されている。
入力データ44aは、計測装置36より出力される計測値のことで、つまりは外部の各機器から入力するそれぞれの入力信号のことである(以下、計測値と呼ぶ)。内部変数値44bは、メモリ48に記憶された内部変数値48aをコピーしたものである。メインプロセッサ46は一定の周期でメモリ48に記憶された内部変数値48aを内部変数値44bとして共有メモリ44にコピーする。監視プログラム44cは、交換配信プログラム48cにより配信された実行形式のプログラムである。
【0043】
計測装置36より出力される計測値は、コントローラ34の入力ポート(図示せず)より入力され、共有メモリ44に入力データ44aが記憶される。
監視用プロセッサ42上では、監視プログラム44cが常に実行されている。監視プログラム44cは、入力データ44aおよび内部変数値44bを入力とし、所定の条件を満たすか否かを判断するプログラムである。
【0044】
メインプロセッサ46上では、監視プログラム48eが常に実行されている。監視プログラム48eは、入力データ44aおよび内部変数値48aを入力とし、所定の条件を満たすか否かを判断するプログラムである。
【0045】
監視プログラム44cまたは48eで所定の条件を満たすと判断された場合には、メインプログラム48gが制御対象機器を制御するための当該条件に応じたサブプログラム48fを呼びだし実行する。
【0046】
図3は、コントローラ34で実行されるプログラムが生成されるまでの過程を示す図である。以下、この図を適宜参照しながらコンピュータ32およびコントローラ34でのプログラムの作成方法について説明する。
【0047】
[コンピュータ32におけるプログラムの開発処理]
図4は、コンピュータ32におけるプログラムの開発処理を示すフローチャートである。ユーザは、コンピュータ32上でサブプログラム52aと監視プログラム52bとからなるソースプログラムを作成する(S2)。ユーザは、サブプログラム52aをメインプロセッサ46用のコンパイラを用いて実行形式に変換し、実行形式のサブプログラム48fを作成する。また、その際に実行形式のメインプログラム48gがコンピュータ32により自動生成される(S4)。ユーザは、監視プログラム52bを、コンパイラを用いて監視用プロセッサ42およびメインプロセッサ46のいずれの実行形式にも変換可能な中間言語形式の監視プログラム48dに変換する(S6)。ユーザは、コンピュータ32からコントローラ34へ、監視プログラム48d、メインプログラム48gおよびサブプログラム48fをダウンロードする(S8)。ダウンロードされた3つのプログラムは上述のようにメモリ48に記憶される。
【0048】
図5は、ソースプログラム作成処理(図4のS2)で作成されるソースプログラムに含まれるサブプログラムの一例を示す図である。ここでは、サブプログラムBには、SUB_Bという識別子が付されており、「コントローラ34の100番地の出力ポート(図示せず)から1を出力する。」という意味の命令が記述されている。これにより、ある制御対象機器を上昇させるためのモータがONとなる。
【0049】
図6は、サブプログラム変換処理(図4のS4)において図5に示されるサブプログラム52aを実行形式に変換する際に、自動生成されるメインプログラム48gのソースコードの一例を示す図である。メインプログラム48gにはサブプログラム52aの出現順に連続する番号がメッセージコードとして付加される。
【0050】
メインプログラム48gでは、まず、命令「GET_MESSAGE」が呼び出され、実行される。命令「GET_MESSAGE」は、実行形式の監視プログラム44cまたは48eよりメッセージコードを受取るまで待機し、受取ったメッセージコードを変数MESSAGE_CODEに格納する。その後、メインプログラム48gでは、変数MESSAGE_CODEの値に応じたサブプログラムが呼び出され、実行される。メインプログラム48gは上述の処理を繰り返し実行する。すなわち、メインプログラム48gはイベント駆動型のプログラム構成となっている。
【0051】
図7は、メッセージコードとサブプログラムとの対応表である。この対応表は、サブプログラム変換処理(図4のS4)の際に合わせて作成され、監視プログラム変換処理(図4のS6)において参照される。ここでは、例えば、メッセージコード1がサブプログラムB(SUB_B)に対応付けられている。
【0052】
図8は、ソースプログラム作成処理(図4のS2)で作成される監視プログラム52bの一例を示す図である。ここでは、計測装置36として2つのセンサと1つの水位計とを想定している。2つのセンサの入力信号をSENSOR1およびSENSOR2と表わし、水位計の液量をLEVELAと表わす。
【0053】
監視プログラム52bは、例えば図8に示されるようにIF−THENルールの集合によって構成されており、IF節に記述された条件が満たされた場合には、THEN節に記述されたサブプログラムが実行される。たとえば、図8の第1行目には、「信号SENSOR1の値がONであり、信号SENSOR2の値がOFFであり、かつ液量LEVELAの値が100より小さければ、サブプログラムSUB_Bを呼び出して実行する」という意味のルールが記述されている。
【0054】
図9は、監視プログラム変換処理(図4のS6)で作成される中間言語形式の監視プログラムの一例を示す図である。図9に示される中間言語形式の監視プログラム48dは、図8に示されるソース形式の監視プログラム52bを元にしてIEC61131−3で規定されているIL言語を用いて記述されたプログラムである。ここで、命令「SEND_MESSAGE」は、引数として与えられたメッセージコードをメインプロセッサ46に送信するシステム命令である。なお、メッセージコードの値は、上述のようにサブプログラムと一対一に対応付けられている。
【0055】
コントローラ34は、コンピュータ32に比べてメモリ容量に制限があるため、大規模なコンパイラを記憶することができない。また、後述するように、コントローラ34は、監視プログラムを2つに分割して実行形式にコンパイルする。このため、プロセッサに依存しない中間言語形式の監視プログラム48dを予めコンピュータ32で作成しておくのがよく、IL言語は中間言語として最適である。
【0056】
[コントローラ34の立ち上げ時処理]
次に、図2に示されるコントローラ34の電源をONにした場合に、予めコントローラ34に組み込まれたシステムプログラム(図示せず)により実行される処理について説明する。図10は、コントローラ34の電源をONにした場合に実行される処理を示すフローチャートである。
【0057】
コントローラ34の電源をONにすると、メインプロセッサ46が分割プログラム48bを実行し、中間言語形式の監視プログラム48dを監視用プロセッサ42で実行される部分とメインプロセッサ46で実行される部分とに分割する(S12)。分割の具体的な方法については後に詳述する。
【0058】
メインプロセッサ46は、交換配信プログラム48cを実行し、分割された中間言語形式より実行形式の監視プログラム44cおよび48eを作成する(S14)。交換配信処理(S14)については、後述する。
【0059】
メインプロセッサ46は、メモリ48に記憶されたメインプログラム48gを実行し(S15)、メモリ48に記憶されたメインプロセッサ46用の実行形式の監視プログラム48eを実行する(S16)。また、メインプロセッサ46は、共有メモリ44に記憶された監視用プロセッサ42用の実行形式の監視プログラム44cを実行するように、監視用プロセッサ42に指示する(S18)。
【0060】
[監視プログラム分割処理(図10のS12)]
図11は、中間言語形式の監視プログラム48dを分割するためのルールを示した表である。分割プログラム48bは、この表に示されたルールに従って監視プログラム48dを分割する。例えばルール2に示されるように、監視プログラム48dのうち、条件節(IF節)に小数点の四則演算がm個以上含まれている部分のプログラムはメインプロセッサ46で実行される監視プログラム56bとされる。
【0061】
ただし、コントローラ34は、所定のタクトタイム内に確実に処理が完了するように制御対象機器を制御しなければならない。このため、所定のタクトタイム内でメインプロセッサ46が処理可能な命令のステップ数と、メインプロセッサ46で実行されるサブプログラムのうちの最大ステップ数とを求め、処理可能な命令のステップ数と最大ステップ数との差を越えない範囲で、メインプロセッサ46で実行される監視プログラム56bが割り当てられる。
【0062】
[交換配信処理(図10のS14)]
図12は、交換配信プログラム48cに基づいて実行される交換配信処理(図10のS14)のフローチャートである。メインプロセッサ46は、監視プログラム分割処理(図10のS12)により分割された中間言語形式の監視プログラムのうち、監視用プロセッサ42が実行を担当する監視プログラム56aを実行形式にコンパイルする(S22)。メインプロセッサ46は、コンパイルされた監視プログラム44cを共有メモリ44に格納する(S24)。次に、メインプロセッサ46は、分割された中間言語形式の監視プログラムのうち、メインプロセッサ46が実行を担当する監視プログラム56bを実行形式にコンパイルする(S26)。メインプロセッサ46は、コンパイルされた監視プログラム48eをメモリ48に格納する(S28)。
【0063】
上述した処理により監視用プロセッサ42において監視プログラム44cが実行され、メインプロセッサ46において監視プログラム48dが実行される。また、メインプロセッサ46においては、メインプログラム48gが実行される。監視用プロセッサ42において監視プログラム44cが実行されることで、共有メモリ44に記憶された入力データ44aおよび内部変数値44bの状態が所定の条件を満たすか否かが判断され、所定の条件が満たされた場合には、メインプロセッサ46にその条件に対応したメッセージコードを送信する。メッセージコードを受信したメインプロセッサ46は、メインプログラムの実行によって当該メッセージコードに対応するサブプログラムをイベント駆動し、サブプログラムが実行される。
【0064】
以上のように、第1の実施形態によれば、コントローラ34に2つのプロセッサ42および46を使用しており、監視用プロセッサ42は主に入力信号の監視用として使用し、メインプロセッサ46は主に制御対象機器の制御用として使用している。このように、プロセッサにかかる負荷を分散させているため、安価なプロセッサ2つでコントローラ34を構成することができる。このため、高機能かつ低製造コストのコントローラ34を提供することができる。
【0065】
また、入力信号の監視処理をソフトウェア処理により行なっている。このため、製造装置の変化に伴い計測装置36が変化しても、ソフトウェアを作り直すだけで柔軟に対応することができる。
【0066】
さらに、コントローラ34では分割プログラム48bが実行される。これにより、監視用プロセッサ42にかかる負荷をさらに効率的に分散させることが可能となる。このため、より安価なプロセッサ2つでコントローラ34を構成することができ、高機能かつ低製造コストのコントローラ34を提供することができる。
【0067】
さらにまた、コンピュータ32からコントローラ34に提供される監視プログラム48dは予め汎用的に解読可能な中間言語に変換され、その後、交換配信プログラム48cに従って2つのプロセッサ42および46の各々に対応した実行形式の監視プログラム44cおよび48eに変換される。このため、コントローラ34は中間言語形式で記述された監視プログラム48dを実行形式に変換するのみでよく、コントローラ34に大規模なコンパイラを用意する必要がなくなる。また、コントローラ34には汎用的に解読可能な中間言語の監視プログラム48dが供給されるため、コンピュータ32による監視プログラム48dの変更に柔軟に対応することができる。
【0068】
(第2の実施形態)
次に、プロセッサがネットワーク接続されたコントローラの実施形態について説明する。なお、第1の実施形態と同一の構成要素には同一の参照符号を付し、適宜説明を省略する。
【0069】
図13は、本発明の第2の実施形態に係るコントローラの内部構成を示したブロック図である。第2の実施形態に係るコントローラ60は、2つのプロセッサにより制御対象機器の制御を行なう装置であり、第1コントロール部61と、ネットワーク64を介して第1コントロール部61に接続された第2コントロール部63とを含む。
【0070】
第1コントロール部61は、主に制御対象機器を制御する装置であり、通信モジュール62bと、共有メモリ74と、メインプロセッサ76と、メモリ48とを含む。
【0071】
通信モジュール62bは、ネットワーク64を介して第2コントロール部63に接続されており、第2コントロール部63との間でデータ通信を行なう。
メモリ48には、内部変数値48aと、分割プログラム48bと、交換配信プログラム48cと、監視プログラム48dと、監視プログラム48eと、サブプログラム48fと、メインプログラム48gとが記憶される。
【0072】
共有メモリ74には入力データ74aが記憶されている。入力データ74aは、第1コントロール部61の入力ポート(図示せず)に接続された光電センサ等の計測装置72の計測値と、第2コントロール部63の入力ポート(図示せず)に接続された計測装置36の計測値とを合わせたデータである。
【0073】
メインプロセッサ76は、通信モジュール62bを制御してデータの送受信を行う。メインプロセッサ76は、通信モジュール62bを介して計測装置72の計測値を第2コントロール部63に送信するとともに、通信モジュール62bを介して第2コントロール部63より受信した計測装置36の計測値を共有メモリ74に記憶する。それ以外のメインプロセッサ76で実行される処理は第1の実施形態と同様である。
【0074】
第2コントロール部63は、主に、計測装置36および72からの入力信号を監視し、所定の条件を満たすか否かを判断する装置であり、通信モジュール62aと、共有メモリ66と、監視用プロセッサ68と、メモリ70とを含む。
【0075】
通信モジュール62aは、ネットワーク64を介して第1コントロール部61に接続され、第1コントロール部との間でデータ通信を行なう。
メモリ70には、内部変数値44bと監視プログラム44cとが記憶される。
【0076】
共有メモリ66には入力データ44aが記憶されている。入力データ44aは、第1コントロール部61の入力ポートに接続された計測装置72の計測値と、第2コントロール部63の入力ポートに接続された計測装置36の計測値とを合わせたデータである。すなわち、入力データ44aと入力データ74aとは常に同一なものである。
【0077】
監視用プロセッサ68は、通信モジュール62aを制御してデータの送受信を行う。監視用プロセッサ68は、通信モジュール62aを介して計測装置36の計測値を第1コントロール部61に送信するとともに、通信モジュール62aを介して第1コントロール部61より受信した計測装置72の計測値を共有メモリ66に記憶する。それ以外の監視用プロセッサ68で実行される処理は第1の実施形態と同様である。
【0078】
第2の実施形態によれば、第1の実施形態における効果に加え、ネットワーク64を介して複数の計測装置36および72の入力信号を共有することが可能である。このため、計測装置36および72や制御対象機器が離れた位置に存在する場合であっても制御対象機器を制御可能な安価なコントローラ60を提供することができる。
【0079】
以上、本発明に係るコントローラについて、実施形態に基づいて説明したが、本発明は、この実施形態に限定されるものではない。
たとえば、メインプロセッサ46(76)では監視プログラム48eの実行を行なわずに、監視用プロセッサ42(68)のみが監視プログラム44cを実行するようにしてもよい。
【0080】
また、監視用プロセッサ42(68)にラダー言語で記述されたプログラムを専門的に実行するプロセッサを用いるようにしてもよい。一般に、このような専用のプロセッサは通常のプロセッサよりも安価である。このため、より製造コストの低いコントローラ34(60)を提供することができる。
【0081】
【発明の効果】
以上のように、本発明によると、高機能かつ低製造コストのコントローラを提供することができる。
【0082】
また、製造装置の変化に柔軟に対応することができるコントローラを提供することもできる。
このため、特に、製品ごとに製造装置が変わるような多品種少量生産の製造ラインを構築する際にはその実用的価値は極めて高い。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るコントローラの周辺環境を示した図である。
【図2】本発明の第1の実施形態に係るコントローラの内部構成を示したブロック図である。
【図3】コントローラで実行されるプログラムが生成されるまでの過程を示す図である。
【図4】コンピュータおけるプログラムの開発処理を示すフローチャートである。
【図5】ソースプログラム作成処理で作成されるソースプログラムに含まれる複数のサブプログラムを示す図である。
【図6】サブプログラム変換処理においてサブプログラムを実行形式に変換する際に、自動生成されるメインプログラムのソースコードの一例を示す図である。
【図7】メッセージコードとサブプログラムとの対応表である。
【図8】ソースプログラム作成処理で作成される監視プログラムの一例を示す図である。
【図9】監視プログラム変換処理で作成される中間言語形式の監視プログラムの一例を示す図である。
【図10】コントローラの電源をONにした場合に実行される処理を示すフローチャートである。
【図11】中間言語形式の監視プログラムを分割するためのルールを示した表である。
【図12】交換配信プログラムに基づいて実行される交換配信処理のフローチャートである。
【図13】本発明の第2の実施形態に係るコントローラの内部構成を示したブロック図である。
【図14】従来のコントローラの構成の一例を示したブロック図である。
【図15】従来のコントローラの他の構成の一例を示したブロック図である。
【図16】従来のコントローラのさらに他の構成の一例を示したブロック図である。
【符号の説明】
32 コンピュータ
34,60,90,100,110 コントローラ
36 計測装置
36a 光電センサ
36b 圧力スイッチ
36c 温度調節器
42,68 監視用プロセッサ
44,66,74 共有メモリ
44a,74a 入力データ
44b,48a 内部変数値
44c,48d,48e,52b,56a,56b,94a 監視プログラム
46,76 メインプロセッサ
48,70,94,106,116,118,120 メモリ
48b 分割プログラム
48c 交換配信プログラム
48f メインプログラム
52a,94b サブプログラム
61 第1コントロール部
62a,62b 通信モジュール
63 第2コントロール部
64 ネットワーク
72 計測装置
92,104,114 プロセッサ
102 専用ハードウェア
112 ラダー言語プロセッサ
116a 入出力データ
118a 制御プログラム
120a ファームウェア

Claims (8)

  1. 制御対象装置を制御するコントローラであって、
    機器から入力する信号が予め定められた条件を満たすか否かを判断するための監視プログラムと、前記条件と対応付けられ、前記制御対象機器の制御を行なうサブプログラムと、当該サブプログラムを呼び出して実行するメインプログラムとが記憶されたメモリと、
    前記監視プログラムの少なくとも一部を実行する監視用プロセッサと、
    前記メインプログラムを実行するメインプロセッサとを備え、
    前記監視プログラムは、前記入力信号が前記条件を満たした場合に、前記メインプログラムに対してイベントを送信するプログラムであり、前記メインプログラムは、前記イベントに応答して、当該条件に対応する前記サブプログラムを呼び出して実行し、当該条件に応じた前記制御対象機器を制御するプログラムである
    ことを特徴とするコントローラ。
  2. 前記メモリには、さらに、
    予め定められた規則に従い、前記監視プログラムを、前記監視用プロセッサで実行される第1監視プログラムと前記メインプロセッサで実行される第2監視プログラムとに分割する分割プログラムと、
    分割された前記第1監視プログラムおよび前記第2監視プログラムを前記メモリに格納する格納プログラムとが記憶されており、
    前記監視用プロセッサは、前記メモリに記憶された前記第1監視プログラムを実行し、
    前記メインプロセッサは、前記メインプログラムと、前記第2監視プログラムと、前記分割プログラムと、前記格納プログラムとを実行する
    ことを特徴とする請求項1に記載のコントローラ。
  3. 前記監視用プロセッサと前記メインプロセッサとは通信網を介して相互に接続されていることを特徴とする請求項1または2に記載のコントローラ。
  4. 前記監視用プロセッサに接続され、機器から入力する信号が記憶された第1共有メモリと、
    前記メインプロセッサに接続され、前記機器とは異なる他の機器から入力する信号が記憶された第2共有メモリとをさらに備え、
    前記監視用プロセッサおよび前記メインプロセッサは、相互に入力信号を交換し、前記第1共有メモリおよび前記第2共有メモリには、共通の入力信号が記憶されている
    ことを特徴とする請求項3に記載のコントローラ。
  5. 請求項1〜4のいずれかに記載のコントローラにメインプログラムと監視プログラムとを供給するプログラムであって、
    実行形式のサブプログラムを呼び出して実行する、メインプロセッサの実行形式の前記メインプログラムを作成するステップと、
    ソースプログラム形式の前記監視プログラムを前記メインプロセッサおよび監視用プロセッサのいずれの実行形式にも変換可能な中間言語に変換するステップと、
    中間言語形式の前記監視用プログラムを、前記コントローラに向けてダウンロードするダウンロードステップとをコンピュータに実行させる
    ことを特徴とするプログラム。
  6. さらに、ソースプログラム形式のサブプログラムをコンパイルし、メインプロセッサの実行形式に変換するステップを含み、
    前記ダウンロードステップでは、中間言語形式の前記監視用プログラムと、実行形式の前記サブプログラムおよび前記メインプログラムとを、前記コントローラに向けてダウンロードする
    ことを特徴とする請求項5に記載のプログラム。
  7. 請求項1〜4のいずれかに記載のコントローラにメインプログラムと監視プログラムとを提供するプログラム提供方法であって、
    実行形式のサブプログラムを呼び出して実行する、メインプロセッサの実行形式の前記メインプログラムを作成するステップと、
    ソースプログラム形式の前記監視プログラムを前記メインプロセッサおよび監視用プロセッサのいずれの実行形式にも変換可能な中間言語に変換するステップと、
    中間言語形式の前記監視用プログラムを、前記コントローラに向けてダウンロードするダウンロードステップとを含む
    ことを特徴とするプログラム提供方法。
  8. プロセッサを2つ有し制御対象機器を制御するコントローラで実行される監視プログラムの分割配信方法であって、
    一方のプロセッサでは前記制御対象機器の制御を行なうサブプログラムと、当該サブプログラムを呼び出して実行するメインプログラムとが実行され、
    2つのプロセッサのいずれの実行形式にも変換可能な中間言語で記述され、機器から入力する信号が予め定められた条件を満たすか否かを判断するための監視プログラムを、予め定められた規則に基づき分割する分割ステップと、
    分割された監視プログラムを前記一方のプロセッサおよび他方のプロセッサに配信する配信ステップとを含む
    ことを特徴とする監視プログラムの分割配信方法。
JP2003067631A 2003-03-13 2003-03-13 コントローラ Pending JP2004280222A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003067631A JP2004280222A (ja) 2003-03-13 2003-03-13 コントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003067631A JP2004280222A (ja) 2003-03-13 2003-03-13 コントローラ

Publications (1)

Publication Number Publication Date
JP2004280222A true JP2004280222A (ja) 2004-10-07

Family

ID=33285184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003067631A Pending JP2004280222A (ja) 2003-03-13 2003-03-13 コントローラ

Country Status (1)

Country Link
JP (1) JP2004280222A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198143A (ja) * 2007-02-15 2008-08-28 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法
WO2019097800A1 (ja) * 2017-11-16 2019-05-23 株式会社日立産機システム コントロール装置
WO2022190416A1 (ja) * 2021-03-10 2022-09-15 オムロン株式会社 制御システム、サポート方法およびプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198143A (ja) * 2007-02-15 2008-08-28 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法
WO2019097800A1 (ja) * 2017-11-16 2019-05-23 株式会社日立産機システム コントロール装置
KR20200012930A (ko) * 2017-11-16 2020-02-05 가부시키가이샤 히다치 산키시스템 컨트롤 장치
KR102294177B1 (ko) * 2017-11-16 2021-08-27 가부시키가이샤 히다치 산키시스템 컨트롤 장치
US11194739B2 (en) 2017-11-16 2021-12-07 Hitachi Industrial Equipment Systems Co., Ltd. Control apparatus
WO2022190416A1 (ja) * 2021-03-10 2022-09-15 オムロン株式会社 制御システム、サポート方法およびプログラム

Similar Documents

Publication Publication Date Title
EP2687927B1 (en) Cpu of plc, system program for plc, and recording medium storing system program for plc
EP3275214B1 (en) Method and system for process controlling of plants in an opc-ua based machine-to-machine network
US5428526A (en) Programmable controller with time periodic communication
US7418305B2 (en) Method of generating a component of a component-based automation system
JP4510837B2 (ja) 技術的設備を作動させるためのプロセス制御システム
US20080147206A1 (en) Control system for Real Time Applications for Cooperative Industrial Robots
EP2515189A1 (en) Plc cpu unit, system program for plc, and storage medium having system program for plc stored therein
EP2687929A1 (en) Computation unit, output control method, and program
US8977534B2 (en) Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
CN103403631A (zh) 可编程逻辑控制器的cpu单元、可编程逻辑控制器用系统程序以及存储可编程逻辑控制器用系统程序的记录介质
US11061377B2 (en) Control device
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
EP3702852B1 (en) Control device, control method for control device, information processing program, and recording medium
JP2004280222A (ja) コントローラ
US20020082734A1 (en) Industrial controller with clock-synchronous running level model
US6941175B2 (en) Method of operating an industrial controller
US6978190B2 (en) Programming of cyclical machines
WO2012124145A1 (ja) 演算ユニット、支援装置、支援プログラム、支援プログラムを格納した記憶媒体、および、支援装置における動作方法
JP2020046954A (ja) 制御システム、エンジニアリングツール、およびコントローラ
Thakur Open Architecture PC Based Controls in the Automotive Manufacturing Context
JPH02208765A (ja) 入出力制御装置