182
COM-EX(PCI/C-PCI) www.interface.co.jp GPC-4161 調歩同期シリアル通信インタフェースモジュール用 Windows ドライバ Help for Windows

GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

COM-EX(PCI/C-PCI)

www.interface.co.jp

GPC-4161 調歩同期シリアル通信インタフェースモジュール用 Windows ドライバ

Help for Windows

Page 2: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

COM-EX(PCI/C-PCI)

© 2002 Interface Corporation. All rights reserved.

2

Page 3: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

3

目 次

第 1 章 はじめに .................................................5

1.1 概要 ...........................................................................5

1.2 特長 ...........................................................................5

第 2 章 製品仕様 .................................................6

2.1 基本仕様 .......................................................................6

2.2 製品構成 .......................................................................8

第 3 章 導入方法 ................................................10

3.1 インストール手順 ..............................................................10

3.2 実行手順 ......................................................................10

第 4 章 リファレンス(拡張機能、通信モジュール) ................17

4.1 制御コード一覧 ................................................................17

4.2 制御コード個別説明 ............................................................18

4.3 構造体説明 ....................................................................49

4.4 通信速度 ......................................................................53

4.5 モニタモード ..................................................................56

4.6 2 線式/4 線式通信設定 ..........................................................58

4.7 注意事項 ......................................................................59

4.8 製品の版数、チェンジナンバーについて ..........................................64

4.9 クラスライブラリ参照方法 ......................................................65

第 5 章 リファレンス(通信モジュールイベント) ..................68

5.1 関数一覧 ......................................................................68

5.2 関数個別説明 ..................................................................69

5.3 構造体説明 ....................................................................76

第 6 章 リファレンス(標準COM部) ...............................85

6.1 関数一覧 ......................................................................85

6.2 関数個別説明 ..................................................................86

第 7 章 リファレンス(汎用DIO部) ...............................90

7.1 関数一覧 ......................................................................90

7.2 関数個別説明 ..................................................................92

7.3 コールバック関数 .............................................................168

7.4 戻り値一覧 ...................................................................172

第 8 章 サンプルプログラム .....................................173

8.1 実行手順 .....................................................................173

8.2 サンプルプログラム一覧 .......................................................174

第 9 章 ユーティリティ .........................................175

9.1 通信ユーティリティ ...........................................................175

9.2 自己診断プログラム ...........................................................176

9.3 通信方式設定プログラム .......................................................177

9.4 カードバスID設定ユーティリティ ...............................................179

9.5 DI入力ユーティリティ .........................................................180

Page 4: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

4

9.6 DO出力ユーティリティ .........................................................181

第 10 章 重要な情報 .............................................182

Page 5: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

5

第1章 はじめに

1.1 概要 GPC-4161 は、Windows 上のアプリケーションから、弊社調歩同期シリアル通信製品を制御する為

のソフトウェアです。

弊社調歩同期シリアル通信製品をWindows上のアプリケーションからWin32シリアル通信APIをコ

ールすることにより制御します。

本ドキュメントは、Windows 上で GPC-4161 を使用するための情報を掲載しています。

1.2 特長 ● 高通信速度 1Mbps(RS-485 の製品は 2Mbps)による調歩同期シリアル通信が可能です。

通信速度基準クロックをチャンネルごとに設定できます。

●モニタ機能により、2つの通信機器間のデータや制御信号を監視することができます。

※CBI-4641,CBI-466120,CSI-466120 のみサポートしています。

●外部クロック/内部クロックの選択が可能です。

※PCI-4161 のみサポートしています。

●ハードウェアによる RS/CS フロー制御、XON/XOFF の自動送出が可能です。

●半二重制御において、データを出しはじめるまでの時間(セットアップタイム)、データを出し終

えるまでの時間(ホールドタイム)を µs 単位で設定できます。

※製品型式によって仕様が違いますので、注意してください。

●通信モジュール製品に対応しています。下記のような特長があります。

・CPU を搭載しており、通信の際のパソコンや CPU ボード負荷を軽減することが出来ます。

※PCI/CTP/CPZ-420108Q,PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420208Q,

PCI/CTP/CPZ-420216Q のみ搭載しています。

・ 大 1デバイス、16 チャンネルの通信を制御することが可能です。

※PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420216Q のみ 大 16 チャンネル可能です。

・ 大 48 点のデジタル入出力を制御することが可能です。

※PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420216Q のみ 大 48 点可能です。

●Visual Basic の MSComm32.ocx(Microsft Commnications Control)に弊社の拡張機能をつけた

ActiveX コントロール(IFXComm.dll)を用意しています。

※下記製品は対応しておりません、ご注意下さい。

PCI-466111U, PCI-466110U, PCI-466101U

ActiveX コントロールの特長

1.MSComm よりオブジェクト名をかえるだけで置き換えが可能です。

2.ボーレートが好きな値に設定が可能です。

3.通信設定(全二重、半二重)等の切り替えが可能です。

Page 6: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

6

第2章 製品仕様

2.1 基本仕様

大ポート数 255 ポート

ただし、同一型式の製品は 16 枚まで。

PCI-4161,

CBI-4641,

CBI-466120,

CBI-466120WA

12bps~1Mbps

PCI-466111U

(RS-232C)

2400bps, 4800bps, 7200bps,

9600bps, 14400bps, 19200bps,

28800bps, 38400bps, 56000bps,

57600bps, 115200bps, 128000bps,

230400, 460800bps, 921600bps

PCI-466111U

(RS-485),

PCI-466101U

300bps~2Mbps

PCI-466110U 300bps~1Mbps

RS-232C 8bps~1Mbps

通信速度

※範囲内のすべての値を設定

できるわけではありません。

使用できる値は『通信速度』を

ご参照下さい。

上記以外 RS-485(422) 8bps~2Mbps

PCI-4161 内部クロック、外部クロック 通信クロック

PCI-4161 以外 内部クロック

PCI-4161 12.288MHz, 14.7456MHz,

19.6608MHz, 32MHz

CBI-4641,

CBI-466120,

CBI-466120WA

12.288MHz, 14.7456MHz, 32MHz

PCI-466111U,

PCI-466110U,

PCI-466101U

48MHz

基準クロック

上記以外 8.192MHz, 12.288MHz, 14.7456MHz,

19.6608MHz, 32MHz, 49.152MHz,

58.982MHz

同期方式 調歩同期

PCI-466111U

(RS-232C)

8 ビット キャラクタ長

上記以外 5 ビット~8ビット

PCI-466111U,

PCI-466110U,

PCI-466101U

なし、偶数、奇数 パリティビット

上記以外 なし、偶数、奇数、マーク、スペース

ストップビット PCI-466111U

(RS-232C)

1 ビット

Page 7: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

7

上記以外 1 ビット、2ビット ※1.5 ストップビットは使用できません。

PCI-466111U,

PCI-466110U,

PCI-466101U,

PCI-420216Q,

CPZ-420108Q,

CPZ-420116Q,

CPZ-420208Q,

CPZ-420216Q,

CTP-420108Q,

CTP-420116Q,

CTP-420208Q,

CTP-420216Q

ハードウェアフロー(RS/CS)

ソフトウェアフロー(XON/XOFF) フロー制御

上記以外 ハードウェアフロー(RS/CS, ER/DR)

ソフトウェアフロー(XON/XOFF)

出力信号 RS, ER RS-232C 制御信号

入力信号 CS, DR, CI, CD

出力信号 C RS-485 制御信号

入力信号 I

RS-232C 288 バイト/チャンネル 送信

RS-485 320 バイト/チャンネル

RS-232C 288 バイト/チャンネル

PCI-4661

11U

受信

RS-485 320 バイト/チャンネル

送信 576 バイト/チャンネル PCI-46611

0U,

PCI-46610

1U

受信 576 バイト/チャンネル

送信 1024 バイト/チャンネル

FIFO サイズ

上記以外

受信 1024 バイト/チャンネル

Page 8: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

8

2.2 製品構成 製品構成 ファイル名 説明

弊社管理用ファイル GPC4161.VER 弊社ソフト管理用ファイル

新情報ドキュメント README.HTM 新ドキュメント掲載ファイル

インストールプログラム SETUP.EXE インストール用ファイル

DIAGCOMEX.EXE 自己診断プログラム

COMUTIL.EXE 通信ユーティリティ

SDIUTIL.EXE DI 入力ユーティリティ

SDOUTIL.EXE DO 出力ユーティリティ

ユーティリティ

SETDUPLEX.EXE 全二重半二重切替ユーティリティ

(PCI-466111U, PCI-466101U 用)

サンプルプログラム

Send Visual C# .NET 用サンプルプログラム

Receive Visual C# .NET 用サンプルプログラム

InPoint Visual C# .NET 用サンプルプログラム

Visual C# .NET

OutPoint Visual C# .NET 用サンプルプログラム

Send Visual C++(MFC)用サンプルプログラム

Receive Visual C++(MFC)用サンプルプログラム

Visual C++

Monitor Visual C++(MFC)用サンプルプログラム

Send Visual Basic .NET 用サンプルプログラム

Receive Visual Basic .NET 用サンプルプログラム

InPoint Visual Basic .NET 用サンプルプログラム

Visual Basic .NET

OutPoint Visual Basic .NET 用サンプルプログラム

Send Visual Basic 用サンプルプログラム

Receive Visual Basic 用サンプルプログラム

Monitor Visual Basic 用サンプルプログラム

Visual Basic

Terminal ActiveX コントロール使用

Visual Basic 用サンプルプログラム

Send Delphi 用サンプルプログラム

Receive Delphi 用サンプルプログラム

Delphi

Monitor Delphi 用サンプルプログラム

IFSDIO.DLL ダイナミックリンクライブラリファイル

IFCOMU210X.DLL ダイナミックリンクライブラリファイル

IFSDIO.LIB インポートライブラリファイル

IFXCOMM.DLL ActiveX コントロール

DLL

MSCOMM32.OCX Microsoft 社製 ActiveX コントロール

デバイスドライバ CP4203.SYS Windows 2000 以降の OS 用ドライバ

CP4161x.SYS Windows 2000 以降の OS 用ドライバ

CP4661x.SYS Windows 2000 以降の OS 用ドライバ

CP4662x.SYS Windows 2000 以降の OS 用ドライバ

SILABENM.SYS Windows 2000 以降の OS 用ドライバ

SILABSER.SYS Windows 2000 以降の OS 用ドライバ

Page 9: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

9

製品構成 ファイル名 説明

IFSDIONU.SYS Windows 2000 以降の OS 用ドライバ

GPC4161*.INF Windows 2000 以降の OS 用ドライバインスト

ール ファイル

GPC4661*.INF Windows 2000以降のOS用ドライバインスト

ール ファイル

GPC4201*.INF Windows 2000以降のOS用ドライバインスト

ール ファイル

GPC4202*.INF Windows 2000 以降の OS 用ドライバインスト

ール ファイル

GPC4161*.SLD Windows Embedded 用ドライバ SLD ファイ

GPC4661*.SLD Windows Embedded 用ドライバ SLD ファイ

GPC4201*.SLD Windows Embedded 用ドライバ SLD ファイ

GPC4202*.SLD Windows Embedded 用ドライバ SLD ファイ

CP4161.SYS Windows NT 4.0 用ドライバ

GPC4161.INF Windows NT 4.0 用ドライバ インストール

ファイル

CP4161*.VXD Windows Me/98/95 用ドライバ

GPC4161.INF Windows Me/98/95 用ドライバ インストール

ファイル

ヘッダファイル COMEX.H Visual C++用ヘッダファイル

IFSDIO.H Visual C++用ヘッダファイル

IFCOMU210X.H Visual C++用ヘッダファイル

COMEX.BAS Visual Basic 用ヘッダファイル

IFSDIO.BAS Visual Basic 用ヘッダファイル

IFCOMU210X.BAS Visual Basic 用ヘッダファイル

COMEX.PAS Delphi 用ヘッダファイル

IFSDIO.PAS Delphi 用ヘッダファイル

ヘルプ HELP.PDF

HELP_NET.PDF

Help_ActiveX.PDF

ヘルプ(PDF 形式)

※Visual C# .NET,Visual Basic.NET 用サンプルプログラムは、それぞれ Visual C# .NET 2003,

Visual Basic .NET 2003 を使用して作成しています。

Page 10: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

10

第3章 導入方法

3.1 インストール手順 README.HTM のインストール方法を参照してください。

3.2 実行手順 同一型式を複数枚使用する場合は、

・Compact PCI, PCI 製品の場合、インタフェースモジュール上のロータリースイッチ RSW1 の設定値

・CardBus 製品の場合、CardBus ID の設定値

が同一型式同士で重複しないように設定してからスロットに実装し、システムを起動して下さい。

同一型式が複数存在する場合、制御対象を一意に識別するための番号となります。重複していた場合、

本ソフトウェアは正常に動作いたしません。

エコ 2 / エコ 3 Classembly Devices®に搭載されている PCI-466101,PCI-466110, PCI-466120,

PCI-466130, PCI-466160 の RSW1 の設定値は 0で固定となっています。上記と同型式のインタフェー

スモジュールを拡張される場合は RSW 番号を 0としないように注意してください。

タフコン Classembly Devices®に搭載されているPCI-466110, PCI-466101のRSW1の設定値は0で固定とな

っています。上記と同型式のインタフェースモジュールを拡張される場合はRSW番号を0としないように注

意してください。

マザコン Classembly Devices®に搭載されている PCI-466120, PCI-466160, PCI-466101, PCI-466102の

RSW1の設定値は0で固定となっています。上記と同型式のインタフェースモジュールを拡張される場合は

RSW番号を0としないように注意してください。

ソルコン/IO付きタッチパネル Classembly Devices®に搭載されている PCI-466111U, PCI-466110U,

PCI-466101UにはRSW1はありません。

3.2.1 実行手順(UART 部) 基本的な制御の手順は以下の通りです(記述例は C言語です)。

※使用している関数は全て Win32API となっております。

各種構造体、Win32APIの使用方法はMicrosoft社提供のWin32APIリファレンス等をご参照ください。

1.初期化

ポートを CreateFile 関数で初期化します。

hPort = CreateFile( "\\\\.\\COM5", GENERIC_READ | GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

ポート名(COM5)を指定して初期化を行います。

初期化が正常終了すると上記の記述例では hPort にポートハンドルが返されます。ポートハンドルと

は、ポートを一意に識別するもので、下記以降の関数コールの際に指定します。

複数のポートを使用する場合は、CreateFile 関数を複数回コールし、各ポートハンドルを取得する

必要があります。

初期化したポートはアプリケーション終了の際には必ず終了処理( CloseHandle 関数 )を行ってく

ださい。

Page 11: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

11

2.状態確認(通信モジュール製品のみ)

通信モジュールの状態が正常かどうか確認してください。

Ret = DeviceIoControl(hPort, IOCTL_COMEX_GET_TMODULE_STATUS, NULL, 0,

&GetStatus, sizeof(UCHAR), &cbReturns, NULL );

3.バッファ初期化

送受信バッファの初期化を行います。SetupComm 関数で送受信バッファサイズを指定し、PurgeComm

関数でバッファのクリアを行います。

SetupComm(hPort, 4096, 4096);

PurgeComm(hPort, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);

4.タイムアウト設定

送受信タイムアウトの設定を行います。

COMMTIMEOUTS Timeout;

Timeout.ReadIntervalTimeout = 0xFFFFFFFF;

Timeout.ReadTotalTimeoutMultiplier = 0;

Timeout.ReadTotalTimeoutConstant = 1000;

Timeout.WriteTotalTimeoutMultiplier = 0;

Timeout.WriteTotalTimeoutConstant = 1000;

SetCommTimeouts(hPort, &Timeout);

5.通信設定

通信設定を行います。GetCommState 関数で現在の通信設定を取得し、SetCommState 関数でポートの

設定を行います。通信を行う前に必ず行ってください。

<4線式全二重通信の例>

DCB dcb;

GetCommState(hPort, &dcb);

dcb.BaudRate = 9600;

dcb.fAbortOnError = 0;

dcb.Parity = 0;

dcb.StopBits = ONESTOPBIT;

dcb.ByteSize = 8;

dcb.fOutxDsrFlow = 0;

dcb.fDtrControl = DTR_CONTROL_ENABLE;

dcb.fOutxCtsFlow = 0;

dcb.fRtsControl = RTS_CONTROL_ENABLE;

dcb.fBinary = TRUE;

dcb.fParity = FALSE;

dcb.fInX = dcb.fOutX = 0;

SetCommState(hPort, &dcb);

Page 12: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

12

6.送信

データの送信を行います。

BYTE bSendBuffer[256];

DWORD dwSendSize;

int n;

for (n = 0; n < 256; n++) {

bSendBuffer[n] = n;

}

WriteFile ( hPort, bSendBuffer, 256, &dwSendSize, NULL );

上記の記述例では、bSendBuffer に格納された 256 バイトのデータ送信を行います。

7.受信

データの受信を行います。

BYTE bReadBuffer[256];

DWORD dwReadSize;

ReadFile ( hPort, bReadBuffer, 256, &dwReadSize, NULL );

上記の記述例では、256 バイトのデータ受信を行い、受信データを bReadBuffer に格納します。

8.終了処理 CloseFile 関数を使用してポートの終了処理を行います。

CloseHandle ( hPort );

アプリケーションでは、必ず終了処理を行ってから終了してください。

Page 13: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

13

3.2.2 実行手順(DIO 部)

※この実行手順は下記、製品型式のみ対応しています。ご注意ください。

PCI/CTP/CPZ-420108Q,PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420208Q,

PCI/CTP/CPZ-420216Q,CSI-420308

基本的な制御の手順は以下の通りです(記述例は C言語です)。

1.初期化

デバイスをオープンし、デバイスハンドルを得ます。

hDeviceHandle = SdioOpen("IFSDIO1");

デバイス名 "IFSDIO1" は、IFSDIO1、IFSDIO2... と、システムが PCI バス上にデバイスが発見され

た順番に割り付けられます。

インタフェースモジュールが挿入されているスロット位置やパソコン本体が変わると、検出順序が変

わるため、デバイス名が変わることがあります。

Windows NT 以外の OS では、「デバイス マネージャ」 に 「IfSdio」 が追加され認識された弊社通

信モジュールのデジタル入出力デバイスが一覧表示されます。一覧の製品型式の横にインタフェース

モジュール上のロータリスイッチの値とデバイス名が表示されますので、ドライバインストール後、

デバイス名を確認してからご使用ください。

(付属の、DI 入力ユーティリティ(SdiUtil.exe)、DO 出力ユーティリティ(SdoUtil.exe) でも確認す

る事ができます。)

プログラム中では、SdioCommonGetDeviceInfo 関数を用いて、デバイス名と ボード ID(RSW1 設定)

を確認することが出来ます。

hDeviceHandle = SdioOpen("IFSDIO1");

nRet = SdioCommonGetDeviceInfo(

hDeviceHandle,

&DeviceID,

&VendorID,

&RevisionID,

&SubsystemID,

&SubsystemVendorID,

&BoardID,

&TerminalNo );

DeviceID、BoardID、TermilanNo に返される デバイス ID、ボード ID、端子台番号を確認することで、

"IFSDIO1" がどのターミナル上の汎用 DIO デバイスであるかを確認することが出来ます。

2.状態確認

通信モジュールの状態が正常かどうか確認してください。

nRet = SdioGetTmoduleStatus(hDeviceHandle, &bTmoduleStatus);

Page 14: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

14

3.入力方法

SdioOpen 関数で得たデバイスハンドルを用いて、指定した接点の状態を読み出します。

// IN1~IN8 の 8 点の接点状態を入力します。

nRet = SdioInputByte( hDeviceHandle, IFSDIO_IN1_8, &Value );

// IN1~IN16 の 16 点の接点状態を入力します。

nRet = SdioInputWord( hDeviceHandle, IFSDIO_IN1_16, &Value );

// IN1~IN32 の 32 点の接点状態を入力します。

nRet = SdioInputDword( hDeviceHandle, IFSDIO_IN1_32, &Value );

上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の接点状態を入力しますが、以下のように、

入力する接点の範囲を指定して入力することも出来ます。

// IN5~IN7 の 3 点の接点状態を入力します。

nRet = SdioInputPoint( hDeviceHandle, &nBuffer[0], 5, 3 );

配列 nBuffer は、3つ以上の要素が用意されていなければなりません。

4.出力方法

SdioOpen 関数で得たデバイスハンドルを用いて、出力を変化させます。

// OUT1~OUT8 の 8 点の出力を変化させます。

nRet = SdioOutputByte( hDeviceHandle, IFSDIO_OUT1_8, Value );

// OUT1~OUT16 の 16 点の出力を変化させます。

nRet = SdioOutputWord( hDeviceHandle, IFSDIO_OUT1_16, Value );

// OUT1~OUT32 の 32 点の出力を変化させます。

nRet = SdioOutputDword( hDeviceHandle, IFSDIO_OUT1_32, Value );

上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の出力状態を変化させますが、以下のように、

出力する範囲を指定することも出来ます。

// OUT5~OUT7 の 3 点の出力を変化させます。

nRet = SdioOutputPoint( hDeviceHandle, &nBuffer[0], 5, 3 );

配列 nBuffer は、3つ以上の要素が用意され、あらかじめ nBuffer[0]~[2]へ、 OUT3~5 へ出力さ

せる値がセットされていなければなりません。

Page 15: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

15

5.STB入力時のデータを取り込む

1) STB 入力によるラッチ機能を有効にします。

// STB の立下りエッジでデータをラッチする。

nRet = SdioSetLatchLogic( hDeviceHandle, IFSDIO_FALL_EDGE );

2) STB 入力割り込み時の動作を登録します。

// コールバック関数 CallBackProc を登録

nRet = SdioSetEvent(hDeviceHandle, NULL, 0, NULL, CallBackProc, 0);

上記はコールバックを用いた例です。

SdioSetEvent 関数では、以下の 3 種類の同期処理を登録させることが出来ます。

・コールバック

GPC-4161 が持つコールバック機能を用いて同期させる方法です。

STB 入力時に、SdioSetEvent 関数で指定したコールバック関数が呼び出されます。

コールバック関数の仕様は、CallBackProc を参照してください。

・イベント

Windows のイベントを用いて同期させる方法です。

Windows のイベント機能については、Windows の技術資料などを参照してください。

・メッセージ

Windows のメッセージ 機能を用いて同期させる方法です。

Windows のメッセージ機能については、Windows の技術資料などを参照してください。

3) STB 入力時の割り込みを有効にします。

// STB の立下りエッジで割り込みを発生させる

nRet = SdioSetEventLogic( hDeviceHandle, IFSDIO_FALL_EDGE );

4) CallBackProc 関数の中で、STB 入力によってラッチされた接点状態を読み出します。

// IN1~IN8 の 8 点の接点状態を入力します。

nRet = SdioInputLatchByte( hDeviceHandle, IFSDIO_IN1_8, &Value );

// IN1~IN16 の 16 点の接点状態を入力します。

nRet = SdioInputLatchWord( hDeviceHandle, IFSDIO_IN1_16, &Value );

// IN1~IN32 の 32 点の接点状態を入力します。

nRet = SdioInputLatchDword( hDeviceHandle, IFSDIO_IN1_32, &Value );

上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の接点状態を入力しますが、以下のように、

入力する接点の範囲を指定して入力することも出来ます。

// IN5~IN7 の 3 点の接点状態を入力します。

nRet = SdioInputLatchPoint( hDeviceHandle, &nBuffer[0], 5, 3 );

配列 nBuffer は、3つ以上の要素が用意されていなければなりません。

Page 16: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

16

6.終了方法

1) STB 入力割り込み処理を登録している場合、割り込みを無効にしてから、登録している処理を解

除します。

// STB 入力割り込みを解除

