UBシリーズ デジタル入出力ボード Pythonサンプルプログラム

ヘルプファイルにPythonのサンプルコードは記載しておりません。また、ソフトウェアパックにもPythonのサンプルプログラムは含まれておりませんので、Pythonで使用される場合は以下を参考にしてください。

サンプルプログラム

import sys
import ctypes

# エラーコード(戻り値)
YDCI_RESULT_SUCCESS = 0         # 正常終了

# YdciOpen
YDCI_OPEN_NORMAL = 0            # 通常オープン
YDCI_OPEN_OUT_NOT_INIT = 0x01   # 出力初期化しない

# DLL
ydci = ctypes.windll.Ydci

# ボード識別スイッチが0のボードをオープンします
id = ctypes.c_ushort()
result = ydci.YdciOpen(0, b'DIO-8/8B-UBT', ctypes.byref(id), YDCI_OPEN_NORMAL)
if result != YDCI_RESULT_SUCCESS:
    print('オープンできません')
    sys.exit()

# IN2の入力
input_data = ctypes.c_ubyte()
input_no = ctypes.c_ushort(2)
result = ydci.YdciDioInput(id, ctypes.byref(input_data), input_no, 1)
if result == YDCI_RESULT_SUCCESS:
    print('IN{}: {}'.format(input_no.value, input_data.value))

# IN0-7の入力
input_data = (ctypes.c_ubyte * 8)()
result = ydci.YdciDioInput(id, ctypes.byref(input_data), 0, 8)
if result == YDCI_RESULT_SUCCESS:
    for i, d in enumerate(input_data):
        print('IN{}: {}'.format(i, d))

# OUT3の出力
output_data = ctypes.c_ubyte(1)
result = ydci.YdciDioOutput(id, ctypes.byref(output_data), 3, 1)

# OUT0-7の出力
output_data = (ctypes.c_ubyte * 8)(1, 0, 1, 0, 1, 0, 0, 1)
result = ydci.YdciDioOutput(id, ctypes.byref(output_data), 0, 8)

# OUT4の出力状態
output_status = ctypes.c_ubyte()
output_no = ctypes.c_ushort(4)
result = ydci.YdciDioOutputStatus(id, ctypes.byref(output_status),
                                  output_no, 1)
if result == YDCI_RESULT_SUCCESS:
    print('OUT{}: {}'.format(output_no.value, output_status.value))

# OUT0-7の出力状態
output_status = (ctypes.c_ubyte * 8)()
result = ydci.YdciDioOutputStatus(id, ctypes.byref(output_status), 0, 8)
if result == YDCI_RESULT_SUCCESS:
    for i, d in enumerate(output_status):
        print('OUT{}: {}'.format(i, d))

# ボードをクローズ
result = ydci.YdciClose(id)

関連情報

製品情報
ヘルプファイル(ソフトウェア説明書)