Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20170629 common lisp meets iot(noimage)

535 views

Published on

Lisp meetup #53の資料です。
イメージ類は一部抜いてあります。

Published in: Software
  • Be the first to comment

20170629 common lisp meets iot(noimage)

  1. 1. CommonLisp meets IoT ODA
  2. 2. 自己紹介 元プログラマ。今は、研究者。 長いことベンチャーにいたけど、途中から メーカー勤務に移行 一瞬だけベンチャーに戻って、またメー カー勤務 Shibuya.lispは初期の初期にLTして ます
  3. 3. 会社紹介 パンタグラフのトップメー カー。 おかげで新人の9割は 鉄オタ。
  4. 4. IoTってなに?
  5. 5. 本当のところは、「Internet of Things」。 それは知っている。 ドイツ人が「Industry4.0」とか 言い出してから、わけがわからな くなった
  6. 6. Cyber Physical System!!
  7. 7. 平たく言うと、 工場 + ネットワーク +
  8. 8. =Industry 4.0 なんかかっこいいので大流行
  9. 9. 工場といえば、シーケンサー(PLC)
  10. 10. スイッチ0 スイッチ1 センサー1 M1 切 シーケンサーと言えば、こういう 「ラダー言語」でプログラミング
  11. 11. メーカーには、「ラダーを書かせりゃ天下 一」なおじさんとかはいるけど、基本的 には「今時のコンピュータ事情」には疎 い人が多い。 メーカーもユーザーも。 ⇒ 食い詰めたSI業界のいいカモ
  12. 12. 「これからは人工知能ですよ」 「第4次生産革命ですよ」 「ビッグデータですよ」 「センシングネットワークですよ」 「PLMですよ」 「CAMですよ」 ⇒ うるせぇ!
  13. 13. 昨今のIoTブームって、だいたいこんなと ころ。 まあ、自分自身がこの流れの中で転職 したので、文句は言えない。
  14. 14. で、PLCにイーサネットつないで、 いろいろやれば、 いろいろできちゃうんじゃね? が、研究テーマの一つ。
  15. 15. Intermach2017 出展決定
  16. 16. あんまりお金ない。 人もそんなにいない。 市場調査なので、キャッチーな展示が 必要。
  17. 17. さて、どうするよ?
  18. 18. ハードはレゴつかって、 それっぽくしよう。 電車屋だし、電車走 らせよう。
  19. 19. ソフトは?
  20. 20. 一般には、工程管理ソフトと言われる 「ばかだかいパッケージ」を使うのが一般 的。 後はラダーでぽちぽちつなぐ、みたいな アプローチ。
  21. 21. 一方、状況はと言えば…… プログラマは自分一人。ラダーの人はい る。 開発期間は2ヶ月くらい。 大したことは無いけど、細かいものをい ろいろ作らなきゃならない。 画面もそれなりに、カッコ良い方がいい
  22. 22. よし! お父さん、 普通のやつらの上を 行っちゃうぞ!
  23. 23. 展示は全て、ちっちゃいWebサー バーの組み合わせ。 場合によっちゃ、コントロール系は クラウドにまわそう。 ホットパッチもできる様にしよう。 ⇒ とうぜん、 CommonLispの出番
  24. 24. システム設計
  25. 25. PLC Control Port IO link Bridge ProximitySensor Smart phones tablet IO link EtherCAT Ethernet (OPC-UA) Servo motor Sinal tower コントロールPC IoT Terminal CameraBar Code Reader NFC Card ReaderWeight Measure
  26. 26. •レゴブロックのレールを「ベルトコンベア」 や工程ラインに見立てる •この上を走る電車はパレットや工程 上の治具に見立てる •EtherCAT(新通信規格)に対応し たPLCを中心としてシステムを組み上 げる 基本部分
  27. 27. 工程管理 •サーボモーター、パトライトを使って 工程の進行を制御、表示 •近接センサーを使って、工程ス キップの検出 •バーコードリーダーにより搭載され る部品が記録され、足りないもの が無いか監視
  28. 28. •バーコードによる部品情報 他、環境情報、人員情報、 製品製造タイミング等を全 て記録 •過去にさかのぼって参照可 能 トレーサビリティー
  29. 29. •メイン画面に環境情報、工 程情報、人員情報など全て を表示する。この情報が全 て記録される。 トレーサビリティー
  30. 30. • 作業者情報 • 治具情報 • 部品情報 • 工程情報 各ポイントを通った時刻が表示される • 環境情報など • 写真 トレーサビリティー
  31. 31. ソフトウェア設計
  32. 32. 処理系の選択 Raspberry PiをIoT端末として採用 ⇒ Clozure CommonLisp 一択 • SBCLはARMでマルチスレッドができない(現時点の情報) • CCLならできる • ECLは試していない
  33. 33. dockerの採用 IoT端末が何台になるのか不明 デプロイで苦労するの嫌 コントロール系をクラウドに追いやる 可能性もあり
  34. 34. roswell 使用 楽できて、助かりました。こんな感じのDockerファイルで、ARMでも Intelでもするりとはいります。 RUN apt-get -y install libcurl4-gnutls-dev ¥ automake ¥ autoconf RUN cd /tmp && git clone https://github.com/roswell/roswell.git RUN cd /tmp/roswell && ./bootstrap && ./configure && make install RUN rm -rf /tmp/roswell USER telec RUN ros setup && ros install ccl-bin && ros use ccl-bin
  35. 35. clack&ningle 楽。 (setf *app* (make-instance 'ningle:<app>)) (defun start (&key (web-port WEB-PORT) (webtype :hunchentoot) &allow-other-keys) (setf *web-server* (clack:clackup (lack:builder ;; :accesslog *app*) :server web-type :port web-port)))
  36. 36. リモート swank swank:*loopback-interface*に”0.0.0.0”を指定して、あとは 寝かせておけば、いざと言うときとっても役立ちます。 たちましたよ。展示会場で…… (let ((swank::*loopback-interface* "0.0.0.0")) (swank:create-server :port swank-port :style :spawn :dont-close t))
  37. 37. コントロールプロセッサ DBコンテナ コントローラサーバーコンテナ ningle コントロールロジック IoT端末 IoT端末コンテナ ningle コントロールロジック イベント系のデータをPOST カメラデータとかをGET UI画面は普通にページアクセス
  38. 38. ムービー
  39. 39. まとめ ライブラリやエコシステムが 揃っているCommonLispは、 こんな感じのハード寄りの開 発でも、結構便利ですよ。
  40. 40. あと、 メーカーにはソフト屋さんが少なくて 困っているので、転職するときは 狙ってみては? 重宝されますよ。
  41. 41. 以上です。

×