nRet = SdioSetEventLogic( hDeviceHandle, 0);

// STB 入力割り込み時の処理を解除

nRet = SdioSetEvent(hDeviceHandle, NULL, 0, NULL, NULL, 0);

2) SdioOpen 関数で得たデバイスハンドルを用いてデバイスをクローズします。

nRet = SdioClose( hDeviceHandle );

Page 17: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

17

第4章 リファレンス(拡張機能、通信モジュール)

本章では、標準 COM ポート拡張機能の制御、通信モジュールの状態取得/電源制御を行うために使

用する Win32API の DeviceIoControl の制御コードについて解説します。

※GPC-4161 のシリアル通信部は、Win32API を使用して制御します。通常の標準 COM ポートの機能

をご利用の際は、Microsoft 社提供のリファレンスをご参照ください。

4.1 制御コード一覧 ※下記製品には対応しておりません、ご注意下さい。

PCI-466111U, PCI-466110U, PCI-466101U

No 制御コード 機能

●初期化関数

1 IOCTL_COMEX_GET_HS_FUNCTION 標準COM ポート拡張機能(外部クロック、半二重制御等)の設

定を取得します。

2 IOCTL_COMEX_SET_HS_FUNCTION 標準COM ポート拡張機能(外部クロック、半二重制御等)の設

定を行います。

●各種設定関数

3 IOCTL_COMEX_GET_TMODULE_STATUS 通信モジュールの電源/接続状態を取得します。

4 IOCTL_COMEX_SET_TMODULE_POWER 通信モジュールの電源制御を行います。

Page 18: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

18

4.2 制御コード個別説明 1. IOCTL_COMEX_GET_HS_FUNCTION 【機能】

現在の外部クロック設定、半二重制御時のホールドタイム/セットアップタイム設定、RS-485

半二重制御時での T/C 設定を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

BOOL DeviceIoControl

HANDLE Device,

DWORD IoControlCode,

LPVOID InBuffer,

DWORD InBufferSize,

LPVOID OutBuffer,

DWORD OutBufferSize,

LPDWORD BytesReturned,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl"( _

ByVal hDevice As Long, _

ByVal dwIoControlCode As Long, _

lpInBuffer As Any, _

ByVal nInBufferSize As Long, _

lpOutBuffer As Any, _

ByVal nOutBufferSize As Long, _

lpBytesReturned As Long, _

ByVal lpOverlapped As Long _

)As Long

●Delphi

function DeviceIoControl(

Device: THandle;

IoControlCode: DWORD;

InBuffer: Pointer;

InBufferSize: DWORD;

OutBuffer: Pointer;

OutBufferSize: DWORD;

var BytesReturned: DWORD;

Overlapped: POverlapped

):BOOL; stdcall;

Page 19: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

19

●Visual C# .NET(x86、x64 共用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

IntPtr Device,

uint IoControlCode,

IntPtr InBuffer,

uint InBufferSize,

out COMMHSFUNC OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

IntPtr Device,

uint IoControlCode,

IntPtr InBuffer,

uint InBufferSize,

out byte OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual C# .NET(x86 専用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

uint Device,

uint IoControlCode,

IntPtr InBuffer,

uint InBufferSize,

out COMMHSFUNC OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

Page 20: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

20

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

uint Device,

uint IoControlCode,

IntPtr InBuffer,

uint InBufferSize,

out byte OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual Basic .NET(x86、x64 共用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByVal IoControlCode As Integer, _

ByVal InBuffer As IntPtr, _

ByVal InBufferSize As Integer, _

ByRef OutBuffer As COMMHSFUNC, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByVal IoControlCode As Integer, _

ByVal InBuffer As IntPtr, _

ByVal InBufferSize As Integer, _

ByRef OutBuffer As Byte, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByVal IoControlCode As Integer, _

ByVal InBuffer As IntPtr, _

ByVal InBufferSize As Integer, _

ByRef OutBuffer As COMMHSFUNC, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

Page 21: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

21

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByVal IoControlCode As Integer, _

ByVal InBuffer As IntPtr, _

ByVal InBufferSize As Integer, _

ByRef OutBuffer As Byte, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

【パラメータ】

Device Win32API の CreateFile で取得したデバイスハンドルを指定してください。

IoControlCode 動作を表す制御コードを指定します。

ここに IOCTL_COMEX_GET_HS_FUNCTION を指定してください。

InBuffer 入力バッファを指定します。ここでは NULL を指定してください。

InBufferSize 入力バッファのバイトサイズを指定します。ここでは 0 を指定してください。

Page 22: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

22

OutBuffer 出力バッファへの参照渡しを指定します。用途に合わせて、下記のように変数を指定して

ください。

外部クロック設定、半二重

制御時のホールドタイム/

セットアップタイム設定を

取得する場合

COMMHSFUNC 構造体への参照渡しを指定します。

T/C 設定格納変数(8 ビット符号無し整数型)への参照渡しを指定しま

す。変数には下記の C信号の定数と T信号の定数を 1つずつ足した値が

返されます。

信号 定数 内容 COMEX_HS_C_INVALID C 信号を常に無効を設定。

COMEX_HS_C_TXE 送信有効信号(TXE)が'1'の時 C

信号有効。

TXE が'0'の時 C信号無効。

COMEX_HS_C_NOT_TXE 送信有効信号(TXE)が'1'の時 C

信号無効。

送信有効信号(TXE)が'0'の時 C

信号有効。

C 信号

COMEX_HS_C_VALID C 信号を常に有効に設定。

COMEX_HS_T_TXE 送信有効信号(TXE)が'1'の時 T

信号有効。

送信有効信号(TXE)が'0'の時 T

信号無効。

RS-485 半二重制御時での

T/C 信号設定を取得する場

T信号

COMEX_HS_T_VALID T 信号を常に有効に設定。

OutBufferSize 出力バッファのサイズを指定します。用途に合わせて、下記のようにサイズを指定してく

ださい。 外部クロック設定、半二重制御時のホールドタイ

ム/セットアップタイム設定を取得する場合

COMMHSFUNC 構造体のサイズを指定します。

RS-485 半二重制御時での T/C 信号設定を取得する

場合

8 ビット符号無し整数型のバイトサイズを指定しま

す。

BytesReturned OutBuffer が指すバッファへ格納されるデータのサイズ(バイト)を格納する変数への参照

渡しを指定します。

Overlapped OVERLAPPED 構造体を指定します。ここでは NULL を指定してください。

【戻り値】

本関数が正常に終了した場合には、0以外の値が返されます。

失敗した場合には、0が返されます。

Page 23: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

23

【使用例】

<現在の外部クロック設定、半二重制御時のホールドタイム/セットアップタイム設定取得>

●C言語

COMMHSFUNC HsFunc; // 拡張構造体

DWORD cbReturns; // バイト数を受け取るバッファ

BOOL Ret; // 関数戻り値

// COMMHSFUNC 構造体の値を取得

Ret = DeviceIoControl(

hPort,

IOCTL_COMEX_GET_HS_FUNCTION,

NULL,

0,

&HsFunc,

sizeof(COMMHSFUNC),

&cbReturns,

NULL

);

●Visual Basic

Dim HsFunc As COMMHSFUNC ' 拡張構造体

Dim cbReturns As Long ' バイト数を受け取るバッファ

Dim Ret As Boolean ' 関数戻り値

' 拡張機能の取得<

Ret = DeviceIoControl( _

hPort, _

IOCTL_COMEX_GET_HS_FUNCTION, _

0, _

0, _

HsFunc, _

Len(HsFunc), _

cbReturns, _

0 _

)

Page 24: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

24

●Delphi

var

HsFunc : COMMHSFUNC; // 拡張構造体

cbReturns: DWORD; // バイト数を受け取るバッファ

Ret : Boolean; // 関数戻り値

begin

// 拡張機能の取得

Ret := DeviceIoControl(

hPort,

IOCTL_COMEX_GET_HS_FUNCTION,

Nil,

0,

@HsFunc,

SizeOf(COMMHSFUNC),

cbReturns,

Nil

);

end;

●Visual C# .NET

IFCCOMEX_ANY.COMMHSFUNC HsFunc = new IFCCOMEX_ANY.COMMHSFUNC();

IntPtr DeviceHandle;

uint Ret;

uint BytesReturned;

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle,

IFCCOMEX.IOCTL_COMEX_GET_HS_FUNCTION, IntPtr.Zero, 0, out HsFunc,

System.Runtime.InteropServices.Marshal.SizeOf(HsFunc),

out BytesReturned, IntPtr.Zero);

●Visual Basic .NET

Dim HsFunc As IFCCOMEX_ANY.COMMHSFUNC = New IFCCOMEX_ANY.COMMHSFUNC()

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim BytesReturned As Integer

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle, _

IFCCOMEX_ANY.IOCTL_COMEX_GET_HS_FUNCTION, IntPtr.Zero, 0, HsFunc, _

System.Runtime.InteropServices.Marshal.Sizeof(HsFunc), _

BytesReturned, IntPtr.Zero)

現在の COMMHSFUNC 構造体の設定値を取得します。

Page 25: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

25

<RS-485 半二重制御時での T/C 設定取得>

●C言語

COMMHSFUNC HsFunc; // 拡張構造体

DWORD cbReturns; // バイト数を受け取るバッファ

BOOL Ret; // 関数戻り値

UCHAR SigData; // T/C 信号の取得値

Ret = DeviceIoControl(

hPort,

IOCTL_COMEX_GET_HS_FUNCTION,

NULL,

0,

&SigData,

sizeof(UCHAR),

&cbReturns,

NULL

);

●Visual Basic

Dim HsFunc As COMMHSFUNC ' 拡張構造体

Dim cbReturns As Long ' バイト数を受け取るバッファ

Dim Ret As Boolean ' 関数戻り値

Dim SigData As Byte ' T/C 信号の取得値

' 拡張機能の取得

Ret = DeviceIoControl( _

hPort, _

IOCTL_COMEX_GET_HS_FUNCTION, _

0, _

0, _

SigData, _

Len(SigData), _

cbReturns, _

0 _

)

Page 26: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

26

●Delphi

var

HsFunc : COMMHSFUNC; // 拡張構造体

cbReturns: DWORD; // バイト数を受け取るバッファ

Ret : Boolean; // 関数戻り値

UCHAR : SigData; // T/C 信号の取得値

begin

// 拡張機能の取得

Ret := DeviceIoControl(

hPort,

IOCTL_COMEX_GET_HS_FUNCTION,

Nil,

0,

@SigData,

SizeOf(UCHAR),

cbReturns,

Nil

);

end;

●Visual C# .NET

byte SigData = 0;

IntPtr DeviceHandle;

uint Ret;

uint BytesReturned;

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle,

IFCCOMEX_ANY.IOCTL_COMEX_GET_HS_FUNCTION,

IntPtr.Zero, 0, out SigData,

System.Runtime.InteropServices.Marshal.SizeOf(SigData),

out BytesReturned, IntPtr.Zero);

●Visual Basic .NET

Dim SigData As Byte = 0

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim BytesReturned As Integer

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle, _

IFCCOMEX_ANY.IOCTL_COMEX_GET_HS_FUNCTION, IntPtr.Zero, 0, SigData, _

System.Runtime.InteropServices.Marshal.Sizeof(SigData), _

BytesReturned, IntPtr.Zero)

RS-485 半二重制御時での T/C 設定を取得します。

Page 27: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

27

2. IOCTL_COMEX_SET_HS_FUNCTION 【機能】

外部クロック設定、半二重制御時のホールドタイム/セットアップタイム設定、RS-485 半二重

制御時での T/C 設定を設定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

BOOL DeviceIoControl

HANDLE Device,

DWORD IoControlCode,

LPVOID InBuffer,

DWORD InBufferSize,

LPVOID OutBuffer,

DWORD OutBufferSize,

LPDWORD BytesReturned,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl"( _

ByVal hDevice As Long, _

ByVal dwIoControlCode As Long, _

lpInBuffer As Any, _

ByVal nInBufferSize As Long, _

lpOutBuffer As Any, _

ByVal nOutBufferSize As Long, _

lpBytesReturned As Long, _

ByVal lpOverlapped As Long _

)As Long

●Delphi

function DeviceIoControl(

Device: THandle;

IoControlCode: DWORD;

InBuffer: Pointer;

InBufferSize: DWORD;

OutBuffer: Pointer;

OutBufferSize: DWORD;

var BytesReturned: DWORD;

Overlapped: POverlapped

):BOOL; stdcall;

Page 28: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

28

●Visual C# .NET(x86、x64 共用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

IntPtr Device,

uint IoControlCode,

ref COMMHSFUNC InBuffer,

uint InBufferSize,

IntPtr OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

IntPtr Device,

uint IoControlCode,

ref byte InBuffer,

uint InBufferSize,

IntPtr OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual C# .NET(x86 専用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

uint Device,

uint IoControlCode,

ref COMMHSFUNC InBuffer,

uint InBufferSize,

IntPtr OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

Page 29: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

29

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

uint Device,

uint IoControlCode,

ref byte InBuffer,

uint InBufferSize,

IntPtr OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual Basic .NET(x86、x64 共用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByVal IoControlCode As Integer, _

ByRef InBuffer As COMMHSFUNC, _

ByVal InBufferSize As Integer, _

ByVal OutBuffer As IntPtr, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByVal IoControlCode As Integer, _

ByRef InBuffer As Byte, _

ByVal InBufferSize As Integer, _

ByVal OutBuffer As IntPtr, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByVal IoControlCode As Integer, _

ByRef InBuffer As COMMHSFUNC, _

ByVal InBufferSize As Integer, _

ByVal OutBuffer As IntPtr, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

Page 30: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

30

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByVal IoControlCode As Integer, _

ByRef InBuffer As Byte, _

ByVal InBufferSize As Integer, _

ByVal OutBuffer As IntPtr, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

【パラメータ】

Device Win32API の CreateFile で取得したデバイスハンドルを指定してください。

IoControlCode 動作を表す制御コードを指定します。

ここに IOCTL_COMEX_SET_HS_FUNCTION を指定してください。

InBuffer 入力バッファを指定します。用途に合わせて、下記のように変数を指定してください。 外部クロック設定、半二重制御

時のホールドタイム/セットア

ップタイム設定を行う場合

COMMHSFUNC 構造体への参照渡しを指定します。

T/C 設定格納変数(8 ビット符号無し整数型)への参照渡しを指定しま

す。変数には下記の C信号の定数と T信号の定数を 1つずつ足した値を

設定してください。

信号 定数 内容

COMEX_HS_C_INVALID C 信号を常に無効を設定。

COMEX_HS_C_TXE 送信有効信号(TXE)が'1'の時 C

信号有効。

送信有効信号(TXE)が'0'の時 C

信号無効。

COMEX_HS_C_NOT_TXE 送信有効信号(TXE)が'1'の時 C

信号無効。

送信有効信号(TXE)が'0'の時 C

信号有効。

C 信号

COMEX_HS_C_VALID C 信号を常に有効に設定。

COMEX_HS_T_TXE 送信有効信号(TXE)が'1'の時 T

信号有効。

送信有効信号(TXE)が'0'の時 T

信号無効。

RS-485半二重制御時でのT/C信

号設定を行う場合

T 信号

COMEX_HS_T_VALID T 信号を常に有効に設定。

Page 31: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

31

InBufferSize 入力バッファのバイトサイズを指定します。用途に合わせて、下記のようにサイズを指定

してください。 外部クロック設定、半二重制御時のホールドタイ

ム/セットアップタイム設定を行う場合

COMMHSFUNC 構造体のサイズを指定します。

RS-485 半二重制御時での T/C 信号設定を行う場合 8 ビット符号無し整数型のバイトサイズを指定しま

す。

OutBuffer 出力バッファへの参照渡しを指定します。ここでは NULL を指定してください。

OutBufferSize 出力バッファのサイズを指定します。ここでは 0 を指定してください。

BytesReturned OutBuffer が指すバッファへ格納されるデータのサイズ(バイト)を格納する変数への参照

渡しを指定します。

Overlapped OVERLAPPED 構造体を指定します。ここでは NULL を指定してください。

【戻り値】

本関数が正常に終了した場合には、0以外の値が返されます。

失敗した場合には、0が返されます。

【使用例】

<現在の外部クロック設定、半二重制御時のホールドタイム/セットアップタイム設定>

●C言語

COMMHSFUNC HsFunc; // 拡張構造体

DWORD cbReturns; // バイト数を受け取るバッファ

BOOL Ret; // 関数戻り値

// 値の設定

HsFunc.dwTxCSelect = COMEX_HS_TXC_EXTERNAL;

HsFunc.dwRxCSelect = COMEX_HS_RXC_EXTERNAL;

HsFunc.dwSetupTime = 10000;

HsFunc.dwHoldTime = 15000;

// 拡張機能の設定

Ret = DeviceIoControl(

hPort,

IOCTL_COMEX_SET_HS_FUNCTION,

&HsFunc, sizeof(COMMHSFUNC),

NULL, 0,

&cbReturns, NULL

);

Page 32: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

32

●Visual Basic

Dim HsFunc As COMMHSFUNC ' 拡張構造体

Dim cbReturns As Long ' バイト数を受け取るバッファ

Dim Ret As Boolean ' 関数戻り値

' 値の設定

HsFunc.dwTxCSelect = COMEX_HS_TXC_EXTERNAL

HsFunc.dwRxCSelect = COMEX_HS_RXC_EXTERNAL

HsFunc.dwSetupTime = 10000

HsFunc.dwHoldTime = 15000

' 拡張機能の設定

Ret = DeviceIoControl( _

hPort, _

IOCTL_COMEX_SET_HS_FUNCTION, _

HsFunc, Len(HsFunc), _

0, _

0, _

cbReturns, _

0 _

)

●Delphi

var

HsFunc : COMMHSFUNC; // 拡張構造体

cbReturns: DWORD; // バイト数を受け取るバッファ

Ret : Boolean; // 関数戻り値

begin

// 値の設定

HsFunc.dwTxCSelect := COMEX_HS_TXC_EXTERNAL;

HsFunc.dwRxCSelect := COMEX_HS_RXC_EXTERNAL;

HsFunc.dwSetupTime := 10000;

HsFunc.dwHoldTime := 15000;

// 拡張機能の設定

Ret := DeviceIoControl(

hPort,

IOCTL_COMEX_SET_HS_FUNCTION,

@HsFunc, SizeOf(COMMHSFUNC),

Nil,

0,

cbReturns,

Nil

);

end;

Page 33: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

33

Page 34: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

34

●Visual C# .NET

IFCCOMEX_ANY.COMMHSFUNC HsFunc = new IFCCOMEX_ANY.COMMHSFUNC();

IntPtr DeviceHandle;

uint Ret;

uint BytesReturned;

HsFunc.TxCSelect = IFCCOMEX_ANY.COMEX_HS_TXC_EXTERNAL;

HsFunc.RxCSelect = IFCCOMEX_ANY.COMEX_HS_RXC_EXTERNAL;

HsFunc.SetupTime = 10000;

HsFunc.HoldTime = 15000;

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle,

IFCCOMEX_ANY.IOCTL_COMEX_SET_HS_FUNCTION,

ref HsFunc, System.Runtime.InteropServices.Marshal.SizeOf(HsFunc),

IntPtr.Zero, 0, out BytesReturned, IntPtr.Zero);

●Visual Basic .NET

Dim HsFunc As IFCCOMEX_ANY.COMMHSFUNC = New IFCCOMEX_ANY.COMMHSFUNC()

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim BytesReturned As Integer

HsFunc.TxCSelect = IFCCOMEX_ANY.COMEX_HS_TXC_EXTERNAL

HsFunc.RxCSelect = IFCCOMEX_ANY.COMEX_HS_RXC_EXTERNAL

HsFunc.SetupTime = 10000

HsFunc.HoldTime = 15000

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle, _

IFCCOMEX_ANY.IOCTL_COMEX_GET_HS_FUNCTION, _

HsFunc, System.Runtime.InteropServices.Marshal.Sizeof(HsFunc), _

IntPtr.Zero, 0, BytesReturned, IntPtr.Zero)

COMMHSFUNC 構造体を設定します。

Page 35: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

35

<RS-485 半二重制御時での T/C 設定>

●C言語

DWORD cbReturns; // バイト数を受け取るバッファ

BOOL Ret; // 関数戻り値

UCHAR SigData; // T/C 信号の設定値

// T/C 信号の設定

SigData = COMEX_HS_T_VALID | COMEX_HS_C_VALID;

Ret = DeviceIoControl(

hPort,

IOCTL_COMEX_SET_HS_FUNCTION,

&SigData,

sizeof(UCHAR),

NULL,

0,

&cbReturns,

NULL

);

●Visual Basic

Dim HsFunc As COMMHSFUNC ' 拡張構造体

Dim cbReturns As Long ' バイト数を受け取るバッファ

Dim Ret As Boolean ' 関数戻り値

Dim SigData As Byte ' T/C 信号の設定値

' 値の設定

SigData = COMEX_HS_T_VALID | COMEX_HS_C_VALID

' 拡張機能の設定

Ret = DeviceIoControl( _

hPort, _

IOCTL_COMEX_SET_HS_FUNCTION, _

SigData, _

Len(SigData), _

0, _

0, _

cbReturns, _

0 _

)

Page 36: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

36

●Delphi

var

HsFunc : COMMHSFUNC; // 拡張構造体

cbReturns: DWORD; // バイト数を受け取るバッファ

Ret : Boolean; // 関数戻り値

UCHAR : SigData; // T/C 信号の設定値

begin

// 値の設定

SigData := COMEX_HS_T_VALID | COMEX_HS_C_VALID;

// 拡張機能の設定

Ret := DeviceIoControl(

hPort,

IOCTL_COMEX_SET_HS_FUNCTION,

@SigData,

SizeOf(UCHAR),

Nil,

0,

cbReturns,

Nil

);

end;

●Visual C# .NET

byte SigData = 0;

IntPtr DeviceHandle;

uint Ret;

uint BytesReturned;

SigData = IFCCOMEX_ANY.COMEX_HS_T_VALID + IFCCOMEX_ANY.COMEX_HS_C_VALID;

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle,

IFCCOMEX_ANY.IOCTL_COMEX_GET_HS_FUNCTION,

ref SigData, System.Runtime.InteropServices.Marshal.SizeOf(SigData),

IntPtr.Zero, 0, out BytesReturned, IntPtr.Zero);

Page 37: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

37

●Visual Basic .NET

Dim SigData As Byte = 0

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim BytesReturned As Integer

SigData = IFCCOMEX_ANY.COMEX_HS_T_VALID + IFCCOMEX_ANY.COMEX_HS_C_VALID

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle, _

IFCCOMEX_ANY.IOCTL_COMEX_GET_HS_FUNCTION, _

SigData, System.Runtime.InteropServices.Marshal.Sizeof(SigData), _

IntPtr.Zero, 0, BytesReturned, IntPtr.Zero)

現在の RS-485 半二重通信時での T/C 設定値を取得します。

Page 38: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

38

3. IOCTL_COMEX_GET_TMODULE_STATUS 【機能】

通信モジュールのケーブル接続状態/電源状態を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

BOOL DeviceIoControl

HANDLE Device,

DWORD IoControlCode,

LPVOID InBuffer,

DWORD InBufferSize,

LPVOID OutBuffer,

DWORD OutBufferSize,

LPDWORD BytesReturned,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl"( _

ByVal hDevice As Long, _

ByVal dwIoControlCode As Long, _

lpInBuffer As Any, _

ByVal nInBufferSize As Long, _

lpOutBuffer As Any, _

ByVal nOutBufferSize As Long, _

lpBytesReturned As Long, _

ByVal lpOverlapped As Long _

)As Long

●Delphi

