RFIDリーダー PaSoRi LabVIEWプログラム開発(PC/SC使用編)

PaSoRi(パソリ) RC-S300 リーダーLabVIEWプログラム開発

株式会社ペリテックが、PC/SCを使って、RFIDリーダーPaSoRi(パソリ) RC-S300をLabVIEWプログラムで開発した事例を紹介します。

PC/SC とは

PC/SC (Personal Computer/Smart Card)は、Windows環境でICカードを利用するための標準アプリケーションインターフェイスです。
標準規格に準拠したICカードとリーダーであれば、製造メーカーに関わらず、カードとリーダーの通信が可能です。
Microsoft社が無償で提供しているAPIであり、ライセンスなどの追加費用なしで使用することができます。

PaSoRi RC-S300 リーダー

PaSoRi(パソリ) RC-S300は、ソニー株式会社より2021年11月から販売しているUSB接続型のNFC/FeliCaリーダーです。
マイナンバーカード、おサイフケータイ、SuicaなどのICカードを読み込むことができます。

  • Windows8.1、10、11対応
  • PC/SC 2.0準拠
PaSoRi(パソリ) RC-S300

対応通信規格・対応カード

  • FeliCa Standard
  • FeliCa Lite-S
  • FeliCa Link
  • FeliCa Plug/NFC Dynamic Tag
  • モバイルFeliCa対応端末(おサイフケータイ)
  • ISO/IEC 14443 Type A / Type B
  • ISO/IEC 15693
  • NFC Forum Type 2 / 3 / 4A / 4B / 5 Tag
  • MIFARE Classic
  • MIFARE Ultralight、MIFARE Ultralight C
  • MIFARE DESFire、MIFARE Plus
  • マイナンバーカード
  • IC運転免許証
  • 税理士カード
  • HPKIカード
  • 在留カード

※ソニー株式会社 RC-S300 カタログより

LabVIEWプログラミング

LabVIEWでのプログラミングには、PC/SCの「WinSCard.dll」を使用します。

使用関数

サンプルコード(C++)を参考にリーダーでICカードのIDを取得するために必要な関数と実行順序を決めます。

サンプルコード
C++サンプルコード
  1. SCardEstablishContext:スマートカードリソースマネージャに接続
  2. SCardListReadersA:カードリーダーのデバイス名を列挙
  3. SCardConnectA:ICカードとの通信を接続
  4. SCardTransmit:ICカードとの通信を行い、ICカードの情報を読み込み
  5. SCardDisconnect:ICカードとの通信を切断
  6. SCardFreeMemor:カードリーダー名のメモリ領域を解放
  7. SCardReleaseContext:スマートカードリソースマネージャから切断

ライブラリ呼び出し

「WinSCard.dll」をLabVIEW関数の「ライブラリ呼び出しノード」で読み込みます。

ライブラリ呼び出し
ライブラリ呼び出しノード
ライブラリ呼び出し

WinSCardの構文説明を参考にパラメータを決めます。

Windows App Development 参照
https://docs.microsoft.com/en-us/windows/win32/api/winscard/

例:SCardEstablishContext 関数

SCardEstablishContext関数は、データベース操作が実行されるリソースマネージャーコンテキスト (スコープ) を確立します。

[構文 C++]
LONG SCardEstablishContext(
[in] DWORD dwScope,
[in] LPCVOID pvReserved1,
[in] LPCVOID pvReserved2,
[out] LPSCARDCONTEXT phContext
);

ライブラリ呼び出しノードパラメータ
ライブラリ呼び出しノード パラメータ

実行:ICカードのID読み込みテスト

作成したLabVIEWプログラムを実行して、ICカードのIDの読み込みができることを確認します。
LabVIEWプログラムで読み込んだIDとRFIDリーダー付属アプリケーションと読み込んだIDが同じ結果であることを確認します。

LabVIEWプログラム
LabVIEWプログラム
LabVIEW実行結果
LabVIEW実行結果

PaSoRiドライバVI

LabVIEWで作成したPaSoRiのプログラムを機能別に分類して、引数、戻り値を端子に設定、サブVI(サブルーチン)にします。

PaSoRiドライバVI
PaSoRiドライバVI

作成したサブVIを使って、ユーザー操作が可能なプログラムを作成します。

PaSoRi LabVIEWプログラム開発(SDK使用編)