JP4821717B2 - プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム - Google Patents

プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム Download PDF

Info

Publication number
JP4821717B2
JP4821717B2 JP2007171535A JP2007171535A JP4821717B2 JP 4821717 B2 JP4821717 B2 JP 4821717B2 JP 2007171535 A JP2007171535 A JP 2007171535A JP 2007171535 A JP2007171535 A JP 2007171535A JP 4821717 B2 JP4821717 B2 JP 4821717B2
Authority
JP
Japan
Prior art keywords
programmable controller
function block
embedded software
system function
object file
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.)
Active
Application number
JP2007171535A
Other languages
English (en)
Other versions
JP2009009444A (ja
Inventor
幸輝 湯尾
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2007171535A priority Critical patent/JP4821717B2/ja
Publication of JP2009009444A publication Critical patent/JP2009009444A/ja
Application granted granted Critical
Publication of JP4821717B2 publication Critical patent/JP4821717B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、プログラマブルコントローラ(以下、PLCと略す場合もある)のファンクションブロック(以下、FBと略す場合もある)に関し、特にユーザが作成したファンクションブロックをメーカーが提供するファンクションブロックとして管理するプログラマブルコントローラに関する。
従来、プログラマブルコントローラはシーケンス命令実行を高速に行わせるための専用ハードウェア(大規模専用LSI:Large Scale Integrationなどに代表される)を備えるものが主流であった。これら専用ハードウェアにおいては、各コントローラのメーカーが提供する支援ツールによって、マシンコードを生成する必要があった。
しかし、「専用ハードウェアは高価である」、「専用のマシン語体系をもちシステムプログラム開発が比較的困難である」というデメリットも存在していた。
近年、パーソナルコンピュータ、携帯端末などの普及により、市販の汎用CPU:Central Processing Unitの技術革新が進み、高速実行が可能なCPUを非常に安価に入手することが可能になってきた。そのため、汎用CPUを用いて専用LSIをエミュレートして実行しても、充分に所望の実行性能を得る事ができるようになった。
また、汎用であるためファームウェアの開発ツールも市場から調達できるようになってきたため、汎用CPUを使ったプログラマブルコントローラも作られるようになってきている。
このような汎用CPUをベースとしたプログラマブルコントローラにおいては、ユーザに提供するアプリケーション開発環境として以下の2つの選択肢が考えられるが、後者の方法が注目されている。
・従来から、プログラマブルコントローラで使用される言語(プログラマブルコントローラにおけるシーケンス命令は、ラダー図、テキスト記述言語などで代表される言語命令により構成されるが、本明細書中では特に断らない限り、プログラマブルコントローラにおける記述言語規格IEC61131−3を指すものとする)を従来の支援ツール上でプログラミングし、プログラマブルコントローラにダウンロードした後、実行する方法。
・プログラマブルコントローラに使用されている汎用CPUに対応した組み込みソフトウェア開発環境で汎用プログラム言語(C言語、マイコン対応アセンブラなど)を用いてプログラミングし、プログラマブルコントローラにダウンロードした後、実行する方法。
実際、近年では汎用CPUをベースとしながら従来の専用LSIを使用したものと全く同じ動作をするプログラマブルコントローラや、逆に従来の支援ツールを使用せずに組み込みソフトウェア開発環境でプログラミングを行うC言語コントローラなども発売されている。
このようなC言語コントローラにおいては、ユーザのプログラミング負荷を軽減するためにリアルタイム・オペレーティング・システム(以下、リアルタイムOSと呼ぶ)が搭載されている。リアルタイムOSでは、タスクと呼ばれる処理単位を複数並列に実行可能であり、タスク間の通信機能、タスクの生成及び起動などの実効制御の機能を備えている。タスクの時間管理をリアルタイムOSが行うので、ユーザはプログラミングする際にスケジューリングの負荷から開放される利点があげられる。
一方、汎用CPUを使用した従来型のプログラマブルコントローラにおいても、システムの管理や支援ツールとのインターフェースなど、システムファームウェアの部分はリアルタイムOSをベースとする組み込みソフトウェアとして構成されるのが一般的となっている。
いずれにせよ、プログラマブルコントローラとプログラマブルコントローラ支援装置からなるプログラマブルコントローラシステムとして効率の良いプログラミング環境(特に組み込みプログラムの扱い方)を提供するのが命題になっている。
コントローラと支援ツールとにおけるプログラムの組み込みに関する技術としては、例えば特許文献1に記載されている。ここで、支援ツールにおいてタスク型プロジェクトならばコントローラのタスクとして動作させ、関数型プロジェクトならば他のタスクより関数としてコール可能な状態で保持する方法が示されている。
また、特許文献2には、ユーザが作成したソフト資産の必要な部分のみをプログラマブルコントローラのファンクションブロック化し利用する方法が示されている。
特開2006−178818号公報 特開2001−51704号公報
プログラマブルコントローラで使用される専用プログラミング言語は、シーケンス制御を記述するシーケンス図を効率よくプログラミングが可能であり、プログラマブルコントローラの使用現場における保守の容易性等の観点からも今後も需要がある言語である。
そこで、プログラマブルコントローラには汎用CPUを使用し、支援ツールでプログラミングした組み込みソフトウェアを用いる方法が主流となってきている。しかしながら、汎用CPUを使用したプログラマブルコントローラにおいては、以下のような問題点がある。
・実行コードが専用LSIのエミュレータ動作であるため、同じ動作のC言語アプリケーションなどと比べてコード効率が悪い。
・ラダー図等はシーケンス動作を記述するための言語であるため、数値演算やデータ処理などの記述が煩雑で難しい。
これらの問題点は、処理内容に応じて、プログラミング環境を使い分ける事により解決される。即ち、通常のシークエンス処理は従来の支援ツールでプログラミングし、複雑な処理や高速化したい処理に関しては組み込みアプリケーションとして組み込みソフトウェア開発環境でプログラミングを実施する。
ところで、プログラマブルコントローラのアプリケーションは、プログラマブルコントローラを効率よく扱うために、制御ネットワークに接続されている外部接続機器(例えば、入出力モジュール)をメモリとして扱うなど、プログラマブルコントローラシステム固有のメモリアドレス体系を保持している。そのため、メモリ管理においては、汎用CPUの物理アドレスに直接依存していない。また、プログラマブルコントローラのアプリケーションの実行時には、プログラマブルコントローラのタスクとして登録されており、これらは定周期やイベントなどの指定されたタイミングで起動されるが、プログラマブルコントローラのアプリケーション作成者は、それらのアプリケーションのタスクとシステムソフトを動かしているリアスタイムOSとの動作の関連を意識することが出来ない。
このことに起因し、以下の問題点が挙げられる。
・サブルーチンのような複数箇所から呼び出される組み込みソフトウェアの記述が出来ない(例えば、データ交換領域としてプログラマブルコントローラのアプリケーションメモリの固定番地を組み込みソフトウェア中で明示的に記述しようとすると、データ交換領域アドレスをそれぞれ個別に用意しなければならず、同じ処理にもかかわらず、別のプログラムになってしまう)。
・プログラマブルコントローラのアプリケーションと組み込みソフトウェアが非同期に動作するので、プログラマブルコントローラのアプリケーションからは、組み込みソフトウェアの処理や起動、完了のタイミングを把握出来ない。
このように、組み込みソフトウェアとプログラマブルコントローラのアプリケーションにおける「データ交換方法、及び起動方法」が問題になる。
特許文献1に記載のコントローラでは、ラダー言語内からC言語プログラムを呼び出す方法のみを記述しているが、コントローラのアプリケーションとC言語プログラム間とにおける具体的なデータ交換に関して実現手段が示されていない。
また、特許文献2に記載のプログラマブルコントローラでは、オブジェクト指向プログラミング言語により記述された部品であるクラスをライブラリとして登録し、これらを元にインスタンスを生成すること、及びインスタンス生成情報の管理について記述されているが、部品をライブラリとして登録する具体的な方法が示されていない(ラダープログラムへの記述方法のみ示されている)。
以上に示すように、組み込みソフトウェアとプログラマブルコントローラのアプリケーションにおける「データ交換方法、及び起動方法」が問題になるが、従来の技術においては組み込みソフトウェアの起動方法に関しては一定の言及はあっても、データ交換方法が具体的に示されていないと言う未解決の課題がある。
本発明は、組み込みソフトウェアとプログラマブルコントローラのアプリケーションにおける「データ交換方法、及び起動方法」を充足するプログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステムを提供することを目的とする。
上記の課題を解決する手段として、本発明は以下のように構成する。
第1に、シーケンス制御を実行するアプリケーションと、該アプリケーションによって呼び出される所定の番号が付与されたサブルーチン形式のシステムファンクションブロックと、システムファンクションブロックの番号がアプリケーションによって呼び出されると、システムファンクションブロックの番号を基にシステムファンクションブロックが格納されたアドレス情報をシステムファンクションブロックの格納先アドレスを保持したFBテーブルから検索し、この検索されたアドレス情報を基にシステムファンクションブロックを呼び出すシステムプログラムと、が予め記憶手段に保持されたプログラマブルコントローラにおいて、該プログラマブルコントローラは、ユーザにより編集された組み込みソフトウェアがコンパイルされたオブジェクトファイルを該プログラマブルコントローラにダウンロードする機能を備えた支援装置との交信を行う通信手段を有し、組み込みソフトウェアが編集されプログラマブルコントローラに登録される際、支援装置は、プログラマブルコントローラが組込みソフトウェアをシステムファンクションブロックとして実行する際のインスタンス情報を入力する入力画面を表示し、この入力画面に入力されたインスタンスと組み込みソフトウェアの実際の処理の記入箇所とを含む雛形ファイルを生成し、この組み込みソフトウェアの実際の処理の記入箇所が所定の言語で記載された後の雛形ファイルをコンパイルしてオブジェクトファイルを生成し、この生成されたオブジェクトファイルをシステムファンクションブロックの番号以外の空き番号としてプログラマブルコントローラにダウンロードし、プログラマブルコントローラは、通信手段を介してオブジェクトファイルを受信し、システムファンクションブロックが保持された記憶領域以外の記憶領域にオブジェクトファイルを格納するとともに、該オブジェクトファイルの格納先アドレスをFBテーブル内の空き番号に対応した領域に登録するように構成する。
第2に、請求項1に記載されたプログラマブルコントローラにおいて、所定の言語はC言語で構成され、オブジェクトファイルはリアルタイムオペレーティングシステムをベースに実行されるように構成する。
本発明により、ユーザが作成した組み込みソフトウェアをプログラマブルコントローラのアプリケーションから呼び出し可能になるので、組み込みソフトウェアやプログラマブルコントローラのアプリケーションそれぞれに適したプログラミング環境をユーザ自身で選択可能になり、実行プログラムの処理速度の向上及びユーザコーディング効率の向上という効果を奏する。また、実行プログラムにおいては、組み込みソフトウェアの起動タイミングが明確化され、データの入力・出力の同期がとられるので、データ交換の安全性が高まるという効果もある。
さらに、組み込みソフトウェアを作成できないプログラマブルコントローラのユーザでも、従来から使用しているシステムファンクションブロックの呼び出すためのコードと同じような記述するだけで組み込みソフトウェアの該当プログラムを利用でき、この際に特別な手順を必要としない。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
始めに、図1〜3を用い基本構成について説明する。次に、図4〜9を用いプログラマブルコントローラで使用するファンクションブロックの詳細について説明する。最後に、図10〜14を用い組み込みソフトウェアをファンクションブロックとして作成する具体例を説明する。
図1は、本発明で用いられるプログラマブルコントローラシステムの構成の一例を説明したものである。パソコン11は一般的なパソコンであり、このパソコン11にはプログラマブルコントローラを支援する図示しない支援ツールが格納されている。パソコン11と支援対象のプログラマブルコントローラ12は、ケーブル16で接続されている。また、プログラマブルコントローラ12〜14と制御対象となる入出力モジュール15は、制御用ネットワーク17で接続されている。制御用ネットワーク17の一例としては、出願人の製品であるMICREX-SXシリーズで使用しているSXバスなどがある。
パソコン11において、ファンクションブロック等を用いてプログラミングを行い、コンパイル後に実行ファイルをプログラマブルコントローラ12にケーブル16等を介してダウンロードする(このため、パソコン11はローダと呼ばれることもある)。
なお、ここではプログラマブルコントローラシステムの一例として、一台のパソコン11と複数のプログラマブルコントローラ12〜14、及び複数の入出力モジュール15とによる構成を示しているが、これは発明を限定するものではなく、それぞれ任意の台数によって構成されていても構わない。パソコン11の支援対象はプログラマブルコントローラ12〜14のいずれか1つ/全てであっても構わない。
また、パソコン11と支援対象のプログラマブルコントローラ12〜14とは、ケーブル16によって接続されているが、これに限ったものではなく、無線LANであっても良いし、任意の媒体を介しての情報を遣り取りしても構わない。
図2は、本発明で用いられるプログラマブルコントローラのハード構成を説明したものである。プログラマブルコントローラ20は、システムプログラム及び/又はユーザプログラムを実行するCPU22を有し、CPU22は内部バス27を介してプログラム、命令、各種データ等を遣り取りする。ここで、システムプログラム及び/又はユーザプログラムを電源断時も保存しておくために、不揮発性の書き換えメモリとしてフラッシュメモリ24を有する。一般に、フラッシュメモリはSRAM等に比べ動作が低速である為、プログラムの保存に適していても、実行には向かない。そこで、フラッシュメモリ24からシステムプログラム及び/又はユーザプログラムを展開・実行するSRAMとして、プログラムメモリ25を有する。また、システムプログラム及び/又はユーザプログラムがリード/ライトする情報を管理・保存するメモリ領域(SRAM)として、データメモリ26も有する。
一方でプログラマブルコントローラ20には、大別して外部機器との通信機能を2つ有する。1つは、後述のプログラマブルコントローラ支援装置からユーザの指示やプログラミング、実行ファイル等をCPU22と遣り取りするインターフェース機能であるドライバ/レシーバ21である。もう1つは入出力モジュール等の制御対象機器との通信を行う際に、専用線であるバスの調停等を行うバスコントローラ23である。
なお、フラッシュメモリ24、プログラムメモリ25、データメモリ26は、データ保存/管理の面や実行性の側面から複数のユニットに分けているが、十分な容量や速度性能および電源断時のデータ保証が可能なときは、例えば1つのメモリであっても構わない。
図3は、本発明で用いられるプログラマブルコントローラ支援装置のハード構成を説明したものである。プログラマブルコントローラ支援装置30は、ユーザが所望の制御プログラムを作成する為に入力を行う入力デバイス33と、この入力内容等を表示する表示デバイス34、所定のプログラムを記憶するための記憶装置35、接続線や外部ネットワーク等を介し対象のプログラマブルコントローラと通信する通信I/F32等を有する。CPU31は、内部バス36を介し、入力デバイス33より作成されたプログラムを必要に応じて記憶装置35に記憶し、また図示しない支援ツールのコンパイル機能により実行ファイルを作成し、これを通信I/F32を介して対象のプログラマブルコントローラに送信(ダウンロード)する。また、必要に応じて、後述のファンクションブロック番号も送信する。
ユーザは、プログラマブルコントローラ支援装置30における支援ツールを用いてプログラミングを行うことになるが、この際にファンクションブロックを使用することが多い。記述言語規格IEC61131−3に規定されているファンクションブロックでは、処理コードと処理を行う際に使用するデータ(インスタンス)とが一体になった処理構造になっている。
図4は、ファンクションブロックの入出力概略の一例を説明したものである。矩形部分で表示したファンクションブロック本体40に対し、左側に入力端子41、右側に出力端子42が配置されている。ここでは、ファンクションブロック本体40の上部中央に記載のCTUがファンクションブロック名称を、CU、R、PV、Q、CVは端子名称を表している。また、入力端子41、出力端子42に記載の情報(BOOL、INT)は端子のデータ型を表している。
図5は、ファンクションブロックのインスタンスの構成の一例を説明したものである。図中の最小の矩形は、ビット量を表す。CU、R、Qが1つの矩形から構成されているのは、データ型がBOOL(図4参照)であることを表し、PV、CVが16個分の矩形から構成されているのは、データ型がINT(図4参照)であることを表す。また斜線の箇所は未使用領域であることを表す。ここでは模式的な表示としているが、実際には連続した領域として、これらの単位でプログラマブルコントローラのデータメモリ26のアドレスが割り付けられ、インスタンス領域として管理される。図2において、実行時のファンクションブロックのプログラムコードはプログラムメモリ25に、インスタンスの情報はデータメモリ26に配置される。これらの情報を連携して実行することによりファンクションブロックは機能する。
ところで、ファンクションブロックは、その性質から大きく分けると2つに分類される。ここではこれらを夫々、ユーザファンクションブロック(以降、ユーザFBと略す)とシステムファンクションブロック(以降、システムFBと略す)と呼ぶ。
ユーザFBは、ユーザがファンクションブロックの中身(処理自体)も含めてプログラミングするもので、プログラマブルコントローラ支援装置上でユーザFB自体もコンパイルされた後、PLCにダウンロードされる。
一方でシステムFBは、プログラマブルコントローラのメーカが提供するファンクションブロックである。その為、予めその機能がプログラマブルコントローラ本体のシステムプログラムに含まれており、ユーザはプログラマブルコントローラのアプリケーション内でそのシステムFBを呼び出すコードを記述するだけで、その機能を使用する事ができる。また、システムFBではプログラマブルコントローラで使用されるマイコンや専用LSIに最適な設計がメーカによりなされているが、ユーザはこれらのシステムFBに手を加えることは出来ず、参照することのみ許されているのが一般的である。
組み込みソフトウェアによるファンクションブロックはユーザFBではあるが、これをシステムFBとしてプログラマブルコントローラ支援装置に認識させる。すると、コンパイル時にファンクションブロックの読み出しのコード生成のみを行い、ファンクションブロック自体のコンパイルは行われない。
図6は、システムFBをプログラマブルコントローラのアプリケーションから呼び出した場合のプログラムの一例を説明したものである。ここでは、PG0というプログラムから図4のファンクションブロックCTUを呼び出している。インスタンス60は、PG0においてCTUのインスタンスであることを表している。同一のファンクションブロックでも、インスタント名が異なれば処理も異なる。このため、インスタント名ごとに対応する対象データ領域を有し、ここではインスタンス名としてCTU#1となっている。
変数61はPG0内で定義されるが、インスタンス60の入力値として受け渡す。同様に、変数62はPG0内で定義されるが、インスタンス60の実行結果である出力値を受け渡される。
図7は、PG0の擬似的なプログラムコードを説明したものである。コード71、76はプログラムの開始、終了を示すタグであり、実質上、無処理のコードになる。コード72は図6の変数61と対応している。コード上では、A、CTU#1.CUのような表記となっているが、実際にはこれらの変数(或いはインスタンス領域)には、プログラマブルコントローラのデータメモリのアドレスが割り付けられている。ここで、CTU#1はインスタンス領域の先頭アドレス、CTU#1.CUはその構成要素である変数CUのアドレスが割り付けられている。コード73はPUSH命令であり、インスタンス領域のアドレスをスタック等に保存しておく命令である。コード74はCAL命令であり、ファンクションブロックCTUのプログラムコードを呼び出す(実際のコードでは、CTUと対応するファンクションブロック番号がセットされており、このファンクションブロック番号はプログラマブルコントローラとプログラマブルコントローラ支援装置とにおいて整合が取れている)。コード75は、図6の変数62と対応している。コード74で呼び出されたファンクションブロックCTUの処理の終了後に、実行結果を出力値として、CTU#1はインスタンス領域のCTU#1.Q、CTU#1.CVから値を取り出し、D、Eに格納する。
図8は、システムFBテーブルの一例を説明したもである。これはプログラマブルコントローラ側で、ファンクションブロック番号で指定されたシステムFBを速やかに呼び出せるように、システム起動時にシステムFBのプログラムコードのアドレスを登録するのに用い、データメモリに配置する。ここでは、システムFBがz個あるものとし、それぞれのプログラムメモリ上での開始アドレスを管理するテーブルとして、データメモリ上に配置している。システムFBは全て使用されている必要は無く、例えば、システムFB1〜システムFBmまでを使用(以下、予約領域と呼ぶ)し、システムFBn〜システムFBzはアドレス値を空(以下、空き領域と呼ぶ)であっても構わない。
また、システムFBテーブルでは、ファンクションブロック番号を順に付与する。図8において、システムFB1のアドレスを管理する領域を番号1、システムFB1のアドレスを管理する領域を2、…、システムFB1のアドレスを管理する領域を番号zとする。よって、ファンクションブロック番号が分かれば、システムFBのアドレスも一意に決まる。また、システムFBテーブル内に、ファンクションブロック番号とシステムFBのアドレスとの組を登録しても構わない。この場合、システムFBテーブルの情報は順不同/サイズ可変でも管理が可能になる。なお、システムFBテーブルにおいて、システムFBのアドレスとして管理する領域のサイズが全て等しい場合、システムFBテーブルの開始位置(アドレス)からの相対位置をファンクションブロック番号として管理しても構わない。
図9は、プログラマブルコントローラ側におけるシステムFBの処理の一例を概略フローチャートで説明したものである。ここではプログラマブルコントローラのアプリケーションの処理の1つとして、PG0(図6、参照)が実行されたとき、PG0におけるシステムFB(CTU)がどのように処理されるかについて、その概略を示す。
PG0の実行中において、プログラマブルコントローラに予め実装されているCAL処理が呼び出される(ステップS91)。また、ステップS91の前処理として、システムFB(CTU)のインスタンスアドレスはデータメモリ上にスタックされ、インスタント領域に格納されている。CAL処理では、始めにシステムFB(CTU)処理後の戻りアドレスを保存する(ステップ92)。その上で、スタックに格納されているインスタンス領域のアドレスを取り出し(ステップ93)、呼び出そうとしているシステムFB(CTU)のファンクションブロック番号をシステムFBテーブル(図8)から検索し、アドレス情報を取り出す(ステップ94)。インスタンス領域のアドレスをパラメータにセットしてシステムFB(CTU)の処理にジャンプする(ステップ95)。システムFB(CTU)の処理終了後、ステップS92で保存しておいた戻りアドレスにジャンプした後、PG0の処理を継続する。
本発明では、このようにファンクションブロックを扱うプログラマブルコントローラにおいて、組み込みソフトウェアであるユーザFBをどのようにしてシステムFBに登録するかの具体的な方法を示す。
まず、図3のプログラマブルコントローラ支援装置30における図示しない支援ツールにおけるユーザインターフェースから、順を追って説明する。
図10は、作成対象のPOU:Program Organization Unitを選択する画面を説明したものである。従来のプログラム・ファンクションブロック・ファンクションに加えて、組み込みソフトウェアのファンクションブロックの作成を支援することを示している。
図11は、組み込みソフトウェアのファンクションブロックの編集画面の一例を説明したものである。ここでは、ファンクションブロックの名称と、各変数の変数名、データ型、種類を入力する。ファンクションブロック名称は、入力規則に制限は無いが、既に登録済みの名称と重複しないようにする。変数名も入力規則に制限は無いが、同一ファンクションブロック内で重複しないようにする。データ型は、変数の型であるINT型、BOOL型等を指定可能で、ファンクションブロックのインスタンスの構成(図5、参照)にも反映される。種類は、INPUT、OUTPUTのいずれかであり、変数がファンクションブロックの入力側、出力側のいずれかであるかを指定することになる。
図12は、組み込みソフトウェアのファンクションブロックの雛形の一例を説明したものである。図11で設定した変数を用い、C言語を用いた組み込みソフトウェアの雛形を作成する例を示す。コード121は、構造体の記述方式であり、ファンクションブロックにおいてはインスタンスに相当する。コード122は、構造体からの変数受け渡しと、実際の処理を記入する箇所であり、特に、/* 以下に処理を記入する */の箇所以降に演算式や制御内容をユーザがC言語で記載する。なお、ここでは説明の関係で図11で変数等の情報を入力してから図12で雛形を作成する例を示したが、図11の情報より、コード121やコード122の変数などの該当部分を自動的に反映しても構わないし、コード121、122をユーザが直接入力しても構わない。作成したコードを、組み込みソフトウェアの開発環境にてコンパイルし、オブジェクトファイル(組み込みソフトウェアFBコード)を生成する。
図13は、本発明の組み込みソフトウェアのファンクションブロックのダウンロード概略を説明したものである。プログラマブルコントローラ内では、プログラムメモリにてFBコードを管理し、データメモリにてシステムFBテーブルを管理している。システムFBテーブルでは、メーカにより提供され既に使用されているので登録できないシステムFBテーブル(予約領域)131と、ユーザが自由に登録可能なシステムFBテーブル(空き領域)132から構成される。ここでは、番号1から99までがシステムFBテーブル(予約領域)131、番号100以降がシステムFBテーブル(空き領域)132となっている。
プログラマブルコントローラ支援装置では、生成された組み込みソフトウェアFBコードをプログラマブルコントローラにダウンロードする。ダウンロードされたソフトウェアFBコードは、プログラムメモリの空き領域に格納される。ここでユーザが、FBコードをシステムFBとして登録することを指定したときは、システムFBテーブルの空いている番号をファンクションブロック番号としてダウンロードする。
ここでは、ダウンロード後のソフトウェアFBコードの格納先の先頭アドレスは500番地である。システムFBとして登録することを指定した場合は、空き番号としてダウンロードされたファンクションブロック番号100より、システムFBテーブルの番号100に500が格納される。
なお、システムFBテーブルの情報は、システムの起動時や再立ち上げ時、他のプログラマブルコントローラからのダウンロード等のタイミングで、プログラマブルコントローラシステム全体で整合をとるものとする。
図14は、図13におけるダウンロード後のシステムFBテーブルの格納の一例を説明したものである。システムFB100より後の領域を、引き続きシステムFBテーブルの空き領域として使用可能である。ユーザが登録後に不要になったシステムFBについては、削除しても構わない。またデータメモリに余裕があるときには、必要に応じて、空き領域を拡張しても構わない。但し、拡張のタイミングで、システムFBテーブルをプログラマブルコントローラシステム全体で整合する。
以上から明らかなように、システムFBテーブルによりシステムFBと組み込みソフトウェアFBとを管理しているので、ユーザが作成した組み込みソフトウェアをプログラマブルコントローラのアプリケーションから呼び出し可能になる。
本発明におけるプログラマブルコントローラシステムの構成の一例を示す説明図 本発明におけるプログラマブルコントローラのハード構成を示す説明図 本発明におけるプログラマブルコントローラ支援装置の概略ハード構成を示す説明図 ファンクションブロックの入出力概略の一例示す説明図 ファンクションブロックのインスタンスの構成の一例を示す説明図 システムFBを呼び出したプログラムの一例を示す説明図 図6で示すのプログラム(PG0)の擬似的なプログラムコードを示す説明図 システムFBテーブルの一例を示す説明図 システムFBの処理の一例を概略フローチャートで示す説明図 支援ツールのPOU選択画面を示す説明図 組み込みソフトウェアのファンクションブロックの編集画面の一例を示した説明図 組み込みソフトウェアのファンクションブロックの雛形の一例を示した説明図 組み込みスフトウェアのファンクションブロックのダウンロード方法を示した説明図 ダウンロード後のシステムFBテーブルの格納状態の一例を示した説明図
符号の説明
11…パソコン
12、13、14、20…プログラマブルコントローラ
15…入出力モジュール
16…ケーブル
17…制御用ネットワーク
21…ドライバ/レシーバ
22…CPU
23…バスコントローラ
24…フラッシュメモリ
25…プログラムメモリ
26…データメモリ
27…内部バス
30…プログラマブルコントローラ支援装置
31…CPU
32…通信I/F
33…入力デバイス
34…表示デバイス
35…記憶装置
36…内部バス
40…ファンクションブロック本体
41…入力端子
42…出力端子
60…インスタンス
61、62…変数
71、72、73、74、75、76、121、122…コード
131…システムFBテーブル(予約領域)
132…システムFBテーブル(空き領域)

Claims (2)

  1. シーケンス制御を実行するアプリケーションと、
    該アプリケーションによって呼び出される所定の番号が付与されたサブルーチン形式のシステムファンクションブロックと、
    前記システムファンクションブロックの番号が前記アプリケーションによって呼び出されると、前記システムファンクションブロックの番号を基に前記システムファンクションブロックが格納されたアドレス情報を前記システムファンクションブロックの格納先アドレスを保持したFBテーブルから検索し、この検索されたアドレス情報を基に前記システムファンクションブロックを呼び出すシステムプログラムと、が予め記憶手段に保持されたプログラマブルコントローラにおいて、
    該プログラマブルコントローラは、ユーザにより編集された組み込みソフトウェアがコンパイルされたオブジェクトファイルを該プログラマブルコントローラにダウンロードする機能を備えた支援装置との交信を行う通信手段を有し、
    前記組み込みソフトウェアが編集され前記プログラマブルコントローラに登録される際、
    前記支援装置は、
    前記プログラマブルコントローラが前記組込みソフトウェアをシステムファンクションブロックとして実行する際のインスタンス情報を入力する入力画面を表示し、
    この入力画面に入力された前記インスタンスと前記組み込みソフトウェアの実際の処理の記入箇所とを含む雛形ファイルを生成し、
    この組み込みソフトウェアの実際の処理の記入箇所が所定の言語で記載された後の前記雛形ファイルをコンパイルして前記オブジェクトファイルを生成し、
    この生成された前記オブジェクトファイルを前記システムファンクションブロックの番号以外の空き番号として前記プログラマブルコントローラにダウンロードし、
    前記プログラマブルコントローラは、
    前記通信手段を介して前記オブジェクトファイルを受信し、
    前記システムファンクションブロックが保持された記憶領域以外の記憶領域に前記オブジェクトファイルを格納するとともに、該オブジェクトファイルの格納先アドレスを前記FBテーブル内の前記空き番号に対応した領域に登録することを特徴とするプログラマブルコントローラ。
  2. 請求項1に記載されたプログラマブルコントローラにおいて、
    前記所定の言語はC言語で構成され、前記オブジェクトファイルはリアルタイムオペレーティングシステムをベースに実行されることを特徴とするプログラマブルコントローラ。
JP2007171535A 2007-06-29 2007-06-29 プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム Active JP4821717B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007171535A JP4821717B2 (ja) 2007-06-29 2007-06-29 プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007171535A JP4821717B2 (ja) 2007-06-29 2007-06-29 プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム

Publications (2)

Publication Number Publication Date
JP2009009444A JP2009009444A (ja) 2009-01-15
JP4821717B2 true JP4821717B2 (ja) 2011-11-24

Family

ID=40324441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007171535A Active JP4821717B2 (ja) 2007-06-29 2007-06-29 プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム

Country Status (1)

Country Link
JP (1) JP4821717B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4877257B2 (ja) * 2008-03-27 2012-02-15 富士電機株式会社 プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP6484015B2 (ja) * 2014-12-02 2019-03-13 株式会社キーエンス プログラマブル・ロジック・コントローラおよびその制御方法
JP6552343B2 (ja) * 2015-09-02 2019-07-31 株式会社日立製作所 制御管理システムおよび制御方法
JP7024679B2 (ja) * 2018-10-05 2022-02-24 オムロン株式会社 開発支援プログラム、開発支援装置、および開発支援方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191716A (ja) * 1993-12-27 1995-07-28 Mitsubishi Electric Corp 制御装置
JP3512658B2 (ja) * 1998-12-28 2004-03-31 株式会社デジタル 産業用制御装置のプログラミング方法およびプログラミングシステム
JP3829905B2 (ja) * 1999-08-06 2006-10-04 オムロン株式会社 プログラマブル・コントローラ
JP2002351509A (ja) * 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法
JP2005326909A (ja) * 2004-05-12 2005-11-24 Mitsubishi Electric Corp プラントエンジニアリングシステム
JP2006178818A (ja) * 2004-12-24 2006-07-06 Yaskawa Electric Corp モーションコントローラとエンジニアリングツール並びにc言語実行システム

Also Published As

Publication number Publication date
JP2009009444A (ja) 2009-01-15

Similar Documents

Publication Publication Date Title
CN100442176C (zh) 控制系统设定装置及控制系统设定方法
US8327316B2 (en) Compilation model
CN103814333B (zh) 用于对可编程控制装置编程和配置的方法和设备
US8843885B2 (en) Program creation support device
US8195911B2 (en) Numerical controller capable of dividing and combining memory areas to store machining programs and binary data
US6826432B2 (en) Process for programming an automation application
JP4821717B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
WO2024140416A1 (zh) 一种工业控制程序开发平台及方法
EP2733613B1 (en) Controller and program
CN101923320A (zh) 用于存储来自工业控制器的数据的系统和方法
JP4366575B2 (ja) ツール
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP4877257B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP4319082B2 (ja) プログラミングシステム
JP7172864B2 (ja) サポート装置およびサポートプログラム
CN117193291A (zh) 一种agv调度方法、装置、设备及存储介质
JP2009245194A (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP2006317990A (ja) プログラマブル・ロジック・コントローラ及び通信システム
CN114365048B (zh) 数控装置
JP3795357B2 (ja) エディタ装置、エディタプログラムおよびそれを記録した記録媒体
JP6115063B2 (ja) プログラマブルコントローラの周辺装置
JP5843932B1 (ja) プログラマブルコントローラ
JP3781112B2 (ja) プログラマブルコントローラ・システム
JP4784355B2 (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム
JP5829737B1 (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20081215

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110331

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20110422

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4821717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250