搜索
bottom↓
回复: 19

HMI文本显示器(3) 设计器 之HMI PLC资源抽象

[复制链接]

出0入264汤圆

发表于 2020-7-10 21:28:10 | 显示全部楼层 |阅读模式
本帖最后由 mcu_lover 于 2020-7-10 21:26 编辑

    在这个HMI设计器中,规划之初,是支持不同型号的。也就是说,未来设计的HMI型号功能各不一样。比如屏幕分辨率大小192*64, 128*64,等等,
支持的通信口有RS232,RS485,有的带一个通信口,有的带两个通信口,有的带三个通信口。此外,操作面板的按键个数也不一样。因此,对这些
硬件资源进行统一的抽象管理,就是上位机在设计之初就要考虑进去的事情。因为它直接影响到后续所有的功能模块的规划和扩展。


    除了HMI类型抽象在设计之初要规划明确之外。另外一个重中之重的部分是通信协议的抽象管理。可以说,这一块是整个系统规划中最重要的核心一环。
通信协议的抽象,即牵涉到上位机画面设计部分,各类控件元素的交互设计,又涉及到下位机在开发通信驱动,以及对通信事件进行管理部分的核心代码
规划。因为HMI交互的对象,为各类品牌的PLC,比如欧姆龙,三菱,松下,西门子,基恩士,或者各类控制器自带的协议,又或如常见的标准MODBUS协议
等等。不同厂家的协议各有差异。这就要求我们在规划之初,就找出这些协议的共性,抽象之后,设计成通用的接口,待后续的下位机进行实现。对于这块
后续,当规划到这里时候,会单独进行分解。


    想象一下,我们现在使用一个HMI新建工程时候,因为支持的HMI型号各异,因此首先进行HMI型号的选择,其次,要选择与之连接的PLC品牌,以及该
品牌下面的对应的PLC系列型号。那在设计时候设计器就应该包含这两个模块。




    前面提及到,我们需要对HMI类型进行抽象统一管理。让我们想想,不同的HMI,虽然功能强弱程度不一样,但至少在功能特性上面是一样的。例如,显示分辨
率的大小,通信口的类型及通信口的数量等等。因此,对于这些功能共性,我们就可以进行统一标识,放在配置文件中保存。


    对于配置参数的保存,一般而言,有两种模式,一种为二进制模式,一种为ASCII模式。对于二进制模式来说,保存占用空间少,读取解析也快,对于ASCII模式来
说,占用空间大,解析花费的时间也长。对于此,我个人的观点是,程序永远是写给人看的,而不是给机器看,在效率不是关键的场合,应该尽量以ASCII为主。毕竟
可读的ASCII字符格式对于开发人员来说,还是非常友好的。想想一下,你打开一个文件,看到一堆十六进制的字节数据,恐怕只有再回到代码里面,对照着保存逻辑
结构,才能看的懂哪几个字节代表什么参数含义。

    这里我们选择xml格式的文件来进行所有的参数管理和存储。回到HMI类型管理这里,我们为每个HMI抽象的参数如下:



    可以看出,每个参数都有具体的名字以及对应的参数值。例如屏幕分辨率的宽度,高度,前景颜色,背景颜色,通信口数量,通信口类型等等。不管是查看还是修改参
数都非常直观。对于后续新增功能的添加也是只需要新增对应的项目,然后程序里面新增对应的处理代码即可。

    在代码层面,我们则定义好相对应的HMI属性类,进行统一的参数管理。
    例如:HMI属性类,可以后续根据需求进行新增变更等。



    HMI资源管理类,加载HMI xml配置文件,生成HMI配置资源列表。



    对于PLC资源的管理也是类似如下,可以大概看看如下的配置文件信息:



    在这个配置文件中,我们可以看到支持的PLC厂商名称,以及对应的PLC系列。当后续我们开发出了新的驱动之后,在这里添加新的项目即可。

    而每个具体的PLC的资源,则抽象之后,按照厂商名称单独存放。通过唯一的ID进行访问。例如台达的PLC,我们抽象之后的配置信息如下:



    从上图,可以看到,PLC系列的相关信息,默认的通信配置参数,以及通信装置资源,如 X Y M T C D 等各类PLC内部的寄存器访问信息。根据这些配置信息,我们就
