• 検索結果がありません。

i99-BASIC IO制御コマンド コマンドリファレンス

N/A
N/A
Protected

Academic year: 2021

シェア "i99-BASIC IO制御コマンド コマンドリファレンス"

Copied!
155
0
0

読み込み中.... (全文を見る)

全文

(1)

- 1 - Interface Corporation

i99-BASIC

IO制御

(2)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 2 -

はじめに

本ドキュメントでは、説明で表現している表記として下記のように定義します。 ・「 」で囲んでいる文字列については、キーボードで入力する文字列を意味します。 ・[ ]で囲んでいる文字列については、文字を意味します。 ・ や のように で表現しているものは、キーボードのキーを意味します。 F1 Enter

(3)

- 3 - Interface Corporation

目 次

はじめに

2

第 1 章 デジタル入力制御に関する関数・命令

8

1.1 コマンド一覧... 8 1.1.1 プログラム内でのみ使用できるコマンド ... 8 1.1.2 トレース実行で使用できないコマンド ... 8 1.2 機能説明... 9 1.2.1 初期化機能... 9 1.2.2 1 件入力機能... 11 1.2.3 サンプリング機能... 12 1.2.4 割り込み機能... 14 1.2.5 終了処理機能... 15 1.2.6 使用するハードウェアによる制限について ... 15 1.3 詳細個別説明... 16 1. DIOPEN ... 16 2. DICLOSE ... 16 3. DIPORT... 17 4. DIPORTS ... 18 5. DISTATUS... 19 6. DISTART ... 20 7. DISTOP ... 20 8. DIDATA... 21 9. DIEVENTCONFIG ... 22 10. DIEVENT... 23 11. ON DI ~ GOSUB ~... 23 12. DI ON ... 24 13. DI OFF ... 24 14. DI STOP ... 24 1.4 サンプルプログラム... 25 1.5 エラーコード一覧... 25

第 2 章 デジタル出力制御に関する関数・命令

26

2.1 コマンド一覧... 26 2.1.1 プログラム内でのみ使用できるコマンド ... 26 2.1.2 トレース実行で使用できないコマンド ... 26 2.2 機能説明... 27 2.2.1 初期化機能... 27 2.2.2 1 件出力機能... 29 2.2.3 連続出力機能... 30 2.2.4 割り込み機能... 32 2.2.5 終了処理機能... 34

(4)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 4 - 2.2.6 使用するハードウェアによる制限について ... 34 2.3 詳細個別説明... 35 1. DOOPEN... 35 2. DOCLOSE... 35 3. DOPORT ... 36 4. DOPORTS... 37 5. DODATA ... 38 6. DOSTART... 39 7. DOSTOP ... 40 8. DOSTATUS ... 40 9. DOEVENTCONFIG ... 41 10. DOEVENT ... 41 11. ON DO ~ GOSUB ~ ... 42 12. DO ON ... 42 13. DO OFF... 43 14. DO STOP ... 43 2.4 サンプルプログラム... 44 2.5 エラーコード一覧... 44

第 3 章 アナログ入力制御に関する関数・命令

45

3.1 コマンド一覧... 45 3.1.1 プログラム内でのみ使用できるコマンド ... 46 3.1.2 トレース実行で使用できないコマンド ... 46 3.2 機能説明... 47 3.2.1 初期化機能... 47 3.2.2 1 件入力機能... 48 3.2.3 サンプリング機能... 49 3.2.4 割り込み機能... 54 3.2.5 デジタル入力機能... 56 3.2.6 デジタル出力機能... 56 3.2.7 終了処理機能... 57 3.2.8 使用するハードウェアによる制限について ... 57 3.3 詳細個別説明... 58 1. AIOPEN ... 58 2. AICLOSE ... 58 3. AIRANGE ... 59 4. AIPORT... 60 5. AISCALE ... 61 6. AITRIGGER... 63 7. AISTATUS... 64 8. AISTART ... 65 9. AISTOP ... 66 10. AIDATA... 66 11. AIDIPORT ... 67 12. AIDIPORTS ... 68 13. AIDOPORT... 69

(5)

- 5 - Interface Corporation 14. AIDOPORTS... 70 15. AIEVENTCONFIG ... 71 16. AIEVENT... 72 17. ON AI ~ GOSUB ~... 72 18. AI ON ... 73 19. AI OFF ... 73 20. AI STOP ... 73 3.4 サンプルプログラム... 74 3.5 エラーコード一覧... 74

第 4 章 アナログ出力制御に関する関数・命令

75

4.1 コマンド一覧... 75 4.1.1 プログラム内でのみ使用できるコマンド ... 76 4.1.2 トレース実行で使用できないコマンド ... 76 4.2 機能説明... 77 4.2.1 初期化機能... 77 4.2.2 1 件出力機能... 78 4.2.3 連続出力機能... 79 4.2.4 割り込み機能... 82 4.2.5 デジタル入力機能... 85 4.2.6 デジタル出力機能... 85 4.2.7 終了処理機能... 86 4.2.8 使用するハードウェアによる制限について ... 86 4.3 詳細個別説明... 87 1. AOOPEN... 87 2. AOCLOSE... 87 3. AORANGE... 88 4. AOPORT ... 89 5. AOSCALE... 90 6. AOTRIGGER ... 91 7. AOSTATUS ... 92 8. AOSTART... 93 9. AOSTOP ... 94 10. AODATA ... 94 11. AODIPORT... 95 12. AODIPORTS... 96 13. AODOPORT ... 97 14. AODOPORTS ... 98 15. AOEVENTCONFIG ... 99 16. AOEVENT ... 99 17. ON AO ~ GOSUB ~ ... 100 18. AO ON ... 100 19. AO OFF... 101 20. AO STOP ... 101 4.4 サンプルプログラム... 102 4.5 エラーコード一覧... 102

(6)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 6 -

第 5 章 シリアル制御に関する関数・命令

103

5.1 コマンド一覧... 103 5.2 機能説明... 104 5.2.1 初期化機能... 104 5.2.2 データ送信機能... 106 5.2.3 データ受信機能... 106 5.2.4 制御信号入出力機能... 106 5.2.5 使用するハードウェアによる制限について ... 106 5.3 詳細個別説明... 107 1. COMOPEN... 107 2. COMCLOSE ... 109 3. COMSEND... 110 4. COMMODEMLINE... 111 5. COMRECV$ ... 113 6. COMRECV ... 114 7. COMMODEMLINE... 116 8. COMRECVSIZE ... 118 5.4 サンプルプログラム... 119 5.5 エラーコード一覧... 119

第 6 章 万能カウンタ制御に関する関数・命令

120

6.1 コマンド一覧... 120 6.1.1 プログラム内でのみ使用できるコマンド ... 120 6.1.2 トレース実行で使用できないコマンド ... 120 6.2 機能説明... 121 6.2.1 カウンタ動作... 121 6.2.2 逐次読出し方式... 121 6.2.3 サンプリング方式... 122 6.2.4 ジェネレータ方式... 122 6.2.5 パルスカウンタモード... 123 6.2.6 周波数計測モード... 124 6.2.7 周期計測モード... 125 6.2.8 位相差計測モード... 127 6.2.9 タイマモード... 127 6.2.10 分周器モード... 128 6.2.11 パルスジェネレータモード ... 128 6.3 詳細個別説明... 129 1. UCNTOPEN... 129 2. UCNTCLOSE... 135 3. UCNTPORT ... 136 4. UCNTCOMPARATOR... 137 5. UCNTCLEAR ... 138 6. UCNTSTART... 139 7. UCNTSTOP ... 141

(7)

- 7 - Interface Corporation

8. UCNTEVENTCONFIG ... 142

9. ON UCNT GOSUB ~ ... 145

10. UCNT ON / OFF / STOP ... 146

11. UCNTPORT ... 147 12. UCNTCOMPARATOR... 148 13. UCNTSTATUS ... 149 14. UCNTDATA ... 151 15. UCNTEVENT ... 153 6.4 サンプルプログラム... 154 6.5 エラーコード一覧... 155

(8)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 8 -

第1章 デジタル入力制御に関する関数・命令