function DeviceIoControl(

Device: THandle;

IoControlCode: DWORD;

InBuffer: Pointer;

InBufferSize: DWORD;

OutBuffer: Pointer;

OutBufferSize: DWORD;

var BytesReturned: DWORD;

Overlapped: POverlapped

):BOOL; stdcall;

Page 39: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

39

●Visual C# .NET(x86、x64 共用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

IntPtr Device,

uint IoControlCode,

IntPtr InBuffer,

uint InBufferSize,

out byte OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual C# .NET(x86 専用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

uint Device,

uint IoControlCode,

IntPtr InBuffer,

uint InBufferSize,

out byte OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual Basic .NET(x86、x64 共用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByVal IoControlCode As Integer, _

ByVal InBuffer As IntPtr, _

ByVal InBufferSize As Integer, _

ByRef OutBuffer As Byte, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

Page 40: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

40

●Visual Basic .NET(x86 専用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByVal IoControlCode As Integer, _

ByVal InBuffer As IntPtr, _

ByVal InBufferSize As Integer, _

ByRef OutBuffer As Byte, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

【パラメータ】

Device Win32API の CreateFile で取得したデバイスハンドルを指定してください。

IoControlCode 動作を表す制御コードを指定します。

ここに IOCTL_COMEX_GET_TMODULE_STATUS を指定してください。

InBuffer 入力バッファを指定します。ここでは NULL を指定してください。

InBufferSize 入力バッファのバイトサイズを指定します。ここでは 0 を指定してください。

OutBuffer 出力バッファへの参照渡しを指定します。

通信モジュール状態格納変数(8 ビット符号無し整数型)への参照渡しを指定します。

変数の各ビットは下記の意味を持ちます。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 予約 予約 電源履歴 接続履歴 電源状態 接続状態

電源履歴、接続履歴 1:過去に NG 発生、0:NG 発生なし

電源状態、接続状態 1:OK、0:NG

OutBufferSize 出力バッファのサイズを指定します。

8 ビット符号無し整数型のバイトサイズを指定します。

BytesReturned OutBuffer が指すバッファへ格納されるデータのサイズ(バイト)を格納する変数への参照

渡しを指定します。

Overlapped OVERLAPPED 構造体を指定します。ここでは NULL を指定してください。

Page 41: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

41

【戻り値】

本関数が正常に終了した場合には、0以外の値が返されます。

失敗した場合には、0が返されます。

【使用例】

●C言語

UCHAR GetStatus; // 引数

DWORD cbReturns; // バイト数を受け取るバッファ

BOOL Ret; // 関数戻り値

// 状態を取得

Ret = DeviceIoControl(

hPort,

IOCTL_COMEX_GET_TMODULE_STATUS,

NULL,

0,

&GetStatus,

sizeof(UCHAR),

&cbReturns,

NULL

);

●Visual Basic

Dim HsFunc As COMMHSFUNC ' 拡張構造体

Dim cbReturns As Long ' バイト数を受け取るバッファ

Dim Ret As Boolean ' 関数戻り値

Dim GetStatus As Byte ' 引数

' 拡張機能の取得

Ret = DeviceIoControl( _

hPort, _

IOCTL_COMEX_GET_TMODULE_STATUS, _

0, _

0, _

GetStatus, _

Len(GetStatus), _

cbReturns, _

0 _

)

Page 42: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

42

●Delphi

var

HsFunc : COMMHSFUNC; // 拡張構造体

cbReturns: DWORD; // バイト数を受け取るバッファ

Ret : Boolean; // 関数戻り値

UCHAR : GetStatus; // 引数

begin

// 拡張機能の取得

Ret := DeviceIoControl(

hPort,

IOCTL_COMEX_GET_TMODULE_STATUS,

Nil,

0,

@GetStatus,

SizeOf(UCHAR),

cbReturns,

Nil

);

end;

●Visual C# .NET

byte GetStatus = 0;

IntPtr DeviceHandle;

uint Ret;

uint BytesReturned;

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle,

IFCCOMEX_ANY.IOCTL_COMEX_GET_TMODULE_POWER,

IntPtr.Zero, 0, out GetStatus,

System.Runtime.InteropServices.Marshal.SizeOf(GetStatus),

out BytesReturned, IntPtr.Zero);

●Visual Basic .NET

Dim SigData As Byte = 0

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim BytesReturned As Integer

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle, _

IFCCOMEX_ANY.IOCTL_COMEX_GET_HS_FUNCTION, _

IntPtr.Zero, 0, SigData, _

System.Runtime.InteropServices.Marshal.Sizeof(SigData), _

BytesReturned, IntPtr.Zero)

通信モジュールの状態を取得します。

Page 43: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

43

Page 44: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

44

4. IOCTL_COMEX_SET_TMODULE_POWER 【機能】

通信モジュールの電源を制御します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

BOOL DeviceIoControl

HANDLE Device,

DWORD IoControlCode,

LPVOID InBuffer,

DWORD InBufferSize,

LPVOID OutBuffer,

DWORD OutBufferSize,

LPDWORD BytesReturned,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl"( _

ByVal hDevice As Long, _

ByVal dwIoControlCode As Long, _

lpInBuffer As Any, _

ByVal nInBufferSize As Long, _

lpOutBuffer As Any, _

ByVal nOutBufferSize As Long, _

lpBytesReturned As Long, _

ByVal lpOverlapped As Long _

)As Long

●Delphi

function DeviceIoControl(

Device: THandle;

IoControlCode: DWORD;

InBuffer: Pointer;

InBufferSize: DWORD;

OutBuffer: Pointer;

OutBufferSize: DWORD;

var BytesReturned: DWORD;

Overlapped: POverlapped

):BOOL; stdcall;

Page 45: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

45

●Visual C# .NET(x86、x64 共用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

IntPtr Device,

uint IoControlCode,

ref byte InBuffer,

uint InBufferSize,

IntPtr OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual C# .NET(x86 専用)

[DllImport(“Kernel32.dll”)] public static extern uint DeviceIoControl(

uint Device,

uint IoControlCode,

ref byte InBuffer,

uint InBufferSize,

IntPtr OutBuffer,

uint OutBufferSize,

out uint BytesReturned,

IntPtr Overlapped

);

●Visual Basic .NET(x86、x64 共用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByVal IoControlCode As Integer, _

ByRef InBuffer As Byte, _

ByVal InBufferSize As Integer, _

ByVal OutBuffer As IntPtr, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

Page 46: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

46

●Visual Basic .NET(x86 専用)

Declare Function DeviceIoControl Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByVal IoControlCode As Integer, _

ByRef InBuffer As Byte, _

ByVal InBufferSize As Integer, _

ByVal OutBuffer As IntPtr, _

ByVal OutBufferSize As Integer, _

ByRef BytesReturned As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

【パラメータ】

Device Win32API の CreateFile で取得したデバイスハンドルを指定してください。

IoControlCode 動作を表す制御コードを指定します。

ここに IOCTL_COMEX_SET_TMODULE_POWER を指定してください。

InBuffer 入力バッファを指定します。

通信モジュール電源設定変数(8 ビット符号無し整数型)への参照渡しを指定します。

下記のいずれかの値を指定してください。

値 内容

COMEX_POWER_OFF 通信モジュール電源 OFF

COMEX_POWER_ON 通信モジュール電源 ON

InBufferSize 入力バッファのバイトサイズを指定します。

8 ビット符号無し整数型のバイトサイズを指定します。

OutBuffer 出力バッファへの参照渡しを指定します。ここでは NULL を指定してください。

OutBufferSize 出力バッファのサイズを指定します。ここでは 0 を指定してください。

BytesReturned OutBuffer が指すバッファへ格納されるデータのサイズ(バイト)を格納する変数への参照

渡しを指定します。

Overlapped OVERLAPPED 構造体を指定します。ここでは NULL を指定してください。

Page 47: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

47

【戻り値】

本関数が正常に終了した場合には、0以外の値が返されます。

失敗した場合には、0が返されます。

【使用例】

●C言語

UCHAR SetPower; // 引数

DWORD cbReturns; // バイト数を受け取るバッファ

BOOL Ret; // 関数戻り値

// 電源を入れる

SetPower = 1;

Ret = DeviceIoControl(

hPort,

IOCTL_COMEX_SET_TMODULE_POWER,

&SetPower,

sizeof(UCHAR),

NULL,

0,

&cbReturns,

NULL

);

●Visual Basic

Dim HsFunc As COMMHSFUNC ' 拡張構造体

Dim cbReturns As Long ' バイト数を受け取るバッファ

Dim Ret As Boolean ' 関数戻り値

Dim SetPower As Byte ' 引数

' 値の設定

SetPower = 1

' 拡張機能の設定

Ret = DeviceIoControl( _

hPort, _

IOCTL_COMEX_SET_TMODULE_POWER, _

SetPower, _

Len(SetPower), _

0, _

0, _

cbReturns, _

0 _

)

Page 48: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

48

●Delphi

var

HsFunc : COMMHSFUNC; // 拡張構造体

cbReturns: DWORD; // バイト数を受け取るバッファ

Ret : Boolean; // 関数戻り値

UCHAR : SetPower; // 引数

begin

// 値の設定

SetPower:= 1;

// 拡張機能の設定

Ret := DeviceIoControl(

hPort,

IOCTL_COMEX_SET_TMODULE_POWER,

@SetPower, SizeOf(UCHAR),

Nil, 0,

cbReturns, Nil

);

end;

●Visual C# .NET

byte SetPower = 0;

IntPtr DeviceHandle;

uint Ret;

uint BytesReturned;

SetPower = IFCCOMEX_ANY.COMEX_POWER_ON;

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle,

IFCCOMEX_ANY.IOCTL_COMEX_SET_TMODULE_POWER,

ref SetPower, System.Runtime.InteropServices.Marshal.SizeOf(SetPower),

IntPtr.Zero, 0, out BytesReturned, IntPtr.Zero);

●Visual Basic .NET

Dim SetPower As Byte = 0

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim BytesReturned As Integer

SetPower = IFCCOMEX_ANY.COMEX_POWER_ON

SigData = IFCCOMEX_ANY.COMEX_HS_T_VALID + IFCCOMEX_ANY.COMEX_HS_C_VALID

Ret = IFCCOMEX_ANY.DeviceIoControl(DeviceHandle, _

IFCCOMEX_ANY.IOCTL_COMEX_SET_TMODULE_POWER, _

SetPower, System.Runtime.InteropServices.Marshal.Sizeof(SetPower), _

IntPtr.Zero, 0, BytesReturned, IntPtr.Zero)

通信モジュールの電源を ON に設定します。

Page 49: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

49

4.3 構造体説明 4.3.1 COMMHSFUNC 構造体

●C言語

typedef struct {

DWORD DwTxCSelect;

DWORD DwRxCSelect;

DWORD DwHoldTime;

DWORD DwSetupTime;

DWORD dwMode;

} COMMHSFUNC, *PCOMMHSFUNC;

●Visual Basic

Type COMMHSFUNC

DwTxCSelect As Long

DwRxCSelect As Long

DwHoldTime As Long

dwSetupTime As Long

dwMode As Long

End Type

●Delphi

COMMHSFUNC = record

dwTxCSelect: DWORD;

dwRxCSelect: DWORD;

dwHoldTime: DWORD;

dwSetupTime: DWORD;

dwMode: DWORD;

end;

●Visual C# .NET [StructLayout(LayoutKind.Sequential)] public struct COMMHSFUNC { public uint TxCSelect; public uint RxCSelect; public uint HoldTime; public uint SetupTime; public uint Mode; }

Page 50: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

50

●Visual Basic .NET

<StructLayout(LayoutKind.Sequential)> Structure COMMHSFUNC Dim TxCSelect As Integer Dim RxCSelect As Integer Dim HoldTime As Integer Dim SetupTime As Integer Dim Mode As Integer End Structure

メンバ 説明

送信に関して内部クロック/外部クロックの選択を行います。

COMEX_HS_TXC_INTERNAL 送信に内部クロックを使用

COMEX_HS_TXC_EXTERNAL 送信に外部クロックを使用

dwTxCSelect

※外部クロックを使用できるのは PCI-4161 のみです。

受信に関して内部クロック/外部クロックの選択を行います。

COMEX_HS_RXC_INTERNAL 受信に内部クロックを使用

COMEX_HS_RXC_EXTERNAL 受信に外部クロックを使用

dwRxCSelect

※外部クロックを使用できるのは PCI-4161 のみです。

Page 51: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

51

ホールドタイムは型式によって意味合いが違いますので注意してください。

PCI-4161,CBI-4641,CBI-466120WA・・・半二重制御を行う際に、データを出し終

えてから送信要求信号(RS)を無効にするまでの時間(ホールドタイム(下記、図の

H))を設定します。単位はμsで、設定可能範囲は 1~1500000(1.5s)です。

その他型式・・・半二重制御を行う際に、送信データをインタフェースモジュー

ルから出し終えてから送信有効信号(TXE)または送信要求信号(RS)が無効になる

までの時間(ホールドタイム(下記、図の H))を設定します。単位はμs で、設

定可能範囲は 1~150000(150ms)です。

※1 以下の値が設定可能です。1~1500000 の範囲で、以下の値以外を指定した

場合は、切り上げが行われます。

例)1501 を指定した場合は、2000 に切り上げられます。

※2 PCI-4161,CBI シリーズは赤文字で書いてある値も設定できます。

1 10 100 1000 10000 100000

2 20 200 2000 20000 200000

3 30 300 3000 30000 300000

4 40 400 4000 40000 400000

5 50 500 5000 50000 500000

6 60 600 6000 60000 600000

7 70 700 7000 70000 700000

8 80 800 8000 80000 800000

9 90 900 9000 90000 900000

10 100 1000 10000 100000 1000000

11 110 1100 11000 110000 1100000

12 120 1200 12000 120000 1200000

13 130 1300 13000 130000 1300000

14 140 1400 14000 140000 1400000

dwHoldTime

15

150 1500 15000 150000 1500000

RS

CS

S H

送信データ

RS

S H

送信データ

Page 52: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

52

dwSetupTime セットアップタイムは型式によって意味合いが違いますので注意してください。

PCI-4161,CBI-4641,CBI-466120WA の場合・・・半二重制御を行う際に、送信可信

号(CS)が有効になってからデータを出し始めるまでの時間(セットアップタイム

(下記、図の S))を設定します。単位はμsで、設定可能範囲は 1~1500000(1.5s)

です。

その他型式の場合・・・半二重制御を行う際に、送信有効信号(TXE)または送信

要求信号(RS)が有効になってからインタフェースモジュールが送信データを出

し始めるまでの時間(セットアップタイム(下記、図の S))を設定します。単位

はμsで、設定可能範囲は 1~150000(150ms)です。

※ DwHoldTime と同じ値が設定可能です。

※ CS(送信可信号)フロー制御を同時に行う際は注意事項の「セットアップタ

イムとCSハードフロー制御について」をお読みください。

ポートの各種設定を行います。

1. モニタモード設定(CBI-4641,CBI-466120,CSI-466120)

(モニタモード参照)

COMEX_HS_MONITOR_DISABLE モニタモードを無効にします。

COMEX_HS_MONITOR_RSCS モニタモード(RS/CS 接続)を有効にします。

dwMode

COMEX_HS_MONITOR_RSCD モニタモード(RS/CD 接続)を有効にします。

RS

データ

S H

RS

CS

データ

S H

Page 53: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

53

4.4 通信速度

4.4.1 GPC-4161 で設定できる通信速度

内部クロック使用時に以下の通信速度(bps)を設定できます。なおここに掲載してあるのは一部です。

※ただし RS-232C 製品の 大速度は 1Mbps です。

※下記製品は該当しません。

・PCI-466111U (「4.4.2 PCI-466111Uの場合」を参照してください)

・PCI-466110U, PCI-466101U (「4.4.3 PCI-466110U, PCI-466101Uの場合」を参照してください)

基準クロック

分周値 8.192MHz 12.288MHz 14.7456MHz 19.6608MHz 32MHz 49.152MHz 58.9824MHz

1 512000 768000 921600 1228800 2000000 × ×

2 256000 384000 460800 614400 1000000 1536000 1843200

4 128000 192000 230400 307200 500000 768000 921600

8 64000 96000 115200 153600 250000 384000 460800

16 32000 48000 57600 76800 125000 192000 230400

32 16000 24000 28800 38400 62500 96000 115200

64 8000 12000 14400 19200 31250 48000 57600

128 4000 6000 7200 9600 15625 24000 28800

使用したい通信速度が設定可能かどうかは以下の判別式で判断することができます。

Value = [基準クロック(Hz)]÷([通信速度(bps)]×16)

※Value が 1 以上 65535 以下の整数値ならば設定可能

Page 54: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

54

4.4.2 PCI-466111U の場合

RS-232C

RS-232C では下記の固定通信速度しか設定することはできません。

2400bps, 4800bps, 7200bps,9600bps, 14400bps, 19200bps, 28800bps, 38400bps,

56000bps, 57600bps, 115200bps, 128000bps,230400, 460800bps, 921600bps

RS-485

RS-485 では、300bps~2Mbps の範囲内で通信速度を設定することができます。

誤差 2%以内で設定可能な通信速度(bps)を下記に記載します。

なおここに掲載してあるのは一部です。

通信速度

2000000 1000000 921600 460800 230400 115200 57600

38400 19200 9600 4800 2400 1200 300

使用したい通信速度が設定可能かどうかは以下の判別式で判断することができます。

1.Clock Divider を算出します。

Clock Divider ≒ 48[MHz]÷(2×Prescalse×設定したい通信速度[bps])

※Prescalse は通信速度[bps]が 365 以下の場合は 4、365 より大きい場合には 1とします。

※Clock Divider は小数点以下切捨ての整数値とします。

2.「1.」の結果を使用し、設定される通信速度を算出します。

設定される通信速度=48[MHz]÷(2×Prescalse×Clock Divider)

※Prescalse は通信速度[bps]が 365 以下の場合は 4、365 より大きい場合には 1とします。

3.通信速度誤差[%]を下記の計算式で算出して、接続先機器の許容誤差以下であることを確認

してください。(許容誤差は一般的には±2%以内です)

通信速度誤差 = 100×(1-(設定される通信速度[bps]÷設定したい通信速度[bps]))±0.25%

Page 55: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

55

4.4.3 PCI-466110U, PCI-466101U の場合

PCI-466110U では、300bps~1Mbps の範囲内で、PCI-466101U では、300bps~2Mbps の範囲内で

通信速度を設定することができます。

誤差 2%以内で設定可能な通信速度(bps)を下記に記載します。

なおここに掲載してあるのは一部です。

通信速度

2000000※1 1000000 921600 460800 230400 115200 57600

38400 19200 9600 4800 2400 1200 300

※1 PCI-466101U のみ設定可能です。

使用したい通信速度が設定可能かどうかは以下の判別式で判断することができます。

1.Clock Divider を算出します。

Clock Divider ≒ 48[MHz]÷(2×Prescalse×設定したい通信速度[bps])

※Prescalse は通信速度[bps]が 365 以下の場合は 4、365 より大きい場合には 1とします。

※Clock Divider は小数点以下切捨ての整数値とします。

2.「1.」の結果を使用し、設定される通信速度を算出します。

設定される通信速度=48[MHz]÷(2×Prescalse×Clock Divider)

※Prescalse は通信速度[bps]が 365 以下の場合は 4、365 より大きい場合には 1とします。

3.通信速度誤差[%]を下記の計算式で算出して、接続先機器の許容誤差以下であることを確認

してください。(許容誤差は一般的には±2%以内です)

通信速度誤差 = 100×(1-(設定される通信速度[bps]÷設定したい通信速度[bps]))±0.25%

Page 56: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

56

4.5 モニタモード モニタ機能は、2つの通信機器の間にCBI-4641, CBI-466120/WA, CSI-466120を中継することにより、

データや制御信号を監視することができる機能です。通信機器間の結線により、モニタできる制御信

号が異なります。

モデム←→シリアルポート間のような、全ピンストレート結線のモニタはできません。

4.5.1 RS/CS 接続

モニタできる信号は RD,DR,CS です。RS/CS がクロス結線されている時に使用します。

4.5.2 RS/CD 接続

モニタできる信号は RD,DR,CD です。RS/CD がクロス結線されている時に使用します。

4.5.3 モニタモード使用方法

データの取得は ReadFile 関数、制御信号の状態取得は GetCommModemStatus 関数を使用します。

CN1,CN2 の両ポートで ReadFile 関数、GetCommModemStatus 関数を呼び出すことにより、接続された

各通信機器から出力されるデータまたは制御信号の状態を取得することができます。

Page 57: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

57

例) 通信機器 1から出力したデータを取得

hPort = CreateFile("\\\\.\\COM5", GENERIC_READ | GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

DeviceIoControl(hPort, IOCTL_COMEX_GET_HS_FUNCTION, NULL, 0, &HsFunc,

sizeof(COMMHSFUNC), &cbReturns, NULL);

HsFunc.dwMode = COMEX_HS_MONITOR_RSCS;

DeviceIoControl(hPort, IOCTL_COMEX_SET_HS_FUNCTION, &HsFunc,

sizeof(COMMHSFUNC), NULL, 0, &cbReturns, NULL);

ClearCommError(hPort, &ErrorStatus, &ComStat);

if(ComStat.cbInQue > 0) {

ReadFile(hPort, ReceiveBuffer, ComStat.cbInQue, &ReadLength, NULL);

}

CloseHandle(hPort);

例) 通信機器 1の RS 信号, ER 信号の状態を取得

