PR

Arduino Optaにラダーを書いて盛大にハマった件

arduino-opta-ladder-diagram-got-stuck-eyecatch

今回も前回に引き続き、Arduino Optaに関する記事です。

前回は、ArduinoIDEやVSCodeを使用して、
従来のArduinoと同じようなLチカに挑戦しましたが、
はっきり言ってあまり面白くないですよね。

ちなみに前回のLチカの記事はこちら。

Arduino Optaと言えば、Arduinoが作ったPLCなので、
ラダーをやらないともはや存在価値がありません。
※そこまで言う必要もないかもですが笑。

というわけで、今回は、Arduinoが作った
Arduino PLC IDEを使って、Arduino Optaにラダーを書き込んでみました。

題名にある通り、
盛大にハマって実際に駆動できるようにするのに1時間以上かかってしまいました。
原因がわかってしまえばなんてことはないのですが、
それに気づくまでにとんでもなく時間がかかった….

今回の記事を実践すると、
こんな感じでタイマーを使ってLEDをチカチカできます。

Arduino OptaにArduino PLC IDEを使ってラダーを書いてみた。
この記事を読むことでわかること

自己紹介

サラリーマンしてます。

主に工場(生産現場)で使用する検査装置のアプリケーション開発してます。

ヒトの作業を自動化して簡略化するアプリケーションを日々開発中。

2022年5月に転職。現役バリバリの技術者です。
現在は超大手企業の新規事業分野で装置の研究・開発をしています。

Youtubeチャンネルにさまざまな動画を上げています

↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓

注意

本ブログはアフィリエイトを用いた広告を掲載しています。

まずはArduino PLC IDEをダウンロードするところから。

前回のArdino Optaの内蔵LEDを光らせる、
通称Lチカについては、ArduinoIDEつまり、
Arduino UNOでもArduino Nano Everyでも、Arduino pro microでも
共通のArduinoへの書き込みソフトを使用していました。

今回は、Arduino PLC IDEというソフトウェアを使用します。

このArduino PLC IDEは、通常のArduinoシリーズを使って電子工作する分には、
全く登場機会がありません。

ですから、このArduino PLC IDEは、Arduino IDEのPLC用のソフトウェアという
認識で問題ありません。

実際にArduino.orgの公式ページからダウンロードする

早速リンクを貼っておきます。
こちらのページから、Arduinoの公式ページの飛ぶことができます。

ここから公式のダウンロードページに飛べます。

このページでは、Arduino IDEのレガシー版などもダウンロードできますが、
今回はこちら。↓

Arduino-PLC-IDE-download
Arduino PLC IDEが今回のお目当て。

Windows用が2つありますね。

片方あればいいかと思いきや、
どちらも必要ですので、必ず両方ダウンロードしてインストールしておいてください。

上だけインストールして、
下のArduino PLC IDE Toolsをインストールし忘れると、
変なところでエラーが出まくるのでちゃんとインストールしましょうね。

toolsも含めて2つインストールが完了したら起動してみる。

起動するのは、デフォルトだとデスクトップにアイコンが表示されていると思います。

こちらのアイコンです。こちらからArduino PLC IDEを起動します。

Arduino-PLC-IDE-home-link
Arduino PLC IDEのアイコン。

ちゃんと起動できるとこんな感じの画面になるはずです。

Arduino-PLC-IDE-Main-Form
Arduino PLC IDE起動時の画面。

Open an existing projectという表は、
すでにわたしのほうで作成していたプログラムになるので、
本来初期状態で起動するとここは無いはずです。

New Projectを押して新しくプロジェクトを作成する。

中段上のNew Projectのボタンを押すと、
このようなウィンドウが表示されます。

Arduino-PLC-IDE-New-project-window
New projectボタンを押すと表示されるウィンドウ。

ここでは、プロジェクトの名前と付けたり、
保存するディレクトリの位置などを決めることができますが、
何より大事なのが、Target selectionという項目です。

