JP4345200B2 - プログラマブルコントローラのi/oユニット - Google Patents
プログラマブルコントローラのi/oユニット Download PDFInfo
- Publication number
- JP4345200B2 JP4345200B2 JP2000194707A JP2000194707A JP4345200B2 JP 4345200 B2 JP4345200 B2 JP 4345200B2 JP 2000194707 A JP2000194707 A JP 2000194707A JP 2000194707 A JP2000194707 A JP 2000194707A JP 4345200 B2 JP4345200 B2 JP 4345200B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- timer
- unit
- time
- user program
- 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
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
この発明は、プログラマブルコントローラのI/Oユニットに関し、詳しくは、I/Oユニットにプログラミング機能を搭載することにより、高精度なタイマ出力機能を具備するようにしたものである。
【0002】
【従来の技術】
従来、プログラマブルコントローラ(プログラマブルロジックコントローラ)システムにおいては、CPUユニット、I/Oユニット(入出力ユニット)等のユニットがビルディングブロックタイプに配列されてシステムが構築されている(いわゆる集合ユニット型)。
【0003】
CPUユニットは、I/Oユニット等からの入力信号(接点情報)に基づいてユーザプログラムの演算実行を行ない、実行結果をI/Oユニットに出力する等の処理を行なうとともにプログラマブルコントローラシステム全体を統括制御する。
【0004】
また、I/Oユニットは直接プログラマブルコントローラシステムにおける制御対象機器が接続されるユニットで、制御対象機器からの入力信号をCPUユニットに送出するとともに、CPUユニットからの出力信号を受信して制御対象機器に送出する。
【0005】
ここで、プログラマブルコントローラシステムにおいてタイマ機能を実現する場合、以下の実現方法がある。
(a)CPUユニットにおいて、ラダープログラムでタイマ命令とOUT命令にてプログラムで実現する方法。
(b)I/Oユニット(高機能I/Oユニット)において、タイマ機能を動作モードとして組み込み、所定条件の下でI/Oユニットにより指定された時間だけ出力する方法。
【0006】
なお、高機能I/Oユニットというのは、CPUユニットの負荷軽減、スキャンタイムの短縮等を目的として従来のI/Oユニットに新機能を付加したI/Oユニットである。
【0007】
ここで、上記(a)のCPUユニットのラダープログラムによるタイマ機能を図11を参照しながら説明すると、
(1)のサイクリック処理における出力開始の条件成立よりタイマ命令を起動し、
これによって(2)でタイマをセットし、
(3)で出力開始条件成立より出力命令が実行され、IORF(IOリフレッシュ)命令にて外部に出力される。
【0008】
次に、(4)でサイクリック処理においてタイムアップが検出されると、リセット命令を実行し、
(5)で該実行結果をIORF(IOリフレッシュ)命令にて外部に出力する((4)でタイムアップが検出されると続いて外部に出力する。すなわち、ユーザプログラムの一巡実行の後のENDリフレッシュ時に外部出力するのではない。)。
【0009】
図12は、上記図11の処理をタイムチャートで表したもので、
(1)で出力開始指令が時刻t1にあると、
(2)でタイマが時刻t2にカウント割込みを開始し、以後は、割込み、サイクリックセンスなどで出力がOFFになる時刻t4までカウント割込みを行い、
(3)の外部出力は、時刻t3より開始されて、時刻t5に出力OFFとなる。
【0010】
なお、図12において、出力開始指令時刻t1に対する外部出力開始時刻t3の遅れ時間D1は外部出力するまでのオーバーヘッドであり、タイマ割込みのOFF時刻t4に対する外部出力OFF時刻t5の遅れ時間D2は出力OFFするまでのオーバーヘッドである。
【0011】
なお、出力開始指令時刻t1に対する外部出力開始時刻t3の遅れ時間D1は、図11における(1)の出力開始指令がサイクリック処理にて行われること、及び図11における(3)の外部出力までに(1)、(2)の2命令が挿入されていることに起因する。
【0012】
また、タイマ割込みのOFF時刻t4に対する外部出力OFF時刻t5の遅れ時間D2は、タイムアップがサイクリック処理にて検出されること等に起因する。
【0013】
【発明が解決しようとする課題】
しかしながら、上記の如き従来のCPUユニット及びI/Oユニット(高機能I/Oユニット)のタイマ機能には、以下の問題点があった。
【0014】
まず、上記(a)のCPUユニットでタイマ機能を実現する場合。
【0015】
(イ)タイマ命令自体がラダープログラムにおけるサイクリック処理の中で、カウント、カウントアップされるため、サイクルタイムの変動などによりバラツキが生じ、指定時間に対する誤差が大きい。
【0016】
図11では、(1)のサイクリック処理でタイマ命令が起動され、(4)のサイクリック処理でタイムアップが検出されている。このように、サイクリックに命令内でカウント動作されるため時間精度としてはよくない。
【0017】
(ロ)また、図11では、(3)で出力開始条件成立より出力命令が実行され、IORF(IOリフレッシュ)命令にて外部に出力されるが、その前の(1),(2)の2命令処理分のオーバーヘッドが出力開始までに発生する。また、IORF(IOリフレッシュ)命令を使用しないと、ENDRF(ENDリフレッシュ)にて外部出力となるため、さらにオーバーヘッドは大きくなる。
【0018】
このように、タイマ命令とOUT命令が別々に動作するため、出力操作するまでのオーバーヘッド時間が大きい。
【0019】
(ハ)また、タイマ精度を上げるために、カウント、カウントアップ処理を割込みで実施した場合、システムとして割込みが発生するため、あまり短い時間間隔での割込みは利用できず、そのため精度も上げられない。
【0020】
次に、上記(b)のI/Oユニットでタイマ機能を実現する場合。
【0021】
(イ)ハードウェアにてタイマ出力精度を確保したとしても、従来の高機能I/Oユニットでは、タイマ出力は特定動作を想定した動作モードとして組み込んであるため、動作モードに自由度がなく、設定した用途以外には利用できない。つまり、I/Oユニットにはじめから内蔵されているものである。
【0022】
また、ハードウェアのみの構成とすると、時間設定の自由度も低い。
【0023】
(ロ)特定の出力開始指令に基づいてタイマのカウント割込みを開始し、外部出力を得るので、タイマ動作と出力動作が結合し、上記CPUユニットに比べて精度は上がる。しかし、内部タイマの割込みを使用するためソフト処理となり、割込み禁止処理などと競合した場合、精度が保てないケースが生じる。
【0024】
そこで、この発明は、特定の動作モードを固定的に持たせることなく、タイマ出力命令とタイマ出力専用のハードウェアを組み合わせることにより、ユーザにおいて任意の条件、タイミングでタイマ出力できるようにしたプログラマブルコントローラのI/Oユニットを提供することを目的とする。
【0025】
【課題を解決するための手段】
上記目的を達成するために、この発明に係わるプログラマブルコントローラのI/Oユニットは、外部でプログラミングされたユーザプログラムの入出力部と、上記入出力部から取り込んだユーザプログラムが格納される書き換え可能なプログラムメモリと、上記ユーザプログラムから参照可能な変数メモリと、上記プログラムメモリに格納されたユーザプログラムを実行するユーザプログラム実行手段と、パルスジェネレータと、ハードカウンタと、タイマ時間計測手段とを備えてなり、プログラマブルコントローラによって制御される制御対象機器が接続されるI/Oユニットであって、上記ユーザプログラムは、上記パルスジェネレータに設定されるパルスのクロック周波数、及び、上記ハードカウンタに対する動作指令として“起動”又は“停止”を記述したタイマ出力命令を含み、上記パルスジェネレータは、上記ユーザプログラム実行手段が上記ユーザプログラム中のタイマ出力命令を実行することによって、上記ユーザプログラム中のタイマ出力命令に記述されているクロック周波数が設定され、設定されたクロック周波数のパルスを上記ハードカウンタに出力し、上記ハードカウンタは、上記ユーザプログラム実行手段が上記ユーザプログラム中のタイマ出力命令を実行することによって、上記ユーザプログラム中のタイマ出力命令に記述されている動作指令が“起動”であるなら、上記パルスジェネレータから出力されるパルスのカウントを開始する一方、その動作指令が“停止”であるなら、そのカウント動作を停止し、上記タイマ時間計測手段は、上記ハードカウンタにおけるパルスのカウント開始時からカウント停止時までの間に当該ハードカウンタがカウントしたパルスのカウント数と、上記タイマ出力命令に記述されている当該パルスのクロック周波数とから、上記パルスのカウント開始時からカウント停止時までの時間をタイマ時間として求め、求めたタイマ時間を前記変数メモリに格納することを特徴とする。
【0026】
ここで、プログラマブルコントローラのI/Oユニットとはプログラマブルコントローラシステムを構成するユニットの1つであり、多数の制御対象機器が接続されるものであるが、この発明では、I/Oユニットはタイマ出力命令を実行し、高精度で自由度の高いタイマ機能を実現する。
【0027】
次に、ユーザプログラムの入出力部とは、ツールとの通信を行う部分で、実施形態では図1に示したプログラム入出力部21である。図1において、プログラム入出力部21はI/Oユニット20の正面に設けられているが、取り付け位置や形態は実施形態に限定されない。この入出力部によって、ユーザがプログラミングするときに用いるプログラム開発用ツールと直接接続でき、プログラムをツールへアップロード、ツールからダウンロードすることができる。
【0028】
また、上記入出力部から取り込んだユーザプログラムが格納される書き換え可能なプログラムメモリとは、実施形態では、図2に示すPRGメモリ27である。なお、このメモリは実施形態のように独立した専用のメモリを設けても良いが、他のメモリと兼用してもよい。
【0029】
なお、I/Oユニットのプログラムを変更するときは、ツールからプログラムを全て上記入出力部を介して再びダウンロードしてPRGメモリ27の任意のエリアに格納すればよい。また、上書き保存してもよい。
【0030】
また、オンラインエディットで一部を変更するときなどは、PRGメモリ27から一部をツールにアップロードし、ツールにて表示し(例えば)、ユーザがツールで一部変更してから再度PRGメモリ27に送るようにすればよい。
【0031】
また、上記メモリに格納されたユーザプログラムを実行するユーザプログラム実行手段とは、図2及び図3に示すCPU25である。
【0032】
こうして、本発明では、ユーザはI/Oユニットに後付けでプログラミングされたユーザプログラムを組み込むことができる。
【0033】
すなわち、I/Oユニットに取り込まれ実行されるプログラムは、ユーザがI/Oユニットで実行させたいプログラムでユーザが別途作成するカスタマイズされたプログラムである。このプログラムは、プログラマブルコントローラシステムのCPUユニットでなされる処理プログラム(システムプログラムやユーザプログラム)とは独立した別のもので、I/Oユニット向けで独自のI/O制御ロジックや任意の演算処理などを行うプログラムである。外部ツールを用いて作成されるプログラムで、ユーザが新規作成、又は書き換え(変更又は追加)でき、ユーザが自由にプログラミングできるものである。
【0034】
また、上記パルスジェネレータとは、実施形態では図3に示すパルスジェネレータ33である。パルスジェネレータは、タイマ出力命令によって出力パルスの周波数を可変設定できる。パルス周波数を大きくするとタイマ精度が上昇し、パルス周波数を小さくするとタイマ時間を長くすることができる。
【0035】
従って、タイマ出力目的によってパルス周波数を可変設定でき、自由度の高いタイマ出力を実現できる。
【0036】
また、タイマ出力命令によって出力パルスの周波数を可変設定できるので、ユーザは簡単に出力パルスの周波数を可変設定できる。
【0037】
上記ハードカウンタとは、実施形態では、図3に示すハードカウンタ35である。
【0038】
ハードカウンタは、上記タイマ出力命令によって上記出力パルス数を可変設定できる。
【0039】
従って、タイマ出力目的によって出力パルス数を可変設定でき、しかも、タイマ出力命令によって出力パルス数を可変設定できるので、ユーザは簡単にタイマ値を可変設定できる。
【0040】
なお、タイマ出力命令とは、実施形態では図5に示す時間指定付き出力命令70がタイマ出力命令であり、時間生成の元となる上記パルスジェネレータ33にクロック周波数72を設定することによって出力パルスの周波数を可変設定でき、ハードカウンタ35にクロックカウント数73を設定することによってタイマ値を可変設定できる。
【0041】
なお、実施形態では、図3に示す如く、パルスジェネレータ33とハードカウンタ35はタイマ出力回路31を構成し、図2に示す如く、複数のタイマ出力回路31はタイマ出力回路部(ボード部)23に搭載されている。
【0042】
従って、I/Oユニットはユニット本体内のソフトウェア機能とボード部のハードウェア機能の組み合わせによって任意の条件、タイミングでタイマ出力命令を実行でき、自由度の高いタイマ機能を実現できる。
【0043】
また、パルスジェネレータとハードカウンタはいずれもハードウェアである。
【0044】
従って、タイマ出力命令があると、以後はソフトウェア処理を介することなくハードウェア処理だけで出力制御ができ、従来のようにI/Oユニットに割込みによる影響を与えることなく、高精度のタイマ機能を実現できる。
【0061】
上記タイマ時間計測手段とは、ハードカウンタのON時間を計測する構成をいう。実施形態では、図7においては、時刻t1に起動入力があり、時刻t2に停止入力がある。この場合、ハードカウンタ35は時刻t1にタイマ起動命令によりタイマ起動され、時刻t2にタイマ停止命令により停止されている。従って、タイマ時間計測手段は、外部出力がONとなっている時刻t1〜t2までの時間を計測する。この値は現在値として保持される。
【0062】
これにより、ユーザは、簡単にタイマの動作時間を計測できることになる。
【0070】
以上の説明では、I/Oユニットにタイマ機能を実現するボードを設けるようにしたが、1つのプログラマブルコントローラユニットでCPU機能とI/O機能を実現する場合はそのプログラマブルコントローラユニットにタイマ機能を実現するボードを設けることができる。この場合は、I/Oユニットに代えてプログラマブルコントローラユニットにパソコン10で開発されたプログラムがダウンロードされる。
【0071】
【発明の実施の形態】
以下、この発明に係わるプログラマブルコントローラのI/Oユニット及びプログラマブルコントローラの実施の形態を添付図面を参照して詳細に説明する。
【0072】
図1は、本実施形態に係わるI/Oユニットに搭載されるユニットプログラムの開発環境の概要を示す概略ブロック図である。
【0073】
図1において、10はI/Oユニット(高機能I/Oユニット)20に搭載されるユニットプログラムの開発ツールとしてのパソコンで、オンライン、オフラインでプログラムを開発する。
【0074】
パソコン10で開発されたプログラムはシリアルI/Fを使ってI/Oユニット20にダウンロードされるが、そのために、I/Oユニット20はダウンロード用のプログラム入出力部21を有し、パソコン10で開発されたプログラムはプログラム入出力部21を介してI/Oユニット20にダウンロードされる。
【0075】
なお、I/Oユニット20の表面には、プログラム入出力部21の他に、制御対象となる入出力機器が接続される汎用デジタル入出力部22と、タイマ機能を実現するために内部に実装されたボード(図示せず)の制御対象となる入出力機器が接続される入出力部23aが設けられている。
【0076】
なお、図1において、60はビルディングブロックタイプのプログラマブルコントローラシステムで、CPUユニット40と2つのI/Oユニット20−1,20−2を具備している。そこで、パソコン10で開発されたプログラムはCPUユニット40を介してI/Oユニット20−1(I/Oユニット20)に転送するよう構成することもできる。この場合、パソコン10で開発されたプログラムは、CPUユニット40の通信ポート41,プログラマブルコントローラシステムの専用バス61を介してI/Oユニット20−1にダウンロードされる。
【0077】
なお、図1では、I/Oユニット20にタイマ機能を実現するボードを設けるようにしたが、1つのプログラマブルコントローラユニットでCPU機能とI/O機能を実現する場合はそのプログラマブルコントローラユニットにタイマ機能を実現するボードを設けることができる。この場合は、I/Oユニット20に代えてプログラマブルコントローラユニットにパソコン10で開発されたプログラムがダウンロードされる。
【0078】
なお、以下の説明では、I/Oユニット20にタイマ機能を実現するボードを設ける場合について説明する。
【0079】
図2は、図1に示したI/Oユニット20の電気的な構成を示すブロック図である。
【0080】
図2において、I/Oユニット20は、プログラム実行部30とタイマ出力回路部(ボード部)23より構成され、プログラム実行部30は汎用デジタル入出力部22、バスI/F用デバイス24、CPU25、ROM26、PRGメモリ27、変数メモリ28を具備し、タイマ出力回路部23は複数のタイマ出力回路31−1、31−2、……、31−nを具備している。
【0081】
ここで、汎用デジタル入出力部22は、プログラマブルコントローラシステムにおける制御対象機器が接続されるもので、複数の入力接点、出力接点より構成されている。
【0082】
バスI/F用デバイス24は、プログラマブルコントローラシステム60の専用バス61に接続され、バス61とのインタフェースをとるものである。
【0083】
CPU25は、I/Oユニット20全体を統括制御するとともに、本実施形態では特に、図1に示したパソコン10でプログラミングされたユーザプログラムに基づいて、タイマ出力回路部23に搭載されたタイマ出力回路31−1、31−2、……、31−nの制御を行う。
【0084】
ROM26は、CPU25で実行されるシステムプログラムが格納されるものである。
【0085】
PRG(プログラム)メモリ27は、パソコン10でプログラミングされたユーザプログラムがダウンロードされるメモリである。
【0086】
変数メモリ28は、CPU25によってタイマ出力回路31−1、31−2、……、31−nの制御が行われる場合、さまざまな制御データが格納されるものである。
【0087】
タイマ出力回路部23はタイマ機能が実現されるボードで、本実施形態では、複数のタイマ出力回路31−1、31−2、……、31−nを具備し、それぞれの回路から任意の条件、タイミングで高精度のタイマ出力を外部に出力できるよう構成されている。
【0088】
図3は、図2に示したタイマ出力回路31(タイマ出力回路31−1、31−2、……、31−nをタイマ出力回路31で代表する)の1つとCPU25の詳細を示すブロック図である。
【0089】
図3において、タイマ出力回路31は、クロック発生器32、パルスジェネレータ33、ハードカウンタ35、AND回路36より構成されている。
【0090】
ここで、クロック発生器32は、正確にタイミングをとったクロックを発生するものである。
【0091】
パルスジェネレータ33は、クロック発生器32の出力に基づいて時間を生成するための元となるクロックを発振するもので、発振クロックの周波数(クロックレート)は任意に設定できるよう構成されている。
【0092】
ハードカウンタ35は、パルスジェネレータ33から出力されるパルスを計数するもので、後述するようにタイマ出力命令起動時にタイマ時間がプリセットされ、同時にハードカウンタ35からはAND回路36をONするためのカウントアップ信号がAND回路36に対して出力される。
【0093】
なお、後述するように、ハードカウンタ35は一定時間を計測するタイマ機能だけでなく、タイマONからの経過時間を計測する計測モードでの使用もできる。
【0094】
AND回路36はハードカウンタ35からのカウントアップ信号とCPU25からの汎用出力があるとONされる出力ゲート回路である。
【0095】
CPU25は、タイマ出力命令起動時に、パルスジェネレータ33におけるクロック周波数の設定と、ハードカウンタ35におけるクロックカウント数のプリセットを行い、同時に、汎用ポート25aからAND回路36に対する汎用信号の出力を開始する。これによって、タイマ出力命令起動時、AND回路36に対してCPU25からは汎用信号、ハードカウンタ35からはカウントアップ信号が出力されるので、AND回路36はONとなる。
【0096】
図4は、図3に示したハードカウンタ35、AND回路36とCPU25の動作を示すタイムチャートである。
【0097】
図4において、時刻t1にタイマ命令が起動されると、(1)に示す如く、ハードカウンタ35にプリセット値、すなわちタイマ時間Tが設定される。
【0098】
これによって、ハードカウンタ35は(2)に示す如く、タイマとして起動され、同時に(3)に示す如く、AND回路36に対してタイマ時間Tの間カウントアップ信号を出力する。
【0099】
また、同時に、(4)に示す如く、CPU25の汎用ポート25aからは、AND回路36に対して汎用信号を出力する。
【0100】
これによって、(5)に示す如く、AND回路36では、ハードカウンタ35からのカウントアップ信号とCPU25からの汎用信号のANDがとられ、タイマ時間Tが終了する時刻t2までAND回路36はONとなる。
【0101】
図5には、図3及び図4でCPU25で実行された時間指定付き出力命令(タイマ出力命令)が示されている。図5に示した時間指定付き出力命令70は、所定の出力開始の条件成立で起動される応用命令で、図3に示したAND回路36(図2に示す如く、タイマ出力回路31は複数あるのでAND回路36も複数ある)の出力先端子番号71、時間生成の元となるパルスジェネレータ33に設定されるクロック周波数72、出力時間を決定するためのハードカウンタ35に設定されるクロックカウント数73がそれぞれ設定される。
【0102】
これによって、各タイマ出力回路31からは、設定された出力先に、設定されたクロック周波数で、設定されたカウント数のタイマ出力が行われることになる。
【0103】
なお、上記パルスジェネレータ33に設定されるクロック周波数72は固定とし、上記クロックカウント数73の代わりに出力時間を設定することもできる。
【0104】
このように、本実施形態では、
(1)パソコン10からI/Oユニット20に対して、ユーザがI/O制御ロジック、演算処理のためのプログラムを入力する機能と、
(2)特定の出力先を指定して任意の出力時間を指定できる時間指定付き出力命令70と、
(3)周波数が変更可能なパルスジェネレータ33と、
(4)CPU25からのタイマ出力命令に基づいてタイマ時間が設定され、且つAND回路36に対してカウントアップ信号を出力するハードカウンタ35と、
(5)ハードカウンタ35からのカウントアップ出力とCPU25からの汎用出力があると、所定の外部端子にタイマ出力するAND回路36と、
を具備するようにしたので、以下の効果を奏する。
【0105】
(1)I/Oユニット20のプログラミング機能を利用し、任意の条件、タイミングでタイマ出力命令を実行できるので、高精度且つ自由度の高いタイマ出力を得ることができる。
(2)タイマ機能として、周波数が変更可能なパルスジェネレータ33を利用するため、実現できる時間範囲、精度範囲が広い。
(3)指定時間の計測はタイマ出力命令実行後はパルスジェネレータ33、ハードカウンタ35及びAND回路36で行い、いずれもハードウェアにて行う。つまり、タイマ出力命令実行後はソフトウェア処理を介さない。従って、I/Oユニツト20に対して割込みによる影響を与えることなく、高精度なタイマ制御を実行できる。
【0106】
ところで、図5では、時間指定付き出力命令(タイマ出力命令)70で所定時間の計測をするようにしたが、次に、ハードカウンタ35を利用してタイマの起動及び停止を実現する場合について図6を参照して説明する。
【0107】
図6に示したタイマ起動/停止命令(タイマ起動命令)80は、所定の起動または停止の条件成立で起動される応用命令で、タイマ番号(ハードカウンタ35の番号)81、時間生成の元となるパルスジェネレータ33に設定されるクロック周波数82、起動または停止の動作指令83が設定される。
【0108】
これによって、タイマ番号81で設定されたハードカウンタ35からは、クロック周波数82で設定されたクロック周波数で、動作指令83で設定された動作モードでタイマ動作が行われることになる。
【0109】
例えば、所定の入力条件がタイマ動作の開始を指示するものであると(動作指令83が起動の場合)、タイマ動作を開始し、入力条件がタイマ動作の停止を指示するものであると(動作指令83が停止の場合)、タイマ動作を停止する。
【0110】
これによって、本発明では、タイマ起動/停止命令によってタイマ起動、タイマ停止を実行でき、ユーザが簡単にタイマの起動、停止を設定できる。
【0111】
ところで、図6では、タイマ起動/停止命令(タイマ起動命令)80によってハードカウンタ35からタイマ起動またはタイマ停止を得られるようにしたが、次に、このタイマ起動/停止命令80によって、ハードカウンタ35が起動してから停止するまでの時間を計測できるようにした場合について、図7を参照しながら説明する。
【0112】
図7は、(1)の起動入力が時刻t1にあり、(2)の停止入力が時刻t2にあった場合である。
【0113】
この場合、(3)において、ハードカウンタ35は時刻t1にタイマ起動され、時刻t2に停止されている。
【0114】
これによって、(4)において、タイマ(ハードカウンタ)は時刻t1〜t2まで計測中とされ、タイマ停止後は起動から停止までの時間(現在値)を保持することができる。
【0115】
このように、図7では、あるカウンタ(タイマ出力回路31)を起動してから停止するまでの時間を計測することができる。しかも、この場合、図6に示す如く、パルスジェネレータ33に設定されるクロック周波数82を可変設定することができる。従って、精度の高い時間計測や計測時間幅を用途に応じて設定することができる。
【0116】
また、(4)で計測中のハードカウンタ35の値は変数メモリ28に常時反映させ、モニタすることもできる。
【0117】
次に、ハードカウンタ35を計測モードで使用した場合の他の例を図8を参照しながら説明する。
【0118】
図8で、ハードカウンタ35は時刻0(00000000)から時刻FFFFFFFFまでフリーランカウンタとしてタイマ動作をしている。
【0119】
ここで、ユーザはフリーランカウンタとして動作しているタイマに対してプログラムにて任意の経過時間帯域を出力領域として設定することができる。例えば図8では、任意の経過時間帯域で設定値1から設定値5までの出力領域が設定されている。ここで、本実施形態では、現在のタイマ値はどの出力領域の経過時間帯域にあるかを検出できるようにする。
【0120】
例えば、タイマ現在値がt1〜t2の間にあるときは、タイマ現在値は設定値1と設定値4の経過時間帯域にある。従って、ハードカウンタ35のタイマ現在値がt1〜t2の間にあるとき、本実施形態では、経過時間が設定値1と設定値4の出力領域にあることがわかる。
【0121】
図9は、上記の如き出力領域を検出するためのテーブル比較命令である。テーブル比較命令90は、図8に示した各出力領域を登録する応用命令で、タイマ番号(ハードカウンタ35の番号)91、指定動作モード92、比較テーブルアドレス93より構成されている。
【0122】
ここで、タイマ番号(ハードカウンタ35の番号)91は、現在値をカウントするハードカウンタ35の番号である。
【0123】
指定動作モード92は、テーブル比較命令の動作モードで、例えば、図8に示すように、出力領域がある幅をもって設定されたときはその旨、また出力領域が点で設定されたときはその旨の動作モードが指定される。
【0124】
比較テーブルアドレス93は、図10に示す比較デーブル100における各設定値の設定アドレスである。
【0125】
図10には、上記比較テーブル100が示されている。図10では、16の出力領域について、出力領域検出のための比較値が登録されている。
【0126】
なお、図8に示した各出力領域は、その下限値(開始時刻)及び上限値(終了時刻)で定義されており、それぞれの値は8桁で登録される。
【0127】
そこで、比較テーブル100には、比較の個数欄101(本実施形態では16)と、各出力領域を特定するための
(1)下限値下位4桁と上位4桁(これによって下限値の8桁が特定できる)
(2)上限値下位4桁と上位4桁(これによって上限値の8桁が特定できる)
(3)出力領域の出力パターン
が登録される。
【0128】
従って、比較テーブル100では、設定値1を登録するために、
(1)設定値1下限値下位4桁110−1aと、
(2)設定値1下限値上位4桁110−1bと、
(3)設定値1上限値下位4桁110−1cと、
(4)設定値1上限値上位4桁110−1dと、
(5)設定値1出力パターン110−1eと、
が登録される。
【0129】
設定値2以下も同様であり、設定値16を登録するために、
(1)設定値16下限値下位4桁110−16aと、
(2)設定値16下限値上位4桁110−16bと、
(3)設定値16上限値下位4桁110−16cと、
(4)設定値16上限値上位4桁110−16dと、
(5)設定値16出力パターン110−16eと、
が登録される。
【0130】
ここで、図9に示すテーブル比較命令90が実行されると、
(1)タイマ番号(ハードカウンタ35の番号)91で指定されるハードカウンタ35のタイマ現在値
(2)図10の比較テーブル100に設定された各出力領域の設定情報
に基づいて、現在のタイマ値が検索対象となった出力領域にあるか否か判別される。
【0131】
比較結果は、変数メモリ28に命令実行毎に出力される。
【0132】
ここで、現在のタイマ値が検索対象となった出力領域にあると判別された場合は、その出力領域の出力パターンが出力される。例えば、各出力領域の出力パターンが特定のビットパターンで出力されるとすると、検出された出力領域のビットパターンが出力される。
【0133】
【発明の効果】
以上説明したように、この発明によれば、外部で組まれたユーザプログラムの入出力部と、上記入出力部から取り込んだユーザプログラムが格納される書き換え可能なメモリと、上記メモリに格納されたユーザプログラムを実行するユーザプログラム実行手段と、上記ユーザプログラムにおけるタイマ出力命令によって所定周波数のパルスを出力するパルスジェネレータと、上記パルスジェネレータの出力パルス数をカウントするハードカウンタと、を有し、上記プログラミングされたユーザプログラムにおけるタイマ出力命令によって任意の条件またはタイミングでタイマ出力命令を実行するようにした。
【0134】
従って、本発明では以下の効果を奏する。
(1)タイマ出力目的によってパルス周波数を可変設定でき、自由度の高いタイマ出力を実現できる。また、タイマ出力命令によって出力パルスの周波数を可変設定できるので、ユーザは簡単に出力パルスの周波数を可変設定できる。
(2)タイマ出力目的によって出力パルス数を可変設定でき、しかも、タイマ出力命令によって出力パルス数を可変設定できるので、ユーザは簡単にタイマ値を可変設定できる。
(3)パルスジェネレータとハードカウンタはいずれもハードウェアである。従って、タイマ出力命令があると、以後はソフトウェア処理を介することなくハードウェア処理だけで出力制御ができ、従来のようにI/Oユニットに割込みによる影響を与えることなく、高精度のタイマ機能を実現できる。
【図面の簡単な説明】
【図1】この発明が適用されたI/Oユニットに搭載されるユニットプログラムの開発環境の概要を示す概略ブロック図。
【図2】図2に示したI/Oユニット20の詳細を示すブロック図。
【図3】図2に示したタイマ出力回路31とCPU25の詳細を示すブロック図。
【図4】図3に示したハードカウンタ35、AND回路36及びCPU25の動作を示すタイムチャート。
【図5】図3及び図4でCPU25で実行された時間指定付き出力命令の説明図。
【図6】ハードカウンタ35を利用してタイマの起動及び停止を実現する場合の説明図。
【図7】タイマ起動/停止命令によって、ハードカウンタ35が起動してから停止するまでの時間を計測できるようにした場合の説明図。
【図8】ハードカウンタ35を計測モードで使用した場合の他の例を示す説明図。
【図9】現在のタイマ値はどの設定値の設定範囲にあるかを検出できるようにするためのテーブル比較命令の説明図。
【図10】図9のテーブル比較命令で使用される比較テーブルの説明図。
【図11】従来のプログラマブルコントローラシステムで、CPUユニットにおいて、ラダープログラムでタイマ命令とOUT命令にてタイマ命令を実現する場合の説明図。
【図12】図11の処理手順を示すタイムチャート。
【符号の説明】
10 パソコン
20、20−1、20−2 I/Oユニット(高機能I/Oユニット)
21 プログラム入出力部
22 汎用デジタル入出力部
23a ボード挿入口
23 タイマ出力回路部
24 バスI/F用デバイス(共有メモリ)
25 CPU
26 ROM
27 PRGメモリ
30 プログラム実行部
31 タイマ出力回路
60 プログラマブルコントローラシステム
61 専用バス
70 時間指定付き出力命令
71 出力先端子番号
72 クロック周波数
73 クロックカウント数
80 タイマ起動/停止命令
81 タイマ番号
82 クロック周波数
83 起動または停止の動作指令
90 比較命令
91 タイマ番号
92 指定動作モード
93 比較テーブルアドレス
Claims (1)
- 外部でプログラミングされたユーザプログラムの入出力部と、上記入出力部から取り込んだユーザプログラムが格納される書き換え可能なプログラムメモリと、上記ユーザプログラムから参照可能な変数メモリと、上記プログラムメモリに格納されたユーザプログラムを実行するユーザプログラム実行手段と、パルスジェネレータと、ハードカウンタと、タイマ時間計測手段とを備えてなり、プログラマブルコントローラによって制御される制御対象機器が接続されるI/Oユニットであって、
上記ユーザプログラムは、
上記パルスジェネレータに設定されるパルスのクロック周波数、及び、上記ハードカウンタに対する動作指令として“起動”又は“停止”を記述したタイマ出力命令を含み、
上記パルスジェネレータは、
上記ユーザプログラム実行手段が上記ユーザプログラム中のタイマ出力命令を実行することによって、上記ユーザプログラム中のタイマ出力命令に記述されているクロック周波数が設定され、設定されたクロック周波数のパルスを上記ハードカウンタに出力し、
上記ハードカウンタは、
上記ユーザプログラム実行手段が上記ユーザプログラム中のタイマ出力命令を実行することによって、上記ユーザプログラム中のタイマ出力命令に記述されている動作指令が“起動”であるなら、上記パルスジェネレータから出力されるパルスのカウントを開始する一方、その動作指令が“停止”であるなら、そのカウント動作を停止し、
上記タイマ時間計測手段は、
上記ハードカウンタにおけるパルスのカウント開始時からカウント停止時までの間に当該ハードカウンタがカウントしたパルスのカウント数と、上記タイマ出力命令に記述されている当該パルスのクロック周波数とから、上記パルスのカウント開始時からカウント停止時までの時間をタイマ時間として求め、求めたタイマ時間を前記変数メモリに格納する
ことを特徴とするプログラマブルコントローラのI/Oユニット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000194707A JP4345200B2 (ja) | 2000-06-28 | 2000-06-28 | プログラマブルコントローラのi/oユニット |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000194707A JP4345200B2 (ja) | 2000-06-28 | 2000-06-28 | プログラマブルコントローラのi/oユニット |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002014706A JP2002014706A (ja) | 2002-01-18 |
JP4345200B2 true JP4345200B2 (ja) | 2009-10-14 |
Family
ID=18693489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000194707A Expired - Fee Related JP4345200B2 (ja) | 2000-06-28 | 2000-06-28 | プログラマブルコントローラのi/oユニット |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4345200B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10175673B2 (en) | 2015-04-06 | 2019-01-08 | Mitsubishi Electric Corporation | Programmable controller system |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10088835B2 (en) | 2014-01-06 | 2018-10-02 | Mitsubishi Electric Corporation | FA-device-configuration-design supporting apparatus and program |
-
2000
- 2000-06-28 JP JP2000194707A patent/JP4345200B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10175673B2 (en) | 2015-04-06 | 2019-01-08 | Mitsubishi Electric Corporation | Programmable controller system |
Also Published As
Publication number | Publication date |
---|---|
JP2002014706A (ja) | 2002-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR890013550A (ko) | 신호컨디셔너 | |
JPH0589261A (ja) | マイクロコンピユータ | |
JP4345200B2 (ja) | プログラマブルコントローラのi/oユニット | |
KR960032138A (ko) | 마이크로 컴퓨터 | |
JP2770314B2 (ja) | マイクロコンピュータ | |
JP2000074962A (ja) | 周期計測装置および周期計測方法、並びに記録媒体 | |
JP7173833B2 (ja) | 半導体集積回路、及び、同半導体集積回路を備えた装置 | |
JP2002014707A (ja) | I/oユニット及びプログラマブルコントローラ | |
JP2906254B2 (ja) | プログラマブル・コントローラ | |
JPS61267858A (ja) | マイクロコンピユ−タ | |
JPH10255489A (ja) | マイクロコンピュータ | |
JP3158425B2 (ja) | マイクロコンピュータ | |
JP2631541B2 (ja) | プログラマブルコントローラ | |
US20230185329A1 (en) | Timer calibration method and electronic device | |
JP5620284B2 (ja) | 信号処理装置 | |
KR950013602B1 (ko) | 주파수 측정장치 | |
JP2002183110A (ja) | マイクロコンピュータ及びカウント処理方法 | |
JP2696811B2 (ja) | 電子式プリセツトカウンタ | |
JP2718402B2 (ja) | インサーキット・エミュレータ内蔵用の時間測定回路 | |
JP3985588B2 (ja) | 計数装置及び計数システム | |
JPH08184686A (ja) | パルス間隔計測装置 | |
JPH05100867A (ja) | マイクロコントローラ | |
JP2002278645A (ja) | 集積回路 | |
JPH08129057A (ja) | タイマ割込機能を持つシーケンス制御回路 | |
JPH02205962A (ja) | 入出力命令実行制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080328 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090430 |
|
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: 20090623 |
|
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: 20090706 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130724 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |