M-DUINO PLCで始めるArduino (1) PLCとしては使わない
製造現場では、製品を作るラインでスイッチやアクチュエータを制御するためのコンピュータにPLCが使われます。PLCはプログラマブル・ロジック・コントローラの略で、シーケンサとも呼ばれています。独自なプログラミング言語をもち、C言語などのプログラマではなく、現場の電気を扱う技術者がプログラミングします。
製造現場の環境は事務所に比べて温度変化も厳しく、ノイズが多い環境です。そのような環境でもしっかりと動くように作られているため、PLCは高価な装置です。PLCは中心となるマイコンが入った装置に対して、入力やリレーなどの出力のユニットを簡単に増設できるように考えられています。PLC自体は、その上位の工場のコンピュータと通信をし、指示を受けられる機能があります。
●入出力と確認用のLEDが一体化されているのはとても便利
ここで利用するM-DUINO PLC ARDUINO ETHERNET 19Rは、マイコンにArduinoボードが使われたPLCです。プログラミングはPLCで使われるラダー図が書けるソフトウェアが無償で使えます。また、Arduino IDEもサポートされています。本記事では開発にArduino IDEを使います。
Arduinoを利用して数個の入力、数個の出力をプロトタイピングするのは容易です。しかし、その入出力が増えていき、ある程度長期にわたって動作させたいときには、筐体に入れて扱えると信頼性が増します。Arduinoに入力用シールド、リレー用シールドを重ねて使うのが一般的ですが、外部に引き出すケーブルの取り回しなど、乱雑になりやすいです。
Industrial ShieldsのETHERNET PLCシリーズは、コンパクトなベースと拡張機能が優れた製品の一つです。Arduino.ccで購入できます。国内では、RSコンポーネンツ、ロボショップなどで扱っています。
同様のラインナップをそろえているところにCONTROLLINOがあります。
◆DINレールに取り付け、底面から見た様子
◆側面(Bゾーン)
◆上面
◆側面(Aゾーン)
●ETHERNET 19Rの入出力
本体はDINレールに取り付けられ、電源は12~24V(24V-700mA)に対応しています。PCとはUSBケーブルでつないでプログラミングします。マイコン・ボードはArduino Mega2560が使われており、I2Cを通してI/Oを拡張できます。19Rはこのシリーズの中では一番I/Oの少ないモデルです。
- アナログ入力 0~10V入力が4本。5~24Vディジタル入力に変更可(本体GNDとは分離)
- ディジタル入力 5~24V(割り込み対応)が2本(絶縁)
- アナログ出力 0~10V、8ビットが3本(本体GNDとは分離)
- ディジタル出力 5~24Vが3本(絶縁)
- リレー出力 220Vac-5Aが8本
- 通信 イーサネット(コントローラW5500)、RS-485(ModBusRTU)、RS-232C、I2C、SPI、TTLが3本
- 温度範囲 0~45℃
●Lチカから始める
Arduino IDEの環境に、この製品の開発環境をインストールします。メイン・メニューのファイルから環境設定を開きます。
http://apps.industrialshields.com/main/arduino/boards/package_industrialshields_index.json |
を「追加のボードマネージャのURL」に追加します。初めてならそのままコピペし、ほかの記述があれば、カンマ , に続いて上記のURLを入れ、OKをクリックします。
ツールからボードマネージャを開きます。
検索欄に「Industrial」を入れると本器のボードを探してくるので、More Info付近をクリックして出てくるインストール・ボタンをクリックします。
USBケーブルでPCとつなぎます。ツールからボードマネージャを選び、M-Duino familyを選びます。
ボードの種類、M-Duino 19Rを選び、そのあとシリアルポートを選択します。
準備ができました。
●接続
本製品用にDINレールに取り付けられる24V-1.5Aの電源と、LED用に5V-3Aの電源を用意しました。いずれもミスミで購入しました。二つの電源ユニットの1次側をAC100Vへつなぎます。電源スイッチはないので、スイッチ付きのテーブル・タップを利用しました。
24V電源の出力をETHERNET 19RのPower Supply端子 GND-24Vdcへつなぎます。
リレー出力からLEDと電流制限抵抗、電源5Vへは、次のように配線しました。1Wの白色LEDなので、順方向電圧Vfは3Vと仮定し、最大で流せる電流は350mAなので、200mA程度を流すために抵抗は100Ωを使いました。抵抗の電力容量は25Wです。LEDにも小型の放熱器を付けました。パルスでON/OFFさせるかぎり、発熱はほとんどありません。
●スケッチ
サンプルのblinkを読み込みます。M-Duino 19Rのマニュアルから、リレー出力R0.4は24ピンなのでLED_BUILTINを24に変更します。3か所あります。