SlideShare a Scribd company logo
工場の制御をElixirで
〜ラダー・ロジックを実行する〜
菊池 豊
Erlang & Elixir Fest 2019
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 1
お題
• 通信関係と電力関係の事業に携わって来ました
• 制御に使うコンピュータは驚くほど違います
• もっと近寄ったほうが良いのです… きっと…
– 技術だけじゃなく人々も
• 今日は Elixir の創るこういう未来もあるよというお話
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 2
IoT と言われて思うイメージは…
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 3
我々の考える IoT はこれ
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 4
中で動いているのはこんなの
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 5
小水力発電システム
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 6
水車 発電機 ドライバ インバータ
制御・監視・管理
トランス保護
制御に関係するモノとヒト
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 7
盤
ハードウェア
ソフトウェア
どのような背景の技術があるか
• 盤のヒト
– リレー、MC
– PLC(シーケンサ)
• ハードのヒト
– チップ、基板
– デバイスドライバ
• ソフトのヒト
– プログラム言語
– クラウド、API
• 文化がかなり違う
– 盤が中心かクラウドが中心か
– 手作りかオープンソースか
• 今は通訳が必要
– 50代の技術者
• 根本的に解決するには
– 横串を挿す技術
– コミュニティ
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 8
PLC (Programmable Logic Controller)
• シーケンス制御用マイコン
– 電気機械的リレーを代替
• 代表的な製品で10社ぐらい
– 三菱、オムロン、Siemens
– 互換性なし
• 記述言語も方言多し
– IEC61131-3 というのがあるが
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 9
三菱電機のホームページから
IoT・クラウドのノリをPLC側に
• ハードウェア
– PLC風エッジノード
• ソフトウェア
– イケてる言語でI/O制御
• コミュニティ・OSS
– オープンな世界へ
• モジュール型のノードを
– I/O の必要に応じて規模変化
• Elixir / Erlang / OTP
– これから IoT 向けに
• OSS
– LD(ラダー)⇒ Elixir
• コミュニティ
– マスを稼ぐ仕組みを
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 10
プログラミング言語の選定
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 11
• 当初候補
– Node.js
– Go
– Haskell
– Erlang
– Rust
言語 Elixir の特徴
• 並行・並列プログラミング関数型言語
– 軽量スレッド(プロセスと呼ぶ)
• 1CPUで数十万スレッドも可能
• 1プロセスあたり3kBのメモリ使用
• 耐障害性
– アプリ停止なしの障害時プロセス再起動
– プロセスのホットスワップ可能
• 元々は電話交換システム用(1986〜)
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 12
仮想 IoT ハンズオン
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 13
• 課題
モータがあります
– 緑のボタンで動かして…
– 赤のボタンで止める…
ようにしてください
• ヒント
– MC(リレー)使えます
電気業界ではラダーを使う
• LD: Ladder Logic(ラダー・ロジック)
– リレー回路を模倣するプログラミング図
• 課題の解答
– X0: 緑ボタン
– X1: 赤ボタン
– Y0: MC(リレー)
• 出力をモータに繋ぐ
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 14
Wikipedia 「ラダー・ロジック」より
素直に Elixir で書くと
• 課題の解答
– X0: 緑ボタン
– X1: 赤ボタン
– Y0: MC(リレー)
• これの集合をループさせる
– PLC と同じ動作
– 一つの空間にすべての状態が
– キレイじゃない
– 気持ちよくもない
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 15
Wikipedia 「ラダー・ロジック」より
r = fn(x0, x1, y0)
-> (x0 or y0) and not x1
end
y0 = r.(x0, x1, y0)
LD図をどうやって Elixir にするか
• スタイル
– デバイスをプロセスに
– 関係をプログラム
• 良いこと
– レベルではなくエッジで動作
• 無限ループで模倣でない
– 各要素が SV 監視下に
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 16
AbottunBbottun
Main
Supervisor
まとめと今後
• まとめ
– IoT/クラウドの世界とFAの世界には深い谷がある
– Elixir で谷を埋めてハッピーな世界を
– ラダー図を Elixir プログラムにする方法をお見せしました
• 今後
– 既存の PLC を Elixir 箱で置き換える技術を開発します
• PLC 国内生産額(2016) 1408億円 日本電機工業会(JEMA)
• 世界のPLC市場(2017) 84億9,100万米ドル (Global Information Inc.)
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 17
ご清聴ありがとうございました
2019.06.01 菊池豊 高知工科大学 / 合同会社クラウドグリッド 18
• 各種サービスで @kikuyuta で当たります
– 一部例外あり

More Related Content

