Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ラダーを使わないコントローラ

2219597a939c895e5db6f8b7c94e2859?s=47 pojiro
June 06, 2021

 ラダーを使わないコントローラ

2219597a939c895e5db6f8b7c94e2859?s=128

pojiro

June 06, 2021
Tweet

Transcript

  1. ラダーを使わない コントローラ FA設備技術勉強会 in ROBOMECH 2021/06/06

  2. 自己紹介 • twitter: pojiro3 • web: https://www.tombo-works.com

  3. 経歴 エンジンベンチSE 出向 シャシダイ開発管理 A社 埼玉県 2010/04 - 2014/03 T社

    豊田市 2014/04 - 2017/03 http://www.orientec.co.jp/products/ S社 名古屋市 2017/03 - 2019/10 組み込みLinux屋さん プログラマー Tombo Works 岡崎市 2020/06-現在 エンジニア
  4. 今日話すこと:ラダーを使わないコントローラ • 昨今、ラズパイのようなSBCを産業用途(制御盤内配置等)で使用するケースがあ る • なぜSBCが使われていたり、使おうとするトレンドがあるのか? ◦ 安いから?ラダーを書きたくない(書けない)から? ※SBC: Single

    Board Computer • 上記もあると思うが、コントローラで 「やりたいこと」、「やれると考えられること」が増えたからではないか? • 実現するにはどのような方法があるか? 「ラダーを使わないコントローラ」について考えてみた
  5. 盤以下で閉じたケース • 入力で計測(Measure) • PLC で監視(Monitor) • 出力で制御(Control) 従来:PLCのみの場合 制御盤

    PLC 入 力 出 力
  6. 盤以上に開かれたケース • 入力で計測 • PLC で監視 • 出力で制御 プラス •

    例1:DB/APIとのやりとり • 例2:別の制御機構の指示受け やりたいこと、やれると考えられること 制御盤 PLC? 入 力 出 力 DB/API 別の制御機構 例1 例2 例2
  7. 盤以上に開かれたケースの考えられるパターン 制御盤 SBC的な何か 入 力 出 力 DB/API 別の制御機構 例1

    例2 例2 制御盤 PLC 入 力 出 力 DB/API 別の制御機構 例1 例2 例2 SBC/PC
  8. 悩み①:SBC(ハード)をどうする? • 安価だし、ラズパイでやる? ◦ 信頼性が気になる。。 (計測/監視/制御の要になるから) ▪ 壊れない使い方をすれば壊れないけど、壊れない使い方を知るには時間がかかる • じゃあ、製品仕様に合わせたボードを開発する?

    ◦ いやいや、予算的になかなか • それなら購入する? ◦ どれを選定したらいいのだろうか?
  9. 悩み②:SBC(ソフト)の開発 • 電断対策(ファイル書き込み中に電源が落ちると。。) ◦ UPSをかます? • 各種ソフトウェア設定とアプリの開発 ◦ Linuxであれば、systemd, network,

    apache, nginx, /etc 配下の設定いじり ◦ アプリからIOを叩くには?プロセスがクラッシュした場合の対策は? • ファームの取扱 ◦ バージョン管理、バージョンアップ方法 などなど
  10. だとすると、欲しいのは

  11. ①産業用途の堅牢なハード & ②組み込みLinux開発の煩わしさを 隠蔽してくれる何か

  12. ②の解決策:Nerves • > Nerves defines a new way to build

    embedded systems using Elixir. https://hexdocs.pm/nerves/getting-started.html • 電断耐性あり、イメージサイズ小(ファイルシステムがSquashFS • systemdを覚えなくていい、/etcに設定が散らない(NervesがLinuxを隠蔽 • 並行処理に強く、プロセス監視復旧機能あり(Elixirの強み ◦ サーバー:Phoenix, クライアント:HTTPoison, Mint, ... ◦ IO制御:Cicuits.GPIO/I2C, …, ネットワーク:VintageNet, … ◦ ファームウェア:設定がプロジェクトに閉じているので管理が容易、アップデートサーバーもある!
  13. ①の解決策:、、、 • Nervesがオフィシャルにサポートするターゲットマシンに堅牢ハードはない ◦ Beaglebones ◦ Raspberry Pi Zero, A+,

    B and B+ ◦ Raspberry Pi 2 Model B ◦ Raspberry Pi 3 Model B and B+ ◦ Raspberry Pi 3 Model A+ ◦ Raspberry Pi 4 Model B ◦ OSD32MP1 ◦ Generic x86_64 • Nerves Community in Japanのmyasu さんがとあるハードを紹介 ◦ リアルタイムOSコントローラ e-RT3 → Linuxが動作する堅牢なハード!!
  14. e-RT3はNervesのサポートがされてないんじゃ? • e-RT3(汎用OS対応CPUモジュール)のイケてるところ ◦ OSのブートの仕様が開かれている ◦ Ubuntuイメージ、Linuxカーネルソースが開かれている ◦ 開かれていると何が嬉しい? ▪

    ユーザーはカーネルを差し替えることで別のディストリビューションを使用可能 ▪ おれおれLinuxを作って動作させることも可能 • Nervesのイケてるところ ◦ 他のボードへの移植に 開かれている、手順も大雑把だけどある ▪ > We only officially support easily obtained hardware, but that doesn't mean that Nerves only works on these boards. (https://github.com/nerves-project/nerves_system_br/blob/main/README.md
  15. なので、移植できました!

  16. 悩みの解決案!! • ①産業用途の堅牢なハード ◦ e-RT3(汎用OS対応CPUモジュール) ◦ ここが増えていくといいですね ♪ • ②組み込みLinux開発の煩わしさを隠蔽してくれる何か

    ◦ Nerves
  17. 整理すると 制御盤 SBC的な何か 入 力 出 力 DB/API 別の制御機構 例1

    例2 例2 制御盤 PLC 入 力 出 力 DB/API 別の制御機構 例1 例2 例2 SBC ここに対する案
  18. デモ

  19. まとめ • ラダーを使わないコントローラの案を考えました ◦ ハードは、e-RT3(汎用OS対応CPUモジュール) ◦ ソフトは、Nerves • 落ち穂拾い ◦

    SBC-PLC間のI/Fどりパターンもアイデアがあります! が、時間が無いのでまたの機会があれば
  20. リンク • 産業用堅牢ハードでElixir:e-RT3にNervesポーティング • e-RT3:汎用OS対応CPUモジュール F3RP70-2L ◦ リアルタイムOSコントローラ e-RT3 (セットアップ編)

    myasuさん記事 • Nerves:https://www.nerves-project.org/ ◦ Nerves Community in Japan!! ◦ なぜ僕はNervesに期待するのか ◦ Nerves Hub:https://www.nerves-hub.org/ ▪ IoTフレームワークで組み込み開発に挑戦 IoT向きモダン言語Elixir(エリクサー)の研究(第6回) 出荷後の機器のファームウェアをOTAで更新