Class McpX
- Namespace
- McpXLib
- Assembly
- McpXLib.dll
MCプロトコル拡張クラス
public class McpX : Mcp, IDisposable, IPlc
- Inheritance
-
McpX
- Implements
- Inherited Members
Remarks
Mcpクラス(MCプロトコル)を拡張して、デバイスアクセス点数などの機能制限を補うクラスです。
Constructors
McpX(string, int, string?, bool, bool, RequestFrame)
インスタンス初期化
public McpX(string ip, int port, string? password = null, bool isAscii = false, bool isUdp = false, RequestFrame requestFrame = RequestFrame.E3)
Parameters
ip
stringPLCのIPアドレスを指定します。
port
intPLCのポートを指定します。
password
stringPLCのリモートパスワードを指定します。(リモートパスワードを設定している場合に指定してください。)
isAscii
boolASCIIコードによる交信を行う場合に
true
を指定します。(デフォルトは、バイナリ交信:false
です。)isUdp
boolUDPによる交信を行う場合に
true
を指定します。(デフォルトは、TCP交信:false
です。)requestFrame
RequestFrameフレーム(データ交信電文)の種類を指定します。(デフォルトは、3Eフレーム:
RequestFrame.E3
です。)
Remarks
PLCのパラメータ設定に合わせたPLCの接続情報を指定します。
必要に応じて、リモートロックの解除を行います。
Exceptions
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
Methods
BatchReadAsync<T>(Prefix, string, ushort)
連続デバイス読み込み(非同期)
public Task<T[]> BatchReadAsync<T>(Prefix prefix, string address, ushort length) where T : unmanaged
Parameters
prefix
Prefix読み込み対象の先頭デバイスコードを指定します。
address
string読み込み対象の先頭アドレスを指定します。
length
ushort読み込み対象の要素数を指定します。
指定された型T
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
そのため、この引数には「最終的に取得する配列の要素数(T
型の要素数)」を指定してください。
Returns
- Task<T[]>
PLCから読み込んだ値を指定された型
T
に変換して返します。
Type Parameters
T
読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイス範囲の値を非同期でPLCから読み込みます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
BatchRead<T>(Prefix, string, ushort)
連続デバイス読み込み
public T[] BatchRead<T>(Prefix prefix, string address, ushort length) where T : unmanaged
Parameters
prefix
Prefix読み込み対象の先頭デバイスコードを指定します。
address
string読み込み対象の先頭アドレスを指定します。
length
ushort読み込み対象の要素数を指定します。
指定された型T
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
そのため、この引数には「最終的に取得する配列の要素数(T
型の要素数)」を指定してください。
Returns
- T[]
PLCから読み込んだ値を指定された型
T
に変換して返します。
Type Parameters
T
読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイス範囲の値をPLCから読み込みます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
BatchWriteAsync<T>(Prefix, string, T[])
連続デバイス書き込み(非同期)
public Task<T[]> BatchWriteAsync<T>(Prefix prefix, string address, T[] values) where T : unmanaged
Parameters
prefix
Prefix書き込み対象の先頭デバイスコードを指定します。
address
string書き込み対象の先頭アドレスを指定します。
values
T[]書き込みする値を配列で指定します。
Returns
- Task<T[]>
values
の値をそのまま返します。
Type Parameters
T
書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイス範囲に値を非同期でPLCへ書き込みます。
指定された型T
に応じて、内部的に書き込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
BatchWrite<T>(Prefix, string, T[])
連続デバイス書き込み
public T[] BatchWrite<T>(Prefix prefix, string address, T[] values) where T : unmanaged
Parameters
prefix
Prefix書き込み対象の先頭デバイスコードを指定します。
address
string書き込み対象の先頭アドレスを指定します。
values
T[]書き込みする値を配列で指定します。
Returns
- T[]
values
の値をそのまま返します。
Type Parameters
T
書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイス範囲に値をPLCへ書き込みます。
指定された型T
に応じて、内部的に書き込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
Dispose()
インスタンス破棄
public override void Dispose()
Remarks
使用済みのリソースを解放し、必要に応じてPLCのリモートロックを実行します。
RandomReadAsync<T1, T2>((Prefix prefix, string address)[], (Prefix prefix, string address)[])
ランダムデバイス読み込み(非同期)
public Task<(T1[] wordValues, T2[] doubleValues)> RandomReadAsync<T1, T2>((Prefix prefix, string address)[] wordAddresses, (Prefix prefix, string address)[] doubleWordAddresses) where T1 : unmanaged where T2 : unmanaged
Parameters
wordAddresses
(Prefix, string)[]16ビット単位で読み込むデバイスアドレスの配列を指定します。
・prefix
:読み込み対象のデバイスコードを指定します。
・address
:読み込み対象のアドレスを指定します。doubleWordAddresses
(Prefix, string)[]32ビット単位で読み込むデバイスの配列を指定します。
・prefix
:読み込み対象のデバイスコードを指定します。
・address
:読み込み対象のアドレスを指定します。
Returns
- Task<(T1[] wordValues, T2[] doubleValues)>
PLCから読み込んだ値を指定した型
T1
、T2
に変換して返します。
・wordValues
: 16ビット単位で読み込まれたT1
型の値の配列
・doubleValues
: 32ビット単位で読み込まれたT2
型の値の配列
Type Parameters
T1
16ビット単位で読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。T2
32ビット単位で読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイスの値を非同期でPLCから読み込みます。
指定された型T1
、T2
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
RandomRead<T1, T2>((Prefix prefix, string address)[], (Prefix prefix, string address)[])
ランダムデバイス読み込み
public (T1[] wordValues, T2[] doubleValues) RandomRead<T1, T2>((Prefix prefix, string address)[] wordAddresses, (Prefix prefix, string address)[] doubleWordAddresses) where T1 : unmanaged where T2 : unmanaged
Parameters
wordAddresses
(Prefix, string)[]16ビット単位で読み込むデバイスアドレスの配列を指定します。
・prefix
:読み込み対象のデバイスコードを指定します。
・address
:読み込み対象のアドレスを指定します。doubleWordAddresses
(Prefix, string)[]32ビット単位で読み込むデバイスの配列を指定します。
・prefix
:読み込み対象のデバイスコードを指定します。
・address
:読み込み対象のアドレスを指定します。
Returns
- (T1[] wordValues, T2[] doubleValues)
PLCから読み込んだ値を指定した型
T1
、T2
に変換して返します。
・wordValues
: 16ビット単位で読み込まれたT1
型の値の配列
・doubleValues
: 32ビット単位で読み込まれたT2
型の値の配列
Type Parameters
T1
16ビット単位で読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。T2
32ビット単位で読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイスの値をPLCから読み込みます。
指定された型T1
、T2
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
RandomWriteAsync<T1, T2>((Prefix prefix, string address, T1 value)[], (Prefix prefix, string address, T2 value)[])
ランダムデバイス書き込み(非同期)
public Task RandomWriteAsync<T1, T2>((Prefix prefix, string address, T1 value)[] wordDevices, (Prefix prefix, string address, T2 value)[] doubleWordDevices) where T1 : unmanaged where T2 : unmanaged
Parameters
wordDevices
(Prefix prefix, string address, T1 value)[]16ビット単位で書き込むデバイスの配列を指定します。
・prefix
:書き込み対象のデバイスコードを指定します。
・address
:書き込み対象のアドレスを指定します。
・value
:書き込みする値を指定します。doubleWordDevices
(Prefix prefix, string address, T2 value)[]32ビット単位で書き込むデバイスの配列を指定します。
・prefix
:書き込み対象のデバイスコードを指定します。
・address
:書き込み対象のアドレスを指定します。 ・value
:書き込みする値を指定します。
Returns
Type Parameters
T1
16ビット単位で書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。T2
32ビット単位で書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイスに対し、値を非同期でPLCへ書き込みます。
指定された型T1
、T2
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
RandomWrite<T1, T2>((Prefix prefix, string address, T1 value)[], (Prefix prefix, string address, T2 value)[])
ランダムデバイス書き込み
public void RandomWrite<T1, T2>((Prefix prefix, string address, T1 value)[] wordDevices, (Prefix prefix, string address, T2 value)[] doubleWordDevices) where T1 : unmanaged where T2 : unmanaged
Parameters
wordDevices
(Prefix prefix, string address, T1 value)[]16ビット単位で書き込むデバイスの配列を指定します。
・prefix
:書き込み対象のデバイスコードを指定します。
・address
:書き込み対象のアドレスを指定します。
・value
:書き込みする値を指定します。doubleWordDevices
(Prefix prefix, string address, T2 value)[]32ビット単位で書き込むデバイスの配列を指定します。
・prefix
:書き込み対象のデバイスコードを指定します。
・address
:書き込み対象のアドレスを指定します。 ・value
:書き込みする値を指定します。
Type Parameters
T1
16ビット単位で書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。T2
32ビット単位で書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイスに対し、値をPLCへ書き込みます。
指定された型T1
、T2
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
ReadAsync<T>(Prefix, string)
単一デバイス読み込み(非同期)
public Task<T> ReadAsync<T>(Prefix prefix, string address) where T : unmanaged
Parameters
Returns
- Task<T>
PLCから読み込んだ値を指定された型
T
に変換して返します。
Type Parameters
T
読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイスの値を非同期でPLCから読み込みます。
指定された型T
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
ReadString(Prefix, string, ushort)
文字列読み込み
public string ReadString(Prefix prefix, string address, ushort length)
Parameters
prefix
Prefix読み込み対象の先頭デバイスコードを指定します。
address
string読み込み対象の先頭アドレスを指定します。
length
ushort読み込みデバイス点数を指定します。
Returns
- string
PLCから読み込んだ値(Shift_JIS)を文字列に変換して返します。
Remarks
指定したデバイス範囲の値を文字列として、PLCから読み込みます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
ReadStringAsync(Prefix, string, ushort)
文字列読み込み(非同期)
public Task<string> ReadStringAsync(Prefix prefix, string address, ushort length)
Parameters
prefix
Prefix読み込み対象の先頭デバイスコードを指定します。
address
string読み込み対象の先頭アドレスを指定します。
length
ushort読み込みデバイス点数を指定します。
Returns
Remarks
指定したデバイス範囲の値を文字列として、非同期でPLCから読み込みます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
Read<T>(Prefix, string)
単一デバイス読み込み
public T Read<T>(Prefix prefix, string address) where T : unmanaged
Parameters
Returns
- T
PLCから読み込んだ値を指定された型
T
に変換して返します。
Type Parameters
T
読み込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
単一デバイスの値をPLCから読み込みます。
指定された型T
に応じて、内部的に読み込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
WriteAsync<T>(Prefix, string, T)
単一デバイス書き込み(非同期)
public Task WriteAsync<T>(Prefix prefix, string address, T value) where T : unmanaged
Parameters
Returns
Type Parameters
T
書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
指定したデバイスに値を非同期でPLCへ書き込みます。
指定された型T
に応じて、内部的に書き込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
WriteString(Prefix, string, string)
文字列書き込み
public void WriteString(Prefix prefix, string address, string value)
Parameters
prefix
Prefix書き込み対象の先頭デバイスコードを指定します。
address
string書き込み対象の先頭アドレスを指定します。
value
string書き込みする文字列を指定します。
Remarks
指定したデバイスに対して、Shift_JISに変換した文字列データをPLCへ書き込みます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
WriteStringAsync(Prefix, string, string)
文字列書き込み(非同期)
public Task WriteStringAsync(Prefix prefix, string address, string value)
Parameters
prefix
Prefix書き込み対象の先頭デバイスコードを指定します。
address
string書き込み対象の先頭アドレスを指定します。
value
string書き込みする文字列を指定します。
Returns
Remarks
指定したデバイスに対して、Shift_JISに変換した文字列データを非同期でPLCへ書き込みます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。
Write<T>(Prefix, string, T)
単一デバイス書き込み
public void Write<T>(Prefix prefix, string address, T value) where T : unmanaged
Parameters
Type Parameters
T
書き込むデータの型。bool, short, int などの値型を指定します。
unmanaged
制約があるため、参照型は使用できません。
Remarks
単一デバイスの値をPLCに書き込みます。
指定された型T
に応じて、内部的に書き込むデバイス点数は自動的に調整されます。
Exceptions
- DeviceAddressException
指定したアドレスが不正の場合に例外をスローします。
- RecivePacketException
受信したパケットの内容が不正な値の場合に例外をスローします。
- McProtocolException
PLCからエラーコードを受信した場合に例外をスローします。