PDF
Elixir とか組込みとか (On Elixir and embedded systems)
PDF
第4回 kochi.ex オン・オフラインミーティング
PDF
A3921を使用した100A級MDの製作
PDF
ARToolKitの紹介
PDF
産業用途に利用するのにElixirが向いているぞ
PDF
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
PDF
20190808 kuruma io_tlt_vol1_kitazaki_v1
PPTX
Node-REDで鉄道模型を運転する
Elixir とか組込みとか (On Elixir and embedded systems)
第4回 kochi.ex オン・オフラインミーティング
A3921を使用した100A級MDの製作
ARToolKitの紹介
産業用途に利用するのにElixirが向いているぞ
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
20190808 kuruma io_tlt_vol1_kitazaki_v1
Node-REDで鉄道模型を運転する

Similar to Using Elixir for Factory Automation - how to execute ladder logic (20)

PDF
Modernization of Factory Automation with Elixir based systems and communities
PDF
Exineris Project by kochi.ex
PDF
関数型言語ElixirのIoTシステム開発への展開
PDF
Anyway folks! Let's get started with your Nerves machines.
PDF
To shorten the distance between ladders and clouds
PPTX
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
PPTX
Elixir/Nervesはナウでヤングなcoolなすごいやつ
PDF
Applying Elixir to FA: A Study of Small Hydropower Palnt Systems
PPTX
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
PDF
パーフェクト"Elixir情報収集"
PDF
デバイスごとにアドレスとAPIを 〜プロトタイプを Elixir/Nerves で〜
PDF
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
PPTX
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
PDF
Object-Funcational Analysis and design
PPTX
ElixirでFPGAハードウェアが作れちゃう,かも!!?
PPTX
Elixir-Conf-Japan-2017-session-ohr486
PDF
C base design methodology with s dx and xilinx ml
PDF
ニコニコを支える Erlang / Elixir
PPTX
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
PPTX
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Modernization of Factory Automation with Elixir based systems and communities
Exineris Project by kochi.ex
関数型言語ElixirのIoTシステム開発への展開
Anyway folks! Let's get started with your Nerves machines.
To shorten the distance between ladders and clouds
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
Elixir/Nervesはナウでヤングなcoolなすごいやつ
Applying Elixir to FA: A Study of Small Hydropower Palnt Systems
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
パーフェクト"Elixir情報収集"
デバイスごとにアドレスとAPIを 〜プロトタイプを Elixir/Nerves で〜
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Object-Funcational Analysis and design
ElixirでFPGAハードウェアが作れちゃう,かも!!?
Elixir-Conf-Japan-2017-session-ohr486
C base design methodology with s dx and xilinx ml
ニコニコを支える Erlang / Elixir
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Ad

More from Yutaka Kikuchi (20)

PDF
再生可能エネルギー入門 (An introduction to renewable energy)
PDF
大学研究室レベルでLocal 5Gを導入するための手法の考察
PDF
Local 5G の設備ってどんなん
PDF
#kochiex がなんかええもん つくったらしい回
PDF
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
PDF
小水力発電所制御の中身見せます
PDF
びよんどプロジェクト
PDF
Should I talk about Logger or Process Registries?
PDF
スケールセンシティブ 〜里山工学を理論付ける〜
PDF
ルーティング最新動向 〜4バイトAS〜
PDF
FA関連技術のオープンソース化計画
PDF
RICC PIoT Workshop ハンズオン
PDF
IoT小箱で小水力発電所を制御する
PDF
Small hydro power plant systems with multi vender method
PDF
小水力発電で地域と世界の未来づくり
PDF
旧畑山発電所 2019.04.13 の記録
PDF
小水力発電による地域活性化
PDF
A brief guide to introducing processes of small hydro power (in Japanese). 小水...
PDF
小水力発電による地域活性化スキーム (A scheme for regional revitalization with small hydro power)
PDF
How to draw network figures? It's difficulties.
再生可能エネルギー入門 (An introduction to renewable energy)
大学研究室レベルでLocal 5Gを導入するための手法の考察
Local 5G の設備ってどんなん
#kochiex がなんかええもん つくったらしい回
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
小水力発電所制御の中身見せます
びよんどプロジェクト
Should I talk about Logger or Process Registries?
スケールセンシティブ 〜里山工学を理論付ける〜
ルーティング最新動向 〜4バイトAS〜
FA関連技術のオープンソース化計画
RICC PIoT Workshop ハンズオン
IoT小箱で小水力発電所を制御する
Small hydro power plant systems with multi vender method
小水力発電で地域と世界の未来づくり
旧畑山発電所 2019.04.13 の記録
小水力発電による地域活性化
A brief guide to introducing processes of small hydro power (in Japanese). 小水...
小水力発電による地域活性化スキーム (A scheme for regional revitalization with small hydro power)
How to draw network figures? It's difficulties.
Ad

Using Elixir for Factory Automation - how to execute ladder logic