切屑堂 kirikuzudo

ブログ: 2024/06/24 盤面用ラインサーマルプリンタ ナダ電子 TP-289E を FX5U(C) + FX5-232ADP に RS-232C で接続して印刷する

<前提と製品選定>  制御盤でちょっとした記録などを印刷したい、という話があり、  設置場所の制約から ブラザー工業 TD-2135NWB/N などを使用できないため、  盤面に搭載するラインサーマルプリンタとして  ナダ電子 TP-289E を使用することにしました。    ナダ電子 TP-289E  Ethernet経由で接続するタイプもありますが、  公開されている取説に細かい通信仕様の記載がないため、  標準のRS-232Cで接続・印刷指示をする仕様のものを選定しました。  電源はDC24Vが都合がよいので、型式は TP-289E-3 です。    ※Ethernet仕様の TP-289E-LAN-3 を購入すると、     専用の取説がついてくるようです。 <ハーネスと接続>  それほど通信速度は必要ないため、ボーレートは9600bpsとして、  ハーネスもバラ線で接続することにしました。  テスト用には端子台であれこれつなぎかえられるのがよいため、  ミスミで以下のハーネス製作品を入手しました。    PLC側:DSDU-SY-KS-9-1    ( D-Sub 9pin メス = Y端子付バラ線、1[m] )    TP-289E側:BDHIFS-SY-B-26-1    ( MIL 26pin メス = Y端子付バラ線、1[m] )  これを端子台で接続します。  PLC側の構成は    PLC本体:FX5UC-32MT/DS-TSS    PLC通信アダプタ:FX5-232ADP  です。  FX5-232ADPとTP-289Eを接続する端子番号は以下のようになります。
FX5-232ADP側TP-289E側
信号線番線番信号
GND51GND
DCD19DTR
DR611RTS
TXD313RXD
 が、データ制御線は使わないので、  たぶんTXDとGNDさえつながっていれば動きます。 <ディップスイッチ設定>  信号線を接続したら、TP-289E のディップスイッチを設定します。  ディップスイッチは出荷時に全部OFFになっており、  変更する必要があるのはボーレートの部分だけです。  「SW5をOFF&SW6をON」にするとボーレートが9600bpsになるので、  ここだけ変更します。この設定での通信仕様は、   データ長:8bit   パリティチェック:なし   パリティ:偶数   ストップビット:1bit   ボーレート:9600bps  となります。 <PLCの通信設定>  続いて MELSOFT GX Works3 での設定です。  「ユニット構成図」で FX5UC 本体に FX5-232ADP を追加して保存します。  次に「ナビゲーション」の「パラメータ」-「ユニット情報」にある、  「ADP1:FX5-232ADP」を開き、以下の設定をします。   基本設定    プロトコル形式:無手順通信    データ長:8bit    パリティ:なし    ストップビット:1bit    ボーレート:9600bps    ヘッダ:付加しない    ターミネータ:付加しない    制御モード(RS-232C):制御線なし    サムチェック:付加しない    制御手順:形式1(CR,LF付加なし)   固有設定    8bit処理モード:8bitモード  これで「適用」を行い、PLCに書込を行ったあと、  電源のOFF/ONを行って設定を反映させます。   ※三菱電機のPLCやFA機器のほとんどは電源のOFF/ONをしないと    通信関係の設定が反映されないので注意   ※8bitモードでないとラダーを書くときに    見通しが悪くなる気がしていますが、ここは好みかと思います。   ※無手順通信ではなくプロトコル支援ツールを使う方法も    ありますが、基本的にはPLCからプリンタに一方向で    印刷を指示するだけなので、無手順通信のほうが    ラダーで完結して見通しがよいと思っています。 <PLCのシリアル通信プログラム>  三菱電機のマニュアル  「MELSEC iQ-F FX5ユーザーズマニュアル(シリアル通信編)」の  「6 無手順通信機能」-「6.7 プログラミング」に書かれている  内容でプログラムを作成します。  基本的に「RS2」命令でのバイト列送信指示になるので、  P.180 および P.194 の内容でそのまま作成すればよいです。  FX5UC に FX5-232ADP を装着した場合、FX5-232ADPのチャンネルは  「CH3」となるので、RS2命令の末尾は「K3」になります。   ex) RS2 D100 K12 D200 K12 K3  FX5UC から TP-289E に下記の順序でバイト列を送り、印刷を行います。   1. 初期化   2. 文字サイズ変更   3. 印字内容送信   4. 文字サイズ変更解除   5. 印字実行(改行)  ------------------------  ・初期化   初期化指示は 1B(H) 40(H) です。   ex) MOV H1B D100     MOV H40 D101  ------------------------  ------------------------  ・文字サイズ変更   4倍角に拡大する場合、1C(H) 57(H) 01(H) です。   ex) MOV H1C D102     MOV H57 D103     MOV H01 D104  ------------------------  ------------------------  ・印字内容送信   「流」「量」と漢字で印刷することを考えます。   TP-289E はJIS第二水準をShift-JISで指示でき、   それぞれ「流:97AC」「量:97CA」となります。   ex) MOV H97 D105     MOV HAC D106     MOV H97 D107     MOV HCA D108  ------------------------  ------------------------  ・文字サイズ変更解除   4倍角に拡大を解除する場合、1C(H) 57(H) 00(H) です。   ex) MOV H1C D109     MOV H57 D110     MOV H00 D111  ------------------------  ------------------------  ・印字実行(改行)   1行分の印字を行い、続いて改行する「CR」は、0D(H) です。   ex) MOV H0D D112  ------------------------  これで D100 ~ D112 までに指示用のキャラクタが  入力されている状態になるので、  この状態で送信要求の特殊デバイス SM8581(CH3用)を  SETすることで、D100~D112 のバイト列が送信されます。 とりあえず、これだけできれば印刷のテストはできるので、 これできちんと印字されればプログラム側で 体裁をととのえていくことで様々な内容を ロール紙に印刷していくことができます。