Nmodbus/modbus上位机(C#)

#实习不久上手一个基于modbus通讯协议的上位机软件

  期间网上查了大量的相关知识,感觉动起手来还是有点困难,无意boss的一句话让我改变了方向。我去接触了modbus类库无意中发现了开源的nmodbus类库,在网上查到了相关的使用手册——nmodbus API 使用手册。
  这下简直是轻松了好多,直接引用进来,然后调用相关功能即可。
  关于nmodbus包的下载,其实vs很强大。

以用vs2013为例;
   
  1.在项目工程里面--管理NuGet程序包--搜索你需要的包(nmodbus4)--安装即可。
  2.然后只需要引用using modbus.device;具体会根据你的需求添加你需要的命名空间就ok。
  3.根据你的需求去实现功能就可以了。

#有了nmodbus以后 你直接可以读取寄存器里面的数据,完全不需要crc校验去验证数据的准确性。

定义初始化如下:
    
     public SerialPort serialPort1 = new SerialPort("COM1");//声明串口
     public IModbusSerialMaster master= ModbusSerialMaster.CreateRtu(serialPort1);//连接方式是如RTU
     //串口的初始化如下
     serialPort1.BaudRate = 115200;
     serialPort1.DataBits = 8;
     serialPort1.Parity = Parity.None;
     serialPort1.StopBits = StopBits.One;
     serialPort1.Open();
基本功能如下;
     读取数据函数:
             byte slaveId = 1;
             ushort startAddress = 0;
             ushort numRegisters = 10;             
             ushort[] registers = master.ReadHoldingRegisters(slaveId, startAddress, numRegisters);
             //读取寄存器数据到register数组中
             //需要处理数据的话 后面可能就需要数据的转化
     写数据函数:
             byte slaveID = 1;
             ushort registerAddress = 0;
             ushort value = 100;//你要写的值
             master.WriteSingleRegister(slaveID, registerAddress, value);
      
#后面涉及到数据的连续读取,建议使用定时响应事件,最好每次读完寄存器数据后执行清零操作。

            定时事件函数:
                              System.Timers.Timer t = new System.Timers.Timer(1000);//定时1000毫秒
                               t.Elapsed += new System.Timers.ElapsedEventHandler(serialPort1_DataReceived);绑定事件
                               t.AutoReset = true;//执行一次false
                               t.Enabled = true;


###大四实习生,希望能帮到和我一样刚开始无从下手的你###

  • 14
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Modbus是一种用于通信的协议,用于将上位机和控制设备连接起来。在Modbus通信中,上位机充当主机的角色,负责发送指令和接收数据。 上位机通常使用编程语言(如C)编写,以实现与控制设备的通信。使用C语言编写Modbus上位机程序需要以下步骤: 1. 引入相关库文件:使用C语言,需要引入Modbus协议相关的库文件,以便在程序中使用Modbus通信功能。 2. 初始化Modbus通信参数:在程序中设置Modbus通信所需的参数,如串口通信的波特率、数据位、校验位等。这些参数需要与控制设备进行匹配,以确保通信正常。 3. 建立连接:通过使用库文件提供的函数,建立与控制设备之间的连接。这通常涉及到设置设备的地址、端口号等信息。 4. 发送指令:在程序中编写发送指令的代码,将需要执行的操作发送给控制设备。这可能包括读取设备状态、控制设备执行特定的操作等。 5. 接收数据:通过编写相应的代码,接收来自控制设备的数据。这些数据可能是设备的状态信息、传感器数据等。 6. 处理数据:根据实际需求,对接收到的数据进行处理,以便于在上位机上进行显示或分析。 7. 断开连接:通信结束后,通过调用相应的函数,断开与控制设备之间的连接。 总结起来,Modbus上位机程序的实现主要包括引入相关库文件、初始化通信参数、建立连接、发送指令、接收数据和断开连接等步骤。编写这样的程序需要对Modbus通信协议有一定的了解,并熟悉C语言的编程技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值