具体实施方式
下面,参照附图说明本发明的实施例。
(第一实施例)
图1表示根据本发明的第一实施例所述的一种用于一可编程控制器的通用功能的电路K1,而图2表示图1所示的可编程控制器。如图1所示,该通用功能电路K1包括:一外部连接器1、一互接连接器2、一算法处理器3、一显示器4、一绝缘体5、一电源6以及一设定开关7。
所设置的外部连接器1用于把该通用功能电路K1连接到一受到顺序控制的外部设备。外部设备包括一设备、一仪器等。例如,一符合军用标准(MIL)的连接器,即一用做该外部连接器1的所谓MIL连接器。绝缘体5与外部连接器1和算法处理器3连接,并例如由多个光学隔离器构成,以便在隔离通过外部连接器1在算法处理器3和外部设备之间传输、并由该算法处理器3和该外部设备接受的输入/输出信号。同时,在使用一种要求电源的高速光学隔离器的情况下,可以另外设置一从一外部电源向光学隔离器提供电源的电源电路。
互接连接器2连接到算法处理器3,并连接一到设置在下面将要说明的可编程控制器的一背板20中的连接器21。算法处理器3利用该互接连接器2与诸如一可编程控制器的CPU单元30的其他单元通信。该CPU单元30包括一用于执行一系列程序的CPU。
显示器4由多个光发射二极管(LEDs)构成,并根据来自于算法处理器3的控制信号和给定的显示数据、通用功能电路K1的操作状态(例如来自于或者发送到与外部连接器1连接的外部设备的输入/输出信号的ON状态或者OFF状态)、以及在通用功能电路K1产生的功能信号的状态来进行显示。设有用于设定算法处理器3的操作状态的设定开关7,该设定开关例如由2比特双列直插式封装(2-bit dual inline paekage)(DIP)开关构成。于是,算法处理器3读出设定开关7的一种设定状态,并根据这种设定状态进行操作。例如,通过把经过互接连接器2从背板20的一电源单元31接收的5V的直流电压转换成所需的3.3V的直流电压,电源6可将3.3V的直流电源提供到通用功能电路K1的每一元件。
算法处理器3的功能是:通过外部连接器1向与算法处理器3连接的外部设备传输信号,并通过该外部连接器1从该外部设备接收信号,并根据从该外部设备接收的信号执行逻辑运算,从而通过互接连接器2向可编程控制器的CPU单元30等,传输一与逻辑运算的结果相对应的信号;还有一功能是根据一通过互接连接器2从CPU单元30接收的信号,执行一种逻辑运算,从而通过外部连接器1向外部设备传输一与逻辑运算的结果相对应的信号。
在此实施例中,算法处理器3由一可编程逻辑装置(PLD)构成,该可编程逻辑装置可通过编制诸如一现场(field)可编程门阵列(FPGA)和一复杂可编程逻辑装置(CPLD)之类的预定功能而执行一种逻辑运算。一般来说,PLD设有一所谓的连接测试动作组(Joint Test Action Group)(JTAG)端口,而且,即便在一印刷电路板上安装好了PLD之后,也能利用该JTAG端口重写PLD中的程序。
当把上述结构的通用功能电路K1设置在一由合成树脂制成的箱形外壳15中时,就可得到一如图2所示的通用单元A。外部连接器1基本上设置在外壳15前面的中心部分,从而将其从前面暴露出来,而显示器4的显示表面4a设置在外壳15前面的上部。尽管没有具体图示出来,仍然把设定开关7和互接连接器2设置在外壳15的后面,从而将其从后面暴露出来。通过把互接连接器2连接到背板20的连接器21,可将通用单元A安装在背板20上。因此,通过在背板20上安装用于向CPU单元30和其他单元提供电源的电源单元31、一具有从/向外部输入和输出信号的输入/输出功能的功能单元32(例如用于从/向外部设备输入和输出信号的输入/输出单元)等等,可得到该可编程控制器。
同时,除了上述输入/输出功能之外,功能单元32还具有各种功能,例如输入时间常数功能、中断功能、计数功能、比较和输出功能、脉冲输出功能、脉冲宽度调制(PWM)输出功能和定位功能。已经可以从市场上购买到具有这种功能的单元,即输入/输出单元、输入时间常数单元、中断单元、计数单元、比较和输出单元、脉冲输出单元、PWM输出单元和定位单元。由于这些单元的结构和操作方式是公知的,为了简化起见,省略了对它们的说明。
在本发明所述的通用功能电路K1中,由于由PLD构成可执行上述各种功能的算法处理器3,在该PLD中,很容易重写程序,而且其吞吐速度大于CPU的吞吐速度,因此可通过重写程序而在单个通用功能电路K1中获得各种功能,例如输入/输出功能、输入时间常数功能、中断功能、计数功能、比较和输出功能、脉冲输出功能、PWM输出功能和定位功能。因此,由于可制作彼此相同的具有多种功能单元32的电路结构,因此可制作彼此相同的电路元件,因此方便了生产控制,进而降低了生产成本和存货。
同时,当由高速光学隔离器构成绝缘体5、从而能够在外部设备和算法处理器3之间进行高速而多点的输入和输出时,只要输入/输出点的数量和绝缘体5的响应速度允许,就可仅仅通过改变单个电路结构中的PLD的程序,而生产出诸如输入/输出单元、中断单元、计数单元、脉冲输出单元、PWM输出单元和定位单元之类的各种功能单元。通过使用能共用于多个功能单元的通用单元A,可减少多种功能单元,因此有利于对功能单元的生产进行控制。而且,由于仅仅通过使用共同的电路结构并改变程序来生产各种功能单元,因此,有可能满足在短期内以低成本改变功能、研发新产品的要求。进一步地,即便在将来利用新方法改变或者代替用于把该通用功能单元K1与其它单元连接的通信方法,也有可能仅仅通过改变PLD中的程序而不是通过改变电路结构,而在对互接连接器2的配线有限制的范围,解决这种将来的问题。
同时,在部分最终用户那里,在设备发生故障等情况下,功能单元保留有用于维护的空余部分,可把这种功能单元设置在通用单元A中,从而很容易进行控制。也就是说,到目前为止,需要制备和控制功能单元的数量等于设置在该设备中的功能单元的种类。另一方面,在本发明所述的通用单元A中,由于迄今为止单独使用的相同功能单元的数量是一个,因此便于控制功能单元。而且,迄今为止,由于把中断单元、计数单元、脉冲输出单元等单独安装在背板20上,因此,背板20要有用于把这些单元安装在该背板20上的空间,即插槽。但是,在本发明所述的通用单元A中,为了实现各种功能,在背板20上只需要设置一个插槽,从而节省了空间。
(第二实施例)
在由大规模廉价的PLD构成算法处理器3的情况下,目前的优势是可购买到易失性PLD。但是,每次接通电源6时,要把程序下载到易失性PLD中。因此,直到正常地完成这种下载之时,才能执行所要的操作。为了解决这种问题,根据本发明的一第二实施例所述的用于一可编程控制器的通用功能电路K1具有下述结构。
如图3所示,由一易失性PLD 3a、一非易失性PLD 3b、以及一用于存储在接通电源6时下载到易失性PLD 3a中的程序的只读存储器(ROM)3c。由于该通用功能电路K2的其它结构与通用功能电路K1的结构类似,因此为了简化起见,省略了对其说明。
易失性PLD 3a例如由一基于现场可编程门阵列(FPGA)的静态随机存储器构成,并可根据从ROM 3c下载的程序进行操作。通过改变存储在ROM 3c中的程序,易失性PLD 3a可执行各种功能,例如输入/输出功能、输入时间常数功能、中断功能、计数功能、比较和输出功能、脉冲输出功能、PWM输出功能和定位功能。同时,非易失性PLD 3b例如由一基于复杂可编程逻辑装置(CPLD)的闪存ROM(FROM)、或者一基于CPLD的可电擦除可编程ROM(EEPROM)构成,而且可在接通电源6时,检测把程序下载到易失性PLD 3a的失败的情况,从而通知诸如CPU单元30之类的其它单元出现了失败。
之后,说明通用功能电路K2的操作过程,其中,非易失性PLD 3b检测在接通电源6时把程序下载到易失性PLD 3a的失败的情况。非易失性PLD 3b把添加在从ROM 3c下载到易失性PLD 3a中的程序数据上的校验位、与从易失性PLD 3a接收的程序数据的校验和结果进行比较。如果校验位与校验和结果相符,非易失性PLD就判断出没发生失败。相反,如果校验位与校验和结果不相符,非易失性PLD就判断出发生了失败。进一步地,如果非易失性PLD 3b判断出没发生和发生了失败,非易失性PLD 3b就把一高电位和一低电位分别设定到与互接连接器2相连的预定输出端口。只有在非易失性PLD 3b判断出发生了失败,非易失性PLD 3b才通过互接连接器2利用其它单元,在访问初期时锁定输出端口的输出。于是,只有在下载时发生失败而且由其它单元已经询问通用功能电路K2的状态时,非易失性PLD 3b才把失败的情况通知到其它单元。同时,当已正常完成下载时,易失性PLD 3a就与其它单元进行通信。
在此实施例中,不必在算法处理器3中设置一CPU,非易失性PLD 3b就能在接通电源6时,检测把程序下载到易失性PLD3a失败的情况,并把失败的情况通知到其它单元。因此,有利于把大规模门用做易失性PLD3a。
同时,假设通过互接连接器2从背板20输入到通用功能电路K2的供电电压和信号电压为5伏,用于易失性PLD 3a的工作电压为3.3伏,用于非易失性PLD 3b的工作电压为5伏,用于内部处理的3.3伏的电压和用于与其它单元通信的5伏的电压互不相同。在此情况下,一般需要在两种电源之间使用一双向接口IC,因此增加了元件的数量。
但是,在此实施例中,使用一种可在两种电源下工作的装置作为非易失性PLD 3b,这两种电源包括用于算法处理的3.3伏的电压和用于通过互接连接器2在该装置和该单元之间进行传输的5伏的电压。
之后,说明一种在通用功能电路K2中,在算法处理器3和其它单元之间进行通信的方法。把利用互接连接器2从其它单元向算法处理器3输入的信号输入到非易失性PLD 3b和易失性PLD 3a。例如,这种信号是一允许信号、一地址、一读取信号、一写入信号和输入数据。同时,通过非易失性PLD 3b输出在易失性PLD 3a中产生、并通过互接连接器2输出到其它单元的信号,例如输出数据。根据从易失性PLD 3a产生的一控制信号,控制该输出数据。在此方法中,非易失性PLD 3b把工作电压为3.3伏的易失性PLD 3a的输出转换成5伏的信号,并将该5伏的信号输出到其它单元。因此,即便在通用功能电路K2中,3.3伏的工作电压与用于在算法处理器3和其它单元之间进行通信的5伏的电压互不相同,也能在算法处理器3和其它单元之间进行通信。因此,由于不需要在两种电源之间提供这种作为双向接口IC的元件,因此可以把通用功能电路K2和通用单元A制作地很紧密,而且价格便宜。同时,由于可在通用功能电路K2中,使用可在例如3.3伏的低压下进行工作的装置,因此,可轻易地安装以低电压工作的大规模易失性PLD 3a,进而降低了能源消耗和辐射噪音。
(第三实施例)
图4表示根据本发明的第三实施例所述的一种用于一可编程控制器的通用功能电路K3。该通用功能电路K3的特点在于:在接通电源6时,通过互接连接器2从诸如CPU单元30之类的其它单元把程序数据下载到算法处理器3的易失性存储器3a。因此,并不在通用功能电路K3的算法处理器3中设置用于存储在通用功能电路K2中下载的数据的ROM3c。由于该通用功能电路K3的其它结构与通用功能电路K2的结构类似,因此为了简化起见,省略了对其说明。
在此实施例中,被下载到易失性PLD 3a的数据存储在CPU单元30的一存储器中,并在接通电源6时,通过互接连接器2从CPU单元30把该数据下载到易失性PLD 3a。而且采用与第二实施例相同的非易失性PLD 3b监视下载失败的方式。
因此,通过改变存储在CPU单元30的存储器中的程序,通用功能电路K3可执行各种功能,例如输入/输出功能、输入时间常数功能、中断功能、计数功能、比较和输出功能、脉冲输出功能、PWM输出功能和定位功能。为了在CPU单元30的存储器中存储程序,有这样一种方法,在该方法中,利用专门的应用软件在上位主机上选择将被下载的程序,并把该程序与一用户程序一起传输到CPU单元30。可供选择地,还可利用下列一种方法,在该方法中,把用于实现上述各种功能的多种程序存储在万维网(WWW)或者与因特网连接的文件传输协议(FTP)服务器,并把所需的程序通过因特网从该服务器中暂时下载到上位主机中,从而将该程序与用户程序一起传输到CPU单元30。
(第四实施例)
图5表示根据本发明的第四实施例所述的一种用于一可编程控制器的通用功能电路K4。该通用功能电路K4包括:一代替通用功能电路K1的算法处理器3的门阵列8。把多种升级的特殊功能引入该门阵列8,这些特殊功能有助于通过互接连接器2把CPU单元30连接到门阵列8,门阵列8通过外部连接器1向外部设备传输信号并从外部设备接收信号。该通用功能电路K4进一步包括一扩展的基底40(图6)以及一与该扩展基底40连接的扩展连接器9。所设置的扩展基底用于增加通过扩展引入门阵列8的特殊功能而获得的多种进一步的特殊功能。其中,门阵列8包括一用于利用扩展连接器9把门阵列8连接到扩展基底40的扩展总线。而且,外部连接器1、互接连接器2、显示器4、绝缘体5、电源6、设定开关7、门阵列8和扩展连接器9安装在由单个印刷板构成的主电路板上。由于该通用功能电路K4的其它结构与通用功能电路K1的结构类似,因此为了简化起见,省略了对其说明。
采用与通用功能电路K1的算法处理器3相同的方式,门阵列8的一种功能是:通过外部连接器1向与门阵列8连接的外部设备传输信号并从该外部设备接收信号,并根据从外部设备接收的信号执行逻辑运算,从而通过互接连接器2向可编程控制器的CPU单元30等传输与逻辑运算的结果相对应的信号;还有一种功能是:根据通过互接连接器2从CPU单元30接收的信号执行逻辑运算,从而通过外部连接器1向外部设备传输与逻辑运算的结果相对应的信号。
同时,引入门阵列8的多种特殊功能包括:输入/输出功能、输入时间常数功能、中断功能、计数功能、比较和输出功能、脉冲输出功能、PWM输出功能和定位功能。简而言之,可把该通用功能电路K4用做输入/输出单元、中断单元、计数单元、脉冲输出单元和定位单元。因此,由于可把代替这些多功能单元的该通用功能单元K4安装在背板20上,与在背板20上安装输入/输出单元、中断单元、计数单元、脉冲输出单元和定位单元的情况相比,节省了空间。
如图6所示,扩展基底40包括:一连接主电路板的扩展连接器9的连接器44、一可编程逻辑装置(PLD)43、一用于存储一用于给出PLD 43的上述附加的特殊功能的程序的ROM 45、一可连接该外部设备的外部连接器47、以及一设置在外部连接器47和PLD 43之间的输入/输出模块46。该PLD 43包括一所谓的JTAG端口,而且即使在把PLD 43安装在扩展基底40上之后,也可以利用JTAG端口重写PLD 43中的程序。同时,输入/输出模块46的一种功能是通过外部连接器47向PLD 43传输所输入的信号,一种功能是把信号从PLD 43传输到与外部连接器47连接的外部设备。
因此,在通用功能电路K4中,由于可利用门阵列8获得多种特殊的功能,因此可把部件制作得彼此相同,这样方便生产控制,从而降低生产成本和产品库存。而且,当为了通过扩展引入门阵列8的特殊功能而增加进一步的特殊功能,把扩展基底40连接到扩展连接器9时,就可增加进一步的特殊功能。因此,如果需要增加进一步的特殊功能,就可根据用户的规定通过适当地把扩展基底40连接到扩展连接器9,而很容易地增加进一步的特殊功能。因此,只需要执行单个通用功能电路K4的库存控制来代替多个多功能单元的库存控制。
进一步地,由于可在设置在扩展基底40上的PLD 43中实现符合用户规定的附加特殊功能,因此,有可能很容易地解决附加特殊功能的改变或者增加。另外,由于通过通用功能电路K4中的内部连接增加扩展基底40,因此,有可能通过把新的特殊功能增加到扩展基底40的PLD 43中,而进行高速处理。同时,由于扩展基底40设有与外部设备连接的外部连接器47,因此,不需要在其之间使用绝缘体5就可把扩展基底40连接到外部设备,这样可使扩展基底40直接与外部设备通信,从而提高了扩展性。
(第五实施例)
图7表示根据本发明的第五实施例所述的用于一可编程控制器的通用功能电路K5。该通用功能电路K5包括一如图8所示的扩展基底50。该通用功能电路K5的特点在于:代替了通用功能电路K4的扩展基底40的ROM 45,在扩展基底50中设有一能够从外部把电路数据下载到PLD43的可再写非易失性存储器48。例如,把一EEPROM作为可再写非易失性存储器48。PLD 43能够根据存储在EEPROM 48中的电路数据执行附加的特殊功能。由于该通用功能电路K5的其它结构与通用功能电路K4的结构类似,因此为了简化起见,省略了对其说明。
当扩展基底50的连接器44连接到扩展连接器9时,就可如图9和10所示,通过CPU单元30的设备耦合端口(未示出)和母总线60把传递到PLD 43的编译电路数据下载到EEPROM 48。同时,在图9中,其它单元C表示一电源单元和其它多功能单元。
在此实施例中,由于可把符合用户规定的附加特殊功能设置成应用软件,因此,可把其内门的数量相对较少的廉价PLD用做PLD 43,从而降低了成本。同时,在第四实施例中,改变附加特殊功能的情况下,要替换ROM 45。另一方面,在此实施例中,在此情况下,不需要替换EEPROM 48,因此降低了生产成本。
同时,在EEPROM 48中存储多个独立电路数据的情况下,EEPROM48可根据执行顺序程序期间的顺序程序的内容,有选择地向PLD 43发送多个电路数据中的其中一个数据。因此,由于即便在执行顺序程序期间,也可重写PLD 43的电路数据,即便在门的数量相对很少的PLD中,也可获得多种特殊功能。
(第六实施例)
图11表示根据本发明的第六实施例所述的用于一可编程控制器的通用功能电路K6。该通用功能电路K6的特点在于:在门阵列8中设有一编译器(编译系统)49,该编译器49用于在把源程序或者电路数据下载到EEPROM 48中时把该源程序或者电路数据编译成能够操作PLD 43的电路数据。可从可编程逻辑装置的制造商手中购买到这种编译系统。由于通用功能电路K6的其它结构与通用功能电路K5的结构类似,因此为了简化起见,省略了对其说明。
在此实施例中,当通过CPU单元30和母总线60把一由电路数据组成的源程序(原始程序)、或者诸如在可编程控制器中一般使用的阶梯(ladder)之类的用户程序下载到EEPROM 48中时,就由编译器49把源程序自动地编译成能够操作PLD 43的电路数据,并把源程序存储在EEPROM 48中。因此,可通过格式化用户程序或者电路数据而增加一种新的特殊功能。因此,用户可向PLD 43赋予与应用程序相对应的特殊功能。
在上述可编程控制器中,包括通用单元的各种单元都安装在背板上。但是,本发明还可应用到其内各种单元不使用背板就直接连接到另一单元的结构类型中、以及其内利用一电缆把可编程控制器连接到一扩展单元的结构类型中。