i99-BASICで使用できるI/O制御コマンドの使い方について記載します。 長期安心FAコントローラで、本IOコマンドを使用する場合には、GPG-2000のLinuxドライバをイン ストールする必要があります。 弊社Web siteサイトからダウンロードしてインストールを行ってください。 http://www.interface.co.jp/catalog/soft/prdc_soft_all.asp?name=gpg-2000

1.1 コマンド一覧

No コマンド名 機能 ●初期化/終了 1 DIOPEN デバイスのオープンを行ないます 2 DICLOSE デバイスをクローズします。 ●1件入力 3 DIPORT デジタルデータを取得します。(値をbit毎に返します。) 4 DIPORTS デジタルデータを取得します。(値をバイナリ値で返します。) ●サンプリング 5 DISTATUS サンプリング状態を取得します。 6 DISTART サンプリングを開始します。 7 DISTOP サンプリングを停止させます。 8 DIDATA サンプリングデータを取得します。 ●割り込み 9 DIEVENTCONFIG 割り込みの発生条件を設定します。 10 ON DI ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。 11 DIEVENT 割り込み分岐先を設定します。 12 DI ON 割り込みを有効にします。 13 DI OFF 割り込みを無効にします。 14 DI STOP 割り込みを保留にします。

1.1.1 プログラム内でのみ使用できるコマンド

No コマンド名 機能 ●割り込み 1 ON DI ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。

1.1.2 トレース実行で使用できないコマンド

No コマンド名 機能 ●割り込み 1 ON DI ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。

(9)

- 9 - Interface Corporation

1.2 機能説明

1.2.1 初期化機能

DIデバイスの初期化処理を行います。 初期化処理として、割り込み処理の初期化(割り込みを無効)/サンプリング条件の初期化が行われます。 初期化処理を行う場合には、DIOPENコマンドを実行します。 初期化を行うデバイスの指定を行う場合、デバイス番号を指定しますがデバイス番号は使用するDIデバイ スのRSWの情報と以下の定義で関連付けがされています。 デバイス番号 RSW番号 1 0 2 1 3 2 … … 11 A … … 15 E 16 F 下記製品を使用する場合は、RSWを偶数(0,2,4,6,8,A,C,E)に設定してください。 型式 PCI-225020, PEX-H225020 PCI-224020, PEX-H224020 PCI-284011, PEX-H284011 PCI-235002, PEX-H235002 PCI-234002, PEX-H234002 PCI-292022, PEX-H292022 PCI-293022, PEX-H293022 下記製品を使用する場合は、デバイス番号を1固定となります。 ・ ソルコン製品 ・ タフコン製品 ・ マザコン製品 ・ I/O付きタッチパネル製品

(10)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 10 - ●プログラム例 100 ‘ DIデバイスをオープンする 110 DIOPEN 1 120 ‘ DIデバイスからデジタルデータを入力する 130 DIM INDATA(3) 140 INDATA(0 TO 2) = DIPORT(1, [1;2;3] ) 150 PRINT INDATA 160 ‘ DIデバイスをクローズする 170 DICLOSE 1 デバイス番号については、省略することも可能であり省略した場合はデバイス番号が1で設定されます。 100 ‘ DIデバイスをオープンする 110 DIOPEN 120 ‘ DIデバイスからデジタルデータを入力する 130 DIM INDATA(3) 140 INDATA(0 TO 2) = DIPORT([1;2;3] ) 150 PRINT INDATA 160 ‘ DIデバイスをクローズする 170 DICLOSE

(11)

- 11 - Interface Corporation

1.2.2 1件入力機能

DIデバイスから、指定したポートのデジタル入力データを取得することができます。 取得には、値をbit毎に取得するコマンドとバイナリ値として取得するコマンドがあります。 ●処理概要 サンプリングを行うには、以下の流れでコマンドを実行します。 デバイスのオープン DIOPENコマンドを実行 ↓ 1件入力 bit毎に取得する場合 DIPORTコマンドを実行 バイナリ値として取得する場合 DIPORTSコマンドを実行 ↓ デバイスのクローズ DICLOSEコマンドを実行 ●プログラム例 ・bit毎に取得する場合には、DIPORTコマンドを使用します。 プログラム例: 100 ‘ DIデバイスをオープンする 110 DIOPEN 1 120 ‘ DIデバイスからデジタルデータを入力する 130 DIM INDATA(3) 140 INDATA(0 TO 2) = DIPORT(1, [1;2;3] ) 150 PRINT INDATA 160 ‘ DIデバイスをクローズする 170 DICLOSE 1 ・バイナリ値として取得する場合には、DIPORTSコマンドを使用します。 プログラム例: 100 ‘ DIデバイスをオープンする 110 DIOPEN 1 120 ‘ DIデバイスからデジタルデータを入力する 130 INDATA = DIPORTS(1, [1;2;3] ) 140 PRINT INDATA 150 ‘ DIデバイスをクローズする 160 DICLOSE 1

(12)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 12 -

1.2.3 サンプリング機能

DIデバイスの指定したポートからサンプリングしたデータを取得することができます。 ●処理概要 サンプリングを行うには、以下の流れでコマンドを実行します。 デバイスのオープン DIOPENコマンドを実行 ↓ サンプリングの開始 DISTARTコマンドを実行 ↓ サンプリング状態を取得 DISTATUSコマンドを実行 サンプリングを強制停止させたい場合には、DISTOPコマンドを実行しま す。 ↓ サンプリングデータの取得 DIDATAコマンドを実行 ↓ デバイスのクローズ DICLOSEコマンドを実行 ※「INCLUDE "PO001DI.BAS"」でPO001DI.BASをインクルードする必要があります。 ●データフォーマット 取得できるデータフォーマットは以下のフォーマットとなります。 例:ポート数:5 、サンプリング件数:100件の場合 サンプリング件数 ポート毎のサンプリング件数 配列要素番号 ポート1の1件目 配列(1番目) ポート2の1件目 配列(2番目) : : 1件目 ← ポート5の1件目 配列(5番目) ポート1の2件目 配列(6番目) ポート2の2件目 配列(7番目) : : 2件目 ← ポート5の2件目 配列(10番目) : : : : : : : : ポート1の100件目 配列(496番目) ポート2の100件目 配列(497番目) : : 100件目 ← ポート5の100件目 配列(500番目)

(13)

- 13 - Interface Corporation ●プログラム例 100 INCLUDE "PO001DI.BAS" 110 ' 構造体を定義する 120 STRUCT TDISTATUS ST 130 ' 変数を定義する 140 DIM SMPDATA(3999) 150 ' DIデバイスをオープンする 160 DIOPEN 1 170 ' デジタルデータの入力サンプリングを開始する 180 DISTART 1, [1;2;3;4], 1000, 10 190 ' DIデバイスから入力サンプリング状態を取得する 200 ST = DISTATUS(1) 210 WHILE ST.SAMPLING = 1 220 ST = DISTATUS(1) 230 SLEEP 1 240 WEND 250 ' デジタルデータの入力サンプリングデータを取得する 260 SMPDATA(0 TO 3999) = DIDATA(1,1000) 270 ‘ 入力サンプリングデータを表示します 280 FOR I = 0 TO 3999 STEP 4

290 PRINT (I/4)+1; " : DI1="; SMPDATA(I); " DI2="; SMPDATA(I+1); " DI3="; SMPDATA(I+2); " DI4="; SMPDATA(I+3) 300 NEXT I 310 ' DIデバイスをクローズする 320 DICLOSE 1 330 ' 変数の後処理をする 340 ERASE SMPDATA 350 ' プログラムを終了する 360 END

(14)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 14 -

1.2.4 割り込み機能

