切屑堂 kirikuzudo

ブログ: 2023/03/20 FR-E720 を FX5U から インバータ通信(RS-485) で使うときによく使う命令とかのまとめ

前に書いたエントリにインバータ通信命令の解説がなかったので、追加することにしました。 FR-E720 は2023年10月に生産終了なんでいまさらですが、 まあ、後継のFR-E820でもRS-485経由の可能性はワンチャンあるので、 メモがてら残しておこうと思います。 FX5Uはまだ現役ですし、相手がFR-A820とかでも使えるみたいですし。 <インバータ側の命令コード> インバータ側で実行される命令コードがあり、 これをシーケンサ側からキックしてやるような形になっています。 よく使うの下記でしょうか。  ・運転監視系の命令コード   H7B:運転モードの読み出し   H6F:出力周波数の読み出し   H70:出力電流の読み出し   H71:出力電圧の読み出し   F6D:設定周波数(RAM)の読み出し   F6E:設定周波数(EEPROM)の読み出し  ・運転制御系の命令コード   HFB:運転モード   HFA:運転指令   HED:設定周波数(RAM)の書き込み   HEE:設定周波数(EEPROM)の書き込み   HFD:インバータリセット <シーケンサ側の特殊デバイス> FX5Uシーケンサ側でインバータ通信(RS-485)関連の特殊デバイスがあり、 これを使って処理のタイミングを取ります。 よく使うの下記でしょうか。(FX5Uシリーズ専用です)   SM8029:命令実行完了[R]   SM8920:インバータ通信中(Ch1)[R]   SM8500:シリアル通信エラー(CH1)[R]   ※おしりの[R]は読み取り専用 <シーケンサ側での命令> ちょっと不思議な感じもしますが、インバータと通信してる間は インバータ通信命令の接点をONにし続けないといけないので、 ラダーの基本パターンは下図のようになります。 SETとRSTで内部リレーをパカパカしていく感じで通信命令を つないでいくことになります。 あと、通信命令は9600bpsだと500~800[msec]ぐらいかかるので、 それぐらいの時間感覚で余裕をもったほうが安全かと思います。 シーケンサ側でのインバータ通信命令でよく使う基本命令は 下記の4つになります。 (他にもありますが、あんまり使わないので省略)   IVCK:インバータの運転監視   IVDR:インバータの運転制御   IVRD:パラメータ読み出し   IVWR:パラメータ書き込み <IVCK命令>  IVCK [s1] [s2] [d1] [n1] [d2]  s1:インバータの局番  s2:インバータの命令コード  d1:読み出し値の格納先  n1:通信ch  d2:命令実行状態の出力先  インバータの局番が「0」なら s1 には K0 を入れる感じです。  出力周波数を見たいときは H6F 、出力電流を見たい時は H70 を  s2 に入れます。  d1 は読み出し値を格納するデータレジスタを指定します。  K2M100 みたいにビットデバイス桁指定で使用することもできます。  (ビットデバイスに放り込んでおくと、展開が楽なので)  (ビットデバイス桁指定については末尾に記載)  n1 は通信chで、FX5U側のRS-485ポートの何番目を使っているかです。  内蔵だったら ch1 なので K1 で固定です。  d2 は命令実行状態の出力先で、  d2 は実行中、d2+1 は正常完了、d2+2 は異常完了です。  d2 から3つも使うのでダブらせないように注意です。  この命令でよく使うのはステータスモニタ(H79)でしょうか。    IVCK K0 H079 K4M300 K1 M1000  とやると、  H79の内容がM300からM315まで展開されます。  H79の各bitは下図になるので、  RUN中はM300、正転 or 逆転 は M301 と M302 で判定できます。  ちなみにこの図はFR-E720のマニュアルのほうを見ないと出てこないので、  すごく面倒ですね。。。 <IVDR命令>  IVDR [s1] [s2] [s3] [n1] [d2]  s1:インバータの局番  s2:インバータの命令コード  s3:制御値の格納先  n1:通信ch  d2:命令実行状態の出力先  s1,s2,n1,d2 は IVCK命令と変わらないので省略です。  s3 は 制御につかう値を入力します。  運転速度を切り換えたり、運転開始/停止によく使います。  MOV K3000 D1000 で D1000 に 30.00[Hz]を入れて、    IVDR K0 H6D D1000 K1 M1010  とやると、  インバータの設定周波数(RAM)に30.00[Hz]が反映されます。  また、起動時のイニシャライズに下記のような使い方をしたりします。  まず、インバータリセット(HFD)を使います。  H9696は固定の引数です。    IVDR K0 HFD H9696 K1 M1020  これに続けて、運転モード設定(HFB)を使います。  H0はネットワーク運転モードです。    IVDR K0 HFB H0 K1 M1030 <IVWR命令>  IVWR [s1] [s2] [s3] [n1] [d2]  s1:インバータの局番  s2:インバータのパラメータ番号  s3:制御値の格納先  n1:通信ch  d2:命令実行状態の出力先  s1,n1,d2 は IVCK命令と変わらないので省略です。  s2 はインバータのパラメータ番号です。  「Pr.xxx」という、インバータのパネルで行う設定ですね。  例えば、上限周波数を決めるのは Pr.1 になりますので、  上限周波数を 70.00[Hz] にするには、    IVWR K0 K1 K7000 K1 M1030  とやります。 <IVRD命令>  (IVDR命令と間違いやすいのがつらいですね……)  IVRD [s1] [s2] [s3] [n1] [d2]  s1:インバータの局番  s2:インバータのパラメータ番号  s3:制御値の格納先  n1:通信ch  d2:命令実行状態の出力先  s1,n1,d2 は IVCK命令と変わらないので省略です。  こちらも s2 はインバータのパラメータ番号です。  IVWR命令をする前の確認や書き込んだ後の確認で使うぐらいでしょうか。  前掲の3つに比べると使う頻度は少ないかとは思います。 <ビットデバイス桁指定について> FX5Uプログラミングスクールのスクールテキストから抜粋です。 これがいちばんわかりやすいので。