OMRON#Sysmac StudioのTestABit・TestABitN関数を使ってみよう

こちらのシリーズではSysmac Studioの様々なFC・FBをプログラム例付きで解説します。今回はTestABit・TestABitNという関数を紹介します。

さ、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

https://x.com/3threes2

技術はひとりじゃもったいない。

Reference Link

http://soup01.com/ja/category/omron%e3%82%aa%e3%83%a0%e3%83%ad%e3%83%b3/sysmac-studio-instruction-list/

TestABit?

TestABit命令は、ENがTRUEのとき、ビット列Inのビット位置Posにあるビットの値をビット値Outに代入する。注意するのはENがFALSEのとき、Outの値はFALSEとなる。

VAR_IN

変数名データ・タイプ説明
InBYTE/WORD/DWORD/LWORD操作する変数
PosUSINT指定されたビット位置

VAR_OUT

変数名データ・タイプ説明
OutBOOL指定されたビットの値

TestABitN?

TestABitN命令は、ENがTRUEのとき、ビット列Inのビット位置Posにあるビットの反転値をビット値Outに代入する。注意するのはENがFALSEのとき、Outの値はFALSEとなる。

VAR_IN

変数名データ・タイプ説明
InBYTE/WORD/DWORD/LWORD操作する変数
PosUSINT指定されたビット位置

VAR_OUT

変数名データ・タイプ説明
OutBOOL指定されたビットの値の逆数

プログラム例1-TestABit

こちらのプログラム例-1ではTestABit関数を使用し、WORD変数のある位置現在値を取得します。

結果

それではプログラムをCPUにDownloadし、実行結果を確認していきましょう。

wTestWord2の現在値を8(Bit3=TRUE)に設定します。

xTestBitをTRUEし、uiTestABitを0にします(Bit0がTRUEなのかをチェックします)。下図のように、TestABitの関数の実行結果がFALSEになり、xTestABitResultもFALSEになります。

今度uiTestABitを3に設定します(Bit3がTRUEなのかをチェックします)。先ほどwTestWord2の現在値を8(Bit3=TRUE)に設定したので、TestABitの関数の実行結果がTRUEになり、xTestABitResultもTRUEになります。

最後、xTestBitをFALSEに設定します。TestABit関数が実行されないので、xTestABitResultもFALSEになります。

プログラム例2-TestABitN

こちらのプログラム例-2ではTestABitN関数を使用し、WORD変数のある位置のBITの現在値の反転を取得します。

結果

下図のようにTestABitとTestABitNと同じパラメータが入力され、結果が反転であることがわかります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする