« 心臓手術の話が復活 | トップページ | 買いだめ »

2014/03/29

ストップビット、認識せず

2014年3月29日

ちょっと専門的になりますが、どちらかと言えば自分用の記録です。

いきさつ
小生は2001年4月に山形に転勤になったが、その前、特に2000年は新技術をいろいろ採用した。やっと自分の意見が通るようになってきた頃でもある。その中の一つ、重合機の夜間無人運転がある。化学工場のような大きなプロセスだとものすごい設備になるが、うちの会社の規模だと、単体の機械である。当時の部長が自分で選んで買ってきて、パソコンに繋いで自動運転をさせようと思ったらしいのだが、うまくいかない。そこで小生に話が回ってきたものだが、小生が「好きにして良いのなら、動かす。」と言ったところ、「好きにして良いから、動かしてくれ。」と言われて手がけたものだ。今考えればよくしゃあしゃあとそういう台詞が吐けたものだと思うが、少なくとも、動かせる自信はあった。

そこで機械に元々付いていた光陽のPLCをオムロンに変える。寸法がぴったり同じだった。中身は印刷したリストをそのまま打ち込み、その後に自動運転のプログラムを入れた。細かい設定用にキーエンスの別置き型のタッチパネルを取り付け、パソコン代わりにコミュニケーションボードからRS-232Cで信号を送り、プロセス管理用に温度計を増設、こちらはRS-485で通信を行った。

以来15年、故障らしい故障もせず、無人運転を行っている。ちなみに、この機械が当社での夜間無人運転の最初のもである。故障らしい故障をしないというのは非常に良いことであるが、通常のメンテナンス以外は行わないので誰も中身がわからず、完全なブラックボックスになってしまった。

15年目に降ってわいた話
この機械で、新製品を生産することになった。機械も15年も使うとさすがにあちこちガタが来ているので、オーバーホールを行った。そして機械には温水制御装置(平たく言えば、電気温水器)が付いているが、これは交換することになった。ところが15年も経っているうちに元のメーカーは温水器から撤退し、新しいメーカーになった。そして通信方式もRS-232CからRS-485に変わり、命令形態も一新されてしまった。そのためプロトコルと、プログラムを変更する必要が出てきたが、ブラックボックス化しているため、主担当の生産技術は初めからやる気が無く、とっくに引退したはずのラダープログラムをまたやることになってしまった。

先方からもらった通信マニュアルを見たら、エラーチェックコードがCRC-16になっている。ネットで調べたら、このCRC-16なるものは何種類もある。幸い通信マニュアルに載っていた例題をオムロンに投げたところチェックしてくれ、設定範囲内で初期値を65535(FFFFH)、逆順に設定すれば例題通りになると教えてもらった。FA業界では、数あるCRC-16の中でこのやり方が標準らしい。

3月26日(水)
午前中設置場所の群馬でメーカーからの操作説明があったが、こちらは横浜で業務報告のためにパス。一番に報告させてもらってすぐに飛び出すが、午後一にしか着かない。着いたらまず現場で実機を確認、配管作業は終わっている。ただ古い温水器はずらしただけで配線は外して無く、この232Cの配線をパラレル入力に流用する。元のコネクタを切り外し、Y端子に付け替えて端子台へ。これは配線長さに余裕があったので、順調である。次に新しく485用の2芯のツイストペア線を引くが、温水器側の端子台が図面と違う。午前中に来たメーカーの方に電話すると、営業ではそこまではわからないので折り返し電話するとのこと。折り返しかかってきた電話は06-****-****。メーカーは大阪だった。通信基板がモデルチェンジしているのに古い図面が付いてきたらしく、新しい図面と取扱説明書をFAXで送ってもらう。群馬のFAX番号は覚えていないので、横浜に送ってもらい、転送を依頼する。ねじ式の端子台からヨーロッパ式の裸線差し込みコネクタに変わっているため、今度はこのコネクタの取扱説明書を、R&Dの後輩にネットからダウンロードしてもらう。このタイプのコネクタは嫌いだが、文句を言っても始まらない。結局この日は線を引っ張っただけだった。

3月27日(木)
生産技術から現場作業用のパソコンを借り、新しいプロトコルとプログラムをインストール。まず新しく引いた線は繋がず、従来の温度計の信号を拾う。今までの7ビットから新しい温水器に合わせて8ビットに変えたので、それの確認もある。ところがいきなりエラー。サポートソフトのCXプロトコルではエラー内容がわからないので、プロコンにつなぎ替え、エラーコードを見る。「プロトコルが存在しない。」ここは標準のプロトコルを使うつもりだったが、よく見たら、標準装備のプロトコルはすべてCXプロトコルである。使っているのは15年前のαで、αプロトコルは標準装備されていなかった。仕方なしにその場で新しく作る。やっと動いた。

今まで小生は、プロトコルの中にメモリー番号をダイレクトに書き込むやり方を、ずっと使ってきていた。ところがこのやり方はオムロンのマニュアルには載っておらず、言わば裏技である。小生が引退するに当たりこのあたりはオムロン標準に変えてくれと生産技術から頼まれていたのでオムロン標準のやり方にしたのだが、これが必ず先頭にデータ数を入れなければならず、そこでずいぶん手こずった。

PLC側のプロトコルが動き出すとトレースが可能になるが、さっぱり反応が無い。PLCがいろんな動作をやっていたので余分な命令を全部カットし、単純な命令だけに絞って通信テストを行った。命令は例題通りで、CRCも規定通りである。大阪のメーカーに電話したが、「ウンもスンも言わないですか。変ですね。」とのことで結局この日もこれで終わった。

3月28日(金)
温水器のマニュアルのパリティの設定は1~6になっているが、実際の機械に設定ができるのは0~5である。そこでこれが怪しいと思い、パリティ無しでやってみた。それでもダメである。途方に暮れて古いオムロンのマニュアルを見ていたら、485のAB端子はB側が+と書いてあった。そう言えばここで十年前に失敗したことを、今頃思い出した。温水器側の信号線をひっくり返す。とたんにエラーが出た。パリティを偶数でも奇数でも設定すればエラーは出ないが返事は無く、パリティ無しにするとエラーが出る。もしやと思ってトレースをやってみたら、エラーにかかわらずきちんとトレースができていた。マニュアルに載っている通りの、正しい返事である。PLCではその返事を認識できず、問い合わせを繰り返している。どうやらストップビットを認識できていないようだ。いろいろ変えてやってみたら、温水器はストップビットを認識せずに返事を送っていることがわかった。おそらくノイズだ。

今まで232Cで問題なかったので安心していたが、温度計から配線を延長し、シールドのアースは切れているので、それが問題かもしれない。そしてやはり温度計と温水器は配線を分けた方が良さそうなので、新しくオムロン製の232C/485の変換器をメーカー直送で手配し、電線も4線(2芯ツイストペア×2ペア)を手配し、万全を期しことにした。来週再戦である。

結果的に新製品の試作を一週間延期させてしまったが、小生についてはおとがめ無しである。他に誰もできる人間が居ないし、引退が秒読みの人間には、細かいことは言わないことになっているのかもしれない。

« 心臓手術の話が復活 | トップページ | 買いだめ »

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/97180/59376130

この記事へのトラックバック一覧です: ストップビット、認識せず:

« 心臓手術の話が復活 | トップページ | 買いだめ »

フォト
2017年12月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

最近のトラックバック

無料ブログはココログ