技術コラム
モータコントロールと通信技術
私はソフトウェア志望でしたが、最初からプログラムを作らせてもらえた、わけではありませんでした。
設計をするのはもう諦めて、修理の仕事をしていたとき、この会社に誘われましたが、ここへ来ても何年かは、ハードウェアの仕事をやっていました。
仕事で最初に作ったプログラムは、製造装置の一枚の操作画面でした。
タイトな納期に迫られ、一番若い担当者がリーダーになり、みんなで分散して取り組みました。
プログラム初心者の私も、その中に駆り出されたのでした。
ユーザインターフェースですが、今では考えられない完全アセンブラで、CPUは8086でした。
私のプログラムデビューは、16ビットCPUアセンブラでした。
こんなことが無かったら、私の今は無かったかもしれません。
つぎに任されたのは、パルスモータのコントロールでした。
Z80のアセンブラで、その後Z80のプログラムは、多く書くことになります。
XOR AでAレジスタが0になることや、AND Aで0かどうか確認できることを、まだ知らなかった気がしますが、それなりに奇麗なプログラムを書いたと、今でも思っています。
不注意でモータドライバーを壊してしまったのですが、怒られることなく、すぐさま代わりを手配してもらえた当時の上司には、感謝しています。
その後モータは、結構いろいろ回してきています。
パルスモータはしかり、エンコーダでの位置制御、スピコンモータや、トルクモータ、高回転モータ。
DCモータからノイズを拾い、位置制御をするものもありました。
パルスモータで制御しているのだけど脱調する場合があるので、エンコーダも付けて補正するものもありました。
最初は製造装置、いわゆるメカトロニクスと呼ばれる、モータの他、電磁弁をカチカチ動かしモノを搬送するようなものを手がけました。
その後、測定装置的なものが結構多くなりました。
測定装置については我々にとって中心的ではありますが、ここでは踏み込まずにおきます。
ほかのページの記述も、見て頂けたらと思います。
さて、我々は様々なお客様からの受託開発を行っていますので、多種多様なものの開発に携われたのが、私としては最大のメリットだったと思っていますが、大体ついて回ったのが、「通信」です。
最初に手掛けた通信は、Z80 SIOで制御され、同軸ケーブルの中を通り、多対多構成をとるものでした。
途中は光ケーブルを通る、1対多構成をとるものなど、独自プロトコルもいくつか開発してきました。
組み込み機器の場合は、通信にもリアルタイム性が要求されることは多く、そんな場合私は、1対多構成で、非衝突型をとることが多いです。
各局を順にポーリングする方式で、USBは基本的にその方式ですね。
もちろん1対1構成のRS-232Cベースのもの、LAN(Ethernet)の中を通るもの、USBの中を通るもの、途中が無線になるものなどもあります。