制造与企业级之间的通信模型的制作方法

文档序号:7963489阅读:395来源:国知局
专利名称:制造与企业级之间的通信模型的制作方法
相关申请本申请要求2004年6月1日提交的序列号为60/575,362的美国临时专利申请的权益。
背景技术
在制造设备中通常会发现由低级自动化和过程控制以及监视系统控制的自动化处理。例如,低级自动化系统可包括专用机器人装置或由可编程逻辑控制器(PLC)控制和监视的其他自动化系统。各种传感装置和仪器也可以用于监视这些处理,例如摄像头、条码阅读机和温度传感器。为了管理当今使用的过于复杂的制造与组装系统,许多企业使用多层的体系结构,例如图1中所示的现有技术例子。传统的多层体系结构可包括企业级商务规划系统(企业资源规划,或ERP)102;操作级(制造执行系统,或MES)104;中级过程优化系统106(如人机接口(HMI)、监督控制与数据获取(SCADA)、可视的工厂底层(plant floor)状态、用于上游报告的数据采集);以及低级过程自动化或控制系统108,包含传感器或其他仪器110。
许多客户可能会发现为了实现中级控制系统106所需要的系统数量使得安装和维护非常困难。通常,中级控制系统106要么是很复杂,如用于调度的微制造资源规划(MRP)系统,要么太简单并且功能很有限,例如只有SCADA/HMI。而且,对IT支持组和工厂底层支持组之间的标准计算机信息技术(IT)设备,通常有责任的划分。
通常希望在ERP级102具有能力可直接访问当前只在工厂底层可用的信息,例如,传感器读数和所生产的单元数。获得企业级系统和工厂底层设备之间直接连接的主要障碍是工厂底层所使用设备中固有的非标准通信协议。在企业级102的标准通信机制(如消息队列)与低级制造设备级108、110上的标准通信机制(如DeviceNet和其他专有协议)不同。另外,EPR级102分别与控件108和传感器110之间的层数也会使这些级别之间的直接通信变得困难。
因此,希望在低级的控件级108和传感器级110与企业级102之间有直接通信的方法,既能够从制造层直接获取数据,也能够直接控制制造过程。

发明内容
本发明提供一种方法,用于获取数据并且把发生在工厂底层的事件通知给某些个体,以及提供能力来直接控制或修改制造过程。被通知的个体通常在组织的企业级102。为了使得能够获取数据,必须提供下述的能力。首先,在企业级102的个体必须具有能力来识别他们所感兴趣的数据。其次,在企业级102的个体需要能够识别他们想在其中接收数据更新的环境。最后,需要从工厂底层传输到企业级102特定场所的数据很可能是数据库或企业级应用程序。这些步骤在图2中示出。在框50中,用户必须选择要从低级发送到企业级的数据。在框52中,用户定义在什么时候或在什么条件下发送数据。最后,在框54中,用户规定数据的目的地。
图3示出了本发明的系统的高级视图。该系统的核心是企业通信控制器500,是功能性的微计算机,在优选实施例中,插接到与各PLC204所插接的相同底板202,这些PLC 204在工厂底层用于控制制造过程并通过传感器收集数据。企业通信控制器500经由这些PLC所插入的底板202与各PLC通信,并因此必须使用当前被监控的无论哪个厂商的PLC的原始协议。企业通信控制器500要运行实时的操作系统,如Windows CE、VX Works、QNX或嵌入式Monta Vista Linux,并且安装有软件组件,以便进行从各PLC到企业级的数据选择和传输,以及具有从PLC读取数据和向PLC写入数据的能力。企业通信控制器500还可链接到更高级的组织,如经由标准的以太网协议链接到企业级600和工作台客户端800。工作台810通常是在内部网范围内或经过任何网络远程连接的桌面机的客户端位置上执行的软件组件,并用于设置企业通信控制器500的软件组件。工作台810使得用户可以识别和命名用户所感兴趣的数据、触发从企业通信控制器500向企业级600传输数据的事件以及在企业级600范围内的数据目的地,如数据库应用程序602。企业级600通常由公司用来管理组织的商业应用程序和数据库组成。例如,特定的数据片可通过各种网络协议直接从企业通信控制器500流向在企业级600的特定数据库602或流向运行在企业级600的应用程序602。


