责任编辑:
吃炸鸡
时间:2022-03-06
来源:转载于:博客园( 作者:chencarl)
责任编辑:
吃炸鸡
时间:2022-03-06
来源:转载于:博客园( 作者:chencarl)
以前总结了一回工业应用的技术栈方向,生成了一个技术导图已经做了罗列规划,内容也基本上包含了普通应用所需要的大部分方面,当然可能对于个人的技术见识来说会有遗漏空缺,这个还需要到具体项目时再进行调研和补充。
1.系统结构
新的东西能带来新的观点。新接触到的的产线方案,最近做了相关的技术调研,对于软件应用的理解更深了一个层次。以前可能对工业应用的理解比较碎片化,没有一个完整的思路,接触过产线的完整方案以后,开始对一些专业的软件组织方式和内容有了一个系统化的认知,对系统的应用有更清晰的层级划分。
对于一个完整的工控系统,无论简单复杂程度与否,我觉得都可以可以划为三个层次,设备层、控制层和决策层。(如同网络分层,有人理解更丰富,可能会划分五层七层等一样)
设备层:也即硬件层,对产品进行感知和执行的单元,包括传感器、仪器仪表、条码、射频识别、数控机床、机器人、HMI主机等;
控制层:对设备层数据进行采集、保存和转发、并能够执行一些控制逻辑的单元,包括可编程逻辑控制器(PLC)、数据采集与监视控制系统(SCADA)、分布式控制系统(DCS)等;
决策层:对整个系统的实时状态进行展示、历史数据查询统计并能够对决策进行有数据支撑的预测。主要包括盖勒普制造执行系统(MES),及产品生命周期管理软件(PLM) 等。
而常用的单机系统应用,它其实也拥有系统的三个层次属性,三个层次里的内容退化成了模块化的软硬件设计,如果单机系统继续往上集成则是作为大系统设备层的子单元进行组合;
2.单系统应用
单系统应用是系统应用的常态化设计,作为系统的底层架构设计,单系统应用不管在简单和复杂系统中都要进行设计,是整个设计的基础。
目前单系统应用从软件划分来看可分为arm软件系统、x86软件系统和RTOS系统;
每种系统下都有自己对应生态的硬件和软件配套,当然也不乏一些跨系统的应用方案,但是毕竟占少数,所以根据不同的系统应用需求,来选择不同的单系统方案才更正确。
2.1单机的工业控制设备
工业化控制设备从协议方式和厂家SDK这两方面着手,通用的协议方式可以支持不同厂家的的同类设备,对于像采集板卡这种需单独驱动控制的,各个厂家都有其sdk开发包,通常一个开发包可以完成其所有产品的控制。
很多通用库可以支持多种协议,比如ni或者安捷伦的visa库,比如libmodbus支持RTU、ASCII、TCP等;对于这些通用协议和通用库需要长期进行累积、封装和改进,以方便开发使用;
2.2 单机的软件组态化
软件的组态化也就是可配置化,通过现有软件搭建组合成为一个控制系统,将功能模块化。和搭积木是一个道理,等搭建完成后,再来配置他们之间的关系和各个积木块的数据配置,最后生成使用软件。
组态的最高化境界是无需编程或者少量编程,全部通过配置操作完成所有软件模块的设计工作,极大的提高了软件设计的效率。最先通过硬件的组态,配置与硬件连接的协议、参数来实现硬件的控制,然后再进行数据组态,利用通用协议把采集到的数据进行解析后进行映射和保存等操作;最后是UI组态,只需简单拖拽和设置将数据显示模块和数据绑定进行显示。
软件想做到组态化应往三个方面进行设计和积累:
模块化:工业应用开发上将开发的通讯协议、硬件控制和数据管理等软件功能进行功能模块化封装,不同的设备支持不同的通用协议的话就使用不同的模块分别进行设置控制;
可配置化:对于不同模块可以通过配置的方式进行加载、运行和处理,
接口化:对数据的处理流做到明确的输入输出,做到可以链式连接的方式。