こちらは新しい記事シリーズで、ILC社のINTALOGIC5を使用し様々な検証を行います。第3話はローカルとグローバル変数・行間コメント・データの互換性について紹介します。
さ、FAを楽しもう!

前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
技術は独り占めせず、届けるもの
私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。
また、もしあなたの現場で…
- 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
- 「EtherCAT通信でうまくいかない部分を検証してほしい」
- 「新しいリモートI/Oを試したいけど社内に検証環境がない」
など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。
支援のかたち
現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。
メンバーシップ(ラジオの応援)
Fullさんとのラジオをより充実させるための支援プランです。
https://note.com/fulhause/membership/join
Amazonギフトリスト
コンテンツ制作に必要な機材・書籍をリストにしています。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon(ブログ・動画活動への応援)
月額での小さなご支援が、記事の執筆・検証環境の充実につながります。
https://www.patreon.com/user?u=84249391
Paypal
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
Reference Link
Implementation1-変数
今度は変数を定義します。変数を使用することにより、プログラムの可読性を上げられます。
最初に下図のようにパラメータ変数tabで複数の変数を宣言します。
次は回路のところに右クリック→挿入します。

いつめ通りのファンクション/ファクションブロックの選択画面が表示されます。

今回使用するのは比較関数GEです。もしin1がin2より大きい場合、GTがTrue になります。
In1 の種類であるdrop list から変数を選択してください。

次は下図の…ボタンをクリックします。

変数の選択画面が表示され、先ほど定義したパラメータ変数を選択しましょう。

Done!!

また、en/eno を使用しない場合は下図のcheckbox を外してください。

Done!!

それでは実際の実行結果をみてみましょう。

M20を選択した状態で右クリック→一括モニターします。

ここでモニタしたいデバイスを選択します。

下図ではM0を登録します。

一括モニター画面が表示され、黄色のとのろの現在True であります。

では、変数の現在値をモニタしたい場合どうするでしょう。実は最初から変数定義したエリアに現在値という項目があります。ここから変数の現在値を確認できます。

また、一括モニターでコメント付きのcheckbox を入れれば全てのデバイスにもコメントと現在値を一緒に表示になります。

下図のように、in1がin2より小さの場合、m20ほfalseになります。

そして、in1がin2より大きな場合は、m20がtrue に変わります。

Implementation2-行間コメント
INTALOGICには行間コメント機能があり、各回路に個別のコメントを追記できます。行間コメントを追加したい回路に右クリック→図面作成→行間コメント作成します。

行間コメント画面が表示されます。

そして適切な行間コメントを入力し、okで適用します。

Done!先ほど追加した行間コメントの回路に✴︎マークがついてます。

その行間コメントを表示させるには、ツールの表示→表示切換→行間コメント付をクリックします。

Done!回路に行間コメント表示できるようになりました。

Implementation3-グローバル変数定義
次はINTERLOGICにグローバル変数を使ってみましょう。グローバルはプログラムのパラメータ変数と異なり、どこのプログラムにもアクセス可能です。

下図に示している+ボタンをクリックします。

Done!それだけでグローバル変数が追加されました。

次は変数名・データ・タイプ・初期値を設定すればOKです。

Implementation4-グローバルの使用
今度はプログラム内にグローバル変数を使ってみましょう。外部変数をTabを開き→右クリック>挿入します。

グローバル変数選択画面が表示され、先程Implementation3で定義したグローバル変数の一覧ができます。

プログラムに使用したいグローバル変数を選択し→OKで進みます。

Done!それでプログラムにグローバル変数を使えるようになりました。

新しい回路に右クリック→回路記号→FUN/FBDをクリックします。

今回はSEL関数を使用します。もしG=TRUEならSEL関数の出力はIN1になり、G=FALSEならSEL関数の出力はIN0になります。
次は引数の種類を変数に設定し、値のところにある…ボタンをクリックします。

Done!今回はローカルだけではなくグローバル変数にも設定できるようになりました。

今回のImplementationは下図のように設定します。

Done!

Implementation5-データの互換性問題
それでは実際SEL関数の動作を確認してみましょう。

モニター画面にはD300=4になっています。

ですが、私達が先ほど作成したプログラムは2つの実数をパラメータとして入力しています。どうやらINTERLOGIC Runtimeは自動的に実数→整数に変換してくれるみたいです。

少しプログラムを変更し、SEL関数の出力を実数タイプのグローバル変数に設定します。

G=Falseの場合は、今回SEL関数の出力は7.14になりました。

最後はSEL関数のG入力をTRUEします。

SEL関数の出力は5.35に変わりました。
