可编程逻辑控制器的串行访问盒式存储器的制作方法

文档序号:6277334阅读:421来源:国知局
专利名称:可编程逻辑控制器的串行访问盒式存储器的制作方法
技术领域
本发明涉及可编程逻辑控制器和可编程逻辑控制器的串行访问盒式存储器。
迄今为止,可编程逻辑控制器已经有些趋于专门化或适于具体类型或类别的设备。然而,用于越来越小型设备的可编程逻辑控制器有增长的趋势。而且,还有一种趋势是使用适合于不同工艺流程、系统和设备的可编程逻辑控制器。其结果是需要可编程逻辑控制器制造商生产更小更廉价的但提供更强适应性和性能的控制器。而且,竞争也迫使制造商生产从小型装置-如积木式PLC到高度复杂装置的可编程逻辑控制器。但是,不论尺寸或复杂度如何,都需要制造商在继续提供其它性能的同时生产低成本的PLC。
因此,提供具有模块化方式的PLC变得越来越重要。即能够通过提供其它性能和/或其它输入/输出模拟和/或数字I/O接口来扩大系统。模块化系统允许适用于简单和复杂情况,同时可管理程度越高成本也越高。而且,由于可编程逻辑控制器的使用增多,事实上现在需要这种控制器能够通过各种装置在网络环境中互连以及被编程和重复编程。
典型的可编程逻辑控制器,包括具有多个I/O接口以用于数字和/或模拟相互作用的主控制器。然而,经常有具体应用所需要的I/O接口与其提供的接口不同或要选用的I/O接口数目大于通常PLC提供的接口数。其结果是到目前为止的可扩展的可编程逻辑控制器具有任选的附加模块的系统。这些模块需要一种用于主控制器的装置以选择访问的各个扩展模块。以前进行这种选择方法包括使用具有激活每个模块位置用的各个选择线的固定底板(fixed back planes)。因此,主控制器激活一特定选择线来访问一特定模块。或者,固定底板与在每一模块位置处提供的识别地址码一起使用。所以主控制器经一地址总线提供一个地址,该地址由接收模块与它预先编程的位置地址相匹配。
第三种方法是利用在安装时变更的每个模块的地址开关或跨接线(iumper)从而提供一个唯一地址。第四种方法是采用固定序列访问的方式,其中在某一状态改变序列完成之前,每个模块禁止访问一链中的后续模块。在访问该特定模块完成之后,它将事务处理转到后续模块直到某一主信号表示开始一新访问序列为止。
第五种方法使用了位置相关数据,其数据报文(data telegrams)从一个模块传到另一模块,其中每一模块将数据元素提取或加到报文中对应于链中各模块位置的报文中地址处。然而,上述方法使用起来越来越有困难且越来越不方便,尤其是在积木式PLC中,由于该种PLC存储量和处理能力受到限制而且其容纳这些功能的尺寸小,所以愈加困难。
而且,PLC的最主要的或许是最重要的一个性能是能够在需要尽管可快时间内运行特定的序列或程序。已经认识到实际处理过程经常不是高速“处理过程”,测量的各种参数需要运算,进行这种运算必须以高速方式从而使整个过程不被干扰。这些高速运算一般利用中断例程。然而至今,这种中断例程需要用户使用专门的预置程序段,PLC将对感兴趣事件的控制转移到该预定程序段。因此,在用户能指定何时发生中断的同时,用户也被限制在一个特定的可被执行的中断例程中。所以这限制了处理器的使用或需要非常长的中断,即,可能感兴趣的每种情况都必须编入相同的中断例程中使得考虑到所有偶然情况的发生。
而且,越来越需要使用一种通常称作高速计数器或功能元件的部件。使用这些计数器或功能元件来区分时间、事件频率等以便启动后续事件。一旦预定数目的事件发生就需要停止高速计数器的操作和/或扰乱高速计数器当前值-即清零以对下一个预定值进行重新编程。因此,在此复位和重新编程期间这会产生时间延迟或中断。尤其成问题的是当需要一连串高速计数时,随后的对计数器的复位会引起在总的时间期间中累积误差或偏移。
现有可编程逻辑控制器存在的进一步问题是涉及它们的通信端口。可编程逻辑控制器一般提供用于控制操作系统软件的通信端口。需要这种通信端口以使PLC可以进行编程。然而,这些与PLC通信的接口使用生产商专用通信协议或生产商库设置或指定协议。而且,通信功能是PLC的必不可少部分且使用越来越频繁,但终端用户通常不能从用户程序以一般途径访问该端口。至多,有些PLC可以使用户能将消息发送给一设备—如打印机,但是不允许收到消息。因此,使用不同的PLC来适用于超出原先设计的或指定的协议的新的或不同的协议要困难、昂贵而且有时实际上是不可能的。至多,这些附加协议不能经普通接口或通信端口编程。
另外,现有PLC存在的问题是处理可去除程序存储(removable programmemory)。可去除程序存储器是将PLC适用于新设备、不同处理过程、不同参数等必要的一项功能。至今,这种可去除程序存储器装置采用并行存取装置—如EPROM、带有电池的RAM或快闪式EPROM。这些可去除盒式存储器通常必须被插入到另一个器件中—如手持编程器。因此这表明将新程序下载到各个PLC是很麻烦的并且需要外部设备。而且,通常将特定PLC程序在系统中其它PLC或全工厂中类似PLC中传播是一件很困难的事。
为了改进现有PLC的缺点和满足对PLC的要求和需要,本发明将提供一种可编程逻辑控制器,其具有模块扩展单元,其不需要固定的底板或不需要任意底板是其优点。而且还期望生产模块化、可扩展的PLC,该PLC不需要开关或跨接线的成本和空间,也不需要在安装时正确设置开关或跨接线。另一个优点是可以使用简单的、低成本的异步逻辑以提供PLC的模块扩展。还有一个优点是所提供的模块化的可扩展的PLC,该PLC不需要时钟信号或状态机来实现顺序操作或通过序列计数或定时鉴别的数据。
本发明还有一个优点是提供一用户中断例程,该程序可以动态地分配(assign)以在可编程控制器中使用。还有一个优点是PLC指令和系统允许PLC系统转移对一个或多个感兴趣事件—如输入点的上升沿、高速计数器当前值等于预置值、特定时间期满等的控制。还有一个优点是除分配一程序段外,PLC还可以从一特定事件中解除分配(De-assign)一程序段,即指定一具体事件不再是由用户程序作专门处理所感兴趣的,以及还根据特定工作条件对一个事件分配不同程序段。尤其有益的是,它能在程序执行期间而不是程序编译期间动态地再分配那些中断例程,并且它可以由PLC系统自动地执行以完成控制转移。
还有,其进一步的优点是在PLC和系统中用户定义的可动态分配的中断例程,其允许用户PLC程序在不停止高速计数器工作和不影响计数器当前值的情况下动态地修改指定的高速计数器的预定值。还期望有一具有高速计数器的PLC,该高速计数器设置有预定值,该预定值在感兴趣事件,即当前值等于预定值的中断事件发生的各个点上是可更新的,从而在不影响计数器当前状态的情况下动态地对于下一个感兴趣事件的预定值重新编程。
另一个所期望特性是具有高速计数器的PLC,其中该高速计数器的当前值不用复位为零就可以继续计数同时可以对下一个感兴趣的预定值重新编程。还期望一个特性是具有高速脉冲串输出的PLC,其中高速脉冲串输出用于形成流水线或排除从而使用户PLC程序在一操作序列步骤之间没有“死时间”地完成多步脉冲串输出操作。
另一个优点是能够有效地消除级联误差,该级联误差是在高速计数期间进行多次复位计数器操作时产生的。按照本发明所述的PLC还有一个优点是能够在一操作序列中提供一附加步骤,该附加步骤可以使所述序列与程序步骤的执行并行形成流水线,由此PLC系统在完成正在进行中的一个步骤时自动地开始排队步骤。
PLC的另一个所期望的优点是使用户获得PLC所固有的通信功能,从而使用户对来自用户程序的功能进行完全的控制。本发明还有一个优点是用户能产生一个程序且该程序将在PLC管理下执行,这种能力可以支持用户想要实现的任何通信协议(当然在用于实现这种通信功能的器件的能力范围之内)。
本发明的另一个优点是通过利用通用异步接收/发送器(UART)装置提供协议改变方案,从而向系统发出中断以表示一个字符与状态指示一起被接收到或发送出去。本发明还有一个优点是使用了可在用户数据空间中获得的虚拟UART或反射UART。
本发明的还有一个优点是提供虚拟UART,虚拟UART能使用户发送和接收中断、访问数据寄存器的发送和接收、访问控制和状态信息,即发送缓冲器空、波特率、奇偶性选择、成帧误差指示等。
本发明还有一个优点是提供一PLC,该PLC具有通信端口可互换性,使其允许用户PLC程序经标准通信端口接收信号字符从而该PLC系统将控制转到一用户指定程序以处理收到的字符,由此提供用户所期望的和定义的“在空中”(“on the fly”)协议。本发明的进一步优点是在不使用或不需要附加或增加智能I/O模块的情况下提供通信协议变化。
本发明的另一个优点是在于PLC指令和系统功能,该功能使用户PLC程序启动接收操作以接收多字符消息从而PLC系统向用户指定程序转移控制以处理收到的消息。本发明的还有一个优点是提供一种PLC指令和系统功能,该功能允许用户PLC程序启动对单个字符、多个字符或二者的结合进行接收操作从而向用户指定程序转移PLC系统控制。本发明还有一个优点是提供一种协议功能,这种协议功能有效地与现有硬件技术—如条形码扫描仪、通信寻呼机间的通信。
本发明的另一个优点是提供一种串行访问的电可擦除的可重编程的只读存储器(EEPROM),该EEPROM可用于存储用户编程数据。另一个优点和期望的性能是盒式存储器(memory cartridge),其可以由用户命令适当地重新编程,然后将用户程序和数据传送到另一个PLC。本发明还有一个优点是提供一种盒式存储器,其可以完成迄今未知的不寻常的小型盒式存储器的功能且只需要四路电连接。
本发明的另一个目的是提供与可编程逻辑控制器一起使用的串行寻址盒式存储器,其中可编程逻辑控制器具有至少一个输入端和一个输出端,以用于发送和接收相应的预定信号;至少一个微处理器,用于执行用户指定的多个计算和命令;至少一个第一存储器装置,其与该至少一微处理器相互连接协调工作,用于存储该用户指定的多个运算和命令。该PLC具有一连接器用于访问第一级存储器装置,所述串行访问盒式存储器包括与该连接器协调使用并且其中存有用户指定信息的串行寻址存储器装置,从而包含在该至少一个存储器装置内的用户指定信息可以存储在串行访问存储器装置中。
以下结合附图对本发明实施例进行描述。


