Go言語Modbusゲートウェイの実戦:ffutop modbus-gateway TCP to RTUマルチスレーブルーティングとDockerデプロイメント完全チュートリアル

無料無料技术资料

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

modbus-gatewayはffutopによってオープンソース化された高いパフォーマンスをModbusゲートウェイであり、Go言語で書かれており、TCP、RTU、RTU-over-TCPプロトコルの任意のブリッジ、Slave IDベースのマルチスレーブルーティング、内蔵のローカル仮想スレーブ、およびマルチマスター同時キューをサポートしている。この記事では、アーキテクチャ原理、インストール、コンパイル、構成の詳細な説明から実際の展開まで、modbus-gatewayを使用して産業用グレードのModbusプロトコル変換ゲートウェイを構築する方法を完全に紹介します。

Modbus-gatewayの概要

1.1 什么是modbus-gateway

modbus-gatewayは構成駆動の高いパフォーマンスをModbusプロトコルゲートウェイであり、コア機能は異なるModbusトランスポートプロトコル間のブリッジ変換である。典型的なシナリオは、上位コンピュータ(SCADA/PLC)がModbus TCP経由でゲートウェイに接続し、ゲートウェイがRS 485シリアルポート(Modbus RTU)経由でフィールド機器に接続し、TCPからRTUへのプロトコル変換を実現する。また、スレーブID Slave IDベースのルーティングもサポートしており、異なるスレーブアドレスのリクエストを異なる下流デバイスに配信することができます。

1.2主な特徴

  • 全协议桥接:TCP、RTU、RTU-over-TCP三种协议在上游和下游可任意组合
  • Slave IDルート:スレーブアドレス別に異なるダウンストリームにリクエストを配信し、サポート範囲(1-10)とリスト(1、2、3)
  • ローカルバーチャルスレーブ:内置虚拟Modbusスレーブ,サポートmemory/file/mmap三种持久化
  • 複数の主要駅複数の上流マスタが同時に接続され、各下流はバス競合を防ぐために独立したシリアル化キューを持つ。
  • RS485 RTS制御:完全的RTS信号时序控制,サポート工业级RS485変換器です。
  • マルチゲートウェイインスタンス単一のプロセスで複数の独立したゲートウェイインスタンスを実行できる
  • PPROFパフォーマンス分析:内置Go pprof端点,可实时诊断CPU/内存/协程
  • 高いパフォーマンスをGoネイティブ並行性、1つのインスタンスで毎秒数千のリクエストを処理
  • ゼロ依存性の導入:编译为单个二进制文件,无需运行时环境

1.3典型的な応用シナリオ

  • TCPからRTUへ:イーサネットホストコンピュータはRS 485シリアルデバイスにアクセスする(最も一般的な)
  • RTUからTCPへ:シリアルマスタがイーサネットModbus TCPデバイスにアクセスする
  • 駅からもっと集まる。複数のRS 485バスを持つデバイスを1つのTCPポートに集約
  • プロトコルリレーRTU-over-TCPと標準TCP/RTU間の変換
  • デバイスシミュレーションローカル仮想スレーブで存在しないModbusデバイスをエミュレートする
  • リモートアクセス:フィールドRS 485デバイスをTCPサービスとして公開し、リモートデバッグをサポート

2.構造原理

modbus-gateway的架构分为三层:上游(Upstream)、ゲートウェイ核心(Gateway)、下游(Downstream)。

������������
│ │ │                      Upstreamsアップストリーム                        │ │ │
│ ― ― ― ― ― ― ― ― ― ― ― ― ― ―      │ │ │
│ TCP Master   │ RTU-over-TCP │ │ RTU Master   │ │ │      │ │ │
│ 0.0.0.0 502 │ 0.0.0.0 503 │ /dev/ttyS0   │ │ │      │ │ │
│      │ │ │
└─ ── ── ── ── ┼ ─ ── ── ── ── ── ── ── ── ┼ ─ ── ── ── ── ── ── ── ── ┼ ── ── ── ── ── ── ── ┘
          │ │ │                 │ │ │                 │ │ │
