1.対PLC通信機能追加
古くからあるコントローラを入手困難な部品も増えてきたので改版することになりました。
基板もファームウェアも作り直すのであれば既存の機能はそのままで、新たにイーサネット/シリアルボードをコントローラに搭載し、装置本体に組み込まれているPLC機器とLAN接続して通信をする機能を追加しようという事になりました。
コントローラ側のファームウェアにとってはTPC/IPで通信するといってもTPC/IPのプロトコルスタックをコーディングするということは無く、シリアル信号で接続したイーサネット/シリアルボードを相手にバイト列をシリアル通信で送受信するといったイメージになります。
2.SLMPプロトコル
PLC機器とはTCP/IPで接続してSLMPプロトコルで交信します。
- SLMPプロトコルとは、「Seamless Message Protocol」の略で、Ethernetを搭載した各種機器同士でアクセスするためのプロトコルです。
今回はSLMPプロトコルの中で4Eフレーム伝文フォーマットを使用し、バイナリコードで交信する事にしました。
アスキーコードで交信する方法もありますが、通信時のバイト数を抑えるためバイナリコードでの交信を選択しています。
伝文フォーマット
■要求伝文

■応答伝文

・ヘッダ
TCP/IP用のヘッダ。ファームウェアでは編集しません。
・アプリケーションデータ
ファームウェアで編集するデータです。
コントローラ内部に保持しているパラメータ値や制御用データの値を、PLC機器のワードデバイスにコントローラに接続している汎用入出力のビット情報をビットデバイスに、一括書込み伝文を用いて書込み用デバイスに書込み、一括読出し伝文でPLC機器から読出し用デバイスの情報を読み出します。
PLC機器は、コントローラの状態をリアルタイムに知ることが可能となり、PLC機からの指示でコントローラが動作する仕組みが出来上がりました。
これでPLC機器を通してリモート操作出来る事となり、装置本体から離れたところにあるコントローラを直接操作することなく、装置本体にある操作卓からコントローラを操作出来るようになりました。
3.開発の後で
今回の開発で苦労した点は、PLCのユーザーマニュアル、リファレンスマニュアルなどの説明書からSLMPの伝文フォーマットの詳細な仕様を探し出す事でした。
PLC機器側から見た通信の設定や操作方法などの記述が多く、要求伝文や応答伝文の内容異常だった時の応答伝文やエラーコードなど、欲しい情報を見つけ出すのに手間取りました。 今はオプションとしての機能ですが、将来メインの機能として活躍出来ればと思っています。
フォームが表示されるまでしばらくお待ち下さい。
恐れ入りますが、しばらくお待ちいただいてもフォームが表示されない場合は、こちらまでお問い合わせください。