IoTClientは、主流のPLC通信読み取り、ModBusプロトコル、Bacnetプロトコルおよびその他の一般的な産業用通信プロトコルを含む、モノのインターネットデバイス通信プロトコルクライアントです。このコンポーネントは. NET Standard 2.0に基づいており、Windows、Linux、さらにはRaspberry Pi上で動作する. NETのクロスプラットフォーム開発に使用できます。
取扱説明書
リファレンスコンポーネント
Install-Package IoTClient
またはグラフィカルインストール

ModBusTcpの読み書き
クライアントのインスタンス化-正しいIPとポートを入力します。
ModBusTClient = new ModBusTClient "127.0.0.1" 502;
//2、書き込み操作 -パラメータは、アドレス、値、ステーション番号、機能コードの順になります。
client.Write "4" short 33,2,16;
//2.1 [注意]データを書き込む際にはデータ型を指定する必要がある
client.Write "0" short 33 2 16; //short型の数値を書く
client.Write "4" ushort 33 2 16; //ushort型の値を書き込む
client.Write "8" int 33 2 16; //int型の数値を書き込む
client.Write "12" uint 33 2 16; //uint型の値を書き込む
client.Write "16" long 33 2 16; //long型の値を書き込む
client.Write "20" ulong 33 2 16; //ulong型の数値を書き込む
client.Write "24" float 33 2 16; //float型の数値を書き込む
client.Write "28" double 33 2 16; //double型の数値を書き込む
client.Write '32"true 2 5; //コイルタイプの値を書き込む
client.Write "100""orderCode" stationNumber; //文字列の書き込み
//3、読み取り操作 -パラメータはアドレス、ステーション番号、機能コードの順になります。
var value = client.ReadInt16 "4" 2 3.Value;
//3.1その他の種類のデータ
client.ReadInt16 "0" stationNumber 3; //short型データ読み込み
client.ReadUInt16 "4" stationNumber 3; //ushort型のデータ読み込み
client.ReadInt32 "8" stationNumber 3; //int型のデータ読み込み
client.ReadUInt32 "12" stationNumber 3; //uint型データ読み込み
client.ReadInt64 "16" stationNumber 3; //long型データの読み込み
client.ReadUInt64 "20" stationNumber 3; //ulong型データ読み込み
client.ReadFloat "24" stationNumber 3; //float型データの読み込み
client.ReadDouble "28" stationNumber 3; //double型のデータ読み込み
client.ReadCoil "32" stationNumber 1; //コイルタイプデータ読み込み
client.ReadDiscrete "32" stationNumber 2;//離散型データ読み取り
クライアント.ReadString "100" stationNumber 10; //文字列を読み込む
アクティブなオープンがない場合、読み書き操作ごとに自動的に接続を開き、閉じ、読み書き効率が大幅に低下します。手動で開閉する必要がある。
. Open
//5、読み書き操作は結果オブジェクトResultを返す
var result = client.ReadInt16 "4" 2 3;
//5.1読み取りが成功したかどうか(trueまたはfalse)
var isSucceed = result.isSucceed;
//5.2例外情報の読み込み失敗
var g =.Err;
//5.3読み取り操作が実際に送信したリクエストメッセージ
var requst = result.requst;
//5.4操作サーバからのメッセージの読み込み
response = result.response;
//5.5読み取り値
var value3 = result.Value;
//6.大量読み取り
var list = new List ModBus;
list.Add new ModBusInput
{
Address = "2"
DataType = DataTypeEnum.Int16
FunctionCode = 3、
StationNumber = 1
});
list.Add new ModBusInput
{
Address = "2"
DataType = DataTypeEnum.Int16
FunctionCode = 4
StationNumber = 1
});
list.Add new ModBusInput
{
アドレス=“199”
DataType = DataTypeEnum.Int16
FunctionCode = 3
StationNumber = 1
});
var result = client.BatchRead list;
//7その他のパラメータ
//IP、ポート、タイムアウト、サイズ侧の
ModBusTcpClient client = new ModBusTcpClient "127.0.0.1" 502 1500 EndianFormat.ABCD;ModBusTcpの使い方はこちらをご覧ください。単体テスト
ModBusRtuの読み書き操作
//インスタンス化されたクライアント- [COMポート名、ボーレート、データ·ビット、ストップ·ビット、パリティ] ModBusRtuClientクライアント= new ModBusRtuClient(“COM 3”,96 00,8,StopBits.One,Parity.None); //その他の読み書き操作はModBusTcpClientの読み書き操作と一致している
ModBusAsciiの読み書き操作
//インスタンス化されたクライアント- [COMポート名、ボーレート、データ·ビット、ストップ·ビット、パリティ] ModbusAsciiClient = new ModbusAsciiClient(“COM 3”,96 00,8,StopBits.One,Parity.None); //その他の読み書き操作はModBusTcpClientの読み書き操作と一致している
ModbusRtuOverTcpの読み取りと書き込み
//シリアルポート伝送すなわちTcp方式でRtu形式メッセージを送信する //クライアントのインスタンス化- IP、ポート、タイムアウト時間、サイズサイド設定 ModbusROverTClient = new ModbusROverTClient "127.0.0.1" 502 1500 Endian.ABCD; //その他の読み書き操作はModBusTcpClientの読み書き操作と一致している
SiemensClientの読み取り/書き込み
//1、インスタンス化されたクライアント-モデル、IP、ポートを入力してください。 //その他のモデル:SiemensVersion.S7_200、SiemensVersion.S7_300、SiemensVersion.S7_400、SiemensVersion.S7_1200、SiemensVersion.S7_1500 SiemensClient = new SiemensClient SiemensVersion.S7_200Smart "127.0.0.1" 102; 2、書き込み操作。 client.Write "Q1.3" true; . client.Write“V220 9”,33; . //文字列の書き込み //3、読み取り var value1 =. Read "Q1.3".Value; var value2 = client.ReadInt16 "V2205".Value; var value3 = client.ReadInt32“V 220 9”.Value; var value4 = client.ReadString "V2305".Value; //文字列の読み込み アクティブなオープンがない場合、読み書き操作ごとに自動的に接続を開き、閉じ、読み書き効率が大幅に低下します。手動で開閉する必要がある。 . Open //5、読み書き操作は結果オブジェクトResultを返す var result = client.ReadInt16 "V2205"; //5.1読み取りが成功したかどうか(trueまたはfalse) var isSucceed = result.isSucceed; //5.2例外情報の読み込み失敗 var g =.Err; //5.3読み取り操作が実際に送信したリクエストメッセージ var requst = result.requst; //5.4操作サーバからのメッセージの読み込み response = result.response; //5.5読み取り値 var value4 = result.Value;
注:シーメンスのPLCアドレスについて
VB263、VW263、VD263におけるB、W、Dは、それぞれ、byte型(8ビット)、word型(16ビット)、doubleword型(32ビット)を表す。 このコンポーネントの着信アドレスには、データ型は必要ありません。対応するメソッドを使用して対応する型を直接読み取ることができます。 VB 263の - client.ReadByte "V263" VD 26 3 - client.ReadFloat "V263" VD 26 3 - client.ReadInt32 "V263" DB108.DBW4 - client.ReadUInt16 "DB108.4" DB1.DBX0.0 -. Read "DB1.0.0" DB1.DBD0 - client.ReadFloat "DB1.0"
| C#データ型 | スマート200 | 1200/1500/300 |
|---|---|---|
| 少量で | V1.0 | DB1.DBX1.0 |
| バイト数 | VB1 | DB1.DBB1 |
| ショートショート。 ushort | パブリック2。 | DB1.DBW2 |
| int uint 浮動小数点数 | VD4 | DB1.DBD4 |
シーメンスのお客様のベストプラクティス
1.いつ開かないのか Siemens PLCは最大8つの長い接続を許可します。接続数が不十分な場合やテスト中にオープンしないでください。コンポーネントが自動的にオープンしてすぐにクローズします。 2.いつ開くのか 長い接続数が十分で、読み書き性能を向上させたい場合。 アクティブなオープン接続に加えて、バッチ読み書きによって読み書き性能を大幅に向上させることができます。 //バッチ読み取り Dictionary string DataTypeEnum addresses = new Dictionary string DataTypeEnum; addresses.Add "DB4.24" DataTypeEnum.Float; addresses.Add "DB1.434.0" DataTypeEnum.Bool; addresses.Add "V4109" DataTypeEnum.Byte; ... var result = client.BatchRead addresses; //Batch Write Dictionary string addresses = new Dictionary string; addresses.Add "DB4.24" float 1; addresses.Add "DB4.0" float 2; addresses.Add "DB1.434.0" true; ... var result = client.BatchWrite addresses; (注)データを書き込むときはデータ型を指定する必要があります。 client.Write“DB 4.12”9; //int型で記述される client.Write "DB4.12" float 9; //float型で書く SiemensClientはスレッドセーフクラスです。 PLC長コネクションが限られているため、SiemensClientはスレッドセーフクラスとして設計されている。SiemensClientを単一のインスタンスとして設定し、複数のスレッド間でSiemensClientのインスタンス読み書き操作plcを使用できます。
MitsubishiClient(三菱)読取りおよび書込み
クライアントのインスタンス化-正しいIPとポートを入力します。 subishiClient = 127.0.0.1 2、書き込み操作。 client.Write "M100" true client.Write "D200" short 11; client.Write "D210" 33; //3、読み取り var value1 = client.ReadBoolean "M100".Value; var value2 = client.ReadInt16 "D200".Value; var value3 = client.ReadInt32 "D210".Value; アクティブなオープンがない場合、読み書き操作ごとに自動的に接続を開き、閉じ、読み書き効率が大幅に低下します。手動で開閉する必要がある。 . Open //5、読み書き操作は結果オブジェクトResultを返す var result = client.ReadInt16 "D210"; //5.1読み取りが成功したかどうか(trueまたはfalse) var isSucceed = result.isSucceed; //5.2例外情報の読み込み失敗 var g =.Err; //5.3読み取り操作が実際に送信したリクエストメッセージ var requst = result.requst; //5.4操作サーバからのメッセージの読み込み response = result.response; //5.5読み取り値 var value4 = result.Value;
OmronFinsClient(OmronFinsClient)の読み取りと書き込み
クライアントのインスタンス化-正しいIPとポートを入力します。 OmronFinsClient = new OmronFinsClient "127.0.0.1" 6000; 2、書き込み操作。 client.Write "M100" true client.Write "D200" short 11; client.Write "D210" 33; //3、読み取り var value1 = client.ReadBoolean "M100".Value; var value2 = client.ReadInt16 "D200".Value; var value3 = client.ReadInt32 "D210".Value; アクティブなオープンがない場合、読み書き操作ごとに自動的に接続を開き、閉じ、読み書き効率が大幅に低下します。手動で開閉する必要がある。 . Open //5、読み書き操作は結果オブジェクトResultを返す var result = client.ReadInt16 "D210"; //5.1読み取りが成功したかどうか(trueまたはfalse) var isSucceed = result.isSucceed; //5.2例外情報の読み込み失敗 var g =.Err; //5.3読み取り操作が実際に送信したリクエストメッセージ var requst = result.requst; //5.4操作サーバからのメッセージの読み込み response = result.response; //5.5読み取り値 var value4 = result.Value;
AllenBradleyClient(ロックウェル)読取りおよび書込み操作
クライアントのインスタンス化-正しいIPとポートを入力します。 AllenleyClient = new AllenleyClient "127.0.0.1" 44818; 2、書き込み操作。 client.Write "A1" short 11; //3、読み取り var value = client.ReadInt16 "A1".Value; アクティブなオープンがない場合、読み書き操作ごとに自動的に接続を開き、閉じ、読み書き効率が大幅に低下します。手動で開閉する必要がある。 . Open //5、読み書き操作は結果オブジェクトResultを返す var result = client.ReadInt16 "A1"; //5.1読み取りが成功したかどうか(trueまたはfalse) var isSucceed = result.isSucceed; //5.2例外情報の読み込み失敗 var g =.Err; //5.3読み取り操作が実際に送信したリクエストメッセージ var requst = result.requst; //5.4操作サーバからのメッセージの読み込み response = result.response; //5.5読み取り値 var value4 = result.Value;
IoTClientライブラリに基づくプロジェクト
IoTClient Toolデスクトッププログラムツール(オープンソース)
所属する個人:一生の農夫。
IoTClient Toolデスクトッププログラムツール、アドレスソースソース。
- PLCおよび関連プロトコルのテストに使用できる通信
- IoTClientライブラリの例として使用できます。










iotgateway(オープンソース)
所属する個人:iioter
Internet of Thingsゲートウェイ

エネルギー管理システム()
会社名:ナウル·テクノロジー
エネルギー管理-オンサイト-単一プロジェクト


エネルギー管理-クラウド-複数のプロジェクト






エネルギー管理-モバイル







海は制御下にある。
会社名:ナウル·テクノロジー
海底漁業終了制御-web




海底掘削終了制御-モバイル端末




发表回复