山形県内の某所への出張、現地調整含め2週間の業務が全て終了しました!
思えば、4月末に見積もりを出した時は、現地近隣の競合他社との競争なのでまあ受注は難しかろうと思っていたのですが、 6月~7月に仕事がぽっかり空きそうだったので、思い切って利益を最小限にカットして回答したところ受注できた案件です。 一人でやっていると出てゆくお金が少ない分、こういう時に融通が効きますね。
仕事の中身は、この時の日記にも書いたように、RS485で専用制御機器と通信せねばならず、それなりに手がかかるだろうけど何とかなるさ、とたかをくくっていたところ。。
RS485通信は、上記の日記のとおり事前シミュレーションが功を奏して、割とスムーズに立ちあがりましたが、 枝葉の部分で事前準備が完全に整っていなかったところに、お客様から早速の多数の要望の洗礼。。
耳栓必須な騒音職場で、耳栓していてもうるさくて、昼間の調整が終わったら早々に定時で引き上げ、夜な夜なホテルでソフトを作り上げる毎日でした。
でも終わってみれば、実にスムーズに完了し、予定より1日早い引き渡しとなった次第。 今日、20ページオーバーの画面操作説明書を暫定版で提出し、一区切り付きました。 成功のカギは、事前の準備で一番危うそうなところを重点的に済ませてあったことと、現地でお客様が早めに要望を出してくれたことでしょうか。
そして忘れてはならないのが・・ ここにきた時だけ味わえる、この肉!
たまには、良いよねー。
さてと、増えた体重の減量計画を立てなくちゃ・・
仕事で、シーケンサからRS485マルチドロップ通信にて、とある制御機器と通信することになった。
シーケンサの計算機リンクユニットは、元々はその名の通り計算機(コンピュータ)との通信を目的に開発されてきたものであって、シーケンサは割と我儘言ってもコンピュータ側でプロトコルなりを調整してくれるはずであった。
しかし、相手が制御機器だとそうはいかない。 伝文にチェックサムの有/無混在していたり、ACKのみ送信してきたり要求してきたり、色々な仕様に対応しないといけないから、きっとアウエイな仕事の進め方をせざるを得ないんだろう。。と思って三菱のコールセンタで相談したところ、今回は想定していた「無手順」方式ではなく「通信プロトコル」方式の通信を使うことで解決できるとわかった。
この機能、GXWorks2の「ツール」-「インテリジェント機能ユニット用ツール」-「シリアルコミニュケーションユニット」-「通信プロトコル支援機能」 で設定・デバグツールが開いて使える。
(以前のGX-Developer1には付属せず、別途Configulator-SCというソフトを購入する必要があったのだが、さすがに新しいほうのWorks2だと同梱されていたので助かった。)
シーケンサと通信シミュレーションを行うための、PC上のシミュレータはVB.netで作る。 VB.net2005以降にはSerealPortコントロールが使えるようになっているのでまあこれで十分。以下の参考サイトのサンプルコードをベースに、ASCIIコード通信→バイナリー通信に変更して、受信データに応じて返答を送信するように作り込む。
画像は、受信したバイナリデータをHEXデータにしてテキストBOXに表示してみたところ。
参考:VB.NETでシリアル通信を行う(金澤ソフト設計)
シーケンサとの通信に、USB-RS485コンバータ(UTS-485TB-V2)を購入。 このメーカーのは、USB-RS232Cコンバータでも実績があり間違いない。 4,500円程なのでお財布にも優しい。
通信とかパソコンのプログラムは本職ではないけど、色々勉強しながら作り上げてゆくのは大変だけど楽しいものだ。
(余談)
- Sharp Develop
こんなSDKがあったのを知らずにいた。 VisualBasic Express Editionも無償なので良いのだが、インストーラを作ることができい。 その点、Sharp Developは「Wix」という使い辛いけどインストーラを別途追加すればできるようになる。
(参考)セットアッププロジェクト-WiX(余暇でSharpDevelop)
- チェックサムでXOR方式
ググってもなかなかわからなかった、XOR方式のサムチェック。 1の補数とか2の補数とかは情報あるけどこれはなかなか出てこない。 結局、三菱のマニュアルに書いてあった「水平パリティ」がそれだと判明。(汗)
(参考)誤り制御について(ネットワークの基礎)