目次

last update: 2024/10

embOS RTOS用BSPパッケージ
第4章: MODBUS通信(RS232経由)
評価ボード:EK-RX261




テストサンプル

Demo Sample Application Folder:

Application
 └ _Exclude
     ├ MB  ..... MODBUS(ASCII/RTU) MASTER / SLAVE機能のデモサンプル
Sample説明
MB_MASTER_ASCIISampleMODBUS/ASCII プロトコルを使用してマスタモード通信を確認します
MB_MASTER_RTUSampleMODBUS/RTU プロトコルを使用してマスタモード通信を確認します
MB_SLAVE_ASCIISampleMODBUS/ASCII プロトコルを使用してスレーブモード通信を確認します
MB_SLAVE_RTUSampleMODBUS/RTU プロトコルを使用してスレーブモード通信を確認します

関連設定ファイル:

BSP
 |- BSP_UART.c  ........... MODBUS用UARTインターフェースドライバ(ソース)
 |- BSP_UART.h  ........... MODBUS用UARTインターフェースドライバ(ヘッダ)
 |- BSP.c  ................ LEDポートインターフェース

Config
 |- MB_Conf.h  ............ MODBUSコンフィグレーション設定ファイル
 |- OS
 |   |- lib_embOSLayer_RXv3_L.lib  ..... OSインターフェース設定ファイル
 |
 |- IO
     |- MB_ConfigIO.c  ..... デバッグコンソールIOインターフェース設定ファイル

ビルド・動作確認方法

プロジェクト設定では「\Application\_Exclude\MB」フォルダはビルド対象外に設定しています。以下のどちらかの方法で動作確認を行うサンプルアプリケーションを選択します。

  1. 「\_Exclude\MB」フォルダ下の対象テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
  2. 「\_Exclude\MB」フォルダ下の対象テストサンプルファイルのみ「ビルド対象外」の設定を解除します。

USB UART変換コネクタ(J16ポート)経由でMODBUS ASCII/RTUデータ通信を行いますので、UARTドライバインターフェースを定義する「\BSP\USB_UART.c」ファイルもビルド対象設定であることを確認してください。

テスト環境の設定:

評価ボードのJ16 USBポートをテスト用パソコンに接続して、パソコン側にMODBUSデモサンプルの動作確認用以下のプログラムを使用します。

Windows
 |- MB
    |- Modbus_Master
    |   |- Modbus_Master.exe  ..... MODBUS SLAVEデモ用テストプログラム
    |
    |- Modbus_Slave
        |- Modbus_Slave.exe   ..... MODBUS MASTERデモ用テストプログラム

MODBUS MASTERサンプルの動作確認:

  1. 「MB_MASTER_ASCIISample.c」又は「MB_MASTER_RTUSample.c」サンプルを選択してプロジェクトを再ビルドします。
  2. 評価ボードのJ16 USBポートをテスト用パソコンに接続して、パソコン側に「Modbus_Slave.exe」プログラムを起動します。
    Setup:Interface type = ASCII / RTU、COMポート番号、Baud:38400、Data bits:8、Parity:None、Stop bits:One、Slave Address = 1、Base address = 1000
  3. MODBUS MASTERサンプルプロジェクトのデバッグセッションを開始して、プログラムを実行します。
  4. パソコン側のテストプログラムの画面から結果を確認します。

MODBUS SLAVEサンプルの動作確認:

  1. 「MB_SLAVE_ASCIISample.c」又は「MB_SLAVE_RTUSample.c」サンプルを選択してプロジェクトを再ビルドします。
  2. 評価ボードのJ16 USBポートをテスト用パソコンに接続して、MODBUS SLAVEサンプルプロジェクトのデバッグセッションを開始して、プログラムを実行します。
  3. パソコン側に「Modbus_Master.exe」プログラムを起動します。
    Setup:Interface type = ASCII / RTU、COMポート番号、Baud:38400、Data bits:8、Parity:None、Stop bits:One、Slave Address = 1、Base address = 1000
  4. 評価ボードのLED表示及びパソコン側のテストプログラムの画面から結果を確認します。