hPort = CreateFile("\\\\.\\COM5", GENERIC_READ | GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

DeviceIoControl(hPort, IOCTL_COMEX_GET_HS_FUNCTION, NULL, 0, &HsFunc,

sizeof(COMMHSFUNC), &cbReturns, NULL);

HsFunc.dwMode = COMEX_HS_MONITOR_RSCS;

DeviceIoControl(hPort, IOCTL_COMEX_SET_HS_FUNCTION, &HsFunc,

sizeof(COMMHSFUNC), NULL, 0, &cbReturns, NULL);

GetModemStatus(hPort, &ModemStatus);

if(ModemStatus & MS_CTS_ON) {

// The RS signal is on.

}

if(ModemStatus & MS_DSR_ON) {

// The ER signal is on.

}

CloseHandle(hPort);

4.5.4 制限事項

モニタモード時は以下の制限事項があります。

1.データの出力、RS/ER 信号の状態変更は行えません。

2.フロー制御を使用することはできません。

受信バッファがオーバフローしても、相手の送信を止めることはできません。受信バッファがオ

ーバフローしないよう、バッファサイズを多めにとるなどの対策を行ってください。

Page 58: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

58

4.6 2 線式/4 線式通信設定

RS-485 製品では 2 線式/4 線式制御を下記の「COMXXX の詳細設定」で行うことが出来ます。(XXX は

COM のポート番号です。)

※この設定を有効にするには、ポートのオープンが必要です。

※RS-232C 製品では「通信機能設定」は表示されません。

※下記製品は対応しておりません、下記製品で 4線式全二重/2 線式半二重設定を行う場合には、「通

信方式設定プログラム」を使用してください。

PCI-466111U(RS-485), PCI-466101U

【操作方法】 1.「スタート」メニューから「設定(S)」→「コントロールパネル(C)」を選択します。コントロ

ールパネルが開きますので、その中の「システム」を起動します。

2.「ハードウェア」タブにある「デバイスマネージャ(D)」ボタンをクリックすると、インストー

ル、設定された各種デバイスの一覧が表示されます。

3.「ポート(COM と LPT)」の中からデバイスを選択し、メニューの「操作(A)」→「プロパティ(R)」

を選択します。

4.プロパティダイアログが表示されます。

「ポートの設定」タブにある「詳細(A)」ボタンをクリックします。

「受信バッファ」、「送信バッファ」のタグを移動させ設定値を決めてください。

※「受信バッファ」、「送信バッファ」は送受信割り込みのしきい値です。バッファの大きさの

ことではありません。

5.「COMXXX の詳細設定」ダイアログが起動したら「通信機能設定」で設定したい機能にチェック

し、「OK」をクリックします。

6.プロパティダイアログの「OK」をクリックします。

7.2線式/4 線式、半二重/全二重の設定が完了です。

Page 59: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

59

4.7 注意事項 GPC-4161 を使用する上での注意事項、及び制限事項を記載します。

4.7.1 半二重制御について 半二重制御を行う際は、各言語ごとに以下の設定を行います。

※下記製品では本項目は当てはまりません。半二重(二線式)制御を行う場合は、「通信方式設

定プログラム」、または「IfComU210xSetDuplex」関数を使用してください。

PCI-466111U, PCI-466101U

※RS-485 での設定は 4線式通信の場合は同様に使用できます。しかし RS-485 での 2線式半二重

通信の場合は設定が可能ですが、通信設定は常に 2線式半ニ重通信のままで設定されます。

C 言語 DCB 構造体の fRtsControl メンバに RTS_CONTROL_TOGGLE を指定します。

Visual Basic DCB 構造体の fBitFields メンバの Bit12 と Bit13 に 1 を指定します。

Delphi TDCB 構造体の Flags メンバの Bit12 と Bit13 に 1 を指定します。

RS-232C では RTS_CONTROL_TOGGLE に設定しないアプリケーションでは半二重制御できません。

<備考> Visual Basic、Delphi は C 言語のようにビットフィールドを使用できないため、32 ビット整数値と

して扱い、fRtsControl メンバの該当ビットのオン・オフを行います。

Visual Basic の DCB 構造体の fBitFields メンバと、Delphi の TDCB 構造体の Flags メンバの各ビッ

トは、C 言語の DCB 構造体の各メンバと対応しています。ビット構成は以下のようになっています。

Bit C 言語の DCB 構造体と対応するメンバ

0 fBinary

1 fParity

2 fOutxCtsFlow

3 fOutxDsrFlow

4 fDtrControl (2 ビット使用)

6 fDsrSendsitivity

7 fTXContinueOnXoff

8 fOutX

9 fInX

10 fErrorChar

11 fNull

12 fRtsControl (2 ビット使用)

14 fAbortOnError

15 fDummy2 (予約)

Page 60: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

60

4.7.2 通信モジュール製品の半二重制御について 通信モジュール製品では送信有効信号(TXE)または送信要求信号(RS)が有効・無効になるタイミングが

送信データに対して遅延が発生する製品があります。遅延が発生する製品については下記の表をご参

照ください。

遅延が発生するためセットアップタイムには遅延時間以上の値を設定する必要があります。

また、通信モジュール製品でセットアップタイム・ホールドタイムを設定する際には遅延時間をを考

慮してください。

型式 版数 チェンジ

ナンバー

遅延時間

なし 大 4μs。

C01 大 4μs。

CPZ/PCI-420108Q 11

C02 大で 1ビットタイム+2.5μs。

なし 大 4μs。

C01 大 4μs。

CPZ/PCI-420116Q 11

C02 大で 1ビットタイム+2.5μs。

なし 大 4μs。

C01 大 4μs。

C02 大 4μs。デフォルトでセットアッ

プタイムが 4μsになっています。

CPZ/PCI-420208Q 11

C03 大で 1ビットタイム+2.5μs。

なし 大 4μs。

C01 大 4μs。

C02 大 4μs。デフォルトでセットアッ

プタイムが 4μsになっています。

CPZ/PCI-420216Q 11

C03 大で 1ビットタイム+2.5μs。

CTP-420108Q 11 なし 大で 1ビットタイム+2.5μs。

CTP-420116Q 11 なし 大で 1ビットタイム+2.5μs。

CTP-420208Q 11 なし 大で 1ビットタイム+2.5μs。

CTP-420216Q 11 なし 大で 1ビットタイム+2.5μs。

なし 大 4μs。 CSI-420308 11

C01 大で 1ビットタイム+2.5μs。

4.7.3 フロー制御について RS フロー制御と 4線式半二重通信は同時には行えません。

下記製品型式は RS/CS フロー制御と半二重制御は同時に行えません。

CPZ/CTP/PCI-420108Q、CPZ/CTP/PCI-420116Q、CPZ/CTP/PCI-420208Q、

CPZ/CTP/PCI-420216Q

Page 61: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

61

4.7.4 XON 送信しきい値、XOFF 送信しきい値について DCB 構造体の XON 送信しきい値(XonLim)、XOFF 送信しきい値(XoffLim)は受信トリガレベルに応じて

固定されます。固定値は以下の通りです。

※PCI-4161,CBI-4641,CBI-466120WA は受信トリガレベルの 1~7は設定できません。

受信トリガレベ

XonLim XoffLim

1~7 256 512

8 256 512

16 256 512

128 384 512

256 384 512

受信トリガレベルは「COMxxx(xxx は COM 番号)の詳細設定」の「受信バッファ」と同じ意味です。

設定方法は『2線式/4 線式通信設定』を参照してください。

4.7.5 送信トリガレベルについて 送信トリガレベルにより、一度に送信されるバイト数が決定されます。

4.7.6 ハードウェアフロー制御について RS/CS フロー制御、XON/XOFF フロー制御、および半二重制御は、FIFO を使用しハードウェアで行っ

ています。

送信を止めている状態(例えば、XON/XOFF フロー制御設定時に XOFF を受信しているときなど)では、

FIFO からデータが出るのを停止させます。

送信を止めている状態では、FIFO の中にデータが残ったままになります。送信 FIFO 内のデータをク

リアしたい場合は、PurgeComm 関数を使用してください。

2線式半二重通信ではXON/XOFFフロー制御は使用することができません。

また、ハードウェアフロー制御を行いたい場合、デフォルトではC信号,T信号が無効に設定されてい

るため、フロー制御を行う場合、拡張コード(2.IOCTL_COMEX_SET_HS_FUNCTION) を使用し、C信号とT

信号を「常に有効」の設定にする必要があります。

4.7.7 ストップビットについて 1 ストップビット、2 ストップビットのみが使用できます。1.5 ストップビットに設定すると、ドラ

イバ内部で自動的に 1ストップビットに変更されます。

4.7.8 ClearCommError 関数について 下記以外の型式はハードウェアで、Xon、Xoff フロー制御を行っているため、Xoff ホールドには対応

しておりません。

PCI-4161, CBI-4641, CBI-466120, CBI-466120WA

Page 62: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

62

4.7.9 受信インターバルタイムアウトについて 下記の型式は受信インターバルタイムアウト(COMMTIMEOUTS 構造体の ReadIntervalTimeout)には、

0または FFFFFFFFh のみ設定できます。

PCI-420108Q, PCI-420116Q, PCI-420208Q, PCI-420216Q, CPZ-420108Q, CPZ-420116Q,

CPZ-420208Q, CPZ-420216Q, CTP-420108Q, CTP-420116Q, CTP-420208Q, CTP-420216Q

4.7.10 DTR/DSR フローについて 下記の型式は DTR/DSR フローには対応しておりません。

PCI-420108Q, PCI-420116Q, PCI-420208Q, PCI-420216Q, CPZ-420108Q, CPZ-420116Q,

CPZ-420208Q, CPZ-420216Q, CTP-420108Q, CTP-420116Q, CTP-420208Q, CTP-420216Q

PCI-466111U, PCI-466110U, PCI-466101U

・DCB 構造体の fOutxDsrFlow は FALSE のみ設定できます。

・DCB 構造体の fDtrControl に DTR_CONTROL_HANDSHAKE は設定できません。

・DCB 構造体の fDsrSensitivility は FALSE のみ設定できます。

4.7.11 通信モジュールの電源、接続ついて 通信モジュール製品は通信モジュールの電源と接続がされていなければ、シリアル通信は ReadFile

と CloseHandle 以外はエラーを返すようになっております。GetLastError にてエラー内容(下記参

照)を確認してください。

ERROR_NOT_READY ・・・ 電源もしくはケーブルの接続がされていません。

ERROR_CRC ・・・ 接続している通信モジュールが違います。

4.7.12 イベントについて 通信モジュール製品はイベントにて電源とケーブル接続の監視が出来ます。

SetCommMask 関数にてイベントを設定して、WaitCommEvent 関数にてイベント待ちを行ってください。

イベントを示すマスクは下記のようになっております。

EV_EVENT1 ・・・ ケーブル接続監視

EV_EVENT2 ・・・ 電源監視

イベントが発生した際は、接続が切断されたり、電源が落ちたりなどの異常状態のときです。

イベントが発生した際は適切な対処をしてください。

※CPZ/PCI-420108Q の"11 版 CH なし"はこのイベントが発生しません。自動で電源が切れるようにな

っています。電源が切れた後、関数を使用すると、エラーが返ってきますので、GetLastError に

てエラー内容を確認してください。ポートもしくは DIO のクローズを実行し、エラーを回復させた

後、ポートもしくは DIO 部分のオープンを実行すると正常であれば、電源が入り、使用できるよう

になります。

Page 63: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

63

4.7.13 セットアップタイムと CS ハードフロー制御について 半二重通信時のセットアップタイム(COMMHSFUNC 構造体の dwSetupTime)と CS フロー制御を設定して

いる場合、下記の図のように、セットアップタイムを待ち、かつ送信可信号(CS)が有効になることを

待ちます。

よって、下記のように設定したセットアップタイムより CS が有効になるのが遅い場合、設定したセ

ットアップタイムよりデータ送出時間がかかる場合があります。注意してください。

4.7.14 受信割り込みの占有時間について

本ドライバは受信割込み処理時に FIFO から受信データを抜き出します。

そのため、「受信バッファ」の設定値により受信割り込みの占有時間が変動します。

「受信バッファ」の値を大きく設定すると、1 回の受信割り込み処理で FIFO から取り出す受信デー

タの量が多くなり、受信割り込みの占有時間が長くなります。

但し、受信割り込みの発生回数は少なくなります。

「受信バッファ」の値を小さく設定すると、1 回の受信割り込み処理で FIFO から取り出す受信デー

タの量が少なくなり、受信割り込みの占有時間が短くなります。

但し、受信割り込みの発生回数は多くなります。

「受信バッファ」の設定方法は『2線式/4 線式通信設定』を参照してください。

RS

CS

送信データ

S H

RS

CS

S H

送信データ

Page 64: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

64

4.8 製品の版数、チェンジナンバーについて

製品の版数とチェンジナンバーは製品の表面に表示されています。

下図の位置に製品の版数とチェンジナンバーは表示されています。

型式によっては表示されている位置が異なることがあります。

本ヘルプでは、製品の版数、チェンジナンバーを下記のように記述しています。

例)製品型式 PCI-420108Q、製品の版数 11 版、チェンジナンバー C02 の場合

PCI-420108Q[11]C02

Page 65: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

65

4.9 クラスライブラリ参照方法

本製品では、クラスライブラリのソースファイルを用意しています。 ソースコードをビルドしてクラスライブライリを生成し、参照することで、DLL関数の

定義を容易にすることができます。 (DLL関数の呼び出しをカスタマイズしたい場合は、クラスライブラリのソースを参照

してください) IFCCOM,IFCCOMEX,IFCSDIOクラスはx86 専用の定義です。以前のバージョンとの互換

性のために残されています。 新たにアプリケーションを作成される場合には、XXXX_ANYクラス(x86、x64 共用)の

定義をご使用下さい。 ※ IFCCOM210Xでは(x86専用)、(x86、x64 共用)とでクラスは分かれておりません。

本製品には、標準COM用クラスライブラリIFCCOM.dll、拡張機能用クラスライブラリ

IFCCOMEX.dll、汎用DIO(通信モジュール用デジタル入出力)用クラスライブラリ

IFCSDIO.dll、標準COM制御関数用クラスライブラリ IFCCOMU210X.dllの4種類のクラス

ライブラリが存在します。 クラスライブラリ 内容

IFCCOM.dll シリアル通信(標準COM)の機能を使用するためのクラスライ

ブラリです。 シリアル通信部は、Win32API を使用して制御します。通常の標準 COM ポ

ートの機能をご利用の際は、Microsoft 社提供のリファレンスをご参照

ください。

また、一部の Win32API は定義しておりませんのでご注意ください。

『第5章 リファレンス(通信モジュールイベント)』は本クラ

スライブラリを使用します。 IFCCOMEX.dll 標準COM拡張機能、通信モジュール制御(ステータス取得、電

源制御)、通信モジュールイベントを使用するためのクラスライ

ブラリです。 IFCCOMEX.dllを使用する場合、『第4章 リファレンス(拡張機

能、通信モジュール)』をご参照ください。 IFCSDIO.dll 通信モジュールの汎用DIO制御を行うためのクラスライブラリ

です。 IFCSDIO.dllを使用する場合、『第7章 リファレンス(汎用DIO部)』をご参照ください。

IFUCCOMU210X 下記製品の標準COMの制御関数を使用するためのクラスライ

ブラリです。 シリアル通信部は、Win32APIを使用して制御します。通常の標

準COMポートの機能をご利用の際は、Microsoft社提供のリファ

レンスをご参照ください。

Page 66: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

66

・ PCI-466111U、PCI-466101U IFUCCOM210X.dllを使用する場合、『第6章 リファレンス(標

準COM部)』をご参照下さい。 以下の「1. クラスライブラリの作成方法」、「2. クラスライブラリの参照」には、

IFCCOM.dllについて記載しております。それ以外のdllをご使用の場合は、それぞれ

「IFCCOM」を「IFCCOMEX」、および「IFCSDIO」および「IFCCOMU210X」に読み

換えてご利用ください。 ■非同期処理で参照渡しする変数について

各関数はアンマネージ関数です。

非同期処理を使用する際は、ガーベジコレクションによりメモリの開放・移動があるタイミングで

発生します。それにより関数内で保持しているポインタと、アプリケーション内での変数のポイン

タでずれが発生し、メモリ破壊が発生する可能性があります。

下記の対策例のように対策してください。

※ GPC-4161 のシリアル通信部は、Win32API を使用して制御します。通常の標準 COM ポートの機

能をご利用の際は、Microsoft 社提供のリファレンスをご参照ください。

※ 戻り値が ERROR_NOT_SUPPORTED で返る処理はメモリを壊す可能性がある処理です。詳しくはク

ラスライブラリを確認ください。

□対象となる関数

シリアル通信部:WriteFile 関数、ReadFile 関数、WaitCommEvent 関数

DIO 部:エラー! 参照元が見つかりません。関数

□対策例

1. WriteFile 関数

サンプルプログラム WriteFile を参照してください。

2. ReadFile 関数

サンプルプログラム ReadFile を参照してください。

3. WaitCommEvent 関数

サンプルプログラム ReadFile を参照してください。

4. エラー! 参照元が見つかりません。関数

サンプルプログラム DioEvent を参照してください。

■構造体について

StructLayoutクラスのオプションに「LayoutKind.Sequential」を指定しています。

Page 67: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

67

1. クラスライブラリの作成方法 .NETにおいてDLL関数を呼び出すには、まずクラスライブラリを用意する必要がありま

す。 Visual C# .NETの場合 Visual Studioを起動し、以下のプロジェクトファイルを開きます。 <インストール先>¥interface¥GPC4161¥samples¥CS_NET¥IFCCOM¥IFCCOM.csproj このプロジェクトをビルドすると、binフォルダにクラスライブラリIFCCOM.dllが作成さ

れます。 Visual Basic .NETの場合 Visual Studioを起動し、以下のプロジェクトファイルを開きます。 <インストール先>¥interface¥GPC4161¥samples¥VB_NET¥IFCCOM¥IFCCOM.vbproj このプロジェクトをビルドすると、binフォルダにクラスライブラリIFCCOM.dllが作成さ

れます。 2. クラスライブラリの参照 Visual C# .NET, Visual Basic .NETの場合 Visual Studio のメニューの「プロジェクト」の「参照の追加」を選択してください。 「参照」ボタンをクリックして参照したいクラスライブラリDLLを指定します。 例) <インストール先>¥interface¥GPC4161¥samples¥CS_NET¥IFCCOM¥bin¥Release¥ifccom.dll <インストール先>¥interface¥GPC4161¥samples¥VB_NET¥IFCCOM¥bin¥Relaase¥ifccom.dll 「選択されたコンポーネント」に指定したDLLが表示されます。 「OK」ボタンをクリックすると設定は完了です。 次にソースのヘッダで各言語毎に下記のようにInterfaceCorpDllWrap の名前空間を追加

すればDLL関数を次章の「使用例」の方法で呼び出すことができるようになります。 ・Visual C# .NETの場合

using InterfaceCorpDllWrap; ・Visual Basic .NETの場合

Imports InterfaceCorpDllWrap

Page 68: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

68

第5章 リファレンス(通信モジュールイベント)

本章では、通信モジュールの電源/接続イベントを使用するために呼び出す Win32API について解説し

ます。

5.1 関数一覧 No 関数名 機能

●通信モジュールイベント用関数

1 SetCommMask 監視するイベントを指定します。

2 WaitCommEvent イベントが発生するのを待機します。

Page 69: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

69

5.2 関数個別説明

1. SetCommMask 【機能】

監視するイベントを指定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

BOOL SetCommMask(

HANDLE Device,

DWORD EvtMask

);

●Visual Basic

Declare Function SetCommMask Lib "kernel32" Alias "SetCommMask"( _

ByVal Device As Long, _

ByVal EvtMask As Long _

)As Long

●Delphi

function SetCommMask(

Device: THandle;

EvtMask: DWORD

):BOOL; stdcall;

●Visual C# .NET(x86、x64 共用)

[DllImport(“Kernel32.dll”)] public static extern uint SetCommMask(

IntPtr Device,

uint EvtMask,

);

●Visual C# .NET(x86 専用)

[DllImport(“Kernel32.dll”)] public static extern uint SetCommMask(

uint Device,

uint EvtMask,

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SetCommMask Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByVal EvtMask As Integer _

Page 70: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

70

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SetCommMask Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByVal EvtMask As Integer _

) As Integer

【パラメータ】

Device Win32API の CreateFile で取得したデバイスハンドルを指定してください。

EvtMask 監視するイベントを指定します。通信モジュールのイベントは下記の 2 つを使用してくだ

さい。0を渡すと、どのイベントも監視しません。

定数 意味

EV_EVENT1 通信モジュールとの切断で割り込みを発生(接続監視イベント)

EV_EVENT2 通信モジュールの電源電圧異常割り込みを発生(電源監視イベント)

【戻り値】

本関数が正常に終了した場合には、0以外の値が返されます。

失敗した場合には、0が返されます。

【使用例】

●C言語

HANDLE DeviceHandle;

BOOL Ret;

Ret = SetCommMask(DeviceHandle, EV_EVENT1);

●Visual Basic

Dim DeviceHandle As Long

Dim Ret As Long

Ret = SetCommMask(DeviceHandle, EV_EVENT1)

●Delphi

var

DeviceHandle: THandle;

Ret: BOOL;

begin

Ret := SetCommMask(DeviceHandle, EV_EVENT1);

end;

Page 71: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

71

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

uint EvtMask;

EvtMask = IFCCOM_ANY.EV_EVENT1;

Ret = IFCCOM_ANY.SetCommMask(DeviceHandle, EvtMask);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim EvtMask As Integer

EvtMask = IFCCOM_ANY.EV_EVENT1

Ret = IFCCOM_ANY.SetCommMask(DeviceHandle, EvtMask)

通信モジュールの接続監視イベントを有効にします。

Page 72: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

72

2. WaitCommEvent 【機能】

イベントが発生するのを待機します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

BOOL WaitCommEvent(

HANDLE Device,

LPDWORD EvtMask,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function WaitCommEvent Lib "kernel32" Alias "WaitCommEvent"( _

ByVal Device As Long _

EvtMask As Long, _

Overlapped As OVERLAPPED _

)As Long

●Delphi

function WaitCommEvent(

Device: Thandle;

var EvtMask: DWORD;

Overlapped: POverlapped

): BOOL; stdcall;

●Visual C# .NET(x86、x64 共用)

[DllImport(“Kernel32.dll”)] public static extern uint WaitCommEvent(

IntPtr Device,

out uint EvtMask,

ref OVERLAPPED Overlapped

);

[DllImport(“Kernel32.dll”)] public static extern uint WaitCommEvent(

IntPtr Device,

out uint EvtMask,

IntPtr Overlapped

);

Page 73: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

73

●Visual C# .NET(x86 専用)

[DllImport(“Kernel32.dll”)] public static extern uint WaitCommEvent(

uint Device,

out uint EvtMask,

ref OVERLAPPED Overlapped

);

[DllImport(“Kernel32.dll”)] public static extern uint WaitCommEvent(

uint Device,

out uint EvtMask,

IntPtr Overlapped

);

●Visual Basic .NET(x86、x64 共用)

Declare Function WaitCommEvent Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByRef EvtMask As Integer, _

ByRef Overlapped As OVERLAPPED _

) As Integer

Declare Function WaitCommEvent Lib “Kernel32.dll” ( _ ByVal Device As IntPtr, _

ByRef EvtMask As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function WaitCommEvent Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByRef EvtMask As Integer, _

ByRef Overlapped As OVERLAPPED _

) As Integer

Declare Function WaitCommEvent Lib “Kernel32.dll” ( _ ByVal Device As Integer, _

ByRef EvtMask As Integer, _

ByVal Overlapped As IntPtr _

) As Integer

【パラメータ】

Device Win32API の CreateFile で取得したデバイスハンドルを指定してください。

Page 74: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

74

EvtMask 変数には、発生したイベントの種類を示すマスクが格納されます。エラーが発生すると、0

が格納されます。通信モジュールイベントでは下記のいずれかが格納されます。

定数 意味

EV_EVENT1 通信モジュールとの切断を検出(接続監視イベント)

EV_EVENT2 通信モジュールの電源電圧異常を検出(電源監視イベント)

Overlapped デバイスを FILE_FLAG_OVERLAPPED フラグを指定してオープンした場合、OVERLAPPED 構造体

への参照渡しを指定してください。それ以外の場合は NULL を指定してください。

【戻り値】

本関数が正常に終了した場合には、0以外の値が返されます。

失敗した場合には、0が返されます。

【使用例】

●C言語

HANDLE DeviceHandle;

BOOL Ret;

DWORD GetEvtMask;

Ret = SetCommMask(DeviceHandle, EV_EVENT1);

Ret = WaitCommEvent(DeviceHandle, GetEvtMask, NULL);

●Visual Basic

Dim DeviceHandle As Long

Dim Ret As Long

Dim GetEvtMask As Long

Ret = SetCommMask(DeviceHandle, EV_EVENT1)

Ret = WaitCommEvent(DeviceHandle, GetEvtMask, 0)

●Delphi

var

DeviceHandle: THandle;

Ret: BOOL;

GetEvtMask: DWORD;

begin

Ret := SetCommMask(DeviceHandle, EV_EVENT1);

Ret := WaitCommEvent(DeviceHandle, GetEvtMask, nil);

end;

Page 75: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

75

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

uint SetEvtMask;

uint GetEvtMask;

SetEvtMask = IFCCOM_ANY.EV_EVENT1;

Ret = IFCCOM_ANY.SetCommMask(DeviceHandle, SetEvtMask);

Ret = IFCCOM_ANY.WaitCommEvent(DeviceHandle, out GetEvtMask, IntPtr.Zero);

●Visual Basic .NET

Dim DeviceHandle As Integer

Dim Ret As Integer

Dim SetEvtMask As Integer

Dim GetEvtMask As Integer

