(57)【特許請求の範囲】
【請求項１】
通信機能を有するプログラマブル・コントローラであるマスタと通信機能を有するＩ／Ｏターミナルである複数のスレーブがフィールドバスに接続され、マスタからスレーブに出力データを一括して１つのＯＵＴフレームで転送し、前記スレーブは決められた時間帯に入力データを含むＩＮフレームをそれぞれ返送するようにしたＰＬＣシステムの通信方法であって、
マスタは、ＯＵＴフレームにて動作状況を確認したい単数または複数のスレーブを指定して出力データとともに一括して送信し、ＯＵＴフレームで指定されたスレーブは、応答フレームを前記決められた時間帯とは別の時間帯にそれぞれ返送し、
前記応答フレームには、当該スレーブからのメッセージ通信要求の有無を示す情報と、メッセージ内容を示す情報とが含まれ、
前記メッセージ内容は、前記スレーブに供給される電源の電圧の異常検出の有無に関する情報、及び／又は、前記スレーブで検出された通信エラー回数の累積値が所定の閾値を超えたか否かに関する情報、であることを特徴とするＰＬＣシステムの通信方法。
【請求項２】
前記スレーブは、スレーブからのメッセージ通信要求の有無、及びメッセージ内容に関わらず応答フレームを送信し、前記マスタはその応答フレームを受信した場合に、ネットワークに加入中の当該スレーブとの間で通信が正常に行われていると判断することを特徴とする請求項１に記載のＰＬＣシステムの通信方法。
【請求項３】
前記マスタは、前記スレーブからの送信要求があることを示す前記応答フレームを受信した場合、前記スレーブに対してメッセージ送信許可フレームを送信し、前記スレーブにバス権を渡し、バス権をもったスレーブが前記マスタに対してメッセージを送信する、ことを特徴とする特徴とする請求項１又は２に記載のＰＬＣシステムの通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信マスタ局と通信スレーブ局とをフィールドバスで結んだプログラマブル・コントローラ（以下、ＰＬＣと言う）・システムに適用される通信方法に関する。
【背景技術】
【０００２】
通信機能を有するＰＬＣであるマスタと通信機能を有するＩ／Ｏターミナル（入力ユニット、出力ユニット、入出力混在ユニット）である複数のスレーブがフィールドバスに接続され、マスタからスレーブに出力データを一括して１つのＯＵＴフレームで転送し、スレーブは決められた時間帯に入力データを含むＩＮフレームをそれぞれ返送するようにしたＰＬＣシステムの通信方法において、マスタがスレーブの状況を知るための技術は既に知られている（例えば、特許文献１参照）。
【０００３】
また、イーサネット（登録商標）に代表されるようなＣＳＭＡ／ＣＤ方式のバス（又はネットワーク）では、同一バス（又はネットワーク）上に接続されたマスタやスレーブなどの各ノードが、バス（又はネットワーク）上でのデータの衝突を起こさないようしてデータを送信する必要がある。データを送信するノードは、バス（又はネットワーク）上のデータの衝突を回避するために最初にバス（又はネットワーク）の状況を確認してからデータを送信する。
【特許文献１】特開２００４−２７４３９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に示された発明では、マスタがスレーブの特定のスタータスなどを読み取るのみで、能動的にスレーブからマスタにステータスなどを報告する手段を有していない。また、ＣＳＭＡ／ＣＤ方式のバス／ネットワークでは、各ノードが相互にデータを転送することが可能であるが、データ衝突の発生により転送効率が落ちてしまう。
【０００５】
この発明は、上記問題点に着目してなされたものであり、その目的とするところは、マスタからスレーブに出力データを一括して１つのＯＵＴフレームで転送し、スレーブは決められた時間帯に入力データを含むＩＮフレームをそれぞれ返送するようにした転送効率のよい通信方法において、スレーブが能動的にマスタに対してデータを送信する手段を提供することにある。
【０００６】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のＰＬＣシステムの通信方法は、次の構成を採用するものである。
【０００８】
すなわち、本発明のＰＬＣシステムの通信方法は、通信機能を有するプログラマブル・コントローラであるマスタと通信機能を有するＩ／Ｏターミナル装置である複数のスレーブがフィールドバスに接続され、マスタからスレーブに出力データを一括して１つのＯＵＴフレームで転送し、スレーブは決められた時間帯に入力データを含むＩＮフレームをそれぞれ返送するようにしたＰＬＣシステムの通信方法において、ＯＵＴフレームにてマスタがメッセージ通信要求の有無を確認したい単数または複数のスレーブを指定し、ＯＵＴフレームで指定されたスレーブがメッセージ要求の有無を示す応答フレームを返送する、ようにしたことを特徴とするものである。
【０００９】
このような構成によれば、マスタからスレーブに出力データを一括して１つのＯＵＴフレームで転送し、スレーブは決められた時間帯に入力データを含むＩＮフレームをそれぞれ返送するようにした転送効率のよい通信方法を維持しつつも、スレーブが能動的にマスタに対してデータを送信する手段を提供することが可能となり、この種のＰＬＣシステムにおける応答性乃至機能性を向上させることができる。
【００１０】
本発明のＰＬＣシステムの通信方法においては、ＯＵＴフレームで指定されたスレーブは、メッセージ要求の有無を示す応答フレーム加えて、メッセージの種類を示す応答フレームを返送する、ようにしてもよい。このような構成によれば、変更されたメッセージ種別をマスタ側におけるメッセージ取得必要性の判断要素として使用可能となり、マスタ側におけるメッセージ取得自由度を向上させることができる。
【００１１】
本発明のＰＬＣシステムの通信方法においては、ＯＵＴフレームで指定されたスレーブは、メッセージ要求の有無を示す応答フレーム加えて、メッセージ送信要求を示す応答フレームを返送する、ようにしてもよい。このような構成によれば、実際にスレーブが能動的になって、スレーブからマスタへとメッセージ送信を行うことが可能となる。
【００１２】
上述した種々の本発明のＰＬＣシステムの通信方法においては、マスタは、スレーブに対してメッセージ送信許可フレームを送信し、スレーブにバス権を渡し、バス権をもったスレーブがマスタに対してメッセージを送信する、ようにしてもよい。このような構成によれば、マスタ・スレーブ通信の主導権の変更によりスレーブの自由度を向上させつつ、スレーブが主導権を持ってマスタに対して所望のデータを含むメッセージを送信することが可能となる。
【００１３】
本発明のＰＬＣシステムの通信方法の好ましい実施の形態においては、スレーブから送信されるメッセージの内容としては、スレーブに供給される電源の電圧とすることができる。このような構成によれば、スレーブに供給される電源の電圧を必要に応じてマスタの側で確認することが可能となる。
【００１４】
本発明のＰＬＣシステムの通信方法の好ましい実施の形態においては、スレーブから送信されるメッセージの内容としては、スレーブで検出された通信エラー回数の累積値とすることができる。このような構成によれば、スレーブで検出された通信エラー回数の累積値を必要に応じてマスタの側で確認することが可能となる。
【発明の効果】
【００１５】
本発明によれば、マスタからスレーブに出力データを一括して１つのＯＵＴフレームで転送し、スレーブは決められた時間帯に入力データを含むＩＮフレームをそれぞれ返送するようにした転送効率のよい通信方法を維持しつつも、スレーブが能動的にマスタに対してデータを送信する手段を提供することが可能となり、これを利用すれば、この種のＰＬＣシステムにおける応答性乃至機能性を向上させることができる。
【発明を実施するための最良の形態】
【００１６】
以下に、この発明のＰＬＣシステムの通信方法の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００１７】
マスタ及びスレーブを含むＰＬＣシステムの構成図が図７に示されている。同図に示されるように、このＰＬＣシステムは、通信機能を有するＰＬＣ１であるマスタ（Ｍ）と、通信機能を有するＩ／Ｏターミナル２である１もしくは２以上のスレーブ（Ｓ）とをフィールドバス（バス型ネットワーク）６にて結んで構成されている。
【００１８】
また、フィールドバス６上にあって、マスタ（Ｍ）と所定のスレーブ（Ｓ）とを結ぶ経路上には、１段又は２段以上に亘って中継局４として機能するリピータ（Ｒ）が介在されている。図７には、マスタ局（Ｍ）とスレーブ局（Ｓ）とを結ぶ経路にリピータ（Ｒ）が存在しない場合と、同経路に１台のリピータ（Ｒ）が介在されている場合と、同経路に２台のリピータ（Ｒ）が介在されている場合とが混在する形態のネットワークが示されている。なお、３はＰＣであり、５はフィールドバス６の終端における反射を低減する終端装置である。
【００１９】
図示のＰＬＣ１としては、パラレルバスの敷設された図示しないバックプレーン上に多数のコネクタを配置し、それらのコネクタに対して、ＣＰＵユニット、Ｉ／Ｏユニット、その他各種の特殊機能ユニット等々を任意に装着可能とした所謂ビルディングブロック型のＰＬＣが採用されている。
【００２０】
特に、この例では、バックプレーン上の１のコネクタに対して通信マスタユニット１０を装着することにより、通信マスタ局（Ｍ）として機能する「通信機能を有するＰＬＣ」１が構成されている。図では、それらのユニットのうちで、ＣＰＵユニット２０及び通信マスタユニット１０のみに参照符号が付されている。
【００２１】
通信マスタユニット１０の内部構成を示すハードウェア構成図が図８に示されている。同図に示されるように、通信マスタユニット１０は、通信物理層として機能する通信インタフェース（通信Ｉ／Ｆ）８０１と、所望の通信機能を実現するための回路をＬＳＩ化してなるマスタ用ＡＳＩＣ８０２と、ＣＰＵユニット２０との間で受け渡される送受信データのバッファエリアや、後述するＣＰＵ８０６の演算用ワークエリア等として機能するＲＡＭ８０３と、マイクロプロセッサを主体として構成されて装置全体を統括制御するためのＣＰＵ８０６と、各種の設定データが格納される不揮発性メモリ（ＥＥＰＲＯＭ）８０５と、各種の動作表示等を行うためのＬＥＤ表示部８０７と、各種の設定操作等に使用される設定スイッチ（設定ＳＷ）８０８と、ＣＰＵユニット２０へ通ずる内部バスへのインタフェースとして機能する内部バスインタフェース（内部バスＩ／Ｆ）８０４とを含んでいる。
【００２２】
当業者にはよく知られているように、この種のＰＬＣシステムにおいては、ＣＰＵユニット（図７参照）２０は、共通処理、Ｉ／Ｏリフレッシュ処理、ユーザプログラム実行処理、周辺サービス処理等を繰り返し一巡実行しており、Ｉ／Ｏリフレッシュ処理の実行の際には、バックプレーン上に装着されたローカルＩ／Ｏユニット（図示せず）との間のみならず、通信マスタユニット１０内のＲＡＭ８０３のＩ／Ｏ共有エリアとの間においても、Ｉ／Ｏリフレッシュ処理を実行する。
【００２３】
具体的には、ＣＰＵユニット２０の図示しないＩ／Ｏメモリ内のＯＵＴデータは、通信マスタユニット１０のＲＡＭ８０３内のＯＵＴエリアに転送され、同ＲＡＭ８０３のＩＮエリアのＩＮデータは、ＣＰＵユニット２０のＩ／Ｏメモリ内のＩＮエリアに転送される。これらの動作は、ＣＰＵユニット２０内のＭＰＵにより実行される。
【００２４】
一方、後に詳細に説明するように、通信マスタユニット１０と各Ｉ／Ｏターミナル装置（スレーブＳ）２との間では、ＣＰＵユニット２０のＩ／Ｏリフレッシュ動作とは非同期にフィールドバス６を介する通信が行われており、これにより各Ｉ／Ｏターミナル装置２と通信マスタユニット１０内のＲＡＭ１０３との間においても、一種のＩ／Ｏリフレッシュ処理が実行される。これらの動作は、通信マスタユニット１０内のＭＰＵにより実行される。
【００２５】
具体的には、スレーブ（Ｓ）であるＩ／Ｏターミナル装置２から受信されたＩＮデータは、通信マスタユニット１０内のＲＡＭ８０３のＩＮエリアに書き込まれ、同ＲＡＭ８０３のＯＵＴエリアのＯＵＴデータは、該当するＩ／Ｏターミナル装置２へと送信される。
【００２６】
このようにして、ＣＰＵユニット２０内のＩ／Ｏメモリと各Ｉ／Ｏターミナル装置２，２・・との間において、通信マスタユニット１０を経由してＩ／Ｏリフレッシュ処理が実行され、その結果として、リモート設置された各Ｉ／Ｏターミナル装置２，２・・・に接続されたＩ／Ｏ機器をＣＰＵユニット２０で取り扱うことが可能となるのである。
【００２７】
次に、スレーブ（Ｓ）であるＩ／Ｏターミナル内部のハードウェア構成図が図９に示されている。同図に示されるように、Ｉ／Ｏターミナル装置２は、通信物理層として機能する通信インタフェース（通信Ｉ／Ｆ）９０１と、所望の通信機能を実現するための回路をＬＳＩ化してなるスレーブ用ＡＳＩＣ９０２と、マイクロプロセッサを主体として構成されて装置全体を統括制御するためのＣＰＵ９０３と、各種の設定データが格納される不揮発性メモリ（ＥＥＰＲＯＭ）９０８と、各種の動作表示等を行うためのＬＥＤ表示部９０７と、各種の設定操作等に使用される設定スイッチ（設定ＳＷ）９０６と、Ｉ／Ｏ機器との間でデータをやり取りするための外部インタフェース部（Ｉ／Ｆ）部９０３と、装置全体に安定化直流電源を供給するための変圧機能を有する直流電源部９０４とを含んでいる。
【００２８】
そして、ＰＬＣ１と各Ｉ／Ｏターミナル２との間では、ＰＬＣ１を通信マスタ（Ｍ）、各Ｉ／Ｏターミナル２を通信スレーブ局（Ｓ）とする１対Ｎ或いは１対１のマスタ・スレーブ通信を通じて、Ｉ／Ｏデータや各種メッセージデータ等々のやり取りが行われる。
【００２９】
Ｉ／Ｏデータに関して言えば、具体的には、ＰＬＣ１から受信されるＯＵＴデータは、Ｉ／Ｏターミナル装置２のＩ／Ｆ部２０７を介してＩ／Ｏ機器へと送り出され、Ｉ／Ｏ機器からＩ／Ｆ部９０３を介してＩ／Ｏターミナル装置２に取り込まれたＩＮデータは、ＰＬＣ装置１へ宛てて送信される。これらの入出力データのやり取りについては、後にさらに詳細に説明する。
【００３０】
次に、本発明に係るＰＬＣシステムの通信方法が採用する通信プロトコルを図１を参照しつつ説明する。
【００３１】
本プロトコルの開始タイミングはマスタが管理する。図１に示されるように、通信サイクルは、マスタから送信するＯＵＴフレーム（１００）、ＯＵＴフレームにより指定されたスレーブからマスタに対して送信されるＣＮフレーム（１１０）〜（１１ｎ）、ＩＮスレーブから送信されるＩＮフレーム（１２０）〜（１２ｍ）と続く。
【００３２】
マスタユニット（Ｍ）と各スレーブ（Ｓ）との間の通信サイクルの開始タイミングはＯＵＴフレーム（１００）の正常受信完了をもって時間合わせされる。そして、それにつづくＣＮフレーム（１１０）〜（１１ｎ）、ＩＮフレーム（１２０）〜（１２ｍ）のフレーム長、送信されるフレーム数は固定であるため、各フレームの送信タイミングは、ＯＵＴフレーム（１００）の正常送信完了を開始タイミングとして定められた時間監視により行うことができる。
【００３３】
ＯＵＴフレームの構造の一例が図２に示されている。ＯＵＴフレーム（１００）は、フレームの開始を示す「スタート」２０１と、ＯＵＴフレームを示す「コマンド」２０２と、ＣＮフレーム送信要求するスレーブを示す「ＣＮ_frame送信要求アドレス」２０３と、ＯＵＴデータのデータ長を示す「レングス」２０４と、ＯＵＴスレーブ、ＭＩＸスレーブへの出力データを格納している「ＯＵＴデータ」２０５と、フレームの異常を検出するための「ＣＲＣ」２０６からなる。
【００３４】
マスタ（Ｍ）は、各ＯＵＴスレーブ（出力専用ユニット）宛またはＭＩＸスレーブ（入出力混在ユニット）宛の出力データをＯＵＴフレームのどこに割り当てるかの管理を行っており、そして各ＯＵＴスレーブのそれぞれは自局が受け取る出力データが、ＯＵＴフレームのどこに割り当てられているのかを通信サイクルが始まる前に、マスタから通知されている。
【００３５】
ＩＮフレームの構造の一例が図３に示されている。ＩＮフレームは、フレームの開始を示す「スタート」３０１と、ＩＮフレーム種類を示す「コマンド」３０２と、当該ＩＮフレームを送信したスレーブを示す「アドレス」３０３と、ＩＮデータのデータ長を示す「レングス」３０４と、ＩＮスレーブ、ＭＩＸスレーブからの入力データを格納している「ＩＮデータ」３０５と、フレームの異常を検出するための「ＣＲＣ」３０６からなる。
【００３６】
マスタ（Ｍ）は、各ＩＮスレーブまたはＭＩＸスレーブが、ＯＵＴフレーム正常受信後どの時間に送信するかの管理を行っており、通信サイクルが始まる前に、マスタから各ＩＮスレーブまたはＭＩＸスレーブに対してＩＮフレームを送信するタイミングがそれぞれ通知されている。各ＩＮスレーブまたはＭＩＸスレーブは、マスタから通知されたＩＮフレームを送信するタイミングの値を保持しており、それぞれのＩＮスレーブまたはＭＩＸスレーブはその値に従ってＩＮフレームを送信する。
【００３７】
ＩＮフレームは、ＩＮスレーブまたはＭＩＸスレーブがマスタに送信することができるが、ＯＵＴスレーブはＩＮフレームを発行することができないため、ＩＮフレーム内にメッセージ通信要求を行う手段を持たせることはできない。このため、すべての種類のスレーブが発行可能なＣＮフレームにメッセージ通信要求を行う手段を持たせる。
【００３８】
ＣＮフレームの構造の一例が図４に示されている。ＣＮフレームは、フレームの開始を示す「スタート」４０１と、ＣＮフレームを示す「コマンド」４０２と、当該ＣＮフレームを送信したスレーブを示す「アドレス」４０３と、メッセージの種類又はメッセージ送信要求を示す「アラーム」４０４と、フレームの異常を検出するための「ＣＲＣ」４０５からなる。
【００３９】
アラームビットとメッセージ種の対応例が図５に示されている。「アラーム」４０４は単数または複数ビットからなり、アラームビットとメッセージ種の対応はマスタと各スレーブ間とで事前に取れている。
【００４０】
ＣＮフレームの「コマンド」フィールドの一例が図６に示されている。「コマンド」フィールドは、当該ＣＮフレームを送信したスレーブのメッセージ送信要求の有無を示すビットを有している。
【００４１】
次に、本発明に関連して実行されるマスタ並びにスレーブの動作の概略を図１５〜図２０のフローチャートを参照して説明する。
【００４２】
Ｉ／Ｏ通信サイクル時のマスタの処理（ファームウェアの動作）を示すフローチャートが図１５に、Ｉ／Ｏ通信サイクル時のマスタの処理（ＡＳＩＣによるＯＵＴフレーム送信動作）を示すフローチャートが、図１６にそれぞれ示されている。
【００４３】
図１５に示される処理はＩ／Ｏ通信サイクルタイマによるタイマ割込にて周期的に実行される。処理が開始されると、先ず、ＣＮフレームにアラームビットの有無が判定され（ステップ１５０１）、アラームビットがあるときに限り（ステップ１５０１ＹＥＳ）、アラームビットの内容がＰＬＣへと通知される（ステップ１５０２）。
【００４４】
続いて、ＣＮフレームメッセージ要求の有無が判定され（ステップ１５０３）、メッセージ要求ありの場合に限り（ステップ１５０３ＹＥＳ）、メッセージキューにその旨が登録される（ステップ１５０４）。
【００４５】
続いて、メッセージキュー内に送信要求の有無か判定され（ステップ１５０５）、送信要求ありの場合に限り（ステップ１５０５ＹＥＳ）、メッセージ送信処理が実行される（ステップ１５０６）。
【００４６】
しかるのち、ＯＵＴフレームの作成処理（ステップ１５０７）、次の処理で使用するＣＮフレーム送信要求アドレスの作成処理（ステップ１５０８）、及びＩ／Ｏ通信サイクルタイマの起動処理（ステップ１５０９）を実行した後、ＯＵＴフレーム送信起動処理（ステップ１５１０）が実行される。
【００４７】
図１６に移って、ＡＳＩＣ８０２の側では、ＯＵＴフレームの送信処理が開始されると、スタートコードの送信処理（ステップ１６０１）、ファームウェアに設定されたコマンド、ＣＮフレームの送信、並びに、要求アドレス、ＯＵＴデータの送信を行った後（ステップ１６０２）、ＣＲＣの送信処理（ステップ１６０３）を行い、送信処理を終了する。
【００４８】
Ｉ／Ｏ通信サイクル時のスレーブの処理（ＡＳＩＣによるＩ／Ｏサイクル処理）を示すフローチャートが図１８に、Ｉ／Ｏ通信サイクル時のスレーブの処理（ファームウェアによるＩ／Ｏサイクルの処理）を示すフローチャートが図１９にそれぞれ示されている。
【００４９】
図１８において、Ｉ／Ｏ通信サイクル処理が開始されると、ＯＵＴフレームの正常受信が判定され（ステップ１８０１）、異常受信と判定されると（ステップ１８０１ＮＯ）、通信エラー回数の加算処理が実行される（ステップ１８０２）。これに対して、ＯＵＴフレームが正常に受信された場合には（ステップ１８０１ＹＥＳ）、自機がＯＵＴスレーブか或いはＭＩＸスレーブかの判定が行われる（ステップ１８０３）。
【００５０】
ここで、肯定判定である場合には（ステップ１８０３ＹＥＳ）、ＯＵＴ受信割込の発生処理（ステップ１８０４）が実行されるのに対して、否定判定である場合には（ステップ１８０３ＮＯ）、ＣＮフレーム送信タイマの起動処理が実行される（ステップ１８０５）。続いて、自機がＩＮスレーブ宛か或いはＭＩＸスレーブ宛かの判定が行われる（ステップ１８０３）。
【００５１】
ここで、肯定判定である場合には（ステップ１８０６ＹＥＳ）、ＩＮフレーム送信タイマの起動処理（ステップ１８０７）が実行されるのに対して、否定判定の場合には（ステップ１８０６ＮＯ）、自局がＣＮフレーム要求アドレスであるか否かの判定が行われる（ステップ１８０８）。
【００５２】
ここで、肯定判定の場合には（ステップ１８０８ＹＥＳ）、ＣＮフレーム送信タイマのタイムアップを待って（ステップ１８０９ＹＥＳ）、ＣＮフレーム送信処理（ステップ１８１０）が実行されるのに対して、否定判定の場合には（ステップ１８０８ＮＯ）、自機がＩＮスレーブか或いはＭＩＸスレーブかの判定が行われる（ステップ１８１１）。
【００５３】
ここで、肯定判定である場合には（ステップ１８１１ＹＥＳ）、ＩＮフレーム送信タイマのタイムアップを待って（ステップ１８１２ＹＥＳ）、ＩＮフレーム送信処理（ステップ１８０３）が実行されたのち、Ｉ／Ｏ通信サイクル処理は終了するのに対して、否定判定の場合には（ステップ１８１１ＮＯ）、直ちにＩ／Ｏ通信サイクル処理は終了する。
【００５４】
図１９に示されるように、ＯＵＴフレームの受信割込においては、当該スレーブに対応するデータを読み出し（ステップ１９０１）、ＡＳＩＣのＩ／Ｏ出力レジスタに書き込む処理（ステップ１９０２）が実行される。また、ＩＮリフレッシュ処理においてはねＡＳＩＣのＩ／Ｏ入力レジスタの読み出し処理（ステップ１９１１）、ＩＮフレームの作成処理（ステップ１９１２）、及びＩＮリフレッシュタイマの起動処理（ステップ１９０３）が実行される。
【００５５】
次に、以上説明した各フレーム並びにマスタ・スレーブの機能を使用して行われるマスタと各スレーブとの間におけるＩ／Ｏ通信サイクルによるデータ転送を時系列的に説明する。
【００５６】
［１］まず、マスタユニットがＯＵＴフレームを生成し送信する。このとき、「ＣＮ_frame送信要求アドレス」にＣＮフレームの送信を要求するスレーブを指定する。スレーブの指定の方法については、本フィールドに書かれたアドレスのスレーブのみＣＮフレームを送信するのか、本フィールドに書かれたアドレスからある範囲のアドレスを持つ複数のスレーブがＣＮフレームを送信するのか、事前に決めておけばどちらでもよい。
【００５７】
［２］ＯＵＴフレームを正常受信したＯＵＴスレーブおよびＭＩＸスレーブは「ＯＵＴデータ」内の自局に対応するデータを取り込む。
【００５８】
［３］「ＣＮ_frame送信要求アドレス」にてＣＮフレームの送信要求を指示されたスレーブは、メッセージ送信要求の有無に関わらずＣＮフレームを返信する。メッセージの有無に関わらずＣＮフレームを返信することにより、マスタは当該アドレスのスレーブが接続されていることを確認することができる。複数のスレーブがＣＮフレームを返信する場合は、ＣＮフレームが衝突しないようにＩＮフレームと同様の方法で、各スレーブがＣＮフレームを送信するタイミングをずらす必要がある。
【００５９】
［４］ＯＵＴフレームを正常受信したＩＮスレーブおよびＭＩＸスレーブは、事前に決められたＩＮフレーム送信タイミングに従ってＩＮフレームをマスタに送信する。
【００６０】
なお、マスタは、ＣＮ送信要求アドレスを順次変更してＯＵＴフレームを送信することにより、すべてのスレーブのメッセージ送信要求の有無を確認することができる。
【００６１】
以上説明したＩ／Ｏ通信サイクル時のマスタの処理フローが図１５〜図１７に、スレーブの処理フローが図１８，１９に、図１５〜１７に記載のメッセージキューの構造が図２０に示されている。メッセージキューは、マスタおよびＰＬＣからアクセス可能である。
【００６２】
次にメッセージ通信について説明する。メッセージ通信に使用するフレームの構造が図１０に示されている。メッセージフレームは、フレームの開始を示す「スタート」１００１と、メッセージフレームを示す「コマンド」１００２と、当該メッセージフレームの宛先ノードを示す「宛先アドレス」１００３と、当該メッセージフレームを送信したノードを示す「発信元アドレス」１００４と、メッセージデータのデータ長を示す「レングス」１００５と、メッセージ種に対応した「メッセージデータ」１００６と、フレームの異常を検出するための「ＣＲＣ」１００７からなる。
【００６３】
メッセージフレームには用途がいくつかあり、メッセージフレームの送信許可を行うフレーム、データを転送するためのイベントフレーム、メッセージデータを正常受信したことを示すＡＣＫフレーム、メッセージデータが受信できないことをしめすＢＵＳＹフレームなどがあり、これらの区別には、上記の「コマンド」フィールドを使用する。なお、「メッセージデータ」は必ずしもあるとは限らない。
【００６４】
メッセージフレームの「コマンド」フィールドを図１４に示す。メッセージフレームは、図１に示されるＩ／Ｏ通信サイクルとは異なり、メッセージ通信サイクルと呼ばれる通信サイクルにて送受信される。通信サイクルとメッセージサイクルとの関係が図１１に示されている。メッセージ通信サイクルは、マスタがメッセージを送信する場合またはスレーブがマスタに対してメッセージ通信を要求しマスタが許可する場合にのみ挿入される。
【００６５】
まず、マスタからスレーブに対して最初にメッセージを送信する場合について説明する。先ほどのＣＮフレームの中にマスタからスレーブへのメッセージ通信を要求するメッセージ種が指定された場合、マスタはその重要度に応じて当該スレーブに対してメッセージ送信を行う。この場合のメッセージ通信の流れを以下に示す。
【００６６】
［１］マスタは、「スタート」１００１、イベントフレームを示す「コマンド」１００２、メッセージ送信を要求してきたスレーブのアドレスを「宛先アドレス」１００３、自局のアドレスを「発信元アドレス」１００４、送信するメッセージデータ量に応じたデータ長を「レングス」１００５、メッセージの内容を「メッセージデータ」１００６、「ＣＲＣ」１００７を生成し、メッセージフレームを送信する。
【００６７】
［２］スレーブは、「宛先アドレス」１００３により自局宛かどうか判断する。自局宛ではない場合、フレームを破棄する。
【００６８】
［３］「宛先アドレス」１００３により自局宛と判断したスレーブは、フレームが正常受信した場合は、「スタート」１００１、ＡＣＫフレームを示す「コマンド」１００２、マスタのアドレスを「宛先アドレス」１００３、自局のアドレスを「送信元アドレス」１００４、「ＣＲＣ」１００７をセットし、メッセージを送信する。フレームを正常受信できない場合は、「スタート」１００１、ＢＵＳＹフレームを示す「コマンド」１００２、マスタのアドレスを「宛先アドレス」１００３、自局のアドレスを「送信元アドレス」１００４、データ長‘０’を「レングス」１００５、適切な値を「ＣＲＣ」１００７にセットし、メッセージを送信する。
【００６９】
上記のマスタからスレーブに対してメッセージを送信する場合のメッセージサイクルが図１２に示されている。図１２に示されるように、１つのメッセージ通信サイクル内にて、複数のイベントフレームを送受信してもよい。
【００７０】
次に、スレーブからマスタに対してメッセージ送信する場合について説明する。この場合のメッセージ通信の流れを以下に示す。
【００７１】
［１］マスタは、「スタート」１００１、メッセージ送信許可フレームを示す「コマンド」１００２、メッセージ送信許可を要求してきたスレーブのアドレスを「宛先アドレス」１００３、自局のアドレスを「発信元アドレス」１００４、データ長‘０’を「レングス」１００５、適切な値を「ＣＲＣ」１００７にセットし、メッセージフレームを送信する。
【００７２】
［２］スレーブは、「宛先アドレス」１００３により自局宛かどうか判断する。自局宛ではない場合、フレームを破棄する。
【００７３】
［３］「宛先アドレス」１００３により自局宛と判断したスレーブは、「スタート」１００１、イベントフレームを示す「コマンド」１００２、マスタのアドレスを「宛先アドレス」１００３、送信元のマスタのアドレスを「発信元アドレス」１００４、送信するメッセージデータ量に応じたデータ長を「レングス」１００５、メッセージの内容を「メッセージデータ」１００６、「ＣＲＣ」１００７をセットし、メッセージを送信する。
【００７４】
［４］マスタおよびスレーブは、「宛先アドレス」１００３により自局宛かどうか判断する。自局宛ではない場合、フレームを破棄する。
【００７５】
［５］「宛先アドレス」１００３により自局宛と判断したマスタは、フレームが正常受信した場合は、「スタート」１００１、ＡＣＫフレームを示す「コマンド」１００２、メッセージの送信元アドレスを「宛先アドレス」１００３、自局のアドレスを「発信元アドレス」１００４、「ＣＲＣ」１００７をセットし、メッセージを送信する。フレームを正常受信できない場合は、「スタート」１００１、ＢＵＳＹフレームを示す「コマンド」１００２、メッセージの送信元アドレスを「宛先アドレス」１００３、自局のアドレスを「発信元アドレス」１００４、「ＣＲＣ」１００７をセットし、メッセージを送信する。
【００７６】
上記のスレーブからマスタに対してメッセージを送信する場合のメッセージサイクルが図１３に示されている。図１３に示されているように、１つのメッセージ通信サイクル内にて、マスタは複数のメッセージ送信許可フレームを送信し、スレーブに対して複数のイベントフレームの送信を許可してもよい。
【００７７】
本発明において、スレーブとマスタ間で、メッセージ通信が行われる具体的な例としては、次のものを挙げることかできる。
【００７８】
［１］スレーブに供給されている電源電圧をスレーブがモニタしており、モニタ値がある閾値を超えた場合に、スレーブはマスタに対して、電源電圧値異常のアラームをＣＮフレームを使用して通知する。この通知のみで電源異常は判断するシステムや、さらにマスタがスレーブに対してメッセージ通信許可フレームを送信し、メッセージ送信を許可されたスレーブは、具体的な電源電圧値をメッセージフレームを使用して、マスタに通知するシステムなどが考えられる。
【００７９】
［２］スレーブが、通信エラーの回数をモニタしており、モニタ値がある閾値を超えた場合に、スレーブはマスタに対して、通信異常多発のアラームをＣＮフレームを使用して通知する。この通知のみで通信異常は判断するシステムや、さらにマスタがスレーブに対してメッセージ通信許可フレームを送信し、メッセージ送信を許可されたスレーブは、具体的な発生回数をメッセージフレームを使用してマスタに通知するシステムなどが考えられる。
【００８０】
具体的な例として、通信エラー回数を検出して、エラー回数を報告する場合の例を説明する。
【００８１】
［１］スレーブのファームウェアは、図１８に示される「通信エラー回数」を定期的にモニタして、閾値が超えているか監視している。閾値を超えた場合は、ＣＮフレームのアラームビットを設定する。
【００８２】
［２］図１５に示されるように、マスタのファームウェアは、ＣＮフレーム送信要求アドレスを逐次更新してＯＵＴフレームを送信しているため、いずれＣＮフレーム送信要求アドレスフィールドに当該スレーブのアドレスを含むＯＵＴフレームが送信される。
【００８３】
［３］図１８及び図１９に示すように、スレーブは、自局のアドレスがＣＮフレーム送信要求アドレスフィールドに含まれているため、［１］で設定したアラームビットを含むＣＮフレームを送信する。
【００８４】
［４］図１５〜図１７に示されるように、マスタのＡＳＩＣは、受信したＣＮフレームのアラームの内容と、メッセージ送信要求の有無をＡＳＩＣ内のメモリ領域に格納しておく。
【００８５】
［５］図１５〜図１７に示すように、次のＩ／Ｏ通信サイクルで、マスタのファームウェアはアラームのメッセージ内容を確認し、ＰＬＣに通信エラー回数が閾値を超えていることを報告する。
【００８６】
［６］ＰＬＣのアプリケーションに依存するが、ここではさらに通信エラーの回数を読み出す場合について述べる。この場合、ＰＬＣはマスタに対して通信エラーの回数読み出しを指示する。
【００８７】
［７］通信エラーの回数読み出しを指示されたマスタは、通信エラーの回数読み出し要求を意味するメッセージの送信要求を、メッセージキューに登録する。メッセージキューはＩ／Ｏ通信サイクル毎に実行されていくため、いずれ当該メッセージ要求は読み出される。
【００８８】
［８］図１５〜図１７に示されるように、［７］で登録されたメッセージ要求が読み出された場合、マスタのファームウェアは、宛先に当該スレーブを、メッセージデータに当該メッセージを示すイベントフレームを作成し、メッセージを送信する。マスタのファームは、図１２に示すようなメッセージ通信サイクルに必要な時間経過後、「ＯＵＴフレームの生成」処理に移る。
【００８９】
［９］通信エラーの回数読み出し要求を受信したスレーブのＡＳＩＣは、ＡＣＫフレームまたはＢＵＳＹフレームを返信し、イベントフレーム受信割り込みをファームウェアに通知する。
【００９０】
［１０］割り込みを受けたスレーブのファームウェアは、ＡＳＩＣ内の通信エラー回数を格納しているレジスタからデータを読み出し、その値を含んだイベントフレームを作成する。イベントフレームの作成が完了すると、メッセージ送信要求ありのＣＮフレームを設定する。
【００９１】
［１１］［２］，［３］，［４］と同様に、［１０］で設定したＣＮフレームはいずれマスタのＡＳＩＣ内に格納される。
【００９２】
［１２］図１５〜図１７に示されるように、次のＩ／Ｏ通信サイクルで、マスタのファームウェアはスレーブからメッセージ送信要求があったことを認識し、メッセージ送信許可フレームを送信要求をメッセージキューに登録する。［７］と同様に、メッセージキューはＩ／Ｏ通信サイクル毎に実行されていくため、いずれ当該メッセージ要求は読み出される。
【００９３】
［１３］図１５〜図１７に示されるように、［１２］で登録されたメッセージ要求が読み出された場合、マスタのファームウェアは、宛先に当該スレーブを示すメッセージ送信許可フレームを作成し、メッセージを送信する。マスタのファームは、図１３に示すようなメッセージ通信サイクルに必要な時間経過後、「ＯＵＴフレームの生成」処理に移る。
【００９４】
［１４］メッセージ送信許可フレームを受信したスレーブのＡＳＩＣは、項１０で作成したイベントフレームを送信する。
【００９５】
［１５］イベントフレームを受信したマスタのＡＳＩＣは、ＡＣＫフレームまたはＢＵＳＹフレームを返信し、イベントフレーム受信割り込みをファームウェアに通知する。
【００９６】
［１６］割り込みを受けたマスタのファームウェアはイベントフレーム中に含まれる通信エラー回数をＰＬＣに通知する。
【産業上の利用可能性】
【００９７】
本発明によれば、マスタからスレーブに出力データを一括して１つのＯＵＴフレームで転送し、スレーブは決められた時間帯に入力データを含むＩＮフレームをそれぞれ返送するようにした転送効率のよい通信方法を維持しつつも、スレーブが能動的にマスタに対してデータを送信する手段を提供することが可能となり、これを利用すれば、この種のＰＬＣシステムにおける応答性乃至機能性を向上させることができる。
【図面の簡単な説明】
【００９８】
【図１】通信サイクルにおいて送受信されるフレームを表す図である。
【図２】ＯＵＴフレームの構造を示す図である。
【図３】ＩＮフレームの構造を示す図である。
【図４】ＣＮフレームの構造を示す図である。
【図５】アラームビットとメッセージの対応を示した図である。
【図６】ＣＮフレームのコマンドフィールドの意味を示した図である。
【図７】ＰＬＣシステムの構成図である。
【図８】マスタユニットの構成図である。
【図９】スレーブユニットの構成図である。
【図１０】メッセージフレームの構造を示す図である。
【図１１】Ｉ／Ｏ通信サイクルとメッセージ通信サイクルの関係を示す図である。
【図１２】マスタからスレーブに対してメッセージを送信する場合のメッセージサイクルを表す図である。
【図１３】スレーブからマスタに対してメッセージを送信する場合のメッセージサイクルを表す図である。
【図１４】メッセージフレームのコマンドフィールドの意味を示した図である。
【図１５】Ｉ／Ｏ通信サイクルのマスタの処理（ファームウェアの動作）を示すフローチャートである。
【図１６】Ｉ／Ｏ通信サイクル時のマスタの処理（ＡＳＩＣによるＯＵＴフレーム送信動作）を示すフローチャートである。
【図１７】Ｉ／Ｏ通信サイクル時のマスタの処理（ＡＳＩＣによるフレーム受信動作）を示すフローチャートである。
【図１８】Ｉ／Ｏ通信サイクル時のスレーブの処理（ＡＳＩＣによるＩ／Ｏサイクル処理）を示すフローチャートである。
【図１９】Ｉ／Ｏ通信サイクル時のスレーブの処理（ファームウェアによるＩ／Ｏサイクルの処理）を示すフローチャートである。
【図２０】メッセージキューの構造の一例を示す図である。
【符号の説明】
【００９９】
１      ＰＬＣ
２      Ｉ／Ｏターミナル
３      ＰＣ
４      中継局
５      終端装置
６      バス型ネットワーク
１０    通信マスタユニット
２０    ＣＰＵユニット
８０１  通信Ｉ／Ｆ
８０２  マスタ用ＡＳＩＣ
８０３  ＲＡＭ
８０４  内部バスＩ／Ｆ
８０５  ＥＥＰＲＯＭ
８０６  ＣＰＵ
８０７  ＬＥＤ表示
８０８  設定ＳＷ
９０１  通信Ｉ／Ｆ
９０２  スレーブ用ＡＳＩＣ
９０３  Ｉ／Ｏ部
９０４  電源
９０５  ＭＰＵ
９０６  設定ＳＷ
９０７  ＬＥＤ表示
９０８  ＥＥＰＲＯＭ
【図１】
0004458279.tif 000002
【図２】
0004458279.tif 000003
【図３】
0004458279.tif 000004
【図４】
0004458279.tif 000005
【図５】
0004458279.tif 000006
【図６】
0004458279.tif 000007
【図７】
0004458279.tif 000008
【図８】
0004458279.tif 000009
【図９】
0004458279.tif 000010
【図１０】
0004458279.tif 000011
【図１１】
0004458279.tif 000012
【図１２】
0004458279.tif 000013
【図１３】
0004458279.tif 000014
【図１４】
0004458279.tif 000015
【図１５】
0004458279.tif 000016
【図１６】
0004458279.tif 000017
【図１７】
0004458279.tif 000018
【図１８】
0004458279.tif 000019
【図１９】
0004458279.tif 000020
【図２０】
0004458279.tif 000021