┌─ ── ── ── ── ▼ ─ ── ── ── ── ── ── ── ── ▼ ─ ── ── ── ── ── ── ── ── ▼ ── ── ── ── ── ── ── ┐
│ │ │                   ゲートウェイ·コア                    │ │ │
│ ― ― ― ― ― ― ― ― ― ―   │ │ │
│ │キュー   │バッファ   │→│Serializer│→│SlaveID   │ │ │   │ │ │
│キュー·バッファリング│バッファ│ │シリアライズ   │ │ │ルーター    │ │ │   │ │ │
│ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃   │ │ │
│ │ │                                          ��--------------│
│ │ │                                          ローカル·スレーブ   │ │ │ │
│ │ │                                          │ローカル仮想スレーブ   │ │ │ │
│ │ │                                          3---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
└ ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ┬ ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ┘
                               │ │ │
����������������
│ │ │                     ダウンストリーム#ダウンストリーム#                       │ │ │
│ ― ― ― ― ― ― ― ― ― ― ― ― ― ―      │ │ │
│ RTUスレーブ    ■ TCPスレーブ    ホーム>ローカル>>      │ │ │
│ │ slave_ids   │ │ slave_ids   │ │ slave_ids   │ │ │      │ │ │
│ │ │ 1 ~ 10         │ │ │ 11 ~ 20        │ │ │ 100          │ │ │      │ │ │
│ /dev/ttyUSB0 │ 192.168.1.50 │ mmapストレージ     │ │ │      │ │ │
│ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃      │ │ │
└─ ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ┘

2.1主要メカニズムの説明

  • キューバッファ各上流接続のリクエストが最初にキューに入り、リクエストの損失を避ける
  • シリアライザー:同一下游的リクエスト被串行化执行,防止RS485バス冲突
  • Slave IDルートリクエスト内のスレーブアドレスに基づいて、ルックアップテーブルが送信する下流を決定します。
  • ローカルバーチャルスレーブ:路由到localタイプ的リクエスト由ゲートウェイ内部直接レスポンス,无需真实デバイス

C.インストールとコンパイル

# 方式一:源码编译(おすすめ)
git clone https://github.com/ffutop/modbus-gateway.git
cd modbus-gateway
go build -o modbus-gateway

# 交叉编译(在Linux上编译Windows版本)
GOOS=windows GOARCH=amd64 go build -o modbus-gateway.exe

# 交叉编译ARM版本(Raspberry Piについて/組込みデバイス)
GOOS=linux GOARCH=arm GOARM=7 go build -o modbus-gateway-arm

# 方式二:下载预编译二进制
# 从GitHub Releasesページ下载对应プラットフォーム的二进制
# https://github.com/ffutop/modbus-gateway/releases

# 验证インストール
./modbus-gateway -help
# 出力命令行参数説明

# 表示版本
./modbus-gateway -version

四、基本構成:TCPからRTUゲートウェイ

最も一般的な的场景:トップマシン経由Modbus TCP连接ゲートウェイ,ゲートウェイ通過RS485シリアルポートサイトをつなぐRTUデバイス。

#config-tcp2 rtu.yaml-TCPからRTUベースの構成
gateways
  - name "t-to-r-gateway"
    #上流:TCPポートをリッスンし、ホストコンピュータ接続を受け入れる
    upstreams
      - type "t"
        tcp
          address "0.0.0.0 502"   すべてのネットワークカードのポート502をリッスンする

    #下流:RS 485シリアルポート経由でフィールド機器を接続
    downstreams
      - type "rtu"
        slave_ids "1-10"          #ステーションID 1-10からのリクエストをこのシリアルポートにルーティング
        シリアルserial
          device "/dev/ttyUSB0"    # USBからRS485デバイスへ
          baud_rate:96 0 0           #ボーレート
          data_bits 8              #データのビット
          parity“N”               #チェックビットN=なしE=偶数O=奇数
          _bits              #ストップ·ポイント
          timeout "500ms"          #読み取りタイムアウト
          rqst_pause "100ms"       リクエスト間の最小間隔

