发明背景
包括可编程逻辑控制器(“PLC”)的编程控制器用于许多商业和工业应用。可编程控制器典型地监视输入、基于它们如何被编程做出决定、并且控制自动化过程或机器的输出。一个最普遍使用的可编程控制器是PLC。PLC由输入模块或点、中央处理单元(“CPU”)及输出模块或点组成。输入接收来自各种现场设备,如传感器的数字或模拟信号,并且将它们转换成可以由CPU使用的逻辑信号。CPU基于存储在存储器中的编程指令做出决定并且执行控制指令。这些编程指令确定PLC将针对具体的输入做什么。输出模块将来自CPU的控制指令转换可以被用来控制各种现场设备,如执行器或阀的数字或模拟信号。
因为大多数包括PLC的可编程控制器本质上是计算机,所以它们以被称为二进制数字(即位)的On或Off条件(即1或0)的形式存储信息。可编程控制器的程序由完成任务的一个或多个指令组成。对PLC或其它控制器编程是构建一指令集合的事情。编程通常总是涉及产生配置数据。配置可编程控制器涉及将控制器的输入/输出(“I/O”)区域映射到物理的I/O。配置编辑器总体上是图形的。
存在几种查看程序的方法,如例如,流程图编程,LADDER逻辑、指令清单,或功能块图。LADDER逻辑(“LAD”)是PLC所使用的一个编程语言。如图1中所示,LADDER逻辑码10使用类似于以继电器逻辑图格式所使用的机电元件的图形符号来说明硬接线的控制。典型LADDER逻辑图的左垂直线通常表示被供动力或被通电的导体。右垂直线表示硬接线控制线路图的返回路径,且可被忽略。LADDER逻辑图被从左至右、从上至下读取。梯线经常被称为网络。网络可具有几个输入和输出指令。由在一个或多个平行分支中的一系列触点所表示的输入指令执行比较或测试,且正常地在梯线上被左对齐。由圈所表示的输出指令执行一些操作或功能,并且正常地在梯线上被右对齐,对于所述输出指令在每个输出分支上可仅存在一个。正如在图1中所描绘的示范性LADDER逻辑码10中所示,10.0、10.1及Q0.0表示第一指令组合。如果输入10.0和10.1被通电,则输出Q0.0被通电。输入可是开关、按钮或触点闭合。输出可例如是电磁阀或灯泡。10.4、10.5和Q0.1表示第二指令组合。如果输入10.4或10.5被通电,则输出Q0.1通电。
指令清单(“IL”)提供另一角度的指令集合,且被示范在图1中的20处。操作,即要做什么,被示在左侧。操作数,即由操作所要进行的操作项,被示在右侧。LAD和IL具有相似的结构。在图1的IL20处的指令集合执行与在10处的LAD相同的任务。
功能块图(“FBD”)提供另一角度的指令集合,且被示范在图1中的30处。每个功能具有指定其具体任务的名称。功能由矩形来指示。输入被示出在矩形的左侧且输出被示出在矩形的右侧。在图3中所示的功能图30执行与由图1的LAD 10和图1的IL 20所示的相同任务。
总体上的可编程控制器,及具体的PLC以被称为扫描的重复过程执行程序码。扫描可从CPU读取输入状态开始。通过使用输入状态应用程序被执行。一旦程序完成,则CPU进行内部诊断和通信任务。通过更新输出扫描周期结束,然后开始。周期时间取决于程序的大小、I/O的数量及所要求的通信量。
为了写入编程指令并产生配置数据以及将码及配置数据下载到可编程控制器,需要几个工具。正如在图1中所示,编程设备,如个人计算机1,被与PLC 7接口。典型地,专有线缆5,如SiemensPC/PPI,将计算机的RS 232端口与PLC 7相连接。在本发明之前,工程软件工具3,如Siemens STEP 7,不得不被安装在PC上以致于PC可被用来为PLC写入编程指令。典型地,工程工具在CD或另一计算机可读取的介质上被出售。
图2概述由购买工程工具拷贝所导致的典型步骤和不足。工程工具的顾客典型地购买软件拷贝且获得使用此工具的许可,步骤20。然后顾客必须在单个顾客计算机上安装所述软件,步骤25。顾客仅可以在具有编程工具的计算机上开发应用软件,即可编程控制器的程序码,步骤27。典型地伴随工程工具的许可协议限制顾客未为任何附加计算机的许可支付费用而在多于一个的计算机上安装所述工具的能力。
软件或工程工具,如Siemens STEP或MicroWin,通常是由控制器制造商所开发的专有工具。典型地,这些工程工具的开发花费了数千人时。工具经常被设计且测试成在专用计算机操作***,如例如Microsoft Windows98上工作。当其上使用所述工具的计算机的操作***改变时,所述工具需要被重新验证。经常,PC卖主仅将最新的Microsoft操作***提供在其PC上。这迫使工程工具卖主也支持新的操作***,其通常意味着附加的数百或数千多人时的投资。在许多组织中,PC的操作***被更新而未考虑存在于PC上的软件,如工程工具。
工程工具经常随着时间的过去被更新。因此,可同时存在不同的工具版本。在大的制造设施中有可能并不是所有的编程工具正在使用相同的版本。这不仅增加了所有权成本,而且当不同的编程设备被用来为相同的PC应用写入程序码时还可以引发问题。经常,一组工程师被分配对PLC编程。小组中的每个工程师可独立地就应用的分立方面进行工作。随后,这些各种分立的方面被组合进在PLC上操作的一个程序里。如果工程师们并没有全都使用同一工具版本,则有可能从一工具版本所产生的码可与较早的工具版本不兼容。
除了与在编程设备上运行不同的操作***及在操作***上运行不同的工具版本相联系的问题以外,可编程控制器的程序码还经常不以集中的方式被归档。经常在工厂里一个PLC的码可存储在一个膝上型或台式个人计算机上以及另一PLC的码可被存储在别处。如果PLC原始地由第一PC进行编程且那台PC随后由第二PC取代以及至如果PLC由第二PC进行重新编程,那么若新程序有欠缺的话,则经常将无法将原始程序重新存储。
附图说明
图1是对可编程控制器进行编程所要求的现有技术工具的示例。
图2是示例用于对可编程控制器进行编程的现有技术方法及工具的步骤和缺陷的方框图。
图3是本发明一个实施例的示例,其中被连接到PLC的客户设备通过网络与服务器进行通信,所述服务器包含用于写入PLC的程序码且用于配置I/O网络和设备的网使能的工程工具。
图4是本发明一个实施例的总体体系结构的示例,其中用于写入可编程控制器的程序码且用于配置I/O网络和设备的工程工具驻留于经过网络由客户设备可访问的服务器上。
图5示例本发明一可供选择的实施例,其中服务器还包含网服务层。
图6从客户与服务器两者观点上示例通过互联网操作的根据本发明的网使能的工程工具的部件,其中图编程技术被使用。
图7示例根据本发明通过使用XML格式网使能工程工具的可供选择方法。
图8示例使用传统工具的应用接口,根据本发明网使能传统工程工具。
图9是根据本发明网使能的流程图编程工程工具的屏幕视图。
图10是根据本发明网使能的LADDER逻辑编程工程工具的屏幕视图。
图11是概述本发明一个实施例的方法步骤的流程图。
图12是概述根据本发明用于对可编程控制器进行编程的方法的流程图。
图13示例根据本发明的***配置,其中客户设备与具有网使能的工程工具的服务器组网,以及与服务器组网的第二客户设备处在具有一个或多个可编程控制器的LAN上。
图14示例本发明一可供选择的实施例,其中可编程控制器被直接地与服务器进行接口,所述服务器具有与客户设备进行通信的网使能的工程工具。
图15示例本发明另一可供选择的实施例,其中具有网使能的工程工具的服务器处在具有客户设备的互联网或内联网上并且一个或多个可编程控制器经过内联网或互联网与服务器组网。
图16是概述根据本发明用于提供工程工具服务的步骤的流程图。
图17是概述根据本发明用于离线产生程序码的步骤的流程图。
图18示例根据本发明用于销售工程工具服务的新经营范例。
图19示例根据本发明用于销售工程工具服务的另一可供选择的新经营范例。
图20示例本发明的一实施例,其中人类可读取的工程码被存储在服务器上且被链接到在可编程控制器上运行且由自动化服务器容易取得的编译码上。
图21示例本发明可被如何建立在单个社团的或商业实体中。
图22示例根据本发明的一个合作性的工程***。
图23是概述根据本发明用于开发且测试可编程控制器的程序码和/或配置数据的方法的流程图。
图24是概述根据本发明用于在可编程控制器上产生且安装程序码的方法的流程图。
图25示例本发明的一个实施例,其中工程工具集合驻留于服务器上,包含配置数据,且经过网络可由客户设备调用。
图26是概述由本发明使能的合作性工程方法的流程图。
图27是概述根据本发明可供选择的合作性工程方法的流程图。
图28是概述根据本发明可供选择的另一合作性工程方法的流程图。
具体实施方式
除了别的以外,本发明提供用于在中央服务器上写入程序码(其通常也涉及产生配置数据)以及用于将经编译的程序码连同任何配置数据下载到可编程控制器,如PLC的***和方法。如图3所示,客户设备30,如包含浏览器如Microsoft Internet Explorer或NetscapeNavigator的个人计算机,存在于公共或私人网络35上。网络35可是互联网或它可是内联网。在一个实施例中,PLC 40,如SiemensS7-200 PLC,经由接口线缆45如SiemensPC/PPI线缆被连接到客户设备30上。线缆可包含用来控制设置,如波特率的Dip开关48。在这个实施例中,客户设备30起到用于对PLC 40进行编程的编程设备30的作用。然而,不同于其中用于对PLC进行编程的工程工具被安装在编程设备上的对PLC 40进行编程的现有技术方法,写入和编译程序码所需要的工程工具驻留于服务器50上,所述服务器50经过互联网或经过内联网或其它网络35可由客户设备30访问。优选地工程工具是网使能(web-enabled)的,以在任何客户设备30上的任何浏览器应用中操作。
用户55利用客户设备30经过网络35访问服务器50。客户设备30可是瘦客户,即除了浏览器外它不需要包含任何软件。因此,客户设备30可采取许多形式包括个人计算机,网使能的PDA,蜂窝电话,互联网准备就绪的电视设备,及互联网器件等。本发明可升级,因为它可以各种模式在具有各种功能性的各种客户设备上操作。例如,本发明可以有限的功能性在网使能的具有有限功能性和计算能力的蜂窝电话浏览器上进行操作,或它可以鲁棒的功能性在具有高速度处理器和大量存储器以及鲁棒的图形能力的复杂个人计算机上操作。
根据本发明,工程工具,类似于工具如Siemens STEP 7,存在于服务器50上且被网使能。典型地,这些工程工具将采用图形编程方案,如LADDER逻辑、流程图编程、顺序功能图、或功能块图。(见例如图1)。优选地,它们被配置成处理各种编程语言,包括指令清单编程和所有其它的标准语言,如例如所有的IEC-1131标准语言(例如,LAD、FBD、SFC、IL和ST)。所述工具被配置成运行在浏览器应用中,因此使它们独立于客户所采用的操作***来操作。优选地,工程工具被配置成以HTML或XML接口来操作,这样它们可以操作在任何可得到的浏览器上。所述工具还可提供配置编辑器以将控制器的逻辑I/O区域映射到物理I/O区域。
图4描绘网使能的工程工具的总***体系结构的一个实施例。网-客户设备30包含标准的网浏览器。用于产生可编程控制器的程序码的工程工具驻留于网服务器50上且能够操作在浏览器应用中的网-客户上。工程工具被网使能,并且,以其最基本的形式,它包括可运行在网浏览器上的编辑器。有利地,编辑器是独立的操作***且可运行在最近的浏览器、操作***、及硬件上。网-服务器50还可包含用于执行硬件配置的编辑器。它还可包含用来执行版本管理且用来运行仿真所必要的软件和硬件。网-客户30和网-服务器50两者存在于网络35,如内联网或互连网上。用户在网-客户30上建立可编程控制器的程序码且/或产生配置数据。所述码和配置数据被转换成XML文件且经过网络35被传输到网-服务器50。程序码和配置数据可被存储在与网-服务器50相联系的项目数据库58中。项目数据库58可采取任何标准存储介质的形式。服务器50不需要正在运行最新的平台(OS和硬件)。
图5描绘一可供选择的实施例,其中服务器50结合有网服务层70。附加的网-服务,如仿真服务和工具,可被分层放在现存工程工具之上。这为工程工具开发者提供了创新且开发新产品的快速且成本高效的方法。工程工具卖主可平衡且扩大在开发工程工具中其现存投资的寿命。在这个实施例中,基本工程工具的用户将任其处置地具有鲁棒的工程服务,其仅是鼠标点击之劳。
XML尤其极好地适用于本发明,因为图形表示,如由常见PLC编程语言所使用的那些,容易地被转换成xLM文件。因此,客户30和服务器50之间的传输优选地以XML文件的形式。
图6示例为网使能标准工程工具,如使用图编程技术的SiemensSTEP 7所需要的客户侧、服务器侧和互联网部件。虽然图编程技术可被用来网使能标准工程工具如Siemens STEP 7,但是Microsoft’s.Net技术提供了用于网使能工程工具的更高效方法。正如图7中所示,.Net技术便利于使用XML格式的网-服务器和网服务应用99进行接口。它还允许以XML格式的客户-服务器的数据交换。
正如在图8中所示,新的网服务器50可以被建在现存工程工具77,如Siemens STEP 7的应用接口(“API”)59之上。然后服务器50和客户设备30通过使用标准协议交换XML文件。
被网使能的、浏览器可执行的工程工具优选地针对自动化工程的各种阶段具有用户友好的功能。正如在具有标准浏览器的客户设备上将观看到的,描绘典型的网使能的工程工具的屏幕视图在图9和10中被加以描绘。图9描绘网使能的流程图编程工程工具且图10描绘用于在LADDER逻辑方案中进行编程的网使能的工程工具。典型地,这些工程工具包括功能,如硬件的配置和参数化;通信的定义;编程;测试,启动和服务;文件编制和归档;以及操作/诊断。所述工具还可包含用于定义符号名称、数据类型和全局标记的注释的符号编辑器。所述工具优选地支持所有的编程语言,包括但不局限于流程图编程,IL,ST,SFC,LAD,及/或FBD,以及由IEC所规定的所有随后的编程语言。
如上所讨论,取决于它们在其上将运行的客户设备的类型,由工程工具所提供的功能可升级。例如,非常瘦的客户设备,如网使能的蜂窝电话,仅可能够运行使用文本基的或有限图形编辑功能的工具。更加复杂的客户设备,如IBM 600E Thinkpad,可以支持更多的功能且可以反过来允许工程工具执行更多的功能,如在码开发期间的全图形编辑。因此,根据本发明,不管工程工具功能是在客户设备上执行或在服务器侧执行,取决于客户设备的能力,互联网或内联网连接的速度及其它参数可变化。
正如在图3中所示及在图11这个流程图中所概述,在本发明的一个实施例中,一用户(或几个用户)可访问存在于服务器50上的PLC编程工程工具38(或用于对其它可编程控制器进行编程的工程工具),步骤1000。在一个实施例中,服务器50存在于互联网的World WideWeb(环球网)部分上。在另一实施例中,服务器存在于私人团体网络或团体内联网上。用户55在位于客户设备30上的网浏览器上操作工程工具38,步骤1005,并且在浏览器上建立可编程控制器的程序码,步骤1010。标准安全措施可被采用以限制对服务器和对其上所建立的程序的访问。用户55可在单个对话期或在几个对话期的时期内建立程序。用户可在浏览器应用中修改、编辑且调试程序码,步骤1015。在浏览器上所产生的码可以图形的形式。然后所述码被转换成文件,步骤1020并且所述文件经过网络被传输到服务器,步骤1025。优选地,程序码被存储在服务器50上,步骤1030。
编辑软件,调试软件及编译器(compiler)可位于服务器50上。这允许实际上PC,PDA或其它网使能的客户设备30充当编程设备。当用户55建立且编辑程序码之后,所述码可被存储且编译在优选地具有编译器的服务器50上。在一些实施例中,附加的服务器可以被用来归档所述码。此外,编译器还可存在于可访问包含工程工具的服务器的不同服务器上。
当所述码被建立,调试或编译后,它被下载到可编程控制器。正如在图12的流程图中所示,在一个实施例中,对可编程控制器进行编程包括两个步骤:建立控制器和服务器之间的通信,步骤2000,以及经过网络将程序码下载到控制器,步骤2005。在一个实施例,如在图3所示的实施例中,码被下载到客户设备30,随后所述客户设备依次可与可编程控制器40接口。在这个实施例中,经编译的程序码的拷贝可存在于客户设备上或可被归档在客户设备上。
典型地客户设备30经由连接器线缆45,如Siemens PC/PPI连接器线缆(见图3)与可编程控制器40接口。正如在图3中所示,当PC被用作客户设备时,连接器线缆允许在可编程控制器上的串行接口以同标准的RS-232串行接口进行通信。当另一设备,如PDA被用作客户设备时,连接器线缆与所述设备上的通信端口接口。正如图3中所示,所述线缆包含DIP开关48,其被用来选择在PLC 40和客户设备30之间进行信息传递的适当速度(波特率)。正如在图13中所示,客户设备30可与多个可编程控制器40接口。在一些实施例中,在存在与单个客户设备接口的大量可编程控制器的情况下,中继器(未示出)与线缆一道可被需要。
在一可供选择的实施例,如在图14所示的实施例中,可编程控制器40可被直接地或间接地连接到网络,如LAN 100上,服务器存在于所述网络上而不必通过客户设备30。在这个实施例中,可编程控制器40经过网络100与服务器50通信,所述网络可包括使用TCP/IP-以太网协议的标准网络,Profibus网络,或实际上任何其它网络配置。然后经编译的程序码可被直接地下载到可编程控制器40。
在另一实施例,如图15所描绘的实施例中,可编程控制器40可通过网络100如内联网或互联网与服务器50通信。在一些实施例中可编程设备通过使用协议如TCP/IP或Profibus或任何其它适当的协议可被链接到一起。
不管可编程设备是否被直接地与其上存在服务器的网络进行接口或通过客户设备与服务器进行通信,程序码的归档拷贝可被存储在服务器50上的归档项目数据库120中或存储在与服务器50相联系的存储设备上。(见图14)。这有利地为经编译的程序码的备份拷贝提供集中存储。归档拷贝还可被存储在单独的服务器上或存储在通过网络可得到的数据库内。
在一些实施例中,可能需要离线,即在客户设备被从包含工程工具的服务器脱开连接之后建立可编程控制器的程序码。离线编程允许用户无需维持与服务器的连接而建立且编程程序码。正如在图17的流程图中所概述,用户建立了客户设备与服务器之间的通信,步骤3000,其中所述服务器包含网使能的工程工具和编程项目的数据库。然后,用户在位于客户的浏览器应用中打开网使能的工程工具,3005.然后用户校验(check out)来自项目数据库的项目拷贝,步骤3010并且项目拷贝被传输到客户设备,3015。然后客户与服务器之间的通信被终止,步骤3020。现在用户离线自由地编辑经校验的拷贝,步骤3025。当用户结束编辑时,用户重新建立客户与服务器之间的通信,步骤3030。然后经编辑的程序码在3035处被检查(check in),并且可由具有访问权利的其它用户来访问。在一些实施例中,虽然项目被校验,但是其它的用户可被允许以其被校验之前所存在的形式来读取经校验项目的拷贝。取决于客户设备的复杂化和资源,离线编程技术和功能可变化。
在客户设备缺乏复杂性时,可提供简单的基于文本的只编程功能。当客户资源包含较高水平的复杂化时(例如,存储器,图形能力,处理器速度等),可提供更高复杂化的图形编辑/码建立功能。因此,本发明可升级。例如,在操作在简单的网使能的设备上的一个实施例中,用户可被提供仅仅文本编辑功能,而在操作在更加复杂客户上的另一实施例中,用户可被提供有在网浏览器中操作的工程工具,所述网浏览器包含当用户被连接到服务器上时存在的所有图形编辑功能。
除了取决于客户资源(例如存储器)以外,其它因素,如客户操作***和安全事项,可影响网使能的工程工具的功能性。为了离线工作,本设备的操作***需要支持在客户设备上安装应用的一些方法。这总体上并不是现代化PDA的事项,但却可是较小器件,如蜂窝电话的事项。出于安全原因,网浏览器应用总体上被限制访问***资源,如驱动器和***存储器。位于Redmond Washington的Microsoft Corp.提供用于允许运行在其Internet Explorer上的应用借助于被嵌入在应用中的ACTIVEX控制来访问客户侧***资源的软件。针对于想要更好安全性的那些人,Microsoft Corp.为用户提供在其浏览器内禁止一起下载ACTIVEX控制的能力,或仅接受来自可信地址的或仅是经原始签字的ACTIVEX控制的下载。
在一个实施例中,基于所需,具体功能被提供给客户设备。例如,直至客户设备的用户需要那个功能时才提供句法检查。这使用户能够最初向客户设备下载最小量的功能并且当那些功能被需要时添加附加的功能。
总体上,当程序码正在被产生且编译时,可编程设备并不需要被连接到可编程控制器。然而,在一些实施例中,可需要使可编程控制器与服务器和客户设备同时在线。在这个实施例中,变化被下载到可编程控制器。此外,输入和输出元件的状态可被加以监视。在一些实施例中服务器可被装备有诊断软件或功能,其允许对可编程控制器的监视。在另一实施例中,服务器可仿真输入和输出且将其与可编程控制器进行通信。这允许各异且鲁棒的测试算法被中央性地建立且被存储。在一些实施例中,鲁棒测试算法可仅由被授权用户访问且可针对其使用向用户收费。
本发明提供工程工具工业中的一种新范例。在本发明之前,工程工具是被制造且被出售的产品(见图2)。根据本发明,网使能的工程工具提供了其中工程工具制造商提供服务的一种新商业示范。(见图18&19)。在一个实施例,如由图18中的流程图所概述的实施中,用户被提供对服务器的访问,步骤200,所述服务器包含用于开发和编译可编程控制器的程序码的工程工具。为了写入程序码的目的,用户可被提供对工程工具的自由访问。用户可以在与服务器通信的客户设备上开发所述码,步骤205。用户可以建立并修改程序码而不被收费。随着对复杂化和最新工程工具的访问,这有利地提供更加小的商业担忧。仅在用户完成所述码且加以编译后才引发收费,步骤207。在一些实施例中,在程序码被编译的时刻收费被加以计算。在另一实施例中,在将经编译的码下载到PLC时用户被收费。(见图19,步骤220)。对所述码的收费可基于经编译的码的大小、写入所述码所需要的时间、所述码被设计要处理的输入和/或输出的数量、或可被测量的各种其它参数。因为工程工具存在于中央服务器上而不在客户设备上,所以对工具的限制性和控制性访问被简化。此外,对于顾客服务代表或销售员来讲给顾客提供编程工具的附加使用是简单的一件事,其中这种附加的使用从商业角度是有利的。例如,当顾客购买与现存PLC接口的新PLC或新现场设备时,销售员可提供用于对PLC进行编程和配置的网使能的工程工具一段有限时间的自由使用。
从建立和/或供应工程工具的实体的观点来看,新的商业范例可采取图16中流程图所概述的步骤形式。工具制造商或供应商在通过网络,如互联网可到达客户的服务器上维持网使能的工程工具,步骤1601。通过网络客户被提供对工具的访问,步骤1605。在一些实施例中,口令或其它安全措施可被用来限制仅由授权用户来访问;而在其它的实施例中公众可以访问工具,但是没有必要对利用工具所建立的码进行访问。根据这个实施例,工程工具供应商例如通过网络从用户接收文件,其包括利用网使能的工程工具而建立的程序码,步骤1610。然后程序码可被编译,步骤1615,或它可被保存且可由建立它的实体或由被授权来访问它的实体容易取得。最终,所述码被编译且然后被下载到可编程控制器,步骤1620。
由于所述码被建立在中央服务器上,所以所述码可以人类可读取的形式或以经编译的形式被归档(见图20)。这提供了一种在新的可编程控制器上重新安装现存软件或当新的版本未能以所希望的方式执行时重新存储旧版本码的方法。在一个实施例中,用户为了获得对经归档拷贝的下载被收取费用,这个费用可低于下载给用户的第一拷贝的初始费用。
此外,由于在一些实施例中,人类可读取形式的码(也被公知为源)被归档且被与机器可读取码链接,所以便利于自动化设施的网使能的监视、仿真和控制。例如,如图20中所示,网使能的PLC 300可包含嵌入的网服务器310。PLC可被连接到网络350,如互联网或内联网。利用本发明网使能的工程工具可对PLC进行编程。PLC的程序码可以人类可读取的形式及以经编译的形式存在于工程服务器400上。人类可读取的形式被存储在存储器或数据存储设备410中且所述码被链接到也存在于与工程服务器相联系的存储器设备420内的经编译形式。由于工程服务器连同PLC经过互联网或内联网可被访问,所以可能在相同的网络上维持另一服务器(或者是从物理上与工程服务器分开的服务器或者是虚拟服务器,其从物理上是工程服务器或PLC的一部分)如自动化服务器。如当PLC包含被嵌入的网-服务器时,自动化服务器可甚至是PLC的一部分。复杂且鲁棒的仿真、监视和控制软件可存在于自动化服务器上且可被网使能以由互联网或内联网上的客户设备来访问。由于运行在PLC上软件的程序码的人类可读取版本经由工程服务器可得到,所以鲁棒的仿真、诊断、控制及监视软件包可有利地访问人类可读取的码且为运行这些软件包提供有价值的信息。例如,由于人类可读取的码容易访问到,所以便利于访问由PLC所控制的各种现场设备的标记信息。因此本发明使能从工场到董事会会议室的复杂且鲁棒的通信和数据传递。
如图5所示,维持具有集中的网使能的工程工具的服务器为工程工具的开发商提供创办新服务和产品的平台。例如,在本发明之前,购买用于优化程序码的仿真工具的成本阻止了许多顾客在这些工具上的投资。在一个实施例中,由于程序码被存储且产生在可由大量顾客访问的中央服务器上,所以在服务器上安装仿真软件的成本可分摊到这一大量顾客上。此外,在一个实施例中,顾客仅支付仿真工具的使用。此外,诊断工具可被安装在服务器上且以同样的方式被共享。在一些实施例中,基于使用、基于对顾客的节省或各种其它方案,服务器和工具的所有者可被加以补偿。
因为工具被中央性地放置,所以工具的许可被简化。工具可被许可给公司、公司内的某些个体或个体本身。通过使用加密技术和/或口令保护,对工具的访问可被完成并且在维持有效的许可时可被调节。在一些实施例中,可希望提供一限制时期的对工具的自由访问。在一些情况下,自由访问量可被连系到可编程控制器的购买。免费提供一段时期的现场服务器还可有益于向顾客出售服务器的长期租赁。在这个实施例中,用户被提供具有有限自由试用时期的服务器。
在一可供选择的实施例,如在图21所示的实施例中,公司可选择租赁或拥有其自己的服务器。对于安全性是主要关注的一些大的制造公司和/或其它实体,将对服务器的访问限制到仅公司的员工可是有利的。因为工程工具驻留于服务器上且并不是驻留于每个用户的PLC上,所以版本管理、更新和其它软件维护任务被简化。此外,工程工具正在独立于用户的编程设备上的操作***而操作。因为服务器可仅由公司员工访问,所以专有信息可被存储在服务器上且由工作在不同地点的编程小组进行访问。
本发明还有利地提供一种用于合作工程的***和方法。在一个实施例中,多个用户可访问和共同开发一个或多个可编程控制器的程序码。如图22中所示,多个用户可访问服务器。网使能的工程工具2200驻留于服务器50上且能够运行在客户设备30上的浏览器应用中。服务器可包含用于将工程项目存储在数据库2210中的存储器以及配置管理器2220。被存储在项目数据库2210中的项目可是分立的项目或它们可是相关的。典型地,建立一特定项目或一段码的用户被准许对那个项目的完全读取和写入权利。如图22中所示,第一用户5000可访问第一项目2241。在访问典型地系以人类可读取形式存储程序码的文件的第一项目2241时,第一项目的激活拷贝2250被建立在服务器50上。借助于网使能的工程工具2200,第一用户5000可修改第一项目2250的激活拷贝。***上的其它用户5001、5002、5003可能需要观看项目1的拷贝。当第二和第三用户正在相关项目上工作时这是相当常见的情况。由于激活拷贝正在工作进展当中,可能第一用户5000可能从未保存第一用户5000正在对激活拷贝所进行的变化,所以准许第二和第三用户对激活拷贝的读取权利将是不典型地不利的。相反,经常优选地是准许第二和第三用户5002、5003对存在于项目数据库上的已归档拷贝的读取权利。在一些实施例中,可有利地是为第四用户5001提供对激活拷贝的读取权利或读取-写入权利。当第四用户5001是监督用户的顾客服务器代表、咨询员或监督员时这可是尤其有用的。对被存储在数据库内项目的已归档拷贝的访问以及对激活拷贝的访问通常地由配置管理器来控制。在本发明的实施例中,项目的创建者通过配置管理器2220准许其它用户权利。经常至少一个其它用户,如监督员或IT管理员具有准许权利的能力。
在一个实施例,如在图22所描绘的实施例中,一个大的编程任务被分成几个小的项目。每个项目作为文件被存储在项目数据库内。每个用户主要地负责单独的项目。第一用户5000,例如负责项目1 2241。因此,第一用户5000,经由配置管理器被准许对第一项目2241的读取和写入权利。其它用户,如第二和第三用户5002、5003可能负责单独的项目或相关的项目且因此被准许对项目1的较少权利,如只读取权利。第二用户5002被派给建立项目2 2242的任务且因此被准许对项目2的全部权利,但是用户1和3仅被给予对项目2已归档拷贝的读取权利。用户3 5003被派给建立项目3的任务且因此被准许对项目3的读取-写入权利,但对项目1和2已归档拷贝的只读取权利。同样,第一用户5000被准许对项目2和3已归档拷贝的只读取权利。项目监督员,如第四用户5001可被给予监督权利,其可包括对激活拷贝及已归档拷贝的读取和写入权利,以及将各种项目(或者是激活拷贝或者已归档拷贝)组合成一段程序码的权利,编译程序码权利,及监督编程项目所需要的任何其它权利。
因此本发明使能若干方法,用于合作地对可编程控制器进行编程且产生通常是编程过程一部分的I/O网络和设备的配置数据。图26-28概述了由本发明使能的许多合作性工程方法和技术中一些的几个实例。虽然在这些附图中示出具体的实例,但是在此所概述的方法步骤旨在为示例性的且并未详尽由本发明使能的广泛且鲁棒的合作工程方法。
本发明还提供版本管理和程序码的方便归档。版本管理器或版本管理***可被结合进配置管理器或由配置管理器进行控制。在新被编译的程序码被下载到可编程控制器(或者直接地从服务器到控制器或者经由客户设备从服务器到控制器)之前,现存码的拷贝被归档在服务器上。在一些实施例中,在程序码被编译之前它以人类可读取的形式被归档。经编译的码和人类可读取码可被链接到一起,这样基于经编译的码人类可读取的码可被访问。(见例如图20)。
驻留于服务器上的版本管理工具将提供几个优点且为工程工具供应商提供新的商业模式。它提供的许多优点之一是顾客可搜索程序的具体变化或可比较程序的两个版本。这在由Food and DrugAdministration(“FDA”)所管制的工业中极为需要。例如,在食品厂FDA要求PLC程序的所有变化备有文件记录。版本管理工具可提供这种功能性。在一些实施例中,版本管理工具是配置管理器的一部分且驻留于具有工程工具的服务器上。在典型的方案中,用户对PLC程序(例如版本1.0)进行变动,例如在混合物中增加糖的量。经修改的程序连同文件作为新的版本(例如版本1.1)被保存在服务器上。
如果在随后的一些时间,经确定所述产品太甜,则通过搜索影响添加到产品中糖的甜度或数量的对PLC的变动,随后的用户可对此校正。优选地版本管理器支持这个功能性。经常地,因为一直存在连贯的变化,所以不可能回复到原始的版本(例如1.0),但是通过对运行在PLC上的现存版本进行变动,用户可以建立新的版本。
除了提供搜索功能以外,版本管理工具还可提供比较功能,其允许用户将一个版本与另一版本进行比较以示出变化。所述比较功能可以图形和文本两者为基础的编程语言来工作且优选地强调变化。
本发明还提供一种用于测试在中央服务器上所开发的程序码的方法和***。正如图23所示且所概述,利用客户设备包含工程工具的服务器被访问,步骤9900。然后在客户设备上工程工具***作,步骤9905,优选地在客户设备上的浏览应用中,以及然后程序码被建立在服务器上,步骤9910。然后通过在服务器上运行仿真软件编程码可被测试,步骤9915。仿真软件可模仿实际的可编程控制器。在其它的实施例中,服务器可被与测试可编程服务器接口,步骤9920。优选地,测试可编程控制器被配置成测试程序码和/或随服务器上的工程工具产生的配置数据。在程序码被测试之后,它可被下载到经常被称为目标可编程控制器的实际可编程控制器上,步骤9925。
下载由本发明所产生的码的一个方法被概述在图24中。程序码和/或配置数据被产生在服务器上,步骤9000。然后所述码被编译,步骤9005。然后它被下载到客户设备,步骤9010。并且被拷贝到与客户设备相联系的存储设备上,步骤9015。存储设备可采取许多形式且可是可移动存储设备,如盘驱动器或闪存单元。存储设备可与电子设备接口或从通讯上被耦合到电子设备上,步骤9020。然后所述码可被拷贝到电子设备上,步骤9025。然后所述码可从电子设备上被下载到目标可编程控制器上,步骤9030。
如图25中所示,本发明还包括用于产生用来配置I/O网络和设备的码或数据的配置编辑器9100。配置编辑器通常是工程工具9300的一部分或是工程工具集9350的一部分。本领域中的那些普通技术人员将意识到在大多数情况下在此所说明的工程工具可包含配置编辑器以及程序码的产生可包括配置数据的产生。配置编辑器可采取许多形式,但是通常是图形形式且优选地适合于由客户设备9500通过网络9600,如互联网进行调用。图形配置编辑器可示出网络上的I/O网络和设备的拓扑。I/O网络和设备的配置数据典型地被下载到网络上的可编程控制器9700上。在一些情况下,数据可被下载到网络上的智能设备上。配置数据经常包括如波特率等信息及与将逻辑I/O映射到物理I/O有关的信息。
虽然上面参考具体的实施例对本发明进行了说明,但是本发明可以太多以致于无法在此说明的若干形式被具体化,并且不应该受上述所说明的示范实施例的限制,所述示范实施例对本发明是示例性的,但并不是详尽的。例如,本领域中的那些普通技术人员也将意识到:虽然本发明的方法步骤在上面以具体的次序被加以讨论,但是经常的情况是所述的步骤次序并不是关键的并且通过执行不同次序的步骤本发明也可被加以实践。例如,对于本发明的实践并不重要的是所述方法步骤是否以任何特定次序被执行。例如,如果用户在将经编译的码和配置数据从中央服务器下载到PLC之前或之后将数值传递则并没有区别。
本发明还提供一种用于合作地建立可编程控制器的程序码的方法,所述方法包括下述步骤:将工程工具软件从服务器下载到多个客户设备上;在第一用户的客户设备码上建立程序码的第一部分;在第二用户的客户设备上建立程序码的第二部分;以及将所述第一部分和第二部分组合成一个文件。
所述方法进一步包括下述步骤:准许第一用户对程序码第二部分的已归档拷贝的读取的权利;以及准许第二用户对程序码第一部分的已归档拷贝的读取的权利。
所述工程工具软件可被配置成运行在客户设备上的网络接口应用中。
所述网络接口应用可包括网浏览器。
本发明还提供一种用于使工程小组能够合作地对可编程控制器进行编程的方法,所述方法包括下述步骤:为小组的每个成员提供对服务器的访问,所述服务器包含能够在一个或多个客户设备上操作的工程工具;分配给小组一部分中的每个成员负责建立程序码的单独段;将程序码的所述单独段组合成一个程序;以及在服务器上编译所述程序。
通过将服务器物理地传递到与小组相联系的实体并且将服务器与由小组成员可访问的实体内的网络进行接口,可提供对服务器的访问。
所述方法可进一步包括给小组的每个成员分配权利,所述权利控制着对那时正在被存储在服务器上的文件的访问。
所述权利可包括对存储在服务器上的文件的读取的权利。
一些小组成员的所述权利可包括对存储在服务器上的一个或多个文件的写入权利。
被准许给每个小组的权利可包括仅对他或她所建立的文件的写入权利。
一个或多个监督员可被准许对服务器上文件的写入权利。
所述一个或多个监督员可包括项目领导。
所述一个或多个监督员可包括被小组监督员所授权的人。