JP2018139162A - 制御装置および通信制御方法 - Google Patents

制御装置および通信制御方法 Download PDF

Info

Publication number
JP2018139162A
JP2018139162A JP2018115872A JP2018115872A JP2018139162A JP 2018139162 A JP2018139162 A JP 2018139162A JP 2018115872 A JP2018115872 A JP 2018115872A JP 2018115872 A JP2018115872 A JP 2018115872A JP 2018139162 A JP2018139162 A JP 2018139162A
Authority
JP
Japan
Prior art keywords
variable
data
control
value
control program
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.)
Granted
Application number
JP2018115872A
Other languages
English (en)
Other versions
JP6680313B2 (ja
Inventor
安宏 北村
Yasuhiro Kitamura
安宏 北村
良峰 武内
Yoshimine Takeuchi
良峰 武内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018115872A priority Critical patent/JP6680313B2/ja
Publication of JP2018139162A publication Critical patent/JP2018139162A/ja
Application granted granted Critical
Publication of JP6680313B2 publication Critical patent/JP6680313B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】制御プログラムの実行中であっても、FTP等の通信プロトコルを利用する際に用いる設定情報の値を変更することが可能なPLCを提供する。【解決手段】PLC100は、制御プログラム181を実行する制御プログラム実行部1040と、フィールド機器からデータを取得する取得部1050と、FTPを用いてサーバ装置400と通信する通信部1070と、FTPを利用する際に用いる変数と当該変数の値とを対応づけて記憶するための変数記憶部1030とを備える。制御プログラム181は、上記変数を入力変数としてデータをサーバ装置400に送信する命令を含む。PLC100は、制御プログラム181の実行にあたり、上記命令が起動されると変数の値に基づいて、データをサーバ装置400に送信する。【選択図】図10

Description

本発明は、ユーザプログラムを周期的に実行するコントローラを含む制御システムに関し、特に、サーバ装置と通信可能に接続する制御システムに関する。
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ(Programmable Logic Controller;以下「PLC」とも称す)などの制御装置を主たる
構成とした制御システムによって制御される。このような制御システムでは、システム構成時や運転時に発生した不具合を事後的に検証できる。
このような制御装置に関する先行技術文献としての特許文献1(特開2011−39643号公報)に記載のPLCは、CPUユニットと、CPUユニットと接続された一又は複数の拡張ユニットとで構成され、ファイル転送時にFTP(File Transfer Protocol:ファイル転送プロトコル)クライアントとして機能する。PLCは、FTPクライアントとして機能させる設定データの入力を受け付け、入力を受け付けた設定データを記憶する。PLCは、FTPクライアントに所定の機能を割り当てるか否かに関するフラグ情報を含む機能割当て情報を記憶しておき、所定の機能ごとにフラグ情報を書き込む。PLCは、フラグ情報の書き込みを検知した場合、記憶してある設定データに基づいてファイル転送を実行する。
特開2011−39643号公報
生産設備の制御に用いられるPLCにおいて、FTPクライアント機能は、生産設備のデータをサーバ装置(FTPサーバ)に送信するシーンで用いられる。このような場合、ユーザが、FTPを利用する際に用いる設定情報の値を変更することが行なわれる。たとえば、ユーザは、ファイル転送の対象とする各種の変数(ディレクトリ名、ファイル名等)、転送先を指定するための各種の変数(FTPサーバのIPアドレス、FTPサーバのディレクトリ名、ユーザID、パスワード)等を変更することが行なわれる。
上記の特許文献1では、これらの変更対象の設定情報を予め記憶しておき、設定情報の変更においては、専用のパーソナルコンピュータを接続して設定を変更する必要がある。また、専用のツールを用いて変更をする場合には、システムもしくはユニットのリセットや初期化が必要であり、制御プログラムの動作中に変更することができなかった。また設定を行うためには専用ツールが必要であり、専用ツールが無い場合、専用ツールで設定を行うスキルが無い場合もあり、ユーザに不便を強いていた。
本願発明は、上記の問題点に鑑みなされたものであって、その目的は、制御プログラムの実行中であっても、FTP等の通信プロトコルを利用する際に用いる設定情報の値を変更することが可能な制御装置、および制御装置における通信制御方法を提供することにある。
本発明のある局面に従うと、制御装置は、サーバ装置と通信するとともに、制御プログ
ラムを実行することによって予め定められた機器を制御する。制御装置は、制御プログラムを実行する実行手段と、予め定められた機器から制御に基づくデータを取得する取得手段と、予め定められた通信プロトコルを用いてサーバ装置と通信する第1の通信手段と、通信プロトコルを利用する際に用いる変数と、変数の値とを対応づけて記憶するための記憶手段とを備える。制御プログラムは、変数を入力変数としてデータをサーバ装置に送信する命令を含む。制御プログラムの実行にあたり、命令が起動されると変数の値に基づいてデータをサーバ装置に送信する。
好ましくは、制御装置は、プログラマブル表示器と通信する第2の通信手段と、プログラマブル表示器からの指令に基づき、変数の値を設定する設定手段とをさらに備える。
好ましくは、設定手段は、制御プログラムの実行中であっても変数の値を設定する。
好ましくは、制御プログラムは、変数の値を設定するための記述を含む。
好ましくは、変数は、データの名称を含む。第1の通信手段は、入力に対する制御プログラムの実行結果に基づいて、変数で指定されたデータの名称を有するデータをサーバ装置に送信する。
好ましくは、制御装置は、取得されたデータを予め定められた規則によって複数の互いに名称の異なるデータ群に分類することにより、データを管理する管理手段をさらに備える。管理手段は、データ群をファイルとして管理する。通信プロトコルは、ファイル転送プロトコルである。
本発明の他の局面に従うと、通信制御方法は、サーバ装置と通信するとともに、制御プログラムを実行することによって予め定められた機器を制御する制御装置において実行される。通信制御方法は、制御装置のプロセッサが、制御プログラムを実行するステップと、プロセッサが、予め定められた機器から制御に基づくデータを取得するステップと、プロセッサが、予め定められた通信プロトコルを用いてサーバ装置と通信するステップとを備える。制御装置は、通信プロトコルを利用する際に用いる変数と、変数の値とを対応づけて記憶している。制御プログラムは、変数を入力変数としてデータをサーバ装置に送信する命令を含む。通信制御方法は、制御プログラムの実行にあたり、命令が起動されると変数の値に基づいてデータをサーバ装置に送信するステップをさらに備える。
本発明によれば、制御プログラムの実行中であっても、FTP等の通信プロトコルを利用する際に用いる設定情報の値をユーザが作成するユーザプログラム作成後であっても変更することが可能となる。またユーザは設定情報を追って変更できるようなプログラムの作成が可能となる。
本実施の形態に係る制御システム1のシステム構成を示す模式図である。 本実施の形態に係るPLC100の主要部を示すハードウェア構成を示す模式図である。 本実施の形態に係るPLC100が提供する各種機能を実現するためのソフトウェア構成を示す模式図である。 プログラマブル表示器300のハードウェア構成の一例を説明するための図である。 サーバ装置400のハードウェア構成を示す模式図である。 FTPクライアント通信命令の種類を説明するための図である。 ユーザプログラム186の一例を表した図である。 FTPGetFileList命令の入力変数および出力変数を説明するための図である。 FTPPutFile命令の入力変数および出力変数を説明するための図である。 PLC100の機能的構成を説明するための図である。 FTPPutFile命令における複数の入力変数のうちの一部の入力変数の値を表した図である。 FTPクライアント通信命令を実行するときに行なわれる処理流れの概略を表したフローチャートである。 PLC100がFTPGetFilelist命令とFTPPutFile命令とをこの順に実行する際の処理の流れを表した図である。 図13のステップS112における処理の詳細を表したフローチャートである。 プログラマブル表示器300のタッチスクリーン318に表示される操作画面(UI:UserInterface)を表した図である。 ファイル名が重複するためにファイルの転送を意図的に行なわなかったファイルについて、再度、ファイルの転送が可能であるか否かを判断する処理を説明するための図である。 ユーザプログラム186から各入力変数の値を書き換える構成を有するユーザプログラム186を表した図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.システム構成>
まず、本実施の形態に係る制御システムのシステム構成について説明する。本実施の形態においては、機械や設備などの制御対象を制御するプログラマブルコントローラ(PLC)を制御装置の典型例として説明を行う。但し、本発明に係る制御装置は、PLCに限られることなく、各種の制御装置へ適用可能である。
図1は、本実施の形態に係る制御システム1のシステム構成を示す模式図である。図1を参照して、制御システム1は、PLC100と、PLC100と通信可能に接続されたプログラマブル表示器(HMI:Human Machine Interface)300と、PLC100と
通信可能に接続されたサーバ装置400とを含む。サーバ装置400は、たとえば、イントラネットを構成する機器である。
詳細については後述するが、PLC100は、FTP(ファイル転送プロトコル)に基づく通信によってサーバ装置400と通信する。すなわち、PLC100は、FTPクライアント機能を有しており、FTPクライアントとして機能する。また、サーバ装置400は、FTPサーバ機能を有しており、FTPサーバとして機能する。
PLC100は、後述するようなユーザプログラムを周期的またはイベント的に実行する。ユーザプログラムは、PLC100の利用者によって作成される。ユーザは、例えばサポート装置(図示せず)を操作することにより、アクセス命令を含むプログラム(ソースプログラム)を作成することができる。なお、サポート装置は、ソースプログラムを、PLC100において実行可能な形式に変換し、変換されたユーザプログラムをPLC100へ送信する。サポート装置は、PLC100との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。PLC100とサポート装置との間は、典型的には、USB(Universal Serial Bus)規格に従って通信可能に構成される。
PLC100は、ユーザプログラムを実行し、ユーザプログラムに含まれる命令に従っ
て、サーバ装置400と通信する。すなわち、PLC100およびサーバ装置400は、イーサネット(登録商標)などのネットワーク112を介して、データを互いに遣り取りできるように構成される。当該処理の詳細については後述する。
PLC100は、制御演算を実行するCPUユニット104と、1つ以上のIO(Input/Output)ユニット106とを含む。これらのユニットは、PLCシステムバス108を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット102によって適切な電圧の電源が供給される。
制御システム1において、PLC100は、(PLCシステムバス108を介して接続される)IOユニット106を介して、および/または、フィールドバス110を介して、各種のフィールド機器との間でデータを遣り取りする。これらのフィールド機器は、制御対象に対して何らかの処理を行うためのアクチュエータや、制御対象から各種情報を取得するためのセンサなどを含む。図1には、このようなフィールド機器の一例として、検出スイッチ10、リレー20およびモータ32を駆動するサーボモータドライバ30を含む。また、PLC100は、フィールドバス110を介してリモートIOターミナル200も接続されている。リモートIOターミナル200は、基本的には、IOユニット106と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートIOターミナル200は、フィールドバス110でのデータ伝送に係る処理を行うための通信カプラ202と、1つ以上のIOユニット204とを含む。これらのユニットは、リモートIOターミナルバス208を介して、データを互いに遣り取りできるように構成される。
プログラマブル表示器300は、接続ケーブル114によってPLC100と通信可能に接続されている。プログラマブル表示器300は、PLC100から取得した各種の情報を画面に表示する。また、詳細については後述するが、ユーザは、プログラマブル表示器300を操作することにより、PLC100に格納されている入力変数の値を変更することができる。
<B.PLC100の構成>
(b1.ハードウェア構成)
図2は、本実施の形態に係るPLC100の主要部を示すハードウェア構成を示す模式図である。図2を参照して、PLC100のCPUユニット104のハードウェア構成について説明する。CPUユニット104は、プロセッサ120と、チップセット122と、システムクロック124と、主メモリ126と、不揮発性メモリ128と、Ethernetコネクタ130と、PLCシステムバスコントローラ140と、フィールドバスコントローラ150と、上位通信コントローラ160と、メモリカードインターフェイス170と、USBコネクタ(図示せず)とを含む。チップセット122と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
プロセッサ120およびチップセット122は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ120は、チップセット122から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット122は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ120に必要な命令コードを生成する。システムクロック124は、予め定められた周期のシステムクロックを発生してプロセッサ120に提供する。チップセット122は、プロセッサ120での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
CPUユニット104は、記憶手段として、主メモリ126および不揮発性メモリ128を有する。主メモリ126は、揮発性の記憶領域であり、プロセッサ120で実行され
るべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ128は、OS(Operating System)、システムプログラム、ユーザプログラム、ログ情報などを不揮発的に保持する。
Ethernetコネクタ130は、プログラマブル表示器300とCPUユニット104とを接続するためのインターフェイスである。なお、USBコネクタ(図示せず)は、サポート装置とCPUユニット104とを接続するためのインターフェイスである。典型的には、サポート装置から転送される実行可能なプログラムなどは、USBコネクタを介してCPUユニット104に取込まれる。
CPUユニット104は、通信手段として、PLCシステムバスコントローラ140、フィールドバスコントローラ150、および上位通信コントローラ160を有する。これらの通信回路は、データの送信および受信を行う。
PLCシステムバスコントローラ140は、PLCシステムバス108を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ140は、バッファメモリ142と、PLCシステムバス制御回路144と、DMA(Dynamic Memory
Access)制御回路146とを含む。PLCシステムバスコントローラ140は、PLC
システムバスコネクタ148を介してPLCシステムバス108と接続される。
フィールドバスコントローラ150は、バッファメモリ152と、フィールドバス制御回路154と、DMA制御回路156とを含む。フィールドバスコントローラ150は、フィールドバスコネクタ158を介してフィールドバス110と接続される。上位通信コントローラ160は、バッファメモリ162と、上位通信制御回路164と、DMA制御回路166とを含む。上位通信コントローラ160は、上位通信コネクタ168を介してネットワーク112と接続される。
メモリカードインターフェイス170は、CPUユニット104に対して着脱可能なメモリカード172とプロセッサ120とを接続する。
(b2.ソフトウェア構成)
図3は、本実施の形態に係るPLC100が提供する各種機能を実現するためのソフトウェア構成を示す模式図である。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット104のプロセッサ120によって実行される。
図3を参照して、CPUユニット104で実行されるソフトウェアとしては、OS180と、システムプログラム188と、ユーザプログラム186とがある。
OS180は、プロセッサ120がシステムプログラム188およびユーザプログラム186を実行するための基本的な実行環境を提供する。
システムプログラム188は、PLC100としての基本的な機能を提供するためのソフトウェア群である。具体的には、システムプログラム188は、シーケンス命令プログラム190と、FTP処理プログラム192と、入出力処理プログラム194と、Toolインターフェイス処理プログラム196と、スケジューラ198とを含む。
これに対して、ユーザプログラム186は、制御対象に対する制御目的に応じて任意に作成されたプログラムである。すなわち、ユーザプログラム186は、制御システム1を用いて制御する対象に応じて、任意に設計される。
ユーザプログラム186は、シーケンス命令プログラム190と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム186は、シーケンス命令プログラム190によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム186およびシーケンス命令プログラム190を「制御プログラム181」と総称する場合もある。
稼働ログ184には、システムプログラム188およびユーザプログラム186の実行に伴って、予め定められた事象が発生した際に、当該発生した事象の情報が時刻情報と関連付けて格納される。すなわち、稼働ログ184には、システムプログラム188および/またはユーザプログラム186の実行に伴う各種情報がログ(履歴情報)として格納される。
以下、各プログラムについてより詳細に説明する。
シーケンス命令プログラム190は、ユーザプログラム186の実行に伴って、ユーザプログラム186内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
入出力処理プログラム194は、IOユニット106や各種のフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
Toolインターフェイス処理プログラム196は、サポート装置との間でデータを遣り取りするためのインターフェイスを提供する。
スケジューラ198は、予め定められた優先度やシステムタイマの値などに従って、制御プログラムを実行するためのスレッドやプロシージャを生成する。
ユーザプログラム186は、上述したように、ユーザにおける制御目的に応じて作成される。ユーザプログラム186は、典型的には、CPUユニット104のプロセッサ120で実行可能なオブジェクトプログラム形式になっている。ユーザプログラム186は、サポート装置などにおいて、ラダー形式やファンクションブロック形式で記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラムは、サポート装置からCPUユニット104へ転送され、不揮発性メモリ128などに格納される。
FTP処理プログラム192は、ユーザプログラム186の実行に伴って、サーバ装置400と通信するために必要な処理を実現するための命令コード群を含む。FTP処理プログラム192は、ユーザプログラム186において指定可能な命令に対応する実行コードを含む。
<C.プログラマブル表示器300のハードウェア構成>
図4は、プログラマブル表示器300のハードウェア構成の一例を説明するための図である。図4を参照して、プログラマブル表示器300は、各種の演算を行なうCPU(Central Processing Unit)311と、ROM(Read Only Memory)312と、RAM(Random Access Memory)313と、各種のプログラムを不揮発的に格納するフラッシュRO
M314と、時計315と、操作キー316と、カメラ317と、タッチスクリーン318と、通信インターフェイス319とを備える。なお、これらの部位は、内部バスを介して互いに接続される。
タッチスクリーン318は、ディスプレイ381と、ディスプレイ381を覆うように
設置されたタッチパネル382とを有する。通信インターフェイス319は、Ethernet(登録商標)用IF(InterFace)391と、シリアル用IF392と、USB(Universal Serial Bus)用IF393とを有する。
CPU311は、フラッシュROM314に格納されているプログラムをRAM313などに展開して実行する。ROM312は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。RAM313は、揮発性メモリであり、ワークメモリとして使用される。
Ethernet用IF391は、Ethernetの通信プロトコルをサポートし、PLC100との間でデータ通信する。シリアル用IF392は、シリアル通信のプロトコルをサポートし、たとえばPC(Personal Computer)との間でデータ通信する。US
B用IF393は、USBの通信プロトコルをサポートし、たとえばUSBメモリとの間でデータ通信する。
なお、図4に示されるプログラマブル表示器300を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、フラッシュROM314等のメモリに格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、プログラマブル表示器300の各ハードウェアの動作は周知であるために、詳細な説明は繰り返さない。
<D.サーバ装置400のハードウェア構成>
図5は、サーバ装置400のハードウェア構成を示す模式図である。サーバ装置400は、典型的には、汎用のコンピュータで構成される。
図5を参照して、サーバ装置400は、OSを含む各種プログラムを実行するCPU402と、BIOSや各種データを格納するROM(Read Only Memory)404と、CPU402でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM406と、CPU402で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)408とを含む。
サーバ装置400は、さらに、ユーザからの操作を受け付けるキーボード410およびマウス412と、情報をユーザに提示するためのモニタ414とを含む。さらに、サーバ装置400は、PLC100(CPUユニット104)などと通信するための通信インターフェイス(IF)418を含む。サーバ装置400は、通信IF418によってPLC100と通信可能に接続される。
<E.制御システム1における処理の概要>
PLC100は、上述したようにFTPクライアント機能を有しており、FTPクライアント通信命令を用いることにより、FTPクライアントとなるPLC100から、イントラネット内のFTPサーバとなるサーバ装置400へ、メモリカード172内のファイルの転送(アップロード)をすることができる。また、サーバ装置400からPLC100へのファイルの転送(ダウンロード)も可能である。
図6は、FTPクライアント通信命令の種類を説明するための図である。図6を参照して、PLC100は、FTPクライアント機能として、FTPサーバのファイル一覧の取得機能と、FTPサーバへのファイルアップロード機能と、FTPサーバからのファイルダウンロード機能と、FTPサーバのファイルの削除機能と、FTPサーバのディレクトリの削除機能とを有する。
FTPサーバのファイル一覧の取得機能、FTPサーバへのファイルアップロード機能、FTPサーバからのファイルダウンロード機能、FTPサーバのファイルの削除機能、およびFTPサーバのディレクトリの削除機能を各々を実現するための命令(FTPクライアント通信命令)の名称を、それぞれ、「FTPGetFileList命令」、「FTPGetFile命令」、「FTPPutFile命令」、「FTPRemoveFile命令」、「FTPRemoveDir命令」と称する。
FTPGetFileList命令、FTPGetFile命令、FTPPutFile命令、FTPRemoveFile命令、およびFTPRemoveDir命令の各々は、ファンクションブロックとして提供される。ユーザは、ユー
ザプログラム186に各々の命令を含めることができる。PLC100は、当該ユーザプログラム186を実行することにより、FTPクライアント機能を実現する。
図7は、ユーザプログラム186の一例を表した図である。図7を参照して、ユーザプログラム186は、FTPGetFileList命令のファンクションブロックと、FTPPutFile命令のファンクションブロックとを含んでいる。
同図に示したユーザプログラム186では、17時30分になり、かつ“Busy”でないことを条件に、FTPGetFileList命令が実行される。すなわち、PLC100は、サーバ装置400からファイル一覧を取得する処理を実行する。さらに、FTPGetFileList命令の実行が完了すると、FTPPutFile命令が実行される。すなわち、PLC100は、サーバ装置400にファイルを転送する処理を実行する。
図8は、FTPGetFileList命令の入力変数および出力変数を説明するための図である。具体的には、図8(A)は、FTPGetFileList命令の複数の入力変数のうちの一部を説明する
ための図である。図8(B)は、FTPGetFileList命令の複数の出力変数のうちの一部を説
明するための図である。
図8(A)を参照して、起動を意味する“Execute”は、FTPGetFileList命令の起動を
指定するための入力変数である。接続先のFTPサーバを意味する“ConnectSvr”は、FTPサーバのアドレスおよびポート番号と、ログイン用のユーザ名およびパスワードとを指定するための入力変数である。FTPサーバのディレクトリ名を意味する“SvrDirName”は、ファイル一覧を取得するFTPサーバのディレクトリを指定するための入力変数である。
図8(B)を参照して、完了を意味する“Done”は、正常終了(すなわち、読出しが完了)したことを表すための出力変数である。実行中を意味する“Busy”は、命令の実行中を表すための出力変数である。エラーを意味する“Error”は、異常終了したことを表す
ための出力変数である。
図9は、FTPPutFile命令の入力変数および出力変数を説明するための図である。具体的には、図9(A)は、FTPPutFile命令の複数の入力変数のうちの一部を説明するための図
である。図9(B)は、FTPPutFile命令の複数の出力変数のうちの一部を説明するための
図である。
図9(A)を参照して、起動を意味する“Execute”は、FTPPutFile命令の起動を指定
するための入力変数である。接続先のFTPサーバを意味する“ConnectSvr”は、FTPサーバのアドレスおよびポート番号と、ログイン用のユーザ名およびパスワードとを指定するための入力変数である。FTPサーバのディレクトリ名を意味する“SvrDirName”は、ファイル一覧を取得するFTPサーバのディレクトリを指定するための入力変数である。
ローカルディスレクトリ名を意味する“LocalDirName”は、FTPサーバへアップロードするファイルを格納しているディレクトリ(PLC100のディレクトリ)を指定するための入力変数である。ファイル名を意味する“FileName”は、アップロードするファイルのファイル名を指定するための入力変数である。ファイル名の指定は、ワイルドカードを用いることも可能である。
FTP実行オプションを意味する“ExecOption”は、FTP実行に関するオプションを指定するための入力変数である。たとえば、“ExecOption”は、上書きを許可するか否かを指定するための入力変数“OverWrite”を含む(図11参照)。
図9(B)を参照して、完了を意味する“Done”は、正常終了(すなわち、読出しが完了)したことを表すための出力変数である。実行中を意味する“Busy”は、命令の実行中を表すための出力変数である。エラーを意味する“Error”は、異常終了したことを表す
ための出力変数である。
<F.機能的構成>
図10は、PLC100の機能的構成を説明するための図である。図10を参照して、PLC100は、通信部1010と、設定部1020と、変数記憶部1030と、制御プログラム実行部1040と、取得部1050と、データ管理部1060と、通信部1070と、メモリカード172とを備えている。
取得部1050は、制御プログラム181(詳しくは、FTPクライアント通信命令以外の命令)を実行することによって各フィールド機器が制御されると、当該各フィールド機器から当該制御に基づくデータを周期的に取得する。
データ管理部1060は、取得部1050によって取得されたデータをメモリカード172に書き込む。詳しくは、データ管理部1060は、取得部1050によって順次取得されたデータを、メモリカード172内に保存されている所定のファイルに順次書き込む。さらに詳しくは、データ管理部1060は、取得されたデータを予め定められた規則によって複数の互いに名称の異なるファイル(データ群)に分類することにより、当該データを管理する。これらはユーザが作成するユーザプログラムにおいて記述されることで実現される。
変数記憶部1030は、ユーザプログラムで参照する変数を格納する。変数記憶部1030は、FTPを利用する際に用いる複数の入力変数(FTP設定用の入力変数)と、当該各入力変数の値とが対応付けて記憶されている。具体的には、変数記憶部1030は、“ConnectSvr”、“SvrDirName”、“LocalDirName”、“FileName”等の入力変数と、各入力変数の値とが記憶されている。なお、「値」とは、着目する変数に関し、当該変数が指すものに相当する表現である。すなわち、値は、数値のみならず、数値以外の文字列を含む。なお、本実施の形態では、入力変数“ConnectSvr”として、FTPサーバのIPアドレスが利用される。
変数記憶部1040は、外部の機器に参照公開する属性を持つ変数と、内部で使用される属性を有する変数を有していても良い。
制御プログラム実行部1040は、制御プログラム181を実行する。制御プログラム実行部1040は、制御プログラム181のユーザプログラム186に含まれるFTP通信命令と、制御プログラム181に含まれるその他命令とを実行する。その際、制御プログラム181は、図7に示したとおり、変数記憶部1030に記憶されている変数を入力変数として含む。つまり、制御プログラム181は、変数記憶部1030に記憶されてい
る変数の値を入力として利用する。さらに換言すれば、制御プログラム181は、変数を入力変数としてデータをサーバ装置400に送信する命令を含む。また、制御プログラム実行部1040は、FTPクライアント通信命令の実行結果を、通信部1070に通知する。
通信部1070は、FTPサーバであるサーバ装置400と通信するためのインターフェイスである。通信部1070は、制御プログラム実行部1040の実行結果に応じた処理を実行する。たとえば、通信部1070は、FTPPutFile命令に基づくPut処理(FTPサーバにファイルを転送(アップロード)、FTPGetFile命令に基づくGet処理(FTPサーバからファイルを取得(ダウンロード))、FTPGetFilelist命令に基づくLs処理(FTPサーバからファイル一覧を取得))を実行する。
Put処理に着目すると、通信部1070は、変数記憶部1030に記憶された入力変数の値が入力されたときの制御プログラム181の実行結果に基づいて、入力変数“SvrDirName”により指定されたメモリカード172のディレクトリにおける、入力変数“FileName”により指定されたファイルを、入力変数“ConnectSvr”で指定されたFTPサーバ(本実施の形態ではサーバ装置400)の入力変数“SvrDirName”により指定されたディレクトリに転送(送信)する。このように、PLC100は、制御プログラム181の実行にあたり、命令が起動されると上記変数の値に基づいてデータをサーバ装置400に送信する。
Ls処理に着目すると、通信部1070は、変数記憶部1030に記憶された入力変数の値に対する制御プログラム181の実行結果に基づいて、入力変数“ConnectSvr”で指定されたFTPクライアント(本実施の形態ではサーバ装置400)の入力変数“SvrDirName”により指定されたディレクトリに含まれるファイル一覧を、当該FTPクライアントから取得する。
通信部1010は、プログラマブル表示器300と通信するためのインターフェイスである。設定部1020は、ユーザ操作に伴うプログラマブル表示器300からの指令に基づき、変数記憶部1030に記憶された入力変数の値を設定(更新)する。
以上の構成によれば、PLC100は、フィールド機器から取得したデータをFTPによりファイルとしてサーバ装置400に送信する際に、FTPに用いられる変数の値を制御プログラムの入力変数とすることが可能となる。それゆえ、PLC100によれば、制御プログラム181の実行中であっても、FTPを利用する際に用いる変数の値を変更することが可能となる。
(f1.オプション処理について)
次に、FTPPutFile命令における入力変数“ExexOption”(図9(A))において上書き処理が禁止されている場合には、以下の処理が行なわれる。
制御プログラム実行部1040は、通信部1070によるサーバ装置400との通信によって、データ管理部1060によって付与された名称と同一名称のファイルがサーバ装置400に存在するか否かを、サーバ装置400から取得したファイル一覧に基づき判断する。詳しくは、制御プログラム実行部1040は、FTPGetFilelist命令に基づき取得したファイル一覧を利用して、FTPPutFile命令の入力変数“SvrDirName”により指定されたディレクトリ(サーバ装置400のディレクトリ)に、FTPPutFile命令の入力変数“LocalDirName”により指定されたディレクトリに含まれるファイルと重複しているファイルが存在しないか否かを判断する。
通信部1070は、入力に対する前記制御プログラムの実行結果に基づいて、メモリカード172に記憶されているファイルのうち同一名称のファイルが存在すると判断されなかったファイルをサーバ装置400に送信する。詳しくは、通信部1070は、入力変数“LocalDirName”で指定されるディレクトリに含まれるファイルのうち、入力変数“SvrDirName”で指定されるディレクトリに同一名称のファイルが存在していないファイルを、サーバ装置400の入力変数“SvrDirName”で指定されるディレクトリに転送する。
(f2.入力変数の値の例)
図11は、FTPPutFile命令における複数の入力変数のうちの一部の入力変数の値を表した図である。なお、FTPPutFile命令を含むFTPクライアント通信命令における入力変数の値は、ユーザによって設定される。
図11を参照して、FTPサーバのIPアドレスを表す入力変数“ConnectSvr”の値、FTPサーバのディレクトリ名を表す入力変数“SvrDirName”の値、自装置(PLC100)のディレクトリ名を表す入力変数“LocalDirName”の値は、それぞれ、“192.168.250.1”、“\aaaaa\”、“”である。
また、転送するファイル名は、ワイルドカードを用いて指定されている。具体的には、転送するファイル名の値は、入力変数“LocalDirName”の値(“”)に含まれる全てのテキストデータ(“*.txt”)を表している。
入力変数“Overwrite”の値は、上書きを禁止する“False”となっている。なお、上書きを許可する場合には、入力変数“Overwrite”の値は“True”となる。
<G.制御構造>
図12は、FTPクライアント通信命令を実行するときに行なわれる処理流れの概略を表したフローチャートである。図12を参照して、ステップS2において、PLC100のプロセッサ120(図2)は、FTP用の入力変数の値を読み込む。ステップS4において、プロセッサ120は、入力変数の値に基づくユーザプログラム186の実行結果を出力する。ステップS6において、プロセッサ120は、クライアント通信命令をFTPに準拠した命令に変換(プロトコル変換)する。ステップS8において、プロセッサ120は、変換後の命令に応じた通信処理を実行する。
図13は、PLC100が図7に示したユーザプログラム186を実行する際の処理流れの概略を表したフローチャートである。すなわち、図13は、PLC100がFTPGetFilelist命令とFTPPutFile命令とをこの順に実行する際の処理の流れを表した図である。
図13を参照して、ステップS102において、PLC100のプロセッサ120は、FTPGetFileList命令を実行する。具体的には、プロセッサ120は、入力変数“SvrDirName”で指定されたディレクトリ(以下、「ディレクトリDS」とも称する)に含まれるファイルのファイル一覧をサーバ装置400から取得する。なお、サーバ装置400は、入力変数“ConnectSvr”によって指定されたFTPサーバである。
ステップS104において、プロセッサ120は、FTPPutFile命令の実行を開始する。ステップS106において、プロセッサ120は、入力変数“LocalDirName”で指定されたディレクトリ(以下、「ディレクトリDT」とも称する)に含まれるファイルのファイル一覧をメモリカード172から取得する。
ステップS108において、プロセッサ120は、予め規定された変数iの値を“1”とする。ステップS110において、プロセッサ120は、ディレクトリDTに含まれる
i番目のファイルとファイル名が一致するファイルがサーバ装置400のディレクトリDSに存在するか否かを、取得された2つのファイル一覧に基づいて判断する。
プロセッサ120は、ファイルが存在しないと判断された場合(ステップS110においてNO)、ステップS112においてFTPによるファイル転送処理(Put処理)を実行する。ステップS114において、プロセッサ120は、転送済みのファイルとして当該ファイルのファイル名を、アップロードしたファイル結果を表す出力変数“PutFileResult”の値として出力する。プロセッサ120は、ファイルが存在すると判断された場
合(ステップS110においてYES)、ステップS120において、転送失敗のファイルとして当該ファイルのファイル名を出力変数“PutFileResult”の値として出力する。
ステップS116において、プロセッサ120は、変数iをインクリメントする。つまり、プロセッサ120は、iの値を1だけ増加させる。ステップS118において、プロセッサ120は、メモリカード172のディレクトリDTに含まれる全てのファイルのファイル名の出力処理が終了したか否かを判断する。すなわち、プロセッサ120は、FTPPutFile命令の実行が終了したか否かを判断する。プロセッサ120は、終了していないと判断した場合(ステップS118においてNO)、処理をステップS110に戻す。プロセッサ120は、終了したと判断した場合(ステップS118においてYES)、一連の処理を終了する。
図14は、図13のステップS112における処理の詳細を表したフローチャートである。図14を参照して、ステップS202において、プロセッサ120は、各入力変数(ConnectSvr,SvrDirName,LocalDir,FileName等)の値を変数記憶部1030(図10)から読み出す。ステップS204において、プロセッサ120は、読み出した各変数の値が適正か否かを判断する。
具体的には、PLC100は、ネットワークを構成するFTPサーバのIPアドレスを事前に認識しているため、プロセッサ120は、認識しているIPアドレスが入力されたか否かで、入力変数“ConnectSvr”で指定されるFTPサーバが存在するか否かを判断する。また、プロセッサ120は、上記FTPサーバが存在する場合において、入力変数“SvrDirName”で指定されるディレクトリが当該FTPサーバ内に存在するか否かを判断する。さらに、プロセッサ120は、入力変数“LocalDir”で指定されるディレクトリがメモリカード172に存在するか否かを判断する。また、プロセッサ120は、入力変数“Filename”で指定されるファイルが、入力変数“LocalDir”で指定されるディレクトリに存在するか否かを判断する。
プロセッサ120は、適正であると判断された場合(ステップS204においてYES)、ステップS206において、ファイルの転送処理を実行し、一連の処理を終了する。プロセッサ120は、適正でないと判断された場合(ステップS204においてNO)、一連の処理を終了する。
<H.プログラマブル表示器の操作画面>
図15は、プログラマブル表示器300のタッチスクリーン318に表示される操作画面(UI:UserInterface)を表した図である。図15(A)は、FTPサーバを指定す
るための操作画面である。図15(B)は、Put処理の設定を行なうための操作画面である。図15(C)は、Get処理の設定を行なうための操作画面である。
図15(A)を参照して、プログラマブル表示器300は、FTPサーバを指定するために、入力変数“ConnectSvr”の値(具体的には、図8(A)および図9(A)に示したとおり、FTPサーバのIPアドレス、FTPサーバのポート番号、ユーザ名、パスワー
ド)の入力を受け付ける入力ボックス811,812,813,814をタッチスクリーン318に表示する。ユーザは、各入力ボックス811〜814に値を入力した後に設定ボタン818を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。
図15(B)を参照して、プログラマブル表示器300は、FTPクライアント(すわち、PLC100)におけるディレクトリ名とファイル名とを指定するために、入力変数“SvrDirName”および入力変数“LocalDirName”の値の入力を受け付ける入力ボックス821,822をタッチスクリーン318に表示する。また、プログラマブル表示器300は、FTPサーバのディレクトリ名を指定するために、入力変数“SvrDirName”の値の入力を受け付ける入力ボックス823を表示する。
ユーザは、各入力ボックス821〜823に値を入力した後に設定ボタン828を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。また、ユーザは、転送ボタン829を選択することにより、PLC100にPut処理を実行させることができる。これはユーザプログラムにおいて、HMIからの入力を受け付けた際にFTP命令を実行されることで実現される。
図15(C)を参照して、プログラマブル表示器300は、FTPクライアント(すわち、PLC100)におけるディレクトリ名を指定するために、入力変数“LocalDirName”の値の入力を受け付ける入力ボックス831をタッチスクリーン318に表示する。また、プログラマブル表示器300は、FTPサーバのディレクトリ名とファイル名とを指定するために、入力変数“SvrDirName”および入力変数“FileName”の値の入力を受け付ける入力ボックス832,833を表示する。
ユーザは、各入力ボックス831〜833に値を入力した後に設定ボタン838を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。また、ユーザは、転送ボタン839を選択することにより、PLC100にGet処理を実行させることができる。これはユーザプログラムにおいて、HMIからの入力を受け付けた際にFTP命令を実行されることで実現される。
上述した変数の値を設定(更新)は、PLC100の設定部1020により実現される。変数の値の設定(更新)は、上述したように、制御プログラム181の実行中であっても行なわれる。これにより、ユーザは、制御プログラムの実行を中断することなく、FTPクライアント通信命令を変更することが可能となる。
<I.再判断処理>
図16は、FTPPutFile命令を実行した場合に、転送に失敗したファイルを送信するための処理を説明するための図である。すなわち、図16は、ファイル名が重複するためにファイルの転送を意図的に行なわなかったファイルについて、再度、ファイルの転送が可能であるか否かを判断する処理を説明するための図である。
図16を参照して、FTPPutFile命令における入力変数“FileName”によって5つのファイル(X001.txt,X002.txt,X003.txt,X004txt,X005.txt)が指定されたとする。その
後、FTPputFile命令の実行により、3つのファイル(X001.txt,X003.txt,X005.txt)のサーバ装置400への転送が完了し、2つのファイル(X002.txt,X004txt)の転送が失
敗であったとする。この場合、プロセッサ120は、転送に失敗した2つのファイルのファイル名(X002.txt,X004.txt)が、再度、入力変数“FileName”としてFTPputFile命令
のファンクションブロックに入力される。なお、上記のファイル名の再度の入力は、たとえば、ユーザがサーバ装置400の転送対象ディレクトリに記憶されたファイルを取り除く作業等を行なった後に行なわれる。具体的には、ファイル名の再度の入力は、入力変数“SvrDirName”で指定されるディレクトリに記憶されているファイルを消去等した後に行なわれる。
すなわち、ユーザプログラム186は、複数のファイルのうち、同一名称のファイルがサーバ装置400の指定されたディレクトリに存在すると判断されなかったファイル(以下、「第1のファイル」とも称する)以外のファイル(以下、「第2のファイル」とも称する)の名称を入力としてさらに利用する。また、図10に示した制御プログラム実行部1040は、サーバ装置400との通信によって、第2のファイルと同一名称のファイルがサーバ装置400に存在するか否かを再度判断する。通信部1070は、制御プログラム実行部1040による再度の判断の結果、第2のファイルのうち同一名称のファイルが存在すると判断されなかったファイル(以下、「第3のファイル」とも称する)を、ユーザプログラム186の実行結果に基づいてサーバ装置400の指定されたディレクトリに送信する。
以上のように、PLC100が転送(送信)に失敗したファイルについて再度転送が可能か否かを自動的に行なうため、ユーザは、転送に失敗したファイルのファイル名を入力変数“FileName”の値として設定する必要がなくなる。
<J.ユーザプログラムの変形例>
制御プログラム181を構成するユーザプログラム186から、各入力変数の値を書き換えることも可能である。図17は、ユーザプログラム186から各入力変数の値を書き換える構成を有するユーザプログラム186を表した図である。以下、一例として、FTPサーバを指定する点に着目して説明する。
図17を参照して、FTPPutFile命令の入力変数“ConnectSvr”には、FTPPutFile命令のファンクションブロックFB2の上のファンクションブロックFB1の出力変数“abc”
の値が入力される。また、ファンクションブロックFB1の入力変数として、FTPサーバのIPアドレス(“192.168.250.1”)が入力される。このように、制御プログラム1
81は、変数の値を設定するための記述であるファンクションブロックFB1を含む。なお、ファンクションブロックFB1には、IPアドレスとして、変数記憶部1030(図10)から読み出された値、またはプログラマブル表示器300から直接入力された値が入力される。
以上のように、PLC100は、FTPクライアント通信命令の入力変数の値として、当該FTPクライアント通信命令のファンクションブロックとは異なるファンクションブロックの出力変数を用いることができる。
<K.通信プロトコル>
なお、上記では、PLC100とサーバ装置400との間の通信に用いられる通信プロトコルの例として、FTPを例に挙げて説明したが、これに限定されるものではない。本発明は、PLC100とサーバ装置400との間のデータ通信に用いられる各種の通信プロトコルに適用可能である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、10 検出スイッチ、20 リレー、30 サーボモータドライバ、32 モータ、100 PLC、102 電源ユニット、104 CPUユニット、106 ユニット、106 IOユニット、108 PLCシステムバス、110 フィールドバス、112 ネットワーク、114 接続ケーブル、120 プロセッサ、122
チップセット、124 システムクロック、126 主メモリ、128 不揮発性メモリ、130 コネクタ、140 PLCシステムバスコントローラ、142,152,162 バッファメモリ、144 PLCシステムバス制御回路、146 制御回路、148 システムバスコネクタ、150 フィールドバスコントローラ、154 フィールドバス制御回路、156,166 DMA制御回路、158 フィールドバスコネクタ、160 上位通信コントローラ、164 上位通信制御回路、168 上位通信コネクタ、170 メモリカードインターフェイス、172 メモリカード、180 OS、181
制御プログラム、184 稼働ログ、186 ユーザプログラム、188 システムプログラム、190 シーケンス命令プログラム、192 処理プログラム、194 入出力処理プログラム、196 インターフェイス処理プログラム、198 スケジューラ、200 ターミナル、202 通信カプラ、208 ターミナルバス、300 プログラマブル表示器、311,402 CPU、318 タッチスクリーン、319 通信インターフェイス、381 ディスプレイ、382 タッチパネル、400 サーバ装置、811〜814,821〜823,831〜833 入力ボックス、818,828,838 設定ボタン、829,839 転送ボタン、1010,1070 通信部、1020
設定部、1030 変数記憶部、1040 制御プログラム実行部、1050 取得部、1060 データ管理部、FB1,FB2 ファンクションブロック。
上記の特許文献1では、これらの変更対象の設定情報を予め記憶しておき、設定情報の変更においては、専用のパーソナルコンピュータを接続して設定を変更する必要がある。また、専用のツールを用いて変更をする場合には、システムもしくはユニットのリセットや初期化が必要であり、制御プログラムの動作中に変更することができなかった。また設定を行うためには専用ツールが必要であり、専用ツールが無い場合、専用ツールで設定を行うスキルが無い場合もあり、ユーザに不便を強いていた。このような観点からは、制御プログラムの実行中であっても、FTP等の通信プロトコルを利用する際に用いる設定情報の値を変更することが可能であることが好ましい。
ところで、制御プログラムには、ユーザプログラムが含まれている。また、上記のように、PLCは通信プロトコルを用いてサーバ装置と通信する。本願発明の目的は、通信プロトコルを利用する際に用いる変数をユーザプログラムが周期的に参照可能な制御装置、および制御装置における通信制御方法を提供することにある。
FTPサーバのファイル一覧の取得機能、FTPサーバへのファイルアップロード機能、FTPサーバからのファイルダウンロード機能、FTPサーバのファイルの削除機能、およびFTPサーバのディレクトリの削除機能を各々を実現するための命令(FTPクライアント通信命令)の名称を、それぞれ、「FTPGetFileList命令」、「FTPPutFile命令」、「FTPGetFile命令」、「FTPRemoveFile命令」、「FTPRemoveDir命令」と称する。
変数記憶部100は、外部の機器に参照公開する属性を持つ変数と、内部で使用される属性を有する変数を有していても良い。
通信部1070は、FTPサーバであるサーバ装置400と通信するためのインターフェイスである。通信部1070は、制御プログラム実行部1040の実行結果に応じた処理を実行する。たとえば、通信部1070は、FTPPutFile命令に基づくPut処理(FTPサーバにファイルを転送(アップロード)、FTPGetFile命令に基づくGet処理(FTPサーバからファイルを取得(ダウンロード))、FTPGetFilelist命令に基づくLs処理(FTPサーバからファイル一覧を取得を実行する。
図11を参照して、FTPサーバのIPアドレスを表す入力変数“ConnectSvr”の値、FTPサーバのディレクトリ名を表す入力変数“SvrDirName”の値、自装置(PLC100)のディレクトリ名を表す入力変数“LocalDirName”の値は、それぞれ、“192.168.250.1”、“\aaaaa\”、“”である。
また、転送するファイル名は、ワイルドカードを用いて指定されている。具体的には、転送するファイル名の値は、入力変数“LocalDirName”の値(“\”)に含まれる全てのテキストデータ(“*.txt”)を表している。
図15(B)を参照して、プログラマブル表示器300は、FTPクライアント(すわち、PLC100)におけるディレクトリ名とファイル名とを指定するために、入力変数“SvrDirName”および入力変数“LocalDirName”の値の入力を受け付ける入力ボックス821,822をタッチスクリーン318に表示する。また、プログラマブル表示器300は、FTPサーバのディレクトリ名を指定するために、入力変数“SvrDirName”の値の入力を受け付ける入力ボックス823を表示する。
ユーザは、各入力ボックス821〜823に値を入力した後に設定ボタン828を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。また、ユーザは、転送ボタン829を選択することにより、PLC100にPut処理を実行させることができる。これはユーザプログラムにおいて、HMIからの入力を受け付けた際にFTP命令実行されることで実現される。
図15(C)を参照して、プログラマブル表示器300は、FTPクライアント(すわち、PLC100)におけるディレクトリ名を指定するために、入力変数“LocalDirName”の値の入力を受け付ける入力ボックス831をタッチスクリーン318に表示する。また、プログラマブル表示器300は、FTPサーバのディレクトリ名とファイル名とを指定するために、入力変数“SvrDirName”および入力変数“FileName”の値の入力を受け付ける入力ボックス832,833を表示する。
ユーザは、各入力ボックス831〜833に値を入力した後に設定ボタン838を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。また、ユーザは、転送ボタン839を選択することにより、PLC100にGet処理を実行させることができる。これはユーザプログラムにおいて、HMIからの入力を受け付けた際にFTP命令実行されることで実現される。
1 制御システム、10 検出スイッチ、20 リレー、30 サーボモータドライバ、32 モータ、100 PLC、102 電源ユニット、104 CPUユニット、106 IOユニット、108 PLCシステムバス、110 フィールドバス、112 ネットワーク、114 接続ケーブル、120 プロセッサ、122 チップセット、124 システムクロック、126 主メモリ、128 不揮発性メモリ、130 コネクタ、140 PLCシステムバスコントローラ、142,152,162 バッファメモリ、144 PLCシステムバス制御回路、146,156,166 DMA制御回路、148 PLCシステムバスコネクタ、150 フィールドバスコントローラ、154 フィールドバス制御回路、158 フィールドバスコネクタ、160 上位通信コントローラ、164 上位通信制御回路、168 上位通信コネクタ、170 メモリカードインターフェイス、172 メモリカード、180 OS、181 制御プログラム、184 稼働ログ、186 ユーザプログラム、188 システムプログラム、190 シーケンス命令プログラム、192 FTP処理プログラム、194 入出力処理プログラム、196 Toolインターフェイス処理プログラム、198 スケジューラ、200 リモートIOターミナル、202 通信カプラ、208 リモートIOターミナルバス、300 プログラマブル表示器、311,402 CPU、318 タッチスクリーン、319 通信インターフェイス、381 ディスプレイ、382 タッチパネル、400 サーバ装置、811〜814,821〜823,831〜833 入力ボックス、818,828,838 設定ボタン、829,839 転送ボタン、1010,1070 通信部、1020 設定部、1030 変数記憶部、1040 制御プログラム実行部、1050 取得部、1060 データ管理部、FB1,FB2 ファンクションブロック。

Claims (7)

  1. サーバ装置と通信するとともに、制御プログラムを実行することによって予め定められた機器を制御する制御装置であって、
    前記制御プログラムを実行する実行手段と、
    前記予め定められた機器から前記制御に基づくデータを取得する取得手段と、
    予め定められた通信プロトコルを用いて前記サーバ装置と通信する第1の通信手段と、
    前記通信プロトコルを利用する際に用いる変数と、前記変数の値とを対応づけて記憶するための記憶手段とを備え、
    前記制御プログラムは、前記変数を入力変数として前記データを前記サーバ装置に送信する命令を含み、
    前記制御プログラムの実行にあたり、前記命令が起動されると前記変数の値に基づいて前記データを前記サーバ装置に送信する、制御装置。
  2. プログラマブル表示器と通信する第2の通信手段と、
    前記プログラマブル表示器からの指令に基づき、前記変数の値を設定する設定手段とをさらに備える、請求項1に記載の制御装置。
  3. 前記設定手段は、前記制御プログラムの実行中であっても前記変数の値を設定する、請求項2に記載の制御装置。
  4. 前記制御プログラムは、前記変数の値を設定するための記述を含む、請求項1〜3のいずれか1項に記載の制御装置。
  5. 前記変数は、データの名称を含み、
    前記第1の通信手段は、前記入力に対する前記制御プログラムの実行結果に基づいて、前記変数で指定されたデータの名称を有するデータを前記サーバ装置に送信する、請求項1〜4のいずれか1項に記載の制御装置。
  6. 前記取得されたデータを予め定められた規則によって複数の互いに名称の異なるデータ群に分類することにより、前記データを管理する管理手段をさらに備え、
    前記管理手段は、前記データ群をファイルとして管理し、
    前記通信プロトコルは、ファイル転送プロトコルである、請求項1〜5のいずれか1項に記載の制御装置。
  7. サーバ装置と通信するとともに、制御プログラムを実行することによって予め定められた機器を制御する制御装置における通信制御方法であって、
    前記制御装置のプロセッサが、前記制御プログラムを実行するステップと、
    前記プロセッサが、前記予め定められた機器から前記制御に基づくデータを取得するステップと、
    前記プロセッサが、予め定められた通信プロトコルを用いて前記サーバ装置と通信するステップとを備え、
    前記制御装置は、前記通信プロトコルを利用する際に用いる変数と、前記変数の値とを対応づけて記憶しており、
    前記制御プログラムは、前記変数を入力変数として前記データを前記サーバ装置に送信する命令を含み、
    前記通信制御方法は、前記制御プログラムの実行にあたり、前記命令が起動されると前記変数の値に基づいて前記データを前記サーバ装置に送信するステップをさらに備える、通信制御方法。
JP2018115872A 2018-06-19 2018-06-19 制御装置および通信制御方法 Active JP6680313B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018115872A JP6680313B2 (ja) 2018-06-19 2018-06-19 制御装置および通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018115872A JP6680313B2 (ja) 2018-06-19 2018-06-19 制御装置および通信制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013270477A Division JP6357770B2 (ja) 2013-12-26 2013-12-26 制御装置および通信制御方法

Publications (2)

Publication Number Publication Date
JP2018139162A true JP2018139162A (ja) 2018-09-06
JP6680313B2 JP6680313B2 (ja) 2020-04-15

Family

ID=63451240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018115872A Active JP6680313B2 (ja) 2018-06-19 2018-06-19 制御装置および通信制御方法

Country Status (1)

Country Link
JP (1) JP6680313B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022059588A1 (ja) * 2020-09-16 2022-03-24 ファナック株式会社 Plc装置及び産業機械システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296217A (ja) * 2002-04-03 2003-10-17 Canon Inc 通信端末装置及びその制御方法
JP2011039643A (ja) * 2009-08-07 2011-02-24 Keyence Corp プログラマブルコントローラ
JP2013205866A (ja) * 2012-03-27 2013-10-07 Omron Corp 情報処理装置、情報処理方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296217A (ja) * 2002-04-03 2003-10-17 Canon Inc 通信端末装置及びその制御方法
JP2011039643A (ja) * 2009-08-07 2011-02-24 Keyence Corp プログラマブルコントローラ
JP2013205866A (ja) * 2012-03-27 2013-10-07 Omron Corp 情報処理装置、情報処理方法、およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022059588A1 (ja) * 2020-09-16 2022-03-24 ファナック株式会社 Plc装置及び産業機械システム

Also Published As

Publication number Publication date
JP6680313B2 (ja) 2020-04-15

Similar Documents

Publication Publication Date Title
JP6357770B2 (ja) 制御装置および通信制御方法
WO2015136959A1 (ja) 制御システム、方法、プログラムおよび情報処理装置
KR102042664B1 (ko) 데이터 수집 장치, 데이터 수집 방법 및 기록 매체
US9984244B2 (en) Controller, information processing apparatus, and recording medium
CN112602025A (zh) 工业控制器的数字孪生的自动设置
JP6493506B1 (ja) 産業用制御システムとその支援装置、制御支援方法およびプログラム
CN107407922B (zh) 可编程逻辑控制器及其控制方法以及记录介质
JP2002268707A (ja) コントローラ及びツール並びにそれらにより構成されるシステム
JP2016012172A (ja) 通信システム、プログラマブル表示器、情報処理装置、動作制御方法、情報処理方法、およびプログラム
JP6442131B2 (ja) 制御システムおよび制御装置
JP6477178B2 (ja) Plc制御データ生成装置、plc制御データ生成方法、及び、plc制御データ生成プログラム
JP6680313B2 (ja) 制御装置および通信制御方法
US20210067483A1 (en) Control System, Controller, and Control Method
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP6705464B2 (ja) 制御装置および通信制御方法
Su et al. The risk of industrial control system programmable logic controller default configurations
JP6357769B2 (ja) 制御装置および通信制御方法
CN111052010A (zh) 控制系统、开发辅助装置和开发辅助程序
JP4962721B2 (ja) ツール装置及びメッセージ送信プログラムの作成方法
WO2020026738A1 (ja) サポート装置およびサポートプログラム
JP2019197449A (ja) 機器管理装置およびタグ名検証方法
JP5951041B2 (ja) プログラマブル表示器
US20200374198A1 (en) Control method, control device, control system and recording medium
CN108415701B (zh) 信息处理装置与系统、以及用户界面制作方法与存储介质
JP6002021B2 (ja) スレーブ機器

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180620

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200302

R150 Certificate of patent or registration of utility model

Ref document number: 6680313

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150