JP2009009607A - ネットワークシステム - Google Patents
ネットワークシステム Download PDFInfo
- Publication number
- JP2009009607A JP2009009607A JP2008234867A JP2008234867A JP2009009607A JP 2009009607 A JP2009009607 A JP 2009009607A JP 2008234867 A JP2008234867 A JP 2008234867A JP 2008234867 A JP2008234867 A JP 2008234867A JP 2009009607 A JP2009009607 A JP 2009009607A
- Authority
- JP
- Japan
- Prior art keywords
- data
- control device
- information
- variable
- name
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13125—Use of virtual, logical connections
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15118—Shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
【課題】 通信処理を意識することなく、共有するデータへのアクセスが容易に行える制御装置を提供すること
【解決手段】 共有するデータの論理名を定義する。他の制御装置との間でデータ交換をする通信部と、ネットワークを介して共有するデータを格納するリンクメモリ15と、論理名とリンクメモリに格納されたデータをアクセスするためのポインタを格納する間接参照テーブル16と、論理名と、その論理名についてのポインタが格納された間接参照テーブル内のメモリアドレスを対応付けた変数データベース17とを有する。制御実行部18は、論理名に基づいて間接参照テーブルを介してリンクメモリにアクセスするので、具体的なデータ記憶位置は知らなくて良い。つまり、ユーザプログラムには、論理名が格納され、データが格納されたアドレス(ポインタ)は組み込む必要がない。
【選択図】 図3
【解決手段】 共有するデータの論理名を定義する。他の制御装置との間でデータ交換をする通信部と、ネットワークを介して共有するデータを格納するリンクメモリ15と、論理名とリンクメモリに格納されたデータをアクセスするためのポインタを格納する間接参照テーブル16と、論理名と、その論理名についてのポインタが格納された間接参照テーブル内のメモリアドレスを対応付けた変数データベース17とを有する。制御実行部18は、論理名に基づいて間接参照テーブルを介してリンクメモリにアクセスするので、具体的なデータ記憶位置は知らなくて良い。つまり、ユーザプログラムには、論理名が格納され、データが格納されたアドレス(ポインタ)は組み込む必要がない。
【選択図】 図3
Description
本発明は、ネットワークシステム及び制御方法並びに制御装置及びマルチプロセッサシステムに関するものである。より具体的には、複数のノード,制御装置,プロセッサ間でデータの共有を図るシステム(例えば、分散制御システム等)における当該データの共有化の処理の改良に関する。
複数台のPLC等の制御装置をネットワークに接続し、それら複数の制御装置がデータを共有しながら協調・同期制御等を実行することがある。その場合、各制御装置がデータを共有するためには、それぞれのI/Oを物理的に繋ぐか、データを共有するためのユーザプログラムを用いることが有る。
また、各制御装置がデータを共有するための別の方式としては、データリンク方式と称されるものもある。このデータリンク方式は、複数の制御装置間で、サイクリックにデータを交換(リンク)する方式である。つまり、全てのノードが共通のテーブルを持ち、各制御機器は、そのテーブルを参照することによりデータの共有ができる。このとき、データへのアクセスは、メモリアドレス(物理アドレス)を指定して行うようにしている。さらに、そのテーブルは、制御装置以外の別のツールにより一括して設定する。この方式では、ユーザプログラム開発時に通信を意識しないで済むというメリットが有る。
しかしながら、上記した従来方式では、以下に示す問題が有る。すなわち、前者のユーザプログラムを用いた方式では、制御装置(PLC)を動作させるラダープログラム中に通信ロジックを埋め込む必要が有り、ユーザプログラム開発が複雑となり、さらには、メンテナンスも困難となる。
また、後者のデータリンク方式の場合には、データをリンクする際のメモリエリアの割り付け設定自体が困難となる。そして、ラダーで直接メモリアドレスをアクセスするようにユーザプログラムを組んでいる。従って、一旦メモリエリアの割り付けを設定した後に、そのメモリエリアの割り付けの変更が有ると、そのユーザプログラムの書き直しが必要となり煩雑となる。しかも、新たな制御装置をネットワークに追加する場合には、メモリエリアの再割り付け並びにそれに伴うユーザプログラムの変更が、ネットワークに既に接続されている制御装置に組み込まれた既存のユーザプログラムまで及び、システムの停止をしなければならないという問題があった。
本発明は、通信処理を意識することなく、共有するデータへのアクセスが容易に行え、係るアクセスするための開発並びにその後のシステム変更に応じた修正も容易に行え、システム稼動中に停止することなく新たなノード・制御装置等をネットワークに接続することができ、論理名・変数データの参照の照合を動的に解決することができることを目的としている。
この発明によるネットワークシステムでは、ネットワークに接続された複数のノード間で共有するデータの論理名を定義し、前記ノードの記憶部の所定の記憶領域に前記共有するデータを記憶保持し、前記論理名と、その論理名に対応するデータを格納した前記記憶部の記憶位置情報を関連付けた関連情報を関連情報記憶部に記憶保持させ、前記複数のノード間で、前記論理名,前記関連情報に基づいて前記共有するデータの送受を行い、通信相手のノードの状態が変化した場合、その変化が前記関連情報に影響を与える時に、前記ネットワークに接続されたノードの処理を停止することなく連動して前記関連情報を変更するようにした。
また、好ましくは、前記ノードは、複数のノード間で共有するデータの論理名をグループ化し、グループ名と更新情報を関連付けて保持するグループ管理情報を記憶保持し、前記複数のノードに記憶保持された同一のグループ名に対する更新情報が不一致の場合に、前記関連情報に影響を与える時と判断し、前記関連情報の更新処理をするように構成することである。
ノードの記憶部は、実施の形態では、「リンクメモリ」に相当する。記憶部の記憶位置情報は、実施の形態では、「アドレス,ポインタ」に相当する。ノードの処理は、実施の形態では、「ユーザプログラムの実行」に相当する。
ここで、通信相手のノードの状態が変化するとは、ネットワークに対する着脱や、再コンパイル等によりノードに記憶された情報が変化したり、物理的にネットワークに接続されていても、動作を停止・開始するなどの他、各種の状態の変化がある。つまり、ネットワークに新たに制御装置を追加した(プラグイン)場合などももちろん含む。
また、本発明に係る制御方法は、ネットワークに接続された複数の制御装置間でデータを共有することのできる制御装置における制御方法である。そして、前記制御装置に実装されたユーザプログラムが、記憶部に格納されたデータをアクセスするに際し、前記データが格納された記憶位置情報と、そのデータに付けた論理名を関連付けた関連情報を記憶保持し、前記ユーザプログラムは、論理名に基づく前記関連情報を取得し、前記記憶部へアクセスするようにした。
そして、上記方法を実現するために適した制御装置としては、ネットワークに接続された複数の制御装置間でデータを共有することのできる制御装置であって、他の制御装置との間で、データ交換をする通信部と、前記ネットワークを介して共有するデータを格納する記憶部と、前記共有するデータは論理名で定義し、その論理名と、その論理名に対応するデータを格納した前記記憶部の記憶位置情報を関連付けた関連情報を格納する関連情報記憶部と、前記論理名に基づいて前記関連情報記憶部にアクセスし、その論理名に対応する前記位置情報を取得するとともに対応するデータが記憶される前記記憶部の記憶領域にアクセスする機能を有する制御実行部と、前記記憶部内の記憶位置情報の変更に基づき、前記関連情報記憶部の前記関連情報を更新する更新手段を備えて構成した。
ここで、共有するデータを格納する記憶部は、実施の形態では、「リンクメモリ15」に相当する。記憶部の記憶位置情報は、実施の形態では、「アドレス,ポインタ」等に相当する。関連情報記憶部は、実施の形態では、「間接参照テーブル16と変数データベース17」により実現している。記憶部内の記憶位置情報の変更は、追加・削除等を含む広い概念である。更新手段は、実施の形態では、「論理名調停部19」に相当する。
そして、好ましくは前記関連情報記憶部は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとを備えて構成することである。もちろん、係る構成は無くても良い。そして、記憶位置情報を対応付けた対応テーブルは、実施の形態では、「変数データベース」に相当する。
さらに、上記したグループ単位での更新処理をするネットワークシステムを構築するための好ましい制御装置としては、上記した各制御装置の発明を前提とし、前記ネットワークに接続された複数の制御装置間で共有するデータの論理名をグループ化し、グループ名と更新情報とそのグループに対する所有権の有無情報を関連付けて保持するグループ管理情報記憶手段を設け、グループ名と更新情報が他の制御装置と不一致の時に、前記更新手段がそのグループに属するデータについての前記関連情報記憶部の前記関連情報を更新するための処理を実行する機能を設けることである。
また、好ましくは、前記ノードは、複数のノード間で共有するデータの論理名をグループ化し、グループ名と更新情報を関連付けて保持するグループ管理情報を記憶保持し、前記複数のノードに記憶保持された同一のグループ名に対する更新情報が不一致の場合に、前記関連情報に影響を与える時と判断し、前記関連情報の更新処理をするように構成することである。
ノードの記憶部は、実施の形態では、「リンクメモリ」に相当する。記憶部の記憶位置情報は、実施の形態では、「アドレス,ポインタ」に相当する。ノードの処理は、実施の形態では、「ユーザプログラムの実行」に相当する。
ここで、通信相手のノードの状態が変化するとは、ネットワークに対する着脱や、再コンパイル等によりノードに記憶された情報が変化したり、物理的にネットワークに接続されていても、動作を停止・開始するなどの他、各種の状態の変化がある。つまり、ネットワークに新たに制御装置を追加した(プラグイン)場合などももちろん含む。
また、本発明に係る制御方法は、ネットワークに接続された複数の制御装置間でデータを共有することのできる制御装置における制御方法である。そして、前記制御装置に実装されたユーザプログラムが、記憶部に格納されたデータをアクセスするに際し、前記データが格納された記憶位置情報と、そのデータに付けた論理名を関連付けた関連情報を記憶保持し、前記ユーザプログラムは、論理名に基づく前記関連情報を取得し、前記記憶部へアクセスするようにした。
そして、上記方法を実現するために適した制御装置としては、ネットワークに接続された複数の制御装置間でデータを共有することのできる制御装置であって、他の制御装置との間で、データ交換をする通信部と、前記ネットワークを介して共有するデータを格納する記憶部と、前記共有するデータは論理名で定義し、その論理名と、その論理名に対応するデータを格納した前記記憶部の記憶位置情報を関連付けた関連情報を格納する関連情報記憶部と、前記論理名に基づいて前記関連情報記憶部にアクセスし、その論理名に対応する前記位置情報を取得するとともに対応するデータが記憶される前記記憶部の記憶領域にアクセスする機能を有する制御実行部と、前記記憶部内の記憶位置情報の変更に基づき、前記関連情報記憶部の前記関連情報を更新する更新手段を備えて構成した。
ここで、共有するデータを格納する記憶部は、実施の形態では、「リンクメモリ15」に相当する。記憶部の記憶位置情報は、実施の形態では、「アドレス,ポインタ」等に相当する。関連情報記憶部は、実施の形態では、「間接参照テーブル16と変数データベース17」により実現している。記憶部内の記憶位置情報の変更は、追加・削除等を含む広い概念である。更新手段は、実施の形態では、「論理名調停部19」に相当する。
そして、好ましくは前記関連情報記憶部は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとを備えて構成することである。もちろん、係る構成は無くても良い。そして、記憶位置情報を対応付けた対応テーブルは、実施の形態では、「変数データベース」に相当する。
さらに、上記したグループ単位での更新処理をするネットワークシステムを構築するための好ましい制御装置としては、上記した各制御装置の発明を前提とし、前記ネットワークに接続された複数の制御装置間で共有するデータの論理名をグループ化し、グループ名と更新情報とそのグループに対する所有権の有無情報を関連付けて保持するグループ管理情報記憶手段を設け、グループ名と更新情報が他の制御装置と不一致の時に、前記更新手段がそのグループに属するデータについての前記関連情報記憶部の前記関連情報を更新するための処理を実行する機能を設けることである。
所有権有無情報は、実施の形態では、サーバ・クライアント属性に対応し、所有権が有る場合にサーバ属性となり、所有権がない場合はクライアント属性になる。また、更新情報は、グループの内容を変更・修正する都度付されるもので、同一のグループ名を持つ複数のグループが存在する場合に、それぞれの更新情報が同じ場合には、グループの内容は同じであることを保証する情報である。実施の形態では、IDやバージョンに対応する。
さらに、前記所有権を有する制御装置であって、同一のグループを持つ前記所有権のない他の制御装置に前記更新情報を送信する更新情報送信手段と、前記他の制御装置から要求があったときのみ、そのグループに属するデータについての前記関連情報記憶部の前記関連情報を送信する関連情報送信手段を備えて構成するとよい。
また、前記所有権を有する制御装置であって、同一のグループに属する共有するデータのうち、前記所有権を有する制御装置への入力変数となるデータについて、参照したか否かの参照情報を記憶する参照情報記憶手段を設け、前記参照情報記憶手段に記憶された参照情報に基づき、何れの他の制御装置も未参照の場合にのみ、そのデータについて前記関連情報の更新処理をする機能を備えて構成しても良い。参照情報記憶手段は、実施の形態では、参照カウンタに対応する。そして、記憶する参照情報としては、参照回数に対応する数値でもよいし、参照したか否かを識別する「1/0」としても良い。この発明は、図54に示すフローチャートを実行する実施の形態により実現されている。
また、前記所有権のない制御装置であって、同一のグループを持つ前記所有権の有る他の制御装置から送信されてくる前記更新情報を受信する受信手段と、その受信手段で受信した前記更新情報と、自己が管理している更新情報とを照合し、異なる場合に前記所有権の有る他の制御装置に、そのグループに属するデータについての前記関連情報記憶部の前記関連情報の送信を要求する要求手段と、その要求にともない送信されてきた前記関連情報に基づき、前記更新手段が自己が有する関連情報の更新をするようにしてもよい。
さらにまた、同一のグループに属するデータを共有する各制御装置が、同一のデータを共有しているか否かを判断する判断手段と、前記判断手段が、共有していないと判断した際に、前記同一のグループに属する共有するデータへのアクセスを禁止させる機能を備えて構成することもできる。これは、図55に示すフローチャートを実行する実施の形態により実現されている。判断手段は、例えば、論理名,名前やデータ型が一致するか否かにより判断する。つまり、グループに含まれる共有するデータのうち一つでも名前,データ型などが一致しなかった場合は、グループ認証が失敗したと判断し、そのデータの使用を禁止する。アクセスを禁止させる手法としては、例えば、そのデータを呼び出すためのアドレスを無効にしたり、特定のアドレスに書き替えることにより実現できる。
さらにまた、更新停止命令操作手段を設け、その更新停止命令操作手段から停止命令が発せられると、前記更新処理の実行を禁止する手段を設けるとよい。更新停止命令操作手段は、実施の形態では、「名前解決のロックスイッチ」に相当する。この発明は、図56に示すフローチャートを実行する実施の形態により実現される。更新処理が不要であることがわかっている場合に、係る更新停止命令操作手段を操作して停止命令を出力させることにより、更新処理が必要か否かの判断をする処理も行わずに、実際のプログラムの実行に移行できる。よって、より迅速な立ち上げが行える。
上記した各発明では、制御装置(ノード)が稼動するための制御実行部は、記憶部に格納されたデータをアクセスする場合、論理名に基づいて関連情報を取得することによりアクセスすることが可能となる。従って、制御実行部自体はその具体的なデータの記憶位置情報を知る必要はないので、たとえデータが格納された記憶位置が変更されたとしても、関連情報を修正するだけで対応でき、制御実行部側のユーザプログラム等は修正する必要がない。
また、ノード間(制御装置間)でのデータの送受も、論理名に基づいてデータの統一を図り、関連情報に基づき、各ノード・制御装置の記憶部のどの記憶領域に格納されたデータが必要とするデータかを簡単に知ることができ、データ転送も容易に行える。
さらに、グループ化してグループ単位で管理した場合には、同一のグループ名の更新情報が一致する場合には、各制御装置(ノード)が持つそのグループについての共有データに関する関連情報は一致しているとみなせる。従って、仮に新たにネットワークに追加したり、再コンパイル,オンラインエディットなどにより対応テーブル(変数データベース)の変更があった場合であっても、すでに各制御装置が同一の共有するデータを保有しているので、関連情報の更新処理を行う必要がなく、迅速に実際の制御装置の動作に移行できる。
また、本発明に係る制御方法では、前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブル(変数データベース)とに分けて記憶保持され、前記対応テーブルの内容が変更された場合に、ネットワークに接続された他の制御装置に前記対応テーブルの変更内容を通知する処理を行うようにするとよい。
ここで、対応テーブルの内容が変更される場合は、既存の論理名についての内容が変更される場合はもちろんのこと、すでに存在していた論理名についての内容が消去される場合や、逆に例えば、プラグインなどにより新規追加された場合など、各種の態様がある(以下、同じ)。
係る方法を実施するために適した制御装置としては、例えば前記対応テーブルの内容が変更された場合に、ネットワークに接続された他の制御装置に向けて前記対応テーブルの変更内容を送信する機能を備えることである。
なお、対応テーブルの変更内容を送信するとは、対応テーブルのある論理名についてのデータそのものをそのまま送信する場合はもちろんのこと、そのうちの一部のデータを送信する場合も含む。さらには、間接参照テーブルの情報など他の情報も併せて送ることもかまわない。つまり、要は、テーブル内容が変更された論理名に関する所定の情報が送られればよい。これは、他の発明においても同様である。
また、本発明に係る別の制御方法では、前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、変更内容の通知を受けた制御装置は、その変更内容を解釈し、前記間接参照テーブルを更新する処理を行うことである。
係る方法を実施するために適した制御装置としては、例えば、他の制御装置からネットワークを介してその他の制御装置に記憶された対応テーブルの変更内容の通知を受信した際に、その変更内容を解釈し、自己の前記間接参照テーブルを更新する機能を備えることである。
係る構成にすることにより、新たに制御装置をネットワークに追加したり、再コンパイル,オンラインエディットなどにより対応テーブル(変数データベース)の変更があった場合に、スムーズにその変更が他の制御装置に送られる。また、その変更を受け取った制御装置側では、その変更内容に応じて関連情報等を更新することができる。よって、稼動中のシステムを停止することなく、データ修正が行え、また、個別に追加できるので、システム全体を一斉に更新する必要がなく、複数人によるインクリメンタル開発ができる。よって、開発環境が良好で、開発・デバッグ・システム修正などの期間を短縮することができる。
さらに、前記ネットワークに接続された複数の制御装置間で共有するデータの論理名をグループ化し、グループ名と更新情報とそのグループに対する所有権の有無情報を関連付けて保持するグループ管理情報を記憶保持し、グループ名と更新情報が他の制御装置と不一致の時に、前記関連情報を更新し、一致する場合には更新処理をしないようにすると良い。
このようにすると、仮に制御装置を新たにネットワークに追加したり、再コンパイル,オンラインエディットなどにより対応テーブル(変数データベース)の変更があった場合であっても、すでに各制御装置が同一の共有するデータを保有しているような場合には、グループ名と更新情報が一致するので、再度関連情報の更新処理を行う必要がなく、迅速に実際の制御装置の動作に移行できる。
さらに、受信した変更内容は、例えば一旦全てを自己の制御装置内に取り込んで記憶保持しても良いし、記憶容量を削減するためには、以下のように構成すると良い。もちろん、他の形態も採り得る。前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、請求項3に記載の変更内容の通知を受けた制御装置は、その受信の際にその変更内容に対応する論理名のデータが自己に必要か否かを判断し、必要なもののみ記憶保持し、次いで、その記憶保持した前記変更内容を解釈し、前記間接参照テーブルを更新する処理を行うようにすることである。
そして、係る方法を実施するのに適した装置としては、対応テーブルの変更内容の通知を受信した際に、その通知が自己が利用する論理名についてのものであるか否かを判断し、自己が利用する論理名についての変更内容の通知のみ記憶保持する手段を有し、前記更新機能は、前記記憶保持した変更内容に基づいて実行するように構成することである。このようにすると、自己に不要な情報は記憶保持しないので、必要な情報のみ記憶するための記憶容量を少なくすることができる。
また、前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、自己が利用する論理名に関する情報の送信を要求するメッセージをネットワーク上に送信し、前記メッセージに応答して他の制御装置から送られてきた前記論理名に関する情報を受信し、前記受信した情報に基づいて、前記間接参照テーブルを作成する処理を行うようにしてもよい。
そして、その発明を実施するのに適した装置としては、例えば、自己が利用する論理名に関する情報の送信を要求するメッセージをネットワーク上に送信する手段と、前記メッセージに応答して他の制御装置から送られてきた前記論理名に関する情報を受信するとともに、その受信した情報に基づいて、前記間接参照テーブルを作成する手段を備えるように構成するとよい。このようにすると、不要な情報の送受信が行われないので、トラフィックが良好となる。
さらに本発明に係る制御装置では、自己の制御装置内で使用している論理名を他の制御装置に公開し、その他の制御装置にその論理名に対応するデータを提供する機能を備えて構成することができる。つまり、論理名に対するデータを出力するのみの制御装置も可能となる。
また、逆にネットワークに接続された他の制御装置で公開された論理名を利用し、公開されたその論理名に対応する提供されたデータを参照する機能を備えて構成することもできる。つまり、論理名に対するデータを入力するのみの制御装置も可能となる。そして、自己の制御装置内で使用している論理名を他の制御装置に公開し、その他の制御装置にその論理名に対応するデータを提供する機能を備えた制御装置に従属する場合には、データを入出力する通常の機能を備えた装置となる。
さらにまた、接続されたプログラミング装置から受け取ったオンラインエディット要求を解釈し、その解釈に応じて対応テーブルの更新を行い、その更新に伴い前記間接参照テーブルを更新する機能を備えるように構成することができる。係る構成をすることにより、ネットワークに接続された稼動中の制御装置であっても、システムを停止することなくデータ更新ができる。
上記オンラインエディットをする場合において、前記間接参照テーブルを複数持ち、その複数の間接参照テーブルを適宜切り替えてそのうちの一つを使用状態にするように構成するとなおよい。
このようにすると、例えばオンラインエディットで修正した内容は、不使用中の間接参照テーブルに書き込み、その後、例えば、間接参照テーブルを参照していないときなどの所定のタイミングで新たに書き込んで更新された間接参照テーブルを使用状態に切り替えることにより、ユーザプログラム等が稼動中でも間接参照テーブルの書き替えが可能となり、停止している時間をできるだけ短くすることができる。
また、本発明に係るマルチプロセッサシステムでは、複数のプロセッサが占有するローカルメモリを持ち、それらがバスで接続されているマルチプロセッサシステムにおいて、前記各ローカルメモリ間のデータ交換を定期的に行うデータ転送処理部と、それらのローカルメモリ内に格納されたデータをアクセスするために用いる間接参照テーブルと、前記間接参照テーブルを介してデータをアクセスする機構を持つ制御実行部と、論理名とローカルメモリアドレスの対応テーブルを管理し、その情報に基づき前記間接参照テーブルを変更する論理名調停部を備えて構成することができる。複数のプロセッサは、実施の形態では、「MPU」に相当する。
すなわち、上記した各発明は、ネットワークに接続された制御装置やノードについてデータ共有をする場合の発明であるが、論理名で共有するデータを定義し、論理名でアクセスする側は、具体的なデータの記憶位置を意識することなく動作することができる。そして、この複数のプロセッサを備えた発明においても、複数のプロセッサでデータ転送し共有する場合に、そのデータを論理名で定義することにより具体的なデータの記憶位置を意識することなく動作することができる。係る点で共通し、その作用効果も上記した各発明のものが得られる。さらに、この複数のプロセッサを備えた発明については、従属項は記載していないが、制御装置,制御方法と同様の従属項の機能を構成することができる。
また、本発明に係る別の制御方法では、前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、変更内容の通知を受けた制御装置は、その変更内容を解釈し、前記間接参照テーブルを更新する処理を行うことである。
係る方法を実施するために適した制御装置としては、例えば、他の制御装置からネットワークを介してその他の制御装置に記憶された対応テーブルの変更内容の通知を受信した際に、その変更内容を解釈し、自己の前記間接参照テーブルを更新する機能を備えることである。
係る構成にすることにより、新たに制御装置をネットワークに追加したり、再コンパイル,オンラインエディットなどにより対応テーブル(変数データベース)の変更があった場合に、スムーズにその変更が他の制御装置に送られる。また、その変更を受け取った制御装置側では、その変更内容に応じて関連情報等を更新することができる。よって、稼動中のシステムを停止することなく、データ修正が行え、また、個別に追加できるので、システム全体を一斉に更新する必要がなく、複数人によるインクリメンタル開発ができる。よって、開発環境が良好で、開発・デバッグ・システム修正などの期間を短縮することができる。
さらに、前記ネットワークに接続された複数の制御装置間で共有するデータの論理名をグループ化し、グループ名と更新情報とそのグループに対する所有権の有無情報を関連付けて保持するグループ管理情報を記憶保持し、グループ名と更新情報が他の制御装置と不一致の時に、前記関連情報を更新し、一致する場合には更新処理をしないようにすると良い。
このようにすると、仮に制御装置を新たにネットワークに追加したり、再コンパイル,オンラインエディットなどにより対応テーブル(変数データベース)の変更があった場合であっても、すでに各制御装置が同一の共有するデータを保有しているような場合には、グループ名と更新情報が一致するので、再度関連情報の更新処理を行う必要がなく、迅速に実際の制御装置の動作に移行できる。
さらに、受信した変更内容は、例えば一旦全てを自己の制御装置内に取り込んで記憶保持しても良いし、記憶容量を削減するためには、以下のように構成すると良い。もちろん、他の形態も採り得る。前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、請求項3に記載の変更内容の通知を受けた制御装置は、その受信の際にその変更内容に対応する論理名のデータが自己に必要か否かを判断し、必要なもののみ記憶保持し、次いで、その記憶保持した前記変更内容を解釈し、前記間接参照テーブルを更新する処理を行うようにすることである。
そして、係る方法を実施するのに適した装置としては、対応テーブルの変更内容の通知を受信した際に、その通知が自己が利用する論理名についてのものであるか否かを判断し、自己が利用する論理名についての変更内容の通知のみ記憶保持する手段を有し、前記更新機能は、前記記憶保持した変更内容に基づいて実行するように構成することである。このようにすると、自己に不要な情報は記憶保持しないので、必要な情報のみ記憶するための記憶容量を少なくすることができる。
また、前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、自己が利用する論理名に関する情報の送信を要求するメッセージをネットワーク上に送信し、前記メッセージに応答して他の制御装置から送られてきた前記論理名に関する情報を受信し、前記受信した情報に基づいて、前記間接参照テーブルを作成する処理を行うようにしてもよい。
そして、その発明を実施するのに適した装置としては、例えば、自己が利用する論理名に関する情報の送信を要求するメッセージをネットワーク上に送信する手段と、前記メッセージに応答して他の制御装置から送られてきた前記論理名に関する情報を受信するとともに、その受信した情報に基づいて、前記間接参照テーブルを作成する手段を備えるように構成するとよい。このようにすると、不要な情報の送受信が行われないので、トラフィックが良好となる。
さらに本発明に係る制御装置では、自己の制御装置内で使用している論理名を他の制御装置に公開し、その他の制御装置にその論理名に対応するデータを提供する機能を備えて構成することができる。つまり、論理名に対するデータを出力するのみの制御装置も可能となる。
また、逆にネットワークに接続された他の制御装置で公開された論理名を利用し、公開されたその論理名に対応する提供されたデータを参照する機能を備えて構成することもできる。つまり、論理名に対するデータを入力するのみの制御装置も可能となる。そして、自己の制御装置内で使用している論理名を他の制御装置に公開し、その他の制御装置にその論理名に対応するデータを提供する機能を備えた制御装置に従属する場合には、データを入出力する通常の機能を備えた装置となる。
さらにまた、接続されたプログラミング装置から受け取ったオンラインエディット要求を解釈し、その解釈に応じて対応テーブルの更新を行い、その更新に伴い前記間接参照テーブルを更新する機能を備えるように構成することができる。係る構成をすることにより、ネットワークに接続された稼動中の制御装置であっても、システムを停止することなくデータ更新ができる。
上記オンラインエディットをする場合において、前記間接参照テーブルを複数持ち、その複数の間接参照テーブルを適宜切り替えてそのうちの一つを使用状態にするように構成するとなおよい。
このようにすると、例えばオンラインエディットで修正した内容は、不使用中の間接参照テーブルに書き込み、その後、例えば、間接参照テーブルを参照していないときなどの所定のタイミングで新たに書き込んで更新された間接参照テーブルを使用状態に切り替えることにより、ユーザプログラム等が稼動中でも間接参照テーブルの書き替えが可能となり、停止している時間をできるだけ短くすることができる。
また、本発明に係るマルチプロセッサシステムでは、複数のプロセッサが占有するローカルメモリを持ち、それらがバスで接続されているマルチプロセッサシステムにおいて、前記各ローカルメモリ間のデータ交換を定期的に行うデータ転送処理部と、それらのローカルメモリ内に格納されたデータをアクセスするために用いる間接参照テーブルと、前記間接参照テーブルを介してデータをアクセスする機構を持つ制御実行部と、論理名とローカルメモリアドレスの対応テーブルを管理し、その情報に基づき前記間接参照テーブルを変更する論理名調停部を備えて構成することができる。複数のプロセッサは、実施の形態では、「MPU」に相当する。
すなわち、上記した各発明は、ネットワークに接続された制御装置やノードについてデータ共有をする場合の発明であるが、論理名で共有するデータを定義し、論理名でアクセスする側は、具体的なデータの記憶位置を意識することなく動作することができる。そして、この複数のプロセッサを備えた発明においても、複数のプロセッサでデータ転送し共有する場合に、そのデータを論理名で定義することにより具体的なデータの記憶位置を意識することなく動作することができる。係る点で共通し、その作用効果も上記した各発明のものが得られる。さらに、この複数のプロセッサを備えた発明については、従属項は記載していないが、制御装置,制御方法と同様の従属項の機能を構成することができる。
この発明の以上説明した構成要素は可能な限り組み合わせることができる。この発明による制御装置を構成する各手段,機能を専用のハードウェア回路によって実現することができるし、プログラムされたコンピュータによって実現することもできる。この発明による制御方法は、コンピュータを動作させるソフトウェア(プログラム)によっても、専用のハードウェア回路によっても実現できる。
本発明をより詳細に説明するにあたり、添付の図面に従ってこれを説明する。図1は、本発明に係る制御装置の好適な一実施の形態を示している。同図に示すように、制御装置は、制御部11と通信部12を備えている。制御部11は、ラダーシステムを実行し、制御装置、つまりPLC1本来の制御を行う。通信部12は、ネットワークに接続され、他の制御装置と通信する機能を持つ。具体的には、ネットワーク接続し、所定の通信プロトコルによりデータの送受(本発明との関係で言えば、共通のデータ交換)を行う通信コントローラ12aと、その通信コントローラ12aで通信制御する際のプロトコル変換をする際にデータを一時記憶したり、プロトコル変換したり、送受信先を特定する際の情報(データベース)を記憶保持するRAM12bを有している。
一方、制御部11は、接続された機器への制御プログラムや、ネットワーク接続された別のPLCと協調動作する際の制御プログラムなどを格納したROM11aと、そのROM11aに格納されたプログラムを実行するMPU11b及びMPU11bにて各種処理を実行する際に必要なデータ(管理データ)を記憶するRAM11cを有している。このハードウェア構成自体は基本的に従来と同様である。
ここで本発明では、図2に概念図で示すように、それぞれのデータを論理名(ネットワークグローバル変数)で定義し、各制御装置(PLC)1に組み込まれたユーザプログラム(オブジェクトコード)は、論理名を指定して共有するデータを取得するようにしている。これにより、各PLC1は対応するデータが記憶された物理アドレスを意識することなく、データの共有ができ、しかも物理アドレスを意識しないので、一旦登録後、共有するデータを記憶する物理アドレスを自由に変更することができる。
この概念の一例を示すと、図2のように、あるPLC1(1)で、Switchが定義(図示の場合、変数名:値が「Switch1」として定義)されているとする。すると、別の制御装置(PLC1(3))が、制御装置(PLC1(1))のSwitch1のデータがほしい場合には、制御装置(PLC1(3))のユーザプログラムは、変数名である「Switch1」を指定するとともに、そのデータを取得する命令を実行することにより、Switch1に関連付けられた具体的なデータを取得することができる。換言すると、同一内容のデータは、同一の論理名で定義され、ネットワーク上はその論理名が唯一存在することになる。つまり、異なるデータに対しては別の論理名が付される。
そして、データ内容に変更があった場合には、所定のPLCがその内容を書き替えることで、そのデータを共有する他のPLCに記憶された内容も書き替えられることになる。
次に、上記した機能を実現するための具体的な構成について説明する。図3に示すように、RAM11cの内部にネットワークを介して論理的に共有するデータ(変数データ)を格納するためのリンクメモリ15と、このリンクメモリ15に格納された各変数データを参照するために用いる間接参照テーブル16と、論理名とメモリアドレス(間接参照テーブル16のアドレス)とを関連付けた変数データベース17を有している。なお、各部の詳細な説明は後述する。
一方、MPU11bには、間接参照テーブル16を介してリンクメモリ15にアクセスする機能を備えたPLC1の制御動作を実行するための制御実行部18と、変数データベース17を管理し、その変数データベース17に格納された情報に基づき間接参照テーブル16を変更する論理名調停部19を備えている。
次に各部について説明する。まず、リンクメモリ15は、上記したようにネットワークを介して論理的に共有しているデータを格納するためのメモリであり、そのデータ構造は例えば図4に示すようになっている。すなわち、同一の論理名は、ネットワーク上で唯一存在し、それを各制御装置(PLC)で共有するため、ある論理名についてのデータに対する更新等の処理は、ネットワーク上のある1つの制御装置が実行する権限を有し、他の制御装置はその1つの制御装置から送られるデータを取得することになる。つまり、ある論理名についてのデータについては、上記1つの制御装置がそのデータに付いて更新等する機能と、それを他の制御装置に与える機能を持つ。
従って、図示するように、上記の自分が更新等の機能を持つ論理名(公開している論理名)についてのデータを格納する自ノードエリアと、他の制御装置に元となるデータが格納された論理名についてのそのデータのコピーを格納する他ノードエリアが有る。本形態では、データの転送効率を向上させるためにリンクメモリ15をノードごとに分割したが、これに限る必要はない。
さらに、共有する同一の論理名(変数名)のデータ(変数データ)を記憶するエリア内のオフセット値は、各ノードで共通にしている。つまり、ある論理名Xについての変数データxがノード(1)の自ノードエリアのオフセット値Nから所定サイズ分だけ格納されている場合(後述する間接参照テーブルの該当するポインタはNとなっている)、別のノードにおいては他ノードエリアの所定位置に格納されることになる。そして、この格納位置はノード(1)用の他ノードエリアのオフセット値Nから所定サイズ分のエリアに格納されることになる。つまり、自己が必要とする他ノードで公開された変数データを、自己の他ノードエリアに格納する場合、その公開している他ノードにおける自ノードエリアの先頭からのオフセット値と同一のオフセット値に格納することになる。このように、各ノードエリアでのオフセット値を公開側と利用側で一致させることにより、データ共通化を維持するための各種処理を容易に行えるようにしている。
なお、実際のデータの送受に関しては、上記の与える機能を持つ制御装置が出力しても良いし、他の制御装置が元となるデータを持つ制御装置に対してデータを読みに行き、取得しても良い。
また、変数データベース17のデータ構造は、図5に示すように、「論理名」と、「タイプ」と「サイズ」と「入出力属性」並びに「メモリアドレス」を関連付けたテーブルとなっている。ここで「サイズ」はその論理名に関する情報のデータサイズであり、「入出力属性」は、論理名で特定されるデータの送受方向を特定するものである。
つまり、入出力属性が「出力」のものは、そのノード(PLC)に格納された論理名に関する情報を他のノードに向けて出力することを意味する。そして、その入出力属性が出力となっている論理名についてのデータが、リンクメモリ15の自ノードエリアの所定領域に格納される。
また、入出力属性が「入力」のものは、そのノードで使用等する論理名に関する情報が、他のノードから送られてきたものを取得することを意味する。そして、その入出力属性が入力となっている論理名についてのデータが、リンクメモリ15の他ノードエリアの所定領域に格納される。
「メモリアドレス」は、その論理名についての実際のデータが格納されているリンクメモリ15の位置を特定するポインタが記憶される間接参照テーブル内のアドレス情報を記憶するものである。そして、本形態では、間接参照テーブル16のオフセットを用いている。従って、この変数データベース17に格納されたメモリアドレスを参照して間接参照テーブル16にアクセスするためには、その間接参照テーブル16のベースアドレスに上記オフセットを加えた値となる。
また、本形態では、間接参照テーブル16に格納されて特定させるリンクメモリ15のアドレス(ポインタ)が4バイトで表現されることを想定しているので、この変数データベース17のメモリアドレスには、4の倍数の値が格納される。
そして、図示の例では、論理名が「Switch1」のメモリアドレスは「0000」となっているので、図6に示す間接参照テーブル16の先頭(1番目)の記憶領域に格納されたポインタで示すリンクメモリ15内のデータが、その「Switch1」についてのデータとなる。同様に、論理名が「Motor1」のメモリアドレスは「0004」となっているので、図6に示す間接参照テーブル16の2番目の記憶領域に格納されたポインタで示すリンクメモリ15内のデータが、その「Motor1」についてのデータとなる。
また、間接参照テーブル16のデータ構造は、図6に示すように、各論理名についてのデータ格納されたリンクメモリ15内のポインタを記憶している。そして、本形態では、リンクメモリ15内の記憶エリアを特定するポインタは、4バイトで特定されており、上位3バイトでワード位置を特定し、下位1バイトでそのワード位置内で目的とするデータが記憶されているビット位置を特定するようにしている。
そして、これら格納された各ポインタが、どの論理名についてのポインタかは、上記したように変数データベース17に格納された論理名とメモリアドレスの相関により特定されている。換言すると、間接参照テーブル16の先頭からn番目のポインタは、予め所定の論理名についてのポインタであることが登録されており、それは変数データベース17の記憶内容(メモリアドレス)を変えない以上不変となる。
つまり、仮にある論理名についてのデータの記憶エリアを変更した場合、対応する間接参照テーブル16のその論理名についてのポインタを記憶したエリアに格納されたポインタを新しいものに更新することにより対応する。この場合でも変数データベース17の記憶内容は変更しないで済む。従って、制御装置が実際の制御を行うプログラムは、データ共有する論理名に付いて情報を知る必要ができた場合に、まず変数データベース17に格納されたメモリアドレスにしたがって間接参照テーブル16をアクセスしてポインタを取得する。次いでそのポインタで指し示されたデータを取得することになる。これにより、具体的な記憶エリアの変動の有無に関わらず、上記プログラムはデータを取得し、正しく動作することができる。
さらに本形態では、RAM11c内に、上記した間接参照テーブル16の記憶内容や、実際の論理名に対応したデータの送受を行い、データの共有化をスムーズかつ確実に行うため、Export変数リスト20,Import変数リスト21並びにRemote変数リスト22を持たせるようにしている。これら各変数リスト20〜22は、変数データベース17に格納された情報に基づいて作成されるもので、具体的には以下のようになっている。
まず、Export変数リスト20は、自ノードから出力するネットワークグローバル変数のリストである。そして、そのデータ構造は、図7に示すように、変数名(論理名)、変数のタイプ及びサイズ(バイト数)、並びにその変数のデータが格納されたリンクメモリ15内の自ノードエリア(図4参照)のオフセットからなるテーブル(以下、「Export変換情報テーブル」と称する)からなっている。
係るテーブルは、図5に示す変数データベース5の入出力属性の欄が「出力」のものを抽出し、さらに、メモリアドレスの欄から間接参照テーブル(図6)をアクセスして自ノードエリアのオフセット(自己が管理する論理名についてのデータを格納する領域)を取得することにより、図7に示すようなリストが作成できる。
一方、Import変数リスト21は、他ノードから入力するネットワークグローバル変数のリストであり、そのデータ構造は、図8に示すように、変数名(論理名)、変数のタイプ及びサイズ(バイト数)、その変数のデータが格納されたリンクメモリ15内の他ノードエリア(図4参照)のオフセットに加え、さらに、その変数が有効か無効かを示すフラグを備えたテーブル(以下、「Import変換情報テーブル」と称する)からなっている。
係るテーブルは、図5に示す変数データベース5の入出力属性の欄が「入力」のものを抽出し、さらに、メモリアドレスの欄から間接参照テーブル(図6)をアクセスして、リンクメモリ15内の他ノードエリアのオフセット(他ノードから送られてきたデータを格納する領域)を取得することにより、図8に示すようなリストが作成できる。
さらに、Remote変数リスト22は、受信した他ノード変数リストをノード別に分類して格納するものである。そのデータ構造は、図9に示すように、ノード番号とExport変数リストの先頭ポインタを格納したテーブル(以下、「Remote変換情報テーブル」と称する)からなる。
上記した各テーブル情報は、プログラミング装置(ツール)を用いて行われる。すなわち、図10に示すように、各制御装置1がLAN2にネットワーク接続されて、すでにシステムが稼動しているとする。係る場合に、新たに制御装置(X)1′をネットワークに追加するに先立ち、制御装置(X)1′にプログラミング装置3を接続し、所定のデータ・情報をそのプログラミング装置3から制御装置(X)1′にダウンロードする。
具体的には、図11に示すように、まずプログラミング装置3を用い、ユーザがラダーや高級言語などでソースプログラム3aを作成する。このとき、複数の制御装置(1),(2),(3),…(X)で共有するデータは、各制御装置間で同じ論理名として定義するとともに、ネットワーク共有の属性をつけるようにする。
そして、プログラミング装置3のコンパイル機能3bを実行し、上記のようにして作成したソースプログラム3aをコンパイルし、制御装置が本来の制御を実行するためのオブジェクトコード3cと、同一論理名のデータ共有をするために必要な変数データベース(図5参照)3dを生成する。
次いで、プログラミング装置3は、生成したオブジェクトコード3cと変数データベース3dを制御装置(X)1′にダウンロードする。そして、このダウンロードされたオブジェクトコードと変数データベースは、制御装置(X)1′の不揮発性メモリに格納される。
なお、上記したプログラミング装置は、図示の例では制御装置(X)1′に接続し、それに対してダウンロードする例を示したが、すでにネットワークに接続された各制御装置(1),(2),……に対しても、ネットワークに接続する前(際)に、プログラミング装置を接続し、所定のデータ・情報をダウンロードすることになる。
次に、論理名調停部19について説明する。論理名調停部19は、上記のようにダウンロードされた変数データベース17に格納された情報に基づき、Export変数リスト20とImport変数リスト21を生成する機能を有する。具体的な生成処理は、上記したExport変数リスト20とImport変数リスト21の説明で記載した通りである。
すなわち、Export変数リスト20の作成は、図12に示すフローチャートに示すように、オフセット値を0におき(ST1)、変数データベース17をアクセスして入出力属性が出力になっている出力変数、つまり自ノードが他ノードに対して公開するネットワークグローバル変数を検索する(ST2)。
そして、検索される都度、その変数についてのExport変換情報テーブルを格納するExport変換テーブルを確保する(ST3,ST4)。そして、その確保したテーブル内に、変換データベース17内に格納されている変数名,タイプ,サイズ情報を複写する(ST5)。
次いで、その変数のデータ(変数データ)を格納する自ノードエリアのオフセット情報を取得し、ステップ5,ステップ6で得られた情報を、Export変数リストに追加する(ST7)。よって、1番目は、オフセットが0つまり自ノードエリアの先頭から登録することになる。
その後、現在のオフセット値に、変数サイズを加算して新たなオフセット値を求め(ST8)、ステップ2に戻る。以後、全ての出力変数を検索するまで上記処理を繰り返し実行する。これにより、自ノードエリアの先頭から各変数データを格納する領域が、空くことなく順番に確保される。
一方、Importリスト21の作成は、図13に示すフローチャートを実行する。すなわち、変数データベース17より、入出力属性が入力になっている入力変数、つまり、自ノードで利用する他ノードのネットワークグローバル変数を検索する(ST11)。
そして、検索される都度、その変数についてのImport変換情報テーブルを格納するImport変換テーブルを確保する(ST12,ST13)。そして、その確保したテーブル内に、変換データベース17内に格納されている変数名,タイプ,サイズ情報を複写する(ST14)。さらに、無効フラグをセットし(ST15)、ステップ14,ステップ15で得られた情報を、Import変数リストに追加する(ST16)。その後、ステップ11に戻る。以後、全ての入力変数を検索するまで上記処理を繰り返し実行する。
さらに、論理名調停部19は、上記した両変換テーブルの作成機能に加え、以下に示す変換テーブルの更新その他の機能も有する。すなわち、制御装置1を既存の稼動中のネットワークに接続した場合、論理名調停部19は、自己が保有するExport変数リスト20を、一斉同報し、他の制御装置との間でネットワークグローバル変数の情報を交換する。
すなわち、Export変数リストを送信する側の論理名調停部19は、図14に示すように、まず、Export変数リストを一斉同報により送信する(ST21)。後述するように、この一斉同報を受けた受信側の他の制御装置(ノード)は応答信号を送信してくるので、その応答信号があったか否かを判断する(ST22)。そして、応答信号があった場合には、その応答信号を発行した応答局を記録する(ST23)。
タイムアウトするまで応答信号の受信の有無をチェックし(ST24)、タイムアウトしたならばテーブル更新を完了する(ST25)。これにより、Export変数リストを送信したノードは、誰がExport変数リストを受け取り、誰が受け取っていないかを判断できる。
なお、このExport変数リストの送信タイミングとしては、上記したように新たにネットワークに追加・接続する時の他に、ユーザプログラム修正やコンパイル実行などによって変数データベース17の記憶内容が変更された場合や、後述するオンラインエディットによって実行中の制御装置の変数データベース17の記憶内容が変更された場合などにも行われる。そして、変更される都度、バージョンを更新していき、Export変数リストを送信(一斉同報)する場合には、そのバージョン情報も併せて送るようにする。従って、受信側のノードは、Export変数リストをはじめて受信する場合と、すでに受信している場合がある。なお、本発明では、このバージョン情報は必ずしも設けなくても良い。また、バージョン情報を用いたテーブルの同期方式については後述する。
一方、上記Export変数リストを受信した既存の他のノード(制御装置)側は、図15に示すフローチャートを実施する機能を有する。すなわち、Export変数リストを受信したか否かを判断し(ST31)、受信した場合には、Export変数リストのバージョンが、以前に受信して記憶しているものと一致するか否かを判断する(ST32)。
そして、一致していない場合には、Export変数リストが更新されていると判断し、記憶しているテーブル(受信側のノードにとってのImport変数リスト等)を更新する(ST33)。なお、初めてExport変数リストを受信する場合も、バージョンが不一致と判断し、テーブル更新をする。
そして、ステップ33のテーブル更新後、並びにステップ32の分岐判断でバージョンが一致している場合(更新不要)は、応答信号をExport変数リストの送信元のノードに向けて送信し、処理を終了する(ST34)。
さらに論理名調停部19は、受信したExport変数リストに基づいて、Remote変数リストを作成する機能を有する。すなわち、図15に示す受信側の処理において、他ノードから送信されてきたExport変数リストを受信したならば、それをRemote変数リストとしてノード別に管理する。つまり、受信したノードが必要とする変数データであるか否かに関係なく、全てのExport変数リストに関する情報を一旦制御装置内に取り込み、記憶保持する。このリストは、不揮発性メモリに保持される。具体的には、図16に示すように、ノード1から送られてきたExport変数リストは、ノード1のテーブルエリアに格納される。
そして、論理名調停部19は、上記のようにして得られたRemote変数リスト22とImport変数リスト21に基づき、間接参照テーブル16を作成・更新する。概念的に説明すると、Import変数リスト21に格納された自ノードで使用する変数名(論理名)をキーとして、Remote変数リスト22を検索し、一致する変数名を取得し、その変数に関する変数データが格納された自ノードのリンクメモリ15へのポインタを求め、それを該当する間接参照テーブル16のメモリエリアに格納する。
また、上記した制御装置(X)1´のように、新たにネットワークに加入した場合には、Export変数リストを受信していないノードに対してExport変数リスト要求を行う。これにより、受信したExport変数リストに基づき、上記したRemote変数リスト22ひいては間接参照テーブル16の作成・更新を行う。具体的には、図17に示すフローチャートを実現する。
まず、Import変数リスト21を順番に検索し(ST41,ST42)、検索された変数名(論理名)ごとに以下の処理を行う。つまり、取得した変数名をキーにRemote変数リストを検索し、その変数を公開している制御装置のノードアドレス(1) と、その装置内のリンクメモリ内の自ノードエリアオフセット(2) を取得する(ST43)。
次いで、リンクメモリの(1) に該当する他ノードエリア(その変数を公開しているノード用のエリア)のベースアドレス(先頭アドレス)を算出する(ST44)。そして、そのベースアドレスに、ステップ43で求めたオフセット(2) を加算した値(3) を求める(ST45)。すなわち、対応するノードエリアでは、同一の論理名(変数名)の変数データを格納する領域のオフセット値を等しくしているので、上記求めた値(3) が、その変数データを記憶させるリンクエリアの先頭アドレスとなる。
次に、変数名に基づいて変数データベース17を検索し、間接参照テーブル位置(その変数名のポインタを格納する箇所)を取得する(ST46)。つまり、図5に示すメモリアドレスの欄に登録されたオフセットアドレスを取得する。そして、その取得したオフセットアドレスにしたがい、該当する間接参照テーブルの格納領域に、ステップ45で算出した値(3) (リンクメモリ15内の変数データを格納する領域の先頭位置を示すポインタ)を格納する。これにより、間接参照テーブルの更新が行える。
これにより、図5に示す変数データベース17とすると、図18に示すように、例えば論理名(変数名)が「Switch1」についての変数データのリンクメモリ15内の格納領域が図示のようになっている場合、間接参照テーブル16のSwitch1の欄(オフセットアドレス0000:先頭)には、その格納領域の先頭のアドレス(ポインタ)が格納されることになる。
上記したように、論理名調停部19により、各ノード(制御装置1)内の各リスト20〜22や間接参照テーブル16の内容がその都度更新されることにより、リンクメモリ15内に格納された変数データの内容や、変数データの格納領域が変更したとしても、ある変数名(論理名)についての間接参照テーブル16の格納位置(オフセットアドレス)は不変(仮に変更した場合でも、変数データベースのメモリアドレスの欄を見ることにより知ることができる)であるので、制御実行部18は、その間接参照テーブル16を介してリンクメモリ15にアクセスし、所望の変数データを取得し、正規の制御システムを実行することができる。そして、係る制御実行部18の機能は、図19に示すフローチャートのようになっている。
すなわち、まず初期化処理をした後(ST51)、INリフレッシュをする(ST52)。つまり、リンクメモリ15の他ノードエリアに格納されたエリアネットワークグローバル変数(変数データ)の読み出しを行う。そして、ユーザプログラム(通常の制御)を実行し(ST53)、OUTリフレッシュをする(ST54)。つまり、リンクメモリ15の自ノードエリアに、自己が公開するネットワークグローバル変数(変数データ)の書き込みを行う。次いで、周辺I/F処理を実行する(ST55)。このように、リンクメモリ15に対するアクセス(変数データの読み書き)をしつつ、ユーザプログラムを実行する処理を、システムが停止するまで繰り返し実行する(ST56,ST57)。なお、上記したリンクメモリ15をアクセスしつつユーザプログラムを実行しているときの制御装置1,1′の概念図を示すと図20のようになる。
さらに、リンクメモリ15に格納する実際の変数データの送受は、通信部12を介して制御装置1(ノード)間で行われる。まず、概念的に説明すると、リンクメモリ15内の自ノードエリアに割り付けられたデータ(変数データ)は、他ノードに一斉同報通信方式などで送信し、他ノードエリアに割り付けられたデータ(変数データ)は対応する他ノードから受信する。
つまり、図21に示すように、リンクメモリが格納された制御部11側のRAM11cと、通信部12側のRAM12bとの間では、必要なデータを転送するようになっている。そこで、図20に示すように、リンクメモリ15の自ノードエリアに割り付けられたデータは、一旦通信部12の通信側RAM12bに複写転送され、各制御装置間では、その通信側RAM12b同士(厳密には通信コントローラ12aを介して)で一斉同報に伴うデータ転送をすることにより、他のノード(制御装置)側に送信する。また、これを受信した他ノード側では、Export変数リスト,Import変数リストより算出した転送データサイズを基に、自ノードで必要なデータを通信部12(通信側RAM12b)から制御部11(制御側RAM11c)に転送する。なお、通信部12側では、その受け取ったデータに基づいて所定の処理をするのは、上記した通りである。
また、制御装置内での通信部12と制御部11間でのデータの転送処理機能は、以下の通りとなっている。まず、本形態では、通信部12は、制御部11からの要求によりサイクリック通信サービスを開始するようになっている。すなわち、通信部12は、制御部11から受け取ったImport変数リスト,Export変数リストに基づいて通信パラメータを算出・設定し、サイクリック通信サービスを起動もしくは加入する。
また、サイクリックデータには、受信側が利用してよいデータ(有効なデータ)か、利用できないデータなのかを示す有効/無効情報が含まれている。この有効/無効情報は、送信側で設定する。そして、この有効/無効情報が「有効」のときには、受信側の通信部が受信したサイクリックデータを制御部側に転送しても良いと判断できる。
さらに、通信側RAM12bには、通信部12の通信コントローラ12a側からと、制御部11側からの両方からアクセスできるようになっている。従って、何ら制御を行わないと、両方から同時に通信側RAM12bにアクセスすることが有るので、これを避けるため、本形態では制御部11側が主体的になってデータ交換をするようにしている。つまり、制御部11が通信部12に対してアクセス許可・禁止を通知する。そして、通信部12は、制御部11が通信側RAMへのアクセスを許可している間のみアクセス可能となる。係る制御の具体的には、図22(制御部),図23(通信部)に示すフローチャートのようになる。
まず、制御部11の機能としては、図22に示すように、データのRead/Write、つまり、通信側RAM12bへのアクセスを行う(ST61)。そして、そのアクセス処理が完了すると、通信側にアクセス完了を通知する(ST62)。このアクセス完了通知が、通信部12に対するアクセス許可通知となる。
そして、通常のコントローラ処理(ユーザプログラムの実行)をする(ST63)。また、再び通信側RAM12bにアクセスする必要が生じた場合には、アクセス要求通知を通信部12に対して通知する(ST64)。後述するように、この通知を受けた通信部12は、アクセス許可通知を返送するので、制御部11はその通信部12からのアクセス許可通知を受信したか否かを判断し(ST65)、許可通知を受信したならば、アクセスステータスクリアをし(ST66)、ステップ61に戻り、制御部11が通信側RAM12bに対してアクセスする。
一方、通信部12の機能は、図23に示すように、まず、制御部11からアクセス完了通知が送られてきたか否かを判断する(ST71)。そして、係る完了通知を受信したならば、通信側RAM12bに対するアクセス(データのRead/Write)をする(ST72)。次いで、通信部12からアクセス要求通知が送られてきたか否かを判断する(ST73)。そして、送られてこない場合には、依然として通信部12に通信側RAM12bへのアクセス権が有るため、必要に応じてアクセスする。
一方、アクセス要求通知を受け取ったならば、通信側RAM12bに対するアクセスを終了するとともに、アクセス許可通知を制御部11に返送する(ST74)。このとき、通信部12では、受信データのノード単位の同時性を保証するため、1ノード分の転送中にアクセス要求通知を受信した場合には、その1ノード分の転送が完了した後でアクセス許可通知を返送することになる。なお、ステップ74の通知により中断した後、制御部11から再びアクセス完了通知を受け取ったならば、上記中断したノードの次のノードの通信側RAM12bへの転送を開始することになる。
上記した実施の形態を基本とし、さらに以下に示す機能を追加することができる。まず、第1の追加機能として、オンラインエディット機能が有る。すなわち、プログラミング装置から送られてきたオンラインエディット要求を解釈し、変数データベース17に論理名を追加または削除し、さらには、その変数データベース17の変更内容に応じて自制御装置内の間接参照テーブル16を変更する機能を有する。以下、各処理に分けて説明する。
まず、オンラインエディットにおけるネットワークグローバル変数の追加処理機能は、図24に示すフローチャートのようになっている。すなわち、まず接続されたプログラミング装置からのネットワークグローバル変数追加要求を受理する(ST81)。すると、まず追加される論理名の変数データの属性が、入力変数なのか出力変数なのかを判断する(ST82)。
そして、入力変数の場合には、その変数がすでに他ノードで公開されている変数(既公開変数)であるか否かを判断する(ST83)。公開されていない(未公開変数)場合には、現時点では当該変数のデータを取得して利用することができないので、その変数についてのImport変数テーブルを作成し、有効/無効フラグを無効にセットした上でImport変数リストに追加する(ST84)。なお、この変数についてのフラグは、他ノードがそのネットワークグローバル変数を公開したときに有効に切り替わる。
そして、変数データベース17のメモリアドレスに基づき、その変数に付いての情報を間接参照テーブルに追加する(ST85)。一方、処理対象の入力変数が他ノードにおいてすでに公開されている場合には、変数データベースに基づいて間接参照テーブルに追加する(ST85)。
一方、属性が出力変数の場合には、ステップ82の分岐判断でステップ86に進み、リンクメモリ15の自ノードエリアに空き領域が有るか否かを判断する(ST86)。つまり、変換データベース17に格納されたその変数についてのデータサイズ分の空きメモリの有無を判断する。そして、空きがない場合には、追加することができないのでエラー処理をする。また、空きが有る場合には、その自ノードエリア内にその変数データを格納する領域(データサイズ分)を確保する(ST87)。そして、その確保した領域のオフセット(先頭アドレス)をExport変数テーブルの該当テーブルに格納するとともに、その確保した領域のオフセット(先頭アドレス)を間接参照テーブルに書き込む(ST88)。さらに、作成したExport変換テーブルをExport変数リストへ追加する。その後、追加された変数情報のみを各ノードへExport変換テーブルの送信により通知する(ST89)。
また、オンラインエディットの削除処理機能は、図25に示すフローチャートのようになっている。すなわち、まず接続されたプログラミング装置からのネットワークグローバル変数削除要求を受理する(ST91)。すると、間接参照テーブル等から論理名についての変数情報を削除する(ST92)。次いで、削除した変数データの属性が、入力変数なのか出力変数なのかを判断する(ST93)。そして、属性が入力変数の場合には、他のノードへの影響はないのでそのまま処理を終了する。
また、出力変数の場合には、その変数データを利用する他のノードに影響を与えるので、各ノードに対して削除した変数名(論理名)を通知する(ST94)。なお、この削除した変数名の通知を受けた各ノードでは、Import変数リスト内のその変数についての有効/無効フラグを無効にする。
なお、オンラインエディットにおけるネットワークグローバル変数のデータサイズや属性などの変更に付いては、上記した削除処理を実行後あらためて追加処理をすることにより行える。
また、第2の追加機能として、上記のオンラインエディット機能を前提として、さらに間接参照テーブルを2バンク持ち、使用バンクと未使用バンクを適宜切り替えることにより、制御実行中断を最小限に抑えることができるように構成することもできる。
つまり、使用バンクの内容を未使用バンクにコピーしておき、変数データベース17の内容が変更された場合、まず未使用バンクを更新し、その後制御実行部18が使用中バンクを参照していないときに未使用バンクと使用バンクを切り替えるようにする。このようにすると、使用バンクに対する間接参照テーブルの更新中であっても、使用バンクは変更がないので、係る更新作業中に並列して制御実行部18が使用中バンクを参照して処理ができる。よって、制御実行中断期間を可及的に短くすることができる。そして、係る処理機能を実現するための制御部の機能としては、図26,図27に示すフローチャートのようになる。
すなわち、制御実行部18は、図26に示すようにまず初期化処理をした後(ST101)、INリフレッシュをする(ST102)。つまり、リンクメモリ15の他ノードエリアに格納されたエリアネットワークグローバル変数(変数データ)の読み出しを行う。このリンクメモリ15へのアクセスは、使用バンクの間接参照テーブルに基づいてアドレスを特定し実行する。
そして、ユーザプログラム(通常の制御)を実行し(ST103)、OUTリフレッシュをする(ST104)。つまり、リンクメモリ15の自ノードエリアに、自己が公開するネットワークグローバル変数(変数データ)の書き込みを行う。これも当然のことながら使用バンクの間接参照テーブルに格納されたポインタに基づいてリンクエリアの格納領域を特定し実行することになる。次いで、周辺I/F処理を実行する(ST105)。このステップ102からステップ105の間は、制御実行部18が使用中バンクを参照している期間である。
この後、サイクルタイムだけ待機する(ST106)。このサイクルタイムの間は、制御実行部18が使用中バンクを参照していない期間である。このように、リンクメモリ15に対するアクセス(変数データの読み書き)をしつつ、ユーザプログラムを実行する処理を、システムが停止するまで繰り返し実行する(ST107,ST108)。このとき、一連の1回の処理が終わる都度一定時間待機する。
一方、間接参照テーブルの書き替え処理機能は、図27に示すフローチャートのように、まず、使用バンクの間接参照テーブルの内容を未使用バンクにコピーする(ST111)。次いで、未使用バンクにコピーした間接参照テーブルを更新する(ST112)。そして、制御実行部18がリンクリストを参照中か否かを判断する(ST113)。つまり、ステップ102からステップ105を実施中か否かを判断する。そして参照していない場合(ステップ106の待機中)には、使用中の間接参照テーブルを、コピーした間接参照テーブルと切り替えて処理を終了する(ST114)。
また第3の追加機能として、バージョン情報を用いたデータ管理機能が有る。すなわち、上記した実施の形態では、バージョンアップした変数テーブルのみを登録するようにしたが、本発明はこれに限ることはなく、変数データベースと送信データの両方にバージョン情報を付加し、変数データベースの変更内容を一斉同報で各ノードに送る。これにより、その変数データベースに付加されたバージョン情報と、その後に送信されたデータに付いているバージョン情報が、変数データベースのものと一致するか否かを判断し、一致するもののみ正規のデータと認め更新処理をすることもできる。
このようにすることにより、予め変数データベースを各ノードに対して送信してバージョンを知らせることにより、ネットワークに接続された全てのノードで同じバージョンの変数データを使うことが保証される。そして、係る処理機能を実現するための具体的な構成としては、例えば通信部12の構成を図28に示すようにすることである。
すなわち、他のノードから送られてきたデータを受信部25と、その受信部25で受信したデータ(メッセージ)を受け取り、バージョンが正しいか否かを判断する選択手段26と、その選択手段26で判断する際の基準・辞書となる受信すべきノードアドレスとバージョン情報を保持する選択情報保持手段27と、選択手段26により真のデータ(バージョン等一致)と判断されたデータを保持するデータ保持部28と、真のデータでないと判断された場合に送信元のノードに対してバージョンが不一致であることを通知する通知手段29を備えている。さらに、自己が送信側の機能として、自己が公開している変数に関する情報を一旦記憶保持するデータ保持部30と、そのデータ保持部30に格納されたデータを他のノードに向けて送信する送信部31を備えている。
選択情報保持手段27に格納・設定されるバージョン情報等は、その変数名(変数データ)の公開元のノードから送られる変数データベースのバージョン情報を受信し、登録することができる。そして、実際に送られてくるメッセージのフレームフォーマットが、図28に示すように、送信元や宛先などの情報を格納したヘッダと、実際の送信内容であるデータの間に、そのデータのバージョン情報を登録するようにした。また、どのノードから送られてきたデータかは、ヘッダの送信元情報からわかる。
さらに、選択手段26の機能は、図29に示すフローチャートのようになっている。つまり、受信部25を介してメッセージを受信すると(ST121)、選択情報保持手段27に格納された受信すべきノードアドレスとバージョン情報の設定と、受け取ったデータのバージョン等を比較し、設定と一致するか否かを判断する(ST122)。そして、一致している場合には、データ保持部28に受信したメッセージを転送する(ST123)。なお、この転送されてデータ保持部28に格納されたメッセージは、必要な箇所のデータが制御部11側に送られ、それに基づいて変数リストや間接参照テーブルさらにはリストメモリのデータの更新等の必要な処理がなされる。一方、バージョン等が一致していない場合には、通知手段29を介して送信元のノードに対して不一致を通知する(ST124)。この通知は、単にバージョンが不一致であることを通知しても良いし、選択情報保持手段27に格納されているバージョン情報を併せて送るようにしてもよい。これを受けた送信元のノードは再度、正しいバージョンのデータ(Export変数リスト)を再送したり、選択情報保持手段27に格納すべき現在の正しいバージョン情報(変数データベース)を送るようになる。
さらに別の追加機能としては、新たな制御装置を追加した際に、自動的に既存の制御装置との通信を開始し、各変数リストなどを交換し、論理的なデータの共有が可能な状態にする機能(プラグイン機能)を付加することができる。
一方、上記した実施の形態では、各他のノードから送られてくるExport変数リストの全てを一旦Remote変数リストとして制御装置内に取り込み、その後、Import変数リストと照合して間接参照テーブルを作成するようにしたが、本発明はこれに限ることはなく、例えば、他ノードからExport変数リストを受信する都度、自ノードのImport変数リストと比較し、必要な情報のみ取り込むようにしても良い。そのようにすると、Remote変数リストを格納するためのメモリ容量を大幅に削減できる。よって、小型の制御装置その他のノードに適用可能となる。
さらには、各ノードが自ノードで必要な変数名を問い合わせ、その変数名について公開しているノードから情報を取得するようにすることができる。これにより、大規模なRemote変数テーブルが不要となり、メモリ容量のさらなる削減が可能となり、ローコストな機器が開発できる。
具体的には、図30に示すように、ネットワークに複数のノード(制御装置1)が接続されており、それぞれExport変数リスト20及び、自ノードが必要なImport変数リスト21を持っている。そして、図30の構成と図3等を比較すると明らかなように、間接参照テーブル16やリンクメモリ15も備えているが、Remote変数テーブルは保有していない。なお、図30は、各ノードのRAMの内部構造の一部を示しており、図3等に示す実施の形態と同様MPUやROMには必要な機能が格納されている。
係る構成において、それぞれのノードは、Import変数リスト21に記述されている変数を全ノードに一斉同報で送信する(図示の例では、ノード(1)から送信された例を示している(図30の(1) )。この変数名問い合わせフレームを受信したノードは、自ノードのExport変数リスト20に該当する変数が存在するかどうかを検索する(図30の(2) )。そして、検索した結果、該当する変数が存在したら、自己のノードアドレスと変数アドレスを記述したフレームを、変数名問い合わせフレームを送信したノード(図30の例ではノード(1))あてに回答する(図30の(3) )。
これにより、ノードは、自己が利用する変数の情報を取得できるので、そのフレームをもとに間接参照テーブルを作成する。なお、間接参照テーブルを作成するプロセスは、上記した実施の形態と同様であるので、その詳細な説明を省略する。
そして、上記した変数名の問い合わせフレームのフレームフォーマットの一例を示すと、例えば図31(a)に示すように、Import変数リストの全てを一括して送信することができる。この場合、複数のノードから複数のフレームで回答されることが多々ある。また、同図(b)に示すように、1変数ごとにフレームを送信することもできる。この場合には、当然のことながら、回答フレームは1つとなる。そして、回答フレームのフレームフォーマットの一例を示すと、図31(c)のようになる。
そして、Import変数リストの全リストを一括して問い合わせる場合の機能としては、図32に示すフローチャートのようになる。すなわち、まず全ノードあてに変数問い合わせフレームを送信する(ST131)。次いで、タイマをチェックしながら受信を待ち、そのフレームに対する回答があるか否かを判断し(ST132,ST134)、回答の受信があったならば、その回答の内容をもとに間接参照テーブルを作成する(ST133)。そして、一定時間待っても回答が来なければ、回答待ちタイムアウトとなり、間接参照テーブルの作成は終了する。なお、Import変数リストに存在する変数名についての間接参照テーブルの作成ができていない場合には、その変数名を出力変数とするノードが現段階ではシステムに存在しないという判断になる。よって、Import変数リストの有効/無効フラグは無効となる。
また、Import変数リストの1変数ずつを問い合わせる場合の機能は、図33に示すフローチャートのようになる。すなわち、全ノードあてに変数問い合わせフレーム(1変数分)を送信する(ST141)。次いで、タイマをチェックしながら受信を待ち、そのフレームに対する回答があるか否かを判断し(ST142,ST144)、回答の受信があったならば、その回答の内容をもとに間接参照テーブルを作成する(ST143)。そして、一定時間待っても回答が来なければ、その変数についての回答待ちタイムアウトとなり、その変数についての間接参照テーブルは作成しない。つまり、現時点でその変数を出力変数とするノードはないと判断する。そして、全ての変数について、上記した処理を繰り返し実行し、全ての変数について送信したならば処理を終了するようになる(ST145)。
本形態では、Remote変数リストに要したメモリ容量が不要となるというメリットの他に、トラフィックが大幅に減少するという効果もある。すなわち、例えば、新たにノードが追加された場合を想定すると、その追加したノードが、自己が必要とする変数(Import変数リストに格納された変数)について、所定のフレームフォーマットで、変数名問い合わせを一斉同報で送信する。すると、該当する変数があったノードだけが、その変数についての回答フレームを送信することとなるので、全ノードが全データを送信する必要がなくトラフィックが大幅に減少される。
さらに、本形態によれば、異なるデータに対して同一の変数名が存在(2重変数)した場合に、それを容易に検出することができる。すなわち、本発明では、ネットワーク上には同一の変数名は唯一存在することが前提となり、同一の変数名を出力変数とするノードは1つのみ存在する(0の場合もある)ことになる。そこで、本形態によれば、問い合わせされた変数名を出力変数とするノードが複数存在すると、一斉同報送信された問い合わせフレームを受信した各ノードがそれぞれ回答フレームを送信することになり、問い合わせをしたノードには、同じ変数の問い合わせに対して複数の回答フレームを受信することとなる。これによって変数の2重定義を検出することができる。
図7に示すExport変数リストに替えて、図34に示すように、図7の変数リストにさらに「使用/未使用」エリアを追加している。この「使用/未使用」エリアは、その変数名の変数データが他のノードで利用・使用されているか否かを示すフラグであり、使用されている場合には「1」をセットし、未使用の場合には0をセットする。
このようにすると、データリンク通信を行う場合には、図1以降に説明した基本の実施の形態では、Export変数リストで示された変数全てをサイクリックに送信していたが、本方式では、「使用/未使用」エリアをチェックすることにより、全データを送信するのではなく、「使用」となった変数についてだけ送信することができる。これにより誰も使用していない無駄なデータを送信することによるネットワークのトラフィックを増大させることが抑制できる。
そして、係るエリアに対するフラグのセットは、本形態のようにImport変数リストに基づく問い合わせを行う場合に容易に実現できる。つまり、「使用/未使用」エリアの初期値を0にしておく。そして、Export変数リストの検索を行う時に、問い合わせのあった変数が存在した場合に当該変数についての「使用/未使用」エリアに使用中を示す「1」をセットすることにより、実現できる。
係る機能を実現するための処理部のフローチャートとしては、図35に示すようにすることができる。すなわち、Import変数リストの問い合わせフレームを受信したならば(ST161)、Export変数リストを検索し、問い合わせがあった変数が存在するかどうか確認する(ST162,ST163)。そして、もし存在しなければ、応答を返さずに終了する。また、存在したならば、自ノードのアドレスと該当の変数のアドレスを記述した回答フレームで応答を返す(ST164)。そして、「使用/未使用」エリアに1をセットする(ST165)。なお、このステップ165を設けないフローチャート(ST161からST164)は、通常の処理機能を実現するためのフローチャートとなる。
さらにまた、上記した図1以降の基本機能の実施の形態(方式(1) )と、図30以降に示す実施の形態(方式(2) )を組み合わせて使用することもできる。すなわち、図1以降の実施の形態では、メモリ容量が十分あるノードで、立ち上げ時など複数のノードが一斉に間接参照テーブルを作成する時には、Exportリストの送信たけでできるので効率がよい。また、システムの大部分のエリアをImportするようなノードにとっては、全ノードからExportリストをもらったほうが効率がよい。
一方、すでにシステムでデータリンクが動作している時に、新たにノードが参加した場合には、図30以降の実施の形態の方が、効率がよい。また、Import変数リストが少ないノードでも、必要な変数のみ受信するので、効率がよい。このように、両実施の形態はそれぞれメリットがあるため、それらを混在させることにより、メリットの相乗効果が期待できる。そして、そのように混在した方式は、次に示すルールで行う。そして、係るルールを実現するため処理フローは、図36に示すようになる。
(1) 各ノードは間接参照テーブルの作成を始める前に、自ノードのExportリストを送信する(方式(1) );
(2) 各ノードはRemoteテーブルの容量が少なければ、受信したExportリストを破棄する;
(3) この段階で、間接参照テーブルが作成できていれば、ここで完了する;
(4) 間接参照テーブルが未完成(まだ解決していないImport変数リストがある)の場合、方式(2) による問い合わせで間接参照テーブルを作成する;
(5) (4) の処理を実行しても未完成の場合、まだその変数を持っているノードが立ち上がっていないと判断し、データリンク動作に入る;
(6) データリンク動作中に途中で新たなノードが加わると、そのノードからExportリストが送られてくるので、Import変数リストと照合し、存在すれば、間接参照テーブルを作成する;
(7) ノードがすでにネットワークでデータリンクが動作している時に立ち上がったならば(他ノードからみれば途中加入)、(1) と同様にまず自ノードのExportリストを送信する;
(8) 他ノードからはExportリストが送られてこないので、Importリストの大きさをチェックし、既定値(例えば1000変数)より大きければ、方式(1) を実行し(全ノードに対してExportリストの送信を要求する)、既定値より少なければ、方式(2) で間接参照テーブルを作成する。
(2) 各ノードはRemoteテーブルの容量が少なければ、受信したExportリストを破棄する;
(3) この段階で、間接参照テーブルが作成できていれば、ここで完了する;
(4) 間接参照テーブルが未完成(まだ解決していないImport変数リストがある)の場合、方式(2) による問い合わせで間接参照テーブルを作成する;
(5) (4) の処理を実行しても未完成の場合、まだその変数を持っているノードが立ち上がっていないと判断し、データリンク動作に入る;
(6) データリンク動作中に途中で新たなノードが加わると、そのノードからExportリストが送られてくるので、Import変数リストと照合し、存在すれば、間接参照テーブルを作成する;
(7) ノードがすでにネットワークでデータリンクが動作している時に立ち上がったならば(他ノードからみれば途中加入)、(1) と同様にまず自ノードのExportリストを送信する;
(8) 他ノードからはExportリストが送られてこないので、Importリストの大きさをチェックし、既定値(例えば1000変数)より大きければ、方式(1) を実行し(全ノードに対してExportリストの送信を要求する)、既定値より少なければ、方式(2) で間接参照テーブルを作成する。
ところで、上記した各実施の形態及び変形例(追加機能)では、ネットワーク接続された複数の制御装置間で共有する論理名を定義するだけで、ネットワークに接続されている制御装置間の通信を実行し、通信相手の制御装置の状態が変化(ネットワークに対する着脱,再コンパイルによる内容変更等)した場合であっても、制御を中断することなく共有する論理名とリンクメモリ内のアドレスの対応を解決することができる。
そして、係る解決を図るため、リンクメモリ15や間接参照テーブル16を設けたが、本発明では係る構成は必ずしもなくても良い。そして、係る構成をなくした場合には、制御装置間で送受するメッセージ内に、図37に示すように少なくとも論理名とそのデータを格納し、1通信ごとに変数データベースによりネットワークグローバル変数の格納アドレスを特定し、データ更新をすることになる(図38参照)。この場合に、1つのメッセージ内に複数のネットワークグローバル変数の書き替え要求を含ませるようにしてもよい。
なお、上記した各実施の形態では、変数データを格納するリンクメモリや、各種の変数リストなどの情報を不揮発性メモリに格納するようにした。具体的には、制御部11内のRAM11cの所定エリアに格納するようにした。但し、本発明はこれに限ることはなく、例えば図39に示すように、制御部11と通信部12とは別に、記憶部13を設け、その記憶部13内にデータを格納するようにしても良い。そして、その記憶部13は複数に分割してももちろん良い。
また、上記した各実施の形態等は、何れも、入出力の両方の機能を持つ装置について説明したが、本発明はこれに限ることはなく、入力変数のみの制御装置(ノード)や、出力変数のみの制御装置(ノード)にも適用できる。係る各制御装置の場合、上記した各実施の形態で説明した機能のうち使用しないものを除くことにより容易に実現できる。すなわち、例えば入力変数のみの制御装置の場合には、Export変数リストは不要となり、また、論理名調停部19の機能としてもExport変数リストを生成したりする機能をなくすことにより対応できる。
さらにまた、上記した各構成は、制御装置間でのデータ通信に限らず、マルチMPU構成にも適用できる。すなわち、図示省略するが、各MPUが占有するローカルメモリを持ち、それらがシリアルバス或いはパラレルバスで接続されているマルチプロセッサシステム(マルチMPU)を前提とする。そして、各ローカルメモリ間のデータ交換を定期的に行うデータ転送処理部と、それらのローカルメモリ内に格納されたデータをアクセスするために用いる間接参照テーブルと、間接参照テーブルを介してデータをアクセスする機構を持つ制御実行部と、論理名とローカルメモリアドレスの対応テーブルを管理し、その情報に基づき間接参照テーブルを変更する論理名調停部を備えることにより実現できる。この場合に、ローカルメモリが、上記した実施の形態のリンクメモリに対応し、定期的に交換するデータが、上記した実施の形態における変数データとなる。
そして、各処理部やテーブル等に基づき、適宜変数リンク等を作成することにより、データの共通化ができる。なお、具体的な処理機能は、上記した制御装置間におけるデータ共有と同様の処理により実現できるので、その詳細な説明を省略する。
図40は、本発明のさらに別の実施の形態を示している。上記した各実施の形態では、ネットワークグローバル変数で制御装置間を接続し、そのネットワークグローバル変数の名前解決を制御装置同士が自動的に行うため、個々の制御装置毎に格納されている別々のプログラミングツールを用いて開発された制御プログラムを容易にシステムとして統合することができる。これにより、複数人による同時並行開発やインクリメンタル開発を支援することができるという効果を奏する。この制御装置は、制御装置同士で変数情報を自動的に交換し、データ転送前に一括して変数をメモリ上に割り当てる仕組みを持ち、自動的に名前解決が行われる。そして、この名前解決は、電源ON時やネットワーク加入時に実施される。
このように、各変数単位で名前解決を図っていたのに対し、本形態では、ネットワークグローバル変数をグループ化し、そのグループ単位でバージョン,IDを管理するようにした。
つまり、電源ON時やネットワーク加入時などの名前解決の必要なときに、各制御装置が持つグループ同士のバージョン(ID)を比較し、それが同一ならば、以前に一度名前解決したことが判定できるとともに、その後に内容の変更がないとみなせるので、そのグループに所属するネットワークグローバル変数については、新たな名前解決をしないようにする。
係る構成をとることにより、実際に名前解決を行う処理数を減らすことができ、制御装置のプログラム実行開始までの時間を大幅に短縮することができる。特に、多くの場合、デバッグ,現場調整時に名前解決がなされるので、実際のシステム運用時における制御装置の電源ON時や 制御装置のネットワークへの脱着時には、バージョンチェックのみ実施すればよく、ネットワーク負荷が少なくなりシステムへの影響を最小化させることができる。すなわち、例えばネットワーク断線や接触不良により一度離脱した制御装置が再びネットワークに参加した場合に、上記した各実施の形態ではその都度名前解決が実施されるが、本形態では、バージョンチェックのみ実施することにより復旧できるので好ましい。なお、バージョンが一致しない場合には、そのグループに属するネットワークグローバル変数の名前解決をすることになるが、その具体的な処理は、上記した各実施の形態で説明した方法により実施する。
なお、上記したグループのバージョン,IDは、ユーザプログラム修正やコンパイル実行などによって変数データベース17の記憶内容が変更された場合や、オンラインエディットによって実行中の制御装置の変数データベース17の記憶内容が変更される都度、更新される。
また、ネットワークグローバル変数をグループ化するに際し、目的別に変数をカテゴライズするとよい。そのようなグルーピングを行うことにより、同一グループのデータを使用する制御装置は、協調・同期制御等をしていると推定できるので、制御装置同士の関連が容易に理解できるようになる。例えば図40に示す例では、グループAに属するネットワークグローバル変数は、制御装置(1)と制御装置(2)が共有し、グループBに属するネットワークグローバル変数は、制御装置(2)と制御装置(3)が共有していることがわかる。
さらに、ネットワークグローバル変数のグループの所有者を明確にする。つまり、1つのグループに属するネットワークグローバル変数に対する変更は、所有者であるネットワーク上に存在するある1つの制御装置1(サーバ)が実行し、他の共有する制御装置1(クライアント)は、所有者の制御装置からデータを送信してもらうようにする。これにより、グループ(データ一つ一つではなく、意味のあるデータの束)は、それを所有している制御機器1の外部インタフェースとみなすことができ、一度開発した機能モジュール(制御装置、制御ソフトウェア及び制御対象ハードウェアも含む)を標準モジュールとして流用しやすくなる。
図41の例では、各制御装置1には、それぞれ外部インタフェースInが接続されている。そして、制御装置(1)の1つのインタフェースI2は、複数のネットワークグローバル変数からなるグループAとなっており、このグループAは、制御装置(2)でも利用されている。なお、変数の特定は、グループ名とネットワーク変数名により行われる。これにより、グループ内に同一のネットワーク変数名がなければ、グループ名とネットワーク変数名により特定されるネットワークグローバル変数は、ネットワーク上で唯一存在することになる。
上記のように、グループを、1つの制御機器1に所有させるとともに、その制御機器1の外部インタフェースとみなすようにしたことにより、標準モジュールの組み合わせによる装置開発,工場ラインの組み立てが容易になる。なお、インタフェースには、それを所有している制御装置1に対する入力変数か出力変数、またはその両方を含むことができる。また、グループ/インタフェースの概念を言語上で表現するときには、構造体やクラス、インタフェースに対応づけてもよい。そして、インタフェースにはクラス(型)とインスタンスの概念がある。
次に、上記したグループ単位での名前解決をするための具体的な制御装置1の構成としては、図42に示すようにすることができる。同図から明らかなように、本実施の形態では、図3に示す実施の形態を基本とし、さらにRAM11c内にグループ管理情報記憶部35を設ける。
このグループ管理情報記憶部35は、ネットワークに接続された複数のノード(制御装置)間で共有するデータの論理名(ネットワークグローバル変数)をグループ化して保持する記憶部である。このグループ管理情報記憶部35の内部構造(データ構造)は、図43に示すように、グループ名と、そのグループのID(或いはバージョン)と、制御装置がそのグループについて所有権を持つサーバになるのか、利用する側のクライアントになるのかを特定するサーバ・クライアント属性と、そのグループに属する変数名に関する情報を格納するExportリスト及びImportリストを備えている。このExportリスト及びImportリストは、図7,図8に示した実施の形態と同様であるので、詳細な説明を省略する。また、その他の構成並びに作用効果は、上記した実施の形態と同様であるので、対応する部材に同一符号を付し、各機能の詳細な説明を省略する。
次に、上記した制御装置1をネットワーク上に複数備えて構成されるシステムにおいて、名前解決をするアルゴリズムを説明する。この処理は、基本的には論理名調停部19が実行する。
繰り返し説明するが、本実施の形態の要部は、サーバ側の制御装置とクライアント側の制御装置が同じグループ名を持っている場合に、互いのIDを照合する。そして、同じIDならば一度名前解決を実行したことを判定し、そのグループに所属するネットワークグローバル変数については、新たな名前解決をスキップする。また、IDが異なる場合に実際にネットワークグローバル変数についての新たな名前解決を実行する。
すなわち、サーバ側の制御装置1がネットワークに加入したり、グループが変化した場合には、サーバ側の制御装置1は、グループ名とIDのペアを一斉同報によりネットワーク上に送信する。これにより、ネットワークに接続された他の制御装置1は、その一斉同報されたデータを受信するので、クライアント側の制御装置1は、グループ管理情報記憶部35をアクセスし、サーバから送信されてきたグループ名を検索する。そして、同じグループ名があったら、次にIDを照合する。
このとき、記憶しているIDと受信したIDが同じの場合には「名前解決要求なし」のレスポンスをサーバ側の制御装置1に返す。また、IDが異なる場合は、「名前解決要求あり」のレスポンスをサーバ側の制御装置1に返す。
上記のレスポンスを受信したサーバ側の制御装置は、「名前解決要求あり」のレスポンスを返してきたノードのみからなる「名前解決要求局リスト」を作成し、その「名前解決要求局リスト」にあるノード(制御装置)との間で、個々に名前解決を実行する。
一方、クライアント側の制御装置1がネットワークに加入したり、グループが変化した場合には、クライアント側の制御装置1は、自己が利用するグループのグループ名を一斉同報し、サーバ側の制御装置1にグループ名とIDのペアを送信するように要求する。これを受けた所定のサーバ側の制御装置1は、グループ管理情報記憶部35に格納された同じグループ名を持っているグループ名とIDのペアを返信する。
次いで、サーバ側の制御装置から送られてきたグループ名とIDのペアに基づき、クライアント側の制御装置1は、グループ管理情報記憶部35をアクセスし、サーバから送信されてきたグループ名を検索する。そして、同じグループ名があったら、次にIDを照合し、記憶しているIDと受信したIDが同じ場合には「名前解決要求なし」のレスポンスをサーバ側の制御装置1に返す。また、IDが異なる場合は、「名前解決要求あり」のレスポンスをサーバ側の制御装置1に返す。
そして、上記のレスポンスを受信したサーバ側の制御装置は、「名前解決要求あり」のレスポンスを返してきたノードのみからなる「名前解決要求局リスト」を作成し、その「名前解決要求局リスト」にあるノード(制御装置)との間で、個々に名前解決を実行する。従って、いずれの場合も、IDが同じグループを保持している制御装置は、実際のネットワークグローバル変数の名前解決処理はスキップされる。
次に、上記した全体の処理を実行するための各制御装置の具体的な機能を、サーバ側の制御装置がネットワークに加入などして、名前解決を行う可能性が生じた場合と、クライアント側の制御装置がネットワークに加入などして、名前解決を行う可能性が生じた場合のそれぞれについて、サーバ側とクライアント側に分けて説明する。
グループ管理情報記憶部35のサーバ・クライアント属性の欄が「サーバ」となっている制御装置が、そのグループについてのサーバとなる。そして、このサーバは、同じグループをインタフェースとし、サーバ・クライアント属性が「クライアント」となっている他の制御装置とID情報を交換する交換機能と、クライアント側からの要求があったときのみネットワークグローバル変数の変数データベース情報を他の制御装置と交換する交換機能を備えている。そして、2つの機能は、論理名調停部19に組み込まれている。
また、グループ管理情報記憶部35のサーバ・クライアント属性の欄が「クライアント」となっている制御装置が、そのグループについてのクライアントとなる。クライアント属性である制御装置は、サーバ属性をもつ同じグループ名を所有する他制御装置から送信されてくるID情報を受信するID情報受信機能と、そのIDと自制御装置が管理しているIDとを照合し異なる場合にはサーバ側制御装置にネットワークグローバル変数の名前解決を要求する要求機能と、その後変数データベース情報をサーバ側制御装置と交換する交換機能とを備えている。そして、これらの各機能も、論理名調停部19に組み込まれている。
そして、サーバ側の制御装置が、ネットワークに加入したり、グループが変化したときの処理は、図44に示すフローチャートからなる交換機能を実施する。
ネットワークに加入したか否かを判断し、加入したならばグループ管理情報記憶部35内に保持している全てのグループについて、グループ単位で以下に示す処理を実行する(ST171〜ST173)。
まず、サーバ・クライアント属性を認識し、サーバ属性になっているか否かを判断する(ST174)。そして、クライアント属性の場合には、サーバ側の処理は不要であるので、ステップ172に戻り次のグループについての処理に移行する。
一方、サーバ属性のグループの場合、名前解決要求局リスト作成処理を実行する(ST175)。つまり、上記したネットワークグローバル変数の名前解決が必要なノード(制御装置)をリストアップした「名前解決要求局リスト」を作成するために必要な一連の処理を実行するもので、具体的には、図45に示すフローチャートを実施する。
すなわち、この名前解決要求局リスト作成処理は、まず、処理対象となっているグループのグループ名とIDのペアを一斉同報で他ノード(ネットワークに接続された他の制御装置)へ送信する(ST180)。すると、後述するように、送信したグループを利用するクライアントとなっている制御装置は、「名前解決要求あり/なし」のレスポンスを返答してくるので、そのレスポンス(応答)の有無を判断し(ST181)、応答があった場合にはその内容を判断し(ST182)、名前解決要求ありの場合のみ、レスポンスを返答した応答局(制御装置)のネットワークアドレスを記録し、名前解決要求局リストを作成する(ST183)。なお、名前解決要求局リストは、応答局(名前解決の必要な制御装置)のネットワークアドレスを列挙したテーブルである。
よって、ステップ182の分岐判断でNoとなるのは、制御装置からレスポンスは返ってきたものの、名前解決要求なし(IDが一致)の場合であり、係る場合には応答局(クライアント側の制御装置)のネットワークアドレスは登録されないので、その後に行われる名前解決もされない。つまり、名前解決がスキップされる。
なお、他の制御装置からの応答がなく、一斉同報してから一定時間経過したならば、タイムアウトとなり名前解決要求局リスト作成処理を終了し、次の処理に移行する。
なお、他の制御装置からの応答がなく、一斉同報してから一定時間経過したならば、タイムアウトとなり名前解決要求局リスト作成処理を終了し、次の処理に移行する。
上記した名前解決要求局リスト作成処理が実行され、名前解決要求局リストが作成されたならば、そのリストに従って、名前解決処理(ST178)を繰り返し実行する(ST176〜ST178)。そして、リストに登録された全ての制御装置との間で名前解決が行われたならば、ステップ177の分岐判断でYesになるので、ステップ172に戻り次のグループについての処理に移行する。
また、ステップ178の名前解決処理は、具体的には図46に示すフローチャートのようになっている。すなわち、名前解決要求局リストには、名前解決が必要な制御装置のネットワークアドレスが列挙されているので、順番に処理していく(ST191,ST192)。つまり、まず出力変数について名前解決を行い(ST193)、次いで、入力変数の名前解決を行う(ST194)。なお、出力変数と入力変数に対する処理は、逆でももちろん良い。
そして、出力変数の名前解決処理は、図47に示すように、まず、サーバ側の論理名調停部19は、該当グループ名を指定し、Export変数リストを送信する(ST200)。この送信先は、処理対象のグループについて名前解決要求局リストに登録された制御装置である。つまり、制御装置と名前解決要求局リストにある制御装置間において、1対1のPeer−to−Peer通信で変数データベース情報の交換を行う。
後述するように、このExport変数リストの送信を受けた受信側の他の制御装置(ノード)は応答信号を送信してくるので、その応答信号があったか否かを判断する(ST201)。そして、あった場合には、正常なレスポンスであるか否かを判断し(ST202)、テーブル更新を完了する(ST203)。これにより、Export変数リストを送信した制御装置は、誰がExport変数リストを受け取り、誰が受け取っていないかを判断できる。そして、タイムアウトするまで応答信号の受信の有無をチェックし(ST204)、タイムアウトしたならば出力変数の名前解決処理を終了する。また、受信した応答信号が正常レスポンスでない場合も処理を終了する。
また、入力変数の名前解決は、図48に示すように、まず、サーバ側の論理名調停部19は、該当グループ名を指定し、相手が保持するExport変数リストを問い合わせるフレームを作成し送信する(ST210)。この問い合わせに対し、上記相手の制御装置からは、回答として対応するExport変数リストが送られてくるので、係る回答があったか否かを判断する(ST211)。そして、あった場合には、エラーでないことを確認し(ST212)、間接参照テーブルを作成する(ST213)。そして、タイムアウトするまで応答信号の受信の有無をチェックし(ST214)、タイムアウトしたならば入力変数の名前解決処理を終了する。また、受信した回答がエラーの場合も処理を終了する。このように入力変数の名前解決処理を含めることにより、グループ内に入力変数を含むことができるようにしている。
さらに、上記ステップ213の間接参照テーブルの作成処理の具体的な処理アルゴリズムは、図49に示すようになっている。すなわち、図17に示す処理機能を基本とし、一部改良したものである。図49に示すように、まず、受信した他ノード(制御装置)のExportリストを順番に検索し、そのリストに含まれる全ての変数について以下を繰り返す(ST220,ST221)。
つまり、変数名で自ノードのImportリストを検索する(ST222,ST223)。その変数名が、存在しなければステップ223の分岐判断はNoとなるので、ステップ220に戻り次の処理に移行する。すなわち、その変数の処理はスキップすることになる。
そして、変数の照合が行えたならば、Exportリストから、その変数を公開している制御装置のノードアドレス(1) と、その装置内のリンクメモリ内の自ノードエリアオフセット(2) を取得し、記録する(ST224,ST225)。
次いで、自ノードに保持しているImportリストを変数名で検索し、リンクメモリの(1) に該当する他ノードエリア(その変数を公開しているノード用のエリア)のベースアドレス(先頭アドレス)を算出する(ST226)。そして、そのベースアドレスに、ステップ225で求めたオフセット(2) を加算した値(3) を求める(ST227)。すなわち、対応するノードエリアでは、同一の論理名(変数名)の変数データを格納する領域のオフセット値を等しくしているので、上記求めた値(3) が、その変数データを記憶させるリンクエリアの先頭アドレスとなる。
次に、変数名をキーにして、変数データベース17を検索し、間接参照テーブル位置(その変数名のポインタを格納する箇所)を取得する(ST228)。つまり、その変数のメモリアドレスの欄に登録されたオフセットアドレスを取得する。そして、その取得したオフセットアドレスにしたがい、該当する間接参照テーブルの格納領域に、ステップ227で算出した値(3) (リンクメモリ15内の変数データを格納する領域の先頭位置を示すポインタ)を格納する(ST229)。これにより、間接参照テーブルの更新が行える。
一方、上記したようにサーバ側の制御装置が、ネットワークに加入したり、グループが変化したときに実行される既存のクライアント側の制御装置の処理は、図50に示すフローチャートからなる交換機能を実施することになる。
すなわち、メッセージの受信を待ち(ST230)、その受信したメッセージがグループ名,IDのペアであるか否かを判断する(ST231)。そして、係るペアでない場合には、そのメッセージに従った処理を実行する。一方、係るペアの場合には、自制御装置1のグループ管理情報記憶部35を検索し、保持している「グループ管理情報」に、サーバより送信されてきたグループ名があるか否かを判断する(ST232,ST233)。
次いで、同じグループ名がない場合には処理を終了し、あった場合には、次にIDを照合する(ST234)。そして、IDが同じであったら、「名前解決要求なし」のレスポンスをサーバ側に返す(ST235)。また、IDが異なる場合は、「名前解決要求あり」のレスポンスをサーバ側に返す(ST236)。
一方、上記したステップ236で「名前解決要求あり」のレスポンスを介した場合には、その後にサーバからのメッセージに従い、サーバ側の制御装置との間で名前解決処理をすることになる。この具体的な名前解決処理は、図51に示すフローチャートに従って実行することになる。
すなわち、まず、メッセージの受信を待ち(ST240)、メッセージを受信したならば、その種別を判断する(ST241)。そして、受信したメッセージがExportリストの場合には、受信したグループ名をキーとしてグループ管理情報記憶部35を検索し、該当するグループがあるか否かを判断する(ST242,ST243)。該当グループがある場合には、図49に示すフローチャートに従い間接参照テーブルを作成する(ST244)。その後、受信したメッセージの送信局であるサーバ側の制御装置に対し、正常に終了したことを示す正常応答を返し(ST245)、処理を終了する。なお、該当するグループがない場合には、送信局であるサーバ側の制御装置に対し、エラーを返し(ST246)、処理を終了する。
一方、受信したメッセージがExport問い合わせの場合には、受信したグループ名をキーとしてグループ管理情報記憶部35を検索し、該当するグループがあるか否かを判断する(ST247,ST248)。該当グループがある場合には、そのグループについてのExportリストを、メッセージの送信局であるサーバ側の制御装置に向けて送信し(ST249)、処理を終了する。なお、該当するグループがない場合には、送信局であるサーバ側の制御装置に対し、エラーを返し(ST246)、処理を終了する。
上記したサーバ側とクライアント側の各処理機能は、サーバ側の動作(ネットワーク加入,グループ変更等)に基づいて実行されるものについて説明したが、次にクライアント側の動作(ネットワーク加入,グループ変更等)に基づいて実行される各処理機能について説明する。
まず、クライアント側の制御装置は、図52に示すフローチャートからなるID要求機能を実施する。すなわち、ネットワークに加入したか否かを判断し、加入したならばグループ管理情報記憶部35内に保持している全てのグループについて、グループ単位で以下に示すステップ253から259までの処理を実行する(ST250〜ST252)。
つまり、サーバ・クライアント属性を認識し、クライアント属性になっているか否かを判断する(ST253)。そして、サーバ属性の場合には、クライアント側の処理は不要であるので、ステップ271に戻り次のグループについての処理に移行する。
一方、クライアント属性のグループの場合、一斉同報により、該当グループのID回答を要求する(ST254)。このID回答要求に応答し、その該当グループについてのサーバはIDを送信してくるので、係る応答があるか否かを判断する(ST255)。そして、応答があった場合には、受信したIDと、自己が保有する該当グループのIDを比較し(ST256)、同じ場合には「名前解決要求なし」のレスポンスを返し(ST257)、IDが違う場合には「名前解決要求あり」のレスポンスを返す(ST258)。なお、一定時間経過しても応答がない(タイムアウト)場合には、そのグループについての処理を終了する(ST259)。
また、係るクライアントがネットワークに加入した場合などにおけるサーバ側の処理は、そのサーバ側の制御装置の論理名調停部19が、図53に示すフローチャートからなるID情報要求への返答機能を実施する。
すなわち、クライアントから送られてくるID回答要求の受信を待つ(ST260,ST261)。そして、受信したならば、グループ管理情報記憶部35をアクセスし、該当グループを探す(ST262)。そして、検索した該当グループの属性がサーバ属性であるか否かを判断し(ST263)、クライアント属性の場合には返信する必要がないのでステップ260に戻り次の受信を待つ。そして、サーバ属性の場合には、そのグループ名とIDのペアを送信元の制御装置に向けて返信する(ST264)。
すると、この返信に対してクライアント側からは、上記した図52のステップ257或いは258のレスポンス(応答)が返ってくるので、係る応答の有無を判断する(ST265)。そして、応答があった場合には、名前解決要求であるか否かを判断し(ST266)、名前解決要求の場合には、図46に示す名前解決処理を実施する(ST267)。
なお、応答が「名前解決要求なし」の場合(ステップ266でNo)と、応答がなくタイムアウトした場合(ステップ268でYes)には、そのまま処理を終了する。
なお、応答が「名前解決要求なし」の場合(ステップ266でNo)と、応答がなくタイムアウトした場合(ステップ268でYes)には、そのまま処理を終了する。
図54は、上記したグループ単位での名前解決を行う実施の形態における変形例を示している。この変形例は、サーバ側の制御装置において、グループに属するネットワークグローバル変数のうちその制御装置(サーバ)への入力変数となる変数については、ある1つの装置から入力され、複数の装置から入力されないようにしている。具体的には、参照カウンタを設け、参照カウンタが0(何れの装置も未参照)の場合に入力変数の名前解決を図るようにしている。
具体的には、図54と図46を比較すると明らかなように、図46に示した名前解決処理を基本とし、出力変数についての名前解決を実行した(ST193)後に、参照カウンタのカウント値を確認する(ST195)。そして、カウント値が0の場合には入力変数の名前解決を行う(ST194)。また、カウント値が0以外の場合には入力変数の名前解決をすることなくステップ191に戻り、名前解決要求局リストに登録された次の制御装置に対する処理に移行する。さらに、入力変数の名前解決をしたならば、参照カウンタをインクリメントする(ST196)。これにより、以後はその名前解決をした入力変数に対する名前解決はスキップされる(ステップ195で参照カウンタの値が0以外となるため)。この参照カウンタは、プログラミング装置などによりリセットできるようにしている。なお、その他の処理ステップは、図46に示したものと同様であるので、同一ステップ番号を付し、その詳細な説明を省略する。
図55は、さらに別の実施の形態を示している。すなわち、上記したグループ管理する実施の形態を基本とし、グループに属するネットワークグローバル変数が全て同じでない場合に、該当制御装置内のアプリケーションプログラムから該当グループに属するネットワークグローバル変数のデータにアクセスすることを禁止する機能を付加している。すなわち、サーバ側とクライアント側のグループ名が一致しており名前解決を実行した結果、グループに含まれるネットワークグローバル変数のうち一つでも名前,データ型などが一致しなかった場合は、グループ認証が失敗したと判断し、間接参照テーブル内のアドレスを無効、またはエラー値を含む特定のアドレスに書き替える。
具体的には、図49に示す間接参照テーブル作成及び更新処理において、ステップ273,ステップ274でNoとなった際に継続処理を中断し、図55に示すエラー処理を実行する機能を付加する。そして、このエラー処理は、該当グループのExportリストとImportリストを先頭から順に検索し(ST280)、変数名から変数名データベースを検索し、その変数の間接参照テーブル位置を取得する(ST282)。そして、取得した間接参照テーブル位置に、エラー値を含む無効アドレス或いは特定アドレスを格納する(ST283)。係る位置取得とアドレス格納の処理をリストの最後まで行ったならば処理を終了する(ST281)。
図56は、さらに別の追加機能(安全対策)を付与した実施の形態を示している。すなわち、本形態では、制御装置1にソフトウェアスイッチ,ロックボタン,ディップスイッチなどの名前解決のロックスイッチを設ける。そして、このスイッチをONにすると、上記したグループ名,IDが一致するか否かの判断をすることなく、名前解決処理はしないようにする。これにより、例えば名前解決をする必要がないことがわかっている場合に、係るスイッチをONにすることにより、名前解決をするか否かの判断をする処理も行わずに、実際のプログラムの実行に移行できる。よって、より迅速な立ち上げが行える。
具体的には、図56に示すように、ロックスイッチの状態を検出し(ST290)、ロックスイッチがONか否かを判断する(ST291)。そして、ONならば、名前解決処理等の前処理をスキップし、実際のシステム稼動のためのプログラムの実行に移行する。また、ロックスイッチがOFFの場合には、図44等に示すID情報交換などの名前解決の必要性の有無の判断ならびに、必要に応じて名前解決処理を実行する(ST292)。なお、名前解決のロックスイッチは、制御装置の実行モードに自動的に連動するようにしてもよい。
図57は、さらに別の実施の形態を示している。本実施の形態は、上記したグループ管理情報に従ってグループ単位で名前解決処理をする制御装置に接続するプログラミング装置であり、図57はそのプログラミング装置の機能を示している。
すなわち、このプログラミング装置は、グループとそのグループに属するネットワークグローバル変数を管理し、グループ毎にユニークなIDを添付するID添付機能を備え、グループに属するネットワークグローバル変数の属性並びなど変数のバインディングに影響ある要素が変化した場合にグループのIDを更新するID更新機能を備えている。
具体的には、まず処理対象の制御装置1のグループ管理情報記憶部35に格納されているグループ管理情報をアップロードして一時退避する(ST300)。そして、ユーザがプログラムを編集した後、その編集後のネットワークグローバル変数の情報からグループ管理情報を生成する(ST301,ST302)。
次いで、ステップ300で退避した以前のグループ管理情報を読み出し、ステップ302で生成したグループ管理情報と1グループずつ比較する(ST303)。そして、生成したグループが新グループか否かを判断する(ST304)。つまり、一時退避したグループ中に存在しない場合には、新グループとなるのでこの分岐判断はYesとなり、新しいIDを添付する(ST307)。これが、ID添付機能である。
また、新グループでない場合には、その内容を比較し、同じか否かを判断する(ST305)。そして、同じ場合には、ステップ306に進み、古いIDをそのまま使用する。また、異なる場合には、ステップ305の分岐判断でNoとなるので、ステップ307に進み、新しいIDを添付する(ST307)。これが、ID更新機能である。そして、上記のようにしてIDの付与を行った新しいグループ管理情報を、制御装置へダウンロードして処理を終了する(ST308)。
なお、上記した各実施の形態においては、何れもネットワークに接続された各制御装置が持つ論理名(ネットワークグローバル変数)で定義されたすべてのデータについて動的に名前解決をするように説明したが、本発明はこれに限ることはなく、一部について動的に名前解決をすることも含む。つまり、ネットワークに接続された制御装置間で通信を行い、論理名についての関連情報,記憶位置情報等の更新処理を行うのは、すべてのデータについて行っても良いし、一部のデータのみについて行っても良い。
すなわち、プログラミングツールは、制御装置で実行されるプログラムを開発するための環境であり、ユーザがラダー言語などで作成したプログラムをコンパイルしたり、ライブラリをリンクしたりして制御装置で実行可能な形式に変換する機能を持つ。そして、プログラミングツール上では、複数の制御装置のプログラム,変数(データ)の情報を1つのプロジェクトとして管理する。従って、そのプログラミングツールは、プロジェクトに含まれる複数の制御装置のプログラムで使われている変数(データ)の情報がわかっているので、プログラミング上で名前解決を行うことができる。これを静的名前解決と称する。この静的名前解決は、動的名前解決と同様のアルゴリズムに従ってツール上で処理することもできるし、ツールがすべての変数を知っているので、ツール側で一括処理するようにしてもよい。そして、静的名前解決が行われなかったものについて動的名前解決を行う。
産業上の利用可能性
本発明では、具体的なデータの記憶位置情報を知らなくても、論理名でアクセスすることができるので、通信処理を意識することなく、共有するデータへのアクセスが容易に行える。また、制御装置等を稼動するためのユーザプログラムは、記憶位置情報を組み込むことができるので、容易にプログラムを組むことができ、また、仮に後でデータを記憶する記憶位置が変更されても、ユーザプログラムまでは変更する必要がない(関連情報を修正するだけですむ)。よって、データをアクセスするための開発並びにその後のシステム変更に応じた修正も容易に行えるので好ましい。
本発明では、具体的なデータの記憶位置情報を知らなくても、論理名でアクセスすることができるので、通信処理を意識することなく、共有するデータへのアクセスが容易に行える。また、制御装置等を稼動するためのユーザプログラムは、記憶位置情報を組み込むことができるので、容易にプログラムを組むことができ、また、仮に後でデータを記憶する記憶位置が変更されても、ユーザプログラムまでは変更する必要がない(関連情報を修正するだけですむ)。よって、データをアクセスするための開発並びにその後のシステム変更に応じた修正も容易に行えるので好ましい。
1 制御装置
2 ネットワーク
11 制御部
12 通信部
15 リンクメモリ
16 間接参照テーブル
17 変数データベース
18 制御実行部
19 論理名調停部
20 Export変数リスト
21 Import変数リスト
22 Remote変数リスト
2 ネットワーク
11 制御部
12 通信部
15 リンクメモリ
16 間接参照テーブル
17 変数データベース
18 制御実行部
19 論理名調停部
20 Export変数リスト
21 Import変数リスト
22 Remote変数リスト
Claims (25)
- ネットワークに接続された複数のノード間で共有するデータの論理名を定義し、
前記ノードの記憶部の所定の記憶領域に前記共有するデータを記憶保持し、
前記論理名と、その論理名に対応するデータを格納した前記記憶部の記憶位置情報を関連付けた関連情報を関連情報記憶部に記憶保持させ、
前記複数のノード間で、前記論理名,前記関連情報に基づいて前記共有するデータの送受を行い、
通信相手のノードの状態が変化した場合、その変化が前記関連情報に影響を与える時に、前記ネットワークに接続されたノードの処理を停止することなく連動して前記関連情報を変更するようにしたことを特徴とするネットワークシステム。 - ネットワークに接続された複数の制御装置間でデータを共有することのできる制御装置における制御方法であって、
前記制御装置に実装されたユーザプログラムが、記憶部に格納されたデータをアクセスするに際し、
前記データが格納された記憶位置情報と、そのデータにつけた論理名を関連付けた関連情報を記憶保持し、
前記ユーザプログラムは、論理名に基づく前記関連情報を取得し、前記記憶部へアクセスするようにしたことを特徴とする制御方法。 - 前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、
論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、
前記対応テーブルの内容が変更された場合に、ネットワークに接続された他の制御装置に前記対応テーブルの変更内容を通知する処理を行うようにしたことを特徴とする請求項2に記載の制御方法。 - 前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、
論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、
請求項3に記載の変更内容の通知を受けた制御装置は、その変更内容を解釈し、前記間接参照テーブルを更新する処理を行うことを特徴とする請求項2に記載の制御方法。 - 前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、
論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、
請求項3に記載の変更内容の通知を受けた制御装置は、その受信の際にその変更内容に対応する論理名のデータが自己に必要か否かを判断し、必要なもののみ記憶保持し、
次いで、その記憶保持した前記変更内容を解釈し、前記間接参照テーブルを更新する処理を行うことを特徴とする請求項2に記載の制御方法。 - 前記関連情報は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、
論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとに分けて記憶保持され、
自己が利用する論理名に関する情報の送信を要求するメッセージをネットワーク上に送信し、
前記メッセージに応答して他の制御装置から送られてきた前記論理名に関する情報を受信し、
前記受信した情報に基づいて、前記間接参照テーブルを作成する処理を行うことを特徴とする請求項2に記載の制御方法。 - ネットワークに接続された他の制御装置間との間でデータを共有することのできる制御装置であって、
ネットワークを介して前記他の制御装置との間で、データ交換をする通信部と、
前記通信部で得た共有するデータを格納する記憶部と、
前記共有するデータは論理名で定義し、その論理名と、その論理名に対応するデータを格納した前記記憶部の記憶位置情報を関連付けた関連情報を格納する関連情報記憶部と、
前記論理名に基づいて前記関連情報記憶部にアクセスし、その論理名に対応する前記位置情報を取得するとともに対応するデータが記憶される前記記憶部の記憶領域にアクセスする機能を有する制御実行部と、
前記記憶部内の記憶位置情報の変更に基づき、前記関連情報記憶部の前記関連情報を更新する更新手段を備えたことを特徴とする制御装置。 - 前記関連情報記憶部は、記憶部に格納されたデータをアクセスするために用いる記憶位置情報が格納された間接参照テーブルと、
論理名と、その論理名についての記憶位置情報が格納された前記間接参照テーブル内の記憶位置情報を対応付けた対応テーブルとを備えたことを特徴とする請求項7に記載の制御装置。 - 前記対応テーブルの内容が変更された場合に、ネットワークに接続された他の制御装置に向けて前記対応テーブルの変更内容を送信する機能を備えたことを特徴とする請求項8に記載の制御装置。
- 他の制御装置からネットワークを介して受信した、前記他の制御装置に記憶された対応テーブルの変更内容を解釈し、自己の前記間接参照テーブルを更新する更新機能を備えたことを特徴とする請求項8または9に記載の制御装置。
- 自己の制御装置内で使用している論理名を他の制御装置に公開し、その他の制御装置にその論理名に対応するデータを提供する機能を備えたことを特徴とする請求項7乃至9のいずれか1項に記載の制御装置。
- ネットワークに接続された他の制御装置で公開された論理名を利用し、公開されたその論理名に対応する提供されたデータを参照する機能を備えたことを特徴とする請求項7,8,10,11のいずれか1項に記載の制御装置。
- 前記対応テーブルの変更内容の通知を受信した際に、その通知が自己が利用する論理名についてのものであるか否かを判断し、自己が利用する論理名についての変更内容の通知のみ記憶保持する手段を有し、
前記更新機能は、前記記憶保持した変更内容に基づいて実行するように構成したことを特徴とする請求項10に記載の制御装置。 - 自己が利用する論理名に関する情報の送信を要求するメッセージをネットワーク上に送信する手段と、
前記メッセージに応答して他の制御装置から送られてきた前記論理名に関する情報を受信するとともに、その受信した情報に基づいて、前記間接参照テーブルを作成する手段を備えたことを特徴とする請求項8に記載の制御装置。 - 接続されたプログラミング装置から受け取ったオンラインエディット要求を解釈し、その解釈に応じて対応テーブルの更新を行い、その更新に伴い前記間接参照テーブルを更新する機能を備えたことを特徴とする請求項8項乃至14のいずれか1項に記載の制御装置。
- 前記間接参照テーブルを複数持ち、その複数の間接参照テーブルを適宜切り替えてそのうちの一つを使用状態にするように構成したことを特徴とする請求項15に記載の制御装置。
- 複数のプロセッサが占有するローカルメモリを持ち、それらがバスで接続されているマルチプロセッサシステムにおいて、
前記各ローカルメモリ間のデータ交換を定期的に行うデータ転送処理部と、
それらのローカルメモリ内に格納されたデータをアクセスするために用いる間接参照テーブルと、
前記間接参照テーブルを介してデータをアクセスする機構を持つ制御実行部と、
論理名とローカルメモリアドレスの対応テーブルを管理し、その情報に基づき前記間接参照テーブルを変更する論理名調停部を備えたことを特徴とするマルチプロセッサシステム。 - 前記ノードは、複数のノード間で共有するデータの論理名をグループ化し、グループ名と更新情報を関連付けて保持するグループ管理情報を記憶保持し、
前記複数のノードに記憶保持された同一のグループ名に対する更新情報が不一致の場合に、前記関連情報に影響を与える時と判断し、前記関連情報の更新処理をするようにしたことを特徴とする請求項1に記載のネットワークシステム。 - 前記ネットワークに接続された複数の制御装置間で共有するデータの論理名をグループ化し、グループ名と更新情報とそのグループに対する所有権の有無情報を関連付けて保持するグループ管理情報を記憶保持し、
グループ名と更新情報が他の制御装置と不一致の場合に前記関連情報を更新し、一致する場合に前記関連情報の更新処理をしないことを特徴とする請求項請求項3または4に記載の制御方法。 - 前記ネットワークに接続された複数の制御装置間で共有するデータの論理名をグループ化し、グループ名と更新情報とそのグループに対する所有権の有無情報を関連付けて保持するグループ管理情報記憶手段を設け、
グループ名と更新情報が他の制御装置と不一致の時に、前記更新手段がそのグループに属するデータについての前記関連情報記憶部の前記関連情報を更新するための処理を実行するようにしたことを特徴とする請求項7または8に記載の制御装置。 - 前記所有権を有する制御装置であって、
同一のグループを持つ前記所有権のない他の制御装置に前記更新情報を送信する更新情報送信手段と、
前記他の制御装置から要求があったときのみ、そのグループに属するデータについての前記関連情報記憶部の前記関連情報を送信する関連情報送信手段を備えたことを特徴とする請求項20に記載の制御装置。 - 前記所有権を有する制御装置であって、
同一のグループに属する共有するデータのうち、前記所有権を有する制御装置への入力変数となるデータについて、参照したか否かの参照情報を記憶する参照情報記憶手段を設け、
前記参照情報記憶手段に記憶された参照情報に基づき、何れの他の制御装置も未参照の場合にのみ、そのデータについて前記関連情報の更新処理をする機能を備えたことを特徴とする請求項20または21に記載の制御装置。 - 前記所有権のない制御装置であって、
同一のグループを持つ前記所有権の有る他の制御装置から送信されてくる前記更新情報を受信する受信手段と、
その受信手段で受信した前記更新情報と、自己が管理している更新情報とを照合し、異なる場合に前記所有権の有る他の制御装置に、そのグループに属するデータについての前記関連情報記憶部の前記関連情報の送信を要求する要求手段と、
その要求にともない送信されてきた前記関連情報に基づき、前記更新手段が自己が有する関連情報の更新をするようにしたことを特徴とする請求項20に記載の制御装置。 - 同一のグループに属するデータを共有する各制御装置が、同一のデータを共有しているか否かを判断する判断手段と、
前記判断手段が、共有していないと判断した際に、前記同一のグループに属する共有するデータへのアクセスを禁止させる機能を備えたことを特徴とする請求項20乃至23の何れか1項に記載の制御装置。 - 更新停止命令操作手段を設け、
その更新停止命令操作手段から停止命令が発せられると、前記更新処理の実行を禁止する手段を設けたことを特徴とする請求項20乃至24の何れか1項に記載の制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008234867A JP2009009607A (ja) | 1999-10-15 | 2008-09-12 | ネットワークシステム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29395799 | 1999-10-15 | ||
JP2008234867A JP2009009607A (ja) | 1999-10-15 | 2008-09-12 | ネットワークシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001530652 Division | 2000-10-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009009607A true JP2009009607A (ja) | 2009-01-15 |
Family
ID=17801384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008234867A Pending JP2009009607A (ja) | 1999-10-15 | 2008-09-12 | ネットワークシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US7024463B1 (ja) |
EP (1) | EP1231526A4 (ja) |
JP (1) | JP2009009607A (ja) |
AU (1) | AU7685500A (ja) |
WO (1) | WO2001027701A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013065119A1 (ja) * | 2011-11-01 | 2015-04-02 | アイシン精機株式会社 | 障害物警報装置 |
JP2015215865A (ja) * | 2014-04-24 | 2015-12-03 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ |
US11188048B2 (en) | 2018-10-23 | 2021-11-30 | Keyence Corporation | Programmable logic controller and main unit |
WO2022190417A1 (ja) * | 2021-03-11 | 2022-09-15 | オムロン株式会社 | 開発支援装置、開発支援方法および開発支援プログラム |
WO2022190427A1 (ja) * | 2021-03-11 | 2022-09-15 | オムロン株式会社 | 開発支援装置、開発支援方法、及び、開発支援プログラム |
WO2022190428A1 (ja) * | 2021-03-11 | 2022-09-15 | オムロン株式会社 | 開発支援装置、開発支援方法、及び、開発支援プログラム |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002287997A (ja) * | 2001-03-23 | 2002-10-04 | Kinji Mori | 多重系処理方法 |
US7024663B2 (en) * | 2002-07-10 | 2006-04-04 | Micron Technology, Inc. | Method and system for generating object code to facilitate predictive memory retrieval |
JP4596153B2 (ja) * | 2003-10-02 | 2010-12-08 | オムロン株式会社 | プログラマブルコントローラおよびコントローラシステムならびに変数解決方法 |
WO2005081494A1 (en) * | 2004-02-19 | 2005-09-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for state memory management |
US7296136B1 (en) * | 2004-06-04 | 2007-11-13 | Hewlett-Packard Development Company, L.P. | Methods and systems for loading data from memory |
JP2005352839A (ja) * | 2004-06-11 | 2005-12-22 | Matsushita Electric Ind Co Ltd | データ通信装置 |
JP3934647B2 (ja) * | 2004-11-30 | 2007-06-20 | 京セラミタ株式会社 | データ管理システム及び画像形成装置 |
JP4544422B2 (ja) * | 2005-04-19 | 2010-09-15 | オムロン株式会社 | プログラマブル・コントローラ |
JP4722613B2 (ja) | 2005-08-02 | 2011-07-13 | 株式会社ジェイテクト | 分散制御システム |
US8688800B2 (en) * | 2005-10-05 | 2014-04-01 | Hewlett-Packard Development Company, L.P. | Remote configuration of persistent memory system ATT tables |
JPWO2007102313A1 (ja) * | 2006-03-07 | 2009-07-23 | 株式会社安川電機 | プログラミング装置とデータ構造自動識別方法 |
WO2007110953A1 (ja) * | 2006-03-29 | 2007-10-04 | Mitsubishi Denki Kabushiki Kaisha | プログラム作成支援装置、プログラム作成支援方法とその方法をコンピュータに実行させるプログラムおよびそれを記録した記録媒体 |
JP4952228B2 (ja) | 2006-12-18 | 2012-06-13 | 株式会社ジェイテクト | Plc分散制御システム |
DE112007003298T5 (de) * | 2007-02-19 | 2009-11-19 | Mitsubishi Electric Corporation | Periphere Vorrichtung einer programmierbaren Steuerung, Verfahren zur Variablensubstitution und Computerprogrammprodukt dafür |
DE102009019096A1 (de) * | 2009-04-20 | 2010-11-04 | Pilz Gmbh & Co. Kg | Sicherheitssteuerung und Verfahren zum Steuern einer automatisierten Anlage |
JP5671327B2 (ja) * | 2010-03-31 | 2015-02-18 | キヤノン株式会社 | 通信処理装置および通信処理方法 |
WO2013186889A1 (ja) * | 2012-06-14 | 2013-12-19 | 三菱電機株式会社 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
JP6281389B2 (ja) * | 2013-05-09 | 2018-02-21 | 富士電機株式会社 | 共有データ定義支援システム、その支援装置、プログラム |
JP6375666B2 (ja) * | 2014-03-31 | 2018-08-22 | 株式会社ジェイテクト | Plcおよびplc用のプログラミングツール |
US10355980B2 (en) * | 2016-09-30 | 2019-07-16 | Juniper Networks, Inc. | Deterministically selecting a bypass LSP for a defined group of protected LSPS |
JP6816554B2 (ja) * | 2017-02-22 | 2021-01-20 | オムロン株式会社 | 制御システム、制御装置および制御プログラム |
US11894945B2 (en) | 2022-06-29 | 2024-02-06 | Siemens Industry, Inc | Control device for a building automation system having name resolution management |
WO2023136927A1 (en) * | 2022-01-14 | 2023-07-20 | Siemens Industry, Inc. | Control device for a building automation system having name resolution management |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1023047A (ja) * | 1996-07-04 | 1998-01-23 | Suzuki Motor Corp | ネットワークノード間におけるデータ送信制御方式 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3512910B2 (ja) * | 1995-07-06 | 2004-03-31 | 株式会社東芝 | 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法 |
JPH0954719A (ja) | 1995-08-14 | 1997-02-25 | Meidensha Corp | クライアント・サーバ型データベース |
JP3368370B2 (ja) * | 1995-09-26 | 2003-01-20 | オムロン株式会社 | 負荷分散装置および方法 |
-
2000
- 2000-10-13 WO PCT/JP2000/007104 patent/WO2001027701A1/ja active Application Filing
- 2000-10-13 AU AU76855/00A patent/AU7685500A/en not_active Abandoned
- 2000-10-13 EP EP00966458A patent/EP1231526A4/en not_active Withdrawn
- 2000-10-13 US US10/110,457 patent/US7024463B1/en not_active Expired - Lifetime
-
2008
- 2008-09-12 JP JP2008234867A patent/JP2009009607A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1023047A (ja) * | 1996-07-04 | 1998-01-23 | Suzuki Motor Corp | ネットワークノード間におけるデータ送信制御方式 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013065119A1 (ja) * | 2011-11-01 | 2015-04-02 | アイシン精機株式会社 | 障害物警報装置 |
JP2015215865A (ja) * | 2014-04-24 | 2015-12-03 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ |
US11188048B2 (en) | 2018-10-23 | 2021-11-30 | Keyence Corporation | Programmable logic controller and main unit |
WO2022190417A1 (ja) * | 2021-03-11 | 2022-09-15 | オムロン株式会社 | 開発支援装置、開発支援方法および開発支援プログラム |
WO2022190427A1 (ja) * | 2021-03-11 | 2022-09-15 | オムロン株式会社 | 開発支援装置、開発支援方法、及び、開発支援プログラム |
WO2022190428A1 (ja) * | 2021-03-11 | 2022-09-15 | オムロン株式会社 | 開発支援装置、開発支援方法、及び、開発支援プログラム |
Also Published As
Publication number | Publication date |
---|---|
US7024463B1 (en) | 2006-04-04 |
AU7685500A (en) | 2001-04-23 |
EP1231526A4 (en) | 2009-04-29 |
EP1231526A1 (en) | 2002-08-14 |
WO2001027701A1 (fr) | 2001-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009009607A (ja) | ネットワークシステム | |
US6925486B2 (en) | Information processing apparatus and method and information processing program recording medium | |
US6973506B2 (en) | Position identifier management apparatus and method, mobile computer, and position identifier processing method | |
JP4285420B2 (ja) | センサネット管理システム | |
JP4207105B2 (ja) | システム | |
US20030037097A1 (en) | Accessing information content | |
JP3959282B2 (ja) | 装置のマスタ機能の移行方法、通信ネットワークシステム及び装置 | |
JP3606355B2 (ja) | エージェントシステム及び通信方法 | |
CN103069348A (zh) | 用于对工业自动化装置的项目进行规划和/或编程的方法和装置 | |
JP2001325140A (ja) | ファイル転送装置 | |
JP3178673B2 (ja) | プロトコル中継変換方法及び装置 | |
JP4883194B2 (ja) | プログラマブルコントローラおよびコントローラシステム | |
JP2001092641A (ja) | ソフトウェアインストールシステム | |
JP2021170193A (ja) | プロセス内通信装置、プロセス内通信方法及びプロセス内通信プログラム | |
JP3600478B2 (ja) | プロセスならびにそれらのデータと資源を識別する方法および交換局 | |
US6981046B2 (en) | System for the efficient transmission of partial objects in distributed data bases | |
JPH08307451A (ja) | データ伝送システム及び方法 | |
JP3105029B2 (ja) | 二重化制御装置 | |
JP2007199992A (ja) | 計算機システム | |
JP2001337858A (ja) | 複製データ管理システム | |
KR102394491B1 (ko) | 네트워크에 연결된 기기들의 서비스 기반의 동작에 관한 정보를 획득하기 위한 방법과 장치 | |
JP2006050023A (ja) | ノード | |
JPH10187468A (ja) | 並列分散処理システムおよびその方法 | |
Qiu et al. | LiREP: lightweight incremental reprogramming of sensor nodes based on in-situ modification | |
JPH11288307A (ja) | Faシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081014 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110526 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111020 |