シーケンス制御(PLC)を
PC上で体験する
Arduino Unoやスイッチボード(周辺装置)がない場合にも,ELFIを使用して,シーケンス制御を行う方法があります。Autodesk社のTinkercadを用いると,次のように,Arduino Unoやスイッチボードの部分をPC上で”仮想的”に構成できるので,実際にArduino購入したり,スイッチボードを製作する必要はありません。Autodesk社のTinkercadは,2020年7月11日現在,無料で使えるようです。
ELFIとTinkercadを組み合わせれば,ラダー図を使ったシーケンス制御の学習を,PC一台のみで行うことができます。
Tinkercadを使用する準備
Tinkercadを使うためにはアカウントを登録する必要があります。まずは,これから始めてみましょう。
1. Autodesk社のTinkercadにアクセスします。
2. 下図にあるように,[Tinkercadを開始]をクリックします。
3. [パーソナルアカウントを作成]をクリックします。もし,アカウントをすでに持っていれば,[サインイン]をクリックします(その場合は,次のステップを読み捨ててください)。
4. GoogleアカウントやAppleアカウントでサインインすることで,Tinkercadを使用できるようになります。AndroidやiPhoneのスマートフォンをお持ちの場合は,そのどちらかを持っていると思われますので,このどちらかでサインインすると便利です。
そのほかには,[サインインオプションをさらに表示…]をクリックすることで,MicrosoftアカウントやFacebookアカウントでも使用できるようになります。[電子メールでサインアップ]でもアカウントを登録することで使用できるようになります。いずれかの方法でサインインしてみましょう。
5. 次のような画面になれば,Tinkercadが使用できるようになります。
シーケンス制御をやってみよう
ここで行うシーケンス制御は,「ELFIをはじめて使う」をやってみます。2. ピンアサインメントまでが済んでいるものとします。3以降の内容をPC上で仮想的に行うことにするのが,今回の趣旨です。そこでは,a接点であるX0に,押しボタンスイッチが,出力Y0には,LEDが割り当てられていました。それを再現することにします。
スイッチボードとArduino UnoをPC上に仮想的に用意してみましょう。次の図において,[1][2]の順にクリックして,新しい回路を作成します。
次の画面が開きます。右から部品を選択できます。マウスホイールで画面をズームイン・ズームアウトできます。ここに,スイッチボードの作成とArduino Unoを配置していきます。
これから作成する回路は,保存できるので,スイッチボードの作成とArduino Unoの配置は,一度行えば再利用できます。
[Arduino UNO R3] と[ブレッドボード(小)]を配置します。
配置できました。
出力Y0と対応する回路を作る
次に,右の部品一覧から,LEDを選択して,ブレッドボード上に配置します。
さらに,抵抗を配置します。
キーボードから[Alt]キーと[R]キーを同時に押すと,抵抗などの部品を回転できます。
抵抗をクリックして,抵抗値を200 Ωに設定します。
左上の抵抗を設定する画面が出ない場合は,一度ブレッドボードなどをクリックしてから,もう一度,抵抗をクリックすると表示できます。
Arduino Uno 9番ピンからドラッグして,LEDの足が曲がっている列に,下の図のように,接続します。
ワイヤを曲げるには,ワイヤを引いてから曲げたいところで,ダブルクリックしてその点をドラッグして引っ張ります。色は,カラーから選択できます。
Arduino UnoのGNDと抵抗の左足を接続します。
ここまでで,ラダー図で作成した出力Y0は9番ピンに紐づいていました。したがって,出力Y0が1の状態になると,9番ピンに電圧が出力され,LEDが点灯するようになりました。
入力X0に対応する回路を作る
[押しボタン]を部品一覧から選んで,ブレッドボード上に次のように配置します。
抵抗を次のように配置して,抵抗値を4.7 kΩに設定します。
抵抗の左側の足の列をArduinoのGNDに,緑ワイヤーのように接続します。
Arduino Unoの5 Vピンと押しボタンの右下の足を黄色ワイヤーのように接続します。
Arduino Unoの3番ピンと押しボタンの右下の足をオレンジ色ワイヤーのように接続します。
ここまでで,ラダー図で作成したa接点X0は3番ピンに紐づいていました。押しボタンを押すと,a接点の3番ピンに電圧が入力され,X0が1の状態になります。
Arduino Unoにラダー図を送る
[コード]を選択して,[ブロック]から[テキスト]を選びます。
[続行]をクリックします。
次の画面になります。ここに,ラダー図に該当するプログラムをELFIから貼り付けることで,Arduino UnoをPLCとして使うことができ,シーケンス制御が体験できます。
ELFIに戻り,ツールバーから[ソースコードの表示]を選びます。
次の画面が出ますが,このテキスト(プログラム)をすべてコピーします。このテキストは,ラダー図と等価なArduinoのプログラムです。
同じものをここにコピーできる形で用意しておきます。
#define X0 (digitalRead(3)) int Y0 = 0; void setup() { pinMode(3, INPUT); pinMode(9, OUTPUT); digitalWrite(9, 0); } void loop() { Y0 = X0; digitalWrite(9, Y0); }
Tinkercadに戻って,次の場所に貼り付けます。
Digital 0番ピンは,2020年7月現在うまく機能しないので,使用しないでください。
シーケンス制御を体験する
[シミュレーションを開始]を押すとArduino Unoが先ほどのテキスト(プログラム)にそって動き,シーケンス制御が体験できるようになります。
[押しボタン]を押さないとLEDは点灯しません。
マウスで[押しボタン]をクリックしている間は,LEDが点灯します。
いかがだったでしょうか。このようにして,実際に,Arduino Unoやスイッチボードを持っていなくても,PC上でシーケンス制御が体験できます。なお,この回路は,「すべての変更が保存されました」と表示されていれば,自動的に保存されているので,このままブラウザを閉じても,回路が消えることはありません。
以上です,おつかれさまでした。