easymodbus4j 0.0.5リリース、修正アップデート
多くのバグは、バージョン0.0.5は、すべての0.0.4 RTUプロトコルモードでアップグレードすることをお勧めします、があります。
次のように更新しました:
1.均一な調整をログに記録します。
2、RTU修理REQ RESP同期更新のバグ。
3、重要なデバッグログの複数を追加します。
4、プラスまたはいくつかのバグフィックスマイナス。
5、読み書きロックモードRTUプロトコルのバグ修正とパフォーマンスの最適化。
easymodbus4j
easymodbus4j Javaは、ベースネッティー開発、それはJavaクライアントとModbusプロトコルサーバの開発に使用することができ、高い性能と実装のModbusプロトコルの容易さである。高性能をeasymodbus4jと使いやすさ、Javaで書かれたModbusプロトコルの実装をMODBUS 8モードのクライアント/サーバーおよびマスター/スレーブのための網状のサポート。
easymodbus4j特徴: 1、NIOネッティー高性能、高パフォーマンス。 2、Modbusの同期機能/同期/非同期ノンブロッキングaync。 3、のModbusのIoTデータコネクタは、業界物事のIoTプラットフォームのサポートをサポートします。 4、2つの通信プロトコルのModbus TCP \のModbus RTUプロトコルをサポートしている。 5、異なる生産要件を満たすために、8つの生産の展開パターン、自由な組み合わせをサポートする柔軟なアーキテクチャ。 6、一般的なパッケージは非常にカスタムインタフェースを可能にします。 7、完全にサポートModbus TCP 4忠展開モード:TCPサーバーのマスター、TCPクライアント、スレーブ、TCPサーバ、スレーブ、TCPクライアントマスター。 RTUサーバのマスター、RTUクライアントスレーブ、RTUサーバスレーブ、RTUクライアントマスター:8は、完全のModbus RTU 4忠配備モードをサポートしています。 9、フレンドリーデバッグとロギングをサポートビット\ビットセットのバイト\ \短いの\ int型\フロート\ダブル。 10サポート機能コード: リードコイル(FC1) リード入力離散(FC2) 読み出し保持レジスタ(FC3) リード入力レジスタ(FC4) 書くシングルコイル(FC5) 書く単一レジスタ(FC6) 複数コイル(FC15)を書く (FC16)複数レジスタ書き込み 読み出し/書き込み複数のレジスタ(FC23)
中#Exampleプロジェクトコード https://github.com/zengfr/easymodbus4j
リポジトリ中央Sonatype Mvnrepository easymodbus4j
たartifactId / JAR: easymodbus4j-core.jar Modbusプロトコルプロトコル easymodbus4j-codec.jarのModbusユニバーサルコードデコーダ easymodbus4j.jarのModbus一般/共通の公開汎用パケット easymodbus4j-client.jarのModbusクライアントクライアント easymodbus4j-server.jarのModbusサーバサーバエンド パッケージModbusMasterResponseProcessor / ModbusSlaveRequestProcessorインタフェースを拡張しeasymodbus4j-extension.jarのModbus拡張
快速开发クイックスタート: 第一步STEP1、輸入ジャー: 達人: <依存> <groupIdを> com.github.zengfr </ groupIdを> <たartifactId> easymodbus4j-クライアント</たartifactId> <バージョン> 0.0.5 </バージョン> </依存関係> <依存> <groupIdを> com.github.zengfr </ groupIdを> <たartifactId> easymodbus4j-サーバー</たartifactId> <バージョン> 0.0.5 </バージョン> </依存関係> <依存> <groupIdを>コム.github.zengfr </ groupIdを> <たartifactId> easymodbus4j拡張</たartifactId> <バージョン> 0.0.5 </バージョン> </依存関係> 第二步STEP2、ハンドラを実装します。 2。1マスターであれば ModbusMasterResponseHandler.javaを:实现easymodbus4j-例を参照してください接口するResponseHandlerを実装 または实现ModbusMasterResponseProcessorが新しいModbusMasterResponseHandler(responseProcessor)を使用接口実施します。 2.2スレーブ場合 ModbusSlaveRequestHandler.java:实现接口easymodbus4j-例を参照要請ハンドラを実装 、または实现ModbusSlaveRequestProcessor新しいModbusSlaveRequestHandler(reqProcessor)を使用接口実装 第三步STEP3は、一つのマスター/スレーブ・クライアント/サーバモード選択: modbusServer = ModbusServerTcpFactory.getInstanceを()。 createServer4Master(ポートするResponseHandler)。 。modbusClient = ModbusClientTcpFactory.getInstance()createClient4Slave(ホスト、ポート、要請ハンドラ)。 。modbusClient = ModbusClientTcpFactory.getInstance()createClient4Master(ホスト、ポート、するResponseHandler)。 modbusServer = ModbusServerTcpFactory.getInstance()createServer4Slave(ポート、要請ハンドラ)。 modbusServer = ModbusServerRtuFactory.getInstance()createServer4Master(ポートするResponseHandler)。 。modbusClient = ModbusClientRtuFactory.getInstance()createClient4Slave(ホスト、ポート、要請ハンドラ)。 。modbusClient = ModbusClientRtuFactory.getInstance()createClient4Master(ホスト、ポート、するResponseHandler)。 。modbusServer = ModbusServerRtuFactory.getInstance()createServer4Slave(ポート、要請ハンドラ); 第四步STEP4: 4.1はどのようにリクエストを送信するには? チャンネルのチャンネル= client.getChannel())。 チャンネルチャンネル= server.getChannelsBy(...)); ChannelSender送信者= ChannelSenderFactory.getInstance()(チャネル)を取得します。 sender.readCoils(...) sender.readDiscreteInputs(...) sender.writeSingleRegister(...) リクエスト/レスポンスを処理するために、どのように4.2? ModbusMasterResponseHandler.java又はModbusMasterResponseProcessor.javaにprocessResponseFrameの優先mothodのコードを参照して (ModbusFunction respFunc、AbstractFunction reqFunc、UNITIDをINT、チャンネルチャネル)公共ボイドprocessResponseFrame { {(respFuncのinstanceof ReadCoilsResponse)場合 ReadCoilsResponse RESP =(ReadCoilsResponse)respFunc。 ReadCoilsRequest REQ =(ReadCoilsRequest)reqFunc。 REQ / RESP用//プロセスのビジネスロジック } }; 4.3どのように自分でカスタム・デコード用のByteArrayへの応答を取得するには? ModbusMasterResponseHandler.java又はModbusMasterResponseProcessor.javaにprocessResponseFrameの優先mothodのコードを参照して ModbusChannelInitializer modbusChannelInitializer = ...; 公共ボイドprocessResponseFrame(チャネルチャネル、UNITID、AbstractFunction reqFunc、ModbusFunction respFuncをINT){ IF(ReadDiscreteInputsResponse instanceofのrespFunc){ ReadDiscreteInputsResponse RESP =(ReadDiscreteInputsResponse)respFunc。 バイト[] resutArray = resp.getInputStatus()toByteArray()。 } }。 4.4どのようにログを表示するには? サンプルプロジェクトではModbusMasterResponseHandler.javaを参照してください。 ModbusFrameUtil.showFrameLog(ロガー、チャネル、フレーム)。 4.5どのように自分でカスタムのクライアント/サーバ、事前に? ModbusServerTcpFactory.getInstance()createServer4Master(ポート、modbusChannelInitializer)。
#Exampleプロジェクトコード マスター/ easymodbus4j-例/ srcに/メイン/ javaの/ COM / githubの/ zengfr / easymodbus4j /例
起動RUN例: 。1、解凍ファイルeasymodbus4j-example-0.0.5-release.zip 2、マスターのModbusモードの場合:オープンautosend.txtファイルまたは実施例におけるDIR-autosend.txt rsourcefile easymodbus4j-0.0.5.jarで 3。 、MODE Modbusマスタのために:ファイルの編集autosend.txt 。4、のstartup.batを起動 5を、あなたはまた、* Modbusマスタ用の.bat / MODE :.サルヴェ編集することができ ます。説明 1.フォルダにzipファイル解凍 2を、Javaプログラムをインストールjdk8を実行していない。 。3、8 TCP / RTUサーバのマスター、クライアントスレーブ、スレーブサーバ、クライアントのマスター8モードに対応する解凍batファイルの後に。 。4、マスタモードではautosend.txtファイルを設定することができ、送信のタイミングを読み書きリクエスト。 5、メモ帳には、batファイルは、伝送遅延時間などのパラメータ、およびタイミング詳細なログを編集することができます開きます。
レンダリングは、スクリーンショットをキャプチャ実行します。