分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
freeModbus的代码库还是很好用的,本人在wince和C8051F410下均移植成功(只用到RTU模式)。但freeModbus提供的文档比较少,只能对照着Modbus协议一点点试着读懂源代码。下面是阅读代码期间的跟踪笔记:
1、eMBErrorCode为枚举类型变量,代表错误码,共有8个错误代号。常用的是MB_ENOERR,即没有错误。
2、eMBMode枚举类型变量代表设备的工作模式,分别是MB_RTU、MB_ASCII和MB_TCP。
3、eMBEventType枚举类型变量定义了event的类型,分别是EV_READY,代表Startup启动完成;EV_FRAME_RECEIVED代表接收到帧;EV_EXECUTE代表执行功能函数;EV_FRAME_SENT代表帧已发送。
4、eMBParity枚举类型变量代表奇偶校验选项,分别是MB_PAR_NONE无校验,MB_PAR_ODD奇校验,和MB_PAR_EVEN偶校验。
5、mb.c文件中的静态变量ucMBAddress存储设备地址,此变量在eMBInit函数中初始化。
6、在C51Modbus中将freeModbus库中的 源码进行了更改,例如尽量不使用函数指针,而是直接调用相关功能函数,根据eM
1、eMBErrorCode为枚举类型变量,代表错误码,共有8个错误代号。常用的是MB_ENOERR,即没有错误。
2、eMBMode枚举类型变量代表设备的工作模式,分别是MB_RTU、MB_ASCII和MB_TCP。
3、eMBEventType枚举类型变量定义了event的类型,分别是EV_READY,代表Startup启动完成;EV_FRAME_RECEIVED代表接收到帧;EV_EXECUTE代表执行功能函数;EV_FRAME_SENT代表帧已发送。
4、eMBParity枚举类型变量代表奇偶校验选项,分别是MB_PAR_NONE无校验,MB_PAR_ODD奇校验,和MB_PAR_EVEN偶校验。
5、mb.c文件中的静态变量ucMBAddress存储设备地址,此变量在eMBInit函数中初始化。
6、在C51Modbus中将freeModbus库中的 源码进行了更改,例如尽量不使用函数指针,而是直接调用相关功能函数,根据eM

本文介绍了在使用freeModbus 1.5库时遇到的一个bug,当PDU中寄存器数据长度与实际数量不匹配,但CRC校验正确时,库无法检测到该错误。这个问题是在尝试写多个寄存器命令时发现的,freeModbus错误地处理了数据并将其作为有效数据。同时提到了波特率计算和Modbus调试精灵1.024的相关问题。
最低0.47元/天 解锁文章
937

被折叠的 条评论
为什么被折叠?



