Arduino Opta を試す:ホビー用ArduinoとPLCの橋渡しになる産業用コントローラ
イチケン / ICHIKENArduinoはArduino Proシリーズの1製品として、見た目からして産業機器らしいPLC(Programmable Logic Controller)「Arduino Opta」を出している。リレーメーカーのFinderとArduinoの共同製品で、話者はこれを「ホビー用途のArduinoと産業用PLCの橋渡し」にあたる製品と位置づける。本動画では実機でArduinoとしての使い方、PLCとしての使い方、両者の組み合わせを試し、その使い勝手を評価している。
PLCとは何か:リレーシーケンス制御の置き換え
話者はまずPLCの成り立ちを説明する。昔の工場の自動制御は、リレーを大量に使い、それらを配線して組み上げる「リレーシーケンス制御」で実現されていた。しかしこの方式には問題が多かった。制御内容を変えるには配線をやり直す必要があって手間がかかる。リレーは消耗品なのでメンテナンスが大変で、消費電力も意外と多い。そもそもリレー自体のサイズも大きい。
こうした扱いにくさを解消するために登場したのがPLCである。リレーと配線で組んでいた制御を、PLC上のソフトウェアに組み込む。リレー制御で使われていたラダー図をそのままPLC上のソフトウェアで組み、同じ動作をさせる。そしてその信号のオン・オフでリレーの接点を開閉し、大電力を制御する。話者の整理では、制御などの複雑な部分をPLCが担当し、電力のオン・オフをリレーが担当するという役割分担になる。
Optaの位置づけとポート仕様
Optaは「Arduino」と名乗ってはいるが、中身は基本的にPLCだと話者は言う。使い方は3通りある。Arduino IDEでスケッチを書き込んでArduinoとして使う方法、PLC IDEという開発環境でラダーを書いてPLCとして使う方法、そしてラダーとスケッチを組み合わせて高度な制御をする方法だ。ただ話者が使っていて一番良いと感じたのは、Arduinoのライブラリが使えることや、使いやすい環境が最初から用意されていることだという。
ポートの仕様は次の通りである。電源は12V〜24V入力に対応しており、一般的な産業用PLCと同じように使える。入力ポートはデジタル・アナログ兼用で、アナログ入力は最大10V、デジタル入力は24Vまで。アナログは電圧入力のみで電流入力には対応しておらず、電流入力を使いたい場合は別売りの拡張モジュールが必要になる。
出力は4チャンネルのメカニカルリレーで、定格は250V AC 10A。話者は、モータの突入電流にさえ気をつければだいたいの負荷に使えそうだと見る。ただしPLC自体が高価なので、メカニカルリレーの寿命を考えると、モータなどの大電力負荷をオン・オフする場合は外部にコンタクタを付けたいという。入出力は必要最低限の数だけで、小規模なプロジェクトならこれで足りるだろうというのが話者の評価である。
モデルのバリエーションと価格
Optaには複数のモデルがある。入門用の「ライト」から最上位まで、どのモデルにも入出力ポート、プログラミング用のUSB、イーサーネットポートが備わる。一段上のモデルではこれにRS485が加わり、さらに上の最上位モデル「WiFi」ではWiFiやBluetoothなどの無線機能が搭載される。
話者が今回購入したのは最上位のWiFiモデルだ。今のところWiFiやBluetoothを使う予定はないが、とりあえず全部できるモデルを買っておいたという。価格はライトが税抜き2万5,000円、WiFiが税抜き3万3,000円。話者は、WiFi経由でPLC内の変数を吸い出したい、スケッチを書き込みたいといった需要がない限り、ライトでもだいたいのことはできてしまうと述べている。
拡張モジュール
拡張モジュールは本体の右側に連結して使い、5台まで連結できる。一番左がPLC本体になる。モジュールの種類は本体に書かれた番号で見分けるが、文字が小さく、どれがどれか分からなくなりやすいと話者は指摘する。
紹介されたモジュールは3種類である。1つ目はチャンネル数を増やすもので、16チャンネルのプログラマブル入力と8チャンネルのメカニカルリレーを追加できる。本体だけでチャンネル数が足りない場合に使うものだ。2つ目も同じく16チャンネル入力・8チャンネル出力だが、出力がソリッドステートリレーで、定格は24V 2A。低電圧で高速にスイッチングしたい場合に向くと話者は言う。3つ目はアナログ拡張モジュールで、6チャンネルのプログラマブル入力、2チャンネルのプログラマブル出力、4チャンネルのPWMを追加する。入力・出力ともに電圧モードと電流モードを選べ、これはOpta本体にはない機能である。本体の電圧入出力に対応していないセンサやアクチュエータを使いたいときに活躍するという。
Arduinoとして使う:delayが招いた不安定な動作
実演の構成は、Opta本体、スイッチングハブ、DC電源、パトライトである。ファクトリーオートメーション機器らしく、パトライトとのイーサーネット経由の通信も試している。
まずはArduinoとして、Arduino IDEでコードを書き、USB-Cケーブルで書き込んだ。ボタンを押している間だけ0.25秒間隔で点滅するコードで、一応は動いた。ただし話者自身が「結構適当に作ったコード」と言うように、押すタイミングによってはなかなか光り始めない、点きっぱなしになる、ボタンを離しても消えない、といったおかしな動作があった。話者はコード中で使ったdelayが悪影響を及ぼしているのではないかと推測し、こうした動作はPLC的に組んだ方が良いのではないかと考えて、次のPLCとしての使い方へ進む。
PLCとして使う:ラダーとタイマーでリレーを制御
PLCとして使うには、Arduino PLC IDEという開発環境が別途必要になる。PLC IDEの機能をフルに使うには本来ライセンスが必要だが、Optaにはライセンスが内蔵されており、最初から全機能が使える。話者は、先に挙げた販売価格は実質的にライセンス込みの価格だということだと説明している。
ラダーでは入力のボタンと出力のコイルを用意する。入力にはプログラマブル入力を割り当てることも、本体に最初からあるユーザーボタンを使うこともでき、今回はユーザーボタンを使った。コイルには内蔵のインジケータLEDや内蔵メカニカルリレーを割り当てられる。さらにタイマーを追加し、1秒以上入力が入り続けるとタイマーから出力されるようにした。つまり、ボタンを1秒以上押し続けるとインジケータLEDが光り、内蔵リレーが閉じるという動作である。
実際に押すと、1秒後にリレーがカチッと鳴り、LEDが点灯した。リレーに実際に電流を流しても問題ないかを確かめるため、白熱電球をつないで試すと、押して1秒後に電球が点き、離すとすぐ消えた。話者はこれを「なかなかPLCみたいな動作」と評している(白熱電球が熱くなるので注意、という一言も添えている)。
ラダーとスケッチを組み合わせてパトライトを制御
最後に、ラダーとArduinoスケッチを組み合わせた。ラダー側では入力ポートに押しボタンをつなぎ、押すとin1という変数が1になるようにして、その変数をスケッチ側へ渡す。このためには追加の設定として、ラダーとスケッチで共通に使う変数を「Shared variables」として定義する必要がある。スケッチ側では、押されたボタンに応じて、イーサーネットで接続したパトライトのランプを光らせるコードを書いた。パトライトとPLCはスイッチングハブを介してLANケーブルでつながっている。
ここで話者は一つつまずいた。コード中のコメントに全角文字を使うとエラーになるという点である。話者の記憶では、コンパイルまでは通ったものの書き込みの段階でエラーが出たといい、Optaを使おうとしている人は気をつけてほしいと注意している。
動作としては、ボタンを押すと同時にパトライトが光り、同時押しにも対応し、適当に連打してもきちんと追従した。話者は、今回はボタンとパトライトという簡単な構成だが、たとえばPLCの入力にセンサ出力をつなぎ、センサが閾値を超えたらリレーに制御信号を出して装置を止め、パトライトを光らせるといった応用もできると述べる。スイッチングハブ経由で他のイーサーネット機器と通信できる点も良いポイントに挙げている。
話者の結論
話者は、Arduinoだからもう少し低機能なものかと思っていたが、意外にかなりしっかりした製品だったと振り返る。小規模な制御を組みたい人や学習用途には良い選択肢になるという。価格はイーサーネット付きで2.5万円、無線付きの上位版で3.3万円で、コストパフォーマンスはかなり頑張っている方だと話者は評価する。他社のPLCはソフトウェアが有料だったり、そもそも個人では購入しづらかったりするため、PLCへの敷居を下げてくれるこうした製品は貴重だ、というのが話者の結論である。
この動画はDigiKeyの提供でお送りします。こんにちは。実はArduinoからこんな製品が出ていたのを皆さんご存知でしょうか。こちらです。もろに産業機器みたいな見た目をしているこちらは、Arduino OptaというPLC(Programmable Logic Controller)です。Arduino Proシリーズのうちの1製品です。
Arduinoはこんな製品を出しているのかと思うのですが、これはリレーメーカーのFinderとArduinoが共同で出している製品です。一応ホビー用途のArduinoと産業用PLCとの橋渡し的な位置づけの製品かと思うのですが、今回はこれを実際に使ってみて、どんな感じなのかというのをレビューしていきます。その前に今日のスポンサーの紹介です。どうぞ。
今回はDigiKey日本語YouTubeチャンネル開設5周年を記念した企画を実施します。DigiKey日本語チャンネルでは、5年間にわたって200本以上の動画を作ってきて、7.5万人もの方に登録いただいている状況です。これを祝うために、プレゼントが当たるテッククイズを実施します。全問正解した方全員に、DigiKeyオリジナルのガジェットバッグをプレゼントします。どんなバッグが当たるかはお楽しみです。誰でも参加可能なので、ぜひ応募してみてください。
さらに、なんとNXPセミコンダクタが出しているマイコンの開発ボードも抽選で当たります。こちらについてはDigiKey TechForumへの登録や投稿が必要なので、気になる方は概要欄のリンクからぜひチェックしてみてください。
そもそもPLCとは何かについてですが、これは物理的な配線とリレーの組み合わせで実現していた制御を、PLC上のソフトウェアで制御できるように置き換えたものです。昔の工場の自動制御は、リレーを大量に使ってそれらを配線して組み上げる、リレーシーケンス制御が使われていました。
ただ、これはいろいろと問題を抱えていて、制御を変えようと思うと配線のやり直しが必要で手間がかかっていたり、それに加えてリレーは消耗品でメンテナンスも大変、消費電力も意外と多いです。そして、そもそもリレー自体がサイズ的に結構大きいという、いろいろな問題を抱えていました。それでは扱いにくくてメンテナンスも大変ということで、PLCが登場しました。
PLCは、これまでリレーと配線でやっていた制御プログラムを、PLC上のソフトウェアに組み込んでしまうというものです。このようなリレーを使った制御で、ラダー図って聞いたことがあると思いますが、リレーでやっていたラダー図をそのままPLC上のソフトウェアで組んで同じことをします。その信号のオン・オフでリレーの接点を閉じたり開いたりすることで、大電力を制御しています。まとめると、制御などの複雑な部分はPLCが担当して、電力のオン・オフはリレーが担当するということになります。
こちらが実物です。Arduinoとは言っていますが、中身は基本的にはPLCです。ただ、Arduino IDEでスケッチの書き込みをしてArduinoとしても使えますし、この後出てくるPLC IDEという開発環境でラダーを書いて、PLCとして使うこともできます。さらに、ラダーとArduinoのスケッチを組み合わせて、高度な制御などもできるようになっています。ただ、使っていて一番良いポイントは、Arduinoのライブラリが使えるとか、使いやすい環境が最初から用意されているとか、そのような部分です。
簡単に、用意されているポートの仕様も見ていきます。まず左上が電源供給です。こちらのPLCは12V~24V入力対応なので、一般的な産業用PLCと同じように使えます。その右側にデジタル・アナログ兼用の入力ポートです。アナログ入力の場合は最大10V、デジタル入力の場合は24Vです。アナログ入力については電圧入力であって、電流入力には対応していません。電流入力をやりたいのであれば、別売りの拡張モジュールが必要になります。
出力については4チャンネル分のメカニカルリレーがあります。250V AC 10Aなので、モータの突入電流にさえ気をつければ、だいたいの負荷には使えそうです。ただ、PLC自体が結構高価なものですので、メカニカルリレーの寿命を考えると、モータなどの大電力負荷のオン・オフ制御をする場合は、外部にこのようなコンタクタをつけたりしたいです。
このように入出力については、必要最低限の数だけが用意されているといった仕様です。小規模なプロジェクトであれば、これで足りるかとは思います。
Optaには実はいろいろモデルがありまして、今回購入した最上位モデルから一番の入門用のLiteまで含めて、どのモデルも入出力のポートとプログラミング用のUSB、そしてイーサーネットポートがあります。ここから一段グレードを上げると、これに加えてRS485を加えたモデルがあります。もう一段グレードを上げた最上位のモデルでは、WiFi、Bluetoothなどの無線機能を搭載した、WiFiというモデルになります。
今回買ったのはWiFiであり、一番上位のモデルです。ですが、今のところWiFiやBluetoothを使って何かするみたいな予定はないので、とりあえず全部できる最上位のモデルを買っておこうということにしました。予算次第ではありますが、一番安いLiteが税抜き2万5,000円、今回買ったWiFiが税抜き3万3,000円です。WiFi経由でPLCの中の変数を吸い出したりだとか、スケッチを書き込みたいとか、そのような需要がない限り、基本的にはLiteでもだいたいのことができてしまいます。
先ほど少し出てきた拡張モジュールについても少しだけ見ていきます。拡張モジュールについては、こんな感じで連結して使います。連結は5台までできます。基本的に一番左がPLC本体になって、その右側に拡張モジュールをつなぎます。モジュールの違いはこのあたりの番号で見分けるのですが、結構小さくて、どれがどれか分からなくなります。
今見えているこちらのモジュールは、チャンネル数を増やす拡張モジュールであり、16チャンネルのプログラマブル入力と、8チャンネルのメカニカルリレーを追加できます。Opta本体だけではチャンネル数が足りない場合は、この拡張モジュールを使うとよさそうです。
これも同じく16チャンネルのプログラマブル入力、8チャンネル出力ですが、出力部分についてはソリッドステートリレーとなっています。定格は24V 2Aですので、低電圧で高速にスイッチングしたい場合は、この拡張モジュールを使うと良いでしょう。
そして最後のモジュール、こちら。これはアナログ拡張モジュールで、6チャンネルのプログラマブル入力、2チャンネルのプログラマブル出力、4チャンネルのPWMを追加します。入力・出力ともに電圧・電流モードを選べます。これはArduino Opta本体にはない機能です。Opta本体の電圧入出力に対応していないセンサやアクチュエータを使いたい場合は、このモジュールが活躍します。
ここからは実際にOptaを使っていきます。今回はせっかくなので、ファクトリーオートメーション機器らしく、パトライトを使ってイーサーネット経由での通信などもやってみます。こちらにあるように、Opta本体とスイッチングハブ、DC電源とパトライトといった構成です。
一応OptaもArduinoではあるので、とりあえずはArduinoとして使ってみます。Arduino IDEでコードを書いて、それを書き込みます。今回、書き込みはUSB-Cケーブルを使ってやりました。では実際にやってみます。こんな感じですね。一応動いていますね。こんな感じで、ボタンを押している間だけ0.25秒間隔で点滅するというコードを書きました。きちんと動いていそうですね。
結構適当に作ったコードなので、ところどころ動作がおかしいところがありますけれども、動いていそうな感じはしますね。このArduinoのコードの実装でディレイを使っています。それが悪影響をもろにしてそうな感じがします。押すタイミングによっては、なかなか光り始めなかったりだとか、このようにずっと点いたりとか、あと離しても消えないみたいな。このあたりの動作については、PLC的に使った方が良いのかなと思います。
次はPLCとして使ってみます。実際にラダーも書いてみたいですからね。この場合は、Arduino PLC IDEという開発環境が別途必要になってきます。このPLC IDEの機能をフルで使おうとすると、本来であればライセンスが必要ですが、Arduino Optaにはライセンスが内蔵されているので、最初から全部の機能が使えるようになっています。先ほど販売価格の話が出てきたと思いますが、実際にはライセンス込みの価格ということなんですね。
実際に使ってみるとこんな感じです。ラダーの図はこのようになっていて、入力のボタンと出力のコイルを用意します。入力の部分については、プログラマブル入力を割り当てることもできますし、PLC自体に最初から用意されているユーザーボタンを使うこともできます。今回はOpta本体に最初から用意されているユーザーボタンを使うことにしました。コイルの部分には、本体に最初から内蔵されているインジケータLEDを割り当てたり、内蔵メカニカルリレーを割り当てたりすることができます。
今回はさらにタイマーも追加しました。タイマーに1秒以上入力が入り続けると、タイマーから出力されるようにしています。ですので今回の動作としては、ここのボタンを1秒以上押し続けると、インジケータのLEDが光って、内蔵のメカニカルリレーを閉じるという動作にしました。
実際にやってみるとこんな感じです。ここにあるユーザーのボタンを1秒間このように押すと、分かりますか。このように、リレーがカチカチ鳴ったの聞こえますでしょうか。内蔵のインジケータLEDもこのように。良い感じですね。
実際リレーに電流を流しても問題ないか、しっかりと確かめてみます。こんな感じでね、きちんとやると、熱い。これ白熱電球なので結構熱いです。気をつけましょう。こんな感じで、押してから1秒経つとリレーが入力されて、電気がパッと点く感じですね。押して、1秒、離すとすぐ消えると。このように、なかなかPLCみたいな動作をしていると思います。
さらにPLCのラダーとArduinoのスケッチも組み合わせてみます。まずラダーがこちら。入力ポートに押しボタンをつけて、それを押すとin1という変数が1になります。その変数をArduinoのスケッチの方に渡すということをします。これをやる場合、追加で設定が必要であり、ラダーとスケッチの間で共通で使う変数を、Shared variablesとして定義する必要があります。
さらにスケッチ部分についてもコードを書きました。押したボタンに応じて、イーサーネット経由で接続されているパトライトのランプを光らせるということをしています。ここで一つ引っかかったポイントがありまして、それは何かというと、コードの中にコメントで全角文字を使っていると、エラーが出てコンパイルできません。確かコンパイルまでは通ったのですが、書き込みの段階でエラーが出て。実際Optaを使おうと思っている人は気をつけてください。
実際にやってみると、このようになります。ここにボタンがありますけれども、これを押すと、ボタンを押すと同時にパトライトの方も光ります。このパトライトとPLCは、スイッチングハブを通してLANケーブルでつないでいます。結構しっかり動きますね。もちろん同時押しにも対応していますし、こんな感じで適当にポチポチやっても、きちんと動くと。なかなか良いのではないでしょうか。
今回はボタンとパトライトという簡単な構成でやっていますが、例えばPLCの入力にはセンサの出力がつながっていて、センサが閾値を超えたらリレーに制御信号を出して、装置の動作を止めてパトライトを光らせる、そのような応用もできるようになります。スイッチングハブ経由で、他のイーサーネット接続の機器とも通信できるようになるのが結構良いですね。
というわけで、Arduinoから出ている産業向けPLCのArduino Optaを使ってみました。Arduinoですので、もう少し低機能なものかと思ったのですが、意外とかなりしっかりとしている製品です。小規模な制御を組みたい方だとか、学習用途に使いたい場合などは、かなり良い選択肢になると思います。
価格もイーサーネットがついて2.5万円で、無線がついた高機能版は3.3万円なので、コスパ的には結構頑張っている方かと思います。実際、他社のPLCはソフトウェアが有料だったり、そもそも個人では購入しづらかったりするので、このようなPLCへの敷居を下げてくれる製品は貴重な存在です。
というわけで、もしこの動画が役に立ちましたら、高評価・チャンネル登録よろしくお願いします。何か気になることがありましたら、ぜひコメントも残してみてください。それでは、最後まで動画のご視聴ありがとうございました。
記事公開
