用于可编程逻辑控制器的输入滤波器和相关的方法

文档序号:6269439阅读:205来源:国知局
专利名称:用于可编程逻辑控制器的输入滤波器和相关的方法
背景发明领域本发明涉及可编程逻辑控制器(PLC)。
相关信息可编程逻辑控制器(PLC)是近期在过程控制技术中开发的。作为过程控制的一部分,PLC被使用来监视来自各种各样的输入点(输入传感器)的输入信号,它们报告在控制过程中出现的事件和条件。例如,PLC可监视诸如电动机速度,温度,压力,容积流量等等的输入条件。控制程序被存储在PLC内的存储器中,指令PLC遇到特定的输入信号或条件时采取什麽行动。响应于由输入传感器提供的这些输入信号,PLC得到和产生输出信号,这些输出信号经过PLC输出点传输到各个输出装置,诸如传动机构和继电器,以便控制过程。例如,PLC发出输出信号来加速或减速传送机,旋转机器人的手臂,打开或闭合继电器,提高或降低温度以及许多其它可能的控制功能,多得无法一一列出。
以上提到的输入和输出点典型地分别与输入模块和输出模块相联系。输入模块和输出模块合在一起在这里被称为I/O模块。本领域技术人员又把这样的I/O模块称为I/O卡或I/O板。这些I/O模块典型地是可插入到位于PLC的背板的各个插槽中。插槽通过主总线被耦合在一起,主总线把被插入到插槽中的任何的I/O模块耦合到中央处理器(CPU)。CPU本身可以位于可插入到位于PLC的背板的各个插槽中的一个卡上。
图36显示一个典型的作为系统3610的可编程逻辑控制器系统。系统10包括主可编程逻辑控制器3615,通过场总线3620被耦合到总线接口单元3625。总线接口单元3625耦合和对接场总线3620到本地总线3630,它包括多个I/O终端块3635。I/O终端块3635被耦合到各自的I/O模块3640,如

