打印

[程序源码] 论坛“最强”MODBUS-RTU从机程序,不服来战

[复制链接]
506|6
跳转到指定楼层
楼主
本帖最后由 oufuqiang 于 2019-10-6 15:53 编辑

我就是标题党,但是是有点料的标题党当然,我的水平不能说算高,比起圈圈、程序匠人等大神,用单片机做VGA接口的示波器的这种,我完全就是一小码农了。但是……经常有人说串口数据不好处理,没办法及时很好响应串口数据。

本人也在网上购买别人的传感器、模块、LED控制卡等,这些商品化的产品,数据接口确实不能让我满意
1.抗错性不行,有一个LED控制卡,只要发一包不完整的数据过去,接口就死掉了,得重启,我是用无线传过去的,根本没法用。
2.不能很好兼容其他协议的设备,如买了一个雨量传感器,自有协议的,但是总线上还想挂其他的MODBUS协议的传感器,问这两个厂家,恢复均是不同协议的不能混用。
3.抗干扰性差(抗乱码差),一些传感器接口如果不小心发了点其他数据过去,就会丢掉后面一帧正常的数据,造成丢帧。
于是,我就想,这个小接口,为什么不写得足够强大和健壮?只要你有正常的数据帧过来,我随时保持响应,这样不行吗?
国庆这几天有点小空,于是就慢慢码一下,结果实现了我的目标。

主要实现的不同于一般的modbus的地方
系统构成:STC12C5A60S2,DS18B20,四位普通数码管模块(需要动态扫描)
注意:请留意你的DS18B20来源,我的手里三颗DS18B20,一颗不回应数据,一颗上电默认9位分辨率,一颗上电默认12位分辨率(这才正常)。
IO:DS18B20,P3.7。数码管字段:P1,低电平有效。数码管位选:P2低四位,低电平有效。
程序编译:data:62.1(RAM),code:1969(ROM)


效果:
1.23400bps波特率,11.0592MHz晶振频率下能达到的最高波特率,已超出modscan软件的范围,后续用游戏修改器强制修改modscan到230400bps测试。
2.正常帧绝对响应-这个不用说
3.数据断流正常响应,一帧数据,你可以任意长的时间内发送过来,比如8字节的帧,连续发7字节,过一年再发最后一个字节,100%响应。
4.混帧、叠帧正常响应,比如两个8字节的帧,前面一个帧后4个字节和后面一个帧前四个字节混叠,后一帧正常响应。相当于你前一帧发了4个字节,发了一半,你不发了,发下一帧正常帧,下一帧正常帧正常响应。
5.连帧正常响应,连续发几帧查询帧,我通通响应数据给你,不需要3.5字节的空闲,反正数据我给回你了,你能不能处理是你的事情了。
6.无限垃圾数据通吃,23400bps波特率下,你扔再多的垃圾数据给我,我也不会死掉。
7.无限长度垃圾数据里面插入正常帧、混帧、叠帧、连帧,230400bps波特率下连续发送,全部正常响应。
8.所有过程,数码管扫描正常,不闪烁。18B20温度采集正常,不中断。


视频1:23400bps正常帧混帧叠帧连帧响应测试视频
https://v.youku.com/v_show/id_XNDM4NzkxMTAyOA==.html?spm=a2h3j.8428770.3416059.1

视频2:23400bps连续大数据乱码不出错LED扫描温度采集正常
https://v.youku.com/v_show/id_XNDM4NzkwNTUyOA==.html?spm=a2h3j.8428770.3416059.1


视频3:在1MB乱码数据中插入正常帧叠帧连帧(数据编辑过程)
https://v.youku.com/v_show/id_XNDM4NzkxMjA1Mg==.html?spm=a2h3j.8428770.3416059.1

视频4:23400bps码率发送含有正常帧的乱码数据全部正常响应,乱码中的正常帧全部得到响应
https://v.youku.com/v_show/id_XNDM4NzkwOTI1Mg==.html?spm=a2h3j.8428770.3416059.1

以下是测试用的数据帧



HEX文件:免费提供测试。 S_modbus_rtu_node hex.rar (2.42 KB, 下载次数: 2)

C源代码程序:付费或擂台形式公开,即如果你能写出性能更优的代码,RAM,code更小或者你认为的其他性能。贴上HEX,大家测试,确实超过我的,我3天内不能反超,我无条件公开我的源代码。反之同理。最好是同一内核的单片机,不同内核,不好比较。同内核,不同周期的,要慢慢看指令表比较。C语言源程序是单一的C文件,没有.H文件,没做过大项目,水平差,一个C搞定。


此部分内容已被设置为付费内容,您可以在支付 9.9 元 人民币后浏览本楼层全部付费内容点击购买

沙发
?楼主 | 2019-10-6 16:08 | 只看该作者
本帖最后由 oufuqiang 于 2019-10-6 16:10 编辑

modscan 230400bps


https://v.youku.com/v_show/id_XNDM4Nzk5Mjk4NA==.html?spm=a2h3j.8428770.3416059.1
modscan 数据核对
https://v.youku.com/v_show/id_XNDM4Nzk5MzgwOA==.html?spm=a2h3j.8428770.3416059.1
板凳
| 2019-10-6 16:18 | 只看该作者
看起来很不错,modbus在串口中用的比较多,不错,下来看看
地板
| 2019-10-7 17:40 | 只看该作者
想问一下,这个软件模块,在源码或功能上经过什么测试吗?

论坛上”最强“,我认为是很厉害的了,但这种称号,最好是别的工程师给的,如果是自封的,总感觉有点太骄傲了。

弄个HEX文件,给人免费下载?我觉得应该收费,至少要1000元才对得起你这种大侠。

5
?楼主 | 2019-10-7 21:34 | 只看该作者
nbiot 发表于 2019-10-7 17:40
想问一下,这个软件模块,在源码或功能上经过什么测试吗?

论坛上”最强“,我认为是很厉害的了,但这种称 ...

这么多个测试视频了解一下行不行?
视频信不过自己下HEX自己测试一下行不行?
你更强你贴HEX就好了,我有不需要你承认
至于收费问题,我也可以免费给啊,你私聊我我发给你
6
| 2019-10-8 08:16 | 只看该作者
问下楼主,我写过modbus-rtu程序,c#的.有这样一个问题,有时会发出数据,mcu不返回数据.
我是用的定时器,定时发送接收,实现自动测试用的.你是否遇到过这样的情况?谢谢指教.
7
| 2019-10-8 10:23 | 只看该作者
希望说明:
1 数码管,18b20 在系统中用途。2 程序有MODBUS指令处理功能吗?
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /6 下一条

在线客服 快速回复 返回顶部 返回列表