CN101788791B - 用于工业自动化的应用构建器 - Google Patents
用于工业自动化的应用构建器 Download PDFInfo
- Publication number
- CN101788791B CN101788791B CN200910177656.XA CN200910177656A CN101788791B CN 101788791 B CN101788791 B CN 101788791B CN 200910177656 A CN200910177656 A CN 200910177656A CN 101788791 B CN101788791 B CN 101788791B
- Authority
- CN
- China
- Prior art keywords
- abstract model
- industrial automation
- help
- abstract
- industrial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及用于工业自动化的应用构建器。提供了一种控制系统开发平台。该平台包括被适配成支持控制系统应用程序的开发的外壳组件。抽象模型与外壳组件相关联以帮助控制系统应用程序的开发。
Description
技术领域
要求保护的主题内容一般涉及工业控制系统,并且更具体地涉及一种采用语言无关模型来帮助自动化软件设计的开发工具。
背景技术
工业控制器是用来控制工业过程、制造设备以及其他工厂自动化的专用计算机,例如,数据收集或网络化系统。控制器通常与其他计算机系统协同工作,以形成发生大部分现代化和自动化的制造操作的环境。这些操作涉及诸如钢材生产的材料前端加工到诸如汽车生产的更复杂的制造过程,该制造过程涉及先前加工过的材料的装配。通常,诸如在汽车的情况下,可以利用辅助工业控制过程的高科技机器人来制造复杂的装配件。
在包括诸如食物、饮料和药物的日用品的基本生产的很多自动化过程中,复杂的状态逻辑通常由系统工程师来设计和编程或者在某些情况下由自动化设备制造商提供。该逻辑通常用普通的PLC梯形逻辑或由顺序功能图(SFC)支持的更高级的语言进行编程。可以对诸如材料移动和运送操作、包装操作的多个任务采用顺序逻辑,或者采用顺序逻辑作为装配过程本身的一部分,其中装配的各个阶段一个接一个地顺序进行,直至发生最后的装配。可以理解,需要大量的计划和设计以实现这样的自动化生产过程,其可能涉及几百台机器、计算机以及用于帮助各个序列的正确操作的程序逻辑。
各种软件平台可以从实现诸如梯形逻辑和SFC的语言的很多不同控制制造商获得。很多控制软件开发平台作为独立的实体存在,然而在该平台可以由开发团体利用之前,其需要很多人年的开发和测试。由于这种平台的特性,它们通常以不灵活的方式进行设计,其中不支持较新版本的软件范例和模型,除非设计新平台来支持该版本。
发明内容
下面的概述呈现了简化的概览,以提供对这里描述的某些方面的基本理解。该概述既不是详尽的概览,也不旨在标识关键元件或者界定这里描述的方面的范围。该概述的唯一目的是以简化形式呈现某些特征以作为后面呈现的更详细描述的前言。
一种灵活且可扩展的架构揭示了自动化协作框架的底层控制模型和特征,还提供了一种熟悉的用于创建新的特征和功能的软件设计环境。设计外壳被适配成支持用于控制和工业自动化平台的快速软件开发。这种外壳可以根据可用的Windows技术进行适配,但是可以根据诸如UNIX、Java、Linux等类似地构造基本上任何类型的外壳。该外壳提供根据控制系统设计者的需要而裁剪的接口开发平台。
开发平台采用抽象编程模型,其使开发者能够在抽象设置中设计控制解决方案,同时有助于代码在基本上任何类型的最终硬件平台上的部署和执行。在一方面,例如,从公共基本模型解决方案或标准如IEC 61131和61499派生抽象自动化模型(Abstract Automation Model,AAM)。虽然任何编程标准可以用于底层模型,但是61131和61499支持现今世界中的大部分已知的自动化语言。AAM定义了这样的控制结构,其表示具有配置、资源、程序等属性的抽象数据对象。作为更大的框架或开发环境的一部分,具体自动化模型(Concrete Automation Model,CAM)与一般性数据对象相关联地且根据不同开发环境的指定工程格式来提供数据接口。例如,各种版本的开发程序可以具有关联的CAM,该CAM将各个版本链接或映射到AAM的底层抽象。
为了实现前述和相关目标,下面的描述和附图详细地阐述某些说明性方面。这些方面表示可以仅仅采用这里描述的基本原理的各种方式中的一些方式。其他优点和新颖特征可以从下面的结合附图考虑的详细描述中变得清楚。
附图说明
图1是示出采用抽象自动化模型以帮助控制环境中的软件开发的外壳接口的示意性框图;
图2示出了示例平台架构;
图3是示出示例系统核心和权限组件的图;
图4是示出用户角色管理器的组件的图;
图5示出了用于工业自动化开发工具的外壳的组件;
图6示出了用于自动化开发平台的应用构建器接口的示例组件;
图7示出了用于自动化开发平台的文档生成器的示例对话接口;
图8示出了用于自动化开发平台的示例语言模板和跟踪显示;
图9示出了用于自动化开发平台的示例比较器接口;
图10示出了用于自动化开发平台的示例调用树和交叉引用组件;
图11示出了用于自动化开发平台的示例字典视图;
图12示出了用于自动化开发平台的侦探列表;
图13示出了用于自动化开发平台的分级结构视图和绑定组件;
图14示出了这样的流程图,其示出用于利用具有抽象模型的外壳应用的过程。
具体实施方式
提供了一种软件开发平台,其采用抽象模型,以支持基本上任何类型的控制语言,但是不将设计者约束于任何特定的语言格式或接口。在一方面,提供了一种控制系统开发平台。该平台包括被适配成支持控制系统应用程序(application)的开发的外壳组件。抽象模型与外壳组件相关联,以帮助控制系统应用程序的开发。
注意,诸如“组件”、“模块”、“外壳”、“模型”等术语在本申请中使用时,旨在引用被应用于用于工业控制的自动化系统的与计算机相关的实体,其是硬件、硬件和软件的结合、软件、或者执行中的软件。例如,组件可以是但不限于运行在处理器上的进程、处理器、对象、可执行体、执行线程、程序和计算机。作为示例,运行在服务器上的应用程序以及服务器都可以是组件。一个或多个组件可以驻留在执行的进程或线程中,并且组件可以被本地化在一个计算机上或者分布在两个或更多个计算机、工业控制器或与其通信的模块之间。
首先参考图1,提供了外壳接口100,其采用抽象自动化模型以帮助控制环境中的软件开发。如图所示,外壳100针对帮助控制系统解决方案的快速开发、调试和部署的各种特征而被适配。这些特征包括用于允许软件的修订控制的版本控制组件110。与语言字典118一起,在114提供了人机接口(Human machine interface,HMI)支持。提供了各种编辑器122-130,并且在下面对其进行更详细的描述。包括了设备目录(devicecontent)组件134以及I/O配置能力138。除了工程比较器146和修改历史组件150之外,在142还提供了依赖关系树支持。软件调试工具包括设备视图154、错误输出158、交叉引用162、跟踪工具166、以及脚本模块170、侦探列表174和结果搜索工具178。在182和184提供了工程控制,包括导入和导出能力184。在186-196提供了库和属性配置。下面将更详细地描述这里简短提及到的所有特征110-196。
一般而言,接口100提供了灵活且可扩展的架构,其揭示了自动化协作框架的底层控制模型和特征,还提供了熟悉的用于创建新的特征和功能的软件设计环境。设计外壳100被适配成支持用于控制和工业自动化平台的快速软件开发。这种外壳100可以根据可用的Windows技术进行适配,但是可以根据诸如UNIX、Java、Linux等类似地构造基本上任何类型的外壳。外壳100提供了根据控制系统设计者的需要而裁剪的接口开发平台。
开发平台和外壳100采用抽象编程模型,其使开发者能够在抽象设置中设计控制解决方案,同时有助于代码在基本上任何类型的最终硬件平台上的部署和执行。在一方面,例如,从公共基本模型解决方案或标准如IEC 61131和61499派生抽象自动化模型(AAM)。虽然任何编程标准可以用于底层模型,但是61131和61499支持现今世界中大多数已知的自动化语言。AAM定义了这样的控制结构,其表示具有配置、资源、程序等属性的抽象数据对象。作为更大的框架或开发环境的一部分,具体自动化模型(CAM)与一般性数据对象相关联地且根据不同开发环境的指定工程格式来提供数据接口。例如,各种版本的开发程序可以具有关联的CAM,该CAM将各个版本链接或映射到AAM的底层抽象。
注意,与接口100相关联的组件可以包括对诸如以下能够在网络上交互的各种计算机或网络组件的支持:服务器、客户端、控制器、工业控制器、可编程逻辑控制器(PLC)、批处理控制器或服务器、分布式控制系统(DCS)、通信模块、移动计算机、无线组件、控制组件等等。类似地,这里所使用的术语控制器或PLC可以包括可以在多个组件、系统或网络上共享的功能性。例如,一个或多个控制器可以在网络上与各种网络设备进行通信和协作。这可以包括基本上任何类型的控制、通信模块、计算机、I/O设备、传感器、人机接口(HMI),其经由包括控制、自动化或公用网络的网络进行通信。控制器还可以与各种其他设备进行通信和对其进行控制,例如,包括模拟、数字、程序/智能I/O模块的输入/输出模块、其他可编程控制器、通信模块、传感器、输出设备等等。
网络可以包括诸如互联网、内联网的公用网络以及诸如包括设备网和控制网的控制和信息协议(CIP)网络的自动化网络。其他网络包括以太网、DH/DH+、远程I/O、Fieldbus、Modbus、Profibus、无线网络、串行协议等等。另外,网络设备可以包括各种可能性(硬件或软件组件)。它们包括诸如以下组件:具有虚拟局域网(VLAN)能力的交换机、LAN、WAN、代理、网关、路由器、防火墙、虚拟专用网络(VPN)设备、服务器、客户端、计算器、配置工具、监控工具或其他设备。
现在返回到图2,示出了示例平台架构200。架构200还被称为应用构建器,其包括核心210和公共命名空间220。核心210对与系统相关的可复用组件进行分组,例如,下面描述的日志器、权限管理器和外壳。公共命名空间220组合可复用的应用构建器数据、服务和视图。图2的下部还标识了支持多个工程格式230和附加件240。应用构建器200还提供了一般化编辑器250(例如,为控制而适配的可视工作室(Visual Studio,VS)),以更容易地执行工程格式文件和公共视图的互连。
核心权限命名空间(下面描述)定义了主要的主动安全机制。安全性减轻了工程数据劫持和破坏的可能性。在一方面,提供了组件保护。这包括确保使用安全角色来保护业务组件。例如,当角色(例如,管理者、技术人员、工程师)未被授权时,方法调用失败。每个角色与许可特征相关联。该特征命名策略应当允许对每个组件方法进行细粒度的角色分配。
在运行时受保护的方法应当使用基于.Net角色的声明属性或使用算法前导码(algorithm preamble)来查询其角色准许。算法前导码具有对诸如解析源代码文件或生成目标执行映象的密集处理禁用安全验证的优点。此测试的失败被记入日志并且导致安全异常。
在另一安全方面,提供了角色映射。这包括采用基于业务规则、进程上下文或用户角色的动态角色映射。角色映射受下面更详细描述的特征矩阵的控制。特征矩阵将角色映射到准许集合上。该集合委托(delegate)其子准许中的每个并且保持最受限的访问。还可以提供丰富的客户端认证,包括采用.Net主线程原理而不是通过对象发送用户名/密码凭证。线程原理将角色验证连接到特征矩阵上。通过特征矩阵映射的上下文准许对象由具体模型的每个实例托管(host)。
还可以提供安全审计。这包括部署安全日志记录和审计机制(审计拦截器),以记录和提供对失败的直接访问企图、策略违例、未定义的用户角色成员关系以及异常进行标识和审计的手段。在一方面,安全审计是可选的。平常的日志记录可以被配置成将日志条目重定向到控制台上,以引起特殊的警报。数据验证包括在用于处理数据格式和业务数据的业务组件中采用良好定义的验证过程。这确保数据完整性并且防止恶意的数据注入。对输入参数和所分配的属性值执行数据验证。算法前导码块执行断言测试。各个测试的失败被记入日志并且导致无效的参数异常。
在另一安全方面,可以限制部署组件。例如,不将未使用的组件存储在生产环境中。例如,可以将每个授权的组件存储在特定汇编DLL中。生产队伍还可以避免构建具有未使用的组件的版本。安全性还包括保护编辑者的知识产权。例如,不提供可以容易地替换或反汇编的DLL或EXE。典型地,所有存储的DLL或EXE被签名,以避免黑客可以进行容易替换而从正常行为中进行劫持。反汇编可以通过代码混淆而更困难。即使在开发过程中也可以系统地应用签名。混淆只能应用于发布版本。
现在参考图3,示出了示例系统核心组件300和系统权限组件310。在312,Log4net是Apache log4j框架到.Net运行时的端口。核心组件300还包括外壳和权限组件316。日志记录框架312遵循记录日志(或者相反,不记录日志)的速度是重要的考虑因素。它被设计成日志语句可以保留在发行的代码中而不招致高的性能成本。日志过滤器可以被配置成根据诸如以下准则来避免日志记录事件:映射诊断上下文(Mapped DiagnosticContext,MDC)、嵌套诊断上下文(Nested Diagnostic Context,NDC)、错误级别匹配等等。可以创建新的过滤器类型以允许更多任意的过滤。
框架312将日志事件写到多个输出,例如,数据库、使用例如.Net远程的远程接收器、web服务、具有或不具有多路复用的平面文本文件等等。可以创建新的目标类型以将事件重定向到某些其他输出中。
框架312支持分等级的日志记录。这适合于基于组件的开发,其中每个组件具有其自己的日志器。当单独测试时,可以根据开发者的要求来设置这些日志器的属性。当与其他组件组合时,日志器继承由这些组件的集成者确定的属性。可以选择性地提高一个组件的日志记录优先级,而不影响其他组件。这可以通过配置文件来实现。框架312可以使用XML配置文件进行配置。配置信息可以如.Net配置规范所描述的那样嵌入在其他XML配置文件内。框架312还可以通过编程进行配置。
权限命名空间316基于许可证管理器320、用户角色管理器320和特征矩阵340。特征矩阵340组合有关特征的约束并且将所得到的准许提供给其他产品或模块。
许可证管理器320包括许可证对象,其遵循.Net组件模型的许可规范。它是命令特征的准许和约束的序列化集合。命令特征是在数据对象上允许的最简单的动作单位。系统可以对在特征下分组的数千特征进行计数。所示分级结构为基本编辑操作提供特征包和特征关系的示例,例如下面的示例:
编辑_资源(Edit_Resource)
编辑_POU(Edit_POU)
特征可以可选地与诸如计数器范围的约束相关。约束在下面的可能性之中指定设置特征的可用性状态的条件:完全、只读或拒绝。在紧接于该相关特征的许可证对象中对约束进行序列化。
许可证还定义时间和委托类型。例如,当发生某种许可变化例如被拔掉的USB设备或网线时,可以通知其他组件。许可证提供者遵循组件模型的权限规范。它提供许可证序列化服务。许可证对象本身可以被序列化到存储于主机文件系统或经签名的USB密钥中的文件。它还可以由许可证服务器提供。在这种情况下,许可证提供者连接到可以从其检索许可证的许可证服务器。许可证提供者有方法从共同网站(corporate web site)激活许可证密钥。在这种情况下,提供者发送许可证密钥并且检索许可证对象。所检索的许可证被序列化到提供者的存储位置。提供者使用遵循.Net配置规范的设置机制来检索许可证存储位置数据。许可证编辑器是.Net用户控件。它提供用户接口以显示可用的特征准许和约束。该编辑器还提供许可证密钥激活UI和许可证对象编辑。如图所示,权限组件310包括服务组件350、抽象模式组件360和公共视图组件370。
图4示出了支持用户角色管理器400的示例组件。400用于工业控制系统。用户角色管理器400采用抽象数据模型410以用于用户角色和认证以及角色与特征的映射,其中用户角色存储与工程格式相关。抽象模型410的接口定义通常归属于用户角色管理的属性和方法。某些接口可以定义事件和委托类型以提供变化通知。服务420是用户角色管理服务。它们定义基于抽象模型410的用户角色数据处理。大部分服务420将组与认证机制相关联。服务还工作以将角色与由许可证管理器提供的特征以及来自特征矩阵的自定义特征相关联。用户角色编辑器可以是.Net用户控件。它提供用户接口以显示可用的用户组,设置组认证,并且关联从许可证提供者460检索的特征与特征矩阵440。
特征矩阵440是从不同源动态地更新特征准许的决策表。该矩阵用于应用程序的至少三个区域:
1.在菜单和工具栏的命令更新;
2.在公开方法调用和属性“setters”;
3.在表单验证方法内;
特征矩阵440将所有特征映射到访问准许对象上。特征的结构扩展在.Net安全规范中定义的准许对象。该扩展添加下面三个命令状态标志的组合:
1.全部(对特征的读写访问权)
2.只读(对特征的读访问权)
3.拒绝(没有对特征的访问权)
特征矩阵为装载的模块所声明的每个特征创建准许集合。在最初的特征声明中,它从许可证提供者460检索特征状态。该集合聚集许可证、用户角色或元素状态准许对象。任何模块、工程格式、或附加件可以将附加的准许对象注册到该集合。任何未知特征名称被认为是自定义,并且矩阵440假定它们是启用的。在这种情况下,许可验证受该扩展的控制。通过标准命令更新处理器和经许可的方法来使用准许集合。经许可的方法调用准许的“Demand”方法,其在命令状态不是“启用”时,引发安全异常。命令更新处理器分配准许集合的命令状态。
图5示出了用于工业自动化开发工具的外壳500的组件。外壳500是用于用户接口服务和集成开发环境(IDE)510的主机(host)。服务提供用于列出所安装模块、显示关于框530或启动页540的方法。它还提供对权限管理服务的访问。关于组件530提供用于激活显示产品名称和版本的对话框的方法。关于对话框530提供其从外壳服务520检索模块而来的详细产品和模块。
调试器引擎550将调试命令委托到下面描述的现场总线(Field Bus)协议实例,其将事件通知委托回到调试器引擎550。调试器引擎550还管理多个资源连接。引擎550提供用于使局部项、观察和调用堆栈工具窗口工作的组件接口。局部项和观察工具窗口间接地预订Field Bus协议变量组并且将用户变化反映到协议的预订接口上。调用堆栈工具窗口还间接地从协议连接查询堆栈帧。还由引擎550翻译断点和步进命令和事件。
启动导航窗口540以“网页”风格的窗格填充客户设计区域,该窗格枚举关于最近打开的解决方案、工程、文档的快捷方式,用于创建新设计的其他快捷方式,以及其他指定“指引”帮助主题。它是用于向新用户介绍、使应用构建器能够更易于使用以及提供通告相关产品和服务的营销平台的适合工具。
启动编辑器窗格560是在启动时打开的文档。用户可以使用选项页来禁用它。该编辑器装载通过配置文件指示的页视图。
在570,考虑工程类型。包a通过允许对由IDE框架使用的相同工具和组件的访问而直接在IDE 510中提供深入的集成。没有提供对创建新工程类型进行处理的管理包框架(MPF)的部分作为套件(assembly)的一部分。提供了工程类型包套件所包括的被称为“ProjectBase”的源代码。工程类型包570在工程文件扩展名和被管理类GUID之间进行关联。IDE在工程文件打开时将实例化该类。该包类还是用于注册公共工具窗口和命令的适当位置。最少,该包应当注册和处理关于框查询命令。
实现工程类型意味着根据期望的行为来管理工程文件系统分级结构树。以工程类型570定义的外壳服务特殊化(specialization)提供用于集成包的服务方法。工程包实例化该特殊化,以从未装载的包和附加件检索模块信息。不同的工程类型表示每个所支持的编程语言。除了工程类型之外,IDE定义解决方案,其是很多工程的聚集。.Net的跨语言能力是通过解决方案而不是通过工程来提供的。
注意,IDE可用于下面两种模式:
集成模式-集成应用与其他语言和工具共享公共的平台;以及
孤立模式-使集成应用在带烙印(branded)的IDE容器中可用,其中该IDE容器是没有公共语言和工具的服务中的一个。
如图所示,还可以提供外壳控制器580和现场总线组件590。现场总线组件590提供用于管理关于目标的对话、下载、上载以及在线变化的公共API。该API应当可扩展成支持任何自动化协议。现场总线命名空间定义与目标进行通信的抽象接口。这意味着用于管理对话框的外表接口和一组子服务接口。抽象服务以.Net异常模式统一通信错误消息。在协议违例异常时,协议的消息代码被转换为现场总线的对应物,被打包和引发回到调用者(不是目标信道)。
抽象服务结构具有某些与OPC DA和EA服务器的相似性。更具体地说,它提供用于预订一组变量并且设置或锁定/解锁变量值的方法。任何设置或锁定/解锁的变量值被委托到协议的特定语言和信道。从协议信道发生的值变化通知在事件参数中打包,并通过事件通知回到组的预订者。抽象服务结构还具有某些与调试引擎的相似性。更具体地说,它提供用于执行逐步调试、管理断点通知和堆栈帧的方法。从协议信道发生的断点通知在事件参数中打包,并且通过事件通知回到引擎的预订者。堆栈帧构造占据事件打包的一部分。如果目标不支持该特征,则可以设置空的堆栈帧对象。现场总线抽象服务最后提供用于支持下载、上载和在线变化的方法。这些操作是异步的并且将进展状态提供到客户端应用程序。
图6示出了应用构建器接口600的示例组件。应用构建器600以多个通用用户接口来支持现有的功能性。数据和功能性被提出采用几乎相同的格式而与工程格式无关。用户交互并获得相同的用于任何工程格式的菜单、视图和打印报告。应用构建器架构600允许集成大量的工程格式。伴侣还可以根据明确的需要而加入值或减少功能性。可以更替或撤销IDE容器以在另一系统中集成应用构建器。
应用构建器600提供用于管理自动化工程的公共数据模型、UI组件以及处理服务集合。该命名空间定义可复用类而与特定IDE框架没有任何关系。图6提供了应用构建器公共命名空间的架构:
在该图中,表示了应用构建器提供3层架构:
1.抽象模型610捕获自动化领域的常用数据结构。它对程序接口进行分组,其中每一个反映在自动化工程的数据中可以揭示的可能方面。
2.服务器620是使用或改变由抽象模型610揭示的数据的处理单元。
3.视图630是用于向用户呈现数据的用户接口控件。它们使用数据抽象接口或间接通过服务620来使用或改变由抽象模型610揭示的数据。
模型610是一组抽象接口。每个接口定义以相关的基本编辑方法来定义工程元素的方面。该抽象层应当叠加在具体工程格式数据模型上并且将变化反映在特定的工程结构上。具体模型的工程元素实现.Net接口IServiceProvider。这提供遵循.NET服务规范的上下文服务提供者。抽象模型的接口定义通常归属于IEC 61131或IEC 61499元素的属性和方法。某些接口可以定义用于提供变化通知的事件和委托类型。
服务620是数据处理组件。应当理解,不是应用构建器最终可以提供的所有可能服务都被示出。然而,可以枚举某些示例服务。每个服务具有抽象接口640。具体模型实现并且公布其服务,以使它们在适当的上下文中工作。
文档生成器650根据用户偏好和章节选择来产生格式化的文档。文档格式化是基于模板的。文档可以例如以诸如PDF的普通格式来生成,或者可以直接被发送到打印机。生成器使用用于图和图表的视图打印方法。所生成的画面被切片以适合所生成文档的页布局。该服务具有用于指定文档生成参数的对话框。图7示出了示例对话框700。
返回参考图6,导入/导出组件654是抽象控制器外表,用于如.Net服务规范所定义的那样标准化调用并且使其可用于服务提供者。导入包括使用抽象接口解析档案文件以填充模型。导出包括使用抽象接口从模型生成档案文件。导入控制器与解析器协同工作。它进行诸如解压缩的预备操作,并且启动解析器670以填充模型。导出控制器与生成器674协同工作。它启动生成器并且执行诸如压缩的后操作。
解析器控制器670执行源文件的分析并且将结果反映在具体工程格式模型中。工程格式定义补充的抽象模型以完善通用抽象模型。解析器670使用这些抽象接口来间接地填充具体工程格式模型。
生成器控制器674根据工程格式写入格式化的文件。该生成器遍历通过抽象模型和工程格式的补充抽象模型使得可用的数据。该服务可以用来提供工程格式之间的互操作性。生成器应当生成不带其工程格式补充抽象模型的文件。在这种情况下,生成器674使用缺省值来维持与所生成文件的目标的兼容性。
全局查找/替换控制器680定义抽象外表接口。缺省控制器执行抽象模型中的树遍历。它委托每个被访问的上下文查找/替换控制器。提供通用元素查找/替换控制器。工程格式还可以扩展或者甚至替换它。每个上下文服务提供者存储该控制器的实例。交叉引用控制器684在抽象模型640内执行树遍历。其保留从抽象语法树(Abstract Syntax Tree,AST)派生的类型用法、功能块实例、以及功能块调用和功能调用。
除了图命名空间之外,视图630是.Net用户控件,但是可以提供其他类型的控件。它们可以委托服务或者使用抽象对象接口来修改或查询数据。部署产生指定工程元素之间的连接的文件。它可以采取具有各种工程元素和通信设备的网络图的外观。
图8示出示例语言模板和跟踪显示。语言模板窗口800是由语言模板元素填充的导航栏。自动化工程师使用该服务,以通过将所提供的图片拖放到打开文档的窗口的简单操作对控制应用程序进行配置或编程。语言模板组件(未示出)从图命名空间检索语言模板。它从图命名空间请求语言模板并且配置导航栏。
跟踪工具和显示810用于将信号显示在曲线图中。其按时接收信号变化通知,并且将该变化反映在图表上。它应当允许实时跟踪并且可以对历史数据进行序列化。
图9示出了示例比较器900。比较器900允许至少2个相同类型的工程元素的图形或文本比较。该组件900可以从命令行或从应用构建器启动。块选择器是功能块和实例过滤视图。它用于插入功能块功能块调用。变量选择器是变量过滤视图。其用于将变量使用插入代码模块内。
图10示出了用于自动化开发平台的调用树1000以及交叉引用组件1010。元素和调用树组件1000创建和浏览依赖关系树。它通过示出POU之间的调用而给予理解应用程序顺序的可能性。交叉引用组件1010列出变量使用和工程的POU以进行导航。选择项目指引用户观察引用变量的位置。
图11示出了用于自动化开发平台的示例字典视图1100。字典视图1100是网格风格的浏览器变量、参数、派生数据类型和已定义的词。该网格使得能够对符号进行查看、排序和分组。例如,视图1100还允许管理变量的拖放操作,以便更容易地进行变量、联系(contact)或卷(coil)创建。缺省地,视图1100可以在相同区域中作为文档被打开,但是用户可以使其为停靠(docked)窗口或浮动窗口。所显示的列可以依赖于所浏览对象的类型而改变。以下面的示例枚举可用列:
4.名称-变量名称
5.类型-变量类型
6.初始值-变量初始值
7.组-变量所属组
8.属性-变量属性
9.方向-变量的方向(输入、输出、输入-输出、内部)
10.维-数组变量的维
11.最大-类型STRING的最大字符串长度
12.别名-变量的别名
13.范围-所定义的变量范围
14.连线-变量连接到的信道
15.保留-将变量保存到备份存储器上
16.用户地址-用于Modbus的网络地址
17.注释-最多255字符的变量注释
18.用户-可以由用户填充的作为STRING的用户字段
19.强制-锁定或未锁定
图12示出了用于自动化开发平台的侦探列表1200。当应用构建器在线时,采用侦探列表来设置和显示变量或参数值。侦探列表1200可以由用户创建并且应当显示在最后使用配置(last usage disposition)中。该视图由于区别逻辑和物理值而不同于局部项和观察列表。而且,侦探列表1200显示变量和实例的简短描述。用户可以拖放变量或参数以从字典或编辑器进行侦探。还可以拷贝和粘贴以登记被侦探的变量或参数。用户还可以直接在列表上键入变量或参数名,以执行相同的操作。
图13示出了用于自动化开发平台的分级结构视图1300和绑定组件1310。工程分级结构将工程的内容反映在树视图上。它提供诸如创建、删除或重命名元素、显示属性等等普通编辑命令。元素之间的分级关系取决于主机工程结构。分级结构树反映与由工程提供的结构相同的结构。库分级结构将所有检测到的库反映到树视图上。在由配置文件提供的目录中检测库。它提供与工程分级结构相同的编辑命令以及用于广播或搜索所配置目录之外的库的补充命令。元素之间的分级关系取决于主机工程结构。分级结构树反映与由工程提供的结构相同的结构。应用构建器在同一树中管理所有库,并且将库名称放置在树根处。
I/O配置组件(未示出)浏览树结构中的硬件设备并且提供直接I/O变量地址。与上述字典视图合作,I/O配置组件允许将直接I/O变量与符号变量映射。该映射应当从I/O配置和字典两者均可见。该组件是工程模型和特征矩阵服务的客户端。在某些情形下,用户可以从字典执行变量的拖放,并且在这种情况下,该组件也变为字典组件的客户端。
在1310,示出了绑定组件。该组件设置所有变量以在资源之间进行交换。该组件装载绑定生产者和消费者组或变量。它在帮助用户组对的视图中枚举它们,以便将资源的生产者连接到另一资源的消费者。
可以提供图编辑器(未示出)以用于自动化部署和编程。它提供编辑表面,以显示来自语言模板的形状,并且应用形状的语义规则和在线行为。构成图的形状按语言或图类型进行分组。在编辑器表面,画图区域混合相同组的形状,并且可以链接这些区域以交换数据。语言模板设计者(未示出)允许创建要呈现在通用多层编辑器中的新的图形状。形状被保存在被称为语言模板的文件中,并且通过图命名空间使得可用。
图14是示出以用于工业控制软件开发的抽象模型来适配外壳的方法1400的流程图。虽然为了简化说明的目的而将方法作为一系列动作进行示出和描述,但是应当理解和明白,由于与这里所示和所述的相比,某些动作可以以不同次序发生或与其他动作同时发生,因此方法不受动作次序的限制。例如,本领域的技术人员应当理解和明白,可以可替选地将方法表示为诸如状态图中的一系列相互关联的状态或事件。而且,对于实现这里所述的方法,不是所有示出的行为都是必需的。
前进到1410,定义抽象模型。如前所述,可以在抽象设置中提供抽象编程模型,同时有助于代码在基本上任何类型的最终硬件平台上的部署和执行。在一方面,从公共基本模型解决方案派生抽象自动化模型(AAM)。虽然任何编程标准可以用于底层模型,但是61131和61499支持现今世界中的大部分已知自动化语言。AAM定义控制接口,其表示具有配置、资源、程序等等属性的抽象数据对象。作为更大的框架或开发环境的一部分,另一抽象模型是具体自动化模型(CAM),其与一般性数据对象相关联地并且根据不同开发环境的指定工程格式提供数据接口。在1420,修改设计外壳以支持用于控制和工业自动化平台的软件开发。该外壳可以从基本上任何类型的外壳进行适配,并且可以根据诸如UNIX、Java、Linux等的技术来构造。该外壳提供根据控制系统设计者的需要而裁剪的接口开发平台。
在1430,针对帮助控制系统解决方案的快速开发、调试和部署的各种控制软件功能对外壳进行适配。如前所述,这些特征包括用于允许软件的修订控制的版本控制组件以及人机接口(HMI)支持。其他特征包括语言字典和各种编辑器。包括了设备目录组件以及I/O配置能力。除了工程比较器和修改历史组件之外,还提供了依赖关系树支持。软件调试工具包括设备视图、错误输出、交叉引用、跟踪工具以及脚本模块、侦探列表和结果搜索工具。工程控制包括导入和导出能力。还提供了库和属性配置。在1440,提供了各种用户接口来访问在1430提供的控制软件功能。
根据本发明实施例,提供了以下方案。
方案1.一种控制系统开发平台,包括:外壳组件,被适配成支持控制系统应用程序的开发;以及抽象模型,与所述外壳组件相关联,以帮助所述控制系统应用程序的开发。
方案2.如方案1所述的系统,所述抽象模型提供一组使用相关方法定义工程元素的抽象接口。
方案3.如方案2所述的系统,还包括用于将数据处理加入所述抽象模型的服务组件。
方案4.如方案3所述的系统,所述服务组件还包括用于根据用户偏好产生格式化的设计文档的文档生成器。
方案5.如方案3所述的系统,所述服务组件还包括用于填充模型或者生成档案文件的导入或导出工具。
方案6.如方案3所述的系统,所述服务组件还包括用于执行源文件分析的解析器。
方案7.如方案3所述的系统,所述服务组件还包括用于根据工程格式写入文件的生成器控制器。
方案8.如方案7所述的系统,所述生成器控制器提供工程格式之间的互操作性。
方案9.如方案3所述的系统,所述服务组件还包括用于搜索或替换工程元素的全局查找或替换组件。
方案10.如方案3所述的系统,所述服务组件还包括用于在抽象模型内执行树遍历的交叉引用组件。
方案11.如方案3所述的系统,所述服务组件还包括用于修改或查询数据的视图组件。
方案12.如方案3所述的系统,所述服务组件还包括生成工程元素之间的连接的部署组件。
方案13.如方案3所述的系统,所述服务组件还包括用于标示图形或文本之间的差别的比较器。
方案14.如方案3所述的系统,所述服务组件还包括用于浏览变量、参数、数据类型或已定义词的字典组件。
方案15.如方案14所述的系统,所述字典组件包括名称、类型、初始值、组、属性、方向、维、字符串长度、别名、范围、连线、保留变量、用户地址、注释、用户或强制条件中的至少一个。
方案16.如方案3所述的系统,所述服务组件还包括用于设置变量以在资源之间交换的绑定组件。
方案17.一种用于提供控制开发平台的方法,包括:定义外壳,以与工业控制开发平台接口;将所述外壳与描述所述工业控制平台的一般性特征的一个或多个抽象模型接口;以及采用所述抽象模型,以与特定的控制应用程序接口。
方案18.如方案17所述的方法,还包括提供输入/输出配置组件,以与所述抽象模型接口。
方案19.如方案17所述的方法,还包括生成模板编辑器,以创建自定义图形状。
方案20.一种工业控制开发平台,包括:用于生成一个或多个与控制软件设计环境有关的抽象模型的装置;用于将所述抽象模型与所述控制软件设计环境接口的装置;以及用于生成设计服务以支持所述抽象模型的装置。
如上所述的主题内容包括各种示例性的方面。然而,应当理解,不可能为了描述这些方面的目的而描述每一个想得到的组件或方法。本领域的普通技术人员可以认识到其他组合或置换是可能的。可以采用各种方法或架构来实现本发明、其变型、变化或等同方案。因此,这里描述的方面的所有这样的实现意欲包含权利要求的范围和精神。此外,对于在详细描述或权利要求中使用术语“includes(包括)”,该术语意欲是以与术语“comprising(包括)”在权利要求中用作过渡词时所解释的那样类似的方式的包括。
Claims (9)
1.一种用于提供控制开发平台以帮助工业自动化过程的操作的系统,包括:
外壳组件,配置成帮助控制系统应用程序的开发;以及
抽象模型生成装置,用于生成抽象模型,所述抽象模型与所述外壳组件相关联,其中,所述抽象模型以公共表示的方式来表示多个不同的工业自动化协议,所述工业自动化协议被用来编程至少一个工业控制器,所述工业控制器配置成控制与所述工业自动化过程相关联的至少一个装置,并且所述抽象模型配置成在不呈现所述多个工业自动化协议当中的操作差异的情况下帮助与所述多个工业自动化协议的表示的交互,其中,所述系统位置远离所述至少一个工业控制器。
2.如权利要求1所述的系统,其中,所述抽象模型进一步配置成生成至少一个抽象接口,所述抽象接口配置成定义至少一个工程元素和与所述至少一个工程元素相关的方法。
3.如权利要求2所述的系统,进一步包括:
服务组件,配置成帮助与所述抽象模型相关联的数据的处理。
4.如权利要求3所述的系统,其中,所述服务组件包括:
文档生成器,配置成根据用户偏好产生格式化的设计文档。
5.如权利要求3所述的系统,其中,所述服务组件包括:
导入或导出工具,配置成执行以下中的至少一个:填充所述抽象模型;或者生成与所述抽象模型相关联的档案文件。
6.如权利要求3所述的系统,其中,所述服务组件包括:
解析器组件,配置成分析与所述抽象模型相关联的源文件。
7.一种用于提供控制开发平台的方法,包括:
通过用于提供控制开发平台以帮助工业自动化过程的操作的系统中的外壳组件来帮助控制系统应用程序的开发;以及
通过所述系统中的抽象模型生成装置来生成抽象模型,所述抽象模型与所述外壳组件相关联,其中,所述抽象模型以公共表示的方式来表示多个不同的工业自动化协议,所述工业自动化协议被用来编程至少一个工业控制器,所述工业控制器配置成控制与所述工业自动化过程相关联的至少一个装置,并且所述抽象模型配置成在不呈现所述多个工业自动化协议当中的操作差异的情况下帮助与所述多个工业自动化协议的表示的交互,其中,所述系统位置远离所述至少一个工业控制器。
8.如权利要求7所述的方法,进一步包括:
标识输入/输出配置,以帮助所述公共表示与和所述工业自动化过程相关联的至少一个装置对接。
9.如权利要求7所述的方法,进一步包括:
生成自定义图形状,
其中,所述自定义图形状是与所述公共表示相关联的图类型或语言的函数。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/242,346 US8255875B2 (en) | 2008-09-30 | 2008-09-30 | Application builder for industrial automation |
US12/242,330 | 2008-09-30 | ||
US12/242,409 | 2008-09-30 | ||
US12/242,366 US8352905B2 (en) | 2008-09-30 | 2008-09-30 | Application builder for industrial automation |
US12/242,366 | 2008-09-30 | ||
US12/242,346 | 2008-09-30 | ||
US12/242,409 US8359573B2 (en) | 2008-09-30 | 2008-09-30 | Application builder for industrial automation |
US12/242,330 US20100082133A1 (en) | 2008-09-30 | 2008-09-30 | Application builder for industrial automation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101788791A CN101788791A (zh) | 2010-07-28 |
CN101788791B true CN101788791B (zh) | 2014-07-30 |
Family
ID=41396081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910177656.XA Active CN101788791B (zh) | 2008-09-30 | 2009-09-30 | 用于工业自动化的应用构建器 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP2177986A1 (zh) |
CN (1) | CN101788791B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034930B (zh) * | 2012-12-13 | 2016-01-20 | 中国航空无线电电子研究所 | 自动化软件生存周期模型部署系统 |
US10176606B2 (en) * | 2015-08-28 | 2019-01-08 | Honeywell International Inc. | Method and apparatus for converting diagrams into application engineering elements |
US9921563B2 (en) * | 2015-10-02 | 2018-03-20 | Rockwell Automation Technologies, Inc. | System for updating a control program actively controlling an industrial process |
FR3064074B1 (fr) * | 2017-03-15 | 2019-05-03 | Sigfox | Procede et systeme de geolocalisation d’un terminal d’un systeme de communication sans fil |
WO2018175944A1 (en) * | 2017-03-24 | 2018-09-27 | Galen Data, Inc. | Systems and methods to automate transfer, storage, and analysis of medical device data |
US11244233B2 (en) * | 2018-08-29 | 2022-02-08 | Accenture Global Solutions Limited | Intelligent adaptor service in unified automation platforms for robotic process automation |
US11048483B2 (en) | 2019-09-24 | 2021-06-29 | Rockwell Automation Technologies, Inc. | Industrial programming development with an extensible integrated development environment (IDE) platform |
US10942710B1 (en) | 2019-09-24 | 2021-03-09 | Rockwell Automation Technologies, Inc. | Industrial automation domain-specific language programming paradigm |
US11733687B2 (en) | 2019-09-26 | 2023-08-22 | Rockwell Automation Technologies, Inc. | Collaboration tools |
US11163536B2 (en) | 2019-09-26 | 2021-11-02 | Rockwell Automation Technologies, Inc. | Maintenance and commissioning |
US11080176B2 (en) | 2019-09-26 | 2021-08-03 | Rockwell Automation Technologies, Inc. | Testing framework for automation objects |
US11392112B2 (en) | 2019-09-26 | 2022-07-19 | Rockwell Automation Technologies, Inc. | Virtual design environment |
US11042362B2 (en) | 2019-09-26 | 2021-06-22 | Rockwell Automation Technologies, Inc. | Industrial programming development with a trained analytic model |
US11308447B2 (en) | 2020-04-02 | 2022-04-19 | Rockwell Automation Technologies, Inc. | Cloud-based collaborative industrial automation design environment |
CN111858327B (zh) * | 2020-07-13 | 2023-09-01 | 北京机电工程研究所 | 一种面向软件自动化测试的数据管理方法 |
US11314493B1 (en) | 2021-02-19 | 2022-04-26 | Rockwell Automation Technologies, Inc. | Industrial automation smart object inheritance |
US11586186B2 (en) | 2021-03-17 | 2023-02-21 | Rockwell Automation Technologies, Inc. | System model smart object configuration |
CN113190239B (zh) * | 2021-05-20 | 2024-05-24 | 洛阳轴承研究所有限公司 | 一种工业应用快速部署的方法 |
US11835941B2 (en) | 2021-08-10 | 2023-12-05 | Rockwell Automation Technologies, Inc. | Industrial automation smart object parent/child data collection propagation |
US11899432B2 (en) | 2021-08-19 | 2024-02-13 | Rockwell Automation Technologies, Inc. | Industrial automation project library cross sharing |
CN114167831A (zh) * | 2021-10-21 | 2022-03-11 | 浙江大立科技股份有限公司 | 一种综合控制系统的测试系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731351A (zh) * | 2005-08-26 | 2006-02-08 | 南京邮电大学 | 一种用于网格计算的模型驱动方法 |
CN1904884A (zh) * | 2005-07-29 | 2007-01-31 | 株式会社理光 | 用于异构媒体的图形化查询构建器及其方法 |
US7269464B2 (en) * | 2004-04-13 | 2007-09-11 | Siemens Energy & Automation, Inc. | System, method and computer program product for providing an interface for instantiating additional programmable logic controller functionality |
CN101072409A (zh) * | 2006-05-10 | 2007-11-14 | 三星电子株式会社 | 用于智能用户界面的系统和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7440809B2 (en) * | 2004-07-14 | 2008-10-21 | York International Corporation | HTML driven embedded controller |
US7676279B2 (en) * | 2006-09-29 | 2010-03-09 | Rockwell Automation Technologies, Inc. | Services for industrial control systems |
-
2009
- 2009-09-30 CN CN200910177656.XA patent/CN101788791B/zh active Active
- 2009-09-30 EP EP09171783A patent/EP2177986A1/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269464B2 (en) * | 2004-04-13 | 2007-09-11 | Siemens Energy & Automation, Inc. | System, method and computer program product for providing an interface for instantiating additional programmable logic controller functionality |
CN1904884A (zh) * | 2005-07-29 | 2007-01-31 | 株式会社理光 | 用于异构媒体的图形化查询构建器及其方法 |
CN1731351A (zh) * | 2005-08-26 | 2006-02-08 | 南京邮电大学 | 一种用于网格计算的模型驱动方法 |
CN101072409A (zh) * | 2006-05-10 | 2007-11-14 | 三星电子株式会社 | 用于智能用户界面的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101788791A (zh) | 2010-07-28 |
EP2177986A1 (en) | 2010-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101788791B (zh) | 用于工业自动化的应用构建器 | |
US12001818B2 (en) | Extensible IDE platform with open APIs | |
US11681502B2 (en) | Industrial automation domain-specific language programming paradigm | |
US9858044B2 (en) | Application for builder for industrial automation | |
US20230221929A1 (en) | Ai design analysis and recommendations | |
US8352905B2 (en) | Application builder for industrial automation | |
US20100082133A1 (en) | Application builder for industrial automation | |
US8359573B2 (en) | Application builder for industrial automation | |
CN101763043A (zh) | 用于自动化协同框架的方法和系统 | |
US20230418263A1 (en) | Device configuration object template with user interaction for device properties generator | |
CN112784417B (zh) | 一种基于SysML的航电分布式联合仿真方法及系统 | |
US20240020741A1 (en) | Catalog service replication | |
EP4307104A1 (en) | Extensible profiles for industrial controller devices | |
EP4307103A1 (en) | Industrial automation system topology with point to point business rule integration | |
US12014172B2 (en) | Presentation design dynamic generation from data model server | |
US20240019850A1 (en) | Extensible profiles for industrial control modules | |
US20240086182A1 (en) | Method for connecting a web socket session with an object instance with automation device association | |
US20240103850A1 (en) | Presentation design to background service binding | |
US20240103851A1 (en) | Presentation design to automation device binding | |
US20240176919A1 (en) | Smart object controller allocation in industrial design environment | |
US20240176595A1 (en) | Multiple controller smart object allocation in industrial design environment | |
US20240176332A1 (en) | Industrial design environment automation controller program conversion and export | |
US20240176320A1 (en) | Automation program controller allocation | |
Zhang et al. | Research on EDDL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |