IEC61499 系统的HMI

IEC61499 标准是面向分布式工业过程,控制,测量系统的组件化标准,它使用功能块以图形的方式开发应用程序的算法和逻辑。但是它并不支持人机交互界面(HMI)。作为一个控制系统所必需的重要组成部分,人机交互界面HMI 需要进一步地扩展。

在工业控制系统中,有两种HMI 的方式,第一种是硬件方式,通常是在设备上设置一个LCD面板,LED指示灯和按键。实现简单简单的人机交互。在这种方式下我们只要建立一个对应的服务功能块(service function block)就可以实现了。

另一种方式是通过网络来实现人机交互,传统的方式是连接一台工业PC机,编写一个基于Windows的程序来实现HMI。而现在,更多的是使用浏览器或者手机App 访问设备内置的web 服务器来实现HMI,这就是所谓基于web 的HMI。现代HTML5网页能够实现丰富的人机交互。完全可以设计出比原先PC 程序更加快捷地设计出满足各种控制系统需要的丰富的HMI。

web HMI 实现的方式也有许多种,可以是基于HTML 页面的方式,也可以是基于SVG 图形方式。可以使用各种按键,图形,滑杆,表单等各种HTML5 widget, 网络上也可以找到各种JavaScript库。比如JQWidgets,highcharts,D3.js 等等都是我们比较喜爱的UI 工具库。使用SVG 图形可以设计出类似PC 端程序实现的SCADA 图形界面。我们在这里就不展开讨论了,毕竟涉及到HTML5的前端设计技术,内容太多了。

IEC61499 系统的HMI_第1张图片

     回到我们的主题,设计IEC61499 HMI 的问题,由于4diac 已经支持了MQTT 的publish/subscribe 通信方式,我们HMI 的设计思路是在独立地运行一个webHMI 服务器,支持人机交互,结构图-1 所示。

IEC61499 应用程序使用Publish /subscribe 功能块发布和订阅消息,ID 配置成MQTT 模式。实现通过MQTT 代理与web 服务器交互。

为了实现与web服务器实现双向实时交互,web 服务器与网页中的JavaScript 程序采用Websocket 通信方式。

实现基于HTML5 的HMI 的难点在于如何让HTML 网页上的控件组件化。不过为了实现完美的UI,开发通用的HMI组件库并非易事。我们可以采取折中的方式,将web 服务器设计成为一个协议转换软件,将MQTT 的topic 和payload 直接转化成为一个json结构通过websocket 传送给网页。这样做的好处是不再需要开发web server 的程序了。

json_msg={

 topic:”some topic”

 payload:”payload”

}

反向过程类似。这样实现了网页与IEC61499 应用之间消息的透明传送。用户需要做的是设计一个面向具体应用的HTML5 网页添加到web server 的文件目录中就可以了。

IEC61499 系统的HMI_第2张图片

 

 由于大多数运行IEC 61499 运行时Forte 的系统将是Arm 处理器的Linux 系统,所以,我们可以采取容器化技术来部署各种应用程序。Forte和web 服务器将是两个独立运行于容器中的微服务。

值得一提的是,我们也可以使用 NodeRED 软件来构建IEC61499 应用程序的HMI。

我的实验项目:

1 使用go语言实现了一个 MQTT<->WebSocket 转换的webserver。

2 在ubuntu 上运行mosquitto MQTT Broker。

3 网页实现了 一个基于canvas的数据曲线图型,4个LED 指示灯和两个按键。

4 为了是实现多个数据的交互,MQTT 的topic 采用通配置方式,IEC61499 应用程序发生两种tiopc,分别是

out/wave

out/led1

网页向IEC61499 应用发送的MQTT topic 只有一个 Start,payload 为TRUE 时启动,FALSE 时停止。

 下面是IEC61499 程序和HMI 界面

IEC61499 系统的HMI_第3张图片

IEC61499 系统的HMI_第4张图片

 

你可能感兴趣的:(IEC61499,iot,工业App)