JP5508098B2 - プログラマブルコントローラ、データ通信方法及びコンピュータプログラム - Google Patents

プログラマブルコントローラ、データ通信方法及びコンピュータプログラム Download PDF

Info

Publication number
JP5508098B2
JP5508098B2 JP2010082775A JP2010082775A JP5508098B2 JP 5508098 B2 JP5508098 B2 JP 5508098B2 JP 2010082775 A JP2010082775 A JP 2010082775A JP 2010082775 A JP2010082775 A JP 2010082775A JP 5508098 B2 JP5508098 B2 JP 5508098B2
Authority
JP
Japan
Prior art keywords
unit
communication
inter
data
connection
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
JP2010082775A
Other languages
English (en)
Other versions
JP2011215821A (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.)
Keyence Corp
Original Assignee
Keyence 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 Keyence Corp filed Critical Keyence Corp
Priority to JP2010082775A priority Critical patent/JP5508098B2/ja
Publication of JP2011215821A publication Critical patent/JP2011215821A/ja
Application granted granted Critical
Publication of JP5508098B2 publication Critical patent/JP5508098B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、通信ユニット部でフィールドネットワークを介して送受信された通信データをCPUユニット部で演算処理するプログラマブルコントローラ、データ通信方法及びコンピュータプログラムに関する。
プログラマブルコントローラは、通信ユニットとセンサ、温度調節機器等の外部機器との間で、フィールドネットワークを介したデータ通信(フィールドネットワーク通信)を行い、通信ユニットが送受信した通信データは、CPUユニットとの間でユニット間通信を行っている。フィールドネットワークを介したデータ通信では、ネットワーク帯域の効率的な利用を図るために、外部機器ごとに、あるいは論理的に確立するコネクションごとに、データ通信の通信周期を個別に設定することができる通信方式を用いることがある。
ここで、コネクションとは、一連のデータ群を送受信するための論理的な通信路を意味しており、1台の外部機器に対して1つのコネクションを確立しても良いし、複数のコネクションを確立しても良い。例えば高速通信用のコネクションと低速通信用のコネクションとを確立しておき、データの特性に応じて使い分けることができる。
論理的に確立するコネクションごとに、データ通信の通信周期を個別に設定することができる場合、設定によっては、複数コネクションのフィールドネットワーク通信のタイミングが重なるおそれがある。複数コネクションのフィールドネットワーク通信のタイミングが重なった場合、CPUユニットと通信ユニットとの間のユニット間通信(特許文献1でいう「バス通信」に相当する)の負荷が一時的に上昇し、CPUユニットのスキャンタイムがばらつき、安定した制御を行うことができないという問題が生じる。そのため、スキャンタイムのばらつきを抑制し、スキャンタイムの定時性を維持しつつ、CPUユニットと通信ユニットとの間でユニット間通信を行うことが重要になる。なお、スキャンタイムとは、プログラマブルコントローラの基本動作である制御動作のうち少なくとも入力リフレッシュ処理、演算処理、出力リフレッシュ処理からなる1サイクル分の時間を意味する。
特開2003−228404号公報
上述したスキャンタイムの定時性を維持するためには、入力リフレッシュ処理、出力リフレッシュ処理におけるユニット間通信のばらつきを抑えることが必要となる。そして、ユニット間通信に要する時間は通信データ量に依存しており、各コネクションのフィールドネットワーク通信のタイミングが重なった場合、例えば同一スキャンにおいてユニット間でフィールドネットワーク通信に必要なデータ通信を行ったときには、ユニット間通信に要する時間は定常時に比べて増大することになる。したがって、スキャンタイムの定時性を維持するという観点では、同一スキャンにおけるユニット間通信の通信データ量は、なるべく一定にすることが好ましい。
一方、フィールドネットワーク通信で送受信される通信データには、一連のデータ群の同時性を保って転送することが要求されるデータもあれば、同時性よりも入出力応答性が要求されるデータもある。例えば、前者の例としては、外部機器に対するパラメータ等の書き込み制御に関するデータと、書き込み制御により実際に書き込まれる内容を示すデータ等が挙げられる。これらのデータは互いに依存関係を有するため、一固まりの一連のデータ群として扱う必要がある。また、後者の例としては、センサ入力、アクチュエータ出力等に代表されるI/Oデータが挙げられる。
一連のデータ群の同時性を保ちつつ、ユニット間でデータ通信を行うためには、一方のユニットの処理が終わるまで、他方のユニットの処理が待ち状態となることが生じ得る。しかし、上述した同時性よりも入出力応答性が要求されるデータをデータ通信する場合には、待ち状態を生じさせることは好ましくない。
本発明は斯かる事情に鑑みてなされたものであり、スキャンタイムの定時性を維持しつつ、入出力応答性が要求されるデータを優先的にユニット間通信することができるプログラマブルコントローラ、データ通信方法及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために第1発明に係るプログラマブルコントローラは、CPUユニット部と、該CPUユニット部とユニット間通信することが可能に接続され、外部機器とフィールドネットワーク通信するために確立するコネクションごとに通信周期を設定可能な通信方式に基づいて、該外部機器とフィールドネットワーク通信することが可能な一又は複数の通信ユニット部とを含むプログラマブルコントローラにおいて、前記CPUユニット部の1スキャン当たりの処理でユニット間通信することが可能なデータサイズの上限値に関する上限値情報の入力を受け付ける上限値情報入力受付部と、前記コネクションごとにユニット間通信の優先度の入力を受け付ける優先度入力受付部とを有し、前記通信ユニット部は、前記コネクションごとに、前記CPUユニット部の1スキャン当たりの処理でユニット間通信するためのユニット間通信要求を生成する要求生成部と、前記要求生成部により生成されたユニット間通信要求を複数記憶することが可能な記憶部と、前記CPUユニット部の1スキャン当たりの処理のうちユニット間通信するべきタイミングにて、前記記憶部に記憶された複数のユニット間通信要求に応じて前記CPUユニット部とユニット間通信するデータ通信部とを備え、前記要求生成部は、前記記憶部に記憶されたユニット間通信要求に応じてユニット間通信するデータのデータサイズと、前記上限値情報入力受付部により入力を受け付けた上限値情報とに基づき、新たなユニット間通信要求を生成するか否かを判断する処理と、前記優先度入力受付部により入力を受け付けた優先度の高いコネクションに対応するユニット間通信が優先されるようにユニット間通信要求を新たに生成する処理とを実行することを特徴とする。
また、第2発明に係るプログラマブルコントローラは、第1発明において、前記要求生成部は、前記データサイズが前記上限値情報入力受付部により入力を受け付けた上限値を超えている場合には、ユニット間通信要求の生成を行わず、前記データサイズが前記上限値情報入力受付部により入力を受け付けた上限値を超えていない場合には、新たなユニット間通信要求を生成することを特徴とする。
また、第発明に係るプログラマブルコントローラは、第1又は第2発明において、前記記憶部は、前記外部機器とフィールドネットワーク通信する対象となるデータを待ちデータとして一時記憶し、前記要求生成部は、ユニット間通信要求を生成したコネクションのうち、一時記憶されている前記待ちデータが前記通信ユニット部から前記CPUユニット部へのユニット間通信により未だ転送されていない未完了コネクションに対応するデータの合計データサイズを算出し、前記上限値情報入力受付部により入力を受け付けた上限値情報に基づいて、前記未完了コネクションに対応するデータの合計データサイズが、1スキャン当たりの処理で前記通信ユニット部から前記CPUユニット部へのユニット間通信することが可能なデータサイズの上限値以下である場合、前記優先度入力受付部により入力を受け付けた優先度の高いコネクションを優先して、1スキャン当たりの処理で前記CPUユニット部と前記通信ユニット部との間でユニット間通信すべきコネクションごとの前記CPUユニット部へのユニット間通信要求を生成することを特徴とする。
また、第発明に係るプログラマブルコントローラは、第1又は第2発明において、前記要求生成部は、ユニット間通信要求を生成したコネクションのうち、送信するデータが前記CPUユニット部から前記通信ユニット部へのユニット間通信により未だ転送されていない未完了コネクションに対応するデータの合計データサイズを算出し、前記上限値情報入力受付部により入力を受け付けた上限値情報に基づいて、前記未完了コネクションに対応するデータの合計データサイズが、1スキャン当たりの処理で前記CPUユニット部から前記通信ユニット部へのユニット間通信することが可能なデータサイズの上限値以下である場合、前記優先度入力受付部により入力を受け付けた優先度の高いコネクションを優先して、1スキャン当たりの処理で前記CPUユニット部と前記通信ユニット部との間でユニット間通信すべきコネクションごとの前記通信ユニット部へのユニット間通信要求を生成することを特徴とする。
また、第発明に係るプログラマブルコントローラは、第1乃至第発明のいずれか1つにおいて、前記要求生成部は、優先度が最も低いコネクションのフィールドネットワーク通信が行われた場合、少なくとも所定回数後に、前記コネクションのユニット間通信要求を生成することを特徴とする。
また、第発明に係るプログラマブルコントローラは、第1乃至第発明のいずれか1つにおいて、前記優先度入力受付部は、前記外部機器とフィールドネットワーク通信するために確立する所定のコネクションの待ちデータを毎スキャン、ユニット間通信するような優先度の入力を受け付けるようにしてあることを特徴とする。
次に、上記目的を達成するために第7発明に係るデータ通信方法は、CPUユニット部と、該CPUユニット部とユニット間通信することが可能に接続され、外部機器とフィールドネットワーク通信するために確立するコネクションごとに通信周期を設定可能な通信方式に基づいて、該外部機器とフィールドネットワーク通信することが可能な一又は複数の通信ユニット部とを含むプログラマブルコントローラで実行することが可能なデータ通信方法において、前記CPUユニット部又は前記通信ユニット部は、前記CPUユニット部の1スキャン当たりの処理でユニット間通信することが可能なデータサイズの上限値に関する上限値情報の入力を受け付けるステップと、前記コネクションごとにユニット間通信の優先度の入力を受け付けるステップとを実行し、前記通信ユニット部は、前記コネクションごとに、前記CPUユニット部の1スキャン当たりの処理でユニット間通信するためのユニット間通信要求を生成するステップと、生成されたユニット間通信要求を複数記憶するステップと、前記CPUユニット部の1スキャン当たりの処理のうちユニット間通信するべきタイミングにて、記憶された複数のユニット間通信要求に応じて前記CPUユニット部とユニット間通信するステップとを実行し、記憶されたユニット間通信要求に応じてユニット間通信するデータのデータサイズと、入力を受け付けた上限値情報とに基づき、新たなユニット間通信要求を生成するか否かを判断する処理と、入力を受け付けた優先度の高いコネクションに対応するユニット間通信が優先されるようにユニット間通信要求を新たに生成する処理とを実行することを特徴とする。
次に、上記目的を達成するために第8発明に係るコンピュータプログラムは、CPUユニット部と、該CPUユニット部とユニット間通信することが可能に接続され、外部機器とフィールドネットワーク通信するために確立するコネクションごとに通信周期を設定可能な通信方式に基づいて、該外部機器とフィールドネットワーク通信することが可能な一又は複数の通信ユニット部とを含むプログラマブルコントローラで実行することが可能なコンピュータプログラムにおいて、前記CPUユニット部又は通信ユニット部を前記CPUユニット部の1スキャン当たりの処理でユニット間通信することが可能なデータサイズの上限値に関する上限値情報の入力を受け付ける上限値情報入力受付手段、及び記コネクションごとにユニット間通信の優先度の入力を受け付ける優先度入力受付手段として機能させ、前記通信ユニット部を、前記コネクションごとに、前記CPUユニット部の1スキャン当たりの処理でユニット間通信するためのユニット間通信要求を生成する要求生成手段、前記要求生成手段により生成されたユニット間通信要求を複数記憶することが可能な記憶手段、及び前記CPUユニット部の1スキャン当たりの処理のうちユニット間通信するべきタイミングにて、前記記憶手段に記憶された複数のユニット間通信要求に応じて前記CPUユニット部とユニット間通信するデータ通信手段として機能させ、前記要求生成手段を、前記記憶手段に記憶されたユニット間通信要求に応じてユニット間通信するデータのデータサイズと、前記上限値情報入力受付手段により入力を受け付けた上限値情報とに基づき、新たなユニット間通信要求を生成するか否かを判断する処理と、前記優先度入力受付手段により入力を受け付けた優先度の高いコネクションに対応するユニット間通信が優先されるようにユニット間通信要求を新たに生成する処理とを実行する手段として機能させることを特徴とする。
第1発明、第7発明及び第8発明では、CPUユニット部の1スキャン当たりの処理でユニット間通信することが可能なデータサイズの上限値に関する上限値情報の入力を受け付ける。また、コネクションごとにユニット間通信の優先度の入力を受け付ける。そして、通信ユニット部は、コネクションごとに、CPUユニット部の1スキャン当たりの処理でユニット間通信するためのユニット間通信要求を生成する。生成されたユニット間通信要求を複数記憶し、CPUユニット部の1スキャン当たりの処理のうちユニット間通信するべきタイミングにて、記憶された複数のユニット間通信要求に応じてCPUユニット部とユニット間通信する。記憶されたユニット間通信要求に応じてユニット間通信するデータのデータサイズと、入力を受け付けた上限値情報とに基づき、新たなユニット間通信要求を生成するか否かを判断する処理と、入力を受け付けた優先度の高いコネクションに対応するユニット間通信が優先されるようにユニット間通信要求を新たに生成する処理とを実行する。これにより、スキャンタイムの定時性を維持しつつ、入出力応答性が要求されるデータを優先的にユニット間通信することができる。すなわち、CPUユニット部のスキャンタイムのばらつきをある程度抑えて、安定した制御処理を行うことができるとともに、同時性を保って転送することが要求されるデータについて通信レスポンスが劣化すること(入出力応答性の低下)を抑制することができる。
第2発明では、データサイズが入力を受け付けた上限値を超えている場合には、ユニット間通信要求の生成を行わず、データサイズが入力を受け付けた上限値を超えていない場合には、新たなユニット間通信要求を生成するので、上限値を超えたデータサイズである場合にはユニット間通信を行うことがなく、通信レスポンスを適正に維持することが可能となる。
発明では、外部機器とフィールドネットワーク通信する対象となるデータを待ちデータとして一時記憶し、ユニット間通信要求を生成したコネクションのうち、一時記憶されている待ちデータが通信ユニット部からCPUユニット部へのユニット間通信により未だ転送されていない未完了コネクションに対応するデータの合計データサイズを算出する。入力を受け付けた上限値情報に基づいて、未完了コネクションに対応するデータの合計データサイズが、1スキャン当たりの処理で通信ユニット部からCPUユニット部へのユニット間通信することが可能なデータサイズの上限値以下である場合、入力を受け付けた優先度の高いコネクションを優先して、1スキャン当たりの処理でCPUユニット部と通信ユニット部との間でユニット間通信すべきコネクションごとのCPUユニット部へのユニット間通信要求を生成することにより、同一スキャンにおけるユニット間通信に要する時間の急増を防ぐとともに、優先度の高いコネクションに対する入出力応答性の低下を抑制することができる。
発明では、ユニット間通信要求を生成したコネクションのうち、送信するデータがCPUユニット部から通信ユニット部へのユニット間通信により未だ転送されていない未完了コネクションに対応するデータの合計データサイズを算出する。入力を受け付けた上限値情報に基づいて、未完了コネクションに対応するデータの合計データサイズが、1スキャン当たりの処理でCPUユニット部から通信ユニット部へのユニット間通信することが可能なデータサイズの上限値以下である場合、入力を受け付けた優先度の高いコネクションを優先して、1スキャン当たりの処理でCPUユニット部と通信ユニット部との間でユニット間通信すべきコネクションごとの通信ユニット部へのユニット間通信要求を生成することにより、同一スキャンにおけるユニット間通信に要する時間の急増を防ぐとともに、優先度の高いコネクションに対する入出力応答性の低下を抑制することができる。
発明では、優先度が最も低いコネクションのフィールドネットワーク通信が行われた場合、少なくとも所定回数後に、コネクションのユニット間通信要求を生成することにより、優先度が最も低いコネクション(例えばユニット間通信の優先度が「通常」であるコネクション)にて待ち状態のままユニット間通信が実行されない、という事態が発生することを未然に防止することができる。
発明では、外部機器とフィールドネットワーク通信するために確立する所定のコネクションの待ちデータを毎スキャン、ユニット間通信するような優先度の入力を受け付けることにより、入出力応答性が同時性よりも要求されるデータを、他の待ちデータの一時記憶状況によらず、最短でユニット間通信することができる。
上記構成によれば、スキャンタイムの定時性を維持して安定した制御処理を行いながら、入出力応答性が要求されるデータを優先的にユニット間通信することができる。
本発明の実施の形態に係るプログラマブルコントローラの構成を示す模式図である。 本発明の実施の形態に係るプログラマブルコントローラのCPUユニットでのスキャンタイムの構成を示す模式図である。 本発明の実施の形態に係るプログラマブルコントローラのフィールドネットワーク通信で受信したデータを入力リフレッシュでCPUユニットへ転送する場合を示す機能ブロック図である。 本発明の実施の形態に係るプログラマブルコントローラのフィールドネットワーク通信での受信データ転送方法を示すシーケンス図である。 本発明の実施の形態に係るプログラマブルコントローラの通信ユニットの制御部の受信処理手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラの通信ユニットの制御部のリフレッシュ上限値チェック処理の手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラの通信ユニットの制御部のステップS604の詳細処理手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラのCPUユニットの制御部の処理手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラのフィールドネットワーク通信で送信するデータを出力リフレッシュでCPUユニットから転送する場合を示す機能ブロック図である。 本発明の実施の形態に係るプログラマブルコントローラのフィールドネットワーク通信での送信データ転送方法を示すシーケンス図である。 本発明の実施の形態に係るプログラマブルコントローラの通信ユニットの制御部の送信処理手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラの通信ユニットの制御部のリフレッシュ上限値チェック処理の手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラの通信ユニットの制御部のステップS1204の詳細処理手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラのCPUユニットの制御部の処理手順を示すフローチャートである。 本発明の実施の形態に係るプログラマブルコントローラと接続してある演算表示装置の、CPU等の制御部を用いた場合の構成を示すブロック図である。
以下、本発明の実施の形態に係るプログラマブルコントローラについて、図面に基づいて具体的に説明する。
図1は、本発明の実施の形態に係るプログラマブルコントローラの構成を示す模式図である。図1に示すように、プログラマブルコントローラ1は、CPUユニット2と、機能ごとに独立した複数の拡張ユニット3、3、・・・とで構成されている。拡張ユニット3、3、・・・には、機能ごとに動作を制御する対象となる外部機器5、5、・・・が接続してあり、ラダープログラム等の制御プログラムに従って、CPUユニット2からの指令により各外部機器5の動作を制御する。なお、本実施の形態では、CPUユニット2と拡張ユニット3とを別体で構成しているが、例えば拡張ユニット3の機能を、CPUユニット2の内部に内蔵させる構成であっても良い。
CPUユニット2は、内蔵するメモリ21に記憶してある制御プログラムに従って、接続してある拡張ユニット3、3、・・・に対して指令を送出するCPUを備えている。また、拡張ユニット3、3、・・・は、CPUユニット2からの指令に従って、接続してある外部機器5、5、・・・の動作を制御する。なお、外部機器5、5、・・・の動作を制御するためのパラメータ情報等は、拡張ユニット3、3、・・・が内蔵するメモリ31、31、・・・に記憶してある。また、パラメータ情報等をCPUユニット2内のメモリ21に記憶しておき、通信経路7を介してユニット間通信により読み出して参照しても良い。
図1の例では、拡張ユニット3aは通信ユニットであり、フィールドネットワーク6を介して外部機器5、5、・・・とデータ通信することが可能に接続されている。CPUユニット2と通信ユニット3aとの間は通信経路(バス)7を介したユニット間通信が行われている。
通信ユニット3aは、フィールドネットワーク6を介したデータ通信機能を有する広義の入出力ユニットであり、フィールドネットワーク6を介して外部機器5から受信したデータは、通信経路7を介したユニット間通信によりCPUユニット2へ転送され、CPUユニット2から通信経路7を介したユニット間通信により受け取った送信データは、フィールドネットワーク6を介して所望の外部機器5へ送信される。通信ユニット3aの動作を制御する制御プログラムは、ユーザが、演算表示装置4にインストールされたラダーエディタなどのプログラム作成ソフトウェアを用いて自由に作成・編集できるようになっている。演算表示装置4において作成・編集され、演算表示装置4の記憶装置に記憶された制御プログラムは、ユーザの操作に基づいて、演算表示装置4からCPUユニット2へダウンロードされる。
CPUユニット2は、1スキャンの間にデータの入出力リフレッシュ処理と演算処理とを実行する。図2は、本発明の実施の形態に係るプログラマブルコントローラ1のCPUユニット2でのスキャンタイムの構成を示す模式図である。図2に示すように、CPUユニット2は、プログラムを実行する前のユニット間通信(入力リフレッシュ)201により、フィールドネットワーク6を介した受信データを含めた入力データをCPUユニット2内のメモリ21に取り込み、更新された入力データを用いてプログラムを実行(演算)する(202)。
プログラムの実行により演算処理した後、ユニット間通信(出力リフレッシュ)203により、フィールドネットワーク6を介した送信データを含めた出力データをCPUユニット2内のメモリ21から送信する。なお、END処理204とは、演算表示装置4、CPUユニット2に接続された表示器(図示せず)等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
CPUユニット2のスキャンタイムTは、プログラムが同一である場合、ユニット間通信(入力リフレッシュ)201及びユニット間通信(出力リフレッシュ)203に要する時間の長短により増減する。ユニット間通信201及びユニット間通信203に要する時間は、データ通信の対象となるデータの1スキャン当たりに通信されるデータ量に依存する。したがって、フィールドネットワーク6を介したデータ通信における複数のコネクションの通信タイミングが重なった場合、ユニット間通信201及び/又はユニット間通信203にてデータ量が増加するので、ユニット間通信201及び/又はユニット間通信203に要する時間が長くなる。したがって、全体としてCPUユニット2のスキャンタイムTが長くなり、場合によっては、定時的にCPUユニット2に取り込まなければ把握することができない高速の入力信号の変化を取りこぼす等の問題が生じるおそれがある。
また、フィールドネットワーク6を介して送受信されるデータには、例えば制御信号と計測結果のように一組でデータ通信されるべきデータもある。これらのデータは、データの同時性を維持するべく同一のコネクションにてデータ通信され、ユニット間通信においても同一のスキャンにてデータ通信される。なお、フィールドネットワーク6を介したデータ通信の通信周期に対してスキャンタイムTが長い場合、どのデータからデータ通信するかリフレッシュ優先度を設定する必要がある。1スキャン内の通信では、データ通信するデータの順序は任意だからである。
例えばデータ送信を行う場合、CPUユニット2から通信ユニット3aへユニット間通信するときに、通信ユニット3aからフィールドネットワーク6を介して外部機器5への送信が終了するまで、通信ユニット3aにて通信データが待ち状態となることがある。送信データの一部が書き換えられる等の障害の発生を回避するためである。しかし、センサ入力、アクチュエータ出力等の入出力データのように、入出力応答性が要求されるデータも存在する。これらの入出力データが通信ユニット3aにて待ち状態となることは好ましくない。
そこで、本実施の形態では、スキャンタイムTの定時性を可能な限り維持しつつ、同時性が要求されるデータのユニット間通信を行うとともに、入出力応答性が要求されるデータは優先的にユニット間通信を行うよう通信ユニット3aの動作を制御する。図3は、本発明の実施の形態に係るプログラマブルコントローラ1のフィールドネットワーク通信で受信したデータを入力リフレッシュでCPUユニット2へ転送する場合を示す機能ブロック図である。
図3において、CPU等で構成されているCPUユニット2の制御部20は、上限値情報入力受付部22、及び優先度入力受付部23として機能する。上限値情報入力受付部22は、1スキャン当たりに入出力(データ通信)することが可能なデータサイズの上限値(以下、リフレッシュ上限値)の入力を受け付ける。1スキャン当たりに入力することが可能な入力リフレッシュ上限値と出力することが可能な出力リフレッシュ上限値とを、別々に入力を受け付けても良いし、合算したリフレッシュ上限値として入力を受け付けても良い。また、上限値情報として上限値の入力を受け付けることに限定されるものではなく、デフォルト値を段階別に指定しておき、例えば「データサイズ大」、「データサイズ中」、「データサイズ小」というような選択の入力を受け付けても良い。
なお、入力リフレッシュ上限値と出力リフレッシュ上限値とを合算として上限値の入力を受け付ける場合、入力リフレッシュ上限値と出力リフレッシュ上限値とを所定の割合で割り振る。例えば1:1の割合で、入力を受け付けた上限値を入力リフレッシュ上限値と出力リフレッシュ上限値とに割り振っても良いし、入力によるデータ通信量の方が大きい場合には、2:1の割合で割り振る等、ユニット間通信をより効率良く実行することが可能となる。
リフレッシュ上限値の入力は、本実施の形態に係るプログラマブルコントローラ1に接続されている演算表示装置4を介して受け付ける。入力を受け付けたリフレッシュ上限値は、通信線を介してCPUユニット2及び通信ユニット3aへ送信され、CPUユニット2内のメモリ21及び通信ユニット3a内のメモリ31へ記憶される。また、通信線を介してCPUユニット2へ送信してCPUユニット2内のメモリ21へ記憶した上で、ユニット間通信により通信ユニット3aへ転送してメモリ31に記憶しても良い。つまり、CPUユニット2と通信ユニット3aとは、リフレッシュ上限値について情報共有している。
優先度入力受付部23は、通信ユニット3aがフィールドネットワーク6を介して外部機器5とデータ通信するために確立するコネクションごとに、少なくとも通信ユニット3aがデータを送受信するコネクションを識別するコネクションID、データを送受信するために必要となる情報(例えば送受信の相手方のアドレス、送受信の区別等に関する情報、送受信するデータのデータサイズ、通信周期等)、そして入出力リフレッシュに対するコネクション間の相対的な優先度(以下、リフレッシュ優先度)の入力を受け付ける。また、送受信データを記憶する待ちデータ記憶部35内のアドレスについては、静的に特定される場合には入力を受け付ける必要はない。しかし、メモリを有効に活用すること等を目的として動的に特定する場合には、別途入力を受け付けても良い。
リフレッシュ優先度は、例えば2段階の「通常」と「優先」とし、「優先」と入力を受け付けた場合、対応するコネクションに対するユニット間通信を優先して行う。もちろん、2段階に限定されるものではなく、多段階の優先順位の入力を受け付けても良いし、他のデータよりも最優先でデータ通信を行う「最優先」の入力を受け付けても良い。「最優先」の入力を、入出力応答性が特に要求されるデータのデータ通信を行うコネクションに対して受け付けることにより、例えば多くの待ちデータが一時記憶されている場合であっても、毎スキャン確実にデータ通信を行うことが可能となり、入出力応答性を損なうことを回避することができる。
リフレッシュ優先度の入力は、本実施の形態に係るプログラマブルコントローラ1に接続されている演算表示装置4を介して受け付ける。入力を受け付けたリフレッシュ優先度は、通信線を介してCPUユニット2及び通信ユニット3aへ送信され、CPUユニット2内のメモリ21及び通信ユニット3a内のメモリ31へ記憶される。また、通信線を介してCPUユニット2へ送信してCPUユニット2内のメモリ21へ記憶した上で、ユニット間通信により通信ユニット3aへ転送してメモリ31に記憶しても良い。つまり、CPUユニット2と通信ユニット3aとは、リフレッシュ優先度について情報共有している。なお、上述したコネクションID、データを送受信するために必要となる情報に関しても、同様に情報共有している。
フィールドネットワーク6を介して受信した受信データは、通信ユニット3aの動作を制御する制御部30のフィールドネットワーク通信制御部34により、受信する場合に使用するコネクションを識別するコネクションIDと対応付けて、フィールドネットワーク通信用メモリ38の受信バッファ39に一時記憶される。受信データをCPUユニット2へ転送する場合の優先度制御、リフレッシュ上限値に従った帯域制御、同時性を維持するためのCPUユニット2と共用する待ちデータ記憶部35の排他制御は、制御部30が行う。
CPUユニット2とのユニット間通信のための待ちデータ記憶部35はバッファメモリとして機能し、例えば2ポートメモリで構成される。待ちデータ記憶部35は、受信データを一次記憶する受信データ領域352の他、CPUユニット2との間で同時性を維持するために使用するフラグ情報、排他制御で使用するセマフォを配置したハンドシェイク領域351を有する。
また、リフレッシュ優先度制御を行うために、優先受信FIFO36と通常受信FIFO37とを備えている。
通信ユニット3aの制御部30は、フィールドネットワーク通信制御部34がデータを受信した場合、どのコネクション(コネクションID)を介して受信した受信データであるかを確認した上で、該コネクションIDに対応するリフレッシュ優先度と、待ちデータ記憶部(バッファメモリ)35の受信データ領域352にて受信データを記憶するアドレスを確認し、該コネクションIDの受信データをCPUユニット2が待ちデータ記憶部(バッファメモリ)35から読み出し中でない場合には、受信バッファ39から待ちデータ記憶部35の受信データ領域352における該コネクションのアドレスへ受信データを転送して、受信バッファ39を開放する。
なお、制御部30は、例えばセマフォ等の仕組みを用いて、待ちデータ記憶部35においてCPUユニット2と通信ユニット3aとの間でいずれか一方が書き込み中のデータを他方が読み出さないよう排他制御する。これにより、同一コネクションのデータの同時性を確保することができる。
フィールドネットワーク6を介して受信した受信データに対応するコネクションのリフレッシュ優先度が「優先」である場合は優先受信FIFO36に、「通常」である場合は通常受信FIFO37に、それぞれコネクションIDを書き込む。リフレッシュ優先度が「最優先」である場合には、無条件で毎スキャン、ユニット間通信で入出力リフレッシュされるので、受信データを待ちデータ記憶部35の受信データ領域352における該コネクションのアドレスへ転送しておけば、以後特段の処理は不要となる。
以下、受信データの同時性を維持して通信ユニット3aからCPUユニット2へ転送する方法について説明する。図4は、本発明の実施の形態に係るプログラマブルコントローラ1のフィールドネットワーク通信での受信データ転送方法を示すシーケンス図である。
図4において、受信データの同時性を維持して通信ユニット3aからCPUユニット2へ転送するために、CPUユニット2と通信ユニット3aとは、待ちデータ記憶部35のハンドシェイク領域351を用いてユニット間通信する。待ちデータ記憶部35は、全てのコネクションが独立して通信を行ってもユニット間通信に支障が出ない十分なメモリ容量を確保しており、複数コネクションのユニット間通信を独立して要求することができる。
まず、通信ユニット3aの制御部30は、フィールドネットワーク6を介して所定のコネクションIDに対応する受信データを受信し(401)、受信バッファ39に所定のコネクションIDに対応する受信データを一時記憶する(402)。そして、制御部30は、受信データを受信バッファ39から受信データ領域352へ転送した後、所定の条件を満たしている場合には、所定のコネクションIDの入力リフレッシュ要求(ユニット間通信要求)をCPUユニット2へ通知する(403)。具体的には、待ちデータ記憶部35のハンドシェイク領域351に、生成した入力リフレッシュ要求を記憶しておき、CPUユニット2が任意のタイミングで確認する。
CPUユニット2は、通信ユニット3aの入力リフレッシュ要求を所定のタイミングで確認し(404)、所定のコネクションIDによる受信データを受信データ領域352から受け取る(405)。所定のタイミングとは、各スキャンのプログラム実行前の入力リフレッシュ処理の開始のタイミングである。CPUユニット2は、まずリフレッシュ優先度が「最優先」であるコネクションの受信データを、全て待ちデータ記憶部35の受信データ領域352から受信する。次に、ハンドシェイク領域351の入力リフレッシュ要求を確認し、対応するコネクションIDの受信データを待ちデータ記憶部35の受信データ領域352から受信した後、コネクションIDに対応する入力リフレッシュ完了を通信ユニット3aへ通知する(406)。具体的には、待ちデータ記憶部35のハンドシェイク領域351に、該コネクションIDに対応する入力リフレッシュ完了通知を記憶しておく。通信ユニット3aの制御部30は、所定のタイミングで入力リフレッシュ完了通知が記憶されていることを確認し、入力リフレッシュ完了通知が記憶されている場合には対応する入力リフレッシュ要求(ユニット間通信要求)をクリアするとともに、該入力リフレッシュ完了通知をクリアする(407)。
図3に戻って、制御部30の要求生成部33は、CPUユニット2に対して要求していて、しかも完了していない全ての入力リフレッシュ要求に対応する各コネクションの受信データ(未完了コネクション)のデータサイズを累計することにより、要求中であり未完了である入力リフレッシュの合計データサイズを算出する。算出した合計データサイズが、入力を受け付けたリフレッシュ上限値を超えている場合には、新たな入力リフレッシュ要求は行わない。
算出した合計データサイズが、入力を受け付けたリフレッシュ上限値以下である場合、要求生成部33は、優先受信FIFO36を確認する。入力リフレッシュ要求待ちのコネクションIDが存在する場合、該コネクションIDに対応する入力リフレッシュ要求を生成して、CPUユニット2へ通知する。
要求生成部33は、入力リフレッシュ要求待ちのコネクションIDが見つからない場合、通常受信FIFO37を確認する。入力リフレッシュ要求待ちのコネクションIDが存在する場合、該コネクションIDに対応する入力リフレッシュ要求を生成して、CPUユニット2へ通知する。
ただし、優先受信FIFO36に入力リフレッシュ要求待ちのコネクションIDが存在する場合であっても、通常受信FIFO37に入力リフレッシュ要求待ちのコネクションIDが存在し、しかも直近所定回数、例えば直近3回連続して優先受信FIFO36のコネクションIDに対応する入力リフレッシュ要求を生成していたときには、通常受信FIFO37の入力リフレッシュ要求待ちのコネクションIDに対応する入力リフレッシュ要求を生成して、CPUユニット2へ通知する。これにより、コネクションのリフレッシュ優先度が「優先」である受信データの割合が高い場合、コネクションのリフレッシュ優先度が「通常」であるコネクションが入力リフレッシュを行うことができない状態に陥ることを未然に回避することができる。
要求生成部33は、入力リフレッシュ要求を生成して、CPUユニット2へ通知した後、現在CPUユニット2に対して要求していて、しかも完了していない全ての入力リフレッシュ要求に対応する各コネクションの受信データのデータサイズを再度累計し、要求中であり未完了である入力リフレッシュの合計データサイズを算出する。算出した合計データサイズが、入力を受け付けたリフレッシュ上限値を超えている場合には、処理を終了し、超えていない場合には上述した処理を繰り返す(以下、上述の処理を受信要求生成処理という)。
以下、リフレッシュ優先度に応じた受信FIFOを用いたデータ受信処理について、フローチャートに基づいて詳細に説明する。なお、本実施の形態では、優先受信FIFO36及び通常受信FIFO37に、それぞれコネクションIDを書き込む都度、合計データサイズがリフレッシュ上限値を超えているか否かを確認して受信要求生成処理を行う。しかし、合計データサイズがリフレッシュ上限値を超えている場合、新たな入力リフレッシュ要求は行わないので、CPUユニット2が入力リフレッシュ処理を完了して合計データサイズがリフレッシュ上限値以下となり次第、入力リフレッシュ要求を行う必要がある。そのため、CPUユニット2からの入力リフレッシュ完了通知を確認するとともに、入力リフレッシュ完了が通知されていれば、対応する入力リフレッシュ要求(ユニット間通信要求)をクリアするとともに、該入力リフレッシュ完了通知をクリアする処理を行った上で、入力リフレッシュ要求中でありながら未完了であるコネクションの受信データの合計データサイズを再度累計し、合計データサイズとリフレッシュ上限値との比較結果に基づく受信要求生成処理を行う一連の処理フローを定期的に実行すれば良い。
図5は、本発明の実施の形態に係るプログラマブルコントローラ1の通信ユニット3aの制御部30の受信処理手順を示すフローチャートである。通信ユニット3aの制御部30は、CPUユニット2又は演算表示装置4から、1スキャン当たりに入出力することが可能なデータサイズのリフレッシュ上限値、及び通信ユニット3aがデータを送受信する(データ通信するために確立する)コネクションごとのリフレッシュ優先度を取得し、メモリ31に記憶する(ステップS501)。制御部30は、フィールドネットワーク6を介して外部機器5から受信データを受信したか否かを判断し(ステップS502)、受信データを受信していないと判断した場合(ステップS502:NO)、制御部30は、受信待ち状態となる。制御部30が、受信データを受信したと判断した場合(ステップS502:YES)、制御部30は、受信データをフィールドネットワーク通信用メモリ38の受信バッファ39に待ちデータとして記憶した後、待ちデータ記憶部35の受信データ領域352へ転送する(ステップS503)。この時点で受信バッファ39は開放される。
制御部30は、受信データを受信したコネクションIDのリフレッシュ優先度をメモリ31から読み出し(ステップS504)、読み出したリフレッシュ優先度が「優先」であるか否かを判断する(ステップS505)。制御部30が、読み出したリフレッシュ優先度が「優先」であると判断した場合(ステップS505:YES)、制御部30は、優先受信FIFO36にコネクションIDを書き込む(ステップS506)。
制御部30が、読み出したリフレッシュ優先度が「優先」ではないと判断した場合(ステップS505:NO)、制御部30は、読み出したリフレッシュ優先度が「通常」であるか否かを判断する(ステップS507)。制御部30が、読み出したリフレッシュ優先度が「通常」であると判断した場合(ステップS507:YES)、制御部30は、通常受信FIFO37にコネクションIDを書き込む(ステップS508)。
制御部30が、読み出したリフレッシュ優先度が「通常」ではないと判断した場合(ステップS507:NO)、制御部30は、受信FIFOにコネクションIDを書き込まず、リフレッシュ上限値チェック結果に基づいて、入力リフレッシュ要求を生成する(ステップS509)。
リフレッシュ上限値チェックは、任意のタイミングで定期的に実行される。図6は、本発明の実施の形態に係るプログラマブルコントローラ1の通信ユニット3aの制御部30のリフレッシュ上限値チェック処理の手順を示すフローチャートである。
図6において、通信ユニット3aの制御部30は、受信している入力リフレッシュ完了通知及び対応する入力リフレッシュ要求をクリアし(ステップS601)、入力リフレッシュ要求中であり、未完了であるコネクションの受信データの合計データサイズを算出する(ステップS602)。制御部30は、算出した合計データサイズが、入力を受け付けたリフレッシュ上限値(データサイズの上限値)以下であるか否かを判断する(ステップS603)。
制御部30が、算出した合計データサイズが、入力を受け付けたリフレッシュ上限値を超えていると判断した場合(ステップS603:NO)、制御部30は、処理を終了する。制御部30が、算出した合計データサイズが、入力を受け付けたリフレッシュ上限値以下であると判断した場合(ステップS603:YES)、制御部30は、入力リフレッシュ要求を生成する(ステップS604)。
図7は、本発明の実施の形態に係るプログラマブルコントローラ1の通信ユニット3aの制御部30のステップS604の詳細処理手順を示すフローチャートである。
通信ユニット3aの制御部30は、優先受信FIFO36にコネクションIDが記憶されているか否かを判断する(ステップS701)。制御部30が、優先受信FIFO36にコネクションIDが記憶されていると判断した場合(ステップS701:YES)、制御部30は、通常受信FIFO37にコネクションIDが記憶されているか否かを判断する(ステップS702)。
制御部30が、通常受信FIFO37にコネクションIDが記憶されていると判断した場合(ステップS702:YES)、制御部30は、直近3回は優先受信FIFO36に記憶されているコネクションIDに対応する入力リフレッシュ要求を生成したか否かを判断する(ステップS703)。制御部30が、直近3回は優先受信FIFO36に記憶されているコネクションIDに対応する入力リフレッシュ要求を生成したと判断した場合(ステップS703:YES)、制御部30は、通常受信FIFO37から読み出したコネクションIDに対応する入力リフレッシュ要求を生成する(ステップS704)。
制御部30が、優先受信FIFO36にコネクションIDが記憶されていないと判断した場合(ステップS701:NO)、制御部30は、通常受信FIFO37にコネクションIDが記憶されているか否かを判断する(ステップS705)。制御部30が、通常受信FIFO37にコネクションIDが記憶されていると判断した場合(ステップS705:YES)、制御部30は、通常受信FIFO37から読み出したコネクションIDに対応する入力リフレッシュ要求を生成する(ステップS704)。生成した入力リフレッシュ要求はハンドシェイク領域351に記憶する。
制御部30が、通常受信FIFO37にコネクションIDが記憶されていないと判断した場合(ステップS702:NO)、及び直近3回のうち、少なくとも1回は通常受信FIFO37に記憶されているコネクションIDに対応する入力リフレッシュ要求を生成したと判断した場合(ステップS703:NO)、制御部30は、優先受信FIFO36から読み出したコネクションIDに対応する入力リフレッシュ要求を生成する(ステップS706)。制御部30が、通常受信FIFO37にコネクションIDが記憶されていないと判断した場合(ステップS705:NO)、入力リフレッシュ要求を生成することなく処理を終了する。
図8は、本発明の実施の形態に係るプログラマブルコントローラ1のCPUユニット2の制御部20の処理手順を示すフローチャートである。図8において、CPUユニット2の制御部20は、リフレッシュ優先度が「最優先」である全てのコネクションIDに対応する受信データを入力リフレッシュ処理によりCPUユニット2へ転送し(ステップS801)、一のコネクションIDを選択し(ステップS802)、ハンドシェイク領域351に選択したコネクションIDに対応する入力リフレッシュ要求が存在するか否かを判断する(ステップS803)。
制御部20が、入力リフレッシュ要求が存在すると判断した場合(ステップS803:YES)、制御部20は、受信データ領域352から対応する受信データを読み出し(ステップS804)、入力リフレッシュ完了通知を送信する(ステップS805)。制御部20が、入力リフレッシュ要求が存在しないと判断した場合(ステップS803:NO)、制御部20は、ステップS804、ステップS805をスキップする。
制御部20は、全てのコネクションIDを選択したか否かを判断し(ステップS806)、制御部20が、まだ選択していないコネクションIDが存在すると判断した場合(ステップS806:NO)、制御部20は、次のコネクションIDを選択し(ステップS807)、処理をステップS803へ戻して上述した処理を繰り返す。制御部20が、全てのコネクションIDを選択したと判断した場合(ステップS806:YES)、制御部20は、処理を終了する。
これにより、待ちデータのデータサイズが、入力を受け付けたリフレッシュ上限値以下である場合、入力を受け付けたリフレッシュ優先度の高いコネクションを優先して、1スキャン当たりでCPUユニット2とユニット間通信すべきコネクションのユニット間通信要求を生成することにより、1スキャン当たりのユニット間通信に要する時間を平滑化するとともに、優先度の高いコネクションの入出力応答性の低下を抑制することができる。
同様に、図9は、本発明の実施の形態に係るプログラマブルコントローラ1のフィールドネットワーク通信で送信するデータを出力リフレッシュによりCPUユニット2から転送する場合を示す機能ブロック図である。図9において、CPU等で構成されているCPUユニット2の構成は、入力リフレッシュ時と同様であることから詳細な説明は省略する。
図9において、CPU等で構成されているCPUユニット2の制御部20は、上限値情報入力受付部22、及び優先度入力受付部23として機能する。上限値情報入力受付部22は、1スキャン当たりに入出力(データ通信)することが可能なリフレッシュ上限値の入力を受け付ける。1スキャン当たりに入力することが可能な入力リフレッシュ上限値と出力することが可能な出力リフレッシュ上限値とを、別々に入力を受け付けても良いし、合算したリフレッシュ上限値として入力を受け付けても良い。
リフレッシュ上限値の入力は、本実施の形態に係るプログラマブルコントローラ1に接続されている演算表示装置4を介して受け付ける。入力を受け付けたリフレッシュ上限値は、通信線を介してCPUユニット2及び通信ユニット3aへ送信され、CPUユニット2内のメモリ21及び通信ユニット3a内のメモリ31へ記憶される。また、通信線を介してCPUユニット2へ送信したリフレッシュ上限値をCPUユニット2内のメモリ21へ記憶した上で、ユニット間通信により通信ユニット3aへ転送してメモリ31に記憶しても良い。つまり、CPUユニット2と通信ユニット3aとは、リフレッシュ上限値について情報共有している。
優先度入力受付部23は、通信ユニット3aがフィールドネットワーク6を介して外部機器5とデータ通信するために確立するコネクションごとに、少なくとも通信ユニット3aがデータを送受信するコネクションを識別するコネクションID、データを送受信するために必要となる情報(例えば送受信の相手方のアドレス、送受信の区別等に関する情報、送受信するデータのデータサイズ、通信周期等)、そして入出力リフレッシュに対するコネクション間の相対的な優先度(リフレッシュ優先度)の入力を受け付ける。また、送受信データを記憶する待ちデータ記憶部35内のアドレスについては、静的に特定される場合には入力を受け付ける必要はない。しかし、メモリを有効に活用すること等を目的として動的に特定する場合には、別途入力を受け付けても良い。
リフレッシュ優先度の入力は、本実施の形態に係るプログラマブルコントローラ1に接続されている演算表示装置4を介して受け付ける。入力を受け付けたリフレッシュ優先度は、通信線を介してCPUユニット2及び通信ユニット3aへ送信され、CPUユニット2内のメモリ21及び通信ユニット3a内のメモリ31へ記憶される。なお、通信線を介してCPUユニット2へ送信してCPUユニット2内のメモリ21へ記憶した上で、ユニット間通信によって通信ユニット3aへと転送し、メモリ31に記憶しても良い。つまり、CPUユニット2と通信ユニット3aとは、リフレッシュ優先度について情報共有している。
なお上述したコネクションID、データを送受信するために必要となる情報に関しても、同様に情報共有している。
CPUユニット2とのユニット間通信のための待ちデータ記憶部35はバッファメモリとして機能し、例えば2ポートメモリで構成される。待ちデータ記憶部35は、送信データを一次記憶する送信データ領域353の他、CPUユニット2との間で同時性を維持するために使用するフラグ情報、排他制御で使用するセマフォを配置したハンドシェイク領域351を有する。
また、リフレッシュ優先度制御を行うために、優先送信FIFO92と通常送信FIFO93とを備えている。
通信ユニット3aの動作を制御する制御部30のデータ通信部32は、コネクションごとに設定している送信間隔を計時する、内蔵する送信タイマ40がタイムアップした場合、待ちデータ記憶部35の送信データ領域353に一時記憶してある、タイムアップしたコネクションに対応する送信データを、CPUユニット2が書き込み中でない場合には、フィールドネットワーク通信用メモリ38の送信バッファ91へ転送し、フィールドネットワーク通信制御部34へデータ送信を依頼する。
なお、制御部30は、例えばセマフォ等の仕組みを用いて、待ちデータ記憶部35においてCPUユニット2と通信ユニット3aとの間でいずれか一方が書き込み中のデータを他方が読み出さないよう排他制御する。待ちデータ記憶部35の送信データ領域353に記憶されている送信データをCPUユニット2が書き込み中である場合、送信バッファ91への転送を行うことなく、フィールドネットワーク通信制御部34にデータ送信を依頼する。これは、スキャンタイムTに比較して、コネクションの送信間隔が短い場合に生じうる現象であり、送信バッファ91に残存しているコネクションに対応する前回の送信データを再送信することになる。これにより、同一コネクションのデータの同時性を確保することができる。
フィールドネットワーク通信制御部34へデータ送信を依頼した後、依頼した送信データに対応するコネクションのリフレッシュ優先度が「優先」である場合は優先送信FIFO92に、「通常」である場合は通常送信FIFO93に、それぞれコネクションIDを書き込む。リフレッシュ優先度が「最優先」である場合には、無条件で毎スキャン、リフレッシュされるので、特段の処理は不要である。
以下、送信データの同時性を維持してCPUユニット2から送信データを受け取る方法について説明する。図10は、本発明の実施の形態に係るプログラマブルコントローラ1のフィールドネットワーク通信での送信データ転送方法を示すシーケンス図である。
図10において、送信データの同時性を維持してCPUユニット2から通信ユニット3aへ転送するために、CPUユニット2と通信ユニット3aとは、待ちデータ記憶部35のハンドシェイク領域351を用いてユニット間通信する。待ちデータ記憶部35は、全てのコネクションが独立して通信を行ってもユニット間通信に支障が出ない十分なメモリ容量を確保しており、複数コネクションのユニット間通信を独立して要求することができる。
まず、通信ユニット3aの制御部30に内蔵する送信タイマ40のタイムアップをトリガとして、所定のコネクションIDに対応する送信データの送信を開始する(1001)。具体的には、所定のコネクションIDに対応する送信データを、待ちデータ記憶部35の送信データ領域353から送信バッファ91へ送信する(1002)。そして、制御部30は、所定の条件を満たしている場合には、所定のコネクションIDの出力リフレッシュ要求(ユニット間通信要求)をCPUユニット2へ通知する(1003)。具体的には、待ちデータ記憶部35のハンドシェイク領域351に、生成した出力リフレッシュ要求を記憶しておき、CPUユニット2が任意のタイミングで確認する。
CPUユニット2は、通信ユニット3aの出力リフレッシュ要求を所定のタイミングで確認し(1004)、所定のコネクションIDによる送信データを送信データ領域353へ書き込む(1005)。所定のタイミングとは、各スキャンのプログラム実行後の出力リフレッシュ処理開始のタイミングである。CPUユニット2は、まずリフレッシュ優先度が「最優先」であるコネクションの送信データを全て、待ちデータ記憶部35の送信データ領域353へ送信する。次に、ハンドシェイク領域351の出力リフレッシュ要求を確認し、対応するコネクションIDの送信データを待ちデータ記憶部35の送信データ領域353へ送信した後、コネクションIDに対応する出力リフレッシュ完了を通信ユニット3aへ通知する(1006)。具体的には、待ちデータ記憶部35のハンドシェイク領域351に、該コネクションIDに対応する出力リフレッシュ完了通知を記憶しておく。通信ユニット3aの制御部30は、所定のタイミングで出力リフレッシュ完了通知が記憶されていることを確認し、出力リフレッシュ完了通知が記憶されている場合には、対応する出力リフレッシュ要求(ユニット間通信要求)をクリアするとともに、該出力リフレッシュ完了通知をクリアする(1007)。
図9に戻って、制御部30の要求生成部33は、CPUユニット2に対して要求していて、しかも完了していない全ての出力リフレッシュ要求に対応する各コネクションの送信データのデータサイズを累計することにより、要求中であり未完了である出力リフレッシュの合計データサイズを算出する。算出した合計データサイズが、入力を受け付けたリフレッシュ上限値を超えている場合には、新たな出力リフレッシュ要求は行わない。
算出した合計データサイズが、入力を受け付けたリフレッシュ上限値以下である場合、要求生成部33は、優先送信FIFO92を確認する。出力リフレッシュ要求待ちのコネクションIDが存在する場合、該コネクションIDに対応する出力リフレッシュ要求を生成して、CPUユニット2へ通知する。
要求生成部33は、出力リフレッシュ要求待ちのコネクションIDが見つからない場合、通常送信FIFO93を確認する。出力リフレッシュ要求待ちのコネクションIDが存在する場合、該コネクションIDに対応する出力リフレッシュ要求を生成して、CPUユニット2へ通知する。
ただし、優先送信FIFO92に出力リフレッシュ要求待ちのコネクションIDが存在する場合であっても、通常送信FIFO93に出力リフレッシュ要求待ちのコネクションIDが存在し、しかも直近所定回数、例えば直近3回連続して優先送信FIFO92のコネクションIDに対応する出力リフレッシュ要求を生成していたときには、通常送信FIFO93の出力リフレッシュ要求待ちのコネクションIDに対応する出力リフレッシュ要求を生成して、CPUユニット2へ通知する。これにより、コネクションのリフレッシュ優先度が「優先」である送信データの割合が高い場合、コネクションのリフレッシュ優先度が「通常」であるコネクションが出力リフレッシュを行うことができない状態に陥ることを未然に回避することができる。
要求生成部33は、出力リフレッシュ要求を生成して、CPUユニット2へ通知した後、現在CPUユニット2に対して要求していて、しかも完了していない全ての出力リフレッシュ要求に対応する各コネクションの送信データのデータサイズを再度累計し、要求中であり未完了である出力リフレッシュの合計データサイズを算出する。算出した合計データサイズが、入力を受け付けたリフレッシュ上限値を超えている場合には、処理を終了し、超えていない場合には上述した処理を繰り返す(以下、上述した処理を送信要求生成処理という)。
以下、リフレッシュ優先度に応じた送信FIFOを用いたデータ送信処理について、フローチャートに基づいて詳細に説明する。なお、本実施の形態では、優先送信FIFO92及び通常送信FIFO93に、それぞれコネクションIDを書き込む都度、合計データサイズがリフレッシュ上限値を超えているか否かを確認して、送信要求生成処理を実行する。しかし、合計データサイズがリフレッシュ上限値を超えている場合、新たな出力リフレッシュ要求は行わないので、CPUユニット2が出力リフレッシュ処理を完了して合計データサイズがリフレッシュ上限値以下となり次第、出力リフレッシュ要求を行う必要がある。そのため、CPUユニット2からの出力リフレッシュ完了通知を確認するとともに、出力リフレッシュ完了が通知されている場合、対応する出力リフレッシュ要求(ユニット間通信要求)をクリアするとともに、該出力リフレッシュ完了通知をクリアする処理を行った上で、出力リフレッシュ要求中でありながら未完了のコネクションの送信データの合計データサイズを再度累計し、合計データサイズの値とリフレッシュ上限値との比較結果に基づいて送信要求生成処理を行う一連の処理フローを定期的に実行すれば良い。
図11は、本発明の実施の形態に係るプログラマブルコントローラ1の通信ユニット3aの制御部30の送信処理手順を示すフローチャートである。通信ユニット3aの制御部30は、CPUユニット2又は演算表示装置4から、1スキャン当たりに入出力することが可能なリフレッシュ上限値、及び通信ユニット3aがデータを送受信する(データ通信するために確立する)コネクションごとのリフレッシュ優先度を取得し、メモリ31に記憶する(ステップS1101)。なお、プログラマブルコントローラ1を運用する前に事前に取得して記憶してある場合、ステップS1101は省略することができる。制御部30は、送信コネクションごとに送信タイミングを計時している送信タイマ40がタイムアップしたか否かを判断し(ステップS1102)、制御部30が、タイムアップしていないと判断した場合(ステップS1102:NO)、制御部30は、タイムアップ待ち状態となる。制御部30が、タイムアップしたと判断した場合(ステップS1102:YES)、制御部30は、タイムアップした送信タイマ40に対応するコネクションの送信データ領域353に対してCPUユニット2が書き込み中でなければ、該コネクションの送信データを送信バッファ91の所定領域に転送する(ステップS1103)。その後、フィールドネットワーク通信制御部34にデータ送信を指示する。フィールドネットワーク通信制御部34は指示を受けると直ちに送信を行う。
制御部30は、送信データを送信したコネクションIDのリフレッシュ優先度をメモリ31から読み出し(ステップS1104)、読み出したリフレッシュ優先度が「優先」であるか否かを判断する(ステップS1105)。制御部30が、読み出したリフレッシュ優先度が「優先」であると判断した場合(ステップS1105:YES)、制御部30は、優先送信FIFO92にコネクションIDを書き込む(ステップS1106)。
制御部30が、読み出したリフレッシュ優先度が「優先」ではないと判断した場合(ステップS1105:NO)、制御部30は、読み出したリフレッシュ優先度が「通常」であるか否かを判断する(ステップS1107)。制御部30が、読み出したリフレッシュ優先度が「通常」であると判断した場合(ステップS1107:YES)、制御部30は、通常送信FIFO93にコネクションIDを書き込む(ステップS1108)。
制御部30が、読み出したリフレッシュ優先度が「通常」ではないと判断した場合(ステップS1107:NO)、制御部30は、送信FIFOにコネクションIDを書き込まず、リフレッシュ上限値チェック結果に基づいて、出力リフレッシュ要求を生成する(ステップS1109)。
リフレッシュ上限値チェックは、任意のタイミングで定期的に実行される。図12は、本発明の実施の形態に係るプログラマブルコントローラ1の通信ユニット3aの制御部30のリフレッシュ上限値チェック処理の手順を示すフローチャートである。
図12において、通信ユニット3aの制御部30は、受信している出力リフレッシュ完了通知及び対応する出力リフレッシュ要求をクリアし(ステップS1201)、出力リフレッシュ要求中であり、未完了であるコネクションの送信データの合計データサイズを算出する(ステップS1202)。制御部30は、算出した合計データサイズが、入力を受け付けたリフレッシュ上限値(データサイズの上限値)以下であるか否かを判断する(ステップS1203)。
制御部30が、算出した合計データサイズが、入力を受け付けたリフレッシュ上限値を超えていると判断した場合(ステップS1203:NO)、制御部30は、処理を終了する。制御部30が、算出した合計データサイズが、入力を受け付けたリフレッシュ上限値以下であると判断した場合(ステップS1203:YES)、制御部30は、出力リフレッシュ要求を生成する(ステップS1204)。
図13は、本発明の実施の形態に係るプログラマブルコントローラ1の通信ユニット3aの制御部30のステップS1204の詳細処理手順を示すフローチャートである。
通信ユニット3aの制御部30は、優先送信FIFO92にコネクションIDが記憶されているか否かを判断する(ステップS1301)。制御部30が、優先送信FIFO92にコネクションIDが記憶されていると判断した場合(ステップS1301:YES)、制御部30は、通常送信FIFO93にコネクションIDが記憶されているか否かを判断する(ステップS1302)。
制御部30が、通常送信FIFO93にコネクションIDが記憶されていると判断した場合(ステップS1302:YES)、制御部30は、直近3回は優先送信FIFO92に記憶されているコネクションIDに対応する出力リフレッシュ要求を生成したか否かを判断する(ステップS1303)。制御部30が、直近3回は優先送信FIFO92に記憶されているコネクションIDに対応する出力リフレッシュ要求を生成したと判断した場合(ステップS1303:YES)、制御部30は、通常送信FIFO93から読み出したコネクションIDに対応する出力リフレッシュ要求を生成する(ステップS1304)。
制御部30が、優先送信FIFO92にコネクションIDが記憶されていないと判断した場合(ステップS1301:NO)、制御部30は、通常送信FIFO93にコネクションIDが記憶されているか否かを判断する(ステップS1305)。制御部30が、通常送信FIFO93にコネクションIDが記憶されていると判断した場合(ステップS1305:YES)、制御部30は、通常送信FIFO93から読み出したコネクションIDに対応する出力リフレッシュ要求を生成する(ステップS1304)。生成した出力リフレッシュ要求はハンドシェイク領域351に記憶する。
制御部30が、通常送信FIFO93にコネクションIDが記憶されていないと判断した場合(ステップS1302:NO)、及び直近3回のうち、少なくとも1回は通常送信FIFO93に記憶されているコネクションIDに対応する出力リフレッシュ要求を生成したと判断した場合(ステップS1303:NO)、制御部30は、優先送信FIFO92から読み出したコネクションIDに対応する出力リフレッシュ要求を生成する(ステップS1306)。制御部30が、通常送信FIFO93にコネクションIDが記憶されていないと判断した場合(ステップS1305:NO)、出力リフレッシュ要求を生成することなく処理を終了する。
図14は、本発明の実施の形態に係るプログラマブルコントローラ1のCPUユニット2の制御部20の処理手順を示すフローチャートである。図14において、CPUユニット2の制御部20は、リフレッシュ優先度が「最優先」である全てのコネクションIDに対応する送信データを出力リフレッシュ処理によりCPUユニット2から転送し(ステップS1401)、一のコネクションIDを選択し(ステップS1402)、ハンドシェイク領域351に選択したコネクションIDに対応する出力リフレッシュ要求が存在するか否かを判断する(ステップS1403)。
制御部20が、出力リフレッシュ要求が存在すると判断した場合(ステップS1403:YES)、制御部20は、送信データ領域353へ対応する送信データを転送し(ステップS1404)、出力リフレッシュ完了通知を送信する(ステップS1405)。制御部20が、出力リフレッシュ要求が存在しないと判断した場合(ステップS1403:NO)、制御部20は、ステップS1404、ステップS1405をスキップする。
制御部20は、全てのコネクションIDを選択したか否かを判断し(ステップS1406)、制御部20が、まだ選択していないコネクションIDが存在すると判断した場合(ステップS1406:NO)、制御部20は、次のコネクションIDを選択し(ステップS1407)、処理をステップS1403へ戻して上述した処理を繰り返す。制御部20が、全てのコネクションIDを選択したと判断した場合(ステップS1406:YES)、制御部20は、処理を終了する。
以上のように本実施の形態によれば、スキャンタイムTの定時性を維持しつつ、入出力応答性が要求されるデータを優先的にユニット間通信することができる。すなわち、CPUユニット2のスキャンタイムのばらつきをある程度抑えて、安定した制御処理を行うことができるとともに、同時性よりも入出力応答性が要求されるデータを最優先で転送しつつ、同時性を保って転送することが要求されるデータについて通信レスポンスが劣化すること(入出力応答性の低下)を抑制することができる。
なお、演算表示装置4は、CPUユニット2とデータ通信することが可能に接続してあり、作成した制御プログラムをCPUユニット2へ送信する。図15は、本発明の実施の形態に係るプログラマブルコントローラ1と接続してある演算表示装置4の、CPU等の制御部を用いた場合の構成を示すブロック図である。
図15に示すように本実施の形態に係る演算表示装置4は、少なくとも制御部(CPU)41、メモリ42、ハードディスク等の記憶装置43、I/Oインタフェース44、ビデオインタフェース45、通信インタフェース46、可搬型ディスクドライブ47及び上述したハードウェアを接続する内部バス48で構成されている。
制御部41は、内部バス48を介して演算表示装置4の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置43に記憶しているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ42は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
記憶装置43は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置43に記憶しているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ47によりダウンロードされ、実行時には記憶装置43からメモリ42へ展開して実行される。もちろん、通信インタフェース46を介してネットワークに接続されている外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
I/Oインタフェース44は、キーボード441、マウス442等の入力装置と接続され、データの入力を受け付ける。また、ビデオインタフェース45は、CRTモニタ、LCD等の表示装置451と接続され、所定の画像を表示する。
通信インタフェース46は内部バス48に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ通信することが可能となっている。また、通信線を介してCPUユニット2へデータ通信することが可能となっている。
なお、本実施の形態では、演算表示装置4はCPUユニット2と接続する構成としているが、拡張ユニット3と接続しても良い。すなわち、プログラマブルコントローラ1の通信ポートに接続することができれば、接続形態を問うものではない。
また、本発明は上記実施の形態に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変形、置換等が可能であることは言うまでもない。例えば、外部機器5を識別する情報に対応付けて、確立するべきコネクションに関する情報及び該コネクションに設定するべき優先度に関する情報を記憶しても良い。このようにすることで、データ通信する外部機器5を特定した時点でデータ通信するコネクションの優先度に関する情報を取得することができ、入力を受け付ける必要がない。
1 プログラマブルコントローラ
2 CPUユニット
3 拡張ユニット
3a 通信ユニット
4 演算表示装置
5 外部機器
6 フィールドネットワーク
7 通信経路(バス)
20、30 制御部
21、31 メモリ

