今回の記事ではOMRON NX5からFTP ServerにFILEを転送するためのFTPPutFile FBやプログラムを説明します。
- FTPPutFile
さ、FAを楽しもう!

前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
技術は独り占めせず、届けるもの
私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。
また、もしあなたの現場で…
- 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
- 「EtherCAT通信でうまくいかない部分を検証してほしい」
- 「新しいリモートI/Oを試したいけど社内に検証環境がない」
など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。
支援のかたち
現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。
メンバーシップ(ラジオの応援)
Fullさんとのラジオをより充実させるための支援プランです。
https://note.com/fulhause/membership/join
Amazonギフトリスト
コンテンツ制作に必要な機材・書籍をリストにしています。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon(ブログ・動画活動への応援)
月額での小さなご支援が、記事の執筆・検証環境の充実につながります。
https://www.patreon.com/user?u=84249391
Paypal
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
Reference Link
FC・FB・構造体
最初に今回記事で使用したFC・FB・構造体を紹介します。
FTPPutFile
FTPPutFile 命令は、SDメモリカード内の LocalDirName で指定したフォルダにある FileName のファイルを、接続先FTPサーバー ConnectSvr の SvrDirName で指定したフォルダへアップロードします。
- FTPサーバー上に SvrDirName で指定したフォルダが存在しない場合は、新しく作成してからファイルをアップロードします。
- FileName にはワイルドカードを指定できるため、複数のファイルをまとめてアップロードすることも可能です。アップロード結果は、ファイルごとに PutFileResult[] に保存されます。また、アップロード対象のファイル数は PutNum に設定します。
- FileName にワイルドカードを使用する場合は、その条件に一致するファイル数を PutNum に設定してください。
- 実際に転送されたファイル数が一致しなかった場合は、PutFileResult[].TxError が TRUE になります。
- アップロード後に元ファイルの削除でエラーが発生した場合は、PutFileResult[].RemoveError が TRUE になります。

VAR_INPUT
パラメータ | 意味 | 説明 |
|---|---|---|
ConnectSvr | 接続先FTPサーバー設定 | 接続するFTPサーバーの設定パラメータを指定します。 |
SvrDirName | FTPサーバーのディレクトリ名 | ファイルをアップロードするFTPサーバー上のディレクトリ名を指定します。 |
LocalDirName | ローカルディレクトリ名 | FTPサーバーへアップロードするファイルを保存しているローカル側のディレクトリ名を指定します。 |
FileName | ファイル名 | アップロードするファイル名を指定します。 |
ExecOption | FTP実行オプション | FTP実行時のオプションを指定します。 |
RetryCfg | 再実行設定 | 命令の再実行に関する設定を指定します。 |
Cancel | キャンセル | TRUE のとき命令を中止し、FALSE のとき命令は中止されません。 |
VAR_IN_OUT
パラメータ | 意味 | 説明 |
|---|---|---|
PutFileResult[] 配列 | アップロードファイル結果 | アップロードしたファイルの結果を格納します。 |
VAR_OUT
パラメータ | 意味 | 説明 |
|---|---|---|
CommandCanceled | キャンセル完了 | TRUE のときキャンセル完了、FALSE のときキャンセル未完了を示します。 |
PutNum | アップロードファイル数 | アップロードするファイル数を指定します。 |
Implementation
これでプログラムを作成しましょう。
OMRON側
こちらはImplementation1のプログラム部分です。

こちらは今回記事で作成したプログラムです。

Rung01
xFTPPutFile の立ち上がりを検出したとき、Clear 命令により arrsPutFileResult を初期化する。これにより、FTPファイル送信処理の実行前に結果格納用配列をクリアし、前回実行時の結果が残存しないようにする。

Rung02
xFTPPutFile のONし、/data 内の指定ファイルをFTPサーバーの /home/recomputer/datafromOMRON へアップロードする処理。

Rung03
fbFTPPutFile.Done、fbFTPPutFile.Error、または xConfigError のいずれかが成立した場合、xFTPPutFile をリセットする。
これにより、FTPファイル送信処理の完了時または異常発生時に実行要求を解除し、再実行待ち状態へ移行する。

結果
それにより、SD CARDのFILEをすべてFTP SERVERに転送しました。