JP4427734B2 - ループコントローラ - Google Patents

ループコントローラ Download PDF

Info

Publication number
JP4427734B2
JP4427734B2 JP2004224873A JP2004224873A JP4427734B2 JP 4427734 B2 JP4427734 B2 JP 4427734B2 JP 2004224873 A JP2004224873 A JP 2004224873A JP 2004224873 A JP2004224873 A JP 2004224873A JP 4427734 B2 JP4427734 B2 JP 4427734B2
Authority
JP
Japan
Prior art keywords
program
block
parent
function
time
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.)
Expired - Fee Related
Application number
JP2004224873A
Other languages
English (en)
Other versions
JP2006048184A (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.)
Omron Corp
Original Assignee
Omron Corp
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 filed Critical Omron Corp
Priority to JP2004224873A priority Critical patent/JP4427734B2/ja
Publication of JP2006048184A publication Critical patent/JP2006048184A/ja
Application granted granted Critical
Publication of JP4427734B2 publication Critical patent/JP4427734B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

この発明は、プログラマブルコントローラに実装されるループコントローラに関するもので、特に、同一種の複数のプログラム部品(ファンクションブロック)を実行可能とした物において、それら複数のプログラム部品の同期をとるようにした技術に関する。
生産工場(製造現場)に設置されるFA(ファクトリーオートメーション)システムの制御をつかさどるPLC(プログラマブルロジックコントローラ)は、制御プログラムに基づいて演算実行するCPUユニット、センサやスイッチなどの入力機器を接続してそれらのオンオフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、上位端末装置などと接続してそれと情報をやりとりする通信ユニット、各ユニットに電源を供給する電源ユニット、など複数のユニットを組み合わせることにより構成されている。そしてPLCは、入力ユニットで入力した信号をCPUユニットのI/Oメモリに取り込み(INリフレッシュ処理)、予め登録されたラダー言語で組まれた制御プログラムに基づき論理演算をし(プログラム演算実行処理)、その演算実行結果をI/Oメモリに書き込んで出力ユニットに送り出し(OUTリフレッシュ処理)、その後、ネットワーク接続された上位端末装置や表示器等と通信する(周辺サービス処理)、といった各処理をサイクリックに繰り返す。
ところで、CPUユニットは、通常、上記したユーザプログラムを格納するRAMやシステムプログラムを格納するROMや、上記した演算処理等を実行するMPUや、演算実行する際に使用するRAM(共有メモリ,I/Oメモリ,ワークメモリ)等を備えて構成される。これに対し、CPUユニット内に、インテリジェントな高機能ボードである特殊機能モジュールを着脱可能に実装したタイプのものもある。このように高機能ボードと同様の機能をPLCを構成する別途のユニットとして実現した高機能ユニットもある。このように、CPUユニットに実装するボードタイプや、別構成のユニットタイプのいずれにおいても、そこにおいて実行される基本的な機能は同じである。
この高機能モジュール(ボードタイプ),高機能ユニットで行う制御の一つとしては、例えば、温度等のアナログ値を受け、PID制御を行う等の専用のプロセス制御(アナログ制御)のプログラムを実施する機能を持つものや、時間と出力を折れ線で設定したウェイト機能付きの折れ線プログラム(時間の経過に伴い予め設定した折れ線(一次関数で特定される値を求め、設定値・目標値等の出力値として出力するプログラム)を実行するものなど、各種のものがある。上述したごとく、これらの高機能でインテリジェントな機能を実現する機器は、CPUユニット内に実装するボードタイプと、別体のユニットがあるが、本明細書では、それらを総称してループコントローラと称する。
これらループコントローラは、CPUユニットの演算処理とは非同期に所定の制御を実行することにより、制御の高速化・高度化を図ることができるようになっている。また、ループコントローラは、自らの運転状態をCPUユニットのI/Oメモリ上に常に反映させている。
さらに、ループコントローラを実際に使用するには、まず、予め用意された上記の各種の制御・機能を実現するためのプログラム部品(ファンクションブロック)の中から使用するプログラムを選択するとともに、そのプログラムを動作させるのに必要なパラメータを設定する。例えば、折れ線プログラムの場合、制御パターンとなる折れ線を特定するため、各ステップの時間軸条件(時間幅,単位等)と、各ステップの最終目標設定値(出力値)等を入力する。これにより、各ステップの最終目標設定値を、ステップの順に結ぶことにより制御パターンとなる折れ線が生成される。
1つのループコントローラ内には、複数の種・或いは同一種の複数個のプログラム部品を実装することができる。この場合に、実行タイミングが来ると予め決定した適宜の順で、各プログラム部品を実行させることになる。これにより、例えば図1に示すように、工業炉1の内部の温度をループコントローラで制御するようなことができる。すなわち、工業炉で1は、炉自体が大きいため、1個の熱源を用いて工業炉1の内部全体の温度を制御しようとすると、温度ムラが発生してしまう。そこでこれを防止するために、通常複数の熱源を用いることにより、温度を均一にする。この熱源を制御するために、例えば折れ線プログラムを用いた目標値(設定温度)を指定するが、温度ムラを加味した目標値とする必要があり、熱源ごとにそれぞれに適した目標値を設けるとともに、時間の経過によって各目標値を変更させる。これにより、図1に示すように、必ずしも全ての熱源を制御する折れ線プログラムの制御パターンが一致しないが、結果として工業炉1の内部の温度ムラを可及的に抑制できるようになる。
このように複数のプログラムを同時に実行させることにより、温度ムラの抑制を図ることが可能となる。この温度ムラの抑制を図るためには、上記の複数の熱源を制御するプログラム部品(たとえば折れ線プログラムを実行するファンクションブロック)のプログラム運転を同期させる必要がある。しかし、従来、ファンクションブロックを同期をさせるための特別な機能はなく、プログラムの進行を一時停止したり、強制的に進めたりするといった時間進行に変化を与えるような操作を実行する場合には、すべてのプログラムに対して同時に係る指令を与えるようにしていた。
ところで、このようにプログラム進行の一時停止や、強制的に進めたりする範囲の操作であれば、その指令をすべてのプログラムに同時に与えることで同期をとることは可能である。しかし、基準となるプログラム運転においてPVスタート(運転開始時のPV(present value)と一致するポイントからプログラム運転を開始する機能)させ、他のプログラム運転も同じ開始時刻より、運転を開始するような要求に応えることは難しく、実現するためには、ユーザプログラムによって、他のプログラム運転の開始位置を修正するといった対応が必要であった。
さらに、従来方式では、同期対象のプログラムのパラメータを設定するに際し、全てのプログラムに対して同一の時間設定を行なう必要があり、仮に、係る設定を間違えると同一タイミングで目的とする目標値の変更ができず同期運転と同等の処理・効果が得られなくなる。さらには、ステップの時間設定を変更する場合には、全てのプログラムパターンに対して係る変更を行なう必要があり、非常に煩雑である。
この発明は、基準となるプログラム部品に対し、簡単に同期運転を実行することができるループコントローラを提供することを目的とする。
本発明に係るループコントローラは、時間経過に伴い出力値を求めるプログラムパターンが設定され、それを実行して出力値を求めるプログラム部品を備えたプログラマブルコントローラ用のループコントローラであって、前記プログラム部品は、同一種の物が複数備えるとともに、その複数のプログラム部品の1つが親となり、他のプログラム部品が子となるように設定され、前記親に設定されたプログラム部品は、複数のステップに分割されたプログラムパタ−ンに従ってプログラム運転を実行するようにし、前記子に設定されたプログラム部品は、前記親に設定されたプログラム部品を特定する特定情報を有し、その特定情報に基づき、対応する親のプログラム部品から、実行中のステップを特定するステップ番号と前記実行中のステップにおける経過時間と各ステップの時間幅とを取得、その取得したステップ番号と該ステップにおける経過時間と該ステップの時間幅とを元に親のプログラム部品のプログラム実行に同期をとって自身のプログラム運転を行うようにした。
このようにすると、例えば親のプログラム部品が停止・一時停止したりすると、このプログラム部品も同期して停止したり・一時停止したりする。つまり、ユーザ等からの指示は、親のプログラム部品に対して行なうだけで、それに関連する全ての子のプログラム部品も停止する。
さらに、前記時間データは、時間軸を複数のステップに分割して構成され、親のプログラム部品に対して任意のステップを指定し、その指定したステップからプログラムの実行を行なうことができるようにすることができる。
このようにすると、子の時間データは親の時間データと等しくなるため、親に対する時間経過を一時停止したり、強制的に進めたりした場合には、自動的に子の時間データも同一タイミングで変更することができ、同期を簡単かつ確実にとることができる。
つまり、プログラム運転のプログラムパターンを設定するプログラム部品(ファンクションブロック)に対して、親か子かの設定をしておくことで、時間進行に関わる操作は親に対してのみ実行すれば良い。ステップ時間の変更も親に対してのみ実行すれば良い。基準となるプログラム運転においてPVスタートをさせた場合でも自動的に同期運転ができる。
また、前記子に設定されたプログラム部品は、独立してプログラム実行を停止する機能を備えるとよい。本発明は、基本的には親のプログラム部品の動作に同期してこのプログラム部品も動作するため、親のプログラム部品が実行されれば、このプログラム部品も実行され、親のプログラム部品が停止すればこのプログラム部品も停止する。たとえば、ある子のプログラム部品により制御される制御対象に異常等が生じた場合、子のプログラム部品を単独で停止する機能を備えていると、係る場合に迅速かつ影響のあるもののみ停止できる。
本発明では、基準となるプログラム部品に対し、同種の他のプログラム部品を簡単に同期運転を実行することができる。
図2は、本発明のループコントローラが実装されるPLC10の一例を示している。PLC10は、複数のユニットを連結して構成されている。すなわち、電源ユニット11と、CPUユニット12と、アナログ入力ユニット13と、アナログ出力ユニット14と、その他の所定のユニット15とを備えている。もちろん、PLCの構成は、図示するものに限ることなく、必要に応じて所望のユニットを追加接続可能である。本実施の形態では、ループコントローラ20は、CPUユニット12のスロット12aに実装するインナーボードタイプである。もちろん、ユニット形式として実現しても良い。
また、CPUユニット12には、RS232Cなどのシリアルインタフェース12bを備え、そのシリアルインタフェース12bにツール40を接続すると、そのツール40を介してCPUユニット12のユーザメモリ,I/Oメモリ等のデータメモリにユーザプログラムや各種のパラメータを書き換えすることができる。本発明との関係でいうと、ループコントローラ20で使用するファンクションブロックの指定や、そのファンクションブロック(プログラム)を実行するのに必要なパラメータ等をCPUユニット12のデータモリに格納し、インナーバスを介してループコントローラ20がデータメモリに格納されたデータを取得し、所定の機能(プログラム)を実行する。
図3は、ループコントローラ20の内部構成を示している。このループコントローラ20は、外部インタフェースとしては、RS232Cポート21を有している。このRS232Cポート21は、温度調節器などと直接シリアル通信するためのポートであり、入出力可能となっている。また、外部に対する報知機能として、LED22も備えている。このLED22は、CPUユニット12とのバスが確立していることや、ファンクションブロックやシミュレーション機能が動作中であることや、RS232Cポート21経由で、データ通信していることなどを示すものである。また、実装されたCPUユニット12との間でデータの送受をするためのインナーバスインタフェース23も備えている。このインナーバスインタフェース23を介してCPUユニット12のデータメモリとの間でデータ更新を行う。
具体的なデータ交換は、CPUユニットメモリアクセス機能24や外部メッセージ通信処理部25が実行し、上記のバスインタフェース23を介して所定のデータを送受する。すなわち、外部メッセージ通信処理部25は、専用ツールからのパラメータ設定や、パラメータ読出を行うための、メッセージコマンドをCPUユニット12経由で受信し、それに対するレスポンスデータを送信する機能を有する。つまり、パラメータ設定のメッセージコマンドは、受信機能で受信し、受信したパラメータをパラメータ設定処理部26に渡す。すると、パラメータ設定処理部26は、外部メッセージ通信処理部25(受信機能)から取得したパラメータを記憶素子(SRAM)27に格納する。また、外部メッセージ通信処理部25が受信したメッセージがパラメータ読出の場合、受信機能からパラメータ設定処理部26を介して記憶素子27に格納された指定されたパラメータを読み出し、外部メッセージ通信処理部25の返信機能がレスポンスとしてその読み出したパラメータを返信する。また、記憶素子27はSRAMで揮発性メモリであるため、そこに記憶されたパラメータは、FROMバックアップ機能28により読み出し、不揮発性記録素子(FROM)29に記憶する。
CPUユニットメモリアクセス機能24は、CPUユニット間バス経由で、1ワード単位で、データ送受信できる手段である。これによりCPUユニット12上のデータメモリ(I/Oメモリ)とのデータ交換を行う。すなわち、たとえばアナログ入力ユニット13を介して取得した入力データがCPUユニット12のデータメモリ(I/Oメモリ)に格納されるため、それをCPUユニットメモリアクセス機能24の入力インタフェース24aを介して取得し、ファンクションブロック31に与える。また、ファンクションブロック31により実行して得られた演算結果を指定値(指令値・設定値)は、CPUユニットメモリアクセス機能24の出力インタフェース24bからバスインタフェース23を介してCPUユニット12のデータメモリに書き込まれる。
ファンクションブロック実行処理部31は、実装された所定のファンクションブロックを実行するものである。ファンクションブロックとしては、折れ線プログラムブロック,PIDブロック,オンオフ制御ブロック,警報ブロック,四則演算ブロックなどがある。専用ツールにより自由にプログラミングできる。さらに、ファンクションブロック実行処理部31にて実際に各ファンクションブロックを実行する際には、記憶素子(SRAM)27上にあるパラメータを用いて、各種処理を行う。
なお、ファンクションブロック実行処理部31に格納された各ファンクションブロック(プログラム部品)は、ファンクションブロックプログラム管理部30からのコール命令を受けて実行される。このコール命令は、内部クロック30aにより予め設定されたスキャン周期に来たならば、そのファンクションブロック管理部30が発行する。
図4は、ループコントローラ20を含むPLC10の内部構造並びに外部の装置等との接続形態の概略を示している。この図では、主としてデータの流れ・転送状態を中心に、必要な要素を図示して説明している。このPLC10では、ループコントローラ(ループコントロールボード)20を内蔵するCPUユニット12と、アナログ入力ユニット(ADユニット)13と、アナログ出力ユニット(DAユニット)14を接続している。そして、実際の制御対象41に設置したセンサから、例えば液面,圧力,温度などのアナログデータを取得するとともに、アナログ入力ユニット(ADユニット)13のI/Oメモリ13aの所定エリアに格納する。このI/Oメモリ13aに格納されたデータ(AD変換値(入力))は、I/Oバス10aを介してCPUユニット12のI/Oメモリ12cの所定エリアに転送される。
ループコントローラ20は、予め設定されたCPUユニット12のI/Oメモリ12cの所定エリアを定期的にアクセスして取得するため、そのI/Oメモリ12cに格納されたAD変換値(入力)は、CPUユニット12のインナーバス12bを介して入力インタフェース24aが取得し、ファンクションブロック実行処理部31に渡す。ここでは、係るAD変換値(入力)を、PID制御を実行するPIDブロックに対し、入力値として渡している。PIDブロックは、与えられた入力値に基づきPID演算を行なう。そして、算出して得られた出力値は、出力インタフェース24bを介してインナーバス12b経由でCPUユニット12のI/Oメモリ12cに格納する。この格納されたデータがアナログ出力ユニット(DAユニット)14のI/Oメモリ14bに転送され、制御対象41のバルブの開度などの指令値として出力される。このようにすることにより、アナログデータに基づくPID制御が行なわれる。
ファンクションブロック実行処理部31で実行されるファンクションブロックは、上記のPIDブロック以外にも各種の物があることはすでに説明したとおりであり、例えば折れ線プログラムを実行するファンクションブロックの場合、演算実行中は、内部タイマなどに従って逐次演算処理をし、その結果を出力インタフェース24bを介してI/Oメモリ12cに書き込むことで、アナログ出力ユニット14のI/Oメモリ14aに転送され、そのアナログ出力ユニット14に接続された熱源となるヒータ等の動作の制御を行なうことになる。そして、入力インタフェース24aを介しては、例えば、演算処理の開始タイミングの指示や、ウェイト指示や、スキップ(別のステップに飛ぶ)などの動作時間軸の変更命令などを受ける。
次に、折れ線プログラムを実行するファンクションブロックにおいて設定するパラメータについて説明する。折れ線プログラムは、例えば図5に示すように、時間経過(横軸)にともない縦軸の指令値が一次直線で変化する折れ線で表現され、各折れ点(頂点,谷点)ごとにステップに分けられる。その結果、通常複数のステップ(図ではA1からA6)を有し、1つのステップ内では一次関数で定義することができる。そして、設定するパラメータとしては、例えば、横軸の時間に関する条件として、ステップごとに、時間幅や、時間単位(秒、分、時間)等を設定する。また、各ステップの終了時の出力値(指令値)の目標値(B0,B1,B3,…)や最終折れ点、その他各種のパラメータを設定する。すると、1つ前のステップの終了時の出力値は、現在のステップの開始時の出力値と言うことになる。そして、各ステップの任意の場所における指令値は以下の式により求めることができる。
Y1=T1*(B(n)−B(n−1))/T2+B(n−1) (1)
Y1:(プログラム出力値)
T1:ステップ内経過時間タイマ
T2:ステップ時間幅
B(n):ステップ(n)の目標値
n:実行中ステップNo.
なお、係る演算処理を実行する間隔(周期)をスキャン周期等としてパラメータ登録をする。このスキャン周期は、ファンクションブロック管理部30が持つ内部クロック30aにより管理し、指定されたスキャン周期に来ると、該当するファンクションブロックに対して実行命令(CALL)する。
また、実際の動作中に与えられる命令にともなう機能としては、一時停止命令や、ウェイト命令や、ステップ移行指令等がある。一時停止命令は、図5中に示す時間停止指令(S2)であり、この指令がONの間、指令値を保持する。ウェイト命令を受けると、出力の値をそのステップの最終値にするとともに、指定されたウェイト幅(これも、パラメータとして予め設定される)だけその値を保持する。その後次のステップに移行して時間計測を開始し、時間経過に伴う出力値の折れ線変化を行なう。例えば、図5におけるステップA1の途中でウェイト命令を受けると、出力値をB1にするとともに、そのB1の値をウェイト幅だけ保持(ホールド)し、その後、つぎのA2ステップに移行し、上記の式(1)で規定される時間経過に伴う出力値Y1を求め、出力する処理を行なう。ステップ移行は、文字通り指定されたステップに飛び、その後、時間計測を開始し、そのステップにおいて時間経過に伴う出力値の折れ線変化を行なう物である。例えば、図5のA1のステップの実行中にA5のステップの移行命令を受けると、A5のステップに飛び、そのA5ステップを実行する。もちろん、上述した機能は基本的な動作であり、それらを組み合わせたり、さらに別の機能も備えている。
ここで本発明では、同期運転させるプログラム部品であるファンクションブロックについては、親子関係を持たせるようにした。そして、親のファンクションブロック(以下、適宜”「親」ブロック”と略して称する)については、通常のパラメータの設定を行ない、従来と同様の処理に従い動作させる。これに対し、子のファンクションブロック(以下、適宜”「子」ブロック”と略して称する)は、時間軸の設定以外は通常のパラメータ(各ステップの目標値,スキャン周期等)の設定を行なう。そして、時間軸の設定を行なわない代わりに、「親」ブロックを特定する特定情報として「親」ブロックが格納・設定されるブロック番地(アドレス)を登録する。そして、「子」ブロックは、自己が実行する際の基準となる時間軸は、関連する親ブロックからの時間情報を取得し、そのときの時刻を自己の経過時間と設定した。つまり、「子」ブロックでは、時間軸に関する情報は、パラメータ登録せず、常に、関連する親ブロックの時間軸についての情報(現在、実行中のステップNo.,そのステップでの経過時間,一時停止指令や、ウェイト命令等を受けていないかなど)を取得し、取得した時間軸についての情報を自己の時間軸に設定し、それに基づいて上述した式(1)に基づいてその「子」ブロックについての出力値を演算し、出力する。
具体的には、「子」ブロックは、図6に示すフローチャートを実行する。なお、コールを受けた「親」ブロックは、通常の処理(従来公知の処理)をする。ファンクションブロック管理部30は、各ファンクションブロックに設定されたスキャン周期に来たら、そのファンクションブロックに対して実行命令としてコールをする。従って、各ファンクションブロックは、そのコールを受けるのを待つ(S11)。なお、このファンクション管理部30からコール命令は、全てのファンクションブロックに対して一斉に行なわれるわけではなく、所定の順(例えばアドレス順)で実行されることになる。従って、図7に示すように、まず「親」ブロックに対してコール命令が与えられ、それが実行されると、順次子ブロックに対してコール命令がなされる。従って、各「子」ブロックは、直前の実行された「親」ブロックの時間軸情報を取得し、それをすぐに反映して追従等することができる。
コールを受けた「子」ブロックは、「親」ブロック正当性を確認する(S12)。すなわち、その「子」ブロックのパラメータの1つとして設定されている「親」ブロックのブロック番地(アドレス)に登録されている、「親」ブロックが自己と同じ「折れ線プログラム」であるか否かを確認する。異なっていれば異常となり、実行エラーコードをメモリの所定エリアに登録する(S23)。なお、この所定エリアに登録されエラーコードは、所定のタイミングでCPUユニットに呼び出され、ファンクションブロックごとに操作のミスや設定値ミスをユーザに知らせることができる。
「親」ブロックの正当性が確認されたならば、「親」ブロックに設定されたスキャン周期と、自己に設定されたスキャン周期が一致するか否かを確認する(S13)。異なるときは、実行エラーとなり、所定のエラーコードを登録する(S23)。
両者のスキャン周期が一致すれば、次は、「親」ブロック運転開始状況を確認する(S14)。すなわち、「子」ブロックは、「親」ブロックと同期して運転するため、「親」ブロックの動作指令がONになって動作開始(運転中)であるか否かを判断する。動作指令がONの場合には、対応する「親」ブロックも運転しているため、それに合わせて「子」ブロックも運転にする(S15)。つまり、その「子」ブロックに対する動作指令もONにする。そして「子」ブロックが運転開始していることを確認する(S16)。「子」ブロックに対して停止命令等が発せられている場合には、ステップ23に飛び、その「子」ブロックのみ停止する。
「子」ブロックが運転中であれば、ついで、「親」ブロックが正常運転をしているか確認する(S17)。すなわち、「親」ブロックが実行エラーになっていないことを確認する。もし実行エラーになっている場合には、ステップS23に飛び、実行エラーコードの登録を行なう。
さらに、「親」ブロックが正常運転している場合には、「親」ブロック間時間軸停止中か否かを判断する(S18)。すなわち、「親」ブロックに対する時間軸停止指令がONになっているか否かを判断する。「親」ブロックの時間軸停止指令がONとなり、停止しているときは、「子」ブロックもプログラムを一時停止させる(S18の停止)
一方、「親」ブロックが時間軸停止指令も受けておらず、正常に動作している場合には、「親」ブロック進捗状態を複写する(S20)。すなわち、「親」ブロックについての経過時間出力値(動作指令ONからの経過時間),ステップ出力値(実行中のステップNo.を示す),経過時間単位(時間軸(横軸)の単位),時間軸停止指令(ファンクションブロックのプログラム運転を一時停止させる指令),最終折れ点到達(ファンクションブロックのプログラムが最終ポイントまで実行したことを示す情報),ウェイトに関する情報(ウェイト中か否か、ウェイト幅等),各ステップの時間幅(横軸)及び時間軸(横軸)の単位を設定ならびにステップ実行中フラグ(現在実行中のステップを示すフラグ)を取得する。
ついで、「子」ブロックの出力値を計算する(S21)。すなわち、ステップS20で取得した情報に基づき、「親」ブロックが現在どのステップを実行中で、そのステップにおける経過時間や、運転状況(一時停止,ウエイトの有無)等がわかる。そこで、下記式に必要な情報を代入し、現在の出力を求める。

Y1=T1*(B(n)−B(n−1))/T2+B(n−1) (1)
Y1:(プログラム出力値)
T1:ステップ内経過時間タイマ
T2:ステップ時間幅
B(n):ステップ(n)の目標値
n:実行中ステップNo.
ここで目標値B(n),B(n−1)は、その「子」ブロックに対して予めパラメータとして設定された値であり、T1,T2,nが「親」ブロックから取得したデータである。
また、ステップS14,S16の分岐判断にて「親」ブロックが運転停止していたり、「子」ブロックが運転開始しない場合には、ステップS22に飛び、「子」ブロック・リセット処理をする。具体的には、「親」ブロック、「子」ブロックの動作指令がOFFのとき、すなわち、プログラム出力値,経過時間出力値(動作指令ONからの経過時間を示す),ステップ出力値(実行中のステップNo.を示す),(時間軸停止指令(プログラム運転を一時停止させる指令),最終折れ点到達(プログラムが最終ポイントまで実行したことを示す情報),ウェイト中等の変数を0クリアする。
図6に示すフローチャートを、毎スキャンごとに行なう。これにより、例えばオペーレータが制御(目標値の変更を停止)をする際にも、「親」ブロックのみ対象に停止をすれば、「子」ブロックの時間も停止する。さらに、従来であれば、各制御対象(例えば熱源)の目標値の変更を同期させるファンクションブロックのプログラムを制御するためのプログラムを構築する必要があるが。本機能を使えば、基準となる「親」ブロックを指定するだけで、親に対して操作すれば、「子」ブロックも時間を同期して動作することができる。
また、「子」ブロックは「親」ブロックの時間軸に同期して動作するため、例えば、下り勾配ステップ(例えば図5のA2やA6などのステップ)で、電断したときに、再開時に、その下り区間のステップから、再開させたいという要求がある場合に、「親」ブロックに対して再開時の開始ステップ(例えばA6)を指定して実行すると、「子」ブロックもそれに追従して下り勾配ステップのA6から実行することができる。
ループコントローラが実行する複数のプログラム部品(ファンクションブロック)が同期して動作させる必要性がある制御対象の一例を示す図である。 本発明が適用されるプログラマブルコントローラの一例を示す図である。 本発明に係るループコントローラの好適な一実施の形態を示す図である。 本発明に係るループコントローラの好適な一実施の形態を示す図である。 折れ線プログラムを説明する図である。 「子」の折れ線プログラム(ファンクションブロック)の機能を説明するフローチャートである。 各ファンクションブロックの実行順を説明するフローチャートである。
符号の説明
10 PLC
11 電源ユニット
12 CPUユニット
13 アナログ入力ユニット
14 アナログ出力ユニット
20 ループコントローラ
30 ファンクションブロック管理部
31 ファンクションブロック実行処理部
40 ツール

Claims (1)

  1. 時間経過に伴い出力値を求めるプログラムパターンが設定され、それを実行して出力値を求めるプログラム部品を備えたプログラマブルコントローラ用のループコントローラであって、
    前記プログラム部品は、同一種の物が複数備えるとともに、その複数のプログラム部品の1つが親となり、他のプログラム部品が子となるように設定され、
    前記親に設定されたプログラム部品は、複数のステップに分割されたプログラムパタ−ンに従ってプログラム運転を実行するようにし、
    前記子に設定されたプログラム部品は、前記親に設定されたプログラム部品を特定する特定情報を有し、その特定情報に基づき、対応する親のプログラム部品から、実行中のステップを特定するステップ番号と前記実行中のステップにおける経過時間と各ステップの時間幅とを取得、その取得したステップ番号と該ステップにおける経過時間と該ステップの時間幅とを元に親のプログラム部品のプログラム実行に同期をとって自身のプログラム運転を行うようにしたことを特徴とするループコントローラ。
JP2004224873A 2004-07-30 2004-07-30 ループコントローラ Expired - Fee Related JP4427734B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004224873A JP4427734B2 (ja) 2004-07-30 2004-07-30 ループコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004224873A JP4427734B2 (ja) 2004-07-30 2004-07-30 ループコントローラ

Publications (2)

Publication Number Publication Date
JP2006048184A JP2006048184A (ja) 2006-02-16
JP4427734B2 true JP4427734B2 (ja) 2010-03-10

Family

ID=36026684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004224873A Expired - Fee Related JP4427734B2 (ja) 2004-07-30 2004-07-30 ループコントローラ

Country Status (1)

Country Link
JP (1) JP4427734B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8005553B2 (en) * 2006-09-29 2011-08-23 Fisher-Rosemount Systems, Inc. Automatic configuration of synchronous block execution for control modules run in fieldbus networks
JP5696873B2 (ja) * 2010-04-27 2015-04-08 横河電機株式会社 プログラム調節計
WO2018087910A1 (ja) * 2016-11-14 2018-05-17 理化工業株式会社 状態制御装置、状態制御方法及び状態制御装置に用いられるマスターコントローラ

Also Published As

Publication number Publication date
JP2006048184A (ja) 2006-02-16

Similar Documents

Publication Publication Date Title
JP4807475B1 (ja) 演算ユニット、出力制御方法、およびプログラム
US9753447B2 (en) Control unit, output control method and program
CN103562807B (zh) Plc的cpu单元、plc系统、plc辅助装置
JP6433635B1 (ja) シミュレーション装置およびシミュレーション方法
US8706262B2 (en) CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
WO2012124133A1 (ja) Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
US20140088767A1 (en) Computation unit, output control method, and program
EP3076293A2 (en) Control apparatus
US20140005805A1 (en) Cpu of plc, system program for plc, and recording medium storing system program for plc
US10180674B2 (en) Controller and control system
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
US20160291556A1 (en) Controller
JP2016110458A (ja) プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
US11287793B2 (en) Control device, control method for control device, information processing program, and recording medium
JP4427734B2 (ja) ループコントローラ
JP2009181443A (ja) 産業用コントローラ用機器
EP3196718A1 (en) Embedded emulation modules in industrial control devices
US20180059649A1 (en) Simulator linkage device, control method of simulator linkage device, information processing program and recording medium
JP2003131709A (ja) 制御表示装置、制御プログラムおよびそれを記録した記録媒体
JP2012194955A (ja) 支援装置、表示制御方法、およびプログラム
JP4905782B2 (ja) プラント制御システム、プラント制御方法およびプラント制御のためのプログラム
JP6394014B2 (ja) 制御システム及びプログラム部品
JPH11184509A (ja) 制御システムおよび制御方法
JPH10133734A (ja) 離散系シミュレータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091019

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

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

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

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4427734

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees