在线客服

叶先生姜小姐

返回顶部

400-665-5066

竞博电竞首页.智能液晶显示模块HMI自定义通信协议分析

发布时间:2024-05-09 01:07:35 来源:竞博电竞官网首页 作者:竞博电竞体育赛事平台

  HMI的串口通信规则,除了标准Modbus协议产品,大多都是根据原厂制定的协议规则进行。然而许多企业也有其各自的通信规则及报文格式,在配套使用HMI开发应用时,企业希望保留或使用自己的功能特性和数据交互规则,用以匹配自己协议的应用开发。

  基于此,拓普微的HMI串口屏有一套较为成熟的设计方案。本文将介绍智能显示模块HMT050DTA-D如何基于LUA脚本设计实现,在原厂提供的库函数中,有开放串口控制类的API,通过这些API函数能够实现企业的自定义通信协议设计。

  此次设计将通过拓普微的智能液晶屏HMI的串口,配合LUA程序,应用串口控制类API,实现目标协议通信功能。

  HMI串口通信协议,常见的报文格式一般由“帧头”、“长度码”、“功能码”、“参数数据信息”、“帧尾”、“校验码”几个部分组成。通信过程中,系统将实时查询串口的数据接收,获取符合协议的报文数据,执行规定的指令功能。

  如下“表2-1:自定义协议通信报文格式”,定义了一种常见的通信报文格式。(硬件串口参数说明:波特率“115200”;数据位“8”;停止位“1”;校验如下表)

  目前使用的型号HMT050DTA-D默认是TOPWAY协议通信的,存在指令错误码回复机制。因此在自定义协议通信过程中,如果没有屏蔽原协议,可能会存在串口占用,回复数据混乱的情况。所以在设计自己协议通信时首先要把原厂的协议屏蔽,避免数据冲突。

  获取串口数据后,需要提取符合自定义协议规则的指令以便后续对指令进行解析并执行指令功能。因此需要定义接收指令数组,用以存储串口中符合协议规则的指令数据。

  协议通信中,也存在指令回复功能,比如读取/访问地址数据的指令。在解析完接收到的指令后,我们要对部分指令进行响应,所以需要定义回复指令数组,对读取/访问操作的指令进行回复。

  在LUA程序设计中,需要实现的功能板块有:①从串口接收区中获取符合规定自定义规则的指令,存储在接收指令数组;②调用接收到的指令数据,对指令数据进行解析;③调用相应的功能处理函数,执行指令功能。对于读取/访问信息类的指令,还需要操作串口发送数据进行回复。

  解析的指令目前主要实现4功能板块。①功能码“0x01”:访问/读取变量数据;②功能码“0x02”:改写变量数据;③功能码“0x03”:工程显示跳页;④功能码“0x04”:屏幕背光亮度控制。主要板块功能关系如图3-1所示。

  在拓普微提供的LUA库函数中存在TOPWAY协议禁用函数,可以在程序初始化时调用该函数对原厂的通信协议进行屏蔽。如图4-1

  说明:存储串口接收区中符合协议规则的指令数据。接收指令数据过程中,如过不符合定义的规则,需清空接收数组。

  说明:将符合自定义协议的指令存储在全局的接收指令数组;期间会对指令中帧头、帧尾、长度码3种类型的数据格式进行判断。不符合自定义协议时将清空指令数组。

  使用说明:在函数get_CustProtrecvcmd()中,获取符合自定义协议指令时会频繁调用该函数,对串口接收区的数据进行筛选。

  说明:函数会对接收指令数组中的数据码和校验码2个类型的数据格式进行判断。不符合自定义协议时将清空指令数组,回复错误码,并重新开始获取指令。

  说明:当功能码为“0x01”时使用该函数处理,函数将根据指令中的地址类型,分类调用hmt读变量函数,读回数据并存储在回复指令数组,最后通过串口发送返回。

  输入:“Addr”自定义协议中指令的地址数据,“value/strvalue”自定义协议中需要写入变量的数字数据或字符串数据。

  说明:当功能码为“0x02”时使用该函数处理,函数将根据指令中的地址类型,分类调用hmt写变量函数,将数字数据或字符串数据写入相应的变量。

  使用说明:写入字符串变量时,需要通过该函数将数字指令数据转成字符数据写入变量。可以配合字符串连接符“..”转成字符串数据。

  使用说明:当功能码为“0x03”时使用该函数处理,CmdHandle中会处理自定义指令中双字节的ID信息为数字数据,然后将数字数据传入该函数,跳转到指定页面。

  说明:函数CmdHandle会将自定义指令中亮度值传入数组setBLcmd的第二个字节;配合hmt库函数hmt.runcmd(cmdtable, len)使用,用以执行内部调光指令。

  使用说明:当功能码为“0x04”时使用该函数处理,调用局部数组setBLcmd,执行自定义协议的调节背光功能。

  本文所介绍的使用拓普微智能液晶显示模块测试通信协议,旨在引出通信协议实现的一种思路,因为工业控制、环境监控、数据安全等领域,应用层的功能设计很大程度会影响甚至决定协议层的数据传输格式。

  智能显示模块HMI的串口自定义协议通信的实现,用户可以按照自己的需求灵活设计协议规则,控制产品实现期望功能,在一定程度上为应用的功能设计提供了新的解决方案。


竞博电竞首页

竞博电竞体育赛事平台 OA登录 友情链接 网站地图 企业电话:400-6655066

企业地址: 东莞市松山湖科技产业园区科技九路2号

竞博电竞首页ICP证 | 粤ICP备11010635号-1