JP6680313B2 - Control device and communication control method - Google Patents
Control device and communication control method Download PDFInfo
- Publication number
- JP6680313B2 JP6680313B2 JP2018115872A JP2018115872A JP6680313B2 JP 6680313 B2 JP6680313 B2 JP 6680313B2 JP 2018115872 A JP2018115872 A JP 2018115872A JP 2018115872 A JP2018115872 A JP 2018115872A JP 6680313 B2 JP6680313 B2 JP 6680313B2
- Authority
- JP
- Japan
- Prior art keywords
- variable
- file
- data
- user program
- command
- 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.)
- Active
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
本発明は、ユーザプログラムを周期的に実行するコントローラを含む制御システムに関し、特に、サーバ装置と通信可能に接続する制御システムに関する。 The present invention relates to a control system including a controller that periodically executes a user program, and particularly to a control system that is communicably connected to a server device.
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ(Programmable Logic Controller;以下「PLC」とも称す)などの制御装置を主たる
構成とした制御システムによって制御される。このような制御システムでは、システム構成時や運転時に発生した不具合を事後的に検証できる。
Machines and equipment used in many production sites are typically controlled by a control system mainly including a control device such as a programmable controller (Programmable Logic Controller; hereinafter also referred to as “PLC”). In such a control system, it is possible to ex post factoly verify the problems that occurred during system configuration and operation.
このような制御装置に関する先行技術文献としての特許文献1(特開2011−39643号公報)に記載のPLCは、CPUユニットと、CPUユニットと接続された一又は複数の拡張ユニットとで構成され、ファイル転送時にFTP(File Transfer Protocol:ファイル転送プロトコル)クライアントとして機能する。PLCは、FTPクライアントとして機能させる設定データの入力を受け付け、入力を受け付けた設定データを記憶する。PLCは、FTPクライアントに所定の機能を割り当てるか否かに関するフラグ情報を含む機能割当て情報を記憶しておき、所定の機能ごとにフラグ情報を書き込む。PLCは、フラグ情報の書き込みを検知した場合、記憶してある設定データに基づいてファイル転送を実行する。 The PLC described in Patent Document 1 (Japanese Patent Application Laid-Open No. 2011-39643) as a prior art document related to such a control device includes a CPU unit and one or a plurality of expansion units connected to the CPU unit, It functions as an FTP (File Transfer Protocol) client during file transfer. The PLC receives an input of setting data to function as an FTP client and stores the input setting data. The PLC stores function allocation information including flag information regarding whether or not to allocate a predetermined function to the FTP client, and writes the flag information for each predetermined function. When detecting writing of flag information, the PLC executes file transfer based on the stored setting data.
生産設備の制御に用いられるPLCにおいて、FTPクライアント機能は、生産設備のデータをサーバ装置(FTPサーバ)に送信するシーンで用いられる。このような場合、ユーザが、FTPを利用する際に用いる設定情報の値を変更することが行なわれる。たとえば、ユーザは、ファイル転送の対象とする各種の変数(ディレクトリ名、ファイル名等)、転送先を指定するための各種の変数(FTPサーバのIPアドレス、FTPサーバのディレクトリ名、ユーザID、パスワード)等を変更することが行なわれる。 In the PLC used for controlling the production equipment, the FTP client function is used in a scene of transmitting the data of the production equipment to the server device (FTP server). In such a case, the user changes the value of the setting information used when using the FTP. For example, the user can set various variables (directory name, file name, etc.) to which the file is to be transferred, various variables for specifying the transfer destination (IP address of the FTP server, directory name of the FTP server, user ID, password). ) Etc. are changed.
上記の特許文献1では、これらの変更対象の設定情報を予め記憶しておき、設定情報の変更においては、専用のパーソナルコンピュータを接続して設定を変更する必要がある。また、専用のツールを用いて変更をする場合には、システムもしくはユニットのリセットや初期化が必要であり、制御プログラムの動作中に変更することができなかった。また設定を行うためには専用ツールが必要であり、専用ツールが無い場合、専用ツールで設定を行うスキルが無い場合もあり、ユーザに不便を強いていた。このような観点からは、制御プログラムの実行中であっても、FTP等の通信プロトコルを利用する際に用いる設定情報の値を変更することが可能であることが好ましい。
In the above-mentioned
ところで、制御プログラムには、ユーザプログラムが含まれている。また、上記のように、PLCは通信プロトコルを用いてサーバ装置と通信する。本願発明の目的は、通信プロトコルを利用する際に用いる変数をユーザプログラムが周期的に参照可能な制御装置、および制御装置における通信制御方法を提供することにある。By the way, the control program includes a user program. Further, as described above, the PLC communicates with the server device using the communication protocol. An object of the present invention is to provide a control device in which a user program can periodically refer to variables used when using a communication protocol, and a communication control method in the control device.
本発明のある局面に従うと、制御装置は、サーバ装置と通信するとともに、制御プログ
ラムを実行することによって予め定められた機器を制御する。制御装置は、制御プログラムを実行する実行手段と、予め定められた機器から制御に基づくデータを取得する取得手段と、予め定められた通信プロトコルを用いてサーバ装置と通信する第1の通信手段と、通信プロトコルを利用する際に用いる変数と、変数の値とを対応づけて記憶するための記憶手段とを備える。制御プログラムは、変数を入力変数としてデータをサーバ装置に送信する命令を含む。制御プログラムの実行にあたり、命令が起動されると変数の値に基づいてデータをサーバ装置に送信する。
According to one aspect of the present invention, the control device controls a predetermined device by communicating with the server device and executing a control program. The control device includes an execution unit that executes a control program, an acquisition unit that acquires data based on control from a predetermined device, and a first communication unit that communicates with the server device using a predetermined communication protocol. A storage unit for storing the variable used when the communication protocol is used and the value of the variable in association with each other. The control program includes an instruction for transmitting data to the server device using the variable as an input variable. Upon execution of the control program, when an instruction is activated, data is transmitted to the server device based on the value of the variable.
好ましくは、制御装置は、プログラマブル表示器と通信する第2の通信手段と、プログラマブル表示器からの指令に基づき、変数の値を設定する設定手段とをさらに備える。 Preferably, the control device further includes second communication means for communicating with the programmable display, and setting means for setting the value of the variable based on a command from the programmable display.
好ましくは、設定手段は、制御プログラムの実行中であっても変数の値を設定する。
好ましくは、制御プログラムは、変数の値を設定するための記述を含む。
Preferably, the setting means sets the value of the variable even during execution of the control program.
Preferably, the control program includes a description for setting the value of the variable.
好ましくは、変数は、データの名称を含む。第1の通信手段は、入力に対する制御プログラムの実行結果に基づいて、変数で指定されたデータの名称を有するデータをサーバ装置に送信する。 Preferably, the variable contains the name of the data. The first communication unit transmits the data having the data name designated by the variable to the server device based on the execution result of the control program for the input.
好ましくは、制御装置は、取得されたデータを予め定められた規則によって複数の互いに名称の異なるデータ群に分類することにより、データを管理する管理手段をさらに備える。管理手段は、データ群をファイルとして管理する。通信プロトコルは、ファイル転送プロトコルである。 Preferably, the control device further includes a management unit that manages the data by classifying the acquired data into a plurality of data groups having different names according to a predetermined rule. The management means manages the data group as a file. The communication protocol is a file transfer protocol.
本発明の他の局面に従うと、通信制御方法は、サーバ装置と通信するとともに、制御プログラムを実行することによって予め定められた機器を制御する制御装置において実行される。通信制御方法は、制御装置のプロセッサが、制御プログラムを実行するステップと、プロセッサが、予め定められた機器から制御に基づくデータを取得するステップと、プロセッサが、予め定められた通信プロトコルを用いてサーバ装置と通信するステップとを備える。制御装置は、通信プロトコルを利用する際に用いる変数と、変数の値とを対応づけて記憶している。制御プログラムは、変数を入力変数としてデータをサーバ装置に送信する命令を含む。通信制御方法は、制御プログラムの実行にあたり、命令が起動されると変数の値に基づいてデータをサーバ装置に送信するステップをさらに備える。 According to another aspect of the present invention, a communication control method is executed in a control device that communicates with a server device and controls a predetermined device by executing a control program. The communication control method includes a step in which a processor of a control device executes a control program, a step in which the processor acquires data based on control from a predetermined device, and the processor uses a predetermined communication protocol. Communicating with the server device. The control device stores variables used when using the communication protocol and the values of the variables in association with each other. The control program includes an instruction for transmitting data to the server device using the variable as an input variable. The communication control method further includes the step of transmitting data to the server device based on the value of the variable when the instruction is activated in executing the control program.
本発明によれば、制御プログラムの実行中であっても、FTP等の通信プロトコルを利用する際に用いる設定情報の値をユーザが作成するユーザプログラム作成後であっても変更することが可能となる。またユーザは設定情報を追って変更できるようなプログラムの作成が可能となる。 According to the present invention, it is possible to change the value of the setting information used when using the communication protocol such as FTP even after the control program is executed, even after the user program created by the user is created. Become. In addition, the user can create a program that can change the setting information later.
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. It should be noted that the same or corresponding parts in the drawings are designated by the same reference numerals and the description thereof will not be repeated.
<A.システム構成>
まず、本実施の形態に係る制御システムのシステム構成について説明する。本実施の形態においては、機械や設備などの制御対象を制御するプログラマブルコントローラ(PLC)を制御装置の典型例として説明を行う。但し、本発明に係る制御装置は、PLCに限られることなく、各種の制御装置へ適用可能である。
<A. System configuration>
First, the system configuration of the control system according to the present embodiment will be described. In the present embodiment, a programmable controller (PLC) that controls a controlled object such as a machine or equipment will be described as a typical example of the control device. However, the control device according to the present invention is not limited to the PLC and can be applied to various control devices.
図1は、本実施の形態に係る制御システム1のシステム構成を示す模式図である。図1を参照して、制御システム1は、PLC100と、PLC100と通信可能に接続されたプログラマブル表示器(HMI:Human Machine Interface)300と、PLC100と
通信可能に接続されたサーバ装置400とを含む。サーバ装置400は、たとえば、イントラネットを構成する機器である。
FIG. 1 is a schematic diagram showing a system configuration of a
詳細については後述するが、PLC100は、FTP(ファイル転送プロトコル)に基づく通信によってサーバ装置400と通信する。すなわち、PLC100は、FTPクライアント機能を有しており、FTPクライアントとして機能する。また、サーバ装置400は、FTPサーバ機能を有しており、FTPサーバとして機能する。
Although details will be described later, the
PLC100は、後述するようなユーザプログラムを周期的またはイベント的に実行する。ユーザプログラムは、PLC100の利用者によって作成される。ユーザは、例えばサポート装置(図示せず)を操作することにより、アクセス命令を含むプログラム(ソースプログラム)を作成することができる。なお、サポート装置は、ソースプログラムを、PLC100において実行可能な形式に変換し、変換されたユーザプログラムをPLC100へ送信する。サポート装置は、PLC100との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。PLC100とサポート装置との間は、典型的には、USB(Universal Serial Bus)規格に従って通信可能に構成される。
The
PLC100は、ユーザプログラムを実行し、ユーザプログラムに含まれる命令に従っ
て、サーバ装置400と通信する。すなわち、PLC100およびサーバ装置400は、イーサネット(登録商標)などのネットワーク112を介して、データを互いに遣り取りできるように構成される。当該処理の詳細については後述する。
The
PLC100は、制御演算を実行するCPUユニット104と、1つ以上のIO(Input/Output)ユニット106とを含む。これらのユニットは、PLCシステムバス108を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット102によって適切な電圧の電源が供給される。
The
制御システム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を介して、データを互いに遣り取りできるように構成される。
In the
プログラマブル表示器300は、接続ケーブル114によってPLC100と通信可能に接続されている。プログラマブル表示器300は、PLC100から取得した各種の情報を画面に表示する。また、詳細については後述するが、ユーザは、プログラマブル表示器300を操作することにより、PLC100に格納されている入力変数の値を変更することができる。
The
<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と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
<B. Configuration of
(B1. Hardware configuration)
FIG. 2 is a schematic diagram showing a hardware configuration showing a main part of
プロセッサ120およびチップセット122は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ120は、チップセット122から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット122は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ120に必要な命令コードを生成する。システムクロック124は、予め定められた周期のシステムクロックを発生してプロセッサ120に提供する。チップセット122は、プロセッサ120での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
The processor 120 and the
CPUユニット104は、記憶手段として、主メモリ126および不揮発性メモリ128を有する。主メモリ126は、揮発性の記憶領域であり、プロセッサ120で実行され
るべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ128は、OS(Operating System)、システムプログラム、ユーザプログラム、ログ情報などを不揮発的に保持する。
The
Ethernetコネクタ130は、プログラマブル表示器300とCPUユニット104とを接続するためのインターフェイスである。なお、USBコネクタ(図示せず)は、サポート装置とCPUユニット104とを接続するためのインターフェイスである。典型的には、サポート装置から転送される実行可能なプログラムなどは、USBコネクタを介してCPUユニット104に取込まれる。
The
CPUユニット104は、通信手段として、PLCシステムバスコントローラ140、フィールドバスコントローラ150、および上位通信コントローラ160を有する。これらの通信回路は、データの送信および受信を行う。
The
PLCシステムバスコントローラ140は、PLCシステムバス108を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ140は、バッファメモリ142と、PLCシステムバス制御回路144と、DMA(Dynamic Memory
Access)制御回路146とを含む。PLCシステムバスコントローラ140は、PLC
システムバスコネクタ148を介してPLCシステムバス108と接続される。
The PLC
Access)
It is connected to the
フィールドバスコントローラ150は、バッファメモリ152と、フィールドバス制御回路154と、DMA制御回路156とを含む。フィールドバスコントローラ150は、フィールドバスコネクタ158を介してフィールドバス110と接続される。上位通信コントローラ160は、バッファメモリ162と、上位通信制御回路164と、DMA制御回路166とを含む。上位通信コントローラ160は、上位通信コネクタ168を介してネットワーク112と接続される。
The
メモリカードインターフェイス170は、CPUユニット104に対して着脱可能なメモリカード172とプロセッサ120とを接続する。
The
(b2.ソフトウェア構成)
図3は、本実施の形態に係るPLC100が提供する各種機能を実現するためのソフトウェア構成を示す模式図である。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット104のプロセッサ120によって実行される。
(B2. Software configuration)
FIG. 3 is a schematic diagram showing a software configuration for realizing various functions provided by the
図3を参照して、CPUユニット104で実行されるソフトウェアとしては、OS180と、システムプログラム188と、ユーザプログラム186とがある。
Referring to FIG. 3, the software executed by
OS180は、プロセッサ120がシステムプログラム188およびユーザプログラム186を実行するための基本的な実行環境を提供する。
The
システムプログラム188は、PLC100としての基本的な機能を提供するためのソフトウェア群である。具体的には、システムプログラム188は、シーケンス命令プログラム190と、FTP処理プログラム192と、入出力処理プログラム194と、Toolインターフェイス処理プログラム196と、スケジューラ198とを含む。
The system program 188 is a software group for providing the basic functions of the
これに対して、ユーザプログラム186は、制御対象に対する制御目的に応じて任意に作成されたプログラムである。すなわち、ユーザプログラム186は、制御システム1を用いて制御する対象に応じて、任意に設計される。
On the other hand, the
ユーザプログラム186は、シーケンス命令プログラム190と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム186は、シーケンス命令プログラム190によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム186およびシーケンス命令プログラム190を「制御プログラム181」と総称する場合もある。
The
稼働ログ184には、システムプログラム188およびユーザプログラム186の実行に伴って、予め定められた事象が発生した際に、当該発生した事象の情報が時刻情報と関連付けて格納される。すなわち、稼働ログ184には、システムプログラム188および/またはユーザプログラム186の実行に伴う各種情報がログ(履歴情報)として格納される。
When a predetermined event occurs in association with the execution of the system program 188 and the
以下、各プログラムについてより詳細に説明する。
シーケンス命令プログラム190は、ユーザプログラム186の実行に伴って、ユーザプログラム186内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
Hereinafter, each program will be described in more detail.
The
入出力処理プログラム194は、IOユニット106や各種のフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
The input /
Toolインターフェイス処理プログラム196は、サポート装置との間でデータを遣り取りするためのインターフェイスを提供する。
The Tool
スケジューラ198は、予め定められた優先度やシステムタイマの値などに従って、制御プログラムを実行するためのスレッドやプロシージャを生成する。
The
ユーザプログラム186は、上述したように、ユーザにおける制御目的に応じて作成される。ユーザプログラム186は、典型的には、CPUユニット104のプロセッサ120で実行可能なオブジェクトプログラム形式になっている。ユーザプログラム186は、サポート装置などにおいて、ラダー形式やファンクションブロック形式で記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラムは、サポート装置からCPUユニット104へ転送され、不揮発性メモリ128などに格納される。
The
FTP処理プログラム192は、ユーザプログラム186の実行に伴って、サーバ装置400と通信するために必要な処理を実現するための命令コード群を含む。FTP処理プログラム192は、ユーザプログラム186において指定可能な命令に対応する実行コードを含む。
The
<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とを備える。なお、これらの部位は、内部バスを介して互いに接続される。
<C. Hardware Configuration of
FIG. 4 is a diagram for explaining an example of the hardware configuration of the
An M314, a
タッチスクリーン318は、ディスプレイ381と、ディスプレイ381を覆うように
設置されたタッチパネル382とを有する。通信インターフェイス319は、Ethernet(登録商標)用IF(InterFace)391と、シリアル用IF392と、USB(Universal Serial Bus)用IF393とを有する。
The
CPU311は、フラッシュROM314に格納されているプログラムをRAM313などに展開して実行する。ROM312は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。RAM313は、揮発性メモリであり、ワークメモリとして使用される。
The
Ethernet用IF391は、Ethernetの通信プロトコルをサポートし、PLC100との間でデータ通信する。シリアル用IF392は、シリアル通信のプロトコルをサポートし、たとえばPC(Personal Computer)との間でデータ通信する。US
B用IF393は、USBの通信プロトコルをサポートし、たとえばUSBメモリとの間でデータ通信する。
The Ethernet IF 391 supports the Ethernet communication protocol and performs data communication with the
The B IF 393 supports a USB communication protocol and performs data communication with, for example, a USB memory.
なお、図4に示されるプログラマブル表示器300を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、フラッシュROM314等のメモリに格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、プログラマブル表示器300の各ハードウェアの動作は周知であるために、詳細な説明は繰り返さない。
It should be noted that each of the constituent elements of the
<D.サーバ装置400のハードウェア構成>
図5は、サーバ装置400のハードウェア構成を示す模式図である。サーバ装置400は、典型的には、汎用のコンピュータで構成される。
<D. Hardware configuration of
FIG. 5 is a schematic diagram showing the hardware configuration of the
図5を参照して、サーバ装置400は、OSを含む各種プログラムを実行するCPU402と、BIOSや各種データを格納するROM(Read Only Memory)404と、CPU402でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM406と、CPU402で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)408とを含む。
Referring to FIG. 5, the
サーバ装置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へのファイルの転送(ダウンロード)も可能である。
<E. Outline of processing in
The
図6は、FTPクライアント通信命令の種類を説明するための図である。図6を参照して、PLC100は、FTPクライアント機能として、FTPサーバのファイル一覧の取得機能と、FTPサーバへのファイルアップロード機能と、FTPサーバからのファイルダウンロード機能と、FTPサーバのファイルの削除機能と、FTPサーバのディレクトリの削除機能とを有する。
FIG. 6 is a diagram for explaining the types of FTP client communication commands. With reference to FIG. 6, the
FTPサーバのファイル一覧の取得機能、FTPサーバへのファイルアップロード機能、FTPサーバからのファイルダウンロード機能、FTPサーバのファイルの削除機能、およびFTPサーバのディレクトリの削除機能を各々を実現するための命令(FTPクライアント通信命令)の名称を、それぞれ、「FTPGetFileList命令」、「FTPPutFile命令」、「FTPGetFile命令」、「FTPRemoveFile命令」、「FTPRemoveDir命令」と称する。 Instructions for realizing each of the FTP server file list acquisition function, the file upload function to the FTP server, the file download function from the FTP server, the file deletion function of the FTP server, and the directory deletion function of the FTP server ( The names of the FTP client communication command) are referred to as "FTPGetFileList command", "FTP Put File command", "FTP Get File command", "FTPRemoveFile command", and "FTPRemoveDir command", respectively.
FTPGetFileList命令、FTPGetFile命令、FTPPutFile命令、FTPRemoveFile命令、およびFTPRemoveDir命令の各々は、ファンクションブロックとして提供される。ユーザは、ユー
ザプログラム186に各々の命令を含めることができる。PLC100は、当該ユーザプログラム186を実行することにより、FTPクライアント機能を実現する。
Each of the FTPGetFileList command, FTPGetFile command, FTPPutFile command, FTPRemoveFile command, and FTPRemoveDir command is provided as a function block. The user can include each instruction in the
図7は、ユーザプログラム186の一例を表した図である。図7を参照して、ユーザプログラム186は、FTPGetFileList命令のファンクションブロックと、FTPPutFile命令のファンクションブロックとを含んでいる。
FIG. 7 is a diagram showing an example of the
同図に示したユーザプログラム186では、17時30分になり、かつ“Busy”でないことを条件に、FTPGetFileList命令が実行される。すなわち、PLC100は、サーバ装置400からファイル一覧を取得する処理を実行する。さらに、FTPGetFileList命令の実行が完了すると、FTPPutFile命令が実行される。すなわち、PLC100は、サーバ装置400にファイルを転送する処理を実行する。
In the
図8は、FTPGetFileList命令の入力変数および出力変数を説明するための図である。具体的には、図8(A)は、FTPGetFileList命令の複数の入力変数のうちの一部を説明する
ための図である。図8(B)は、FTPGetFileList命令の複数の出力変数のうちの一部を説
明するための図である。
FIG. 8 is a diagram for explaining input variables and output variables of the FTPGetFileList command. Specifically, FIG. 8A is a diagram for explaining a part of a plurality of input variables of the FTPGetFileList command. FIG. 8B is a diagram for explaining a part of a plurality of output variables of the FTPGetFileList command.
図8(A)を参照して、起動を意味する“Execute”は、FTPGetFileList命令の起動を
指定するための入力変数である。接続先のFTPサーバを意味する“ConnectSvr”は、FTPサーバのアドレスおよびポート番号と、ログイン用のユーザ名およびパスワードとを指定するための入力変数である。FTPサーバのディレクトリ名を意味する“SvrDirName”は、ファイル一覧を取得するFTPサーバのディレクトリを指定するための入力変数である。
Referring to FIG. 8 (A), “Execute” meaning activation is an input variable for designating activation of the FTPGetFileList instruction. “ConnectSvr”, which means the FTP server of the connection destination, is an input variable for designating the address and port number of the FTP server, and the user name and password for login. “SvrDirName”, which means the directory name of the FTP server, is an input variable for specifying the directory of the FTP server that acquires the file list.
図8(B)を参照して、完了を意味する“Done”は、正常終了(すなわち、読出しが完了)したことを表すための出力変数である。実行中を意味する“Busy”は、命令の実行中を表すための出力変数である。エラーを意味する“Error”は、異常終了したことを表す
ための出力変数である。
Referring to FIG. 8 (B), “Done” meaning completion is an output variable for indicating that the process is completed normally (that is, reading is completed). "Busy", which means that the instruction is being executed, is an output variable for indicating that the instruction is being executed. “Error”, which means an error, is an output variable for indicating that an abnormal end has occurred.
図9は、FTPPutFile命令の入力変数および出力変数を説明するための図である。具体的には、図9(A)は、FTPPutFile命令の複数の入力変数のうちの一部を説明するための図
である。図9(B)は、FTPPutFile命令の複数の出力変数のうちの一部を説明するための
図である。
FIG. 9 is a diagram for explaining input variables and output variables of the FTPPutFile command. Specifically, FIG. 9A is a diagram for explaining a part of a plurality of input variables of the FTPPutFile command. FIG. 9B is a diagram for explaining a part of a plurality of output variables of the FTPPutFile command.
図9(A)を参照して、起動を意味する“Execute”は、FTPPutFile命令の起動を指定
するための入力変数である。接続先のFTPサーバを意味する“ConnectSvr”は、FTPサーバのアドレスおよびポート番号と、ログイン用のユーザ名およびパスワードとを指定するための入力変数である。FTPサーバのディレクトリ名を意味する“SvrDirName”は、ファイル一覧を取得するFTPサーバのディレクトリを指定するための入力変数である。
Referring to FIG. 9 (A), “Execute” meaning activation is an input variable for designating activation of the FTPPutFile command. “ConnectSvr”, which means the FTP server of the connection destination, is an input variable for designating the address and port number of the FTP server, and the user name and password for login. “SvrDirName”, which means the directory name of the FTP server, is an input variable for specifying the directory of the FTP server that acquires the file list.
ローカルディレクトリ名を意味する“LocalDirName”は、FTPサーバへアップロードするファイルを格納しているディレクトリ(PLC100のディレクトリ)を指定するための入力変数である。ファイル名を意味する“FileName”は、アップロードするファイルのファイル名を指定するための入力変数である。ファイル名の指定は、ワイルドカードを用いることも可能である。 “LocalDirName”, which means a local directory name, is an input variable for designating a directory (a directory of the PLC 100) storing a file to be uploaded to the FTP server. “FileName”, which means a file name, is an input variable for specifying the file name of the file to be uploaded. A wild card can be used to specify the file name.
FTP実行オプションを意味する“ExecOption”は、FTP実行に関するオプションを指定するための入力変数である。たとえば、“ExecOption”は、上書きを許可するか否かを指定するための入力変数“OverWrite”を含む(図11参照)。 “ExecOption”, which means an FTP execution option, is an input variable for specifying an option related to FTP execution. For example, “ExecOption” includes an input variable “OverWrite” for designating whether or not to allow overwriting (see FIG. 11).
図9(B)を参照して、完了を意味する“Done”は、正常終了(すなわち、読出しが完了)したことを表すための出力変数である。実行中を意味する“Busy”は、命令の実行中を表すための出力変数である。エラーを意味する“Error”は、異常終了したことを表す
ための出力変数である。
Referring to FIG. 9 (B), “Done” meaning completion is an output variable for indicating that the process is completed normally (that is, reading is completed). "Busy", which means that the instruction is being executed, is an output variable for indicating that the instruction is being executed. “Error”, which means an error, is an output variable for indicating that an abnormal end has occurred.
<F.機能的構成>
図10は、PLC100の機能的構成を説明するための図である。図10を参照して、PLC100は、通信部1010と、設定部1020と、変数記憶部1030と、制御プログラム実行部1040と、取得部1050と、データ管理部1060と、通信部1070と、メモリカード172とを備えている。
<F. Functional configuration>
FIG. 10 is a diagram for explaining the functional configuration of the
取得部1050は、制御プログラム181(詳しくは、FTPクライアント通信命令以外の命令)を実行することによって各フィールド機器が制御されると、当該各フィールド機器から当該制御に基づくデータを周期的に取得する。
When each field device is controlled by executing the control program 181 (specifically, a command other than the FTP client communication command), the
データ管理部1060は、取得部1050によって取得されたデータをメモリカード172に書き込む。詳しくは、データ管理部1060は、取得部1050によって順次取得されたデータを、メモリカード172内に保存されている所定のファイルに順次書き込む。さらに詳しくは、データ管理部1060は、取得されたデータを予め定められた規則によって複数の互いに名称の異なるファイル(データ群)に分類することにより、当該データを管理する。これらはユーザが作成するユーザプログラムにおいて記述されることで実現される。
The
変数記憶部1030は、ユーザプログラムで参照する変数を格納する。変数記憶部1030は、FTPを利用する際に用いる複数の入力変数(FTP設定用の入力変数)と、当該各入力変数の値とが対応付けて記憶されている。具体的には、変数記憶部1030は、“ConnectSvr”、“SvrDirName”、“LocalDirName”、“FileName”等の入力変数と、各入力変数の値とが記憶されている。なお、「値」とは、着目する変数に関し、当該変数が指すものに相当する表現である。すなわち、値は、数値のみならず、数値以外の文字列を含む。なお、本実施の形態では、入力変数“ConnectSvr”として、FTPサーバのIPアドレスが利用される。
The
変数記憶部1030は、外部の機器に参照公開する属性を持つ変数と、内部で使用される属性を有する変数を有していても良い。 Variable storage unit 103 0, a variable with the attribute that references published to an external device, may have a variable having an attribute that is used internally.
制御プログラム実行部1040は、制御プログラム181を実行する。制御プログラム実行部1040は、制御プログラム181のユーザプログラム186に含まれるFTP通信命令と、制御プログラム181に含まれるその他命令とを実行する。その際、制御プログラム181は、図7に示したとおり、変数記憶部1030に記憶されている変数を入力変数として含む。つまり、制御プログラム181は、変数記憶部1030に記憶されてい
る変数の値を入力として利用する。さらに換言すれば、制御プログラム181は、変数を入力変数としてデータをサーバ装置400に送信する命令を含む。また、制御プログラム実行部1040は、FTPクライアント通信命令の実行結果を、通信部1070に通知する。
The control
通信部1070は、FTPサーバであるサーバ装置400と通信するためのインターフェイスである。通信部1070は、制御プログラム実行部1040の実行結果に応じた処理を実行する。たとえば、通信部1070は、FTPPutFile命令に基づくPut処理(FTPサーバにファイルを転送(アップロード))、FTPGetFile命令に基づくGet処理(FTPサーバからファイルを取得(ダウンロード))、FTPGetFilelist命令に基づくLs処理(FTPサーバからファイル一覧を取得)を実行する。
The
Put処理に着目すると、通信部1070は、変数記憶部1030に記憶された入力変数の値が入力されたときの制御プログラム181の実行結果に基づいて、入力変数“SvrDirName”により指定されたメモリカード172のディレクトリにおける、入力変数“FileName”により指定されたファイルを、入力変数“ConnectSvr”で指定されたFTPサーバ(本実施の形態ではサーバ装置400)の入力変数“SvrDirName”により指定されたディレクトリに転送(送信)する。このように、PLC100は、制御プログラム181の実行にあたり、命令が起動されると上記変数の値に基づいてデータをサーバ装置400に送信する。
Focusing on the Put process, the
Ls処理に着目すると、通信部1070は、変数記憶部1030に記憶された入力変数の値に対する制御プログラム181の実行結果に基づいて、入力変数“ConnectSvr”で指定されたFTPクライアント(本実施の形態ではサーバ装置400)の入力変数“SvrDirName”により指定されたディレクトリに含まれるファイル一覧を、当該FTPクライアントから取得する。
Focusing on the Ls process, the
通信部1010は、プログラマブル表示器300と通信するためのインターフェイスである。設定部1020は、ユーザ操作に伴うプログラマブル表示器300からの指令に基づき、変数記憶部1030に記憶された入力変数の値を設定(更新)する。
The
以上の構成によれば、PLC100は、フィールド機器から取得したデータをFTPによりファイルとしてサーバ装置400に送信する際に、FTPに用いられる変数の値を制御プログラムの入力変数とすることが可能となる。それゆえ、PLC100によれば、制御プログラム181の実行中であっても、FTPを利用する際に用いる変数の値を変更することが可能となる。
According to the above configuration, the
(f1.オプション処理について)
次に、FTPPutFile命令における入力変数“ExecOption”(図9(A))において上書き処理が禁止されている場合には、以下の処理が行なわれる。
(F1. About optional processing)
Then, when the overwriting process the input variables "Exe c Option" (FIG. 9 (A)) in FTPPutFile instruction is prohibited, the following process is performed.
制御プログラム実行部1040は、通信部1070によるサーバ装置400との通信によって、データ管理部1060によって付与された名称と同一名称のファイルがサーバ装置400に存在するか否かを、サーバ装置400から取得したファイル一覧に基づき判断する。詳しくは、制御プログラム実行部1040は、FTPGetFilelist命令に基づき取得したファイル一覧を利用して、FTPPutFile命令の入力変数“SvrDirName”により指定されたディレクトリ(サーバ装置400のディレクトリ)に、FTPPutFile命令の入力変数“LocalDirName”により指定されたディレクトリに含まれるファイルと重複しているファイルが存在しないか否かを判断する。
The control
通信部1070は、入力に対する前記制御プログラムの実行結果に基づいて、メモリカード172に記憶されているファイルのうち同一名称のファイルが存在すると判断されなかったファイルをサーバ装置400に送信する。詳しくは、通信部1070は、入力変数“LocalDirName”で指定されるディレクトリに含まれるファイルのうち、入力変数“SvrDirName”で指定されるディレクトリに同一名称のファイルが存在していないファイルを、サーバ装置400の入力変数“SvrDirName”で指定されるディレクトリに転送する。
The
(f2.入力変数の値の例)
図11は、FTPPutFile命令における複数の入力変数のうちの一部の入力変数の値を表した図である。なお、FTPPutFile命令を含むFTPクライアント通信命令における入力変数の値は、ユーザによって設定される。
(Example of value of f2. Input variable)
FIG. 11 is a diagram showing the values of some of the input variables in the FTPPutFile command. The value of the input variable in the FTP client communication command including the FTPPutFile command is set by the user.
図11を参照して、FTPサーバのIPアドレスを表す入力変数“ConnectSvr”の値、FTPサーバのディレクトリ名を表す入力変数“SvrDirName”の値、自装置(PLC100)のディレクトリ名を表す入力変数“LocalDirName”の値は、それぞれ、“192.168.250.1”、“\aaaaa\”、“\bbbbb\”である。 Referring to FIG. 11, a value of an input variable “ConnectSvr” that represents the IP address of the FTP server, a value of an input variable “SvrDirName” that represents the directory name of the FTP server, and an input variable “that represents the directory name of the own device (PLC100)”. The values of "LocalDirName" are "192.168.250.1", "\ aaaaa \", and " \ bbbbb \ ", respectively.
また、転送するファイル名は、ワイルドカードを用いて指定されている。具体的には、転送するファイル名の値は、入力変数“LocalDirName”の値(“\bbbbb\”)に含まれる全てのテキストデータ(“*.txt”)を表している。 The file name to be transferred is specified by using a wild card. Specifically, the value of the file name to be transferred represents all the text data (“* .txt”) included in the value of the input variable “LocalDirName” (“\ bbbbb \ ”).
入力変数“OverWrite”の値は、上書きを禁止する“FALSE”となっている。なお、上書きを許可する場合には、入力変数“OverWrite”の値は“True”となる。 The value of the input variable "Over W rite" prohibits the overwriting has become a "F ALSE". It should be noted that, in the case to allow the override, the value of the input variable "Over W rite" is the "True".
<G.制御構造>
図12は、FTPクライアント通信命令を実行するときに行なわれる処理流れの概略を表したフローチャートである。図12を参照して、ステップS2において、PLC100のプロセッサ120(図2)は、FTP用の入力変数の値を読み込む。ステップS4において、プロセッサ120は、入力変数の値に基づくユーザプログラム186の実行結果を出力する。ステップS6において、プロセッサ120は、クライアント通信命令をFTPに準拠した命令に変換(プロトコル変換)する。ステップS8において、プロセッサ120は、変換後の命令に応じた通信処理を実行する。
<G. Control structure>
FIG. 12 is a flowchart showing an outline of the processing flow performed when executing the FTP client communication command. With reference to FIG. 12, in step S2, the processor 120 (FIG. 2) of the
図13は、PLC100が図7に示したユーザプログラム186を実行する際の処理流れの概略を表したフローチャートである。すなわち、図13は、PLC100がFTPGetFilelist命令とFTPPutFile命令とをこの順に実行する際の処理の流れを表した図である。
FIG. 13 is a flowchart showing the outline of the processing flow when the
図13を参照して、ステップS102において、PLC100のプロセッサ120は、FTPGetFileList命令を実行する。具体的には、プロセッサ120は、入力変数“SvrDirName”で指定されたディレクトリ(以下、「ディレクトリDS」とも称する)に含まれるファイルのファイル一覧をサーバ装置400から取得する。なお、サーバ装置400は、入力変数“ConnectSvr”によって指定されたFTPサーバである。
With reference to FIG. 13, in step S102, the processor 120 of the
ステップS104において、プロセッサ120は、FTPPutFile命令の実行を開始する。ステップS106において、プロセッサ120は、入力変数“LocalDirName”で指定されたディレクトリ(以下、「ディレクトリDT」とも称する)に含まれるファイルのファイル一覧をメモリカード172から取得する。 In step S104, the processor 120 starts executing the FTPPutFile instruction. In step S106, the processor 120 acquires from the memory card 172 a file list of files included in the directory designated by the input variable “LocalDirName” (hereinafter, also referred to as “directory DT”).
ステップS108において、プロセッサ120は、予め規定された変数iの値を“1”とする。ステップS110において、プロセッサ120は、ディレクトリDTに含まれる
i番目のファイルとファイル名が一致するファイルがサーバ装置400のディレクトリDSに存在するか否かを、取得された2つのファイル一覧に基づいて判断する。
In step S108, the processor 120 sets the value of the variable i defined in advance to "1". In step S110, the processor 120 determines whether or not a file whose file name matches the i-th file included in the directory DT exists in the directory DS of the
プロセッサ120は、ファイルが存在しないと判断された場合(ステップS110においてNO)、ステップS112においてFTPによるファイル転送処理(Put処理)を実行する。ステップS114において、プロセッサ120は、転送済みのファイルとして当該ファイルのファイル名を、アップロードしたファイル結果を表す出力変数“PutFileResult”の値として出力する。プロセッサ120は、ファイルが存在すると判断された場
合(ステップS110においてYES)、ステップS120において、転送失敗のファイルとして当該ファイルのファイル名を出力変数“PutFileResult”の値として出力する。
When it is determined that the file does not exist (NO in step S110), the processor 120 executes the file transfer process (Put process) by FTP in step S112. In step S114, the processor 120 outputs the file name of the file as a transferred file as the value of the output variable “PutFileResult” representing the uploaded file result. When it is determined that the file exists (YES in step S110), the processor 120 outputs the file name of the file as the transfer-failed file as the value of the output variable “PutFileResult” in step S120.
ステップS116において、プロセッサ120は、変数iをインクリメントする。つまり、プロセッサ120は、iの値を1だけ増加させる。ステップS118において、プロセッサ120は、メモリカード172のディレクトリDTに含まれる全てのファイルのファイル名の出力処理が終了したか否かを判断する。すなわち、プロセッサ120は、FTPPutFile命令の実行が終了したか否かを判断する。プロセッサ120は、終了していないと判断した場合(ステップS118においてNO)、処理をステップS110に戻す。プロセッサ120は、終了したと判断した場合(ステップS118においてYES)、一連の処理を終了する。
In step S116, the processor 120 increments the variable i. That is, the processor 120 increases the value of i by 1. In step S118, the processor 120 determines whether the output processing of the file names of all the files included in the directory DT of the
図14は、図13のステップS112における処理の詳細を表したフローチャートである。図14を参照して、ステップS202において、プロセッサ120は、各入力変数(ConnectSvr,SvrDirName,LocalDirName,FileName等)の値を変数記憶部1030(図10)から読み出す。ステップS204において、プロセッサ120は、読み出した各変数の値が適正か否かを判断する。 FIG. 14 is a flowchart showing details of the process in step S112 of FIG. With reference to FIG. 14, in step S202, the processor 120 reads the value of each input variable (ConnectSvr, SvrDirName, LocalDir Name , FileName, etc.) from the variable storage unit 1030 (FIG. 10). In step S204, the processor 120 determines whether the read value of each variable is proper.
具体的には、PLC100は、ネットワークを構成するFTPサーバのIPアドレスを事前に認識しているため、プロセッサ120は、認識しているIPアドレスが入力されたか否かで、入力変数“ConnectSvr”で指定されるFTPサーバが存在するか否かを判断する。また、プロセッサ120は、上記FTPサーバが存在する場合において、入力変数“SvrDirName”で指定されるディレクトリが当該FTPサーバ内に存在するか否かを判断する。さらに、プロセッサ120は、入力変数“LocalDirName”で指定されるディレクトリがメモリカード172に存在するか否かを判断する。また、プロセッサ120は、入力変数“Filename”で指定されるファイルが、入力変数“LocalDirName”で指定されるディレクトリに存在するか否かを判断する。
Specifically, since the
プロセッサ120は、適正であると判断された場合(ステップS204においてYES)、ステップS206において、ファイルの転送処理を実行し、一連の処理を終了する。プロセッサ120は、適正でないと判断された場合(ステップS204においてNO)、一連の処理を終了する。 If the processor 120 determines that it is appropriate (YES in step S204), the processor 120 executes the file transfer process in step S206 and ends the series of processes. If the processor 120 determines that it is not appropriate (NO in step S204), it ends the series of processes.
<H.プログラマブル表示器の操作画面>
図15は、プログラマブル表示器300のタッチスクリーン318に表示される操作画面(UI:UserInterface)を表した図である。図15(A)は、FTPサーバを指定す
るための操作画面である。図15(B)は、Put処理の設定を行なうための操作画面である。図15(C)は、Get処理の設定を行なうための操作画面である。
<H. Programmable display operation screen>
FIG. 15 is a diagram showing an operation screen (UI: User Interface) displayed on the
図15(A)を参照して、プログラマブル表示器300は、FTPサーバを指定するために、入力変数“ConnectSvr”の値(具体的には、図8(A)および図9(A)に示したとおり、FTPサーバのIPアドレス、FTPサーバのポート番号、ユーザ名、パスワー
ド)の入力を受け付ける入力ボックス811,812,813,814をタッチスクリーン318に表示する。ユーザは、各入力ボックス811〜814に値を入力した後に設定ボタン818を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。
With reference to FIG. 15A, the
図15(B)を参照して、プログラマブル表示器300は、FTPクライアント(すなわち、PLC100)におけるディレクトリ名とファイル名とを指定するために、入力変数“SvrDirName”および入力変数“LocalDirName”の値の入力を受け付ける入力ボックス821,822をタッチスクリーン318に表示する。また、プログラマブル表示器300は、FTPサーバのディレクトリ名を指定するために、入力変数“SvrDirName”の値の入力を受け付ける入力ボックス823を表示する。
Figure 15 Referring to (B), the
ユーザは、各入力ボックス821〜823に値を入力した後に設定ボタン828を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。また、ユーザは、転送ボタン829を選択することにより、PLC100にPut処理を実行させることができる。これはユーザプログラムにおいて、HMIからの入力を受け付けた際にFTP命令が実行されることで実現される。
The user can set (update) the value of the variable stored in the variable storage unit 1030 (FIG. 10) of the
図15(C)を参照して、プログラマブル表示器300は、FTPクライアント(すなわち、PLC100)におけるディレクトリ名を指定するために、入力変数“LocalDirName”の値の入力を受け付ける入力ボックス831をタッチスクリーン318に表示する。また、プログラマブル表示器300は、FTPサーバのディレクトリ名とファイル名とを指定するために、入力変数“SvrDirName”および入力変数“FileName”の値の入力を受け付ける入力ボックス832,833を表示する。
Figure 15 Referring to (C), the
ユーザは、各入力ボックス831〜833に値を入力した後に設定ボタン838を選択することにより、PLC100の変数記憶部1030(図10)に格納されている変数の値を設定(更新)することができる。また、ユーザは、転送ボタン839を選択することにより、PLC100にGet処理を実行させることができる。これはユーザプログラムにおいて、HMIからの入力を受け付けた際にFTP命令が実行されることで実現される。
The user can set (update) the value of the variable stored in the variable storage unit 1030 (FIG. 10) of the
上述した変数の値を設定(更新)は、PLC100の設定部1020により実現される。変数の値の設定(更新)は、上述したように、制御プログラム181の実行中であっても行なわれる。これにより、ユーザは、制御プログラムの実行を中断することなく、FTPクライアント通信命令を変更することが可能となる。
Setting (updating) of the values of the variables described above is realized by the
<I.再判断処理>
図16は、FTPPutFile命令を実行した場合に、転送に失敗したファイルを送信するための処理を説明するための図である。すなわち、図16は、ファイル名が重複するためにファイルの転送を意図的に行なわなかったファイルについて、再度、ファイルの転送が可能であるか否かを判断する処理を説明するための図である。
<I. Re-judgment process>
FIG. 16 is a diagram for explaining a process for transmitting a file that has failed to be transferred when the FTPPutFile command is executed. That is, FIG. 16 is a diagram for explaining a process of determining again whether or not a file can be transferred for a file for which the file transfer was not intentionally performed due to a duplicate file name. .
図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”で指定されるディレクトリに記憶されているファイルを消去等した後に行なわれる。
Referring to FIG. 16, it is assumed that five files (X001.txt, X002.txt, X003.txt, X004txt, X005.txt) are designated by the input variable “FileName” in the FTPPutFile command. After that, by executing the FTPputFile command, transfer of three files (X001.txt, X003.txt, X005.txt) to the
すなわち、ユーザプログラム186は、複数のファイルのうち、同一名称のファイルがサーバ装置400の指定されたディレクトリに存在すると判断されなかったファイル(以下、「第1のファイル」とも称する)以外のファイル(以下、「第2のファイル」とも称する)の名称を入力としてさらに利用する。また、図10に示した制御プログラム実行部1040は、サーバ装置400との通信によって、第2のファイルと同一名称のファイルがサーバ装置400に存在するか否かを再度判断する。通信部1070は、制御プログラム実行部1040による再度の判断の結果、第2のファイルのうち同一名称のファイルが存在すると判断されなかったファイル(以下、「第3のファイル」とも称する)を、ユーザプログラム186の実行結果に基づいてサーバ装置400の指定されたディレクトリに送信する。
In other words, the
以上のように、PLC100が転送(送信)に失敗したファイルについて再度転送が可能か否かを自動的に行なうため、ユーザは、転送に失敗したファイルのファイル名を入力変数“FileName”の値として設定する必要がなくなる。
As described above, since the
<J.ユーザプログラムの変形例>
制御プログラム181を構成するユーザプログラム186から、各入力変数の値を書き換えることも可能である。図17は、ユーザプログラム186から各入力変数の値を書き換える構成を有するユーザプログラム186を表した図である。以下、一例として、FTPサーバを指定する点に着目して説明する。
<J. Modified example of user program>
It is also possible to rewrite the value of each input variable from the
図17を参照して、FTPPutFile命令の入力変数“ConnectSvr”には、FTPPutFile命令のファンクションブロックFB2の上のファンクションブロックFB1の出力変数“abc”
の値が入力される。また、ファンクションブロックFB1の入力変数として、FTPサーバのIPアドレス(“192.168.250.1”)が入力される。このように、制御プログラム1
81は、変数の値を設定するための記述であるファンクションブロックFB1を含む。なお、ファンクションブロックFB1には、IPアドレスとして、変数記憶部1030(図10)から読み出された値、またはプログラマブル表示器300から直接入力された値が入力される。
Referring to FIG. 17, the input variable “ConnectSvr” of the FTPPutFile command is set to the output variable “abc” of the function block FB1 above the function block FB2 of the FTPPutFile command.
The value of is input. Further, the IP address (“192.168.250.1”) of the FTP server is input as the input variable of the function block FB1. In this way, the
Reference numeral 81 includes a function block FB1 which is a description for setting the value of a variable. The value read from the variable storage unit 1030 (FIG. 10) or the value directly input from the
以上のように、PLC100は、FTPクライアント通信命令の入力変数の値として、当該FTPクライアント通信命令のファンクションブロックとは異なるファンクションブロックの出力変数を用いることができる。
As described above, the
<K.通信プロトコル>
なお、上記では、PLC100とサーバ装置400との間の通信に用いられる通信プロトコルの例として、FTPを例に挙げて説明したが、これに限定されるものではない。本発明は、PLC100とサーバ装置400との間のデータ通信に用いられる各種の通信プロトコルに適用可能である。
<K. Communication protocol>
In the above description, FTP has been described as an example of the communication protocol used for communication between the
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time are to be considered as illustrative in all points and not restrictive. The scope of the present invention is shown not by the above description but by the claims, and is intended to include meanings equivalent to the claims and all modifications within the scope.
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 ファンクションブロック。 1 control system, 10 the detection switch, 20 relays, 30 a servo motor driver, 32 a motor, 100 PLC, 102 power supply unit, 104 CPU units, 1 06 IO unit, 108 PLC system bus, 110 Fieldbus, 112 network, 114 connected Cable, 120 processor, 122 chip set, 124 system clock, 126 main memory, 128 non-volatile memory, 130 connector, 140 PLC system bus controller, 142, 152, 162 buffer memory, 144 PLC system bus control circuit, 146 , 156 166 DMA control circuit, 148 PLC system bus connector 150 fieldbus controller, 154 fieldbus control circuit, 158 a field bus connector, 160 Position communication controller, 164 upper communication control circuit, 168 a higher communication connector 170 memory card interface, 172 a memory card, 180 OS, 181 control program, 184 operation log, 186 user program 188 system program, 190 sequence instruction program 192 FTP Processing program, 194 Input / output processing program, 196 Tool interface processing program, 198 Scheduler, 200 remote IO terminal, 202 communication coupler, 208 remote IO terminal bus, 300 programmable display, 311,402 CPU, 318 touch screen, 319 communication interface , 381 display, 382 touch panel, 400 server device, 811 to 814, 821 to 823 831 to 833 input box, 818, 828, 838 setting button, 829, 839 transfer button, 1010, 1070 communication unit, 1020 setting unit, 1030 variable storage unit, 1040 control program execution unit, 1050 acquisition unit, 1060 data management unit, FB1, FB2 Function block.
Claims (8)
前記ユーザプログラムを周期的に実行する実行手段と、
前記予め定められた機器から前記制御に基づくデータを取得する取得手段と、
予め定められた通信プロトコルを用いて前記サーバ装置と通信する第1の通信手段と、
前記通信プロトコルを利用する際に用いる変数と、前記変数の値とを対応づけて記憶するための記憶手段とを備え、
前記ユーザプログラムは、前記変数を入力変数として前記データを前記サーバ装置に送信する命令を含み、
前記ユーザプログラムの実行によって前記命令が起動されると、前記変数の値に基づいて前記データを前記サーバ装置に送信する、制御装置。 A control device that communicates with a server device and controls a predetermined device by executing a user program,
Executing means for periodically executing the user program,
Acquisition means for acquiring data based on the control from the predetermined device,
First communication means for communicating with the server device using a predetermined communication protocol;
A variable used when using the communication protocol, and a storage unit for storing the value of the variable in association with each other,
The user program includes an instruction for transmitting the data to the server device using the variable as an input variable,
Wherein when the execution of the user program Therefore the command is activated, to transmit the data to the server apparatus based on the value of the variable control device.
前記プログラマブル表示器からの指令に基づき、前記変数の値を設定する設定手段とをさらに備える、請求項1に記載の制御装置。 Second communication means for communicating with the programmable display;
The control device according to claim 1, further comprising: a setting unit that sets a value of the variable based on a command from the programmable display.
前記第1の通信手段は、前記入力に対する前記ユーザプログラムの実行結果に基づいて、前記変数で指定されたデータの名称を有するデータを前記サーバ装置に送信する、請求項1〜4のいずれか1項に記載の制御装置。 The variable includes the name of the data,
The first communication unit transmits data having a data name designated by the variable to the server device based on an execution result of the user program with respect to the input. The control device according to item.
前記管理手段は、前記データ群をファイルとして管理し、
前記通信プロトコルは、ファイル転送プロトコルである、請求項1〜5のいずれか1項に記載の制御装置。 Further comprising management means for managing the acquired data by classifying the acquired data into a plurality of data groups having different names according to a predetermined rule,
The management means manages the data group as a file,
The control device according to claim 1, wherein the communication protocol is a file transfer protocol.
前記変数は、前記ファイルの名称を含み、The variable includes the name of the file,
前記ユーザプログラムは、複数の前記ファイルの各々の名称を、前記変数として前記命令に入力し、The user program inputs the name of each of the plurality of files to the command as the variable,
前記実行手段は、各前記変数が前記命令に入力されたことに基づき、前記複数のファイル毎に、同一名称のファイルが前記サーバ装置の指定されたディレクトリに存在するか否かを判断し、The execution means determines whether or not a file with the same name exists in a specified directory of the server device for each of the plurality of files, based on each of the variables being input to the command,
前記ユーザプログラムは、前記複数のファイルのうち、同一名称のファイルが前記ディレクトリに存在すると判断された第1のファイルの名称を、前記変数として前記命令に再度入力し、 The user program re-inputs the name of the first file, of the plurality of files, which is determined to have a file with the same name in the directory, as the variable into the command.
前記実行手段は、前記変数が前記命令に再度入力されたことに基づき、前記第1のファイルと同一名称のファイルが前記ディレクトリに存在するか否かを再度判断し、The execution means again judges whether or not a file having the same name as the first file exists in the directory based on the variable being input again in the command,
前記第1の通信手段は、前記第1のファイルと同一名称のファイルが前記ディレクトリに存在しないと判断されたことに基づき、前記第1のファイルを前記サーバ装置に送信する、請求項1から3のいずれか1項に記載の制御装置。The first communication means transmits the first file to the server device based on the determination that a file having the same name as the first file does not exist in the directory. The control device according to any one of 1.
前記制御装置のプロセッサが、前記ユーザプログラムを周期的に実行するステップと、
前記プロセッサが、前記予め定められた機器から前記制御に基づくデータを取得するステップと、
前記プロセッサが、予め定められた通信プロトコルを用いて前記サーバ装置と通信するステップとを備え、
前記制御装置は、前記通信プロトコルを利用する際に用いる変数と、前記変数の値とを対応づけて記憶しており、
前記ユーザプログラムは、前記変数を入力変数として前記データを前記サーバ装置に送信する命令を含み、
前記通信制御方法は、前記ユーザプログラムの実行によって前記命令が起動されると、前記変数の値に基づいて前記データを前記サーバ装置に送信するステップをさらに備える、通信制御方法。 A communication control method in a control device for controlling a predetermined device by communicating with a server device and executing a user program,
A processor of the control device periodically executing the user program;
The processor obtaining data based on the control from the predetermined device;
The processor communicates with the server device using a predetermined communication protocol,
The control device stores a variable used when using the communication protocol and a value of the variable in association with each other,
The user program includes an instruction for transmitting the data to the server device using the variable as an input variable,
The communication control method, when run on a result the command of the user program is started, further comprising the step of transmitting the data to the server apparatus based on the value of the variable, the communication control method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018115872A JP6680313B2 (en) | 2018-06-19 | 2018-06-19 | Control device and communication control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018115872A JP6680313B2 (en) | 2018-06-19 | 2018-06-19 | Control device and communication control method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013270477A Division JP6357770B2 (en) | 2013-12-26 | 2013-12-26 | Control device and communication control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018139162A JP2018139162A (en) | 2018-09-06 |
JP6680313B2 true JP6680313B2 (en) | 2020-04-15 |
Family
ID=63451240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018115872A Active JP6680313B2 (en) | 2018-06-19 | 2018-06-19 | Control device and communication control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6680313B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116075784A (en) | 2020-09-16 | 2023-05-05 | 发那科株式会社 | PLC device and industrial machinery system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003296217A (en) * | 2002-04-03 | 2003-10-17 | Canon Inc | Communication terminal device and its control method |
JP5358340B2 (en) * | 2009-08-07 | 2013-12-04 | 株式会社キーエンス | Programmable controller |
JP5891891B2 (en) * | 2012-03-27 | 2016-03-23 | オムロン株式会社 | Information processing apparatus, information processing method, and program |
-
2018
- 2018-06-19 JP JP2018115872A patent/JP6680313B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018139162A (en) | 2018-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6357770B2 (en) | Control device and communication control method | |
CN112602025B (en) | Automatic setting of digital twinning of industrial controllers | |
WO2015136959A1 (en) | Control system, method, program and information processing device | |
US10120030B2 (en) | Trace data recording system, trace data recording server, trace data recording method, and information storage medium | |
US10705500B2 (en) | Support device, method, and recording medium for simplifying control program changing operation | |
CN107407922B (en) | Programmable logic controller, method of controlling the same, and recording medium | |
JP2002268707A (en) | Controller and tool, and system constituted of the same | |
JP2016012172A (en) | Communication system, programmable display, information processing device, operation control method, information processing method, and program | |
JP6477178B2 (en) | PLC control data generation device, PLC control data generation method, and PLC control data generation program | |
JP6442131B2 (en) | Control system and control device | |
JP6680313B2 (en) | Control device and communication control method | |
US11199993B2 (en) | Control system, development assistance device, and development assistance program | |
JP6135247B2 (en) | Information processing apparatus and information processing program | |
JP6705464B2 (en) | Control device and communication control method | |
TW202014887A (en) | Device control method, control apparatus, and system | |
JP6357769B2 (en) | Control device and communication control method | |
CN114127646B (en) | Support device, recording medium for supporting program, and setting method | |
JP2019197449A (en) | Apparatus management system and tag name verification method | |
JP5951041B2 (en) | Programmable display | |
US20200374198A1 (en) | Control method, control device, control system and recording medium | |
JP2020021157A (en) | Support device and support program | |
CN116917818A (en) | Development support device, development support method, and development support program | |
JP2020129321A (en) | Cloud server device | |
JP2024130006A (en) | SUPPORT DEVICE, CONTROL METHOD, AND SUPPORT PROGRAM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
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 | Written amendment |
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 |