uC/Modbus 用户手册——第四节 配置uC/Modbus

目录

4.0 配置uC/Modbus

4.1 配置uC/Modbus,MODBUS_CFG_SLAVE_EN

4.2 配置uC/Modbus,MODBUS_CFG_MASTER_EN

4.3 配置uC/Modbus,MODBUS_CFG_ASCII_EN

4.4 配置uC/Modbus,MODBUS_CFG_RTU_EN

4.5 配置uC/Modbus,MODBUS_CFG_MAX_CH

4.6 配置uC/Modbus,MODBUS_CFG_BUF_SIZE

4.7 配置uC/Modbus,MODBUS_CFG_FP_EN

4.8 配置uC/Modbus,MODBUS_CFG_FP_START_IX

4.9 配置uC/Modbus,MODBUS_CFG_FC01_EN

4.10 配置uC/Modbus,MODBUS_CFG_FC02_EN

4.11 配置uC/Modbus,MODBUS_CFG_FC03_EN

4.12 配置uC/Modbus,MODBUS_CFG_FC04_EN

4.13 配置uC/Modbus,MODBUS_CFG_FC05_EN

4.14 配置uC/Modbus,MODBUS_CFG_FC06_EN

4.15 配置uC/Modbus,MODBUS_CFG_FC08_EN

4.16 配置uC/Modbus,MODBUS_CFG_FC15_EN

4.17 配置uC/Modbus,MODBUS_CFG_FC16_EN

4.18 配置uC/Modbus-S,MODBUS_CFG_FC20_EN

4.19 配置uC/Modbus-S,MODBUS_CFG_FC21_EN

4.20 配置uC/Modbus,RAM内存需求


4.0 配置uC/Modbus

通过大约20个#define常量在编译时对uC/Modbus进行配置。配置值可以在mb_cfg.h中找到,该文件需要放在产品目录中,也可以将#define常量复制到一个您选择的头文件中。建议复制uC/Modbus发行版中提供的mb_cfg.h文件并修改其内容,而不是从头开始创建mb_cfg.h文件。这样可以更好的避免忘记#define常量。默认值显示为红色(RED)。

​​​​​​​4.1 配置uC/Modbus,MODBUS_CFG_SLAVE_EN

该#define常量指定产品是否支持Modbus从机(服务)模式。设置#define 为DEF_ENABLED使能从机模式。设置#define为DEF_DISABLED禁用从机模式。必须购买uC/Modbus-S软件包才可以将#define设置为DEF_ENABLED。

​​​​​​​4.2 配置uC/Modbus,MODBUS_CFG_MASTER_EN

该#define常量指定产品是否支持Modbus主机(客户端)模式。设置#define 为DEF_ENABLED使能从机模式。设置#define为DEF_DISABLED禁用从机模式。必须购买uC/Modbus-M软件包才可以将#define设置为DEF_ENABLED。

​​​​​​​4.3 配置uC/Modbus,MODBUS_CFG_ASCII_EN

该#define常量指定产品是否支持Modbus ASCII协议。将该值设置为DEF_ENABLED,允许任何Modbus通道设置为ASCII模式。注意,每一个通道在运行时必须配置为ASCII或RTU模式。将MODBUS_CFG_ASCII_EN设置为DEF_ENABLED并不意味着您的产品必须使用ASCII模式,仅意味着支持Modbus ASCII的代码包含在编译的文件中。

​​​​​​​4.4 配置uC/Modbus,MODBUS_CFG_RTU_EN

该#define常量指定产品是否支持Modbus RTU协议。将该值设置为DEF_ENABLED,允许任何Modbus通道设置为RTU模式。注意,每一个通道在运行时必须配置为ASCII或RTU模式。将MODBUS_CFG_RTU_EN设置为DEF_ENABLED并不意味着您的产品必须使用RTU模式,仅意味着支持Modbus RTU的代码包含在编译的文件中。

​​​​​​​​​​​​​​4.5 配置uC/Modbus,MODBUS_CFG_MAX_CH

