(57)【要約】【課題】制御装置が通信相手となる他の制御装置の所定のアドレスの格納データを取得するための通信プログラムの作成を容易にする。【解決手段】変数・通信プログラム生成部１５は、シンボルテーブル入力部１１が入力したシンボルテーブル２３等に基づいて、任意の制御装置が他機種の制御装置の所定のアドレスの格納データを取得するための通信プログラム等を生成する。上記所定のアドレスは、シンボルテーブル２３における任意のシンボルデータに係わるアドレスであり、このアドレスを上記２つの制御装置間の通信に用いられる通信プロトコルに応じたアドレスに変換して、この変換アドレスを用いて上記通信プログラムが生成される。【選択図】図３
2017142767.tif 000002
【特許請求の範囲】
【請求項１】
第１の制御装置と第２の制御装置を有するシステムであって、
変数連携支援装置を更に有し、
該変数連携支援装置は、
前記第１の制御装置における制御に係わるメモリアドレスに任意の識別子が対応付けられて成るメモリ情報が１以上格納された第１のテーブルに基づいて、前記第２の制御装置が、前記第１の制御装置と通信を行って該第１の制御装置から任意の前記メモリ情報に係わるメモリアドレスのデータを取得するための通信プログラムの作成を支援する通信プログラム生成支援手段を有し、
前記通信プログラム生成支援手段は、少なくとも、前記第１制御装置−第２制御装置間の通信に用いる通信プロトコルに応じて、前記任意のメモリ情報に係るメモリアドレスを、該通信プロトコルで対応するアドレスに変換して、前記通信プログラム生成の際には該変換後のアドレスを用いることを特徴とするコントローラシステム。
【請求項２】
前記通信プログラム生成支援手段は、
該メモリ情報におけるアドレス体系と前記通信プロトコルに係るアドレス体系との対応関係を示すアドレス対応情報を記憶するアドレス対応情報記憶手段と、
前記第１のテーブルの１以上のメモリ情報の一部または全部あるいは該メモリ情報が任意に編集されてなる編集メモリ情報の一部または全部を対象メモリ情報として、該対象メモリ情報毎に、その対象メモリ情報に係わる前記メモリアドレスを前記アドレス対応情報に基づいて前記通信プロトコルで対応するアドレスに変換して、該変換したアドレスを用いて前記通信プログラムの生成を行うプログラム生成手段と、
を有することを特徴とする請求項１記載のコントローラシステム。
【請求項３】
前記プログラム生成手段が生成する前記通信プログラムは、前記第２の制御装置で実行されると、該第２の制御装置に、前記第１の制御装置と前記通信プロトコルに従った通信を行って前記第１の制御装置内の前記対象メモリ情報に係わる前記メモリアドレスの格納データを取得する処理を実行させるものであることを特徴とする請求項２記載のコントローラシステム。
【請求項４】
前記プログラム生成手段は、更に、前記各対象メモリ情報に基づいて、前記取得した前記対象メモリ情報に係わるメモリアドレスの格納データを格納するための変数データを生成することを特徴とする請求項３記載のコントローラシステム。
【請求項５】
前記通信プログラム生成支援手段は、
前記第１のテーブルの前記１以上のメモリ情報の一部または全部を取得するメモリ情報入力手段を更に有することを特徴とする請求項１〜４の何れかに記載のコントローラシステム。
【請求項６】
前記通信プログラム生成支援手段は、
前記第１のテーブルの前記１以上のメモリ情報の一部または全部を取得するメモリ情報入力手段と、
該メモリ情報入力手段により取得したメモリ情報に対して、任意の編集を行わせて前記編集メモリ情報を作成させるメモリ情報編集手段と、
を更に有することを特徴とする請求項２〜４の何れかに記載のコントローラシステム。
【請求項７】
前記メモリ情報入力手段は、前記第１のテーブルの各メモリ情報のなかから、予め登録されているデータ型のメモリ情報を、取得することを特徴とする請求項５記載のコントローラシステム。
【請求項８】
前記メモリ情報入力手段は、前記取得した各メモリ情報におけるデータ型を、前記第２の制御装置側で利用可能なデータ型に変換したうえで、該取得した各メモリ情報を取り込むことを特徴とする請求項５記載のコントローラシステム。
【請求項９】
前記メモリ情報入力手段は、前記取得した各メモリ情報におけるシンボル名に、前記第２の制御装置側で変数名として利用不可である文字／記号が含まれている場合には、これを前記第２の制御装置側で変数名として利用可能な文字／記号に置き換えたうえで、該取得した各メモリ情報を取り込むことを特徴とする請求項５記載のコントローラシステム。
【請求項１０】
前記通信プログラム生成支援手段は、
前記取り込んだ各メモリ情報に対して任意の編集を行わせることで前記編集メモリ情報を作成させると共に、該各編集メモリ情報のなかから任意の１以上の編集メモリ情報を選択させるメモリ情報編集手段を更に有し、
該選択された編集メモリ情報に係る各アドレスからデータを取得するための通信プログラムの作成を支援させることを特徴とする請求項２〜４の何れかに記載のコントローラシステム。
【請求項１１】
前記通信プログラム生成支援手段は、
前記対象メモリ情報に関する所定の検査を実行するメモリ情報検査手段を更に有することを特徴とする請求項２〜４の何れかに記載のコントローラシステム。
【請求項１２】
前記第１の制御装置は複数台あり、
前記変数連携支援装置の前記通信プログラム生成支援手段は、前記複数の第１の制御装置それぞれの前記第１のテーブルに基づいて、該複数の第１の制御装置それぞれの前記通信プログラムの作成を支援することを特徴とする請求項１〜４の何れか記載のコントローラシステム。
【請求項１３】
前記通信プログラム生成支援手段は、前記第１のテーブルの前記メモリ情報の一部または全部を取得すると共に、任意に設定させた取得元の第１の制御装置の識別情報を、該取得したメモリ情報の属性情報として記憶するメモリ情報入力手段を有することを特徴とする請求項１２記載のコントローラシステム。
【請求項１４】
第１の制御装置と第２の制御装置を有するシステムに係わる装置であって、
前記第１の制御装置における制御に係わるメモリアドレスに任意の識別子が対応付けられて成るメモリ情報が１以上格納された第１のテーブルに基づいて、前記第２の制御装置が、前記第１の制御装置と通信を行って該第１の制御装置から任意の前記メモリ情報に係わるメモリアドレスのデータを取得するための通信プログラムの作成を支援する通信プログラム生成支援手段を有し、
前記通信プログラム生成手段は、少なくとも、前記第１制御装置−第２制御装置間の通信に用いる通信プロトコルに応じて、前記任意のメモリ情報に係るメモリアドレスを、該通信プロトコルで対応するアドレスに変換して、前記通信プログラム生成の際には該変換後のアドレスを用いることを特徴とする変数連携支援装置。
【請求項１５】
前記通信プログラム生成支援手段は、
該メモリ情報におけるアドレス体系と前記通信プロトコルに係るアドレス体系との対応関係を示すアドレス対応情報を記憶するアドレス対応情報記憶手段と、
前記第１のテーブルの１以上のメモリ情報の一部または全部あるいは該メモリ情報が任意に編集されてなる編集メモリ情報の一部または全部を対象メモリ情報として、該各対象メモリ情報毎に、その対象メモリ情報に係わる前記メモリアドレスを前記アドレス対応情報に基づいて前記通信プロトコルで対応するアドレスに変換して、該変換したアドレスを用いて前記通信プログラムの生成を行うプログラム生成手段と、
を有することを特徴とする請求項１４記載の変数連携支援装置。
【請求項１６】
前記プログラム生成手段が生成する前記通信プログラムは、前記第２の制御装置で実行されると、該第２の制御装置に、前記第１の制御装置と前記通信プロトコルに従った通信を行って前記第１の制御装置内の前記対象メモリ情報に係わる前記メモリアドレスの格納データを取得する処理を実行させるものであることを特徴とする請求項１５記載の変数連携支援装置。
【請求項１７】
前記通信プログラム生成支援手段は、
前記第１のテーブルの前記１以上のメモリ情報の一部または全部を取得するメモリ情報入力手段と、
該メモリ情報入力手段により取得したメモリ情報に対して、任意の編集を行わせて前記編集メモリ情報を作成させるメモリ情報編集手段と、
を更に有することを特徴とする請求項１５記載の変数連携支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置間で通信ネットワークを介してデータ通信を行うためのプログラム作成を容易化する装置等に関するものである。
【背景技術】
【０００２】
複数の制御装置間でのデータ送受信を行う通信プログラムの開発では、制御システムのプログラミング装置が持つシンボルデータをエクスポートする機能を用いて生成したシンボルテーブルを参照し、制御プログラム設計者がデータ通信プログラムを開発している。
【０００３】
特許文献１に開示されている従来技術では、制御装置内のシンボルデータを利用してデータ送信を行うことを目的としている。この従来技術では、制御装置とホスト装置間の通信、及び、制御装置と制御用表示装置間の通信を対象としており、これらの通信の制御を行うことで、異機種の制御装置との通信の統一化を図るものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2002-91516号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
制御システム構築において、複数の制御装置の間を通信ネットワークにより繋げ、ある制御装置内のデータを別の制御装置がネットワークを介して取得して利用するような制御プログラムを作成する場合がある。例えば、安全規格制御装置とその制御装置に監視される通常の制御装置の間をネットワークで繋ぎ、安全規格制御装置側における安全処理のための監視状況を被監視側制御装置でもモニタするような場合がある。このようなデータ取得は、異常発生時に安全動作により生じたインターロックを解除するため、その要因データを判別して解除対応を速やかに行う場合などに利用される。尚、安全規格制御装置は、安全規格に準拠した（例えば国際安全規格の適合認証を取得した）、安全制御のための制御装置（シーケンサ等）である。
【０００６】
上記の従来技術にもあるように、通信により取得する対象データの情報を得るため、シンボルテーブルを利用することがある。しかし、このテーブルには、該当の制御装置内で利用されるさまざまなシンボルの情報が含まれており、この中からネットワークを介してデータを取得したい対象のシンボルを抽出する作業が必要である。更に、実際の通信プログラムの作成は設計者自身で開発する必要があり、設計者にとって大きな負担となっている。
【０００７】
通信プログラムのコード作成に当たっては、利用する通信プロトコルに依存したデータ取得対象データのアドレス算出などの通信パラメータの決定、ネットワーク通信を行うための機能ブロック（ファンクションブロック：FB）へ設定するパラメータの設定などが必要であり、煩雑な作業を行わなければならない。また、併せて、通信対象の制御装置からネットワークを介した通信により取得したデータを格納する変数の作成も行わねばならず、作業量が多い。
【０００８】
本発明の課題は、制御装置間で所定の通信プロトコルで通信を行えるシステム構成に関して、一方の制御装置が他方の制御装置の所定のアドレスの格納データを上記通信プロトコルの通信によって取得できるようにするための通信プログラムの作成を容易にする変数連携支援装置、該変数連携支援装置を有するコントローラシステム等を提供することである。
【課題を解決するための手段】
【０００９】
本発明のコントローラシステムは、第１の制御装置と第２の制御装置を有するシステムであって、変数連携支援装置を更に有する。
そして、該変数連携支援装置は、前記第１の制御装置における制御に係わるメモリアドレスに任意の識別子が対応付けられて成るメモリ情報が１以上格納された第１のテーブルに基づいて、前記第２の制御装置が、前記第１の制御装置と通信を行って該第１の制御装置から任意の前記メモリ情報に係わるメモリアドレスのデータを取得するための通信プログラムの作成を支援する通信プログラム生成支援手段を有する。
【００１０】
前記通信プログラム生成支援手段は、少なくとも、前記第１制御装置−第２制御装置間の通信に用いる通信プロトコルに応じて、前記任意のメモリ情報に係るメモリアドレスを、該通信プロトコルで対応するアドレスに変換して、前記通信プログラム生成の際には該変換後のアドレスを用いるものである。
【発明の効果】
【００１１】
本発明の変数連携支援装置、該変数連携支援装置を有するコントローラシステム等によれば、制御装置間で所定の通信プロトコルで通信を行えるシステム構成に関して、一方の制御装置が他方の制御装置の所定のアドレスの格納データを上記通信プロトコルの通信によって取得できるようにするための通信プログラムの作成を容易にすることができる。
【図面の簡単な説明】
【００１２】
【図１】本例の変数連携支援装置を含むシステム全体の概略構成図である。
【図２】変数連携支援装置を用いて通信プログラムを作成するプログラミング環境を示すブロック図である。
【図３】本システムの各装置の各種機能を示す図である。
【図４】本手法による通信プログラムと変数の生成プロセスを示す全体フローチャート図である。
【図５】制御プロジェクト設定部において設定される項目の具体例を示す図である。
【図６】シンボルテーブルの具体例を示す図である。
【図７】シンボルテーブル入力部の処理を示すフローチャート図である。
【図８】シンボルデータ型フィルタリングテーブルの具体例を示す図である。
【図９】通信設定情報の具体例を示す図である。
【図１０】（ａ）、（ｂ）は、通信パラメータ生成用設定情報の具体例を示す図である。
【図１１】シンボルデータ編集画面の具体例である。
【図１２】検査結果の表示例である。
【図１３】変数・通信プログラム生成部の処理の一例を示すフローチャート図である。
【図１４】生成される通信プログラムの一例を示す図である。
【図１５】（ａ）、（ｂ）は、概略的なシステム構成例を示す図である。
【図１６】変形例のシンボルテーブル入力部の処理を示すフローチャート図である。
【図１７】変形例の変数・通信プログラム生成部の処理の一例を示すフローチャート図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例の変数連携支援装置を含むシステム全体の概略構成図である。
ここでは上述した一例に応じて、安全規格制御装置１と通常の制御装置２との間をネットワーク３で繋ぎ、安全規格制御装置１側における安全処理のための監視状況を被監視側の制御装置２でもモニタする場合に係わるシステム構成を示す。勿論、これは一例であり、この例に限らず、安全規格制御装置の代わりに通常の制御装置であってもよい。つまり、２台とも通常の制御装置であっても構わない。更に、２台の制御装置が同機種であっても構わない。但し、２台の制御装置の機種が異なる場合には、本手法によって、機種が異なることで生じる様々な相違に対して対応できるという効果も得られることになる。何れにしても、本手法によれば、後述する通信プログラム、変数データのユーザによる作成作業を支援することができ、以ってユーザの作業負担を軽減できる。
【００１４】
安全規格制御装置１（コントローラ）で実行される制御プログラムは、その機種に対応した“安全規格機種向けプログラミング装置”（プログラミングツール）２０において作成されて、通信線を介して安全規格制御装置１にダウンロードされる。これに伴って、“安全規格機種向けプログラミング装置”２０において、既存技術によって上述したシンボルテーブルを作成し保存しておく。シンボルテーブルには、上記制御プログラムによって実行される制御処理に係わる何等かのデータが格納されるメモリアドレス、このデータのデータ型、シンボル名等からなるシンボルデータが、複数、登録されている。シンボル名は、例えば、ユーザが任意に決めて設定しており、典型的には例えば「温度センサＡ」、「熱交換器入口温度」等のように、データの意味が分かるような名称を付ける。
【００１５】
また、制御装置２（コントローラ）で実行される制御プログラムは、その機種に対応したプログラミング装置（プログラミングツール）３０において作成されて、通信線を介して制御装置２にダウンロードされる。
【００１６】
尚、安全規格制御装置１（コントローラ）や制御装置２（コントローラ）は、ＰＬＣ（プログラマブルコントローラシステム）のコントローラであってもよいし、ＤＣＳ（分散制御システム；distributed control system）のコントローラであってもよい。
【００１７】
尚、安全規格制御装置１とそのプログラミング装置２０、通常の制御装置２とそのプログラミング装置３０は、制御プログラムのダウンロードや制御装置の状態モニタを行えるように、それぞれ専用のネットワーク（不図示）で接続されている。
【００１８】
制御装置１−２間は、共通の通信プロトコルを用いてデータ通信を行えるネットワーク３により接続されている。本説明では、一例として、通信プロトコルがMODBUS-RTUプロトコルであるものとして説明するが、勿論、この例に限らない。
【００１９】
そして、上記制御装置２が上記モニタの為に安全規格制御装置１との通信処理を行ってデータ取得する必要があるが、この通信処理用の通信プログラムの作成は、従来では非常に手間が掛かっていた。本手法では、この様な通信プログラム作成を支援し、以ってユーザの作業負担が軽減できるようにする為、図示の変数連携支援装置１０を設けている。
【００２０】
本例による変数連携支援装置１０は、“安全規格機種向けプログラミング装置”２０で生成された情報（特にシンボルテーブル）を利用して、制御装置２に、上記モニタの為に安全規格制御装置１と通信して所定のデータを取得する処理を実現させる為の通信プログラムや変数等を生成する。生成した通信プログラムや変数等は、プログラミング装置３０内の所定の制御プロジェクトに対して、書込む。これを実現する為の変数連携支援装置１０の機能は、図３に示し、後に説明する。
【００２１】
尚、変数連携支援装置１０で生成された通信プログラムは、そのまま利用されない場合もあり得る。この場合、ユーザは、プログラミング装置３０内の所定の制御プロジェクト（フォルダなど）内に書込まれた、上記変数連携支援装置１０で生成された通信プログラムを利用して、通信プログラムを完成させる。例えば、生成された通信プログラムの実行制御処理の加工や設定などを行い、ユーザが望む処理とすることができる。完成した通信プログラムは、制御装置２にダウンロードされて実行される。
【００２２】
図２は、変数連携支援装置１０を用いて通信プログラムを作成するプログラミング環境を示すブロック図である。
本手法において対象とするプログラミング環境は、制御装置２で動作させる制御プログラムの作成支援機能などを有するプログラミング装置３０と、変数連携支援装置１０から構成されている。そして、制御装置２は、プログラミング装置３０と不図示の通信線により接続されており、プログラミング装置３０は通信線を介して、制御装置２に対する制御プログラムのダウンロードや、制御装置２の動作状態モニタなどが行える。
【００２３】
尚、変数連携支援装置１０とプログラミング装置３０は、例えば一台のパソコン（ＰＣ）上で実現されてもよい。
図３は、本システムの各装置の各種機能を示す図である。
【００２４】
図３は、上記変数連携支援装置１０を用いて、対象とするプログラミング装置３０上の制御プロジェクトに対して、通信プログラムや変数を生成するための各種機能を示す図である。
【００２５】
まず、“安全規格機種向けプログラミング装置”２０は、シンボルテーブル生成部２１、通信ネットワーク設定部２２などを有する。シンボルテーブル生成部２１によるシンボルテーブル２３の生成処理は、既存技術であり、上記特許文献１のようにシンボルデータを利用する従来技術も存在するが、本手法では利用方法が異なる。詳しくは後述する。尚、シンボルテーブル２３の生成処理自体は、既存技術であるので特に説明しないが、本手法は既存のシンボルデータを利用するものであるので、シンボルテーブル２３の具体例は後に図示・説明するものとする。
【００２６】
変数連携支援装置１０は、シンボルテーブル入力部１１、通信設定情報入力部１２、シンボルデータ管理部１３、シンボルデータ編集部１４、変数・通信プログラム生成部１５、シンボルデータ検査部１６、制御プロジェクト設定部１７等の各種処理機能部を有する。
【００２７】
本手法では、複数の制御装置の一方の制御装置内のデータを他方の制御装置がネットワークを介して取得して利用するような制御プログラム（通信プログラム）を、上記他方の制御装置側の制御プロジェクトに関して自動生成する。この自動生成を実現する為に、上記各種処理機能部を備える変数連携支援装置１０を設けている。但し、本発明の課題を解決するために、上記各種処理機能部の全てが必要というわけではない。
【００２８】
尚、本例では上記一方の制御装置の一例が図１に示す安全規格制御装置１であり上記他方の制御装置の一例が通常の制御装置２であるが、この例に限らない。
また、変数連携支援装置１０は、例えばパソコン（ＰＣ）などの一般的なコンピュータ装置上で実現される。このようなコンピュータ装置は、ハードウェア的には不図示のＣＰＵ、記憶装置（ハードディスク、メモリ等）、液晶ディスプレイ等の表示装置、キーボード、マウス等の入力操作装置、通信機能部等を備えている。上記記憶装置には予め所定のアプリケーションプログラムが記憶されており、上記ＣＰＵがこのアプリケーションプログラムを実行することで上記変数連携支援装置１０の各種機能部が実現される。
【００２９】
尚、同様にして、“安全規格機種向けプログラミング装置”２０は、不図示のＣＰＵ、記憶装置等を備えたコンピュータ装置上に実現されており、上記記憶装置には予め所定のアプリケーションプログラムが記憶されており、上記ＣＰＵがこのアプリケーションプログラムを実行することで、上記シンボルテーブル生成部２１、通信ネットワーク設定部２２などの処理機能が実現される。
【００３０】
以下、これら各種機能部について、まず、簡単に説明する。
制御プロジェクト設定部１７は、制御装置２がネットワークを介してデータ通信により安全規格制御装置１のデータを取得する、という通信処理を実現する通信プログラム、及び、取得したデータを格納する変数（変数名）を、書込む対象の制御プロジェクトを設定させる。これは、例えばユーザに任意に決定・設定させる。
【００３１】
シンボルテーブル入力部１１は、“安全規格制御装置のプログラミング装置”２０で生成された上記シンボルテーブル２３を取込む。その際、データ型をキーとしたシンボルデータのフィルタリングと、データ型の変換を行うことで、データ取得対象シンボル選択を容易化するようにしてもよい。フィルタリングによって、シンボルテーブル２３のシンボルデータのなかの一部だけを抽出して取込むようにしてもよい。
【００３２】
また、このような取込みをシンボルテーブル２３に係わる機種別に切替えて行う。つまり、例えば、後述する図８のような各機種別のテーブル５０のなかで対象となる機種用のテーブル５０を用いて、上記フィルタリングやデータ型の変換等を行う。詳しくは後述する。
【００３３】
通信設定情報入力部１２は、利用する通信プロトコルに対応した通信設定情報２４を、本装置１０内に設定させて（例えばユーザにより任意に設定させる）、通信プログラム生成の際に、通信パラメータ決定の際に利用できるようにする。尚、通信設定情報２４は、「通信設定情報入力部１２による設定情報＋システム構成情報３３」であっても構わないが、何れにしてもユーザにより任意に設定させた情報であり、システム構成情報３３については特に説明しない。
【００３４】
尚、上記“利用する通信プロトコル”とは、本例の場合には、制御装置１−２間の通信の為の通信プロトコルであり、本説明で用いる具体例ではMODBUS-RTUプロトコルである。
シンボルデータ管理部１３は、上記シンボルテーブル入力部１１によって取得したシンボルデータの情報や上記通信設定情報を、変数・通信プログラム生成部１５で利用できるように、本装置１０内で記憶管理する。
【００３５】
シンボルデータ編集部１４は、対象とする制御プロジェクト内に変数として書込みを行うシンボルデータ（換言すれば、制御装置２が安全規格制御装置１からデータ取得する対象とするシンボルデータ；対象シンボルデータと呼ぶ）の選択と、その変数情報（変数名など）の編集を、ユーザに任意に行わせる。
【００３６】
シンボルデータ検査部１６は、上記選択させた対象シンボルデータの設定情報の検査を行い、自動生成して書込んだ内容が原因のビルドエラーが発生しないよう、事前の確認と設計者による修正を促す。
【００３７】
変数・通信プログラム生成部１５は、上記シンボルデータ編集部１４の編集結果などに基づいて、ネットワークを介して取得するデータを格納する変数データ３１（変数名とデータ型など）、及びそれらデータ取得を行う通信プログラム３２を自動生成し、対象の制御プロジェクトに書込む。自動生成された通信プログラム３２は、上記対象シンボルデータに係わるメモリアドレスからデータを取得する処理を、制御装置２に実行させるものとなる。これを実現する処理方法は、後述する。
【００３８】
また、このような自動生成と書込みを、シンボルテーブル２３の機種別に切替えて行う。これは、つまり、任意の機種に係わるシンボルテーブル２３を上記のように取り込んで利用することで、この機種に応じた通信プログラム３２などが自動生成されるものである。
【００３９】
以上の各種処理機能を用いることで、書込み対象とする制御プロジェクトに対し、「制御装置２がネットワークを介してデータ通信により安全規格制御装置１の所定のメモリアドレスのデータを取得するための通信プログラム」及び「取得したデータを格納する変数」を、自動生成することができ、異なる機種の制御装置から所望のデータを取得して例えばモニタ等することを実現させる為の通信プログラムを、ほぼ自動的に生成することができる。
【００４０】
変数連携支援装置１０は、データ通信の対象となる安全規格制御装置１用の“安全規格機種向けプログラミング装置”２０における上記シンボルテーブル生成部２１で生成された上記シンボルテーブル２３、及び、通信ネットワーク設定部２２によって設定されている通信設定情報２４（ここでは例として通信プロトコルをMODBUS-RTUプロトコルとする）等を入力とする。
【００４１】
ここで、この通信設定情報２４は、制御装置１−２間で通信を行うために共通して設定される情報（通信速度など）、プロトコル依存の設定情報（MODBUSアドレス算出用情報）、通信プログラムにおいて通信を行うための機能ブロック（ファンクションブロック：FB）へ設定に利用される情報、等から構成されている。通信設定情報２４の具体例は、図９、図１０に示し、後に説明する。
【００４２】
変数連携支援装置１０は、プログラミング装置３０側の対象とする制御プロジェクトに対し、制御装置２が通信ネットワークを介して安全規格制御装置１から取得したデータを格納するための変数データ３１、及び通信してデータを取得するための通信プログラム３２を、自動で生成して書込む。書込んだ通信プログラム３２は、制御プロジェクトにおいて通信プログラムの実行制御処理など、プログラム実行に関わる設定を別に行ったうえでビルドしてから（これは例えばプロジェクト担当者等のユーザが行う）、制御装置２にダウンロードすることで実行される。また、これより、本手法の上記自動生成の処理に直接関係しない図９の情報については、特に詳細には説明しないものとする。一方、上記通信設定情報２４のうち後述する図１０に示す情報は、本手法の上記自動生成の処理に利用されるものであり、後に詳細に説明する。
【００４３】
図４は、本手法による通信プログラム３２と変数データ３１の生成プロセスを示す全体フローチャート図である。尚、図示の処理例では、制御装置２側のプログラミング装置３０における該当制御プロジェクトに対して通信プログラム３２と変数データ３１の生成と書込みを行う。
【００４４】
この通信プログラムは、本例では、安全規格制御装置１内部のデータを別の制御装置２から通信ネットワークを介して参照する処理を実現するものであり、参照するデータ（これに対応するシンボルデータ）はユーザが任意に選択・指定することができる。
【００４５】
図４の処理について、以下、まず概略的に説明し、その後、各ステップの処理の詳細を説明する。
図４の処理では、まず、書込み対象とする（通信プログラム３２と変数データ３１の生成対象とする）制御プロジェクトの設定（ステップＳ１１）、シンボルテーブル２３のシンボルデータの入力（ステップＳ１２）、通信設定情報２４の入力（ステップＳ１３）等を行う。尚、ステップＳ１２で取り込むシンボルデータは、プログラミング装置２０側で作成されているシンボルテーブル２３の各シンボルデータの全部であってもよいが、その一部を取得するものであってもよい（後述するシンボルデータフィルタリング処理）。
【００４６】
尚、本説明では逐一述べないが、本手法における通信プログラム３２と変数データ３１の自動生成の為の処理で用いる情報（テーブル等）は、上記ステップＳ１１で設定した制御プロジェクトに関係する制御装置２（その機種）に応じたものが、選択されて利用されるものであってもよい。
【００４７】
上記ステップＳ１１〜Ｓ１３に続いて、まず、ステップＳ１２で取り込んだシンボルデータの編集作業を、ユーザに行わせる（ステップＳ１４）。更に、ユーザに、制御装置２による安全規格制御装置１からのデータ取得処理の対象とするシンボルデータの選択を行わせる（ステップＳ１５）。
【００４８】
これより、シンボルデータ検査部１６により上記ステップＳ１５で選択されたシンボルデータに関する所定の検査が実行された後（ステップＳ１６）、変数・通信プログラム生成部１５により、上記対象とするシンボルデータに係るデータ取得の為の通信プログラム３２と変数データ３１が生成されて、プログラミング装置３０の該当プロジェクトに書込まれる。
【００４９】
以下、上記各処理ステップＳ１１〜Ｓ１７について、詳細に説明する。
（ａ）書込み対象プロジェクト設定（ステップＳ１１）
変数連携支援装置１０による通信プログラムの生成では、まず、制御プロジェクト設定部１７により、変数データ３１や通信プログラム３２を書込む（生成する）対象の制御プロジェクトについての情報を設定する。
【００５０】
図５に、制御プロジェクト設定部１７において設定される項目の具体例を示す。
ここでは、書込み先の制御プロジェクトが保存されている場所（フォルダ名など）、及び、コンフィグレーション名、リソース名を設定している。コンフィグレーション名、リソース名は、制御プロジェクト内部での書込み先を特定する情報として利用する。
【００５１】
（ｂ）シンボルテーブル入力（ステップＳ１２）
上記ステップＳ１１の制御プロジェクト設定部１７による設定の後、シンボルテーブル入力部１１により、プログラミング装置２０側で予め生成されたシンボルテーブル２３のシンボルデータの全部または一部を読込み、これを変数連携支援装置１０内にシンボルデータ管理部１３の管理データとして格納する。
【００５２】
多くの制御装置向けプログラミング装置においては、制御プログラムでアクセスするメモリや変数などにシンボル名を付け、それらをテキストファイルなどにエクスポート（出力）する、シンボルテーブル作成機能を有している。この機能自体は既存の機能であるので、特に説明しない。
【００５３】
変数連携支援装置１０のシンボルテーブル入力部１１は、“安全規格機種向けプログラミング装置”２０で上記既存機能によって作成されたシンボルテーブル２３を、自装置１０内に読み込む（シンボルテーブル２３を読取る）。これはシンボルテーブル２３の格納データ（シンボルデータ）の全部または一部を、入力データとして読取る。これより、ここでは、シンボルテーブル２３を読取るとは、シンボルテーブル２３の格納データの全部を読取る意味、シンボルテーブル２３の格納データの一部を読取る意味のどちらの意味であってもよい。
【００５４】
図６に、“安全規格機種向けプログラミング装置”２０で上記既存機能によって作成されたシンボルテーブル２３の具体例を示す。
図６に示す例では、シンボルテーブル２３は、例えば、シンボル名４１、メモリ種別４２、メモリアドレス４３、データ型４４、コメント４５等の各データ項目の情報で構成されるシンボルデータが、複数記録されたものとなる。図示の各行が各シンボルデータである。
【００５５】
尚、シンボルデータは、例えば、安全規格制御装置１における制御処理に係る各割当てアドレス（メモリ種別４２＋メモリアドレス４３）と、このアドレスに対して例えばユーザによって任意に作成されたシンボル名４１、このアドレスの格納データのデータ型４４等から成る。シンボル名４１は、ここでは具体例は示さずに変数Ａ１等として示すが、実際には、例えば「温度センサＡ」等のように、アドレスの格納データが何であるのかを人間が見て分かり易いものが記述される場合が多い。
【００５６】
図示の例では、シンボル名４１＝“変数Ａ１”のシンボルデータは、アドレス“Ｍ０．０”で、データ型＝“ＢＯＯＬ”のデータであることを示している。
また、コメント４５には、シンボル名４１を付与した上記ユーザが、割当てアドレスに関する何等かのコメント文（そのアドレスにどの様なデータが格納されるのか等）が格納されている。
【００５７】
ここで、変数連携支援装置１０のシンボルテーブル入力部１１は、シンボルテーブル２３を入力データとして取込む際、通信データとして取得する対象と成り得るデータ型４４のシンボルデータだけを取込む処理（シンボルデータフィルタリング処理）を行って、上記シンボルテーブル２３に格納される複数のシンボルデータのなかから必要なシンボルデータのみを取込むようにしてもよい。つまり、データ型によって取捨選択してシンボルデータの取込みを行うようにしてもよい。
【００５８】
上記シンボルデータフィルタリング処理の際に参照されるテーブル（シンボルデータ型フィルタリングテーブル５０）の具体例を図８に示し、後に説明する。
また、シンボルテーブル入力部１１は、データ型としては対象とするが（取込む対象とするが）、制御装置２側でそのデータ型を直接取扱えない場合は、上記シンボルテーブル２３を読取る際に、制御装置２側で取扱い可能なデータ型への変換処理を同時に行うようにしてもよい。尚、上記テーブル５０はこの変換処理にも利用される。
【００５９】
更に、シンボルテーブル入力部１１は、取込み対象のシンボルデータのシンボル名４１が、制御装置２のプログラミング装置３０において変数名として利用不可である文字を含むものであった場合、利用可能な文字に置き換えてシンボルデータを取込むようにしてもよい。
【００６０】
尚、シンボルテーブル入力処理の機種選択Ｓ２１により制御装置２の機種は分かるので、この機種で取扱い可能なデータ型や、利用不可な文字とこれに応じた利用可能な文字は、分かるものとする。例えば、予め機種毎に、この様な情報が登録されており、そのなかから制御装置２の機種に応じた情報を取得して利用すればよい。
【００６１】
図７は、上述したシンボルテーブル入力部１１の処理を示すフローチャート図である。
尚、シンボルテーブル入力部１１は必ずしも上述した処理全て実行しなくても良く、一部の処理を実行するだけでも良い。従って、必ずしも図７に示す処理全てを実行するものではない。
【００６２】
また、図８には、図７の処理の際に参照されるシンボルデータ型フィルタリングテーブル５０の具体例を示す。
ここで、まず、図８について説明しておく。
【００６３】
シンボルデータ型フィルタリングテーブル５０は、各機種に対応して、予め作成されている。シンボルデータ型フィルタリングテーブル５０は、変換後データ型５２が、対象制御プロジェクトにおいて利用可能なデータ型であるように、予めユーザ等によってデータ型が設定されているものとする。
【００６４】
図示の例では、図８（ａ）はＡ機種用のシンボルデータ型フィルタリングテーブル５０の例であり、図８（ｂ）はＢ機種用のシンボルデータ型フィルタリングテーブル５０の例である。ここでの機種とは、安全規格制御装置１の機種である。
【００６５】
シンボルデータ型フィルタリングテーブル５０は、シンボルデータ型５１、変換後データ型５２から成る。シンボルデータ型５１には、予め、その機種において利用可能なデータ型（特にシンボル情報のデータ型）のなかでユーザが任意に選択したデータ型が登録される。選択方法は、ユーザが任意に決めてよいが、例えば制御装置２において利用可能なデータ型のみを選択するようにしてもよい。勿論、この様な選択をすることなく、シンボルデータ型５１には、その機種において利用可能なデータ型全てが登録されてもよい。
【００６６】
尚、ここでは、対象となる制御装置２の機種が、予め設定されており、この機種に応じたテーブル、データ等が用いられるものとする。よって、特に図示・説明しないが、図８（ａ）、（ｂ）の各テーブルは、何れも、対象となる制御装置２の機種に対応したテーブルである。
【００６７】
上記取得する対象となるデータ型（対象データ型）と一致するシンボルデータ型５１が、それに対応する変換後データ型５２と異なる場合には、対象データを変換後データ型５２に変換する必要がある。例えば、図８（ｂ）に示すＢ機種の場合には、上記対象データ型がＴＩＭＥＲやＣＯＵＮＴＥＲである場合には、これを“ＢＯＯＬ”に変換する必要があることになる。これは、予めユーザが判断して設定しているものである。
【００６８】
以下、図７の処理例について説明する。
図７の処理では、まず、シンボルテーブル２３に対応する機種を選ぶ（ステップＳ２１）。これは、ユーザが任意に設定してもよいが、シンボルテーブル２３自体に、対応する機種を示す情報が含まれている場合は、これを取得して機種判定するようにしてもよい（但し、この場合にはステップＳ２２の処理を先に実行する）。図１の例では図示の安全規格制御装置１の機種が選ばれることになる。これにより、選択された機種用のシンボルデータ型フィルタリングテーブル５０が、シンボルテーブル入力処理の際に参照されるテーブルとして選択されることになる。例えばＢ機種が選択された場合には、図８（ｂ）に示すテーブル５０が選択されることになる。
【００６９】
続いて、読込むべきシンボルテーブル２３のファイルが選択される（ステップＳ２２）。
その後は、ステップＳ２２で選択されたシンボルテーブル２３の各シンボルデータを順次取り込んで処理対象とする毎に（ステップＳ２４）、この処理対象シンボルデータについてステップＳ２５〜Ｓ２８の処理を実行することを繰り返し、全てのシンボルデータについて処理実行したら（ステップＳ２３，ＮＯ）、本処理を終了する。
【００７０】
ステップＳ２５〜Ｓ２８の処理は、処理対象シンボルデータについて、シンボルデータ型でのフィルタリング（取捨選択）（ステップＳ２５）と、データ型の変換処理（ステップＳ２６）、シンボル名変換処理（ステップＳ２７）を行って、変数連携支援装置１０の管理データとして格納する処理（ステップＳ２８）である。
【００７１】
ステップＳ２５では、処理対象シンボルデータのデータ型４４が、ステップＳ２１で選択されたフィルタリングテーブル５０のシンボルデータ型５１のなかにある場合には（ステップＳ２５，ＹＥＳ）、この処理対象シンボルデータは取込み対象と判定され（ステップＳ２５，ＹＥＳ）、ステップＳ２６〜Ｓ２８の処理が実行される。一方、シンボルデータ型５１のなかにデータ型４４と一致するものが無い場合には、この処理対象シンボルデータは取込み対象外と判定され（ステップＳ２５，ＮＯ）、変数連携支援装置１０のシンボルデータ管理部１３の管理データとして取込まれることなく、ステップＳ２３に戻り、次の処理対象シンボルデータについての処理に移る。
【００７２】
ステップＳ２６では、処理対象シンボルデータのデータ型４４を、これと一致するシンボルデータ型５１に対応する変換後データ型５２に、置き換える。但し、シンボルデータ型５１が、対応する変換後データ型５２と同じ場合には、置き換える必要はない。例えば、図８（ｂ）に示すＢ機種の場合、処理対象シンボルデータのデータ型４４がＢＯＯＬである場合には、データ型の置き換えは行われないが、データ型４４がＴＩＭＥＲである場合にはＢＯＯＬ型に置き換えられる。尚、後者の例の場合、この処理対象シンボルデータを管理データとして取込む際、後述する図１１に示すシンボルデータ型８５はＴＩＭＥＲとなり、データ型８３はＢＯＯＬとなる。
【００７３】
また、この例においてデータ型４４が例えばＢＹＴＥであった場合には、シンボルデータ型５１にはＢＹＴＥが無いので、ステップＳ２５がＮＯ（対象外データ型）となり、取込まれない。
【００７４】
また、ステップＳ２７の処理は、処理対象シンボルデータのシンボル名４１に、制御装置２側で（例えば、プログラミング装置３０において）変数名として利用不可の文字／記号等が、含まれている場合には、この利用不可の文字／記号を、制御装置２側で利用可能な文字／記号に変換する。これは、予め不図示の対応テーブルがユーザ等により作成されて設定されており、この対応テーブルを参照して行う。対応テーブルには、“利用不可の文字／記号”が、これと置き換えるべき任意の“利用可能な文字／記号”に予め対応付けて登録されている。
【００７５】
例えば、仮に、プログラミング装置３０において変数名として“利用不可の文字／記号”として”.”（ピリオド）が、これと置き換えるべき任意の“利用可能な文字／記号”として”_”（アンダースコア）が登録されていた場合、シンボル名４１の中に”.”（ピリオド）が含まれている場合には、これを”_”（アンダースコア）に変換する。
【００７６】
そして、上記ステップＳ２６、Ｓ２７の処理によって必要に応じて上記置き換えや変換が行われて成る、上記取込み対象の処理対象シンボルデータを、シンボルデータ管理部１３により管理されるデータとして格納する（ステップＳ２８）。
【００７７】
（ｃ）通信設定情報の入力（ステップＳ１３）
上述したシンボルテーブル入力部１１によるシンボルデータの読取り処理（ステップＳ１２）の次に、通信設定情報入力部１２により、安全規格制御装置１と制御装置２の間のネットワーク通信に関わる通信設定情報の入力を行う。これは、例えばユーザが手作業により入力・設定してもよい。
【００７８】
ここで設定する通信設定情報、通信パラメータ生成用設定情報について、それぞれ、その具体例を図９、図１０に示す。これらの設定情報も、シンボルデータ管理部１３により管理されるデータとして格納する。
【００７９】
通信設定の項目としては、例えば、図９に示したように、ネットワークに参加する機器で共通の設定（伝送速度、パリティビット、ストップビットなど）や、通信プロトコルで必要となる情報（通信局番など）、その他、通信プログラムで必要な情報（レスポンス監視時間や、システム構成における通信モジュールの挿入位置、通信プログラム名に利用する装置名称の情報など）がある。これらについては、一般的な情報であるので、ここでは特に説明しない。
【００８０】
図９に示す例では、通信設定情報６０は、予め決められた設定項目６１毎に、ユーザが任意に設定入力した設定値６２が格納される。図示のように、各設定項目６１は、局番、伝送速度、パリティビット、ストップビット等の一般的な項目であり、特に説明しない。尚、これらの通信設定情報は、通信プログラム生成の際に、プログラミング装置におけるネットワーク通信機能（通信ＦＢ）へ渡す情報などに利用される。尚、通信設定情報６０の利用方法自体は、本手法の特徴ではないので、特に説明しない。
【００８１】
上記通信設定情報６０以外にも、例えば、通信ＦＢへ渡す情報を作成するため、通信対象の制御装置における通信プロトコル設定に対応した機種依存の情報設定を行う。この一例が上記通信パラメータ生成用設定情報であり、その具体例を図１０に示す。尚、上記の通り、ここでは通信プロトコルがMODBUS-RTUプロトコルであるとするので、図１０には取得したいデータがMODBUS-RTUプロトコルではどんなアドレス値になるかを算出する際に必要となる情報の設定例を示す。
【００８２】
また、図１０（ａ）、（ｂ）に示すように、通信パラメータ生成用設定情報７０は、各機種に対応して登録される。ここでは、図８と同様、Ａ機種、Ｂ機種の２つの機種を例にする。つまり、図１０（ａ）にはＡ機種用の通信パラメータ生成用設定情報７０の具体例を示し、図１０（ｂ）にはＢ機種用の通信パラメータ生成用設定情報７０の具体例を示す。尚、Ａ機種、Ｂ機種は、データを取得される側（スレーブ側）の機種であり、本例では安全規格制御装置１の機種である。
【００８３】
この機種依存設定により、例えば後の図１３の処理の際には、取得したシンボルテーブル２３に対応する機種に応じた通信パラメータ生成用設定情報７０を選択して実施することになる。これは、例えば、取得したいデータの格納アドレス（安全規格制御装置１におけるメモリアドレス；モニタ対象シンボルのアドレス）が、MODBUSプロトコルではどんなアドレス値になるかを算出するものである。例えば、図１０（ａ）のＡ機種向けの設定情報７０を用いる場合、仮に、モニタ対象シンボルのアドレス（メモリ種別４２＋メモリアドレス４３）がQ0.7であったとすると、MODBUSアドレスは135（=128+16*0+7）と算出される（尚、ここではQのアドレス値は16bit単位（１ワード）とする）。
【００８４】
尚、図１０に示す例では、通信パラメータ生成用設定情報７０は、ファンクションコード７１、対象メモリ先頭アドレス７２、MODBUSアドレス（先頭）７３、MODBUSアドレス（上限）７４の各データ項目から成る。例えばMODBUSアドレス（先頭）７３とMODBUSアドレス（上限）７４には、安全規格制御装置１における各メモリ種別でのMODBUSアドレスの上下限値が格納され、対象メモリ先頭アドレス７２には、MOSBUSアドレス（先頭）に対応する各メモリ種別の先頭アドレスが格納される。
【００８５】
例えば、メモリ種別Ｑの先頭アドレス（Q0.0）に対応するMODBUSアドレスは、Ａ機種では‘１２８’であるが、Ｂ機種では‘６４’である。従って、例えばMODBUS-RTUプロトコルによる通信によって外部からＡ機種に対してメモリ種別Ｑの先頭アドレスのデータを要求する場合には、MODBUSアドレス＝‘１２８’で要求すればよいことになる。同様にして、MODBUS-RTUプロトコルによる通信によって外部からＢ機種に対してメモリ種別Ｑの先頭アドレスのデータを要求する場合には、MODBUSアドレス＝‘６４’で要求すればよいことになる。
【００８６】
ここで、任意のメモリ種別について、その先頭アドレスに限らず、MODBUSアドレスの上下限値の範囲内の任意のアドレスに対応するMODBUSアドレスを、計算により求めることができる。この算出式は、より一般化するならば、下記の通りとなる。
【００８７】
まず、各メモリ種別に応じた１アドレスあたりのbit数が予め決まっており、登録されている（登録bit数と呼ぶものとする。上記一例ではメモリ種別Ｑに対応する登録bit数は１６bit（１ワード）となる）。また、メモリアドレス４３は、“．”より上位アドレスと下位アドレスとに分けられ、「上位アドレス．下位アドレス」の形式となっているものとする。上記一例では、上位アドレスがワードアドレス値、下位アドレスが該当ワードにおけるbitアドレスの意味となる。上記の通り、設定情報７０から、メモリ種別４２の先頭アドレスに対応するMODBUS先頭アドレスが分かる。よって、これらより、任意のモニタ対象シンボルのアドレス（メモリ種別４２＋メモリアドレス４３）に対応するMODBUSアドレスは、下記の算出式により算出できる。
【００８８】
MODBUSアドレス＝MODBUS先頭アドレス＋（登録ビット数×上位アドレス＋下位アドレス）
尚、MODBUSアドレス（上限）７４はステップＳ１６の処理の際に用いられるので、後述する。ファンクションコード７１は、MODBUS-RTUプロトコルで規定されている通信コマンドであり、例えば図示のファンクションコード‘0x01’は、BOOL型のデータを読み出す際に指定される通信コマンドであり、上記例では、メモリ種別‘Ｍ’や‘Ｑ’に該当する。
【００８９】
（ｄ）取込みシンボルデータの編集（ステップＳ１４）と通信対象シンボルデータの選択（ステップＳ１５）
上記ステップＳ１３による設定処理の次に、変数連携支援装置１０の管理データとなっているデータ（例えば図１１の各レコード）に対し、シンボルデータ編集部１４により、取込みシンボルデータの編集（ステップＳ１４）、及び、通信対象シンボルデータの選択を行う（ステップＳ１５）。これらの処理により、対象とする制御プロジェクト内に変数として生成・書込みを行うシンボルデータの選択と、その変数情報の編集を行う。尚、“取込みシンボルデータ”とは、上記シンボルテーブル２３のシンボルデータ群なかで本装置１０が上記ステップＳ１２で選択取得したシンボルデータ群を意味する。
【００９０】
シンボルデータ編集部１４は、例えば図１１に示すシンボルデータ編集画面を表示する。尚、図１１には、シンボルデータ編集画面上でユーザに任意の編集作業を行わせた後の状態を示している。つまり、）取込みシンボルデータの編集（ステップＳ１４）と通信対象シンボルデータの選択（ステップＳ１５）とが実行された後の状態を示している。
【００９１】
尚、図示のシンボルデータ編集画面は、図示の内容のシンボルデータ編集テーブル８０のデータを表示するものと見做してよい。これより、ここでは、シンボルデータ編集画面とシンボルデータ編集テーブル８０は、実質的に同じものとして説明する。シンボルデータ編集テーブル８０の初期状態がシンボルデータ入力Ｓ１２完了後の管理データに相当すると見做してもよい。
【００９２】
シンボルデータ編集テーブル８０は、図示のモニタ対象８１、変数名８２、データ型８３、シンボル名８４、シンボルデータ型８５、シンボルアドレス８６、コメント８７、対象コントローラ８８の各データ項目より成る。
【００９３】
シンボルデータ編集画面の初期状態は、上記“取込みシンボルデータ”を用いて生成される。尚、“取込みシンボルデータ”は、シンボルテーブル２３のシンボルデータの全部または一部であるので、ここでは図６に示すシンボルテーブル２３のデータ構成例を用いて説明する。
【００９４】
上記各データ項目のうちシンボル名８４、シンボルデータ型８５、シンボルアドレス８６、コメント８７には、“取込みシンボルデータ”が格納される。すなわち、シンボル名８４には、“取込みシンボルデータ”のシンボル名４１が格納される。シンボルデータ型８５には、“取込みシンボルデータ”のデータ型４４が格納される。シンボルアドレス８６には、“取込みシンボルデータ”の「メモリ種別４２＋メモリアドレス４３」が格納される。コメント８７には“取込みシンボルデータ”のコメント４５が格納される。
【００９５】
更に、一例としては、データ型８３には、データ型４４に対応する上記変換後データ型５２が格納されるようにしてもよい。上記一例では、Ｂ機種に関してデータ型４４がＴＩＭＥＲであるシンボルデータの場合には、シンボルデータ型８５にはＴＩＭＥＲが格納され、データ型８３にはＢＯＯＬが格納されることになる。一方で、Ｂ機種に関してデータ型４４がＷＯＲＤであるシンボルデータの場合には、シンボルデータ型８５にはＷＯＲＤが格納され、データ型８３にもＷＯＲＤが格納されることになる（この場合はデータ型変換されないので同じとなる）。
【００９６】
更に、一例としては、変数名８２には基本的にはシンボル名４１が格納されるが、シンボル名４１に上記“利用不可の文字／記号”があった為に上記“利用可能な文字／記号”に置き換えられている場合（修正されている場合）には、修正後のシンボル名４１を、変数８２に格納する。例えば、仮にシンボル名４１＝“変数Ａ．ｂ”であった場合であって、“．”が“_”に置き換えられた場合には、シンボル名８４には“変数Ａ．ｂ”が格納され、変数８２には“変数Ａ_ｂ”が格納されることになる。
【００９７】
この様にしてシンボルデータ編集画面の初期状態が生成された後、ユーザは、入力・設定項目について所望の入力・設定・変更を行うことで、シンボルデータ編集結果を作成する。
【００９８】
入力・設定項目は、上記モニタ対象８１、コメント８７などであり、更に変数名８２があっても構わない。
モニタ対象８１は、各“取込みシンボルデータ”毎に（シンボルデータ編集テーブル８０の各行毎に）、それが通信対象としてデータ取得するシンボルであるか否かを、手動で設定する項目である。
【００９９】
モニタ対象８１では、図示のように表示される“取込みシンボルデータ”に係わるレコード一覧のなかから、ユーザに所望のレコード（取込みシンボルデータ）を“モニタ対象”として選択させる。ユーザが選択することでモニタ対象８１の欄にチェックが入る。図示の例では、１行目、３行目、５行目、７行目にチェックが入っているので、これらの“取込みシンボルデータ”が“モニタ対象”として選択されていることになる。
【０１００】
変数名８２には、上記制御プロジェクト内に設定する変数データ３１の変数名が、任意に設定されるが、これは上記の通り初期状態ではシンボル名４１または上記修正後のシンボル名４１が、格納される。そして、変数名８２は編集対象外（初期状態のままとする）としてもよいが、編集対象とすることで、ユーザが任意の名称に変更してもよいものとする。
【０１０１】
データ型８３には、変数名８２に対するデータ型が設定される。尚、データ型８３には、初期状態では上述したデータ型変換の結果が設定されている。通常はデータ型変換結果を使うため編集対象外（初期状態のままとする）とするが、これをユーザが更に任意の名称に変更可能とするために編集可能としてもよい。
【０１０２】
また、コメント８７には、上記の通り初期状態ではコメント４５がそのままコピーされるが、ユーザが任意の内容に変更してよい。
尚、変数名８２、コメント８７については、通信プログラム生成対象（本例では制御装置２）が、通信対象（本例では制御装置１）から取得したデータを格納する為の変数の情報（変数データ３１）とする為に、手動で編集可能とする項目であると見做してよい。
【０１０３】
上記のように、シンボルデータ編集テーブル８０には、例えば、元のシンボルテーブル２３の項目（シンボル名８４、シンボルデータ型８５、シンボルアドレス８６、コメント８７）の他、後の変数・通信プログラム生成の際に利用される情報（モニタ対象８１、変数名８２、データ型８３、対象コントローラ名８８）などが生成されて格納される。
【０１０４】
尚、モニタ対象として選択したシンボルが、複数データをまとめて一つのシンボルが割付けられたもの（例えば配列データ）であっても良いような場合、そのようなシンボル毎に、通信の際の実データサイズを設定する手段を持たせても良い。
【０１０５】
（ｅ）選択シンボルデータ定義の検査（ステップＳ１６）
上述した取込みシンボルデータの編集、及び、通信対象シンボルデータ（“モニタ対象”のシンボルデータ）の選択の処理を行い（ステップＳ１４，Ｓ１５）、変数・通信プログラムの生成対象となるシンボルデータ（上記“モニタ対象”のシンボルデータ）が決定されたら、シンボルデータ検査部１６によって、“モニタ対象”のシンボルデータの設定情報の検査を行う。
【０１０６】
ここでは、例えば、制御プロジェクトに対し書込んだ変数データ３１がビルドの際にエラーとならないための検査（変数名長さ、コメント長さ、利用不可文字、変数名重複、など）や、通信プログラムに反映される通信設定情報の不整合検査（局番範囲検査、など）や、通信プロトコル上の不整合検査（アドレス算出用パラメータ設定の矛盾検査、など）を行う。また、例えば、上記算出した通信プロトコル上のアドレスが、対応する上限値（上記MODBUSアドレス（上限）７４を超えていないかをチェックするようにしてもよい。
【０１０７】
これらの検査自体は、既存技術であるので、特に説明しないが、この検査により、変数・通信プログラムを書込んだ制御プロジェクトにおいて、変数連携支援装置１０により書込んだ内容に関するビルドエラーの発生要因を事前検出して、例えば図１２のように表示してユーザに修正を促すことで、実際に制御プロジェクトをビルドする際にエラー発生を未然に防ぐことが期待できる。
【０１０８】
図１２に、上記検査結果の表示例を示すが、これについては特に説明しない。
（ｆ）変数自動生成・通信プログラム自動生成・プロジェクト書込み（ステップＳ１７）
選択シンボルデータ定義の検査の後、変数・通信プログラム生成部１５により、制御装置２が安全規格制御装置１における「“モニタ対象”のシンボルデータ」に係わるメモリアドレスの格納データを、ネットワーク３を介して取得する処理を行うための通信プログラムを自動生成すると共に、この取得データを格納する変数名等を含む変数データ３１を、該当する制御プロジェクトに書込む。
【０１０９】
図１３は、変数・通信プログラム生成部１５の処理の一例を示すフローチャート図である。
図１３の処理例では、まず、制御装置２が通信で制御装置１から取得したデータを格納する為の変数等（変数データ３１）や、それらデータを取得するための通信プログラム３２の書込み先を決定する（ステップＳ３１）。ここでは、上記制御プロジェクト設定部１７で設定した値（例えば図５に示す設定値）が、書込み先となるので、この設定値を取得しておく。
【０１１０】
次に、“モニタ対象”のシンボルデータに対応する変数情報生成を行う（ステップＳ３２）。ここでは、シンボルデータ編集部１４の上述した処理によってモニタ対象として選択されたシンボルデータについて、変数名８２やデータ型８３、コメント８７などの情報を元に、書込み変数情報としてリスト（変数情報リスト）を生成しておく。尚、上記のように、変数名８２やデータ型８３は、元々のシンボル名４１やデータ型４４に対して自動で修正が加えられたものである場合もあり、制御装置２側に適合したものとなっている。
【０１１１】
ステップＳ３２の処理は、例えば図１１に示すような編集完了した状態のシンボルデータ編集テーブル８０から、モニタ対象８１にチェックが入っているレコード全てを抽出することで、モニタ対象として選択されたシンボルデータを全て抽出する。その際、これら各レコードから、予め決められた所定のデータ項目を抽出する。この抽出結果一覧が上記変数情報リストである。
【０１１２】
予め決められた所定のデータ項目とは、例えば、変数名８２、データ型８３、コメント８７、対象コントローラ８８等である。尚、対象コントローラ８８には、通信相手（本例では制御装置１）を示す情報などが格納される。これは例えばプログラミング装置２０から取得できるが、通信設定情報２４から分かるようにしてもよい。
【０１１３】
次に、生成した変数情報リストに基づいて、制御装置２においてネットワークを介して制御装置１から取得したデータを格納する為の変数情報（変数名８２などの変数データ３１）を、制御プロジェクトに書込む（ステップＳ３３）。例えば、対象制御プロジェクトのグローバル変数として、変数情報リストの変数名８２とデータ型８３などを上記変数データ３１として該当する制御プロジェクトに書込む。尚、この書込み先制御プロジェクトは、ステップＳ３１で決定された書込み先と同じである。
【０１１４】
次に、選択シンボルデータとの通信用パラメータの生成を行う（ステップＳ３４）。ここでは、通信プログラム３２を生成するにあたり、上記“モニタ対象”となる各シンボルデータに係わるメモリアドレスの格納データを取得するために、これらシンボルデータ毎に通信プロトコルに依存した通信パラメータを生成する。例えば、MODBUS-RTUプロトコルを使う場合、通信設定情報入力部１２にて設定した情報を用いて（例えば図９、図１０に示す情報を用いて）“モニタ対象”のシンボルデータ毎の通信パラメータとして、MODBUSアドレス、ファンクションコード、データ長などを決定する。
【０１１５】
“モニタ対象”のシンボルデータ毎に、そのシンボルアドレス８６から、これに対応するMODBUSアドレスを求める。求める方法は、既に説明した通りであるが、一例として仮に図１１はＢ機種のシンボルテーブル２３に基づいて生成されたものとし、この図１１に示すシンボルアドレス８６＝“Ｑ２．０”のシンボルデータを例にした場合、これに対応するMODBUSアドレスは、上記算出式『MODBUSアドレス＝MODBUS先頭アドレス＋（登録ビット数×上位アドレス＋下位アドレス）』を用いて、下記のように算出できる。尚、上記と同様にＱの登録bitは１６bitとする。
【０１１６】
MODBUSアドレス＝６４＋（１６×２＋０）＝９６
また、この“Ｑ２．０”ではメモリ種別はＱでありデータ型はＢＯＯＬであるので、図１０（ｂ）に示す例では対応するファンクションコードは‘0x01’である。尚、図１０ではデータ型については省略して示しているが、ファンクションコードは基本的にメモリ種別及びデータ型によって決まる命令コードである。
【０１１７】
また、データ長は、ここでは一例として予め設定された固定長（＝‘１’）とする。
以上のことから、上記シンボルアドレス８６＝“Ｑ２．０”のシンボルデータに関する通信パラメータとして、MODBUSアドレス＝‘９６’、ファンクションコード＝‘0x01’、データ長＝‘１’と決定されることになる。
【０１１８】
そして、上記ステップＳ３４で生成された通信パラメータ等を用いて、モニタ対象シンボルデータに関する通信プログラム３２を生成する（ステップＳ３５）。
ここでは、制御装置２に、ネットワークを介して通信により安全規格制御装置１から、モニタ対象のシンボルデータに係わるメモリアドレスの格納データを取得する処理を実現させる為の通信プログラム３２（そのソースコード）を生成する。ここでは、例えば、通信プログラム３２は、上記ステップＳ３４でモニタ対象のシンボルデータ毎（該当シンボル毎に）に決められた通信パラメータを用いたデータ通信により、該当シンボルに係わるデータを取得し、該当シンボルのデータ格納用変数（変数データ３１）に取得データをセットする処理を行うものとなる。
【０１１９】
尚、複数シンボルデータのデータ取得を行う場合は、該当シンボル毎に通信パラメータを切替えて連続的にデータ取得を行うプログラムコードを生成する。
図１４に、上記生成される通信プログラム３２の一例を示す。
【０１２０】
本例では、通信プログラム３２の雛形が予め開発者等によって作成されているものとする。図１４に示す“プログラム本文”は、この雛形で記述されているプログラムであり、特に具体例は示さないが、通信パラメータに従ったデータ取得処理を実現するプログラムである。この通信パラメータの値は、雛形には記述されておらず、ステップＳ３５の処理で設定される。これによって、通信プログラム３２が完成する。
【０１２１】
雛形では、ケース文CASEに係る通信パラメータの項目名が記述されている。この項目名は、図示の例では「  F_CODE_I  :=  」、「ADD_I  :=  」、「LEN_I  :=  」となっている。そして、ステップＳ３５では、これら各項目に係わるパラメータ値として、上記ステップＳ３４で生成された通信パラメータの値が記述される。
【０１２２】
図１４には、一例として、Ａ機種に関して図１１においてシンボルアドレス８６が‘I1_0’のシンボルデータについてパラメータ値が設定された例を示してある。
ここで、図１４には、通信プログラム３２には存在しないデータも示されている。つまり、図１４の上側３行分には、‘I1_0’のシンボルデータについてパラメータ値が決定される様子を示している。この例の場合、ステップＳ３４の処理では、図１０（ａ）やデータ型８３を用いて、通信パラメータとして、例えば図１４の上側３行分に示すように、MODBUSアドレス＝２５６＋１６×１＋０（＝２７２）、ファンクションコード＝‘0x02’、データ長＝‘１’が決定される。
【０１２３】
尚、ファンクションコードは、図１０では、一見、メモリ種別のみによって決まるように見えるかもしれないが、実際には例えば「メモリ種別＋データ型」によって決まる。よって、図１０には示していないが、メモリ種別＝Ｉであっても、ファンクションコードが‘0x02’以外となるケースもあり得るが、ここでは‘0x02’になったものとする。尚、図１０を用いずに、予め設定されている不図示の「メモリ種別＋データ型」−ファンクションコード対応付けテーブルを参照して、該当するファンクションコードを決定するようにしてもよい。
【０１２４】
尚、「メモリ種別＋データ型」におけるデータ型は、上記の通りデータ型８３であり、従ってデータ型が変換されている場合もあり得る。
また、上記のことから、データ長＝‘１’と決定される。また、この例の場合、変数名８２＝「変数Ｃ１」である。
【０１２５】
以上のパラメータ値等から、図１４に示すように、下記のようなＣＡＳＥ文が生成される。
Ｃａｓｅ  変数Ｃ１
F_CODE_I  :=   0x02
ADD_I  :=  272
LEN_I  :=  １
図示のように、F_CODE_Iに対してはファンクションコードが設定され、ADD_Iに対してはMODBUSアドレスが設定され、LEN_Iに対してはデータ長が設定される。
【０１２６】
制御装置２において、この様な通信パラメータを用いた通信プログラム３２が実行されることで、制御装置２は制御装置１に対して、ADD_Iで指定されたアドレスに対してF_CODE_Iで指定された命令を実行してLEN_Iで指定されたデータ長のデータを取得して返信することを要求する要求フレームを、送信することになる。勿論、制御装置１は、ADD_Iで指定されたアドレス（MODBUSアドレス）に対応する自装置内のメモリアドレスを、算出等して認識することができる。
【０１２７】
最後に、生成した通信プログラムを上記通信プログラム３２として該当する制御プロジェクトに書込む（ステップＳ３６）。
変数連携支援装置１０によれば、例えば、上記のようにして、最終的には変数・通信プログラム生成部１５が、変数データ３１、通信プログラム３２を生成するので、従来はユーザが手作業で行っていたことの殆どを自動化でき、ユーザの作業負担を軽減できる。例えば変数データ３１に関して、シンボルデータのシンボル名とデータ型をそのまま変数名とデータ型として流用してもよく、更にその際に制御装置２側で扱えない文字、記号は自動的に扱える文字、記号に置き換えられるので、従来は手作業で行っていた変数名の設定作業負担が軽減できる。
【０１２８】
また、通信プログラム３２に関しては、どのメモリアドレスのデータを取得すべきであるのかをシンボルデータに基づいて判断し易くなると共に、このメモリアドレスに対応する“通信プロトコル上のアドレス”（本例ではMODBUSアドレス）やファンクションコードを、ユーザが判断する必要なく自動的に決定されて通信プログラム２３が生成されるので、ユーザの作業負担が大幅に軽減される。
【０１２９】
以上、安全規格制御装置１内部のデータを、別の制御装置２から通信ネットワーク３を介して取得するための変数データや通信プログラムを生成し、制御プロジェクト内へ自動で書込む構成の一例を示したが、この例に限るものではない。
【０１３０】
以上の実施例は、安全規格制御装置１と通常の制御装置２の間でデータ取得を行う通信プログラムを対象に示したが、一方の制御装置が安全規格制御装置に限られるものではなく、通常の制御装置の間の通信プログラムを対象とすることも可能である。
【０１３１】
また、上記制御プロジェクト設定部１７は必須ではなく、従って図５のような情報は必須ではない。この場合、生成した変数データ３１と通信プログラム３２の書込み先制御プロジェクトが分からないが、これら３１，３２は変数連携支援装置１０内の予め決められた所定の記憶領域に書込むようにすればよい。そして、後にユーザが手作業で、所定の記憶領域に格納された変数データ３１と通信プログラム３２を、書込み先制御プロジェクト（所定のフォルダ内など）に転送すればよい。勿論、この場合でも、少なくとも対象となる制御装置２の機種などの情報は、変数連携支援装置１０に入力すべきである。
【０１３２】
また、シンボルテーブル入力部１１がシンボルテーブル２３を取得する方法は、必ずしも上記１実施例のような“安全規格機種向けプログラミング装置”２０に接続して直接的に当該装置２０から取得する方法に限らない。例えば、任意の“安全規格機種向けプログラミング装置”２０で生成された任意の安全規格制御装置１に係わるシンボルテーブル２３を、例えばメモリカード等の可搬型記憶媒体に記憶させて、この可搬型記憶媒体を変数連携支援装置１０に接続したときにシンボルテーブル入力部１１が可搬型記憶媒体からシンボルテーブル２３を読み込むようにしてもよい。尚、このシンボルテーブル２３に係わる安全規格制御装置１に関する情報（例えば機種など）は、例えばシンボルテーブル２３内に付与されている場合はその情報を利用してもよいし、シンボルテーブル入力Ｓ１２においてユーザによる設定により付与してもよいものとする。
【０１３３】
何れにしても、変数連携支援装置１０が上述した処理を実行する為に必要な情報全てが、何等かの形で変数連携支援装置１０に入力されればよいのであり、その為の方法は特に上述した１実施例の方法に限定されない。
【０１３４】
あるいは、上記シンボルデータ編集部１４も必須ではない。ユーザによる任意の編集を行わずにシンボルテーブル２３から取得したシンボルデータをそのまま用いて、変数・通信プログラム生成部１５が変数データ３１、通信プログラム３２を生成する構成であっても構わない。尚、編集は行わなくても、シンボルテーブル２３から取得したシンボルデータの中から一部をユーザに選択させて、変数・通信プログラム生成部１５が選択されたシンボルデータを用いて変数データ３１、通信プログラム３２を生成するようにしてもよい。勿論、上記１実施例のように、編集した各シンボルデータ（たとえば図１１に示す各レコード；編集シンボルデータと呼ぶものとする）を用いて、変数・通信プログラム生成部１５が変数データ３１、通信プログラム３２を生成するようにしてもよい。
【０１３５】
次に、以下、変形例について説明する。
上述した一実施例は、例えば図１５（ａ）に示すような１対１の関係のシステムを想定していた。つまり、図示のように、１台の制御装置２が、１台の安全規格制御装置１をモニタする構成を想定していた。しかし、本手法は、この様な例に限るものではなく、例えば図１５（ｂ）に示すように、１台の制御装置２が、複数台（図示の例では３台）の安全規格制御装置１をモニタする構成であっても適用できる。これが、以下に説明する変形例である。
【０１３６】
例えば図１５（ｂ）に示すような構成の場合、上述したような煩雑な作業を複数台分実施する必要があり、さらに作業量が増大することになる。変形例では、この様な課題を解決できる。
【０１３７】
まず、上記シンボルテーブル入力部１１は、複数台の安全規格制御装置１の各シンボルデータを取込み可能である。取込みの際に、各安全規格制御装置１の機種や名称などの属性情報を付加して取込むことで、これらのシンボルデータを装置１毎に区別してシンボルデータ管理部１３の管理下に置く。シンボルデータ管理部１３は、現在何台分のシンボルデータが管理されているかを“対象装置台数”の情報として管理する。つまり、新たなシンボルテーブルの取込みを行う毎に、“対象装置台数”を＋１インクリメントする（尚、“対象装置台数”は初期値＝‘０’とする）。
【０１３８】
変形例では、上記シンボルテーブル入力部１１は、上記図７の処理の代わりに図１６の処理を実行する。図１６において、図７と同一の処理には同一のステップ番号を付してあり、その説明は省略する。これより、図示の通り、図１６の処理が図７と異なる点は、ステップＳ２１とＳ２２の間にステップＳ４１の処理を実行する点のみである。
【０１３９】
ステップＳ４１の処理は、図１６の処理でシンボルデータを取込む対象の安全規格制御装置１の識別情報（装置の名称等）を設定・入力させる処理であるが、これはユーザ等に任意の装置名を設定させるものであって構わない。シンボルテーブル入力部１１は、図１６の処理で取り込んだシンボルデータ（シンボルテーブル）に対して、属性情報としてステップＳ４１で設定された識別情報（装置名等）を付加する。
【０１４０】
変形例では、上記変数・通信プログラム生成部１５は、複数台分のシンボルデータが管理されている場合は、装置１毎にその装置１から取込んだシンボルデータを用いて、上記通信プログラムの自動生成と書込みを行う。尚、自動生成した通信プログラムのファイル名として、上記取込んだシンボルデータに付与されている装置名（上記ステップＳ４１で設定したもの）を使用するようにしてもよい。
【０１４１】
変形例では、上記変数・通信プログラム生成部１５は、上記図１３の処理の代わりに図１７の処理を実行する。
図１７において、図１３と同一の処理には同一のステップ番号を付してあり、その説明は省略する。これより、図示の通り、図１７の処理が図１３と異なる点は、ステップＳ３１とＳ３２の間にステップＳ５１、Ｓ５２の処理が追加され、且つ、ステップＳ３６の後にステップＳ５３の処理が追加されると共にステップＳ５２に戻るようにし、ステップＳ５２がＮＯになったら本処理を終了する点である。
【０１４２】
図１７の処理では、上記ステップＳ３１の処理を実行したら、上記“対象装置台数”を繰返しカウンタの初期値に設定して（ステップＳ５１）、その後は繰返しカウンタが‘０’になるまで、上記ステップＳ３２〜Ｓ３６の処理を繰り返し実行する。
【０１４３】
上記ステップＳ３２〜Ｓ３６の処理を実行完了する毎に、上記繰返しカウンタをー１デクリメントし（ステップＳ５３）、繰返しカウンタが‘０’より大きければ（１以上であれば）（ステップＳ５２，ＹＥＳ）再びステップＳ３２〜Ｓ３６の処理を実行する。そして、繰返しカウンタが‘０’になったら（ステップＳ５２，ＮＯ）本処理を終了する。
【０１４４】
以上説明したように、変形例においては、シンボルテーブル入力部１１では、シンボルテーブル取込みの際に、それがどの安全規格制御装置１からのシンボルデータであるかを区別できるように、その安全規格制御装置１の名称（装置名）などを属性情報として付加する。名称はユーザ等が任意に設定するものであっても構わない。これにより、複数の安全規格制御装置１からシンボルデータを取込んでも、シンボルデータ管理部１３において、それぞれを区別して管理できる。また、シンボルデータ取込み実施毎に“対象装置台数”情報を更新し、何台分のシンボルデータが取込まれているかを判別できるようにしておく。
【０１４５】
また、上記属性情報（装置の名称）は、例えば上述した通信設定情報の一部（例えば図９に示す“安全制御装置側名称”）として記憶されてもよい。通信設定情報は、シンボルデータを取込んだ装置１毎にそれぞれ対応して設定する。また、上記通信設定情報入力部１２は、この様な通信設定情報の設定変更が可能である。
【０１４６】
上述した変形例では、データ取得先の安全規格制御装置１が複数台ある場合は、対象装置１毎の通信プログラムを自動生成できるので、エンジニアリング作業の負担を更に減少させることができる。
【０１４７】
尚、上記一例に限るものではなく、例えば繰返しカウンタの初期値を、ユーザが任意の値を設定するようにしてもよい。これは、例えば、５台の安全規格制御装置１からシンボルデータ取込みを実施済みであるが（よって“対象装置台数”＝５となっている）、ユーザがその中で３台についてのみ図１７の処理を実施したいと考えた場合には、繰返しカウンタの初期値を‘３’に設定する。また、これに伴って、例えば上記ステップＳ４１で設定された装置名を一覧表示して、ユーザが図１７の処理対象とする装置名を選択指定するようにしてもよい（上記一例では任意の３台分、装置名を選択指定する）。
【０１４８】
変数連携支援装置１０の各種処理機能は、図３に一例を示して説明したが、この例に限らない。変数連携支援装置１０は、特に図示しないが下記の処理機能を有するものと言うこともできる。
【０１４９】
変数連携支援装置１０は、第１の制御装置と第２の制御装置とを有するシステムに係わり、上記第２の制御装置が、上記第１の制御装置と通信を行って該第１の制御装置から任意のメモリ情報に係わるメモリアドレスのデータを取得するための通信プログラムの作成を支援する装置であると言える。
【０１５０】
第１の制御装置の一例が上記安全規格制御装置１であり、第２の制御装置の一例が上記（通常の）制御装置であるが、これらの例に限らない。特に、第１の制御装置に関して安全規格の制御装置の例に限るものではない。
【０１５１】
変数連携支援装置１０は、概略的には、不図示の通信プログラム生成支援機能部を有するものと言うこともできる。
不図示の通信プログラム生成支援機能部は、概略的には、例えば、上記第１の制御装置における制御に係わるメモリアドレスに任意の識別子が対応付けられて成るメモリ情報が１以上格納された第１のテーブル（一例が上記シンボルテーブル２３）に基づいて、上記第２の制御装置が、上記第１の制御装置と通信を行って該第１の制御装置から任意の上記メモリ情報に係わるメモリアドレスのデータを取得するための通信プログラムの作成を支援する処理機能部であると言うこともできる。
【０１５２】
そして、上記不図示の通信プログラム生成支援機能部は、少なくとも、上記第１制御装置−第２制御装置間の通信に用いる通信プロトコルに応じて、上記任意のメモリ情報に係るメモリアドレスを、該通信プロトコルで対応するアドレスに変換して、上記通信プログラム生成の際には該変換後のアドレスを用いるものである。
【０１５３】
ここで、上記第１のテーブルの一例が上記シンボルテーブル２３であり、その上記シンボルデータが上記メモリ情報の一例であるが、これらの例に限らない。また、上記通信プロトコルの一例が上述したMODBUS-RTUプロトコルであるが、この例に限らない。
【０１５４】
上記不図示の通信プログラム生成支援機能部は、以下に説明する各種処理機能のうちの少なくとも１以上を有する。
すなわち、上記不図示の通信プログラム生成支援機能部は、例えば、アドレス対応情報記憶機能部（不図示）と、プログラム生成機能部（不図示）を有する。
【０１５５】
アドレス対応情報記憶機能部は、該メモリ情報におけるアドレス体系と上記通信プロトコルに係るアドレス体系との対応関係を示すアドレス対応情報を記憶する。
このアドレス対応情報の一例が、例えば図１０に具体例を示す通信パラメータ生成用設定情報７０であるが、この例に限らない。
【０１５６】
プログラム生成機能部は、例えば、上記第１のテーブルの１以上のメモリ情報の一部または全部あるいは該メモリ情報が任意に編集されてなる編集メモリ情報の一部または全部を対象メモリ情報として、該対象メモリ情報毎に、その対象メモリ情報に係わる上記メモリアドレスを上記アドレス対応情報に基づいて上記通信プロトコルで対応するアドレスに変換して、該変換したアドレスを用いて上記通信プログラムの生成を行う。
【０１５７】
プログラム生成機能部の一例が、上記変数・通信プログラム生成部１５であるが、この例に限らない。
上記プログラム生成機能部が生成する上記通信プログラムは、上記第２の制御装置で実行されると、該第２の制御装置に、上記第１の制御装置と上記通信プロトコルに従った通信を行って上記第１の制御装置内の上記対象メモリ情報に係わる上記メモリアドレスの格納データを取得する処理を実行させるものである。
【０１５８】
上記プログラム生成機能部は、更に、上記各対象メモリ情報に基づいて、上記取得した上記対象メモリ情報に係わるメモリアドレスの格納データを格納するための変数データ（一例が上記変数データ３１）を生成する。
【０１５９】
また、上記不図示の通信プログラム生成支援機能部は、上記第１のテーブルの上記１以上のメモリ情報の一部または全部を取得するメモリ情報入力機能部（不図示）、または／及び、該メモリ情報入力機能部により取得したメモリ情報に対して、任意の編集を行わせて上記編集メモリ情報を作成させるメモリ情報編集機能部（不図示）を、を更に有するものであってもよい。
【０１６０】
メモリ情報入力機能部の一例が上記シンボルテーブル入力部１１であり、メモリ情報編集機能部の一例が上記シンボルデータ編集部１４であるが、これらの例に限らない。
そして、上記のことから、メモリ情報入力機能部は、上述したシンボルテーブル入力部１１の各種機能の一部または全部と、同様の機能を有するものであってもよい。すなわち、上記メモリ情報入力機能部は、例えば、上記第１のテーブルの各メモリ情報のなかから、予め登録されているデータ型のメモリ情報を、取得するものであってもよい。これは、上記の通り、シンボルテーブル入力部１１の例では、例えば図８に具体例を示すシンボルデータ型フィルタリングテーブル５０を用いて、データ型に応じてシンボルデータの取捨選択を行って該当するシンボルデータを取り込む。尚、上記の通り、シンボルデータはメモリ情報の一例である。
【０１６１】
また、上記メモリ情報入力機能部は、例えば、上記取得した各メモリ情報におけるデータ型を、上記第２の制御装置側で利用可能なデータ型に変換したうえで、該取得した各メモリ情報を取り込むようにしてもよい。第２の制御装置側とは、上記１実施例では、制御装置２や、制御装置２に係わるプログラミング装置３０等である。
【０１６２】
また、上記メモリ情報入力機能部は、例えば、上記取得した各メモリ情報におけるシンボル名に、上記第２の制御装置側で変数名として利用不可である文字／記号が含まれている場合には、これを上記第２の制御装置側で変数名として利用可能な文字／記号に置き換えたうえで、該取得した各メモリ情報を取り込むようにしてもよい。
【０１６３】
あるいは、上記メモリ情報編集機能部（不図示）は、取り込んだ各メモリ情報に対して任意の編集を行わせることで上記編集メモリ情報を作成させると共に、該各編集メモリ情報のなかから任意の１以上の編集メモリ情報を選択させて、これを上記対象メモリ情報とするようにしてもよい。
【０１６４】
また、上記通信プログラム生成支援機能部は、上記対象メモリ情報に関する所定の検査を実行するメモリ情報検査機能部を更に有するものであってもよい。メモリ情報検査機能部の一例が上記シンボルデータ検査部１６であるが、この例に限らない。
【０１６５】
また、例えば、上記第１の制御装置は複数台あってもよく、１台の上記第２の制御装置が該複数台の第１の制御装置それぞれをモニタする構成であってもよい。
この場合、変数連携支援装置１０の上記通信プログラム生成支援機能部は、例えば、複数の第１の制御装置それぞれの上記第１のテーブルに基づいて、該複数の第１の制御装置それぞれの通信プログラムの作成を支援するものであってもよい。
【０１６６】
また、この場合、上記通信プログラム生成支援機能部は、上記第１のテーブルの上記１以上のメモリ情報の一部または全部を取得すると共に、任意に設定させた取得元の第１の制御装置の識別情報（上記名称／装置名など）を、該取得したメモリ情報の属性情報として記憶するメモリ情報入力機能部を有するものであってもよい。
【０１６７】
また、この場合、上記通信プログラム生成支援機能部は、上記属性情報を用いて、上記複数の第１の制御装置それぞれのメモリ情報を区別して上記通信プログラムの作成を支援するものであってもよい。これは、例えば図１５、図１６、図１７で説明したことに相当するものである。
【０１６８】
上述した変数連携支援装置１０を含むシステムの仕組みを用いれば、異なる機種である場合を含む制御装置の間でデータの送受信を行うための通信プログラムを作成するエンジニアリング作業が大幅に自動化されるので、設計者が“制御装置間で所定のデータを取得する処理を実現させる通信プログラム”を作成する負担を、大幅に減少させることができる。これは、上記第１の制御装置と第２の制御装置とが異なる機種である場合に、特に顕著な効果を奏するものである。
【０１６９】
本例の変数連携支援装置、該変数連携支援装置を有するコントローラシステム等によれば、制御装置間で所定の通信プロトコルで通信を行えるシステム構成に関して、一方の制御装置が他方の制御装置の所定のアドレスの格納データを上記通信プロトコルの通信によって取得できるようにするための通信プログラムの作成を容易にすることができる。
【符号の説明】
【０１７０】
１  安全規格制御装置
２  （通常の）制御装置
３  ネットワーク
１０  変数連携支援装置
１１  シンボルテーブル入力部
１２  通信設定情報入力部
１３  シンボルデータ管理部
１４  シンボルデータ編集部
１５  変数・通信プログラム生成部
１６  シンボルデータ検査部
１７  制御プロジェクト設定部
２０  “安全規格機種向けプログラミング装置”
２１  シンボルテーブル生成部
２２  通信ネットワーク設定部
２３  シンボルテーブル
２４  通信設定情報
３０  プログラミング装置
３１  変数
３２  通信プログラム
３３  システム構成情報
４１  シンボル名
４２  メモリ種別
４３  メモリアドレス
４４  データ型
４５  コメント
５０  シンボルデータ型フィルタリングテーブル
５１  シンボルデータ型
５２  変換後データ型
６０  通信設定情報
６１  設定項目
６２  設定値
７０  通信パラメータ生成用設定情報
７１  ファンクションコード
７２  対象メモリ先頭アドレス
７３  MODBUSアドレス（先頭）
７４  MODBUSアドレス（上限）
８０  シンボルデータ編集テーブル
８１  モニタ対象
８２  変数名
８３  データ型
８４  シンボル名
８５  シンボルデータ型
８６  シンボルアドレス
８７コメント
８８対象コントローラ
【図１】
2017142767.tif 000003
【図２】
2017142767.tif 000004
【図３】
2017142767.tif 000005
【図４】
2017142767.tif 000006
【図５】
2017142767.tif 000007
【図６】
2017142767.tif 000008
【図７】
2017142767.tif 000009
【図８】
2017142767.tif 000010
【図９】
2017142767.tif 000011
【図１０】
2017142767.tif 000012
【図１１】
2017142767.tif 000013
【図１２】
2017142767.tif 000014
【図１３】
2017142767.tif 000015
【図１４】
2017142767.tif 000016
【図１５】
2017142767.tif 000017
【図１６】
2017142767.tif 000018
【図１７】
2017142767.tif 000019