MBServerの概要
MB Serverは、modbus.orgが推奨する2つの補完的なModbus Communicationコンポーネントです。これらはすべて“MBServer”と呼ばれていますが、実際には2つの異なるプロジェクトであることに注意してください。
- MBServer ActiveX(mbserver.tripod.comWindowsプラットフォーム上のModbus RTU/ASCI IおよびModbus TCPプロトコルを介してPLCやその他の産業機器とCommunicationするための無料の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(イーサネット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 1mbclientテスト
#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. NET | ActiveX依存のない. NETネイティブライブラリ |
| Excel VBA PLCの読み込み | MBServer ActiveX | VBAシーンを作成する最も簡単な方法 |
| Linuxサーバ | libmodbusまたはpymodbus | よりアクティブなC/Pythonライブラリ |
| 組み込みLinux | libmodbus | 軽量でRTUとTCPをサポート |
概要まとめ
MBServer ActiveXは、WindowsデスクトップアプリケーションとOfficeオートメーション用に設計されており、シンプルなModbusデータ収集インターフェイスを迅速に構築するのに適しています。MBServer TCP(mblogic)は、Linux環境でのオープンソースのModbus TCPサーバとコマンドラインツールです。彼らの技術スタックは比較的古いですが、学習教材や歴史的な参照として価値があります。実際の新しいプロジェクトでは、プラットフォームと要件に基づいて、より近代的な代替案を推奨します。
Leave a Reply