uC/Modbus允许在产品中提供多个通讯通道。每一个通道允许一个Modbus主机从产品请求数据。如果您的产品近提供一个通道,应该将MODBUS_CFG_MAX_CH设置为1。

​​​​​​​4.6 配置uC/Modbus,MODBUS_CFG_BUF_SIZE

MODBUS协议包可最多可包含256字节数据。要保存这些数据,每一个uC/Modbus通道分配存储缓冲区如下:2个接收包,两个发送包。如果您的应用发送和接收的是小包,您可以减小缓冲区的大小节省RAM。当然,我们建议将MODBUS_CFG_BUF_SIZE的默认值保留为255。对于255,Modbus通道需要1020字节RAM作为缓存。

​​​​​​​4.7 配置uC/Modbus,MODBUS_CFG_FP_EN

当设置为DEF_ENABLED时,该#define常量用于使能代码生成,以便实现“Daniels Flow Meter Floating-Point Extension”对浮点数的支持。默认值应该为DEF_DISABLED。

​​​​​​​4.8 配置uC/Modbus,MODBUS_CFG_FP_START_IX

该#define决定输入寄存器和保存寄存器使用的浮点数的起始地址。基本上,整型输入寄存器和保存寄存器从地址0开始,到MODBUS_CFG_FP_START_IX-1。浮点输入寄存器和保存寄存器是从MODBUS_CFG_FP_START_IX到65535。

​​​​​​​4.9 配置uC/Modbus,MODBUS_CFG_FC01_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus持线圈读取命令(功能码 #1)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.10 配置uC/Modbus,MODBUS_CFG_FC02_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持离散输入读取命令(功能码 #2)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.11 配置uC/Modbus,MODBUS_CFG_FC03_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持保持寄存器读取命令(功能码 #3)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.12 配置uC/Modbus,MODBUS_CFG_FC04_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持输入寄存器读取命令(功能码 #4)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.13 配置uC/Modbus,MODBUS_CFG_FC05_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持线圈写入命令(功能码 #5)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.14 配置uC/Modbus,MODBUS_CFG_FC06_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持写单个保持寄存器命令(功能码 #6)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.15 配置uC/Modbus,MODBUS_CFG_FC08_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持回环诊断命令(功能码 #8)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.16 配置uC/Modbus,MODBUS_CFG_FC15_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持写多个线圈命令(功能码 #15)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.17 配置uC/Modbus,MODBUS_CFG_FC16_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持写多个保持寄存器命令(功能码 #16)。当设置为DEF_DISABLED时,代码不会创建这些命令。

4.18 ​​​​​​​配置uC/Modbus-S,MODBUS_CFG_FC20_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持文件读取命令(功能码 #20)。当设置为DEF_DISABLED时,代码不会创建这些命令。

​​​​​​​4.19 配置uC/Modbus-S,MODBUS_CFG_FC21_EN

当设置为DEF_ENABLED时,该#define确定uC/Modbus支持文件写入命令(功能码 #21)。当设置为DEF_DISABLED时,代码不会创建这些命令

​​​​​​​4.20 配置uC/Modbus,RAM内存需求

每个uC/Modbus通道需要的RAM数量如下表所示。表中假设指针宽度为32位。

表3-1,每个uC/Modbus通道的RAM需求

数据类型

数据类型大小

(Bytes)

#特定数据类型的元素

总字节数

CPU_BOOLEAN

1

1

1

CPU_INT08U

1

8 + 4* MODBUS_CFG_BUF_SIZE

1028

CPU_INT16U

2

13 + 2* MODBUS_CFG_RTU_EN

30

CPU_INT32U

4

4

16

CPU_INT08U *

4

2

8

总数(每个uC/Modbus通道):

(参见MB_ChSize)

1083

全局变量MB_TotalRAMSize控制已指定配置的uC/Modbus所需的RAM(按字节)数量。同样,MB_ChSize控制每个Modbus通道所需RAM的数量。这两个变量均是32位值,并且声明为‘const’,因此,使用了8字节ROM而没有使用RAM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值