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

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

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

MBServerの概要

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

  • MBServer ActiveX(mbserver.tripod.comWindowsプラットフォーム上のModbus RTU/ASCI IおよびModbus TCPプロトコルを介してPLCやその他の産業機器と通信するための無料のActiveXオートメーションサーバー。
  • MBServer TCP(sourceforge.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(イーサネット通信)
  • 機能コード: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サーバとコマンドラインツールです。彼らの技術スタックは比較的古いですが、学習教材や歴史的な参照として価値があります。実際の新しいプロジェクトでは、プラットフォームと要件に基づいて、より近代的な代替案を推奨します。

この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注