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. ラダーを使わない
    コントローラ
    FA設備技術勉強会 in ROBOMECH
    2021/06/06

    View Slide

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

    View Slide

  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-現在
    エンジニア

    View Slide

  4. 今日話すこと:ラダーを使わないコントローラ
    ● 昨今、ラズパイのようなSBCを産業用途(制御盤内配置等)で使用するケースがあ

    ● なぜSBCが使われていたり、使おうとするトレンドがあるのか?
    ○ 安いから?ラダーを書きたくない(書けない)から?
    ※SBC: Single Board Computer
    ● 上記もあると思うが、コントローラで
    「やりたいこと」、「やれると考えられること」が増えたからではないか?
    ● 実現するにはどのような方法があるか?
    「ラダーを使わないコントローラ」について考えてみた

    View Slide

  5. 盤以下で閉じたケース
    ● 入力で計測(Measure)
    ● PLC で監視(Monitor)
    ● 出力で制御(Control)
    従来:PLCのみの場合
    制御盤
    PLC




    View Slide

  6. 盤以上に開かれたケース
    ● 入力で計測
    ● PLC で監視
    ● 出力で制御
    プラス
    ● 例1:DB/APIとのやりとり
    ● 例2:別の制御機構の指示受け
    やりたいこと、やれると考えられること
    制御盤
    PLC?




    DB/API
    別の制御機構
    例1
    例2
    例2

    View Slide

  7. 盤以上に開かれたケースの考えられるパターン
    制御盤
    SBC的な何か




    DB/API
    別の制御機構
    例1
    例2
    例2
    制御盤
    PLC




    DB/API
    別の制御機構
    例1
    例2
    例2
    SBC/PC

    View Slide

  8. 悩み①:SBC(ハード)をどうする?
    ● 安価だし、ラズパイでやる?
    ○ 信頼性が気になる。。 (計測/監視/制御の要になるから)
    ■ 壊れない使い方をすれば壊れないけど、壊れない使い方を知るには時間がかかる
    ● じゃあ、製品仕様に合わせたボードを開発する?
    ○ いやいや、予算的になかなか
    ● それなら購入する?
    ○ どれを選定したらいいのだろうか?

    View Slide

  9. 悩み②:SBC(ソフト)の開発
    ● 電断対策(ファイル書き込み中に電源が落ちると。。)
    ○ UPSをかます?
    ● 各種ソフトウェア設定とアプリの開発
    ○ Linuxであれば、systemd, network, apache, nginx, /etc 配下の設定いじり
    ○ アプリからIOを叩くには?プロセスがクラッシュした場合の対策は?
    ● ファームの取扱
    ○ バージョン管理、バージョンアップ方法
    などなど

    View Slide

  10. だとすると、欲しいのは

    View Slide

  11. ①産業用途の堅牢なハード

    ②組み込みLinux開発の煩わしさを
    隠蔽してくれる何か

    View Slide

  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, …
    ○ ファームウェア:設定がプロジェクトに閉じているので管理が容易、アップデートサーバーもある!

    View Slide

  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が動作する堅牢なハード!!

    View Slide

  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

    View Slide

  15. なので、移植できました!

    View Slide

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

    View Slide

  17. 整理すると
    制御盤
    SBC的な何か




    DB/API
    別の制御機構
    例1
    例2
    例2
    制御盤
    PLC




    DB/API
    別の制御機構
    例1
    例2
    例2
    SBC
    ここに対する案

    View Slide

  18. デモ

    View Slide

  19. まとめ
    ● ラダーを使わないコントローラの案を考えました
    ○ ハードは、e-RT3(汎用OS対応CPUモジュール)
    ○ ソフトは、Nerves
    ● 落ち穂拾い
    ○ SBC-PLC間のI/Fどりパターンもアイデアがあります!
    が、時間が無いのでまたの機会があれば

    View Slide

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

    View Slide