投稿

プロトコル通信(EtherNET)(FX5-UJ内蔵型の例)

イメージ
 ●条件  ・FX5-UJ EtherNET内蔵型  *内蔵型とEthernetユニットでは、命令形が異なります。 ●設定 まずはEthernetの設定 「ナビゲーション」→「パラメータ」→省略→「Ehternetポート」を開き 「IPアドレス」を入力、「相手機器接続構成設定」をダブルクリック 下図、右のユニット一覧から接続機器を左下の絵へドロップ するとコネクションが追加される(下図では3つ接続) こちらが「クライアント(マスタ)」タイプなら「Active接続機器」になると思います。 FX5が相手に対して通信開始を宣言します。宣言が必要ないなら「UDP」など。 交信手段を「通信プロトコル」に変更。 UDP接続機器  UDP/IPで相手機器と交信する場合に選択します。 Active接続機器  CPUユニットから相手機器に対してオープン処理を行い(Activeオープン),TCP/IPで交信する場合に選択します。 Unpassive接続機器  不特定の相手機器からのオープン処理を受けて(Unpassiveオープン),TCP/IPで交信する場合に選択します。 Fullpassive接続機器  特定の相手機器からのオープン処理を受けて(Fullpassiveオープン),TCP/IPで交信する場合に選択します。 アドレスとポートを、相手機器の手順書に従い設定。これでユニットの設定は終わり。 次にプロトコル通信支援機能の設定 「ツール」→「通信プロトコル支援機能」を開き、「Ethernet(CPU)」でOK 新規で開いて、下から追加をクリック 新規追加でOK 「構成要素未設定」をクリックし、「パケット設定」画面を開く 下の「新規追加」から「構成要素種別」を選択 ここで、ヘッダーのように固定データなら「固定データ」、 返信で数値やON/OFF状態を返すなら「変数無し変数」を選択 下は固定でHEXを送信する場合 下は変数無し変数で、2byte 固定データの場合 三菱はバイト入替えが必要な場合が多い 例えばデータメモリで1bit目がONするところ、16bit目がONしていたら逆。 応答を無視するなら「照合なし受信」で、データ長のみ入力 設定値の例として、とある手順書には以下のように記載されている 上段16進を送信側の設定値に書き込む。全...

GXWIRKS3 - ログファイル名を日付にする(SP.FWRITE使用)

イメージ
  別記事 で"SP.FWRITE"の説明を行いましたが、「で、どう使うの?」という記事 ○ファイル作成条件  ・ファイル名を日付分けする  ・ヘッダー有り フローとしては、 「日付取得」→「ファイル有無確認」→無「ヘッダー書き込み」→「データ出力」                                                             →有「データ出力」 ○日付取得 "TRD Dxxx"  "TRD D100"にて、D100から yy, mm, dd, hh, mm, ssと順番に出力します。  注意点は 桁数が不定 。9月なら"9"のみ出力されます。  桁数を合わせるには、"BINDA"で文字列に変換後、"LEN"にて文字数を取得し、"=1"時に"$+P"で0を追加する *BINDAに関して、SM705については記事下 ○ファイル確認 詳細は 別記事 の"SP.FSTATUS"参照。 "SP.FSTATUS U1, K2, D100, D200, D300, M1" D100 ファイルなら"K0"、フォルダなら"K1" D101 成功時 "0000H" D200 Unicode化したファイル名("SJIS2WSB d1 d2") D300 nullでよい。(ファイル状態の格納場所) M1    動作終了でM1=ON、エラーでM2=ON M2=ON(エラー)ならヘッダー書き込み、M2=OFFならログ書き込みへ "CALL"により分岐させれば良い。 ○書き込み 詳細は 別記事 参照。 注意点は、上の"SP.FSTATUS"のファイル名と同名にすること。 *BINDAに関して、SM705について

GXWORKS3 - Excelのシリアル値(日付)出力は出来ません

イメージ
 三菱PLCでは、Excelで日付管理に使用される「シリアル値」変換が出来ません。 "TRD"で読み出すしかありません。月などが1桁(1-9)の場合は1桁で出力されます。 2桁で揃えたい場合は"LEN"で文字数を読み取り、条件分けし追加します。

三菱GOT - USBコードスキャナ使い方

イメージ
  ○前提     ・GT27, 25, 2107Wであること(USBホストを有すること)     ・スキャナがUSBキーボード(HID)を有すること     ・以下の画面はGT2107W ●設定手順     「GOTセットアップ」>「USBホスト」を開く     「USBホスト設定を更新する」にチェック     「周辺機器の設定」>「バーコード」を開く     USBタブで以下を参考に設定する ●デバイス設定について    ・ デバイス      データ格納先。点数でメモリ数を指定。ASCIIで送信されるため注意。      PLC制御の場合は、局番を設定する。PLC1台-GOT1台なら1-2になる。     ・通知デバイス       bit6を出力として使用。データを読み込むとONになり、次が読み取れなくなる。      OFFにするために、次の制御デバイスを操作する。       ・制御デバイス     通知デバイスb6をOFFにするために、制御デバイスb6をON→OFFする。 プログラムとしては、  1. 読み取り  2. 通知デバイスb6 ON    ←入力トリガとする  3. 読み取りデータのMOV移動  ←リセットするために退避させる  4. 制御デバイスb6 ON    ←通知デバイスb6がOFFする  5. 制御デバイスb6 OFF ←ONに合わせたタイマーでOFFすると良い  6. 読み取りデータ消去

GXWORKS3 - CALL

イメージ
 "CALL"の使い方 ○流れ  1. メインプログラムで"CALL"を宣言、最後に"FEND"を宣言  2. 待機プログラムを作成  3. 待機プログラムの先頭にポインタを設定、最後に"RET"を宣言 FEND, RETは必須 CALL内にCALL可能

GXWORKS3 - SP.FWRITE, SP.FREADなどのファイルアクセスについて

イメージ
 三菱電機 FX5, IQ-Rにはログ出力機能があるが、制限が多いため"SP.FWITE"を使用することとした。 参考 FX-5 プログラミングマニュアル "jy997d54701w" ○概要 SDカードにcsvファイルを書き込み、または読み出しする方法 "SP.FWRITE", "SP.FREAD", "SP.FSTATUS" *シミュレーションではエラーが出ます ログを書き出す際は、以下の手順になると思います。 STATUSにてファイルの有無確認→無いならヘッダー書き込み→ログデータ書き込み ●書き込み "SP.FWRITE"  - ページ505 (U) = U1  ←基本U1、複数個使用しエラーが出たらU2, U3に (s1) = K2  ←SDカードしか使えないため、SDカードの"2"固定 (d1)  ←ファイル設定。デバイスメモリを8個使用、例)D100-D107  D100 文字列csv出力 なら "0130H(K304)" 指定  D101 設定不要。書き込み結果が出力される。"0000H"で成功、その以外エラー  D102 設定不要。書き込みデータ数が出力される。  D103 基本 "0" 、文字を連続で同セルに書き込む場合のみ"1"  D104 データ追加なら "FFFFH(K-1)" 、ファイルの先頭からなら"0"  D105 データ追加なら "FFFFH(K-1)" 、ファイルの先頭からなら"0"  D106 何列書き込んで改行するか。A-Cセルなら"K3".A-Gなら"K7"  D107 csvは "K2" 指定 (s2)  ←ファイル名を格納。記述式 "\folder1\folder...\filename.csv" .csvは省略可。   デバイスアドレス指定なら形式をUnicodeに変換する必要があり、1文字1ワード必要   命令"SJIS2WS ...