图1是本发明的PLC系统的立体图,具有一个基本单元、一个扩展I/O模块和一个总线连接器;图2是一张类似图1的立体图,表示图1中安装的各部件之间的互相连接;图3是关于本发明基本单元的本发明盒式存储器的使用示意图;图4是按照本发明的PLC系统的各种功能和部件的框图;图5是根据本发明组成和使用多个I/O模块的示意图;图6是根据本发明的多个基本单元与多个类似基本单元互相连接的连接图;图7是根据本发明的基本单元的框图;图8是根据本发明的I/O模块框图;图9是本发明基本单元使用的环状扫描周期;图10是类似于图9的示意图,表示用户如何使本发明的基本单元在扫描周期上任意或所有输入和输出点操作;
图11是根据本发明由PLC系统处理的应用实例的示意图;图12是根据本发明表示事件的高速流水线的时序图;在描述本发明的操作系统和硬件之前,先总览一下本发明的适用范围以便帮助理解本发明。而且,应指出在下文描述中,本发明中遇到的实际书写编程指令和用户程序代码的技术类似于本领域技术人员目前已知的技术,并且某种程度上取决于使用的硬件或操作系统。因此,下文除了充分描述示例程序之外,将不提供实际代码的更详细描述。
参照图1,PLC系统总的由20表示。一个PLC系统包括一个CPU或基本单元22,该基本单元22可以与扩展或输入-输出(I/O)模块24协作使用。应指出扩展模块24是多个扩展模块中的一个。而且,可以认为使用基本的基本模块22在其本身内和对其本身不需要扩展模块24。由总线连接器26实现基本单元22分别和I/O模块24间的相互连接,其中总线连接器26与I/O扩展端口32协调工作。在本发明的优选实施例中,基本22单元是电连接到I/O模块24,并且后续各I/O模块利用设在I/O模块24任意一侧的总线连接器和扩展端口32连接到相邻的I/O模块(未示出)上。
在本发明的优选实施例中,总线连接器是边沿卡(edge card)到边沿卡的连接器,其与基本单元22和扩展模块24内包含的电路协调工作。然而,应指出在不脱离本发明精神和范围的情况下还可使用其他连接器。基本单元22和扩展模块24一起被可滑动地安装在DIN轨道28上,且基本单元22和扩展模块24通过保持/DIN夹子30“挂在”DIN轨道28上并维持在适当位置。由于DIN轨道及其与各部件间的操作对于本领域的技术人员易于理解,因此省略了更详细的描述。
参照图2,图2所示为本发明的PLC系统20的更详细的立体图,该图示出基本单元22与扩展模块24的连接。可以看到基本单元22有一个输出开口盖34和一个输入开口盖36。这些盖子是枢轴铰接的并且使其与外部器件以与可编程逻辑控制器常用方式相同的方式相互连接,且这种连接方式对本领域的技术人员是容易理解和获得的。扩展模块24类似地有I/O模块上开口盖38和I/O模块下开口盖40,这些盖子用于适当的输入和输出线。关于这点,下文会更充分地描述,在本发明的最佳实施例中,I/O模块24按照用户需要可以有不同的I/O配置—如数字输入、模拟输入或二者适当地结合。
沿着基本单元22的边缘安置有通信端口42,通信端口42由连接器构成用于与多个基本单元22相互连接,不仅用于通信目的而且还可作为不同协议方案的端口,这些及其类似的将在下文更充分地描述。在基本单元22与通信端口42相同的一侧与输入开口盖36相邻部位安置有连接电线用的输入连接器44。虽然图中未示出,但是一类似连接器—如连接器46以类似方式安置在邻近开口盖34的部位,且I/O模块连接器50安置在邻近I/O模块上开口盖38的位置。
在基本单元22和I/O模块24的表面安置有多个状态LED(发光二极管)48。这些LED表示如下文将要充分描述的各个寄存器的状态和装置本身内部的运行操作状况,应指出在PLC上使用状态指示器等对于本领域的技术人员是易于了解的并且可以获得的。而且,可以理解在不脱离本发明的精神和范围的情况下,可以使用其它布局的连接器、状态指示器、端口开口等,而且还可使用除DIN轨道以外的安装装置。
参照图3,图3所示为由下文将要充分描述的EEPROM构成的存储器模块52沿箭头53方向如何插入盒式存储器插座54中。邻接插座54的区域位于基本单元22的开口盖下部。在插座54的任一侧放置有模块开关56和模拟调节器58。模拟调节器58用于保持表示模拟调节位置的数字值,且在本发明的优选实施例中,这个值是由模拟调节器产生并且由程序适当地修改定时器、计数器当前值、预置值或设定值或限定值。
在本发明的优选实施例中,模块开关56是三位置开关。当这个开关置于STOP(停止)模式时,尽管此时不允许执行用户程序,但是用户可以生成/编辑用户程序。当开关处于RUN(运行)模式时,执行驻留在基本单元22中的用户程序,同时禁止用户生成或编辑用户程序。然而,由于改变用户数据值不编辑程序本身,所以在RUN模式下可修改用户数据值。当开关处于第三种或最后一个位置-TERM,基本单元22使得可以通过通信端口或从智能模块得到模式改变从而确定PLC的操作模式以及经通信端口来自正在进行编程或操作的接口装置的模式改变命令,下文将作详细描述。
参考图4,图4为本发明的功能模型或简图。在本发明的优选实施例中,电源产生24伏和5伏DC输出作为DC或AC输入电压的结果。电源23给基本单元或CPU22供电。在本发明的优选实施例中,存储器模块52连接CPU22并且是边沿卡连接器的一部分。模块52是一个只需要在存储器模块52和CPU22之间有四根电线的串行装置(以下将充分描述)。输入和输出44、46与CPU22协调工作以便如有关可编程逻辑控制器领域的技术人员易知道的那样接收数据或执行功能和命令。因此,虽然图中未示出,但在PLC通电期间,与一般可编程逻辑控制器一样,执行多个诊断检查—包括确定存储器模块52是否存在。而且,通电期间当存在存储器模块时也进行诊断测试。
图5是本发明的I/O总线扩展特性。图中所示有存储器模块24a、24b-24n,其中n表示总模块数。应指出虽然能够和可以根据需要的各种模块的性能和需要的整个系统的运行速度以及CPU基本单元22的性能使用较低或较高编号的模块,但是本发明的优选实施例可以使用七个模块。
图6所示为以20a、20b、20c表示的邻近PLC系统20的部分的相互连接。不同的PLC系统20通过互连电缆64彼此连接在一起。被连接到至少一个PLC系统20的电缆是编程电缆62(programming cable),该电缆连接正处于编程的装置60。应指出互连电缆64和处于编程的装置60可以保持与系统连接,也可以当完成编程、不再需要在不同PLC系统20a、20b、20c之间通信时取消这种连接。互连电缆64与每个基本单元22中安置的通信端口连接器42协调工作。虽然未示出,但是在不脱离本发明要旨和范围的情况下一个或多个I/O模块22可以连接到一个或多个PLC基本单元22从而连到PLC系统20。在这种方式中,通过在网络模式或方式中运行,所有PLC可以同时完成编程,且PLC系统之间或编程装置60之间的通信也可以完成。
存储器利用与I/O模块扩展图7是本发明的CPU或基本单元22的框图。基本单元22的核心是中央处理器,本发明优选实施例中是80C32。在不脱离本发明要旨和范围的情况下,能够和可以使用其它类型的处理器。连接80C32处理器是提供PLC装置固有的多种功能的ASIC(专用集成电路)。这些特性和“服务”包括1、处理器总线支持逻辑,包括地址/数据解复用器和本地片选(chipselect);2、分页逻辑,从而将外部存储器空间映射到80C32处理器程序和数据存储区域中;3、本地I/O缓冲和过滤;4、直接中断,转到软件计数输入和转到用户中断例程,下文将更充分描述;5、高速输入计数器和高速脉冲输出功能;
6、用于扩展模块24的I/O总线接口;7、监视时钟(watchdog timer);以及8、电位器输入58的定时器。
还能看到数据和地址线连接到80C32处理器并与ASIC、RAM和快闪EPROM协调工作。在本发明的优选实施例中,RAM是8×32k字节的RAM,其具有一电容器以用于提供备份电源从而在间歇断电期间保持RAM的内容。这个32k×8 RAM提供所有易失数据的空间一如操作系统暂存填充数据、消息缓冲器、非驻留用户数据以及用户编译代码。在不脱离本发明范围的情况下还可以采用其他功能元件和/或其他型号的RAM。
在本发明的一优选实施例中,快闪EPROM是128k×8的EPROM,在不脱离本发明精神和范围的情况也也可采用其他型号的EPROM。这个快闪EPROM存储系统代码且其中有多个扇区-其中每个扇区都可单独擦除和重列编程。但是应指出在不脱离本发明精神范围的情况下可使用标准EPROM。还可看到连接到ASIC的有各种管脚输出,这是一般数字电路设计常遇到的—如片选、中断零(INT 0)、中断(INT 1)以及存储单元选择(bankselects)。连接到ASIC的还有隔离的输出电路,其在本发明优选实施例中是光耦合的并具有用于上述状态指示器等的LED指示器。
一个30MHz的主振荡器提供系统定时,且80C32连接到其复位管脚,从而有利于正在进行中的掉电,因此能有效地关闭。连接80C32处理器的还有RS-485驱动器,该驱动器连接通信端口连接器42。虽然在不脱离本发明要旨和范围的情况下也可以采用其他驱动器,但本发明优选实施例中使用的是485驱动器。在这种情况情况下使用了一个RS-232转换器如图中所示。该RS-485驱动器还与动态可变中断方案(dynamically changeableinterrupt scheme)协调工作,下文中将详细予以描述。
连接80C32处理器的还有一串行时间的时钟以提供实时信息。如图所示,设有一个连接80C32处理器的一个8×8k的串行EEPROM来存储用户代码和用户及系统数据,这些代码和数据在没有电的扩展期间必须要保持住。这样提供的一个好处是在电源中断、变化等之后不需用户将代码下载到PLC上。这个串行EEPROM位于CPU或基本单元22中。如图3所示第二个具有8×8k存储量的串行EEPROM构成盒式存储器52的核心并且按需要间歇性地在需要时与PLC基本单元22连接。因为只需四个电连接线就可以用非常小的盒式存储器,所以使用一串行存取EEPROM。另外由于这个存储器的存取是串行的,因此将其做成连接器就更小更便宜并且更容易防止静电等干扰。这与以前使用的并行存取方法相比尤其明显。并行存取方法一般需要20或更多个连接线且并行存取方法极易受到静电释放干扰,将其连接器化和防止静电干扰也昂贵。另外,当与存储器模块如模块52进行接口操作时一般对速度无要求,所以可以不考虑读写的串行存取的时间损失。
该EEPROM盒式存储器52经传统的电连接器,最好以边沿卡形式连接到80C32。应指出尽管本发明优选实施例中使用了一个EEPROM,但是盒式存储器52可以简单地由一个ROM构成,该ROM使用户程序可经80C32直接下载到驻留的串行EEPROM。以这种方式,ROM形式的盒式存储器能用于更新多个PLC基本单元。然而,使用串行EEPROM是为了将用户码能从驻留串行EEPROM上载到存储器模块以便将来传播到其他PLC,由用户等进行使用或学习从而使PLC成为一种“编程器”。
如图所示的指示器LED—如状态指示器48表示基本单元22是否处于FAULT(故障)、STOP或RUN模式。因此,如图1和图2所示的这些指示器,若表示SF-即表示系统故障(System Fault),SF最好用红灯表示,当灯亮时表示基本单元22出现致命错误。类似地,RUN LED最好用绿色表示PLC处于运行模式并且正在执行用户程序,而STOP LED最好用黄色表示该可编程逻辑控制器处于STOP模式且停止运行程序。
其余的指示器,当标记为I时,最好为绿色,向PLC系统表示各输入点的当前状态,从而作为逻辑侧状态指示器(logic side-status indicators);而基本单元22上的指示器标记为Q时,最好用绿色表示各输出点的当前状态,因此是逻辑侧状态指示器。而且,虽然未在图中示出,但是扩展模块24也可以利用Q指示器,如果各输出点是位于该模块上。
如所示出的,盒式存储器52不使用编程装置60即向基本单元如PLC系统20提供现场(field)升级能力。盒式存储器52有效地复制基本单元22中提供的内部不易失的存储器,并且在安装时更换(Supercede)在驻留串行EEPROM中包含的信息。
安装或使用盒式存储器52是相对简单的。为了从盒式存储器向基本单元22的内部存储器复制程序,所需做的全部工作只是安装盒式存储器52并且给基本单元22周期性地供电(断电然后供电)。因此,盒式存储器52可以按照需要被去掉或保留在原位。当从盒式存储器52下载程序时,首先利用与串行EEPROM相同的总线将信息加载到驻留串行EEPROM中。然后,程序被加载到执行和数检验的RAM中以确定下载的完整性并随后再次加载到驻留EEPROM中。以这种方式,使用RAM来保持输入值(如测量的加仑数,称量磅数等)而驻留串行EEPROM保持实际用户程序。
一个大电容用来保持存储所述用户值的RAM部分区域中的数据。为将程序复制到盒式存储器52需要做的全部工作是如先前所述的那样安装盒式存储器52。然后,必须使用编程装置如60来命令80C32处理器将存储信息拷贝到盒式存储器52,然后该盒式存储器可按照需要被去掉或留在原位。当向盒式存储器52写用户程序时,首先将该程序从驻留串行EEPROM发送到执行和数检验的RAM中,然后,如前所述用户程序与和数检验值一起被发送到盒式存储器。当基本单元22接收命令从而将程序拷贝到盒式存储器时,RAM数据如用户程序用户数据的第一128/512字节、站地址、驻留范围确定(如果存在)、固定(freeze)/拷贝状态和RUN到STOP变化的输出表值、口令和限定类别以及所有增强操作数和他们的值都自动拷贝。
图8为按照本发明的一扩展I/O模块24的功能框图。如前所述,多个模块利用边沿卡连接器端对端的相互连接。在本发明的优选实施例中,对于一个基本单元22,最大可有7个模块。然而,在不脱离本发明的范围的情况下,其他数目的模块也可以被使用,这要取决于基本单元22的性能和环境。由于模块24不使用公用底板并且他们实际上是自己识别,所以大多数但不是全部的连接是菊花链。关于这点,从基本单元22到全部模块24的电源(未示出)和逻辑连接都是菊花链。信号线IODB用作I/O数据总线;IORA用作I/O寄存器地址;IOWRT-N用作I/O写选通;IORD-N用作I/O读选通以及I/O DATEN用作I/O使能输出;所有这些信号均是经这些模块的菊花链。然而,可以看到用作I/O模块地址的逻辑引线IOA在每一模块被逻辑地中断和再产生。
在本发明的优选实施例中,IOA模块选择地址在它经过每一模块时在数值上递减。当一个模块在其IOA线上接收到例如零(0)的地址时,该模块被识别。因此,当CPU22将“0”的地址给到链的开始处时,第一个模块被选中。当CPU22给出1的地址时,第二个模块看到0的地址被选中,如此进行下去。
所以,当开始工作时,CPU22将7的地址给第一模块。然后,这个模块检查是否给出的地址是0,如果不是,则该地址减1并传送到下一个模块并且进行同样操作直到一个模块收到0的地址,由此让模块知道它的地址是0。照此,如果一个模块没有收到0地址,则该模块知道给它的编号不是它自己的模块号。因此,任意混合的I/O模块类型可以被联接而不用地址开关和固定底板。不需要从每个模块向CPU给出地址,原因在于设计的用户程序知道连接的是哪个模块及其模块地址。因此CPU22本来就知道应有多少模块是PLC系统20的一部分。对于每个模块唯一重要的是要知道自己的模块号。照此,当CPU22从一个模块请求信息时,只是那些特定模块响应而且因此甚至不需要模块将自己的地址号给出到信号线IOA上。然而,应指出在不脱离本发明要旨和范围的情况下,扩展模块24实际可以包括给CPU的地址。类似地,模块IOA地址可以在它们的地址号被传播时被递增以便让CPU确定或知道有多少个模块在该线上。
模块24本身的控制逻辑是本领域技术人员容易知道和获得的数字电路。每一模块中的相互连接是ID寄存器,该ID寄存器连接控制逻辑和信号线IODB。这个识别寄存器与I/O和模块逻辑84相互作用并且用于使处理器22识别连接到CPU的是什么类型的模块。通过模块类型适当地具体说明模块24是分离的或模拟的模块、输入和输出点的混合等。
类似地,该寄存器也被连接到信号线IODB和控制逻辑,且用于给出从外部装置读取的特定值或作用于从CPU22输出的命令。如有关识别寄存器所述的,这个寄存器还连接到I/O逻辑控制单元84。这个逻辑控制I/O逻辑和控制单元84包括例如滤波器、模/数和数/模转换器、隔离电路等熟知的用于I/O的装置。
图9所示为CPU22的RUN模式期间常用的扫描周期。应指出,在不脱离本发明的要旨和范围的情况下,在正常操作或不同序列期间,考虑到其它因素能够和可以利用其它扫描周期。因此,在本发明的优选实施例中,基本扫描周期由五个操作组成,开始是读取输入,其后是执行用户程序。接着是处理通信请求。然后是下文将会详细描述的内部内务处理零碎工作。最后是适当地写所有输出然而,如下文将会详细描述的,使用户能够发出中断是根据用户按照它们出现的顺序设定的优先级来提供的。在本发明的优选实施例中,当中断事件发生时中断处理是与扫描异步完成的。
如上所述,每一个扫描周期都是从读取输入位的当前值开始,然后将这些值写入RAM(图7)中包含的输入图像寄存器。接着开始执行程序,该程序从第一个指令直到最后一个指令执行。照此,在该程序或中断例程执行期间,即时的I/O的指令最好提供对输入和输出的即时访问。而且,如果用户确定使用中断,与每个中断事件有关的例程作为程序的一部分被存储。中断例程不是作为图9所示的一般扫描周期的一部分来执行,而是只有当中断事件发生时被执行,当然其可以出现在扫描周期的任一点上。
在扫描周期的消息处理部分,PLC基本单元22处理由通信端口收到的消息。其后,在该周期的自诊断阶段,做内部内务处理零碎工作。这些零碎工作包括对可编程逻辑控制或固件和用户程序存储器做周期性地自诊断检查或以及作I/O模块状态检查。扫描周期的最后一个阶段是有关输入/输出,借此图像寄存器值被写入输入模块/从输出模块读取,从而完成一个扫描周期。在本发明的优选实施例中,基本单元22不自动更新作为扫描周期的部分的模拟输入和输出的模拟值,因此不用保持模拟I/O图像寄存器。然而,这些值可以直接由用户程序访问。
图10所示为本发明使用的强制功能(force function)型扫描周期。人们已经发现这种扫描周期是重要的,不仅因为当第一次运行有故障(bug)时,一般PLC可以编程;而且因为其能够动态地改变一些功能—如中断、复位等需要仔细控制和精度的操作。例如使用强制功能的例子有临时重写(overwrite)输入状态从而调试应用逻辑;重写离散输出点可变存储器和其它数据以及利用具有强加存储器位的转移指令跳过用户程序。在如图10所示的强制功能扫描周期中,强加的数据值可以由用户程序输入输出更新周期或通信处理来改变。由此,基本单元22在扫描周期的不同点上再给出每个强加值,并且可以按照所期望的在程序执行之前、期间、之后进行,以及消息处理期间或之前以及紧挨输出写之前进行操作。高速功能和中断功能人们知道利用中断处理某些当时知道的系统信息是极其有用和有益的。现在的PLC一般不能处理多于一个的中断。但是,本发明的PLC基本单元22不用等待扫描周期的特定部分,通过使被分配的例程任务满足利用当时中断/事件知道的系统信息的要求,通过高速处理这些中断,从而实现中断/事件例程的动态分配。另外,本发明还允许解除分配用户程序部分以便使用户程序在发生感兴趣的事件时将控制转移。已经发现与现在的PLC相比,现有的PLC只在编译期间进行中断分配,从而实际上是在静态条件下进行处理;而本发明允许在程序执行期间动态地分配中断,这是一个很大的优点。因此,动态用户-中断例程分配可以将用户程序部分指定给在动态环境中的一个中断事件,且使PLC基本单元22自动实现控制转移。
在本发明的一个优选实施例中,基本单元22支持8个I/O中断事件,这些中断事件可以根据上升沿事件和下降沿事件。但是,应指出在不脱离本发明要旨和范围的情况下,实际中可以有更少或更多的中断事件。另外,本发明的基本单元允许2个定时中断发生、两个串行通信中断发生(接收/发送);根据方向改变、外部复位的最多可达七个高速计数器中断及两个脉冲串输出中断。
在本发明优选实施例中,所有这些中断的优先顺序是按照固定的优先级方案由高到低确定好的。该优先级方案最好是通信中断、I/O中断、定时中断。每个中断在各自优先级分配范围中,根据先来先处理的原则由基本单元22处理。另外,只有一个用户中断服务例程是在任意时间点一直是激活的,并且如果例如定时中断正在被处理,那么后续分离位中断或通信中断都不会优先于定时中断例程。但是,发生于其他中断正在被处理时的多个中断则要按照所述的优先级方案进行排队以在以后作处理。但在不脱离本发明要旨和范围的情况下,还可以采用其他的优先排序方案。
在本发明的优选实施例中,一些累加逻辑最好被存储以供中断使用或在中断期间使用,该累加逻辑可包括—如触点、线圈和累加信息。因此,为了使用本发明的中断功能,需要做的全部工作是当事件发生时,将中断事件与用户希望执行的程序段联系起来。这项工作可以在用户程序编程期间通过简单的相连指令就可完成。已发现通过利用相连指令,用户有可能将多个中断事件与一个中断例程相连。而且,在本发明的优选实施例中,总体上说根据用户的具体要求,可以使能或禁止所有中断。或者是,通过使用简单的分断(detach)指令来切断中断事件与中断例程之间的联系可以禁止单个中断,从而使中断返回非活动状态或被忽略状态。
因此,通过这里提及的种类进行优先排序和使用中断,用户现在可以实现许多增加的功能。其中一个功能是使用基本单元22的串行通信端口42,将其称之为自由端口模式。在这种自由端口模式中,用户程序可以决定和定义如下特征波特率、每字符的各个位、奇偶性以及特定的协议等。其可以由使用接收和发送中断来实现,其中接收和发送中断可以使用户对基本单元编程以便进行编程受控的通信。
通信端口启动中断的一个例子是使用有关于条形码阅读器、秤、焊接设备、安全编码标记设备(Security encoded badge)以及信用卡型阅读器等的接收功能,这里仅是举几个例子。在该例子中,在有关所需的协议和用来启动中断的实际字符或代码方面完全取决于用户。或者,在传输功能模式,消息可以被发送到打印机或显示器,这些都是所述通信中断优先级方案的一部分。
在本发明的一优选实施例中,传送(X/T)消息允许该单元用缓冲区的最后一个字符被发送后产生的中断将一个或多个字符的缓冲区发送。类似地,由每个接收的字符产生一个中断,在中断控制下执行通信的接收。
如前所述,I/O中断包括上开/下降沿中断、高速计数器中断和脉冲串输出中断。上升和下降事件可以对每个输入点捕获,而高速计数器中断允许用户响应这些情况-如到达一个预定值的当前值、计数方向改变(该方向对应于正在转动的轴,如电机等的转动方向的反向)以及外部计数器复位。每个高速计数器事件允许实时地采取行动并且能响应不能由一般PLC控制器扫描速度控制的高速事件。而且,脉冲串(pulse train)输出中断为输出的完成的用户程序提供即时的通知,例如可在步进式电机遇到的规定数目的脉冲。
关于本发明的定时中断功能,一个中断事件在每次定时器到时间时将控制传送给合适的中断例程。这种功能在以规则间隔对模拟输入进行采样中是极有用的。在本发明的优选实施例中,定时中断被使能并且当中断例程被连接到定时的中断事件时定时开始。本发明的一个显著优点是在这种连接期间,系统捕获周期时间值从而后续的变化不影响周期时间。因此,这使得定时器可在中间点而不是在定时器的开始进行有效地“复位”。所以,用户能够在系统中出现事件时动态地分配问题块。
如前所述,在本发明的优选实施例中,基本单元22内驻留有三个高速计数器。但是,在不脱离本发明的要旨和范围的前提下,可以使用其它数量的计数器。这些计数器的计数方向(向上或向下)由利用方向控制位的用户编程者控制。每个计数器要有用于时钟、方向控制、复位和开始等的输入,并且还要提供正交模式以便在1×或4×之间选择记数速率。在本发明优选实施例中,这些时钟中至少有两个彼此相互独立。
而且,当一个具体时钟的复位输入被启动时,该复位清除当前值并且保持它在清除态直到该复位被取消。当用户启动开始输入时,它允许计数器计数并连续计数,而该次开始的取消使计数器当前值保持恒定并忽略时钟事件。另外,如果开始输入是激活的同时复位保持激活态,则当前值被清除。在使用高速计数器之前,利用高速计数器定义指令选择计数器模式以便在特定高速计数器和计数器模式之间提供所述的必需的联系。
通过利用位于当执行高速计数器定义指令时使用的各个计数器的控制字节中的控制位来在至少一个计数器选择激活状态和1×/4×计数模式。其后,一旦用户已经定义了要使用的计数器以及这个特定计数器的计数器模式,用户就可以对该计数器的动态参数进行编程。每个高速计数器有一控制字节,该字节使相关的计数器使能操作和禁止操作、使计数器计数方向可被控制或全部模式用初始的计数方向、使当前值被再次加载以及使该预定值被加载。
而且,通过使用如前面所述的动态中断能力,尤其是作为高速计数器的一部分,可以实现动态预置值,且可以为高速脉冲串输出提供流水线排队。这使得后续操作与被完成的先前操作的执行并行。而且,基本单元22在完成前一个操作后,开始后续操作,从而使得从一个序列顺利地转移到下一个序列和在该序列可被完成时刻或该序列中另一个步骤由用户程序排成流水线时将控制传送到用户指定的程序。通过避免众多步骤与多步序列之间的“死时间”,大大加速了整个处理过程并更充分利用了本发明的高速能力。
图12所示的时序图表示后续操作与当前操作是如何重叠或排成流水线以及流水线操作的自动开始是如何实现的。实际上,该脉冲串类似于使用前面提到的有关高速计数器的预置。而且,还提供在预置间隔后改变脉冲宽度或计数数目的能力。
并且,在本发明的优选实施例中,基本单元22为给定数目的脉冲和指定的周期时间提供具有50%占空比的方波输出的脉冲串输出。在脉宽调制(PWM)功能中,基本单元22提供具有可变占空比输出的固定周期时间。为了从普通连续模式或功能改变或启动脉宽调制,由计数器完成更新。关于这点,每个脉冲串输出或脉宽调制产生器中本身有一个控制字节-最好是一控制字节,一周期时间值和一无符号的脉冲宽度值,一16位数值和一也是无符号的脉冲记数值以及一32字节值。其后,通过在程序中简单执行脉冲指令(PLS)启动操作,由此使基本单元22读取指定的存储器位的位置并而对PTO或PWM产生器编程。
由于上面脉冲串输出(PTO),则所提及的流水线是可能实现的。这可由除控制信息外的两个状态位来实现,其中控制信息表示产生的特定数目的脉冲被产生和/或是否发生流水线或溢出情况。这种PTO功能允许将至少两个脉冲输出特性或者是一串在一起或者是一个排在另一个之后,由此在后续输出脉冲或之间产生连续性。自由端口和用户可定义的通讯协议如前所述,本发明采用UART。发现与前面所述的中断能力一起使用UART可以使本发明的通信端口42可完全适应于用户定义的或可定义的协议方案或为现存标准的部分的各种方案。但是,不是生产在其中具有多个协议的基本单元22,而是在本发明的优选实施例中,所有协议中除了用于有关基本单元22自身PLC编程所用的之外的协议都必须在用户程序中处理。而且,通过使用户使用/适应/定义一协议方案,使得用户可能需要与新设备或可能非常旧的设备相互作用的适当方案是可能实现的。
如前所述,可以利用通信端口42来使用和选择具有用户定义协议的自由端口模式。在本发明的优选实施例中,所有与通信端口42进行的通信都是产生的中断。用户程序通过使用这些中断-如接收中断,接收或发送中断以及接收/发送指令来控制端口操作。因此,为了启动或进行自由端口或可变协议操作(且自由端口标志位已被设置以便建立下面将会充分描述的自由端口的通信)采用前面所述的中断性能。一旦开始一中断,用户程序如前所述方式用于选择波特率、奇偶性、START(开始)和STOP(停止)位以及多个数据位,这些多个数据位在本发明的优选实施例中是7个或8个数据位宽度。通过结束中断例程或禁止操作以及当CPU12进入STOP模式时重新建立正常通信可以很简单地完成从自由端口模式退出。
上面提及的与端口42进行的通信开始一次中断。但是,为使CPU22在正被使用的编程装置60(缺省模式)与自由端口通信之间存在区别,必须要设置一标志位。因此,通过使用一专用标志位(SF)可以选择通信端口的有效功能。所以,在本发明的优选实施例中,该专用标志位的缺省或关闭状态使用户能够将通信端口42用作编程器接口如图6例子中所示。而且,用户程序可以打开控制通信端口使用的专用标志位从而使用户程序能够通过作为自由端口的这个通信端口发送或接收消息。如这里所述,该专用标志位能由用户程序启动、I/O启动或通信端口启动。
因此,在本发明的优选实施例中,进入通信端口42的任何通信被当作中断处理。如前所述,在该中断中,专用标志位的缺省状态用于使通信端口42作为普通编程器接口工作。但是,如果该标志位被打开,然后通信端口42用作或进入自由模式而允许用户定义使用的协议方案。在这种方式中,由于通信端口总是将经通信端口进行的通信视作中断,所以协议方案可以是任意包括单一字符或多字符消息的方案。在自由端口通信模式期间,用户程序被停止直到中断被终止/完成。另一方面,来自基本单元中包括的任意I/O或任意模块或用户程序本身确定的条件的输入可以通过使用一中断例程将通信端口从编程模式切换到自由端口模式。
自由端口模式的另一方面是经过端口42,基本单元22可以与例如打印机进行通信,打印机一般与通信端口连接以便可以打印适当的错误消息、数值等。因此,这使得不同类型打印机或甚至记录装置都能使用。这种用途的另一个例子是寻呼机的寻呼使用。即哪里I/O程序条件存在就会反过来开始一中断,该中断允许并且指示通信端口与例如电话线或其他在用户中断程序控制下的通信装置相互作用。其可以用于拨打维护人员BP机或寻呼机的号码并提供预先编程好的消息-如材料用完、机器停止等。类似地,制造处理过程可利用语音合成器来指示具体的缺陷、引起对具体操作器的注意等,而不是利用寻呼机寻呼方案。
另外,自由端口协议使用的另一个例子是有关汽油泵的使用和用于智能或标准卡的卡阅读器的使用,其中卡阅读器与通信端口相互作用从而在PLC自由端口适当地控制燃料泵的情况下提供或确认用户帐号、燃料类型以及燃料允许量等。另一方面,该PLC自由端口能够用来测量使用的燃料量并经通信端口向中央管理机构报告此使用燃料量,由此使例如税务管理机关将泵出的燃料量与燃料零售商/批发商实际付的税和费用相比较。
例子图11所示为一示例的样本程序的示意图,该样本程序可根据本发明解决。具体讲,如图中所示的第一、第二泵控制器66,72分别由相应的第一、第二泵来控制。一排放泵80设置在与排放阀相邻的位置,该排放阀76直接与箱74相连且蒸气阀(steam valve)78也直接与箱74相连。在这个示例方案中,混合箱74用于产生颜料(paint)的不同颜色。有两根输料管道分别与泵控制器1和2相连,其中每一根管道带入不同成分。在箱74的底部有一根输送管道靠近排放阀76,并且排放泵80将完成的颜料混合物输送给需要的中间工作区域(未示出),在操作期间,期望控制填充操作,同时监视箱中水平并控制混合和供料周期。因此,操作过程如下1.填充箱等待泵开始推动要按动的按钮开关。当这些按钮开关闭合时,开始1和2。如果两个泵停止开关中任何一个被断开,则停止泵工作。填充不同成份的颜料直到高限开关闭合。然后关闭两个泵。
2.混合和加热诸成分在规定周期内(例如10秒)打开混合器电机和蒸气阀。
3.排放混合箱中的成分在混合和加热循环后,打开排放阀排放容器内成分。排放该泵直到箱中水平到达低限。
4.计数每个循环计数每次混合箱经历的完全/填充/混合/排放的循环。
图表1(Chartl)所示为一编程和测试逻辑用的样本程序1,其中该逻辑是对利用图11给出的例子对本发明的PLC进行编程所必需的。因此,在该图表左边可看到梯形逻辑框图,在图表1右边可看到实际代码。其它的和中间步骤都没有给出,因为对本领域技术人员而言,一般PLC编程是件容易的工作。
例子2-自由端口通讯本发明的另一个例子如下所述。这个例子是利用如前所述的自由端口通信或可变协议方案,并且利用这种通信接收来自条形码阅读器的字符串。在这个例子中,具有不同条形码的八种产品类型在一条输送线上混合并且必需分送至两个目的地之一做最终包装。条形码阅读器读取包括12个ASCII字符的条形码,该条形码以回车和换行字符结束。当接收到回车和换行字符时,开始检验条形码。根据该条形码值,激活分送装置闩从而将产品送到库A或B。条形码的最后4位确定产品要送到的库。在这个例子中使用或假定当下载用户程序时,特定数据库(DB1)的示例数据值(V0-V95)也已下载。因此,下面的表1-4所示描述了使用的不同地址和参数。
表1中描述所用的输入和输出,可以看出,字节的数目对应于地址的大小。而且,可以看到表1处理的是由基本单元22完成的I/O功能,表2,3,4(如下面将会充分描述的)处理的是基本单元22内的内部数据移动。表C2处理的是永久数据存储,同时可以看到12位字节正好对应于地址的12位。类似地,表C3处理具有字节和地址大小的易失性数据存储,而表4处理子例程中断描述,其掌握整个采样程序的全部操作。
图表2所示为易于实现上面所述的条形码阅读程序的主程序、子例程和中断例程。从图表2可看到,图表的不同部分对应于表1、2、3、4列举的功能和描述
权利要求
1.一种与可编程逻辑控制器(PLC)一起使用的串行访问盒式存储器,其中该可编程逻辑控制器具有至少一个输入端和一个输出端,用于发送和接收相应的预定信号;至少一个微处理器,用于执行用户指定的多个运算和命令;与该至少一个微处理器互相连接和协调工作的至少一个第一存储器装置,用于存储该用户指定的多个运算和命令,该PLC具有一连接器,用于访问该第一存储器装置,该串行访问盒式存储器包括与所述连接器协调工作并且其中存有用户指定信息的串行访问存储器装置,从而,包含在所述至少一个存储器装置内的用户指定信息可以存储在所述串行访问存储器装置内。
全文摘要
一种串行访问的、电可擦除的、可再编程的只读存储器(EEPROM)用于存储用户程序和数据且被放置于盒式存储器之内。该盒式存储器与基本或主PLC协调工作并且由此可以用于将程序下载到一个或更多个主PLC或从主PLC将程序上载到盒式存储器。
文档编号G05B19/05GK1171852SQ95197173
公开日1998年1月28日 申请日期1995年7月12日 优先权日1994年12月29日
发明者艾伦·麦克纳特, 史蒂芬·M·豪斯曼 申请人:西门子能量及自动化公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1