用于初始化和利用plc的存储装置的方法

文档序号:6655167阅读:248来源:国知局
专利名称:用于初始化和利用plc的存储装置的方法
相关申请的交叉参考本申请要求于2004年2月20日提交的未决的美国临时专利申请序列号60/546,153(代理人案号2004P02744US)、于2003年10月15日提交的未决的美国专利申请序列号10/685,819(代理人案号2002P20757US01)、于2003年10月15日提交的未决的美国专利申请序列号10/685,521(代理人案号2002P20758US01)和于2003年7月18日提交的未决的美国专利申请序列号10/622,259(代理人案号2002P20760US01)的优先权,并且这里将其整体引入作为参考。
背景技术
可编程逻辑控制器(PLC)可以利用存储装置来进行存储。可以为存储盒式磁盘的存储装置可以是电子可擦可编程只读存储(EEPROM)装置。存储盒式磁盘可被用于存储PLC的配置信息和/或PLC所获得的数据。PLC所获得的数据可以被存储在包括多个记录的日志和/或数据库中。
日志的每个记录可以包括记录类型。记录类型可被PLC用于定位和/或跟踪最后被添加到日志中的记录和/或随后将被填充的记录的字段的位置。每当用新的数据来填充记录的字段时,记录的记录类型可以被改变以表示它是有效记录而不再是日志的头。
对数据日志进行初始化可以导致将结构定义传输给数据日志,但是典型地,不传输数据来填充数据日志的记录的字段。替代地,在数据日志初始化时,PLC能够将数据日志中的所有记录类型字段设置为“无效”。对于大的日志来说,将数据日志中的所有记录类型字段设置为无效可能需要相当大量的时间。

发明内容
在某些示范性实施例中,可更换的存储盒式磁盘可与可编程逻辑控制器一起使用。存储盒式磁盘能够适合于存储数据日志。可以通过将头标记代码写入第一记录的记录类型字段中并且将无效代码写入数据日志的最后的记录的记录类型字段中来对数据日志进行初始化。不顾物理位置,最后的记录在逻辑上可以邻近于第一记录。可以顺序地用数据填充数据日志记录的字段。例如,响应于收集数据以填充第一记录,可将头标记代码写到第二记录的记录类型字段中,从而自动地使第二记录无效。可将数据写到第一记录的至少一个字段中。第一记录的记录类型字段可以用指示有效数据的代码来重写。