Claims (8)

  1. CPUユニット部と、該CPUユニット部とユニット間通信することが可能に接続され、外部機器とフィールドネットワーク通信するために確立するコネクションごとに通信周期を設定可能な通信方式に基づいて、該外部機器とフィールドネットワーク通信することが可能な一又は複数の通信ユニット部とを含むプログラマブルコントローラにおいて、
    前記CPUユニット部の1スキャン当たりの処理でユニット間通信することが可能なデータサイズの上限値に関する上限値情報の入力を受け付ける上限値情報入力受付部と、
    前記コネクションごとにユニット間通信の優先度の入力を受け付ける優先度入力受付部と
    を有し、
    前記通信ユニット部は、
    前記コネクションごとに、前記CPUユニット部の1スキャン当たりの処理でユニット間通信するためのユニット間通信要求を生成する要求生成部と、
    前記要求生成部により生成されたユニット間通信要求を複数記憶することが可能な記憶部と、
    前記CPUユニット部の1スキャン当たりの処理のうちユニット間通信するべきタイミングにて、前記記憶部に記憶された複数のユニット間通信要求に応じて前記CPUユニット部とユニット間通信するデータ通信部と
    を備え、
    前記要求生成部は、
    前記記憶部に記憶されたユニット間通信要求に応じてユニット間通信するデータのデータサイズと、前記上限値情報入力受付部により入力を受け付けた上限値情報とに基づき、新たなユニット間通信要求を生成するか否かを判断する処理と、前記優先度入力受付部により入力を受け付けた優先度の高いコネクションに対応するユニット間通信が優先されるようにユニット間通信要求を新たに生成する処理とを実行することを特徴とするプログラマブルコントローラ。
  2. 前記要求生成部は、前記データサイズが前記上限値情報入力受付部により入力を受け付けた上限値を超えている場合には、ユニット間通信要求の生成を行わず、前記データサイズが前記上限値情報入力受付部により入力を受け付けた上限値を超えていない場合には、新たなユニット間通信要求を生成することを特徴とする請求項1に記載のプログラマブルコントローラ。
  3. 前記記憶部は、前記外部機器とフィールドネットワーク通信する対象となるデータを待ちデータとして一時記憶し、
    前記要求生成部は、ユニット間通信要求を生成したコネクションのうち、一時記憶されている前記待ちデータが前記通信ユニット部から前記CPUユニット部へのユニット間通信により未だ転送されていない未完了コネクションに対応するデータの合計データサイズを算出し、
    前記上限値情報入力受付部により入力を受け付けた上限値情報に基づいて、前記未完了コネクションに対応するデータの合計データサイズが、1スキャン当たりの処理で前記通信ユニット部から前記CPUユニット部へのユニット間通信することが可能なデータサイズの上限値以下である場合、前記優先度入力受付部により入力を受け付けた優先度の高いコネクションを優先して、1スキャン当たりの処理で前記CPUユニット部と前記通信ユニット部との間でユニット間通信すべきコネクションごとの前記CPUユニット部へのユニット間通信要求を生成することを特徴とする請求項1又は2に記載のプログラマブルコントローラ。
  4. 前記要求生成部は、ユニット間通信要求を生成したコネクションのうち、送信するデータが前記CPUユニット部から前記通信ユニット部へのユニット間通信により未だ転送されていない未完了コネクションに対応するデータの合計データサイズを算出し、
    前記上限値情報入力受付部により入力を受け付けた上限値情報に基づいて、前記未完了コネクションに対応するデータの合計データサイズが、1スキャン当たりの処理で前記CPUユニット部から前記通信ユニット部へのユニット間通信することが可能なデータサイズの上限値以下である場合、前記優先度入力受付部により入力を受け付けた優先度の高いコネクションを優先して、1スキャン当たりの処理で前記CPUユニット部と前記通信ユニット部との間でユニット間通信すべきコネクションごとの前記通信ユニット部へのユニット間通信要求を生成することを特徴とする請求項1又は2に記載のプログラマブルコントローラ。
  5. 前記要求生成部は、優先度が最も低いコネクションのフィールドネットワーク通信が行われた場合、少なくとも所定回数後に、前記コネクションのユニット間通信要求を生成することを特徴とする請求項1乃至4のいずれか一項に記載のプログラマブルコントローラ。
  6. 前記優先度入力受付部は、前記外部機器とフィールドネットワーク通信するために確立する所定のコネクションの待ちデータを毎スキャン、ユニット間通信するような優先度の入力を受け付けるようにしてあることを特徴とする請求項1乃至5のいずれか一項に記載のプログラマブルコントローラ。
  7. CPUユニット部と、該CPUユニット部とユニット間通信することが可能に接続され、外部機器とフィールドネットワーク通信するために確立するコネクションごとに通信周期を設定可能な通信方式に基づいて、該外部機器とフィールドネットワーク通信することが可能な一又は複数の通信ユニット部とを含むプログラマブルコントローラで実行することが可能なデータ通信方法において、
    前記CPUユニット部又は前記通信ユニット部は、
    前記CPUユニット部の1スキャン当たりの処理でユニット間通信することが可能なデータサイズの上限値に関する上限値情報の入力を受け付けるステップと、
    前記コネクションごとにユニット間通信の優先度の入力を受け付けるステップと
    実行し
    前記通信ユニット部は、
    前記コネクションごとに、前記CPUユニット部の1スキャン当たりの処理でユニット間通信するためのユニット間通信要求を生成するステップと、
    生成されたユニット間通信要求を複数記憶するステップと、
    前記CPUユニット部の1スキャン当たりの処理のうちユニット間通信するべきタイミングにて、記憶された複数のユニット間通信要求に応じて前記CPUユニット部とユニット間通信するステップと
    実行し
    記憶されたユニット間通信要求に応じてユニット間通信するデータのデータサイズと、入力を受け付けた上限値情報とに基づき、新たなユニット間通信要求を生成するか否かを判断する処理と、入力を受け付けた優先度の高いコネクションに対応するユニット間通信が優先されるようにユニット間通信要求を新たに生成する処理とを実行することを特徴とするデータ通信方法。
  8. CPUユニット部と、該CPUユニット部とユニット間通信することが可能に接続され、外部機器とフィールドネットワーク通信するために確立するコネクションごとに通信周期を設定可能な通信方式に基づいて、該外部機器とフィールドネットワーク通信することが可能な一又は複数の通信ユニット部とを含むプログラマブルコントローラで実行することが可能なコンピュータプログラムにおいて、
    前記CPUユニット部又は通信ユニット部を、
    前記コネクションごとに、前記CPUユニット部の1スキャン当たりの処理でユニット間通信することが可能なデータサイズの上限値に関する上限値情報の入力を受け付ける上限値情報入力受付手段、及び
    前記コネクションごとにユニット間通信の優先度の入力を受け付ける優先度入力受付手段
    として機能させ、
    前記通信ユニット部を、
    前記コネクションごとに、前記CPUユニット部の1スキャン当たりの処理でユニット間通信するためのユニット間通信要求を生成する要求生成手段、
    前記要求生成手段により生成されたユニット間通信要求を複数記憶することが可能な記憶手段、及び
    前記CPUユニット部の1スキャン当たりの処理のうちユニット間通信するべきタイミングにて、前記記憶手段に記憶された複数のユニット間通信要求に応じて前記CPUユニット部とユニット間通信するデータ通信手段
    として機能させ、
    前記要求生成手段を、
    前記記憶手段に記憶されたユニット間通信要求に応じてユニット間通信するデータのデータサイズと、前記上限値情報入力受付手段により入力を受け付けた上限値情報とに基づき、新たなユニット間通信要求を生成するか否かを判断する処理と、前記優先度入力受付手段により入力を受け付けた優先度の高いコネクションに対応するユニット間通信が優先されるようにユニット間通信要求を新たに生成する処理とを実行する手段として機能させることを特徴とするコンピュータプログラム。
