责任编辑:
吃炸鸡
时间:2022-03-06
来源:转载于:博客园( 作者:chencarl)
责任编辑:
吃炸鸡
时间:2022-03-06
来源:转载于:博客园( 作者:chencarl)
2.3 单机的仿真化
很多人对于单机软件的界面的设计风格,上回也进行了讨论,对于软件的配色等也进行了总结和选择;其实这只是软件界面的一个方面,对于一个工控软件来说,界面的风格可能不是需要很前卫和时尚,其功能也不会很复杂多变,但是对于用户来说,其实最基本的需求就是简洁、明确和高效。不需要对计算机有很深入的了解,也不需要对抽象数据进行学习,只是了解系统的运行,就可以很快的进行软件的使用,那么对于界面的仿真化就十分必要。
如下图的 给水控制系统,形象的系统设备展示和水流等动画,对于软件操作人员来说,可以很快上手,摆脱单调的数值显示刷新带来的枯燥感,可以形象的了解系统结构,清晰的观察数值的呈现节点,快速的定位系统问题。
软件的仿真化其实是比较困难的技术,其工作量也会大幅提升,如果想做到完美实现,最快是通过使用成熟的SCADA系统软件开发包进行开发,这个在当前市场上比较成熟了,可以持续了解和发现是否有免费好用的;
另外一个是先从开发自己的组建仿真控件库开始,逐步完善整个仿真界面系统,这方面现有选择其实并不多,需要支持透明、阴影、3D、控件缩放、抗锯齿、克服不同分辨率和DPI下的实现效果一致等,目前备选的方案有qt的qml技术 和 microsoft的wpf技术。
qt界面图
wpf界面图
对于界面开发的技术路线选择根据实际情况而异,各有各的优势和限制,需根据实际情况进行选择;
qt优点:
- 跨平台开发,在linux和windows下都有较好的支持;
- 使用c++语言有较好的通用性;
qt缺点:
c#优点:
- windows平台下有优秀的显示效果;
- 有较为丰富的界面和样式库进行选择
c#缺点:
- c#在一些较为冷僻的工控上可能支持不太好,需要结合c++进行联合开发;
- linux下不支持;
- 还有就是c#不开源,所以对于国产化上可能会有一些限制。
2.4 其他系统开发
嵌入式系统开发已经越来越成为一种趋势,具有系统专业化、低成本化、低功耗和方便携带的优点,当然开发的难度和门槛也比较高,需要对硬件知识和linux系统有较为深入的理解。目前主流的操作系统包括linux arm系统、andriod系统和实时系统(FreeRtos、Vxworks和ReWorks等);
对于工业控制,实时操作系统是绕不开的一个系统应用方向,在实时系统中来说可能分量最重的就是Vxworks了,这个也将作为下一步的学习目标,至少了解系统的基本组件和进程的调度方式,能够熟悉VxWorks的基本界面实现等,如果遇到有Vxworks或者相关的实时系统下的设计要求能够快速的进行系统方案的确定。
3.SCADA系统
SCADA,全称为「supervisory control and data acquisition」它的意思是「数据采集与监控系统」,多用于可实现数据实时采集、设备过程监控、设备异常报警等,它的的底层数据支撑来源于分布式的传感器、仪表、设备和单机系统等节点,支持多种通讯协议,实现硬件系统与软件系统信息的交换,向上传递状态信息,向下执行控制命令,起到一个中心控制和数据管理的核心控制功能。
SCADA中间控制层其实在设计时是一个分层模块概念,它真正的实体存在于设备层(单机系统软件)的传输模块和决策层(数据服务器)的数据逻辑处理、数据存储和数据访问等功能中,它通常以模块的方式集成于系统之中,当系统发展到中大型的规模,才会出现scada服务器的设备。
SCADA对于的分布式的多点采集的需求是较为经典的管理方式,天然适合与产线系统、楼宇、自动化的管理,这方面的控制系统搭建还有很有必要学习和掌握的,目前市面上scada的多从组态的设计出发,加入上层管理系统的概念,组成MES的大的系统结构。scada真正的精髓是工控网关,既要支持设备层的多种设备协议,又要打通传输通道,将数据进行绑定、汇总和分发,所以其中的协议支持转换才是关键。
网关驱动模型
4.软件技术的方向
1.持续的完善工业协议和板卡的通用库封装,设计中进行软件的模块化,提高软件的可重用性,加速单机开发的时间。
2.界面UI的qml和wpf技术尝试,实现通用UI控件的组态化;
3.调研Scada系统的软件库,找到适合使用的完整方案;
3.linux arm系统配置和软件设计的初步实现;
4.VxWorks系统的学习和使用。