SetEvtMask = IFCCOM_ANY.EV_EVENT1

Ret = IFCCOM_ANY.SetCommMask(DeviceHandle, SetEvtMask)

Ret = IFCCOM_ANY.WaitCommEvent(DeviceHandle, GetEvtMask, IntPtr.Zero)

通信モジュール切断イベントを監視します。

Page 76: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

76

5.3 構造体説明 5.3.1 OVERLAPPED 構造体

●C言語

typedef struct _OVERLAPPED {

DWORD Internal;

DWORD InternalHigh;

DWORD Offset;

DWORD OffsetHigh;

HANDLE hEvent;

} OVERLAPPED;

●Visual Basic

Type OVERLAPPED

Internal As Long

InternalHigh As Long

Offset As Long

OffsetHigh As Long

hEvent As Long

End Type

●Delphi

POverlapped = ^TOverlapped;

TOverlapped = record

Internal: DWORD;

InternalHigh: DWORD;

Offset: DWORD;

OffsetHigh: DWORD;

HEvent: THandle;

end;

メンバ 説明

Internal オペレーティングシステムの使用のために予約されています。

このメンバには、システムに依存する状態が指定されます。

このメンバは、GetOverlappedResult 関数が拡張エラー情報を ERROR_IO_PENDING

に設定しないで制御を戻したときだけ有効です。

InternalHigh オペレーティングシステムの使用のために予約されています。

このメンバには、転送されるデータの長さが指定されます。

このメンバは、GetOverlappedResult 関数が 0 でない値を返したときだけ有効で

す。

Offset 転送を開始するファイル位置を指定します。

通信ポートに対してこれらの関数が読み取りや書き込みをするときには、このメ

ンバは無視されます。

OffsetHigh 転送を開始するバイトオフセットの上位ワードを指定します。

通信ポートに対してこれらの関数が読み取りや書き込みをするときには、このメ

ンバは無視されます。

hEvent 転送が完了したときにシグナル状態に設定されるイベントを識別します。

Page 77: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

77

5.3.2 DCB 構造体

●C 言語

typedef struct _DCB {

DWORD DCBlength;

DWORD BaudRate;

DWORD fBinary;

DWORD fParity;

DWORD fOutxCtsFlow;

DWORD fOutxDsrFlow;

DWORD fDtrControl;

DWORD fDsrSensitivity;

DWORD fTXContinueOnXoff;

DWORD fOutX;

DWORD fInX;

DWORD fErrorChar;

DWORD fNull;

DWORD fRtsControl;

DWORD fAbortOnError;

DWORD fDummy2;

WORD wReserved;

WORD XonLim;

WORD XoffLim;

BYTE ByteSize;

BYTE Parity;

BYTE StopBits;

char XonChar;

char XoffChar;

char ErrorChar;

char EofChar;

char EvtChar;

WORD wReserved1;

} DCB;

Page 78: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

78

●Visual Basic

Type DCB

DCBlength As Long

BaudRate As Long

fBitFields As Long

wReserved As Integer

XonLim As Integer

XoffLim As Integer

ByteSize As Byte

Parity As Byte

StopBits As Byte

XonChar As Byte

XoffChar As Byte

ErrorChar As Byte

EofChar As Byte

EvtChar As Byte

wReserved1 As Integer

End Type

●Delphi

type

TDCB = packed record

DCBlength: DWORD;

BaudRate: DWORD;

Flags: Longint;

wReserved: DWORD;

XonLim: Word;

XoffLim: Word;

ByteSize: Byte;

Parity: Byte;

StopBits: Byte;

XonChar: CHAR;

XoffChar: CHAR;

ErrorChar: CHAR;

EofChar: CHAR;

EvtChar: CHAR;

wReserved1: Word;

end;

PDCB = ^TDCB;

Page 79: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

79

メンバ 説明

DCBlength; DCB 構造体のサイズを指定します。

シリアルポートの通信速度を指定します。

RS-232C 128bps~1000000bps(1Mbps)

RS-485 128bps~4000000bps(4Mbps)

BaudRate;

インタフェースモジュールにより、設定可能範囲が異なります。

Visual Basic、Delphi は C 言語のようにビットフィールドを使用できない

ため、32 ビット整数値として扱い、fRtsControl メンバの該当ビットのオ

ン・オフを行います。

Visual Basic の DCB 構造体の fBitFields メンバと、Delphi の TDCB 構造

体の Flags メンバの各ビットは、C 言語の DCB 構造体の各メンバと対応し

ています。ビット構成は以下のようになっています。

Bit C 言語の DCB 構造体と対応するメンバ

0 fBinary

1 fParity

2 fOutxCtsFlow

3 fOutxDsrFlow

4 fDtrControl (2 ビット使用)

6 fDsrSendsitivity

7 fTXContinueOnXoff

8 fOutX

9 fInX

10 fErrorChar

11 fNull

12 fRtsControl (2 ビット使用)

14 fabortOnError

15 fDummy2 (予約)

fBitFields

Flags

fBinary バイナリモードの有効無効を指定します。1で有効、0で無効になります。こ

の設定を無効にすることはできません(Win32API がバイナリモードしかサポ

ートしてないため)。

fParity パリティモードの有効無効を指定します。1で有効、0で無効になります。

fOutxCtsFlow CS ハードウェアフロー制御として、CS(送信可)信号をモニタするかどうかの

有効無効を指定します。1で有効、0で無効になります。有効にすることで、

CS 信号が再び送信されるまで、データ出力を中断します。

fOutxDsrFlow 出力フローコントロールとして、DSR(データ・セット・レディ)信号をモニタす

るかどうかの有効無効を指定します。1で有効、0で無効になります。有効に

することで、DSR 信号が再び送信されるまで、データ出力を中断します。

DTR(データ端末レディ)フローコントロールの種類を指定します。

値 説明

DTR_CONTROL_DISABLE DTR 信号を常に無効

DTR_CONTROL_ENABLE DTR 信号を常に有効

DTR_CONTROL_HANDSHAKE ハンドシェイク(DTR フロー制御)に設

fDtrControl

Page 80: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

80

メンバ 説明

fDsrSensitivity DSR(データ・セット・レディ)フローコントロールが無効の間、受信データを無

視するかどうかの有効無効を指定します。1で有効、0で無効になります。

fTXContinueOnXoff XoffChar を送信ししたときに、データ送信を中断するかどうかの有効無効を

指定します。1で有効、0で無効になります。なお、この設定を有効にすると、

XoffChar が送信されたときにも、データの送信は続けられます。

fOutX データが送信されている間、XON/XOFF 出力フローコントロールをするかどう

かの有効無効を指定します。1で有効、0で無効になります。なお、有効にす

ることで、XoffChar を受信したときにデータの送信が中断され、XonChar を

受信したときにデータの送信を再開します。

fInX データを受信している間、XON/XOFF 入力フローコントロールをするかどうか

の有効無効を指定します。1で有効、0で無効になります。なお、有効にする

ことで、受信バッファの空き容量が XoffLim 以下なったときに XoffChar を送

信し、受信バッファのデータが XonLim 以下になったときに XonChar を送信さ

れます。

fErrorChar パリティエラー時に代替文字を使用するかどうかの有効無効を指定します。1

で有効、0で無効になります。

fNull NULL バイトを破棄するかどうかの有効無効を指定します。1で有効、0で無効

になります。

RS(送信要求)信号の種類を指定します。

値 説明

RTS_CONTROL_ENABLE RS を常に有効

RTS_CONTROL_DISABLE RS を常に無効

RTS_CONTROL_HANDSHAKE 下記参照 ※1

fRtsControl

RSハンドシェイク(RSハードウェアフロー制御)になります。下記のようにRSが制御されます。 受信FIFOに格納されたデータ数が512バイト以上となったときにRS信号が無効になります。 (受信FIFOのデータ数≧512バイト) 受信FIFOに格納されたデータ数がRS-トリガ値を下回ったときにRS信号が有効になります。 (受信FIFOのデータ数<RS-トリガ値) RS-トリガ値は「COMxxx(xxxはCOM番号)の詳細設定」の「受信バッファ」で設定できます。 「受信バッファ」≦8 なら RS-トリガ値は256バイトであり、 「受信バッファ」>8 なら RS-トリガ値は384バイトになります。 設定方法は『2線式/4線式通信設定』を参照してください。

Page 81: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

81

メンバ 説明

RTS_CONTROL_TOGGLE 下記参照

RSトグル(半二重通信)に設定されます。RSトグルを指定すると、下記のような制

御になります。

・PCI-4161,CBI-4641,CBI-466120WAの場合…RSが有効になり、CSが有効になりデ

ィレイ時間(COMMHSFUNC構造体のdwSetupTime、下図のS)が過ぎれば、データが送

信します。 データ送信後ディレイ時間(COMMHSFUNC構造体のdwHoldTime、下図

のH)が過ぎれば、RSが無効になります。送信後CSは無効になります。

・ その他製品型式の場合… RSが有効になり、ディレイ時間(COMMHSFUNC構造体

のdwSetupTime、下図のS)が過ぎれば、データを送信します。データ送信後デ

ィレイ時間(COMMHSFUNC構造体のdwHoldTime、下図のH)が過ぎれば、RSが無効

になります。

fAbortOnError エラーが発生した場合に、データの送受信を行うかどうかの有効無効を指定しま

す。1で有効、0で無効になります。

fDummy2 予約済みです。使用できません。

wReserved 常に 0(ゼロ)を指定します。

XonLim XonChar を送信するまでの受信バッファのデータ容量を指定します。受信バッフ

ァの容量が XonLim 以下なれば、XonChar を送信します。

※「XON送信しきい値、XOFF送信しきい値について」を参照ください。

XoffLim XoffChar を送信するまでの受信バッファの空き容量を指定します。受信バッファ

の空き容量が XoffLim 以下になれば、XoffChar を送信します。

※「XON送信しきい値、XOFF送信しきい値について」を参照ください。

ByteSize 1 ビットのバイト数を指定します。4~8バイトの間で指定できます。

パリティの種類を指定します。

値 説明

EVENPARITY 偶数パリティ

MARKPARITY マークパリティ

NOPARITY パリティなし

ODDPARITY 奇数パリティ

SPACEPARITY 空白パリティ

Parity

StopBits ストップビットの種類を指定します。

1 ストップビット、2ストップビットのみが使用できます。1.5 ストップビットに

設定すると、ドライバ内部で自動的に 1ストップビットに変更されます。

RS

CS

S H

送信データ

RS

S H

送信データ

Page 82: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

82

メンバ 説明

値 説明

ONESTOPBIT 1 ストップビット

ONE5STOPBITS 1.5 ストップビット(GPC-4161 は 1.5 ス

トップビットがありません。1ストップ

ビットに変更されます。)

TWOSTOPBITS 2 ストップビット

XonChar XON 文字を指定します。

XoffChar XOFF 文字を指定します。

ErrorChar パリティエラーの代替文字を指定します。

EofChar EOF 文字を指定します。

EvtChar イベント通知文字を指定します。

wReserved1 予約済みです。使用できません。

【備考】

下記のように使用する場合は注意してください。

DCB dcb;

dcb.fOutxCtsFlow = 1;

dcb.fRtsControl = RTS_CONTROL_TOGGLE;

・PCI-4161,CBI-4641,CBI-466120WA の場合…この設定は出来ません。

・その他製品型式の場合…

RS が有効になり、セットアップタイム(COMMHSFUNC 構造体の dwSetupTime)が過ぎ、かつ CS

が有効なら、データ送信します。

データ送信後、ホールドタイム(COMMHSFUNC 構造体の dwHoldTime)が過ぎると、RS が無効に

なる。送信後 CS は無効になります。

※この設定で通信を行う際は注意事項の「セットアップタイムとCSハードフロー制御について」

をお読みください。

【補足】

・RS(送信要求)信号の用途

送信するとき RS を有効にする(半二重通信)。

相手にデータを送ってほしくないとき RS を無効にする(ハンドシェイク(ハードウェアフロ

ー制御))。

・CS(送信可)信号の用途

相手(自分)からの送信許可を受ける。

許可を受けないとデータ出力しない(ハードウェアフロー制御)。

RS

CS

送信データ

S H

Page 83: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

83

【使用例】

下記の場合について設定の使用例を記載します。

<4線式全二重通信の場合>

DCB dcb;

GetCommState(hPort, &dcb);

dcb.BaudRate = 9600;

dcb.fAbortOnError = 0;

dcb.Parity = 0;

dcb.StopBits = ONESTOPBIT;

dcb.ByteSize = 8;

dcb.fOutxDsrFlow = 0;

dcb.fDtrControl = DTR_CONTROL_ENABLE;

dcb.fOutxCtsFlow = 0;

dcb.fRtsControl = RTS_CONTROL_ENABLE;

dcb.fBinary = TRUE;

dcb.fParity = FALSE;

dcb.fInX = dcb.fOutX = 0;

SetCommState(hPort, &dcb);

<4線式半二重通信の場合>

DCB dcb;

GetCommState(hPort, &dcb);

dcb.BaudRate = 9600;

dcb.fAbortOnError = 0;

dcb.Parity = 0;

dcb.StopBits = ONESTOPBIT;

dcb.ByteSize = 8;

dcb.fOutxCtsFlow = 0;

dcb.fOutxDsrFlow = 0;

dcb.fDtrControl = DTR_CONTROL_ENABLE;

dcb.fOutxCtsFlow = 0;

dcb.fRtsControl = RTS_CONTROL_TOGGLE;

dcb.fBinary = TRUE;

dcb.fParity = FALSE;

dcb.fInX = dcb.fOutX = 0;

SetCommState(hPort, &dcb);

Page 84: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

84

<CS ハードウェアフロー制御かつ RS ハンドシェイク(RS ハードウェアフロー制御)の場合>

DCB dcb;

GetCommState(hPort, &dcb);

dcb.BaudRate = 9600;

dcb.fAbortOnError = 0;

dcb.Parity = 0;

dcb.StopBits = ONESTOPBIT;

dcb.ByteSize = 8;

dcb.fOutxCtsFlow = 1;

dcb.fOutxDsrFlow = 0;

dcb.fDtrControl = DTR_CONTROL_ENABLE;

dcb.fOutxCtsFlow = 0;

dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;

dcb.fBinary = TRUE;

dcb.fParity = FALSE;

dcb.fInX = dcb.fOutX = 0;

SetCommState(hPort, &dcb);

<4 線式半二重通信での CS ハードウェアフロー制御の場合>

※PCI-4161,CBI-4641,CBI-466120WA ではこの設定はできません。

DCB dcb;

GetCommState(hPort, &dcb);

dcb.BaudRate = 9600;

dcb.fAbortOnError = 0;

dcb.Parity = 0;

dcb.StopBits = ONESTOPBIT;

dcb.ByteSize = 8;

dcb.fOutxCtsFlow = 1;

dcb.fOutxDsrFlow = 0;

dcb.fDtrControl = DTR_CONTROL_ENABLE;

dcb.fOutxCtsFlow = 0;

dcb.fRtsControl = RTS_CONTROL_TOGGLE;

dcb.fBinary = TRUE;

dcb.fParity = FALSE;

dcb.fInX = dcb.fOutX = 0;

SetCommState(hPort, &dcb);

Page 85: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

85

第6章 リファレンス(標準 COM 部)

本章では、下記製品の COM ポートの設定を行うために使用する Win32API 関数について解説します。

※下記製品以外では使用できません、ご注意下さい。

PCI-466111U(RS-485), PCI-466101U

※GPC-4161 のシリアル通信部は、Win32API を使用して制御します。

下記の設定をご利用の際は、本項目の関数を使用してください。

・全二重・半二重(二線式)の切替え

通常の標準 COM ポートの機能については Microsoft 社提供のリファレンスをご参照ください。

6.1 関数一覧

No 関数名 機能

●設定関数

1 IfComU210xSetDuplex 全二重・半二重の切替を行います。

2 IfComU210xGetDuplex 全二重・半二重の設定を取得します。

Page 86: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

86

6.2 関数個別説明

1. IfComU210xSetDuplex 【機能】

全二重・半二重(二線式)の設定を行います。

【書式】

●C言語

LONG IfComU210xSetDuplex(

HANDLE ComHandle,

DWORD DuplexMode

);

●Visual Basic

Declare Function IfComU210xSetDuplex Lib "Ifcomu210x.dll"( _

ByVal ComHandle As Long,_

ByVal DuplexMode As Long _

)As Long

●Visual C# .NET

[DllImport("ifcomu210x.dll")]

public static extern uint IfComU210xSetDuplex(

IntPtr ComHandle // デバイスハンドル

uint DuplexMode // Duplex Mode

);

[DllImport("ifcomu210x.dll")]

public static extern uint IfComU210xSetDuplex(

uint ComHandle // デバイスハンドル

uint DuplexMode // Duplex Mode

);

●Visual Basic .NET

Declare Function IfComU210xSetDuplex Lib “ifcomu210x.dll” ( _ ByVal ComHandle As IntPtr, _ ‘ デバイスハンドル

ByVal DuplexMode As Integer ‘ Duplex Mode ) As Integer

Declare Function IfComU210xSetDuplex Lib “ifcomu210x.dll” ( _ ByVal ComHandle As Integer, _ ‘ デバイスハンドル

ByVal DuplexMode As Integer ‘ Duplex Mode ) As Integer

【パラメータ】

ComHandle Win32API の CreateFile で取得したデバイスハンドルを指定してください。

Page 87: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

87

DuplexMode 全二重・半二重(二線式)の設定値を収めている変数です。下記を指定してください。

定数 値 意味

IFCOMU210X_RS485_HALF_DUPLEX 0x00 半二重(二線式)に設定します。

IFCOMU210X_RS485_FULL_DUPLEX 0x01 全二重に設定します。

【戻り値】

正常終了した場合は、0(IFCOMU210X_ERROR_SUCCESS)が返されます。

正常に処理が終了しなかった場合 0(IFCOMU210X_ERROR_SUCCESS)以外の値を返します。0

(IFCOMU210X_ERROR_SUCCESS)以外の値が返された場合については、『戻り値一覧』を参照して

ください。

【使用例】

●C言語

HANDLE ComHandle;

LONG Ret;

Ret = IfComU210xSetDuplex(ComHandle, 0x01);

●Visual Basic

Dim ComHandle As Long

Dim Ret As Long

Ret = IfComU210xSetDuplex(ComHandle, &H01)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCCOMU210X.IfComU210xSetDuplex(DeviceHandle, 0x01);

●Visual Basic .NET

Dim DeviceHandle As Integer

Dim Ret As Integer

Ret = IFCCOMU210X.IfComU210xSetDuplex(DeviceHandle, &H01)

通信ポートを全二重に設定をします。

Page 88: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

88

2. IfComU210xGetDuplex 【機能】

全二重・半二重(二線式)の設定値を取得します。

【書式】

●C言語

LONG IfComU210xGetDuplex(

HANDLE ComHandle,

PDWORD DuplexMode

);

●Visual Basic

Declare Function IfComU210xGetDuplex Lib "Ifcomu210x.dll"( _

ByVal ComHandle As Long, _

ByRef DuplexMode As Long _

) As Long

●Visual C# .NET

[DllImport("ifcomu210x.dll")]

public static extern uint IfComU210xGetDuplex(

IntPtr ComHandle, // デバイスハンドル

out uint DuplexMode // Duplex Mode

);

[DllImport("ifcomu210x.dll")]

public static extern uint IfComU210xGetDuplex(

uint ComHandle, // デバイスハンドル

out uint DuplexMode // Duplex Mode

);

●Visual Basic .NET

Declare Function IfComU210xGetDuplex Lib “ifcomu210x.dll” ( _ ByVal ComHandle As IntPtr, _ ‘ デバイスハンドル

ByRef DuplexMode As Integer ‘ Duplex Mode ) As Integer

Declare Function IfComU210xGetDuplex Lib “ifcomu210x.dll” ( _ ByVal ComHandle As Integer, _ ‘ デバイスハンドル

ByRef DuplexMode As Integer ‘ Duplex Mode ) As Integer

【パラメータ】

ComHandle Win32API の CreateFile で取得したデバイスハンドルを指定してください。

Page 89: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

89

DuplexMode 全二重・半二重(二線式)の設定を返す変数へのポインタ。

定数 値 意味

IFCOMU210X_RS485_HALF_DUPLEX 0x00 半二重(二線式)に設定されています。

IFCOMU210X_RS485_FULL_DUPLEX 0x01 全二重に設定されています。

【戻り値】

正常終了した場合は、0(IFCOMU210X_ERROR_SUCCESS)が返されます。

正常に処理が終了しなかった場合 0(IFCOMU210X_ERROR_SUCCESS)以外の値を返します。0

(IFCOMU210X_ERROR_SUCCESS)以外の値が返された場合については、『戻り値一覧』を参照して

ください。

【使用例】

●C言語

HANDLE ComHandle;

DWORD DuplexMode

LONG Ret;

Ret = IfComU210xGetDuplex(ComHandle, &DuplexMode);

●Visual Basic

Dim ComHandle As Long

Dim DuplexMode As Long

Dim Ret As Long

Ret = IfComU210xGetDuplex(ComHandle, DuplexMode)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

uint DuplexMode;

Ret = IFCCOMU210X.IfComU210xGetDuplex(DeviceHandle, out DuplexMode);

●Visual Basic .NET

Dim DeviceHandle As Integer

Dim Ret As Integer

Dim DuplexMode As Integer

Ret = IFCCOMU210X.IfComU210xGetDuplex(DeviceHandle, DuplexMode )

通信ポートの設定(全二重・半二重)を取得します。

Page 90: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

90

第7章 リファレンス(汎用 DIO 部)

7.1 関数一覧 ※この関数は下記、製品型式のみ対応しています。ご注意ください。

PCI/CTP/CPZ-420108Q,PCI/CTP/CPZ-420116Q,PCI/CTP/CPZ-420208Q,PCI/CTP/CPZ-420216Q,CSI-420

308

No 関数名 機能

●初期化関数

1 SdioOpen 通信モジュールのデジタル入出力デバイスのオープンを行い、以

後のアクセスを行えるようにします。

2 SdioClose 通信モジュールのデジタル入出力デバイスのクローズを行い、ア

クセスのために使用されていた各種リソースの解放を行い、以後

のアクセスを禁止します。

3 SdioCommonGetDeviceInfo デバイスのリソース情報を取得します。

●入出力関数

4 SdioInputPoint 任意の点数の入力接点の状態を読み込みます。

5 SdioOutputPoint 任意の点数の出力接点の出力を制御します。

6 SdioInputByte 指定した8点の入力接点の状態を読み込みます。(BYTEアクセス)

7 SdioInputWord 指定した 16 点の入力接点の状態を読み込みます。(WORD アクセ

ス)

8 SdioInputDword 指定した 32 点の入力接点の状態を読み込みます。(DWORD アクセ

ス)

9 SdioOutputByte 指定した 8点の出力接点の出力を制御します。(BYTE アクセス)

10 SdioOutputWord 指定した 16 点の出力接点の出力を制御します。(WORD アクセス)

11 SdioOutputDword 指定した32点の出力接点の出力を制御します。(DWORDアクセス)

●データラッチ関数

12 SdioSetLatchLogic 入力信号をラッチする STB 信号の論理を指定します。

13 SdioGetLatchLogic 入力信号をラッチする STB 信号の論理を取得します。

14 SdioInputLatchPoint 任意の点数のラッチされた入力接点の状態を読み込みます。

15 SdioInputLatchByte ラッチされた 8 点の入力接点の状態を読み込みます。(BYTE アク

セス)

16 SdioInputLatchWord ラッチされた16点の入力接点の状態を読み込みます。(WORDアク

セス)

17 SdioInputLatchDword ラッチされた 32 点の入力接点の状態を読み込みます。(DWORD ア

クセス)

