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

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

Avatar for pojiro pojiro
June 06, 2021

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

Avatar for pojiro

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で更新