JP2010082775A 2010-03-31 2010-03-31 プログラマブルコントローラ、データ通信方法及びコンピュータプログラム Active JP5508098B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010082775A JP5508098B2 (ja) 2010-03-31 2010-03-31 プログラマブルコントローラ、データ通信方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010082775A JP5508098B2 (ja) 2010-03-31 2010-03-31 プログラマブルコントローラ、データ通信方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2011215821A JP2011215821A (ja) 2011-10-27
JP5508098B2 true JP5508098B2 (ja) 2014-05-28

Family

ID=44945493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010082775A Active JP5508098B2 (ja) 2010-03-31 2010-03-31 プログラマブルコントローラ、データ通信方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5508098B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101964984B1 (ko) * 2017-04-26 2019-04-03 엘에스산전 주식회사 Plc장치
JP6919404B2 (ja) * 2017-08-10 2021-08-18 オムロン株式会社 制御装置
KR20200121090A (ko) 2019-04-15 2020-10-23 엘에스일렉트릭(주) Plc 시스템 및 이의 입출력 리프레시 주기 제어방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3265026B2 (ja) * 1993-01-19 2002-03-11 富士電機株式会社 入出力データ交換方式
JPH0736369A (ja) * 1993-07-22 1995-02-07 Omron Corp プログラマブルコントローラ
JPH08221106A (ja) * 1995-02-16 1996-08-30 Hitachi Ltd プログラマブルコントローラ
JP2006171833A (ja) * 2004-12-13 2006-06-29 Fuji Electric Fa Components & Systems Co Ltd Plcのデータ交換システム、及びplcのデータ交換システムの制御方法
JP4434103B2 (ja) * 2005-08-22 2010-03-17 富士電機システムズ株式会社 コンピュータ組み付け型プログラマブルコントローラ
JP5069884B2 (ja) * 2006-09-14 2012-11-07 株式会社日立製作所 最新データ及び履歴データを管理するセンサネットワークシステム

