Modbus Slave 中文版用户手册及ソフトウェアのダウンロード

Paid ¥4.99Paid ¥4.99

该内容已接入现有会員/有料系统,解锁后可完全な情報を見る或添付ファイルのダウンロード。

表示解锁方式
Modbus Slave 中文版用户手册及ソフトウェアのダウンロード
Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト

Mini Program Version,無料使用!!!

Modbus Slave

Modbus Slave 用于在 100 个窗口中模拟多达 100 个スレーブデバイス!使用此模拟工具加快あなたの PLC プログラミング速度。在从供应商处收到从属デバイス之前,请开始プログラミング和测试。主应用程序可以アクセス任何打开ドキュメント中包含的データ。与 Modbus ポーリング相同的用户界面。

モニタリング串行トラフィック。用于与 Visual Basic、Excel 等连接的 OLE 自動化。根据あなたの具体要求解释和表示 Modbus data。例如,在 Excel 中編集从属データ。尝试该程序附带的 Excel example.xls。

Modbus スレーブ中打开的每个窗口都可以設定为表示来自相同或不同スレーブ节点的データ。

Modbus スレーブ的系统要求

硬件要求

処理器; 建议 1 GHz 或更快
1 GB RAM
5 MB 可用硬盘空间
1024 x 768 表示分辨率オペレーティングシステム要求

サポート从 Windows 7 to Windows 11 的すべての Windows 版本。
Modbus Slave 版本 8 在 Windows XP 上运行。

1.1.1. 静默インストール

静默インストール必要なし。用户干预,并且ない用户界面。用户看不到任何对话框,也不会被问到任何問題。
使用命令行 /S switch。

Modbusスレーブ特性

connect

Modbus Slave 使用以下方式从デバイス読み取り/写入データ:

  • RS232 或 RS485 网络上的 Modbus RTU 或 ASCII。(USB/RS232/485変換器です。)
  • Modbus TCP/IP
  • TCP/IP 上的 Modbus。(Modbus RTU封装在TCPデータパケットは中)
  • ProtocolUDP/IP
  • 基于 UDP/IP 的 Modbus。(Modbus RTU封装在UDPデータパケットは中)

サポート的 Modbus Function

  • 01 (0x01) リードコイル
  • 02 (0x02) Read discrete inputs
  • 03 (0x03) Read and hold register
  • 04 (0x04) Read input register
  • 05 (0x05) write single coil
  • 06 (0x06) write single register
  • 08 (0x08) 诊断(仅限串行线)
  • 11 (0x0B) 取得通讯イベント数器(仅限串行线)
  • 15 (0x0F) Write multiple coils
  • 16 (0x10) Write multiple registers
  • 17 (0x11) 报告サーバー·サーバー ID(仅限串行线路)
  • 22 (0x16) 掩码写レジスタ
  • 23 (0x17) 读/write multiple registers
  • 43 / 14 (0x2B / 0x0E) 読み取りデバイス标识

Display format