可以在代码中设计对应的类进行操作管理。

    有了上面这些基础抽象之后,我们设计器实现的新建方案时候,呈现给用户的界面如下所示:
    HMI类型选择:





HMI 通信配置以及PLC选择





对于HMI以及PLC资源的管理原理简介到此。所谓万丈高楼平地起,当前期的规划我们考虑清晰之后,后续的新增功能变更就可以在原来的基础之上方便进行。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出16390入6832汤圆

发表于 2020-7-10 22:05:34 来自手机 | 显示全部楼层
好帖,打赏5元!


庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏
https://www.amobbs.com/thread-5735948-1-1.html

出330入0汤圆

发表于 2020-7-10 22:26:46 来自手机 | 显示全部楼层
楼主技术功力深厚,帖子写的也很用心,打赏5元,这是我在论坛的首次打赏。

出0入264汤圆

 楼主| 发表于 2020-7-10 22:36:48 | 显示全部楼层
zcllom 发表于 2020-7-10 22:26
楼主技术功力深厚,帖子写的也很用心,打赏5元,这是我在论坛的首次打赏。 ...

感谢感谢,有空多过来交流指点下。

出130入129汤圆

发表于 2020-7-10 22:41:21 来自手机 | 显示全部楼层
比较常用12864,但都是土法作业,学习楼主的思想

出0入8汤圆

发表于 2020-7-11 10:26:45 | 显示全部楼层
楼主竟然是  “从单片机初学者迈向单片机工程师” 的作者,当初毕业的时候看过,受益匪浅呀。

出0入264汤圆

 楼主| 发表于 2020-7-11 10:35:12 | 显示全部楼层
不舍的六年 发表于 2020-7-11 10:26
楼主竟然是  “从单片机初学者迈向单片机工程师” 的作者,当初毕业的时候看过,受益匪浅呀。 ...

欢迎欢迎。有空多过来看看。

出0入0汤圆

发表于 2020-7-11 17:02:20 | 显示全部楼层
版主啥时候出套件,希望跟随你的脚步学习

出0入0汤圆

发表于 2020-7-25 15:58:03 | 显示全部楼层
参数可以用结构化的语言描述,比如:json或CBOR

简明二进制对象展现(CBOR,Concise Binary Object Representation)是一种提供良好压缩性,扩展性强,不需要进行版本协商的二进制数据交换形式。

出0入0汤圆

发表于 2020-7-28 08:31:08 | 显示全部楼层
tpl(http://tpl.sourceforge.net/)是一个开源的小项目,其主要是提供一个可以序列化或反序列化C语言数据的一个API函数库。tpl号称是最有效率的也是最快的,它可以把你内存中的数据存放到文件中,并可以在你需要的时候用文件中反序例化到内存变量中。而且这个函数库没有依赖于别的函数库。

这个也不错

出0入0汤圆

发表于 2020-7-28 08:37:27 | 显示全部楼层
不错,这个编辑器看起来蛮漂亮的。

出0入4汤圆

发表于 2020-8-2 14:52:00 | 显示全部楼层
大工程!

出0入42汤圆

发表于 2020-8-2 15:11:58 来自手机 | 显示全部楼层
楼主会出套件吗?光看不够爽啊,希望可以实际设备上跑起来

出0入0汤圆

发表于 2020-9-29 17:36:49 | 显示全部楼层

版主啥时候出套件,希望跟随你的脚步学习

出0入0汤圆

发表于 2021-11-4 11:11:54 | 显示全部楼层
代码看着就很专业

出0入0汤圆

发表于 2021-11-4 13:34:39 | 显示全部楼层
mark,好东西

出0入0汤圆

发表于 2021-12-13 11:31:57 | 显示全部楼层
好东西,  能否共享代码源文件

出0入0汤圆

发表于 2022-1-18 20:58:39 | 显示全部楼层
mcu_lover 发表于 2020-7-10 22:36
感谢感谢,有空多过来交流指点下。

文本显示怎么卖的  麻烦联系我谢谢

出0入0汤圆

发表于 2022-4-3 08:15:46 来自手机 | 显示全部楼层
armok. 发表于 2020-7-10 22:05
好帖,打赏5元!



(引用自2楼)

这个项目还继续么

出0入0汤圆

发表于 2022-4-15 08:48:51 | 显示全部楼层
写的不错,我刚开始学习,感谢楼主
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-20 21:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表