CN102122273A - 基于硬件的具有内置定时器的连接状态机 - Google Patents
基于硬件的具有内置定时器的连接状态机 Download PDFInfo
- Publication number
- CN102122273A CN102122273A CN2011100065801A CN201110006580A CN102122273A CN 102122273 A CN102122273 A CN 102122273A CN 2011100065801 A CN2011100065801 A CN 2011100065801A CN 201110006580 A CN201110006580 A CN 201110006580A CN 102122273 A CN102122273 A CN 102122273A
- Authority
- CN
- China
- Prior art keywords
- processor
- timer
- state machine
- monitoring system
- connection monitoring
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/045—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了基于硬件的具有内置定时器的连接状态机。本发明提供一种用于工业控制器的硬件实施的连接监测系统40。连接监测系统40包括独立于处理器30运行的状态机42来监测连接到控制器的输入/输出装置的状态。在可由状态机42存取的部分存储器44中建立定时器阵列。时间缓冲器46和命令缓冲器48被用来在处理器30和状态机42之间进行通信。
Description
技术领域
本文公开的主题内容总体涉及用于控制工业处理或机械的工业控制器。更具体而言,公开了基于硬件的用于管理与到工业控制器的连接相关联的定时器的系统。
背景技术
工业控制器是用于控制工厂自动化等的专用计算机。由工业控制器执行的控制程序通常针对特定控制应用而被高度地定制化。通常使用特殊的控制语言,比如“继电器梯形逻辑图”(“relay ladder logic”)来便于对器件编程。所存储的控制程序可以在一系列执行周期中连续地执行、周期性地重复或者基于事件来执行。由于与工业处理(比如组装线)的停机时间相关联的可能高成本,所以工业控制器必须确保指令的可预计的高速执行,用于可靠的实时控制。
在所存储的程序的指引下,工业控制器周期性地检查反映所控制的处理的状态的一系列输入,并改变影响对该处理的控制的输出。输入和输出可以是二进制的(即“开”或“关”),或者还可以使用取值范围连续的模拟输入和输出。二进制输入和输出可由单个数据比特表示;模拟输入和输出可由多个比特数据字表示。
为了确保对处理的可预计的控制,控制器与输入和输出之间的通信必须高度可靠并在明确限定的时间段进行。控制器还必须检验连接到控制器的输入和输出(I/O)装置持续正确工作。通常而言,控制器包含周期性地监测I/O装置的工作的任务。该监测任务可例如检查I/O装置最近与控制器通信。如果I/O装置停止与控制器通信,则控制器可选地可试图恢复与I/O装置的通信或者设置指示I/O装置停止工作的错误消息。
然而,随着工业处理变得复杂,数目越来越多的装置连接到工业控制器。数量越来越多的装置使监测任务执行越来越长的时间,从而导致可供控制程序使用的处理时间减少。如果有过多装置连接到工业控制器,则控制器可能不再能够确保对控制程序的可预计的高速执行。目前,在监测I/O装置的任务请求过多处理时间和带宽之前,工业控制器能够监测大约250个以下的I/O装置。
因此,期望提供独立于处理器地执行检验连接到工业控制器的I/O装置持续正确工作的监测系统。还期望显著地增加能够被监测的I/O装置的数量,以适应更复杂的工业控制器所需的越来越多的连接数量。
发明内容
本发明提供一种硬件实施的连接监测系统。定时器阵列为处理器与I/O装置之间的每个连接建立输入和输出连接定时器,其中所述I/O装置可以是任何能够向处理器提供输入或输出信号的装置。状态机周期性地访问定时器阵列,以更新定时器的累加值,并监测是否有任一定时器达到了预设的定时器到期值(timer done value)。如果连接定时器达到定时器到期值,则状态机将该连接定时器的状态加载到事件缓冲器中,并生成用于处理器的中断。处理器读取事件缓冲器,识别到期的定时器是输入定时器还是输出定时器,并相应地采取行动。
在本发明的一实施例中,一种用于工业控制器的连接监测系统包括处理器,处理器执行程序以周期性地与连接到所述处理器的多个输入/输出(I/O)装置进行通信。硬件定时器阵列包括与所述I/O装置中的每一个相关联的至少一个连接定时器。状态机独立于处理器地执行以监测每个连接定时器,以响应于定时器的状态变化向处理器提供信号。
因此,本发明的特征在于,一种独立于处理器运行的系统,该系统使处理器上可用的处理时间增加并监测I/O装置与处理器之间的连接。
根据本发明的另一方面,定时器阵列可将输入定时器和输出定时器分配给连接到处理器的I/O装置中的每一个。因此,本发明的另一特征在于,该定时器阵列支持任一I/O装置的双向通信。
根据本发明的又一方面,该连接监测系统包括在硬件定时器阵列与状态机之间的专用接口。该专用接口提供状态机对定时器阵列的快速访问,并减少用于对控制器中的存储器进行存取的带宽需求。
根据本发明的另一方面,该连接监测系统包括用于在处理器与状态机之间传输消息的命令缓冲器,以及用于根据连接定时器的状态变化在状态机与处理器之间传输信号的事件缓冲器。连接监测系统还可包括至少一个附加的事件缓冲器,并且状态机可选择性地将来自每个定时器的信号加载至事件缓冲器中的一个。多个事件缓冲器可例如允许状态机在将定时器的状态传输给处理器之前区分出状态变化事件(比如输入或输出时间到期事件),或者事件缓冲器可由单独的处理器处理或由在单个处理器上运行的单独的处理内核处理。
该连接监测系统还可包括至少一个额外的状态机,其中每个状态机监测定时器阵列的一部分。可选地,多个状态机允许更频繁地扫描定时器,或者允许减慢时钟速度。
在本发明的另一实施例中,一种用于工业控制器的连接监测系统包括第一处理器和第二处理器。这些处理器中的至少一个执行程序,以周期性地与多个输入/输出(I/O)装置中的至少一个进行通信。硬件定时器阵列包括与所述多个I/O装置中的每一个相关联的至少一个定时器。第一状态机独立于每个处理器地监测每个定时器,以根据定时器的到期来向处理器中的至少一个提供信号。该连接监测系统还包括在硬件定时器阵列与第一状态机之间的专用通信信道。命令缓冲器在处理器中的至少一个与第一状态机之间传输消息,第一事件缓冲器根据定时器的到期在第一状态机与至少一个处理器之间传输信号。
根据本发明的另一方面,该连接监测系统可包括至少一个额外状态机,这些状态机中的每一个监测定时器阵列的一部分的状态。该连接监测系统还可包括第二事件缓冲器。每个定时器的状态可被选择性地加载至事件缓冲器中的一个中。处理器可以不同的配置与状态机相接。例如,第一处理器可从第一事件缓冲器读取,而第二处理器可从第二事件缓冲器读取。可选地,第一处理器可与命令缓冲器相接,而第二处理器可与事件缓冲器相接。
因此,本发明的另一特征在于,状态机可与多处理器控制器相接。可灵活地将该系统配置成使得每个处理器与状态机的命令缓冲器或事件缓冲器相接,或者,可选地,状态机可包括多个命令缓冲器或事件缓冲器,使得每个处理器与每个缓冲器执行部分连接。
基于详细说明和附图,本领域技术人员应当理解本发明的这些和其它优点和特征。然而应理解,上述详细说明和附图,尽管表明本发明的优选实施例,但是作为示例给出的,而绝非限定。在不偏离本发明的精神的情况下,在本发明的范围内可做出许多变化和修改,并且本发明包括所有这样的修改。
附图说明
在附图中图示出本文中所公开的主题内容的不同的示例性的实施例,其中,始终相同的附图标记表示相同的部件,在附图中:
图1是结合了根据本发明的基于硬件的连接状态机的工业控制器的框图;
图2是图1中的处理器模块的框图,图示出根据本发明的基于硬件的连接状态机的一种实施例;
图3是图1中的处理器模块的框图,图示出根据本发明的基于硬件的连接状态机的另一实施例;
图4是图示出根据本发明一种实施例的状态机的状态的流程图;
图5是图示出根据图4中示出的状态机的处理定时器阵列的步骤的流程图;
图6是根据图5中示出的处理的读取定时器阵列的步骤的流程图;
图7是根据图5中示出的处理的更新定时器的累加值的步骤的流程图;
图8是根据图4中示出的状态机的处理事件缓冲器的步骤的流程图;以及
图9是根据图4中示出的状态机的处理命令缓冲器的步骤的流程图。
在描述附图中图示的本发明的不同实施例时,为清楚起见将采用特定术语。然而,这并非旨在使本发明限制于如此选择的这些特定术语,应理解,每个特定术语包括以相似方式工作以实现类似目的的所有的技术上的等同表述。例如,常常使用词语“连接”、“附连”或与其类似的术语。它们并不限于直接连接,而是包括那些被本领域技术人员认为等同的、通过其它部件的连接。
具体实施方式
参照附图1,结合了本发明的工业控制器10通常包括电源12、处理器模块14以及多个I/O模块16。I/O模块16通过I/O信号线18连接到受控处理22中的I/O装置20。在本领域中已知,模块14或16中的每个模块可被插入机架15中并通过背板17进行通信(参见图2和图3)。另外,可以包括远程I/O机架25。基本机架15可通过连接模块13和19连接到远程架25,连接模块13和19被插入每个机架15和25中并通过通信线缆21连接。连接模块13或19可以是以太网交换机、I/O扫描仪或者任何其它适合于在两个机架15与25之间进行通信的装置。远程I/O机架25可类似地包括通过I/O信号线18连接到受控处理22中的I/O装置20的I/O模块16。
下面参照图2,图示出本发明的单个处理器的实施例。处理器模块14包括被配置为执行程序并与主存储器32进行通信的处理器30。处理器模块14包括连接器34以将模块14连接到背板17。处理器30可跨背板17发送或接收信号36,包括来自I/O模块16的或发送给I/O模块16的信号36。
处理器模块14还包括与处理器30通信的连接监测系统40。连接监测系统40包括与第二存储器44通信的状态机42。优选地,在状态机42和第二存储器44之间存在专用接口43,比如数据总线。状态机42还通过事件缓冲器46和命令缓冲器48与处理器30通信。连接监测系统40可另外生成指示数据已被写入事件缓冲器46的中断信号50给处理器。优选地,处理器30和连接监测系统40被实施为单个专用集成电路(ASIC)上的单独块。可选地,可使用任意数量的ASIC或者单个处理器、存储器和缓冲器件,来实施如图2中所示的处理器30和连接监测系统40。
参照图3,图示出本发明的双处理器的实施例。处理器模块14可包括第一处理器30和第二处理器31。处理器30和31中的每个处理器都与主存储器32进行通信。处理器模块14包括连接器34以将模块14连接到背板17。如图3中所示,第一处理器30可跨背板发送或接收信号36,包括来自I/O模块16或发送给I/O模块16的信号36。可选地,处理器模块14可被配置为使得第二处理器31或者两个处理器30、31都可与I/O模块16进行通信。
处理器模块14还包括连接监测系统40。连接监测系统40包括与第二存储器44通信的状态机42。优选地,在状态机42和第二存储器44之间存在专用通信路径43,从而允许状态机42对存储在第二存储器44中的数据进行快速存取。如图3所示,连接监测系统40与处理器30、31中的至少一个通信,优选地与这两个处理器都通信。状态机42可通过事件缓冲器46与第一处理器30通信,通过命令缓冲器48与第二处理器31通信。数据已被写入事件缓冲器46使得生成中断信号50给第一处理器30。可选地,处理器模块14可被配置为使得处理器30、31中的每个处理器都可通过事件缓冲器46和命令缓冲器48之一或者通过这两者与状态机42进行通信。优选地,处理器30、31中的每个处理器和连接监测系统40都被实施为单个专用集成电路(ASIC)上的单独块。可选地,可使用任意数量的ASIC或者单个处理器、存储器和缓冲器件,来实施如图3中所示的多个处理器30、31和连接监测系统40。
在工作中,连接监测系统40使用状态机42来管理硬件定时器阵列128,用于监测处理器30与I/O装置20中的每个I/O装置之间的每个连接的状态。定时器阵列128被存储在第二存储器44中,使得状态机42具有通过接口43的对定时器阵列128的专用存取。参照图4,状态机42通常如下执行:在步骤102处理定时器阵列128,在步骤104处理事件缓冲器46,在步骤106处理命令缓冲器48。图4中示出的步骤是状态机42的示例性步骤,应理解,在不背离本发明的范围的情况下,这些步骤可以以任意顺序来执行,并且在状态机42中可以包括额外的状态。
在步骤102,状态机42处理定时器阵列128中的连接定时器130中的每个连接定时器。参照图6,每个定时器130都包括用于存储至少一个累加值132、预设值134和状态136的寄存器。累加值132识别定时器130的当前执行时间,并优选地是从预设值134到0递减或者从0到预设值134递增的整数。预设值134是通过将要运行的定时器的时间长度除以定时器递增或递减的周期速率来确定的。状态寄存器136包括一个或更多状态标识,这些状态标识例如指示定时器到期、定时器在等待被加载到事件缓冲器或者定时器达到了最小设置点。
硬件定时器阵列128包括与处理器30和I/O装置20中的一个I/O装置之间的每个连接相关联的至少一个(一对)连接定时器130。连接定时器130可被分配给到处理器30的任何连接,包括但不限于,来自I/O装置20、额外的控制器10、网络接口模块或者用户接口的模拟或数字输入或输出。每个I/O装置20将分别提供输入值给处理器30或者从处理器30接收输出值。因为工业控制器10要求高度可靠、并以明确限定的间隔重复地执行程序,所以,优选地,处理器14以预定的请求数据包间隔(Requested Packet Interval,RPI)从I/O装置20中的每个接收I/O信号18或者传输I/O信号18给I/O装置20中的每个。另外,控制器10可被配置成在处理器30与每个I/O装置20之间建立“心跳”通信。心跳是以比数据通信之间的间隔更长的时间间隔传输的通信,并被用于检验I/O装置20正确运行。例如,处理器30可周期性地发送消息给输入装置,以检验其是否起作用和/或其是否能够改变状态。输出装置还可被配置成周期性地发送消息给处理器30,以表明其正在接收输出信号18和其当前正确运行。
数据信号与心跳信号的组合导致许多I/O装置20需要处理器30与I/O装置20之间的双向通信。通过将一对连接定时器130与每个I/O装置20相关联,状态机42能够监测传送给处理器30和从处理器30传送来的通信。每个定时器130的预设寄存器134可被设置成不同的值,使得可以不同的速率(例如针对I/O数据的或者针对心跳信号的速率)监测到I/O装置20和来自每个I/O装置20的通信。
尽管工业控制器10要求处理器30与I/O装置20之间的可靠的通信,但预计会发生一些通信错误,并且这也是可接受的。如果处理器30或者I/O装置20未能在RPI内接收通信,则可以重发原始通信或者可以发送新的通信。控制器10可被配置成识别在采取行动之前可能发生的处理器30与I/O装置20之间的成功通信之间所允许的最大时间长度。例如,处理器30可被配置成使得:成功数据通信之间的最大时间长度是RPI的四倍,或者成功心跳通信之间的最大时间长度是RPI的二十倍。
参照图5,在步骤108通过从阵列128读取定时器数据来开始处理定时器阵列128。图6中图示出从阵列128读取定时器数据的一个示例性实施例。状态机42可被配置成通过步骤102每个周期读取“x”个定时器130。例如,每次状态机执行从定时器阵列128的读取时,可读取定时器130中的一个或全部。优选地,在从定时器阵列128的每次读取中读取10个定时器130。在步骤122,状态机42提取当前索引值“i”,以识别下一次读取要在定时器阵列128内发生的位置。根据步骤124,状态机42随后从定时器阵列128读取索引“i”处的“x”个定时器130。在状态机42完成对定时器130的读取之后,根据步骤126可使索引“i”递增或递减,使得索引指向相邻组的定时器130以准备下一读取周期。重复该序列直至读取了全部定时器130。读取全部定时器所需的周期数量取决于每个周期读取的定时器130的数量“x”、阵列128中的定时器130的总数“n”以及执行读取的时钟频率。定时器阵列128可被配置为存储至少500个、优选2000个以下的定时器130。状态机42被配置为足够快地执行,使得每10μs(优选地每2μs至4μs)至少读取一次整个定时器阵列。
再次参照图5,当从定时器阵列128提取了定时器数据时,在步骤110检查每个定时器130的状态。对每个定时器130的状态的检查包括比较累加值132,以确定定时器是否已经到期。如果定时器130已到期,则状态机42设置状态寄存器136中的到期标识,并重置累加值132,使得定时器能够在下一周期开始计数。如果定时器130尚未到期,则状态机42将根据步骤112更新累加值。
参照图7,根据针对该定时器130选择的分辨率来更新每个累加值132。为了针对每个定时器130减少所需的存储器分配,一系列分辨率定时器可执行,使得仅当所指定的分辨率定时器到期时才基于扫描来更新累加值。例如,可给分辨率定时器分配10或100的预设值。分辨率定时器连续地执行,使得每1/10或1/100个周期就设置分辨率定时器到期标识。每个定时器130可被配置为每次扫描时更新,或者可选地只在设置适当的分辨率定时器到期标识时才更新。因此,当根据步骤112更新定时器时,通过步骤140读取该定时器的分辨率指示器,以确定定时器130的累加值132更新的频繁程度。在步骤142,检查适当的分辨率定时器到期标识。在步骤144状态机42确定是否设置正确的分辨率定时器的到期标识,以确定累加值132是否需要更新。在需要的情况下在步骤146更新累加值132。可想到可实施任何适当组分辨率定时器。优选地,存在允许将针对定时器130的RPI值的范围设置为从大约10μs到至少10s的分辨率定时器。
再次参照图5,在更新累加值132之后,状态机142检查在周期中读取到的针对定时器130中的任一个的到期标识是否设置了。如果设置了到期标识且事件缓冲器46具有可用的存储空间,则状态机42将到期的定时器130的状态记入事件缓冲器46。如果在该周期中没有定时器到期,则状态机42转为处理缓冲器。
事件缓冲器46被用来将事件或者定时器130状态上的变化(比如定时器130的到期)从状态机42传输到处理器30。因为事件缓冲器130中的事件可被用来强制从处理器30到I/O装置20的写入,所以缓冲器46中的事件还可包括从处理器30发送给状态机42的立即输出命令,从而在定时器130到期之前触发通信。
如步骤104所表示,处理事件缓冲器46包括监测状态机中的定时器事件和从处理器30输出命令以由处理器30触发动作。下面参照图8,在步骤150,状态机42将每个定时器130的状态寄存器136评估为在之前的扫描期间所读取到的。如果针对任意的定时器130设置了定时器到期标识,则在步骤152状态机42将定时器信息放入事件缓冲器46的队列中。被写入队列的定时器信息可包括例如识别数、状态寄存器136或者累加寄存器132。在步骤154,状态机42确定处理器30是否已向状态机42发送立即输出给I/O装置20的命令。如果处理器30已命令立即输出,则状态机42将提取与该I/O装置20相关联的输出定时器130的定时器信息。在步骤155,状态机42检验从向指定的I/O装置20的先前输出起是否过了足够时间,如果过了足够时间,则在步骤156状态机42将定时器的状态放入事件缓冲器46的队列。
事件缓冲器46优选是由状态机42管理的“先进先出”(FIFO)缓冲器。事件缓冲器46具有有限的深度并以周期性间隔传输数量有限的事件给处理器30。在步骤158,状态机42检查队列中是否有事件要被传输给处理器30。如果队列中没有事件,则针对该间隔对事件缓冲器的处理结束。如果队列中有事件要被传输,则在步骤160状态机42检查事件缓冲器46中是否有空间来添加另一事件。如果事件缓冲器46中有空间,则在步骤162状态机42将该队列中的下一事件移至事件缓冲器46中。在步骤164,状态机确定队列中是否还剩有额外事件。如果队列中剩有事件,则状态机返回步骤160以检查事件缓冲器46中是否有任何剩余空间。如果队列中的所有事件都已被转移至事件缓冲器46,则状态机42生成中断信号50,以通知处理器30在事件缓冲器46中有事件需要处理。在一实施例中,事件缓冲器46具有要在每个间隔期间传输的16个事件的深度。可选地,事件缓冲器46可具有任何合适的深度,或者连接监测系统40可包括多个事件缓冲器46。
处理器30处理来自连接监测系统40的中断信号50以及来自I/O装置20或发送给I/O装置20的信号36。在正常工作期间,例如输入模块将周期性地传送输入信号36给处理器30,而处理器30将发送输出信号36给输出模块。在处理器30与I/O装置20之间完成正常通信时,处理器30可发送重置定时器命令给状态机42,从而重置与针对各个I/O装置20的输入或输出通信相关联的定时器130的累加寄存器。
如果来自连接监测系统40的中断信号50被设定了,则处理器从事件缓冲器46读取事件并采取适当的动作。该事件可表明在预定的时限内尚未发生正常通信或者处理器30要处理心跳通信。如果在预定时间内输入模块未与处理器30通信,则处理器可宣布故障状态。取决于发生故障的输入装置对受控的处理有多关键,处理器30可被预先配置成采取不同等级的动作。处理器30例如可允许受控的处理继续进行而仅仅发出故障消息,或者处理器30可要求立即关断受控的处理。如果处理器30在预定时间内尚未成功地与输出模块通信,则处理器30可立即发送消息给输出模块。优选地,还预先根据特定的输出模块来预先配置由处理器30响应于输出模块超时而采取的动作。
在处理器30上执行的程序也可要求立即而不是周期性地更新I/O装置20中的一些I/O装置20。处理器30可向状态机42发送识别期望向哪个I/O装置立即输出的命令。状态机42将定时器信息放入事件缓冲器46中并设置中断信号50。处理器30处理中断信号50并发送消息给所识别的I/O装置20。
尽管使用状态机42来处理立即输出命令使该特征结合由状态机42执行的通信监测,但可能存在以过频的时间间隔来来命令立即输出给一个或更多I/O装置20的程序,使得状态机42不能正确地管理定时器阵列128。因此,当状态机42收到立即输出请求时,状态机42比较定时器130的与目标I/O装置20相关联的预设寄存器134的值和累加器寄存器132的值。状态机42阻止产生立即输出请求,直至从先前的输出请求起经过了最小时间。优选地,在允许后续输出请求被处理之前要经过在预设寄存器中设置的时间的至少25%。
命令缓冲器48允许处理器30与定时器阵列128连接。参照图4和9,在步骤106状态机42处理来自命令缓冲器48的命令。在步骤170,状态机42周期性地读取命令缓冲器48,以确定处理器30是否已传送命令给状态机42。处理器30例如可根据连接到哪个I/O装置20来使定时器阵列128中的定时器130工作或者不工作。可选地,处理器30还可检查定时器130的状态、将偏置值写入定时器130、或者命令立即输出给I/O装置20中的一个。在步骤172,状态机42读取命令,在步骤174,状态机响应于该命令来采取适当的动作。如果该命令要求答复,例如处理器30请求定时器130的状态,则在步骤176状态机42将返回数据写入命令缓冲器48。
因为大量定时器130可以具有相同的RPI,因此处理器30可将定时器130配置得彼此偏移。例如,控制器10可包括许多相同类型的I/O装置20。这些I/O装置20中的每一个可在同一RPI被写入或者具有接收到的心跳信号。因此,与这些I/O装置20的通信相关联并被配置为监测与这些I/O装置20的通信的定时器130中的每一个会初始地具有相同的预设值并且会在同时到期。为了防止事件缓冲器46的队列的可能的过载,在定时器130中可初始设置偏移或可变的偏离,以将定时器130的到期错开。在一实施例中,处理器30可将不同的初始值加载到具有相同的默认预设值的每个定时器130的累加器寄存器132中,以使得这些定时器的初始到期以不同的时间间隔发生。定时器130的后续到期将从初始到期起以预设间隔发生,从而使定时器130在彼此偏移的时间持续到期。
再次参照图3,可想到多个处理器30可存在于处理器模块14上并与连接监测系统40相接。如另一实施例,单个处理器30可具有利用平行处理技术以与具有多个处理器30的模块14相似的方式工作的多个核。可想到,多个处理器30或者多核处理器使得本发明能够有许多配置。例如图3示出与命令缓冲器48接口相接的第一处理器30。该第一处理器30可被例如用来初始配置定时器阵列128,或者用来处理要从处理器30上执行的程序发送给状态机42的命令。第二处理器31可与事件缓冲器46相接。第二处理器31可被配置为监测事件缓冲器46和处理由状态机42生成的中断,该中断表明事件缓冲器46中存在事件。
在另一实施例中,连接监测系统40可包括多个命令缓冲器48和多个事件缓冲器46,每个缓冲器都基本上如上所述地配置。每个缓冲器可被配置为与定时器阵列128的一部分相接,或者与多个处理器30或31之一相接,或者与单个处理器中的多核相接。还可想到,可包括多个状态机42以管理定时器阵列128的多个部分,并且这多个状态机42可类似地与多个处理器30或31之一相接、或者与单个处理器中的多核相接。又一实施例可使用处理器30或31、事件缓冲器46、命令缓冲器48和状态机42可变的数量和互连,以实现对定时器事件的响应和处理的可变效率。
应该理解,本发明不限于此处陈述的部件的布置和构造的细节的应用。本发明能够有其它实施例,并能够以多种方式实践或实施。前述方案的变化和修改均在本发明的范围之内。还应该理解,此处公开和限定的本发明扩展至基于说明书和/或附图提到的或显见的各个特征中的两个或更多特征的所有替选组合。所有这些不同的组合构成本发明的各种替选方面。此处描述的实施例解释了实践本发明的已知最佳方式,并使得本领域的其他技术人员能够利用本发明。
部件列表
10 工业控制器
12 电源
13 连接模块
14 处理器模块
15 机架
16 输入/输出模块
17 背板
18 输入/输出信号
19 连接模块
20 输入/输出装置
22 受控处理
25 远程机架
30 第一处理器
31 第二处理器
32 主存储器
34 连接器
36 信号
40 连接监测系统
42 状态机
43 专用接口
44 第二存储器
46 事件缓冲器
48 命令缓冲器
50 中断信号
102 步骤:处理定时器阵列
104 步骤:处理事件缓冲器
106 步骤:处理命令缓冲器
108 步骤:从定时器阵列读取
110 步骤:检查定时器状态
112 步骤:更新累加器
114 步骤:检查定时器是否过期
116 步骤:设置定时器过期
120 步骤:获取要读取的定时器的数目
122 步骤:获取定时器阵列的索引
124 步骤:读取定时器
126 步骤:使定时器的索引增加
128 定时器阵列
130 连接定时器
132 累加器寄存器
134 预设寄存器
136 状态寄存器
140 步骤:读取分辨率指示器
142 步骤:检查分辨率定时器
144 步骤:检查累加器是否要被更新
146 步骤:更新累加器
150 步骤:检查定时器是否过期
152 步骤:将定时器放在队列中
154 步骤:检查命令缓冲器
155 步骤:检查事件之间的最小时间
156 步骤:将命令放在队列中
158 步骤:检查队列是否为空
160 步骤:检查事件缓冲器是否有空间
162 步骤:加载事件缓冲器
164 步骤:检查队列是否为空
166 步骤:设置中断
170 步骤:检查命令缓冲器
172 步骤:读取命令缓冲器
174 步骤:处理命令
176 步骤:将返回数据写入命令缓冲器
Claims (10)
1.一种用于工业控制器的连接监测系统,包括:
处理器,执行程序以周期性地与连接到所述处理器的多个输入/输出装置进行通信;
硬件定时器阵列,包括与所述多个输入/输出装置中的每一个相关联的至少一个连接定时器;
状态机,独立于所述处理器运行,以监测每个连接定时器并响应于所述连接定时器的状态变化来向所述处理器提供信号。
2.根据权利要求1所述的连接监测系统,还包括在所述硬件定时器阵列与所述状态机之间的专用接口。
3.根据权利要求1所述的连接监测系统,其中,每个连接定时器包括累加器寄存器,以及所述状态机控制所述累加器寄存器。
4.根据权利要求1所述的连接监测系统,还包括:
命令缓冲器,在所述处理器与所述状态机之间传送消息;以及
事件缓冲器,响应于所述连接定时器的状态变化在所述状态机和所述处理器之间传送每个信号。
5.根据权利要求4所述的连接监测系统,还包括由所述状态机生成的给所述处理器的中断信号,所述状态机将该信号加载到所述事件缓冲器中。
6.一种用于工业控制器的连接监测系统,包括:
第一处理器;
第二处理器,其中,所述第一处理器和第二处理器中的至少一个执行程序以周期性地与多个输入/输出装置中的至少一个进行通信;
硬件定时器阵列,包括与所述多个输入/输出装置中的每一个相关联的至少一个连接定时器;
第一状态机,独立于所述处理器中的每一个运行,以监测每个连接定时器,以响应于所述连接定时器的状态变化向所述处理器中的至少一个提供信号。
7.根据权利要求6所述的连接监测系统,还包括至少一个额外的状态机,其中,所述状态机中的每一个监测所述定时器阵列的一部分。
8.根据权利要求6所述的连接监测系统,还包括:
命令缓冲器,在所述处理器中的至少一个与所述第一状态机之间传送消息;以及
第一事件缓冲器,响应于所述连接定时器的状态变化在所述第一状态机和所述至少一个处理器之间传送信号。
9.根据权利要求8所述的连接监测系统,还包括:
第二事件缓冲器,其中,所述第一状态机选择性地将每个信号加载至所述事件缓冲器中的一个。
10.一种在工业控制系统中使用状态机和硬件定时器阵列来监测处理器与多个输入/输出装置之间的通信的方法,所述硬件定时器阵列包括与所述多个输入/输出装置中的每一个相关联的至少一个连接定时器,所述方法包括以下步骤:
以周期性间隔使用所述状态机扫描所述硬件定时器阵列,其中,每个连接定时器的持续时间是所述处理器与所述输入/输出装置中的一个之间的输入和输出中的一个的时长的倍数;以及
响应于所述连接定时器中的一个的状态变化从所述状态机向所述处理器提供信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/684,260 | 2010-01-08 | ||
US12/684,260 US20110173354A1 (en) | 2010-01-08 | 2010-01-08 | Hardware Based Connection State Machine With Built In Timers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102122273A true CN102122273A (zh) | 2011-07-13 |
Family
ID=44044948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100065801A Pending CN102122273A (zh) | 2010-01-08 | 2011-01-10 | 基于硬件的具有内置定时器的连接状态机 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110173354A1 (zh) |
EP (1) | EP2343650A3 (zh) |
CN (1) | CN102122273A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105629926A (zh) * | 2014-11-26 | 2016-06-01 | 洛克威尔自动控制技术股份有限公司 | 工业控制器中的事件生成管理 |
CN109684056A (zh) * | 2018-12-07 | 2019-04-26 | 咪咕文化科技有限公司 | 一种定时器实现方法及装置、调度器、存储介质 |
CN112311495A (zh) * | 2019-07-24 | 2021-02-02 | 广东美的制冷设备有限公司 | 运行时长获取方法、装置、通信单元、电控板及存储介质 |
CN113986814A (zh) * | 2021-10-15 | 2022-01-28 | 浙江大学 | 一种基于微处理器的状态机通用表示及执行方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012108794A (ja) * | 2010-11-18 | 2012-06-07 | Fujitsu Ltd | 中継装置、中継方法およびデバイス管理装置 |
EP2798785B1 (en) * | 2011-12-29 | 2017-11-15 | Schneider Electric Industries SAS | Updating parameters in a network |
US8976035B2 (en) | 2013-03-14 | 2015-03-10 | Freescale Semiconductor, Inc. | Methods and apparatus for sensing motion of a portable container and providing human perceptible indicia based on the sensed motion |
US10445169B2 (en) * | 2016-04-08 | 2019-10-15 | Nxp Usa, Inc. | Temporal relationship extension of state machine observer |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030025612A1 (en) * | 1999-08-16 | 2003-02-06 | Holmes John K. | Wireless end device |
US7310314B1 (en) * | 2002-06-10 | 2007-12-18 | Juniper Networks, Inc. | Managing periodic communications |
US20090083570A1 (en) * | 2007-09-25 | 2009-03-26 | Canon Kabushiki Kaisha | Transmission apparatus that transmits data according to a protocol, and method for measuring time in the transmission apparatus |
US20090305732A1 (en) * | 2008-06-06 | 2009-12-10 | Chris Marcellino | Managing notification service connections and displaying icon badges |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222854B1 (en) * | 1998-03-19 | 2001-04-24 | Hewlett-Packard Company | Link monitor state machine |
US6349388B1 (en) * | 1999-05-07 | 2002-02-19 | Advanced Micro Devices, Inc. | Timer processing engine for supporting multiple virtual minimum time timers |
DE102004001435A1 (de) * | 2004-01-09 | 2005-08-04 | Elektro Beckhoff Gmbh Unternehmensbereich Industrie Elektronik | Verfahren, Schnittstelle und Netzwerk zum zyklischen Versenden von Ethernet-Telegrammen |
US7050940B2 (en) * | 2004-03-17 | 2006-05-23 | International Business Machines Corporation | Method and system for maintaining and examining timers for network connections |
US7290170B2 (en) * | 2004-04-07 | 2007-10-30 | International Business Machines Corporation | Arbitration method and system for redundant controllers, with output interlock and automatic switching capabilities |
US7715428B2 (en) * | 2007-01-31 | 2010-05-11 | International Business Machines Corporation | Multicore communication processing |
-
2010
- 2010-01-08 US US12/684,260 patent/US20110173354A1/en not_active Abandoned
-
2011
- 2011-01-10 CN CN2011100065801A patent/CN102122273A/zh active Pending
- 2011-01-10 EP EP11150501A patent/EP2343650A3/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030025612A1 (en) * | 1999-08-16 | 2003-02-06 | Holmes John K. | Wireless end device |
US7310314B1 (en) * | 2002-06-10 | 2007-12-18 | Juniper Networks, Inc. | Managing periodic communications |
US20090083570A1 (en) * | 2007-09-25 | 2009-03-26 | Canon Kabushiki Kaisha | Transmission apparatus that transmits data according to a protocol, and method for measuring time in the transmission apparatus |
US20090305732A1 (en) * | 2008-06-06 | 2009-12-10 | Chris Marcellino | Managing notification service connections and displaying icon badges |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105629926A (zh) * | 2014-11-26 | 2016-06-01 | 洛克威尔自动控制技术股份有限公司 | 工业控制器中的事件生成管理 |
CN105629926B (zh) * | 2014-11-26 | 2018-09-04 | 罗克韦尔自动化技术公司 | 用于工业控制器的输入/输出模块和方法 |
CN109684056A (zh) * | 2018-12-07 | 2019-04-26 | 咪咕文化科技有限公司 | 一种定时器实现方法及装置、调度器、存储介质 |
CN109684056B (zh) * | 2018-12-07 | 2021-04-13 | 咪咕文化科技有限公司 | 一种定时器实现方法及装置、调度器、存储介质 |
CN112311495A (zh) * | 2019-07-24 | 2021-02-02 | 广东美的制冷设备有限公司 | 运行时长获取方法、装置、通信单元、电控板及存储介质 |
CN113986814A (zh) * | 2021-10-15 | 2022-01-28 | 浙江大学 | 一种基于微处理器的状态机通用表示及执行方法 |
CN113986814B (zh) * | 2021-10-15 | 2023-12-01 | 浙江大学 | 一种基于微处理器的状态机通用表示及执行方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2343650A2 (en) | 2011-07-13 |
EP2343650A3 (en) | 2011-09-07 |
US20110173354A1 (en) | 2011-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122273A (zh) | 基于硬件的具有内置定时器的连接状态机 | |
CN101263465B (zh) | 用于总线仲裁的方法和系统 | |
CN103064354B (zh) | 用于工业控制器的输入模块 | |
CN103765522B (zh) | 排特定的循环冗余校验 | |
KR101555812B1 (ko) | 데이터 전송 장치 | |
CN102483712A (zh) | 在存储器控制器处对命令进行有效调度的系统和方法 | |
CN102804158B (zh) | 总线架构及从至少一从设备向多个主路径发送数据的方法 | |
CN103218310A (zh) | 缓存装置、通信设备以及计算机程序产品 | |
EP3528470B1 (en) | Control device, control system, control method, and control program | |
CN104950835A (zh) | 过程控制系统和过程控制方法 | |
WO2007054929A2 (en) | Device and method for monitoring operation of a flash memory | |
CN105472377B (zh) | 电视机调试方法及装置 | |
JP2008009796A (ja) | 制御装置及び制御方法 | |
CN103180841A (zh) | 可编程控制器 | |
CN103164171A (zh) | 存储装置和命令执行控制方法 | |
US5649096A (en) | Bus request error detection | |
JP4281602B2 (ja) | 2重化コントローラシステム、そのコントローラ、プログラム | |
US7761243B2 (en) | Measuring device for process engineering and operating method for a measuring device | |
JP2016130947A (ja) | 制御システム、および制御装置 | |
JP2015215803A (ja) | プログラマブルコントローラ、及び演算処理システム | |
JP2013168850A (ja) | 分散型制御システム | |
JPH05257852A (ja) | プロセスデータ処理システムおよび処理方法 | |
JP4899763B2 (ja) | 端末管理装置、プログラム、及び通信方法 | |
JP2001331346A (ja) | シミュレータ及びシミュレーション方法 | |
US11734206B2 (en) | Information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110713 |