发布日期:2022-04-17 点击率:22
IT世界的工程师真的是一个很辛苦的职业,网上流传着他们的逼疯的故事—频繁变更的需求、架构的调整,甚至推倒重来,难道自动化行业就没有这样的事情吗?
大家都认为IT的程序结构复杂,自动化行业主要是顺序逻辑控制,结构肯定没有那么复杂---如果你这么想,大概是说的20年前的可编程“逻辑”控制器的年代,现在的机器哪里只有逻辑那么简单,运动控制、总线、HMI、安全、液压、行业工艺算法……。
今天就说一个“简单点”的事情—HMI的画面编辑。
看上去你把很牛的算法都写完了,也把运动控制功能调通了,温度的PID也自整定了—可是,对于HMI的开发而言,你还有很多需要面对的痛苦:
(1)经常变更的HMI设计—这是让程序员疯掉的事情
(2)设计的显示控件总是被抱怨太丑,高大上的HMI就像别人家的孩子?
(3)程序变更就得改HMI的显示,但是,程序的确经常在改。
工程师有时候会抱怨,出差半天就为了去现场给客户改一下程序,花费半天把程序里的变量与HMI的显示关联起来。
据估算,为了实现User-Friendly的HMI设计,程序员需要在HMI画面上花费大约30%的时间,这本身也是一种巨大的浪费。
解决问题的思路—关注点分离(SoC)
软件工程中有非常重要的方法称为“关注点分离”,即SoC(Separation of Concerns),通过SoC可以实现高内聚、低耦合的软件架构设计。对于面向服务的架构SoA而言,关注点分离是实现这一架构的重要途径。
由于PLC中运行的程序和产生的数据在HMI上访问是一种变量的绑定关系,因此,如果在HMI上的画面进行了修改,那么与之对应的程序也要进行调整,而另一方面,由于程序的变化导致了数据显示的问题,也必须在HMI上进行调整,包括显示的位置、单位、上下限的变化。
实现通道:OPC UA的应用
OPC UA就可以帮助我们实现应用程序与HMI显示的“关注点分离”,图2的架构让我们看到他们之间的关系:
由于OPC UA采用了统一标准的数据对象,包括对象所对应的结构与语义,比如:温度的数据和单位(摄氏度),而这些都可以被存储在OPC UA Server的地址空间里,这就像一个共享内存或者物理上的双口RAM,应用程序的数据可以被写入至这个共享区间,而OPC UA Client则通过Http方式来访问这个地址空间的数据。
这样就可以实现:
(1)程序中的数据变化进入共享区间,而HMI同时会更新数据而无需干预,因为HMI访问的是地址对应的参数。
(2)不同的HMI,如不同级别的用户(操作员、工程师、电气经理、总经理)通过IE、Andriod的浏览器可以访问同一个应用而无需开发不同的画面。
图1-通过OPC UA实现关注点分离的简图
下一篇: PLC、DCS、FCS三大控
上一篇: 步科HMI的网口上传下