DIデバイスから各割り込みを取得することができます。 取得できる割り込みは以下になります。 内容 IN1 立ち上がりエッジ割り込み IN1 立ち下りエッジ割り込み IN2 立ち上がりエッジ割り込み IN2 立ち下りエッジ割り込み IN3 立ち上がりエッジ割り込み IN3 立ち下りエッジ割り込み IN4 立ち上がりエッジ割り込み IN4 立ち下りエッジ割り込み サンプリング終了割り込み有効 ●処理概要 割り込み処理を行うには、以下の流れでコマンドを実行します。 デバイスのオープン DIOPENコマンドを実行 ↓ 割り込みの発生条件の設定 DIEVENTCONFIGコマンドを実行 ↓ 割り込み発生時に分岐するサブ ルーチンを定義します ON DI ~ GOSUB ~コマンドで割り込み発生時に分岐するサブルーチ ンを定義します。 ↓ 割り込みを有効にする DI ONコマンドを実行 ↓ : ↓ 割り込みを無効にする DI OFFコマンドを実行 ↓ デバイスのクローズ DICLOSEコマンドを実行 ※「INCLUDE "PO001DI.BAS"」でPO001DI.BASをインクルードする必要があります。 ※発生した割り込み要因を取得する場合は、DIEVENTコマンドにて取得します。

(15)

- 15 - Interface Corporation ●プログラム例

100 INCLUDE "PO001DI.BAS" 110 ' 変数を定義する 120 BOOL FLAG = FALSE

130 ' DIデバイスをオープンする 140 DIOPEN 1

150 ' DIデバイスの割込み分岐先を設定する 160 ON DI 1 GOSUB LABEL1

170 ' DIデバイスの割込みを有効とするか、無効とするかを設定する 180 DIEVENTCONFIG 1,"IN1=RISE, IN2=OFF, IN3=OFF,IN4=OFF, STOP=OFF" 190 ' DIデバイスの割込みを許可する

200 DI ON 1

210 ' 割込みを待機する 220 WHILE FLAG = FALSE 230 SLEEP 1 240 WEND 250 ' DIデバイスの割込みを禁止する 260 DI OFF 1 270 ' DIデバイスをクローズする 280 DICLOSE 1 290 ' プログラムを終了する 300 END 310 ' 割込み発生後の分岐先 320 LABEL1: 330 EVT = DIEVENT(1) 340 IF EVT = DIEVTIN1 THEN 350 FLAG = TRUE 360 PRINT "IN1割込みを検出" 370 END IF 380 RETURN

1.2.5 終了処理機能

DIデバイスの終了処理を行います。 終了処理として、割り込みを無効に設定し、連続出力を停止させます。 終了処理を行う場合には、DICLOSEコマンドを実行します。

1.2.6 使用するハードウェアによる制限について

使用するハードウェアによって、使用できる機能に制約がある場合があります。 ハードウェア毎の制約事項については、弊社 webページを参照してください。

(16)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 16 -

1.3 詳細個別説明

1. DIOPEN

命令 i99-BASIC - 機 能 デバイスをオープンします 書式 DIOPEN [ <デバイス番号> ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ オープンするデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・ 割込み要因、割り込みの有効/無効設定は、オープン直後は無効になります。 ・ 同じデバイス番号のDIデバイスを2重にオープンすることはできません。 使用例 ・「1.2.1 初期化機能」のプログラム例を参照してください。

2. DICLOSE

命令 i99-BASIC - 機 能 デバイスをクローズします。 書式 DIOCLOSE [ <デバイス番号> ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ クローズするデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・ 本コマンド実行時、以下の状態となります。 割り込み設定は無効になり、サンプリングは停止されます。 使用例 ・「1.2.1 初期化機能」のプログラム例を参照してください。

(17)

- 17 - Interface Corporation

3. DIPORT

関数 i99-BASIC - 機 能 デジタルデータを入力します。(値をbit毎に返します。) 書式 <入力値 [] > = DIPORT( [ <デバイス番号 >, ] <ポート番号 [] >) 戻り値 ① ② 戻り値 < 入力値[]> 0 ~ 1 数値・ 数値配列 戻り値 デジタルデータをbit毎に数値または配列にて取得します。 ① < デバイス番号> (1) , 1~16 ○ 数値 取得するデジタルデータのデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 ② < ポート番号[]> 1 ~ N × 数値 パラ メータ 取得するデジタルデータのポート番号を設定します。 Nはデバイスが持つ接点の最大数になります。 備 考 ・同じポート番号を指定した場合同じポート番号からのデジタルデータが取得されます。 例) IN1~IN3(0,1,0)のデータを取得する DIOPEN 1 DIM INDATA( 3 ) INDATA = DIPORT(1, 1, [1; 1; 2 ;3 ]) ‘ INDATA は [ 0; 0; 1; 0 ] を取得 PRINT INDATA ・DISTART実行中(サンプリング中)に本コマンドは使用できません。 使用例 ・「1.2.2 1件入力機能」のプログラム例を参照してください。

(18)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 18 -

4. DIPORTS

関数 i99-BASIC - 機 能 デジタルデータを入力します。(値をバイナリ値で返します。) 書式 < 入力値 > = DIPORT( [ < デバイス番号 > ,] <ポート番号 [] >) 戻り値 ① ② 戻り値 < 入力値 > 0x00000000 ~ 0xFFFFFFFF 数値 戻り値 デジタルデータをバイナリ値で取得します。 ① < デバイス番号> (1) , 1~16 ○ 数値 取得するデジタルデータのデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 ② < ポート番号[]> 1 ~ N × 数値 パラ メータ 取得するデジタルデータのポート番号を設定します。 Nはデバイスが持つ接点の最大数になります。 備 考 ・同じポート番号を指定した場合同じポート番号からのデジタルデータが取得されます。 例) IN1~IN3(0,1,0)のデータを取得する DIOPEN 1 INDATA = DIPORTS(1, 1, [1; 1; 2 ;3 ]) ‘ INDATA は 0x00000002 を取得 PRINT INDATA ・DISTART実行中(サンプリング中)に本コマンドは使用できません。 使用例 ・「1.2.2 1件入力機能」のプログラム例を参照してください。

(19)

- 19 - Interface Corporation

5. DISTATUS

関数 i99-BASIC - 機 能 サンプリング状態を取得します。 ※ソルコンのみで使用できます。 書式 < 入力サンプリング状態 > = DISTATUS [ (<デバイス番号>) ] 戻り値 ① 戻り値 < 入力サンプリング状態 > 構造体 戻り値 入力サンプリングの状態を取得します。 詳細は下記の通りになります。 構造体名 TDISTATUS

DEFINE STRUCT TDISTATUS SAMPLING COUNT END STRUCT 構造体メンバ変数 内容 型 値 SAMPLING サンプリング状態 数値 0: サンプリング停止 1: サンプリング中 COUNT サンプリング済み件数 数値 0… ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ サンプリング状態を取得するデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・本コマンドを使用する際は、INCLUDEコマンドでPO001DI.BASをインクルードしてください。 ・ サンプリング済み件数は、DISTARTコマンド実行毎に0からカウントされます。 ・ DICLOSE→DIOPENを実行後に本コマンドを実行した場合、サンプリング状態・サンプリング済み 件数は0が返されます。 ・ 取得できる件数は、DISTARTで設定した件数が上限になります。 使用例 ・「1.2.3 サンプリング機能」のプログラム例を参照してください。

(20)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 20 -

6. DISTART

命令 i99-BASIC - 機 能 サンプリングを開始します。 ※ソルコンのみで使用できます。 書式 DISTART [ <デバイス番号 > , ] < ポート番号 [] > , < 件数 > , < サンプリング周期 > ① ② ③ ④ ① < デバイス番号> (1) , 1~16 ○ 数値 サンプリングを開始するデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 ② < ポート番号[]> 1~N(ボード依存) × 数値・ 数値配列 サンプリングを行うポート番号を数値または数値配列で指定します。 ポート番号列は、連続した整数値である必要があります。 例:[1;2;3;4;5]、[3;4;5;6;7]など。 ③ < 件数> 1~確保できるメモリ領域 × 数値 サンプリングの件数を設定します。 件数は、下記になるように設定する必要があります。 1 <= ポート番号列×入力サンプリング件数×4 <= 確保できるメモリ領域 ④ < サンプリング周期> 1~1000 × 数値 パラ メータ サンプリング周期をmsで設定します。 1ms単位で指定できます。 備 考 ・サンプリング中に本コマンドは実行できません。 使用例 ・「1.2.3 サンプリング機能」のプログラム例を参照してください。

7. DISTOP

