エムエスツデー 2007年8月号

リモートI/O、ドライバソフトウェア、BAコントローラ

RZxSシリーズ用
Modbus Driver(形式:RZOCX)

(株)エム・システム技研 開発部

は じ め に

 エム・システム技研では、R1MシリーズR2Mシリーズをはじめとして、R3シリーズR5シリーズR7シリーズなど、多種多様なリモートI/O 機器をご提供し、ユーザーの皆様からご好評をいただいています。これらのリモートI/O 機器では、その多くの製品で Modbus 通信が可能です。

 本稿でご紹介する RZxSシリーズ用 Modbus Driver(形式:RZOCX )は、チャネル相互間が絶縁され、ユニバーサル入力が可能な入出力ユニット RZMSシリーズ(形式:RZMS-U9およびRZMSシリーズの機能に加えてUSB接続によって電源配線を不要にした入出力ユニット RZUSシリーズ(形式:RZUS-U9に対応した通信ライブラリです。Modbus 通信の難しいプロトコルを知ることなく、RZxSシリーズデバイスのデータを、Visual Basic や Excel などの Windows アプリケーションで容易に利用できるようにActiveXコントロール注)としてご提供しています。

主な機能と特長

(1)構成

 図1 RZOCX の構成と位置づけを示します。RZOCX は、Modbus Master OCX と RZOCX ソフトウェアとから構成されています。いずれも Visual Basic や Excel などの Windows アプリケーションから容易に利用できるように ActiveX コントロールとなっています。

 RZOCX は、USB 接続タイプの RZUS-U9 および RS-232-C 接続タイプの RZMS-U9 をサポートしています。また、アプリケーションプログラムは、Modbus Master OCX を直接利用できるようになっているため、RS-232-C 経由で接続される RZxS シリーズ以外のModbus 機器にもアクセスすることができます。

 RZOCXRZxSシリーズ用 Modbus Driver)とModbus Master OCX は、エム・システム技研のホームページ(https://www.m-system.co.jp/ )から無償でダウンロードしてお使いいただけます。

図1 RZOCXの周辺構成

(2)Modbus Master OCX通信ライブラリの機能

 Modbus Master OCX は、シリアル通信ラインでの Modbus プロトコルを実現するプロトコルスタックです。Modbus アプリケーション層(この場合、RZOCX が該当)から渡されたデータをModbus 通信フレームに変換し、Modbus 通信プロトコルに従った通信処理を行い、受信データを Modbus アプリケーション層に返します。

 Modbus Master OCX を使用すれば、ユーザーはModbusプロトコル自身を知らなくてもデータの送受信を行うことができるようになります。そのためのコントロール(プロパティ、メソッド、イベント)はユーザーにオープンされています。

 このコントロールを使うと、指定したModbusアドレスの1byteデータの送受信ができ、Visual Basic や Excel、Visual C++上で使用できます。

(3)RZOCX通信ライブラリの機能

 Modbus デバイスと通信を行うためには、Modbus のアドレスとデータの関係(アドレスマップ)を知らないとデータの送受信ができません。そして、アドレスマップはデバイスごとにすべて異なるため、通信ソフトウェアの開発は、大変面倒なものです。RZOCX では、RZxS シリーズのアドレスマップのことを知らなくても通信データを容易に送受信できます。

 また、通信時のエラー内容も詳しく知ることができるため(表1)、異常が起きた場合に容易に解析が行えます。さらに、送受信データを配列にすることで、複数データ(例:全チャネル分のデータ)を一括して Read/Write することも容易です。

 RZOCX には表2 に示す通信用メソッドが用意されています。

表1 エラーコード
エラー
コード
表示内容
0 正常
N < 255 Slave Device Exception Response
N = Exception Value
5256 Invalid Connection Handle
257 Message Overrun
258 Invalid Point Address
259 Invalid Slave Node Address
260 Invalid Length
261 Unsupported Modbus Command
263 Slave Device Time-Out
264 Invalid Transmission Mode
265 Invalid CRC In Slave Response
266 Connection Not Established
267 Invalid Slave Response
271 Demo Time Expired
272 Invalid Modbus/TCP Command
表2 RZOCXに用意されている通信用メソッド
Modbus_Serial_Connect Modbus Serial通信を
接続します。
Modbus_Serial_Disconnect Modbus Serial通信を
切断します。
RZUS_Info_Read 接続しているデバイスの
製品情報を読み出します。
RZUS_Type_Read 入力タイプ
(チャネル1~チャネル12 )
情報を読み出します。
RZUS_AI_Read 基本入力データ
(チャネル1~チャネル12)
情報を読み出します。
RZUS_AIStatus_Read 基本入力ステータス
(チャネル1~チャネル12)
情報を読み出します。
RZUS_DI_Read トリガ接点入力情報を
読み出します。
RZUS_DO_Read 警報接点出力情報を
読み出します。
RZUS_Type_Write 入力タイプ
(チャネル1~チャネル12)
情報を書き込みます。
RZUS_DO_Write 警報接点出力情報を
書き込みます。

(4)サンプルプログラム

 RZOCX を使ったサンプルプログラム RZUSDRV としては、Visual Basic 版(図2)とExcel 版を用意しています。

 RZUSDRV は、通信プロトコルの設定、チャネル毎の入力タイプの設定を行い、各データのアップロード/ダウンロードを行うプログラムです。入力データとそのステータスを500ms 周期でモニタリングできるようになっていて、RZOCX のすべてのメソッドを使用して作られています。このサンプルプログラムもエム・システム技研のホームページから無償でダウンロードしてお使いいただけますから、ご参照、ご利用ください。

図2 VB版サンプルプログラムRZUSDRV

(5)コード例

 Excel のコード記述例を図3 に示します。RZOCX のメソッドを3つ使うことで、通信の接続、基本入力データ12チャネル分の読み出し、通信の切断を行います。

図3 Excel のコード例

 作成されたExcel 画面例を図4 に示します。

図4 Excel の画面例

お わ り に

 今回ご紹介した RZOCX に続き、R3シリーズ用 Modbus Driver を作成しています。R3シリーズ 用Modbus Driver では、Modbus TCP/IP 通信もサポートする予定です。

 今後も、エム・システム技研の種々Modbus 通信リモートI/O 機器に対応した Modbus Driver を公開していく予定です。エム・システム技研製品を使ったModbus 通信システムの構築にあたって、ぜひお役立てください。

注)ActiveXコントロール:Windows において、アプリケーションソフト間のデータ連携を実現する仕組みである OLE に準拠して作成されたソフトウェア部品です。単独で実行することはできず、アプリケーションソフトに組み込んで使用します。


ページトップへ戻る