新一代软件技术影响操作的稳定性和安全性

操作稳定性、安全性和安全性仍然是工业应用的关键要求。

通过Marcos Taccolini, Tatsoft LLC首席执行官,德克萨斯州休斯顿 2013年3月28日

不管工业应用的变化如何,有一个事实是不变的:操作稳定性、安全性和安全性仍然是关键需求。各种各样的新技术正在帮助确保和促进这些功能。例如,在现场仪器仪表中,安全性不仅仅是通过内部程序或制造商的保证来保证的,而是通过在仪器仪表运行的环境中使用本质安全的电压和电流的系统架构来保证的。

类似的概念也适用于软件。上一代使用C/ c++、指针、多个模块共享同一个内存区域,以及直接访问本质上不安全的硬件和操作系统资源。另一方面,新一代软件使用计算环境——例如。net框架。在这里,进程本机隔离于操作系统,允许更好地使用多个处理器核心和更高的操作稳定性,即使在面临驱动程序和硬件错误或个别系统模块故障时也是如此。

与应用程序中的用户脚本类似,上一代软件使用专有脚本或解释语言,如VBScript、VBA或专有表达式编辑器。如今,新一代软件依赖于现代编译语言,如c#或VB。Net与面向对象和执行控制。传统解释语言不允许在开发阶段进行完整的代码验证,只允许在进行最终验证时进行。因此,只有在项目运行时,而不是在工程配置的早期,才有可能测试问题或关注点。

在典型的项目中,代码可能有数百到数千种可能的执行路径。场景无法测试所有这些路径和所有可能的用例。在工程配置期间检测潜在错误的能力,以及在运行时恢复和隔离错误的能力,是安全和运行稳定性的关键要素。只有将遗留的解释性脚本完全迁移到新的编译和托管语言,才有可能实现这些功能。

下表列出了一些典型的实时工业自动化系统特性和组件,以及传统和新一代软件技术如何影响它们。

特性或组件

新一代技术

传统的技术

内部编程

c# / VB。Net/Java

自动、受保护的内存管理;独立于硬件和操作系统的保护。

c++ / C

大量使用指针;每个设备都需要验证;直接访问硬件和操作系统。

图形编程

WPF, XBAP, Silverlight, XAML

使用硬件加速而不考虑分辨率(矢量);性能更高,原生容量为3D,多点触控。

GDI / GDI +

Pixel-oriented;依赖于显示器分辨率,转换失真,动态动画的限制和图形卡的使用。

编辑和项目执行

多用户、远程编辑和多个项目的执行。

单用户和单项目。远程访问需要外部工具。

远程访问运行时

智能客户端技术,集中安装在服务器或Web或云中,无需安装其他组件。标准化、安全的协议,如WCF。

客户端和Web客户端需要本地安装。专用协议需要频繁开放防火墙端口。自定义协议和对通常不安全的Active-X组件的需求。

版本控制和配置的可追溯性

客户-服务器架构,SQL,以项目版本和设置的本地可跟踪性为中心的数据库。

配置拆分为多个文件,没有内置连接。手动或通过外部程序执行的可追溯性。

运行时的功能模块和脚本

本机多进程和线程;每个模块和脚本执行线程。net原生保护不受其他线程影响。为有效使用多核处理器而设计的体系结构。运行环境的异常控制和内存保护。

单进程多线程或手动编程逻辑顺序统一执行环境。模块的隔离、脚本的并行执行和保护异常(如果存在的话)都是通过具有较高复杂性的专用编程来完成的。

脚本

编译(Vb.Net/C #)

逻辑的实现比解释脚本或所有者快10到40倍。在配置期间执行更多检查,是多线程的,并处理异常,确保隔离错误并提高性能。完全访问。net框架中的所有函数。

解释性(VBA/VBScript或逻辑和数学专有)。

只有在系统运行时才可能检测到许多错误。大多数是单线程的,具有较慢的函数,可能会妥协系统错误,有时还会限制对Windows函数的访问。

本机平台

64位本地;支持32位。更好地使用硬件;更多的兼容性。系统最初设计为64位,以使用操作系统中已经存在的组件。

32位本地;支持64位。无论何时何地,只要可能,对64位的支持就需要安装许多非操作系统本地的附加组件。

通信驱动程序

并行执行,能够对每个节点进行多个连接。自动统计、诊断、冗余、地址字段的语法验证和异常恢复是标准的。

没有并行请求或多线程。统计,诊断,冗余部分可用。通常,驱动程序异常会停止驱动程序的执行,有时甚至是整个系统。