今回の記事ではOMRON NX5からFTP ServerのFILEとFolderを削除するFBやプログラムを説明します。
- FTPRemoveDir
- FTPRemoveFile
さ、FAを楽しもう!

Reference Link
FB記事で使用したFC・FB・構造体
最初に今回記事で使用するFBを紹介します。
FTPRemoveFile?
FTPRemoveFileインストラクションは、接続中のFTPサーバー ConnectSvr 上の指定ディレクトリ SvrDirName において、FileName で指定されたファイルを削除します。
FileName にはワイルドカードを使用することができ、複数のファイルを一度に削除することが可能です。
ファイルの削除結果は、ファイルごとに RemoveFileResult[] に格納されます。削除するファイル数は RemoveNum に格納してください。FileName にワイルドカードを使用する場合は、ワイルドカードに一致するファイル数を格納してください。実際に削除されたファイル数が異なる場合、RemoveFileResult[].RemoveError の値が TRUE に変わります。

VAR_INPUT
名前 | 意味 | 説明 |
|---|---|---|
ConnectSvr | 接続済みFTPサーバー設定 | 接続済みFTPサーバーの設定パラメータ |
SvrDirName | FTPサーバーディレクトリ名 | 削除対象ファイルが格納されているFTPサーバーのディレクトリ名 |
FileName | ファイル名 | 削除するファイル名※5 |
ExecOption | FTP実行オプション | FTP実行のオプション |
RetryCfg | 実行リトライ設定 | インストラクション実行リトライ設定 |
Cancel | キャンセル | TRUE:インストラクションの実行をキャンセルします。 FALSE:インストラクションの実行をキャンセルしません。 |
VAR_IN_OUT
名前 | 意味 | 説明 |
|---|---|---|
RemoveFileResult [] | 削除ファイル結果 | 削除ファイル結果 |
VAR_OUT
名前 | 意味 | 説明 |
|---|---|---|
CommandCanceled | キャンセル完了 | TRUE:キャンセルが完了しました。FALSE:キャンセルが完了していません。 |
RemoveNum | 削除するファイル数 | 削除するファイル数 |
FTPRemoveDir?
FTPRemoveDirインストラクションは、接続中のFTPサーバー ConnectSvr 上の、削除対象ディレクトリを含むディレクトリ SvrDirName から、指定されたディレクトリ RemoveDirName を削除します。
インストラクションの Done の値が TRUE に変わった時点で、指定ディレクトリの削除はすでに完了しています。
ディレクトリの削除に失敗した場合、Error の値が TRUE に変わります。
ConnectSvr のデータ型は構造体 _sFTP_CONNECT_SVR です。

VAR_INPUT
名前 | 意味 | 説明 |
|---|---|---|
ConnectSvr | 接続済みFTPサーバー設定 | 接続済みFTPサーバーの設定パラメータ |
SvrDirName | FTPサーバーディレクトリ名 | 削除対象ディレクトリが格納されているFTPサーバーのディレクトリ名 |
RemoveDirName | 削除するディレクトリ | 削除するディレクトリ |
RetryCfg | 実行リトライ設定 | インストラクション実行リトライ設定 |
Cancel | キャンセル | TRUE:インストラクションの実行をキャンセルします。FALSE:インストラクションの実行をキャンセルしません。 |
CommandCanceled | キャンセル完了 | TRUE:キャンセルが完了しました。FALSE:キャンセルが完了していません。 |
VAR_OUTPUT
名前 | 意味 | 説明 |
|---|---|---|
CommandCanceled | キャンセル完了 | TRUE:キャンセルが完了しました。FALSE:キャンセルが完了していません。 |
Implementation1
最初にFTPRemoveFileのプログラムを作成します。

オムロン側
Sysmac Studioのプログラムを作成してきます。
p03FTPRemoveFile
こちらはImplementation1のプログラムになります。

Rung01
xFTPRemoveFile の立ち上がりエッジで Clear インストラクションが実行されます。arrsDeleteFileResult を InOut に接続し、FTPファイル操作結果データをクリアします。処理結果は再び arrsDeleteFileResult に出力されます。

Rung02
xFTPRemoveFile の立ち上がりエッジで fbFTPRemoveFile(FTPRemoveFile インストラクション)が実行されます。
接続済みFTPサーバー設定 sFTP_CONNECT_SVR、ディレクトリ ‘/home/recomputer/dataFromOMRON’、削除対象ファイル名 strFTPRemoveFileName を入力とし、削除結果を arrsDeleteFileResult に格納します。
実行状態・エラー情報はそれぞれ xfbFTPPutFileBusy、xfbFTPPutFileError、uifbFTPPutFileErrorID 等の変数で管理されます。

Rung03
fbFTPRemoveFile.Done、fbFTPRemoveFile.Error、xConfigError のいずれかがTRUEになると、xFTPRemoveFile をリセットします。

Implementation2
次はFTPRemoveDirのプログラムを作成します。

オムロン側
Sysmac Studioのプログラムを作成してきます。
p04FTPRemoveDir
こちらはImplementation2のプログラムになります。

Rung01
xFTPRemoveDir の立ち上がりエッジで Clear インストラクションが実行され、arrsDeleteDirResult をクリアします。

Rung02
xFTPRemoveDir の立ち上がりエッジで fbFTPRemoveDir(FTPRemoveDir インストラクション)が実行されます。接続済みFTPサーバー設定 sFTP_CONNECT_SVR、ディレクトリ ‘/home/recomputer/dataFromOMRON’、削除対象ディレクトリ名 strFTPRemoveDirName を入力とし、実行状態・エラー情報はそれぞれ xfbFTPRemoveDirBusy、xfbFTPRemoveDirCommandCanceled、xfbFTPRemoveDirError、uifbFTPRemoveDirErrorID、uifbFTPRemoveDirErrorIDEx で管理されます。

Rung03
fbFTPRemoveDir.Done、fbFTPRemoveDir.Error、xConfigError のいずれかがTRUEになると、xFTPRemoveDir をリセットします。

結果
最初にSysmac StudioからNX5にインストールされているSD Memory Cardの中身を確認します。

最初に前回の記事で使用したFTPPutFileで新しいFILEをFTP ServerをUploadします。

Done!

またFILEを一括でFTP ServerにUploadします。


Done!


次は今回記事で使用するFTPRemoveFile FBでFTP ServerのFILEを削除します。

Done!

また、下図のように10のFILEを作成し削除しました。

ConsoleからもFTP ServerのFromOMRON Folderも空になりました。

また、arrdeleteFileResultの配列にも削除されたすべてのFileの情報にも格納されました。
