Share
Embed
NervesJP_8_ALGYAN
NervesJP #8 IoTあるじゃんWebinar
https://algyan.connpass.com/event/180192/
https://nerves-jp.connpass.com/event/180252/
(PiFA HAT)
https://github.com/trihome/RasPi_PiFA
myasu
July 10, 2020
Transcript
48 slides
-
自己紹介 • 本業:とある製造業の”生産技術” ◦ 自動化設備・生産治具の設計・製作、現場カイゼン (ラダー、 Python、C++) ◦ 社内向け業務ソフト開発( C#,
SQL Server) • コミュニティ ◦ IoTALGYAN せとうち連合 岡山支部長 ◦ 瀬戸内ROS勉強会 (設立&岡山主催) ◦ NervesJP (設立メンバ) ◦ kurashiki.ex (立ち上げるかも? myasu @etcinitd yasuhiro.miyake.5076 @trihome 2 @myasu -
小型パソコン Raspberry Pi • イギリス生まれの、教育用コンピュータ • HDMI出力、USBポート、無線LAN、有線LAN • 価格:8£(約1200円)~ “Raspberry Pi
Zero W” “Raspberry Pi 3 b+” (写真:Switch Science, raspberrypi.org) 65mm Linux等のOSが使える 5 -
製造現場のカイゼン 勤務先の農機具工場・現場のリーダの相談・・・ • ちょっとしたカイゼン、ポカよけ • 多くの費用は掛けられない • カイゼン失敗→仕様変更→リトライ(の繰り返し) 産業向け(FA)機器は便利だけと、ちょっと試すには高価・・・ 趣味で使い慣れた
Raspberry Piでやってみよう! 8 (写真:いらすとや) -
産業用途で使われる機器 • FA機器 (Factory Automation) • スイッチ、ランプ、センサーなど ◦ 誘導電動機、空圧・油圧機器、ガス、液体・・・ • 頑丈!
◦ 少々荒い使い方をしても、壊れない • 電源、基本はDC24V ◦ あるいはAC100V, 200V, 三相・・・ ◦ マイコンなど電子機器と繋げるには、一工夫必要 12 (写真:Panasonic, IDEC, PATLITE) -
産業用途で使われる制御機器 • PLC (プログラマブル ロジック コントローラ) ◦ 安いものだと1万円程度から ◦ 入出力10点くらいから ◦
20年くらいは販売が継続 ◦ ネットワーク無し。オプションで+ 2万円くらい ◦ オプション付けると色々出来る。けどあっという間にン十万円(!) • タッチパネル ◦ モノクロ3インチで2万円弱から ◦ カラー15インチで30万円以上(!) (耐障害性、安定性、長期供給は保証) 13 (写真:Siemens, DIGITAL) -
工場現場からの要望 必ず言われること → ”モニター”が欲しい • 作業の状態を見える化 • 図面やチェックシートなどの検索・閲覧 • 離れていても見やすいこと! となると、大型のモニターがどうしても欲しい・・・(タッチパネル高価 Raspberry
Pi + 安価な液晶モニターの組み合わせで解決しよう! 14 (写真:いらすとや) -
RaspberryPi を PLCっぽく使う PLCの考え方を取り込んでみよう! モジュールを追加して機能拡張する概念→ • RaspberryPiにFA用機器を直接接続する ◦ 電圧の違い(3.3V ~
24V)を相互変換する機能 • 機能拡張しやすい仕組み ◦ Seeed社のGROVE System 15 CPU IO AD Ether ・・・ (写真:Siemens, Seeed Studio) -
センサの信号 FA機器とRaspberryPiの接続 16 (写真:Siemens, DIGITAL) 用センサなど 用表示灯など で動作する機器 Vで動作する部品
フォトカプラで 電気的に絶縁 フォトカプラで 電気的に絶縁 トランジスタ アレイで 電流増幅 表示灯の信号 表示灯を点灯 センサの信号 -
FA機器とRaspberryPiの接続 17 (写真:Siemens, DIGITAL) 用センサなど 用表示灯など で動作する機器 Vで動作する部品 GPIO24V~3.3V
レベル変換 &RTCユニット (ユニバーサル基板 泣) -
FA機器とRaspberryPiの接続 18 (写真:Siemens, DIGITAL) 用センサなど 用表示灯など で動作する機器 Vで動作する部品 GPIO24V~3.3V
レベル変換 &RTCユニット (基板を作った) -
GROVE Systemの活用 豊富なデバイスとアクセサリの恩恵 • 4線式でシンプルな規格 • 主要マイコン(Arduinoなど)向けIFも豊富 オープンな規格、”無ければ作る!” • Seeedの基板製造サービスも活用
20 (写真:Seeed Studio) 自作のGrove互換モジュール→ -
RaspberryPi を PLCっぽく使う 22 Grove Base Hat for Raspberry
Pi UPS& 電源監視 ユニット Raspberry Pi GPIO24V~3.3Vレベル変換 &RTCユニット アナログ GPIO24V 赤:通信異常など 青:正常運転 様々な 既製品のセンサー (無ければ自作) 様々なFA機器 -
再利用しやすく・頑丈に FA部品を活用、汎用的な制御盤に仕上げ 23 •サーキットプロテクタ (IDEC、富士電機) •端子台 (東洋技研、WAGO) RaspberryPi GROVE Hat
•プラボックス (日東工業、タカチ) •アルミフレーム (NICオートテック) •ゴム足 (タキゲン) •コンセント (パナソニック) •ランプ、スイッチ (IDEC、オムロン) •タワー表示灯 (日恵製作所、パトライト) •DINレール、配線ダクト (篠原電気) 300mm 500mm -
どんなプログラム言語を使おう? • C# (作例3) ◦ 個人的に一番好きな言語 ( .NET 1.0から使ってる) ◦ Windows 10
IoT Core!VisualStudio使える!!画面も作れる!!!最強!!!! ▪ でも、最近アップデートがなくてツラい ◦ .NET Core → LinuxのGUIが・・・ • Python(作例1、2) ◦ 一昨年から勉強はじめた。 ◦ とにかくサンプルが多くて助かる。( ”えいやぁ”で、すぐ作れちゃう) ◦ GUIもOK(Kivy) 24 -
PLCの言語 • ラダー言語 ◦ 最初は苦労・・・慣れてきたら、並列処理が書きやす いので便利 • 実行を止めずにプログラム書き換え • 変数のリアルタイムモニタ
• ソースコードは丸ごとPLCのメモリに保存 • シリアル通信、Ethernetとか扱うと、ちょっと大 変 25 -
ROSの活用 • ノード単位で機能を構成 ◦ ノード間はPUB・SUB通信 • 異種言語の混在OK • パッケージで機能の再利用 •
roslaunchでプロセス管理 • ソースはRaspberryPiの中に保存 • 概ね、やりたいことが出来たが・・・ ◦ RaspberryPiだと動作が重い ◦ 機能が高度・豊富すぎて勿体ない・・・( Gazebo, MoveIt とか) 27 作例2:設備の稼働集計装置は ROS Melodic (Python)で 動いてます (Robot Operating System) (写真:ROS.org) -
構成 33 Raspberry Pi GPIO I2C 自動運転コード Auto.ex 個別動作の 定義コード
Worker.ex Elixir Circuit モジュール ドライバ Mcp23017.ex Elixirコード プロセス管理(スーパーバイザ) Application.ex :GenServer 電気的 絶縁 & 電圧 レベル 変換 (写真:IDEC, 日惠製作所 , elixir-circuits.github.io) FA機器 -
構成 34 Raspberry Pi GPIO I2C 自動運転コード Auto.ex 個別動作の 定義コード
Worker.ex Elixir Circuit モジュール ドライバ Mcp23017.ex Elixirコード プロセス管理(スーパーバイザ) Application.ex :GenServer 電気的 絶縁 & 電圧 レベル 変換 FA機器 ここの書き方は こちらの書籍を参考 インプレスR&D 「Elixirへのいざない」 著者:川邑 リュウさん (写真:IDEC, 日惠製作所 , elixir-circuits.github.io) -
Elixir だから、できそうなこと 興味深いキーワード • ホットコードデプロイ ◦ 稼働中のシステムを停止させずにプログラム変更 • 並行性・メンテナンス性・耐障害性 ひょっとして、PLCのラダー言語のような使い方ができるのでは?
• 実行を止めずにプログラム書き換え ”RUN中書き込み” • 変数のリアルタイムモニタ 35 -
RUN中書き込み • PLC特有(?)の機能 • プログラムの実行を一切止めることなく、ソースを書き換え • 書き換え直後から、そのまま新しいロジックで動き続ける ◦ 設備を作っているとき、試運転中のデバッグ ◦
現場で稼働しながら、制御の小改造をするとき などの場面でよく使う機能 • VisualStudioの「Edit and Continue」みたいな機能? ◦ ブレークしなくても書き換えできるのが ”RUN中” 37 -
実験:Elixirで”RUN中書き込み” 1. まず、ソース“Auto1.ex”の時間間隔の値を書き換え 2. 次に、実行中の iex のプロンプトから (ここでソースをコンパイル) (コンパイルしたモジュールを再読込み) これだけ。
39 iex > recompile iex > r “Auto1.ex” ※iex Elixirの対話型シェル (Pythonみたいな感じ) -
作例・Elixirで動かそう!産業機器 デモその3 • 最近 流行り(?)の「遠隔ハンコ押し機」 ◦ ・・・の、ハンコを押すアクチュエータを製作 ◦ クラウド側は、先の方の発表内容でつくれそう! •
逸般の誤家庭にある「電動サーボシリンダ」 Elixir&Raspberry Piで制御にチャレンジ ◦ 3.3V→24Vレベル変換は、自作回路で。 42 (写真:いらすとや) -
作例・Elixirで動かそう!産業機器 電動サーボシリンダ • 位置制御 ◦ 精度 ±0.02mm以下 ◦ 速度 1000mm/sec以上 • トルク制御
◦ 指定の押し圧に達したら停止 ◦ 今回はこの機能を使って、 ”いい感じ”に押印 43 (写真:IAI) スライダが 前後に移動 ロッドが 伸縮 大きさ 200~2000mm -
まとめ 1. Raspberry Piを、製造現場で活用する工夫について 2. Elixirだから、できそうなこと • 組込み向けの情報が少ないので、色々試行錯誤中・・・ ◦ (ハマったら、使い慣れた
Python |> ROS2(rclex) |> Elixir で解決!) • ナウでヤング(まだ作例が少ない)→ 試した分だけ新たな知見! • 少しでも興味を持って頂ければ、”NervesJP”にも JOIN! 46 -
参考情報 1. Elixir概要 a. https://speakerdeck.com/cooldaemon/erlang-falsele-sisatoxin-sa 2. 言語の習得 a. ”完全に理解した!” i.
https://agency-star.co.jp/column/elixir-language ii. https://employment.en-japan.com/engineerhub/entry/2017/06/12/110000 b. 教科書 i. https://elixirschool.com/ja/ c. Tips i. https://qiita.com/tags/elixir d. Nerves i. https://www.slideshare.net/takasehideki/nerveselixiriot ii. https://qiita.com/takasehideki/items/94820516ec95b85bae32 e. GUI i. https://qiita.com/piacerex/items/3f8ee18c9443d63955bf ii. https://hotch-potch.hatenadiary.jp/entry/2020/06/20/214043 47 -
参考情報 myasu • https://qiita.com/myasu/ ◦ 本日の詳細は追ってこちらにまとめます。 • https://github.com/trihome/ • https://speakerdeck.com/myasu/
• https://hotch-potch.hatenadiary.jp/ 48