通过如附图描述的如下对本发明优选实施例的更详细的说明,本发明的上述和其他特征和优点会变得更加明显,附图中相同的参考标号通常表示相同的、功能相似的和/或结构相似的元素。
图1示出现有标准的传统现有技术的从低级到企业级的体系结构。
图2示出了用于本发明操作的必要功能。
图3示出本发明设备的高级体系结构。
图4示出了本发明工作台组件的体系结构的高级示图。
图5示出企业通信控制器的系统组件。
图6示出通过其添加工程和触发器的过程。
图7示出基于运行时数据触发器的企业通信控制器的功能。
图8示出基于运行时逻辑触发器的企业通信控制器的功能。
图9示出电源故障后企业通信控制器的功能。
图10示出当遇到低级和企业级直接的连接断开的情况并且激活了存储与转发功能时企业通信控制器的功能。
图11示出把关器设施或系统健康监视器的操作。
图12示出了输出配置的操作。
图13示出了用于直接连接到另外外部设备的替换实施例。
图14示出了用于通过PLC通信信道连接到多个PLC的替换实施例。
图15示出了利用设备驱动程序连接多个PLC的替换实施例。
图16示出了PLC请求的写回事件。
图17示出企业请求的写回事件。
图18示出了替换实施例,其中带有设备驱动程序的PC用于替代企业通信控制器。
图19示出企业通信控制器的逻辑服务器子系统和含有逻辑的用户级应用程序。
图20示出企业通信控制器的显示服务器子系统和用户级观察器应用程序。
图21示出了企业通信控制器的表达式服务器子系统和用户级表达式编排器应用程序。
具体实施例方式
下面详细讨论本发明的模型。尽管这里讨论了特定的示例性实施例,应该理解这只是为了说明的目的。本领域的普通技术人员能够理解,在不脱离本发明的精神和范围的前提下,可以使用其他的组件和配置。
本发明的示例性实施例使用两层的体系结构,以便于企业级600和工厂底层之间的通信。可使用这种配置来代替或将其添加到图1所示的典型现有技术的多层体系结构。
企业通信控制器500是本发明的核心,连接有一个或多个现有的可编程逻辑控制器(PLC),并提供这些PLC设备与诸如数据库和应用程序的上游企业系统602之间的连接性。在示例性的实施例中,本发明提供能力,使得诸如库存量、产品完成数和产品返工或次品数等信息直接可用于企业级系统602。本发明提供紧耦合、高集成、模块化、基于组件的机制,通过用作到高级企业系统602接口的硬件组件和软件模块的组合从控制域向企业提供直接的信息。
企业通信控制器500还可以从企业级600接受信息,用于更新所连接的PLC中任何一个的条件(condition)。这种“写回”特征可用于根据企业级600的输入对生产行为做出改变。
企业通信控制器500还可以从企业级检索数据,并把数据置于PLC控制器以便用于生产。可以通过改变企业控制器500的状态来初始化这种信息,并用来收集用于生产的制造指导(recipe)。
在本发明的示例性实施例中,用户可以配置系统,把数据从工厂底层移动到企业级600,如图2中可以看到的。在框50中,用户选择要收集的数据;在框52中,定义事件,当发生该事件时发送该数据;以及在框54中定义数据应该被发送的位置。在图2的框50、52和54中描述的动作是利用图4所示的工程620的概念在图3所示的工作台组件800中实现的。
工程620是一组触发器622,触发器622定义事件,事件引起以标记624命名的特定数据片被发送到企业级600,如图3所示。触发器622可被看作是对发生在工厂底层的事件的预设定响应,当所述事件发生,配置所述响应以启动动作,如对数据库表写入或更新数据行、把消息626置于消息队列或发送电子邮件。引起触发器执行的事件或者是预设定的条件(数据触发器)或者是从PLC主动提供消息的接收(逻辑触发器)。
标记624只是以更友好的方式识别PLC中特定数据点的方式,例如,“生产计数”代替“PLC 2上的数据点12”。
数据触发器是由于条件涉及了正在从PLC读取的某些数据点而执行的触发器。例如,数据触发器可以按设定的频率周期性地执行,可以按调度时间执行,或者作为某些数据点的改变的结果来执行,如当某一数据点改变了数值,或当确定其大于、小于或等于某一值。
逻辑触发器是由于经由底板202接收了从PLC梯形逻辑主动提供消息而发生。例如发生这样的情况,PLC梯形逻辑确定其需要在PLC外部的通信和处理。例如,在生产线上的温度传感器检测到超过特定水平的温度,指出了需要外部动作的危险条件。
除了在这些条件下执行触发器,触发器还提供几种其他的信息片,其中有(1)通知的内容,公知为触发器的有效负载(payload),当所述条件发生时产生,其可由多个数据点值、消息和宏值组成;(2)发送消息的格式,如ASCII、XML或数据库插入/更新;(3)传播数据的方法,如DB2、Oracle、Microsoft SQL、IBM Websphere MQ、消息队列、JMS、TCP、UDP或电子邮件。
图5示出本发明系统的体系结构并由主要组件企业通信控制器500、带有工作台810的客户端800和企业计算机600组成。
企业通信控制器500是优选插入到PLC 204所插入的相同底板202的组件。因此,企业通信控制器500具有经由底板202与PLC 204通信的能力。企业通信控制器500由标准的多用途计算机构成,该计算机具有操作系统和安装在其上的本发明的各种软件组件。优选地,企业通信控制器500可运行在实时操作系统VX Works、QNX、Monta VistaLinux或Windows CE操作系统的某个版本上。企业通信控制器500还装配有专门的连接器,可插接在底板202上。如果需要,该连接器可根据企业通信控制器500所连接的PLC 204的类型进行配置。自然,不同制造商的PLC具有不同配置的底板202。另外,还有如图5中示出的驱动程序522,其对本发明的软件组件提供应用编程接口,使得可经由底板202与PLC 204直接通信,并且特别为企业通信控制器500提供能力,使得其可从各PLC 204读取特定数据点和向PLC 204内的特定数据点写入新值。和物理连接器一样,底板API 522可根据PLC的制造商进行定制。
客户端800是在组织内的某个级别上运行的计算机或是通过诸如因特网的任何网络远程运行的计算机。该计算机运行软件工作台810,工作台810是用户接口,使得系统用户可定义工程620、利用标记624命名数据点和向工程620添加触发器622以及(设定)执行触发器622的条件。在处理中传送到企业通信控制器500的信息在后面说明。
企业通信控制器500配备有特殊软件组件,包括扫描器部分520和事务服务器组件550,其中具有各种功能组件。注意,尽管本发明的功能组件按所述做了划分,软件领域的普通技术人员将认识到,所述功能的任何实现可导致看起来不同的体系结构,但提供与所述特定实施例同样的功能,这样的变化也包含在本发明的范围之内。
扫描器组件520通常负责与工作台810的通信,用于跟踪标记624和触发器622,以确定何时触发器事件发生并用于同PLC 204通信。
标记扫描器524是知道PLC 204上各数据点的名字或标记的组件,并且它能够通过底板API 522从PLC 204检索特定数据或把特定数据写入PLC 204。
触发器扫描器526是用于确定何时是执行各触发器的时间的组件。例如,触发器扫描器526可查询标记扫描器524来确定特定标记624是否已满足某些逻辑条件,如是否超过了预定义的值,如果是这样,确定为响应触发器622而要采取的适当动作,例如,向企业服务器600内的数据库602发送消息。触发器扫描器526还负责周期性检查或预定特定标记624的值的变化并采取适当的动作。
扫描器520内的组件代理528是与工作台810接合的组件,用于从其接收消息并决定向哪里发送这些消息。例如,某些来自工作台810的消息需要经由代理528直接传递到触发器扫描器526,如用于触发器622的创建、启动、停止和删除的命令。另外,某些从工作台810经由代理服务器528传递的命令需要被发送到事务组件550内的调度器(dispatcher)554。这样的命令将在后面说明。
扫描器520内的时间同步管理器534负责维持该系统内所有时钟之间的同步,包括维持PLC 204内部时钟同步的选项。该时间同步管理器通过参考外部主时钟或通过企业通信控制器的内部时钟来使PLC204内的时间与企业通信控制器500内的时间同步。优选的时间参照可在工作台810的配置部分指定。时间同步管理器534的目标是把企业通信控制器500内的所有软件部分与经由PLC 204来自工厂底层的其中可含有时间戳的任何消息同步。
日志管理器532是对控制器500内发生的所有活动做日志并把该信息保持在日志中的组件。在优选实施例中,日志管理器532用两个分开的日志存储信息,第一个用于用户活动,第二个用于例外活动。还可配置日志管理器532,使其每隔固定时间或在发生关键事件时通过电子邮件来报告。例如,如果发生例外(如企业通信控制器500试图与企业服务器600通信,但不能通信),则由日志管理器532在例外日志中产生一个条目。另外,通过工作台810建立的工程及其相关的触发器以及工程的开始与停止也通过日志管理器532保持在事件日志中。日志管理器532可以建立和维持完整的审计追踪。
用户管理器530负责用户的建立及其身份认证。登录到工作台810的各个用户根据他们的特权级别可被允许执行不同的任务。例如,可不允许特定用户创建触发器622,但可以运行已经定义的工程620并查看其结果。该用户管理器还对各种级别的特权做验证。有两种模型用于用户管理。在一种模型中,在企业通信控制器500上运行用户特权表。在另一种模型中,用户管理器530可被集成到企业级用户管理系统中,如中央用户特权清单或中心身份认证系统,例如LDAP或Kerberos,这在企业内部具有用户管理的单一位置。特权级别可存储在集中式企业级系统中并由本地用户管理器530来使用。
在本发明的当前实施例中,图5所示的扫描器520中所有的组件运行在企业通信控制器500上的单个进程中。同样,事务组件550也是单独的进程,并且事务组件550内的所有组件可运行在与扫描器进程520分开的单个进程中。扫描器520和事务组件550可通过操作系统提供的用于进程内通信的标准机制做相互通信。但是,部分可运行在单独进程中的替换体系结构也是可使用的,如图13所示。
事务组件550通常负责在企业通信控制器500本地的非易失性存储部件上维持各种信息,并向企业服务器600发送消息和从企业服务器600接收消息。
事务组件550内的调度器554从企业级600的进程、从工作台810或从扫描器代理528接收消息,并确定这些消息需要发送到事务组件550内的何处。在这个意义上,它非常象扫描器520中的扫描器代理528。例如,如果扫描器520内的触发器扫描器526确定需要把消息写入数据库,则经由扫描器代理528把消息发送到调度器554,并且调度器554把该请求路由到数据库接口552,数据库接口552最终更新企业服务器600上的数据库,并通过调度器响应该操作的成功或失败。调度器554根据下述内容把消息分发到事务组件550内的其他组件(1)消息要发送到何处,以及(2)如何发送该消息。例如,如果在扫描器520内产生的消息被发送到企业服务器600上的MS SQL数据库,调度器554可确定向何处发送该消息以完成这个任务。
事务组件550内的持久性管理器556负责维持运行系统所需要的所有信息,包括所有定义的工程、所有的触发器、所有的传输器以及需要重启系统时所需要存储的任何其他内容。该信息存储在控制器500内的内部磁盘或其他非易失性存储部件上的文件504中,并主要用于当控制器500掉电并需要恢复的时候。从文件504读取控制器500上所有软件组件的最后已知当前状态,从而使得控制器500在电源恢复时可以继续。
数据库接口552是用于将数据从企业通信控制器500传输到企业级600的事务传输机制的一部分。数据库接口552负责通过若干数据库通信协议中的任一种将从PLC 204读取的信息存入企业级上的数据库600。该数据库可以是任何形式的数据库,例如DB2、Oracle或MS/SQL数据库。数据库接口552可以是单个组件或者多个组件,每个都负责特定类型的数据库。
消息队列接口812、SMTP接口813和TCP接口814是事务组件550的部分,其负责把数据和消息从企业通信控制器500传输到企业级600。这些接口可用于将数据移至企业级600的应用程序,该企业级600可通过多种方法接受数据,例如通过从消息队列接收信息、分析通过SMTP发送到特定地址的电子邮件的内容,或从TCP/IP套接字读取的数据。消息队列可以通过多种工具例如Websphere消息队列、JAVA消息队列、JBOSS JMS消息队列或Weblogic JMS消息队列来实现。
存储与转发组件558是在企业通信控制器500和企业级600之间的通信不可用时用来存储供在企业级600的应用程序或数据库602使用的消息的组件。该消息存储在位于本地硬盘或企业通信控制器500内的其他非易失性存储器上的存储与转发数据库506内。当通信被重建时,该存储与转发组件558会将存储与转发数据库506内存储的任何消息转发到企业级600。这些消息会以它们最初被接收的顺序发送。
图6示出了使用工作台810把工程和触发器添加到企业通信控制器500所经由的过程。用户发送消息1到代理528,声明该用户希望建立工程。经由箭头1从工作台810发送的消息可以是工程的创建、添加触发器到工程、使用标记命名数据点等。扫描器代理528经由箭头2将此消息路由到调度器554。调度器554确定这是需要通过持久性管理器556存储到文件504中的事件,因此,消息3被发送到持久性管理器556,而持久性管理器通过箭头4将信息存入文件504,并经由箭头5把该动作的成功或失败返回给调度器554。调度器554一旦经由箭头5从持久性管理器556接收到状态,则经由箭头6将该信息转发到扫描器代理528。这时,该消息永久地储存在文件504中。然后扫描器代理528经由箭头7和8将消息发送到标记扫描器524和触发器扫描器526,分别告诉它们把触发器或标记添加到该工程。
数据触发器和逻辑触发器分别示出在图7和图8中。为了解释图7中的数据触发器,我们假设已经创建了工程620并定义了触发器622。为了解释数据触发器的目的,假设我们期望当PLC上的特定数据点改变时触发消息到企业服务器。例如,在企业级600处的用户期望当某个PLC 204上代表生产计数的数据点增加时会收到通知。在此情况下,标记扫描器将以预设定的速率,例如每秒一次,来轮询PLC 204中代表生产计数的特定数据点。因此,每秒一个消息从标记扫描器524发送到底板API 522以检索数据并且该数据经由箭头1传播到触发器扫描器526。触发器扫描器526评估该数据来了解该数据的当前读取值和该数据的以前读取值之间是否发生了变化,如果发生了变化,触发器扫描器526取得该数据,将其打包进消息并经由箭头2将其发送到调度器554。从触发器扫描器526发送到调度器554的消息包含关于传输的信息,也就是数据发送到企业级600中的何处以及如何发送该数据。调度器554确定该信息需要路由到哪里以合理控制。例如,如果该消息将通过消息队列发送,调度器554将经由箭头3发送消息到消息队列处理程序812,其将经由箭头4发送该消息到企业级600内的消息队列管理器811。企业级600内的消息队列管理器811然后经由箭头5将消息发回到事务组件550内的消息队列处理器812,表示该消息已经收到。该信息经由箭头6发送到调度器554并且该状态消息经由箭头7发送到扫描器代理528。注意,如果经由箭头5发送的确认没有被接收,调度器554会最终使得消息通过存储与转发组件558被存入存储与转发数据库506,用于稍后传送到企业服务器600。此外,指向扫描器代理528的箭头7,可以引发通过日志管理器532写入日志消息。
现在参考图8,图8示出作为逻辑触发器的结果发生的信息流,逻辑触发器使用PLC的梯形逻辑产生。图8中的消息流非常类似图7中的消息流,除了箭头1和8。图8中,箭头1指示直接从PLC经由底板API 522来到的消息。此信息被传递到标记扫描器524和触发器扫描器526,来确定作为来自PLC 204消息的接收的结果将发生什么。该消息,例如,可以是由PLC 204检测到的出错情况,或其可以是例如由于PLC 204上特定数据点的变化而发送的消息。在任何情况下,PLC204的梯形逻辑将确定何时将发送这样的消息。也就是说,PLC 204决定一些位于企业级600的实体需要知道其正在发送的数据。从这点说,通过扫描器520和事务组件550到企业服务器600的消息执行和传播与图7中对于数据触发器的描述是相同的,不同之处在于当状态消息经由箭头7被扫描器代理528收到,该消息经由箭头8和底板API 522发送到PLC 204以使得PLC 204知道该数据已经成功传输到企业级。如果PLC 204在一段时间后未得到成功传送的确认,PLC 204可使一些执行的逻辑来处理该故障。在这样的情况下,PLC 204将再尝试发送该数据或者设置警报表示该数据传送失败。
图9描述了控制器500在电源故障后自我恢复的过程。在此情况下,目标是把企业通信控制器500恢复到它电源故障之前的状态。该状态信息通过持久性管理器556从文件504进行存取。代理528经由箭头1发送消息到调度器554。调度器554确定该持久性管理器556是必需的以完成该请求并经由箭头2发送消息到持久性管理器556。持久性管理器556经由箭头3从文件504检索企业通信控制器500的以前状态并经由箭头4将其发回到调度器554,调度器554将其转发到扫描器代理528。扫描器代理528然后能够经由消息箭头7对触发器扫描器526重建所有触发器,以及经由箭头6对标记扫描器524重建所有标记624。
图10描述了此前讨论的存储与转发特征的操作。当消息需要被发送到企业服务器600但是因为故障的网络连接不能发送时,调用该存储与转发特征。该存储与转发组件将周期性地尝试重建与企业服务器600的通信。当在企业通信控制器500和企业服务器600之间重建通信时,所有存储在存储与转发数据库506中的消息以它们被接收时的顺序转发到企业服务器600。在图10所示的情况下,其中消息队列处理程序812是针对这些特别消息选择的传输器,一旦消息队列处理程序812利用企业服务器600上的消息队列管理器811确定通信信道箭头1有错,则消息队列处理程序812经由箭头2发送消息到存储与转发管理器558。存储与转发管理器558检索所有需要经由箭头2通过消息队列发送的消息。存储与转发管理器558周期性地尝试经由箭头3重新连接到企业服务器600上的消息队列管理器811。当连接重建,存储与转发管理器558经由箭头3发送所存储的消息到企业服务器600上的消息队列管理器811。然后从存储与转发管理器558经由箭头4发回确认到消息队列处理程序812,恢复经由箭头1的正常运行。数据的副本从存储与转发数据库506中去除。该同样的存储和转发机制可以应用于任何所支持的传输机制。
图11描述了把关器(watchdog)系统健康监控器。把关器设施502确定正在执行扫描器520和事务组件550的进程是否运行良好。把关器组件502周期性地与操作系统通信,通过进程的进程标识符检索关于这些进程的信息。如果把关器监控器确定任一进程的进程标识符无效,则表示该进程不再执行,关闭存活的进程,按它们合适的顺序重启这些进程,并且优选地,这时从文件504恢复企业通信控制器500的以前状态。
图12示出了一种设备,其中企业通信控制器500的配置被导出到工作台810。这可以是有用的,例如,当该配置需要复制到不同的企业通信控制器500上时。工作台810经由箭头1发送消息到扫描器520中的扫描器代理528。扫描器代理528经由箭头2发送消息到持久性管理器556。持久性管理器556从文件504检索当前状态并经由箭头3将其返还到扫描器代理528,其经由箭头4将当前状态返还到客户机800上的工作台810。
工作台组件810,如图4所示,是用户的工作站和通往企业通信控制器500的接口。典型地,工作台810会在位于组织的企业级600处的用户级计算机上运行。然而,因为工作台810通过标准因特网协议与企业通信控制器500通信,实际上工作台810可以位于组织内和其外部的任何计算机上。如前讨论的,工作台的一种功能为允许用户创建工程620。该工作台810允许工程的建立以及将工程保存到企业通信控制器500,再次通过持久性管理器556把它们添加到文件504。工作台810也提供工具以开始、停止、导出和导入工程620。工作台810在相同的对话时间可以与多个企业通信控制器500交互,来执行如上所述的每个企业通信控制器500中的操作。
工程由一组触发器622构成,该组触发器定义了这样的情况,在此情况下把数据从企业通信控制器500传送到企业服务器600。触发器可以包含标记624、消息626、宏628和表达式分析器629。标记624定义数据类型触发器,而消息626定义逻辑类型触发器。在触发器内定义的宏工具628使得触发器可执行数据的简单预定义处理。表达式分析器629使得用户可处理可能来自PLC或企业服务器600的数据。例如,该用户可以创建表达式以改变数字的值,例如在温度传送到企业服务器600之前,将其从摄氏度转化成华氏度。触发器622中也包括传输器630,其用来将数据从企业通信控制器500传输到企业服务器600。
工作台810可以用来定义传输器630。传输器630是这样的机构,其中在数据从企业通信控制器500发送到企业服务器600时,用户能够为数据提供目的位置和格式信息。传输器可以是许多类型的任何一种,包括TCP、消息队列、数据库(关系数据库)和SMTP(电子邮件)。创建的传输器的类型取决于该用户期望将数据发送到的应用程序和/或数据库。为了与在企业服务器600处运行的应用程序进行通信,该应用程序必须能够理解协议的一种并能够经由该协议接受消息。数据通常可以发送到企业内部网上的特定目标位置(例如,应用程序)、因特网上的目标位置、或使用数据库例如DB2、Microsoft SQL或Oracle数据库存储在企业服务器600内。该数据的格式可以为许多格式包括XML、ASCII或数据库插入/更新的任何一种。
工作台810也允许用户观察企业通信控制器500返回的标记624。标记624是PLC的梯形逻辑程序中命名的数据点,其表示PLC内的存储器位置。工作台810能够提供标记的树图,从其可以读取PLC内的数据点的当前值。
工作台810内的日志观察器提供用于观察系统事件和例外报错日志的装置。日志观察器632是使得用户可观察由日志管理器532在企业通信控制器500上所创建日志的工具。典型地,这些日志将包括审计日志和例外日志,其可以用来作为跟踪和解释用户活动、出错和系统消息的诊断工具。典型地,PLC 204上发生的活动通过日期、时间、活动、类型和/或用户记入日志。
工作台810也是其可以连接到的所有企业通信控制器500的管理中心。管理模块640提供装置用于执行管理功能,例如设定企业通信控制器500的网络配置644,包括IP地址的设置、定义用户和它们的特权级别648、提供对于可能需要用于多种传输协议的工作台软件的许可管理功能650,以及经由模块652观察安装在与企业通信控制器500相同的底板上的所有PLC的状态。管理模块640也可以提供用于将外部时间同步信号提供给企业通信控制器500及其所连接的所有PLC的装置。工作台的时间管理功能646允许用户设置当前时间、设定同步设置、以及设定作为全部系统的外部时间参考的同步服务器。该同步设置包括更新的频率以及控制器500是否要作为外部时间参考的客户机或其他企业通信控制器500的客户机和服务器。也可以设置同步方法或协议,例如简单网络时间协议(SNTP)、用户数据协议(UDP)、TCP协议或一些用于同步时间的其他普通公知协议。该管理功能也提供装置以根据电子邮件地址组来定义例外通知清单。
当启动工作台810时,其具有搜索网络能力,以寻找可用的可以连接到因特网或企业内部网的企业通信控制器500。搜索网络寻找可用的企业通信控制器500的搜索范围可以通过指定IP子网地址来限定。
还有本发明的多个可替换实施例。图13示出了可替换的实施例,其中企业通信控制器500经由底板API 522与PLC直接通信。在企业通信控制器500需要与其他设备例如无线电射频识别(RFID)读取器通信时,这样的配置是必要的,其中BP API 522b可以不同,例如允许与外部设备的通信。这样的配置也需要多个标记扫描器524a和524b以与多个设备(PLC和RFID读取器)进行接合。
在某些客户配置中,可能需要单个企业通信控制器500与其他不具有企业通信控制器500选项的PLC进行通讯。这通过与PLC通信模块通信而不是使用底板API来完成。其可以使用两种版本,如图14和图15所示。在图14中,企业通信控制器能够以参考本发明的主要实施例描述的方式与PLC 204a进行接合。为了能够与另外的PLC 204b通信,PLC 204a经由PLC通信端口210耦合到PLC 204b。企业通信控制器500然后也经由此连接与PLC 204b进行接合。PLC 204a和204b的通信端口210之间的连接可以是,例如经由RS2332连接或TCP/IP的串行通信。图15示出了另一种配置,其中企业通信控制器配置有自定义设备驱动程序502,如图18中所示,并且经由另外的PLC 204b的PLC通信端口210与该PLC 204b通信。
在某些工厂底层环境中,可能需要企业系统不止是从底层搜集数据,还需要发送信息到底层。可能是工厂底层需要的制造指导信息,或根据销售而改变的生产要求。有两种方法来启动从企业级到PLC级的数据传输PLC请求或企业推出。
在图16中,有来自PLC的主动提供的检索数据的请求,或者,如果数据改变则需要数据的检索,触发器扫描器526经由箭头1接收对于数据的请求。该请求经由箭头2发送到调度器554。调度器554选择合适的传输处理程序以完成该请求并转发该信息。在此例子中,所请求的信息可驻留在数据库中,所以该请求经由箭头3发送到数据库接口552。数据库接口552经由箭头4向企业数据库服务器560请求适当信息并经由箭头5接收该信息。该信息经由箭头6被发回到调度器554并然后经由箭头7发回到代理528。然后经由箭头8提供给底板API 522用于传输到PLC 204。现在该信息可以被PLC 204用于控制过程。
还有一种主机发起的写回,如图17所示,其与PLC数据请求一样地工作。在此情况下,在企业级600的实体要对工厂底层上的一些事物做出改变。这通过在企业级600启动并正传播到PLC 204的消息以及对于一个或多个标记的数据写入来完成。除了初始请求来自企业服务器600并经由消息队列管理器811发送到事务服务器550,数据流与图16所示出的相同。
在本发明的一个可替换实施例中,如图18所示,企业通信控制器500可能对特定类型的PLC是不可用的,或感兴趣的PLC可能不具有经由其底板通信的能力。在此情况下,可选择修改本发明的主要实施例以运行外部PC 501或“通用企业通信控制器”(UECC)上,这样与PLC 204的通信通过不同于底板API 522的装置发生。在此情况下,专门的设备驱动程序502代替了底板API 522的功能。保持了此解决方案的所有其他能力。设备驱动程序502可以支持若干中通用工厂底层通信机制之一,这些通信机制包括串行通信、TCP/IP、Data Highway+和Profibus。典型地,这些连接利用经由箭头1的UECC 501和PLC通信模块210之间的以太网(Ethernet)或RS232连接构成。然而一些PLC可能需要经由箭头2连接到它们的PLC控制器212。在本发明的此实施例中,UECC 501可以在任何给定时间与多个PLC进行通信。
所述体系结构的扩展范围将包括逻辑编排器812,如图19所示。逻辑编排器812使得终端用户可基于为该终端用户提供丰富功能的一组“功能块”建立工作流或逻辑流。这些功能可以包括,例如测试子句(test clause)、处理数据、从任何传输器发送和接收、通过逻辑区域循环、从企业级或PLC级请求信息和其他工作流项目。逻辑编排器812将直接影响每个现有组件并编排这些框(box)中的主要动作。除了已经提供的其他功能之外,它还提供一般的商务逻辑流。逻辑流将在客户机构造,然后经由箭头1发送到逻辑服务器814用于存储和实现。逻辑服务器814的逻辑执行机816部分将1)经由箭头2将定义存入逻辑存储组件818;2)建立受影响的PLC数据标记的清单并经由箭头3将其存入参考表820;以及3)分别经由箭头4和箭头5通过发布/预订客户机822和发布/预订客户机824预订需要的数据。在系统运行的同时,逻辑执行机816将经由箭头6和箭头7接收数据变化,然后执行必需的商务逻辑或数据处理。结果信息可经由多个选项中的一项发送到要求的用户。该更新的/导出的信息可以经由箭头8通过扫描器520发送回到PLC 204;该更新的/导出的信息可以经由箭头9通过事务服务器550发送到企业服务器600;或者该更新的/导出的信息可以经由箭头10通过显示服务器840显示给终端用户。
本发明的体系结构也可以包括显示子系统,其由三个主要组件组成,如图20所示运行时观察器850用以观察数据,工作台显示编排器842用以设定屏幕以及运行时显示服务器840用以支持屏幕/数据更新并维持显示定义。在本发明的一个实施例中,工作台810允许用户定义PLC和企业服务器600之间的操作和数据/消息交换。用户还需要从多个客户机观察数据以能够设定屏幕满足他们的观察需要。该显示子系统是一种鲁棒的(robust)工具,使得这些定义在企业通信控制器500内发生并将这些数据呈现给任何客户机。
显示编排器842是工作台810的扩充,其使得可对将显示数据的屏幕进行设定。该屏幕可以包括填充条(fill bar)、文本字段、按钮、报警指示器或其他链接到PLC 204中的数据标记的显示对象。显示编排器842经由箭头1将屏幕设定信息发送到显示服务器840的请求处理程序部分844。请求处理程序844将显示设定存入本地显示存储区848,或参考可存储在单独的中心服务器上的显示设定。请求处理程序844还分析该显示设定的内容并创建该显示需要知道的PLC数据标记清单,以及将此清单存入参照表846。请求处理程序844使用PLC数据标记的清单经由箭头4向发布/预订客户机822、向对其通知数据中变化的PLC做出请求。发布/预订客户机822经由箭头5向发布/预订客户机824登记这些请求,该发布/预订客户机824是对于主要实施例的扫描器520的增强。当根据工厂底层变化在PLC中进行更新标记,发布/预订客户机824将经由发布/预订客户机822、箭头6和7将状态的变化发送到请求处理程序844。显示信息然后将被更新并经由箭头8发送到合适的观察器。客户机800中的观察器应用程序850可以是专用的观察器,或可以是通用商业网络浏览器。根据该客户机,箭头8的协议可以为专用的协议或标准的HTTP或HTTPS。
所述体系结构的扩充将包括表达式分析器,如图21中所示,其允许用户在将数据发送到企业级600之前对其作另外的处理。当前体系结构允许将定义在设备上的数据点或标记写入各种输出源。在定义触发器的有效负载的同时做数据点到输出源的关联。在写入这些原始数据点值的同时,可能需要时间来把所计算结果写入输出源。该计算的输入可以由从设备读取的数据点值以及由用户定义的常数值组成。这种增强使得用户可定义数学公式,其由作为触发器有效负载部分的数据点值和常数值组成。对于该公式的计算在设备上发生并在相应的触发器被激发时使用该数据点值。这种增强扩大了数据写入能力,不仅包括标记值和常数值,还有所计算的值。
使用表达式编排器818的工作台810使得用户可创建在触发器有效负载中作为数据源的数学公式。除了能够将标记值拖放到有效负载定义中,用户还可以将预设定的宏值(时间戳)和用户定义的宏值(常数)拖放到触发器有效负载中。表达式编排器818还为用户提供将公式拖入触发器有效负载中的能力。将公式宏混入触发器有效负载启动表达式编排器818,其辅助用户定义在运行时在设备上求值的数学表达式。编辑器允许用户从类似标准计算器的接口输入常数值连同数学运算符。此外,该编辑器允许用户将数值的数据点拖放到方程式中。
图21示出了用于前述表达式编排器特征的数据流。表达式编排器818是在客户机800上运行的用户级客户应用程序,其使得用户可按图形方式编写数学和逻辑表达式。该表达式定义经由箭头1发送到表达式服务器870中的表达式分析器机872。该公式定义被存储到本地的表达式存储区874中。表达式分析器872分析表达式定义并创建需要知道以求解该表达式的PLC数据标记的清单,并经由箭头3将其存入参照表826中。表达式分析器872使用PLC数据标记的清单来经由箭头4向发布/预订客户机822、向对其通知感兴趣的数据中的任何变化的PLC,做出请求。发布/预订客户机822经由箭头5向发布/预订客户机824登记这些请求并经由箭头6和箭头7通知这些数据项目的任何变化。表达式求值的结果可经由箭头8和箭头9,以前面所述的用于发送消息到企业级600的方式发送到用户。
这里描述了本发明的优选实施例,然而,本领域技术人员应该知道,本发明的范围将包括等同的实现和其他执行类似功能的实现。本发明的范围利用后面的权利要求进行定义。
权利要求
1.一种用于从控制与监视设备传送数据的系统,所述系统包括控制器,耦合至所述控制与监视设备并与所述控制与监视设备通信,所述控制器具有网络连接;以及安装在所述控制器上的软件;其中,所述软件可从所述控制与监视设备读取数据并从所述控制与监视设备接收主动提供的消息,并且,其中所述软件把所述数据和消息通过所述网络连接发送到目的地。
2.如权利要求1所述的系统,其中所述控制与监视设备是可编程逻辑控制器(PLC),并且,其中所述数据是从所述可编程逻辑控制器读取的离散数据点。
3.如权利要求2所述的系统,其中,当出现一个或多个触发器条件时,经由所述网络连接发送所述数据。
4.如权利要求3所述的系统,其中,所述一个或多个触发器条件选自下述内容构成的组对来自所述PLC的主动提供消息的接收,从所述PLC读取的数据点中的变化,以及对关于从所述PLC读取的数据点的逻辑条件的满足。
5.如权利要求4所述的系统,其中,所述控制器可编程,以定义所述触发器条件。
6.如权利要求2所述的系统,其中,所述软件可响应经由所述网络连接而接收的请求把所述数据经由所述网络连接发送到目的地。
7.如权利要求5所述的系统,其中,所述触发器条件的所述可编程包括关于所述数据的所述目的地的信息以及当满足所述触发器条件时发送所述数据所用的格式。
8.如权利要求7所述的系统,其中,在把所述数据经由所述网络连接发送至所述目的地之前,格式化所述数据。
9.如权利要求8所述的系统,其中,所述格式化的数据可经由所述网络连接使用一个或多个不同的协议来发送,包括TCP,消息队列,SMTP和SQL数据库调用。
10.如权利要求7所述的系统,其中,所述软件可把所述数据插入到数据库中或更新已经驻留在数据库中的数据,所述数据库驻留在通过所述网络连接而连接至所述控制器的计算机上。
11.如权利要求8所述的系统,其中,所述软件可把所述格式化消息发送给运行在经由所述网络连接而连接至所述控制器的计算机上的应用程序。
12.如权利要求7所述的系统,还包括包含在所述控制器上的非易失性存储区中的一个或多个配置文件,所述配置文件包含所有已定义工程、传输和一般设置的记录,并且,其中当从电源故障情况恢复时,所述软件可利用所述配置文件把自身恢复至以前的状态。
13.如权利要求7所述的方法,还包括包含有从所述PLC读取的所有参考离散数据点当前状态的易失性工作存储区。
14.如权利要求8所述的系统,还包括包含在所述控制器的非易失性存储区中的临时存储区,当所述网络连接不可用时,在其中存储所述格式化数据。
15.如权利要求14所述的系统,其中,当所述网络连接变得可用,所述软件可重新发送存储在所述临时存储区中的所有格式化数据。
16.如权利要求8所述的系统,还包括存储在所述控制器中非易失性存储区上的一个或多个日志文件,所述软件把条目记入所述日志文件。
17.如权利要求8所述的系统,还包括用户应用程序,运行在经由所述网络连接而连接至所述控制器上的计算机上,所述用户应用程序使得所述用户可配置和编程所述控制器。
18.如权利要求18所述的系统,其中,所述用户可建立由一个或多个触发器条件组成的工程,所述工程经由所述网络连接被下载至所述控制器中的所述软件。
19.如权利要求18所述的系统,其中,所述用户可对所述数据定义特定的目的地,并把触发器条件与所述特定目的地关联。
20.如权利要求19所述的系统,其中,所述特定目的地是从下述目的地构成的组中选出的运行在具有网络连接的计算机上的应用程序,驻留在具有网络连接的计算机上的数据库,以及电子邮件地址。
21.如权利要求20所述的系统,其中,当满足所述触发器条件时,所述控制器把所述数据直接发送给与触发器条件相关联的所述特定目的地。
22.如权利要求20所述的系统,其中,所述用户可指定用于向所述特定目的地发送所述数据的方法。
23.如权利要求22所述的系统,其中,所述方法选自下述方法构成的组消息队列,TCP消息,SQL数据库调用和SMTP消息。
24.如权利要求2所述的系统,其中,所述控制器和所述PLC共享公共底板,并且,其中所述控制器经由所述底板与所述PLC通信。
25.如权利要求24所述的系统,其中,所述控制器同多个PLC共享公共底板并且经由所述底板与所述多个PLC通信。
26.如权利要求24所述的系统,其中,所述PLC经由通信信道耦合至第二PLC,并且,其中所述控制器可通过与之共享底板的PLC与所述第二PLC通信。
27.如权利要求24所述的系统,其中,所述通信信道包括串行连接或TCP/IP连接。
28.如权利要求2所述的系统,其中,所述软件还包括通信设备驱动程序,所述设备驱动程序使得所述控制器可经由通信信道与第二PLC通信。
29.如权利要求28所述的系统,其中,所述通信信道包括串行连接或TCP/IP连接。
30.如权利要求2所述的系统,其中,所述控制器可修改所述PLC上的所述离散数据点。
31.如权利要求30所述的系统,其中,所述PLC从所述控制器请求特定数据,并且,其中所述控制器可经由所述网络连接来检索由所述PLC请求的所述数据。
32.如权利要求7所述的系统,还包括用户应用程序,运行在经由所述网络连接而连接至所述控制器的计算机上,用于配置所述控制器、定义所述触发器条件以及定义用于所述数据的所述目的地。
33.如权利要求2所述的系统,其中所述软件还包括逻辑服务器,用于跟踪从所述PLC读取的所述数据中的变化,以及用于对从所述PLC读取的所述数据施加逻辑操作。
34.如权利要求33所述的系统,还包括逻辑编排器应用程序,运行在经由所述网络连接而连接至所述控制器的计算机上,用于为所述逻辑服务器构造逻辑流。
35.如权利要求2所述的系统,其中,所述软件还包括显示服务器,用于维持和更新经由所述网络连接而连接至所述控制器的用户显示器。
36.如权利要求35所述的系统,还包括观察器应用程序,运行在经由所述网络连接而连接至所述控制器的计算机上,用于观察由所述显示服务器维持和更新的所述显示器。
37.如权利要求36所述的系统,其中所述观察器应用程序是web浏览器。
38.如权利要求2所述的系统,还包括表达式服务器,用于计算算数或逻辑表达式和使用从所述PLC读取的数据。
39.如权利要求38所述的系统,还包括表达式编排器应用程序,运行在经由所述网络连接而连接至所述控制器的计算机上,用于构造用于所述表达式服务器的所述算数或逻辑表达式。
40.如权利要求23所述的系统,其中,所述控制器是PC,并且其中所述软件还包括设备驱动程序,所述设备驱动程序使得所述PC可经由一个或多个通信信道与一个或多个PLC通信。
41.如权利要求40所述的系统,其中所述一个或多个通信信道包括串行连接或TCP/IP连接中的一种。
42.一种用于从PLC传送数据的系统,所述系统包括控制器,耦合至所述PLC并与其通信,所述控制器可从所述PLC读取特定数据点,所述控制器具有网络连接;安装在所述控制器上的软件,用于计算触发器条件,并且,当满足所述触发器条件时,把从所述PLC读取的一个或多个数据点通过所述网络连接发送给预定目的地;以及用户应用程序,运行在经由所述网络连接而连接至所述控制器的计算机上,用于配置所述控制器、定义所述触发器条件和定义所述预定目的地。
43.如权利要求42所述的系统,其中所述预定目的地从下述目的地构成的组中选出运行在具有网络连接的计算机上的应用程序,驻留在具有网络连接的计算机上的数据库和电子邮件地址。
44.如权利要求42所述的系统,其中所述控制器插接在所述PLC的底板上,并通过所述底板与所述PLC通信。
45.如权利要求42所述的系统,其中所述触发器条件是从下述构成的组中选出的对来自所述PLC的主动提供消息的接收,从所述PLC读取的数据点中的变化,以及对关于从所述PLC读取的数据点的逻辑条件的满足。
46.一种用于从控制与监视设备传送数据的系统,所述系统包括PC,耦合至一个或多个所述控制与监视设备并与之通信,所述PC具有网络连接;以及安装在所述PC上的软件,所述软件包括设备驱动程序,该驱动程序可从所述的一个或多个控制与监视设备读取数据并从所述一个或多个控制与监视设备接收主动提供的消息,并且,其中所述软件可把所述数据和消息经由所述网络连接发送至目的地。
47.如权利要求46所述的系统,其中,所述一个或多个控制与监视设备是可编程逻辑控制器(PLC),并且,其中所述数据是从所述一个或多个可编程逻辑控制器读取的离散数据点。
48.如权利要求47所述的系统,其中所述PC经由一个或多个相应的通信信道耦合至所述一个或多个PLC,所述通信信道包括串行连接或TCP/IP连接中的一种。
全文摘要
一种设备,用于从企业的顶层直接与位于该企业的生产底层的低级控制器和传感器通信。该设备包括控制器,该控制器经由插入了可编程逻辑控制器(PLC)的底板与所述PLC接合。用户可定义触发器,所述触发器规定某种情形,在该情形下把PLC中的数据点传输到企业级,在企业级把数据点存储在数据库中,或通过一个或多个可能的传输协议直接发送到企业应用程序。本发明还包括软件客户端,使得用户可设置传输触发器并实时观察PLC上的数据点。
文档编号H04L12/58GK1901671SQ200610092359
公开日2007年1月24日 申请日期2006年6月1日 优先权日2005年6月1日
发明者埃里克·奥佩利, 苏尼尔·巴尔博扎, 大卫·德·拉·罗沙, 约翰·基弗, 基姆·韦尔特, 特里·赞祖基 申请人:Ils科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1