●通信モジュール関数

18 SdioGetTmoduleStatus 通信モジュールの接続状態を取得します。

19 SdioSetTmodulePower 通信モジュールの電源を制御します。

●割り込み関数

20 SdioSetEvent STB 信号、通信モジュール異常割り込みが発生したときに実行す

るイベントを指定します。

21 SdioSetEventLogic 割り込み発生論理を設定します。

22 SdioGetEventLogic 割り込み発生論理の設定を取得します。

Page 91: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

91

Page 92: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

92

7.2 関数個別説明

1. SdioOpen 【機能】

通信モジュールのデジタル入出力デバイスのオープンを行い、以後のデバイスへのアクセスを

行えるようにします。

Windows XP/2000/2003 では、「デバイス マネージャ」に「IfSdio」が追加され認識された弊社

通信モジュールのデジタル入出力デバイスが一覧表示されます。

一覧の製品型式の横にインタフェースモジュール上のロータリスイッチの値とデバイス名が表

示されます。

DI 入力ユーティリティ、DO 出力ユーティリティでも確認できます。

デバイス名は使用するボード枚数やスロット位置の変更等でシステム構成が変化すると割り当

てられる名前が変化する場合があります。システム構成が変化する環境でご使用になる場合は、

デバイス名の指定が変更できるようにアプリケーションを作成ください。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語(x86 専用)

HANDLE SdioOpen(

LPCTSTR Name

);

●C 言語(x64 専用)

HANDLE SdioOpen(

LPCSTR Name

);

●Visual Basic

Declare Function SdioOpen Lib "IfSdio.DLL"( _

ByVal Name As String_

)As Long

●Delphi

function SdioOpen(

Name: String

):THandle; stdcall; external IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern IntPtr SdioOpen(

string Name // デバイス名

Page 93: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

93

);

Page 94: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

94

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOpen(

string Name // デバイス名

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioOpen Lib “IfSdio.dll” ( _ ByVal Name As String _ ‘ デバイス名

) As IntPtr

●Visual Basic .NET(x86 専用)

Declare Function SdioOpen Lib “IfSdio.dll” ( _ ByVal Name As String _ ‘ デバイス名

) As uint

【パラメータ】

Name オープンするデバイス名を指定してください。

【戻り値】

関数が正常に終了した場合には、有効なハンドルが返されます。 他の関数は、本関数により取

得したハンドルを使用してデバイスの制御を行います。 オープンに失敗した場合には、

INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。

【備考】

●UNICODE 文字列について

C 言語(x86 専用)で、SdioOpen の引数 Name に指定する文字列は LPCTSTR 型として定義していま

すが、UNICODE 文字列には対応しておりません。

x86 環境でご使用になる場合、使用例に沿って記述してください。

【使用例】

●C言語(x86 専用)

HANDLE Device;

Device = SdioOpen((LPCTSTR)"IFSDIO1");

if(Device == INVALID_HANDLE_VALUE) {

/* オープンに失敗 */

printf("Fail to open the port\n");

}

Page 95: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

95

●C 言語(x64 専用)

HANDLE Device;

char* lpszName = “IFSDIO1”;

Device = SdioOpen((LPCSTR) lpszName);

if(Device == INVALID_HANDLE_VALUE) {

/* オープンに失敗 */

printf("Fail to open the port\n");

}

●Visual Basic

Dim Device As Long

Device = SdioOpen("IFSDIO1")

If Device = -1 Then

' オープンに失敗

MsgBox("Fail to open the port")

End If

●Delphi

var

Device: THandle;

begin

// ポート初期化

Device := SdioOpen('IFSDIO1');

if DeviceHandle = INVALID_HANDLE_VALUE then

begin

// オープンに失敗

MessageDlg('Fail to open the port', mtInformation, [mbOK], 0);

end;

end;

●Visual C# .NET

IntPtr DeviceHandle;

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”)

デバイス名"IFSDIO1"の通信モジュールのデジタル入出力デバイスをオープンし、変数

hDeviceHandle にデバイスハンドルを返します。

Page 96: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

96

2. SdioClose 【機能】

通信モジュールのデジタル入出力デバイスのクローズを行い、通信モジュールのデジタル入出

力デバイスへアクセスのために使用されていた各種リソースの解放を行い、以後の通信モジュ

ールのデジタル入出力デバイスへのアクセスを禁止します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioClose(

HANDLE DeviceHandle

);

●Visual Basic

Declare Function SdioClose Lib "IfSdio.DLL"( _

ByVal DeviceHandle As Long _

)As Long

●Delphi

function SdioClose (

DeviceHandle: Thandle

): Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioClose(

IntPtr DeviceHandle // デバイスハンドル

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioClose(

uint DeviceHandle // デバイスハンドル

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioClose Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr _ ‘ デバイスハンドル

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioClose Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer _ ‘ デバイスハンドル

) As Integer

Page 97: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

97

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

【戻り値】

SdioClose関数は処理が正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理

が終了しなかった場合IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外

の値が返された場合については、『戻り値一覧』を参照してください。

【備考】

再度、通信モジュールのデジタル入出力デバイスへのアクセスを行う場合にはオープン処理

(SdioOpen関数)を呼び出してください。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = SdioOpen(“IFSDIO1”);

Ret = SdioClose(DeviceHandle);

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Name = "IFSDIO1" & Chr( 0 )

DeviceHandle = SdioOpen(Name)

Ret = SdioClose(DeviceHandle)

●Delphi

var

Name: String;

DeviceHandle: THandle;

begin

Name := 'IFSDIO1';

DeviceHandle := SdioOpen(Name);

Ret := SdioClose(DeviceHandle);

end;

Page 98: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

98

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioClose(DeviceHandle);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioClose(DeviceHandle)

デバイスハンドル hDeviceHandle の通信モジュールのデジタル入出力デバイスのクローズ処理

を行います。

Page 99: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

99

3. SdioCommonGetDeviceInfo 【機能】

デバイスのリソース情報を取得します。

SdioCommonGetDeviceInfo 関数で得られる情報は、以下のとおりです。

♦ デバイス ID

♦ ベンダ ID

♦ リビジョン ID

♦ サブシステム ID

♦ サブシステムベンダ ID

♦ ボード ID (RSW1 設定値)

♦ 端子台番号

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioCommonGetDeviceInfo(

HANDLE DeviceHandle,

PDWORD DeviceID,

PDWORD VendorID,

PDWORD RevisionID,

PDWORD SubSystemID,

PDWORD SubsystemVendorID,

PDWORD BoardID,

PDWORD TerminalNo

);

●Visual Basic

Declare Function SdioCommonGetDeviceInfo Lib "IfSdio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef DeviceID As Long, _

ByRef VendorID As Long, _

ByRef RevisionID As Long, _

ByRef SubSystemID As Long, _

ByRef SubsystemVendorID As Long, _

ByRef BoardID As Long, _

ByRef TerminalNo As Long _

) As Long

Page 100: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

100

●Delphi

function SdioCommonGetDeviceInfo(

DeviceHandle : THandle;

var DeviceID: DWord;

var VendorID DWord;

var RevisionID DWord;

var SubSystemID DWord;

var SubsystemVendorID DWord;

var BoardID DWord;

var TerminalNo DWord

):DWord; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioCommonGetDeviceInfo(

IntPtr DeviceHandle,

out uint DeviceID,

out uint VendorID,

out uint RevisionID,

out uint SubSystemID,

out uint SubsystemVendorID,

out uint BoardID,

out uint TerminalNo

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioCommonGetDeviceInfo(

uint DeviceHandle,

out uint DeviceID,

out uint VendorID,

out uint RevisionID,

out uint SubSystemID,

out uint SubsystemVendorID,

out uint BoardID,

out uint TerminalNo

);

Page 101: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

101

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioCommonGetDeviceInfo Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByRef DeviceID As Integer, _

ByRef VendorID As Integer, _

ByRef RevisionID As Integer, _

ByRef SubSystemID As Integer, _

ByRef SubsystemVendorID As Integer, _

ByRef BoardID As Integer, _

ByRef TerminalNo As Integer _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioCommonGetDeviceInfo Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByRef DeviceID As Integer, _

ByRef VendorID As Integer, _

ByRef RevisionID As Integer, _

ByRef SubSystemID As Integer, _

ByRef SubsystemVendorID As Integer, _

ByRef BoardID As Integer, _

ByRef TerminalNo As Integer _

) As Integer

【パラメータ】

DeviceHandle リソース情報を取得したいデバイスの、SdioOpen関数によって得られたハンドル。

DeviceID デバイス ID を返す変数へのポインタ。

VendorID ベンダ ID を返す変数へのポインタ。

弊社のベンダ ID は 1147h です。

RevisionID リビジョン ID を返す変数へのポインタ。

SubSystemID サブシステム ID を返す変数へのポインタ。

SubsystemVendorID サブシステムベンダ ID を返す変数へのポインタ。

BoardID ボード ID (RSW1 設定値) を返す変数へのポインタ。

Page 102: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

102

TerminalNo 端子台番号を返す変数へのポインタ。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

DWORD dwDeviceID;

DWORD dwVendorID;

DWORD dwRevisionID;

DWORD dwSubSystemID;

DWORD dwSubSystemVendorID;

DWORD dwBoardID;

DWORD dwTerminalNo;

LONG nRet;

nRet = SdioCommonGetDeviceInfo(hDeviceHandle, &dwDeviceID, &dwVendorID, &dwRevisionID,

&dwSubSystemID, &dwSubSystemVendorID, &dwBoardID,&dwTerminalNo );

●Visual Basic

Dim hDeviceHandle As Long

Dim dwDeviceID As Long

Dim dwVendorID As Long

Dim dwRevisionID As Long

Dim dwSubSystemID As Long

Dim dwSubSystemVendorID As Long

Dim dwBoardID As Long

Dim dwTerminalNo As Long

Dim nRet As Long

nRet = SdioCommonGetDeviceInfo(hDeviceHandle, dwDeviceID, dwVendorID, _

RevisionID,dwSubSystemID, dwSubSystemVendorID, dwBoardID, dwTerminalNo )

Page 103: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

103

●Delphi

var

hDeviceHandle: THandle;

dwDeviceID: DWord;

dwVendorID: DWord;

dwRevisionID: DWord;

dwSubSystemID: DWord;

dwSubSystemVendorID: DWord;

dwBoardID: DWord;

dwTerminalNo: DWord;

nRet: DWord;

begin

nRet := SdioCommonGetDeviceInfo(hDeviceHandle, dwDeviceID, dwVendorID, dwRevisionID,

dwSubSystemID, dwSubSystemVendorID, dwBoardID, dwTerminalNo );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

uint DeviceID;

uint VendorID;

uint RevisionID;

uint SubSystemID;

uint SubSystemVendorID;

uint BoardID;

uint TerminalNo;

Ret = IFCSDIO_ANY.SdioClose(DeviceHandle, out DeviceID, out VendorID, out RevisionID,

out SubSystemID, out SubSystemVendorID, out BoardID, out TerminalNo);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim DeviceID As Integer

Dim VendorID As Integer

Dim RevisionID As Integer

Dim SubSystemID As Integer

Dim SubSystemVendorID As Integer

Dim BoardID As Integer

Dim TerminalNo As Integer

Ret = IFCSDIO_ANY.SdioClose(DeviceHandle, DeviceID, VendorID, RevisionID, _

SubSystemID, SubSystemVendorID, BoardID, TerminalNo);

hDeviceHandle が示しているデバイスのリソース情報を取得します。

Page 104: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

104

4. SdioInputPoint 【機能】

任意の点数の入力接点の状態を読み込みます。指定した開始接点番号から 1接点ずつ変数に格

納されます。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputPoint (

HANDLE DeviceHandle,

PBYTE Buffer,

DWORD StartNum,

DWORD InputNum

);

●Visual Basic

Declare Function SdioInputPoint Lib "IfSdio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Byte, _

ByVal StartNum As Long, _

ByVal InputNum As Long _

)As Long

●Delphi

function SdioInputPoint(

DeviceHandle: Thandle;

Buffer: pointer;

StartNum: DWORD;

InputNum DWORD

): Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

IntPtr DeviceHandle,

out byte Buffer,

uint StartNum

uint Num

);

Page 105: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

105

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

IntPtr DeviceHandle,

byte[] Buffer,

uint StartNum

uint Num

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

uint DeviceHandle,

out byte Buffer,

uint StartNum

uint Num

);

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

uint DeviceHandle,

byte[] Buffer,

uint StartNum

uint Num

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByRef Buffer As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal Buffer() As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Page 106: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

106

●Visual Basic .NET(x86 専用)

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByRef Buffer As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal Buffer() As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

Buffer デバイスから読み取ったデータを受け取るバッファを指すポインタです。

StartNum 入力開始接点番号 1~24 を指定してください。

入力接点の指定と、信号は下記のように対応しています。

接点番号 1 2 3 … 23 24

入力信号 IN1 IN2 IN3 … IN23 IN24

1: Low レベル 0:High レベル

InputNum 入力接点数を指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bBuffer[8];

nRet = SdioInputPoint( hDeviceHandle, &bBuffer[0], 16, 8 );

Page 107: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

107

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bBuffer(8) As Byte

nRet = SdioInputPoint( hDeviceHandle, bBuffer(0), 16, 8 )

●Delphi

Var

hDeviceHandle: THandle;

nRet: Integer;

bBuffer: Array[0..7] of Byte;

begin

nRet := SdioInputPoint( hDeviceHandle, @bBuffer[0], 16, 8 );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

byte[] Buffer = new byte[8];

Ret = IFCSDIO_ANY.SdioInputPoint(DeviceHandle, Buffer, 16, 8);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Buffer(8) As Byte

Ret = IFCSDIO_ANY.SdioInputPoint(DeviceHandle, Buffer, 16, 8)

デバイスハンドル hDeviceHandle が示すデバイスの IN16~23 の状態を bBuffer[0...7]に入力

します。

Page 108: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

108

5. SdioOutputPoint 【機能】

任意の点数の出力接点の出力を制御します。指定した開始接点番号から 1接点づつ変数に格納

されたデータで接点を制御します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioOutputPoint(

HANDLE DeviceHandle,

PBYTE Buffer,

DWORD StartNum,

DWORD OutputNum

);

●Visual Basic

Declare Function SdioOutputPoint Lib "IfSdio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Byte, _

ByVal StartNum As Long, _

ByVal OutputNum As Long _

)As Long

●Delphi

function SdioOutputPoint(

DeviceHandle: Thandle;

Buffer: pointer;

StartNum: DWORD;

OutputNum DWORD

): Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

IntPtr DeviceHandle,

ref byte Buffer,

uint StartNum,

uint Num

);

Page 109: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

109

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

IntPtr DeviceHandle,

byte[] Buffer,

uint StartNum,

uint Num

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

uint DeviceHandle,

ref byte Buffer,

uint StartNum,

uint Num

);

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

uint DeviceHandle,

byte[] Buffer,

uint StartNum,

uint Num

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByRef Buffer As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( ByVal DeviceHandle As IntPtr, _

ByVal Buffer() As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Page 110: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

110

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByRef Buffer As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( ByVal DeviceHandle As Integer, _

ByVal Buffer() As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

Buffer デバイスから出力させるデータを収めている変数へのポインタです。

StartNum 出力開始接点番号 1~24 を指定してください。

出力接点の指定と、信号は下記のように対応しています。

接点番号 1 2 3 … 23 24

出力信号 OUT1 OUT2 OUT3 … OUT23 OUT24

1: Low レベル 0:High レベル

OutputNum 出力接点数を指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

Page 111: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

111

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG hRet;

BYTE bBuffer[8];

bBuffer[0] = 1;

bBuffer[1] = 0;

bBuffer[2] = 0;

bBuffer[3] = 1;

bBuffer[4] = 0;

bBuffer[5] = 1;

bBuffer[6] = 1;

bBuffer[7] = 0;

nRet = SdioOutputPoint( hDeviceHandle, &bBuffer[0], 16, 8 );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bBuffer(8) As Byte

bBuffer(0) = 1

bBuffer(1) = 0

bBuffer(2) = 0

bBuffer(3) = 1

bBuffer(4) = 0

bBuffer(5) = 1

bBuffer(6) = 1

bBuffer(7) = 0

nRet = SdioOutputPoint( hDeviceHandle, bBuffer(0), 16, 8 )

●Delphi

Var

hDeviceHandle: THandle;

nRet: Integer;

bBuffer: array[0..7] of Byte

begin

bBuffer[0] := 1;

bBuffer[1] := 0;

bBuffer[2] := 0;

bBuffer[3] := 1;

bBuffer[4] := 0;

bBuffer[5] := 1;

bBuffer[6] := 1;

bBuffer[7] := 0;

nRet := SdioOutputPoint( hDeviceHandle, @bBuffer[0], 16, 8 );

end;

Page 112: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

112

●Visual C# .NET

IntPtr DeviceHandle

uint Ret;

byte[] Buffer = new byte[8];

Buffer[0] = 1;

Buffer[1] = 0;

Buffer[2] = 0;

Buffer[3] = 1;

Buffer[4] = 0;

Buffer[5] = 1;

Buffer[6] = 1;

Buffer[7] = 0;

Ret = IFCSDIO_ANY.SdioOutputPoint(DeviceHandle, Buffer, 16, 8);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Buffer(8) As Byte

Buffer(0) = 1

Buffer(1) = 0

Buffer(2) = 0

Buffer(3) = 1

Buffer(4) = 0

Buffer(5) = 1

Buffer(6) = 1

Buffer(7) = 0

Ret = IFCSDIO_ANY.SdioOutputPoint(DeviceHandle, Buffer, 16, 8)

デバイスハンドルhDeviceHandleが示すデバイスのOUT16~23にbBuffer[0...7]の値を出力し

ます。

Page 113: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

113

6. SdioInputByte 【機能】

接点 8点分のデータを読み込み、1バイト(8ビット)の変数に格納します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputByte(

HANDLE DeviceHandle,

DWORD InputNo,

PBYTE Value

);

●Visual Basic

Declare Function SdioInputByte Lib "IfSdio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal InputNo As Long, _

ByRef Value As Byte _

)As Long

●Delphi

function SdioInputByte(

DeviceHandle: Thandle;

InputNo: DWORD;

var Value Byte

): Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputByte(

IntPtr DeviceHandle,

uint No,

out byte Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputByte(

uint DeviceHandle,

uint No,

out byte Value

);

Page 114: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

114

●Visual Basic .NET (x86、x64 共用)

Declare Function SdioInputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByRef Value As Byte _

) As Integer

●Visual Basic .NET (x86 専用)

Declare Function SdioInputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByRef Value As Byte _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

InputNo 読み込む接点を下記の識別子で指定します。

IFSDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。

IFSDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。

IFSDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。

Value 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 IFSDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1

IFSDIO_IN9_16 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9

IFSDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bValue;

nRet = SdioInputByte( hDeviceHandle, IFSDIO_IN1_8, &bValue );

Page 115: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

115

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bValue As Byte

nRet = SdioInputByte( hDeviceHandle, IFSDIO_IN1_8, bValue )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

bValue: Byte;

begin

nRet := SdioInputByte( hDeviceHandle, IFSDIO_IN1_8, bValue );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

byte Value;

Ret = IFCSDIO_ANY.SdioInputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8, out Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Byte

Ret = IFCSDIO_ANY.SdioInputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8, Value)

デバイスハンドル hDeviceHandle が示すデバイスの IN1~8 の状態を bValue に入力します。

Page 116: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

116

7. SdioInputWord 【機能】

接点 16 点分のデータを読み込み、1ワード(16 ビット)の変数に格納します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputWord(

HANDLE DeviceHandle,

DWORD InputNo,

PWORD Value

);

●Visual Basic

Declare Function SdioInputWord Lib "IfSdio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal InputNo As Long, _

ByRef Value As Integer _

)As Long

●Delphi

function SdioInputWord(

DeviceHandle: Thandle;

InputNo: DWORD;

var Value Word

): Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputWord(

IntPtr DeviceHandle,

uint No,

out ushort Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputWord(

uint DeviceHandle,

uint No,

out ushort Value

);

Page 117: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

117

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioInputWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByRef Value As Short _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByRef Value As Short _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

InputNo 読み込む接点を下記の識別子で指定します。

IFSDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。

IFSDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。

Value 読み込まれたデータを格納する変数へのポインタを指定してください。

24 点入力の端子台では、IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0 IFSDIO_IN1_16 IN16 IN15 IN14 … IN3 IN2 IN1

IFSDIO_IN17_32 IN32 IN31 IN30 … IN19 IN18 IN17

1:Low レベル 0:High レベル

Page 118: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

118

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

WORD wValue;

nRet = SdioInputWord( hDeviceHandle, IFSDIO_IN1_16, &wValue );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim wValue As Integer

nRet = SdioInputWord( hDeviceHandle, IFSDIO_IN1_16, wValue )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

wValue: Word;

begin

nRet := SdioInputWord( hDeviceHandle, IFSDIO_IN1_16, wValue );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, 0x1234);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, &h1234 )

デバイスハンドル hDeviceHandle が示すデバイスの IN1~16 の状態を wValue に入力します。

Page 119: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

119

8. SdioInputDword 【機能】

接点 32 点分のデータを読み込み、1ダブルワード(32 ビット)の変数に格納します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputDword (

HANDLE DeviceHandle,

DWORD InputNo,

PDWORD Value

);

●Visual Basic

Declare Function SdioInputDword Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal InputNo As Long, _

ByRef Value As Long _

) As Long

●Delphi

function SdioInputDword (

DeviceHandle: Thandle;

InputNo: DWord;

var Value: DWord

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputDword(

IntPtr DeviceHandle,

uint No,

out uint Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputDword(

uint DeviceHandle,

uint No,

out uint Value

);

Page 120: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

120

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioInputDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByRef Value As Integer _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByRef Value As Integer _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

InputNo 読み込む接点を下記の識別子で指定します。

IFSDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。

Value 読み込まれたデータを格納する変数へのポインタを指定してください。

24 点入力の端子台では IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0 IFSDIO_IN1_32 IN32 IN31 IN30 … IN3 IN2 IN1

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

DWORD dwValue;

nRet = SdioInputDword( hDeviceHandle, IFSDIO_IN1_32, &dwValue );

Page 121: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

121

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim dwValue As Long

nRet = SdioInputDword( hDeviceHandle, IFSDIO_IN1_32, dwValue )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

dwValue: DWord;

begin

nRet := SdioInputDword( hDeviceHandle, IFSDIO_IN1_32, dwValue );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

uint Value;

Ret = IFCSDIO_ANY.SdioInputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32, out Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Integer

Ret = IFCSDIO_ANY.SdioInputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32, Value)

デバイスハンドル hDeviceHandle が示すデバイスの IN1~32 の状態を dwValue に入力します。

Page 122: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

122

9. SdioOutputByte 【機能】

接点 8点分の出力を制御します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioOutputByte (

HANDLE DeviceHandle,

DWORD OutputNo,

BYTE Value

);

●Visual Basic

Declare Function SdioOutputByte Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal OutputNo As Long, _

ByVal Value As Byte _

) As Long

●Delphi