每个ユニット格都可以单独格式化。

  • 16位記号付き。レジスタ(Signed 16-bit register
  • 16ビット符号なしレジスタ(Unsigned 16-bit register
  • hexadecimal(Hex
  • binary(Binary
  • 具有任意字/バイト顺序的 32 ビット符号付き整数(32-bit signed integer with any word/byte order
  • 具有任意字/バイト顺序的 32 ビット符号なし整数(32-bit unsigned integer with any word/byte order
  • 具有任意字/バイト顺序的 64 ビット符号付き整数(64-bit signed integer with any word/byte order
  • 具有任意字/バイト顺序的 64 ビット符号なし整数(64-bit unsigned integer with any word/byte order
  • 具有任意字/バイト顺序的 32 ビット浮動小数点数(32-bit float with any word/byte order
  • 具有任意字/バイト顺序的 64位倍精度浮動小数点数(64-bit double float with any word/byte order

其他功能

  • 用于与 Excel VBA、Python 等连接的 OLE/自動化。
  • データトラフィックモニタリング
  • 打印和打印预览
  • 字体選択
  • 条件颜色
  • Zoom
  • 实时图表
  • 保存/打开工作区

概述

Modbus Slave 使用多ドキュメント界面。这意味着可以打开多个窗口。每一个具有不同的データ内容,用于同时模拟不同的スレーブデバイス。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト1

这张照片表示了2つ打开的窗口。一个模拟来自アドレス 0 (40001) スレーブ id 1 的 10 レジスタを保持する。,另一个模拟来自アドレス 0 (40001) スレーブ id 2 的 10 レジスタを保持する。。

随时随地提供帮助

按 F1即可取得与当前所选项目相关的主题的Contextより相关帮助。

SHIFT + F1调用特殊的“帮助モード”,其中光标变成帮助光标(箭头+问号)。然后,用户可以選択用户界面中的可见对象,例如菜单项、工具栏按钮或窗口。这将打开有关説明所选项目的主题的帮助。

命名ユニット格

您可以在此处键入任何文本来指定值ユニット格。您还可以从 Excel ユニット格コピー/貼り付け文本。

值ユニット格

表示 Modbus レジスタ的データ值。もし双击值ユニット格,将出现一个对话框,您可以在该值ユニット格中入力新值。在值ユニット格中键入数字也会表示入力对话框。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト2

更改字体

要更改字体,您有 2 个选项

  • 選択要更改的ユニット格,然后右クリック单击。
  • 選択要更改的ユニット格,然后選択菜单→表示→字体。
Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト3

条件颜色

条件颜色可帮助您直观地表示特定範囲内的值。3 种颜色選択

  • デフォルト颜色:もしない任何条件颜色計算结果为 true,则使用此颜色。
  • Rules 1:もし表达式的計算结果为 true,则使用此颜色選択。Rules 1 优先于ルール 2。
  • Rules 2:もし表达式的計算结果为 true,则使用此颜色選択。

7 种比较运算符

  • not used: 未使用
  • equal to: equal to
  • greater than: greater than
  • less than: less than
  • greater than or equal to: greater than or equal to
  • less than or equal to: less than or equal to
  • and: 与

当データ型为 float 或 32 位 long タイプ时,不能使用“and”运算符。もし選択“and”,则条件值将以十六进制数字形式入力。もしユニット格和条件值中的任何位均为 1,则其計算结果为 true。

颜色サンプル

もしユニット格值大于 0,则为绿色;もし小于 0,则为红色。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト4

Zoom

缩放可帮助您将元の值缩放为人类可读的值。缩放仅適用される記号付き。和符号なし。 16/32 ビット整数型。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト5

(X1,Y1) 和 (X2,Y2)

一条経由两点 (X1,Y1) 和 (X2,Y2) 的直线

Slope=m=Y2−Y1/X2−X1

直线方程

Y=m⋅(X−X1)+Y1

精确

小数点后的位数。

Enable

必须有効此功能,以从ModbusServer/スレーブ缩放值。もし選択了非16/32ビット整数表示格式,缩放会自动無効

实时图表

该图表可以实时绘制 12 个系列,每个系列最多 100000 个点。

打开一个新窗口

要打开另一个窗口,您有 3 个选项:

  • 按 CTRL+N
  • 在文件菜单中選択新建
  • Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト6工具栏上的

连接对话框

要打开连接对话框,您有 2 个选项:

  • 按F3
  • 从连接菜单中選択连接
Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト7

connect(Connection)

有 5 种不同的连接タイプ:

  1. serial port:
    経由串行线路的 Modbus。RS232 或 RS485。可以使用USB串行変換器です。。
  2. Modbus TCP/IP:
    もし要与 MODBUS TCP/IP 网络通信,Please select TCP/IP。在这种情况下,slave ID 与 MODBUS TCP/IP で使用する。的ユニット ID 相同。
    ポート番号デフォルト为 502。
  3. Modbus UDP/IP:
    もし要与 MODBUS UDP/IP 网络通信,Please select UDP/IP。这与 Modbus TCP/IP 相同,但使用无连接 UDP Protocol。
  4. TCP/IP 上的 Modbus RTU:
    这是経由 TCP/IP 网络而ではない串行线路送信的 RTU メッセージ。
  5. Modbus RTU Over UDP/IP:
    这是経由 UDP/IP 网络而ではない串行线路送信的 RTU メッセージ。

根据あなたの選択,一些其他設定将呈灰色。

シリアルポート設定(Serial Settings)

使用这些参数来設定串行ポートの設定。仅当连接タイプ为“串行ポート”时它们才可用。モード

使用此选项選択RTUASCIIモード。デフォルト RTU。数字SR

指定是否监视 DSR(データ集就绪)信号以进行出力フロー制御制。もし该成员为 TRUE 并且 DSR Close,则出力将暂停,直到再次送信 DSR。CTS

指定是否监视 CTS(クリア送信)信号以进行出力トラフィック控制。もし有効此复选框并且关闭 CTS,则出力将暂停,直到再次送信 CTS。即时战略切换

指定もしバイト可用于传输,则 RTS 线将为高电平。送信すべての缓冲バイト后,RTS 线将为低电平。
もしあなたの 232/485 変換器です。ない自动方向开关,则可以使用它来切换方向。

もし可能,应避免使用 RTS 控制的 RS232/RS485 Converters。对于Windows、Linux等非实时オペレーティングシステム,很难确定发射机关闭的具体时间。もし过早关闭,文字可能仍位于 FIFO 或 UART 的送信レジスタ中,并且这些文字将会丢失。因此スレーブ将認識できない该メッセージ。另一方面,もし关闭得太晚,则从デバイス的メッセージ会被损坏,并且主デバイス将認識できない该メッセージ。

TCP/IPServer(TCP/IP Server)

TCP/IP サーバー·サーバー設定仅在使用イーサネット(イーサネット)连接时可用。IPaddress

指定要侦听的 IP address。もしあなたの PC 上有多个网络连接,这非常有用。Modbus Slave 的每个实例都可以侦听特定网络。デフォルト为本地マスター 127.0.0.1任何アドレス

もし您希望 Modbus Slave 侦听すべての网络,请选中此项。忽略ユニット ID

许多PLCデバイス会忽略该字段,并且大多数クライアント側はデフォルト値为零。然而,ゲートウェイ或专用程序可以使用ユニット号来指示需要什么タイプ的処理。港口

サーバー側。口号。デフォルト502

スレーブ定义(Slave definition)

使用此命令可以定义要为活动窗口定义的データ配列。

要打开 Slave Definition 对话框,您有 3 个选项:

  • 按 F8
  • 从設定菜单中選択“スレーブ定义”
  • Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト8工具栏上的
Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト9

スレーブID(Slave ID)

範囲 1 to 255。(MODBUS プロトコルの仕様规定为 247)。值 0 也可以直接与 MODBUS/TCP 或 MODBUS/UDP デバイス通信。

function code(Function)

您可以選択 4 个功能代码中的 1 个。

  • 01:リードコイル(0x)。接受写入功能 05 和 15
  • 02:Read discrete inputs (1x)
  • 03:Read and hold register(4x)。接受写入功能 06、16、22 和 23
  • 04:Read input register(3x)

address(Address)

Modbusプロトコル中的アドレス很混乱!一些プロトコルの仕様使用协议/メッセージアドレス,而其他プロトコルの仕様使用デバイス寻址。

Protocol/メッセージアドレス

某些プロトコルの仕様使用从 0 to 65535 计数的协议/メッセージアドレス以及功能代码。这也是新的 Modbus 规范所使用的内容。这是経由线路送信的メッセージ中的アドレス。

Modbus Slave 使用协议/メッセージアドレス从 0 to 65535 计数。

Device address

一些プロトコルの仕様使用デバイスアドレス/register。レジスタ从 1 开始计数。第一个数字説明要使用的功能。这意味着デバイスアドレス 40101 由アドレス 100 标识。“4”表示レジスタを保持する。和 4x レジスタ从 1 开始计数。因此“4XXXX”引用是隐式的。更令人困惑的是:4x 表示功能代码 03,3x 表示功能代码 04!

5 位与 6 位寻址

アドレス格式 4x 从 40001 计数到 49999。下一アドレスはこちら。ではない50000。在过去,9999 アドレスはこちら。就足够了。一部の情况下9999还不够。然后追加一个零。40101 变为 400101,依此类推。这称为 6 位寻址或扩展寻址。

这对于 Modbus Slave 来说ではない問題。410001 变成 10000。“4”被丢弃,剩下的 10001 减 1,因为我们从 0 而ではない 1 开始计数。

アドレスサンプル

这些サンプル表示了在规范使用デバイスアドレス的情况下如何設定 Modbus slave。

定义レジスタを保持する。

您想要从デバイス ID 2 的デバイスアドレス 40011 定义 20 Registers。从“4”我们知道这是功能 03“Read and hold register”。

  • スレーブ ID = 2
  • Function =“03 Read and hold register (4x)”
  • address = 10(11 减 1)
  • Quantity = 20
定义ショップ型入力

您想要从スレーブ ID 5 的アドレス 110201 定义 1000 1つのコイル。从“1”我们知道这是功能 02“Read discrete inputs”

  • スレーブ ID = 5
  • Function =“02 Read discrete inputs (1x)”
  • address = 10200 (10201 - 1)
  • Quantity = 1000

非表示名称列(Hide name columns)

非表示すべての名称列。もし不使用它们,这可以方便地腾出もっと見る空间。

ユニット格中的アドレス(Address in cell)

もし有効,アドレス也会表示在值ユニット格中,例如:2000 = 00000

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト10

PLC address(基アドレス 1)PLC Addresses (Base 1)

此选项会将アドレス表示为デバイスアドレス。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト11

行数(Rows)

指定您喜欢的网格中的行数。

实时图表(Real time Charting)

使用此命令可在图表中实时绘制最多 12 个データ系列。
实时图表速度很快,能够在收到新データ后尽快绘制新线。

すべての图表設定都保存在工作区文件中。保存/打开工作区

要打开实时图表对话框,您有 2 个选项:

  • 按 Alt + R
  • 从表示菜单中選択“实时图表”
Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト12

X 轴表示自图表启动以来的秒数。

当点到达图表末尾时,有 3 个选项:

  • 结束时停止:图表停止。
  • 结束时重新启动:图表再スタート。。
  • 继续:继续,直到达到最大点数或按下停止按钮。

設定(Settings)

デフォルト情况下,すべての 12 个系列都链接到左侧 Y 轴。もし要将系列链接到右 Y 轴,请选中“右 Y 轴”复选框。指定

  • 颜色
  • 右 Y 轴
  • 标题。もし标题为空,则使用阅读窗口中的名称进行初期化
  • 抵消

表示

  • 文件名
  • address

偏移对于在同一 Y 轴上对齐データ点很有用。例如,0 或 1 的データ点可以偏移,这样它们就不会绘制在彼此之上。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト13

变焦功能

もし您想もっと見る>>詳細はこちら,放大图表会很有用。缩放由鼠标左键控制。要缩放图表的特定部分,只需左键单击图表(这将是缩放矩形的左上角)并拖动到右下角。将出现一个矩形。一旦释放鼠标按钮,轴就会自动调整到您選択的エリア。

もし您左键单击图表(例如开始缩放),但もし您移動到左上角,则使用缩放和平移功能完成的すべての修改都将被キャンセル(图表将处于原来的ステータス)在进行平移和缩放操作之前)。

平移功能

要平移控件,请右クリック单击控件上的某处并移動鼠标。鼠标下方的点将跟随鼠标的移動。

除非将 Modbus データユニット链接到 12 个系列之一,否则图表不知道要使用哪些データ。为此,選択してください。一个值ユニット格,然后从菜单→表示中選択“链接到图表”。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト14

出口系列

将系列データ保存する。磁盘或コピー到剪贴板。将データ直接貼り付け到 Excel 中以进行进一步処理。
尽管使用非逗号字段分隔符,但该文件仍具有 .csv 扩展名。

分隔符:選択分隔文本記事件中的值的文字。Copy/貼り付け到 Excel 使用するとき制表符分隔符。此外还给出了一些附加信息。

  • 点数
  • 最大分值
  • 最小分值
  • 平均分值
Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト15

Display format

标记要格式化的ユニット格。从表示菜单中選択 28 种表示格式之一。

本机 Modbus register

16 位 Modbus レジスタ可以以 4 种不同的モード表示。

  • 未签名
  • hexadecimal
  • ASCII - hexadecimal
  • binary

32 ビット符号付き整数(32-bit signed integer)

它结合了 2 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 記号付き。整数 大尾数
  • 記号付き。整数 小尾数
  • 記号付き。整数ビッグエンディアンバイトスワップ
  • 記号付き。整数リトルエンディアンバイトスワップ例子バイト顺序:AB CD(ビッグエンディアン)
    十进制数 123456789 或十六进制数07 5B CD 15
    Modbus メッセージ中経由线路传输的顺序:07 5B CD 15

32 ビット符号なし整数(32-bit unsigned integer)

它结合了 2 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 符号なし。整数 大尾数
  • 符号なし。整数 小尾数
  • 符号なし。整数 Big-endian バイトスワップ
  • 符号なし。整数リトルエンディアンバイトスワップ例子バイト顺序:AB CD(ビッグエンディアン)
    十进制数 123456789 或十六进制数07 5B CD 15
    Modbus メッセージ中経由线路传输的顺序:07 5B CD 15

64 ビット符号付き整数(64-bit signed integer)

它结合了 4 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 記号付き。整数 大尾数
  • 記号付き。整数 小尾数
  • 記号付き。整数ビッグエンディアンバイトスワップ
  • 記号付き。整数リトルエンディアンバイトスワップ例子バイト顺序:AB CD EF GH(ビッグエンディアン)
    十进制数 -1,234,567,890,123,456,789 或十六进制数EE DD EF 0B 82 16 7E EB
    Modbus メッセージ中的线路顺序:EE DD EF 0B 82 16 7E EB

64 ビット符号なし整数(64-bit unsigned integer)

它结合了 4 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 符号なし。整数 大尾数
  • 符号なし。整数 小尾数
  • 符号なし。整数 Big-endian バイトスワップ
  • 符号なし。整数リトルエンディアンバイトスワップ例子バイト顺序:AB CD EF GH(ビッグエンディアン)
    十进制数 1,234,567,890,123,456,789 或十六进制数11 22 10 F4
    7D E9 81 15 Modbus メッセージ中的线路顺序:11 22 10 F4 7D E9 81 15

32ビット浮動小数点数(32-bit floating)

它结合了 2 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 浮点大尾数
  • 浮動小数点数小尾数
  • 浮点ビッグエンディアンバイトスワップ
  • 浮点リトルエンディアンバイトスワップ例子バイト顺序:AB CD(ビッグエンディアン)
    浮動小数点数 123456.00 或十六进制47 F1 20 00
    Modbus メッセージ中的线路顺序:47 F1 20 00

64位倍精度浮動小数点数(64-bit double)

它结合了 4 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 双大尾数
  • 双リトルエンディアン
  • 双ビッグエンディアンバイトスワップ
  • 双リトルエンディアンバイトスワップ例子バイト顺序:AB CD EF GH(ビッグエンディアン)
    浮動小数点数 123456789.00 或十六进制41 9D 6F 34 54 00 00 00
    Modbus メッセージ中的线路顺序:41 9D 6F 34 54 00 00 00

保存/打开工作区

もし您打开许多相关的 Modbus 窗口,可以方便地在一个工作区中保存すべての打开和配列的 Modbus 窗口的当前布局的快照。

工作区 (*msw) 是一个包含すべての打开窗口的表示信息和文件名的文件。ではない实际内容。为此,请转到文件→保存工作区。

连接和图表設定存储在工作区文件中。

当您打开工作区文件时,Modbus Slave 将打开すべての Modbus 窗口并以您保存的布局表示它们。

通讯トラフィック

選択菜单“表示”→“通讯”以表示串行线路或イーサネット(イーサネット)电缆上的トラフィック。使用停止按钮暂时停止更新以进行チェック。

使用コピー按钮将所选行コピー到剪贴板。

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト16
该窗口仅表示 Modbus スレーブ送信和受信的データ。您不能将其用作データ嗅探器。
在执行其他命令时保持此窗口打开。

OLE/自動化

自動化(以前称为 OLE 自動化)使一个应用程序可以操作另一应用程序実現しました的对象。

自動化クライアント側は是一个可以操作属于另一个应用程序的公开对象的应用程序。这也称为自動化コントローラーは。

自動化サーバーは、向其他应用程序公开可プログラミング对象的应用程序。Modbus Slave是一个自動化サーバー·サーバー。

这意味着您可以使用任何サポートVBA(Visual Basic for Applications)的程序(例如Visual Basic、Excel等)根据あなたの具体要求解释和表示modbusdata。

Excel example

当您想要编写宏时,您应该表示“开发人员”タブ或在开发人员モード下运行。

Excel 2007

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト17
  1. 单击 Microsoft Office button,然后单击 Excel 选项。
  2. 单击“流行”,然后选中“在功能区中表示开发人员タブ”复选框。
    请注意,功能区是 Microsoft Fluent 用户界面的一部分。

Excel 2010、2016

  1. 单击文件タブ。
  2. 单击选项。Excel 选项窗口将打开。
  3. 在左侧窗格中单击“自定义功能区”。
  4. 在右侧窗格的“主タブ”下,选中“开发人员”复选框。
  5. 单击“确定”。“开发人员”タブ现在应该表示在功能区中(最右侧的タブ)。

Excel サンプルコード

此サンプル打开一个模拟レジスタを保持する。的窗口。
Modbus Slave 是非表示的,但您可以経由キャンセル注释“ShowWindow”行来表示它。这将表示其中一个窗口。

Modbus Slave インストール中还包含一个サンプル。
开始 → すべての程序 → Modbus Slave → Excel exampleExcel VBA example

Public doc As Object
Public app As Object
Dim status As Integer
Dim n As Integer
Private Sub StartSlave_Click()
   ' Create an application object. You can only create 1 application object
   Set app = CreateObject("Mbslave.Application")
   ' Create a new Modbus Slave document (Data Window)
   ' This is the same as open a new data window in Modbus Slave
   ' You can create up to 50 Modbus Slave documents (Data Window)
   Set doc = CreateObject("Mbslave.Document")
   ' Show Modbus Slave
   ' res = doc.ShowWindow()
   ' Create doc2 if needed.
   ' Set doc2 = CreateObject("Mbslave.Document")
   ' Set one of 5 connection types.
   app.Connection = 1 ' Modbus TCP/IP
   ' TCP/IP settings.
   ' No need to set IP address. We listen to any address. (Default).
   app.ServerPort = 502
   app.IPVersion = 4
   ' Open the connection.
   res = app.OpenConnection()
   Range("D5").Value = res
   res = doc.SetupHoldingRegisters(1, 100, 8)
   doc.SRegisters(0) = 1     ' Modbus address 100
   doc.SRegisters(1) = -10   ' Note that the Index used counts from 0
   doc.URegisters(2) = 50000 ' no matter the Modbus address used.
   doc.URegisters(3) = 60000
   doc.Longs(4) = 10000      ' A long takes 2 registers
   doc.Floats(6) = 123.45    ' A float takes 2 registers
   ' Now a master can read 8 Holding registers with a mix of 3 data types
End Sub

Pythonexample

此 Python サンプル打开一个窗口并設定すべての可能的データ格式。Python example

import win32com.client as win32
SIGNED = 0
UNSIGNED = 1
HEX = 2
BINARY = 3
FLOAT_LE_BS = 4
FLOAT_BE = 5
DOUBLE_LE_BS = 6
DOUBLE_BE = 7
S32_LE_BS = 8
S32_BE = 9
FLOAT_LE = 10
FLOAT_BE_BS = 11
DOUBLE_LE = 12
DOUBLE_BE_BS = 13
S32_LE = 14
S32_BE_BS = 15
U32_BE = 17
U32_LE_BS = 18
U32_BE_BS = 19
U32_LE = 20
S64_BE = 21
S64_LE_BS = 22
S64_BE_BS = 23
S64_LE = 24
U64_BE = 25
U64_LE_BS = 26
U64_BE_BS = 27
U64_LE = 28
#Endianness
BE = 0
LE = 3
BE_BS = 2
LE_BS = 1
App = win32.Dispatch('Mbslave.Application')
App.Connection = 1
App.IPAddress = "127.0.0.1"
App.ServerPort = 502
App.OpenConnection
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbslave.Document")
# Setup 100 holding registers with slave ID 1, address 0 (40001)
Win1.SetupHoldingRegisters(1, 0, 100)
# Show the Modbus window
Win1.ShowWindow()
# Show 20 rows
Win1.Rows(1)
# Disable refresh for speed
Win1.EnableRefresh = False
# Set all different formats
# This sets how the value is displayed
# Use ByteOrder to set the actual endianness
Win1.SetFormat(0, SIGNED)
Win1.SetFormat(1, UNSIGNED)
Win1.SetFormat(2, HEX)
Win1.SetFormat(3, BINARY)
Win1.SetFormat(4, S32_BE)
Win1.SetFormat(6, S32_LE)
Win1.SetFormat(8, S32_BE_BS)
Win1.SetFormat(10, S32_LE_BS)
Win1.SetFormat(12, U32_BE)
Win1.SetFormat(14, U32_LE)
Win1.SetFormat(16, U32_BE_BS)
Win1.SetFormat(18, U32_LE_BS)
Win1.SetFormat(20, S64_BE)
Win1.SetFormat(24, S64_LE)
Win1.SetFormat(28, S64_BE_BS)
Win1.SetFormat(32, S64_LE_BS)
Win1.SetFormat(40, U64_BE)
Win1.SetFormat(44, U64_LE)
Win1.SetFormat(48, U64_BE_BS)
Win1.SetFormat(52, U64_LE_BS)
Win1.SetFormat(60, FLOAT_BE)
Win1.SetFormat(62, FLOAT_LE)
Win1.SetFormat(64, FLOAT_BE_BS)
Win1.SetFormat(66, FLOAT_LE_BS)
Win1.SetFormat(80, DOUBLE_BE)
Win1.SetFormat(84, DOUBLE_LE)
Win1.SetFormat(88, DOUBLE_BE_BS)
Win1.SetFormat(92, DOUBLE_LE_BS)
# Set all Names to used format
Win1.SetName(0, "SIGNED")
Win1.SetName(1, "UNSIGNED")
Win1.SetName(2, "HEX")
Win1.SetName(3, "BINARY")
Win1.SetName(4, "S32_BE")
Win1.SetName(6, "S32_LE")
Win1.SetName(8, "S32_BE_BS")
Win1.SetName(10, "S32_LE_BS")
Win1.SetName(12, "U32_BE")
Win1.SetName(14, "U32_LE")
Win1.SetName(16, "U32_BE_BS")
Win1.SetName(18, "U32_LE_BS")
Win1.SetName(20, "S64_BE")
Win1.SetName(24, "S64_LE")
Win1.SetName(28, "S64_BE_BS")
Win1.SetName(32, "S64_LE_BS")
Win1.SetName(40, "U64_BE")
Win1.SetName(44, "U64_LE")
Win1.SetName(48, "U64_BE_BS")
Win1.SetName(52, "U64_LE_BS")
Win1.SetName(60, "FLOAT_BE")
Win1.SetName(62, "FLOAT_LE")
Win1.SetName(64, "FLOAT_BE_BS")
Win1.SetName(66, "FLOAT_LE_BS")
Win1.SetName(80, "DOUBLE_BE")
Win1.SetName(84, "DOUBLE_LE")
Win1.SetName(88, "DOUBLE_BE_BS")
Win1.SetName(92, "DOUBLE_LE_BS")
# Set different values
Win1.SRegisters(0, -100)
Win1.SRegisters(1, 100)
Win1.URegisters(2, 43690)
Win1.URegisters(3, 65535)
Win1.ByteOrder = BE
Win1.Ints_32(4, -123456)
Win1.ByteOrder = LE
Win1.Ints_32(6, -123456)
Win1.ByteOrder = BE_BS
Win1.Ints_32(8, -123456)
Win1.ByteOrder = LE_BS
Win1.Ints_32(10, -123456)
Win1.ByteOrder = BE
Win1.UInts_32(12, 123456)
Win1.ByteOrder = LE
Win1.UInts_32(14, 123456)
Win1.ByteOrder = BE_BS
Win1.UInts_32(16, 123456)
Win1.ByteOrder = LE_BS
Win1.UInts_32(18, 123456)
Win1.ByteOrder = BE
Win1.Ints_64(20, -123456)
Win1.ByteOrder = LE
Win1.Ints_64(24, -123456)
Win1.ByteOrder = BE_BS
Win1.Ints_64(28, -123456)
Win1.ByteOrder = LE_BS
Win1.Ints_64(32, -123456)
Win1.ByteOrder = BE
Win1.UInts_64(40, 123456)
Win1.ByteOrder = LE
Win1.UInts_64(44, 123456)
Win1.ByteOrder = BE_BS
Win1.UInts_64(48, 123456)
Win1.ByteOrder = LE_BS
Win1.UInts_64(52, 123456)
Win1.ByteOrder = BE
Win1.Floats (60, 123.456)
Win1.ByteOrder = LE
Win1.Floats (62, 123.456)
Win1.ByteOrder = BE_BS
Win1.Floats(64, 123.456)
Win1.ByteOrder = LE_BS
Win1.Floats(66, 123.456)
Win1.ByteOrder = BE
Win1.Doubles(80, 123.456)
Win1.ByteOrder = LE
Win1.Doubles(84, 123.456)
Win1.ByteOrder = BE_BS
Win1.Doubles(88, 123.456)
Win1.ByteOrder = LE_BS
Win1.Doubles(92, 123.456)
# Refresh
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
print (Win1.GetName(1))
_ = input("Press ENTER to quit:")

连接功能/属性

以下属性和功能与您在连接对话框 (F3) 中的設定相同。

connect

连接選択所需的连接。可以選択串行ポート或イーサネット(イーサネット)连接之一。

属性connect为整数有效值

0 = 串行ポート
1 = Modbus TCP/IP
2 = Modbus UDP/IP
3 = Modbus RTU over TCP/IP
4 = Modbus RTU over UDP/IP
例子

Connection = 0

Baud rate

仅適用される连接 = 0

属性BaudRate as Long有效值

300
600
1200
2400
4800
9600(デフォルト)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600例子

BaudRate = 9600

data bit

仅適用される连接 = 0

属性DataBits作为整数有效值

7
8(デフォルト)
例子

DataBits = 8

check digit

仅適用される连接 = 0

财产平价作为整数有效值

0 = 无
1 = 奇数
2 = 偶数(デフォルト)
例子

Parity = 2

stop bit

仅適用される连接 = 0

属性StopBits作为整数有效值

1(デフォルト)
2
例子

StopBits = 1

串行ポート

仅適用される连接 = 0

属性SerialPort作为整数有效值

1…255

デフォルト値 = 1例子

SerialPort = 1

サーバー側。口

仅適用される连接 = 1…4

属性ServerPort为 Long有效值

0…65535

デフォルト値 = 502例子

ServerPort = 502

IP版本

仅適用される连接 = 1…4

属性IPVersion作为整数有效值

4 = IP 版本 4(デフォルト)
6 = IP 版本 6
例子

IPVersion = 4

任意アドレス

仅適用される连接 = 1…4

属性AnyAddress作为整数有效值

0 = 任何アドレス = false
1 = 任何アドレス = true(デフォルト)
例子

AnyAddress = 1

忽略単位ID

仅適用される连接 = 1…4

属性IgnoreUnitID作为 Integer有效值

0 = 忽略ユニット ID = false
1 = 忽略ユニット ID = true(デフォルト)
例子

IgnoreUnitID = 1

开放连接

打开使用“connect”属性選択的连接。

函数OpenConnection () 作为整数

戻り値は:

もし成功则为零。もし失敗则非零值。如何打开 Modbus TCP/IP 连接的サンプル

Public app As Object
Dim res As Integer
' Create an object to Modbus Slave
Set app = CreateObject("Mbslave.Application")
app.Connection = 1 ' Select Modbus TCP/IP
app.IPVersion = 4
' app.IPAddress = "192.168.1.27"    ' No need to setup if AnyAddress = 1. Modbus Slave listen on all.
app.ServerPort = 502
res = OpenConnection()

如何設定串行连接的サンプル

Public app As Object
Dim status As Integer
' Create an object to Modbus Slave
Set app = CreateObject("Mbslave.Application")
app.Connection = 0         ' Mode is serial port
app.SerialPort = 1         ' Com port 1
app.BaudRate = 9600        ' 9600 baud
app.Parity = 0             ' None parity
app.Mode = 0               ' RTU mode
status = app.OpenConnection()

接続を閉じる

函数CloseConnection () As Integer戻り値は

もし成功则为零。もし失敗则非零值。

表示通讯交通

函数ShowCommunicationTraffic ()

表示通信トラフィック窗口。

关闭通讯交通

函数CloseCommunicationTraffic ()

关闭通信トラフィック窗口(もし表示)。

自動化設定功能

以下功能与您在读/写定义对话框 (F8) 中に設置。的功能相同。読み取り功能与 Modbus スレーブドキュメント相关联。(带有データ的窗口)
.example

Res = doc.SetupDiscreteInputs (1, 100, 5)
Coils (0) = 1    ' Address 100 = 1
Coils (1) = 0    ' Note that the index used in Coils starts from 0
Coils (2) = 1    ' no matter the address used.
Coils (3) = 0
Coils (4) = 1
' Now the Master reads 1, 0, 1, 0, 1 when read 5 discrete inputs starting from address 100

設定コイル

Function SetupCoils (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer戻り値は

もし成功则为真。もしない成功则为假参数

SlaveID:スレーブアドレス 1 to 255
address:データアドレス(基址 0)
Quantity:データ数量。1 to 10000

設定ショップ型入力

函数設定ショップ型入力(SlaveID 作为整数,アドレス作为整数,数量作为整数)作为整数戻り値は

もし成功则为真。もしない成功则为假参数

SlaveID:スレーブアドレス 1 to 255
address:データアドレス(基址 0)
Quantity:データ数量。1 to 10000

設定レジスタを保持する。

函数SetupHoldingRegisters (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer戻り値は

もし成功则为真。もしない成功则为假参数

SlaveID:スレーブアドレス 1 to 255
address:データアドレス(基址 0)
Quantity:データ数量。1 to 10000

設定入力レジスタ。

函数SetupInputRegisters (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer戻り値は

もし成功则为真。もしない成功则为假参数

SlaveID:スレーブアドレス 1 to 255
address:データアドレス(基址 0)
Quantity:データ数量。1 to 10000

橱窗表示

函数ShowWindow ()
デフォルト情况下,Modbus documentation窗口是非表示的。ShowWindow 功能使 Modbus Poll 可见并表示带有データ内容的ドキュメント。

取得名称

函数GetName(索引为整数)为ストリング·ストリング説明

取得值的名称。
索引 0 对应于第一个 Modbus address。

設定名称

函数SetName(索引为整数,名称为ストリング·ストリング)Description

設定值的名称。
索引 0 对应于第一个 Modbus address。

自动递增

属性AutoIncrement(索引为整数)为布尔值説明

設定值的自动增量。
索引 0 对应于第一个 Modbus address。
句法

自动增量(索引)[=新值]

すべて格式化

函数FormatAll(格式化为整数)
使用所选格式設定すべての值ユニット格的格式。parameter

format:值ユニット格的格式。

取得格式

函数GetFormat(索引为整数)作为整数説明

取得Modbus值的表示格式。

IDformat
0
1未签名
2hexadecimal
3binary
4浮点リトルエンディアンバイトスワップ
5浮点大尾数
6双リトルエンディアンバイトスワップ
7双ビッグエンディアン
832 位記号付き。リトルエンディアンバイトスワップ
932 位記号付き。大尾数
10浮動小数点数小尾数
11浮点ビッグエンディアンバイトスワップ
12双小尾数
13双ビッグエンディアンバイトスワップ
1432 位記号付き。リトルエンディアンバイトオーダー
1532 位記号付き。ビッグエンディアンバイトスワップ
17 32 ビット符号なしビッグエンディアンバイトオーダー
1832 ビット符号なしリトルエンディアンバイトスワップ
1932 ビット符号なしビッグエンディアンバイトスワップ
2032 ビット符号なしリトルエンディアンバイトオーダー
2164 位記号付き。大尾数
2264 位記号付き。リトルエンディアンバイトスワップ
2364 位記号付き。ビッグエンディアンバイトスワップ
2464 位記号付き。リトルエンディアンバイトオーダー
2564 ビット符号なしビッグエンディアンバイトオーダー
2664 ビット符号なしリトルエンディアンバイトスワップ
2764 ビット符号なしビッグエンディアンバイトスワップ
2864 ビット符号なしリトルエンディアンバイトオーダー
此設定仅用于表示。使用 Get/Set 值函数时,您仍然需要使用 byteOrder 来取得正确的バイト顺序。

設定格式

函数SetFormat(索引为整数,格式为整数)Description

設定 Modbus 值的表示格式。请参阅上面的格式值。

调整窗口大小

函数ResizeWindow ()
调整打开的窗口的大小以适合网格。

行数

函数Rows (NumberRows)
指定网格中的行数。parameter

NumberRows:网格中的行数。

IDDescription
010 行(デフォルト)
120 行
250 行
3适合数量

自動化データ属性

以下属性用于設定或取得 Modbus スレーブ内部写入/読み取り配列中的值。使用的索引ではない Modbus address。无论使用什么アドレス,索引始终从 0 开始计数。データ属性与 Modbus スレーブドキュメント关联。(有データ的窗口)

example1:

' doc is assumed created first. See Excel example.
doc.SRegisters(0) = 1
doc.SRegisters(1) = 10
doc.SRegisters(2) = 1234

使用浮点值的サンプル 2:

doc.Floats(0) = 1.3
doc.Floats(2) = 10.5
doc.Floats(4) = 1234.12

コイル(Coils)

属性 コイル(索引 As Integer) As Integer

Description

在写入配列構造中に設置。一1つのコイル或从読み取り配列中戻る一1つのコイル。

语法

Coils(Index) [=newvalue]

短整型レジスタ(SRegisters)

属性 短整型レジスタ(索引 As Integer) As Integer

Description

在写入配列構造中に設置。一1つのレジスタ或从読み取り配列中戻る一1つのレジスタ。

语法

SRegisters(Index) [=newvalue]

符号なし。レジスタ(URegisters)

属性 符号なし。レジスタ(索引 As Integer) As Long

Description

在写入配列構造中に設置。一1つのレジスタ或从読み取り配列中戻る一1つのレジスタ。

语法

URegisters(索引)[=新值]

32位整型(Ints_32)

属性 32位整型(索引 As Integer) As Double

Description

在写入配列構造中に設置。一个32ビット整数或从読み取り配列中戻る一个整数。

语法

URegisters(Index) [=newvalue]

符号なし。32位整型(UInts_32)

属性 符号なし。32位整型(索引 As Integer) As Double

Description

在写入配列構造中に設置。一个32ビット符号なし整数或从読み取り配列中戻る一个符号なし。整数。

语法

UInts_32(Index) [=newvalue]

64位整型(Ints_64)

属性 64位整型(索引 As Integer) As Double

Description

在写入配列構造中に設置。一个64ビット整数或从読み取り配列中戻る一个整数。

语法

Ints_64(Index) [=newvalue]

符号なし。64位整型(UInts_64)

属性 符号なし。64位整型(索引 As Integer) As Double

Description

在写入配列構造中に設置。一个64ビット符号なし整数或从読み取り配列中戻る一个符号なし。整数。

语法

UInts_64(Index) [=newvalue]

浮動小数点数(Floats)

属性 浮動小数点数(索引 As Integer) As Single

Description

在写入配列構造中に設置。一个浮動小数点数或从読み取り配列中戻る一个浮動小数点数。

语法

Floats(Index) [=newvalue]

倍精度浮動小数点数(Doubles)

属性 倍精度浮動小数点数(索引 As Integer) As Double

Description

在写入配列構造中に設置。一个倍精度浮動小数点数或从読み取り配列中戻る一个倍精度浮動小数点数。

语法

Doubles(Index) [=newvalue]

byte order(ByteOrder)

属性ByteOrder作为整数説明

設定 Ints_32、UInts_32、Ints_64、UInts_64、浮動小数点数 和 倍精度浮動小数点数 属性使用的バイト顺序。

IDbyte order
0ビッグエンディアン序(デフォルト)
1リトルエンディアン序バイトスワップ
2ビッグエンディアン序バイトスワップ
3リトルエンディアン序

Ints_32 example:
byte order:ビッグエンディアン序
十进制数123456789 或 hexadecimal 07 5B CD 15

在Modbusメッセージ中的传输顺序:07 5B CD 15

语法

byte order [=新值]

Modbus Slave 中文版用户手册及ソフトウェアのダウンロードイラスト

Mini Program Version,無料使用!!!

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

《 “Modbus Slave 中文版用户手册及ソフトウェアのダウンロード” 》 有 96 条コメント

Leave a Reply

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