|
记得第一次接触液晶屏的时候,是大学一年级时候,因为对单片机编程感兴趣,所以在入学之后就开始翻阅大量书籍并动手实践。第一块屏是字符液晶,2行16列,当时是为了参加一个电子设计大赛,设计了一个交互式菜单。
现在回过头来看,满满一屏幕的switch ,if 跳转,收获最大的大概是摸索出了嵌套状态机的界面设计方式,此是后话,当时并不知晓此种设计模式。只是觉得用什么样最舒适的方式来完成界面的交互开发。再后来便是图形液晶,
也就是大家最常见接触的12864点阵屏幕。在开发这些人机交互界面的时候,我一直在思考,为什么界面开发总是如同绣花一般繁琐细致,有没有办法简化这些操作呢。比如借助于PC上位机来完成界面的开发,很显然在效率上
高了几个等级。于是乎,在网络上查找,有没有类似这样的工具。在这个过程中,发现困惑于此的不仅仅只是我一个人,也不仅仅只是我们,连国外的工程师也同样存在这样的问题。很多人给出的方式是配置界面,生成对应的
C代码,然后编译。对于这样的方式,我一直不大满意,虽然效率已经有了很大的提升。但是有没有一种方式,就是只需要在上位机上面所见即所得,进行配置,然后下位机就可以生成对应的界面。
工作后的第一份工作,是自动化电控开发,在这期间接触到了HMI人机界面,发现这样类似的工具,达到的效果,不正是自己之前在界面开发所想要实现的吗。PC上面配置,所见即所得,大大提升了人机交互界面设计的效率。
惊喜之余,也开始琢磨这类装置的实现方式。通过长时间的摸索,终于有了些许收获。
此为前言。
现在要展开的这个项目,是文本显示器。也属于HMI的一种,不同于常见的触摸屏,它的交互以按键操作为主。要问为什么选择它,大概是因为以前做单片机久了的原因,习惯了按键输入,点阵屏幕显示。在我看来,大多数常
规的电子设备上面,可能配备的输入装置还是以按键和点阵屏幕显示为主。
文本显示器的项目整体组成如下:
主体由上下位机组成。上位机进行所见即所得的画面配置,各类控件属性配置,同时具备离线模拟,在线模拟功能,方便调试。(这一块的功能,是很多商业化的文本显示器设计软件都不具备的。)下位机进行界面解析,通信管理,与外部控制装置,如PLC,各类控制板等进行数据交互。
整体项目规划进度如下:
第一步,完成UI设计器的工作,在进行本工作时候,同时会定义出各类控件元素及其属性。
第二步,完成离线模拟功能。离线模拟功能,在UI设计器可以初步运行时候,会展开设计,离线模拟功能的大部分与硬件无关的代码,后续会直接应用到下位机端。这也是开发离线模拟的目的之一,通过上位机的便捷性,
来完成下位机逻辑代码的调试。避免了下位机不停的编译-烧写的过程。
第三步,完成在线模拟功能。在线模拟功能,相较离线模拟功能,多了通信管理等,可以在PC端模拟实际的文本显示器。即便没有文本显示器,也可以把PC当成一台文本显示器,通过串口等与外部控制装置通信交互。
在线模拟的功能,在设计到通信相关的控件元素的时候,会进行展开。也就是说上位机的几个核心模块,会根据实际进程,会交叉进行。
第四步,上位机端工作开发接近尾声时候,开展下位机的开发。包含电路设计讨论,原理图绘制,PCB Layout,外壳选型,代码编写。下位机的部分功能电路等设计,也会在上位机开发进程中,需要涉及到的时候,进行讨论。
相较其他项目,因为本项目是完成一个实际工控中使用到的装置,涉及到的知识点细节等繁多,同时要求代码质量可靠稳定,希望对此有兴趣的朋友,多参与进来交流讨论。毕竟,只有多交流沟通才能碰撞出更多思想的火花。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|