基本事項


libmodbusの関数を用いた、基本的な事項について記述します。

 

プロジェクトの作成方法は各言語毎に異なりますので、プロジェクトの作成セクションを参照ください。

 

処理の流れ

 

libmodbusの関数を利用してModbusマスタ通信プログラムを作成する場合、以下のような処理が必要です。

具体的な関数の利用方法等は、各サンプル及び関数リファレンスを参照ください。

 

  1. 通信設定

    TCP時:IPアドレス、ポート番号の指定
    RTU時:COMポート指定、ボーレート、パリティ、スレーブID等の指定

    それぞれ、modbus_new_tcp 関数、modbus_new_rtu関数をご利用ください。
    上記関数では、modbus通信用の構造体を確保しますので、通信終了時には必ずメモリ開放処理を実行ください。

  2. 通信開始

    接続処理(modbus_connect関数の利用)

  3. データ送受信

    各種functionコードの実行
    データに応じて、変換処理を実行

  4. 通信終了

    切断処理(modbus_close関数の利用)
    メモリ開放処理(modbus_free関数の利用)

エラー内容の取得

 

libmodbusの関数では、戻り値にて関数の成否を判断し、詳細はerrnoにて表現しています。

 

errnoは各関数で共通となっていますので、エラー詳細を取得するときには、関数実行直後に取得ください。

※他関数が実行されると、errnoが上書きされる場合があります。

 

errno取得はmodbus_read_errno関数を用い、エラー内容の取得はmodbus_strerror関数をご利用ください。

errno取得及び、エラー内容取得の具体的な方法は、各サンプルを参照ください。

 

エラー取得時の注意事項

 

libmodbusの仕様上、関数実行に失敗した際にerrnoを更新しない関数も存在します。

 

上記関数の実行に失敗した際、戻り値は失敗ですが、errnoは更新されず、

「No Error」と表示される場合や、前回のエラー詳細が表示される場合がございますが、ご了承ください。

 

また、関数成功時においてもerrnoは更新されません。