受信パラメータに基づいてMODBUS RTUインスタンスを作成します。
//summary> ///MODBUS RTUサービスの確立 /// String comnum = シリアルポート番号 /// int buad = シリアルポートのボーレート /// int dataLen = データ長さ /// String chklen = テストビット。 /// String stoplen = ストップ·ビット ////summary> public Modbus_Lib String comint buad int dataLen string chkstring stopint scantime
MODBUS RTUスキャンスレーブを追加する:
//summary> //すべてのスレーブリストを削除する ////summary> public void clearAllModbusSalve //summary> //スキャンリストから指定したスレーブを削除する ////summary> ///param name="whichAddr"/param> public void deletAllModbusSalve int whichAddr
作成されたMODBUS RTUマルチスレーブスキャンのリストをクリアします。
//summary> //MODBUSスレーブスキャンリストを追加 ////summary> ///param name="xDeviceMdEnty"/param> public void addModbusSlaveScanList DeviceMdEnty xDeviceMdEnty
MODBUS RTUCommunicationポートを開く
//summary> ///シリアルポートを開く ////summary> ///returns/returns> public openUart
シリアルポートを閉じる
//summary> ///シリアルポートを閉じる ////summary> ///returns/returns> public eUart
MODBUS RTUのタイミングスキャンサービスを開始
//summary> ///Modbusスキャンサービス開始 ////summary> public ModbusWork
MODBUS RTUコマンドの送信
データの送信 * int slaveAddr =スレーブアドレス int addrTe =読み書きの開始アドレス int cmdTe =機能コード int lenTe =読み取りデータ長 byte[] msgBuf =書き込みされるデータのバッファ期間、各ワードは2 BYTE int msgLen =書き込まれるデータの長さ return * true =データ送信済み、false =送信なし * *********************************************************************/ //summary> /// ////summary> public Boolean sendModbusMsg int slaveAddr int cmdTe int addrTe int lenTe byte[] msgBuf int msgLen
MODBUS RTUインスタンスのコールバックメソッドで、すべてのシリアルポートで受信したデータを返します。
Result = "E00";"シリアルポートの作成に失敗しました" Result = "E01";"シリアル番号が設定されていません" Result = "E02";"ストップビットパラメータエラー"を示す Result = "E03";“チェックビットパラメータエラー”を示す Result = "F00";“チェックビットパラメータエラー”を示す Result = "Y00";"シリアルポートの作成に成功しました" Result = "M00";"シリアルデータを受信しました"
イベントについての委任を宣言し、パラメータは返送するデータ型、シリアルポート受信データ
public delegate void ModbusRTU_EventHandler(string result, byte[] msg) ;
MODBUS RTUインスタンスのコールバックメソッドで、すべてのシリアルポートで受信し、アドレスとチェックコードで検証されたデータを返します。
Result = "AE0";"シリアルポートの作成に失敗しました" Result = "CE0";"シリアル番号が設定されていません" Result = "DE0";"Stopビット引数エラー" Result = "D00";"正しくParseされたシリアルデータを受信しました" Result =“D01”;関数コード0 x 01--データに正しく応答します! :" Result =“D02”;関数コード0x02--データに正しく応答します! " Result =“D03”;関数コード0x03--データに正しく応答します! " Result =“D04”;関数コード0 x 04--データに正しく応答します! " Result =“D05”;関数コード0 x 05--データに正しく応答します! " Result =“D06”;関数コード0 x 06--データに正しく応答します! " Result = "D 0F";"関数コード0x0F--データに正しく応答! " Result =“D 10”;関数コード0 x 10--データに正しく応答します。"
イベントに関する委任を宣言し、パラメータを送り返すデータ型とし、シリアルポートでデータを受信し、MODBUS検証を行う
public delegate void ModbusRTU_DecodeHandler(string result, byte[] msg) ;
1 MODBUS RTUスレーブ局のリストを作成する。
DLLはデバイスの数に応じて自動的にスキャンします。機能がない場合は、長さを0に指定できます。16から16のデジタルモジュールなど、入力レジスタを指定し、レジスタ長を0に保つことができます。
//summary> //スキャンリストを作成する ////summary> //param name="SlAddr"のスレーブ局の局番号を/param> ///param name= CoilLen"現在のスレーブの出力コイル数/paramを設定> ///param name="DiscLen"現在のスレーブの入力数値の数/paramを設定> //param name="InputRegLen"現在のスレーブの入力レジスタ数を設定/param///param name="HoldingRegLen"現在のスレーブの保持レジスタ数を設定/param> public DeviceMdEnty int SlaveAddr int CoilLen int DiscLen int InputRegLen int HoldingRegLen
Leave a Reply