log
  level "info"                     #ログレベル/info/warn/error
  file """                          #ログファイルパス、空= stdoutに出力
#ゲートウェイの開始
./ modbus-gateway -config-t2r.yaml

テスト:ゲートウェイにpymodbusまたはQModMasterを使用して接続する
#接続アドレスゲートウェイIP 502
スレーブID:1-10(RS 485シリアルポートにルーティングされます)
#コード:01/02/03/04/05/06/15/16すべてサポート

#ログを见て要求転送を
# INFO TCP Master Accepted Conn from 192.168.1.100:54321
#ing slave_id=1 to downstream r/dev/ttyUSB0
# INFO request FC= 0 3 addr=0 count= 10-response OK

五、多スレーブ局ルート設定

当现场有多条RS485バス或多种タイプデバイス时,可以経由Slave ID路由将リクエスト分发到不同下游。

#config-multi-slave.yaml-マルチスレーブルート
gateways
  - name "-slave-gateway"
    upstreams
      - type "t"
        tcp
          address "0.0.0.0 502"

    downstreams
      #ダウンストリーム1:RS485バスA -温度センサ(ステーション1-10から)
      - type "rtu"
        slave_ids "1-10"
        シリアルserial
          device "/dev/ttyUSB0"
          baud_rate:96 0 0
          data_bits 8
          parity“N”
          _bits
          timeout "500ms"

      #下流2:RS485バスB -電力計装(ステーション11-20から)
      - type "rtu"
        slave_ids "11-20"
        シリアルserial
          device "/dev/ttyUSB1"
          baud_rate(19200)
          data_bits 8
          parity "E"           #電力計の定期検査
          _bits
          timeout "300ms"

      #ダウンストリーム3:Modbus TCPデバイス-周波数コンバータ(スレーブ21)
      - type "t"
        slave_ids "21"
        tcp
          address "192.16 8.1.50 502"

      #ダウンストリーム4ローカル仮想スレーブ-ゲートウェイ状態スレーブ100
      - type "local"
        slave_ids "100"
        local
          persistence
            type "memory"      再起動後に失われる記憶

log
  level "info"

ルーティングルールの説明:

  • slave_ids "1-10":ステーションID 1から10までのすべてのリクエストに一致します。
  • slave_ids "1,2,3"スレーブID 1、2、3に一致
  • slave_ids "1- 5、10、20 -25":混合範囲とリスト
  • slave_ids """(空):他のダウンストリームにマッチしないすべてのリクエストにマッチします(デフォルトルート)。
  • スレーブIDが複数のダウンストリームで一致する場合、構成順に最初に一致するダウンストリームが有効になります。

六、本地虚拟スレーブ

modbus-gatewayにはローカル仮想スレーブ機能が組み込まれており、実際のデバイスなしでModbusリクエストに応答でき、3つの永続性モードをサポートしている。

# config-local-slave.yaml - 本地虚拟ステーションからの設定
gateways:
  - name: "local-slave-demo"
    upstreams:
      - type: "tcp"
        tcp:
          address: "0.0.0.0:502"

    downstreams:
      # 虚拟スレーブ1:内存モード(再起動データ丢失,适合测试)
      - type: "local"
        slave_ids: "100"
        local:
          persistence:
            type: "memory"

      # 虚拟スレーブ2:文件モード(データ持久化到文件)
      - type: "local"
        slave_ids: "101"
        local:
          persistence:
            type: "file"
            path: "/data/modbus-slave-101/"

      # 虚拟スレーブ3:mmapモード(内存マッピング文件,高いパフォーマンスを+持久化)
      - type: "local"
        slave_ids: "102"
        local:
          persistence:
            type: "mmap"
            path: "/data/modbus-slave-102/"

log:
  level: "debug"

6.1 3つの持続性の比較

モダリティスピード感持続性の問題適用可能なシーン
memoryメモリ最速である。いいえ(再起動が失われる)テスト、暫定シミュレーション
fileスローダウン。はい。永続性が必要だが書き込み頻度が低い
mmapは快はい。生産環境、高周波読み書き

RTU-over-TCPの構成

RTU-over-TCPは、Modbus RTUフレームをTCPに直接カプセル化したものであり、一部のシリアルサーバデバイスで一般的に使用される。modbus-gatewayは、上流または下流としてRTU-over-TCPをサポートします。

#config-rtu-over-tcp.yaml-RTU-over-TCPの設定
gateways
  - name "r-over-t-gateway"
    upstreams
      #アップストリーム1:標準Modbus TCP(MBAPヘッダ付き)
      - type "t"
        tcp
          address "0.0.0.0 502"

      #アップストリーム2:RTU-over-TCP(raw RTUフレーム)
      - type“r-over-t”
        tcp
          address "0.0.0.0 503"   異なるポートを区別する

    downstreams
      #下流:標準RTUシリアルデバイス
      - type "rtu"
        slave_ids "1-10"
        シリアルserial
          device "/dev/ttyUSB0"
          baud_rate:96 0 0
          data_bits 8
          parity“N”
          _bits

      #ダウンストリーム:RTU-over-TCPデバイス(一部のシリアルポートサーバなど)
      - type“r-over-t”
        slave_ids "11-20"
        tcp
          address "192.16 8.1.100 4001" #シリアルサーバーアドレス