テストレポート

Sample: MB_MASTER_ASCIISample

PC側の「Modbus_Slave.exe」プログラムを実行して以下のようにパラメータを設定します。
※COMポート番号は環境に合わせて設定してください。

Enter interface type (1:TCP|2:RTU|3:ASCII) [TCP]: 3
Enter COM port to use (dec.) [COM1]: 18
Enter Baud rate to use (dec.) [38400]: 38400
Enter the number of data bits (dec. 4 - 8) [8]:
Enter the parity (0:None|1:Odd|2:Even|3:Mark|4:Space) [None]:
Enter the number of stop bits (0:One|1:One and half|2:Two) [One]:

COM configuration used:
        COM18, Baud:38400, Data bits:8, Parity:None, Stop bits:One

Enter slave address (dec.) [1]: 1
Enter base address of registers (dec.) [1000]: 1000

パソコン側の Modbus_Slave.exe プログラムのコンソール

PC ModbusSlave

Sample: MB_SLAVE_ASCIISample

評価ボード側のMODBUS Slaveプログラムを実行して、PC側の「Modbus_Master.exe」プログラムを実行します。

パソコン側の Modbus_Master.exe プログラムのコンソール

SEGGER Modbus master V1.02
Compiled on Apr 15 2016 11:41:12

Enter interface type (1:TCP|2:RTU|3:ASCII) [TCP]: 3
Enter COM port to use (dec.) [COM1]: 18
Enter Baud rate to use (dec.) [38400]: 38400
Enter the number of data bits (dec. 4 - 8) [8]:
Enter the parity (0:None|1:Odd|2:Even|3:Mark|4:Space) [None]:
Enter the number of stop bits (0:One|1:One and half|2:Two) [One]:
COM configuration used:
        COM18, Baud:38400, Data bits:8, Stop bits:One, Parity:None

Enter slave address (dec.) [1]:
Enter base address of registers (dec.) [1000]:

Executing blinky on slave addr. 1 by toggling coils on addr. 1000 & 1001 .

Press any key to close.

Sample: MB_MASTER_RTUSample

PC側の「Modbus_Slave.exe」プログラムを実行して以下のようにパラメータを設定します。
※COMポート番号は環境に合わせて設定してください。

Enter interface type (1:TCP|2:RTU|3:ASCII) [TCP]: 2
Enter COM port to use (dec.) [COM1]: 18
Enter Baud rate to use (dec.) [38400]: 38400
Enter the number of data bits (dec. 4 - 8) [8]:
Enter the parity (0:None|1:Odd|2:Even|3:Mark|4:Space) [None]:
Enter the number of stop bits (0:One|1:One and half|2:Two) [One]:

COM configuration used:
        COM18, Baud:38400, Data bits:8, Parity:None, Stop bits:One

Enter slave address (dec.) [1]: 1
Enter base address of registers (dec.) [1000]: 1000

PC側の「Modbus_Slave.exe」プログラム実行後に評価ボード側のMODBUS Masterプログラムを実行します。

パソコン側の Modbus_Slave.exe プログラムのコンソール

PC ModbusSlave

Sample: MB_SLAVE_RTUSample

評価ボード側のMODBUS Slaveプログラムを実行して、PC側の「Modbus_Master.exe」プログラムを実行します。

パソコン側の Modbus_Master.exe プログラムのコンソール

SEGGER Modbus/RTU master V1.02
Compiled on Apr 15 2016 11:41:12

COM configuration used:
        COM18, Baud:38400, Data bits:8, Stop bits:One, Parity:None

Enter slave address (dec.) [1]:
Enter base address of registers (dec.) [1000]:

Executing blinky on slave addr. 1 by toggling coils on addr. 1000 & 1001 .

Press any key to close.
前の章

圧縮・解凍機能のデモサンプル

次の章

暗号・サイファーライブラリ