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

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

pojiro
June 06, 2021

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

pojiro

June 06, 2021
Tweet

More Decks by pojiro

Other Decks in Technology

Transcript

  1. 経歴 エンジンベンチ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-現在 エンジニア
  2. 今日話すこと:ラダーを使わないコントローラ • 昨今、ラズパイのようなSBCを産業用途(制御盤内配置等)で使用するケースがあ る • なぜSBCが使われていたり、使おうとするトレンドがあるのか? ◦ 安いから?ラダーを書きたくない(書けない)から? ※SBC: Single

    Board Computer • 上記もあると思うが、コントローラで 「やりたいこと」、「やれると考えられること」が増えたからではないか? • 実現するにはどのような方法があるか? 「ラダーを使わないコントローラ」について考えてみた
  3. 盤以上に開かれたケース • 入力で計測 • PLC で監視 • 出力で制御 プラス •

    例1:DB/APIとのやりとり • 例2:別の制御機構の指示受け やりたいこと、やれると考えられること 制御盤 PLC? 入 力 出 力 DB/API 別の制御機構 例1 例2 例2
  4. 悩み②:SBC(ソフト)の開発 • 電断対策(ファイル書き込み中に電源が落ちると。。) ◦ UPSをかます? • 各種ソフトウェア設定とアプリの開発 ◦ Linuxであれば、systemd, network,

    apache, nginx, /etc 配下の設定いじり ◦ アプリからIOを叩くには?プロセスがクラッシュした場合の対策は? • ファームの取扱 ◦ バージョン管理、バージョンアップ方法 などなど
  5. ②の解決策: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, … ◦ ファームウェア:設定がプロジェクトに閉じているので管理が容易、アップデートサーバーもある!
  6. ①の解決策:、、、 • 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が動作する堅牢なハード!!
  7. 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
  8. 整理すると 制御盤 SBC的な何か 入 力 出 力 DB/API 別の制御機構 例1

    例2 例2 制御盤 PLC 入 力 出 力 DB/API 別の制御機構 例1 例2 例2 SBC ここに対する案
  9. リンク • 産業用堅牢ハードで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で更新