自定义串口收发驱动小白学习-独家原创-代码简洁 点击:141 | 回复:10



Dennie

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 18回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-18 15:14:39
楼主

    鉴于之前发的一个官方modbus驱动不好用的问题交流。本人自己做的一个串口收发驱动,目前没有通道关联、没有通道采集、没有校验等复杂的杂项;只有两个16进制指令的读、写的设备命令。

    其实用这个再搭配组态屏的函数完全可以自己随意组一个包出来想怎么发就怎么发,并且收到16进制指令后可以再自己手动拆包进行进一步数据处理。

    可以用于学习如何制作一个自己的串口驱动,网上的都太复杂了,各种互相抄代码没有原创性,要么就是加密码不给你看,对小白不友好。

    回复的多我就发出来,内容简单对小白很友好,没有密码,直接开源,mcgspro的mdr文件格式,可以打开。

  (路过的大佬可以教教我用驱动做CRC校验函数哈哈,不知道2字节校验表在MCGS里怎么表示)



楼主最近还看过



Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 18回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-18 15:21:50
1楼

滴滴

Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 18回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-19 10:39:59
2楼

楼主刚刚把CRC-16-XMODEM自定义算法实现了,在驱动里可以进行校验和运算了

Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 18回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-19 16:40:36
3楼

最新更新,串口驱动现在可以任意输出中文

Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 18回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-20 17:48:27
4楼

最新进展,自创串口驱动目前可以进行XMODEM、CCITT校验

fighting2021

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1046帖 | 7398回
  • 年度积分:1749
  • 历史总积分:19357
  • 注册:2008年11月11日
发表于:2023-12-21 14:39:04
5楼

厉害哦

Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 18回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-21 17:33:16
6楼

最新进展,自创串口驱动更新了浮点数转换单精度16进制的设备命令,输入浮点数参数直接获得对应的4字节16进制字符串,无需自己额外写脚本!

image.png

Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 19回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-21 17:37:59
7楼

我的驱动打印是兼容官方的!strFormat格式化打印的,测试了\r\n换行符,但是要额外加一个脚本

Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 20回
  • 年度积分:195
  • 历史总积分:195
  • 注册:2023年6月28日
发表于:2023-12-21 17:39:37
8楼

引用 "Dennie" 的回复,发表在6楼
        内容: 最新进展,自创串口驱动更新了浮点数转换单精度16进制的设备命令,输入浮点数参数直接获得对应的4字节16进制字符串,无需自己额外写脚本!...

加这个功能是因为昆仑通态没有字符串的单精度16进制转换方法,很鸡肋

Dennie

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 21回
  • 年度积分:198
  • 历史总积分:198
  • 注册:2023年6月28日
发表于:2023-12-22 18:01:54
9楼

最新进展:鉴于之前说的官方modbus数据转发设备的功能不齐全没有异常码的问题,我自己做了一个modbus驱动,目前实现0x03功能码、返回异常码、修改modbus地址(1~247)、广播地址、修改串口参数(组态软件启动时,可以调用设备命令达到动态地址、动态串口参数的目的)

下图是通过组态软件使用我的modbus驱动返回给主机非法功能码的效果。

0670d4d0a483ab101b87bf392e6af56.png

徐丫头

  • 精华:0帖
  • 求助:1帖
  • 帖子:6帖 | 103回
  • 年度积分:37
  • 历史总积分:580
  • 注册:2023年1月30日
发表于:2024-04-09 14:43:48
10楼

MODBUS RTU驱动一次性读的寄存器过多就没法回复正确指令了,不知道楼主的驱动可以吗


热门招聘
相关主题

官方公众号

智造工程师