仕事例・商品・サービス大型自動ライン装置制御ソフトウェア柴田が大型自動ライン装置制御ソフトウェアを紹介します。■どんなテーマ?以前、望月が同じ名称で紹介しています。望月のソフトウェアは機械体の制御を受け持っています。私のソフトウェアはユーザーインターフェースを主に担当しています。両方のソフトウェアが協調して一つの装置を制御します。ソースファイルが数百もある大規模なソフトウェアですので、トップダウンでしっかり設計していないとおかしなソフトウェアが出来上がります。その当時流行っていたUMLをつかってトップダウンで設計しています。UMLは制御対象の使い方やソフトウェア構造を検討するのに有用です。現在もよく使用しています。UMLで設計したものをC++のコード(ソースファイル)として出力できるツールがあります。このソフトウェアもこのツールを使ってソフトウェアの骨組みを出力しています。C++などのオブジェクト指向言語は大規模ソフトウェアの構築に適しています。それぞれのオブジェクト間(ソースファイル間)のつながりがしっかりと定義されています。データとロジック部もきちんと定義されています。そのため、不具合原因の特定が容易です。■どんな所が難しい?人を相手にするユーザーインターフェースは特有の難しさがあります。機械の制御はある程度動きが特定されますが、人は思ってもいない操作をすることがあります。人によって「使いやすい」「使いにくい」と感じる点が違うのでそのあたりを想像しながら作りこむ点が難しいです。■どんなスキルが必要?C++のプログラミングはもちろんですが、見やすく,使いやすくデザインするセンスも必要ですね。:このページのトップへ大型自動ライン装置制御ソフトウェア今回は望月が紹介する大型自動ライン装置制御ソフトウェアです。I/O点数が数千点にもなるようなシステムの場合、これをシーケンサーで制御しようとなるとI/O毎の動作シーケンスをいちいち定義する必要があり非常に大変です。コピー&ペーストなどでそれらの手間をいくらか削減できる場合もありますが、コピー元でなんらかのバグや、動作変更が発生した場合、その箇所を全てのコピー先箇所で修正する必要が出てきます。その過程で修正ミスの形で新たな不具合が発生するかもしれません。なると動作確認してもどこが原因なのか特定が困難になります。プログラミングの分野では、オブジェクト指向という考え方があります。説明すると、なんらかのまとまった機能に対して、データ部分と操作部分を別々に定義しておく手法です。機能部分だけを一つのリソースから使いまわすので、どこか一箇所だけ動作がおかしいような場合はI/O定義が間違っているか、物理的、電気的におかしいと原因を特定できます。この手法を用いた装置の実績として、前の装置と動作シーケンス自体は8割変わらないが、I/O配置は大きく異なる装置を10台以上作成しております。装置の規模の割にはソフトウェアの作成とデバッグ期間を随分短く行えていると自負しております。