openSAFETYで見る安全通信の実装
安全通信のソースコードを見てみよう
安全通信は、安全認証を受けたプロトコル仕様に基づいて、通信エラーを高精度で検出する仕組みを実装している…と聞くと、非常に特殊な処理を想像されるのではないでしょうか。しかし実際にソースコードを読んでみるとそれほど特殊なことをしているわけではなく、むしろ使い込まれ実績のある「枯れた」処理がほとんどであることがお分かりいただけるのではないかと、日ごろから安全通信のソフトウェアに触れている筆者としては考えています。
安全通信製品の中には、プロトコルソフトウェアやソフトウェアスタックと呼ばれるソースコードの形態で販売されているものがありますが、残念ながらほとんどの場合は、ライセンス契約などを結ばない限りソースコードの中身は見られないことになっています。しかし中にはオープンソース化の道を歩んでいる安全通信製品もあります。それは「openSAFETY」です。
openSAFETY
openSAFETYは、EPSG(欧州での利用が多いPOWERLINKの標準化団体)とB&R社の主導で策定された安全通信です。EPSGはopenSAFETYを「世界で最初の100%オープンでライセンスフリーの安全プロトコル」であるとしています。
実はopenSAFETYのソフトウェアスタックのソースコードはインターネットで入手が可能です。リポジトリサイトSourceForge.netにおいて、ソフトウェアスタック本体とデモアプリケーションがBSDライセンスで配布されています(詳細は後述のEPSG公式ウェブサイトを参照)。openSAFETYは当初POWERLINK上で動作する安全通信として開発されたため、デモアプリケーションの動作にはPOWERLINK環境が必要になりますが、例えばソースコードを読むだけでも、実装を学ぶ手掛かりにはなると思います。また、EPSGのウェブサイトでは、openSAFETYのプロトコル仕様書も入手できます(ただしWorking Draft版。正式版はIEC 61784-3-13として有償で入手可能です)。仕様書と突き合わせながらソースコードを読み解くことで理解をより深められるかもしれません。安全通信が具体的にどのように実装されているのかを学びたいという方は、その一例としてopenSAFETYの世界を覗いてみてはいかがでしょうか。
なお、このソフトウェアスタックを実際に製品開発に用いるにはソースコード以外にも、使用方法を記載したマニュアル、ユーザーへの要求事項をまとめたドキュメント、ソフトウェアがターゲット環境に正しく組み込まれていることを確認するためのユニットテストなどの付属資料が必要となります。それらの付属資料を含む開発キットの入手についてはEPSGにご確認ください。
余談ですが、実はこのopenSAFETYソフトウェアスタックの開発には、現在弊社HMSインダストリアルネットワークスの一事業部となっているIxxat(イグザット)が携わっていたため、ソースファイルの Author欄で “IXXAT” の名前が確認できます。この開発で得られた知見は、現在も弊社Ixxatブランドの安全通信製品に活かされています。
EPSG公式ウェブサイト:
openSAFETYページ
https://www.ethernet-powerlink.org/open-safety/introduction
ソフトウェアスタック・デモアプリケーションのダウンロードリンク掲載ページ
https://www.ethernet-powerlink.org/open-safety/download
技術資料ダウンロード
https://www.ethernet-powerlink.org/downloads/technical-documents
作成:HMSインダストリアルネットワークス株式会社