リレー出力 サンプルコード
// 使用する名前空間の宣言
using Y2.UsbIO.UsbPc104.Rly; // USB-PC104シリーズのRLYから始まる型番のデバイスを使用する場合
// デバイスのインスタンスを生成(RLY-24/16/32A-Uを使用する場合)
var device = new Rly241632aU();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// RY1(OUT0)をオフ、RY2(OUT1)は現在の状態を保持、RY3(OUT2)をオン、その他の出力端子は現在の状態を保持する場合
ReadOnlySpan<OutputValue> values = stackalloc OutputValue[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
device.Rly.Output(values);
// RY3(OUT2)をオフ、RY4(OUT3)は現在の状態を保持、RY5(OUT4)をオン、その他の出力端子は現在の状態を保持する場合
values = stackalloc OutputValue[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
device.Rly.Output(values, 2);
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
ReadOnlySpanの代わりにSpanを使う場合
// デバイスのインスタンスを生成(RLY-24/16/32A-Uを使用する場合)
var device = new Rly241632aU();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// RY1(OUT0)をオフ、RY2(OUT1)は現在の状態を保持、RY3(OUT2)をオン、その他の出力端子は現在の状態を保持する場合
Span<OutputValue> values = stackalloc OutputValue[3];
//Span<OutputValue> values = new OutputValue[3]; でも可
values[0] = OutputValue.Off;
values[1] = OutputValue.Keep;
values[2] = OutputValue.On;
device.Rly.Output(values);
// RY3(OUT2)をオフ、RY4(OUT3)は現在の状態を保持、RY5(OUT4)をオン、その他の出力端子は現在の状態を保持する場合
values = stackalloc OutputValue[3];
values[0] = OutputValue.Off;
values[1] = OutputValue.Keep;
values[2] = OutputValue.On;
device.Rly.Output(values, 2);
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
ReadOnlySpanの代わりに配列を使う場合
// デバイスのインスタンスを生成(RLY-24/16/32A-Uを使用する場合)
var device = new Rly241632aU();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// デジタル出力
// RY1(OUT0)をオフ、RY2(OUT1)は現在の状態を保持、RY3(OUT2)をオン、その他の出力端子は現在の状態を保持する場合
var values = new[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
device.Rly.Output(values);
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
整数で出力値を指定したい場合は、OutputValues.From...で整数から配列に変換して使用できます。
// デバイスのインスタンスを生成(RLY-72A-Uを使用する場合)
var device = new Rly72aU();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// RY1(OUT0)をオン、RY2(OUT1)をオフ、RY3(OUT2)をオン、RY4(OUT3)をオン、その他の出力端子は現在の状態を保持する場合(2進数表記)
device.Rly.Output(OutputValues.FromInt(0b1101, 4));
// RY1(OUT0)をオフ、RY2(OUT1)をオン、RY3(OUT2)をオフ、RY4(OUT3)をオン、その他の出力端子は現在の状態を保持する場合(16進数表記)
device.Rly.Output(OutputValues.FromInt(0xa, 4));
// 符号なし32ビット整数で出力値を指定する場合
device.Rly.Output(OutputValues.FromUint(0x12345678, device.Rly.ChannelCount));
// 符号なし64ビット整数で出力値を指定する場合
device.Rly.Output(OutputValues.FromUlong(0x123456789abcdef0, device.Rly.ChannelCount));
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();