(58)【調査した分野】(Int.Cl.,DB名)
前記グループ判定部は、前記機器情報から得られる前記各スレーブユニットの動作内容が異常を感知すると自動停止するものか否かの属性の情報から、前記各スレーブユニットのグループ分けを行い、
前記設定部は、前記データフィールドを、異常を感知すると自動停止する安全機器と否の非安全機器とに分けられた前記グループ毎に確保したフレームのフォーマットで送信されるような設定情報を生成する、
請求項1または2に記載の設計支援装置。
前記グループ分けの際は、前記機器情報から得られる前記各スレーブユニットの動作内容が異常を感知すると自動停止するものか否かの属性の情報から、前記各スレーブユニットのグループ分けを行い、
前記フォーマットの生成の際は、前記データフィールドを、異常を感知すると自動停止する安全機器と否の非安全機器とに分けられた前記グループ毎に確保したフレームのフォーマットで送信されるような設定情報を生成する、
請求項4または5に記載の設計支援方法。
前記グループ分けの際は、前記機器情報から得られる前記各スレーブユニットの動作内容が異常を感知すると自動停止するものか否かの属性の情報から、前記各スレーブユニットのグループ分けを行わせ、
前記フォーマットの生成の際は、前記データフィールドを、異常を感知すると自動停止する安全機器と否の非安全機器とに分けられた前記グループ毎に確保したフレームのフォーマットで送信されるような設定情報を生成させる、
請求項7または8に記載の設計支援プログラム。
【発明を実施するための形態】
【0016】
以下、本願発明の実施形態について説明する。以下に示す実施形態は、本願発明の一態様であり、本願発明の技術的範囲を限定するものではない。
【0017】
図1は、PLCシステムの全体構成の一例を示した図である。PLCシステムSは、PLC1と、ネットワーク2を経由して接続されるスレーブユニット3とを有する。PLC1には、設計支援装置4が接続される。
【0018】
PLC1は、各種の演算処理を実行するCPU(Central Processing Unit)ユニット5やIO(Input/Output)ユニット6、特殊ユニット7を有する。CPUユニット5やIOユニット6、特殊ユニット7は、PLCシステムバス8を介してデータを互いに遣り取りできるように構成される。CPUユニット5やIOユニット6、特殊ユニット7には、電源ユニット9から適切な電圧の電力が供給される。
【0019】
IOユニット6は、各種の入出力処理を司るユニットである。IOユニット6は、例えば、検出スイッチ等のセンサ類から出力される信号を取得し、或いは、リレーやアクチュエータといった各種デバイスに対して信号を出力する。特殊ユニット7は、アナログデータの入出力や温度制御、特定の通信方式による通信といった、IOユニット6ではサポートしない各種機能の実現を司るユニットである。
【0020】
ネットワーク2は、CPUユニット5と各スレーブユニット3との間で取り交わされる各種データが伝送される通信線である。ネットワーク2では、CPUユニット5から送られるフレームが各スレーブユニット3により順に転送される。CPUユニット5から送られるフレームを各スレーブユニット3が順に転送する通信方式に準拠するプロトコルとしては、例えば、EtherCATを挙げることができる。
【0021】
なお、
図1では、PLCシステムバス8およびネットワーク2の両方を有するPLCシステムSを例示しているが、本実施形態は、例えば、IOユニット6および特殊ユニット7をネットワーク2経由でCPUユニット5に接続してもよい。
【0022】
PLCシステムSにおいては、PLC1のCPUユニット5がEtherCATにおけるマスターユニットとして機能する。よって、PLC1は、本願でいう「マスターユニット」の一例に相当する。しかし、本実施形態は、例えば、CPUユニット5の代わりに他のユニットがEtherCATにおけるマスターユニットとして機能するものを排除するものではない。
【0023】
PLCシステムSは、例えば、各種の工業製品を製造する製造工場や、原材料に対する各種の化学プロセスが施される化学プラント、その他の各種機械設備類に適用可能である。
【0024】
図2は、本発明の実施の形態に係る設計支援装置4のハードウェア構成を示す模式図である。
図2を参照して、設計支援装置4は、典型的には、汎用のコンピュータで構成される。
【0025】
図2を参照して、設計支援装置4は、OSを含む各種プログラムを実行するCPU41と、BIOSや各種データを格納するROM(Read Only Memory)44と、CPU41でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM43と、CPU41で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)42とを含む。
【0026】
設計支援装置4は、さらに、ユーザからの操作を受け付けるキーボード45およびマウス46と、情報をユーザに提示するためのモニタ47とを含む。設計支援装置4は、PLC1などと通信するための通信インターフェイス(IF)48、CD−ROMにアクセスするCD−ROM駆動装置49を含む。
【0027】
図3は、CPUユニット5のハードウェア構成の一例を示した図である。CPUユニット5は、マイクロプロセッサ51、チップセット52、メインメモリ53、不揮発性メモリ54、システムタイマ55、PLCシステムバスコントローラ56、フィールドネットワークコントローラ57、USBコネクタ58を有する。チップセット52と他のコンポーネントとの間は、各種のバスを介して互いに接続されている。
【0028】
CPUユニット5は、リアルタイムOS(Operating System)やPLC1のシステムプログラム、ユーザプログラム、モーション演算プログラムといった各種のプログラム、及び、システム設定パラメータといった各種データの処理を、システムタイマ55が発生する割り込み信号を利用しながらマイクロプロセッサ51が処理することにより、モーション制御サイクルごとの制御動作を実現する。
【0029】
PLCシステムバスコントローラ56は、PLCシステムバス8を介したデータの遣り取りを制御するコントローラであり、PLCシステムバス8を介してIOユニット6や特殊ユニット7と遣り取りされるデータを一時的に保持したり、保持しているデータの転送を行ったりする。
【0030】
フィールドネットワークコントローラ57は、ネットワーク2を介したデータの遣り取りを制御するコントローラであり、EtherCATのプロトコルに従い、ネットワーク2を介して各スレーブユニット3と遣り取りされるデータを一時的に保持したり、保持しているデータの転送を行ったりする。
【0031】
図4は、設計支援装置4およびCPUユニット5の各々において実現される機能ブロックの一例を示した図である。設計支援装置4の電源がオンになり、CPUユニット4のRAM43にロードされたプログラムをCPU41が実行するとツール機能部10が実現される。また、PLC1の電源がオンになり、CPUユニット5のメインメモリ53にロードされたプログラムをマイクロプロセッサ51が実行するとPLC機能部20が実現される。
【0032】
ツール機能部10は、ネットワークトポロジの作成を支援するツール類をユーザに提供する機能部であり、機器情報管理部11や操作部12、グループ判定部13、設定情報構築部14、設定情報出力部15、使用定義ファイル管理部17等の各種機能部や定義ファイル群16を擁する。
【0033】
機器情報管理部11は、各スレーブユニット3の型式等の機器情報を取得して管理する。機器情報管理部11は、機器情報を外部のファイルから読み出して管理してもよいし、或いは自身が管理するファイルから読みだして管理してもよい。機器情報管理部11は、本願でいう「機器情報取得部」の一例に相当する。
【0034】
操作部12は、設計支援装置4の表示装置に表示されるネットワークトポロジの画面を出力し、或いは、設計支援装置4の入力装置におけるユーザからの入力操作を受け付ける。操作部12が生成するネットワークトポロジの画面には、例えば、スレーブユニット3等の各機器や機器間の接続状況が示される。
【0035】
グループ判定部13は、各スレーブユニット3の機器情報、定義ファイルの情報から各スレーブユニット3をグループ分けする。
【0036】
設定情報構築部14は、グループ判定部13によるグループ分けの判定結果に基づいてコンフィグレーションデータを生成する。コンフィグレーションデータは、フレームのフォーマットを規定したデータであり、例えば、グループ毎に確保されるデータフィールドのサイズ、ワーキングカウンタの期待値、各グループに属しているスレーブユニット3のアドレス等を規定したデータである。設定情報構築部14は、本願でいう「設定部」の一例に相当する。
【0037】
設定情報出力部15は、設定情報構築部14が生成したネットワーク設定のデータやユーザが作成したプログラムをコンパイルし、通信IF48を通じてCPUユニット5へ転送する。
【0038】
定義ファイル群16は、グループ判定部13が機器情報から各スレーブユニット3をグループ分けする際のロジック等を記述した一又は複数のファイルであり、例えば、ネットワーク2に接続されている各スレーブユニット3の機器情報またはネットワーク2構成の情報から各スレーブユニット3が属すべきグループの情報を記述したものである。定義ファイル群16は、HDD42又はROM44等の格納部に格納されている。
【0039】
使用定義ファイル管理部17は、操作部12を介して受け付ける入力に従い、使用する定義ファイルを管理する。
【0040】
なお、上記のツール機能部10は、設計支援装置4において実現されるものに限定されるものでなく、例えば、CPUユニット5において実現されるものであってもよい。
【0041】
また、設計支援装置4は、ツール機能部10だけでなく、ユーザからの入力を受け付けて制御プログラムを作成または編集するプログラムエディット機能や、ユニットの複数の動作モードがある場合に当該動作モードの設定を行うユニット設定機能を一体で有していても良い。
【0042】
次に、PLC機能部20について説明する。PLC機能部20は、ツール機能部10が提供するツール類を使ってユーザが作成したネットワーク設定に従い、ネットワーク2経由で各スレーブユニット3へ送るフレームを生成する機能を司る機能部であり、設定ファイル読出部21や起動処理部22、システム構成認識部23、アプリデータ生成部24、フレーム生成部25等の各種機能部を擁する。
【0043】
設定ファイル読出部21は、ツール機能部10によって作成された設定ファイルの内容を読み出してメインメモリ53に展開する。設定ファイル読出部21は、フレーム生成部25から読出しの要求があると、メインメモリ53に展開された設定ファイルの内容に関するデータを出力する。
【0044】
起動処理部22は、PLC1が起動する際に、設定ファイル読出部21に設定ファイルからシステム構成に関する情報を読み出させ、システム構成認識部23へ出力させる。
【0045】
システム構成認識部23は、PLC1が起動する際に設定ファイル読出部21から出力されるシステム構成に関する情報や、ネットワーク2経由で得られる各スレーブユニット3からの情報に基づき、システム構成の現状を管理する。
【0046】
アプリデータ生成部24は、メインメモリ53の記憶領域から、各スレーブユニット3へ出力する出力データを取り込むとともに、現状のシステム構成においてデータ交換の対象となるスレーブユニット3のデータをフレーム生成部25に出力する。
【0047】
フレーム生成部25は、モーション制御サイクルごとに設定ファイル読出部21へ読出し要求を行い、設定ファイル読出部21から出力される設定ファイルの内容に関するデータを参照する。そして、フレーム生成部25は、アプリデータ生成部24から出力された出力データを加えたフレームを、設定ファイルに規定された内容のフォーマットに従って生成する。
【0048】
図5は、設計支援装置4において実現される処理フローの一例を示した図である。以下、設計支援装置4において実現される各処理について、
図5のフロー図に沿って説明する。設計支援装置4の電源がオンになり、CPU41によるプログラムの実行によってツール機能部10が実現されると、設計支援装置4のツール機能部10は、操作部12を介してユーザからのネットワークトポロジの変更として新しいユニットの追加及びネットワーク構成の追加の入力を受付、ネットワークトポロジを形成するユニットの変更の有無を確認する(S101)。ツール機能部10は、操作部12から指定されたネットワーク構成の入力を受付、機器情報管理部11から機器情報を読み出す。グループ判定部13は、読み出した機器情報を用いてネットワークトポロジを形成するユニットをグループ化する(S102)。設定情報構築部14は、グループ判定部13によって判定されたグループについてデータグラムを分けるための設定情報を生成する。(S103)
【0049】
図6は、操作部12が出力する設計支援用の表示画面の一例を示した図である。操作部12は、PLCシステムSのネットワークトポロジを表したネットワークトポロジ画面を左側に表示し、ネットワークトポロジに追加可能なユニットを並べたユニットリスト画面を右側に表示した設計支援用のGUI(Graphical User Interface)を表示する。設計支援用の表示画面は、機器情報管理部11が管理する機器情報等に基づいて生成される。
【0050】
ユニットリスト画面に表示される各ユニットは、ユニットの名称、及びユニットの属性に関する表示(
図6でいう「標準」および「安全」という記載に相当)を付したアイコンとして表示される。各アイコンには、接続ラインが付与されている。接続ラインは、ユニットに設けられている接続インターフェイスのポート数に対応している。ポートには、インポートとアウトポートの2種類がある。インポートは、ネットワークトポロジにおいて自装置よりも上位に位置する上位装置を接続するためのポートであり、各アイコンの左辺から上側へ向かう接続ラインのポートに対応している。上位装置としては、例えば、PLC1、或いは、自装置とPLC1との間に接続されるスレーブユニット3が挙げられる。また、アウトポートは、ネットワークトポロジにおいて自装置よりも下位に位置する下位装置を接続するためのポートであり、各アイコンの左辺から下側へ向かう接続ラインのポートに対応している。下位装置としては、例えば、ネットワークトポロジ上、自装置から見てPLC1がある側の反対側のポートに接続されるスレーブユニット3が挙げられる。
【0051】
ネットワークトポロジ画面には、PLCシステムSのネットワークを形成するPLC1や各スレーブユニット3が、1行につき1部品となるように表示される。ネットワークトポロジ画面には、上位装置が上側の行に表示され、下位装置が下側の行に表示される。最も上側の行には、PLCシステムSを構成するEtherCATにおけるマスターユニットとして機能する設計支援装置4を有するPLC1が表示される。そして、PLC1から見て下位装置にあたる各スレーブユニット3が、順位の高いユニットから順にPLC1の下側に表示される。ネットワークトポロジ画面では、このように、各スレーブユニット3の接続関係が、スレーブユニット3が配置される行の相違によって視覚的に判りやすいように表示されるので、ユーザは、各スレーブユニット3の接続順序を容易に把握しながらネットワークを設計することができる。
【0052】
操作部12は、このような設計支援用の画面を表示し、マウス46等のポインティングデバイスを使ったユーザ操作を受け付ける。ユーザは、ユニットのアイコンをドラッグアンドドロップする操作を行うことにより、ユニットリストに表示されるユニットのアイコンをネットワークトポロジに加える加入操作を行ったり、ネットワークトポロジからユニットのアイコンを離脱させる離脱操作を行ったりすることができる。
図6では、ユニットリストにあるユニットのアイコンをネットワークトポロジに加える操作の様子が例示されている。
【0053】
設計支援用の上記GUIにおいて、ユーザがユニットの加入操作あるいは離脱操作を行った場合、ネットワークトポロジを形成するユニットが変更されたことになる。そこで、ユーザによるユニットの加入操作あるいは離脱操作が行われた場合、設計支援装置4では、ネットワークトポロジ内の各ユニットをグループ化する処理がグループ判定部13によって行われる(S102)。
【0054】
図7は、各ユニットをグループ分けする際の各グループの加入条件を示した表の一例であり、定義ファイル群16が擁する定義ファイルの記述内容の一例である。
図7に示す「TxPdo」(Transmission Process Data Object)は、スレーブユニットがマスターユニットへ送るプロセスデータのサイズであり、例えば、スレーブユニットの制御状態や現在値等のデータをマスターユニットへ送信するスレーブユニットの場合にはTxPdoが0より大きい値になる。
図7に示す「RxPdo」(Receive Process Data Object)は、スレーブユニットがマスターユニットから受け取るプロセスデータのサイズであり、例えば、制御コマンドや制御目標値等のデータをマスターユニットから受信するスレーブユニットの場合にはRxPdoが0より大きい値になる。
図7に示す「安全」とは、各スレーブユニットに機器情報の一部として規定されているスレーブユニットの属性の一例であり、異常発生時に自動停止する安全機能を有するユニットが所属する属性である。
図7に示す「非安全」は、安全機能を有さないユニットが所属する属性である。機器の動作内容が設備全体の安全性に影響を及ぼし得るユニットには、例えば、ネットワーク2を巡回するフレームによるデータのリフレッシュが一定時間行われない場合に例外動作を実行するウォッチドッグ(Watchdog)が設けられる。また、
図7に示す「軸」とは、各スレーブユニットに機器情報の一部として規定されているスレーブユニットの属性の一例であり、連続的な動作を実現するユニットが所属する属性である。
図7に示す「非軸」は、「軸」とは反対に、非連続的な動作を実現するユニットが所属する属性である。使用定義ファイル管理部17が、記述内容が
図7の表に示されるような定義ファイルの使用を指定している場合、グループ判定部13は、ユニットの属性、およびTxPdoやRxPdoの有無に従って各ユニットをグループ分けすることになる。
【0055】
図8は、各グループをユニットの属性毎に整理した表の一例を示した図である。グループ判定部13が、使用定義ファイル管理部17が指定する定義ファイルの記述内容に従い、各ユニットが所属するグループをユニットの属性毎に整理すると、例えば、
図8に示されるように、各グループは4種類に分けられる。
【0056】
図9は、操作部12が出力する設計支援用の表示画面の第2例を示した図である。スレーブユニット3は、例えば、一又は複数のユニットを設計支援用のGUI上でカプラーに組み合わせて構成することができる。カプラーはPLCおよび1または複数のユニットと接続される。カプラーはPLCからデータを受信し、受信したデータをユニットに送信する機能とユニットからデータを受信し、PLCに送信する機能を有する。カプラーに組み合わせ可能なユニットには、「非安全」に属する標準的なユニットや、「安全」に属するユニット、「軸」に属するユニット(サーボ、モータ等)等が存在する。このように、スレーブユニット3を構成する各ユニットの属性が多岐に渡っていても、
図8に示す表に従えば、グループ1〜3、グループ4〜6、グループ7〜9、グループ10〜12の4つのうち何れかに属することになる。この例ではカプラーは、組み合わせ可能なユニットを代表する。この例ではユニットの属性が「安全」/「非安全」、「軸」/「非軸」と複数あった場合に当該カプラーが属するグループが決められる例を示す。
【0057】
例えば、ネットワークトポロジにカプラーが追加された場合、当該カプラーには「軸」に属するユニットおよび「安全」に属するユニットの何れのユニットも組み合わされていない状態なので、
図8の表に従えば、当該カプラーはグループ10〜12に分類されることになる。ここで、例えば、「安全」に属するユニット(
図9の「ユニット(安全)」)が追加された場合、
図8の表に従えば、当該カプラーはグループ7〜9に分類されることになる。また、「非安全」に属するユニット(
図9の「ユニット(標準)」)が更に追加された場合、
図8の表に従えば、当該カプラーはグループ7〜9に分類されたまま変更されない。また、「軸」に属するユニット(
図9の「ユニット(軸)」)が更に追加された場合、
図8の表に従えば、当該カプラーはグループ1〜3に分類されることになる。このように、各スレーブユニット3の属性は、カプラーに組み合わされるユニットに応じて定まる。
【0058】
上記に説明したような各グループの加入条件に従い、ネットワークトポロジ内の各ユニットのグループ分けが行われた後は、フレームフォーマットの設定情報を生成する処理が設定情報構築部14によって行われる(S103)。
【0059】
図10は、フレーム生成部25が生成するフレームの一例を示した図である。EtherCATは、Ethernetをベースにしたプロトコルであるため、フレーム生成部25が生成するフレームには、ネットワーク2上の各機器にフレーム送信の開始を認識させるプリアンブルや送信先アドレス、送信元アドレスが格納されるヘッダフィールド(
図10に示す「Ethernet H.」に相当)、各スレーブユニット3の制御情報等が格納されるデータフィールド(
図10に示す「Ethernet Data」に相当)、フレームのエラーを検出するためのFCS(Frame Check Sequence)フィールド(
図10に示す「FCS」に相当)が用意されている。「Ethernet Data」のフィールドには、EtherCATのヘッダフィールド(
図10に示す「EtherCAT H.」に相当)およびEtherCATのデータフィールド(
図10に示す「EtherCAT Datagrams」に相当)が用意されている。「EtherCAT Datagrams」のフィールドには、1からnまでn個のデータフィールド(
図10に示す1stからnthまでの「EtherCAT Datagram」に相当)を用意することができる。各「EtherCAT Datagram」には、ヘッダフィールド(
図10に示す「Datag.Header」に相当)、各スレーブユニット3の制御情報等が格納されるデータフィールド(
図10に示す「Data」に相当)、「EtherCAT Datagram」のエラーを検出するためのWKC(Working Counter)フィールド(
図10に示す「WKC」に相当)が各々用意されている。
【0060】
EtherCATには、「EtherCAT Datagrams」内のデータが対象となるスレーブユニットとのデータ交換が正しく行われたか否かをチェックするためのフィールドであるWKCが「EtherCAT Datagram」毎に用意されている。よって、WKCが対象となるスレーブユニットとのデータ交換異常を示す「EtherCAT Datagram」が存在し、データが無効として取り扱われる場合であっても、WKCが対象となるスレーブユニットとのデータ交換異常を示していない他の「EtherCAT Datagram」のデータに基づいて行われる制御については正常に行うことができる。
【0061】
そこで、設定情報構築部14は、グループ判定部13が行ったグループ分けの結果に従い、各「EtherCAT Datagram」のデータフィールドに割り当てるスレーブユニット3のデータの割り当てを規定したフレームのフォーマットに関する設定情報を生成する。データの割り当ては、特定の「EtherCAT Datagram」のデータフィールドにおけるデータのエラーがWKCによるチェックで発覚し、当該フィールドのデータが無効化された場合に、当該データフィールドのデータの無効化による影響が及ぶスレーブユニットの範囲を限定する観点で行われる。
【0062】
図11は、スレーブユニット3の割り当ての内訳の一例を示した図である。
図11に示す例では、「非安全」に属する標準的なユニットのみをカプラーに組み合わせたスレーブユニット3(標準機器)に関わるデータが「1st EtherCAT Datagram」のフィールドに割り当てられる。「非安全」に属する標準的なユニットのみをカプラーに組み合わせたスレーブユニット3は、本願でいう「非安全機器」の一例に相当する。また、「安全」に属するユニットが含まれているスレーブユニット3に関わるデータが「2nd EtherCAT Datagram」のデータフィールドに割り当てられる。「安全」に属するユニットが含まれているスレーブユニット3は、異常を感知すると自動停止する安全機能を有し、本願でいう「安全機器」の一例に相当する。設定情報構築部14によって生成された設定情報の内容は、設定情報出力部15において生成される設定ファイルに含められ、PLC機能部20へ引き継がれる。この例では、「安全」、「非安全」の例を示したが、「軸」、「非軸」の場合であっても同様である。
【0063】
このように、上記設計支援装置4であれば、各スレーブユニット3のグルーピングが自動的に行われる。このため、フレームのフォーマットを設定するための高度なプロトコルの知識が無く、ネットワーク2の詳細な構成や各スレーブユニット3の情報の把握が困難な場合であっても、スレーブユニット3におけるフレームの転送に異常があった場合に影響が及ぶスレーブユニット3の範囲を限定するフレームのフォーマットを容易に生成することができる。
【0064】
なお、CPUユニット5のPLC機能部20では、設計支援装置4のツール機能部10から引き継がれた設定ファイルが規定するフォーマットに従ったフレームが生成され、ネットワーク2内の通信に用いられる。すなわち、PLC機能部20では、設定ファイルの内容の読み出しが設定ファイル読出部21において行われ、アプリデータ生成部24から出力されるデータを設定ファイルの規定に従ってデータフィールドに格納したフレームの生成がフレーム生成部25において行われる。そして、PLC機能部20において生成されたフレームがネットワーク2内を巡回し、各スレーブユニット3の制御情報が定期的にリフレッシュされる。
【0065】
図12は、ネットワーク2を構成する各ノード(スレーブユニット3に対応)を巡回する過程において、フレーム内のWKCが変化する様子の一例を示した図である。例えば、PLC1から送られたフレームの各「EtherCAT Datagram」のWKCに対し、各ノードを通過する度に適当な値が加算されていくものとする。PLC1には、ネットワーク2において最下位に位置するノードから折り返されるフレームの各「EtherCAT Datagram」のWKCの期待値が予め設定されている。このようなEtherCATのネットワーク2において、最下位に位置するノードからPLC1へ折り返されたフレーム中の特定の「EtherCAT Datagram」のWKCが既定の期待値と一致しない場合、当該「EtherCAT Datagram」のフィールド内のデータは異常として取り扱われ、当該データは無効化される。よって、無効化されたデータ中に、例えば、制御コマンドや制御目標値が含まれている場合、ネットワーク2に繋がるスレーブユニット3で正常な動作が行われない場合が生じ得る。しかし、PLC機能部20が生成するフレームは、特定の「EtherCAT Datagram」のデータフィールドのデータがエラーで無効化されても、データの無効化により影響が及ぶスレーブユニットの範囲が限定されるように、ツール機能部10がスレーブユニット3のデータをグループ毎に別々の「EtherCAT Datagram」のデータフィールドに自動的に割り当てている。従って、ユーザは、ネットワーク2の詳細な構成や各スレーブユニット3の情報を詳細に把握しなくても、データの無効化により影響が及ぶスレーブユニット3の範囲を限定的にすることができる。
【0066】
なお、上記実施形態においては、EtherCATに適用される場合を例にしながら説明したが、上記実施形態は、EtherCATに適用されるものに限定されるものではない。上記実施形態は、マスターユニットから送られるフレームを各スレーブユニットが順に転送するネットワークであればEtherCAT以外のプロトコルに適用することも可能である。
【0067】
以下、グループ判定部13が参照可能な定義ファイルのバリエーションについて説明する。
【0068】
図13Aは、第1例に係る定義ファイルの内容を示した図である。上記実施形態の定義ファイル群16には、例えば、以下のような第1例に係る定義ファイルが含まれていてもよい。本第1例に係る定義ファイルは、各ユニットをグループ分けする際のロジックを各ユニットが同期機能を有するものか否かという観点で規定したものであり、例えば、
図13Aに示すように、同期するユニットの所属をグループ1、同期しないユニットの所属をグループ2とすることを規定している。ユニットには、同期機能を有しており且つ当該同期機能が有効(同期リフレッシュモード)に設定されているもの、同期機能を有しているものの当該同期機能が無効(フリーランモード)に設定されているもの、同期機能自体を有していないものがある。同期機能の有効/無効の設定(モードの設定)は、例えば、ネットワークトポロジの設定時やプログラミングの際に行われる。
【0069】
このように、本第1例に係る定義ファイルは、同期機能を有しており且つ当該同期機能が有効なものをグループ1とし、それ以外のものをグループ2とすることを規定している。よって、グループ判定部13が本第1例に係る定義ファイルを参照してグループ分けを行った場合、上記ステップS103において設定情報構築部14が設定情報を生成したフレームのフォーマットには、同期するユニット(グループ1)のデータが格納される「EtherCAT Datagram」のフィールドと、同期しないユニット(グループ2)のデータが格納される「EtherCAT Datagram」のフィールドとが別々に用意されることになる。
【0070】
このようなフレームのフォーマットに従った通信がネットワーク2で行われれば、特定のデータフィールドでエラーが生じた場合に影響が及ぶユニットの範囲を、同期するユニット同士の範囲内、或いは、同期しないユニット同士の範囲内に留めることができる。
【0071】
図13Bは、第2例に係る定義ファイルの内容を示した図である。上記実施形態の定義ファイル群16には、例えば、以下のような第2例に係る定義ファイルが含まれていてもよい。本第2例に係る定義ファイルは、各ユニットをグループ分けする際のロジックを各ユニットの制御周期(データ交換周期)が短いか否かという観点で規定したものであり、例えば、
図13Bに示すように、制御周期がX以上の出力ユニットや入力ユニットの所属をグループ1、制御周期がX未満の出力ユニットや入力ユニットの所属をグループ2とすることを規定している。本第2例に係る定義ファイルにおいてXは、制御周期の閾値であり、ネットワーク2に接続されている各スレーブユニット3の制御周期に応じて適宜変更してもよいし、既定の固定値が設定されていてもよい。
【0072】
このように、本第2例に係る定義ファイルは、制御周期が長いものをグループ1とし、それ以外のものをグループ2とすることを規定している。よって、グループ判定部13が本第2例に係る定義ファイルを参照してグループ分けを行った場合、上記ステップS103において設定情報構築部14が設定情報を生成したフレームのフォーマットには、制御周期が長いユニット(グループ1)のデータが格納される「EtherCAT Datagram」のフィールドと、制御周期が短いユニット(グループ2)のデータが格納される「EtherCAT Datagram」のフィールドとが別々に用意されることになる。なお、本第2例に係る定義ファイルのロジックの内容は、制御周期に応じて各ユニットを3つ以上にグループ分けするものであってもよい。
【0073】
このようなフレームのフォーマットに従った通信がネットワーク2で行われれば、特定のデータフィールドでエラーが生じた場合に影響が及ぶユニットの範囲を、制御周期が短いユニット同士の範囲内、或いは、制御周期が長いユニット同士の範囲内に留めることができる。
【0074】
図13Cは、第3例に係る定義ファイルの内容を示した図である。上記実施形態の定義ファイル群16には、例えば、以下のような第3例に係る定義ファイルが含まれていてもよい。本第3例に係る定義ファイルは、各ユニットをグループ分けする際のロジックを、ネットワーク2の経路上、各ユニットが拡張ユニット以前に位置するのか否かという観点で規定したものであり、例えば、
図13Cに示すように、拡張ユニット以前に位置するユニットの所属をグループ1、拡張ユニット以降に位置するユニットの所属をグループ2とすることを規定している。ここで、拡張ユニットとは、ネットワーク2に繋がるスレーブユニット3に接続されるネットワーク機器であり、ネットワーク2の経路上、当該スレーブユニット3の下位に他のユニットを接続してユニットの拡張を可能にする装置である。
【0075】
このように、本第3例に係る定義ファイルは、各ユニットがネットワーク2の経路上、拡張ユニット以前に位置するものをグループ1とし、それ以外のものをグループ2とすることを規定している。よって、グループ判定部13が本第3例に係る定義ファイルを参照してグループ分けを行った場合、上記ステップS103において設定情報構築部14が設定情報を生成したフレームのフォーマットには、拡張ユニット以前に位置するユニット(グループ1)のデータが格納される「EtherCAT Datagram」のフィールドと、拡張ユニット以降に位置するユニット(グループ2)のデータが格納される「EtherCAT Datagram」のフィールドとが別々に用意されることになる。
【0076】
このようなフレームのフォーマットに従った通信がネットワーク2で行われれば、特定のデータフィールドでエラーが生じた場合に影響が及ぶユニットの範囲を、拡張ユニット以前に位置するユニット同士の範囲内、或いは、拡張ユニット以降に位置するユニット同士の範囲内に留めることができる。
【0077】
図13Dは、第4例に係る定義ファイルの内容を示した図である。上記実施形態の定義ファイル群16には、例えば、以下のような第4例に係る定義ファイルが含まれていてもよい。本第4例に係る定義ファイルは、各ユニットをグループ分けする際のロジックを各ユニットの入出力データのデータサイズ毎にグループ分けするという観点で規定したものであり、例えば、
図13Dに示すように、入力データサイズおよび出力データサイズが何れもXより大きいユニットの所属をグループ1、入力データサイズがX以下であり出力データサイズがXより大きいユニットの所属をグループ2、入力データサイズがXより大きく出力データサイズがX以下のユニットの所属をグループ3、入力データサイズおよび出力データサイズが何れもX以下のユニットの所属をグループ4とすることを規定している。本第4例に係る定義ファイルにおいてXは、データサイズの閾値であり、ネットワーク2に接続されている各スレーブユニット3の入出力データのデータサイズに応じて適宜変更してもよいし、既定の固定値が設定されていてもよい。
【0078】
このように、本第4例に係る定義ファイルは、入出力データのデータサイズの大小に応じてグループ分けすることを規定している。よって、グループ判定部13が本第4例に係る定義ファイルを参照してグループ分けを行った場合、上記ステップS103において設定情報構築部14が設定情報を生成したフレームのフォーマットには、入出力データのデータサイズの大小に応じた別々の「EtherCAT Datagram」のフィールドが用意されることになる。なお、本第4例に係る定義ファイルのロジックの内容は、入力データのデータサイズの大小に応じて各ユニットを2つ以上にグループ分けするものであってもよいし、出力データのデータサイズの大小に応じて各ユニットを2つ以上にグループ分けするものであってもよい。また、本第4例に係る定義ファイルのロジックの内容は、3段階以上のデータサイズの大小によって各ユニットをグループ分けするものであってもよい。
【0079】
このようなフレームのフォーマットに従った通信がネットワーク2で行われれば、特定のデータフィールドでエラーが生じた場合に影響が及ぶユニットの範囲を、入出力データのデータサイズが比較的近似しているユニット同士の範囲内に留めることができる。
【0080】
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【0081】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって非一時的に蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク(ブルーレイは登録商標)、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。