2024年1月15日发(作者:)

Technical
Note
大彩串口屏MODBUS通信
工程技术笔记
修订历史
版本
V1.0
日期
2016/12/26
原因
创建文档
编制
刘仁武
审查
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
目录
1. 协议与变量设置 ....................................................................................................... 1
1.1
1.2
1.3
协议设置 ................................................................................................................... 1
变量定义 ................................................................................................................... 1
逻辑处理 ................................................................................................................... 2
1.3.1 控件绑定 ........................................................................................................... 3
1.3.2 控件显示 ........................................................................................................... 3
1.3.3 动画播放 ........................................................................................................... 3
1.3.4 按钮按下与弹起 ............................................................................................... 4
1.3.5 条件执行 ........................................................................................................... 4
1.3.6 切换画面 ........................................................................................................... 4
1.3.7 设置变量 ........................................................................................................... 5
1.3.8 汇编指令 ........................................................................................................... 5
1.3.9 事件记录 ........................................................................................................... 5
1.3.10 曲线绑定 ........................................................................................................... 6
1.3.11 颜色设置 ........................................................................................................... 6
1.3.12 文本闪烁 ........................................................................................................... 6
1.3.13 蜂鸣器控制 ....................................................................................................... 7
1.3.14 外接矩阵键盘 ................................................................................................... 7
1.3.15 写入时间 ........................................................................................................... 7
2. MINIC脚本编程 ....................................................................................................... 8
2.1
2.2
2.3
MINIC介绍 .............................................................................................................. 8
变量定义 ................................................................................................................... 8
系统入口函数 ........................................................................................................... 9
2.3.1 系统执行初始化on_init ................................................................................... 9
2.3.2 定期执行任务on_systick ............................................................................... 10
2.3.3 定时器超时通知 10
2.3.4 变量更新通知on_variant_upate .................................................................... 10
2.3.5 控件值更新通知on_control_notify ............................................................... 10
2.3.6 画面切换通知on_screen_change .................................................................. 11
2.4 系统变量 ................................................................................................................. 11
2.4.1 波特率te ........................................................................................ 11
2.4.2 背光亮度ght .................................................................................... 11
2.4.3 蜂鸣器使能_en ................................................................................ 11
2.4.4 系统通信故障_ 11
2.4.5 当前画面t_screen .......................................................................... 11
2.4.6 系统上电时间 (单位秒) ............................................................... 11
2.4.7 系统日期年、月、日、星期............. 11
2.4.8 系统时间时、分、秒 ................................. 11
2.4.9 系统定时器0~9(单位毫秒) ......................................... 12
2.5 系统功能调用 ......................................................................................................... 12
2.5.1 启动定时器:start_timer(timer_id, timeout, countdown, repeat) .................. 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
2.5.2
2.5.3
2.5.4
2.5.5
停止定时器:stop_timer(timer_id) ................................................................ 12
设置系统日期:set_date(year, month, day) ................................................... 12
设置系统时间:set_time(hour, minute, second)............................................ 12
设置变量:set(variant,value) ......................................................................... 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
1. 协议与变量设置
此文档中描述的功能,仅适用于含MODBUS功能的固件版本。
使用VisualTFT组态软件,通过菜单“工具”-》“协议与变量设置”,打开如下图所示配置工具。
1.1 协议设置
启用协议:需要启用协议,才支持MODBUS主机/从机、PLC通信;
协议类型:可选的通信协议包括
MODBUS主机
MODBUS从机
三菱PLC通信协议
XGUS
从机地址:MODBUS从机地址;
轮询周期:作主机时,变量的读取周期,默认1秒;
轮询延时:作主机时,相邻两次读取命令的间隔时间,默认为100毫秒;
应答超时:作主机时,允许从机的最大延时,默认100毫秒;
连续读取:作主机时,设置连续地址变量的最大读取数;
优化读取:作主机时,开启优化读取后,只读取与当前画面相关的变量;
存储设置 :
不存储:不存储,断电重启后变量恢复默认值;
全部存储:不推荐,因为频繁存储会导致FLASH坏块增加;
存储指定变量:推荐使用,一般用来存储很少更改的系统配置参数;
存储标记:识别存储在屏幕中的数据版本标记,当存储数据格式发生改动时,一般需要手动修改此存储标记值。
1.2 变量定义
选择左侧的“变量定义”节点,点击工具栏的“添加”按钮,可以添加变量,然后根据需要对变量进行属性设置。
1 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
选择变量节点Variable1,然后通过属性窗口进行设置:
名称:可以修改为有意义的名称,如“温度”
格式:短整型(2字节),长整形(4字节),浮点数(4字节),字符串
符号:对于整数类型,可以设置为有符号/无符号
字节顺序:数据的高低字节排列顺序
位宽:变量的位宽与格式对应,字段可以设置位宽
读写设置:设置变量的读写权限
默认值:变量的默认值
数值转换:实际值=原始值*缩放+平移
显示格式:可以设置整数或小数显示补零
MODBUS相关设置:
从机地址:主机模式时才需要设置
变量地址:变量(或寄存器)的地址
变量类型:线圈(Coils),离散输入(Discrete Inputs),保持寄存器(Holding Register),输入寄存器(Input Register)
内存变量:用于数据处理的变量(存储计算结果),此变量更改不发生串口通信
系统变量:屏幕中预定义的变量,包括波特率、背光亮度、蜂鸣器、日期时间等
1.3 逻辑处理
选择左侧“逻辑处理”节点,点击工具栏按钮“添加”逻辑处理。如下图所示,选择所示新建的逻辑关系,然后通过属性窗口进行设置。
通用属性参数介绍:
2 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
用途:设置当前逻辑的用途,例如控件绑定、控件显示等
画面:控件所在的画面ID
控件:控件ID
变量:控件关联变量名称
执行条件:可设置该逻辑的执行条件,Always表示总是执行,Changed表示变量改变时执行。
1.3.1 控件绑定
设置控件关联的变量:当控件改变时,自动更新变量值;反之变量更新时,更新控件显示。
使用VisualTFT软件765及以上版本,也可直接在控件属性窗口设置关联变量名称。
1.3.2 控件显示
当设置的“执行条件”成立时显示控件,否则隐藏控件。
1.3.3 动画播放
当设置的“执行条件”成立时开始播放动画,否则停止播放。
3 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
1.3.4 按钮按下与弹起
按钮按下时或者弹起时,如果满足“执行条件”,则“执行动作”。
1.3.5 条件执行
满足“执行条件”时“执行动作”,为防止重复执行,该逻辑仅在满足条件的瞬间执行一次(类似上升沿触发)。
画面条件:限定此逻辑仅在某个画面下有效。
1.3.6 切换画面
4 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
满足“执行条件”时,切换到指定的目标画面,该逻辑为触发方式。
目标参数:目标画面可以为变量或者常量。
画面条件:限定此逻辑仅在某个画面下有效。
1.3.7 设置变量
满足“执行条件”时,设置变量为指定数值。
写入优化:启用优化时,仅在改变目标变量时,执行写入。
画面条件:限定此逻辑仅在某个画面下有效。
1.3.8 汇编指令
支持的汇编指令包括:
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.3.9 事件记录
当“执行条件”成立时,记录事件ID。
5 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
1.3.10 曲线绑定
当“执行条件”成立时,在“历史曲线”中记录指定变量。
1.3.11 颜色设置
当“执行条件”成立时,设置控件为指定颜色。
1.3.12 文本闪烁
当“执行条件”成立时,设置文本控件按指定周期闪烁。
6 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
1.3.13 蜂鸣器控制
当“执行条件”成立时,控制蜂鸣器发出声音。
模式:可设置为“单次”鸣叫或周期性鸣叫;
控制:对于周期性模式,可以设置为开始鸣叫、结束鸣叫、由条件控制;
时间:对于“单次”模式,可以设置鸣叫时间长度;
周期:对于“周期”模式,可以设置鸣叫的周期;
1.3.14 外接矩阵键盘
该功能为定制功能,常规版本不支持。
1.3.15 写入时间
屏做主机时,可以定时写指定寄存器,设置从机时间。
7 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
2. MINIC脚本编程
2.1 MINIC介绍
MINIC是一种用于串口屏的脚本语言。它的语法类似C语言,但只保留最常用的功能。
使用VisualTFT组态软件,通过菜单“工具”-》“MINIC 脚本编程”,打开如下图脚本编辑窗口。
MINIC包括的功能有:算数运算、位运算、逻辑运算、比较运算、赋值、IF选择语句、系统功能调用等,具体语法与C语言一致。
算数运算:+加、-减、*乘、/除、%取模
位运算:|位或、&位与、^按位异或、~按位取反
逻辑运算:||逻辑或、&&逻辑与、!逻辑非
比较运算:==、!=、<=、>=、<、>
赋值:=
@操作符:符判定某个寄存器是否发送改变,例如 if(@ “温度”)
常量:包括整数(168)、浮点数(3.14)、十六进制数(0xAABB)
2.2 变量定义
变量包括:全局变量、局部变量(函数内部)。
全局变量定义方法如下图,全局变量可以直接在函数中访问。
如果变量为中文,需要用双引号包围,例如 “温度” = 32。
8 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
支持的变量数据类型如下表:
变量类型
有符号字节
无符号字节
有符号短整型
无符号短整型
有符号整数
无符号整数
单精度浮点数
关键字
char
unsigned char
short
unsigned short
int
unsigned int
float
或者
int8
uint8
int16
uint16
int32
uint32
无
局部变量的定义方法如下图:
2.3 系统入口函数
系统入口函数,即系统中预定义的函数,不能随意更改。
目前定义的入口函数:on_init、on_systick、on_timer、on_variant_upate、on_control_notify。
2.3.1 系统执行初始化on_init
/*
函数:on_init
9 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
功能:系统执行初始化,加载工程的时候执行一次
*/
void on_init()
{}
2.3.2 定期执行任务on_systick
/*
函数:on_systick
功能:周期性执行任务, 1秒执行一次
*/
void on_systick()
{}
2.3.3 定时器超时通知on_timer
/*
函数:on_timer
功能:定时器超时通知
参数:timer_id,定时器ID
需要收到定时器通知,首先要启动定时器
启动定时器:start_timer(timer_id,timeout,countdown,repeat)
timer_id-定时器ID(0~9)
timeout-超时时间,毫秒单位
countdown-0顺计时,1倒计时,决定递增或递减
repeat-重复次数,0表示无穷
停止定时器:stop_timer(timer_id)
定时器数值:0~9,毫秒单位
*/
void on_timer(int timer_id)
{}
2.3.4 变量更新通知on_variant_upate
/*
函数:on_variant_upate
功能:通过串口读写寄存器导致变量更新时,执行此函数。
使用“@”操作符判定某个寄存器是否发送改变,例如 if(@ “温度”)。
*/
void on_variant_upate()
{}
2.3.5 控件值更新通知on_control_notify
/*
10 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
函数:on_control_notify
功能:控件值更新通知,例如用户点击按钮、通过键盘输入数据时执行
参数:screen_id,产生此通知的画面ID
参数:control_id,产生此通知的控件ID
参数:value,数值,例如按钮按下为1,按钮弹起为0,或者文本控件录入的值
*/
void on_control_notify(int screen_id,int control_id,int value)
{}
2.3.6 画面切换通知on_screen_change
/*
函数:on_screen_change
功能:画面切换通知,当前画面ID发生变化时执行此函数
参数:screen_id,当前画面ID
*/
void on_screen_change(int screen_id)
{
}
2.4 系统变量
系统变量,即系统中预先定义的变量,方便在脚本中直接访问。
2.4.1 波特率te
可读写,表示当前串口的通信波特率,此参数断电会保存。
2.4.2 背光亮度ght
设置当前背光亮度值0最暗~100最亮
2.4.3 蜂鸣器使能_en
写入0禁用蜂鸣器,写入1启用蜂鸣器。
2.4.4 系统通信故障_err
系统最后一次读写寄存器的操作是否发生故障,该变量大于0表示有故障。
2.4.5 当前画面t_screen
可以通过该变量判断当前所在画面,或者修改该变量实现画面切换。
2.4.6 系统上电时间 (单位秒)
系统从上电以来的运行时间计数,单位为秒,重新断电会从0开始。
2.4.7 系统日期年、月、日、星期
年、月、日、星期
这些变量为只读,如果需要修改系统日期,请使用set_date系统功能
2.4.8 系统时间时、分、秒
11 / 12
广州大彩光电科技有限公司
大彩串口屏MODBUS通信协议V1.0
时、分、秒
这些变量为只读,如果需要修改系统时间,请使用set_time系统功能
2.4.9 系统定时器0~9(单位毫秒)
只读变量,该值可为顺计时或倒计时,参见start_timer系统功能
2.5 系统功能调用
系统功能即系统中预定义的函数,在脚本中可以直接调用。
2.5.1 启动定时器:start_timer(timer_id, timeout, countdown, repeat)
timer_id-定时器ID(0~9)
timeout-超时时间,毫秒单位
countdown-0顺计时,1倒计时,决定递增或递减
repeat-重复次数,0表示无穷
定时器数值:通过0~9访问,毫秒单位
2.5.2 停止定时器:stop_timer(timer_id)
2.5.3 设置系统日期:set_date(year, month, day)
2.5.4 设置系统时间:set_time(hour, minute, second)
2.5.5 设置变量:set(variant,value)
该功能与赋值操作“=”类似,但有所差异,以A=B 和 set(A,B)来说明。
相同之处:执行完毕之后A的值等于B的值;
不同之处:如果A是寄存器,A的值没有改变时,使用赋值操作不会发送串口写入命令,而使用set功能则会发送串口写入命令。
12 / 12