一种基于CAN/串口通讯的变量参数任意扩展增加的方法 MODBUS RTU

本软件已经上传 https://download.csdn.net/download/wukuan_123/10509907

一、通讯协议功能的基本介绍

1、该通讯协议支持车载CAN接口,允许自由设定CAN ID和选择扩展帧或标准帧,只需要一个CAN ID就可以。

2、该通讯支持串口通讯,暂时使用标准的MODBUS RTU通讯协议,读参数使用0x03功能码、写参数使用0x06 0x10两个功能码。

3、该通讯方式最多可以定义256页,每页最多可以定义256个参数,也就是在最多可以自定义65536个参数,足可以满足各类设备调试和参数配置的要求。

4、所有的参数地址是唯一的,可以连续,也可以间隔。

5、参数类型支持如下:

    1)bin :按位设置和显示,16bit;

         

    2)s8 u8 :表示有符号8bit数和无符号8bit数,配合偏移量和比例系数变换后为64bit 双精度浮点数,最多可显示6个小数位。

    3)s16 u16 :表示有符号16bit数和无符号16bit数,配合偏移量和比例系数变换后为64bit 双精度浮点数,最多可显示6个小数位。

    4)s32 u32 :表示有符号8bit数和无符号8bit数,配合偏移量和比例系数变换后为64bit 双精度浮点数,最多可显示6个小数位。

    5)float: 单精度浮点数,配合偏移量和比例系数变换后为64bit 双精度浮点数,最多可显示6个小数位。

    6)enum :枚举数据,每个参数最多可以枚举65536个不同的字符串;如下对参数11的不同值时进行枚举,显示非常直观。

        Para11_Enum0 = 正常
        Para11_Enum1 = 一级告警
        Para11_Enum2 = 二级告警
        Para11_Enum3 = 三级告警

    7)string:可以显示并设置最大100个字符。

    8)Lua:调用Lua脚本函数直接对数据进行解析,可以解析为各种各样的数据,非常方便


二、配置参数的定义

    1)不同的工程或项目可以配置为不同的工程文件,由于不太熟悉xml,所以这里直接使用ini文件定义, VC也有直接的函数可以读取对应的参数值。

    2)硬件接口定义:can通讯定义和串口定义


can数据可以使用一个ID,最多需要使用3个ID,一般一个ID即可

2)定义参数页,可以连续也可以间隔

    

3)定义参数:分为两种方式,一种是每个参数单独定义,一种是使用数组的方式批量定义,在同一页两种方式可以混合使用。每个参数可以定义为不同的类型,但是和单片机的定义要保持一致。

        

        

猜你喜欢

转载自blog.csdn.net/wukuan_123/article/details/80662045