[0001] 本
申请是申请日为2012年4月11日、申请号为“201210105550.0”、
发明名称为“用于工业控制器的输入模块”的发明
专利申请的分案申请。
[0002] 相关申请的交叉引用
[0003] 本申请要求均在2011年4月11日提交的以下美国临时申请的优先权:序列号61/474,027;61/474,042;61/474,054;61/474,073。通过引用将各个临时申请的全部内容并入本文。
技术领域
[0004] 本文所公开的主题总体上涉及用于控制机器和工业过程的工业控制网络,并且更具体地涉及被配置成从受控机器或过程中的
开关、继电器、
致动器或其它装置接收
信号的输入模块。
背景技术
[0005] 工业控制器是用于控制工厂自动化等的专用计算机。工业控制器通常执行为特定控制应用高度定制的控制程序。通常使用诸如“继电器梯形逻辑”的特定控制语言以助于装置的编程。在所存储的程序的指示之下,工业控制器的处理器周期性地检查输入装置的状态并更新输出装置的状态。为了确保机器或过程的可预见的控制,控制程序必须是高度可靠和确定的,也就是,在明确定义的时间段执行。
[0006] 随着工业过程的复杂度的增加,越来越多的装置连接到工业控制器。装置常常被分布在机器附近或沿着生产线。越来越多的装置以及在机器附近分布这些装置需要更复杂的控制程序。因此,希望提供输入装置,该输入装置被配置成简化设置和调试(commissioning),从而减少开发工业控制系统牵涉的时间和
费用。
[0007] 工业网络通常用于连接所分布的装置并允许在装置之间传输数据。然而,越来越多的装置需要这些装置之间的更大量的通信。另外,对控制器和远程模块的不同扫描率以及装置之间的传输延迟为保持控制程序的高可靠性和确定性性质引入了另外的挑战。因此,希望提供输入模块,该输入模块被配置成减小装置之间的通信的延迟时间以保持控制程序的高可靠性和确定性性质。
发明内容
[0008] 本文所公开的主题描述了一种可被配置成简化设置和调试的用于工业控制器的输入模块。输入模块包括可被配置为例如计数器输入的输入
端子。又一输入端子可以被配置成根据端子处出现的
输入信号来触发事件。对应于输入端子的状态转变、事件的触发或计数器的操作的时间信号可以被记录。输入模块还可被配置成将数据发送回所述处理器或将数据直接发送到工业控制网络中的另一模块。
[0009] 根据本发明的一个
实施例,一种用于工业控制器的输入模块包括:多个输入端子,其被配置成从远程装置接收输入信号;
存储器装置,其被配置成存储一系列指令;时钟
电路,其产生对应于当前时间的信号并将该信号发送到处理器;以及处理器。处理器被配置成执行该一系列指令以:检测每个输入端子处的状态转变,响应于每个输入端子处的状态转变读取对应于当前时间的信号,以及将每个输入端子的状态和对应于转变的时间的信号存储在存储器装置中。
[0010] 根据本发明的另一方面,存储器装置还被配置成存储每个输入端子的
滤波器时间,并且处理器还被配置成在响应于每个输入端子处的状态转变读取对应于当前时间的信号之后,监视每个输入端子的状态。仅在输入端子的状态在所述波时间的持续时间的时长内保持恒定的情况下,才将状态转变和对应于转变的时间的信号存储在存储器装置中。
[0011] 根据本发明的又一方面,存储器装置还被配置成存储选通信号,并且处理器被配置成根据选通信号检测每个输入端子处的状态转变,响应于每个输入端子处的状态转变读取对应于当前时间的信号,以及将每个输入端子的状态和对应于转变的时间的信号存储在存储器装置中。
[0012] 根据本发明的又一方面,时间信号被配置成与来自主时钟的时间信号同步。存储器装置还被配置成以预定时间间隔将每个输入端子的状态和对应于状态转变的时间信号存储在缓存中。每个输入端子的状态和对应于状态转变的时的时间信号被存储为数据集合并且缓存可以被配置成以先进先出的方式存储每个输入端子的多个数据集合。
[0013] 根据本发明的又一方面,输入模块可以包括
逻辑电路,该逻辑电路被配置成对每个输入信号进行处理并将经处理的输入信号传送到处理器。处理器还可以被配置成产生多个覆写信号,其中每个覆写信号对应于输入端子之一,用针对相应的被覆写输入端子的覆写信号替换处理的输入信号,以及将覆写信号和对应于将输入信号覆写的时间信号存储在缓存中。处理器还可以被配置成响应于每个输入端子处的状态转变设置状态标记。
[0014] 根据本发明的另一实施例,一种用于工业控制器的输入模块包括:多个输入端子,其被配置成从远程装置接收输入信号;存储器装置,其被配置成存储一系列指令和多个配置参数;以及处理器。配置参数定义输入信号的模式,并且处理器被配置成执行该一系列指令以从存储器装置读取模式以及在输入信号与模式匹配的情况下产生事件信号。
[0015] 根据本发明的另一方面,模式可以由第一和第二配置模式来定义。第一配置模式定义标识所期望的输入信号的掩码,而第二配置模式定义对应于每个所期望的输入信号的状态的值。事件信号可以被发送到工业控制器和输出模块中的至少之一。
[0016] 根据本发明的又一方面,工业控制器包括
中央处理器、至少一个输出模块、以及至少一个输入模块。输入模块还可以包括:第一
接口,其被配置成将每个输入端子的状态发送到中央处理器;以及第二接口,其被配置成将至少一个输入信号的状态发送到输出模块,并且第二接口不通过中央处理器。第一接口还可以被配置成将事件信号发送到中央处理器,并且第二接口还可以被配置成将事件信号发送到输出模块。输入模块还可以包括时钟电路,该时钟电路产生对应于当前时间的信号并将该信号发送到处理器。配置参数还可以定义延迟时间,并且在产生事件信号且延迟时间结束之后事件信号可以被发送到中央处理器和输入模块。
[0017] 根据本发明的又一实施例,一种用于工业控制器的输入模块包括:多个输入端子,其被配置成从远程装置接收输入信号;存储器装置,其被配置成存储一系列指令和多个配置参数;以及处理器。配置参数将输入端子中的至少之一定义为计数器,并且处理器被配置成执行该一系列指令以检测计数器输入处的状态转变,将转变的累积值存储在存储器装置中,从存储器装置读取累积的转变的最大数目,以及当累积值等于转变的最大数目时,重置转变的累积值。
[0018] 根据本发明的另一方面,配置参数还可以定义将计数器的累积值转换为
位置值的定标参数,并且处理器还可以被配置成根据累积值和定标参数产生位置值。配置参数还可以针对每个计数器定义至少一个窗口,并且处理器还可以被配置成当计数器的累积值在窗口内时产生状态标记。
[0019] 根据一个实施例的用于工业控制器的输入模块,包括:多个输入端子,其被配置成从远程装置接收输入信号;存储器装置,其被配置成存储多个配置参数,其中,配置参数将输入端子中的第一部分定义为计数器端子,并且将输入端子中的第二部分定义为除计数器端子之外的端子;计数器逻辑电路;以及另外的逻辑电路,其被配置成从输入端子的第二部分接收输入信号。计数器逻辑电路被配置成:读取配置参数以识别每个计数器端子;从输入端子的第一部分接收输入信号;检测来自输入端子的第一部分的每个输入信号的状态转变;以及将转变累积值存储在存储器装置中。
[0020] 根据另一个实施例的用于工业控制器的输入模块包括:多个输入端子,每个输入端子被配置成接收输入信号,其中输入信号具有第一状态和第二状态;存储器装置,其被配置成存储多个配置参数,其中多个配置参数将多个输入端子中的每个输入端子定义为计数器输入或数字输入之一;计数器逻辑电路,其与存储器装置和输入端子通信;以及第二逻辑电路,其与输入端子通信,其中第二逻辑电路被配置成处理每个数字输入。其中计数器逻辑电路被配置成:读取配置参数以识别被配置为计数器输入的每个输入端子,从每个计数器输入接收输入信号,检测每个计数器输入的第一状态和第二状态之间的转变,以及根据所检测的转变更新转变累积值。
[0021] 根据详细描述和
附图,对于本领域的技术人员而言,本发明的这些和其它优点和特征将变得明显。然而,应理解,以说明而非限制的方式给出了指示本发明的优选实施例的详细描述和附图。可以在不脱离本发明的精神的情况下在本发明的范围内做出许多改变和
修改,并且本发明包括所有这种修改。
附图说明
[0022] 附图中示出了本文所公开的主题的各种示例性实施例,在附图中用相似的附图标记表示相似的部件,在附图中:
[0023] 图1是包含根据本发明的一个实施例的输入模块的示例性工业控制网络的示意性表示;
[0024] 图2是图1的示例性工业控制网络的部分的
框图表示;
[0025] 图3是图1的输入模块的框图表示;
[0026] 图4是以图形的方式示出在根据本发明的一个实施例的输入模块上执行的滤波模块中的步骤的
流程图;
[0027] 图5是在根据本发明的一个实施例的输入模块上执行的事件生成模块的框图表示;
[0028] 图6是根据本发明的一个实施例的输入模块与其它模块之间的对等(peer-to-peer)通信的框图表示;
[0029] 图7是可在示例性工业控制网络中的操作者接口上执行的输入模块的示例性配置窗口;
[0030] 图8是被配置为计数器以接收
正交编码器信号的输入模块的多个输入端子的图形表示;
[0031] 图9是被配置成接收脉冲序列输入的输入端子的执行窗口的图形表示;
[0032] 图10是具有梯形逻辑格式的控制程序的分段的图形表示;
[0033] 图11是根据本发明的一个实施例的扩展旋转计数器的图形表示;以及[0034] 图12是根据本发明的一个实施例的序列计数器的图形表示。
[0035] 在描述附图中示出的本发明的各个实施例时,为了清楚,将采取特定术语。然而,并不旨在将本发明限于如此选择的特定术语,而是应理解,每个特定术语包括以相似的方式操作来达到相似目的的所有技术等同物。例如,常常使用词“连接”、“附接”或与其相似的术语。它们不限于直接连接,而是包括通过其它元件的连接,其中这种连接被本领域的技术人员认作是等同的。
具体实施方式
[0036] 首先转向图1,示例性工业控制网络包括一对工业控制器10。如图所示,工业控制器10是模块化的,并且可以由在
机架中连接到一起的或安装到轨道的多个不同的模块组成。可以添加附加模块或移除现有模块,并且工业控制器10被重新配置成适应新配置。可选地,工业控制器10可以具有预定的且固定的配置。所示的工业控制器10中的每个包括电源模块12、处理器模块14、以及网络模块16。每个工业控制器10还示出为具有两个附加模块18,附加模块18可以根据应用要求而选择并且例如可以是模拟或数字输入或输出模块。
[0037] 一个或更多个操作者接口20可以连接到工业控制网络。每个操作者接口20可以包括处理装置22、输入装置24(包括但不限于
键盘、
触摸板、
鼠标、
轨迹球或
触摸屏)、以及显示装置26。可以想到操作者接口的每个部件可以并入单个单元(诸如工业计算机、膝上型计算机、或平板式计算机)中。还可以想到多个显示装置26和/或多个输入装置24可以分布在受控机器或过程附近并连接到一个或更多个处理装置22。操作者接口20可以用于显示受控机器或过程的操作参数和/或条件,从操作者接收命令,或者改变和/或加载控制程序或配置参数。接口线缆28将操作者接口20连接到工业控制器10之一。
[0038] 根据应用要求,通过一个或更多个网络将工业控制器10连接到其它装置。如图所示,接口线缆30直接连接处理器模块14中的每个。通过经由网络线缆32将两个工业控制器10的网络接口模块16连接到一对开关34中的每个,来建立冗余网络拓扑。每个开关34经由适当的网络线缆36、38连接到一对远程机架40之一。可以想到网络线缆32、36、38中的任一个或接口线缆30可以是被配置成经由专有接口通信的定制线缆,或可以是任何标准工业网络,包括但不限于以太网/IP(Ethernet/IP)、设备网(DeviceNet)、或控制网(ControlNet)。
每个网络模块16和开关34被配置成根据其连接的网络的协议进行通信,并且还可以被配置成在两个不同的网络协议之间翻译消息。
[0039] 每个远程机架40可以被
定位在受控机器或过程附近的不同位置处。如图所示,每个远程机架40是模块化的并且可以由在机架中连接到一起的或安装到轨道的多个不同的模块组成。可以添加附加模块或移除现有模块,并且远程机架40被重新配置成适应该新配置。可选地,远程机架40可以具有预定的且固定的配置。如图所述,每个远程机架40包括输入模块44、输出模块46以及一对网络模块42,每个网络模块42连接到冗余网络之一。输入模块44中的每个被配置成从受控装置50接收输入信号45,并且输出模块46中的每个被配置成向受控装置50提供
输出信号47。可选地,又一模块48可以包括在远程机架40中。应理解,在不偏离本发明的范围的情况下,工业控制网络、工业控制器10和远程机架40可以采取多种其它形式和配置。
[0040] 接下来参照图2,以框图的形式示出了图1的示例性工业控制网络的一部分。由于诸如控制网络的增加的分布性质和处理装置的增加的能
力和降低的成本的因素,可以想到网络中的每个
节点可以包括处理器70-75和存储器装置90-95。处理器70-75被配置成执行指令以及存取或存储在对应的存储器装置90-95中存储的操作数据和/或配置参数。根据节点要求,处理器70-75可以是任何合适的处理器。可以想到处理器70-75可以包括单个处理器装置或并行执行的多个处理装置,并且可以在分离的
电子装置中实现或并入单个电子装置(诸如现场可编程
门阵列(FPGA)或
专用集成电路(ASIC))中。类似地,存储器装置90-95可以是单个装置、多个装置或者可以部分地或整体地并入FPGA或ASIC内。每个节点还包括时钟电路80-85,并且每个时钟电路80-85优选地根据例如IEEE-1588时钟同步标准与其它时钟电路80-85同步。每个时钟电路80-85生成时间信号,该时间信号可被配置成报告精确到毫秒或纳秒的当前时间。安装在同一机架中或包含在单个
外壳内的节点之间的通信经由
背板62和相应的背板连接器60进行。经由网络介质28、32、36通信的节点包括被配置成处理相应网络协议的端口100-103。每个输入模块44包括输入端子110,输入端子110被配置成从受控装置50接收输入信号45。输入模块44还包括处理输入信号45并将输入信号45从输入端子110传送到处理器74所需要的任何相关联的逻辑电路114和内部连接112、116。类似地,每个输出模块46包括输出端子120,输出端子120被配置成将输出信号47发送到受控装置50。输出模块46还包括处理输出信号47并将输出信号47从处理器75传送到输出端子120所需要的任何相关联的逻辑电路124和内部连接122、126。
[0041] 根据本发明的一个实施例,输入模块44被配置成针对每个输入端子110处的每次状态转变记录由时钟电路84生成的时间信号。针对关态与开态之间的转变(也称作上升沿)以及开态与关态之间的转变(也称作下降沿)两者记录时间信号。每次状态转变和相应的时间信号最初被存储在缓存中。可以使用存储在存储器装置94中的配置参数来对每个输入端子110确定状态转变的次数以及存储在缓存中存储的相应时间戳。
[0042] 第一配置参数确定时间戳是基于每个输入还是基于每个模块被存储。如果输入模块44被配置成基于每个输入存储时间戳,则对每个输入端子110分配两个寄存器。可选地,第二配置参数可以定义每个寄存器的长度使得每个输入端子110处的多个转变的时间戳可以被存储在存储器装置94中。每个输入端子110的第一寄存器记录与从关到开的输入转变的时间相对应的时间信号,而每个输入端子110的第二寄存器记录与输入何时从开转变到关相对应的时间信号。被配置用于例如对等通信的处理器模块14或其它模块可以取回一个或更多个寄存器的内容以确定在每个输入端子110处何时发生最后的转变。通过将时间信号存储在预定的寄存器中,仅需要传送时间信号,从而减小模块间的通信带宽。如果输入模块44被配置成基于每个模块存储时间戳,则在存储器装置94中保留单个缓存。第二配置参数可以定义存储在缓存中的数据集合的数目。随着每次转变发生,输入端子110、状态转变、以及与状态转变相对应的时间信号被存储为数据集合。当基于每个模块存储时,时间戳被存储,并且随后可以按照顺序方式取回。
[0043] 输入模块44可以包括定义每个输入端子110的滤波器设置的又一配置参数。可以使用单个参数来定义上升沿和下降沿转变的滤波器持续时间,或者可选地,可以使用单独的配置参数:一个用于上升沿,一个用于下降沿。根据本发明的一个实施例,滤波器持续时间的范围是从20纳秒到255毫秒。可选地,滤波器持续时间可以被设置为零,其指示将不对该输入端子110使用滤波。在指示有效的状态改变之前,使用滤波器来验证输入信号45在新状态下保持了所定义的持续时间。然而,与状态转变相对应的时间信号是在状态转变的开始时获得的。
[0044] 接下来参照图3,示出了输入模块44的其它细节。经由终接在输入端子110之一处的电导体从受控装置50传送每个输入信号45。根据输入信号45和输入模块44的类型,输入模块44可以包括例如八个、十六个、三十二个或任何期望数目的输入端子110。为了方便和清楚,图3仅示出了三个输入端子110。接线板(terminal block)和内部连接112、116的数目可以对应于每个输入模块44包括的输入端子110的数目。更加详细地示出了每个输入端子110与处理器74之间的逻辑电路114。可以想到可以经由分离的电子装置嵌入逻辑电路、将逻辑电路并入单个装置(诸如FPGA或ASIC)或其组合。每个输入信号45经由第一组内部连接
112导入逻辑电路114。每个输入信号45也被导入计数器电路150、160和其它逻辑电路140。
如下面更详细讨论的,每个输入端子110可被配置成接收计数器输入。计数器电路150、160可以
访问存储器装置94以确定向每个计数器提供哪个输入信号45。计数器电路150、160内部的开关被配置成根据配置参数来路由每个输入信号45。简单的计数器电路150保持从计数器输入接收的脉冲累积值,计数到预设值,并将累积值重置为零。来自计数器电路150的输出信号包括累积值和计数完成状态标记。虽然在计数器电路150与处理器74之间示出了三个内部连接116,但是可以想到每个计数器可以包括单个连接上的复用信号或每个信号的单独连接116。类似地,多个计数器可以复用连接在计数器电路150与处理器74之间的总线或各个连接116上的完成状态标记和/或累积值。每个计数器可以并行地执行,与处理器
74的执行异步地从相应输入信号45捕获和累积输入脉冲。
[0045] 以相似的方式,扩展计数器电路160可以并行地执行扩展计数器,如下面更详细讨论的。可以想到扩展计数器电路160可以保持单独的累积器或与简单的计数器电路150的累积器协作地操作以保留期望的脉冲计数。每个扩展计数器之间的内部连接116包括附加状态标记,如本文更详细讨论的。
[0046] 可以在另一逻辑块140中执行本文所讨论的又一功能。在另一逻辑块140中执行的功能可以包括但不限于输入信号145的模式匹配和打时间戳。输入信号45可以直接传递到处理器74或被滤波并传递到处理器74。由另一逻辑块140导致的附加状态和/或事件标记也被传送到处理器74。
[0047] 接下来参照图4,示出了用于监视状态转变、获得时间信号和对输入信号45进行滤波的定时。可以由在处理器74上、在处理逻辑114中或它们的组合中执行的模块来进行对每个输入信号45的滤波。流程图200表示滤波模块,并且针对每个输入端子110如由返回路径215所指示的以周期间隔重复。在步骤202,将输入信号45的当前值与输入信号45的先前值进行比较以确定输入端子110是否改变了状态。如果根据流程图200的先前周期性执行不存在输入端子110的状态改变,则滤波模块确定是否滤波器当前正在执行,如步骤204处所示。
如果尚未发生新的转变并且没有滤波器正在执行,则滤波器模块200退出,直到下一周期性执行开始。然而,如果没有发生新的转变,但是滤波器正在执行,则滤波器模块转变到块212来确定滤波器是否完成了执行。
[0048] 返回到步骤206,如果在步骤202检测到状态转变,则滤波器模块200再次确定是否滤波器当前正在执行。如果滤波器正在执行,则输入端子110处的原始的状态转变并不在滤波器的持续时间内一直保持。如步骤216所示,滤波器停止执行,并且不记录时间戳。然而,如果检测到状态转变并且滤波器没有运行,则读取时间信号并启动滤波器,如步骤208-210所示。滤波器模块200然后转变到块212以确定滤波器是否完成了执行。
[0049] 滤波器模块200通过将当前时间信号与转变发生时的时间信号进行比较来确定滤波器是否完成了执行。在步骤208读取与转变对应的时间,并根据配置参数获得滤波器的持续时间。如果当前时间信号与转变发生时的时间信号之间的时间差小于滤波器的持续时间,则滤波器仍执行,并且滤波器模块200退出,直到下一周期性执行为止。如果当前时间信号与转变发生时的时间信号之间的时间差等于或大于滤波器的持续时间,则输入信号45的新状态以及对应于状态转变的时间信号的值被存储在存储器装置94中。如果希望高速操作,则滤波器的持续时间可以被设置为零并且滤波器模块200直接通过步骤208、210、212和214转变,从而无延迟地记录状态转变和时间信号。因此,滤波器模块200可以防止输入模块
44记录输入端子110处的例如来自噪声脉冲的假转变,或者例如在期望单个状态改变时继电器跳跃并指示多个状态改变的情况下记录多个转变。
[0050] 根据本发明的另一方面,输入模块44包括存储器装置94中的先进先出(FIFO)缓存以提供在每个输入端子处发生的转变的记录。可以想到记录缓存可以是先前讨论的用于存储每个输入端子处的时间戳的同一缓存。可选地,可以在存储器装置94中定义单独的FIFO记录缓存。记录缓存可以被配置成将每个状态转变与对应于该转变的时间信号86一起存储,或者记录缓存可以被配置成以预定时间间隔存储每个输入端子的状态。如果输入模块44被配置成每次状态改变时存储数据,则可以如先前关于存储时间信号信息所讨论的那样记录转变的记录。
[0051] 如果输入模块44被配置成以预定时间间隔存储数据,则在每个时间间隔,输入端子110的当前状态和来自时钟电路84的时间信号86被存储在FIFO缓存中。一旦缓存例如在五十个条目之后是被占满,就会重写最旧的条目。以这种方式建立循环缓存,从而存储每个输入端子110在最后的五十个时间间隔的状态。可选地,可以在每个时间间隔存储单个时间信号86,对应于每个输入端子110的状态。每个输入端子110的状态被存储的间隔可以被配置并保存在配置参数中。每个FIFO缓存可以例如被下载到操作器接口20或另一远程计算机。识别出具有最早时间戳的条目,并且在所存储的时间间隔视觉地显示输入的状态。数据例如可以被显示为关于时间示出转变的表或带状记录(strip chart)。还可以想到,包括输入模块44、输出模块46或任何其它模块的多个模块可以包括FIFO缓存的相似集合。因为每个模块中的时钟电路84与主时钟同步,所以来自多个模块的数据可以被下载到单个计算机并且在相应的时间间隔
串联地显示。
[0052] 如先前所讨论的,一些时间延迟可以由于将输入模块44和输出模块46定位在远离处理器模块14的位置而导致。例如,在处理器模块14中执行的控制程序需要来自输入模块44的输入信号45以确定来自输出模块46的输出信号47的结果状态。延迟例如可以由于在远程输入模块44和输出模块46以及在处理器模块14处的输入和输出图像的扫描时间而导致。
传输和处理扫描时间可以引入输入信号45改变状态时与响应于输入信号45在输出端子120处更新输出信号47的状态时之间的另外的延迟。因此,每个输入模块44可以被配置成与诸如输出模块46的其它模块直接接口。
[0053] 接下来参照图6,示出了根据本发明的一个实施例的用于配置对等通信和后续数据传输的过程。工业控制网络包括至少一个处理器模块14、输入模块44、以及输出模块46。分别经由配置通信13和15从处理器模块14传送输入模块44和输出模块46的初始配置。在上电或另一用户启动的配置序列期间,处理器模块14将初始配置消息13发送到输入模块44并将另一初始配置消息15发送到输出模块。输入模块44将响应配置消息13发送给处理器模块
14,从而分别建立处理器与输入模块44和14之间的通信。到输出模块46的配置消息15识别到对等关系,从而定义输出模块46要连接的输入模块44的类型以及该输入模块44的数据结构。输出模块46然后生成到对等端(peer)输入模块44的初始配置消息17。对等端输入模块
44将响应配置消息17发送给输出模块46,从而建立输入模块44与输出模块46之间的通信。
在成功建立对等连接时,输出模块46生成到处理器模块14的响应配置消息15,从而建立处理器模块14与输出模块46之间的通信以及指示处理器模块14已经建立了对等连接。
[0054] 在完成初始配置序列之后以及在正常操作期间,处理器模块14周期性地与输入模块44和输出模块46中的每个通信。处理器模块14与输出模块46之间的消息25包括但不限于更新为从处理器模块14到输出模块46的输出表以及每个模块之间的操作状态。类似地,处理器模块14与输入模块44之间的消息21、23包括但不限于更新为从输入模块44到处理器模块14的输入表以及每个模块之间的操作状态。输出模块46也从输入模块接收提供输入模块44中的输入端子110的当前状态的消息23。此外,可以在输出模块46与输入模块44之间传送心跳消息31以验证两个模块之间的通信通道保持可用。在分布式控制网络中,以对等连接配置的输入模块44和输出模块46均可以位于受控机器或过程的同一点处,但远离中央处理器模块14。事实上,输入模块44和输出模块46可以被安装在同一机架上并共用背板62。通过将输入信号直接传递到输出模块46并响应于这些输入信号生成输出信号,改进了输出模块
46的响应性。
[0055] 根据本发明的另一方面,输入模块44可以被配置成生成事件。根据输入端子110的状态和输入模块44内部的其它状态标记来生成事件。例如可以通过在处理器74上执行的指令或通过处理逻辑114生成事件。事件被传送到处理器模块14,并且如果配置了的话,经由事件消息27传送到对等端模块。输入模块44可以被配置成例如与提供关于输入端子110的状态的信息的消息23相结合地、以周期性间隔或在发生时直接地发送事件消息27。
[0056] 根据本发明的一个实施例,通过检测输入端子110处呈现的输入模式来生成事件,如图5所示。示例性输入模块44包括十六个输入端子110。由指示输入端子为关的零、指示输入端子为开的一、或者指示输入端子可为开或关的“x”来表示每个输入端子的状态。第一示例性状态220a指示端子零和端子十四为关,端子一和端子十五为开,而端子二到端子十三可为开或关。第二示例性状态220b指示端子零和端子十五为关,端子一和端子十四为开,而端子二至端子十三可为开或关。
[0057] 存储在存储器装置94中的第一配置参数识别用于生成事件的掩码222。掩码222包括每个输入端子110的状态位,其中“1”指示对应的输入端子110用于生成事件而“0”指示对应的输入端子110不用于生成事件。示出的掩码222具有针对位零、一、十四和十五设置的“1”,这意味着仅这四个输入端子将用于生成事件。与掩码222协作地,另一配置参数定义触发事件所需要的每个位的匹配值224。所示的匹配值224需要端子一和端子十四为开而端子零和端子十五为关。因为端子二到端子十三未包括在掩码222中,所以匹配值224不关心这些端子的设置为开还是关。如在结果框226中所示,与掩码222对应的第一示例性状态220a中的输入端子110的状态不与匹配值224对应。因此,没有生成事件。相比之下,与掩码222对应的第二示例性状态220b中的输入端子110的状态与匹配值224对应。因此,生成了事件。每个输入模块44可以具有存储在存储器装置94中的掩码222和匹配值224的多个集合,每个集合被配置成根据输入信号和/或内部状态位的唯一集合来生成事件。
[0058] 图10中示出了具有“梯形逻辑”格式的控制程序300的示例性分段。输入端子110的当前状态经由消息23被周期性地提供给处理器模块14。处理器模块14根据在处理器70中执行的控制程序300来接收输入信号312的状态并设置/重置输出信号314。这些输出信号314的期望状态至少部分地是经由消息25在处理器模块14与输出模块46之间传输的控制数据的内容。输出模块46然后根据来自处理器模块14的该
控制信号在输出端子120处生成输出信号。然而,如先前所讨论的,扫描时间延迟和传输延迟会限制响应于输入信号对输出进行设置的速率。
[0059] 可以想到用于生成事件的掩码222和匹配值224可以例如经由操作者接口20手动地配置或经由在操作者接口20或另一编程装置上执行的配置模块自动地配置。可选地,配置模块可以在工业控制器10的处理模块14中或在适于执行该模块的任何其它处理器上执行。操作者可以在操作者接口20或另一编程终端中生成控制程序300。
梯级(rung)308、310例如各自需要一个输入312接通而另一个输入312断开,以设置希望的输出314。如果每个输入312对应于输入端子110,则掩码222和对应的匹配值224可以被配置用于每个梯级308、310。可以经由对等连接将产生的生成事件提供给输出模块46并使用该生成事件以在输出模块46中产生输出信号。根据本发明的一个实施例,操作者可以直接输入配置参数中的掩码222和匹配值224以用于下载到输入模块44的存储器装置94。根据本发明的另一实施例,操作者可以将所有梯级302-310录入到控制程序300,并且在操作者接口20或远程编程终端上执行的模块将梯级308和310上的输入信号312和输出信号314识别为属于可被配置用于对等连的输入模块44和输出模块46。模块可以从控制程序300移除梯级308、310并生成掩码
222和匹配值224以及建立装置之间的需要的对等连接。
[0060] 根据本发明的另一方面,配置参数可以定义与每个产生的事件相关联的延迟时间。延迟时间可以用于在触
发条件发生之后的某一持续时间设置事件。可以响应于输入端子110或满足根据掩码222和相应匹配值224之一设置的条件的内部状态而读取
时钟信号。如果延迟时间被设置为对应于该事件,则输入模块44将以配置参数中设置的持续时间来延迟设置事件信号。因此,可以将事件安排在满足触发条件之后的某一时间发生。
[0061] 根据本发明的另一方面,输入模块44可被配置成接收覆写命令,该覆写命令可以测试例如在连接到输入模块44的处理器模块14中执行的控制程序的操作或通过在输入模块44中的模式匹配而产生的对等命令的操作。覆写命令可以例如将特定状态分配给输入端子110之一,而不是读取在该端子110处存在的物理输入信号45。覆写命令可以例如通过将累积值设置为期望值或者通过强制计数器对累积值进行递增或递减来测试本文中所述的计数器的操作。如果覆写命令强制计数器使其累积值进行递增或递减,并且该命令在控制程序中的重复周期内被保持,则能够测试计数器的各种状态标记,其包括但不限于:
频率、脉宽、
加速度、完成、窗口、向上翻转以及向下翻转。此外,时间戳也可以分配给覆写命令或当应用覆写命令时可以读取来自输入模块44的时间信号86。因此,可以维护诸如事件或其它希望的输入序列的特定条件以及验证相应控制程序的执行。另外,还可以验证与读取和响应时间戳有关的任何控制程序。因此,先前讨论的覆写和数据记录特征可以用于减少工业控制网络的调试或维护所牵涉的时间和花费。
[0062] 根据本发明的另一方面,配置参数可以定义用于使得能够存储输入模块44中的输入端子110的时间信号和相应状态的选通信号。选通信号可以是但不限于在输入端子110之一处的输入信号45、内部状态位、例如通过模式匹配产生的事件、或窗口的接通时间的时长,如下面关于计数器输入更详细描述的。另外,一个或更多个门信号和相关联的逻辑(即,与、或)可以被定义为将门信号组合以使得能够存储输入模块44中的输入端子110的时间信号和相应状态。如果定义了选通信号,则当使选通信号激活时,将仅发生输入端子110的时间信号和状态的存储。
[0063] 根据本发明的另一方面,配置参数可以将一个或更多个输入定义为计数器输入。接下来参照图7,可在操作者接口20上执行的示例性配置窗口230图示了可以被存储在输入模块44的存储器装置94中的配置参数的至少一部分。可以想到每个输入端子110可以被配置为基本计数器,因此,配置窗口230包括可对应于十六个输入端子110的十六个抽头232,每个抽头包括定义一个计数器的参数。替选地,一些计数器需要多个输入端子110。由于针对特定计数器定义多个输入端子,所以配置窗口230可以根据剩余的可用输入端子110的数目禁用计数器抽头232。
[0064] 第一组配置参数234例如定义可以作为输入信号45接收的信号。可选地,可以将信号映射到控制程序内的其它内部状态标记。输入端子1定义接收计数器输入的初级输入端子110。一些计数器需要多个输入信号并且输入端子2定义接收附加输入信号的次级输入端子110。附加输入例如可以定义:初级计数器信号使累积值递增还是递减;次级计数器输入,其中初级计数器输入使累积值递增而次级计数器输入使计数器输入递减;或者正交输入(图8所示的),其中初级和次级计数器输入协作地工作以使计数器的累积值递增或递减。类似地,根据计数器要求,可以将又一输入端子配置参数包括在配置窗口中。配置窗口230可以允许定义又一输入端子110以执行计数器功能。
[0065] 如在第一组配置参数234中进一步示出的,加载、重置、保持和存储功能可以被映射到输入端子110。加载功能将计数器的累积值设置为希望值。重置功能清除计数器的累积值。保持功能将累积值保持在其当前值而与在计数器输入端子110处接收的其它脉冲无关。存储功能将累积值拷贝到存储器装置94中的预定位置以用于将来参考。可选地,每个功能可以被映射到通过控制程序设置的内部状态位。作为又一可选方案,每个功能可以被映射到输入端子110和内部状态位的组合。
[0066] 每个上述功能设置相应的内部状态标记,该内部状态标记可以例如接收时间戳并被存储在存储器94中或触发如本文所讨论的事件。类似地,诸如计数器完成或接收到序列脉冲的操作事件可以设置内部状态标记。计数器事件可以与输入端子处的输入信号45分开地或结合地使用以产生事件。可选地,计数器事件和对应于事件的发生的时间信号86可以被存储在时间戳或记录缓存中以用于后续发送到处理器模块14或操作者接口20。
[0067] 第二组配置参数236定义寄存器和/或由每个计数器使用的变量。预设值249是计数完成时的计数的数目。如果操作者接口20连接到输入模块44,则计数器的累积值可以显示在计数窗口251中。根据另一配置参数,计数器可以被配置成当累积值达到预设值249时重置累积值。可选地,计数器可以被配置成设置指示计数器完成和继续使累积值递增的状态标记。第三组配置参数238可以包括复选框以根据应用要求配置计数器。可以想到可以根据计数器要求将又一输入信号、寄存器或变量包括在配置参数中。
[0068] 配置参数定义第一操作窗口240和第二操作窗口245。每个操作窗口240、245包括接通设置241、246和断开设置242、247。输出243、248例如可以被定义为内部状态位、事件、或网络中的输出端子120。还参照图9,示出了第一和第二操作窗口240、245的示例性操作。计数器预设249被设置为8000,在该点处计数器向上翻转(rollover)到零244。第一操作窗口240被配置成在接通设置241处接通其输出243、设置为4000个计数,以及在断开设置242处关断其输出243、设置为6000。第二操作窗口245被配置成在接通设置246处接通其输出
248、设置为6000个计数,以及在断开设置247处关断其输出248、设置为4000。每个输出243、
248向上翻转时保持处于的它们的当前状态。
[0069] 如图7所示,用于计数器输入的操作模式238之一是旋转计数器。还参照图11,旋转计数器包括被定义为计数器输入的单输入端子110以及配置成提供方向信号的第二输入端子110。存储在存储器装置94中的配置参数定义向上翻转值266和向下翻转(rollunder)值268。当方向信号指示计数器262顺计数时,对于在计数器输入端子110处接收到的每个脉冲,累积值增加,直到其等于向上翻转值266减去一个计数。计数器输入端子110处接收到的下一脉冲使得计数器262中的累积值转变到向下翻转值268。在输入模块44内部维护的单独的旋转计数器264响应于向上翻转条件而递增,保持追踪计数器输入的旋转次数。相反地,当方向信号指示计数器262倒计数时,对于计数器输入端子110处接收到的每个脉冲,累积值减小,直到其等于向下翻转值268。计数器输入端子110处接收到的下一脉冲使得计数器
262中的累积值转变到向上翻转值266减一。单独的旋转计数器264响应于向下翻转条件而递减,从而再次保持追踪计数器输入的旋转次数。每个向上翻转和向下翻转事件设置相应的内部状态标记,该内部状态标记例如可以接收时间戳并被存储在存储器94中或触发如本文中所讨论的事件。旋转计数器264的累积值可以通过重置命令返回到零或可选地利用加载命令设置到期望值。可选地,可以与诸如上/下计数器的其它操作模式或者正交输入协作地配置旋转计数器。
[0070] 每个输入模块44可以被配置成检测以比累积值的更新速率快的速率发生的、在输入端子110处接收的计数器脉冲。序列脉冲检测电路被配置成从每个输入端子110接收输入信号45。对于被配置为计数器输入的每个输入端子110,序列脉冲检测电路监视用于脉冲输入的输入端子110并响应于每个接收到的计数器脉冲使计数器递增。序列脉冲检测电路与诸如处理器94和处理逻辑114的其它处理电路异步地操作,使得脉冲可以在其发生时被检测。然后可以以例如对应于周期T的周期性间隔来读取脉冲检测计数器的累积值292,在周期T处读取计数器的累积值。因此,即使在一个
采样周期T内首先使计数器递增并且随后使计数器递减(这会导致未观测到累积值的改变),也会捕获到输入端子110处接收到的每个脉冲。
[0071] 接下来参照图12,定时图280示出了序列脉冲检测电路的示例性操作。计数器输入端子110接收第一脉冲序列282,并且被配置成选择方向的第二输入端子110接收第二脉冲序列284。如图所示,以具有第一周期t1的高频率产生第一脉冲序列282,并且第二脉冲序列284指示来自第一脉冲序列282的计数要交替地使计数器的累积值递增或递减。如果累积值
286初始为零,则累积值286将会随着在计数器输入端子110处接收到第一序列脉冲的每个而在零与一之间转换(toggle)。然而,输入模块44被配置成以预定采样周期T将累积值286传送到处理器74。因为计数器输入以比采样周期快的速率在零与一之间交替,所以到处理器74的累积值的表观值288是常数零。然而,序列脉冲检测电路在输入端子110处接收到第一序列脉冲282中的每个时产生序列脉冲290。序列脉冲290随后被用于使序列计数器的累积值292递增。序列计数器的累积值292也能够以预定采样周期T传送到处理器74,使得处理器74获知即使计数器的表观值288保持为常数,输入端子110也正在接收脉冲。
[0072] 通过引用在上述的同一日期提交的、受让给与本发明相同的受让人的名称为“Industrial Control System with Distributed Motion Planning and Output Module for an Industrial Controller”的序列号为_______的美国专利申请,将其内容合并于此。
[0073] 应理解,本发明的应用不限于对本文提到的部件的构造和布置的细节。本发明能够是其它实施例并且能够以各种方式实施或实现。前述的变型和修改在本发明的范围之内。还应理解,本文所公开和限定的本发明扩展到根据正文和/或附图明显的或者所提到的各个特征中的两个或更多个的所有可选组合。这些不同组合全部构成本发明的各个替选方面。本文所描述的实施例说明了用于实施本发明的已知的最佳模式并且将使得本领域的技术人员能够运用本发明。
[0074] 本发明还包括以下实施方式:
[0075] (1)一种用于工业控制器的输入模块,包括:
[0076] 多个输入端子,其被配置成从远程装置接收输入信号;
[0077] 存储器装置,其被配置成存储一系列指令;
[0078] 时钟电路,其产生对应于当前时间的信号并将所述信号发送到处理器;以及[0079] 处理器,其被配置成执行所述一系列指令以:
[0080] 检测每个所述输入端子处的状态转变;
[0081] 响应于每个所述输入端子处的所述状态转变读取对应于当前时间的所述信号;以及
[0082] 将每个输入端子的状态和对应于所述转变的时间的所述信号存储在所述存储器装置中。
[0083] (2)根据(1)所述的输入模块,其中,
[0084] 所述存储器装置还被配置成存储每个所述输入端子的滤波器时间;
[0085] 所述处理器还被配置成在响应于每个所述输入端子处的所述状态转变读取对应于当前时间的所述信号之后,监视每个所述输入端子的状态;并且
[0086] 仅在所述输入端子的状态在所述滤波器时间的时长内保持恒定的情况下,才将所述状态转变和对应于所述转变的时间的所述信号存储在所述存储器装置中。
[0087] (3)根据(1)所述的输入模块,其中,
[0088] 所述存储器装置还被配置成存储选通信号;并且
[0089] 所述处理器被配置成根据所述选通信号进行操作以执行检测每个所述输入端子处的状态转变,响应于每个所述输入端子处的所述状态转变读取对应于当前时间的所述信号,以及将每个输入端子的状态和对应于所述转变的时间的所述信号存储在所述存储器装置中。
[0090] (4)根据(1)所述的输入模块,其中,
[0091] 所述时间信号被配置成与来自主时钟的时间信号同步,并且
[0092] 所述存储器装置还被配置成以预定时间间隔将每个输入端子的状态和对应于所述状态转变的所述时间信号存储在缓存中。
[0093] (5)根据(4)所述的输入模块,其中,
[0094] 每个输入端子的状态和对应于所述状态转变的时的所述时间信号被存储为数据集合;
[0095] 所述缓存被配置成针对每个输入端子存储多个数据集合;并且
[0096] 所述缓存以先进先出的方式存储所述数据集合。
[0097] (6)根据(4)所述的输入模块,还包括逻辑电路,所述逻辑电路被配置成处理每个输入信号并将经处理的输入信号传送到所述处理器,其中,所述处理器还被配置成:
[0098] 产生多个覆写信号,每个覆写信号对应于所述输入端子之一,
[0099] 用针对相应的被覆写输入端子的所述覆写信号替换所述经处理的输入信号;以及[0100] 将所述覆写信号和对应于所述输入信号的覆写的所述时间信号存储在所述缓存中。
[0101] (7)一种用于工业控制器的输入模块,包括:
[0102] 多个输入端子,其被配置成从远程装置接收输入信号;
[0103] 存储器装置,其被配置成存储一系列指令和多个配置参数,其中所述配置参数定义输入信号的模式;
[0104] 处理器,其被配置成执行所述一系列指令以:
[0105] 从所述存储器装置读取所述模式,以及
[0106] 在所述输入信号与所述模式匹配的情况下产生事件信号。
[0107] (8)根据(7)所述的输入模块,其中,所述模式由第一配置模式和第二配置模式来定义,其中所述第一配置模式定义标识所期望的输入信号的掩码,而所述第二配置模式定义对应于每个所期望的输入信号的状态的值。
[0108] (9)根据(7)所述的输入模块,其中,所述事件信号被发送到所述工业控制器和输出模块中的至少之一。
[0109] (10)根据(7)所述的输入模块,其中,所述工业控制器包括中央处理器、至少一个输出模块、以及至少一个输入模块,所述输入模块还包括:
[0110] 第一接口,其被配置成将每个输入端子的状态发送到所述中央处理器;以及[0111] 第二接口,其被配置成将至少一个输入信号的状态发送到所述输出模块,其中所述第二接口不通过所述中央处理器。
[0112] (11)根据(10)所述的输入模块,其中,所述第一接口还被配置成将所述事件信号发送到所述中央处理器,而所述第二接口还被配置成将所述事件信号发送到所述输出模块。
[0113] (12)根据(11)所述的输入模块,还包括时钟电路,所述时钟电路产生对应于当前时间的信号并将所述信号发送到所述处理器,其中,所述配置参数还定义延迟时间,并且在产生了所述事件信号且所述延迟时间结束之后将所述事件信号发送到所述中央处理器和所述输出模块。
[0114] (13)一种用于工业控制器的输入模块,包括:
[0115] 多个输入端子,其被配置成从远程装置接收输入信号;
[0116] 存储器装置,其被配置成存储一系列指令和多个配置参数,其中,所述配置参数将所述输入端子中的至少之一定义为计数器;
[0117] 计数器电路,其被配置成:
[0118] 读取所述配置参数以识别被定义为计数器的所述输入端子;
[0119] 从所述输入端子接收所述输入信号;
[0120] 检测所述输入信号的状态转变;
[0121] 将转变的累积值存储在所述存储器装置中;
[0122] 从所述存储器装置读取累积的转变的最大数目;以及
[0123] 当所述累积值等于转变的最大数目时,重置转变的累积值;以及
[0124] 处理器,其被配置成执行所述一系列指令以:
[0125] 从所述存储器装置读取所述计数器的转变的累积值。
[0126] (14)根据(13)所述的输入模块,其中,
[0127] 所述配置参数还定义将计数器的累积值转换为位置值的定标参数,并且[0128] 所述处理器还被配置成根据所述累积值和所述定标参数产生所述位置值。
[0129] (15)根据(14)所述的输入模块,其中,
[0130] 所述配置参数将第二输入定义为方向输入,并且
[0131] 所述处理器还被配置成根据所述累积值、所述定标参数和所述方向输入来产生所述位置值。
[0132] (16)根据(14)所述的输入模块,其中,所述计数器电路还包括:
[0133] 方向输入,其中在检测到所述转变时根据所述方向输入使所述累积值递增或递减;
[0134] 旋转计数器,在使所述累积值递增的情况下,每当所述计数器达到转变的最大数目时所述旋转计数器使第二累积值递增,而在使所述累积值递减的情况下,每当所述计数器达到所重置的值时所述旋转计数器使所述第二累积值递减。
[0135] (17)根据(13)所述的输入模块,其中,所述配置参数还针对每个计数器定义至少一个窗口,并且其中,所述处理器还被配置成当所述计数器的累积值在所述窗口内时产生状态标记。
[0136] (18)根据(17)所述的输入模块,其中,所述窗口由第一配置参数和第二配置参数定义,其中,所述第一配置参数标识对应于产生所述状态位的累积值的
阈值水平,而所述第二配置参数标识对应于继续产生所述状态位的所述累积值中的附加计数的数目。
[0137] (19)根据(17)所述的输入模块,其中,所述窗口由第一配置参数和第二配置参数定义,所述第一配置参数和第二配置参数定义对应于产生所述状态位的累积值的范围的下阈值和上阈值。
[0138] (20)根据(13)所述的输入模块,其中,所述处理器还被配置成产生对应于所述计数器输入的状态转变的状态标记。