图1所示。
在系统3610,由主可编程逻辑控制器3615执行计算处理。换句话说,条件在I/O模块3640被检测,以及由此得到输入数据。该输入数据通过总线接口单元3625和场总线3620被传送到主可编程逻辑控制器3615。主可编程逻辑控制器3615按照被存储在主PLC 3615中的控制程序对输入数据进行处理。主可编程逻辑控制器3615处理输入数据,以及响应于此产生输出数据。输出数据通过场总线3620,总线接口单元3625,本地总线3630被传送到一个或多个I/O模块3640。响应于输出数据,接收输出数据的I/O模块控制被耦合到I/O模块的输出装置。I/O终端块被提供来把I/O模块3640耦合到总线接口单元3625。
PLC可以被放置在主/从属网络中,如图37a所示。在图上,主/从属控制系统包括主控PLC(M)和多个远端从属单元RSU(R1-Rn)。如其中所示,包括主控PLC、数据链路和I/O模块的主控PLC(M)通过使用由用户设置的程序和通信参量来控制它本身的I/O连接点,以及也控制用于远端从属单元R1-Rn的各个I/O连接点。多个RSU(R1-Rn)的每一个具有至少一个I/O模块。以及通过通信电缆实行与主控PLC(M)的数据通信,因此控制它本身的I/O模块。RSU可以是用作为从属的PLC。
参照图37b,PLC和每个RSU包括MODEM(调制解调器)3710,用于通过通信电缆实行在主控PLC(M)与RSU之间的数据通信;接收/发送模块3711,用于按照预定的协议与主控PLC(M)交换数据;接收/发送缓存器3712,用于把用于交换的数据暂时存储在其中;输出数据贮存单元3713,用于把从主控PLC(M)待发送到输入/输出模块3716的数据存储在其中;输入数据贮存单元3714,用于把从输入/输出模块3716待发送到主控PLC(M)的数据存储在其中;以及输入/输出控制模块3715,用于控制在数据贮存单元3713,3714和输入/输出模块3716之间的数据传输。
在运行时,在主控PLC(M)中的数据链路是附着到主控PLC(M)上的数据链接装置,它在相关的网络中作为主控单元运行,以及得到数据通信的发端。数据链路能够设置RSU的最大数目N。RSU设置它自己的和主控PLC(M)的每个数目,以及直接从主控PLC(M)接收通信,由此进行数据传输。在主控PLC(M)中的数据链路随后选择RSU(R1-Rn),以及进行数据接收/发送操作。例如,当从主控PLC(M)输出的数据通过通信电缆和MODEM 3710被加到RSU(R1)时,被加上的数据传送通过接收/发送缓存器3712和接收/发送模块3711,以及被存储在输出数据贮存单元3713中。被存储在输出数据贮存单元3713中的数据在输入/输出控制模块3715的控制下被输出到输入/输出模块3716。从远端从属单元R1的输入/输出模块3716读出的外部控制目标数据在输入/输出控制模块3715的控制下被存储在输入数据贮存单元3714。被存储在输入数据贮存单元3714的数据通过接收/发送缓存器3712和接收/发送模块3711被发送到主控PLC(M)。
本发明提供增强和扩展传统的PLC的能力的新的特性。
发明目的和概要本发明的一个目的是增强和扩展PLC的能力。
本发明的另一个目的是提供增强和扩展PLC的输入能力的数字输入滤波器。
本发明的再一个目的是提供增强和扩展PLC的脉冲捕获能力的脉冲捕获电路。
本发明的又一个目的是提供增强和扩展PLC的输出能力的脉冲输出控制器。
本发明的另一个目的是提供增强和扩展PLC的端口能力的自由端口链路。
本发明的再一个目的是提供增强和扩展PLC的连接性的、用于调制解调器通信的协议。
本发明的又一个目的是提供增强和扩展PLC与外部编程应用项的集成的隐匿指令。
本发明的另一个目的是提供增强和扩展PLC的功能调用能力的系统功能调用。
本发明的一个附加目的是提供增强和扩展PLC的状态捕获能力的STL状态。
本发明的又一个附加目的是提供带有增强和扩展的能力的宏PLC。
按照上述的目的,本发明提供带有增强和扩展的能力的可编程逻辑控制器。
本发明的一个方面,提供了数字输入滤波器。数字输入滤波器模仿由恒定电流源驱动的电容的作用,它的输出电压由带有大的滞后的比较器被检测。数字滤波器用少得多的逻辑实施输入滤波器。
本发明的另一个方面,提供了脉冲捕获电路。脉冲捕获电路捕获输入脉冲,尽管在扫描周期之间出现更新。
本发明的又一个方面,提供了脉冲输出控制器。脉冲输出控制器从一个PTO或PWM波形平滑地过渡到另一个波形。脉冲输出控制器包括硬件流水线机制,允许从波形到波形的、平滑的、硬件控制的过渡。
本发明的另一个方面,提供了自由端口链路。自由端口链路允许用户人工地或通过用户程序运行来控制端口。为了提供使用PPI协议的通信的更高的性能,提供了内建的协议选择任选项。
本发明的再一个方面,提供了用于调制解调器通信的协议。在特定的安排中,调制解调器协议支持在标准的10比特全双工调制解调器上的通信。协议使用精巧的技术确保数据完整性,而不使用奇偶校验型数据完整性系统。
本发明的又一个方面,提供了隐匿指令。隐匿指令通过加密敏感的代码和在编译期间解密该代码,以及此后重新加密该代码,而提供对专利的软件的保护。
本发明的另一个方面,提供了系统功能调用。系统功能调用允许用户创建和/或下载新的PLC功能以及实施它们作为PLC操作系统功能。
本发明的又一个方面,提供了STL状态功能。STL状态功能允许用户在运行时间期间和正在执行程序的同时诊断程序。
本发明的再一个方面,提供了在宏PLC安排中的PLC。
通过以下对附图的说明,将容易了解本发明的这些和其它目的。
附图简述图1是本发明的PLC的透视图;图2是PLC的方框图;图3是PLC的电路图;图4是ASIC的方框图;图5是输入块的方框图;图6a是输入滤波器电路的方框图;图6b是输入滤波器电路的真值表;图6c和d是输入滤波器电路的方框图;图7是延迟时间表;图8是扫描周期的时序图;图9是脉冲捕获电路的方框图;图10是扫描周期的时序图;图11是扫描周期的时序图;图12a是脉冲捕获电路的真值表;图12b是用于脉冲捕获电路使能寄存器的表;图12c是用于脉冲捕获电路保留寄存器的表;图12d是用于脉冲捕获电路输入点状态寄存器的表;图12e是用于脉冲捕获电路的方框图;图12f是用于脉冲捕获电路的方框图;图13是输出块的方框图;图14a是脉冲输出块的方框图;图14b是脉冲输出块的寄存器的表;图15是脉冲输出块的状态图;图16是软件代码表;图17是脉冲输出块的状态图;图18是软件代码表;图19是用于高速运行的表;图20是I/O扩展插槽的方框图;图21是用于I/O扩展插槽的表;图22是I/O扩展模块的方框图;图23是元件表;图24是电平表;图25是读周期的时序图;图26是写周期的时序图;图27是奇偶校验比特的表;图28是CPU类型的表;图29是中断的表;图30a是自由端口的流程图;图30b,c和d是SM比特定义的表;图30e是端口定义的表;
图31是调制解调器协议的流程图;图32a是控制功能的表;图32b是隐匿指令的流程图;图33a是控制功能的表;图33b是系统功能调用的流程图;图34a是STL指令的表;图34b是STL功能的系统图;图34c是STL功能的流程图;图34d是布尔表示式的表;图35a是PLC参量的表;图35b是PLC和I/O控制模块的透视图;图36是PLC的方框图;图37a是主/从属系统的方框图;以及图37b是在主/从属系统中通信的方框图。
优选实施例的详细描述可编程逻辑控制器(PLC)的总的说明图1上显示本发明的示例的可编程逻辑控制器(PLC)100。
该图说明PLC 100的输入/输出(I/O)能力。用户通过操作运行/停止开关电位计和扩展I/O连接器104而控制PLC 100。状态发光二极管(LED)106指示PLC 100的状态。卡盘端口108被提供来接受用于扩展PLC 100的功能的卡盘,包括例如增加存储器。I/O LED 110被提供来指示PLC 100的输入/输出管脚的状态。通信端口112把PLC100耦合到外部部件,例如,包括其它的PLC。通信端口可被使用来以主从关系把PLC 100连接到其它的PLC。通信端口也可被使用来连接例如计算机(诸如网络计算机或个人计算机)。PLC 100也可以通过通信端口112经过调制解调器或等价的通信协议装置连接到互联网。用户引线连接器114允许用户将该PLC外连到如马达和其他外部设备上。
在图上,PLC 100被显示为靠近一个扩展I/O,它扩展PLC 100的输入/输出能力。控制模块以及PLC 100,包括DIN轨道安装插销116和面板安装定位位置118,用于把PLC 100和扩展I/O 102固定到适当的安装卡具。
将会看到,本发明的PLC 100可包括PLC的多个装置和配置,几个扩展I/O模块,以及包括存储器卡盘,时钟卡盘,电池卡盘电缆或I/O仿真器开关组件的附件。本发明将描述与这里描述的各个方面的特定部分有关的一部分可能的配置,专业人员通过了解这里描述的本发明将立即知道这些配置。
本发明的PLC因为它的小的物理尺寸被归类为微PLC。虽然PLC在物理尺寸是小的,但它包括与物理上大的PLC同样有力(如果并不比它更有力的话)的许多特性。图1显示具有可能的尺寸的PLC和I/O模块的图。PLC 100的设计可参照图39a和b被描述。
图2显示本发明的PLC的方框图200。所显示的方框图是对于带有用于供电的集成的AC电源202的PLC。中央处理器210是PLC 200(100)的核心,它包括ASIC,ROM和RAM。数字输入接口212被提供来从用户引线114输入信号(图1)。数字输出接口204把PLC 200耦合到用户引线114(图1)。通信接口206把PLC 200经过例如RS-485或令牌总线通信耦合到外部装置。扩展I/O接口208把PLC 200经过例如高速复接的总线连接到扩展I/O接口。
运行时,AC电源202可以提供在AC线与输出(诸如24VDC和5VDC输出)之间的隔离边界。PLC也可以用24VDC电源被供电。24VDC电源模块不提供24VDC与5VDC的隔离。数字输入接口212可任选地把用户引线与中央处理器(CPU)210相隔离,后者包括所有的逻辑电平信号。数字输出接口提供在用户引线与CPU之间类似的隔离边界。隔离边界以光的隔离的形式或通过继电器被提供,其中继电器线圈与继电器触点相隔离。在图上没有显示在CPU与通信接口或扩展I/O接口之间有隔离,但可以提供这种隔离。所有的扩展I/O模块提供一个于用户引线与5VDC逻辑信号之间的光的隔离边界。CPU 210包括ASIC,它包括微处理器,RAM和ROM。ROM包含用于PLC的操作系统,以及取决于PLC型号,可以是EPROM或FLASH EPROM。RAM被使用于操作系统数据贮存和高速暂存,以及用于存储已被编译为可执行的代码的用户程序。
在图3上显示了中央处理器(CPU)300 H/W的方框图。这里没有详细地描述所显示的CPU的连接。这里感兴趣的特定的连接是I/O板上的输入电路302,I/O扩展总线304,和I/O板上的输出电路306连接。无论如何,图3充分概略清晰地显示了这些细节,专业人员将没有问题从图上了解细节。将会看到,图3只显示一个装置,以及本领域技术人员根据本技术说明将容易了解如何实施其它的、等价的装置。
CPU 300和连接被安排为图4以示意图形式显示的ASIC。如图所示,ASIC包括微处理器406(标记为“core(核心)”),地址译码单元402和映射逻辑。两个UART(通用异步接收机发射机)424,426被提供来实施形成串行端口的电子电路。UART把来自CPU的并行字节变换成串行字节,以便传输,以及反之亦然。然而,其它的通信安排也是可能的。有数字输入条件电路418,高速计数器410,脉冲串输出电路420,电位计电路414,看门狗电路430和复位电路428。提供了总线接口404。扩展I/O单元1被标记为422。测试接口被提供来测试PLC 100。功率分布电路被显示为电路432。存储器被显示为内部RAM 408。中断控制单元412处理用于CPU 406的中断。
PLC 100提供用户创建特定的应用控制程序的装置,当程序被PLC执行时,它引导机器的操作和/或在制造各种各样的产品时使用的处理。这样,该PLC类似于所有其它的PLC,以及专业人员通过对PLC的这样的基本了解,将立即了解本发明的更通俗的方面。不管PLC的使用和功能上的相似性,有许多独特的特性和功能,被混合到本发明的PLC 100,它扩展和增强对于用户的功用,正如这里描述的。
数字输入点单元现在将描述数字输入点单元418。在每个数字输入信号(10.0到11.5)被变换到可兼容的信号,例如,+5V信号,以及与用户引线隔离以后,它被馈送到ASIC的数字输入点单元418。在图5上显示了用于输入点1BO[20]的方框图,它显示由数字输入点单元500(418,图4)提供的功能。
这个单元500在从用户应用项被连接到CPU的数字输入点上执行多个功能。这个单元对输入点滤波,以及为这些点的滤波的状态提供接入。脉冲捕获功能在每个输入点上被提供来可任选地允许捕获短的持续时间的脉冲。边缘中断功能被提供来在某些输入点上出现上升和下降沿过渡时产生中断。高速计数器被使用来计数对于CPU扫描速率发生太快的事件。
如图5所示,数字输入滤波器5061-n提供可软件配置的滤波器。也就是,PLC设置滤波器参量,参量按照由PLC执行的软件控制滤波函数。在至少一个装置中,多到8个滤波器数值是可由软件配置的,例如从0.2ms到12.8ms。例如,对于在每个输入点上的4比特上/下计数器,滤波器实施是可能的。脉冲捕获电路5081-n允许捕获滤波的输入的上升或下降沿过渡,直至软件有机会读出数值为止。独立的使能/禁止脉冲捕获功能被提供用于每个输入点。边缘中断电路5101-n,当这个功能被使能时,例如在多到四个输入点上出现上升沿和/或下降沿过渡时产生中断。高速计数器514(516),在本例中支持六个高速计数器(HSC),每个包含例如一个32比特上/下计数器和一个32比特比较寄存器。32比特寄存器捕获计数值,以使得它可被软件读出。每个计数器和比较寄存器可由软件装载。HSC中的四个,例如,可以处理两个相位的时钟。另两个HSC只可以支持单相位时钟。每个HSC可以在出现计数器对比较寄存器的相等性时,在方向改变条件时和在断言HSC的外部复位输入时,产生中断。
数字输入滤波器电路在以前的ASIC电路中输入滤波器的实施消耗太多的门。在本发明的ASIC中,需要提供可兼容的功能而不消耗这样多的门。以下是参照图6a到6d和7通过利用图6b的真值表对于在本ASIC中用相当少的逻辑实施输入滤波器的说明。
ASIC提供数字输入滤波用于,例如,十四个数字输入点,如图6a和6b所示。在图6a上,数字输入滤波器电路600(506,图5)包括输入602,输入滤波器电路604,选择的延时606和输出608。由选择的延时606设置的滤波器延时是可软件配置的例如七个不同的数值之一。滤波器延时通过ASIC内部的可设置寄存器被选择。图7上的以下的表描述在写入到寄存器的数值与选择的相应的延时之间的可能的关系。当然,其它的关系是可能的。
每个数字输入滤波器模仿由恒定电流源驱动的电容器的作用,它的输出电压由带有大后滞的比较器被检测。这个模拟电路的数字等价被实施为四个比特的上/下计数器,它的计数方向由输入点的状态控制。计数器进行时钟触发的频率由软件从被写入到ASIC内部的寄存器的选择值被确定。1MHz主控时钟被使用作为用于每个滤波器的时间基准,这样,它的运行是与系统时钟频率无关的。延时值通过以下的公式被计算数字滤波器延时=12*(上/下计数器选择的输入时钟的周期)图6b上的真值表规定数字等价电路的运行,其中由滤波器产生的结果是输出值608(FIBy.x)。本领域技术人员将立即看到,电路的细节可以通过使用熟知的布尔逻辑从图6b的表被实施。示例性电路被显示于图6c。
对于例如四个输入的每组,复接器610输出8个时钟中的一个时钟,其被使用来设置输入滤波器延时。由复接器610选择的时钟驱动4比特上/下计数器612(在四个输入的每组中每个输入有一个)。物量输入控制4比特计数器的方向(上/下)。当输入是接通(逻辑“1”)时,计数器向上计数。当输入是关断(逻辑“0”)时,计数器向下计数。计数值的向上计数序列是0,1,2,...,13,14,15,15,15,...,15计数值的向下计数序列是15,14,13,...,2,1,0,0,0,...,0正如计数序列表示的,当向上计数时或当向下计数使,计数器将不翻转。
滤波器延时614被设计来模仿驱动电容器的恒定电流源的运行,它的电压被带有大的滞后的比较器检测。在本例中,为了检测从断开到接通的输入过渡,计数器必须达到12的计数值。一旦这个计数值达到,输出端就被接通以及它将保持接通,直至对于从接通到关断的输入过渡的门限值达到3的计数值为止。图上所显示的、与非门逻辑620实施这些门限值。
门限值是对称的,因为从稳态的低的或高的输入条件需要12个向上计数值或12个向下计数值。图6b上的表列出在提供给复接器的每个频率下对于12个时钟的延时。当然,其它延时也是可能的。附加的层,每层包括计数器616,与非门逻辑622和延时器618可被提供给每个输入,它们以相应的方式作为前面描述的层运行。
脉冲捕获电路在数字输入滤波器电路后面是脉冲捕获电路(508,图5)。这个电路的目的是捕获在从高到低的,或从低到高的输入状态中的改变,并保持它直至PLC操作系统软件识别到状态的改变为止。PLC在STOP(停止)和RUN(运行)模式中以循环方式读出输入的状态。(在PLC中STOP和RUN模式之间的主要差别在于,在STOP模式下,用户的程序不被执行,而在RUN模式下,用户的程序被执行)图8显示PLC扫描周期(该周期通常称为PLC扫描周期或简单扫描)。如图8所示,在RUN模式下PLC扫描周期读出输入,每个周期一次。相同的扫描周期被遵循于STOP模式下,但在STOP模式不执行用户的程序。
因为每个周期只读出输入一次,输入有可能改变状态,而PLC却没有识别其改变。这样的状态改变发生得太快以致于PLC没有识别,被称为脉冲。为了防止PLC丢失在输入处的短的脉冲,用户可以使能进行输入中断,它将暂停正常的程序执行,而同时PLC服务中断。这个方法非常有效,但它需要来自CPU的附加支持,以及使用相当大的执行时间来处理中断例程。为此,只允许小量的输入中断。
另一个方法是在到PLC的每个集成输入端处提供脉冲捕获电路。这个方法允许捕获和保持不经常的、但短的持续时间的脉冲(或者高电平或者低电平),直至PLC识别在扫描周期中适当的点上的改变为止。
脉冲捕获电路顶层方框图现在更详细地,图9显示脉冲捕获电路900(508,图5),其中输入902被耦合到脉冲捕获电路904、按照使能信号906被捕获,并输出908。这样,脉冲捕获电路能够捕获和保持数字输入点脉冲,它的持续时间大于选择的脉冲时间但小于扫描时间。图10显示因为在输入更新之间出现脉冲而丢失脉冲的问题,CPU软件被设计成每个CPU扫描读出所有的输入点的状态一次,以及这个操作被称为输入更新。如上所述,如果在接连的CPU扫描的输入更新之间出现一个脉冲,则这个脉冲可能被丢失(见图10的例子)。脉冲捕获电路904捕获和保持这种类型的事件。在一个可能的安排中,有14个脉冲捕获电路,每个输入点一个。
当脉冲捕获电路被启用时,输入的状态的改变(从低到高或从高到低)被捕获。输入的另外的状态改变被忽略,直至捕获值在下一个CPU扫描期间被软件读出为止。一旦捕获值被读出,电路就能够检测新的输入状态值。
脉冲捕获电路的运行可以通过图12a所示的用于同步状态机的真值表被更精确地描述。该表上所使用的符号被规定如下PCE-脉冲捕获电路使能比特I-由输入滤波器电路同步到系统时钟的输入信号(FIBy.x)CV-在输入的状态改变后和在输入更新后捕获的输入值(同步到系统时钟)F-状态改变标志(同步到系统时钟)RP-通过输入状态字节的读出产生的读数脉冲(每个输入状态字节一个)(同步到系统时钟,这样,对于一个时钟周期,它是工作的,以及在转移输入状态的时钟边缘处变为不工作的)PS-当前的状态NS-下一个状态在运行时,参照图12a,当电路在输入中检测到状态改变时,输入的新的数值被捕获,以及状态改变标志被设置。在状态标志被设置时,存储的输入值被保持以及不能被更新。所以,在状态改变标志被设置时出现的任何输入改变被忽略。在存储的数值通过软件被读出后,状态改变标志被复位,输入的当前状态被捕获,以及输入状态改变的检测被重新使能。这个动作序列被称为重新触发脉冲捕获电路。结果是,即使在扫描周期之间出现更新,输入脉冲被捕获,如图11所示。例如,参阅CIB1.6,显示即使在扫描周期之间,即在扫描n与扫描n+1之间出现脉冲,脉冲捕获电路输出908捕获输入脉冲902。
例如,在这个方块中提供两个8比特寄存器,用于对于16个输入点的每个输入点的单独地使能和禁止脉冲捕获功能。这些使能寄存器在如图12b所示的表中被规定。输入状态寄存器被提供来给予CPU软件到附带条件的输入点状态的入口,CIB0[70]和CIB1[50],它们被从脉冲捕获电路输出。这些被显示于图12c。输入状态寄存器的格式被显示于图12d。
脉冲捕获电路的电路元件,正如本领域技术人员将会看到的,将很容易从图12a所示的真值表上获知。还将看到,脉冲捕获电路可以具有多种满足真值表的配置。
按照以上说明运行的示例性脉冲捕获电路被显示于图12e和12f。系统时钟脉冲驱动触发器1202,1208。输入信号被耦合到第一触发器1202,它的Q输出被耦合到与非门逻辑1206。信号PCE、RP和F被延时和被耦合到与非门逻辑1206中的相应的与非门,如图所示。另外,第二触发器1208的输出被反馈到与非门逻辑1206。与非门逻辑的输出被耦合到第二触发器1208,在由此被锁存后,被钟控到输出端。在图12f上,产生F信号,其中系统时钟驱动触发器1210和1216。第一触发器锁存输入,以及第二触发器锁存与非门逻辑1214的输出。与非门逻辑1214被安排成,如图所示地,对从第一触发器输出的信号(Q),Q的倒相值,输入信号的捕获值和它的延时的值(由延时器1212延时),由延时器1212延时的RP信号和PCE信号实施前面所述的逻辑。
脉冲捕获电路可单独地被使能和被禁止。如果脉冲捕获电路被禁止,则电路输入被传送到电路输出端。如果被使能,则上述的脉冲捕获电路是工作的。
数字输出点单元这个数字输出单元(420,图4)允许直接软件控制每个输出点的状态。另外,脉冲输出能力允许在输出点中的多达2个点上的脉冲串输出和脉冲宽度调制输出。
现在参照图13,ASIC提供两个输出点状态寄存器1302,1304,用于软件控制十个数字输出点的状态。另外,两个脉冲输出块1306,1308(PLS)可被实施来提供以快于软件可完成的频率产生脉冲波形的能力。
在脉冲输出块1306,1308内,ASIC提供两个输出功能的选择,例如PWM(脉冲宽度调制)或PTO(脉冲串输出)。PWM功能为连续的脉冲输出提供可编程的周期时间和占空比。主要打算用于步进电机应用项,PTO功能提供用于特定的目的约50%占空比脉冲的输出。当然,本领域技术人员将会看到其它的应用项。在PTO功能中的周期时间也是可编程的,以及可以是固定的或可以按用户指定的速率被自动调节增加或减小。
当PLS0运行(被使能)时,它通过MUX 1310控制输出点XQB0.0。否则,XQB0.0通过由软件写入到ASIC的输出点状态寄存器的数值被控制。同样地,PLS1,如果被使能,通过MUX 1312控制XQB0.1的状态,以及如果PLS1没有被使能,ASIC的输出点状态寄存器控制XQB0.1的状态。
脉冲输出块所显示的ASIC支持两个脉冲输出块(PLS)。当然,可以配置任意数目的PLS。这些块允许CPU以快于CPU软件能够人工产生的频率产生波形。来自脉冲输出块0(PLS0)的输出是输出点XQB0.0的源之一以及来自脉冲输出块0(PLS0)的输出是输出点XQB0.1的源之一。
用于PLC的ASIC提供脉冲串输出(PTO)和脉冲宽度调制(PWM)功能。PTO是运行模式,其中波形的周期(周期时间)和周期的数目(脉冲计数)由软件规定。波形的占空比约为50%。PWM是运行模式,其中周期(周期时间)和占空比(脉冲宽度)由软件规定,以及波形连续地输出。
可以发现,这些功能的实施有一个根本问题从一个PTO或PWM波形到另一个PTO或PWM波形无法平滑过渡。每个过渡需要脉冲输出块由软件被停止,然后重新启动,这在最终的输出波形中引入不连续性。
因为如上所述的从一个波形到另一个波形的过渡的问题,本发明的ASIC为脉冲输出块提供硬件流水线机制,允许从波形到波形的、平滑的硬件控制的过渡。另外,为了允许对于步进电机的良好的运行,把按指定的速率自动倾斜周期时间的数值的能力加到ASIC中。
PLS方框图和运行总貌图14a上所示的方框图显示了每个脉冲输出块1400的组织和部件。
PLS时间基准的产生-时间基准(例如,1ms或1μs)由复接器1402提供,它选择例如1MHz主控时基时钟或从主控时基时钟得出的1kHz时钟。
波形周期控制-时基复接器的输出驱动16比特向上计数器,被称为周期时间计数器1420。这个计数器在时基时钟的上升沿处被加增量。该计数器的输出由比较器1430与被存储在16比特周期时间预定值寄存器1422中的数值进行比较,以便控制输出波形的周期。当周期时间计数器的数值达到周期时间预定值寄存器的数值时,当前的周期完成,以及产生CycleDone(周期完成)事件。
被存储在周期时间计数器1420和周期时间预定值寄存器1422中的数值是无符号的数值。周期时间计数器1420的有效的范围,例如,是0到65535。周期时间预定值寄存器的有效范围是2到65535。为确定CycleDone所进行的比较是无符号的比较。
周期时间差值寄存器1406被使用来在PTO模式中保存有符号的、二进制补码的16比特数值,在每次CycleDone事件时它被加到被存储在周期时间预定值寄存器1422中的数值上。如果和值超过65535或小于2,则产生AdderError(加法器错误)事件。例如,预定值=65530(FFFAH无符号的)预定值=65530(FFFAH无符号)差值=-20(FFECH有符号的)差值=20(0014H有符号的)和值=65530+(-20)=65510 OK 和值=65530+(20)=65550 AdderError!!!预定值=100(0064H无符号的) 预定值=100(0064H无符号)差值=-20(FFECH有符号的)差值=-120(FF88H有符号的)和值=100+(-20)=80 OK 和值=100+(-120)=-20 AdderError!!!在PWM模式,周期时间差值寄存器被保持在0的数值。
只有在PLS块被禁止时,软件才可以装载周期时间预定值寄存器1422和周期时间差值寄存器1406。在PTO模式时,这个寄存器的有效范围是,例如,-32768到+32767。
波形占空比控制-周期时间计数器1420的输出也被使用于控制波形占空比。在这个计数值与其来源由PLS运行模式确定的脉冲宽度预定值之间执行无符号的比较。PLS块输出信号PLSxOUT的状态由这个比较确定。当计数值小于脉冲宽度预定值时,PLSxOUT信号是高电平。当计数值达到或超过预定值时,则PLSxOUT信号被驱动为低电平。如果处在PWM模式,则脉冲宽度预定值从脉冲计数/宽度预定值寄存器1408的较低的16比特得出,或如果处在PTO模式,则脉冲宽度预定值是被存储在周期时间预定值寄存器1422中的数值的一半。
如果脉冲宽度预定值是0,则PLSxOUT对于整个周期是低电平。如果脉冲宽度预定值等于或大于周期时间预定值,则PLSxOUT对于整个周期是高电平。
脉冲计数/宽度预定值寄存器1408由软件装载,但当运行在PWM模式时,只有较低的16比特是有效的。所以,软件只应当在PWM模式下写入寄存器的最低有效字。在这个模式下这个寄存器的有效的范围是0到65535。这个寄存器只有在PLS块被禁止时才可以被软件装载。
周期数量控制(仅仅在PTO模式)-32比特向上计数器,其被称为脉冲计数器1428,在每次CyeleDone时被驱动,以便计数在PLSxOUT信号上产生的周期的数目。被存储在这个计数器中的数值由比较器1434与在32比特脉冲计数预定值寄存器1416中的数值进行比较,以便确定当前PTO运行的完成。当脉冲计数器1428的数值达到脉冲计数预定值时,产生PTOComplete事件。在PWM模式下,这个计数器不被使用。
在PTO模式下,脉冲计数/宽度预定值寄存器1416的全部32比特是有效,并由软件装载。在这个模式下这个寄存器的有效范围是1到(232-1)。这个寄存器只有在PLS块被禁止时才可以被软件装载。
运行控制-控制寄存器包含比特,其允许软件使能或禁止PLS块的运行。一旦软件启用PLS块,则输出点从QBxPS控制到PLS块控制的切换以及内部计数器的运行和比较,与时基时钟的下一个上升沿同步。这样做是为了确保输出波形的初始周期具有合适的持续时间和脉冲宽度。这个寄存器在看门狗超时故障条件的情况下或由于输出禁止功能的直接软件控制时被保持在它的复位状态。
设置寄存器包含比特,其允许软件配置PLS块的运行。包括有PLS时基选择和运行模式选择。中断使能寄存器给予软件对于PTOComplete和AdderError中断事件单独地使能和禁止中断产生的能力。状态寄存器被提供来允许软件得到有关PLS块的当前运行状态的信息。这个信息包括使能状态和流水线装载标志的状态(在下面描述)。
中断状态寄存器提供中断源或产生中断条件的中断源的信息。INTxPLS信号发源于PLS块,以及被中断控制单元使用。当PLS中断产生事件中的一个或两个事件发生时(受到中断使能寄存器中中断使能比特的状态影响时),这个信号成为激活的。读出中断状态寄存器,将清除在PLS块中所有工作的中断指示,以及释放INTxPLS信号。另外,禁止中断使能寄存器中的中断产生源,将清除来自该源的待决的中断。如果在PLS块中没有其它中断正在待决,则INTxPLS信号将被释放。
硬件流水线机制-流水线机制被提供来使得对波形特性的修正可被加上,而没有结果的波形失真。以下的流水线寄存器被提供来保存用于周期时间、脉冲宽度等的新的数值·周期时间流水线寄存器被使用来存储新的周期时间值。
·周期时间差值流水线寄存器被使用来存储新的周期时间差值。
·脉冲计数/宽度流水线寄存器被使用来存储新的脉冲计数或脉冲宽度值(如果在PTO模式下,这个寄存器存储新的脉冲计数值以及使用寄存器的全部32比特。如果在PWM模式下,这个寄存器存储新的脉冲宽度以及只使用寄存器的较低的16比特)。
当使用硬件流水线机制时,流水线装载标志作为在PLS块与软件之间的接口的一部分被实施。无论何时软件把一个数值写入到脉冲计数/宽度流水线寄存器的最低有效字节时,流水线装载标志被置位。所以,为了使用硬件流水线机制,软件必须总是写一个数值到脉冲计数/宽度流水线寄存器,以及它必须是要被写入的最后的流水线寄存器。
所有的流水线寄存器必须由软件装载,因为所以流水线寄存器的内容将被传送到运行的寄存器。在PWM模式下,软件不需要写入到周期时间差值流水线寄存器,因为在PLS块处在PWM模式时周期时间差值寄存器被保持在0。该流水线寄存器的任何内容有效地被丢弃。
一旦流水线寄存器被写入以及流水线装载标志被置位,流水线寄存器的内容在以下的条件下被传送到运行的寄存器·如果PLS块被使能,则如果处在PTO模式下在出现PTOComplete事件后,或如果在PWM模式下在出现CycleDone事件后,将进行传送。
·如果PLS块被禁止,则当PLS块被软件使能时,将立即进行传送。
在完成传送到运行的寄存器后,流水线装载标志然后将自动地被清除。
一旦流水线装载标志在使能的PLS块被置位,就阻止软件写入到任何的流水线寄存器,直至它们的内容被传送到运行的寄存器为止(通过由ASIC对流水线装载标志的清除表示)。如果PLS块被禁止,则流水线寄存器可以由软件写入,而没有限制,以及每次脉冲计数/宽度流水线寄存器的最低有效字节被写入时,流水线装载标志将被设置。
自动禁止机制-在PTO模式下的使能的PLS块在以下的条件可被自动禁止·出现PTOComplete事件,以及没有新的波形设置被存储在流水线寄存器中(流水线装载标志是0)。
·出现AdderError事件。
当PLS块被自动禁止时,在控制寄存器中的主控使能比特被ASIC清除。流水线装载标志不受影响。
人工禁止-无论何时在控制寄存器中的主控使能比特被软件清除时,PLS块将立即进入PTO禁止状态或PWM禁止状态(在下面描述),取决于块的当前的运行模式。软件禁止也将清除流水线装载标志和任何的待决的中断。
有效的寄存器范围-图14b中的表显示在PLS块中对于每个数字寄存器的正确的数值的范围。
PTO运行这个模式通过使能PLS块而被选择。软件将控制周期时间、周期时间差值、和脉冲计数。占空比被固定在50%。所以,PLS块的以下的功能能够在这个模式下被使用·周期时间预定值和周期时间流水线寄存器·周期时间差值和周期时间差值流水线寄存器·脉冲计数/宽度预定值和脉冲计数/宽度流水线寄存器(被配置成保持32比特脉冲计数)·32比特脉冲计数器·16比特周期时间计数器·进行比较产生CycleDone事件·进行比较产生PTOComplete事件·进行比较控制PLSxOUT的状态·流水线装载标志·PTOComplete和AdderError中断在PTO模式下PLS块的主要状态转移被显示于图15的状态图1500。
当PLS块处在PTO禁止状态1502时·QBO.x输出由输出点状态寄存器控制,而不是PLS块控制。
·周期时间计数器和脉冲计数器被保持在0。
·PLSxSTAT.EN状态比特表示被禁止的。
当PLS块处在PTO运行状态1504时,·QBO.x输出由PLS块(通过PLSxOUT信号)控制。
·PLSxSTAT.EN状态比特表示使能的。
·正常的PTO运行是使能的。
周期时间计数器在PLS时基的上升沿处被加增量,以及PLS块的大多数功能从该计数器直接地或间接地被驱动。伪代码的图16的段列出在PLS时基的上升沿处出现的、在PTO模式下ASIC的动作(动作的次序是重要的,所以假设这些说明的顶部到底部的估计)。本领域技术人员将从伪代码立即理解PTO模式下ASIC的运行。
PWM运行这个模式通过使能PLS块而被选择。软件将控制周期时间和脉冲宽度。所以,PLS块的以下的功能能够在这个模式下被使用·周期时间预定值和周期时间流水线寄存器·脉冲计数/宽度预定值和脉冲计数/宽度流水线寄存器(被配置成用于16比特脉冲宽度)·16比特周期时间计数器·进行比较产生CycleDone事件·进行比较控制PLSxOUT状态·流水线装载标志周期时间差值寄存器和周期时间差值流水线寄存器被保持在0,以及用于该块的脉冲计数和中断产生被禁止。INTxPLS信号在这个模式下应当总是被驱动到非激活状态。
在PWM模式下PLS块的主要状态转移被显示于图17所示的状态图。
当PLS块处在PWM禁止状态1702时·QBO.x输出由输出点状态寄存器控制,而不是PLS块控制。
·周期时间计数器被保持在0。
·PLSxSTAT.EN状态比特表示禁止的。
当PLS块处在PWM运行状态1704时,·QBO.x输出由PLS块(通过PLSxOUT信号)控制。
·PLSxSTAT.EN状态比特表示使能的。
·正常的PTO运行是使能的。
周期时间计数器在PLS时基的上升沿处被加增量,以及PLS块的大多数功能从该计数器直接地或间接地被驱动。伪代码的图18的段列出在PLS时基的上升沿处出现的、在PWM模式下ASIC的动作(动作的次序是重要的,所以假设这些说明的顶部到底部的估计)。本领域技术人员将从伪代码立即理解PWM模式下ASIC的运行。
脉冲串输出分布指令(PTOP)由ASIC提供的脉冲输出功能主要打算用于控制步进电机。PLC提供用户指令,用于产生用于加速/减速和运行步进电机的分布。这个指令被显示于图19。
扩展I/O单元扩展总线概念的总貌物理地,扩展子系统包含附入的I/O模块,它们被独立地安装,而不用公共的背板。十条导体带状电缆被使用来连接到上述的模块或CPU。该电缆是每个模块的一部分。这个电缆载送对于模块运行所需要的5V电源和逻辑信号。见图20。在I/O扩展总线中的信号在图21上描述。
虽然所有的信号通过模块物理地菊花-链接,但只有EMA信号在每个模块中被逻辑地断开和重新产生。所有其它的信号形成单个电总线,它延伸I/O模块链的长度。EMA信号的数值在被传送到下-个模块之前被加增量。到扩展I/O总线的每个接入包括模块地址区,用于选择要被接入的模块。只有其地址与消息的模块地址区相一致的模块将应答该接入。这种方案允许要被串接的I/O模块类型的任意混合,而不用地址开关和不用固定的背板。多到8单元的逻辑扩展用三条EMA信号线是可能的,然而现在只允许有7个模块。当然,其它的扩展单元也是可能的。
图22显示在本发明中的逻辑结构2200和I/O模块2202的信号流。I/O扩展逻辑结构的细节不在这里描述。图23上的表给出对于在扩展I/O模块的电接口中使用的每个部件的数值。图24上的表描述I/O总线信号的电特性。到扩展I/O的接入由CPU中的ASIC控制,以及将从图25和26的图上看到,该图显示在扩展I/O总线上的读和写周期序列。
ASIC(主控状态机和事务时序)以下描述总线事务序列。EM总线时序被安排成在需要的地方提供用于传播延时的时间和信号扭曲。主控机在EMC的下降沿时钟处提供信号,在下一个上升沿处被从属机锁存。一半的EMC时钟时间被允许来覆盖给从属机的数据的建立,以及考虑通过ASIC缓存器、外部电缆,和可能的中继站缓存器的EMC对EMD的最坏情形的扭曲。从属机在EMC上升沿处给出数据,以及主控机在跟着的上升时钟沿处锁存数据。这允许完全的时钟时间用于时钟传播到从属机,从属时钟-到-输出延时,和返回传播时间。
在总线事务期间,寄存器区首先在总线最高位处被给出。2比特奇偶校验区的P1比特首先被给出,然后是P0比特。主控状态机行动对于EMC的上升沿和下降沿进行描述,而从属机假定除了EMC以外没有其它时基,以及可以完全在EMC上升沿处运行。EMC在不使用时被驱动到低电平,使得钟控虚假数据到从属机的可能性最小。
总线事务序列以下的段落描述在写入数据到从属机和从从属机读出数据时的EM总线事务序列的各个部件。以下的行动假定为从主控机(EM单元)产生的,除非它们被特别归结被从属机执行。以下的正文和以后的时钟图将有助于了解事务序列。
序列开始-EM总线事务由写入到EMOSTART或EM1START寄存器中的软件触发。EM状态寄存器的进行中比特被立即设置。在进行中比特被设置以避免干扰在进行中的总线序列时,另外到EM寄存器的写访问被ASIC禁止。软件的任务是确保新的总线事务只在EM单元是空闲时(进行比特是低电平)才被触发。如果序列是通过写入到EMOSTART寄存器被触发的,则总线事务从EMC0信号被钟控。如果序列是通过写入到EM1START寄存器被触发的,则总线事务从EMC1信号被钟控。EM总线序列的实际开始(被称为EMCST)发生在事务触发后EMC时基的第一个下降沿处。
模块/寄存器地址-在EMCST时间点,主控机驱动XA_OD信号为低并使能EMC和EMD信号。在EMC上升沿处的激活的XA_OD的检测被从属机使用来识别寻址操作的开始。然后主控在EMC信号上产生10个时钟,在EMD上顺序地钟控EMADDR寄存器的内容以及2个奇偶校验比特,P1和P0。在EMD上呈现的EMADDR的第一比特在EMCST点是有效的。XA_OD信号在EMC↓1时被再次驱动到高电平。主控机在每个EMC↓上呈现EMD上的新的比特。EMD信号在EMC↓10时被释放。从属机在EMC↑110时(在EMC110的上升沿处)锁存有效的信息。
读出数据序列-对于读事务,EMDDIR信号在EMC↓10时被驱动到低的状态。在对模块/寄存器地址比特钟控后,主控机在EMC信号上产生另外13个时钟(1123)。EMC时钟1112是空闲时钟,以便允许从属时间使得适当的寄存器数据和奇偶校验可提供用于传送。选择的从属机在EMC↑1322在EMD信号上提供8个数据和2个奇偶校验比特,以及在EMC↑23返回到空闲状态(从属机在这时释放EMD信号)。主控机在EMC↑1423锁存信息。从属机首先提供数据值的最高有效比特,然后是P1奇偶校验比特,最后是P0奇偶校验比特。数据值被存储在寄存器EMDATA。主控机确定被存储在EMDATA中的数值的奇偶校验,以及把这个计算过的奇偶校验与从从属机接收的奇偶校验比特进行比较。如果计算的奇偶校验与接收的奇偶校验不一致,则EM状态寄存器中的错误比特被设置。否则,错误比特被清除。EMDDIR信号在EMC↓23被释放(被驱动到高电平)。
写入数据序列-对于写事务,在对模块/寄存器地址比特钟控后,主控机在EMC上提供另外14个时钟(1124)。主控机在EMD上提供8个数据比特(来自EMDATA寄存器),接着是2个奇偶校验比特(P1然后是P0)。主控机在EMC↓1019给出数据和奇偶校验比特,然后在EMC↓20释放EMD信号和驱动EMDDIR信号到低的状态。从属机在EMC↑1120锁存有效的信息。从属机通过在EMC↑2223对来自EMD的比特0然后是1进行钟控而应答完整的写周期和正确的奇偶校验。主控机在EMC↑2324锁存这个应答响应。从属机在EMC↑24返回到空闲状态以及释放EMD。如果由主控机读出的2比特应答值不是01,则EM状态寄存器中的错误比特被设置。否则应答值是正确的,以及错误比特被清除。EMDDIR信号在EMC↓24被释放(被驱动到高电平)。
序列结束-总线序列的结束被规定为跟随在EMC↓23(读事务)或在EMC↓24(写事务)后面的EMC时基的第一上升沿处发生。在EMCND时,EM状态寄存器的进行中比特被清除。当进行比特被清除时,错误比特必须是有效的。总线信号应当是处在它们的空闲状态。
奇偶校验比特两个奇偶校验比特被使用来表示单个8比特值的奇偶校验。2个奇偶校验比特的每个比特代表对5比特的数值的奇校验,正如图27的表所显示的。对奇数个比特的奇偶校验确保全1或全0的区具有相反极性的奇偶校验比特。
软件接口考虑典型的EM总线事务将包括写EMADDR寄存器、写数据字节到EMDATA寄存器(如果是写事务)、然后写入到EMOSTART或EM1START寄存器,以便启动序列。软件将重复地读出EM状态寄存器的进行中比特,以便确定事务何时完成。EM总线事务完成时,进行中比特将被清除,而错误比特将被适当地设置。如果读事务被执行,数据值现在可以从EMDATA寄存器读出。软件可以确保,在事务正在进行时,只有EMSTAT寄存器被读出,以及EM单元可被设计来由软件在任何时间正确地处理该寄存器的读访问。
如果在EM总线事务正在进行时发生中断事件以及中断例程需要使用EM单元,则该例程可以采样该进行中比特的状态以及在访问任何其它EM单元寄存器之前等待事务完成。这样的中断例程将具有义务保存和恢复EMADDR和EMDATA寄存器的内容以及错误比特的状态。这是需要的,以使得一旦控制返回到该例程时那些寄存器将包含由中断例程启动总线事务的正确的数值。
使用XA_OD信号的输出禁止XA_OD信号被使用于识别地址周期的开始和输出禁止条件的发生(由CPU系统故障造成的)的两个用途。在约1MHz的最慢的预期总线速率下,在地址用法中XA_OD的最长的正常持续时间是约1μs。用于XA_OD作为输出禁止的从属识别的、约100倍的这个数值的门限值,或100μs,允许在从属机中的简单的二极管/R/C滤波器,以及给出适当的响应的输出禁止功能。XA_OD外部信号将是来自EM总线状态机的地址周期识别信号与发源于看门狗定时器单元的输出OK信号的逻辑OR(或)。
用户程序存储器用户程序存储器可被使用来存储用户程序。主程序的结尾可以通过使用MEND(主程序结尾)指令而被终结。除MEND指令以外的、用户程序存储器的其余部分可被保留用于子例程和中断例程。
串行通信PLC提供串行通信端口,正如参照图1描述的。通信端口使用RS485信号电平,以及能够运行在9.5KB,19.2KB或187.5KB,而同时支持系统通信协议(PPI或DP/T)。这个端口用作为到PLC的编程器接口。此外此端口在运行模式下用于,作为在用户程序的完全控制下的通用通信端口(被称为自由端口模式)。在自由端口模式下,通信端口能够运行在从300波特到38.4KB的波特率。到RS485端口的物理连接由9管脚D连接器。
特别存储器(SM)比特(见6.2节,SM2,SM3,SM30和SM130)被提供作为通信端口的自由端口使用。控制通信端口的使用的特别存储器的缺省状态使得能够使用通信端口作为编程器接口。如果用户程序接通控制通信端口使用的特别存储器比特,则将使得用户程序能够通过 通信端口发送和接收消息。在这个运行模式下,用户可以用想要的、任何基于字符的协议(7或8比特/字符,奇数的、偶数的、或没有奇偶校验,以及波特率)来配置端口。端口将运行在半双工模式,以及用户程序可以在轮询或中断模式时操作端口。接收字符缓存器被提供在SM用户区域,连同通信状态寄存器,以及配置寄存器,它包括控制端口的运行模式的比特。除了发送的所有的通信功能可以通过SM存储器中的特别寄存器被执行。发送只能通过使用特别的写端口消息指令被完成。用户程序决没有到通信控制器或机器的中断结构的直接入口。
PPI主模式和从属模式网络读出和写入PLC可以用作为PPI从属机。在PPI从属模式,PLC用作为对于通信消息的应答器。
在本发明的一个安排中,当CPU被设置在运行模式时,PLC可以用作为PPI主控机以及PPI从属机。用户可以在被存储在用户程序存储器中的用户程序的控制下选择PPI主控模式。在这种安排中,熟知的令牌环通信协议可被实施来在主控机与从属机之间进行通信。在PPI主控模式下,PLC能够保持令牌以及发起PPI请求,由此使得用户能够通过网络读和写指令存取在其它CPU中的数据。当CPU没有保持令牌时,它作为从属机应答所有的请求。用于PPI通信的通信缓存器的大小在图28所示的表中被规定。
在PLC用作为PPI主控机的同时,它按照熟知的通信标准(诸如由EN 50170欧洲标准给出的PROFIBUS规定)维护网络。PLC将使用以下的算法,用于计算目标令牌轮转时间。
TTTR=(8+HSA)(256)(1/BR)其中TTTR-是目标令牌轮转时间HAS -是最高的站地址BR -是以每秒比特计的波特率如果在接收令牌以后,目标令牌轮转定时器时间到时,则PLC立即把令牌传送到下一个令牌持有者,而不发送任何可能已经排在接收的令牌以前的消息。
在PPI主控模式下提供的自由端口链路本发明提供通信端口的自由端口操作,此后称为“自由端口”,它允许用户人工地或通过用户程序的操作来控制端口。自由端口操作的程序过程显示于图30a。
在本发明中,用户通过按照上述的中断结构迫使PLC中断(步骤S3002)而实施自由端口(步骤S3000)使用。在本例中,用户通过附加上把通信端口的控制传送到用户程序的中断事件,而在主模式下操作PLC的同时,起动自由端口通信(步骤S3004)。这是在系统协议保持令牌时执行的(步骤S3006)。
作为应答,PLC把控制传送到用户程序(步骤S3008)。PLC按照图30b所示的SM比特规定SMB30和SMB130控制的UART设置(步骤S3010)。在该事例中,SMB30和SMB130规定的模式比特由PLC设置到PPI主控模式(步骤S3012)。
一旦控制从系统传送到用户的中断例程,用户程序就控制使用自由端口的消息的发送和接收(步骤S3014)。一旦用户程序完成它的任务,用户程序就通过执行终结自由端口操作的特定的指令而把控制返还到系统(步骤S3016)。被使用来终结自由端口操作的指令在图29所示的表中被描述。系统然后通过把令牌返还到下一个站而恢复正常的操作(步骤S3018)。系统负责维护网络的所有方面,就好像在PLC的令牌保持时间期间用户程序从没有被给予时间隙那样(步骤S3020)。
内建的自由端口协议为了给使用PPI协议的通信提供更高的性能,为PPI协议提供了内建的协议选择任选项。当PLC被设置在(RUN)运行模式和自由端口PPI协议由被写入到SM30或SM130的数值来选择时,通信端口将按照被写入到SM30或SM130的数值被配置。当自由端口模式被退出时,PLC将以选择的波特率回复到缺省的PPI协议。用于选择自由端口PPI协议的代码将是如由SM30(端口0)和由SM130(端口1)规定的。图30b上的表给出SM30和SM130的规定。
自由端口接收消息中断为了简化用于自由端口通信的编程,PLC支持接收消息指令,它可以结合接收消息事件中断一起被使用。用户指定对于规定消息的开始和结尾所需要的条件。PLC支持以下的消息条件技术规范端口0SMB86-消息状态字节表示终结条件SMB87-消息控制字节使能选择的消息接收准则SMB88-开始字符唯一地标识新的消息的开始的字符SMB89-结尾字符唯一地标识消息的结束的字符SMB90-空线时间周期,其后所接收的第一字符开始新的消息SMB92-字符/消息间超时(Inter-Character/Message Timeout)在字符之间、或对于要被接收的消息允许的最大时间。用法由消息控制字节确定。
SMB94-字符计数接收消息的最大长度端口1SMB86-消息状态字节表示终结条件SMB87-消息控制字节使能选择的消息接收准则SMB88-开始字符唯一地标识新的消息的开始的字符SMB89-结尾字符唯一地标识消息的结束的字符
SMB90-空线时间周期,其后所接收的第一字符开始新的消息SMB92-字符/消息间超时在字符之间、或对于要被接收的消息允许的、最大时间。用法由消息控制字节确定。
SMB94-字符计数接收消息的最大长度接收缓存器的第一字节被用作为字符计数,它可以表示有多少字符被接收消息功能接收。每个这些特别的存储器的定义在图30c和30d所示的表中给出。
DP_S7通信PLC可以支持DP/T协议,它提供用于主-从属通信的MPI输送。PPI消息是与DP/T消息完全兼容的,所以不需要对协议的特别选择。PLC可以接受PPI请求或DP/T请求,以及随之应答。对于在PPI端口上的DP/T通信的支持可以包括遵从HD4的,从PLC的所有支持的波特率的传输。
当PPI是无连接的协议时,DP/T是面向连接的协议。图30d的表规定DP/T连接的数目和用于由在每个端口上的每个PLC支持的每个连接的缓存器的大小。这个表不包括用于可以在每个端口被支持的缺省SAP的缓存器。
调制解调器通信本发明的CPU支持在标准10比特全双工调制解调器上的通信。这是相当重要的,因为得到广泛使用的、较新的11比特调制解调器常常是很贵的。已经发现,在工业技术典型地落后于计算机硬件当前技术水平的工业基础下这是特别正确的。另一方面,老的10比特调制解调器被大量地发现于工业楼板上。本发明利用这一发现,即,在工业界有多余的10比特调制解调器,所以,提供独特的10比特协议,允许本发明的PLC(或在这方面的任何PLC或处理器)连接到这样装备的工厂基底上。当然,本发明的10比特协议对于利用10比特调制解调器的情况下的其它装置是有价值的,和可应用的。
本发明的10比特协议的另一个优点在于,10比特协议是与更高阶的比特协议是可兼容的。因此,10比特协议可以被11比特调制解调器或更高的调制解调器接受。
本发明的10比特协议与传统的知识相反。当然,它与利用比最近的调制解调器技术能够支持的更少的比特的直觉知识不同地运行。它甚至与利用10比特调制解调器协议的、传统的知识不同,因为本发明牺牲奇偶校验,所有远端通信为保证数据的完整性所依赖的关键码。事实上,当考虑到PLC负责控制机器时,例如笨重的设备或精确的机器人,可以看到,公司可能破产,或更坏,有些人被PLC的不适当的命令伤害。普通专业人员将强烈反对10比特协议。
现在参照图31描述本发明的10比特协议。在一个安排中,用于调制解调器通信的协议是标准PPI协议的修正方案。当然,其它的比特分配方案也是可能的。这里规定的PPM或点对点调制解调器协议分配以下的比特1-开始比特8-数据比特1-停止比特0-奇偶校验比特在PPM协议中,来自主机的每个请求接收回答,而没有中间的应答或轮询(步骤S3100)。建议在PPM协议中只使用对于PPI协议规定的SD2消息类型(步骤S3104)。为了满足这个要求,主控机可以规定在建立联系请求中使用主/从协议(DP/T)(步骤S3106)。在每个请求后,主控机可允许中止事务之前例如15秒用于从属机应答(步骤S3108)。在接收请求后,从属机将允许在发出应答之前的最小的返回时间,例如20毫秒(步骤S3110)。
每个请求/应答消息优选地是SD2 PPI消息(步骤S3112),具有16比特的CRC检验码作为消息的最后两个字节被附加在其上(步骤S3114)。CRC使用工业标准多项式(X16+X12+X5+1),它被称为CRC-CCITT多项式(步骤S3116)。CRC在不包括开始和停止比特的整个SD2帧上被计算(步骤S3118)。CRC产生器可以被预先设置到所有的用于发送和接收的装置(步骤S3120)。这样,有效的消息的接收产生0x1DOF的图案(步骤S3122)。
PPM协议通过把通信端口连接器的第9管脚接地而被告知PLC。PLC在这个管脚上提供内部的上拉电阻,以便选择标准PROFIBUS协议。
将会看到,本发明的10比特协议不必限于10比特,而可以扩展到任意数目的比特,包括例如{1,2,3...9,10,11...}的配置。事实上,本发明最好被看作为不包括奇偶校验比特的n比特协议。该n比特协议可以通过使用以上的说明被实施,以便确保数据完整性。
用户程序的隐匿部分本发明的PLC提供软件或代码专用的保护。同样的特性允许PLC对用户隐匿不打算给用户观看的部分代码,诸如由PLC产生的、用于执行PLC的例程操作的代码。将会看到,这个功能鼓励第三方软件开发者提供软件,他否则会退避,因为否则代码会提供给用户。
为此,PLC支持HIDE(隐匿)指令,它允许用户(或编程装置)识别和隐匿部分的用户程序。PLC程序用被加密的隐匿的代码段被传送和被存储在用户程序存储器中。PLC在编译时间解密隐匿的代码段,以便产生可执行的程序。一旦完成编译,隐匿的代码段被重新加密。
用户提供的密码能力被提供,它被用来加密要被隐匿的部分程序。这样,只有合法的个人能够观看被隐匿的程序段。
如图32a所示,本发明的隐匿指令标记了加密部分的开始点。在本发明中,标志P被设置来表示存在加密的代码。现在参照图32b,描述隐匿功能的工作。在步骤S3200,用户引用隐匿功能,用于专用代码的特定的片段。作为应答,PLC使得P标志被设置(步骤S3202)。PLC用可能由用户提供的密码来加密代码(步骤S3204)以及在代码的开始点和结尾处把隐匿标签插入到用户存储器中,以便标记出加密的部分(步骤S3206)。在用户程序编译后(步骤S3208),PLC使得加密的部分被解密(步骤S3210),以及用户程序正常执行(步骤S3212)。一旦完成程序的执行,PLC就重新加密专用代码(步骤S3214)。
用户密码通过使用密码,它允许用户配置接入限制,可以提供对接入到PLC功能和存储器的限制。没有密码,PLC可以提供无限制的接入。当PLC被密码保护时,PLC可以禁止按照在设置密码时提供的配置所限制的所有的操作。PLC可以允许一个站对通信链路合法化,以使得该站的用户可以具有无限制的接入。知道密码的用户可以通过输入密码和编辑限制类别在任何时间重新配置限制。不知道密码的用户必定工作于由知道密码的用户指派的限制之一。
在用户忘记密码的事件中,主控密码可被使用来达到接入到PLC。为了主控密码能够有作用,PLC模式开关可以处在STOP或TERM位置。当主控密码被使用时,PLC软件采取以下的行动1.PLC将转移到STOP模式2.用户程序(OB1)被清除(被删除)3.用户数据存储器(DB1)被清除(被删除)4.如果SDB0存在,除站地址和波特率以外的SDB2的所有的参量将被复制到SDB05.所有的SM标志被设置到它们的缺省状态6.所有的标志被删除7.所有的SCR比特被删除8.模拟输出将被冻结9.所有系统数据存储器被设置到缺省状态10.所有的强制点被清除和不加以强制11.日时钟的时间将不改变12.所有的定时器/计数器的当前数据被清除13.内部的EEPROM被初始化(OB1和DB1被删除而SDB2除了站地址以外被复制到SDB0,以及所有的输入,输出和数据值不加以强制)系统功能调用支持PLC 100支持系统功能调用(SFC),它允许用户把定做的功能上载到PLC。
一般地,SFC可以由例如Siemens S7-200开发小组被创建,以及由编程装置被下载到PLC。PLC支持至少两个SFC。每个SFC的最大尺寸取决于在特定的PLC中可用的资源。对于在本发明中想像的CPU,每个SFC的最大尺寸是8KB,包括块头信息。SFC并不必要需要任何用户数据,虽然可以提供系统数据的地址分配。被下载到PLC的SFC变成为该PLC的操作系统的一部分。PLC还允许SFC被上载、下载、删除、和被复制到存储器卡盘。PLC报告SFC在适当的目录通信功能中的存在。
在图33a的表中显示示例性SFC指令。现在更详细地,图33b显示系统功能调用的方法。在步骤3300,用户提醒PLC,SFC下载是想要的。PLC执行用于下载的、必要的握手协议(步骤S3302),以及SFC被下载(步骤S3304)。PLC存储下载的功能作为操作系统的功能库的一部分(步骤S3306)。
装载新的操作系统PLC可以使用FLASH EPROM,用于操作系统贮存通过通信端口支持装载新的操作系统。这是通过使用在FLASH EPROM中的引导块(它在被安装在PLC时不能被擦除的)而被完成。
新的操作系统的装载可以通过使用PC/PPI电缆把个人计算机直接连接到PLC而被完成。被安装在个人计算机或PG的一部分的PROFIBUS卡的使用不是优选的,因为PROFIBUS协议的复杂性,它是可以结合这些装置被使用的唯一的协议。
被使用来装载新的操作系统的协议的定义,将通过设计被识别,每个通信消息将提供以检验和的形式或CRC代码的、数据完整性检验。新的操作系统的完整性的验证是在正常的运行被引用以前,但是在FLASH EPROM被编程以后。
STL状态已发现,用于调试程序的传统的调试系统是有缺陷的,因为现有的PLC的调试系统在执行整个程序以后进行调试,或明显地干扰程序执行的时序。为此,在一组中的每个指令被执行的时刻PLC支持执行该组指令的结果的获得。这个新颖的特性在PLC执行指令的同时和在实时完成。为了实施这个功能,PLC装备(instrument)了其状态要被收集的编译的代码段。
在一个安排中,STL状态在显示器上被实施,诸如由被耦合到PLC的、作为熟知的人机接口所提供的。在显示器上状态窗口的尺寸将由可被返回的操作数值的数目确定。PLC可保留例如一个200字节的缓存器,用于操作数值。这个缓存器的尺寸是基于在单个通信帧中可被返回的数据量的。
优选地只支持一个STL状态窗口。支持多个窗口需要附加的RAM,而这引起同步和触发问题。当然,通过存储器技术的将来的开发,有可能有多个窗口。
只有一个装置应当能够打开STL状态窗口。STL状态窗口功能将与打开STL状态窗口的装置的站的地址相联系。只要STL窗口保持打开,对于打开STL窗口的所有其它请求将被PLC拒绝。
为了打开STL状态窗口,编程装置可以识别窗口中第一指令的的地址,然后识别窗口中指令的数目。窗口技术规范的基本格式被显示于下面。
2字节2字节在本例中,指定的唯一指令地址是在窗口中第一指令的存储器地址。编程装置承担确保在建立STL窗口时请求的应答数据适合于应答缓存器的200字节的全部负担。
STL状态显示不可跨越程序部分,例如主程序到例程,例程到例程,例程到指令,指令到指令之间的边界,是一个原则。这会引起破坏。
应答缓存器的示例性格式被显示于图34a,其中STL状态窗口的开始的指令地址被返回用于肯定确认PLC和编程装置正在观看同一个窗口。长度区表示有多少数据值的字节被包含在用于每个指令的数据区。现在将描述代码V 0-用于这个指令的数据不是有效的,因为这次扫描指令没有被执行。
1-用于这个指令的数据是有效。
ENO 使能输出比特,表示指令是否无错误地执行SCR SCR堆栈的比特数值S4-S0 S0是指堆栈值的顶部以及S1是指紧接着堆栈值的顶部的值Data 对于指令返回的STL状态信息。编程装置负责根据建立STL状态窗口的请求分析数据。
PLC负责确保在STL状态窗口获取的数据来自单个扫描周期。PLC通过使用有效的标志(V)向编程装置表示这一点,它是通过压下对于每个指令的堆栈值而被提供的。内部地,PLC通过使用扫描计数值跟踪什么是有效的值,该计数值通过对于STL状态缓存器的请求被复位以及每次扫描被加增量。当一个数值要被写入到STL状态缓存器时,缓存器的扫描计数状态字与扫描计数器的当前的数值进行比较。如果数值不同,则扫描计数值将被复制到STL状态缓存器的扫描计数状态字,以及缓存器中所有的V标志将被清除。然后新的数值被存储在缓存器中,以及对于该指令的V标志将被设置。如果扫描计数的数值是相同的,则新的数值将被存储在缓存器中,以及对于该指令的V标志将被设置。这允许缓存器总是用来自最后的扫描的数据被更新,而同时保持数据同步到同一个扫描。
装备(instrumenting)用于STL状态的编译代码窗口现在参照图34b和34c同时描述STL状态的设备和操作。相应于SYL状态窗口中的指令的编译代码段被PLC识别(步骤S3400)(图上画阴影线部分)。在阴影线区中原先的编译代码被保存(步骤S3402),然后一旦STL状态操作完成就被恢复(步骤S3404)。一旦原先的编译代码被保存,装备的(instrumented)代码被编译在RAM的另一段中(步骤S3404)。
为了讨论装备的代码的处理,需要定义如下几个术语编译的指令-编译的指令是机器码或通过编译STL指令而产生的可执行码。通常,每个STL指令被编译成多个机器指令。
装备(instrumented)的指令-装备的指令是编译的指令连同对于节省功率流的状态和操作数值所需要的额外的机器码。
为了保留标签的地址,for-next循环,子例程和中断例程,在STL状态窗口中每个编译的指令用装备的指令的分支代替(步骤S3406)。每个装备的指令通过返回指令被终结,返回指令把控制转移到下一个编译的指令(步骤S3408)。
到装备的(instrumented)代码的分支是通过使用LCALL指令完成的(步骤S3410)。LCALL把控制转移到装备的代码,它获取用于该指令的STL状态(步骤S3412)。对于长于3字节的那些编译的指令,返回的数值被调整以使得控制将被转移到下一个编译的指令(步骤S3414)。
在STL状态窗口中第一编译的指令的开始地址可以在装备之前被确定(步骤S3416)。为了减小对于确定这个地址所需要的时间量,可以保存包含例如每二十五个编译的指令的地址的指针的表(步骤S3418)。这样的表对于8192字节用户程序需要约300个字节。如果更多的RAM是可提供的,则地址指针的表可以指出每十个的编译指令,这进一步减小用于STL状态装备的时间。
PLC利用图34c的表,它列出最快的布尔指令,以及显示对于编译代码所需要的进行的改变,以使得所有的指令在长度上是三字节的最小值。在表的阴影部分中的指令告诉PLC,哪些指令可被修正。
以上的技术需要最小的RAM的量,但它也需要所有编译的代码指令至少取对于LCALL指令所需要的字节数目,LCALL指令将被使用到装备的代码段的分支。为了清晰起见,上面假设LCALL指令取三个字节,以及所有的编译的指令取三个或更多个字节。
设计概念图1上显示对于PLC系列的机械设计概念。设计概念是“砖块”型式,它具有把单元相连接以便扩展的能力。这些扩展单元也具有相同的型式和形状。设计目标是使得这个单元尽可能经济,而同时保持与Siemens S7-300TM和S7-400TM相同的家族外貌。PLC家庭将具有与与S7-300TM和S7-400TM系列相同的彩色和版本型式。
外壳PLC外壳以均匀的塑料和彩色被压模塑造(Noryl GFN1 SE1Anthrazit 614 Herst N.R.GE 93263)。单元由顶部、底部、两个入口盖、一个DIN导轨插销、和两个尺寸的光管道。所有这些部件合在一起,允许容易制造。外壳中的设备被做成允许PWB也“卡搭”到位置。I/O外壳以与PLC外壳相同的方式被设计。外壳被设计成用于IP20保护,以及阻止其它物体(诸如钱币)进入单元。图35a的表显示单元的一个可能的尺寸组。
单元安装图35b所示的PLC 3900被设计成被安装在DIN导轨3906上,或被面板安装3908。当单元要被DIN导轨安装时,安装插销被使用来把单元锁定在标准类型50022 DIN导轨上。当单元要被面板安装时,提供了安装孔,它接纳公制M4或#8类型的螺钉尺寸。PLC 3904在这里被显示为连同I/O扩展模块3902一起。在单元的上面和下面需要例如25mm的空隙,以便允许用户引线进出,以及考虑单元的适当的冷却。
虽然参照特定的数值和电路安排描述了本发明,但将会看到,属于本发明的精神和范围内的、其它的数值和电路安排可以代替所公开的安排。另外,将会看到,专业人员将立即理解如何实施PLC的软件代码,以及在这方面将会理解,各种软件应用可以以任何适当的编程语言被编写以及被存储在任何适当的记录媒体,诸如非易失性存储器,包括软盘、CD-ROM或DVD等。
权利要求
1.一种用于可编程逻辑控制器(PLC)的设备,包括输入滤波器用于通过提供模仿由恒定电流源驱动的电容的电路响应而使得滤波元件数目最小化,它的输出电压由具有相当大的后滞的比较器检测,所述输入滤波器包括输入,用于接收要被滤波的输入信号;以及电路,把模仿由恒定电流源驱动的电容的电路响应加到所述输入信号上,它的输出电压由具有相当大的后滞的比较器检测,由此使得所述输入滤波器的所述滤波元件的数目最小化。
2.如权利要求1的设备,其中所述输入滤波器提供控制滤波函数的、可设置的滤波器设置。
3.如权利要求2的设备,其中所述PLC按照由PLC执行的程序设置滤波器的设置。
4.如权利要求1的设备,其中所述电路包括上/下计数器,它的计数方向由所述输入信号的状态来控制。
5.如权利要求4的设备,其中所述输入滤波器的延迟时间按照所述上/下计数器的输入时钟的周期的因子被设置。
6.如权利要求4的设备,其中所述上/下计数器进行计数直至一个预定的数目,以检测所述输入信号的输入过渡。
7.如权利要求6的设备,其中当所述上/下计数器计数到所述预定的数目时,所述输入滤波器使得所述电路的输出信号被输出,并使得保持在输出状态,直至达到预定的门限值为止。
8.如权利要求1的设备,其中还包括时钟,用于与所述PLC的系统时钟无关地驱动所述所述输入滤波器。
9.一种用于可编程逻辑控制器(PLC)的设备,包括输入滤波器,用于通过提供模仿由恒定电流源驱动的电容的电路响应而使得滤波元件数目最小化,它的输出电压由具有相当大的后滞的比较器检测,所述输入滤波器包括输入装置,用于接收要被滤波的输入信号;以及电路装置,把模仿由恒定电流源驱动的电容的电路响应加到所述输入信号上,它的输出电压由具有相当大的后滞的比较器检测,由此使得所述输入滤波器的所述滤波元件的数目最小化。
10.如权利要求9的设备,其中所述输入滤波器提供用于设置控制滤波函数的、可设置的滤波器设置的装置。
11.权利要求2的设备,其中所述PLC按照由PLC执行的程序设置滤波器设置。
12.如权利要求9的设备,其中所述电路装置包括用于计数方向的上/下计数器装置,其计数方向由所述输入信号的状态来控制。
13.如权利要求12的设备,其中所述输入滤波器的延迟时间按照所述上/下计数器的输入时钟的周期的因子被设置。
14.如权利要求12的设备,其中所述上/下计数器装置进行计数直至一个预定的数目,以检测所述输入信号的输入过渡。
15.一种用于对加到可编程逻辑控制器(PLC)的输入信号滤波的方法,通过提供模仿由恒定电流源驱动的电容的电路响应而使得滤波元件数目最小化,它的输出电压由具有相当大的后滞的比较器检测,所述方法包括以下步骤接收要被滤波的输入信号;以及把模仿由恒定电流源驱动的电容的电路响应加到所述输入信号上,它的输出电压由具有相当大的后滞的比较器检测,由此使得所述输入滤波器的所述滤波元件的数目最小化。
16.如权利要求15的方法,还包括步骤设置控制所述输入滤波器的滤波函数的、可设置的滤波器的设置。
17.如权利要求16的方法,其中设置的步骤按照由PLC执行的程序设置滤波器设置。
18.如权利要求15的方法,还包括对上/下计数器加增量/减增量的步骤,所述计数器的计数方向由所述输入信号的状态来控制。
19.如权利要求18的方法,还包括按照所述上/下计数器的输入时钟的周期的因子设置所述输入滤波器的延迟时间的步骤。
20.如权利要求18的方法,其中对上/下计数器加增量/减增量的步骤进行计数直至一个预定的数目,以检测所述输入信号的输入过渡。
全文摘要
带有增强的和扩展的能力的可编程逻辑控制器。数字输入滤波器通过模仿由恒定电流源驱动的电容的作用,以相当少的逻辑实施滤波器,它的输出电压由具有相当大量的后滞的比较器检测。脉冲捕获电路捕获输入脉冲,尽管在扫描周期之间出现更新。脉冲输出控制器包括硬件流水线机制,允许从波形到波形的平滑的、硬件控制的过渡。自由端口链路允许用户人工地或通过用户程序的操作来控制端口。为了提供使用PPI协议的通信的更高的性能,PLC包括内建的协议。n比特调制解调器协议确保数据的完整性,而不用使用奇偶校验型数据完整性系统。隐匿指令通过加密敏感的代码和在编译期间解密该代码,此后重新加密代码,而保护专利的软件。系统功能调用允许用户创建和/或下载新的PLC功能以及实施它们作为PLC操作系统功能。ST2状态功能在运行期间调试程序,而同时程序正在运行。微PLC装置提供紧凑的尺寸和效率。
文档编号G05B19/05GK1350666SQ00807623
公开日2002年5月22日 申请日期2000年3月15日 优先权日1999年3月15日
发明者M·S·波格斯, T·L·福尔顿, S·豪斯曼, G·麦纳布, A·麦努特, S·W·斯蒂梅尔 申请人:西门子能量及自动化公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1