JP3742999B2 - Plcリモートi/oシステム - Google Patents
Plcリモートi/oシステム Download PDFInfo
- Publication number
- JP3742999B2 JP3742999B2 JP18866997A JP18866997A JP3742999B2 JP 3742999 B2 JP3742999 B2 JP 3742999B2 JP 18866997 A JP18866997 A JP 18866997A JP 18866997 A JP18866997 A JP 18866997A JP 3742999 B2 JP3742999 B2 JP 3742999B2
- Authority
- JP
- Japan
- Prior art keywords
- remote
- communication cycle
- time
- user program
- execution
- 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
【発明の属する技術分野】
この発明は、通信機能を有するPLCリモートI/Oシステムに関し、特に、リモートI/O通信サイクル実行中にユーザプログラムを実行し、リモートI/O通信サイクル休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムに関するものである。
【0002】
【従来の技術】
従来、この種のPLCリモートI/Oシステムにおいては、図14に示すように、プログラマブルコントローラ(以下PLCという)本体側60に備えたリモートI/O親局ユニット61とリモートIN子局62、リモートOUT子局63とを光ケーブル等の通信回線64で結び、リモートIN子局62にはスイッチ、センサ等の入力装置65が、リモートOUT子局63にはリレー、バルブ等の出力装置66がそれぞれ接続されている。また、リモートI/O親局61とPLC本体67との間はバックプレーンバス68により結ばれている。
【0003】
図15にその詳細を示したように、PLC本体側60のリモートI/O親局ユニット61は、MPU61−1、リモートI/O通信コントローラ(リモートI/O親局)61−2、バスI/F共有メモリ61−3を有し、PLC本体67は、MPU67−1、メモリ67−2、バスI/Fロジック67−3を有する。
【0004】
MPU67−1で実行されるユーザプログラム(以下、単にプログラムという)の実行結果はメモリ67−2に一旦格納され、バスI/Fロジック67−3、バックプレーンバス68を経てリモートI/O親局61のバスI/F共有メモリ61−3に格納され、リモートI/O通信コントローラ61−2によるリモートOUT通信サイクル実行により通信回線64経由でリモートOUT子局63、63に転送される。また、リモートIN子局62、62からの入力データは、リモートIN通信サイクル実行により通信回線64経由でリモートI/O親局ユニット61のバスI/F共有メモリ61−3に一旦格納され、MPU67−1で次のプログラムが起動される前に、そのプログラムのパラメータとしてバックプレーンバス68、バスI/Fロジック67−3を経てPLC本体のメモリ67−2に送られる。
【0005】
プログラムの実行結果はできるだけ早くリモートOUT子局63に送って出力装置を作動させること、および、リモートIN子局62からのデータは最新の入力データが次に実行するプログラムに供されることが、システムの応答性を良くするために必要である。このために、従来からプログラムの実行とリモートI/O通信サイクル(入力データ更新のためのリモートIN通信サイクルサイクルおよび出力データ更新のためのリモートOUT通信サイクル)との同期をとることが行なわれている。
【0006】
図16は、従来のPLCリモートI/Oシステムの第1の例を示し、プログラム実行(69)終了してI/Oリフレッシュフェーズ(70)に移った時に、プログラムの実行結果をリモートI/O親局ユニット61のOUT通信サイクル出力用領域にセットしてリモートI/O通信サイクル(71)を行ない、そのリモートI/O通信サイクル(71)直後に、通信サイクル実行により新たに格納された入力データのPLC本体67への転送を行なう(リモートI/Oデータリフレッシュ)(72)。
【0007】
図17は、従来のPLCリモートI/Oシステムの第2の例を示し、この場合は、プログラム実行(69)とリモートI/O通信サイクル(71)が並列に実行され、I/Oリフレッシュフェーズ(70)に入った後、リモートI/O通信サイクル(71)の終了を待って、リモートI/Oデータリフレッシュ(72)を実行する。プログラムの実行結果のセットもこのリモートI/Oデータリフレッシュ(72)で行なう。
【0008】
【発明が解決しようとする課題】
しかしながら、従来のPLCリモートI/Oシステムの上記第1の例では、プログラム実行(69)とリモートI/O通信サイクル(71)とリモートI/Oデータリフレッシュ(72)とがシリーズに実行されるため、MPU67−1には一PLCスキャン毎にリモートI/O通信サイクル(71)に相当する待ち時間73を生じ、I/Oの応答性が悪いという問題がある。
【0009】
従来のPLCリモートI/Oシステムの第2の例では、プログラム実行(69)とリモートI/O通信サイクル(71)とが並列に実行されてはいるが、I/Oの同期性をとるためにI/Oリフレッシュフェーズ(70)に入ってからリモートI/O通信サイクル(71)の終了を待ってリモートI/Oデータリフレッシュ(72)を実行しなければならない。従って、待ち時間74は少なくなく、やはりI/Oの応答性が悪いという問題がある。
【0010】
この発明は、従来における上述のような問題点に着目してなされたものであり、プログラム実行とリモートI/O通信サイクルとの同期を効率的にとり、I/Oの応答性を向上させたPLCリモートI/Oシステムを提供することを目的としている。
【0011】
【課題を解決するための手段】
上述の目的を達成するために、請求項1の発明は、リモートI/O通信サイクル実行中にユーザプログラムを実行し、リモートI/O通信サイクル休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、ユーザプログラム実行中のリモートI/O通信サイクルの繰り返し回数を設定する通信サイクル回数設定手段を有し、上記通信サイクル回数設定手段が、リモートI/O通信サイクルのサイクルタイムの100%未満の待ち時間許容値および空き時間許容値を設け、ユーザプログラムの実行終了後のリモートI/O通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間が上記待ち時間許容値以上の場合、ユーザプログラムの実行中のリモートI/O通信サイクルの繰り返し回数を減らすとともに、リモートI/O通信サイクル終了後のユーザプログラムの実行継続による空き時間が上記空き時間許容値以上の場合、ユーザプログラムの実行中のリモートI/O通信サイクルの繰り返し回数を増やすようにリモートI/O通信サイクルの繰り返し回数を設定することを特徴とする。
【0012】
本発明によれば、待ち時間、空き時間が減少してシステムのI/O効率が向上する。
【0016】
また、請求項2の発明は、上記リモートI/O通信サイクルのサイクルタイムの整数分の1を上記待ち時間許容値および空き時間許容値としたことを特徴とする。
【0017】
請求項1及び2の発明によれば、通信サイクル回数設定手段がプログラム実行時間を基に適正なリモートI/O通信サイクルの繰り返し回数を設定することにより、待ち時間、空き時間が減少し、システムのI/O効率が向上する。
【0018】
また、請求項3の発明は、請求項1記載の発明において、上記通信サイクル回数設定手段が、ユーザプログラムの実行時間の長短によりユーザプログラムを分類し、上記分類毎にリモートI/O通信サイクルの繰り返し回数を定め、ユーザプログラムが起動されるとき対応する分類のリモートI/O通信サイクルの繰り返し回数を選択するようにしたことを特徴とする。
【0019】
請求項3の発明によれば、プログラムによって実行時間のばらつきが大きい場合に、待ち時間、空き時間は減少する。
【0020】
請求項4の発明は、リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、上記通信サイクル起動時間設定手段が、ユーザプログラム終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間、または、リモートIN通信サイクル終了後のユーザプログラムの実行継続による空き時間を減少させるように、上記ユーザプログラムの実行時間に応じてリモートIN通信サイクルの起動時間を設定することを特徴とする。
【0021】
請求項4の発明によれば、リモートIN通信サイクルの起動時間の適正な設定により、待ち時間、空き時間が減少し、システムのI/O効率が上がる。
【0022】
請求項5の発明は、リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、上記通信サイクル起動時間設定手段が、ユーザプログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間がある場合、上記待ち時間分だけリモートIN通信サイクルの起動時間を早めるとともに、リモートIN通信サイクル終了後のユーザプログラムの実行継続による空き時間がある場合、上記空き時間分だけリモートIN通信サイクルの起動時間を遅らせるように、リモートIN通信サイクルの起動時間を設定することを特徴とする。
【0023】
請求項6の発明は、リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、上記通信サイクル起動時間設定手段が、ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を、ユーザプログラムの実行時間の平均値からリモートIN通信サイクルのサイクルタイム分減じた値に近い値になるように、リモートIN通信サイクルの起動時間を設定することを特徴とする。
【0024】
請求項7の発明は、リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、上記通信サイクル起動時間設定手段が、ユーザプログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間がある場合、上記待ち時間の100%以下の時間だけリモートIN通信サイクルの起動時間を早めるとともに、上記リモートIN通信サイクル終了後のユーザプログラムの実行継続による空き時間がある場合、上記空き時間の100%以下の時間だけリモートIN通信サイクルの起動時間を遅らせるように、リモートIN通信サイクルの起動時間をシフトさせて設定することを特徴とする。
【0025】
また、請求項8の発明は、請求項7の発明において、リモートIN通信サイクルのサイクルタイムの整数分の1を上記シフトの量としたことを特徴とする。
【0026】
請求項5〜8の発明によれば、通信サイクル起動時間設定手段がプログラム実行時間を基に適正なリモートIN通信サイクルの起動時間を設定することにより、待ち時間、空き時間が減少し、システムのI/O効率が向上する。
【0027】
また、請求項9の発明は、請求項4乃至7のいずれかに記載の発明において、上記通信サイクル起動時間設定手段が、ユーザプログラムの実行時間の長短によりユーザプログラムを分類し、上記分類毎にリモートIN通信サイクルの起動時間を定め、ユーザプログラムが起動されるとき対応する分類のリモートIN通信サイクルの起動時間を選択するようにしたことを特徴とする。
【0028】
請求項9の発明によれば、プログラムによって実行時間のばらつきが大きい場合に、待ち時間、空き時間は大幅に減少する。
【0029】
【発明の実施の形態】
以下に添付の図を参照してこの発明を実施の形態について詳細に説明する。
【0030】
図1はこの発明PLCリモートI/Oシステムの一実施の形態を示すブロック図である。
【0031】
図1において、このPLCリモートI/Oシステムは、前述した図15に示したシステムと異なり、リモートI/O親局(リモートI/O通信コントローラ)13がPLCと一体化されていて、このリモートI/O親局13と、PLC本体側10のMPU11とメモリ12とが互いに接続されて構成されている。
【0032】
MPU11においては、通信サイクル回数設定手段がプログラムの実行およびリモートI/Oデータリフレッシュ(PLCスキャン)。
【0033】
上記のプログラムの実行中、リモートI/O親局13ではリモートI/O通信サイクルを周期的に起動して通信回線を介してリモートI/O子局20との間でデータのやりとりを行なう。リモートI/O子局20は図では詳細を示していないがリモートIN子局とリモートOUT子局で構成されている点は、図14の従来例と同様である。メモリ12にはリモートI/O通信コントローラ13が得たリモートIN子局からのデータやMPU11でのプログラム実行結果が一時的に格納され、リモートI/Oデータリフレッシュの実行によって、リモートIN子局から得たデータはMPU11でのプログラム実行用領域に、プログラムの実行結果はリモートI/O親局13からのOUT通信サイクル出力用領域にそれぞれセットされる。
【0034】
そして、MPU11でのプログラム実行結果は、リモートOUT通信サイクルが起動されるとリモートI/O親局13から通信回線を介してリモートOUT子局に送られ、更に、リレー、バルブ等の出力装置に作動指令を送る。また、リモートIN通信サイクルが起動されるとリモートI/O親局13はリモートIN子局からデータを取り込んで、メモリ12に格納するのである。
【0035】
このリモートI/O通信サイクルとPLCスキャン(プログラム実行とリモートI/Oデータリフレッシュ)とは同期をとって行なうのであるが、同期のとり方を大別すると2種になる。ひとつは、後述する第1〜第3の実施の形態におけるような、プログラム実行中にリモートI/O通信サイクルが一定周期で繰り返し起動されるもので、この場合は、1PLCスキャンにおけるリモートI/O通信サイクルの繰り返し回数設定を行なう通信サイクル回数設定手段がMPU11に設けられる。他のひとつは、後述する第4〜第6の実施の形態におけるような、プログラム実行開始とともにリモートOUT通信サイクルが起動され、その後にリモートIN通信サイクルが起動されもので、この場合は、1PLCスキャンにおけるプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段がMPU11に設けられる。
【0036】
この発明のPLCリモートI/Oシステムの第1の実施の形態を図2に示す。
【0037】
図2において、PLCスキャンではプログラム実行A、I/Oリフレッシュフェーズa、プログラム実行B、I/Oリフレッシュフェーズb、プログラム実行C、I/Oリフレッシュフェーズc、‥‥‥‥ のようにプログラム実行とI/Oリフレッシュフェーズとを交互に行ない、プログラム実行と並行してリモートI/O通信サイクル30が実行される。I/OリフレッシュフェーズではリモートI/Oデータリフレッシュが行なわれる。
【0038】
図2におけるプログラム実行とリモートI/O通信サイクルとの同期のとり方を、図3のフローチャートを参照して説明する。
【0039】
プログラム実行(ステップ101)が終了するとI/Oリフレッシュフェーズ(ステップ102)に入る。このとき、リモートI/O子局との間のリモートI/O通信サイクル30が終了しているかを調べる(ステップ103)。プログラム実行Aの間にはリモートI/O通信サイクル30は3回起動され、3回目のリモートI/O通信サイクル30はプログラム実行A終了後も残っているので、通信サイクル終了とは判断されず(NO)となり、このステップ103をループする。このループが続く間、I/Oリフレッシュフェーズaの最初に待ち時間31が発生する。3回目のリモートI/O通信サイクル30が終了すると、ステップ103は終了と判断して(YES)となり、リモートI/Oデータリフレッシュ40が実行されて(ステップ104)、リモートIN子局から得た最新のデータがMPU11でのプログラム実行用領域に、プログラムの実行結果はリモートI/O親局13からのOUT通信サイクル出力用領域にそれぞれセットされる。
【0040】
次いで、プログラム実行時間Px と(リモートI/O通信サイクル繰り返し回数Sx ×リモートI/O通信サイクルタイムT)とを比較して(ステップ105)、プログラム実行Aの場合、プログラム実行時間Px の方が小さい(YES)のでステップ106に移ってSx+1 =Sx +((Px −Sx ×T)/T(小数部切り上げ))の演算が行なわれ、次ぎのリモートI/O通信サイクル30の繰り返し回数Sx+1 は3から1減らして2とし、上記の待ち時間31を無くして、Sx+1 回(ここでは2回)リモートI/O通信サイクルを繰り返すよう設定する(ステップ107)とともに、プログラム実行B(ステップ101)に移る。同時にリモートI/O通信サイクル30も起動し、2回繰り返される。
【0041】
プログラム実行Aよりもやや時間のかかる次のプログラム実行Bでは、プログラム実行Aの場合と同様ステップ103まで至ると、既に最終(2回目)のリモートI/O通信サイクル30は終了しており、待ち時間なしで直ちに(YES)となってステップ104を実行し、次ぎのステップ105ではプログラム実行時間Px が(リモートI/O通信サイクル繰り返し回数Sx ×リモートI/O通信サイクルタイムT)より大きいので(NO)となり、ステップ108でSx+1 =Sx +((Px −Sx ×T)/T(小数部切り捨て))の演算が行なわれる。ここで、最終のリモートI/O通信サイクルから次のI/OリフレッシュフェーズbまでにリモートI/O通信サイクル30のサイクルタイム(T)以上の空き時間41が発生しているので、次ぎのリモートI/O通信サイクル30の繰り返し回数Sx+1 は1増やして3とし、次回の空き時間41を減らして、Sx+1 回(ここでは3回)リモートI/O通信サイクルを繰り返すよう設定する(ステップ107)。
【0042】
同様にして、次のプログラム実行Cのサイクルに移る。プログラム実行Cはプログラム実行Bよりも更に時間がかかり、プログラム実行Bと同じフローをたどるが、この時は空き時間41はリモートI/O通信サイクルのサイクルタイムT未満であるのでステップ108での演算ではリモートI/O通信サイクル30の繰り返し回数Sx+1 は増減されずに次のPLCスキャンのサイクルに移る。
【0043】
すなわち、PLCスキャンのサイクルでのプログラム実行終了後のリモートI/O通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間31がある場合、プログラムの実行中のリモートI/O通信サイクルの繰り返し回数を減らし、逆に、リモートI/O通信サイクル終了後のプログラムの実行継続による空き時間がリモートI/O通信サイクルの一サイクルタイム以上の場合、プログラムの実行中のリモートI/O通信サイクルの繰り返し回数を増やすことにより、プログラム実行とリモートI/O通信サイクルとの同期をとるのである。通常、プログラム実行時間はプログラムによるばらつきがあまり大きくないから、この方式により、プログラムの実行終了後のリモートI/O通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間と、リモートI/O通信サイクル終了後のプログラムの実行継続による空き時間とが少なくなってI/Oの応答性能が向上する。
【0044】
図4は、この発明のPLCリモートI/Oシステムの第2の実施の形態を示す。
【0045】
図4においても図2と同様に、PLCスキャンではプログラム実行とI/Oリフレッシュフェーズとを交互に行ない、これと並行してリモートI/O通信サイクル30が実行される。I/OリフレッシュフェーズではリモートI/Oデータリフレッシュが行なわれる。
【0046】
図4におけるプログラム実行とリモートI/O通信サイクルとの同期のとり方を、図5のフローチャートを参照して説明する。なお、図3のフローチャートと同一のフロー部分には同一の符号を付し、その部分の説明を省略する。
【0047】
この第2の実施の形態においては、ステップ101のプログラム実行時間を累積し、また、ステップ101の実行回数を記録してプログラム平均実行時間Bx を算出しておき、ステップ104終了後、ステップ205において、このプログラム平均実行時間Bx とリモートI/O通信サイクルタイムTとから次ぎのPLCスキャンのサイクルのためのリモートI/O通信サイクル繰り返し回数Sx+1 =Bx /T(小数部切り捨て)(図4の場合、3回)を算出する。この算出したSx+1 回だけリモートI/O通信サイクルを繰り返し起動するよう設定して(ステップ107)、次ぎのプログラム実行(ステップ101)に移る。なお、ステップ205において算出に使用されるステップ101の実行回数は、プログラム実行を重ねるごとに増加する。
【0048】
図4においては、プログラム実行が既に相当回数繰り返され、平均実行時間Bx が安定した状態でのPLCスキャン、リモートI/O通信サイクルを示しており、ステップ205の演算によってもリモートI/O通信サイクル繰り返し数=3で安定している。そして、プログラム実行Bの実行時間=平均実行時間Bx となって最適のタイミングとなっている。
【0049】
この方式により、プログラムの実行終了後のリモートI/O通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間と、リモートI/O通信サイクル終了後のプログラムの実行継続による空き時間とが少なくなるが、プログラム実行回数が増すに従ってプログラム平均実行時間Bx の母数が大きくなり、上記待ち時間、空き時間は一層少なくなってI/Oの応答性能が向上する。
【0050】
図6は、この発明のPLCリモートI/Oシステムの第3の実施の形態を示す。
【0051】
図6においても図2と同様に、PLCスキャンではプログラム実行とI/Oリフレッシュフェーズとを交互に行ない、これと並行してリモートI/O通信サイクル30が実行される。I/OリフレッシュフェーズではリモートI/Oデータリフレッシュが行なわれる。
【0052】
この第3の実施の形態は、第1の実施の形態と同様、PLCスキャン中のプログラム実行とリモートI/O通信サイクルとの待ち時間、空き時間の実績から、次のPLCスキャンの待ち時間、空き時間を少なくするようにリモートI/O通信サイクルの繰り返し数を加減するのであるが、その加減の程度が過剰になるのを防ぐものである。
【0053】
すなわち、第3の実施の形態においては、待ち時間修正、空き時間修正の基準を、リモートI/O通信サイクルのサイクルタイムTよりも小さい値、例えばサイクルタイムTの1/2と定め、この基準時間未満の待ち時間や空き時間があってもリモートI/O通信サイクルの繰り返し回数を変更せず、基準時間以上のとき初めて変更するのである。
【0054】
図6におけるプログラム実行とリモートI/O通信サイクルとの同期のとり方を、図7のフローチャートを参照して説明する。なお、図3のフローチャートと同一のフロー部分には同一の符号を付し、その部分の説明を省略する。
【0055】
この第3の実施の形態においては、ステップ101のプログラム実行時間Px と(リモートI/O通信サイクル繰り返し回数Sx ×リモートI/O通信サイクルタイムT)とを比較して、その差からリモートI/O通信サイクルタイムTの1/2以上の分は切り上げ、1/2未満の分は切り捨て(いずれも絶対値の切り上げ、切り捨て)て、次のPLCスキャンでのリモートI/O通信サイクル繰り返し回数Sx+1 を算出し(ステップ305)、Sx+1 回リモートI/O通信サイクルを繰り返すよう設定する(ステップ107)。
【0056】
この結果、プログラム実行Aでの待ち時間31、プログラム実行Bでの空き時間41はT/2未満なので繰り返し数は変更されず、プログラム実行Cでの空き時間41はT/2以上なので次のPLCスキャンのためのリモートI/O通信サイクル繰り返し回数Sx+1 は1増加して4となる。
【0057】
このように、第3の実施の形態においては、リモートI/O通信サイクルタイムTの1/2を基準値として、リモートI/O通信サイクル繰り返し回数が過剰にならない程度に増減される。この第3の実施の形態における「T×1/2」はリモートI/O通信サイクルタイムTよりも小さい適宜の値、例えば、Tの100%未満の値、Tの整数分の1等の値に替えることができる。
【0058】
以上の第1〜第3の実施の形態においては、実行する全てのプログラムについて、実行時間の長短に関係なく扱ったが、プログラムによっては実行時間が他のプログラムよりも遥かに長い場合がある。このようにプログラムによって実行時間のばらつきが大きい場合には、プログラムの実行時間の長短によりプログラムを分類し、この分類毎にリモートI/O通信サイクルの繰り返し回数を定め、プログラムが起動されるとき、対応する分類のリモートI/O通信サイクルの繰り返し回数を選択するようにすれば、待ち時間、空き時間は大幅に減少する。
【0059】
以上の第1〜第3の実施の形態では、リモートI/O通信サイクル繰り返し回数を増減して同期をとったが、以下の実施の形態では、プログラム実行開始と同時にリモートOUT通信サイクルを起動し、通信サイクル起動時間設定手段がリモートIN通信サイクルの起動時間を設定して、この起動時間でプログラム実行中にリモートIN通信サイクルを実行する。
【0060】
図8は、この発明のPLCリモートI/Oシステムの第4の実施の形態を示す。
【0061】
図8において、PLCスキャンではプログラム実行とI/Oリフレッシュフェーズとを交互に行ない、これと並行してリモートOUT通信サイクル32およびリモートIN通信サイクル33が実行される。I/OリフレッシュフェーズではリモートI/Oデータリフレッシュが行なわれる。
【0062】
図8におけるプログラム実行とリモートIN通信サイクルとの同期のとり方を、図9のフローチャートを参照して説明する。
【0063】
まず、プログラム実行開始とともにリモートIN通信サイクル起動待ちタイマーをスタートさせる(ステップ401)。プログラム実行を終了するとI/Oリフレッシュフェーズ(ステップ402)に入る。このとき、タイマーが既にタイムアップしてリモートIN通信サイクルが起動済みかどうか調べる(ステップ403)。もし起動済みでなければ(NO)、直ちにリモートIN通信サイクルを起動させて(ステップ404)から、ステップ405に移る。起動済みならば(YES)、直接ステップ405に移る。ステップ405では、リモートIN通信サイクルが終了したかどうか調べる。未了(NO)の間はステップ405をループして、その間I/Oリフレッシュフェーズに待ち時間31が発生する。終了(YES)するとリモートI/Oデータリフレッシュ40が実行されて(ステップ406)、リモートIN子局から得た最新のデータがMPU11でのプログラム実行用領域に、プログラムの実行結果はリモートI/O親局13からのOUT通信サイクル出力用領域にそれぞれセットされる。
【0064】
次いで、プログラム実行時間Px と(リモートIN通信サイクル起動時間TSx +リモートIN通信サイクルタイムTIN)とを比較して(ステップ407)、その差だけ次ぎのリモートIN通信サイクル起動時間TSx+1 を補正する。即ち、通信サイクル起動時間設定手段が、プログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間がある場合、上記待ち時間分だけリモートIN通信サイクルの起動時間を早め、逆に、リモートIN通信サイクル終了後のプログラムの実行継続による空き時間がある場合、上記空き時間分だけリモートIN通信サイクルの起動時間を遅らせるように、リモートIN通信サイクルの起動時間を設定するのである。
【0065】
次いで、リモートOUT通信サイクルもスタートして、リモートOUT子局にその前の実行プログラムのデータを送り(ステップ408)、ステップ401に戻る。
【0066】
このフローに従って、図8のプログラム実行Aでは待ち時間31を生じたため、プログラム実行BではリモートIN通信サイクルの起動時間を待ち時間分▲2▼だけ早めている。その結果、プログラム実行Bで空き時間41を生じ、プログラム実行Cのために今度は空き時間分▲3▼だけ遅くしている。
【0067】
通常、プログラム実行時間はプログラムによるばらつきがあまり大きくないから、この方式により、プログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間と、リモートIN通信サイクル終了後のプログラムの実行継続による空き時間とが少なくなってI/Oの応答性能が向上する。
【0068】
図10は、この発明のPLCリモートI/Oシステムの第5の実施の形態を示す。
【0069】
図10においても、図8の第4の実施の形態同様、PLCスキャンではプログラム実行とI/Oリフレッシュフェーズとを交互に行ない、これと並行してリモートOUT通信サイクル32およびリモートIN通信サイクル33が実行される。I/OリフレッシュフェーズではリモートI/Oデータリフレッシュが行なわれる。
【0070】
図10におけるプログラム実行とリモートIN通信サイクルとの同期のとり方を、図11のフローチャートを参照して説明する。図11において図9のフローチャートと共通の部分には同一の符号を付し、説明を省略する。
【0071】
この第5の実施の形態においては、ステップ401のプログラム実行時間を累積し、また、ステップ401の実行回数を記録してプログラム平均実行時間Bx を算出しておき、ステップ406終了後、ステップ507において、このプログラム平均実行時間Bx とリモートIN通信サイクルタイムTINとから次ぎのPLCスキャンのサイクルのためのリモートIN通信サイクル起動時間TSx+1 =Bx −TIN(図10の▲1▼)を算出する。プログラム実行開始からこの算出したリモートIN通信サイクル起動時間TSx+1 後にリモートIN通信サイクルを起動するよう設定して、次ぎのリモートOUT通信サイクル起動(ステップ408)に移る。なお、ステップ506において算出に使用されるステップ401の実行回数は、プログラム実行を重ねるごとに増加する。
【0072】
図10においては、プログラム実行が既に相当回数繰り返され、平均実行時間Bx が安定した状態でのPLCスキャン、リモートOUT通信サイクル、リモートIN通信サイクルを示しており、ステップ506の演算によってもリモートIN通信サイクル起動時間▲1▼は一定値を維持している。そして、プログラム実行Bの実行時間=平均実行時間Bx となって最適のタイミングとなっている。
【0073】
この方式により、プログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間と、リモートIN通信サイクル終了後のプログラムの実行継続による空き時間とが少なくなるが、プログラム実行回数が増すに従ってプログラム平均実行時間Bx の母数が大きくなり、上記待ち時間、空き時間は一層少なくなってI/Oの応答性能が向上する。
【0074】
図12は、この発明のPLCリモートI/Oシステムの第6の実施の形態を示す。
【0075】
図12においても、図8の第4の実施の形態同様、PLCスキャンではプログラム実行とI/Oリフレッシュフェーズとを交互に行ない、これと並行してリモートOUT通信サイクル32およびリモートIN通信サイクル33が実行される。I/OリフレッシュフェーズではリモートI/Oデータリフレッシュが行なわれる。
【0076】
図12におけるプログラム実行とリモートIN通信サイクルとの同期のとり方を、図13のフローチャートを参照して説明する。図13において図9のフローチャートと共通の部分には同一の符号を付し、説明を省略する。
【0077】
この第6の実施の形態においては、ステップ401のプログラム実行時間Px と(リモートIN通信サイクルタイムTIN+リモートIN通信サイクル起動時間TSx )とを比較して(ステップ607)、その差がリモートIN通信サイクルタイムTINの1/2を越える場合(YES)、TIN×2/8だけリモートIN通信サイクル起動時間TSx を補正して(ステップ608)、また、1/2以下の場合(NO)、上記差がTIN×1/8を越えているとき、TIN×1/8だけリモートIN通信サイクル起動時間TSx を補正する(ステップ609)。
【0078】
この結果、プログラム実行Aでの待ち時間31(▲2▼)は、リモートIN通信サイクルタイムTINの1/8を越え、1/2以下なので、プログラム実行B用のリモートIN通信サイクル起動時間TSx は−1/8×TINだけ補正されて早められ、次ぎのプログラム実行Bでは、空き時間41(▲3▼)がTINの1/2以上なのでプログラム実行C用にはTIN×2/8だけリモートIN通信サイクル起動時間TSx が補正されて遅くなる。
【0079】
このように、第6の実施の形態においては、通信サイクル起動時間設定手段が、プログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間がある場合、リモートIN通信サイクルタイムの1/8を単位として、上記待ち時間の100%以下の時間だけリモートIN通信サイクルの起動時間を早めるとともに、上記リモートIN通信サイクル終了後のプログラムの実行継続による空き時間がある場合、リモートIN通信サイクルタイムの1/8を単位として、上記空き時間の100%以下の時間だけリモートIN通信サイクルの起動時間を遅らせるように、リモートIN通信サイクルの起動時間をシフトさせて設定する。この第6の実施の形態における「リモートIN通信サイクルタイムの1/8」の単位は一つの選択例であって、他の任意の基準単位を用いることができる。
【0080】
このように、第6の実施の形態においては、リモートIN通信サイクルタイムTINよりも小さい値を基準値として、リモートIN通信サイクルの起動時間が過剰にならない程度に増減される。
【0081】
以上の第4〜第6の実施の形態においては、実行する全てのプログラムについて、実行時間の長短に関係なく扱ったが、プログラムによっては実行時間が他のプログラムよりも遥かに長い場合がある。このようにプログラムによって実行時間のばらつきが大きい場合には、プログラムの実行時間の長短によりプログラムを分類し、この分類毎にリモートIN通信サイクルの起動時間を定め、プログラムが起動されるとき対応する分類のリモートIN通信サイクルの起動時間を選択するようにすれば、待ち時間、空き時間は大幅に減少する。
【0082】
【発明の効果】
以上の説明から理解されるように、この発明によるPLCリモートI/Oシステムによれば、リモートI/O通信サイクルのタイミングを制御することにより、プログラムの実行終了後のリモートI/O通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間が少なくなってMPUが有効に使用でき、また、リモートI/O通信サイクル終了後のプログラムの実行継続による空き時間が少なくなってその分リモートI/O通信サイクルの休止間隔が減少し、より新しいINデータをリモートIN子局から取り入れることができ、システムの効率が向上するという効果を奏する。
【図面の簡単な説明】
【図1】この発明のPLCリモートI/Oシステムの一実施の形態を示すブロック図。
【図2】この発明のPLCリモートI/Oシステムの第1の実施の形態を示す説明図。
【図3】この発明のPLCリモートI/Oシステムの第1の実施の形態における動作を示すフローチャート。
【図4】この発明のPLCリモートI/Oシステムの第2の実施の形態を示す説明図。
【図5】この発明のPLCリモートI/Oシステムの第2の実施の形態における動作を示すフローチャート。
【図6】この発明のPLCリモートI/Oシステムの第3の実施の形態を示す説明図。
【図7】この発明のPLCリモートI/Oシステムの第3の実施の形態における動作を示すフローチャート。
【図8】この発明のPLCリモートI/Oシステムの第4の実施の形態を示す説明図。
【図9】この発明のPLCリモートI/Oシステムの第4の実施の形態における動作を示すフローチャート。
【図10】この発明のPLCリモートI/Oシステムの第5の実施の形態を示す説明図。
【図11】この発明のPLCリモートI/Oシステムの第5の実施の形態における動作を示すフローチャート。
【図12】この発明のPLCリモートI/Oシステムの第6の実施の形態を示す説明図。
【図13】この発明のPLCリモートI/Oシステムの第6の実施の形態における動作を示すフローチャート。
【図14】PLCリモートI/Oシステムを示すブロック図。
【図15】PLCリモートI/OシステムのPLC本体を示すブロック図。
【図16】従来のPLCリモートI/Oシステムを示す説明図。
【図17】従来のPLCリモートI/Oシステムを示す説明図。
【符号の説明】
10 PLC本体側
11 MPU
13 リモートI/O親局
20 リモートI/O子局
30 リモートI/O通信サイクル
31 待ち時間
32 リモートOUT通信サイクル
33 リモートIN通信サイクル
40 リモートI/Oデータリフレッシュ
41 空き時間
Claims (9)
- リモートI/O通信サイクル実行中にユーザプログラムを実行し、リモートI/O通信サイクル休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、
ユーザプログラム実行中のリモートI/O通信サイクルの繰り返し回数を設定する通信サイクル回数設定手段を有し、
上記通信サイクル回数設定手段が、
リモートI/O通信サイクルのサイクルタイムの100%未満の待ち時間許容値および空き時間許容値を設け、
ユーザプログラムの実行終了後のリモートI/O通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間が上記待ち時間許容値以上の場合、ユーザプログラムの実行中のリモートI/O通信サイクルの繰り返し回数を減らすとともに、
リモートI/O通信サイクル終了後のユーザプログラムの実行継続による空き時間が上記空き時間許容値以上の場合、ユーザプログラムの実行中のリモートI/O通信サイクルの繰り返し回数を増やすように
リモートI/O通信サイクルの繰り返し回数を設定することを特徴とするPLCリモートI/Oシステム。 - 上記リモートI/O通信サイクルのサイクルタイムの整数分の1を上記待ち時間許容値および空き時間許容値としたことを特徴とする請求項1記載のPLCリモートI/Oシステム。
- 上記通信サイクル回数設定手段が、
ユーザプログラムの実行時間の長短によりユーザプログラムを分類し、
上記分類毎にリモートI/O通信サイクルの繰り返し回数を定め、
ユーザプログラムが起動されるとき対応する分類のリモートI/O通信サイクルの繰り返し回数を選択するようにしたことを特徴とする請求項1記載のPLCリモートI/Oシステム。 - リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、
ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、
上記通信サイクル起動時間設定手段が、
ユーザプログラム終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間、または、リモートIN通信サイクル終了後のユーザプログラムの実行継続による空き時間を減少させるように、
上記ユーザプログラムの実行時間に応じてリモートIN通信サイクルの起動時間を設定することを特徴とするPLCリモートI/Oシステム。 - リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、
ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、
上記通信サイクル起動時間設定手段が、
ユーザプログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間がある場合、上記待ち時間分だけリモートIN通信サイクルの起動時間を早めるとともに、
リモートIN通信サイクル終了後のユーザプログラムの実行継続による空き時間がある場合、上記空き時間分だけリモートIN通信サイクルの起動時間を遅らせるように、
リモートIN通信サイクルの起動時間を設定することを特徴とするPLCリモートI/Oシステム。 - リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、
ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、
上記通信サイクル起動時間設定手段が、
ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を、ユーザプログラムの実行時間の平均値からリモートIN通信サイクルのサイクルタイム分減じた値に近い値になるように、
リモートIN通信サイクルの起動時間を設定することを特徴とするPLCリモートI/Oシステム。 - リモートOUT通信サイクルおよびリモートIN通信サイクルの実行中にユーザプログラムを実行し、リモートOUT通信サイクルおよびリモートIN通信サイクルの休止中にリモートI/Oデータリフレッシュを行なうPLCリモートI/Oシステムにおいて、
ユーザプログラムの起動からリモートIN通信サイクルの起動までの時間を設定する通信サイクル起動時間設定手段を有し、
上記通信サイクル起動時間設定手段が、
ユーザプログラムの実行終了後のリモートIN通信サイクル継続によるリモートI/Oデータリフレッシュの待ち時間がある場合、上記待ち時間の100%以下の時間だけリモートIN通信サイクルの起動時間を早めるとともに、
上記リモートIN通信サイクル終了後のユーザプログラムの実行継続による空き時間がある場合、上記空き時間の100%以下の時間だけリモートIN通信サイクルの起動時間を遅らせるように、
リモートIN通信サイクルの起動時間をシフトさせて設定することを特徴とするPLCリモートI/Oシステム。 - リモートIN通信サイクルのサイクルタイムの整数分の1を上記シフトの量としたことを特徴とする請求項7記載のPLCリモートI/Oシステム。
- 上記通信サイクル起動時間設定手段が、
ユーザプログラムの実行時間の長短によりユーザプログラムを分類し、
上記分類毎にリモートIN通信サイクルの起動時間を定め、
ユーザプログラムが起動されるとき対応する分類のリモートIN通信サイクルの起動時間を選択するようにしたことを特徴とする請求項4乃至7のいずれかに記載のPLCリモートI/Oシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18866997A JP3742999B2 (ja) | 1997-07-14 | 1997-07-14 | Plcリモートi/oシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18866997A JP3742999B2 (ja) | 1997-07-14 | 1997-07-14 | Plcリモートi/oシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1131006A JPH1131006A (ja) | 1999-02-02 |
JP3742999B2 true JP3742999B2 (ja) | 2006-02-08 |
Family
ID=16227789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18866997A Expired - Fee Related JP3742999B2 (ja) | 1997-07-14 | 1997-07-14 | Plcリモートi/oシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3742999B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585410B2 (en) * | 2015-11-05 | 2020-03-10 | Mitsubishi Electric Corporation | Functional unit and control apparatus wherein a functional unit synchronized with another functional unit on basis of an outside trigger signal having a synchronized period |
-
1997
- 1997-07-14 JP JP18866997A patent/JP3742999B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1131006A (ja) | 1999-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7979730B2 (en) | Method and device for synchronizing cycle time of a plurality of TTCAN buses based on determined global time deviations and a corresponding bus system | |
US5579220A (en) | Method of updating a supplementary automation system | |
CN109992624A (zh) | 一种区块链Block chain的同步存储方法、装置及计算机设备 | |
CN113139871A (zh) | 区块链上自适应共识方法、设备及计算机可读存储介质 | |
JP3742999B2 (ja) | Plcリモートi/oシステム | |
CN110995537B (zh) | 多芯片闭环通信延迟计算方法、通信同步方法及通信系统 | |
JPH1091222A (ja) | 同期制御装置 | |
JP4123946B2 (ja) | 時刻同期システム | |
JP2010287959A (ja) | 同期通信システム、通信装置および同期通信方法 | |
US8774162B2 (en) | Real time control network system | |
CN111311505A (zh) | 一种同步握手电路以及图像滤波器 | |
JP3625536B2 (ja) | 複数のクロック信号を用いて回路を同期させる装置と方法 | |
JP2002006944A (ja) | 制御機能付き表示器 | |
CN109254834A (zh) | 一种多线程启动同步方法 | |
JP2590208B2 (ja) | デジタル制御装置の制御方法 | |
JP2814956B2 (ja) | ディスパッチャ制御方式 | |
JP5219120B2 (ja) | 通信システム、通信装置及び通信方法 | |
CN117112315A (zh) | 冗余设备的数据同步方法、系统、存储介质和电子设备 | |
CN115622828A (zh) | 时钟同步方法、装置、系统及智能家居通信设备 | |
JPS62162159A (ja) | マスタ−レスシリアルバス占有制御方法 | |
JPH04287234A (ja) | 処理多重度制御方式 | |
JPH04205243A (ja) | タイマー制御方法 | |
CN114697346A (zh) | 服务器节点之间数据同步的方法 | |
JP2001086142A (ja) | 通信スケジュールの適性化方法 | |
JPH02125336A (ja) | プロダクションシステムの並列実行方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050415 |
|
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: 20051024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051106 |
|
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: 20081125 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091125 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101125 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101125 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111125 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121125 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121125 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131125 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |