MBServer ModbusCommunicationコンポーネントの詳細:ActiveXコントロールとTCPサーバライブラリ

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

MBServer ModbusCommunicationコンポーネントの詳細:ActiveXコントロールとTCPサーバライブラリ

MBServerの概要

MB Serverは、modbus.orgが推奨する2つの補完的なModbus Communicationコンポーネントです。これらはすべて“MBServer”と呼ばれていますが、実際には2つの異なるプロジェクトであることに注意してください。

  • MBServer ActiveXmbserver.tripod.comWindowsプラットフォーム上のModbus RTU/ASCI IおよびModbus TCPプロトコルを介してPLCやその他の産業機器とCommunicationするための無料のActiveXオートメーションサーバー。
  • MBServer TCPsourceforge.net/projects/mblogic):スタンドアロンのサーバ、クライアント、コマンドラインツールを含むModbus TCPサーバ/クライアントライブラリのオープンソースコレクション。

MBServer ActiveXコンポーネント

MBServer ActiveXは、COM/OLEをサポートする任意の言語(Visual Basic 6、VBA(Excelマクロ)、C#、C++、Delphiなど)から呼び出すことができることを意味します。FREEWARE(フリーウェア)であり、すべての機能を利用するために支払う必要はありません。

サポートする機能

  • Modbus RTU/ASCIIシリアルRS-232/RS-485
  • Modbus TCP(イーサネットCommunication)
  • 機能コード:FC01リードコイル、FC02リード離散入力、FC03リードホールドレジスタ、FC04リード入力レジスタ、FC05ライトシングルコイル、FC06ライトシングルレジスタ、FC15ライトマルチコイル、FC16ライトマルチレジスタ
  • 自動再接続機構
  • マルチスレッドセキュリティ設計

VBA ExcelでのMBServerの使用

これは、ExcelでPLCデータを直接読み書きするMBServer ActiveXの最も実用的なシナリオの1つです。

VBAコード:ExcelでModbus TCPデバイスデータを読み取る
Sub ReadModbusData
    Dim MBをオブジェクトとして
    Set mb = CreateObject "MBServer.MBServerCtrl.1"
    
    'Modbus TCP接続の設定
    mb.Protocol = 3 ' 3 = TCP
    
    “接続機器
    If mb.Connect "192.168.1.100" 502 Then
        '読み出しスレーブ1、アドレス40001、10 个の保持レジスタ
        Variantとしてのダイム値
        values = mb.ReadHoldingRegisters 1 40001 10
        
        'Excelのセルにデータを書き込む
        DIM I As Integerシングル
        For i = 0 To UBound values
            s
        次のi
        
        mb.Disconnect
    エルゼは
        MsgBox "接続に失敗しました! "
    End Ifの意味
End Subの

C#でMBServer ActiveXを使用する

//C#コード:MBServer ActiveXを相互運用で呼び出す
System.Runtime.InteropServicesを使用する

Type mbType = Type.GetTypeFromProgID "MBServer.MBServerCtrl.1";
dynamic mb = Activator.CreateInstance mbType;

プロトコル= 3; // Modbus TCP
if mb.Connect "192.168.1.100" 502
{
    //10個のホールドレジスタを読み込む
    Array values = Array mb.ReadHoldingRegisters 1 40001 10;
    foreach var v in values
    {
        Console.WriteLine v;
    }
    mb.Disconnect nParticle;
}

MBServer ActiveXの制限

ActiveX技術は1990 年代に生まれ、現代のWindows開発では. NETやCOM Interopなどの新しい技術に徐々に置き換えられています。MBServer ActiveXは32ビットWindowsのみをサポートしており、64ビットアプリケーションではWOW64互換レイヤまたはsurrogateプロセスを介して使用する必要がある。新しいプロジェクトでは、NModbus(C#)やASComm.NETなどの. NETネイティブライブラリを使用することを推奨します。

MBServer TCP(mblogic)

MB Server TCPは、SourceForgeでホストされているオープンソースのModbus TCPツールセットとして位置づけられている全く異なるプロジェクトです。ライセンスはGPLです(オープンソースプロジェクトに適していますが、商用プロジェクトには準拠しています)。

コンポーネントの構成要素

  • mbserverdシステムサービスとして展開できるスタンドアロンのModbus TCPサーバデーモン
  • mbclient:テストとスクリプト呼び出しのためのコマンドラインModbus TCPクライアント
  • libmblogicC言語Modbus TCPプロトコルライブラリ、他のプログラムから呼び出すことができます。

LinuxでのMBServer TCPのインストール

ソースコードをSourceForgeからダウンロード
git clone https://git.code.sf.net/p/mblogic/code mblogic-code
CD mblogic-code

コンパイル(gccとmakeが必要)
./ configure-
makeする
sudo make installを実行

Modbus TCPサーバの起動
mbserverd -p 502 -a 1

mbclientテスト

#127.0.0.1 502上のスレーブ1の保持レジスタ0-9を読み込む
mbclient-H 127.0.0.1-p 502-a 1-f3-s 0-n 10

#スレーブ1の保持レジスタ0を書き込む
mbclient-H 127.0.0.1-p 502-a1-f6-s0-v 1234

現代の代替案

MBServer ActiveXスタックは古く、mblogicプロジェクトはあまり活発ではないため、実際のプロジェクトでは以下の代替案が推奨されます。

需要のシナリオ推奨プログラム説明書は
Windows. NET/C#開発NModbusまたはASComm. NETActiveX依存のない. NETネイティブライブラリ
Excel VBA PLCの読み込みMBServer ActiveXVBAシーンを作成する最も簡単な方法
LinuxサーバlibmodbusまたはpymodbusよりアクティブなC/Pythonライブラリ
組み込みLinuxlibmodbus軽量でRTUとTCPをサポート

概要まとめ

MBServer ActiveXは、WindowsデスクトップアプリケーションとOfficeオートメーション用に設計されており、シンプルなModbusデータ収集インターフェイスを迅速に構築するのに適しています。MBServer TCP(mblogic)は、Linux環境でのオープンソースのModbus TCPサーバとコマンドラインツールです。彼らの技術スタックは比較的古いですが、学習教材や歴史的な参照として価値があります。実際の新しいプロジェクトでは、プラットフォームと要件に基づいて、より近代的な代替案を推奨します。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.