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

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 機器にもアクセスすることができます。
RZOCX(RZxSシリーズ用 Modbus Driver)とModbus Master OCX は、エム・システム技研のホームページ(https://www.m-system.co.jp/ )から無償でダウンロードしてお使いいただけます。
(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 のすべてのメソッドを使用して作られています。このサンプルプログラムもエム・システム技研のホームページから無償でダウンロードしてお使いいただけますから、ご参照、ご利用ください。
(5)コード例
Excel のコード記述例を図3 に示します。RZOCX のメソッドを3つ使うことで、通信の接続、基本入力データ12チャネル分の読み出し、通信の切断を行います。
作成されたExcel 画面例を図4 に示します。
お わ り に
今回ご紹介した RZOCX に続き、R3シリーズ用 Modbus Driver を作成しています。R3シリーズ 用Modbus Driver では、Modbus TCP/IP 通信もサポートする予定です。
今後も、エム・システム技研の種々Modbus 通信リモートI/O 機器に対応した Modbus Driver を公開していく予定です。エム・システム技研製品を使ったModbus 通信システムの構築にあたって、ぜひお役立てください。
注)ActiveXコントロール:Windows において、アプリケーションソフト間のデータ連携を実現する仕組みである OLE に準拠して作成されたソフトウェア部品です。単独で実行することはできず、アプリケーションソフトに組み込んで使用します。