function SdioOutputByte(

DeviceHandle: Thandle;

OutputNo: DWORD;

Value: Byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputByte(

IntPtr DeviceHandle,

uint No,

byte Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputByte(

uint DeviceHandle,

uint No,

byte Value

);

Page 123: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

123

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioOutputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByVal Value As Byte _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByVal Value As Byte _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

OutputNo データを出力する接点を下記の識別子で指定します

IFSDIO_OUT1_8 OUT1~OUT8 の 8 点分のデータを出力します。

IFSDIO_OUT9_16 OUT9~OUT16 の 8 点分のデータを出力します。

IFSDIO_OUT17_24 OUT17~OUT24 の 8 点分のデータを出力します。

Value 指定した接点へ出力するデータを指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 IFSDIO_OUT1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

IFSDIO_OUT9_16 OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9

IFSDIO_OUT17_24 OUT24 OUT23 OUT22 OUT21 OUT20 OUT19 OUT18 OUT17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioOutputByte( hDeviceHandle, IFSDIO_OUT1_8, 0x12);

Page 124: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

124

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioOutputByte( hDeviceHandle, IFSDIO_OUT1_8, &h12 )

●Delphi

var

hDeviceHandle: THandle;

hRet: Integer;

begin

hRet := SdioOutputByte( nDeviceHandle, IFSDIO_OUT1_8, $12 );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioOutputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_8, 0x12);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_8, &h12)

デバイスハンドル hDeviceHandle が示すデバイスの OUT1~8 へ 12h を出力します。

Page 125: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

125

10.SdioOutputWord

【機能】

接点 16 点分の出力を制御します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioOutputWord(

HANDLE DeviceHandle,

DWORD OutputNo,

WORD Value

);

●Visual Basic

Declare Function SdioOutputWord Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _ ByVal OutputNo As Long, _

ByVal Value As Integer _

) As Long

●Delphi

function SdioOutputWord(

DeviceHandle: Thandle;

OutputNo: DWORD;

Value: Word

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputWord(

IntPtr DeviceHandle,

uint No,

ushort Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputWord(

uint DeviceHandle,

uint No,

ushort Value

);

Page 126: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

126

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioOutputWord Lib “IfSdio.dll” ( _ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByVal Value As Short _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputWord Lib “IfSdio.dll” ( _ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByVal Value As Short _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

InputNo データを出力する接点を下記の識別子で指定します。

IFSDIO_OUT1_16 OUT1~OUT16 の 16 点分のデータを出力します。

IFSDIO_OUT17_24 OUT17~OUT32 の 16 点分のデータを出力します。

24 点出力の端子台では OUT25~OUT32 から出力できません。

Value 指定した接点へ出力するデータを指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0 IFSDIO_OUT1_16 OUT16 OUT15 OUT14 … OUT3 OUT2 OUT1

IFSDIO_OUT17_32 OUT32 OUT31 OUT30 … OUT19 OUT18 OUT17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioOutputWord( hDeviceHandle, IFSDIO_OUT1_16, 0x1234 );

Page 127: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

127

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioOutputWord( hDeviceHandle, IFSDIO_OUT1_16, &h1234 )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

begin

nRet := SdioOutputWord( hDeviceHandle, IFSDIO_OUT1_16, $1234 );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, 0x1234);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, &h1234)

デバイスハンドル hDeviceHandle が示すデバイスの OUT1~16 へ 1234h を出力します。

Page 128: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

128

11.SdioOutputDword

【機能】

接点 32 点分の出力を制御します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputDword (

HANDLE DeviceHandle,

DWORD OutputNo ,

DWORD Value

);

●Visual Basic

Declare Function SdioInputDword Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _ ByVal OutputNo As Long, _

ByVal Value As Long _

) As Long

●Delphi

function SdioInputDword (

DeviceHandle: Thandle;

OutputNo : DWORD;

Value: DWORD

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputDword(

IntPtr DeviceHandle,

uint No,

uint Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioOutputDword(

uint DeviceHandle,

uint No,

uint Value

);

Page 129: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

129

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioOutputDword Lib “IfSdio.dll” ( _ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByVal Value As Integer _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputDword Lib “IfSdio.dll” ( _ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByVal Value As Integer _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

OutputNo データを出力する接点を下記の識別子で指定します。

IFSDIO_OUT1_32 OUT1~OUT32 の 32 点分のデータを出力します。

24 点出力の端子台では IN/OUT25~IN/OUT32 から出力できません。

Value 指定した接点へ出力するデータを指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0 IFSDIO_OUT1_32 OUT32 OUT31 OUT30 … OUT3 OUT2 OUT1

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioOutputDword( hDeviceHandle, IFSDIO_OUT1_32, 0x123456);

Page 130: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

130

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioOutputDword( hDeviceHandle, IFSDIO_OUT1_32, &h123456 )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

begin

nRet := SdioOutputDword( hDeviceHandle, IFSDIO_OUT1_32, $123456 );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioOutputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_32, 0x123456);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_32, &h123456 )

デバイスハンドル hDeviceHandle が示すデバイスの OUT1~32 へ 00123456h を出力します。

Page 131: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

131

12.SdioSetLatchLogic

【機能】

入力信号をラッチする STB 信号の論理を指定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioSetLatchLogic(

HANDLE DeviceHandle,

BYTE LatchLogic

);

●Visual Basic

Declare Function SdioSetLatchLogic Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal LatchLogic As Byte _

) As Long

●Delphi

function SdioSetLatchLogic(

DeviceHandle: THandle;

LatchLogic: Byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetLatchLogic(

IntPtr DeviceHandle,

byte LatchLogic

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetLatchLogic(

uint DeviceHandle,

byte LatchLogic

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioSetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal LatchLogic As Byte _

) As Integer

Page 132: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

132

●Visual Basic .NET(x86 専用)

Declare Function SdioSetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal LatchLogic As Byte _ ‘ STB 入力論理

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

LatchLogic 入力信号をラッチする STB 信号の論理を以下の識別子で指定します。

IFSDIO_RISE_EDGE STB 信号の立ち上がりでラッチします。

IFSDIO_FALL_EDGE STB 信号の立ち下がりでラッチします。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

ラッチするエッジは立ち上がりと立ち下がりを両方同時に指定することもできます。

STB 信号の変化により割り込みを発生させることができますが、この割り込みの設定とラッチの

設定は独立して指定できます。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioSetLatchLogic( hDeviceHandle, IFSDIO_RISE_EDGE );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioSetLatchLogic( hDeviceHandle, IFSDIO_RISE_EDGE )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

begin

nRet := SdioSetLatchLogic( hDeviceHandle, IFSDIO_RISE_EDGE );

end;

Page 133: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

133

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioSetLatchLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_RISE_EDGE);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioSetLatchLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_RISE_EDGE)

STB 信号の立ち上がりで入力信号をラッチするように設定します。

Page 134: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

134

13.SdioGetLatchLogic

【機能】

入力信号をラッチする STB 信号の論理を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioGetLatchLogic(

HANDLE DeviceHandle,

PBYTE LatchLogic

);

●Visual Basic

Declare Function SdioGetLatchLogic Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByRef LatchLogic As Byte _

) As Long

●Delphi

function SdioGetLatchLogic(

DeviceHandle: THandle;

var LatchLogic: Byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioGetLatchLogic(

IntPtr DeviceHandle,

out byte LatchLogic

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioGetLatchLogic(

uint DeviceHandle,

out byte LatchLogic

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioGetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByRef LatchLogic As Byte _

) As Integer

Page 135: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

135

●Visual Basic .NET(x86 専用)

Declare Function SdioGetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByRef LatchLogic As Byte _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

LatchLogic STB 信号の論理を格納する変数へのポインタを指定してください。

STB 信号の論理を以下の識別子で格納されます。

IFSDIO_RISE_EDGE STB 信号の立ち上がりでラッチします。

IFSDIO_FALL_EDGE STB 信号の立ち下がりでラッチします。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

BYTE bLatchLogic;

LONG nRet;

nRet = SdioGetLatchLogic( hDeviceHandle, &bLatchLogic );

●Visual Basic

Dim hDeviceHandle As Long

Dim bLatchLogic As Byte

Dim nRet As Long

nRet = SdioGetLatchLogic (hDeviceHandle,bLatchLogic)

●Delphi

Var

hDeviceHandle: THandle;

bLatchLogic: byte;

nRet: Integer;

begin

nRet := SdioGetLatchLogic (hDeviceHandle, bLatchLogic);

end;

Page 136: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

136

●Visual C# .NET

IntPtr DeviceHandle;

byte LatchLogic;

uint Ret;

Ret = IFCSDIO_ANY.SdioGetLatchLogic(DeviceHandle, out LatchLogic );

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim LatchLogic As Byte

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioGetLatchLogic (DeviceHandle, LatchLogic)

STB 信号をラッチする論理を取得します。

Page 137: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

137

14.SdioInputLatchPoint

【機能】

任意の点数のラッチされた入力接点の状態を読み込みます。指定した開始接点番号から 1 接点ず

つ変数に格納されます。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputLatchPoint(

HANDLE DeviceHandle,

PBYTE Buffer,

DWORD StartNum,

DWORD InputNum

);

●Visual Basic

Declare Function SdioInputLatchPoint Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Byte, _

ByVal StartNum As Long, _

ByVal InputNum As Long _

) As Long

●Delphi

function SdioInputLatchPoint(

DeviceHandle: THandle;

Buffer: pointer;

StartNum: Integer;

InputNum: Integer

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

IntPtr DeviceHandle,

out byte Buffer,

uint StartNum,

uint Num

);

Page 138: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

138

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

IntPtr DeviceHandle,

byte[] Buffer,

uint StartNum,

uint Num

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

uint DeviceHandle,

out byte Buffer,

uint StartNum,

uint Num

);

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

uint DeviceHandle,

byte[] Buffer,

uint StartNum,

uint Num

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByRef Buffer As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal Buffer() As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Page 139: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

139

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByRef Buffer As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal Buffer() As Byte, _

ByVal StartNum As Integer, _

ByVal Num As Integer _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

Buffer デバイスから読み取ったデータを受け取るバッファを指すポインタです。

StartNum

入力開始接点番号 1~24 を指定してください。ピン IN/OUT1 が 1 に対応します。

InputNum 入力接点数を指定してください。 入力接点の指定と、信号は下記のように対応しています。

接点番号 1 2 3 … 31 32

入力信号 IN1 IN2 IN3 … IN31 IN32

1: Low レベル 0:High レベル

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bBuffer[8];

nRet = SdioInputLatchPoint( hDeviceHandle, &bBuffer[0], 16, 8 );

Page 140: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

140

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bBuffer(8) As Byte

nRet = SdioInputLatchPoint( hDeviceHandle, bBuffer(0), 16, 8 )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

bBuffer: Array[0..7] of Byte;

begin

nRet := SdioInputLatchPoint( hDeviceHandle, @bBuffer[0], 16, 8 );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

byte[] Buffer = new byte[8];

Ret = IFCSDIO_ANY.SdioInputLatchPoint(DeviceHandle, Buffer, 16, 8);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Buffer(8) As Byte

Ret = IFCSDIO_ANY.SdioInputLatchPoint(DeviceHandle, Buffer(0), 16, 8)

デバイスハンドル hDeviceHandle が示すデバイスの IN16~23 の入力接点状態を、bBuffer[0...7]

へ返します。

Page 141: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

141

15.SdioInputLatchByte

【機能】

ラッチされた接点 8点分のデータを読み込み、1バイト(8ビット)の変数に格納します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputLatcByte (

HANDLE DeviceHandle,

DWORD InputNo,

PBYTE Value

);

●Visual Basic

Declare Function SdioInputLatchByte Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal InputNo As Long, _

ByRef Value As Byte _

) As Long

●Delphi

function SdioInputLatchByte(

DeviceHandle: THandle;

InputNo: DWord;

var Value: Byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchByte(

IntPtr DeviceHandle,

uint No,

out byte Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchByte(

uint DeviceHandle,

uint No,

out byte Value

);

Page 142: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

142

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioInputLatchByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByRef Value As Byte _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByRef Value As Byte _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

InputNo 読み込む接点を下記の識別子で指定します。

IFSDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。

IFSDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。

IFSDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。

Value 入力した接点状態を返す変数へのポインタ。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 IFSDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1

IFSDIO_IN9_16 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9

IFSDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bValue;

nRet = SdioInputLatchByte( hDeviceHandle, IFSDIO_IN1_8, &bValue );

Page 143: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

143

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bValue As Byte

nRet = SdioInputLatchByte( hDeviceHandle, IFSDIO_IN1_8, bValue )

●Delphi

var

hDeviceHandle: Thandle;

nRet: Integer;

bValue: Byte;

begin

nRet := SdioInputLatchByte( hDeviceHandle, IFSDIO_IN1_8, bValue );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

byte Value;

Ret = IFCSDIO_ANY.SdioInputLatchByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8,

out Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Byte

Ret = IFCSDIO_ANY.SdioInputLatchByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8, Value )

デバイスハンドル hDeviceHandle が示すデバイスで STB 信号によってラッチされた IN1~IN8 の状

態を bValue に入力します。

Page 144: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

144

16.SdioInputLatchWord

【機能】

ラッチされた接点 16 点分のデータを読み込み、1ワード(16 ビット)の変数に格納します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputLatchWord(

HANDLE DeviceHandle,

DWORD InputNo,

PWORD Value

);

●Visual Basic

Declare Function SdioInputLatchWord Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal InputNo As Long, _

ByRef Value As Integer _

) As Long

●Delphi

function SdioInputLatchWord (

DeviceHandle: Thandle;

InputNo: DWord;

var Value: Word

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchWord(

IntPtr DeviceHandle,

uint No,

out ushort Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchWord(

uint DeviceHandle,

uint No,

out ushort Value

);

Page 145: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

145

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioInputLatchWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal No As Integer, _

ByRef Value As Short _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal No As Integer, _

ByRef Value As Short _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

InputNo 読み込む接点を下記の識別子で指定します。

IFSDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。

IFSDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。

24 点入力の端子台では IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

Value 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0 IFSDIO_IN1_16 IN16 IN15 IN14 … IN3 IN2 IN1

IFSDIO_IN17_32 IN32 IN31 IN30 … IN19 IN18 IN17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

WORD wValue;

nRet = SdioInputLatchWord( hDeviceHandle, IFSDIO_IN1_16, &wValue );

Page 146: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

146

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim wValue As Integer

nRet = SdioInputLatchWord( hDeviceHandle, IFSDIO_IN1_16, wValue )

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

wValue: Word;

begin

nRet := SdioInputLatchWord( hDeviceHandle, IFSDIO_IN1_16, wValue );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

ushort Value;

Ret = IFCSDIO_ANY.SdioInputLatchWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_16,

out Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Short

Ret = IFCSDIO_ANY.SdioInputLatchWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_16, Value)

デバイスハンドルhDevoceHandleが示すデバイスでSTB信号によってラッチされたIN1~IN16の状

態を wValue に入力します。

Page 147: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

147

17.SdioInputLatchDword

【機能】

ラッチされた接点 32 点分のデータを読み込み、1ダブルワード(32 ビット)の変数に格納します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioInputLatchDword (

HANDLE DeviceHandle,

DWORD InputNo,

PDWORD Value

);

●Visual Basic

Declare Function SdioInputLatchDword Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal InputNo As Long, _

ByRef Value As Long _

) As Long

●Delphi

function SdioInputLatchDword (

DeviceHandle: Thandle;

InputNo: DWord;

var Value: DWord

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchDword(

IntPtr DeviceHandle,

uint No,

out uint Value

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioInputLatchDword(

uint DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out uint Value // 接点状態を返す変数への参照渡し

);

Page 148: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

148

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioInputLatchDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Integer _ ‘ 接点状態を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Integer _ ‘ 接点状態を返す変数への参照渡し

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

InputNo 読み込む接点を下記の識別子で指定します。

IFSDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。

24 点入力の端子台では IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

Value 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0 IFSDIO_IN1_32 IN32 IN31 IN30 … IN3 IN2 IN1

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

DWORD dwValue;

nRet = SdioInputLatchDword( hDeviceHandle, IFSDIO_IN1_32, &dwValue );

Page 149: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

149

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim dwValue As Long

nRet = SdioInputLatchDword( hDeviceHandle, IFSDIO_IN1_32, dwValue )

●Delphi

var

hDeviceHandle: Thandle;

nRet: Integer;

dwValue: DWORD;

begin

nRet := SdioInputLatchDword( hDeviceHandle, IFSDIO_IN1_32, dwValue );

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

uint Value;

Ret = IFCSDIO_ANY.SdioInputLatchDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32,

out Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Integer

Ret = IFCSDIO_ANY.SdioInputLatchDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32, Value )

デバイスハンドルhDeviceHandleが示すデバイスでSTB信号によってラッチされたIN1~IN32の状

態を dwValue に入力します。

Page 150: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

150

18.SdioGetTmoduleStatus

【機能】

通信モジュールの接続状態を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioGetTmoduleStatus(

HANDLE DeviceHandle,

PBYTE TmoduleStatus

);

●Visual Basic

Declare Function SdioGetTmoduleStatus Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByRef TmoduleStatus As Byte _

) As Long

●Delphi

function SdioGetTmoduleStatus (

DeviceHandle: THandle;

var TmoduleStatus: byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioGetTmoduleStatus(

IntPtr DeviceHandle, // デバイスハンドル

out byte TmoduleStatus // 接続状態を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioGetTmoduleStatus(

uint DeviceHandle, // デバイスハンドル

out byte TmoduleStatus // 接続状態を格納する変数への参照渡し

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioGetTmoduleStatus Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef TmoduleStatus As Byte _ ‘ 接続状態を格納する変数への参照渡し

) As Integer

Page 151: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

151

●Visual Basic .NET(x86 専用)

Declare Function SdioGetTmoduleStatus Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef TmoduleStatus As Byte _ ‘ 接続状態を格納する変数への参照渡し

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

TmoduleStatus 通信モジュールの接続状態を格納する変数へのポインタを指定します。(C 言語)

通信モジュールの接続状態を格納する変数を指定します。(Visual Basic、Delphi)

bit7 bit6 Bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 PWRNG SAFNG 予約 予約 PWROK SAFOK

SAFOK 1 現在、通信モジュールと接続されています。

0 現在、通信モジュールと接続されていません。。

PWROK 1 現在、通信モジュールの電源電圧は正常です。

0 現在、通信モジュールの電源電圧が異常です。

SAFNG 1 前回の本関数実行時から、今回の実行までに、通信モジュール

との切断がありました。

0 前回の本関数実行時から、今回の実行までに、通信モジュール

との切断はありませんでした。

PWRNG 1 前回の本関数実行時から、今回の実行までに、通信モジュール

の電源電圧の異常がありました。

0 前回の本関数実行時から、今回の実行までに、通信モジュール

の電源電圧の異常はありませんでした。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

BYTE bTmoduleStatus;

LONG nRet;

nRet = SdioGetTmoduleStatus(hDeviceHandle, &bTmoduleStatus);

Page 152: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

152

●Visual Basic

Dim hDeviceHandle As Long

Dim bTmoduleStatus As Byte

Dim nRet As Long

nRet = SdioGetTmoduleStatus(hDeviceHandle, bTmoduleStatus)

●Delphi

var

hDeviceHandle: THandle;

bTmoduleStatus: byte;

nRet: Integer;

begin

nRet := SdioGetTmoduleStatus(hDeviceHandle, bTmoduleStatus);

end;

●Visual C# .NET

IntPtr DeviceHandle;

byte TmoduleStatus;

uint Ret;

Ret = IFCSDIO_ANY.SdioGetTmoduleStatus(DeviceHandle, out TmoduleStatus);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim TmoduleStatus As Byte

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioGetTmoduleStatus(DeviceHandle, TmoduleStatus)

通信モジュールの接続状態を取得します。

Page 153: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

153

19.SdioSetTmodulePower

【機能】

通信モジュールの電源を制御します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioSetTmodulePower(

HANDLE DeviceHandle,

BYTE SetPower

);

●Visual Basic

Declare Function SdioSetTmodulePower Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal SetPower As Byte _

) As Long

●Delphi

Function SdioSetTmodulePower (

DeviceHandle: Thandle;

SetPower: Byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetTmodulePower(

IntPtr DeviceHandle, // デバイスハンドル

byte SetPower // 電源状態

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetTmodulePower(

uint DeviceHandle, // デバイスハンドル

byte SetPower // 電源状態

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioSetTmodulePower Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal SetPower As Byte _ ‘ 電源状態

) As Integer

Page 154: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

154

●Visual Basic .NET(x86 専用)

Declare Function SdioSetTmodulePower Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal SetPower As Byte _ ‘ 電源状態

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

SetPower 電源状態を指定します。

識別子 値 内容

IFSDIO_POWER_ON 1 通信モジュールの電源を ON にします。

IFSDIO_POWER_OFF 0 通信モジュールの電源を OFF にします。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioSetTmodulePower(hDeviceHandle, IFSDIO_POWER_OFF);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioSetTmodulePower (hDeviceHandle, IFSDIO_POWER_OFF)

●Delphi

var

hDeviceHandle: Thandle;

nRet: Integer;

begin

nRet := SdioSetTmodulePower (hDeviceHandle, IFSDIO_POWER_OFF);

end;

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioSetTmodulePower(DeviceHandle, IFCSDIO_ANY.IFSDIO_POWER_OFF);

Page 155: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

155

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioSetTmodulePower(DeviceHandle, IFCSDIO_ANY.IFSDIO_POWER_OFF)

通信モジュールの電源を OFF にします。

Page 156: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

156

20.SdioSetEvent

【機能】

STB 信号の変化による割り込みが発生したときに実行するイベントを指定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioSetEvent (

HANDLE DeviceHandle,

HANDLE WindowHandle,

ULONG WindowsMessage,

HANDLE EventHandle,

LPSDIOCALLBACK CallBackProc,

DWORD UserData

);

●C 言語(x64)

LONG SdioSetEvent (

HANDLE DeviceHandle,

HANDLE WindowHandle,

ULONG WindowsMessage,

HANDLE EventHandle,

LPSDIOCALLBACK CallBackProc,

PVOID UserData

);

●Visual Basic

Declare Function SdioSetEvent Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByVal WindowHandle As Long, _

ByVal WindowsMessage As Long, _

ByVal EventHandle As Long, _

ByVal CallBackProc As Long, _

ByVal UserData As Long _

) As Long

●Delphi

function SdioSetEvent (

DeviceHandle: THandle;

WindowHandle: THandle;

WindowsMessage: Integer;

EventHandle: THandle;

CallBackProc: Pointer;

UserData: Integer;

):Integer; stdcall; external 'IfSdio.DLL';

Page 157: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

157

Page 158: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

158

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetEvent(

IntPtr DeviceHandle,

IntPtr WindowsHandle,

uint WindowMessage,

IntPtr EventHandle,

PSDIOCALLBACK CallBackProc,

IntPtr UserData

);

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetEvent(

IntPtr DeviceHandle,

IntPtr WindowsHandle,

uint WindowMessage,

IntPtr EventHandle,

IntPtr CallBackProc,

IntPtr UserData

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetEvent(

uint DeviceHandle,

uint WindowsHandle,

uint WindowMessage,

uint EventHandle,

PSDIOCALLBACK CallBackProc,

uint UserData

);

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetEvent(

uint DeviceHandle,

uint WindowsHandle,

uint WindowMessage,

uint EventHandle,

IntPtr CallBackProc,

uint UserData

);

Page 159: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

159

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioSetEvent Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal WindowsHandle As IntPtr, _

ByVal WindowMessage As Integer, _

ByVal EventHandle As IntPtr, _

ByVal CallBackProc As PSDIOCALLBACK, _

ByVal UserData As IntPtr _

) As Integer

Declare Function SdioSetEvent Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal WindowsHandle As IntPtr, _

ByVal WindowMessage As Integer, _

ByVal EventHandle As IntPtr, _

ByVal CallBackProc As IntPtr, _

ByVal UserData As IntPtr _

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioSetEvent Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal WindowsHandle As Integer, _

ByVal WindowMessage As Integer, _

ByVal EventHandle As Integer, _

ByVal CallBackProc As PSDIOCALLBACK, _

ByVal UserData As Integer _

) As Integer

