Linux双进程应用示例-工控主板.PDFVIP

  • 1
  • 0
  • 约2.23万字
  • 约 19页
  • 2018-12-08 发布于天津
  • 举报
Linux双进程应用示例-工控主板

成都英创信息技术有限公司 Linux 双进程应用示例 Linux 双进程应用示例 一、 概述 一台典型的工控设备通常包括若干通讯接口(网络、串口、CAN 等),以及若干数字 IO、AD 通道等。运行于设备核心平台的应用程序通过操作这些接口,实现特定的功能。通 常为了高校高精度完成整个通讯控制流程,应用程序采用 C/C++语言来编写。图 1 表现了 典型工控设备的组成关系。 图 1 典型工控设备框图 工控设备的另一个特点是鉴于设备大多是 24 小时连续运行,且无人值守,所以基本的 工控设备是无显示的。英创的工控主板 ESM6800、ESM335x 等都大量的应用于这类无头 工控设备之中。 在实际应用中,部分客户需要基于已有的无头工控设备 ,增加显示界面功能,以满足新 的应用需求。显然保持已有的基本工控处理程序不变,通过相对独立的技术手段来实现显示 功能,最符合客户的利益诉求。为此我们发展了一种双进程的程序设计方案来满足客户的这 一需求。该方案的第一个进程 ,以客户已有的用 C/C++写的基础工控进程为基础 ,仅增加 一个面向本地 IP ( )的侦听线程,用于向显示进程提供必要的运行工况数据。图 2 为增添了服务线程的工控进程 : 1 / 19 028 成都英创信息技术有限公司 Linux 双进程应用示例 图 2 带有侦听线程的基础工控进程 方案的第二个进程则主要用于实现显示界面 ,可以采用各种手段来实现 ,本文中介绍了 使用 Qt 的 QML 语言加通讯插件的界面设计方法。第二个进程 (具体是通讯插件单元 )通 过本地 IP ,以客户端方式与基础工控进程进行 Socket 通讯,完成进程间数据交换。显示进 程以及与工控进程的关系如图 3 所示 : 图 3 显示进程与工控进程 2 / 19 028 成都英创信息技术有限公司 Linux 双进程应用示例 二、 系统设计 鉴于工业控制领域对系统运行的稳定性要求,控制系统更加倾向于将底层硬件控制部分 与上层界面显示分开,两部分以双进程的形式各自独立运行。底层硬件控制部分将会监控系 统硬件,管理外设等,同时收集系统的状态;而上层界面显示部分主要用于显示系统状态, 并实现少量的系统控制功能,方便维护人员查看系统运行状态并且根据当前状态进行系统的 调整。由于显示界面不一定是所有设备都配置,而且显示部分的程序更加复杂,从而更容易 出现程序运行时的错误,将控制与显示分开能够避免由于显示部分的程序问题而影响到整个 控制系统的运行,而且没有配置显示屏的设备也可以直接运行底层的控制程序,增加了系统 程序的兼容性。显示与控制分离后,由于显示界面程序不需要处理底层硬件的管理控制,在 设计时可以更加注重于界面的美化,而且界面程序可以采用不同的编程语言进行开发,比如 使用 Qt C++或者 Android java ,本文将介绍基于Linux + Qt 的双进程示例程序供客户在 实际开发中参考,关于 Android 程序请参考我们官网的另一篇文章。 3 / 19 028 成都英创信息技术有限公司 Linux 双进程应用示例 如上图所示。整个系统分为控制和显示两个进程 ,底层硬件控制部分可以独立运行,使 用多线程管理不同的硬件设备,监控硬件状态,将状态发送给 socket 服务器,并且从 socket 服务器接收命令来更改设备状态。Socket 服务器也是一个独立的线程,通过本地网 络通信集中处理来自硬件控制线程以及显示程序的消息。显示界面需要连接上 socket 服务 器才能正确的显示设备的

文档评论(0)

1亿VIP精品文档

相关文档