1 Modbus 基本参数说明
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地址范围内的变量,一个地址对应两个字符
假设保存寄存器地址0,值为‘abcdefghij’,如下所示
数组
创建一个输入寄存器,且为数组类型(默认数组大小为10,下标从0开始),假设该变量的地址为0x0000,那么此变量表示从0x0000开始的连续10个变量,数组下标对应一个变量
假设创建一个输入寄存器为Voltage的变量,数组类型,大小为10,则对应关系如下所示
1.5 逻辑处理
选择左侧“逻辑处理”节点,点击工具栏按钮“添加”逻辑处理。如下图所示,选择所示新建的逻辑关系,然后通过属性窗口进行设置
通用属性参数介绍:
- 用途:设置当前逻辑的用途,例如控件绑定、控件显示等
- 画面:控件所在的画面ID
- 控件:控件ID
- 变量:控件关联变量名称
- 执行条件:可设置该逻辑的执行条件,Always表示总是执行,Changed表示变量改变时执行
1.5.1 控件绑定
设置控件关联的变量:当控件改变时,自动更新变量值;反之变量更新时,更新控件显示
使用VisualTFT软件V3.0.0.765及以上版本,也可直接在组态控件属性窗口设置关联变量名称,如下所示,按钮控件绑定一个变量
1.5.2 控件显示
当设置的“执行条件”成立时显示控件,否则隐藏控件
1.5.3 动画播放
当设置的“执行条件”成立时开始播放动画,否则停止播放
1.5.4 按钮按下与弹起
按钮按下时或者弹起时,如果满足“执行条件”,则“执行动作”
1.5.5 条件执行
满足“执行条件”时“执行动作”,为防止重复执行,该逻辑仅在满足条件的瞬间执行一次(类似上升沿触发)
画面条件:限定此逻辑仅在某个画面下有效
1.5.6 切换画面
满足“执行条件”时,切换到指定的目标画面,该逻辑为触发方式
- 目标参数:目标画面可以为变量或者常量
- 画面条件:限定此逻辑仅在某个画面下有效
1.5.7 设置变量
满足“执行条件”时,设置变量为指定数值
- 写入优化:启用优化时,仅在改变目标变量时,执行写入
- 画面条件:限定此逻辑仅在某个画面下有效
1.5.8 汇编指令
支持的汇编指令包括:建议使用Lua或MiniC脚本语言实现复杂的交互
- Jmp跳转:当“执行条件”成立时,跳转到“目标标签”,只能向后跳转
- Mov赋值:MOV A B,把“参数变量或常量B”设置到“目标变量B”
- Add加法:ADD A B,结果A = A+B
- Sub减法:SUB A B,结果 A = A-B
- And逻辑与:AND A B,结果A = A&B
- Or逻辑或:OR A B,结果A=A|B
- Mul乘法:MUL A B,结果A=A*B
- Div除法:DIV A B,结果A = A/B
1.5.9 事件记录
当“执行条件”成立时,记录事件ID
1.5.10 曲线绑定
当“执行条件”成立时,在“历史曲线”中记录指定变量
1.5.11 颜色设置
当“执行条件”成立时,设置控件为指定颜色
1.5.12 文本闪烁
当“执行条件”成立时,设置文本控件按指定周期闪烁
1.5.13 蜂鸣器控制
当“执行条件”成立时,控制蜂鸣器发出声音
- 模式:可设置为“单次”鸣叫或周期性鸣叫
- 控制:对于周期性模式,可以设置为开始鸣叫、结束鸣叫、由条件控制
- 时间:对于“单次”模式,可以设置鸣叫时间长度
- 周期:对于“周期”模式,可以设置鸣叫的周期
1.5.14 外接矩阵键盘
该功能为定制功能,常规版本不支持
1.5.15 写入时间
屏做主机时,可以定时写指定寄存器,设置从机时间