{"id":43932,"date":"2026-06-26T08:47:21","date_gmt":"2026-06-26T00:47:21","guid":{"rendered":"https:\/\/www.modbus.cn\/43932.html"},"modified":"2026-06-26T08:47:21","modified_gmt":"2026-06-26T00:47:21","slug":"mbserver-modbus-tong-xin-zu-jian-xiang-jie-activex-kong-jian-yu-tcp-fu-wu-qi-ku","status":"publish","type":"post","link":"https:\/\/www.modbus.cn\/en\/43932.html","title":{"rendered":"MBServer Modbus\u901a\u4fe1\u7ec4\u4ef6\u8be6\u89e3\uff1aActiveX\u63a7\u4ef6\u4e0eTCP\u670d\u52a1\u5668\u5e93"},"content":{"rendered":"<h2 class=\"wp-block-heading\">MBServer \u6982\u8ff0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MBServer \u662f modbus.org \u63a8\u8350\u7684\u4e24\u4e2a\u4e92\u8865\u7684 Modbus \u901a\u4fe1\u7ec4\u4ef6\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5b83\u4eec\u867d\u7136\u90fd\u53eb &#8220;MBServer&#8221;\uff0c\u4f46\u5b9e\u9645\u4e0a\u662f\u4e24\u4e2a\u4e0d\u540c\u7684\u9879\u76ee\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>MBServer ActiveX<\/strong>\uff08<a href=\"http:\/\/mbserver.tripod.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow noreferrer noopener\">mbserver.tripod.com<\/a>\uff09\uff1a\u4e00\u4e2a\u514d\u8d39\u7684 ActiveX \u81ea\u52a8\u5316\u670d\u52a1\u5668\uff0c\u7528\u4e8e\u5728 Windows \u5e73\u53f0\u4e0a\u901a\u8fc7 Modbus RTU\/ASCII \u548c Modbus TCP \u534f\u8bae\u4e0e PLC \u6216\u5176\u4ed6\u5de5\u4e1a\u8bbe\u5907\u901a\u4fe1<\/li>\n<li><strong>MBServer TCP<\/strong>\uff08<a href=\"http:\/\/sourceforge.net\/projects\/mblogic\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow noreferrer noopener\">sourceforge.net\/projects\/mblogic<\/a>\uff09\uff1a\u4e00\u4e2a\u5f00\u6e90\u7684 Modbus TCP \u670d\u52a1\u5668\/\u5ba2\u6237\u7aef\u5e93\u96c6\u5408\uff0c\u5305\u542b\u72ec\u7acb\u670d\u52a1\u5668\u3001\u5ba2\u6237\u7aef\u548c\u547d\u4ee4\u884c\u5de5\u5177<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">MBServer ActiveX \u7ec4\u4ef6<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MBServer ActiveX \u662f\u4e00\u4e2a\u8fdb\u7a0b\u5916\uff08out-process\uff09\u7684 ActiveX \u81ea\u52a8\u5316\u670d\u52a1\u5668\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u53ef\u4ee5\u88ab\u4efb\u4f55\u652f\u6301 COM\/OLE \u7684\u8bed\u8a00\u8c03\u7528\u2014\u2014Visual Basic 6\u3001VBA\uff08Excel \u5b8f\uff09\u3001C#\u3001C++\u3001Delphi \u7b49\u3002\u5b83\u662f\u4e00\u4e2a FREEWARE\uff08\u514d\u8d39\u8f6f\u4ef6\uff09\uff0c\u4e0d\u9700\u8981\u4ed8\u8d39\u5373\u53ef\u4f7f\u7528\u5168\u90e8\u529f\u80fd\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u652f\u6301\u7684\u529f\u80fd<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Modbus RTU\/ASCII<\/strong>\uff08\u4e32\u53e3 RS-232\/RS-485\uff09<\/li>\n<li><strong>Modbus TCP<\/strong>\uff08\u4ee5\u592a\u7f51\u901a\u4fe1\uff09<\/li>\n<li>\u529f\u80fd\u7801\uff1aFC01 \u8bfb\u7ebf\u5708\u3001FC02 \u8bfb\u79bb\u6563\u8f93\u5165\u3001FC03 \u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\u3001FC04 \u8bfb\u8f93\u5165\u5bc4\u5b58\u5668\u3001FC05 \u5199\u5355\u7ebf\u5708\u3001FC06 \u5199\u5355\u5bc4\u5b58\u5668\u3001FC15 \u5199\u591a\u7ebf\u5708\u3001FC16 \u5199\u591a\u5bc4\u5b58\u5668<\/li>\n<li>\u81ea\u52a8\u91cd\u8fde\u673a\u5236<\/li>\n<li>\u591a\u7ebf\u7a0b\u5b89\u5168\u8bbe\u8ba1<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u5728 VBA\uff08Excel\uff09\u4e2d\u4f7f\u7528 MBServer ActiveX<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u662f MBServer ActiveX \u6700\u5b9e\u7528\u7684\u573a\u666f\u4e4b\u4e00\u2014\u2014\u5728 Excel \u4e2d\u76f4\u63a5\u8bfb\u5199 PLC \u6570\u636e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>' VBA \u4ee3\u7801\uff1a\u5728 Excel \u4e2d\u8bfb\u53d6 Modbus TCP \u8bbe\u5907\u6570\u636e\nSub ReadModbusData()\n    Dim mb As Object\n    Set mb = CreateObject(\"MBServer.MBServerCtrl.1\")\n    \n    ' \u914d\u7f6e Modbus TCP \u8fde\u63a5\n    mb.Protocol = 3  ' 3 = Modbus TCP\n    \n    ' \u8fde\u63a5\u8bbe\u5907\n    If mb.Connect(\"192.168.1.100\", 502) Then\n        ' \u8bfb\u53d6\u4ece\u7ad9 1\uff0c\u8d77\u59cb\u5730\u5740 40001\uff0c10 \u4e2a\u4fdd\u6301\u5bc4\u5b58\u5668\n        Dim values As Variant\n        values = mb.ReadHoldingRegisters(1, 40001, 10)\n        \n        ' \u5c06\u6570\u636e\u5199\u5165 Excel \u5355\u5143\u683c\n        Dim i As Integer\n        For i = 0 To UBound(values)\n            Cells(i + 1, 1).Value = values(i)\n        Next i\n        \n        mb.Disconnect\n    Else\n        MsgBox \"\u8fde\u63a5\u5931\u8d25\uff01\"\n    End If\nEnd Sub<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u5728 C# \u4e2d\u4f7f\u7528 MBServer ActiveX<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ C# \u4ee3\u7801\uff1a\u901a\u8fc7\u4e92\u64cd\u4f5c\u8c03\u7528 MBServer ActiveX\nusing System.Runtime.InteropServices;\n\nType mbType = Type.GetTypeFromProgID(\"MBServer.MBServerCtrl.1\");\ndynamic mb = Activator.CreateInstance(mbType);\n\nmb.Protocol = 3;  \/\/ Modbus TCP\nif (mb.Connect(\"192.168.1.100\", 502))\n{\n    \/\/ \u8bfb\u53d6 10 \u4e2a\u4fdd\u6301\u5bc4\u5b58\u5668\n    Array values = (Array)mb.ReadHoldingRegisters(1, 40001, 10);\n    foreach (var v in values)\n    {\n        Console.WriteLine(v);\n    }\n    mb.Disconnect();\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">MBServer ActiveX \u7684\u5c40\u9650\u6027<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ActiveX \u6280\u672f\u8bde\u751f\u4e8e 1990 \u5e74\u4ee3\uff0c\u5728\u73b0\u4ee3 Windows \u5f00\u53d1\u4e2d\u5df2\u7ecf\u9010\u6e10\u88ab .NET\u3001COM Interop \u7b49\u66f4\u65b0\u6280\u672f\u53d6\u4ee3\u3002MBServer ActiveX \u4ec5\u652f\u6301 32 \u4f4d Windows\uff0c\u5728 64 \u4f4d\u5e94\u7528\u7a0b\u5e8f\u4e2d\u9700\u8981\u901a\u8fc7 WOW64 \u517c\u5bb9\u5c42\u6216 surrogate process \u6765\u4f7f\u7528\u3002\u5bf9\u4e8e\u65b0\u9879\u76ee\uff0c\u66f4\u63a8\u8350\u4f7f\u7528 NModbus\uff08C#\uff09\u6216 ASComm.NET \u7b49 .NET \u539f\u751f\u5e93\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MBServer TCP\uff08mblogic\uff09<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MBServer TCP \u662f\u4e00\u4e2a\u5b8c\u5168\u4e0d\u540c\u7684\u9879\u76ee\uff0c\u5b9a\u4f4d\u4e3a\u5f00\u6e90\u7684 Modbus TCP \u5de5\u5177\u96c6\uff0c\u6258\u7ba1\u5728 SourceForge\u3002\u8bb8\u53ef\u8bc1\u4e3a GPL\uff08\u9002\u5408\u5f00\u6e90\u9879\u76ee\u4f7f\u7528\uff0c\u5546\u4e1a\u9879\u76ee\u9700\u6ce8\u610f\u5408\u89c4\uff09\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7ec4\u6210\u90e8\u5206<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>mbserverd<\/strong>\uff1a\u72ec\u7acb\u7684 Modbus TCP \u670d\u52a1\u5668\u5b88\u62a4\u8fdb\u7a0b\uff0c\u53ef\u4ee5\u90e8\u7f72\u4e3a\u7cfb\u7edf\u670d\u52a1<\/li>\n<li><strong>mbclient<\/strong>\uff1a\u547d\u4ee4\u884c Modbus TCP \u5ba2\u6237\u7aef\uff0c\u7528\u4e8e\u6d4b\u8bd5\u548c\u811a\u672c\u8c03\u7528<\/li>\n<li><strong>libmblogic<\/strong>\uff1aC \u8bed\u8a00 Modbus TCP \u534f\u8bae\u5e93\uff0c\u53ef\u4ee5\u88ab\u5176\u4ed6\u7a0b\u5e8f\u8c03\u7528<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Linux \u4e0a\u5b89\u88c5 MBServer TCP<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4ece SourceForge \u4e0b\u8f7d\u6e90\u7801\ngit clone https:\/\/git.code.sf.net\/p\/mblogic\/code mblogic-code\ncd mblogic-code\n\n# \u7f16\u8bd1\uff08\u9700\u8981 gcc \u548c make\uff09\n.\/configure\nmake\nsudo make install\n\n# \u542f\u52a8 Modbus TCP \u670d\u52a1\u5668\nmbserverd -p 502 -a 1<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f7f\u7528 mbclient \u6d4b\u8bd5<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u8bfb\u53d6 127.0.0.1:502 \u4e0a\u4ece\u7ad9 1 \u7684\u4fdd\u6301\u5bc4\u5b58\u5668 0-9\nmbclient -H 127.0.0.1 -p 502 -a 1 -f 3 -s 0 -n 10\n\n# \u5199\u5165\u4ece\u7ad9 1 \u7684\u4fdd\u6301\u5bc4\u5b58\u5668 0\nmbclient -H 127.0.0.1 -p 502 -a 1 -f 6 -s 0 -v 1234<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u73b0\u4ee3\u66ff\u4ee3\u65b9\u6848<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u7531\u4e8e MBServer ActiveX \u6280\u672f\u6808\u8f83\u8001\uff0c\u4e14 mblogic \u9879\u76ee\u6d3b\u8dc3\u5ea6\u4e0d\u9ad8\uff0c\u5728\u5b9e\u9645\u9879\u76ee\u4e2d\u63a8\u8350\u4ee5\u4e0b\u66ff\u4ee3\u65b9\u6848\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead><tr><th>\u9700\u6c42\u573a\u666f<\/th><th>\u63a8\u8350\u65b9\u6848<\/th><th>\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>Windows .NET\/C# \u5f00\u53d1<\/td><td>NModbus \u6216 ASComm.NET<\/td><td>.NET \u539f\u751f\u5e93\uff0c\u65e0\u9700 ActiveX \u4f9d\u8d56<\/td><\/tr>\n<tr><td>Excel VBA \u8bfb\u53d6 PLC<\/td><td>MBServer ActiveX<\/td><td>\u4ecd\u7136\u662f VBA \u573a\u666f\u6700\u7b80\u5355\u7684\u65b9\u5f0f<\/td><\/tr>\n<tr><td>Linux \u670d\u52a1\u5668<\/td><td>libmodbus \u6216 pymodbus<\/td><td>\u66f4\u6d3b\u8dc3\u7684 C\/Python \u5e93<\/td><\/tr>\n<tr><td>\u5d4c\u5165\u5f0f Linux<\/td><td>libmodbus<\/td><td>\u8f7b\u91cf\uff0c\u652f\u6301 RTU \u548c TCP<\/td><\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u603b\u7ed3<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MBServer \u4ee3\u8868\u4e86 Modbus \u901a\u4fe1\u7684\u4e24\u4e2a\u7ecf\u5178\u5b9e\u73b0\u65b9\u5411\uff1aMBServer ActiveX \u4e13\u4e3a Windows \u684c\u9762\u5e94\u7528\u548c Office \u81ea\u52a8\u5316\u8bbe\u8ba1\uff0c\u9002\u5408\u5feb\u901f\u642d\u5efa\u7b80\u5355\u7684 Modbus \u6570\u636e\u91c7\u96c6\u754c\u9762\uff1bMBServer TCP\uff08mblogic\uff09\u5219\u662f Linux \u73af\u5883\u4e0b\u7684\u5f00\u6e90 Modbus TCP \u670d\u52a1\u5668\u548c\u547d\u4ee4\u884c\u5de5\u5177\u3002\u867d\u7136\u5b83\u4eec\u7684\u6280\u672f\u6808\u76f8\u5bf9\u8001\u65e7\uff0c\u4f46\u4f5c\u4e3a\u5b66\u4e60\u8d44\u6599\u548c\u5386\u53f2\u53c2\u8003\u4ecd\u7136\u6709\u4ef7\u503c\u3002\u5728\u5b9e\u9645\u65b0\u9879\u76ee\u4e2d\uff0c\u5efa\u8bae\u6839\u636e\u5e73\u53f0\u548c\u9700\u6c42\u9009\u62e9\u66f4\u73b0\u4ee3\u7684\u66ff\u4ee3\u65b9\u6848\u3002<\/p>\n<span id=\"magicpostMarker\"><\/span>","protected":false},"excerpt":{"rendered":"<p>MBServer \u6982\u8ff0 MBServer \u662f modbus&#8230;.<\/p>","protected":false},"author":1,"featured_media":27977,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[691],"tags":[],"class_list":["post-43932","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-modbus-code-base"],"_links":{"self":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/43932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/comments?post=43932"}],"version-history":[{"count":0,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/43932\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/media\/27977"}],"wp:attachment":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/media?parent=43932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/categories?post=43932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/tags?post=43932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}