automationです。controllerというコンピュータ製品があります。シーケンス制御を行うコントローラなのです。イメージとしてはエレベータをイメージしてもらうとわかりやすいですが、エレベータは、乗りたい人がボタンを押すと、目の前に降りてきますよね。そこから、N階を押すと、エレベータが移動して、目的の場所に到達しますよね、また、扉のリミットスイッチをおすと扉が緊急で開いたりしますし、ちゃんとした場所で止まりますよね。最近は行き先ボタンのダブルクリックでキャンセルできたりもしますよね、こういった一連の流れをインテリジェントに制御するために使われるのがPLCの仕事です。PLCをプログラミングするための言語の一つにラダー言語というのがあり、なんとGUI上でプログラミングができるんです。こんな感じで書いていきます。10年ぐらい平気で壊れない耐久性と、熱やホコリが当たり前の悪環境でも壊れないコンピュータそのものの安定性、パーツの安定供給がウリの商品で、オムロン、三菱、日立、キーエンスなどの早々たる企業が提供するコンピュータです。出張先の営業マンや現地の出張者でも電話で指示を受けることでプログラムを修正できるところにあります。このアドレスにこの命令を挿入せよというのを、PLCにつないだ専用のコントローラで操作できるので、電話口で口頭で指示することで、プログラムを修正することができるのです。顧客は世界中ですから、出荷した全ての装置の全ての修正を、プログラムが書ける人がその場に行かないと直せないというのでは、身がいくつあっても足りません。何か問題があった時や、その場で発覚したセンサ追加などの微妙なコード追加であれば、現地の営業マンに電話で指示をしてロジックを足すことができます。wリミットセンサーを一つ追加してより安全に振る、というのであれば、and回路に一つ入力が増えるだけですから、電話口でセンサ入力を司る部分に、プログラム上の入力を一つ増やして、物理的にPLCの入力にセンサを繋いで終了です。いう操作をしても、制御自体は簡単にバグで止まることもないし、ちゃんと動くというのがコントローラの素晴らしさなんですよね。コードをEPROMにバックアップしておくことで、間違いがあったらすぐ元に戻せます。昔は、それができることで、海外の出荷先で問題が起きても修正ができるわけで、これによるコスト削減効果は、本当に大きかったと思います。設計思想としては、見える化ができるプログラミングだったと思いますね。何よりの肝は、現場の作業者がPLCをコントローラでいじるものは簡単なものという感覚があって、いじってもらうことに抵抗感がなかったというのがすごく大きいかも。Webで言うならHTMLレベルの感覚があるかも。実際は、ニーモニックのCUIのソースコードビューが別に存在していて、ソースコードをうまくビジュアライズしているというのがラダー言語エディタの本質で、それそのものが高いユーザビリティの開発言語とも言えます。その実、中身は、それほどシンプルではないので、もちろんインターネットが使えるようになってからは、ソースコードをメールで送って、PCからインストールできるようにもなってますし。今はそっちが主流でしょうね。PLCも割り込みが使えたりと高度化してますので。クラウドが発達した今だったらgithubを経由して落としてくるとか、自動更新サービスを提供するとか、いろいろできそうですね。お客さんところの生産管理の人がソースコードをいじったら、リポジトリにプルリクしてもらえると、その後の追加装置発注の時とかにモメなくて済みますし、更に、現地で直したコードの自動テストができたら面白いですね。装置のI/Oのテストケースとして作っておけば、装置のデバッグもdiagnosisとして手順化できますもんね。当時は若くてよくわからなかったですが、FAは最先端の技術を導入しやすい世界だったように思えます。生産技術の元でイノベーションが提案されている世界ですしね。業界の情報通になっていれば、いろいろできただろうなぁ。ネタ元としては、TechCrunchの西村編集長がTwitterで、スマホでプログラムができるものがあってもいいよね、というツイートをされていて、ふと、このことを思い出しました。思い出してみれば、Webプログラミングも、たいていはNon-algorithmicなコードで、シーケンスどころかオープンループ的な思想のまま、データの出し入れだけの仕事になっているケースも少なくないでしょう。IoTデバイスが標準化&生活必需品になったあかつきには、ラダー言語みたいなもので、プログラムができる環境が出るんだろうなぁ、と思います。素敵なものが出てくるといいですね。したシーケンス制御の装置ぐらいならラダー言語によるGUIプログラミングで簡単に作れるわけで、きっと素敵なプログラミング言語をMIT出身の人とかが開発して世界を変えることもあるでしょう。バック・トゥ・ザ・フューチャーで、朝起きると目玉焼きを焼いたり、犬に餌を上げるのを自動化していましたが、あれみたいな感じで、目覚まし時計に連動して、コーヒーを入れて、いい香りに包まれながら自然に起きるというオペレーションをスマホでプログラミングして、バスは無線LANで装置同士が協働するということが容易に期待できます。「そのデバイスのメイン機能をrunする/stopする」レベルのデバイス間の入出力が、制御盤の配線レベルで標準化されていれば十分に可能です。シンプルな機能の素敵な製品の組み合わせがよさそうですね。Garageは、Webを中心としたビジネス&テクノロジーに関する思いつきを綴ったブログです。初代モバツイ開発者インターネットと日常の生活が融合された「何か楽しいもの」/「便利なもの」を作ることを目標に活動中。Fujikawa(@fshin2000)。