JP2009237947A - プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム - Google Patents
プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム Download PDFInfo
- Publication number
- JP2009237947A JP2009237947A JP2008083871A JP2008083871A JP2009237947A JP 2009237947 A JP2009237947 A JP 2009237947A JP 2008083871 A JP2008083871 A JP 2008083871A JP 2008083871 A JP2008083871 A JP 2008083871A JP 2009237947 A JP2009237947 A JP 2009237947A
- Authority
- JP
- Japan
- Prior art keywords
- function block
- user
- object code
- programmable controller
- embedded software
- 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
Links
- 238000004891 communication Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 24
- 230000006870 function Effects 0.000 description 122
- 238000000034 method Methods 0.000 description 38
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【解決手段】ユーザFBを一意に呼び出し可能なユーザFBテーブルに組み込みソフトウェアのユーザFB番号を予め登録するのでは無く、プロジェクトファイルをダウンロードする際に適用することにより、組み込みソフトウェアのユーザFBとプロジェクトファイルのユーザFBの双方の管理を可能にする。
【選択図】図13
Description
しかし、「専用ハードウェアは高価である」、「専用のマシン語体系をもちシステムプログラム開発が比較的困難である」というデメリットも存在していた。
近年、パーソナルコンピュータ、携帯端末などの普及により、市販の汎用CPU(Central Processing Unit)の技術革新が進み、高速実行が可能なCPUを非常に安価に入手することが可能になってきた。そのため、汎用CPUを用いて専用LSIをエミュレートして実行しても、充分に所望の実行性能を得る事ができるようになった。
また、汎用であるためファームウェアの開発ツールも市場から調達できるようになってきたため、汎用CPUを使ったプログラマブルコントローラも作られるようになってきている。
このような汎用CPUをベースとしたプログラマブルコントローラにおいては、ユーザに提供するアプリケーション開発環境として以下の2つの選択肢が考えられるが、後者の方法が注目されている。
・プログラマブルコントローラに使用されている汎用CPUに対応した組み込みソフトウェア開発環境で汎用プログラム言語(C言語、マイコン対応アセンブラなど)を用いてプログラミングし、プログラマブルコントローラにダウンロードした後、実行する方法。
実際、近年では汎用CPUをベースとしながら従来の専用LSIを使用したものと全く同じ動作をするプログラマブルコントローラや、逆に従来の支援ツールを使用せずに組み込みソフトウェア開発環境でプログラミングを行うC言語コントローラなども発売されている。
このようなC言語コントローラにおいては、ユーザのプログラミング負荷を軽減するためにリアルタイム・オペレーティング・システム(以下、リアルタイムOSと呼ぶ)が搭載されている。リアルタイムOSでは、タスクと呼ばれる処理単位を複数並列に実行可能であり、タスク間の通信機能、タスクの生成及び起動などの実効制御の機能を備えている。タスクの時間管理をリアルタイムOSが行うので、ユーザはプログラミングする際にスケジューリングの負荷から開放される利点があげられる。
いずれにせよ、プログラマブルコントローラとプログラマブルコントローラ支援装置からなるプログラマブルコントローラシステムとして効率の良いプログラミング環境(特に組み込みプログラムの扱い方)を提供するのが命題になっている。
コントローラと支援ツールとにおけるプログラムの組み込みに関する技術としては、例えば特許文献1に記載されている。ここでは、支援ツールにおいてタスク型プロジェクトならばコントローラのタスクとして動作させ、関数型プロジェクトならば他のタスクより関数としてコール可能な状態で保持する方法が示されている。
また、特許文献2には、ユーザが作成したソフト資産の必要な部分のみをプログラマブルコントローラのファンクションブロック化し利用する方法が示されている。
そこで、プログラマブルコントローラには汎用CPUを使用し、支援ツールでプログラミングした組み込みソフトウェアを用いる方法が主流となってきている。しかしながら、汎用CPUを使用したプログラマブルコントローラにおいては、以下のような問題点があった。
・実行コードが専用LSIのエミュレータ動作であるため、同じ動作のC言語アプリケーションなどと比べてコード効率が悪い。
・ラダー図等はシーケンス動作を記述するための言語であるため、数値演算やデータ処理などの記述が煩雑で難しい。
これらの問題点は、処理内容に応じて、プログラミング環境を使い分ける事により解決される。即ち、通常のシークエンス処理は従来の支援ツールでプログラミングし、複雑な処理や高速化したい処理に関しては組み込みアプリケーションとして組み込みソフトウェア開発環境でプログラミングを実施する。
このことに起因し、以下の問題点が挙げられる。
・サブルーチンのような複数箇所から呼び出される組み込みソフトウェアの記述が出来ない(例えば、データ交換領域としてプログラマブルコントローラのアプリケーションメモリの固定番地を組み込みソフトウェア中で明示的に記述しようとすると、データ交換領域アドレスをそれぞれ個別に用意しなければならず、同じ処理にもかかわらず、別のプログラムになってしまう)。
このように、組み込みソフトウェアとプログラマブルコントローラのアプリケーションにおける「データ交換方法、及び起動方法」が問題になる。
特許文献1に記載のコントローラでは、ラダー言語内からC言語プログラムを呼び出す方法のみを記述しているが、コントローラのアプリケーションとC言語プログラム間とにおける具体的なデータ交換に関して実現手段が示されていない。
また、特許文献2に記載のプログラマブルコントローラでは、オブジェクト指向プログラミング言語により記述された部品であるクラスをライブラリとして登録し、これらを元にインスタンスを生成すること、及びインスタンス生成情報の管理について記述されているが、部品をライブラリとして登録する具体的な方法が示されていない(ラダープログラムへの記述方法のみ示されている)。
以上に示すように、組み込みソフトウェアとプログラマブルコントローラのアプリケーションとにおける「データ交換方法、及び起動方法」が問題になるが、従来の技術においては組み込みソフトウェアの起動方法に関しては一定の言及はあっても、データ交換方法が具体的に示されていないと言う未解決の課題がある。
第1に、本発明のプログラマブルコントローラは、ユーザにより作成されたユーザファンクションブロックのオブジェクトコードと、ユーザにより作成された組み込みソフトウェアのファンクションブロックのオブジェクトコードとを、これらに付与されそれぞれを一意に特定するユーザファンクションブロック番号により管理するプログラマブルコントローラにおいて、前記ユーザファンクションブロックのオブジェクトコードと、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと、前記ユーザファンクションブロック番号とを格納する記憶手段と、専用線、記憶媒体、或いは外部ネットワークを通じプログラマブルコントローラ支援装置との間でデータの交信を行う通信手段と、前記ユーザファンクションブロックのオブジェクトコード及び/又は前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを解釈し実行する実行手段とを備え、前記記憶手段は、前記通信手段を通じて前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを受信したときには、該組み込みソフトウェアのファンクションブロックのオブジェクトコードを格納し、その後、前記通信手段を通じて前記ユーザファンクションブロックのオブジェクトコードを受信したときには、該ユーザファンクションブロックのオブジェクトコードと、該ユーザファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号と、格納済みの前記組み込みソフトウェアのファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号とを格納し、前記実行手段は、前記記憶手段を通じて格納された前記ユーザファンクションブロックのオブジェクトコード及び/又は前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを解釈し実行するように構成する。
第3に、前記プログラマブルコントローラにおいて、前記実行手段は、アプリケーション実行機能、システム管理機能、支援ツールインターフェース機能を具備し、リアルタイムオペレーティングシステムを用いた汎用マイコンを備えるように構成する。
第4に、本発明のプログラマブルコントローラ支援装置は、ユーザファンクションブロックを用いたプログラミング環境をユーザに提供し、作成されたプログラムを管理する管理手段と、前記プログラムをコンパイルしオブジェクトコードを生成するコンパイル手段と、前記プログラムの稼動対象とするプログラマブルコントローラに前記オブジェクトコードを送信する送信手段とを備え、前記管理手段は、ユーザにより作成されたユーザファンクションブロック及び/又は組み込みソフトウェアのファンクションブロックにそれぞれを一意に特定するユーザファンクションブロック番号を付与し、前記送信手段は、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを送信するときには、対応するユーザファンクションブロック番号を送信せず、その後、前記ユーザファンクションブロックのオブジェクトコードを送信するときには、該ユーザファンクションブロックのオブジェクトコードと、該ユーザファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号と、送信済みの前記組み込みソフトウェアのファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号とを送信するように構成する。
さらに、組み込みソフトウェアを作成できないプログラマブルコントローラのユーザでも、作成可能な環境から予めプログラマブルコントローラにダウンロードしておくことにより、ユーザファンクションブロックを呼び出すためのコードを記述するだけで組み込みソフトウェアの該当プログラムを利用できるという利点もある。
始めに、図1〜3を用い基本構成について説明する。次に、図4〜9を用いプログラマブルコントローラで使用するファンクションブロックの詳細について説明する。また、図10〜12を用い組み込みソフトウェアのファンクションブロック作製方法について説明する。最後に、図13〜15を用いダウンロード方法について説明する。
図1は、本発明で用いられるプログラマブルコントローラシステムの構成の一例を説明したものである。パソコン11は一般的なパソコンであり、このパソコン11にはプログラマブルコントローラを支援する図示しない支援ツールが格納されている。パソコン11と支援対象のプログラマブルコントローラ12は、ケーブル16で接続されている。また、プログラマブルコントローラ12〜14と制御対象となる入出力モジュール15は、制御用ネットワーク17で接続されている。制御用ネットワーク17の一例としては、出願人の製品であるMICREX-SXシリーズで使用しているSXバスなどがある。
パソコン11において、ファンクションブロック等を用いてプログラミングを行い、コンパイル後に実行ファイルをプログラマブルコントローラ12にケーブル16等を介してダウンロードする(このため、パソコン11はローダと呼ばれることもある)。
また、パソコン11と支援対象のプログラマブルコントローラ12〜14とは、ケーブル16によって接続されているが、これに限ったものではなく、無線LANであっても良いし、任意の媒体を介して情報を遣り取りしても構わない。
図2は、本発明で用いられるプログラマブルコントローラのハード構成を説明したものである。プログラマブルコントローラ20は、システムプログラム及び/又はユーザプログラムを実行するCPU22を有し、CPU22は内部バス27を介してプログラム、命令、各種データ等を遣り取りする。ここで、システムプログラム及び/又はユーザプログラムを電源断時も保存しておくために、不揮発性の書き換えメモリとしてフラッシュメモリ24を有する。一般に、フラッシュメモリはSRAM等に比べ動作が低速である為、プログラムの保存に適していても、実行には向かない。そこで、フラッシュメモリ24からシステムプログラム及び/又はユーザプログラムを展開・実行するSRAMとして、プログラムメモリ25を有する。また、システムプログラム及び/又はユーザプログラムがリード/ライトする情報を管理・保存するメモリ領域(SRAM)として、データメモリ26も有する。
なお、フラッシュメモリ24、プログラムメモリ25、データメモリ26は、データ保存/管理の面や実行性の側面から複数のユニットに分けているが、十分な容量や速度性能および電源断時のデータ保証が可能なときは、例えば1つのメモリであっても構わない。
図3は、本発明で用いられるプログラマブルコントローラ支援装置のハード構成を説明したものである。プログラマブルコントローラ支援装置30は、ユーザが所望の制御プログラムを作成する為に入力を行う入力デバイス33と、この入力内容等を表示する表示デバイス34、所定のプログラムを記憶するための記憶装置35、接続線や外部ネットワーク等を介し対象のプログラマブルコントローラと通信する通信I/F32等を有する。CPU31は、内部バス36を介し、入力デバイス33より作成されたプログラムを必要に応じて記憶装置35に記憶し、また図示しない支援ツールのコンパイル機能により実行ファイルを作成し、これを通信I/F32を介して対象のプログラマブルコントローラに送信(ダウンロード)する。また、必要に応じて、後述のファンクションブロック番号も送信する。
図4は、ファンクションブロックの入出力概略の一例を説明したものである。図4(a)の例では、矩形部分で表示したファンクションブロック本体40に対し、左側に入力端子41、右側に出力端子42が配置されている。ここでは、ファンクションブロック本体40の上部中央に記載のCTUがファンクションブロック名称を、CU、R、PV、Q、CVは端子名称を表している。また、入力端子41、出力端子42に記載の情報(BOOL、INT)は端子のデータ型を表している。
同様に、図4(b)の例では、矩形部分で表示したファンクションブロック本体43に対し、左側に入力端子44、右側に出力端子45が配置されている。ここでは、ファンクションブロック本体43の上部中央に記載のUFBがファンクションブロック名称を、IN1、IN2、OUT1、OUT2は端子名称を表している。入力端子44、出力端子45に記載の情報(INT)は端子のデータ型を表している。
なお、ここでは模式的な表示としているが、実際には連続した領域として、これらの単位でプログラマブルコントローラのデータメモリ26のアドレスが割り付けられ、インスタンス領域として管理される。図2において、実行時のファンクションブロックのプログラムコードはプログラムメモリ25に、インスタンスの情報はデータメモリ26に配置される。これらの情報を連携して実行することによりファンクションブロックは機能する。
ところで、ファンクションブロックは、その性質から大きく分けると2つに分類される。ここではこれらをそれぞれ、ユーザファンクションブロック(以降、ユーザFBと略す)とシステムファンクションブロック(以降、システムFBと略す)と呼ぶ。
一方でシステムFBは、プログラマブルコントローラのメーカが提供するファンクションブロックである。その為、予めその機能がプログラマブルコントローラ本体のシステムプログラムに含まれており、ユーザはプログラマブルコントローラのアプリケーション内でそのシステムFBを呼び出すコードを記述するだけで、その機能を使用する事ができる。
また、システムFBではプログラマブルコントローラで使用されるマイコンや専用LSIに最適な設計がメーカによりなされているが、ユーザはこれらのシステムFBに手を加えることは出来ず、参照することのみ許されているのが一般的である。
なお、組み込みソフトウェアによるファンクションブロックはユーザFBとなる。
図6は、ユーザFBをプログラマブルコントローラのアプリケーションから呼び出した場合のプログラムの一例を説明したものである。ここでは、PG0というプログラムから図4(b)のファンクションブロックUFBを呼び出している。インスタンス60は、PG0においてUFBのインスタンスであることを表している。同一のファンクションブロックでも、インスタント名が異なれば処理も異なる。このため、インスタント名ごとに対応する対象データ領域を有し、ここではインスタンス名としてUFB_1となっている。
図7は、PG0の擬似的なプログラムコードを説明したものである。コード71、76はプログラムの開始、終了を示すタグであり、実質上、無処理のコードになる。コード72は図6の変数61と対応している。コード上では、A、UFB_1.IN1のような表記となっているが、実際にはこれらの変数(或いはインスタンス領域)には、プログラマブルコントローラのデータメモリのアドレスが割り付けられている。ここで、UFB_1はインスタンス領域の先頭アドレス、UFB_1.IN1はその構成要素である変数IN1のアドレスが割り付けられている。UFB_1.IN2についても同様である。ここでは、A、B入力値として、UFB_1はインスタンス領域のUFB_1.IN1、UFB_1.IN2に格納する。コード73はPUSH命令であり、インスタンス領域のアドレスをスタック等に保存しておく命令である。コード74はCAL命令であり、ファンクションブロックUFBのプログラムコードを呼び出す(実際のコードでは、UFBと対応するファンクションブロック番号がセットされており、このファンクションブロック番号はプログラマブルコントローラとプログラマブルコントローラ支援装置とにおいて整合が取れている)。コード75は、図6の変数62と対応している。コード74で呼び出されたファンクションブロックUFBの処理の終了後に、実行結果を出力値として、UFB_1はインスタンス領域のUFB_1.OUT1、UFB_1.OUT2から値を取り出し、C、Dに格納する。
ユーザFBテーブルは、ユーザFB番号及びユーザFBのオブジェクトコードの格納先アドレスの一覧で構成される。図8の例では、ユーザFBテーブルはデータメモリに格納されており、各矢印はユーザFBテーブルの各ユーザFB番号を指定すればプログラムメモリ内の各オブジェクトコードの開始アドレスを特定できることを示している。
なお、アドレスの指定方法は、オブジェクトコードの格納先の開始番地を用いるのが一般的であるが、開始番地・終了番地・オブジェクトコードを格納するアドレス長を指定しても構わない。アドレスの情報は、プログラムメモリ内のアドレスを絶対番地として登録しても構わないし、相対アドレスであっても構わない。
また、ユーザFBテーブルの構成自体を構造的にして、例えばユーザFBテーブルの頭から4バイト目にはユーザFB番号1のアドレスを、8バイト目にはユーザFB番号2のアドレス、・・・、4nバイト目にはユーザFB番号nのアドレスを格納し、単なるアドレスの羅列で構成しても構わない。
いずれにせよ、ユーザFB番号が分かれば、実行すべきプログラムメモリ内のユーザFBのオブジェクトコードのアドレスも一意に決まる。
図9は、プログラマブルコントローラ側におけるユーザFBの処理の一例を概略フローチャートで説明したものである。ここではプログラマブルコントローラのアプリケーションの処理の1つとして、PG0(図6参照)が実行されたとき、PG0におけるユーザFB(UFB)がどのように処理されるかについて、その概略を示す。
PG0の実行中において、プログラマブルコントローラに予め実装されているCAL処理が呼び出される(ステップS91)。また、ステップS91の前処理として、ユーザFB(UFB)のインスタンス(UFB_1)のアドレスはデータメモリ上にスタックされ、インスタント領域に格納されている。CAL処理では、始めにユーザFB(UFB)処理後の戻りアドレスを保存する(ステップS92)。その上で、スタックに格納されているインスタンス領域のアドレスを取り出し(ステップS93)、呼び出そうとしているユーザFB(UFB)のユーザFB番号をユーザFBテーブル(図8参照)から検索し、アドレス情報を取り出す(ステップS94)。インスタンス領域のアドレスをパラメータにセットしてユーザFB(UFB)の処理にジャンプする(ステップS95)。ユーザFB(UFB)の処理終了後、ステップS92で保存しておいた戻りアドレスにジャンプした後、PG0の処理を継続する。
図10は、作成対象のPOU(Program Organization Unit)を選択する画面を説明したものであり、この画面は図3のプログラマブルコントローラ支援装置30における図示しない支援ツールにおけるユーザインターフェースの一例である。
このメニュー画面では、従来のプログラム、ファンクションブロック、ファンクションに加えて、組み込みソフトウェアFBの作成を支援することを示している。
図11は、組み込みソフトウェアFBの編集画面の一例を説明したものである。ここでは、ファンクションブロックの名称と、各変数の変数名、データ型、種類を入力する。ファンクションブロック名称は、入力規則に制限は無いが、既に登録済みの名称と重複しないようにする。変数名も入力規則に制限は無いが、同一ファンクションブロック内で重複しないようにする。データ型は、変数の型であるINT型、BOOL型等を指定可能で、ファンクションブロックのインスタンスの構成(図5参照)にも反映される。種類は、INPUT、OUTPUTのいずれかであり、変数がファンクションブロックの入力側、出力側のいずれかであるかを指定することになる。
図13は、組み込みソフトウェアFBのダウンロード方法を説明したものであり、図14は、図13におけるダウンロード後のファイル展開処理をフローチャートで説明したものである。
図13における矢印は、プログラマブルコントローラ支援装置からプログラマブルコントローラにダウンロードされるファイルを示している。なお、プログラマブルコントローラからプログラマブルコントローラ支援装置へのレスポンスについては省略し、特に図示しない。
次に、組み込みソフトェアの作成機能の無いプログラマブルコントローラ支援装置にて、ユーザは組み込みソフトェアFBを利用したプログラムを作成する。その後、コンパイル処理135によりプロジェクトファイル130が生成される。このプロジェクトファイル130をプログラマブルコントローラに送信する。ここで、プロジェクトファイル130とは、ユーザの作成したプログラムを一つのアプリケーションとして管理する単位で、PLC定義ファイル群131、PLC POU群132、組み込みソフトウェアのユーザFB番号133から構成される。
PLC定義ファイル群131とは、PLCのシステムの動作を設定した一連の情報で、例えばPLCに接続されている機器の構成情報や、その制御信号の種類等の情報を含んでいる。
組み込みソフトウェアのユーザFB番号133は、コンパイル136のより生成された組み込みソフトウェアFBのオブジェクトコード134のユーザFB番号であり、PLC POU群132における各ユーザFBのユーザFB番号とは重ならない番号としてユニークな設定となっている。
ところで、ユーザFB番号はユーザFBコードに対して固定的には定まらない。これは、コンパイルにおいては最適化等も行われ、また、ユーザFBが追加・削除などされる等の要因による。そこで、ユーザFBは同じでも、プロジェクトファイル130をコンパイルするごとに異なったユーザFB番号体系を生成することもある。即ちユーザFB自体を修正していなくても、デバッグを実施しコンパイルするごとにダウンロードする必要が生じる。これは、組み込みソフトェアのユーザFB番号においても同様である。
なお、図面の矢印ではPLC定義ファイル群131、PLC POU群132、組み込みソフトウェアのユーザFB番号133の順にダウンロードされているように描画したが、実際にはプロジェクトファイル130のアーカイブとして送信後にプログラマブルコントローラ内で展開しても構わなく、プロジェクトファイル130内でのダウンロードの順番に制限は無い。また、ここでは説明の為、プログラマブルコントローラ支援装置を複数の例を示したが、同手順を一台のプログラマブルコントローラ支援装置で実行しても構わない。
図15は、組み込みソフトウェアFBのダウンロード及び展開の概略を説明したものである。例えば、組み込みソフトウェアFBのオブジェクトコードはプログラムメモリの200番地に展開された後、組み込みソフトウェアのユーザFB番号として“m”がダウンロードされた場合、ユーザFBテーブル150のm番目として“200番地”が登録される。他のユーザFBに関しても同様に、ユーザFBテーブル150の1番目として“10番地”、ユーザFBテーブル150のn番目として“900番地”が登録(更新)される。
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、43…ファンクションブロック本体
41、44…入力端子
42、45…出力端子
60…インスタンス
61、62…変数
71、72、73、74、75、76、121、122…コード
130…プロジェクトファイル
131…PLC定義ファイル群
132…PLC POU群
133…組み込みソフトウェアFBのユーザFB番号
134…組み込みソフトウェアFBのオブジェクトコード
150…ユーザFBテーブル
Claims (5)
- ユーザにより作成されたユーザファンクションブロックのオブジェクトコードと、ユーザにより作成された組み込みソフトウェアのファンクションブロックのオブジェクトコードとを、これらに付与されそれぞれを一意に特定するユーザファンクションブロック番号により管理するプログラマブルコントローラにおいて、
前記ユーザファンクションブロックのオブジェクトコードと、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと、前記ユーザファンクションブロック番号とを格納する記憶手段と、
専用線、記憶媒体、或いは外部ネットワークを通じプログラマブルコントローラ支援装置との間でデータの交信を行う通信手段と、
前記ユーザファンクションブロックのオブジェクトコード及び/又は前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを解釈し実行する実行手段とを備え、
前記記憶手段は、前記通信手段を通じて前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを受信したときには、該組み込みソフトウェアのファンクションブロックのオブジェクトコードを格納し、その後、前記通信手段を通じて前記ユーザファンクションブロックのオブジェクトコードを受信したときには、該ユーザファンクションブロックのオブジェクトコードと、該ユーザファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号と、格納済みの前記組み込みソフトウェアのファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号とを格納し、
前記実行手段は、前記記憶手段を通じて格納された前記ユーザファンクションブロックのオブジェクトコード及び/又は前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを解釈し実行することを特徴とするプログラマブルコントローラ。 - 請求項1に記載のプログラマブルコントローラにおいて、
前記記憶手段は、前記ユーザファンクションブロック番号をテーブル構造として管理することを特徴とするプログラマブルコントローラ。 - 請求項1または2に記載のプログラマブルコントローラにおいて、
前記実行手段は、アプリケーション実行機能、システム管理機能、支援ツールインターフェース機能を具備し、リアルタイムオペレーティングシステムを用いた汎用マイコンにより実現されることを特徴とするプログラマブルコントローラ。 - ユーザファンクションブロックを用いたプログラミング環境をユーザに提供し、作成されたプログラムを管理する管理手段と、
前記プログラムをコンパイルしオブジェクトコードを生成するコンパイル手段と、
前記プログラムの稼動対象とするプログラマブルコントローラに前記オブジェクトコードを送信する送信手段と、を備え、
前記管理手段は、ユーザにより作成されたユーザファンクションブロック及び/又は組み込みソフトウェアのファンクションブロックにそれぞれを一意に特定するユーザファンクションブロック番号を付与し、
前記送信手段は、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを送信するときには、対応するユーザファンクションブロック番号を送信せず、その後、前記ユーザファンクションブロックのオブジェクトコードを送信するときには、該ユーザファンクションブロックのオブジェクトコードと、該ユーザファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号と、送信済みの前記組み込みソフトウェアのファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号とを送信することを特徴とするプログラマブルコントローラ支援装置。 - プログラマブルコントローラとプログラマブルコントローラ支援装置とを具備するプログラマブルコントローラシステムにおいて、
前記プログラマブルコントローラ支援装置は、
ユーザファンクションブロックを用いたプログラミング環境をユーザに提供し、作成されたプログラムを管理する管理手段と、
前記プログラムをコンパイルしオブジェクトコードを生成するコンパイル手段と、
前記プログラムの稼動対象とするプログラマブルコントローラに前記オブジェクトコードを送信する送信手段と、を備え、
前記管理手段は、ユーザにより作成されたユーザファンクションブロック及び/又は組み込みソフトウェアのファンクションブロックにそれぞれを一意に特定するユーザファンクションブロック番号を付与し、
前記送信手段は、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを送信するときには、対応するユーザファンクションブロック番号を送信せず、その後、前記ユーザファンクションブロックのオブジェクトコードを送信するときには、該ユーザファンクションブロックのオブジェクトコードと、該ユーザファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号と、送信済みの前記組み込みソフトウェアのファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号とを送信し、
前記プログラマブルコントローラは、
前記ユーザファンクションブロックのオブジェクトコードと、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと、前記ユーザファンクションブロック番号とを格納する記憶手段と、
専用線、記憶媒体、或いは外部ネットワークを通じプログラマブルコントローラ支援装置との間でデータの交信を行う通信手段と、
前記ユーザファンクションブロックのオブジェクトコード及び/又は前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを解釈し実行する実行手段とを備え、
前記記憶手段は、前記通信手段を通じて前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを受信したときには、該組み込みソフトウェアのファンクションブロックのオブジェクトコードを格納し、その後、前記通信手段を通じて前記ユーザファンクションブロックのオブジェクトコードを受信したときには、該ユーザファンクションブロックのオブジェクトコードと、該ユーザファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号と、格納済みの前記組み込みソフトウェアのファンクションブロックのオブジェクトコードに対応する前記ユーザファンクションブロック番号とを格納し、
前記実行手段は、前記記憶手段を通じて格納された前記ユーザファンクションブロックのオブジェクトコード及び/又は前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを解釈し実行することを特徴とするプログラマブルコントローラシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008083871A JP4877257B2 (ja) | 2008-03-27 | 2008-03-27 | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008083871A JP4877257B2 (ja) | 2008-03-27 | 2008-03-27 | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009237947A true JP2009237947A (ja) | 2009-10-15 |
JP4877257B2 JP4877257B2 (ja) | 2012-02-15 |
Family
ID=41251808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008083871A Active JP4877257B2 (ja) | 2008-03-27 | 2008-03-27 | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4877257B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844099A (zh) * | 2016-09-18 | 2018-03-27 | 南京南瑞继保电气有限公司 | 一种基于元数据模型的功能块图在线调试方法 |
JP2021002197A (ja) * | 2019-06-21 | 2021-01-07 | 富士電機株式会社 | 表示制御装置及び表示制御プログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051704A (ja) * | 1999-08-06 | 2001-02-23 | Omron Corp | プログラマブル・コントローラ |
JP2002189507A (ja) * | 2000-12-19 | 2002-07-05 | Omron Corp | コントローラ |
JP2005326909A (ja) * | 2004-05-12 | 2005-11-24 | Mitsubishi Electric Corp | プラントエンジニアリングシステム |
JP2006178818A (ja) * | 2004-12-24 | 2006-07-06 | Yaskawa Electric Corp | モーションコントローラとエンジニアリングツール並びにc言語実行システム |
JP2009009444A (ja) * | 2007-06-29 | 2009-01-15 | Fuji Electric Systems Co Ltd | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム |
-
2008
- 2008-03-27 JP JP2008083871A patent/JP4877257B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051704A (ja) * | 1999-08-06 | 2001-02-23 | Omron Corp | プログラマブル・コントローラ |
JP2002189507A (ja) * | 2000-12-19 | 2002-07-05 | Omron Corp | コントローラ |
JP2005326909A (ja) * | 2004-05-12 | 2005-11-24 | Mitsubishi Electric Corp | プラントエンジニアリングシステム |
JP2006178818A (ja) * | 2004-12-24 | 2006-07-06 | Yaskawa Electric Corp | モーションコントローラとエンジニアリングツール並びにc言語実行システム |
JP2009009444A (ja) * | 2007-06-29 | 2009-01-15 | Fuji Electric Systems Co Ltd | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844099A (zh) * | 2016-09-18 | 2018-03-27 | 南京南瑞继保电气有限公司 | 一种基于元数据模型的功能块图在线调试方法 |
JP2021002197A (ja) * | 2019-06-21 | 2021-01-07 | 富士電機株式会社 | 表示制御装置及び表示制御プログラム |
JP7351109B2 (ja) | 2019-06-21 | 2023-09-27 | 富士電機株式会社 | 表示制御装置及び表示制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4877257B2 (ja) | 2012-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103814333B (zh) | 用于对可编程控制装置编程和配置的方法和设备 | |
WO2024140416A1 (zh) | 一种工业控制程序开发平台及方法 | |
JP4821717B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP5849592B2 (ja) | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 | |
JP4877257B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP6292096B2 (ja) | プログラマブルコントローラシステム、その支援装置 | |
JP4319082B2 (ja) | プログラミングシステム | |
JP7172864B2 (ja) | サポート装置およびサポートプログラム | |
JP6135247B2 (ja) | 情報処理装置および情報処理プログラム | |
JP4366575B2 (ja) | ツール | |
JP7085305B2 (ja) | コントロールシステム及びコントロール方法 | |
CN111052010B (zh) | 控制系统、开发辅助装置和存储介质 | |
KR101447846B1 (ko) | 모션 sfc 프로그램 부품 작성 장치 | |
WO2020075351A1 (ja) | コントロール装置 | |
CN110806891A (zh) | 嵌入式设备软件版本的生成方法及装置 | |
JP2004280299A (ja) | コントローラ、開発装置及びシステム | |
JP6119452B2 (ja) | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム | |
JP5177082B2 (ja) | 開発支援装置,プログラム | |
JP6455096B2 (ja) | コントロールシステム、その支援装置、プログラマブルコントロール装置 | |
CN112272820B (zh) | 支持装置以及支持程序的记录介质 | |
CN114365048B (zh) | 数控装置 | |
JP6115063B2 (ja) | プログラマブルコントローラの周辺装置 | |
JP2009245194A (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP7234810B2 (ja) | サポート装置およびサポートプログラム | |
JP4784355B2 (ja) | プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20101015 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20110422 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111026 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111101 |
|
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: 20111114 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4877257 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: 20141209 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 |