- 1. 1.1 OpenProtocol
- 2. 1.2 配置主从机
- 3. 1.3 创建变量
- 4. 1.4 变量address和值的关系
ModbusProtocol的应用,本章节主要从以下几部分说明
- OpenProtocol
- 配置主从机
- 创建变量
- 变量address和值的关系
1.1 OpenProtocol
Modbus protocol的配置界面在VisualTFT 上位机的菜单栏【Tools】→【Protocol与变量设置…】,点击左侧文件路径,在右侧的Protocol设置栏,设置ProtocolType,如选择Modbus主机,EnableProtocol,如下所示
modbusProtocolOpen后,在Configuration界面上,控件才能显示【关联变量】

1.2 配置主从机
主机模式
Modbus主机的配置,参数如下所示

- EnableProtocol:需要EnableProtocol,才支持ModbusProtocol
- ProtocolType:选择Modbus主机
- 轮询周期:Invalid参数,不用设置
- 轮询延时:屏作主机时,sendRequest指令,到屏幕应答后,等待send下一条Request指令的time
- 应答超时:屏作主机时,允许从机的最大延时,默认100毫秒
- 连续读取:设置连续address变量的最大读取数
- 优化读取:Open优化读取后,只读取与当前画面Related的变量
- 存储设置 :Open存储后,Flashaddress0~2048,约2K为Modbus变量存储所有,其他存储应规避此address!!!不存储:不存储,断电重启后变量恢复默认值All存储:不推荐,因为频繁存储会导致FLASH坏块增加存储指定变量:Recommended for use,一般用来存储很少更改的system配置参数
- 存储标记:识别存储在屏幕中的data版本标记, 当存储data format发生改动时,一般需要手动修改此存储标记值

从机模式
- EnableProtocol:需要EnableProtocol,才支持ModbusProtocol
- ProtocolType:选择Modbus从机
- 从机address:默认为1
- 存储设置 :Open存储后,Flashaddress0~2048,约2K为Modbus变量存储所私有,其他存储应规避此address!!!不存储:不存储,断电重启后变量恢复默认值All存储:不推荐,因为频繁存储会导致FLASH坏块增加存储指定变量:Recommended for use,一般用来存储很少更改的system配置参数
- 存储标记:识别存储在屏幕中的data版本标记,当存储data format发生改动时,一般需要手动修改此存储标记值

1.3 创建变量
Click【变量定义】,在点击【添加】,即可添加一个变量,如下所示

变量定义
详细变量Parse如下,如下所示

- 名称:默认的变量名称为“Varialbe1、Varialbe2、Varialbe3……”,可以定义有意义的名称,如:机组状态;如果需要对变量分bit含义,默认的名称为“Field1、Field2、Field3……”, 可以定义有意义的名称,如:开/关机、运行/停止
- format:支持短整形、长整型、单精度浮点数、字符串
- 符号:可设置无符号、有符号
- 读写设置:设置变量的读写权限,支持可读写、只读取、只写入
- 默认值:默认显示值
- numerical value转换:对变量进行转换,例如:实际值=原始值*缩放+平移
- Display format:设置整数和小数部分的位数
- 数组Type:Open数组Type,从该变量的address开始,Operation连续N个register
- 是否储存:当在配置Modbus主/从Protocol时Open存储设置,此处若选择存储,可掉电Save data
参数
详细参数设置Parse如下所示

- 变量Type:线圈、离散输入、保持register、输入register、内存变量、system变量
- 从机address:屏作主机时,才需要设置
- 变量address:变量(或register)的address,hexadecimal填写
- 初始化从机:屏作主机时,屏上电后,把变量的值写入从机设备
- 读取失败归零:屏作主机时,当变量读取失败时,变量的值归零
1.4 变量address和值的关系
线圈/离散data
创建一个线圈或离散输入register,变量format为短整型,则里面含有16个线圈(从上到下,依次为bit0….bit15),假设该变量address为0x0000,那么变量包含0x0000~0x000Faddress范围内的变量,一个bit对应一个线圈,如下所示

字符串Type
创建一个保存register,变量format为字符串Type(默认32个字符),假设该变量的address为0x0000,那么此字符串对应包含0x0000~0x000Faddress范围内的变量,一个address对应两个字符

假设0x0000address的保存register,值为‘abcdefghij’,如下所示

数组
创建一个输入register,且为数组Type(默认数组大小为10,下标从0开始),假设该变量的address为0x0000,那么此变量表示从0x0000开始的连续10个变量,数组下标对应一个变量

假设创建一个输入register为Voltage的变量,数组Type,大小为10,则对应关系如下所示

Leave a Reply