C#上位机序列6: modbus通信(NModbus4 modbus tcp)
C#上位机序列1: 多线程(线程同步,事件触发,信号量,互斥锁,共享内存,消息队列)
modbus点位多,轮询慢问题,造成数据延时问题
1. 采用并行的方式采集从站设备,采用串行的方式获取从站点位数据;
2. 制定轮询策略,实时性要求高的点位,轮询周期短;实时性要求低的点位,轮询周期长;非必要不轮询,数据有变化才写入;
3. 一次读取从站的所有数据,不要按点位多次读取;
4. 提高串口的波特率;
5. 采用can通信方式
读取
bool
[调试] 2021-04-27 09:34:57.940 Thread [009] ModbusTcpServer[502] : Tcp 接收:00 00 00 00 00 06 01 01 00 63 00 01
[调试] 2021-04-27 09:34:57.940 Thread [009] ModbusTcpServer[502] : Tcp 发送:00 00 00 00 00 04 01 01 01 00
short
[调试] 2021-04-27 09:33:23.307 Thread [013] ModbusTcpServer[502] : Tcp 接收:00 00 00 00 00 06 01 03 00 63 00 01
[调试] 2021-04-27 09:33:23.307 Thread [013] ModbusTcpServer[502] : Tcp 发送:00 00 00 00 00 05 01 03 02 00 00
int
[调试] 2021-04-27 09:33:52.148 Thread [013] ModbusTcpServer[502] : Tcp 接收:00 00 00 00 00 06 01 03 00 63 00 02
[调试] 2021-04-27 09:33:52.148 Thread [013] ModbusTcpServer[502] : Tcp 发送:00 00 00 00 00 07 01 03 04 00 00 00 01
float
[调试] 2021-04-27 09:34:29.733 Thread [013] ModbusTcpServer[502] : Tcp 接收:00 00 00 00 00 06 01 03 00 63 00 02
[调试] 2021-04-27 09:34:29.733 Thread [013] ModbusTcpServer[502] : Tcp 发送:00 00 00 00 00 07 01 03 04 00 00 00 01
long
[调试] 2021-04-28 15:41:46.049 Thread [008] ModbusTcpServer[502] : Tcp 接收:00 09 00 00 00 06 01 03 00 64 00 04
[调试] 2021-04-28 15:41:46.049 Thread [008] ModbusTcpServer[502] : Tcp 发送:00 09 00 00 00 0B 01 03 08 3F 80 00 00 00 00 00 00
double
[调试] 2021-04-28 15:42:12.893 Thread [009] ModbusTcpServer[502] : Tcp 接收:00 0B 00 00 00 06 01 03 00 64 00 04
[调试] 2021-04-28 15:42:12.893 Thread [009] ModbusTcpServer[502] : Tcp 发送:00 0B 00 00 00 0B 01 03 08 3F 80 00 00 00 00 00 00
写入
bool
[调试] 2021-04-28 15:43:27.742 Thread [008] ModbusTcpServer[502] : Tcp 接收:00 00 00 00 00 06 01 05 00 64 FF 00
[调试] 2021-04-28 15:43:27.742 Thread [008] ModbusTcpServer[502] : Tcp 发送:00 00 00 00 00 06 01 05 00 64 FF 00
short
[调试] 2021-04-28 15:44:05.406 Thread [003] ModbusTcpServer[502] : Tcp 接收:00 02 00 00 00 06 01 06 00 64 00 01
[调试] 2021-04-28 15:44:05.406 Thread [003] ModbusTcpServer[502] : Tcp 发送:00 02 00 00 00 06 01 06 00 64 00 01
int
[调试] 2021-04-28 15:44:24.557 Thread [003] ModbusTcpServer[502] : Tcp 接收:00 03 00 00 00 0B 01 10 00 64 00 02 04 00 00 00 01
[调试] 2021-04-28 15:44:24.558 Thread [003] ModbusTcpServer[502] : Tcp 发送:00 03 00 00 00 06 01 10 00 64 00 02
float
[调试] 2021-04-28 15:44:45.854 Thread [003] ModbusTcpServer[502] : Tcp 接收:00 04 00 00 00 0B 01 10 00 64 00 02 04 3F 80 00 00
[调试] 2021-04-28 15:44:45.854 Thread [003] ModbusTcpServer[502] : Tcp 发送:00 04 00 00 00 06 01 10 00 64 00 02
long
[调试] 2021-04-28 15:45:37.896 Thread [006] ModbusTcpServer[502] : Tcp 接收:00 06 00 00 00 0F 01 10 00 64 00 04 08 00 00 00 00 00 00 00 01
[调试] 2021-04-28 15:45:37.896 Thread [006] ModbusTcpServer[502] : Tcp 发送:00 06 00 00 00 06 01 10 00 64 00 04
double
[调试] 2021-04-28 15:45:07.224 Thread [003] ModbusTcpServer[502] : Tcp 接收:00 05 00 00 00 0F 01 10 00 64 00 04 08 3F F0 00 00 00 00 00 00
[调试] 2021-04-28 15:45:07.224 Thread [003] ModbusTcpServer[502] : Tcp 发送:00 05 00 00 00 06 01 10 00 64 00 04
bool 读写测试
short 读写测试
int 读写测试
float 读写测试
double 读写测试
long 读写测试
int, float 涉及传输顺序,必须按照相同的传输顺序进行传送和解析,否则会造成数据错误
ModBusTcpServer 与 ModBusTcpClient
更新日志
2023-10-25 新增批量读取及批量写入功能
2023-11-16 支持02指令
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了