log
  level "info"

VIII.マルチゲートウェイの例

単一のmodbus-gatewayプロセスは、互いに干渉することなく独自の上流リスニングと下流接続を持つ複数の独立したゲートウェイインスタンスを実行できます。

#config-multi-gateway.yaml-マルチゲートウェイインスタンス
gateways
  #例1:ワークショップAゲートウェイ
  - name "workshop-a"
    upstreams
      - type "t"
        tcp
          address "0.0.0.0 502"
    downstreams
      - type "rtu"
        slave_ids "1-20"
        シリアルserial
          device "/dev/ttyUSB0"
          baud_rate:96 0 0
          data_bits 8
          parity“N”
          _bits

  例2:ショップBゲートウェイ
  - name "workshop-b"
    upstreams
      - type "t"
        tcp
          address "0.0.0.0 503"     異なる港で
    downstreams
      - type "rtu"
        slave_ids "1-20"
        シリアルserial
          device "/dev/ttyUSB1"
          baud_rate(19200)
          data_bits 8
          parity "E"
          _bits

  例3:エネルギー監視ゲートウェイ
  - name "energy-monitor"
    upstreams
      - type "t"
        tcp
          address "0.0.0.0 504"
    downstreams
      - type "t"
        slave_ids "1-5"
        tcp
          address "192.16 8.1.50 502"

#パフォーマンス分析(オプション)
pprof
  enabled true
  address "6060"

log
  level "info"
  file "var/log/modbus-gate.log"

RS 485高度な制御

对于需要精确控制RS485收发切换的工业场景,modbus-gateway提供了完全的RTS信号时序控制。

#config-rs485.yaml-RS485高度な制御
gateways
  - name "rs485-industrial"
    upstreams
      - type "t"
        tcp
          address "0.0.0.0 502"
    downstreams
      - type "rtu"
        slave_ids "1-10"
        シリアルserial
          device "/dev/ttyUSB0"
          baud_115200
          data_bits 8
          parity“N”
          _bits
          timeout "300ms"
          rqst_pause "50ms"

          # RS485 RTS制御
          rs485真                          #RTS制御の有効化
          delay_rts_before_send "1ms"         #送信前のRTSセット遅延
          delay_rts_after_send "1ms"          #送信后のリセット遅延
          rts__d_send true           #送信中RTSがハイになる
          rts__after_send false           #送信後のRTS低レベル

log
  level "debug"

9.1 RTSタイミングの説明

  • rs485真:ハードウェアRTSフロー制御を有効にし、送受信方向を自動切り替えます。
  • delay_rts_before_send:RTS置位后待機中多久再送信データ,确保RS485芯片切换到送信モード
  • delay_rts_after_sendデータ送信が完了してからRTSをリセットし、最後のバイトが送信されるようにするまで待つ時間
  • rts__d_send:送信期间RTS电平(true=高电平,false=低电平),取决于RS485芯片的极性
  • MAX485などの一般的なRS 485チップ:DE/REピンは通常ハイ送信、ロー受信

十、Docker部署

# Dockerfile
From golang 1.22-alpine AS builder
ワークディル/アプリ
RUN apk add--no-cache git
RUN git clone https://github.com/ffutop/modbus-gateway.git.
RUN GO BUILD-O MODBUSゲートウェイ

alpineから3.19
RUN apk add--no-cache certificates
COPY--from =builder /app/modbus-gateway /usr/local/bin/
RYPOINT ["modbus-gateway"]
CMD ["-config"、"/etc/modbus-gateway/config.yaml"]
#docker-compose.yaml
version "3.8"
services
  modbus-gateway
    build.
    container_name modbus-gateway
    restart unless-stopped
    ports
      - “502 502”     # Modbus TCP
      - “503 503”     #RTU-over-TCP
      - “6060 - 6060”   # Pprof
    devices
      - "/dev/ttyUSB0/dev/ttyUSB0"   #RS 485シリアル
      - "/dev/ttyUSB1/dev/ttyUSB1"
    volumes
      - ./ config.yaml:/etc/modbus-gateway/config.yaml:ro
      - ./ data/data
    log
      driver "json-file"
      options
        max-size "10m"
        max-file "3"
