Sequence MakerでCONTECのデジタル入出力ユニットを制御する～制御編～

## はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。この記事ではSequence MakerでCONTECのデジタル入出力ユニットを制御する方法を解説していきます。～準備編～ではドライバーのインストールとSequence Makerの設定を行いました。

https://qiita.com/sequencemaker/items/23a56159cef0d253ead3

Sequence Makerについての詳細は以下の記事を参照ください。

https://qiita.com/sequencemaker/items/8e6a370ab0a793a06a3b

:::note warn
***お断り***
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
:::

## Sequence Makerの設定を確認
～準備編～にてSequence Makerのオプションでデジタル入出力ユニットのデバイス名を登録しました。これは必ず設定しておかないと、以降の専用コマンドが使用できないので注意してください。なお「デジタル入出力オプション」が表示されない場合は、Sequence Makerのバージョンが古いのでV1.60以降のバージョンをインストールしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/b5ecabb4-144e-5de3-e47a-98c6e9a4ee31.png)

## 入出力ユニットを制御する専用コマンド
入出力ユニットは以下の専用コマンドを使用して制御します。

| コマンド | 機能 |
|:-|:-|
|#INBIT?(ビット番号)|	CONTECデジタル入出力ユニットの指定ビットからビットデータを入力します。<br>入力先は詳細設定のCONTECデバイス名に設定します。|
|#INBYTE?(ポート番号)	|CONTECデジタル入出力ユニットの指定ポートからバイトデータを入力します。<br>入力先は詳細設定のCONTECデバイス名に設定します。|
|#OUTBIT(ビット番号,ビットデータ)	|CONTECデジタル入出力ユニットの指定ビットへビットデータを出力します。<br>出力先は詳細設定のCONTECデバイス名に設定します。|
|#OUTBYTE(ポート番号,バイトデータ)	|CONTECデジタル入出力ユニットの指定ポートへバイトデータを出力します。<br>出力先は詳細設定のCONTECデバイス名に設定します。|

（https://sequencemaker.hioki.com/manual/ja/#command より引用）

入力が#INBIT?または#INBYTE?、出力が#OUTBITまたは#OUTBYTEです。

## ビット番号とポート番号の関係
### DO-16TY-USBの場合（出力16点）

| 出力ピン | ビット番号 | ポート番号 |
|:-|:-|:-|
| O-00 | 0 | 0 |
| O-01 | 1 | 0 |
| O-02 | 2 | 0 |
| O-03 | 3 | 0 |
| O-04 | 4 | 0 |
| O-05 | 5 | 0 |
| O-06 | 6 | 0 |
| O-07 | 7 | 0 |
| O-10 | 8 | 1 |
| O-11 | 9 | 1 |
| O-12 | 10 | 1 |
| O-13 | 11 | 1 |
| O-14 | 12 | 1 |
| O-15 | 13 | 1 |
| O-16 | 14 | 1 |
| O-17 | 15 | 1 |

### DIO-0808TY-USBの場合（入力8点、出力8点）

|  入力ピン | ビット番号 | ポート番号 |
|:-|:-|:-|
| I-00 | 0 | 0 |
| I-01 | 1 | 0 |
| I-02 | 2 | 0 |
| I-03 | 3 | 0 |
| I-04 | 4 | 0 |
| I-05 | 5 | 0 |
| I-06 | 6 | 0 |
| I-07 | 7 | 0 |

<br>

| 出力ピン | ビット番号 | ポート番号 |
|:-|:-|:-|
| O-10 | 0 | 0 |
| O-11 | 1 | 0 |
| O-12 | 2 | 0 |
| O-13 | 3 | 0 |
| O-14 | 4 | 0 |
| O-15 | 5 | 0 |
| O-16 | 6 | 0 |
| O-17 | 7 | 0 |

## 出力制御例
ここではDO-16TY-USBを使用し、デジタル入出力コマンドモニターにて動作確認を行います。

:::note warn
注意
~~Sequence Makerではスタート時に制御対象となる測定器が1台以上必要です。何か適当な測定器をUSBなどで接続しておいてください。~~
Sequence Maker **V1.70**で「仮想インターフェース」が追加されました。インターフェースの設定で「仮想」を選んでおけば、測定器が1台も無くてもスタート可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/59df7a97-fd45-e1bc-bc9f-23a44679ea83.png)

:::

### O-00をON

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/9daff791-2a5a-4c58-cfcf-cd8ec4835b90.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/8e97b7f5-347d-72e7-6adf-1404a9591b56.png)

### O-10をON

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/113ab8ec-3074-f8ec-fab3-e68e7364c052.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/f21b07d0-4068-7ef0-93ce-dd4bc11b2628.png)

### O-00～O-07をON

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/e1f76731-74aa-0bea-b480-f81f49919920.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/90169640-6f4a-f9e8-5fb6-1d4470109487.png)

### Port0とPort1のBitを交互にON

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/6eb45da8-644e-c801-0015-4b1bad55799c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/94b729ac-bab6-df29-34b4-74debe9c56ae.png)

## 入力制御例
続いて入力の例です。IO-0808TY-USBは入力ポートが8点ありますので、Sequence Makerで読んでみます。

### I-00がOFFの時
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/a8c72c73-b1ce-b612-3fb2-6b4ad24d9341.png)

### I-00がONの時
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/9aa19e17-9611-fc55-6006-e3509eb20ac0.png)

### I-00～I-07が全てONの時
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/34bebbeb-3d29-4bf3-95da-d332dfb43b6e.png)

### I-00～I-07がON,OFF,ON,OFF,ON,OFF,ON,OFFのように交互の時
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/df7b4b95-2cbb-0e57-4d67-99a8ac99f532.png)



## 入出力のテスターでの確認方法
入出力の状態をテスターで確認する場合は、CONTECのサイトに詳しいやり方が書かれているので、参考にしてください。TTL負論理タイプの場合は、

- 入力の確認 ⇒ 入力pinとGND間
- 出力の確認 ⇒ 出力pinとVcc間

に測定プローブをあてる必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/e0faf64e-ce34-00cc-9316-4abda4abf680.png)

（下記より引用）

https://contec.e-srvc.com/app/answers/detail/a_id/1183/~/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E5%85%A5%E5%87%BA%E5%8A%9B%E3%81%AE%E7%A2%BA%E8%AA%8D%E6%96%B9%E6%B3%95%EF%BC%88%E9%9D%9E%E7%B5%B6%E7%B8%81%E5%9E%8B%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9-ttl%E8%B2%A0%E8%AB%96%E7%90%86%E3%82%BF%E3%82%A4%E3%83%97%EF%BC%89

## まとめ
今回はSequence MakerでCONTECのデジタル入出力ユニットを制御してみました。Sequence Makerを使うと専用コマンドを送るだけで、入出力の制御が可能になります。リレーやパトランプなどをつないで制御してみるのも楽しそうですね。