Declare Function SdioSetEvent Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal WindowsHandle As Integer, _

ByVal WindowMessage As Integer, _

ByVal EventHandle As Integer, _

ByVal CallBackProc As IntPtr, _

ByVal UserData As Integer _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

WindowHandle 割り込み発生時にメッセージを送るウィンドウハンドルを指定します。

Page 160: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

160

WindowsMessage 割り込み発生時に送られるメッセージを指定します。

EventHandle 割り込み発生時にシグナル状態になるイベントハンドルを指定します。

CallBackProc 割り込み発生時に呼び出されるコールバック関数へのポインタを指定します。

UserData コールバック関数およびメッセージハンドラへ引き渡すユーザ・データを指定してください。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

HANDLE hEventHandle;

LONG nRet;

hEventHandle = CreateEvent(NULL, FALSE, FALSE, NULL);

nRet = SdioSetEvent(hDeviceHandle, NULL, 0, hEventHandle, NULL, 0);

●Visual Basic

Dim hDeviceHandle As Long

Dim hEventHandle As Long

Dim nRet As Long

hEventHandle = CreateEvent(0, False, False, 0)

nRet = SdioSetEvent(hDeviceHandle, 0, 0, hEventHandle, 0, 0)

●Delphi

var

hDeviceHandle: THandle;

hEventHandle: Thandle;

nRet: Integer;

begin

hEventHandle = CreateEvent(nil, False, False, nil);

nRet := SdioSetEvent(hDeviceHandle, nil, 0, hEventHandle, nil, 0);

end;

●Visual C# .NET

IntPtr DeviceHandle;

IntPtr WindowHandle;

uint Ret;

Page 161: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

161

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, WindowHandle, 0x400, 0, IntPtr.Zero, 0);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim WindowHandle As IntPtr

Dim Ret As Long

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, WindowHandle, &h400, 0, IntPtr.Zero, 0)

STB 割り込み発生時にシグナル状態にするイベントのハンドルを登録します。

Page 162: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

162

21.SdioSetEventLogic

【機能】

STB 信号の割り込み発生論理と、通信モジュールの異常発生割り込みを設定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioSetEventLogic (

HANDLE DeviceHandle,

BYTE EventLogic

);

●Visual Basic

Declare Function SdioSetEventLogic Lib "IfSdio.DLL" ( _

RyVal DeviceHandle As Long, _

RyVal EventLogic As Byte _

) As Long

●Delphi

function SdioSetEventLogic (

DeviceHandle: THandle;

EventLogic: Byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetEventLogic(

IntPtr DeviceHandle,

byte EventLogic

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioSetEventLogic(

uint DeviceHandle,

byte EventLogic

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioSetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _

ByVal EventLogic As Byte _

) As Integer

Page 163: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

163

●Visual Basic .NET(x86 専用)

Declare Function SdioSetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _

ByVal EventLogic As Byte _

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

EventLogic STB 信号の割り込み論理を以下の識別子で指定します。

IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みを発生します。

IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みを発生します。 通信モジュールの異常発生割り込みを以下の識別子で指定します。

IFSDIO_CONNECT_EVENT 通信モジュールとの切断で割り込みを発生します。

IFSDIO_POWER_EVENT 通信モジュールの電源電圧異常で割り込みを発生します。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

割り込みを発生する論理はは立ち上がりと立ち下がりを両方同時に指定することもできます。

STB 信号の変化により入力信号の状態をラッチできますが、このラッチの設定と割り込みの設

定は独立して指定できます。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioSetEventLogic(hDeviceHandle, IFSDIO_FALL_EDGE);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioSetEventLogic(hDeviceHandle, IFSDIO_FALL_EDGE)

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

begin

nRet := SdioSetEventLogic(hDeviceHandle, IFSDIO_FALL_EDGE);

end;

Page 164: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

164

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE)

STB 信号の割り込み発生論理を立ち下がりに設定します。

Page 165: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

165

22.SdioGetEventLogic

【機能】

STB 信号の割り込み発生論理の設定を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。

新たにアプリケーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG SdioGetEventLogic (

HANDLE DeviceHandle,

PBYTE EventLogic

);

●Visual Basic

Declare Function SdioGetEventLogic Lib "IfSdio.DLL" ( _

ByVal DeviceHandle As Long, _

ByRef EventLogic As Byte _

) As Long

●Delphi

function SdioGetEventLogic (

DeviceHandle: Thandle;

EventLogic: Byte

):Integer; stdcall; external 'IfSdio.DLL';

●Visual C# .NET(x86、x64 共用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioGetEventLogic(

IntPtr DeviceHandle, // デバイスハンドル

out byte EventLogic // 割り込み発生論理を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport(“IfSdio.dll”)] public static extern uint SdioGetEventLogic(

uint DeviceHandle, // デバイスハンドル

out byte EventLogic // 割り込み発生論理を返す変数への参照渡し

);

●Visual Basic .NET(x86、x64 共用)

Declare Function SdioGetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef EventLogic As Byte _ ‘ 割り込み発生論理を返す変数への参照渡し

) As Integer

Page 166: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

166

●Visual Basic .NET(x86 専用)

Declare Function SdioGetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef EventLogic As Byte _ ‘ 割り込み発生論理を返す変数への参照渡し

) As Integer

【パラメータ】

DeviceHandle SdioOpen関数で取得したデバイスハンドルを指定してください。

EventLogic STB 信号の割り込み論理、通信モジュール異常の割り込み発生条件を格納する変数へのポイン

タを指定します。

割り込み論理、条件は以下の識別子で格納されます。

IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みを発生します。

IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みを発生します。

IFSDIO_CONNECT_EVENT 通信モジュールとの切断で割り込みを発生します。

IFSDIO_POWER_EVENT 通信モジュールの電源電圧異常で割り込みを発生します。

【戻り値】

正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が終了しなかった場合

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bEventLogic;

nRet = SdioGetEventLogic(hDeviceHandle, &bEventLogic);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bEventLogic As Byte

nRet = SdioGetEventLogic(hDeviceHandle, bEventLogic)

●Delphi

var

hDeviceHandle: THandle;

nRet: Integer;

bEventLogic : BYTE;

begin

nRet := SdioGetEventLogic (hDeviceHandle, bEventLogic);

end;

Page 167: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

167

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

byte EventLogic;

Ret = IFCSDIO_ANY.SdioGetEventLogic(DeviceHandle, out EventLogic);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim EventLogic As Byte

Ret = IFCSDIO_ANY.SdioGetEventLogic(DeviceHandle, EventLogic)

STB 信号の割り込み発生論理を取得します。

Page 168: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

168

7.3 コールバック関数

※Visual Basicでコールバック機能を使用する場合、幾つかの制約事項が発生します(後述の『7.3.2

Visual Basic使用時の制約事項』をご参照下さい)。

7.3.1 SdioSetEvent 関数により設定されるコールバック関数

SdioSetEvent

関数にて登録し、STB信号の割り込み発生、通信モジュール異常時の割り込み発生した時にコー

ルされるコールバックルーチンです。

【記述】

コールバックルーチンを使用する場合、下記のように記述します。

(下記はコールバックルーチンを CallBackProc とする場合の例です。)

●C 言語

void CALLBACK CallBackProc(DWORD EventLogic, DWORD UserData)

{

// 割り込みイベントに対応する処理を記述します

}

コールバックルーチンの関数型 LPSDIOCALLBACK は下記のように定義されます。

#define SDIOCALLBACK CALLBACK

typedef void (SDIOCALLBACK *LPSDIOCALLBACK)(DWORD EventLogic, DWORD UserData);

●C 言語(x64)

void CALLBACK CallBackProc(DWORD EventLogic, PVOID UserData)

{

// 割り込みイベントに対応する処理を記述します

}

コールバックルーチンの関数型 LPSDIOCALLBACK は下記のように定義されます。

#define SDIOCALLBACK CALLBACK

typedef void (SDIOCALLBACK *LPSDIOCALLBACK)(DWORD EventLogic, PVOID UserData);

Page 169: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

169

●Visual Basic

Function CallBackProc(EventLogic As Long, UserData As Long)

‘ 割り込みイベントに対応する処理を記述します

End Function

コールバックルーチンはSdioSetEvent

関数の呼び出しを行うプロジェクト内の標準モジュールの中に記述しなければなりません。

SdioSetEvent

関数の引数パラメータでプロシージャのアドレスを渡す為にAddressOf演算子を使用します。

(SdioSetEvent

関数の使用例を参照してください。)AddressOf 演算子を使うと、プロシージャからの戻り値で

はなく、プロシージャ自体のアドレスが、ダイナミック リンク ライブラリ (DLL)の

SdioSetEvent

関数に渡されます。

●Delphi

procedure CallBackProc(EventLogic:DWORD; UserData:DWORD); stdcall;

begin

// 割り込みイベントに対応する処理を記述します

end;

●Visual C# .NET

// コールバック関数

void CallBackProc(uint EventLogic, IntPtr UserData){

// 割り込み処理を記述します

}

// メインルーチン

uint Ret;

IntPtr DeviceHandle;

IFCSDIO_ANY.PSDIOCALLBACK proc = new IFCSDIO_ANY.PSDIOCALLBACK(CallBackProc);

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”);

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, IntPtr.Zero, 0, IntPtr.Zero, proc,

new IntPtr(100));

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE);

Page 170: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

170

●Visual Basic .NET

Public proc As IFCSDIO_ANY.PSDIOCALLBACK

‘ コールバック関数

Public Sub CallBackProc(ByVal EventLogic As Integer, ByVal UserData As IntPtr)

‘ 割り込み処理を記述します

End Sub

‘ メインルーチン

Dim Ret As Integer

Dim DeviceHandle As IntPtr

proc = New IFCSDIO_ANY.PSDIOCALLBACK(AddressOf CallBackProc)

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”)

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, IntPtr.Zero, 0, IntPtr.Zero, proc, _

new IntPtr(100))

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE)

【パラメータ】

EventLogic

コールバック関数を呼び出した STB 信号の割り込み発生論理です。

割り込み論理は以下の識別子で格納されます。

IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みが発生しました。

IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みが発生しました。

IFSDIO_CONNECT_EVENT 通信モジュールとの切断で割り込みが発生しました。

IFSDIO_POWER_EVENT 通信モジュールの電源電圧異常で割り込みが発生しました。

UserData SdioSetEvent

関数で指定したユーザデータです。

【戻り値】

コールバックルーチンに戻り値はありません。

Page 171: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

171

7.3.2 Visual Basic 使用時の制約事項

Visual Basic Ver. 4.0 では、コールバック関数の登録ができない(AddressOf 演算子がサポート

されない)為、イベント機能を使用することはできません。Visual Basic Ver. 5.0 以降は可能で

す。

Microsoft Visual Basic 6.0 上で弊社ソフトウェアライブラリが提供する関数コールバック機能

を使用した場合、下記のアプリケーションエラーが発生する場合があります。

「“0x660d64d0”の命令が“0x0000009c”のメモリを参照しました。メモリが“written”になること

はできませんでした。」

※”0x660d64d0”は異なる場合があります

アプリケーションエラーは下記の条件で発生します。

〇登録したコールバック関数内で、下記の関数、ステートメントをコールする。

・関数コール(弊社ソフトウェアライブラリが提供する関数含む)

・Visual Basic のステートメント(Str()など)

・スタティックテキストへの文字列代入など

また、この問題は、Visual Basic 6.0 の Learning、Professional、Enterprise Edition のすべて

に当てはまり、サービスパックの適用有無にかかわらず発生します。

コールバック関数内で、アプリケーションエラーを発生させる処理を行わずに別の機能を利用する

ことで目的の処理が実行できるように設計を変更してください。

Microsoft Visual Basic 6.0 は、スレッディング モデルとして、アパートメント モデルを採用

しています。

Microsoft Visual Basic 6.0 が作成、起動したスレッド以外からコールバック関数が実行された

場合にアプリケーションエラーが発生する場合があります。

弊社ソフトウェアライブラリでは、ライブラリ内で起動した別のスレッドから登録されたコールバ

ック関数の実行を行いますので、この問題が発生します。

Page 172: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

172

7.4 戻り値一覧 【標準 COM 部】

エラー識別子 値 意味 対処方法 IFCOMU210X_ERROR_SUCCESS 0 正常終了 - IFCOMU210X_ERROR_INVALID_HANDLE

00000001h デバイスハンドルが正し

くありません。 不正なデバイスハンドルで呼び出し

を行おうとしました。 CreateFile関数で返されたデバイスハ

ンドルを使用してください。 IFCOMU210X_ERROR_INVALID_PARAMETER

00000002h 引数パラメータの値が不

正です。 API関数に指定する値が不正もしく

は範囲外です。 IFCOMU210X_ERROR_DEVICE_IO_FAILED

00000003h デバイスとのアクセス、

DLLの呼び出しに失敗し

ました。

デバイスとのアクセス、またはDLLの呼び出しに失敗しています。 製品が正常にインストールされてい

るかご確認下さい。 IFCOMU210X_ERROR_FUNCTION_NOT_SUPPORTED

00000004h 本関数はサポートされて

いません。 本関数がサポートされていないCOMに対して実行されています。

【汎用 DIO 部】

エラー識別子 値 意味 対処方法

IFSDIO_ERROR_SUCCESS 0 正常終了

IFSDIO_ERROR_INVALID_PARAM

ETER

0xC0001001 引数パラメータの値が

不正です

API関数に指定する値が不正もしくは

範囲外です。

または、引数にNULLポインタが指定さ

れています。

IFSDIO_ERROR_TERMINAL 0xC0003001 端子台に異常がありま

端子台の電源電圧に異常があるか、端

子台が接続されていません。または正

しくない組み合わせの端子台が接続

されています。

正しい組み合わせの端子台を接続し

てください。

IFSDIO_ERROR_INVALID_HANDL

E

0xC0000003 デバイスハンドルが正

しくありません

不正なデバイスハンドルで呼び出し

を行おうとしました。オープン関数で

返されたデバイスハンドルを使用し

てください。

Page 173: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

173

第8章 サンプルプログラム

以下、各サンプルプログラムの概要を説明します。

8.1 実行手順 【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。 ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「*.mak」を開き、ビルドしてください。

●Visual C++の場合(Microsoft Visual C++ .NET 2003~2008)

Visual Studioを起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プ

ロジェクトファイル「*.vcproj」を開き、ビルドしてください。

●Visual C++の場合(Microsoft Visual C++ .NET 2010 以降)

Visual Studioを起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、

プロジェクトファイル「*.vcxproj」を開き、ビルドしてください。

※「*.vcxproj」ファイルはVisual Studio 2010で作成しております。

Visual Studio 2010より新しいVersionで実行する場合には、下記設定を行ってください。

Visual Studioのメニューから、「プロジェクト」- 「プロパティ」-「構成プロパティ」

-「全般」を開き、「プラットフォームツールセット」を使用している環境に合わせて変

更。

例) Visual Studio 2012を使用している場合

Visual Studio 2012(v110)を選択(プルダウンメニューより選択できます)

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「*.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「*.dpr」を開き、ビルドしてください。

●Visual C# .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プ

ロジェクトファイル「*.csproj」※1を開き、ビルドしてください。

●Visual Basic .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プ

ロジェクトファイル「*.vbproj」※1を開き、ビルドしてください。

※1 クラスライブラリもビルドされます。

作成後、生成された実行ファイル*.exe を起動してください。

Page 174: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

174

8.2 サンプルプログラム一覧

サンプルプログラム名 概要 Send データの送信を行います。

ポートの設定は、 ・ビットレート9600bps ・パリティなし ・ストップビット1ビット ・データビット8ビット です。

Receive データの受信を行います。 ポートの設定は、 ・ビットレート9600bps ・パリティなし ・ストップビット1ビット ・データビット8ビット です。

InPoint 通信モジュールの指定した接点から1点入力します。 OutPoint 通信モジュールの指定した接点から1点出力します。 Monitor モニタモードのサンプルプログラムです。

※CBI-4641,CBI-466120,CSI-466120のみサポートしていま

す。 Event 受信イベントを発生させ処理するサンプルプログラムで

す。 DioEvent STB信号のイベントで全点入力を行います。

Page 175: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

175

第9章 ユーティリティ

以下、各ユーティリティの概要を説明します。

9.1 通信ユーティリティ 【起動方法】

「スタート」メニューより「プログラム」-「Interface GPC-4161」-「通信ユーティリティプ

ログラム」を起動します。

ここで、「設定」メニューを選ぶと、オープンするポートの選択と通信設定を行います。

選択後、「接続」メニューから、「接続」を選ぶことでポートをオープンし、通信ができる状態

になります。

入力された文字が送信され、受信された文字がウィンドウに表示されます。

※通信設定で「送信データのローカルエコー」をチェックした場合、送信した文字が青文字で

ウィンドウに表示されます。

Page 176: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

176

9.2 自己診断プログラム 本製品には、動作不具合時の原因がハードウェア的なものか、ソフトウェア的なものかを容易

に判断するための自己診断機能を搭載しています。診断プログラムを用いて動作確認を行って

ください。

※下記製品は対応しておりません、ご注意下さい。

PCI-466111U, PCI-466110U, PCI-466101U

【必要な機材】

通信インタフェースモジュール

【起動方法】

PCI/CompactPCI ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」

-「Interface GPC-4161」-「通信診断プログラム」を起動します。

メニューの「ファイル」-「ポートの選択」を選択すると、インストールされているデバイスの

一覧が表示されます。その中から、使用したいポートを選択し、「OK」ボタンをクリックします。

画面に、ポート番号、型式名、RSW1 の設定値、I/O ポート(またはメモリ)ベースアドレス(ボ

ード制御部)、I/O ポート(またはメモリ)ベースアドレス(ポート部)、IRQ が表示されます。

※このユーティリティで同時に複数のポートをオープンすることはできません。

※同一型式のインタフェースモジュールを複数枚使用する場合には、RSW1 の設定値をインタフ

ェースモジュール毎で異なる値に設定してください。

【診断】

1.メニューの「診断」→「診断開始」を選択します。

2.レジスタアクセス、データ送受信、制御信号、FIFO、割り込みの診断が行われ、結果が画面

に表示されます。

3.診断結果が「NG」の場合には、メニューから「ファイル」-「結果の保存」を選択して、診断

結果をファイルに保存してください。その診断結果とともに弊社 カスタマーサポートセンター

までお問い合わせください。

Page 177: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

177

9.3 通信方式設定プログラム

RS-485 の通信方式(半二重通信/全二重通信)を設定するユーティリティです。

※下記製品以外には対応しておりません。ご注意下さい。

PCI-466111U(RS-485), PCI-466101U

※設定した通信方式はOS上に保存され、再起動後は自動で設定した値となります。

EWFの機能を有効にしている場合、設定が保存されません。ご注意下さい。

【GUI での使用方法】

ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface

GPC-4161」-「Duplex Setting Utilty」を起動します。

メニューバーの「File(F)」 → 「Open(O)」でデバイスオープン画面を立ち上げ、通信方式を

設定するデバイス(RS-485)を選択します。

「Full Duplex」、「Half Duplex」のラジオボタンを選択し、「Set」ボタンを押下します。

※下記の画面のラジオボタンで選択されている設定が現在の設定値となっています。

メニューバーの「File(F)」 → 「Close(C)」でデバイスクローズを行います。

メニューバーの「File(F)」 → 「Exit(X)」でプログラムを終了します。

Page 178: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

178

【CUI での使用方法】

コマンドプロンプトを起動し「SetDuplex.exe」に引数を渡すことで、コマンドライン上で全二

重・半二重の切替を行う事ができます。

Setduplex.exe [COM 番号] [DuplexMode]

COM 番号 :COMxx を指定します。xx には設定を行う COM 番号を指定します。

DuplexMode :全二重に設定する場合は 1, 半二重に設定する場合は 0を指定してください。

下記にそれぞれの実行例を記載します。

・全二重の設定 >Setduplex.exe COM3 1 COM3 を全二重に設定します。

・半二重の設定 >Setduplex.exe COM3 0 COM3 を半二重に設定します。

Page 179: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

179

9.4 カードバス ID 設定ユーティリティ このユーティリティは複数枚の同一型式カードバス製品を使用するためのものです。カード毎に異

なる ID 番号を設定します。この ID 番号は PCI インタフェースモジュールで言えば RSW 番号と同等

の意味を持ち、デバイスマネージャ、自己診断プログラムでも、RSW1 として表示されます。

【操作方法】 1. ドライバソフトウェアのインストール完了後、「コントロールパネル」の「Interface CardBus ID

Utility」を開きます。

2. 現在挿入されている弊社カードバス製品の情報が表示されます。左から「バス番号」、「デバイス

番号」、「ファンクション番号」、「型式」、「ID 番号」を示します。ID 番号の設定を行いたい製品

をダブルクリックして下さい。

3. ID番号を設定するダイアログが開きますので、コンボボックス内で設定したいID番号を選択し、

「Ok」ボタンをクリックします。

4. これで ID 番号の設定は完了です。

※ 設定できる ID 番号は 0h~Fh までです。

※ 変更した ID 番号をドライバに認識させるには、一度カードを抜き差しするか、システムを再起動

して下さい。

※ 設定した ID 番号が分かるように番号を記したシールをカードに貼ることをお勧めします。

Page 180: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

180

9.5 DI 入力ユーティリティ 【起動方法】

「スタート」メニューから、「DI 入力ユーティリティ」を立ち上げてください。

ここで、「ボード検索」ボタンを押すと、使用可能な DIO デバイスの一覧が表示されます。

使用したいデバイスを選択し、「OK」ボタンを押してください。

「SDI ユーティリティ」ダイアログの画面上に、現在の全入力信号の状態が表示されます。

(このプログラムは常にインタフェースモジュールを監視しています。)

※このユーティリティで同時に複数のポートをオープンすることはできません。

※同一型式のインタフェースモジュールを複数枚使用する場合には、RSW1 の設定値をインタフ

ェースモジュール毎で異なる値に設定してください。

Page 181: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

181

9.6 DO 出力ユーティリティ 【起動方法】

「スタート」メニューから、「DO 出力ユーティリティ」を立ち上げてください。

ここで、「ボード検索」ボタンを押すと、使用可能な DIO デバイスの一覧が表示されます。

使用したいデバイスを選択し、「OK」ボタンを押してください。

「SDO ユーティリティ」ダイアログの画面上に表示されているボタンをクリックすると、出力

信号の ON/OFF を切り替えることができます。

メニューには、全点 ON および全点 OFF の機能が用意されています。

※このユーティリティで同時に複数のポートをオープンすることはできません。

※同一型式のインタフェースモジュールを複数枚使用する場合には、RSW1 の設定値をインタフ

ェースモジュール毎で異なる値に設定してください。

Page 182: GPC-4161...Send Delphi用サンプルプログラム Receive Delphi用サンプルプログラム Delphi Monitor Delphi用サンプルプログラム IFSDIO.DLL ダイナミックリンクライブラリファイル

GPC-4161 Help for Windows

© 2002, 2016 Interface Corporation. All rights reserved.

182

第10章 重要な情報

保証の内容と制限

弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に誤り

が無いことを保証していません。

本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあった場

合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に起因する

いかなる損害に対しても弊社は責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があります。

著作権、知的所有権

弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。

本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意

弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製造さ

れた物では有りません。

弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機器

と共に設計された物では有りません。

医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、損

傷/損害を引き起こす場合が有ります。

複製の禁止

弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことはでき

ません。

責任の制限

弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、間

接的な損害、重大な損害について、責任を負いません。

本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる結果

に関する一切のリスクについては、本製品の使用者に帰属するものとします。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的損

害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する改良(正

常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、予めご了

承ください。

本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊社は

一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サポート等

は行っておりません。

商標/登録商標

本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。