(57)【特許請求の範囲】
【請求項１】
通信網に接続可能で制御対象のシーケンス制御を実行する制御装置であって、
前記制御装置の命令セットに含まれる複数の命令が所定の実行順に並べられた命令列として前記シーケンス制御のためのユーザ定義アプリケーションプログラムを記憶する記憶部と、
前記記憶部に記憶された前記ユーザ定義アプリケーションプログラムに含まれるそれぞれの前記命令にしたがった処理を、前記実行順に実行する制御部とを備え、
前記命令セットは、前記通信網での通信の所定の設定を１命令で変更するための通信設定命令を含み、
前記通信設定命令は、前記ユーザ定義アプリケーションプログラムに含めることが可能であり、命令列のラダー表示で１つの記号で示され、当該記号は、入力が必要な複数の入力変数を特定可能な情報、および、出力される複数の出力変数を特定可能な情報を示す、制御装置。
【請求項２】
前記通信設定命令には、前記通信設定命令にしたがって前記制御部で実行される通信設定処理内容が予め対応付けられ、
前記制御部は、前記命令列に含まれる前記命令が前記通信設定命令である場合、前記通信設定命令に対応する前記通信設定処理内容の処理を実行する、請求項１に記載の制御装置。
【請求項３】
前記所定の設定は、インターネットプロトコルアドレスの変更設定、ファイルトランスファープロトコルのアカウントの変更設定、または、ネットワークタイムプロトコルサーバのアドレスの変更設定である、請求項１に記載の制御装置。
【請求項４】
通信網に接続可能で制御対象のシーケンス制御を実行する制御装置の制御方法であって、
前記制御装置の命令セットに含まれる複数の命令が所定の実行順に並べられた命令列として前記シーケンス制御のためのユーザ定義アプリケーションプログラムを記憶するステップと、
記憶された前記ユーザ定義アプリケーションプログラムに含まれるそれぞれの前記命令にしたがった処理を、前記実行順に実行するステップとを含み、
前記命令セットは、前記通信網での通信の所定の設定を１命令で変更するための通信設定命令を含み、
前記通信設定命令は、前記ユーザ定義アプリケーションプログラムに含めることが可能であり、命令列のラダー表示で１つの記号で示され、当該記号は、入力が必要な複数の入力変数を特定可能な情報、および、出力される複数の出力変数を特定可能な情報を示す、制御方法。
【請求項５】
通信網に接続可能で制御対象のシーケンス制御を実行する制御装置に所定の処理を実行させるための複数の命令を含む命令セットであって、
前記制御装置は、前記制御装置の前記命令セットに含まれる複数の命令が所定の実行順に並べられた命令列として前記シーケンス制御のためのユーザ定義アプリケーションプログラムを記憶し、記憶された前記ユーザ定義アプリケーションプログラムに含まれるそれぞれの前記命令にしたがった処理を、前記実行順に実行する装置であり、
前記命令セットは、前記通信網での通信の所定の設定を１命令で変更するための通信設定命令を含み、
前記通信設定命令は、前記ユーザ定義アプリケーションプログラムに含めることが可能であり、命令列のラダー表示で１つの記号で示され、当該記号は、入力が必要な複数の入力変数を特定可能な情報、および、出力される複数の出力変数を特定可能な情報を示す、命令セット。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、制御方法および命令セットに関し、特に、通信網に接続可能で制御対象のシーケンス制御を実行するのに適した制御装置、その制御装置の制御方法、および、その制御装置の命令セットに関する。
【背景技術】
【０００２】
従来、ＰＬＣの周辺機器であるデータ収集システムにおいて、データ収集子機のＩＰアドレスは予めデータ収集親機に記憶されており、データ収集子機の設定をデータ収集親機から行うことが可能とされたものがあった（たとえば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２１５９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１のシステムでは、データ収集親機とデータ収集子機との通信の設定は、予め、データ収集親機とデータ収集子機とで、それぞれ行われている必要があった。この設定においては、たとえば、データ収集親機のＩＰアドレスをデータ収集子機に記憶させたり、データ収集子機のＩＰアドレスをデータ収集親機に記憶させたりしなければならない。
【０００５】
ＰＬＣにおいて、このような設定を、ＣＩＰ命令を組み込んだユーザ定義アプリケーションで行う場合、ＣＩＰ命令に関する知識が必要であったり、複雑なプログラムを組んだりする必要があった。
【０００６】
この発明は、上述の問題を解決するためになされたものであり、その目的の１つは、通信網での通信の所定の設定を簡単に行うことが可能な制御装置、制御方法および命令セットを提供することである。
【課題を解決するための手段】
【０００７】
上述の目的を達成するために、この発明のある局面によれば、制御装置は、通信網に接続可能で制御対象のシーケンス制御を実行する装置である。制御装置は、制御装置の命令セットに含まれる複数の命令が所定の実行順に並べられた命令列を示す情報を記憶する記憶部と、記憶部に記憶された情報で示される命令列に含まれるそれぞれの命令にしたがった処理を、実行順に実行する制御部とを備える。命令セットは、通信網での通信の所定の設定を１命令で変更するための通信設定命令を含む。
【０００８】
好ましくは、通信設定命令には、通信設定命令にしたがって制御部で実行される通信設定処理内容が予め対応付けられる。制御部は、命令列に含まれる命令が通信設定命令である場合、通信設定命令に対応する通信設定処理内容の処理を実行する。
【０００９】
好ましくは、所定の設定は、インターネットプロトコルアドレスの変更設定、ファイルトランスファープロトコルのアカウントの変更設定、または、ネットワークタイムプロトコルサーバのアドレスの変更設定である。
【００１０】
この発明の他の局面によれば、制御方法は、通信網に接続可能で制御対象のシーケンス制御を実行する制御装置の制御方法である。制御方法は、制御装置の命令セットに含まれる複数の命令が所定の実行順に並べられた命令列を示す情報を記憶するステップと、記憶された情報で示される命令列に含まれるそれぞれの命令にしたがった処理を、実行順に実行するステップとを含む。命令セットは、通信網での通信の所定の設定を１命令で変更するための通信設定命令を含む。
【００１１】
この発明のさらに他の局面によれば、命令セットは、通信網に接続可能で制御対象のシーケンス制御を実行する制御装置に所定の処理を実行させるための複数の命令を含む命令セットである。制御装置は、制御装置の命令セットに含まれる複数の命令が所定の実行順に並べられた命令列を示す情報を記憶し、記憶された情報で示される命令列に含まれるそれぞれの命令にしたがった処理を、実行順に実行する装置である。命令セットは、通信網での通信の所定の設定を１命令で変更するための通信設定命令を含む。
【発明の効果】
【００１２】
この発明に従えば、通信網での通信の所定の設定を簡単に行うことが可能な制御装置、制御方法および命令セットを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係るＰＬＣシステムを示す模式図である。
【図２】本発明の実施の形態に係るＰＬＣの処理ユニットのハードウェア構成を示す模式図である。
【図３】本発明の実施の形態に係るサポート装置のハードウェア構成を示す模式図である。
【図４】本発明の実施の形態に係るＰＬＣの処理ユニットに実装されるソフトウェア構成を示す模式図である。
【図５】本発明の実施の形態に係るサポート装置に実装されるソフトウェア構成を示す模式図である。
【図６】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の概要を説明するための図である。
【図７】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令のラダー表示を示す図である。
【図８】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の入力変数を示す図である。
【図９】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の出力変数を示す図である。
【図１０】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の動作タイミングチャートを示す図である。
【図１１】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の各入力変数の設定可能範囲を示す図である。
【図１２】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令を用いたサンプルプログラムをラダー表示で示す第１の図である。
【図１３】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令を用いたサンプルプログラムをラダー表示で示す第２の図である。
【図１４】本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令を用いたサンプルプログラムをＳＴ表示で示す図である。
【図１５】本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令のラダー表示を示す図である。
【図１６】本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令の入力変数を示す図である。
【図１７】本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令の出力変数を示す図である。
【図１８】本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令の各入力変数の設定可能範囲を示す図である。
【図１９】本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令のラダー表示を示す図である。
【図２０】本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令の入力変数を示す図である。
【図２１】本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令の出力変数を示す図である。
【図２２】本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令の各入力変数の設定可能範囲を示す図である。
【図２３】本発明の実施の形態に係るＰＬＣのＮＴＰに基づく時刻設定の動作タイミングチャートを示す図である。
【図２４】本発明の実施の形態に係るＰＬＣの処理ユニット１０に実装される通信設定命令のソフトウェア構成を示す模式図である。
【図２５】ユーザ定義アプリケーションがＣＩＰ命令を含む場合の従来と本発明とのＰＬＣ導入時の差異を説明するための図である。
【図２６】ユーザ定義アプリケーションがＣＩＰ命令を含まない場合の従来と本発明とのＰＬＣ導入時の差異を説明するための図である。
【図２７】従来のＰＬＣの通信の設定をするための専用ツールの設定画面を示す第１の図である。
【図２８】従来のＰＬＣの通信の設定をするための専用ツールの設定画面を示す第２の図である。
【図２９】従来のＰＬＣの通信の設定をするための専用ツールの設定画面を示す第３の図である。
【発明を実施するための形態】
【００１４】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１５】
＜Ａ．システム構成＞
まず、サポート装置によって使用および運用を支援されるＰＬＣを含むシステムについて説明する。
【００１６】
図１は、本発明の実施の形態に係るＰＬＣシステムＳＹＳを示す模式図である。本実施の形態に係るＰＬＣシステムＳＹＳは、ネットワークＮＷを介してネットワーク接続された複数のＰＬＣ（ＰＬＣ１，ＰＬＣ２，ＰＬＣ３）を含む。これらのＰＬＣの種別は必ずしも同一ではないとする。
【００１７】
本明細書において「ＰＬＣの種別」とは、主として、プログラムによるデータの書込み、読出し、更新などの処理において利用（参照）されるデータ構造が同一であるか否かという観点を示すものである。例えば、２つのＰＬＣの間で、いずれのデータ型であっても、一方のＰＬＣが書込んだデータを他方のＰＬＣが本来のデータの意味で解釈できる場合には、「ＰＬＣの種別が同一」であるとする。これに対して、あるデータ型について、一方のＰＬＣが書込んだデータを他方のＰＬＣが本来のデータの意味で解釈できない場合には、「ＰＬＣの種別が同一ではない（種別が別である）」であるとする。言い換えれば、あるＰＬＣがネットワークＮＷを介して自装置のデータを送信した場合に、別のＰＬＣがその送信されたデータを受信して正しく解釈できるか否かという観点に着目して、「ＰＬＣの種別」が判断される。
【００１８】
以下の説明では、典型例として、ＰＬＣ１，ＰＬＣ２，ＰＬＣ３の間では、種別が異なっているものとする。しかしながら、ＰＬＣ１とＰＬＣ２との間、ＰＬＣ２とＰＬＣ３との間、およびＰＬＣ３とＰＬＣ１との間では、ネットワークＮＷを介してデータを遣り取りする必要があるものとする。本実施の形態に係るサポート装置２００は、このような状況下において、ＰＬＣ間でのデータの遣り取りを適合化する。
【００１９】
各ＰＬＣは、プログラムを実行する主体である処理ユニット１０と、処理ユニット１０などへ電力を供給する電源ユニット１２と、フィールドからの信号を遣り取りするＩＯ（Input/Output）ユニット１４とを含む。ＩＯユニット１４は、処理ユニット１０とシステムバス１１を介して接続されている。典型的には、ＩＯユニット１４は、フィールド機器である検出センサー６から入力信号を取得し、また処理ユニット１０でのプログラムの実行結果に応じてフィールド機器であるリレー７を駆動する。
【００２０】
表示器５は、タッチパネルなどの操作部と液晶ディスプレイなどの表示部と処理ユニット１０と通信する通信部と各部を制御する制御部とを備える。
【００２１】
各ＰＬＣは、表示器５の操作部による操作に応じて各種の設定の変更が可能であり、ＰＬＣの所定の情報を表示器５に表示させることが可能である。
【００２２】
サポート装置２００は、ＰＬＣで実行されるプログラム（以下「実行可能プログラム」とも称す）を生成する機能とともに、接続先のＰＬＣの運転状態や各種データの値などをモニタする機能を有している。さらに、サポート装置２００は、ユーザによる実行可能プログラムの生成を支援するため、デバック機能やシミュレーション機能を有していてもよい。
【００２３】
＜Ｂ．ハードウェア構成＞
次に、図１に示すＰＬＣシステムＳＹＳを構成するＰＬＣおよびサポート装置２００のハードウェア構成について説明する。
【００２４】
（ｂ１：ＰＬＣのハードウェア構成）
図２は、本発明の実施の形態に係るＰＬＣの処理ユニット１０のハードウェア構成を示す模式図である。図２を参照して、処理ユニット１０は、プロセッサ１００と、チップセット１０２と、メインメモリ１０４と、不揮発性メモリ１０６と、システムタイマ１０８と、システムバスコントローラ１２０と、ネットワークコントローラ１４０と、ＵＳＢコネクタ１１０とを含む。チップセット１０２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００２５】
プロセッサ１００およびチップセット１０２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ１００は、チップセット１０２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１０２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ１００に必要な命令コードを生成する。さらに、チップセット１０２は、プロセッサ１００での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００２６】
処理ユニット１０は、メモリとして、メインメモリ１０４および不揮発性メモリ１０６を有する。
【００２７】
メインメモリ１０４は、揮発性の記憶領域であり、処理ユニット１０への電源投入後にプロセッサ１００で実行されるべき各種プログラムを格納する。メインメモリ１０４は、プロセッサ１００による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ１０４としては、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）といったデバイスが用いられる。
【００２８】
不揮発性メモリ１０６は、リアルタイムＯＳ（Operating System）、システムプログラム、実行可能プログラムといった各種プログラム（モジュール）、およびシステム設定パラメータといったデータを不揮発的に格納する。これらのプログラムやデータは、必要に応じて、プロセッサ１００がアクセスできるようにメインメモリ１０４にコピーされる。このような不揮発性メモリ１０６としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）のような光学記録媒体などを用いることもできる。
【００２９】
システムタイマ１０８は、一定周期ごとに割り込み信号を発生してプロセッサ１００に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、ＯＳ（Operating System）やＢＩＯＳ（Basic Input Output System）などによって、任意の周期で割り込み信号を発生するように設定することもできる。
【００３０】
処理ユニット１０は、通信インターフェイスとして、システムバスコントローラ１２０およびネットワークコントローラ１４０を有する。これらの通信インターフェイスは、出力データの送信および入力データの受信を行う。
【００３１】
システムバスコントローラ１２０は、システムバス１１を介したデータの遣り取りを制御する。より具体的には、システムバスコントローラ１２０は、ＤＭＡ（Dynamic Memory Access）制御回路１２２と、システムバス制御回路１２４と、バッファメモリ１２６とを含む。システムバスコントローラ１２０は、システムバスコネクタ１３０を介してシステムバス１１と内部的に接続される。
【００３２】
バッファメモリ１２６は、システムバス１１を介してＩＯユニット１４へ出力されるデータの送信バッファ、および、システムバス１１を介してＩＯユニット１４から入力されるデータの受信バッファとして機能する。
【００３３】
ＤＭＡ制御回路１２２は、メインメモリ１０４からバッファメモリ１２６への出力データの転送、および、バッファメモリ１２６からメインメモリ１０４への入力データの転送を行う。
【００３４】
システムバス制御回路１２４は、システムバス１１に接続されるＩＯユニット１４との間で、バッファメモリ１２６の出力データを送信する処理および入力データを受信してバッファメモリ１２６に格納する処理を行う。
【００３５】
ネットワークコントローラ１４０は、ネットワークＮＷを介した他のＰＬＣとの間のデータの遣り取りを制御する。すなわち、ネットワークコントローラ１４０は、用いられるネットワーク規格に従い、出力データの送信および入力データの受信を制御する。一例として、ＯＳＩ参照モデルの物理層およびデータリンク層としてイーサネット（登録商標）を採用し、ＯＳＩ参照モデルのネットワーク層およびトランスポート層としてＴＣＰ／ＩＰまたはＵＤＰ／ＩＰを採用し、ＯＳＩ参照モデルのセッション層、プレゼンテーション層およびアプリケーション層として産業用共通プロトコル（ＣＩＰ：Common Industrial Protocol）を採用したような構成が採用される。
【００３６】
上述のようなネットワーク規格に限られることなく、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）としては、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、Ｐｒｏｆｉｎｅｔ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られている。
【００３７】
バッファメモリ１４６は、ネットワークＮＷを介して他のＰＬＣへ出力されるデータの送信バッファ、および、ネットワークＮＷを介して他のＰＬＣから入力されるデータの受信バッファとして機能する。
【００３８】
ＤＭＡ制御回路１４２は、メインメモリ１０４からバッファメモリ１４６への出力データの転送、および、バッファメモリ１４６からメインメモリ１０４への入力データの転送を行う。
【００３９】
ネットワーク制御回路１４４は、ネットワークＮＷに接続される他のＰＬＣとの間で、バッファメモリ１４６の出力データを送信する処理および入力データを受信してバッファメモリ１４６に格納する処理を行う。典型的には、ネットワーク制御回路１４４は、ネットワークＮＷにおける物理層およびデータリンク層の機能を提供する。
【００４０】
ＵＳＢコネクタ１１０は、サポート装置２００と処理ユニット１０とを接続するための通信インターフェイスである。典型的には、サポート装置２００から転送される、処理ユニット１０のプロセッサ１００で実行可能なプログラムなどは、ＵＳＢコネクタ１１０を介してＰＬＣに取込まれる。
【００４１】
（ｂ２：サポート装置のハードウェア構成）
図３は、本発明の実施の形態に係るサポート装置２００のハードウェア構成を示す模式図である。図３を参照して、サポート装置２００は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００４２】
図３を参照して、サポート装置２００は、ＯＳを含む各種プログラムを実行するＣＰＵ２０１と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）２０２と、ＣＰＵ２０１でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ２０３と、ＣＰＵ２０１で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）２０４とを含む。
【００４３】
サポート装置２００は、さらに、ユーザからの操作を受け付けるキーボード２０５およびマウス２０６と、情報をユーザに提示するためのモニタ２０７とを含む。サポート装置２００は、ＰＬＣ（処理ユニット１０）などと通信するための通信インターフェイス（ＩＦ）２０９を含む。
【００４４】
後述するように、サポート装置２００で実行される各種プログラムは、ＣＤ−ＲＯＭ３００に格納されて流通する。このＣＤ−ＲＯＭ３００に格納されたプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ２０８によって読取られ、ハードディスク（ＨＤＤ）２０４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００４５】
＜Ｃ．ソフトウェア構成＞
（ｃ１：ＰＬＣのソフトウェア構成）
次に、ＰＬＣ（処理ユニット１０）が各種機能を提供するためのソフトウェア構成について説明する。
【００４６】
図４は、本発明の実施の形態に係るＰＬＣの処理ユニット１０に実装されるソフトウェア構成を示す模式図である。図４に示すソフトウェアに含まれる命令コードは、適切なタイミングで読出され、処理ユニット１０のプロセッサ１００へ提供されて実行される。
【００４７】
図４を参照して、処理ユニット１０には、リアルタイムＯＳ１９０上にＰＬＣでの処理に必要なプログラムが実装される。
【００４８】
リアルタイムＯＳ１９０は、処理ユニット１０のコンピュータアーキテクチャに応じて設計されており、プロセッサ１００がＰＬＣでの処理に必要なプログラムを実行するための基本的な実行環境を提供する。より具体的には、リアルタイムＯＳ１９０は、複数のプログラムを時間の経過に従い切り替えて実行するための環境を提供する。リアルタイムＯＳ１９０は、制御サイクル開始の割り込みが発生すると、プロセッサ１００での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラ１６０に切り替える。
【００４９】
本実施の形態に係る実行可能プログラムとしては、基本的には、ユーザ定義アプリケーション１７０が想定されている。ユーザ定義アプリケーション１７０は、サポート装置２００によって生成され、サポート装置２００から処理ユニット１０へ転送される。なお、ユーザ定義アプリケーション１７０の実行に必要な一部のモジュール（あるいは、ライブラリ）については、処理ユニット１０に予め格納されており、これらを適切なタイミングで呼び出して利用する形態（シンボリックリンク）を採用してもよい。この場合、サポート装置２００は、一部のモジュールを含まない実行可能プログラムを生成することになる。あるいは、ユーザ定義アプリケーション１７０および命令実行モジュール１８０を含めて、実行可能プログラムとしてもよい。
【００５０】
より具体的には、処理ユニット１０には、スケジューラ１６０と、ユーザ定義アプリケーション１７０と、入力処理モジュール１７２と、出力処理モジュール１７４と、通信処理モジュール１７６と、その他のシステムモジュール１７８と、命令実行モジュール１８０と、メモリマネジャー１８４と、データ構造変換モジュール１８６とが実装される。
【００５１】
スケジューラ１６０は、ユーザ定義アプリケーション１７０、入力処理モジュール１７２、出力処理モジュール１７４、および通信処理モジュール１７６について、実行開始タイミングや処理中断を制御することで、各実行サイクルでの処理を保証する。より具体的には、１つの制御サイクル内ですべての処理を完了できないことも多く、この場合には、スケジューラ１６０は、実行すべき処理の優先度などに応じて、各制御サイクルにおいて実行を完了すべき処理と、複数の制御サイクルに亘って実行してもよい処理とを区分する。すなわち、スケジューラ１６０は、各制御サイクル期間内において、より高い優先度が与えられているプログラムほど先に実行する。
【００５２】
ユーザ定義アプリケーション１７０は、ユーザがその制御目的に応じて作成する。すなわち、ＰＬＣシステムＳＹＳを用いて制御する対象のライン（プロセス）などに応じて、任意に設計されるプログラムである。より具体的には、ユーザ定義アプリケーション１７０は、サポート装置２００などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。生成された実行可能（オブジェクト）プログラム形式のユーザ定義アプリケーション１７０は、サポート装置２００から接続ケーブル１３を介して処理ユニット１０へ転送され、不揮発性メモリ１０６などに格納される。
【００５３】
ユーザ定義アプリケーション１７０は、シーケンス処理およびモーション演算などの特殊処理を含み得る。ユーザ定義アプリケーション１７０は、命令実行モジュール１８０と協働して、ユーザ定義アプリケーション１７０に含まれる処理を実現する。より具体的には、ユーザ定義アプリケーション１７０は、命令実行モジュール１８０によって提供される命令や関数などを利用することで、プログラムされた動作を実現する。
【００５４】
命令実行モジュール１８０は、ユーザ定義アプリケーション１７０に定義された何らかのシーケンス命令あるいは何らかのファンクション命令が実行されるときに呼び出される。
【００５５】
入力処理モジュール１７２は、システムバスコントローラ１２０によって受信された入力データを、ユーザ定義アプリケーション１７０が使用するのに適した形式に再配置する。出力処理モジュール１７４は、ユーザ定義アプリケーション１７０の実行によって生成された出力データを、システムバスコントローラ１２０へ転送するのに適した形式に再配置する。
【００５６】
通信処理モジュール１７６は、ネットワークコントローラ１４０による他のＰＬＣとの間の通信処理のタイミングを制御する。通信処理モジュール１７６は、さらに、ネットワークコントローラ１４０が他のＰＬＣから受信された入力データをユーザ定義アプリケーション１７０が使用するのに適した形式に再配置するとともに、ユーザ定義アプリケーション１７０の実行によって生成された出力データを、ネットワークコントローラ１４０へ転送するのに適した形式に再配置する。
【００５７】
その他のシステムモジュール１７８は、図４に個別に示したプログラム以外の、ＰＬＣ１の各種機能を実現するための１つまたは複数のモジュールをまとめて示したものである。
【００５８】
メモリマネジャー１８４は、メインメモリ１０４に格納されるデータを管理する。
データ構造変換モジュール１８６は、他のＰＬＣとの間でデータ交換を行うために、データ構造をＰＬＣの種別毎に定義されるデータ構造に適合させる。すなわち、データ構造変換モジュール１８６は、自ＰＬＣが扱うデータのデータ構造を他のＰＬＣが扱うデータ構造に変換する。
【００５９】
上述した、実行可能プログラム（ユーザ定義アプリケーション１７０単体またはユーザ定義アプリケーション１７０および命令実行モジュール１８０）は、記憶手段であるメインメモリ１０４および／または不揮発性メモリ１０６に格納される。
【００６０】
（ｃ２：サポート装置のソフトウェア構成）
次に、サポート装置２００が各種機能を提供するためのソフトウェア構成について説明する。
【００６１】
図５は、本発明の実施の形態に係るサポート装置２００に実装されるソフトウェア構成を示す模式図である。図５に示すソフトウェアに含まれる命令コードは、適切なタイミングで読出され、サポート装置２００のＣＰＵ２０１へ提供されて実行される。
【００６２】
図５を参照して、サポート装置２００には、ＯＳ２４０、プログラミングアプリケーション２５０およびネットワーク設定アプリケーション２８０が実装される。サポート装置２００ではＯＳ２４０が実行され、プログラミングアプリケーション２５０およびネットワーク設定アプリケーション２８０を実行可能な環境が提供される。本実施の形態に係るサポート装置２００を実現するためのサポートプログラムは、少なくともプログラミングアプリケーション２５０を含む。
【００６３】
プログラミングアプリケーション２５０は、エディタ２５２と、コンパイラ２５４と、デバッガ２５６と、ＧＵＩ（Graphical User Interface）モジュール２５８と、シミュレータ２６０と、データ格納部２７０とを含む。プログラミングアプリケーション２５０に含まれるそれぞれのモジュールは、典型的には、ＣＤ−ＲＯＭ３００に格納された状態で流通して、サポート装置２００にインストールされる。
【００６４】
エディタ２５２は、実行可能プログラム（ソースプログラム２７４）を作成するための入力および編集といった機能を提供する。より具体的には、エディタ２５２は、ユーザがキーボード２０５やマウス２０６を操作してユーザ定義アプリケーション１７０のソースプログラム２７４を作成する機能に加えて、作成したソースプログラム２７４の保存機能および編集機能を提供する。
【００６５】
コンパイラ２５４は、ユーザ定義アプリケーション１７０のソースプログラム２７４をコンパイルして、処理ユニット１０のプロセッサ１００で実行可能（オブジェクト）プログラム形式の実行可能プログラムを生成する機能を提供する。
【００６６】
デバッガ２５６は、実行可能プログラム（ソースプログラム２７４）に対してデバッグを行うための機能を提供する。このデバッグの内容としては、ソースプログラム２７４のうちユーザが指定した範囲を部分的に実行する、ソースプログラム２７４の実行中における変数値の時間的な変化を追跡する、といった動作を含む。
【００６７】
ＧＵＩモジュール２５８は、ユーザが各種データやパラメータなどを入力するためのユーザインターフェイスを提供する機能を有する。
【００６８】
シミュレータ２６０は、サポート装置２００内にＰＬＣ１の処理ユニット１０でのプログラムの実行をシミュレーションする環境を構築する。
【００６９】
データ格納部２７０は、ユーザが作成したソースプログラム２７４やプログラムの実行に必要な変数設定２７２を格納する。
【００７０】
ネットワーク設定アプリケーション２８０は、ＰＬＣ間のデータの遣り取りに係る設定を行うための機能を提供する。ネットワーク設定アプリケーション２８０は、エディタ２８２と、コンフィグレータ２８４と、関連付けモジュール２８６と、データ格納部２９０とを含む。ネットワーク設定アプリケーション２８０に含まれるそれぞれのモジュールは、典型的には、ＣＤ−ＲＯＭ３００に格納された状態で流通して、サポート装置２００にインストールされる。
【００７１】
エディタ２８２は、ＰＬＣ間で遣り取りされるデータ（変数）の設定情報の入力および編集といった機能を提供する。より具体的には、エディタ２８２は、ユーザがキーボード２０５やマウス２０６を操作して、ＰＬＣ間で遣り取りされる変数などを指定する機能に加えて、入力された設定情報の保存機能および編集機能を提供する。また、エディタ２８２は、ネットワーク接続されたＰＬＣからその変数設定などを取得（ダウンロード）することもできる。
【００７２】
コンフィグレータ２８４は、ＰＬＣ間でデータを遣り取りするための設定を対象のＰＬＣへ設定する機能を提供する。このコンフィグレータ２８４によって各ＰＬＣへ設定される情報をコネクション設定２９６とも称す。
【００７３】
関連付けモジュール２８６は、遣り取りされるデータ毎に、対象のＰＬＣ間の関連付けを行う機能を提供する。すなわち、関連付けモジュール２８６は、ＰＬＣの別にコネクション設定２９６を生成する。
【００７４】
データ格納部２９０は、ＰＬＣから取得した変数の情報を示す変数設定２９２，２９４およびコネクション設定２９６を格納する。
【００７５】
＜Ｄ．特徴的な命令＞
本発明の実施の形態においては、処理ユニット１０の命令セットのうち、特徴的な命令として、ＩＰ（Internet Protocol）アドレス変更命令、ＦＴＰ（File Transfer Protocol）アカウント変更命令、および、ＮＴＰ（Network Time Protocol）サーバ宛先変更命令が設けられている。以下、これらの３つの命令を、通信設定命令ともいう。
【００７６】
（ｄ１：ＩＰアドレス変更命令）
図６は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の概要を説明するための図である。図６を参照して、処理ユニット１０には、ＩＰアドレス変更命令ChangeIPAdrが組込まれたユーザ定義アプリケーション１７０が、サポート装置２００から転送され、不揮発性メモリ１０６に予め記憶されている。
【００７７】
図７は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令のラダー表示を示す図である。図８は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の入力変数を示す図である。図９は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の出力変数を示す図である。
【００７８】
図７から図９を参照して、ＩＰアドレス変更命令は、処理ユニット１０の内蔵のネットワークコントローラ１４０、または、処理ユニット１０にシステムバス１１を介して接続された外部機器（たとえば、ＩＯユニット１４など）の、ＢｏｏｔＰ設定、ＩＰアドレス、サブネットマスク、および、デフォルトゲートウェイを変更する命令である。
【００７９】
ＩＰアドレス変更命令には、図７および図８で示すように、入力変数として、実行条件：Execute、ユニット番号：UnitNo、ＢＯＯＴＰ設定：BootPControl、ＩＰアドレス：IPAdr、サブネットマスク：SubnetMask、および、デフォルトゲートウェイ：DefaultGatewayが設けられる。各入力変数の内容などは、図８で示すとおりである。
【００８０】
また、ＩＰアドレス変更命令には、図７および図９で示すように、出力変数として、正常終了：Done、命令ビジー：Busy、エラー：Error、および、エラーＩＤ：ErrorIDが設けられる。各出力変数の内容などは、図９で示すとおりである。
【００８１】
また、ＩＰアドレス変更命令のラダー表示は、図７で示した通りであるが、ＳＴ（Structured Text）表示（構造化テキスト言語での表示）では、「ChangeIPAdr_instance(Execute,UnitNo,BootPControl,IPAdr,SubnetMask,DefaultGateway,Done,Busy,Error,ErrorID,);」と記載される。ここで、ChangeIPAdr_instanceは、ChangeIPAdr命令のインスタンスとして宣言されているものとする。
【００８２】
図６を再び参照して、処理ユニット１０において、メインメモリ１０４に、ネットワーク変数newIPAddressおよびネットワーク変数ChangeTrrigerが設定されている。
【００８３】
たとえば、処理ユニット１０または外部機器を導入する通信ネットワークがクラスＡのネットワークであり、処理ユニット１０が納入時にクラスＣのＩＰアドレスに設定されている場合、処理ユニット１０または外部機器のＩＰアドレスをクラスＡに設定し直す必要がある。
【００８４】
このような場合に、表示器５で、クラスＡのＩＰアドレスが入力され、「変更」ボタンが操作されると、ネットワーク変数newIPAddressに、表示器５で入力されたＩＰアドレスが書込まれ、ネットワーク変数ChangeTrrigerにTRUEが書込まれる。
【００８５】
これにより、ChangeTrrigerのＡ接点がオンになり、ChangeIPAdr命令のExecuteがTRUEとなる。これに応じて、ChangeIPAdr命令がプロセッサ１００によって実行され、処理ユニット１０のＩＰアドレスが、ネットワーク変数newIPAddressに書込まれたＩＰアドレスに設定され、ＢＯＯＴＰ設定が、BootPControlの値に設定され、サブネットマスクが「FFFFFF00」に設定され、デフォルトゲートウェイが「00000000」に設定される。これらの設定が終了すると、ChangeIPAdrのDoneがTRUEとされる。
【００８６】
このように、１命令でＩＰアドレスを設定できるＩＰアドレス変更命令ChangeIPAdrが組込まれたユーザ定義アプリケーション１７０を、処理ユニット１０の不揮発性メモリ１０６に予め記憶させておき、実行させるだけで、簡単に、処理ユニット１０または外部機器のＩＰアドレスが設定される。
【００８７】
次に、ＩＰアドレス変更命令により実行される機能を説明する。図１０は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の動作タイミングチャートを示す図である。図１０を参照して、ＩＰアドレス変更命令において、ExecuteがFALSEからTRUEに変化したとき、IPAdr、SubnetMaskおよびDefaultGatewayの値が、処理ユニット１０の内蔵のネットワークコントローラ１４０、または、処理ユニット１０にシステムバス１１を介して接続された外部機器に、書込まれる。この書込みの実行中は、BusyがTRUEとなる。そして、書込みの完了時に、BusyがFalseとなり、DoneがTRUEとなる。ネットワークコントローラ１４０の場合、書込まれた設定は、書込みの完了後に反映される。その後、ネットワークコントローラ１４０は、リンクオフを行った後、リンクオンを行う。また、外部機器の場合、DoneがTRUEとなると、自動的にリスタートが開始され、リスタート処理完了後に、設定内容が反映され、リンクオフが行なわれた後、リンクオンが行なわれる。_EIP_ETN_OnlineStaは、ネットワークコントローラ１４０のステータス情報である。TRUEの場合に通信機能が利用可能となり、FALSEの場合は通信機能が利用できない。
【００８８】
図１１は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令の各入力変数の設定可能範囲を示す図である。図１１を参照して、ＩＰアドレス、サブネットマスク、および、デフォルトゲートウェイの設定可能範囲は、図で示すとおりである。これらの範囲を超える場合には、ErrorがTRUEとなる。
【００８９】
また、ユニット番号およびＢＯＯＴＰ設定が設定範囲外である場合、ならびに、変更ができない状態である場合、ならびに、外部機器のリスタート処理が失敗した場合、ならびに、通信設定命令の同時実行数オーバーの場合も、ErrorがTRUEとなる。変更ができない状態とは、ネットワークコントローラ１４０がリスタート中である状態、ＣＩＰメッセージにより設定が変更中の状態、または、通信処理モジュール１７６からタグデータリンク設定をダウンロード中の状態である。
【００９０】
図１２は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令を用いたサンプルプログラムを示す第１の図である。図１３は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令を用いたサンプルプログラムを示す第２の図である。
【００９１】
図１２および図１３を参照して、このサンプルプログラムには、ＩＰアドレス変更命令が組込まれている。まず、起動条件がチェックされる。次に、ＩＰアドレス変更命令に入力される新しいＩＰアドレスなどのパラメータが設定される。そして、ＩＰアドレス変更命令が実行されることにより、入力されたＩＰアドレスなどのパラメータが設定される。
【００９２】
図１４は、本発明の実施の形態に係るＰＬＣのＩＰアドレス変更命令を用いたサンプルプログラムをＳＴ表示で示す図である。図１４を参照して、このサンプルプログラムは、ラダー表示で示した図１２および図１３のサンプルプログラムをＳＴ表示で示したものである。
【００９３】
（ｄ２：ＦＴＰアカウント変更命令）
図１５は、本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令のラダー表示を示す図である。図１６は、本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令の入力変数を示す図である。図１７は、本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令の出力変数を示す図である。
【００９４】
図１５から図１７を参照して、ＦＴＰアカウント変更命令は、処理ユニット１０の内蔵のネットワークコントローラ１４０、または、処理ユニット１０にシステムバス１１を介して接続された外部機器の、ＦＴＰアカウントを変更する命令である。
【００９５】
ＦＴＰアカウント変更命令には、図１５および図１６で示すように、入力変数として、実行条件：Execute、ユニット番号：UnitNo、ログイン名称：NewUserName、および、パスワード：NewPasswordが設けられる。各入力変数の内容などは、図１６で示すとおりである。
【００９６】
また、ＦＴＰアカウント変更命令には、図１５および図１７で示すように、出力変数として、正常終了：Done、命令ビジー：Busy、エラー：Error、および、エラーＩＤ：ErrorIDが設けられる。各出力変数の内容などは、図１７で示すとおりである。
【００９７】
また、ＦＴＰアカウント変更命令のラダー表示は、図１５で示した通りであるが、ＳＴ表示では、「ChangeFTPAccount_instance(Execute,UnitNo,NewUserName,NewPassword,Done,Busy,Error,ErrorID,);」と記載される。ここで、ChangeFTPAccount_instanceは、ChangeFTPAccount命令のインスタンスとして宣言されているものとする。
【００９８】
次に、ＦＴＰアカウント変更命令により実行される機能を説明する。ＦＴＰアカウント変更命令において、ExecuteがFALSEからTRUEに変化したとき、NewUserNameおよびNewPasswordの値が、処理ユニット１０の内蔵のネットワークコントローラ１４０、または、処理ユニット１０にシステムバス１１を介して接続された外部機器に、書込まれる。この書込みの実行中は、BusyがTRUEとなる。そして、書込みの完了時に、BusyがFalseとなり、DoneがTRUEとなる。ネットワークコントローラ１４０の場合、書込まれた設定は、書込みの完了後に反映される。
【００９９】
図１８は、本発明の実施の形態に係るＰＬＣのＦＴＰアカウント変更命令の各入力変数の設定可能範囲を示す図である。図１８を参照して、ログイン名、および、パスワードの設定可能範囲は、図で示すとおりである。これらの範囲を超える場合には、ErrorがTRUEとなる。
【０１００】
また、ユニット番号が設定範囲外である場合、ならびに、変更ができない状態である場合、ならびに、外部機器のリスタート処理が失敗した場合、ならびに、通信設定命令の同時実行数オーバーの場合も、ErrorがTRUEとなる。変更ができない状態とは、ネットワークコントローラ１４０がリスタート中である状態、ＣＩＰメッセージにより設定が変更中の状態、または、通信処理モジュール１７６からタグデータリンク設定をダウンロード中の状態である。
【０１０１】
（ｄ３：ＮＴＰサーバ宛先変更命令）
図１９は、本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令のラダー表示を示す図である。図２０は、本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令の入力変数を示す図である。図２１は、本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令の出力変数を示す図である。
【０１０２】
図１９から図２１を参照して、ＮＴＰサーバ宛先変更命令は、処理ユニット１０の内蔵のネットワークコントローラ１４０、または、処理ユニット１０にシステムバス１１を介して接続された外部機器の、ＮＴＰサーバの設定を変更する命令である。
【０１０３】
ＮＴＰサーバ宛先変更命令には、図１９および図２０で示すように、入力変数として、実行条件：Execute、ユニット番号：UnitNo、サーバ指定方法：AdrType、サーバＩＰアドレス：IPAdr、および、サーバホスト名：HostNameが設けられる。各入力変数の内容などは、図２０で示すとおりである。
【０１０４】
また、ＮＴＰサーバ宛先変更命令には、図１９および図２１で示すように、出力変数として、正常終了：Done、命令ビジー：Busy、エラー：Error、および、エラーＩＤ：ErrorIDが設けられる。各出力変数の内容などは、図２１で示すとおりである。
【０１０５】
また、ＮＴＰサーバ宛先変更命令のラダー表示は、図１９で示した通りであるが、ＳＴ表示では、「ChangeNTPServerAdr_instance(Execute,UnitNo,AdrType,IPAdr,HostName,Done,Busy,Error,ErrorID,);」と記載される。ここで、ChangeNTPServerAdr_instanceは、ChangeNTPServerAdr命令のインスタンスとして宣言されているものとする。
【０１０６】
次に、ＮＴＰサーバ宛先変更命令により実行される機能を説明する。ＮＴＰサーバ宛先変更命令において、ExecuteがFALSEからTRUEに変化したとき、IPAdrおよびHostNameの値が、処理ユニット１０の内蔵のネットワークコントローラ１４０、または、処理ユニット１０にシステムバス１１を介して接続された外部機器に、書込まれる。この書込みの実行中は、BusyがTRUEとなる。そして、書込みの完了時に、BusyがFalseとなり、DoneがTRUEとなる。ネットワークコントローラ１４０の場合、書込まれた設定は、書込みの完了後に反映される。
【０１０７】
図２２は、本発明の実施の形態に係るＰＬＣのＮＴＰサーバ宛先変更命令の各入力変数の設定可能範囲を示す図である。図２２を参照して、ＩＰアドレス、および、ホスト名の設定可能範囲は、図で示すとおりである。これらの範囲を超える場合には、ErrorがTRUEとなる。
【０１０８】
また、ユニット番号が設定範囲外である場合、ならびに、変更ができない状態である場合、ならびに、外部機器のリスタート処理が失敗した場合も、ErrorがTRUEとなる。変更ができない状態とは、ネットワークコントローラ１４０がリスタート中である状態、ＣＩＰメッセージにより設定が変更中の状態、通信設定命令実行中の状態、または、通信処理モジュール１７６からタグデータリンク設定をダウンロード中の状態である。
【０１０９】
図２３は、本発明の実施の形態に係るＰＬＣのＮＴＰに基づく時刻設定の動作タイミングチャートを示す図である。図２３を参照して、ＮＴＰに基づく時刻設定が１０分周期で実行されている場合、ＮＴＰサーバの設定が変更される前は、１０分おきに、処理ユニット１０は、設定変更前のＮＴＰサーバの宛先に時刻を問合せて時刻を設定する。
【０１１０】
ＮＴＰサーバ宛先変更命令が実行され、ＮＴＰサーバの設定が変更されると、その時点で、一度、タイマがクリアされ、設定変更の時点から、１０分おきに、処理ユニット１０は、設定変更後のＮＴＰサーバの宛先に時刻を問合せて時刻を設定する。
【０１１１】
＜Ｅ．特徴的な命令のソフトウェア構成＞
次に、前述した本発明の実施の形態における特徴的な命令である通信設定命令が実行されるときのソフトウェア構成について説明する。
【０１１２】
図２４は、本発明の実施の形態に係るＰＬＣの処理ユニット１０に実装される通信設定命令のソフトウェア構成を示す模式図である。図２４を参照して、この図は、図４で説明した処理ユニット１０に実行されるソフトウェア構成の一部を抜出した図である。ユーザ定義アプリケーション１７０に前述した通信設定命令のいずれかが含まれる場合、その通信設定命令は、命令実行モジュール１８０によって実行される。
【０１１３】
通信設定命令が実行される場合、通信処理モジュール１７６に含まれるＣＩＰプロトコル処理部１７６２、ＴＣＰ／ＩＰ処理部１７６４、ＦＴＰサーバ処理部１７６６、および、ＮＴＰクライアント処理部１７６８が用いられる。
【０１１４】
ＣＩＰプロトコル処理部１７６２は、ＣＩＰプロトコルに関する処理を実行する。ＴＣＰ／ＩＰ処理部１７６４は、ＣＩＰプロトコルのうちＴＣＰ／ＩＰに関する処理を実行する。ＦＴＰサーバ処理部１７６６は、ＣＩＰプロトコルのうちＦＴＰに関する処理を実行する。ＮＴＰクライアント処理部１７６８は、ＣＩＰプロトコルのうちＮＴＰに関する処理を実行する。
【０１１５】
（ｅ１：ＩＰアドレス変更命令）
命令実行モジュール１８０によって実行される通信設定命令が、ＩＰアドレス変更命令である場合、次のような流れで命令が実行される。
【０１１６】
（１）  命令実行モジュール１８０は、ＩＰアドレス変更命令の前述した入力変数をチェックする。そして、異常があれば、ErrorをTRUEにして、ErrorIDにエラーに応じた値を設定する。
【０１１７】
（２）  正常であれば、命令実行モジュール１８０は、入力変数を加工してＣＩＰプロトコル処理部１７６２に受け渡す。
【０１１８】
（３）  ＣＩＰプロトコル処理部１７６２は、受け取った入力変数を処理し、ＴＣＰ／ＩＰに関する処理をＴＣＰ／ＩＰ処理部１７６４に依頼する。
【０１１９】
（４）  ＴＣＰ／ＩＰ処理部１７６４は、依頼された処理を実行する。
（５）  ＴＣＰ／ＩＰ処理部１７６４は、処理結果をＣＩＰプロトコル処理部１７６２に返す。
【０１２０】
（６）  ＣＩＰプロトコル処理部１７６２は、返された処理結果をＩＰアドレス変更命令に応じた適当な形式に変更して、命令実行モジュール１８０に返す。
【０１２１】
具体的には、ＢＯＯＴＰ設定が「ＩＰアドレス固定設定」の場合、
（１）  命令実行モジュール１８０は、ＢＯＯＴＰ設定情報を入力変数から取得し、
（２）  命令実行モジュール１８０は、ＩＰアドレス、サブネットマスク、および、デフォルトゲートウェイを入力変数から取得し、
（３）  命令実行モジュール１８０は、取得したＢＯＯＴＰ設定情報、ＩＰアドレス、サブネットマスク、および、デフォルトゲートウェイを、ＣＩＰプロトコル処理部１７６２が処理可能な形式に変更処理して、ＣＩＰプロトコル処理部１７６２に受け渡し、
（４）  ＣＩＰプロトコル処理部１７６２は、受け取ったＢＯＯＴＰ設定情報、ＩＰアドレス、サブネットマスク、および、デフォルトゲートウェイを書込むようＴＣＰ／ＩＰ処理部１７６４に依頼し、
（５）  ＴＣＰ／ＩＰ処理部１７６４は、依頼に基づき、ＢＯＯＴＰ設定情報、ＩＰアドレス、サブネットマスク、および、デフォルトゲートウェイを、ネットワークコントローラ１４０に書込み、反映させる。
【０１２２】
また、ＢＯＯＴＰ設定が「ＢＯＯＴＰ設定」または「１ｓｈｏｔＢＯＯＴＰ設定」の場合、
（１）  命令実行モジュール１８０は、ＢＯＯＴＰ設定情報を入力変数から取得し、
（２）  命令実行モジュール１８０は、取得したＢＯＯＴＰ設定情報を、ＣＩＰプロトコル処理部１７６２が処理可能な形式に変更処理して、ＣＩＰプロトコル処理部１７６２に受け渡し、
（３）  ＣＩＰプロトコル処理部１７６２は、受け取ったＢＯＯＴＰ設定情報を書込むようＴＣＰ／ＩＰ処理部１７６４に依頼し、
（４）  ＴＣＰ／ＩＰ処理部１７６４は、依頼に基づき、ＢＯＯＴＰ設定情報を、ネットワークコントローラ１４０に書込み、反映させる。
【０１２３】
（ｅ２：ＦＴＰアカウント変更命令）
命令実行モジュール１８０によって実行される通信設定命令が、ＦＴＰアカウント変更命令である場合、次のような流れで命令が実行される。
【０１２４】
（１）  命令実行モジュール１８０は、ＦＴＰアカウント変更命令の前述した入力変数をチェックする。そして、異常があれば、ErrorをTRUEにして、ErrorIDにエラーに応じた値を設定する。
【０１２５】
（２）  正常であれば、命令実行モジュール１８０は、入力変数を加工してＣＩＰプロトコル処理部１７６２に受け渡す。
【０１２６】
（３）  ＣＩＰプロトコル処理部１７６２は、受け取った入力変数を処理し、ＦＴＰに関する処理をＦＴＰサーバ処理部１７６６に依頼する。
【０１２７】
（４）  ＦＴＰサーバ処理部１７６６は、依頼された処理を実行する。
（５）  ＦＴＰサーバ処理部１７６６は、処理結果をＣＩＰプロトコル処理部１７６２に返す。
【０１２８】
（６）  ＣＩＰプロトコル処理部１７６２は、返された処理結果をＦＴＰアカウント変更命令に応じた適当な形式に変更して、命令実行モジュール１８０に返す。
【０１２９】
具体的には、
（１）  命令実行モジュール１８０は、ＦＴＰアカウントおよびパスワードを入力変数から取得し、
（２）  命令実行モジュール１８０は、取得したＦＴＰアカウントおよびパスワードを、ＣＩＰプロトコル処理部１７６２が処理可能な形式に変更処理して、ＣＩＰプロトコル処理部１７６２に受け渡し、
（３）  ＣＩＰプロトコル処理部１７６２は、受け取ったＦＴＰアカウントおよびパスワードを書込むようＦＴＰサーバ処理部１７６６に依頼し、
（４）  ＦＴＰサーバ処理部１７６６は、依頼に基づき、ＦＴＰアカウントおよびパスワードを、ネットワークコントローラ１４０に書込み、反映させる。
【０１３０】
（ｅ３：ＮＴＰサーバ宛先変更命令）
命令実行モジュール１８０によって実行される通信設定命令が、ＮＴＰサーバ宛先変更命令である場合、次のような流れで命令が実行される。
【０１３１】
（１）  命令実行モジュール１８０は、ＮＴＰサーバ宛先変更命令の前述した入力変数をチェックする。そして、異常があれば、ErrorをTRUEにして、ErrorIDにエラーに応じた値を設定する。
【０１３２】
（２）  正常であれば、命令実行モジュール１８０は、入力変数を加工してＣＩＰプロトコル処理部１７６２に受け渡す。
【０１３３】
（３）  ＣＩＰプロトコル処理部１７６２は、受け取った入力変数を処理し、ＮＴＰに関する処理をＮＴＰクライアント処理部１７６８に依頼する。
【０１３４】
（４）  ＮＴＰクライアント処理部１７６８は、依頼された処理を実行する。
（５）  ＮＴＰクライアント処理部１７６８は、処理結果をＣＩＰプロトコル処理部１７６２に返す。
【０１３５】
（６）  ＣＩＰプロトコル処理部１７６２は、返された処理結果をＮＴＰサーバ宛先変更命令に応じた適当な形式に変更して、命令実行モジュール１８０に返す。
【０１３６】
具体的には、サーバ指定方法が「ＩＰアドレス指定」の場合、
（１）  命令実行モジュール１８０は、サーバ指定方法を入力変数から取得し、
（２）  サーバ指定方法がＩＰアドレス指定の場合、命令実行モジュール１８０は、サーバＩＰアドレスを入力変数から取得し、
（３）  命令実行モジュール１８０は、取得したサーバＩＰアドレスを、ＣＩＰプロトコル処理部１７６２が処理可能な形式に変更処理して、ＣＩＰプロトコル処理部１７６２に受け渡し、
（４）  ＣＩＰプロトコル処理部１７６２は、受け渡されたサーバＩＰアドレスを書込むようＮＴＰクライアント処理部１７６８に依頼し、
（５）  ＮＴＰクライアント処理部１７６８は、依頼に基づき、サーバＩＰアドレスを、ネットワークコントローラ１４０に書込み、反映させる。
【０１３７】
また、サーバ指定方法が「ホスト名指定」の場合、
（１）  命令実行モジュール１８０は、サーバ指定方法を入力変数から取得し、
（２）  サーバ指定方法がホスト名指定の場合、命令実行モジュール１８０は、サーバホスト名を入力変数から取得し、
（３）  命令実行モジュール１８０は、取得したサーバホスト名を、ＣＩＰプロトコル処理部１７６２が処理可能な形式に変更処理して、ＣＩＰプロトコル処理部１７６２に受け渡し、
（４）  ＣＩＰプロトコル処理部１７６２は、受け渡されたサーバホスト名を書込むようＮＴＰクライアント処理部１７６８に依頼し、
（５）  ＮＴＰクライアント処理部１７６８は、依頼に基づき、サーバホスト名を、ネットワークコントローラ１４０に書込み、反映させる。
【０１３８】
＜Ｆ．従来と本発明とのＰＬＣ導入時の差異＞
次に、本実施の形態の特徴的な通信設定命令を用いない従来の場合と、用いる本発明の場合との比較について説明する。
【０１３９】
（ｆ１：ユーザ定義アプリケーションがＣＩＰ命令を含む場合）
図２５は、ユーザ定義アプリケーションがＣＩＰ命令を含む場合の従来と本発明とのＰＬＣ導入時の差異を説明するための図である。図２５を参照して、従来は、ユーザ定義アプリケーションの開発および導入の過程において、ＣＩＰ命令の知識がない場合は、まず、ＣＩＰ命令の知識を習得する必要があった。そして、プログラムの作成においても、様々なＣＩＰ命令を組合せた通信を設定するための複雑なプログラムを作成し、バグが無くなるまでデバッグをする必要があった。そして、完成したプログラムを、機械設備に導入するＰＬＣにダウンロードするようにしていた。
【０１４０】
しかし、本発明のように、１命令で通信ネットワークでの通信の所定の設定を変更する上述した３つの通信設定命令を用いるようにすると、ＣＩＰ命令の知識に関わらず、プログラムの作成においては、通信の所定の設定のために様々なＣＩＰ命令を組合せた複雑なプログラムではなく、通信設定命令を用いた簡単なプログラムを作成し、バグが無くなるまでデバッグをして、完成したプログラムを、機械設備に導入するＰＬＣにダウンロードする。
【０１４１】
このように、本発明によれば、通信設定を含むユーザ定義アプリケーションを簡単に開発することができる。
【０１４２】
（ｆ２：ユーザ定義アプリケーションがＣＩＰ命令を含まない場合）
図２６は、ユーザ定義アプリケーションがＣＩＰ命令を含まない場合の従来と本発明とのＰＬＣ導入時の差異を説明するための図である。図２６を参照して、ユーザ定義アプリケーションがＣＩＰ命令を含まない場合は、ＰＬＣの通信の設定をするために、従来は、専用ツールを用いて設定するようにしていた。
【０１４３】
図２７は、従来のＰＬＣの通信の設定をするための専用ツールの設定画面を示す第１の図である。図２８は、従来のＰＬＣの通信の設定をするための専用ツールの設定画面を示す第２の図である。図２９は、従来のＰＬＣの通信の設定をするための専用ツールの設定画面を示す第３の図である。
【０１４４】
図２７を参照して、この設定画面は、従来のＴＣＰ／ＩＰの設定をするための画面である。図２８を参照して、この設定画面は、従来のＦＴＰの設定をするための画面である。図２９を参照して、この設定画面は、従来のＮＴＰの設定をするための画面である。
【０１４５】
このように、従来は、このような専用ツールをわざわざ起動させ、それぞれの設定画面を開き、すべての設定値を手入力で入力する必要があった。
【０１４６】
しかし、本発明のように、１命令で通信ネットワークでの通信の所定の設定を変更する上述した３つの通信設定命令を用いるようにすると、ＰＬＣのベンダ側で、通信の設定のための簡単なユーザ定義アプリケーションのプログラムを作成し、バグが無くなるまでデバッグして、完成したプログラムを、機械設備に導入するＰＬＣにダウンロードしておく。そして、ＰＬＣのユーザ側で、そのプログラムを実行するだけで、通信の設定の変更を完了させることができる。
【０１４７】
このように、本発明によれば、専用ツールを用いなくても、ユーザが簡単に通信設定を行うようにすることができる。
【０１４８】
＜Ｇ．まとめ＞
以上説明したように、本発明の実施の形態におけるＰＬＣの処理ユニット１０によれば、以下のような効果が発揮される。
【０１４９】
（１）  処理ユニット１０は、通信ネットワークに接続可能で制御対象のシーケンス制御を実行する装置である。処理ユニット１０は、処理ユニット１０の命令セットに含まれる複数の命令が所定の実行順に並べられたユーザ定義アプリケーションを示す情報を記憶する不揮発性メモリ１０６と、不揮発性メモリ１０６に記憶された情報で示されるプログラムに含まれるそれぞれの命令にしたがった処理を、実行順に実行するプロセッサ１００とを備える。命令セットは、通信ネットワークでの通信の所定の設定を１命令で変更するための通信設定命令を含む。
【０１５０】
これによれば、通信ネットワークでの通信の所定の設定を１命令で変更するための通信設定命令をユーザ定義アプリケーションに組込むことができる。このため、通信の所定の設定を行う処理を含むユーザ定義アプリケーションを簡単に作成することができる。また、通信の所定の設定のための専用ツールを用いなくても、通信の所定の設定を簡単に行うことができる。その結果、通信ネットワークでの通信の所定の設定を簡単に行うことができる。
【０１５１】
（２）  通信設定命令には、通信設定命令にしたがってプロセッサ１００で実行される通信設定処理内容が予め対応付けられる。プロセッサ１００は、ユーザ定義アプリケーションに含まれる命令が通信設定命令である場合、通信設定命令に対応する通信設定処理内容の処理を実行する。
【０１５２】
これによれば、通信設定命令をユーザ定義アプリケーションに組込んでおくことで、通信設定命令に応じて通信設定処理内容の処理が実行されるようにすることができる。
【０１５３】
（３）  所定の設定は、ＩＰアドレスの変更設定、ＦＴＰアカウントの変更設定、または、ＮＴＰサーバのアドレスの変更設定である。
【０１５４】
＜Ｈ．変形例＞
次に、上述した発明の実施の形態の変形例を説明する。
【０１５５】
（１）  前述した実施の形態においては、１命令で通信ネットワークでの通信の所定の設定を変更可能なものとしたが、１命令に限定されず、比較的少ない命令数であれば同様の効果を得られる。
【０１５６】
（２）  前述した実施の形態においては、サポート装置２００でコンパイルされた実行形式のプログラムであるユーザ定義アプリケーションが、処理ユニット１０に記憶されるようにした。しかし、これに限定されず、ユーザ定義アプリケーションのソースプログラムが処理ユニット１０に記憶されるようにし、ソースプログラムに基づいてインタプリタ方式で処理が実行されるようにしてもよい。
【０１５７】
（３）  前述した実施の形態においては、ＰＬＣがユニットごとに分かれた構成であることとした。しかし、これに限定されず、各ユニットの機能が１つの筺体に納められたものであってもよい。
【０１５８】
（４）  前述した実施の形態においては、通信設定命令は、上述したＩＰアドレス変更命令、ＦＴＰアカウント変更命令、および、ＮＴＰサーバ宛先変更命令の３つであることとした。しかし、これに限定されず、通信ネットワークでの通信の所定の設定を１命令で変更するための命令であれば、他の命令であってもよい。
【０１５９】
（５）  前述した実施の形態においては、ＰＬＣの処理ユニット１０のような制御装置の発明として説明した。しかし、これに限定されず、制御装置の制御方法または制御プログラムとして発明を捉えることができる。また、制御装置の命令セットとして発明を捉えることができる。
【０１６０】
（６）  今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６１】
５  表示器、６  検出センサー、７  リレー、１０  処理ユニット、１１  システムバス、１２  電源ユニット、１３  接続ケーブル、１４  ユニット、１００  プロセッサ、１０２  チップセット、１０４  メインメモリ、１０６  不揮発性メモリ、１０８  システムタイマ、１１０  ＵＳＢコネクタ、１２０  システムバスコントローラ、１２２，１４２  ＤＭＡ制御回路、１２４  システムバス制御回路、１２６，１４６  バッファメモリ、１３０  システムバスコネクタ、１４０  ネットワークコントローラ、１４４  ネットワーク制御回路、１６０  スケジューラ、１７０  ユーザ定義アプリケーション、１７２  入力処理モジュール、１７４  出力処理モジュール、１７６  通信処理モジュール、１７８  システムモジュール、１８０  命令実行モジュール、１８４  メモリマネジャー、１８６  データ構造変換モジュール、１９０  リアルタイムＯＳ、２００  サポート装置、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ハードディスク（ＨＤＤ）、２０５  キーボード、２０６  マウス、２０７  モニタ、２０８  ＣＤ−ＲＯＭドライブ、２４０  ＯＳ、２５０  プログラミングアプリケーション、２５２，２８２  エディタ、２５４  コンパイラ、２５６  デバッガ、２５８  ＧＵＩモジュール、２６０  シミュレータ、２７０，２９０  データ格納部、２７４  ソースプログラム、２８０  ネットワーク設定アプリケーション、２８４  コンフィグレータ、２８６  関連付けモジュール、２９６  コネクション設定、３００  ＣＤ−ＲＯＭ、１７６２  プロトコル処理部、１７６４  ＴＣＰ／ＩＰ処理部、１７６６  ＦＴＰサーバ処理部、１７６８  ＮＴＰクライアント処理部、ＮＷ  ネットワーク、ＳＹＳ  システム。
【図１】
0006362821.tif 000002
【図２】
0006362821.tif 000003
【図３】
0006362821.tif 000004
【図４】
0006362821.tif 000005
【図５】
0006362821.tif 000006
【図６】
0006362821.tif 000007
【図７】
0006362821.tif 000008
【図８】
0006362821.tif 000009
【図９】
0006362821.tif 000010
【図１０】
0006362821.tif 000011
【図１１】
0006362821.tif 000012
【図１２】
0006362821.tif 000013
【図１３】
0006362821.tif 000014
【図１４】
0006362821.tif 000015
【図１５】
0006362821.tif 000016
【図１６】
0006362821.tif 000017
【図１７】
0006362821.tif 000018
【図１８】
0006362821.tif 000019
【図１９】
0006362821.tif 000020
【図２０】
0006362821.tif 000021
【図２１】
0006362821.tif 000022
【図２２】
0006362821.tif 000023
【図２３】
0006362821.tif 000024
【図２４】
0006362821.tif 000025
【図２５】
0006362821.tif 000026
【図２６】
0006362821.tif 000027
【図２７】
0006362821.tif 000028
【図２８】
0006362821.tif 000029
【図２９】
0006362821.tif 000030