#ビルド&スタート
docker-compose up-d

#ログを見る
docker-compose logs-f

#再起動し
docker-compose restart

11、完全な戦闘:工場エネルギー監視ゲートウェイ

以下是一个完全的生产环境設定案例:工厂能源モニタリング系统,経由modbus-gateway将车间的パワーメーター、温湿度センサー和PLC统一接入SCADA系统。

#factory-energy.yaml-プラントエネルギー監視ゲートウェイ
gateways
  - name "fact-energy-gateway"
    upstreams
      TCP経由のSCADAシステム
      - type "t"
        tcp
          address "0.0.0.0 502"

    downstreams
      # 1号RS485バス:電力計装(ステーション1-8から)
      - type "rtu"
        slave_ids "1-8"
        シリアルserial
          device "/dev/ttyUSB0"
          baud_rate:96 0 0
          data_bits 8
          parity "E"
          _bits
          timeout "500ms"
          rqst_pause "100ms"
          rs485真
          delay_rts_before_send "1ms"
          delay_rts_after_send "2ms"

      RS 485バス# 2:温度センサ(ステーション9-16から)
      - type "rtu"
        slave_ids“9-16”
        シリアルserial
          device "/dev/ttyUSB1"
          baud_4800
          data_bits 8
          parity“N”
          _bits
          timeout "1000ms"

      # 3号485バス:PLC(スレーブ局17-20)
      - type "rtu"
        slave_ids "17-20"
        シリアルserial
          device "/dev/ttyUSB2"
          baud_rate(19200)
          data_bits 8
          parity“N”
          _bits
          timeout "300ms"

      #Ethernetデバイス:スマートメーター(スレーブステーション21)
      - type "t"
        slave_ids "21"
        tcp
          address "192.16 8.1.50 502"

      #ローカル仮想スレーブ:ゲートウェイ自身の(スレーブ100)
      - type "local"
        slave_ids "100"
        local
          persistence
            type "mmap"
            path "/data/gate-status/"

#パフォーマンスモニタリング
pprof
  enabled true
  address "6060"

log
  level "info"
  file "/var/log/modbus-gateway/factory-energy.log"

11.1システムアーキテクチャの説明

  • SCADAシステム接続ゲートウェイTCP 502ポート、すべてのデバイスへの統合アクセス
  • ステーション1-8からUSB0(パワーメーター、96 00偶数検証)にルーティングされたリクエスト
  • スレーブ9-16的リクエスト路由到USB1(温湿度センサー,4800検証なし。)
  • ステーション17-20からUSB2(PLC、19200無検証)へのリクエストのルーティング
  • ステーション21からの要求は、イーサネットスマートメーターに転送される
  • スレーブ100由ゲートウェイ本地虚拟スレーブレスポンス,可写入ゲートウェイ実行状態の状態
  • 各下流には独立したシリアル化キューがあり、1つのバスが遅いために他のバスに影響を与えない

十二、パフォーマンス最適化与モニタリング

12.1 PPROFパフォーマンス分析

# 有効pprof后,アクセス以下端点:
# http://localhost:6060/debug/pprof/          - 概览
# http://localhost:6060/debug/pprof/heap       - 内存分析
# http://localhost:6060/debug/pprof/profile    - CPU分析(30秒)
# http://localhost:6060/debug/pprof/goroutine  - 协程分析

# 用go tool分析CPU
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30
# 进入pprof交互界面后:
# top10          - 表示CPU占用前10的函数
# web            - 生成调用图(需要graphviz)
# list function  - 表示函数级别的耗时

# 分析内存
go tool pprof http://localhost:6060/debug/pprof/heap
# inuse_space    - 当前内存占用
# alloc_space    - 累计分配

12.2パフォーマンス最適化の推奨事項

  • 合理設定timeout:タイムアウト時間应略大于デバイス最大応答時間,过短导致丢包,过长降低效率
  • rqst_pauseのリクエスト間隔はデバイスの応答速度に応じて調整され、遅いデバイスは100-200msを推奨します。
  • ボーレートの最大化:在通信稳定的前提下尽量使用高ボーレート(115200)
  • バッチ読み取りホストコンピュータは連続アドレスをできるだけ大量に読み取り、リクエスト数を減らす必要があります。
  • 接続の多重化:トップマシン保持长连接,避免频繁建立TCP连接
  • ステーションID計画から:同じバス上のデバイスは連続スレーブIDを使用し、ルーティング設定が容易です。