実はわたしはここで少し引っかかりました。引っかかりポイント①です。

この画面では、Target selectionのところにOpta1.0と表示されています。
このOptaというのは、Arduino Optaのことですから、
これからArduino Optaを使って制御するのであっていますね。

ただ、これ、少し前にArduino PLC IDEをインストールしていると表示
されなかったんです….

select-opta1.0
この画面ではOpta 1.0が表示されているが、少し前のVer.では選べなかった。

このプルタブの下の項目しか選択できなかったんです…

ちょっとOptaを購入する直前にフライング気味に
Arduino PLC IDEをインストールしてしまったのが原因のようです。

現在は、Optaが選択できるVer.がリリースされていますので、
ご安心ください。

逆に、少し前にArduino PLC IDEをインストールして、
個々の画面でOpta1.0が選択できない場合は、
最新のArduino PLC IDEをダウンロードしてきて再インストールすると選択できます。

Opta 1.0を選択してProjectを作成しましょう。

起動してまず引っかかるところはアクティベーション

さて、無事新しいProjectを作成できましたね。
こんな感じでArduino Optaがどでかく表示されます。

New-project-window
新しいProjectで表示される画面。

さて、次にやることは、

  • Arduino PLC IDEのライセンスをアクティベーションする。
  • Arduino Optaを初期化する。

順番に見ていきましょう。

共通で必要なのが、まずはPCとArduino Optaを接続することです。
こんな感じでコンセントのマークがあるので押してみましょう。

connect-opta-pc
PCとArduino Optaを接続するには、このコンセントマークをクリックする。

恐らくこんな感じで怒られると思います。

Unable-to-start-the-communication
接続エラーの警告が出ます。

この文言通り、Arduino PLC IDEの上のほうにある
On-lineタブ内から、set up communicationを選びましょう。

するとこんな感じの窓が表示されるので、Propertiesを選択します。

DeviceLinkManager
propertiesを押してCOMポートを設定し直します。

すると、COMポートの選択が可能になります。
どうやら、この選択の時に、大きい数字を選ぶのがセオリーのようです。
わたしのばあいは、17が選択されていましたが、17よりも大きい、
19というのがありますので、COM19を選択して、
先ほどと同じようにコンセントマークを押します。

select-com-port
COMポートは、大きい方を選びます。今回だと19。

ここでしっかり正しいCOMポートの番号が選べていると、
コンセントマークのボタンを押したときに、このように
CONNECTEDと表示されます。

connected-icon
Arduino PLC IDEの右下にこんな感じで表示されれば接続完了です。

Arduino PLC IDEのライセンスをアクティベーションする。

ライセンス?なにそれ?
という話だと思いますが、実は、ライセンスフリーで有名なArduinoですが、
このArduino Optaというか、PLC IDEに限ったことなのか、
ライセンスが必要になります。

ただ安心してください。Arduino Optaを持っている場合は、
パソコンにArduino Optaをつなげればライセンスを別で購入する必要はありません。

ちょっと前まで、
「Optaにラダーを書くにはライセンスの購入が必要なのかな???」
なんて勘違いしてましたが、特に別途購入は必要ありませんでした。

アクティベーションですが、
Arduino Optaの画像の横にあるStatusのところが最初は赤くなっていて、
アクティベーション用のボタンが表示されているはずです。

そのボタンを押すことで、
こんな感じでStatusがOKになります。

arduino-opta-status-ok
アクティベーションが完了すると、StatusがOKに変わります。

繰り返しにはなりますが、
これは、ライセンスキーの承認工程ですが、
Arduino OptaをPCに接続した状態であれば、
追加でライセンスキーの購入は不要でした。

早とちりして無駄にライセンスキーを買わないように気をつけましょう。

Arduino Optaを初期化する。

無事Arduino Optaというか、Arduino PLC IDEのアクティベーションなのかな?
が済んだら、今度はArduino Optaの初期化を行います。