参考示范性附图,通过以下对某些示范性实施例的详细描述将更容易理解种类广泛的潜在的实施例,其中图1是系统1000的示范性实施例的框图;图2是数据结构2000的示范性实施例的框图;图3是多个记录3000的一系列状态;图4是多个记录4000的一系列状态;图5是方法5000的示范性实施例的流程图;图6是方法6000的示范性实施例的流程图;以及图7是信息装置7000的示范性实施例的框图。
具体实施例方式
定义当在此使用以下术语时,伴随的定义适用适合于-使适合于特定用途或者情形。
设备-用于特殊目的的器具或者装置。
动作-行动、操作、步骤和/或过程或其一部分。
获得-得到或者拥有。
获得-得到或者拥有。
适合于-使适合于特定用途或者情形。
添加-组合。
添加-累加某物的操作。
附加的-添加的操作或者过程。
设备-用于特殊目的的器具或者装置。
相关的-有关的。
自动地-以基本上独立于用户的影响或者控制的方式经由信息装置执行。
能够-能(在至少某些实施例中)。
包括-包括但是不局限于。
最靠近的-逻辑上最近的。
代码-被用于表示和/或指示某事的符号系统。代码值可被用于填充记录字段、例如数据日志的记录类型字段。
产生-使存在。
数据-不同信息,通常以特殊的或者预定的方式被格式化和/或被组织来表达概念。
数据日志-包含所聚集的信息的有组织的记录群组。
定义-确定轮廓、形式或者结构。
定义-详细说明。例如数据日志定义能够说明记录格式和/或记录的数量。
检测-感测或者感知的操作。
不同的-改变的。
额外的-对于所请求的和/或所要求的量来说是附加的。
字段-数据的存储空间。字段包含文本、数字、日期、图形、音频、视频和/或计算数据。任何文本字段都具有包括固定的或者可变的长度、预定义的显示格式、和/或与另一字段的关系的属性。
填充-引入;填充。
第一记录-多个记录中的起始记录。当数据日志被产生时,第一记录在记录类型字段中能够包括“头标记”的代码。
完全填充-多个可填充的记录中的每一个都包括数据的状态。
头标记代码-被编码到记录类型字段中的字节或者字节集,头标记代码指示要用过程数据来填充的下一记录的数据日志位置。
识别-辨别或者检测。
递增-改变值以指向多个记录中的下一逻辑记录。
信息-与对象有关的数字、字符、符号等等。
信息装置-任何能处理信息的装置、例如任何通用和/或专用计算机,诸如个人计算机、工作站、服务器、小型计算机、主机、巨型计算机、计算机终端、膝上型电脑、可穿戴计算机、和/或个人数字助理(PDA)、移动终端、蓝牙装置、通信装置、“智能”电话(诸如HandspringTreo式装置)、消息传递业务(例如Blackberry)接收机、寻呼机、传真、蜂窝电话、传统电话、电话装置、编程微处理器或者微控制器和/或外围集成电路元件、ASIC或者其他集成电路、诸如分立元件电路的硬件电子逻辑电路和/或诸如PLD、PLA、FPGA或者PAL等等的可编程逻辑装置等等。通常,能实施这里所述的方法、结构和/或图形用户界面的至少一部分的有限状态机所驻留的任何装置都可以被用作信息装置。信息装置能够包括诸如一个或者多个网络接口、一个或者多个处理器、一个或者多个包含指令的存储器、和/或一个或者多个输入/输出(I/O)装置、一个或者多个用户界面等等的众所周知的组件。
输入/输出(I/O)装置-任何面向感觉的输入和/或输出装置,诸如音频、视觉、触觉、嗅觉和/或面向味觉的装置(例如包括监控器、显示器、投影机、高位显示器、键盘、小键盘、鼠标、跟踪球、操纵杆、游戏键盘、操纵轮、触摸垫、触摸板、定点设备、麦克风、扬声器、摄影机、照相机、扫描仪、打印机、触觉装置、振动器、触觉模拟器、和/或触觉垫,潜在地包括端口,I/O装置可被连接到所述端口上)。
初始化-设置为默认值或者默认值集。
指令-适合于执行特定操作或者功能的指示。
交互-接收警报或者通知,修改或者转换程序,检查控制算法,和/或修改图形显示等等。
无效的-有错误的和/或非有效的。
无效代码-被编码到记录类型字段中的指示包括记录类型字段的记录无效的字节或者字节集。
使无效-确定信息有错误或者非有效的操作。
已知的-认可的或者被充分理解的。
最后的-多个项中的最后一项。
逻辑的-相对于其他元件的顺序布局和/或该顺序布局的标识。在多个记录中,顺序标识可以被认为是循环的,因为多个记录中的物理上第一记录可以在逻辑上跟随多个记录中的物理上最后的记录。
逻辑上-与相对于其他元件的顺序布局和/或该顺序布局的标识有关。
机器可读介质-物理结构,机器可以从该物理结构获得数据和/或信息。例子包括存储器、穿孔卡等。
标记的-用可辨别的符号表示的。
标记-用可辨别的符号来表示的操作。
可以-(在至少某些实施例中)被允许。
存储器-能存储模拟或者数字信息的装置,例如非易失性存储器、易失性存储器、随机存取存储器、RAM、只读存储器、ROM、闪速存储器、磁介质、硬盘、软盘、磁带、光介质、光盘、压缩盘、CD、数字通用盘、DVD、和/或磁盘阵列等等。该存储器能够被耦合至处理器,并且能够存储适合于由根据这里所公开的实施例的存储器来执行的指令。
存储盒式磁盘-可非破坏性地、重复地拆卸的和/或可更换的存储装置。
存储装置-能存储模拟或者数字信息的任何装置,例如非易失性存储器、易失性存储器、随机存取存储器、RAM、只读存储器、ROM、闪速存储器、磁介质、硬盘、软盘、磁带、光介质、光盘、压缩盘、CD、数字通用盘、DVD、和/或磁盘阵列等等。该存储装置能够被耦合至处理器,并且能够存储适合于由根据这里所公开的实施例的存储器来执行的指令。
方法-过程、程序和/或用于实现某事的有关动作的集合。
MicroWin-适合于从传感器和/或仪器下载信息、对信息进行分类和/或归档的PLC数据管理软件。
移动-从一个位置转移到另一位置。
近的[或者最近的]-逻辑上最靠近的。
网络-通信耦合的多个节点。网络可以是公共网络、私人网络、线路交换网络、分组交换网络、虚拟网络、无线电网络、电话网络、蜂窝网络、电缆网络、DSL网络、卫星网络、微波网络、AC电网、双绞线网络、以太网、令牌网、LAN、WAN、因特网、内部网、无线网络、Wi-Fi网络、蓝牙网络、Airport网络、802.11a网络、802.11b网络、802.11g网络、和/或其任何等价物等等。
网络接口-能将信息装置耦合到网络上的任何装置、系统、或者子系统。例如,网络接口可以是电话、蜂窝电话、蜂窝调制解调器、电话数据调制解调器、传真调制解调器、无线收发机、以太网卡、电缆调制解调器、数字用户线接口、桥接器、网络集线器、路由器或者其他类似装置。
新的-与其他东西相比较相对最近被制成或者存在。
最新的-在时间上最近的。
数量-量。
最老的-在时间上首先出现的。
组织-按顺序放置和/或排列。
组织结构-结构状态或者方式。
多个-多个和/或多于一个的状态。
供电中断-为装置和/或系统提供能量的电流的停止和/或基本失常。
在前的-在先前时刻发生的。
预定的-预先确定的。
继续进行-前进。
过程-有组织的动作。过程的例子包括材料传送、材料泵送、材料制造、加热系统、通风系统、空调系统、化学操作、开采、机械加工、封装、和/或材料分配等等。过程可以由SCADA系统监控和/或控制。
处理器-用于执行一个或者多个预定任务的装置和/或机器可读指令集。处理器可以包括硬件、固件和/或软件中的任何一个或者其组合。处理器可以利用机械、气动、液压、电学、磁学、光学、信息、化学和/或生物学原理、信号和/或输入来执行一个或者多个任务。在某些实施例中,处理器可以通过操作、分析、修改、转换、传输供可执行程序和/或信息装置使用的信息和/或将信息路由至输出装置来作用于信息。处理器可以作为中央处理单元、本地控制器、远程控制器、并行控制器和/或分布式控制器等等起作用。除非另外说明,否则该处理器可以是通用装置、诸如微控制器和/或微处理器(这种奔腾IV系列的微处理器由加利福尼亚的Intel Corporation of Santa Clara制造)。在某些实施例中,该处理器可以是专用装置、诸如专用集成电路(ASIC)或者现场可编程门阵列(FPGA),其被设计用于以其硬件和/或软件执行这里所公开的实施例的至少一部分。
可编程逻辑控制器(PLC)-以数字方式工作的电子设备,该电子设备将可编程存储器用于指令的内部存储,所述指令用于执行诸如逻辑、排序、定时、计数和算术的特定功能以通过数字或者模拟输入/输出模块控制不同类型的机器或者过程。参见NEMA标准ICS 3-1978,PartICS3-304(5)。
接收-获得或者得到某物。
记录类型-数据日志记录中的字段。记录类型字段的典型值包括“有效”、“无效”、和/或“头标记”等等。
到达-抵达。
读取-从存储装置中获得。
读回-在时间上在写到存储装置中之后不久从存储装置中得到。
接收-得到和/或获得。
记录-数据元素的集合。记录集构成文件。例如,人员文件可以包括具有在三个字段姓名字段、地址字段和电话号码字段中所存储的数据元素的记录。记录群组构成数据库。
除去-消除和/或删去。
请求-要求某事的消息。
响应的-对影响和/或刺激作出反应。
集-有关的多个。
存储-典型地在存储器中放置、保持和/或保留数据。
存储的-已放置在存储装置中。
基本上-很大程度上。
系统-机制、装置、数据和/或指令的集合,该集合被设计用于执行一个或者多个特定功能。
上载-从第一信息装置传输至第二信息装置。
被上载-从第一信息装置被传输至第二信息装置。
上载-从第一信息和/或存储装置传输至第二信息和/或存储装置。
用户-与信息装置对接的人员。
用户界面-用于向用户再现信息和/或向用户请求信息的任何装置。用户界面包括文本、图形、音频、视频、动画、和/或触觉元素中的至少一个。文本元素例如可以由打印机、监控器、显示器、投影机等等提供。图形元素例如可以经由监控器、显示器、投影机和/或视觉指示装置、例如光、标记、信标等等提供。音频元素例如可以经由扬声器、麦克风和/或其他声音产生和/或接收装置来提供。视频元素或者动画元素例如可以经由监控器、显示器、投影机和/或其他可视化装置来提供。触觉元素例如可以经由很低频率的扬声器、振动器、触觉模拟器、触觉垫、模拟器、键盘、小键盘、鼠标、跟踪球、操纵杆、游戏键盘、操纵轮、触摸垫、触摸板、定点设备和/或其他触觉设备等等来提供。用户界面可以包括一个或者多个文本元素、例如一个或者多个字母、数字、符号等等。用户界面可以包括一个或者多个图形元素、例如图像、照片、图画、图标、窗口、标题栏、面板、图表、标签、绘图工具、矩阵、表、表格、日历、大纲视图、图文框、对话框、静态文本、文本框、列表、选择条、弹出列表、下拉列表、菜单、工具栏、停靠栏、复选框、无线电按钮、超级链接、浏览器、按钮、控制、调色板、预览面板、颜色轮盘、标度盘、滑动块、滚动条、光标、状态栏、步进器、和/或进程指示器等等。文本和/或图形元素可以被用于外观、背景颜色、背景样式、边界样式、边界厚度、前景颜色、字体、字体样式、字体大小、对齐方式、行间距、缩进、最大数据长度、确认、询问、光标类型、指针类型、自动调整大小、位置和/或尺寸等等的选择、编程、调节、改变、说明等等。用户界面可以包括一个或者多个音频元素、例如音量控制、音调控制、速度控制、声音选择器和/或一个或者多个用于控制音频播放、速度、暂停、快进、倒退等等的元素。用户界面可以包括一个或者多个视频元素、例如控制视频播放、速度、暂停、快进、倒退、放大、缩小、旋转和/或倾斜等等的元素。用户界面可以包括一个或者多个动画元素、例如控制动画播放、暂停、快进、倒退、放大、缩小、旋转、倾斜、颜色、亮度、速度、频率、外观等等的元素。用户界面可以包括一个或者多个触觉元素、例如利用触觉刺激、力、压力、振动、动作、移动、温度等等的元素。
有效的-正确的和/或合理的。
有效代码-被编码到记录类型字段中的指示包括记录类型字段的记录有效的字节或者字节集。
验证-测试正确度。
写-存储装置上的数据的编码。
写-将数据放置在存储装置中。
被写-(例如数据)被放置在存储装置中详细描述某些示范性实施例包括一种方法,该方法包括多个动作,包括在包括存储装置的可编程逻辑控制器处,接收请求以产生适合于从过程中接收数据的数据日志;通过将第一记录的记录类型字段中的头标记代码和数据日志的最后的记录的记录类型字段中的无效代码写到数据日志中来对数据日志进行初始化,最后的记录在逻辑上位于第一记录之前并且在逻辑上邻近于第一记录。
图1是系统1000的一种示范性实施例的框图。如所示的那样,系统1000可以包括可编程逻辑控制器(PLC)1100。系统1000可以包括可由PLC 1100监控和/或控制的机器或者过程。系统1000此外还可以包括适合于允许用户与PLC 1100通信的硬件和/或软件。PLC 1100可被用于监控和/或控制工业设备或者处理系统、诸如处理系统1600。PLC 1100可以经由I/O接口1400通信耦合到处理系统1600上。处理系统1600可以包括机床、机器人、化学反应器、炉、熔炉、装配机、打包机、和/或运输设备的部件、和/或相关的仪器、传感器、中继器、指示器、控制器、人机接口、和/或执行机构等等。例如,PLC 1100可以监控和/或控制警报指示器、中继器、传感器、其他的控制器和/或运动装置、诸如例如步进电机控制器、伺服控制器、执行机构控制器等等的运动控制器、诸如步进驱动器、伺服驱动器等等的运动驱动器、和/或诸如步进电机、伺服电机、直线电机、电机、滚珠丝杠、伺服阀、液压执行机构、气动阀等等的执行机构。
PLC 1100可以包括中央处理单元(CPU),经由该中央处理单元处理指令并且确定适当的控制信号。PLC 1100此外还可以包括输入输出(I/O)装置1450和/或被耦合到输入输出(I/O)装置1450上。I/O装置1450可以再现从PLC 1100得到的信息。用户也可以经由I/O装置与PLC 1100交互。
诸如存储盒式磁盘1300的存储装置可以是PLC 1100的一部分和/或可直接或经由网络耦合到PLC 1100上。在某些示范性实施例中,存储盒式磁盘1300可以是可插入到PLC 1100中和/或可连接到PLC 1100上的。存储盒式磁盘1300可以为可由PLC 1100的主处理器1200使用的指令和/或数据提供存储。PLC 1100可以包括存储器、例如存储器1350。存储器1350可以提供对指令、处方、和/或存储协议等等的存储。
在一种示范性实施例中,PLC 1100可以是可经由网络1500耦合到多个信息装置中的一个或者多个(诸如信息装置1700)上的。PLC 1100可以是可经由网络接口装置1475与信息装置1700通信的。虽然远离PLC1100,但是用户经由网络接口装置1475与PLC 1100通信。
信息装置1700可以包括用户界面组件、诸如例如阴极射线管的可视化输出装置。信息装置1700可以包括诸如键盘、鼠标、触摸屏和/或数字化垫板等等的任何常用输入装置。经由信息装置1700,用户可以与PLC 1100交互。利用信息装置1700,用户可以监控过程,该过程可连接到PLC 1100上和/或可由PLC 1100控制。用户也可以经由信息装置1700与PLC 1100交互。
网络1500能够允许用户从距离PLC 1100数百或者甚至数千英里远的位置与PLC 1100交互。网络1500可以是可用于提高可用性和减少可归于PLC 1100和/或处理系统1600的监控和/或控制的编程、管理和/或维护成本。处理系统1600可以包括多个过程元件。
图2是数据结构2000的示范性实施例的框图。数据结构2000的示范性实施例可以包括文件2100。文件2100可以是可存储在存储装置、例如存储盒式磁盘上的。文件2100可以包括多个记录、例如记录2200和记录2300,所述多个记录包括多个数据。文件2100可以定义能够容纳和/或存储文件2100的记录的数据的多个字段。记录2200和记录2300可以包括时间(temporal)字段(例如日期字段和/或时间(time)字段)。记录2200和记录2300可以包括数据、例如过程数据。记录2200和记录2300可以包括适合于改善信息传输和/或记录可靠性的值的校验和字段。记录2200和记录2300可以包括记录类型。在某些示范性实施例中,记录类型可以包括诸如指示有效数据的代码、例如01的值。记录类型可以包括诸如指示无效数据的代码、例如00的值。记录类型可以包括指示头标记的代码、例如02。头标记可以指示将接收要被写到文件2100中的下一记录的数据的记录。头标记可以指示用于将数据从文件2100中上载到信息装置的起始点。在某些示范性实施例中,即使记录2200和记录2300在物理上不是相邻的,记录2300也可以在逻辑上邻近于记录2200。
图3是多个记录3000的一系列状态。在第一时间点,多个记录3000可以包括处于状态3100中的记录。在稍后的第二时间,记录3000可以包括处于状态3200中的记录。在更稍后的第三时间,记录3000可以包括处于状态3300中的记录。从状态3100前进到状态3200前进到状态3300能够指示将数据写到记录2的至少一个字段中的过程。在状态3100时,多个记录3000可以包括记录1,所述记录1包括指示记录1包括有效数据的记录类型代码。在状态3100时,记录2包括指示头标记、从而指示记录2包括无效数据的记录类型代码。在状态3100时,记录3以及在记录3与记录“x-1”之间的记录可以包括未定义的记录类型。未定义的记录类型可被用于对多个记录进行初始化。未定义的记录类型可以自动地指示记录3以及在记录3与记录“x-1”之间的记录不包括有效数据。在状态3100时,记录x可以包括无效记录类型代码。在逻辑上循环的数据日志中,记录x可以被认为是在逻辑上邻近于记录1。如果在记录x中的记录类型字段中找到无效代码,则在逻辑上处于记录x和第一记录(在该实施例中是记录2)之间的记录是有效的,其中所述第一记录在记录类型字段中包括头标记代码。
在第二时间点,记录3000可以包括处于状态3200中的记录。在状态3200时,记录1可以包括指示记录包括有效数据的记录类型代码。在状态3200时,记录2可以包括指示头标记、从而指示记录2包括无效数据的记录类型代码。在状态3200时,记录3可以包括指示头标记、从而指示记录3包括无效数据的记录类型代码。虽然假设在该实施例中多个记录中的至少一个记录在记录类型字段中包括头标记代码,但将头标记的记录类型代码放置在记录3中可以是允许用有效数据重写记录2的步骤。如果在有多个处于状态3200中的记录的情况下电源失效,则对记录的扫描将显示两个头标记代码。记录2中的头标记代码可以被认为是有效头标记。记录3中的头标记代码可以被忽略或者用无效的记录类型代码重写。以这种方式,在电源失效时在不影响记录3000中所存储的有效记录、例如记录1的情况下,数据的一个记录可能丢失。在状态3200时,在记录3和记录“x-1”之间的多个记录可以包括未定义的记录类型。未定义的记录类型可被用于对多个记录进行初始化。未定义的记录类型可以自动地指示在记录3和记录“x-1”之间的记录不包括有效数据。在状态3200时,记录x可以包括无效记录类型代码。
在第三时间点,记录3000可以包括处于状态3300中的记录。在状态3300时,记录1可以包括指示记录包括有效数据的记录类型代码。在状态3300时,记录2可以包括指示有效、从而指示在状态3200和状态3300之间的时间间隔期间有效数据已经被写到记录2中的记录类型代码。在状态3300时,记录3可以包括指示头标记、从而指示记录3包括无效数据的记录类型代码。在状态3300时,在记录3之后并且继续直达记录“x-1”的多个记录可以包括未定义的记录类型。未定义的记录类型可被用于对多个记录进行初始化。未定义的记录类型可以自动地指示在记录3和记录”x-1”之间的记录不包括有效数据。在状态3200时,记录x可以包括无效记录类型代码。
在状态3200和状态3300之间重写记录2中的头标记的记录类型能够为记录3000提供容错度。如果在记录2中的头标记记录类型代码被重写之前在状态3200和状态3300之间使可编程逻辑控制器掉电,则只有已经被写到记录2中的数据将会丢失。仍然能够从记录3000中读取包括有效数据的剩余记录、例如记录1。
一系列状态(例如状态3100、状态3200、和状态3300)可以被反复地继续,直到和/或超过除了具有头标记的记录类型代码的记录之外所有记录都包括数据的状态。如果继续超过除了具有头标记的记录类型代码的记录之外所有记录都包括数据的状态,则在最新的记录能够逐渐地重写多个记录中的最老的记录、从而继续前进到在记录类型字段中包括头标记代码的记录的意义上多个记录可以是循环的。
图4是多个记录4000的一系列状态。多个记录4000可以通过一系列非顺序状态、例如状态4100、状态4200、状态4300、状态4400和状态4500来描述。在某些示范性实施例中,可以使用一组指针。利用指针能够提高与多个记录4000有关的访问和写次数。指针能够为可编程逻辑控制器提供对与可编程逻辑控制器相关的特定存储装置中的多个记录4000的绝对或者相对位置的相对有效的访问。指针可以包括起始指针、结束指针、头指针和/或尾指针等。
起始指针能够指示多个记录4000的第一物理和/或逻辑记录的位置。一旦被定义,只要在特定存储装置中不发生变化的情况下多个记录4000保持被定义,起始指针就能够保持被设置。结束指针能够指示多个记录4000的最后的物理和/或逻辑记录的位置。一旦被定义,只要在特定存储装置中不发生变化的情况下多个记录4000保持被定义,结束指针就能够保持被设置。
多个记录4000的头指针可被用于指向包括指示头标记记录类型的代码的记录。头指针所指向的记录可以是能够存储来自与过程相关的传感器和/或仪器的数据的下一位置。可以使头指针和/或头标记向前移动一个逻辑位置,指向多个记录4000中的记录,每次数据被写以填充下一记录。
多个记录4000的尾指针可被用于指向在多个记录4000中在时间上最老的记录。替代地,当多个记录4000最初被定义时,尾指针能够指示多个记录4000中的逻辑上第一记录。可以使尾指针向前移动一个逻辑位置,指向多个记录4000中的记录,每次一旦所有记录都包括数据,数据就被写以填充下一记录。某些示范性实施例直到所有记录都包括有效数据并且可编程逻辑控制器开始重写先前的记录才移动尾指针。
在状态4100时,多个记录4000可以最初被定义,并且如所示的那样在多个记录4000中的任一记录中不包括过程数据。如果使用指针,则起始指针、头指针和尾指针每个都可以被定义为指向逻辑上邻近的多个记录4000的第一记录。能够指示第一记录中的头标记的记录类型代码“02”可以被存储在第一记录中。如果使用尾指针,则尾指针能够指示多个记录4000中的最后的逻辑记录。能够指示无效记录存在于最后的逻辑记录中的记录类型代码“00”可以被存储在最后的记录中。在某些示范性实施例中,多个记录4000的有效记录的数量可以通过位于在记录类型字段中包括头标记代码的记录和在记录类型字段中包括无效代码的最接近的逻辑上在前的记录之间的记录的逻辑数量来确定。在状态4100时,如果无效代码位于逻辑上直接处于在记录类型字段中包括头标记代码的记录之前的单元中,则多个记录4000可能不包括任何有效记录。
在状态4200时,多个记录4000可以完全用过程数据来填充。在状态4200时,如果使用起始指针,则起始指针能够继续指示多个记录4000的物理上和/或逻辑上第一记录。如果使用结束指针,则结束指针能够继续指示多个记录4000的物理上和/或逻辑上最后的记录。如果使用头指针,则头指针能够指向可以写过程数据的下一位置(在该具体实施例中被指示为所示的六个记录的列表中的第三记录)。头指针所指向的记录包括代码“02”,该代码能够指示记录的记录类型字段中的头标记,由此自动地使包括头标记代码的记录无效。由于多个记录4000在记录类型字段中不包括无效代码,则除了包括头标记代码的自动无效的记录之外,多个记录4000能够被认为是完全用数据填充。如果使用尾指针,则尾指针可以标记当前最老记录被写的位置(在该具体实施例中被指示为所示的六个记录的列表中的第四记录)。在所示的该具体实施例中,在状态4200中,除了与头标记相关的记录之外的所有记录在相应的记录类型字段中可以包括代码“01”,该代码能够指示有效记录。
在状态4300时,多个记录4000可以完全用过程数据来填充。在状态4300时,如果使用起始指针,则起始指针能够继续指示多个记录4000的物理上和/或逻辑上第一记录。如果使用结束指针,则结束指针能够继续指示多个记录4000的物理上和/或逻辑上最后的记录。头指针能够指向可以写过程数据的下一位置(在该具体实施例中被指示为所示的六个记录的列表中的第六记录)。头指针所指向的记录包括代码“02”,该代码能够指示记录的记录类型字段中的头标记。尾标记能够标记当前最老记录被写的位置(在该具体实施例中被指示为所示的六个记录的列表中的第一记录)。在所示的该具体实施例中,在状态4300中,除了与头标记相关的记录之外的所有记录可以在相应的记录类型字段中包括代码“01”,该代码能够指示有效记录。在循环的数据日志中,当接收到将下一记录写到数据日志中的请求时,头标记代码可以被写到多个记录4000的第一逻辑记录中,由此使第一逻辑记录无效。
在状态4400时,多个记录4000可以包括一个或者多个无效记录。无效记录能够通过在多个记录4000的记录类型字段中定位“00”值(诸如在所示的实施例中在多个记录中的第二单元中所示的值)来确定。无效记录代码能够将指示特定记录无效的信息提供给用户。例如,可以从多个记录4000的统计和/或图形分析中排除通过记录类型被表示为无效的数据。
在状态4400时,多个记录4000可以处于一种状态,该状态跟随在具有在上载之后擦除多个记录4000的指令的多个记录4000的上载之后。在某些示范性实施例中,状态4400可以作为电源失效的结果而出现。在某些示范性实施例中,状态4400可以作为具有未知状态的存储盒式磁盘被置于可编程逻辑控制器中的结果而出现。可以对记录类型字段进行初始搜寻,以定位在记录类型字段中(在该情况下在从多个记录4000的逻辑起点开始的第四记录中)包括头标记代码的记录。如果使用头指针,则头指针能够被指定为指向该记录。在状态4400时记录类型字段的搜寻揭示两个无效记录代码。在包括头标记代码的记录之前的最靠近的无效记录代码能够指示没有有效记录可用并且数据日志实际上为空。响应于定位从多个记录4000的逻辑起点开始的第三记录中的无效记录代码,如果使用尾指针,则尾指针能够被设置为指向与头指针所指向的记录相同的记录。在某些示范性实施例中,如果数据日志在已经完成上载操作之后要被擦除,则无效记录代码能够被置于直接在包括头标记的记录之前的记录中。如果使用尾指针,则尾指针能够被设置为指向包括头标记的记录。
在状态4500时,多个记录4000可以在从多个记录4000的逻辑起点开始的第二记录中包括单个无效代码。在将有效记录添加到第三单元中之后,如果使用尾指针,则尾指针能够被指定为指向作为多个记录4000中的最老有效记录的有效记录。在该具体实施例中,可以在第四记录的记录类型字段中找到头标记代码。
在状态4600时,多个记录4000可以被部分填充。所示的具体实施例在多个记录4000的记录类型字段中指示四个有效记录、一个无效记录和头标记。如果使用尾指针,则尾指针能够指向最老的记录,该最老的记录碰好处于紧接在包括无效的记录类型代码的记录之后的逻辑位置中。如果使用头指针,一旦头指针和头标记已经递增,则要被记录到记录中的下一组过程数据可以被置于头指针所指示的单元中。如果使用头指针和尾指针,因为头指针和尾指针不指向连续编号的记录,所以数据能够在不使尾指针递增的情况下被添加到下一记录中。
图5是用于使用存储装置的方法5000的示范性实施例的流程图。在某些示范性实施例中,在动作5100中,可以在可编程逻辑控制器处接收用于产生数据日志文件的请求和/或定义。该请求可能是来自可编程逻辑控制器的用户。用户可以利用可编程逻辑控制器向设备和/或过程请求数据收集。响应于该用户请求,存储装置(诸如存储盒式磁盘)可以被初始化以得到和/或收集用户所请求的数据。所收集的数据的数量可以是用户以许多方式中的任何一种方式指定的、例如收集数据的时间量、要填充的存储器的数量、要收集的数据记录的数量等等。在某些示范性实施例中,可以在可编程逻辑控制器处接收用于产生数据日志文件的数据日志定义。数据日志定义可以响应于用户请求而被产生,和/或可以自动地由可编程逻辑控制器产生。
在动作5200中,可以为数据日志分配存储装置的存储块。可以响应于用户请求和/或自动地分配存储块。可以分配存储器以包括预定的多个记录。可以组织存储装置以保存预定的多个记录。每个记录都可以包括记录类型字段,该记录类型字段是指示记录是否为有效记录、无效记录和/或“头”记录(通过记录类型字段中的“头标记”代码来指示)的字段。在某些示范性实施例中,记录可以包括日期戳、时间戳、标识符、处理单元标识符、机器戳、传感器号、执行机构号、和/或数据字段等等。可以分配存储块以包括不只是被期望用于数据存储的一个记录,以便容纳包括指示头标记记录类型的代码的自动无效的记录。搜寻存储块能够识别无效记录和/或有效记录。
在一种示范性实施例中,数据日志文件能够被写在逻辑上循环的缓冲器中。逻辑上循环的缓冲器可以通过被写到邻近的存储段中的数据日志记录来表征,缓冲器以起始存储段开始。逻辑上循环的缓冲器可以进一步通过以下来表征当缓冲器满时,在缓冲器的起始处写下一数据日志记录。该下一数据日志记录可以重写被写在逻辑上循环的缓冲器中的最老的数据日志记录。例如,如果缓冲器满了,则要写的下一数据日志记录可以被写在缓冲器的起始处,因此重写先前位于缓冲器的起始处的数据日志记录。逻辑上循环的缓冲器可以包括循环缓冲器,其中存储段在物理上是相互邻近的。
在动作5300中,可以对多个记录进行初始化。例如,可以通过将指示头标记的代码置于记录类型字段中、从而自动地使第一记录无效来对第一记录进行初始化。可以通过将指示无效记录的代码置于记录类型字段中来对多个记录中的最后的记录进行初始化。预定的多个记录在逻辑上可以是循环的,因为最后的记录在逻辑上可以邻近于第一记录。
如果使用指针,则动作5300可以包括定义指针。与多个记录相关的指针可以包括起始指针、结束指针、头指针和/或尾指针等等。指针可以被用于快速且有效地给信息装置指明要写的和/或要上载的记录的方向。在最初产生多个记录时,起始记录指针、头指针和/或尾指针可以按多个记录的逻辑顺序与第一记录相关联。结束记录指针最初可以按多个记录的逻辑顺序与最后的记录相关联。
在动作5400中,可以执行指令和/或命令以将设备和/或过程数据添加到多个记录中。指令和/或命令可以是驻留在可编程逻辑控制器上的多个机器可读指令的一部分。该指令可以包括得到和/或格式化数据以填充多个记录中的至少一个。响应于将数据添加到第一记录中的指令,指示头标记的代码可以被写到逻辑上从第一记录递增的第二记录的记录类型字段中。
可以从设备和/或过程获得数据以填充第一记录的至少一个字段。一旦用数据填充,第一记录就可以被认为是最近所填充的记录。第一记录可以是在上载事件中所读取的第一记录,在新的数据被添加到多个记录中的另一个记录中之前,应发生这种事件。如果使用指针,则指针可以响应于数据被添加到第一记录中而递增。可以使头指针递增以与第二记录相关联。如果在使头指针向前移动以指向第二记录之后头指针和尾指针相等,则尾指针能够被改变以指向第三记录,该第三记录可以是在逻辑上在第二记录之后的下一记录。
为了验证已经发生了正确地写数据,第一和/或第二记录的记录类型可以被可编程逻辑控制器读回。对第一记录包括非头标记记录类型并且第二记录包括头标记记录类型的验证可以验证将数据添加到多个记录中的写操作已经成功完成。在某些示范性实施例中,可编程逻辑控制器可以从多个记录中读取多个记录类型字段,以便通过检错技术保证在电源失效之后单个头标记的存在。检错技术可以是二进制反码方法、Fletcher校验和方法、循环冗余校验方法、和/或扩展精度校验和方法等等。检错技术能够识别哪个记录是最近的,并且因此如果多于一个的头标记被检测,则能够识别哪个头标记是错误的,其中所述检测技术可能与所考虑的记录的位置和/或记录被添加到存储装置中的位置和/或方向的知识相结合。
在有效的实施例中,PLC能够使较老的双重头标记无效和/或消除较老的双重头标记,或者可能将较老的双重头标记转换为非头标记,从而导致在数据日志文件中存在单个头标记,该单个头标记对应于将从设备和/或过程接收下一数据的记录。改变二进制位的值能够使较老的双重头标记无效。替代地,PLC能够检查和测试文件日志记录中的每一个上的标记(诸如时间戳标记),以确定最近所写的记录。在某些有效的实施例中,将记录写到数据日志中的时间可以被测量为处于串行eeprom存储装置的两个和三个高速缓冲存储器写周期之间。写记录的时间可以小于40ms。
在动作5500中,可以执行指令以上载来自多个记录中的记录。该指令可以来自用户和/或由可编程逻辑控制器自动产生。指令可以基于预定的时间、所收集的数据的预定数量、和/或特定用户请求等等。指令可以包括对应于在上载数据日志之后从存储装置中擦除或者不擦除数据日志的指令的设置。在读取数据日志文件之后擦除或者不擦除数据日志文件的指令能够允许用户更有效地管理存储装置上的数据存储和检索。擦除数据日志文件能够保证存储装置上的数据日志记录先前没有被读取。可以以在逻辑上位于头指针所指向的记录之前并且包括指示头标记数据类型的代码的记录开始上载数据日志记录。可以以最新的记录开始基于逐个记录连续上载数据,直至到达最老的记录为止,其中如果使用指针,则最老的记录将与尾指针相关联。如果使用尾指针,一旦数据已经被提供给多个记录中的至少一个记录,尾指针就可以指向多个记录中的最老的记录。
在某些有效的实施例中,在动作5500期间能够请求新记录添加。响应于新记录添加,无效的记录类型代码能够被分配给所上载的记录,该所上载的记录包括与新记录添加请求相关的数据。响应于添加新记录的请求,可以通过将头标记代码写到多个记录中的第二记录的记录类型字段中来添加新记录。可以将数据写到多个记录中的第一记录的至少一个字段中。可以将有效代码写到第一记录的记录类型字段中。在随后执行动作5500期间可以将新记录作为有效记录上载。
响应于从多个记录中去除所上载的记录的指令,动作5500可以包括记录类型字段和/或指针能够被复位。在某些示范性实施例中,直接在头标记代码之前的记录能够被分配无效代码作为记录类型。如果使用尾指针,则尾指针可以被设置成与头指针相等(如果使用头指针),并且因此指向在逻辑上从包括无效代码的最靠近的在前记录递增1的记录。因此,能够通过只改变多个记录中的少数、例如一个或者两个记录类型字段来有效地擦除多个记录中的先前所存储的记录。
图6是方法6000的示范性实施例的流程图。在动作6100中,可编程逻辑控制器能够检测存储装置。可编程逻辑控制器能够确定存储装置的组织结构对于可编程控制器来说是未知的。当在电源失效之后恢复运行之后,可编程逻辑控制器能够检测存储装置。在某些示范性实施例中,存储装置可以是由用户在可编程逻辑控制器中新近放置和/或更换的存储盒式磁盘。可更换的存储盒式磁盘可以被用于在可编程逻辑控制器之间传输程序和/或处方。在不丢失存储盒式磁盘上所包括的和/或所存储的数据的情况下能够改变数据盒式磁盘。能够改变数据盒式磁盘以将数据从数据日志上载到用户信息装置上。改变数据盒式磁盘以上载数据能够允许用户在不使可编程逻辑控制器连接到与用户信息装置相同的网络上的情况下传输来自数据日志的数据。
在动作6200中,能够在存储装置上定位数据日志。数据日志可以包括多个记录。每个记录可以包括记录类型字段。代码可以被置于指示头标记、无效数据、未定义的数据和/或有效数据等等的记录类型字段中。
在动作6300中,可以在数据日志中搜寻在记录类型字段中包括头标记代码的记录。如果没有记录包括头标记代码,则默认记录、例如第一逻辑记录可以被分配头标记代码。在某些示范性实施例中,如果多个记录包括头标记代码,则除了包括头标记代码的逻辑上第一记录之外,所有头标记代码都可以被改变为无效代码。在某些示范性实施例中,包括头标记代码的逻辑上第一记录能够被指向为接收设备和/或过程数据的下一记录。能够自动地使逻辑上第一记录无效。在某些示范性实施例中,在不改变包括头标记代码的其他记录的记录类型字段的情况下,逻辑上第一记录能够适合于接收设备和/或过程数据。在某些示范性实施例中,头指针能够被定义,该头指针改善可编程逻辑控制器对逻辑上第一记录的访问。动作6300能够确保设备和/或过程数据被存储在数据日志中的适当位置。
在动作6400中,可以在数据日志中搜寻包括无效代码的记录。该搜寻可以包括扫描每个记录的记录类型字段。作为搜寻记录的结果,可以找到包括无效代码的记录。如果多于一个的记录包括无效代码,则能够找到在逻辑上在包括头标记的记录之前的最靠近的记录。如果在包括无效代码的记录和包括头标记的记录之间存在任何记录,则那些记录可以被认为包括有效数据。如果无效代码被找到并且数据日志包括有效数据,则最老的记录可以是在逻辑上紧跟在动作6300中所找到的最靠近的记录之后的记录。在某些示范性实施例中,如果使用尾指针,则尾指针能够被定义以指向最老的有效记录。
如果没有记录包括记录类型的无效代码,则除了包括头标记的记录之外的所有记录能够被认为包括有效数据。最老的记录可以是紧接在包括头标记的记录之后的记录。如果使用指针,则尾指针能够被定义以指向紧接在包括头标记的记录之后的记录。
图7是信息装置7000的示范性实施例的框图,在某些有效的实施例中该信息装置例如可以包括图1的信息装置1700。信息装置7000能够包括诸如一个或者多个网络接口7100、一个或者多个处理器7200、包含指令7400的一个或者多个存储器7300、一个或者多个输入/输出(I/O)装置7500、和/或被耦合到I/O装置7500上的一个或者多个用户界面7600等等的任何多个众所周知的组件。
在某些示范性实施例中,经由一个或者多个用户界面7600、例如图形用户界面,用户能够查看与定义、存储、和/或上载来自数据日志的数据有关的信息的再现。
对于本领域的技术人员来说,根据阅读某些示范性实施例的上述详细描述和附图,其他的实施例将容易变得显而易见。应该理解的是,可以实现多种变型、修改、和附加的实施例,并且因此所有这种变型、修改、和实施例应被认为位于本申请的精神和范围内。例如,无论本申请或者要求其优先权的具有任一具体所述或所示的动作或元件、这种动作的任何特定顺序或这种元件的任何特定相互关系的任何申请的任一部分(例如标题、领域、背景、概述、摘要、附图等等)的内容,除非相反地清楚说明,否则不需要包括在这里的任一权利要求中。此外,任何动作都能够被重复,任何动作都能够由多个实体执行,和/或任何元件都能被复制。此外,任何动作或者元件都可被排除,动作的顺序可以变化,和/或元件的相互关系可以变化。因此,说明书和附图应被认为在本质上是说明性的而不是限制性的。此外,当在这里描述任何数量或者范围时,除非另外清楚声明,否则该数量或者范围是近似的。当在这里描述任何范围时,除非另外清楚声明,否则该范围包括这里所有的值和这里所有的子范围。这里被引入作为参考的任何材料(例如美国专利、美国专利申请、书本、文章等等)中的任何信息只在这种程度上被引入作为参考,即在这种信息和这里所述的其他陈述和附图之间不存在冲突。在有这种冲突(包括将会使这里的或者寻求其优先权的任何权利要求无效的冲突)的情况下,在这种被引入作为参考的材料中的任何这种冲突信息在这里尤其不被引入作为参考。
权利要求
1.一种包括多个动作的方法,该方法包括在包括存储装置的可编程逻辑控制器处接收产生包括预定的多个记录的数据日志的请求,所述数据日志适合于从过程接收数据,每个记录包括记录类型字段;通过只将所述预定的多个记录中的第一记录的记录类型字段中的头标记代码和最后的记录的记录类型字段中的无效代码写到所述数据日志中来对所述数据日志进行初始化,所述最后的记录在逻辑上在所述第一记录之前并且邻近于所述第一记录;以及自动地使所述第一记录无效。
2.按照权利要求1所述的方法,此外包括组织所述存储装置以保存所述预定的多个记录和附加记录。
3.按照权利要求1所述的方法,此外包括通过记录类型字段识别无效记录。
4.按照权利要求1所述的方法,此外包括通过记录类型字段识别有效记录。
5.按照权利要求1所述的方法,此外包括响应于获得用于填充第一记录的数据,将头标记代码写到所述多个记录中的第二记录的记录类型字段中。
6.按照权利要求1所述的方法,此外包括重写所述预定的多个记录中的最老的记录。
7.按照权利要求1所述的方法,此外包括响应于获得用于填充第一记录的数据,将头标记代码写到所述多个记录中的第二记录的记录类型字段中;并且然后将数据写到所述多个记录中的第一记录的至少一个字段中,其中有效代码被写到所述第一记录的记录类型字段中。
8.按照权利要求1所述的方法,此外包括响应于获得用于填充第一记录的数据,将头标记代码写到所述多个记录中的第二记录的记录类型字段中;将数据写到所述多个记录中的第一记录的至少一个字段中,其中有效代码被写到所述第一记录的记录类型字段中;以及从所述第二记录中读回记录类型字段,以验证写所述第二记录已经发生。
9.按照权利要求1所述的方法,此外包括从所述存储装置上载所述多个记录中的至少一个。
10.按照权利要求1所述的方法,此外包括从所述存储装置上载所述多个记录中的至少一个,其中所述上载动作包括读取逻辑上位于在记录类型字段中包括头标记代码的记录之前的记录。
11.按照权利要求1所述的方法,此外包括从所述存储装置上载所述多个记录中的至少一个,其中所述上载动作以最新的记录开始并且继续直到到达在记录类型字段中包括有效代码的最老的记录。
12.按照权利要求1所述的方法,此外包括从所述存储装置上载所述多个记录中的至少一个;以及如果在所述上载动作期间请求新记录添加,则在所上载的包括与新记录添加请求相关的数据的记录中分配无效的记录类型代码。
13.按照权利要求1所述的方法,此外包括从所述存储装置上载所述多个记录中的至少一个;以及如果在所述上载动作期间请求新记录添加,则响应于该请求将头标记代码写到所述多个记录中的第二记录的记录类型字段中;将数据写到所述多个记录中的第一记录的至少一个字段中,其中有效代码被写到所述第一记录的记录类型字段中。
14.一种包括多个动作的方法,该方法包括在包括存储盒式磁盘的可编程逻辑控制器处确定存储装置组织结构不为所述可编程逻辑控制器所知;在存储装置上定位数据日志,该数据日志包括预定的多个记录,每个记录包括记录类型字段;在所述预定的多个记录中的至少一个记录的记录类型字段中定位头标记代码;如果在所述预定的多个记录中找到多于一个的头标记代码,则找到包括头标记代码的逻辑上第一记录,其中所述逻辑上第一记录是要用过程数据填充的下一记录;以及自动地使所述逻辑上第一记录无效。
15.按照权利要求13所述的方法,此外包括在所述预定的多个记录中的至少一个记录的记录类型字段中搜寻无效代码。
16.按照权利要求13所述的方法,此外包括在所述预定的多个记录中搜寻所述预定的多个记录中的至少一个记录的记录类型字段中的无效代码;以及如果在所述预定的多个记录中的至少一个记录的记录类型字段中找到无效代码,则从包括无效代码的任何记录中确定最靠近的记录,所述最靠近的记录在逻辑上位于在记录类型字段中包括头标记代码的记录之前。
17.按照权利要求13所述的方法,此外包括在所述预定的多个记录中的至少一个记录的记录类型字段中搜寻无效代码;以及如果在所述预定的多个记录的记录类型字段中没有找到无效代码,则确定数据日志完全用有效记录填充。
18.按照权利要求13所述的方法,其中由于供电中断,所以存储装置组织结构是未知的。
19.按照权利要求13所述的方法,其中由于不同的存储盒式磁盘被添加到可编程逻辑控制器中,所以存储装置组织结构是未知的。
20.一种包括所存储的指令的机器可读介质,所述指令用于在包括存储装置的可编程逻辑控制器处接收产生包括预定的多个记录的数据日志的请求,所述数据日志适合于从过程接收数据,每个记录包括记录类型字段;通过只将所述预定的多个记录中的第一记录的记录类型字段中的头标记代码和所述预定的多个记录中的最后的记录的记录类型字段中的无效代码写到所述数据日志中来对所述数据日志进行初始化;以及自动地使所述第一记录无效。
21.一种包括所存储的指令的机器可读介质,所述指令用于在包括存储盒式磁盘的可编程逻辑控制器处确定存储装置组织结构不为所述可编程逻辑控制器所知;在存储装置上定位数据日志,该数据日志包括预定的多个记录,每个记录包括记录类型字段;在所述预定的多个记录中的至少一个记录的记录类型字段中定位头标记代码;如果在所述预定的多个记录中找到多于一个的头标记代码,则找到包括头标记代码的逻辑上第一记录,其中所述逻辑上第一记录是要用过程数据填充的下一记录;以及自动地使所述逻辑上第一记录无效。
22.一种在机器可读介质上所编码的机器可读数据结构,该机器可读数据结构包括接收可编程逻辑控制器的数据日志的过程数据,所述数据日志包括预定的多个记录,每个记录包括记录类型字段,其中至少一个记录的记录类型字段包括自动使记录无效的头标记代码。
全文摘要
某些示范性实施例包括一种包括多个动作的方法,该方法包括在包括存储装置的可编程逻辑控制器处接收产生数据日志的请求,该数据日志适合于从过程接收数据;通过只将数据日志中的第一记录的记录类型字段中的头标记代码和最后的记录的记录类型字段中的无效代码写到数据日志中来对数据日志进行初始化,最后的记录在逻辑上在第一记录之前并且邻近于第一记录。
文档编号G06F11/00GK1922556SQ200580005481
公开日2007年2月28日 申请日期2005年2月18日 优先权日2004年2月20日
发明者T·L·福尔顿, M·S·博格斯, S·M·豪斯曼, W·H·约翰逊 申请人:西门子能量及自动化公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1