こちらのシリーズではSysmac Studioの様々なFC・FBをプログラム例付きで解説します。今回はSetABit・ResetABitという関数を紹介します。
さ、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
SetABit?
SetBits命令は、ビット列InOutのビット位置Posにあるビットの値をTRUEに変更します。注意するのは実行後にENがFALSEに変わっても、InOutのPosビットは変更されません。

VAR_IN_OUT
| 変数名 | データ・タイプ | 説明 |
| InOut | BYTE/WORD/DWORD/LWORD | 操作する変数 |
VAR_IN
| 変数名 | データ・タイプ | 説明 |
| Pos | USINT | 指定されたビット位置 |
VAR_OUT
| 変数名 | データ・タイプ | 説明 |
| Out | BOOL | 常時ON出力 |
ResetABit?
ResetABit命令は、ビット列InOutのビット位置Posにあるビットの値をFALSEに変更します。注意するのは実行後にENがFALSEに変わっても、InOutのPosビットは変更されません。

VAR_IN_OUT
| 変数名 | データ・タイプ | 説明 |
| InOut | BYTE/WORD/DWORD/LWORD | 操作する変数 |
VAR_IN
| 変数名 | データ・タイプ | 説明 |
| Pos | USINT | 指定されたビット位置 |
VAR_OUT
| 変数名 | データ・タイプ | 説明 |
| Out | BOOL | 常時ON出力 |
プログラム例-1 SetABit
こちらのプログラム例-1ではSetSetABit関数を使用し、WORD変数のある位置のBITをTRUEの関数にします。

下図のように、xSetABitの立ち上げ信号で一回SetABitを実行し、そのxSetABitをリセットしていきます。

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

uiSetPosを2に設定します。それはwTestWord変数の2Bit目をTrueにする操作です。

xSetBitをTRUEにします。wTestWordの現在値は4になり、4は0から計算する2Bit目になります。

プログラム例2-ResetABit
こちらのプログラム例-2ではResetABit関数を使用し、WORD変数のある位置のBITをFALSEの関数にします。

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

最初にSetABit関数を使用し、wTestWordの4Bit目をTrueにします。

今度はResetABitの関数を使用します。uiResetPosを4に設定ます。

ResetABitを実行すると、wTestWordの4Bit目がTrueになりました!