このOthreという囲いの中で、COM 番号を選択して
DownLoadボタンを押します。

とりあえず初めて使う場合には必ずやっておきましょう。
これをやらずに出るエラーは時間の無駄ですからね….

このとき選択するCOM番号は、実は先ほど接続したCOMポートとは異なります。

どういうことかというと、実は、Arduino Optaは3つのCOMポートが内部に存在します。

とんでもなくわかりづらく、わたしも混乱しましたので、
ちょっと詳しくわたしの例で解説してみますね。

わたしの環境の場合で解説

さて、わたしの環境でArduino PLC IDEを立ち上げて先ほどの接続を行うとき、
表示されていたのは、COM17とCOM19でした。

ただ、初期化する場合は、COM18に書き込まないといけません。

そんなのOtherの囲みの中のプルタブでは表示されていませんでした。
それではどうやってCOM18を表示させるのか?

それは、Arduino Optaの1Resetボタンを2回クリックするんです。

arduino-opta-reset-button
リセットボタンは少しへこんでいるのでペンなどで押します。

ちょっと奥まっているので、ペンなどの先のとがったもので押す必要があります。
このボタンを2回押してください。すぐ上の緑のLEDが点滅します。

これが強制書き込みモードになります。
この状態で一度Arduino PLC IDEを再起動すると、
COM18が選択できるようになり、それを選択することで、初期化が可能になります。

わかりづらい…

強制書き込みモードで初期化が終わったら…

ここまでくれば初期化は完了ですので、
いよいよプロジェクトを作成してラダーを書いていきましょう。
まだトラップは存在しますので、そこも注意しながら進めましょう。

プロジェクトを作成してラダー図(ラダーダイアグラムを出す)

いよいよプロジェクトを作成していきます。

実はすでにフォーマットはNew Projectボタンを押した時点で作られています。
左側のツリーがそれにあたります。

default-project-tree
初期状態のProjectのツリー画面。

この時点では、ラダー図はどこにもありません。
なのでラダーダイアグラムを追加します。

追加方法に癖があるので注意が必要です….

ラダー図(ラダーダイアグラム)はどこから出すのか??

さて、癖があると言いましたが、間違えやすいポイントとして2つありますので、
そこを重点的に解説します。そのポイントが以下の2つです。

  • ラダーダイアグラムは、特定の場所で右クリックしないと出ない。
  • ラダーダイアグラムを選択すると最終的に困る。

順番に解説していきます。

ラダーダイアグラムは、特定の場所で右クリックしないと出ない。

特定の場所とは、どこなのか?
それは、プロジェクト名のところです。

select-new-porgram
ここでNew programを選択します。

プロジェクト名で右クリック⇒Add⇒New programの順です。

この同列にNew function blockというのがありますが、
ここでは、New programを選択します。

なぜここでNew programなのかは後ほど解説します。

ラダーが書きたいだけなのに、
追加する方法がいまいちわからず結構ストレスでした…

ラダーダイアグラムを選択すると最終的に困る。

さて、なにが困るのか?について解説する必要がありますが、
まずその前に、New programをAddした場合に表示される窓について解説します。

New programを選択すると、このような窓が出てきます。

New-project-assing-to
重要なのはTaskのところのAssing toの欄。

LanguageはまあとりあえずLDでいいですかね。
大事なのは、Taskです。

このTaskは、その名の通り、どのタスクで実行しますか??という設定です。
タスクについては、先ほどのツリーにありますが、それぞれのタスクに
設定することで、勝手に実行されます。

逆に言うと、このFastやSlowなどのタスクに設定されていないものは、
どんなに頑張って書いても実行されないということです。

実は、先ほどの選択で、New programを選ばず、
New function blockを選択してしまうと、
このように、Taskに追加することができないんです。

New-function-block-window
ファンクションブロックだとAssing toが無い。

Taskという欄が存在しませんよね。

先ほどのツリーから、Taskを右クリックしてプログラムを追加することも可能ですが、
Function Blockは追加できません。つまり実行できないファイルということ…

function-block-donot-insert-Tasks
タスクは実行されるターゲットですが、ここにfunction blockは入らない。

ladはNew Function Blockで作成したFunction Blockで、
ladderTestは、New programで作成したラダー。

このTaskの中に入れられない=実行されない。

ここが非常に重要です。
もう一度言いますが、Taskの中に、
実行したいプログラムが入っていないと、実行されません。

コンパイルとArduino Optaへの書き込みはどうすればいい?

Arduino PLC IDEでラダーを書くのは現在手探り状態なので、
詳細は今後こちらで調べてみるとして、
簡単なラダーだけ書いてみました。

すべて内蔵のスイッチとLEDを使用するものですので、
あらたに道具は必要ありません。

ではラダー図ですがこんな感じです。

ladder-diagram
今回使ったラダー図はこちら。TOFは一定時間ON状態を保持します。今回は5000msなので5秒。

sysButtonInputs[0]は、Arduino Optaに標準で搭載されているUSERのボタンです。
これですね。

default-user-button
標準搭載のボタンを使用します。

このボタンの押下をトリガーとしています。

TOFはタイマーです。
今回は5000msec保持します。
ボタンを押したら離してもOKで、5秒間出力側をON状態で保持します。
ボタンを押した時点から5秒経つと、タイマーが切れますので、
出力側がOFFに切り替わります。

その出力側ですが、
sysLEDOutputs[]で、STATUSに並んでいる4つのLEDを点灯させます。

このLED4個ですね。

status-led
今回このStatusのLED4個が光ります。

コンパイルとArduino Optaの書き込みは、それぞれこのボタンで行います。

Arduino PLC IDEのコンパイルのボタン

まずはコンパイルです。

コンパイルとは、今回はラダー図ですが、
このラダー図を機械語に翻訳して、機械が理解できる形に変換する作業です。

通常この作業を行わないと、
人間にしかわからないコードになってしまうので、
基本的には必要です。

ボタンとしては、このボタンを使います。

compile-button
コンパイルはこのボタンで実行できます。

このボタンを押すと、スクリプトがバーッと走りますが、
このようにwarningもerrorも出なければコンパイル完了です。

result-window
実行結果画面。エラーも警告も出ていません。

Arduino PLC IDEでArduino Optaに書き込むボタン

さて、次に実際にコンパイルしたソースを、
Arduino Optaに書き込みます。

使うボタンはこれです。

download-program
このボタンを押すことで実際にArduino Optaに書き込みを行います。

書き込む前にいろいろと警告が出ますが、OKを押して大丈夫です。
これでArduino Optaへ書き込みが行われます。

実際にArduino Optaにラダーを書き込んで実行してみた結果

先ほどお見せしたラダー図を実際にArduino Optaに書き込んでみました。
説明の通り、5秒間タイマーが発動している間は、
出力がONになっているのがわかると思います。

標準的な機能として、
立ち上げのタイマーの他、入力が一定時間はいらないと出力がONにならないTONや、
カウンターなんかも存在します。
ここら辺は各社PLCと似たような感じですね。

今回は内蔵のスイッチとLEDのみを使用していますが、
もちろんI/Oの接続端子がArduino Optaには搭載されていますから、
スイッチをもっと追加したり、LEDだったり12V用装置だったりを出力に追加して、
いろいろとPLCらしいことができます。

今回のまとめ

今回は、Arduino OptaをPLCとして使うための準備と、
実際にラダーを書いてそれをArduino Optaで実行してみました。

Arduino Opta自体、最近の発表と発売だったこともあり、
そこまで情報が出てきていませんが、今回の記事の内容で
だいぶ理解が深まったのではないでしょうか?

次は、DC12VをArdino Optaに突っ込んで、
そのDC12VをリレーさせてLEDをチカチカさせるLチカに挑戦します。

コメント

タイトルとURLをコピーしました