Share
Embed
Transcript
20 slides
-
経歴 エンジンベンチ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-現在 エンジニア -
今日話すこと:ラダーを使わないコントローラ • 昨今、ラズパイのようなSBCを産業用途(制御盤内配置等)で使用するケースがあ る • なぜSBCが使われていたり、使おうとするトレンドがあるのか? ◦ 安いから?ラダーを書きたくない(書けない)から? ※SBC: Single
Board Computer • 上記もあると思うが、コントローラで 「やりたいこと」、「やれると考えられること」が増えたからではないか? • 実現するにはどのような方法があるか? 「ラダーを使わないコントローラ」について考えてみた -
盤以上に開かれたケース • 入力で計測 • PLC で監視 • 出力で制御 プラス •
例1:DB/APIとのやりとり • 例2:別の制御機構の指示受け やりたいこと、やれると考えられること 制御盤 PLC? 入 力 出 力 DB/API 別の制御機構 例1 例2 例2 -
盤以上に開かれたケースの考えられるパターン 制御盤 SBC的な何か 入 力 出 力 DB/API 別の制御機構 例1
例2 例2 制御盤 PLC 入 力 出 力 DB/API 別の制御機構 例1 例2 例2 SBC/PC -
悩み①:SBC(ハード)をどうする? • 安価だし、ラズパイでやる? ◦ 信頼性が気になる。。 (計測/監視/制御の要になるから) ▪ 壊れない使い方をすれば壊れないけど、壊れない使い方を知るには時間がかかる • じゃあ、製品仕様に合わせたボードを開発する?
◦ いやいや、予算的になかなか • それなら購入する? ◦ どれを選定したらいいのだろうか? -
悩み②:SBC(ソフト)の開発 • 電断対策(ファイル書き込み中に電源が落ちると。。) ◦ UPSをかます? • 各種ソフトウェア設定とアプリの開発 ◦ Linuxであれば、systemd, network,
apache, nginx, /etc 配下の設定いじり ◦ アプリからIOを叩くには?プロセスがクラッシュした場合の対策は? • ファームの取扱 ◦ バージョン管理、バージョンアップ方法 などなど -
②の解決策: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, … ◦ ファームウェア:設定がプロジェクトに閉じているので管理が容易、アップデートサーバーもある! -
①の解決策:、、、 • 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が動作する堅牢なハード!! -
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 -
整理すると 制御盤 SBC的な何か 入 力 出 力 DB/API 別の制御機構 例1
例2 例2 制御盤 PLC 入 力 出 力 DB/API 別の制御機構 例1 例2 例2 SBC ここに対する案 -
まとめ • ラダーを使わないコントローラの案を考えました ◦ ハードは、e-RT3(汎用OS対応CPUモジュール) ◦ ソフトは、Nerves • 落ち穂拾い ◦
SBC-PLC間のI/Fどりパターンもアイデアがあります! が、時間が無いのでまたの機会があれば -
リンク • 産業用堅牢ハードで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で更新