13よくある質問とチェック

問題は理由は解決策は
上游接続成功です。但応答なし。スレーブID未マッチング到任何下游slave_ids設定を確認して、要求されたスレーブIDがルーティング範囲内にあることを確認する
RTUデバイスが応答しないシリアルパラメータの不一致チェックボーレート、データ·ビット、検证ビット、停止ビットがデバイスと一致する
RS 485通信が不安定RTSのタイミングが正しくないdelay_rts_before/after_sendを調整し、配線と終端抵抗を確認します。
多マスター时データ错乱シリアル化キューが有効になっていませんダウンストリームごとにシリアライズされたキューが1つしかないことを確認し、ログを確認します。
TCP接続が拒否されましたポートが占有されているかファイアウォールチェック502ポート是否被其他程序占用,开放ファイアウォール
仮想スレーブデータ消失メモリモードの使用代わりにfileモードまたはmmapモードの永続化を使用
高延迟timeoutの設定が大きすぎるデバイスの実際の応答時間に応じてtimeoutを縮小
シリアルアクセス権が不十分ユーザーにシリアル·アクセス権がない将用户加入dialout组:sudo usermod -aG dialout $USER
RTU-over-TCPが動作しないRTU-over-TCPではなく標準TCPです。デバイスプロトコルタイプの、TCP用type t
メモリの継続的な増加接続の漏洩またはデータの蓄積上流接続が正常にシャットダウンされているかどうかを確認するためのPPROF解析

十四、参照速検表の設定

設定项タイプの種類デフォルト値説明書は
gateways[].namestring-ゲートウェイ名ログ識別用
upams [].typeエヌム-t/r/r-over-t
upams []. t.ストリング·ストリング-TCPリスニング·アドレス
downstreams[].typeエヌム-t/r/r-over-t/ local
downstreams[]. slave_idsストリング·ストリング""ルーティングルール,null =すべて一致
serial.deviceストリング·ストリング-シリアルデバイスのパス
serial.baud_int-ボーレート
serial.data_bitsintとは8データ·ビット
serial.parityストリング·ストリング“N”N/E/O
serial. stop_bitsintとは1ストップ·ビット
serial.timeout期間は“500ミリ秒”読み取りタイムアウト
serial.rqst_pauseduration“100ミリ秒”リクエスト間の最小間隔
serial.rs485Boolの意味falseRTS制御の有効化
local.persistence.typeエヌム-memory / file / mmap
local.persistence.pathストリング·ストリング-永続化ディレクトリ
pprof.enabledBoolの意味FALSEプロファイルの有効化
log.levelstring“info”debug/info/warn/error
log.fileストリング·ストリング""ログファイルパス

十五、学习リソース

  • プロジェクトの住所github.com/ffutop/modbus-gateway
  • 官方ドキュメント:http://modbus-gateway.ffutop.com/
  • Modbusプロトコル仕様modbus.org/specs.php
  • Go言語公式サイト:https://go.dev/

modbus-gatewayはGo言語で書かれた高いパフォーマンスをModbusゲートウェイであり、TCP/RTU/RTU-over-TCPの任意のプロトコルブリッジを設定駆動型で実装し、Slave IDベースのマルチスレーブルーティングとローカル仮想スレーブ機能により、複雑な産業現場のニーズに対応できます。この記事では、基本的なTCPからRTUへのマルチゲートウェイインスタンス、RS 485高度な制御、Dockerデプロイメント、完全なプラントエネルギーモニタリングまで、本番環境への展開に直接使用できます。導入前にローカル仮想スレーブでルーティングルールをテストし、実際のデバイスに接続することをお勧めします。

📦

VIP专属:Go语言Modbusゲートウェイ完全なコードパッケージ

ffutop/modbus-gateway YAML設定ドライバ、TCP/RTU/ローカルマルチプロトコル変換、プラントエネルギーモニタリング設定。

完全なコードをダウンロードしてロックを解除 30歳以上。 工程実践パッケージの内容:スクリプトのデバッグ、クイックチェック·テーブル、项目模板、トラブルシューティング案例……

VIPデータベースからダウンロード 月額9.9ドル/年間199ドル
この資料を実際のプロジェクトに活用しませんか?

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

エンジニア会員

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

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

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