シーケンス制御(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上でシーケンス制御が体験できます。なお,この回路は,「すべての変更が保存されました」と表示されていれば,自動的に保存されているので,このままブラウザを閉じても,回路が消えることはありません。

以上です,おつかれさまでした。