Modbus协议的应用,本章节主要从以下几部分说明
- 开启协议
- 配置主从机
- 创建变量
- 变量地址和值的关系
1.1 开启协议
Modbus 协议的配置界面在VisualTFT 上位机的菜单栏【工具】→【协议与变量设置…】,点击左侧文件路径,在右侧的协议设置栏,设置协议类型,如选择Modbus主机,启用协议,如下所示
modbus协议开启后,在组态界面上,控件才能显示【关联变量】
1.2 配置主从机
主机模式
Modbus主机的配置,参数如下所示
- 启用协议:需要启用协议,才支持Modbus协议
- 协议类型:选择Modbus主机
- 轮询周期:无效参数,不用设置
- 轮询延时:屏作主机时,发送请求指令,到屏幕应答后,等待发送下一条请求指令的时间
- 应答超时:屏作主机时,允许从机的最大延时,默认100毫秒
- 连续读取:设置连续地址变量的最大读取数
- 优化读取:开启优化读取后,只读取与当前画面相关的变量
- 存储设置 :开启存储后,Flash地址0~2048,约2K为Modbus变量存储所有,其他存储应规避此地址!!!不存储:不存储,断电重启后变量恢复默认值全部存储:不推荐,因为频繁存储会导致FLASH坏块增加存储指定变量:推荐使用,一般用来存储很少更改的系统配置参数
- 存储标记:识别存储在屏幕中的数据版本标记, 当存储数据格式发生改动时,一般需要手动修改此存储标记值
从机模式
- 启用协议:需要启用协议,才支持Modbus协议
- 协议类型:选择Modbus从机
- 从机地址:默认为1
- 存储设置 :开启存储后,Flash地址0~2048,约2K为Modbus变量存储所私有,其他存储应规避此地址!!!不存储:不存储,断电重启后变量恢复默认值全部存储:不推荐,因为频繁存储会导致FLASH坏块增加存储指定变量:推荐使用,一般用来存储很少更改的系统配置参数
- 存储标记:识别存储在屏幕中的数据版本标记,当存储数据格式发生改动时,一般需要手动修改此存储标记值
1.3 创建变量
点击【变量定义】,在点击【添加】,即可添加一个变量,如下所示
变量定义
详细变量解析如下,如下所示
- 名称:默认的变量名称为“Varialbe1、Varialbe2、Varialbe3……”,可以定义有意义的名称,如:机组状态;如果需要对变量分bit含义,默认的名称为“Field1、Field2、Field3……”, 可以定义有意义的名称,如:开/关机、运行/停止
- 格式:支持短整形、长整型、单精度浮点数、字符串
- 符号:可设置无符号、有符号
- 读写设置:设置变量的读写权限,支持可读写、只读取、只写入
- 默认值:默认显示值
- 数值转换:对变量进行转换,例如:实际值=原始值*缩放+平移
- 显示格式:设置整数和小数部分的位数
- 数组类型:开启数组类型,从该变量的地址开始,操作连续N个寄存器
- 是否储存:当在配置Modbus主/从协议时开启存储设置,此处若选择存储,可掉电保存数据
参数
详细参数设置解析如下所示
- 变量类型:线圈、离散输入、保持寄存器、输入寄存器、内存变量、系统变量
- 从机地址:屏作主机时,才需要设置
- 变量地址:变量(或寄存器)的地址,16进制填写
- 初始化从机:屏作主机时,屏上电后,把变量的值写入从机设备
- 读取失败归零:屏作主机时,当变量读取失败时,变量的值归零
1.4 变量地址和值的关系
线圈/离散数据
创建一个线圈或离散输入寄存器,变量格式为短整型,则里面含有16个线圈(从上到下,依次为bit0….bit15),假设该变量地址为0x0000,那么变量包含0x0000~0x000F地址范围内的变量,一个bit对应一个线圈,如下所示
字符串类型
创建一个保存寄存器,变量格式为字符串类型(默认32个字符),假设该变量的地址为0x0000,那么此字符串对应包含0x0000~0x000F地址范围内的变量,一个地址对应两个字符
假设0x0000地址的保存寄存器,值为‘abcdefghij’,如下所示
数组
创建一个输入寄存器,且为数组类型(默认数组大小为10,下标从0开始),假设该变量的地址为0x0000,那么此变量表示从0x0000开始的连续10个变量,数组下标对应一个变量
假设创建一个输入寄存器为Voltage的变量,数组类型,大小为10,则对应关系如下所示