当前位置: 首页 > article >正文

c#实现Modbus TCP/IP与RS 485数据交换的实例

以下是一个具体的 C# 示例代码,展示如何通过 Modbus TCP 主站 与 Modbus RTU(RS-485)从站设备 通信,实现协议转换的核心逻辑。代码使用 NModbus 库简化协议处理。


1. 环境准备

NuGet 包安装
Install-Package NModbus
Install-Package System.IO.Ports

2. 完整代码示例

using System;
using System.IO.Ports;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Threading.Tasks;
using Modbus.Device;

public class ModbusTcpToRtuGateway
{
    private const int TCP_PORT = 502;       // Modbus TCP 监听端口
    private const string COM_PORT = "COM3"; // RS-485 串口号
    private const int BAUD_RATE = 9600;     // 波特率
    private const Parity PARITY = Parity.None;
    private const int DATA_BITS = 8;
    private const StopBits STOP_BITS = StopBits.One;

    private TcpListener _tcpListener;
    private SerialPort _serialPort;
    private IModbusSerialMaster _rtuMaster;
    private bool _isRunning;

    public void Start()
    {
        _isRunning = true;
        
        // 初始化串口和Modbus RTU主站
        _serialPort = new SerialPort(COM_PORT, BAUD_RATE, PARITY, DATA_BITS, STOP_BITS);
        _serialPort.Open();
        _rtuMaster = ModbusSerialMaster.CreateRtu(_serialPort);

        // 启动TCP监听
        _tcpListener = new TcpListener(IPAddress.Any, TCP_PORT);
        _tcpListener.Start();
        Console.WriteLine($"Modbus TCP网关已启动,监听端口:{TCP_PORT}");

        // 处理TCP客户端连接
        Task.Run(() =>
        {
            while (_isRunning)
            {
                var tcpClient = _tcpListener.AcceptTcpClient();
           

http://www.kler.cn/a/573979.html

相关文章:

  • 深入理解设计模式中的单例模式(Singleton Pattern)
  • 人工智能之数学基础:伴随矩阵
  • redis菜鸟教程
  • 【Linux篇】版本控制器-Git
  • nvidia驱动升级-ubuntu 1804
  • blender 渲染obj
  • 开发社交陪玩app小程序
  • 前端流式输出深度解析:技术原理、实战应用与性能优化
  • 计算光学成像与光学计算概论
  • GCC RISCV 后端 -- cc1 入口
  • 【五.LangChain技术与应用】【30.LangChain Agent小案例2:复杂场景下的代理设计】
  • 客户端及时通讯系统(1)
  • 【YOLOv12改进trick】StarBlock引入YOLOv12,创新涨点优化,含创新点Python代码,方便发论文
  • postman--接口测试工具安装和使用教程
  • LinkedList 双向链表
  • VEC系列-RabbitMQ 入门笔记
  • 快速从C过度C++(一):namespace,C++的输入和输出,缺省参数,函数重载
  • 基于开源 AI 大模型、AI 智能名片及 S2B2C 商城小程序源码的个人 IP 用户运营策略研究
  • 物联网感知层采集的数据 经过etl 后 ,输送给ai 训练模型 和模型本身调优
  • 代码随想录算法训练营第三十九天 | 198.打家劫舍 213.打家劫舍II 337.打家劫舍 III