Also Published As

Publication number Publication date
JP2011215821A (ja) 2011-10-27

Similar Documents

Publication Publication Date Title
JP4372043B2 (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US20130257882A1 (en) Image processing device, image processing method, and recording medium on which an image processing program is recorded
WO2017163441A1 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP6891409B2 (ja) 画像処理装置及び画像形成装置
JP5508098B2 (ja) プログラマブルコントローラ、データ通信方法及びコンピュータプログラム
JP4466507B2 (ja) 画像表示システム,画像表示方法および画像データ処理装置
US9172839B2 (en) Image forming apparatus, control method and storage medium
JP2010176442A (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
JP2009252128A (ja) メモリ制御装置及びその制御方法
JP2006295690A (ja) 情報処理装置
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP2010198171A (ja) Usbホストコントローラ、及びusbホストコントローラの制御方法
JP2018106222A (ja) 情報処理装置及び通信制御方法
JP5404294B2 (ja) データ演算装置の制御回路及びデータ演算装置
JP2011028333A (ja) 回路情報生成装置、機能実行システム、及びプログラム
JP5232728B2 (ja) 画像形成装置
JP2014222473A (ja) データ処理装置、データ処理方法、データ処理制御装置、プログラムおよび記録媒体
JP2009199281A (ja) データ送信装置
JP5982436B2 (ja) 画面転送サーバ装置、および画面転送方法
JP2011070259A (ja) データ転送装置及びデータ転送方法
JP6825303B2 (ja) 情報処理装置およびプログラム
JP2009048298A (ja) 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体
JPWO2004068356A1 (ja) データ通信システムおよびデータ通信方法、データ通信プログラム
US20110110383A1 (en) Network interface controller capable of sharing buffers and buffer sharing method
TWI655876B (zh) Communication system, main control device, communication program product, and communication method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140320

R150 Certificate of patent or registration of utility model

Ref document number: 5508098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250