✅ 操作成功!

广州大彩串口屏技术笔记—MODBUS通信协议

发布时间:2024-01-15 作者:admin 来源:讲座

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

广州大彩串口屏技术笔记—MODBUS通信协议

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

广州大彩串口屏技术笔记—MODBUS通信协议

👁️ 阅读量:0