TOP  >  なーお'nぶろぐ  >  なーお  >  Business

なーお さんの日記  [ メールで投稿 ]

1件のうち1 - 1件目を表示しています。

[投稿日   ] [タイトル   ] [アクセス数   ]
5月
18 (金)

仕事で、シーケンサからRS485マルチドロップ通信にて、とある制御機器と通信することになった。

シーケンサの計算機リンクユニットは、元々はその名の通り計算機(コンピュータ)との通信を目的に開発されてきたものであって、シーケンサは割と我儘言ってもコンピュータ側でプロトコルなりを調整してくれるはずであった。

しかし、相手が制御機器だとそうはいかない。 伝文にチェックサムの有/無混在していたり、ACKのみ送信してきたり要求してきたり、色々な仕様に対応しないといけないから、きっとアウエイな仕事の進め方をせざるを得ないんだろう。。と思って三菱のコールセンタで相談したところ、今回は想定していた「無手順」方式ではなく「通信プロトコル」方式の通信を使うことで解決できるとわかった。

この機能、GXWorks2の「ツール」-「インテリジェント機能ユニット用ツール」-「シリアルコミニュケーションユニット」-「通信プロトコル支援機能」 で設定・デバグツールが開いて使える。

(以前のGX-Developer1には付属せず、別途Configulator-SCというソフトを購入する必要があったのだが、さすがに新しいほうのWorks2だと同梱されていたので助かった。)

t_003f15f235247a5d30bfc0c979411e6fa9.jpg
シーケンサと通信シミュレーションを行うための、PC上のシミュレータはVB.netで作る。 VB.net2005以降にはSerealPortコントロールが使えるようになっているのでまあこれで十分。以下の参考サイトのサンプルコードをベースに、ASCIIコード通信→バイナリー通信に変更して、受信データに応じて返答を送信するように作り込む。
画像は、受信したバイナリデータをHEXデータにしてテキストBOXに表示してみたところ。

参考:VB.NETでシリアル通信を行う(金澤ソフト設計)

t_02a6db17b698a6aa4ff0c15eb5c76014f9.jpg
シーケンサとの通信に、USB-RS485コンバータ(UTS-485TB-V2)を購入。 このメーカーのは、USB-RS232Cコンバータでも実績があり間違いない。 4,500円程なのでお財布にも優しい。

通信とかパソコンのプログラムは本職ではないけど、色々勉強しながら作り上げてゆくのは大変だけど楽しいものだ。 :-)

(余談)

  • Sharp Develop
    こんなSDKがあったのを知らずにいた。 VisualBasic Express Editionも無償なので良いのだが、インストーラを作ることができい。 その点、Sharp Developは「Wix」という使い辛いけどインストーラを別途追加すればできるようになる。
    (参考)セットアッププロジェクト-WiX(余暇でSharpDevelop)
  • チェックサムでXOR方式
    ググってもなかなかわからなかった、XOR方式のサムチェック。 1の補数とか2の補数とかは情報あるけどこれはなかなか出てこない。 結局、三菱のマニュアルに書いてあった「水平パリティ」がそれだと判明。(汗)
    (参考)誤り制御について(ネットワークの基礎)
続きを読む | 閲覧(34172) 
1件のうち1 - 1件目を表示しています。