皆さんは「ビジネス系」システムと「制御系」システムと言う言葉を聞かれたことがあるでしょうか? 私も大学を卒業して就職した当初は全く聞いたことも意識したことも無かった言葉でした。こちらではAIやIoT実装の観点で、その違いや特徴についてご紹介したいと思います。
ビジネス系システムと制御系システムの違い
私は元々産業用ロボットの制御などを学ぶ制御工学科を卒業したため、周囲は全て言わば制御系の人ばかりで就職先も、ほぼファナックや安川、山武、横河などかもしくは自動車会社などでしたので、20歳代までほぼ制御系の世界しか知らなかったと言えます。
この「ビジネス系」、「制御系」システムを始めて意識したのは転職しようと紹介会社に登録した時だったと思います。人材紹介会社の人に、あなた「制御系」ですよね?と言われた時に「そうか、自分は制御系の人間なんだ」と実感した瞬間でした。
その紹介会社の人は別に悪気は無かったと思います、と言うか今となってはそう言われて当然だと思います。当時、わたしはビジネス系の王道ともいうべきドイツのERPソフトベンダーに応募しようとしていたため、そう言われても仕方ありません。それは同じシステムでも「全く別世界」なのです。
ビジネス系システムとは
ビジネス系システムとは、いわゆるビジネス上の取引を記録することを目的としたシステムです。例としては次の様な取引です
- 見積り、受注・出荷、請求、入金消込などの販売関連伝票処理
- 購入依頼、発注、請求書照合、支払いなどの購買電溶処理
- 売掛・未収、買掛、GLなどの会計伝票を処理
- 入庫、出庫、在庫転送など在庫管理
- 給与計算、出退勤管理などの人事関連
その他、取引に関連する顧客を管理したり、リードや営業案件を管理したり、プロジェクトを管理したり、と様々ありますが、何れも共通するのは次の点だと思います。
ビジネス上の取引を正しく記録する目的のシステムで、ビジネス取引の時間軸で動く
あくまでビジネス取引を正しく記録出来れば良いため、人が把握・記録できる時間感覚「日・月・年(度)」で正しければよく、殆どの場合ビジネス取引は月単位で十分です。
従って、間違ったデータが出来たとしても、その月内に反対仕訳を入力することで取り消す事が出来て、改めて正しい仕訳を入力すれば良いだけなのです。そこに要求されるのは「ビジネス的な正しさ」であって、時間軸上の精度はほぼ無視されます。
制御系システム(PLC・コントローラ)とは
一方、制御系システムとは工場プラントで言えばPLCや独自コントローラで機械装置などを動かすシステムで、正しさは当然ですが、
時間軸が重要
であり、元々PLCのラダーシーケンス等は、電気回路をソフトウエアで表現したものですから、ほぼ無視できる程度の同期・リアルタイム処理が要求されます。この事は、機械設備の僅かな時間差でも動作が違ってきてしまう点を考えると当然の事です。
まして、高周波回路基板などの扱う対象によってはns(ナノ秒)単位以下だと思いますので、僅かな差でも上手く動作しなくなってしまいます。もはや人間の時間間隔ではありません。
また、工場の制御系システムを考えた場合(制御系システムは工場プラントだけではありません)はどうしても、その生産方式の違いで次の2種類に分けて考える必要が出てきます。
◆ 組立系の生産
ここでは「組立系の製造」に関して詳しい説明は避けますが、要はよくテレビなどで放映される、PCの組み立てや車の生産ラインをイメージしてもらえれば良いかと思います。手作業で組み立てていくような場合もあれば、自動車の組立ラインのようにロボット化されているラインも多いかと思います。
そして、既に部品として加工されているものを組み付けるため、プロセス系に比べて比較的リアルタイム性が重要とも言えます。
1個2個と数えることが出来る部品を組み付けていくイメージの生産です。組立系の生産に関して詳しくはこちらでご紹介しています。
◆ プロセス系の生産
プロセス系の生産とは、組立系とは違い1個2個と数える事が出来ず、1リットル、1トン、1Kgなどで測る形が定まらない原料を配合通りに混ぜ合わせ、熱や圧力、化学反応などを使って処理(プロセス)することによって生産する生産方式です。
プロセス系生産の場合は反応速度が緩やかな場合が多く、リアルタイム性は比較的重要ではないかも知れません。せいぜい数ミリ秒程度と言ったプロセスが多いのではないでしょうか。
また、投入した原料の形や組成がそのまま残ることはほぼなく、全く別の(プロセスされた)形・組成の製品が出てきます。詳しくはこちらでご紹介しています。
扱う対象以上に根本的な考え方・重点が違う
この様に、「ビジネス系」システムと「制御系」システムは同じシステムとは言っても全く別ものです。そして、オフィスPCのExcelやWord、パワーポイントなどを使って文書を作成するような作業も含め、殆どの方がシステムと聞いてイメージするのはビジネス系システムのほうではないかと思います。
実際には、電話機やATM、自動ドアやエレベータなどに組み込まれている制御装置など、世の中には多くの制御系のシステムがあるのですが、それに関わったことのある人以外は目に触れることもなく、あまり意識しないものなのです。
工場へのAI実装の課題
AI実装はスクリプティングに
AIの基礎研究は日進月歩で進んでおり、ライブラリが公開されていますので、それらの研究成果を使うだけであれば然程難しいことでは無くなってきています。当然、その考え方やデータの与え方などは理解している必要はあるのですが、RやPythonなどのわりと優しいスクリプティング言語で、その公開されているライブラリを呼ぶだけで使えます。
データが問題
こちらのブログにも書きましたが、問題はデータが無いことなのです。正しくは、ラベル(正解)付きのデータが無いのです。一般に「教師あり」と「教師無し」の学習があるかと思いますが、AIに学習させるにはやはりディープラーニングで特徴量を抽出したデータに正解(ラベル)が付いていて初めて役にたちます。
その意味でも、単に生産ラインの画像や動画が日々大量に保存されているような会社は多いかと思いますが、そのままではまず使い物になりません。何の為に保存している動画なのか、どう使おうとしているのかを明確にし、その答え(不良品の場合の動画など)が一緒になっていて初めて使えるデータになります。
センシングの問題
AIと言うととかく、ディープラーニングの実装に話題が集中しがちですが、上に書いた通り、ディープラーニングの実装自体はもはやスクリプト言語のレベルになっています。
そして実際にそれを現実社会で使えるようにしようとすると、その周辺の問題のほうが遥かに大きいのです。動画を基にディープラーニングを実装しようとすると、そのサンプリングタイム(サイクル)が問題になってきます。
通常のテレビ画像程度(30フレーム/秒)程度の画像サンプリングでは、実際に物を制御するには間に合わないような場合が多かったりするためです。
AIによって何をするかにもよりますが、AIモデルをエッジ(現場に近い場所)に実装し、結果を出すだけであれば、半導体デバイスの進化もあり何とかなりそうな感じもありますが、実際にはそこにデータを供給するセンシングのほうの問題や、物理的に動作させる制御端のほうの問題のほうが大きいのです。
AIは頭だけ、五感と手が必要
ビジネスで使うようなAIもあるかと思いますが、AIの実装は明らかに制御系のエンジニアが必要となる領域なのです。少なくとも、これまで ビジネスロジックしか書いた事がないエンジニアにはまず実装出来ないでしょう。
AIのライブラリを使ってスクリプトを書くことは出来るかと思いますが、それでは頭だけであって、実際にモノを見て感じ、動かす部分が必要となります。
そして、恐らく将来的にはオペレータに代わって操作するロボットの手(指)が開発され、その手をインターフェースにしてAIが人の操作の特徴を真似た操作をするようになるのではないかと思います。
制御系は経験がものを言う
上記の通り、AIの実装は制御系、もしくは組み込みソフトを開発していたようなエンジニアの領域が大部分であり、ビジネス系のエンジニアによる表面的なAIだけの実装は出来ないと言えます。ビジネス系エンジニアが殆ど経験・知識がないままに、工場設備のPLCやコントローラをいじるのは非常に危険です。
ビジネスの時間間隔であれば、間違いに気付いた時点で修正すればいいや、位で済みますが制御系ではそうはいきません。下手をすると、設備を壊してしまったり大事故に繋がりかねないためです。
ビジネス系エンジニアには殆ど経験が無い、時間・タイミングの設計やデバイス・センシングの問題が絡むことも多く、幅広い知識・経験が要求される領域と言えます。