命令 i99-BASIC - 機 能 サンプリングを停止させます。 ※ソルコンのみで使用できます。 書式 DISTOP [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ サンプリングを停止させるDIデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・サンプリング停止中に本コマンドは実行できません。 使用例 ・「1.2.3 サンプリング機能」のプログラム例を参照してください。

(21)

- 21 - Interface Corporation

8. DIDATA

関数 i99-BASIC - 機 能 サンプリングデータを取得します。 ※ソルコンのみで使用できます。 書式 < サンプリングデータ[] > = DIDATA ( [ <デバイス番号> , ] < 件数 > ) 戻り値 ① ② 戻り値 < サンプリングデータ > 0, 1 数値・ 数値配列 戻り値 入力サンプリングデータを取得します。 件数>1の場合は、取得値が配列となります。 ① < デバイス番号> (1) , 1~16 ○ 数値 サンプリングデータを取得するDIデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 ② < 件数> 1~4,294,967,295 × 数値 パラ メータ 取得するサンプリング件数を設定します。 備 考 ・ サンプリング済みのデータ以上の件数は取得できません。 ・ 取得できるサンプリングデータのフォーマットについては「1.2.3 サンプリング機能」のデータフ ォーマットを参照してください。 使用例 ・「1.2.3 サンプリング機能」のプログラム例を参照してください。

(22)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 22 -

9. DIEVENTCONFIG

命令 i99-BASIC - 機 能 割り込み発生要因を設定します。 書式 DIEVENTCONFIG [ < デバイス番号 > , ] < 割り込み定義 > ① ② ① < デバイス番号> (1) , 1~16 ○ 数値 割り込み発生要因を設定するDIデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 ② < 割り込み定義> ("IN1=OFF,IN2=OFF,IN3=OFF,IN4=OFF,STOP=OFF") × 数値 パラ メータ 割り込みの定義を設定します。 ■対応表 識別子 設定値 内容 デフォルト OFF IN1 割り込み無効 ○ RISE IN1 立上がりエッジ割り込み IN1 FALL IN1 立下りエッジ割り込み OFF IN2 割り込み無効 ○ RISE IN2 立上がりエッジ割り込み IN2 FALL IN2 立下りエッジ割り込み OFF IN3 割り込み無効 ○ RISE IN3 立上がりエッジ割り込み IN3 FALL IN3 立下りエッジ割り込み OFF IN4 割り込み無効 ○ RISE IN4 立上がりエッジ割り込み IN4 FALL IN4 立下りエッジ割り込み OFF サンプリング終了割り込み無効 ○ STOP ON サンプリング終了割り込み有効 備 考 ・ON DI ~ GOSUB ~コマンド実行した後に本コマンドを実行しなければ、割り込みが設定されませ ん。 ・設定文字列で設定する各識別子に対し割り当て可能な設定値は1つです。 例えば、IN1=RISE,IN1=FALLを同時に設定することはできません。 ・本コマンドにより割り込みの有効・無効を設定したデバイスを一旦クローズして 再度オープンした場合、割り込みの有効・無効の設定は初期化されます。 使用例 ・「1.2.4 割り込み機能」のプログラム例を参照してください。

(23)

- 23 - Interface Corporation

10. DIEVENT

関数 i99-BASIC - 機 能 割り込みの発生要因を取得します。 書式 <割り込み状態 > = DIEVENT [ < デバイス番号 > ] 戻り値 ① 戻り値 <割り込み状態> 構造体 戻り値 割り込みの発生要因を取得します。 ■対応表 識別子 設定値 内容 DIEVTIN1 1 IN1 の割り込み DIEVTIN2 2 IN2 の割り込み DIEVTIN3 3 IN3 の割り込み DIEVTIN4 4 IN4 の割り込み DIEVTSAMPLING 5 サンプリング終了割り込み ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 割り込みの状態を取得するデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・本コマンドを使用する際は、INCLUDEコマンドでPO001DI.BASをインクルードしてください。 使用例 ・「1.2.4 割り込み機能」のプログラム例を参照してください。

11. ON DI ~ GOSUB ~

命令 i99-BASIC - 機 能 割り込み発生時に分岐するサブルーチンを定義します。 この割り込みは、DI ONの状態で有効になります。 書式 ON DI [ < デバイス番号 > ] GOSUB < ラベル/行番号 > ① ② ① < デバイス番号> (1) , 1~16 ○ 数値 割り込み分岐先を設定するDIデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 ② < ラベル/行番号> × 数値 パラ メータ 要因発生時に実行するサブルーチンのラベル名または行番号を指定します。 備 考 ・本コマンドを実行した後に、DIEVENTCONFIGコマンドを実行しなければ割り込みが設定されませ ん。 使用例 ・「1.2.4 割り込み機能」のプログラム例を参照してください。

(24)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 24 -

12. DI ON

命令 i99-BASIC - 機 能 割り込みを有効にします。 書式 DI ON [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 割り込みを有効にするDIデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・割り込みを有効にし、保留にしていた割り込みを発生させます。 ・本コマンドの実行後、DIEVENTCONFIGコマンドで有効化した割り込み要因が発生すると、ON DI ~ GOSUB ~コマンドの実行時に指定されたサブルーチンが実行されます。 使用例 ・「1.2.4 割り込み機能」のプログラム例を参照してください。

13. DI OFF

命令 i99-BASIC - 機 能 割り込みを無効にします。 書式 DI OFF [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 割り込みを無効にするデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・本コマンドを実行すると、DI ONコマンドを実行しても割り込みは有効化されなくなります。 ・本コマンドの実行後に再び割り込みを有効にするには、「DICLOSE」コマンド実行後に「DIOPEN」 を実行し、その後「ON DI ~ GOSUB ~」コマンド、「DIEVENTCONFIG」コマンドおよび「DI ON」 コマンドを実行する必要があります。 使用例 ・「1.2.4 割り込み機能」のプログラム例を参照してください。

14. DI STOP

命令 i99-BASIC - 機 能 割り込みを保留にします。 書式 DI STOP [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 割り込みを保留にするDIデバイスのデバイス番号を設定します。 ※デバイス番号については、「1.2.1 初期化機能」を参照してください。 備 考 ・本コマンドの実行後に「DI ON」コマンドを実行すると、割り込みが有効化されるとともに、保 留されていた割り込みイベントが実行されます。 使用例 ・「1.2.4 割り込み機能」のプログラム例を参照してください。

(25)

- 25 - Interface Corporation

1.4 サンプルプログラム

サンプルプログラムを表示させるためには、LOADコマンドでロードしてください。 例として、[DIPORT.BAS]のサンプルプログラムをロードする場合は、 「LOAD」→ →「”SAMPLE/DIPORT.BAS”」と入力して、 を押してください。 No. ファイル名 内 容 1 DIPORT.BAS 1件のデータを取得するサンプルプログラム 2 DIPORTS.BAS 1件のデータを取得するサンプルプログラム 3 DIPORT_MULTI.BAS 1件のデータを取得するサンプルプログラム bit単位のデジタルデータを配列で取得する 4 DISAMPLING.BAS 複数ポートでのサンプリングを行うサンプルプログラム 5 DIEVENT.BAS サンプリング終了の割り込み検出を行うサンプルプログラム 6 ONDIEVENT.BAS DI1のエッジイベントを行うサンプルプログラム

1.5 エラーコード一覧

エラーコード 内 容 15 命令が書式通りになっていません 17 指定したデバイスの操作に失敗しました 33 BASIC内部で異常が発生しました 37 デバイスが見つかりません エラー 43 命令や関数の使い方が間違っています スペース Enter

(26)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 26 -

第2章 デジタル出力制御に関する関数・命令

i99-BASICで使用できるI/O制御コマンドの使い方について記載します。 長期安心FAコントローラで、本IOコマンドを使用する場合には、GPG-2000のLinuxドライバをイン ストールする必要があります。 弊社Web siteサイトからダウンロードしてインストールを行ってください。 http://www.interface.co.jp/catalog/soft/prdc_soft_all.asp?name=gpg-2000

2.1 コマンド一覧

No コマンド名 機能 ●初期化/終了 1 DOOPEN デバイスの動作モードを設定し、オープンします。 2 DOCLOSE デバイスをクローズします。 ●1件出力 3 DOPORT デジタルデータを出力します。(値はbit毎に設定します。) 4 DOPORTS デジタルデータを出力します。(値をバイナリ値で設定します。) ●サンプリング 5 DODATA 連続出力データを設定します。 6 DOSTART 連続出力を開始します。 7 DOSTOP 連続出力を開始します。 8 DOSTATUS 連続出力の状態を取得します。 ●割り込み 9 DOEVENTCONFIG 割り込みの発生条件を設定します。 10 ON DO ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。 11 DOEVENT 割り込み分岐先を設定します。 12 DO ON 割り込みを有効にします。 13 DO OFF 割り込みを無効にします。 14 DO STOP 割り込みを保留にします。

2.1.1 プログラム内でのみ使用できるコマンド

No コマンド名 機能 ●割り込み 1 ON DO ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。

2.1.2 トレース実行で使用できないコマンド

No コマンド名 機能 ●割り込み 1 ON DO ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。

(27)

- 27 - Interface Corporation

2.2 機能説明

2.2.1 初期化機能

DOデバイスの初期化処理を行います。 初期化処理として、割り込み処理の初期化(割り込みを無効)/連続出力条件の初期化が行われます。 初期化処理を行う場合には、DOOPENコマンドを実行します。 初期化を行うデバイスの指定を行う場合、デバイス番号を指定しますがデバイス番号は使用するDIデバイ スのRSWの情報と以下の定義で関連付けがされています。 デバイス番号 RSW番号 1 0 2 1 3 2 … … 11 A … … 15 E 16 F 下記製品を使用する場合は、RSWを偶数(0,2,4,6,8,A,C,E)に設定してください。 型式 PCI-225020, PEX-H225020 PCI-224020, PEX-H224020 PCI-284011, PEX-H284011 PCI-235002, PEX-H235002 PCI-234002, PEX-H234002 PCI-292022, PEX-H292022 PCI-293022, PEX-H293022 下記製品を使用する場合は、デバイス番号は1となります。 ・ ソルコン製品 ・ タフコン製品 ・ マザコン製品 ・ I/O付きタッチパネル製品

(28)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 28 - ●プログラム例 100 ‘ DOデバイスをオープンする 110 DOOPEN 1 120 ‘ DOデバイスからデジタルデータを入力する 130 DOPORT(1, [1;2;3] ) = [1;0;1] 140 ‘ DOデバイスをクローズする 150 DOCLOSE 1 デバイス番号については、省略することも可能であり省略した場合はデバイス番号が1で設定されます。 100 ‘ DOデバイスをオープンする 110 DOOPEN 120 ‘ DOデバイスからデジタルデータを入力する 130 DOPORT([1;2;3] ) = [1;0;1] 140 ‘ DOデバイスをクローズする 150 DOCLOSE

(29)

- 29 - Interface Corporation

2.2.2 1件出力機能

DOデバイスから、指定したポートのデジタル出力を行うことができます。 出力には、値をbit毎に取得するコマンドとバイナリ値として取得するコマンドがあります。 ●処理概要 連続出力を行うには、以下の流れでコマンドを実行します。 デバイスのオープン DOOPENコマンドを実行 ↓ 1件出力を行う bit毎に出力する場合 DOPORTコマンドを実行 バイナリ値として出力する場合 DOPORTSコマンドを実行 ↓ デバイスのクローズ DOCLOSEコマンドを実行 ●プログラム例 ・bit毎に出力する場合には、DOPORTコマンドを使用します。 プログラム例: 100 ‘ DOデバイスをオープンする 110 DOOPEN 1 120 ‘ DOデバイスからデジタルデータを入力する 130 DOPORT(1, [1;2;3] ) = [1;0;1] 140 ‘ DOデバイスをクローズする 150 DOCLOSE 1 ・バイナリ値として出力する場合には、DOPORTSコマンドを使用します。 プログラム例: 100 ‘ DOデバイスをオープンする 110 DOOPEN 1 120 ‘ DOデバイスからデジタルデータを入力する 130 DOPORTS(1, [1; 2; 3] ) = &H7 140 ‘ DOデバイスをクローズする 150 DOCLOSE 1

(30)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 30 -

2.2.3 連続出力機能

DOデバイスの指定したポートから連続出力を行うことができます。 ●処理概要 連続出力を行うには、以下の流れでコマンドを実行します。 デバイスのオープン DOOPENコマンドを実行 ↓ 連続出力データの設定 DODATAコマンドを実行 ↓ 連続出力の開始 DOSTARTコマンドを実行 ↓ 連続出力状態を取得 DOSTATUSコマンドを実行 連続出力を強制停止させたい場合には、DOSTOPコマンドを実行しま す。 ↓ デバイスのクローズ DOCLOSEコマンドを実行 ※「INCLUDE "PO001DO.BAS"」でPO001DO.BASをインクルードする必要があります。 ●データフォーマット 連続出力データフォーマットは以下のフォーマットとなります。 例:ポート数:5 、サンプリング件数:100件の場合 サンプリング件数 ポート毎のサンプリング件数 配列要素番号 ポート1の1件目 配列(1番目) ポート2の1件目 配列(2番目) : : 1件目 ← ポート5の1件目 配列(5番目) ポート1の2件目 配列(6番目) ポート2の2件目 配列(7番目) : : 2件目 ← ポート5の2件目 配列(10番目) : : : : : : : : ポート1の100件目 配列(496番目) ポート2の100件目 配列(497番目) : : 100件目 ← ポート5の100件目 配列(500番目)

(31)

- 31 - Interface Corporation ●プログラム例 100 ' 必要なファイルをインクルードする 110 INCLUDE "PO001DO.BAS" 120 ' 構造体を定義する 130 STRUCT TDOSTATUS ST 140 ' 変数を定義する 150 DIM CONTDATA(4095) 160 ' DOデバイスをオープンする 170 DOOPEN 1 180 ' 連続出力するデジタルデータを作成する 190 FOR I = 0 TO 4080 STEP 16 200 CONTDATA(I) = 1 210 CONTDATA(I + 1) = 0 220 CONTDATA(I + 2) = 0 230 CONTDATA(I + 3) = 0 240 CONTDATA(I + 4) = 0 250 CONTDATA(I + 5) = 1 260 CONTDATA(I + 6) = 0 270 CONTDATA(I + 7) = 0 280 CONTDATA(I + 8) = 0 290 CONTDATA(I + 9) = 0 300 CONTDATA(I + 10) = 1 310 CONTDATA(I + 11) = 0 320 CONTDATA(I + 12) = 0 330 CONTDATA(I + 13) = 0 340 CONTDATA(I + 14) = 0 350 CONTDATA(I + 15) = 1 360 NEXT I 370 ' 連続出力データを設定する 380 DODATA(1, 1024) = CONTDATA(0 TO 4095) 390 ' デジタルデータの連続出力を開始する 400 DOSTART 1, [1;2;3;4], 1024, 1, 10 410 ' DOデバイスから連続出力の状態を取得する 420 ST = DOSTATUS(1) 430 WHILE ST.UPDATE = 1 440 ST = DOSTATUS(1) 450 SLEEP 1 460 WEND 470 ' DOデバイスをクローズする 480 DOCLOSE 1 490 ' 変数の後処理をする 500 ERASE CONTDATA 510 ' プログラムを終了する 520 END

(32)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 32 -

2.2.4 割り込み機能

DOデバイスから各割り込みを取得することができます。 取得できる割り込みは以下になります。 内容 連続出力終了割り込み ●処理概要 割り込み処理を行うには、以下の流れでコマンドを実行します。 デバイスのオープン DOOPENコマンドを実行 ↓ 割り込み発生時に分岐するサブ ルーチンを定義します ON DO ~ GOSUB ~コマンドで割り込み発生時に分岐するサブ ルーチンを定義します。 ↓ 割り込みの発生条件の設定 DOEVENTCONFIGコマンドを実行 ↓ 割り込みを有効にする DO ONコマンドを実行 ↓ : ↓ 割り込みを無効にする DO OFFコマンドを実行 ↓ デバイスのクローズ DOCLOSEコマンドを実行 ※「INCLUDE "PO001DO.BAS"」でPO001DO.BASをインクルードする必要があります。 ※発生した割り込み要因を取得する場合は、DOEVENTコマンドにて取得します。

(33)

- 33 - Interface Corporation ●プログラム例

100 INCLUDE "PO001DO.BAS" 110 ' 変数を定義する 120 DIM CONTDATA(4095) 130 BOOL FLAG = FALSE

140 ' DOデバイスをオープンする 150 DOOPEN 1

160 ' DOデバイスの割込み分岐先を設定する 170 ON DO 1 GOSUB LABEL1

180 ' DOデバイスの割込みを有効とするか無効とするかを設定する 190 DOEVENTCONFIG 1,"RSTIN=OFF, STOP=ON"

200 ' DOデバイスの割込みを許可する 210 DO ON 1 220 ' 連続出力するデジタルデータを作成する 230 FOR I = 0 TO 4080 STEP 16 240 CONTDATA(I) = 1 250 CONTDATA(I + 1) = 0 260 CONTDATA(I + 2) = 0 270 CONTDATA(I + 3) = 0 280 CONTDATA(I + 4) = 0 290 CONTDATA(I + 5) = 1 300 CONTDATA(I + 6) = 0 310 CONTDATA(I + 7) = 0 320 CONTDATA(I + 8) = 0 330 CONTDATA(I + 9) = 0 340 CONTDATA(I + 10) = 1 350 CONTDATA(I + 11) = 0 360 CONTDATA(I + 12) = 0 370 CONTDATA(I + 13) = 0 380 CONTDATA(I + 14) = 0 390 CONTDATA(I + 15) = 1 400 NEXT I 410 ' 連続出力データを設定する 420 DODATA(1, 1024) = CONTDATA(0 TO 4095) 430 ' デジタルデータの連続出力を開始する 440 DOSTART 1, [1;2;3;4], 1024, 1, 10 450 ' 割込みを待機する

460 WHILE FLAG = FALSE 470 SLEEP 1 480 WEND 490 ' DOデバイスの割込みを禁止する 500 DO OFF 1 510 ' DOデバイスをクローズする 520 DOCLOSE 1 530 ' 変数の後処理をする 540 ERASE CONTDATA 550 ' プログラムを終了する 560 END 570 ' 割込み発生後の分岐先 580 LABEL1: 590 EVT = DOEVENT(1) 600 IF EVT = DOEVTSTOP THEN 610 FLAG = TRUE

620 END IF 630 RETURN

(34)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 34 -

2.2.5 終了処理機能

DOデバイスの終了処理を行います。 終了処理として、割り込みを無効に設定し、連続出力を停止させます。 終了処理を行う場合には、DOCLOSEコマンドを実行します。

2.2.6 使用するハードウェアによる制限について

使用するハードウェアによって、使用できる機能に制約がある場合があります。 ハードウェア毎の制約事項については、弊社 webページを参照してください。

(35)

- 35 - Interface Corporation

2.3 詳細個別説明

1. DOOPEN

命令 i99-BASIC - 機 能 動作モードを設定し、デバイスをオープンします。 書式 DOOPEN [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ オープンするDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 ・割込み要因、割り込みの有効/無効設定はオープン直後は無効になります。 ・任意のDOデバイスを2重にオープンすることはできません。 本コマンドの実行以後「DOCLOSE」コマンドが実行されるまでの間に、同じデバイス番号に対し 本コマンドを使用するとエラーになります。 例:下記を実行すると行20はエラーになります。 10 DOOPEN 1 20 DOOPEN 1 使用例 ・「2.2.1 初期化機能」の使用例を参照してください。

2. DOCLOSE

命令 i99-BASIC - 機 能 デバイスをクローズします。 書式 DOCLOSE [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ クローズするDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 ・割込み要因、割り込みの有効/無効設定はクローズ後無効になります。 使用例 ・「2.2.1 初期化機能」の使用例を参照してください。

(36)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 36 -

3. DOPORT

命令 i99-BASIC - 機 能 デジタルデータを出力します。(値はbit毎に設定します。) 書式 DOPORT([ < デバイス番号 > ,] < ポート番号[] > )= < 出力値 > ① ② ③ ① < デバイス番号> (1) , 1~16 ○ 数値 デジタル出力するDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 ② < ポート番号[]> 1~N(ボード依存) × 数値・ 数値配列 デジタル出力のポート番号を設定します。 ポート番号を数値型変数で指定した場合(1点だけ指定した場合)、指定した1点のポートから デジタルデータを出力します。 ポート番号を数値配列型変数で指定した場合、指定したポート番号の数に応じたデジタルデータ を出力します。 ③ < 出力値[]> 0,1 × 数値・ 数値配列 パラ メータ デジタルデータの出力をbit毎に設定します。 例: ポート1=0, ポート2=1,ポート3=1 の場合 OUT(0) = 0 OUT(1) = 1 OUT(2) = 1 DOPORT(1,[1;2;3]) = OUT(0 TO 3) 備 考 ・ 出力値の配列とポート番号の配列は、同一の要素数を持つものを指定する必要がありま す。 ・ 出力値を指定しなかったポートの出力は、以前の出力を継続します。 例: 下記の行20でのコマンド実行ではポート2の出力値を指定していませんが、行10で1を出 力するよう設定しているため、ポート2も継続して1が出力されます。 10 DOPORT(1,[1,2]) = [1;1] 20 DOPORT(1,[1]) = 0 使用例 ・「2.2.2 1件出力機能」のプログラム例を参照してください。

(37)

- 37 - Interface Corporation

4. DOPORTS

命令 i99-BASIC - 機 能 デジタルデータを出力します。(値をバイナリ値で設定します。) 書式 DOPORTS([ < デバイス番号 > ,] < ポート番号[] > )= < 出力値 > ① ② ③ ① < デバイス番号> (1) , 1~16 ○ 数値 デジタル出力を行うDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 ② < ポート番号[]> 1~N(ボード依存) × 数値・ 数値配列 デジタル出力のポート番号を設定します。 ポート番号を数値型変数で指定した場合(1点だけ指定した場合)、指定した1点のポートから デジタルデータを出力します。 ポート番号を数値配列型変数で指定した場合、指定したポート番号の数に応じたデジタルデータ を出力します。 ③ < 出力値> 0~4294967295 × 数値 パラ メータ デジタルデータの出力値をバイナリ値で設定します 例: ポート1=0, ポート2=1,ポート3=1 の場合 ‘ 6は2進数で表現すると110 OUT = 6‘ DOPORTS(1, [1;2;3]) = OUT 備 考 ・ 出力値を指定しなかったポートの出力は、以前の出力を継続します。 例: 下記の行20でのコマンド実行ではポート2の出力値を指定していませんが、行10で1を出 力するよう設定しているため、ポート2も継続して1が出力されます。 10 DOPORT(1,[1,2]) = 3 20 DOPORT(1,[1]) = 0 使用例 ・「2.2.2 1 件出力機能」のプログラム例を参照してください。

(38)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 38 -

5. DODATA

命令 i99-BASIC - 機 能 デジタルデータの連続出力データを設定します。 ※ソルコンのみで使用できます。 書式 DODATA( [ < デバイス番号 > ,] < 件数 >) = < 連続出力データ[] > ① ② ③ ① < デバイス番号> (1) , 1~16 ○ 数値 デジタルデータを出力するデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 ② < 件数> 1~4,294,967,295 × 数値 出力する連続出力件数を設定します。 ③ < 連続出力データ[]> 0, 1 × 数値・ 数値配列 パラ メータ 連続出力データを設定します。 備 考 ・ 設定するデータフォーマットなどの説明については、「2.2.3 連続出力機能」を参照して ください。 使用例 ・「2.2.3 連続出力機能」のプログラム例を参照してください。

(39)

- 39 - Interface Corporation

6. DOSTART

命令 i99-BASIC - 機 能 連続出力を開始します。 ※ソルコンのみで使用できます。 書式 DOSTART [ < デバイス番号 > ,] < ポート番号[] > , < 件数 >, ① ② ③ < 繰返し回数 > , < 出力更新周期> ④ ⑤ ① < デバイス番号> (1) , 1~16 ○ 数値 連続出力を行うDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 ② < ポート番号[]> 1~N(ボード依存) × 数値・ 数値配列 デジタル入力のポート番号を設定します ・複数のポートを設定する場合は連続したポートのみ設定できます。 OK : (1 TO 3) NG : (1;3;4;7) ③ < 件数> 1~4,294,967,295 × 数値 連続出力の件数を設定します。 「DODATA」コマンドで設定した件数をポート数で割った値を設定してください。 ④ < 繰返し回数> 0~4,294,967,295 × 数値 連続出力の繰返し回数を設定します。 0を指定するとDOSTOPを実行するまで出力を繰り返します。 ⑤ < 出力更新周期> 1~1000 × 数値 パラ メータ 出力の更新周期をmsで設定します。 1ms単位で指定できます。 備 考 ・連続出力中に本コマンドを実行することはできません。 使用例 ・「2.2.3 連続出力機能」のプログラム例を参照してください。

(40)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 40 -

7. DOSTOP

命令 i99-BASIC - 機 能 連続出力を停止させます。 ※ソルコンのみで使用できます。 書式 DOSTOP [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 連続出力を停止させるDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 ・連続出力停止中には本コマンドを実行することがができません。 使用例 ・「2.2.3 連続出力機能」のプログラム例を参照してください。

8. DOSTATUS

関数 i99-BASIC - 機 能 連続出力の状態を取得します。 ※ソルコンのみで使用できます。 書式 < 連続出力の状態 > = DOSTATUS [ < デバイス番号 > ] 戻り値 ① 戻り値 < 連続出力の状態 > - 構造体 戻り値 連続出力の状態を取得します。 構造体名 TDOSTATUS

DEFINE STRUCT TDOSTATUS

UPDATE COUNT END STRUCT 構造体メンバ変数 内容 型 値 UPDATE 連続出力状態 数値 0: 連続出力停止 1: 連続出力中 COUNT 連続出力済み件数 数値 0… ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 連即出力の状態を取得するDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 ・ 本コマンドを使用する際は、INCLUDEコマンドでPO001DO.BASをインクルードしてください。 ・ 連続出力済み件数は、DOSTARTコマンド実行毎に0からカウントされます。 使用例 ・「2.2.3 連続出力機能」のプログラム例を参照してください。

(41)

- 41 - Interface Corporation

9. DOEVENTCONFIG

命令 i99-BASIC - 機 能 割り込みを有効とするか、無効とするかを設定します。 書式 DOEVENTCONFIG [ < デバイス番号 > ,] < 割り込み定義 > ① ② ① < デバイス番号> (1) , 1~16 ○ 数値 割り込みの有効/無効を設定するDOデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 ② < 割り込み定義> - × 文字 パラ メータ 割り込みの定義を設定します。 識別子 設定値 内容 デフォルト OFF 連続出力終了割り込み無効 ○ STOP ON 連続出力終了割り込み有効 備 考 ・割り込み定義で設定する各識別子に対し割り当て可能な設定値は1つです。 ・DOCLOSE→DOOPENした場合、割り込み定義は無効に設定されます。 使用例 ・「2.2.4 割り込み機能」のプログラム例を参照してください。

10. DOEVENT

関数 i99-BASIC - 機 能 割り込みの状態を取得します。 書式 <割り込み状態> = DOEVENT[ < デバイス番号 > ,] 戻り値 ① 戻り値 < 割り込み状態 > 0, 2 数値 戻り値 割り込みの状態を取得します。 識別子 設定値 内容 DOEVTSTOP 2 連続出力終了割り込み ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ デジタルデータを出力するデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 ・本コマンドを使用する際は、INCLUDEコマンドでPO001DO.BASをインクルードしてください。 使用例 ・「2.2.4 割り込み機能」のプログラム例を参照してください。

(42)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 42 -

11. ON DO ~ GOSUB ~

命令 i99-BASIC - 機 能 割り込み発生時に分岐するサブルーチンを定義します。 この割り込みは、DO ONの状態で有効になります。 書式 ON DO [ < デバイス番号 > ] GOSUB < ラベル/行番号 > ① ② ① < デバイス番号> (1) , 1~16 ○ 数値 設定を行うデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 ② < ラベル/行番号> - × 数値 パラ メータ 要因発生時に実行するサブルーチンのラベル名または行番号を指定します。 備 考 ・本コマンドを実行した後に、DOEVENTCONFIGコマンドを実行しなければ割り込みが設定 されません。 使用例 ・「2.2.4 割り込み機能」のプログラム例を参照してください。

12. DO ON

命令 i99-BASIC - 機 能 割り込みを有効にします。 書式 DO ON [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 割り込みを有効にするデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 ・割り込みを有効にし、保留にしていた割り込みを発生させます。 ・本コマンドの実行後、DOEVENTCONFIGコマンドで有効化した割り込み要因が発生すると、 ON DO ~ GOSUB ~コマンドの実行時に指定されたサブルーチンが実行されます。 使用例 ・「2.2.4 割り込み機能」のプログラム例を参照してください。

(43)

- 43 - Interface Corporation

13. DO OFF

命令 i99-BASIC - 機 能 割り込みを無効にします。 書式 DO OFF [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 割り込みを無効にするデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 ・割り込みを無効にし、保留になっている割り込みを削除します。 ・本コマンド実行後、DOEVENTCONFIGコマンドで有効にした割り込み要因が発生しても、ON DO ~ GOSUB ~コマンドの実行時に指定されたサブルーチンが実行されません。 使用例 ・「2.2.4 割り込み機能」のプログラム例を参照してください。

14. DO STOP

命令 i99-BASIC - 機 能 割り込みを保留にします。 書式 DO STOP [ < デバイス番号 > ] ① ① < デバイス番号> (1) , 1~16 ○ 数値 パラ メータ 割り込みを保留にするデバイスのデバイス番号を設定します。 ※デバイス番号については、「2.2.1 初期化機能」を参照してください。 備 考 本コマンド実行後、DIEVENTCONFIGコマンドで有効にした割り込み要因が発生しても、ON DO ~ GOSUB ~コマンドの実行時に指定されたサブルーチンが実行されません。 本コマンド実行後、DO ONコマンドを実行することで割り込みが有効になります(保留されてい た割り込みが発生するようになります) 使用例 ・「2.2.4 割り込み機能」のプログラム例を参照してください。

(44)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 44 -

2.4 サンプルプログラム

サンプルプログラムを表示させるためには、LOADコマンドでロードしてください。 例として、[DIPORT.BAS]のサンプルプログラムをロードする場合は、 「LOAD」→ →「”SAMPLE/DOPORT.BAS”」と入力して、 を押してください。 No. ファイル名 内 容 1 DOPORT.BAS 1件のデータ出力を行うサンプルプログラム 2 DOPORTS.BAS 1件のデータ出力を行うサンプルプログラム 3 DOPORT_MULTI.BAS 1件のデータ出力を行うサンプルプログラム bit単位のデジタルデータを配列で指定して出力する 4 DOSTART.,BAS 連続出力を行うサンプルプログラム 5 DOEVENT.BAS 連続出力を行うサンプルプログラム

2.5 エラーコード一覧

エラーコード 内 容 15 命令が書式通りになっていません 17 指定したデバイスの操作に失敗しました 33 BASIC内部で異常が発生しました 37 デバイスが見つかりません エラー 43 命令や関数の使い方が間違っています スペース Enter

(45)

- 45 - Interface Corporation

第3章 アナログ入力制御に関する関数・命令

i99-BASICで使用できるI/O制御コマンドの使い方について記載します。 長期安心FAコントローラで、本IOコマンドを使用する場合には、GPG-3100のLinuxドライバをイン ストールする必要があります。 弊社Web siteサイトからダウンロードしてインストールを行ってください。 http://www.interface.co.jp/catalog/soft/prdc_soft_all.asp?name=gpg-3100

3.1 コマンド一覧

No コマンド名 機能 ●初期化/終了 1 AIOPEN デバイスをオープンします 2 AICLOSE デバイスをクローズします。 ●レンジ 3 AIRANGE レンジを設定します。 ●1件入力 4 AIPORT アナログデータを1件入力します。 ●データ変換 5 AISCALE アナログデータ入力値をスケール変換します。 ●サンプリング 6 AITRIGGER サンプリングのトリガ条件を設定します。 7 AISTATUS サンプリング状態を取得します。 8 AISTART サンプリングを開始します。 9 AISTOP サンプリングを停止させます。 10 AIDATA サンプリングデータを取得します。 ●デジタル入出力 11 AIDIPORT デジタルデータを入力します。(値をbit毎に返します。) 12 AIDIPORTS デジタルデータを入力します。(値をバイナリ値で返します。) 13 AIDOPORT デジタルデータを出力します。(値はbit毎に設定します。) 14 AIDOPORTS デジタルデータを出力します。(値をバイナリ値で設定します。) ●割り込み 15 AIEVENTCONFIG 割り込みの発生条件を設定します。 16 AIEVENT 割り込み発生時に分岐するサブルーチンを定義します。 17 ON AI ~ GOSUB ~ 割り込み分岐先を設定します。 18 AI ON 割り込みを有効にします。 19 AI OFF 割り込みを無効にします。 20 AI STOP 割り込みを保留にします。

(46)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 46 -

3.1.1 プログラム内でのみ使用できるコマンド

No コマンド名 機能 ●割り込み設定関数 1 ON AI ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。

3.1.2 トレース実行で使用できないコマンド

No コマンド名 機能 ●割り込み設定関数 1 ON AI ~ GOSUB ~ 割り込み発生時に分岐するサブルーチンを定義します。

(47)

- 47 - Interface Corporation

3.2 機能説明

3.2.1 初期化機能

AIデバイスの初期化処理を行います。 初期化処理として、割り込み処理の初期化(割り込みを無効)/サンプリング条件の初期化が行われます。 初期化処理を行う場合には、AIOPENコマンドを実行します。 初期化を行うデバイスの指定を行う場合、デバイス番号を指定しますがデバイス番号は使用するAIデバイ スのRSWの情報と以下の定義で関連付けがされています。 デバイス番号 RSW番号 1 0 2 1 3 2 … … 15 E 16 F 下記製品を使用する場合は、デバイス番号は1となります。 ・ ソルコン製品 ・ タフコン製品 ・ マザコン製品 ・ I/O付きタッチパネル製品 ●プログラム例 100 ' AIデバイスの動作モード設定を行い、オープンする 110 AIOPEN 1, "INPUT=SINGLE" 120 AIRANGE 1, [1;2;3;4], 16 130 ' AIデバイスのポートからアナログデータを1件入力する 140 AI1 = AIPORT(1, 1) 150 PRINT " AI1=";AI1 160 ' AIデバイスをクローズする 170 AICLOSE 1 デバイス番号については、省略することも可能であり省略した場合はデバイス番号が1で設定されます。 プログラム例: 100 ' AIデバイスの動作モード設定を行い、オープンする 110 AIOPEN "INPUT=SINGLE" 120 AIRANGE [1;2;3;4], 16 130 ' AIデバイスのポートからアナログデータを1件入力する 140 AI1 = AIPORT(1) 150 PRINT " AI1=";AI1 160 ' AIデバイスをクローズする 170 AICLOSE

(48)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 48 -

3.2.2 1件入力機能

AIデバイスから、指定したポートのアナログ入力データを取得することができます。 ●処理概要 アナログ入力を行うには、以下の流れでコマンドを実行します。 デバイスのオープン AIOPENコマンドを実行 ↓ レンジの設定 AIRANGEコマンドを実行 ↓ 1件のデータを取得 AIPORTコマンドを実行 ↓ デバイスのクローズ AICLOSEコマンドを実行 ●プログラム例 100 ' AIデバイスの動作モード設定を行い、オープンする 110 AIOPEN 1, "INPUT=SINGLE" 120 AIRANGE 1, [1;2;3;4], 16 130 ' AIデバイスのポートからアナログデータを1件入力する 140 FOR I = 1 TO 10 150 AI1 = AIPORT(1, 1) 160 AI2 = AIPORT(1, 2) 170 AI3 = AIPORT(1, 3) 180 AI4 = AIPORT(1, 4)

190 PRINT " AI1=";AI1; " AI2=";AI2; " AI3=";AI3; " AI4=";AI4 200 SLEEP 1

210 NEXT I

220 ' AIデバイスをクローズする 230 AICLOSE 1

(49)

- 49 - Interface Corporation

3.2.3 サンプリング機能

●サンプリング方式 サンプリング方式とは、サンプリングを行うときの動作方式のことを示します。 サンプリング方式には次の4種類があります。 方式 説明 I/O方式 パソコンへのハードウェア割り込みで、1件ずつデータをサンプリングする方 式です。 FIFO方式 デバイス上のFIFOメモリにサンプリングデータを蓄え、一定件数のサンプリ ングデータがFIFOに蓄えられるとパソコンにハードウェア割り込みをかけ、 必要な件数分のサンプリングデータをFIFOから取り出す方式です。 高速なサンプリングを実現できます。 メモリ方式 デバイス上のメモリを利用してサンプリングを行う方式です。 非常に高速なサンプリングを行うことができます。 バスマスタ方式 PCIバスマスタ機能を使用したDMA転送を利用してサンプリングを行う方式で す。 デバイスからパソコン上のメモリに直接データが転送されるため、非常に高 速なサンプリングを行うことができます。 ●トリガディレイ トリガ機能が設定されている場合、トリガとなったタイミングからサンプリングを終了させるタイミングをず らせる機能です。 トリガディレイについては、サンプリング件数とディレイ件数の関係で以下のような動作となります。 トリガ位置 サンプリング件数を n、ディレイ件数を d とした時 d == 0 d > 0 d < 0 n n d n d サンプリング結果として得られるデータ

(50)

i99-BASIC IO制御コマンドリファレンス Interface Corporation - 50 - ●トリガ トリガ条件の設定を行うには、AITRIGGERコマンドで設定を行います。 トリガ条件として以下のトリガを指定することができます。 1 フリーラン (トリガなし) 2 レベルトリガ ・ 立ち上がり ・ 立ち下がり 3 レンジトリガ ・ イン ・ アウト 4 外部トリガ ・ 立ち上がり ・ 立ち下がり 5 指定件数 ■フリーラン (トリガなし) AISTOPコマンドが実行されるまでサンプリングは実行されます。 バッファとしては、AISTARTコマンドで指定したサンプリング件数のバッファをリングに使用されます。 コマンド例: AITRIGGER 1, "TRIGGER=FREERUN" ■レベルトリガ(立ち上がり) トリガレベル_1で設定したレベルより、低いレベルから高いレベルへ変化が起こったときをトリガと します。トリガレベル_2の設定はできません。 コマンド例:

AITRIGGER 1, "TRIGGER= LEVEL, MODE= RISE", 1, 5.0

■レベルトリガ(立ち下がり)

トリガレベル_1で設定したレベルより、高いレベルから低いレベルへ変化が起こったときをトリガと します。

トリガレベル_2の設定はできません。 コマンド例:

AITRIGGER 1, "TRIGGER= LEVEL, MODE= FALL", 1, 5.0 ○ トリガポイント トリガレベル_1 ○ トリガポイント トリガレベル_1

参照

関連したドキュメント

第1スパン 第2スパン 第3スパン 第4スパン 第5スパン 第6スパン 第7スパン 制 御

NCP5104 Single Input High and Low Side Power MOSFET Driver Half-Bridge 2 SOIC-8, PDIP-8 NCP5111 Single Input Half-Bridge Power MOSFET or IGBT Driver Half-Bridge 2 SOIC-8,

パルスno調によ るwo度モータ 装置は IGBT に最な用です。この用では、 Figure 1 、 Figure 2 に示すとおり、 IGBT

Should Buyer purchase or use SCILLC products for any such unintended or unauthorized application, Buyer shall indemnify and hold SCILLC and its officers, employees,

(Although there are no recommended design for Exposed Die Pad and Fin portion Metal mask and shape for Through−Hole pitch (Pitch &amp; Via etc), checking the soldered joint

タンクタンクタンク モバイル型Sr 除去装置 吸着塔 スキッド 計装制御 スキッド 計装制御装置 ウルトラフィルタ スキッド SSフィルタ

・原子炉冷却材喪失 制御棒 及び 制御棒駆動系 MS-1

糸速度が急激に変化するフィリング巻にお いて,制御張力がどのような影響を受けるかを