逻辑量并行处理可编程控制器(plc)的制作方法

文档序号:6323628阅读:236来源:国知局
专利名称:逻辑量并行处理可编程控制器(plc)的制作方法
技术领域
涉及一种由微控制器或微处理器组成的以程序指令的形式实现梯形图功能的可 编程控制器(又称PLC)系统和用梯形图的形式实现控制的计算机系统,尤其是这样的高速 系统。
背景技术
已有的对可编程控制器梯形图的处理方法是把梯形图解析(解释或编译)成处理 单个逻辑变量的指令串,然后循环执行。以三菱的可编程控制器为例,上位机把梯形图解析 成程序指令串,再下载到可编程控制器中,运行时,可编程控制器不断地进行循环扫描,每 一次扫描,先读入所有输入端X信号暂存,然后一条接着一条地按程序指令串中的指令涉 及的元件变量提取Χ、γ’ (上一次扫描的输出)、Μ(辅助继电器)、C(计数器)、T(定时器) 等变量值并执行该指令,如LD XI,AND X2等等,机器内的逻辑运算是一位运算。输出值Y 暂存,直至指令串结尾,暂存的输出值Y—次性全部送到实际的输出端,然后再进入下一次 扫描。这种逻辑量串行处理方法,使得梯形图的功能实现速度相对较慢。

发明内容
为了克服已有的对可编程控制器梯形图解析成处理单个逻辑变量指令串,可编程 控制器运行时用逻辑量串行处理(一位运算)方法循环扫描指令串,使梯形图功能的实现 速度相对较慢的不足,本发明提供一种梯形图逻辑量并行处理(多位运算)方法及支持这 种处理方法的硬、软件技术。采用本发明的可编程控制器的梯形图功能的实现速度比已有 的含有相同工作频率的同等微控制器或微处理器的可编程控制器有较大的提高。解决其技术问题所采用的技术方案是充分利用微控制器或微处理器的字节、半字或字长的逻辑运算能力,把可编程控 制器梯形图的逻辑关系解析成多个逻辑变量同时运算的关系,实施梯形图功能时,在可编 程控制器内实行多位(多于一位)逻辑运算,实现多个逻辑变量并行处理;梯形图中垂直线 段所表达的或运算需要微控制器或微处理器执行较多的程序指令,为加快梯形图垂直线段 所表达的或运算,采取相应的软、硬件加速技术;为加快逻辑量传递,在微控制器或微处理 器内添加支持位变量在位寻址区与至少一个寄存器的任意位之间双向直接传送的电路。本发明的有益效果是加快了可编程控制器梯形图的执行速度,提高了可编程控制器用于高速控制的能 力。下面对这种多个逻辑变量并行处理的方法及支持这种处理方法的硬、软件技术作 进一步说明。梯形图多个逻辑变量并行处理的方法涉及到上位机(PC机)对梯形图的编辑和翻 译(可以翻译成中间语言、下位机的机器语言、或不翻译,只传送梯形图)。下位机(可编程 控制器)对上位机传送过来的信息的解释执行、编译后执行、或直接执行,及支持这种执行的硬、软件方法。这是一个相互关联的系统。这里提出支持可编程控制器梯形图多逻辑变量并行处理的一种解析(解释或编 译)方法,及支持多逻辑变量并行处理的梯形图垂直线段或运算所采用的两种梯形图垂直 线段或运算加速电路或采取片内查表、片外查表的技术措施,和在微控制器或微处理器内 为加快逻辑量传递所必需的硬件支持。为方便分析,把梯形图的水平方向的一条称为行,自上而下作数字编号;把梯形图 的垂直方向的一条称列,自左至右作数字编号。梯形图中一行的元件是逻辑与的关系;垂直 线段表示线段相连的逻揖量是逻辑或的关系,也就是在垂直线段上只要有一处梯形图的逻 辑量为1,那么垂直线段所到之处的逻辑量都为1,下面把这种现象形象地称为逻辑量1沿 垂直线段向上、下两边传递。并行解析法的方法是,先把梯形图分成若干个块,每个块由若 干行组成,划分原则是上下相邻两行之间有垂直连线连通的这两行属同一个块,也就是组 成块的若干行其相邻两行之间必有垂直连线连通。上下相邻两行之间无垂直连线连通的这 两行分属不同的块,这相邻两行就是相邻两块的边界。对块也自上而下作数字编号。垂直线段表达的或运算特别是块内同一列有多条垂直线段用程序软件处理需要 占用较多的指令,花费较长时间,采用梯形图垂直线段或运算加速电路可以加快这种运算。 第一种梯形图垂直线段或运算加速电路是由两组或门和与门、一组或门组成。一组或门和 与门的或门输入信号是垂线所在列的逻辑量输出信号,或门的输出一路传入与门,与门的 输出向上传给上位或门的输入端,与门的另外两个输入端为本位和上位的垂线信号(有垂 线为1,无垂线为0),或门的输出另一路作为一组或门的一个输入,实现本位输出和向上的 逻辑量传递;另一组或门和与门的或门输入信号也是垂线所在列的逻辑量输出信号,或门 的输出一路传入与门,与门的输出向下传给下位或门的输入端,与门的另外两个输入端为 本位和下位的垂线信号,或门的输出另一路作为一组或门的另一个输入,实现本位输出和 向下的逻辑量传递。这一组或门的输出就是梯形图垂直线段或运算加速电路的输出值。一 旦送入某个或门的逻辑信号量为1,这个或门的本位输出就为1,1还会沿垂线信号向上、向 下传递,与门把1的传递限制在垂线范围之内。这就实现了垂线范围之内的或运算。不同 的垂线决定了各自的传递范围,无垂线的地方就直接输出。为减少时延,加快传递速度,也 可再加或门和与门实现1的由上向下和由下向上的跨越式传递,这时,应把跨越范围内的 垂线信号都接至与门输入端,使相邻传递和跨越式传递共存。第二种梯形图垂直线段或运算加速电路是按照逻辑1相邻传递的特点把整个电 路分成若干个块(如把32位的垂直线段或运算加速电路分为8块),块间有一边相邻块传 递输入的信号和向另一边相邻块传递输出的信号,这样对典型的一个电路块有9个输入信 号4行梯形图水平信号、4行梯形图垂线信号、1个相邻块传递过来信号;5个输出信号4 个垂直线段或运算输出信号、1个向另一边相邻块传递输出的信号。块内电路可用常规的 卡诺图方法设计,用一组与门和一组或门构成,先与后或,再作适当变换,这相当于预进位 并行加法器的设计方法。用这样的8个块构成本位的输出和逻辑1的由上向下的传递;另 用这样的8个块构成本位的输出和逻辑1的由下向上的传递。这两组8个块的对应输出再 相或就是垂直线段或运算的输出(结果)。这是一种对电路时延和电路规模互相兼顾的办 法。第二种电路虽然电路规模比第一种电路大,但时延较小。如果上述电路块之间允许有上、下两边传递进来的两个输入信号,又有向上、下两边传递出去的两个输出信号,这样的结构会造成错误的锁定现象。这是因为设A、B是相邻 的两位,但各属不同的电路块。如果电路块之间的这相邻两位A、B有垂线信号,而其中一位 A的梯形图水平信号输入端若出现毛刺、尖脉冲等偶然因素,那么该位A因有垂线信号,除 了本位输出1,还向旁边的邻位B传递去1 ;这邻位B也因有垂线信号,它接受了这个1,在 自身位B输出1的同时又向刚传过来1的相邻位A反传过去1 ;相邻位A又因有垂线信号, 它也接受了这个1,这时相邻两位梯形图水平信号输入端可能都已为0,但输出已锁定在1 了。这当然是错误的锁定现象,所以电路块之间逻辑1的传递只能是单向的,这也就是总电 路结构采用两个单向传递,再相或的原因。因为电路块之间逻辑1的传递是单向的,所以设 计电路块内部的组合逻辑电路时,也只需考虑逻辑1的单向传递,这能减小电路块内部的 电路规模。为加快垂直线段或运算,电路块内部采用的是并行结构,包括逻辑1的单向传递 也是并行的、预传递的。也可采用片内查表或片外查表的方法代替这种运算,方法是把并行的输入信号和 垂线信号作为存储器地址,并行输出就是这种或的结果,但查表法硬件代价较大。梯形图垂直线段或运算加速电路和查表法与用指令实现同样的功能相比,它大大 加快了处理速度。为了方便与微控制器或微处理器接口,加速电路还可配上输入锁存和三态输出 等。加速电路的时延,与逻辑量1传递的距离有关,或者说与垂直线段的长度有关。虽然这 个时延相比完成同功能的指令执行时间小很多,但当这个时延大于把逻辑值写入加速电路 到从加速电路读出逻辑值的时长时,应等待加速电路运算结束,等待时间的长短取决于当 时送入加速电路的最长一段垂线的长度,这在解析梯形图时就能知道。梯形图垂直线段或运算加速电路可用可编程逻辑器件(如CPLD等)构成,或制成 专用电路,或集成在微控制器或微处理器之内。辅助设计软件将提高逻辑电路设计效率。梯形图垂直线段或运算加速电路的位数应大于或等于块的高度,反过来说块的高 度应小于或等于加速电路的位数,梯形图垂直线段或运算加速电路的位数就是允许的块高 度的最大值。为了加快块内变量的传送和运算,块高度的最大值最好按照微控制器或微处 理器的字节、半字或字长选择,究竟多长最好,需要对速度的提高程度和硬件的代价作共同 考虑才能作出。可以让可编程控制器梯形图编制者知道块的概念,对一定长度的加速电路,如果 实际编制梯形图时块高度大于最大值,就给以信息提示,让梯形图编制者作一定的技术处 理,如引入辅助继电器Mn,把块的高度控制在最大值之内。或者块的概念及块的最大值只是 一种后台处理技术,梯形图编制者无需知道,以减少对梯形图编制者的约束。对块的高度限制是一个方面,另一方面为了利用并行运算的优点,尽量把数个小 块看成一个大块,但必须把大块的高度限制在最大值之内。这种把小块拼凑成大块的技术 处理也可作为一种后台处理技术由梯形图解析程序来完成。多逻辑变量并行处理法的循环扫描方法(以ARM CM3为例)是读入所有的输入 端X变量暂存在位寻址区(Y’ (上一次扫描的输出)、M(辅助继电器)、C(计数器)、T(定 时器)等逻辑变量值都已存放或设置在位寻址区),按照梯形图第一个块的高度(这里取 块的最大高度为3 ,根据梯形图第一列各行涉及的逻辑元件填写寄存器Rd,也就是把该 列第一行元件存放在位寻址区的状态填入寄存器Rd的第0位,该列第二行元件存放在位寻址区的状态填入寄存器Rd的第1位,如此把第一列所有逻辑元件逐个填入寄存器Rd。但 是现在的ARM CM3不支持直接把位变量从位寻址区填入到寄存器Rd的任意位中,实现这样 的操作就会花费较多的指令。如果梯形图第一块第一列有垂直线段,就把垂线信号以字的 形式填写寄存器Rnl,有垂线的地方为1,无垂线的地方为0,执行寄存器Rd、寄存器Rnl垂 直线段或运算。如果梯形图第一块第一列无垂直线段,就把梯形图第一块第二列元件变量 逐个填入寄存器Rn2 (在这之前如果第一块第二列中含有水平连线,就应先在寄存器Rn2对 应水平连线的位置填上1,无水平连线的地方为0,为加快运算,以字节、半字、字的形式填 写),执行寄存器Rd、寄存器Rn2字长按位逻辑与运算。如此进行,完成一个块的输出列之 前逻辑运算。从以上看出,从执行寄存器Rd、寄存器Rnl垂直线段或运算到执行寄存器Rd、 寄存器Rn2字长按位逻辑与运算之间有一个水平连线的填写和位变量的逐个填入Rn2的过 程,一般来说,能够做到运算加速电路的时延小于这个填写寄存器Rn2的时间消耗,除非一 块中前一列的垂直线段特别长,相邻的后一列元件变量非常少,但这机率不大。因此,对控 制垂直线段或运算加速电路的延时要求不高。对输出处理,以三菱可编程控制器为例,直接 Yn输出的,把逻辑运算结果传给Yn就可以了 ;对SET Yn,可用Yn =逻辑运算结果+ (或) Υη,而得;对RST γη,可用Yn=(逻辑运算结果的非)* (与)Yn,而得。象填写寄存器Rn2 一样,从寄存器Rd的任意位输出到位寻址区的传送需要消耗较多指令。Yn’是上次循环扫 描的输出,Yn暂存到输出数组,等待的本次循环扫描结束后传送给实际的输出端。如此,一 个块一个块地运算,直到最后一块完成,本次扫描结束,暂存的输出值一次性送到实际的 输 出端Y。这样字的按位逻辑运算是多位逻辑变量同时独立的运算,也就是一种并行的逻辑运 算,它明显比一位逻辑变量的运算要快。因此在硬件上,在微控制器或微处理器内添加支持 位变量在位寻址区与至少一个寄存器Rn的任意位之间双向直接传送的电路和添加梯形图 垂直线段或运算加速电路是加快实现梯形图功能的必要技术措施。其实,梯形图的解析沿水平方向的并行逻辑运算以一个块中最靠后的运算元件或 垂直线段位置为限,以后的水平连线不必再作运算。如果块内只有少数行连着长长的逻辑 元件,为加快运算速度梯形图解析程序可把余下的运算划入下一块运算。对一定的梯形图垂线分布是不变的,块内是否有垂线,是否要送梯形图垂直线段 或运算加速电路或是否要查表;块内同一列最长垂线的长度多少,寄存器的填入需要多长 时间,或运算和与运算之间是否需要等待和等待多长时间,块内运算到哪一列结束,梯形图 的解析程序在可编程控制器正式运行前就可知道,并体现在解析所得的循环扫描指令串 中。辅助继电器与输入元件Xru输出元件Yn不一样,一有它的结果需要随时刷新。对 梯形图中一个块内同时含有作为运算元件的Mn(为下面叙述方便把它记为Mnc)和作为输 出元件的Mn (把它记为Mno)的解析稍为复杂,原则是,当Mnc在Mno之上及同行,运算方法 与正常一样,一得Mno的结果,立即刷新位寻址区中的Mn ;当Mnc在Mno之下,若Mnc值参 与确定Mno值的运算,则运算方法与正常一样,并一得Mno的结果,立即刷新位寻址区中的 Mn。若Mnc值不参与确定Mno值的运算,则应把Mnc所在列之前一列的运算结果推入堆栈, 把这块Mnc所在列及其以后列在Mnc所在行与Mno所在行之间按无垂线行作分界线看成两 个小块,设置上一块的下行号,把下一块的上、下行号也推入堆栈。算出Mno,立即刷新位寻 址区中的Mn,弹出以前保存的逻辑值和下一小块上、下行号,继续作下一小块运算、输出。在这过程中又遇小块内同有新的运算元件M与输出元件M,方法同上。计数器的计数、定时器的计时、数据运算指令的实现等等的处理与已有的可编程 控制器处理方法相似。还有,梯形图中逻辑量的传递不能从右到左逆向进行(这是已有的规则)。

梯形图解析程序把实质性的操作放在循环扫描指令串内,把复杂的费时的判别、 地址计算等等辅助操作放弃在循环扫描指令串之外,这一点就象已有的可编程控制器的解 析方法。下面结合附图对本发明再作说明。

图1是可编程控制器梯形图的一个实例;图2是第一种梯形图垂直线段或运算加速电路的一个实施例中的一个片断;图3是第二种梯形图垂直线段或运算加速电路的一个实施例中的电路块产生第 三位输出的电路构成;图4是第二种梯形图垂直线段或运算加速电路的这个实施例中的同一电路块产 生块间逻辑1传递输出的电路构成。如图1,这是一个可编程控制器梯形图,采用本发明的多个逻辑变量并行处理方法 解析这个梯形图所得指令串(用文字表达)如下(首先Y’(上一次扫描的输出)、M(辅助继电器)、C(计数器)、T(定时器)等逻 辑变量值都存放或设置在寻址位区。)1输入所有X存放到寻址位区;2把第一块第一列元件状态逐个填入Rd ;3把第一块第二列元件状态逐个填入Rn2 ;4 执行 Rd = Rd 与 Rn2 运算;5把第一块第二列垂线信息以字形式填入Rnl ;
6执行Rd = Rd和Rnl的垂直线段或运算;7把第一块第三列元件状态逐个填入Rn2 ;8 执行 Rd = Rd 与 Rn2 运算;9把第一块第三列垂线信息以字形式填入Rnl ;10执行Rd = Rd和Rnl的垂直线段或运算;11把第一块第四列水平连线信息以字形式填入Rn2 ;12把第一块第四列元件状态逐个填入Rn2 ;13 执行 Rd = Rd 与 Rn2 运算;14把第一块第四列垂线信息以字形式填入Rnl ;15执行Rd = Rd和Rnl的垂直线段或运算;16把第一块第五列水平连线信息以字形式填入Rn2 ;17把第一块第五列元件状态逐个填入Rn2 ;18 执行 Rd = Rd 与 Rn2 运算;19把第一块第五列垂线信息以字形式填入Rnl ;20执行Rd = Rd和Rnl的垂直线段或运算;21把Rd的第一位送位寻址区中Yl暂存;
2 2把Rd的第二位(与第一行结果相同)逻辑或寻址区中Y2’ ;23把或的结果送寻址区中Y2暂存;24把Y1、Y2送实际输出端;(一个循环扫描的结尾处);25 跳转至 1。从这看出梯形图的块高度越接近最大值,逻辑量并行处理的优势就会越加明显。图2是第一种梯形图垂直线段或运算加速电路的一个片断,0R1、AND1、0R3、AND3、 0R5、AND5、0R7、AN7为一组,实现本位输出和逻辑量1的沿垂线信号向下传递;0R2、AND2、 0R4、AND4、0R6、AND6、0R8、AND8为另一组,实现本位输出和逻辑量1的沿垂线信号向上传 递。以上两组的输出由0R9、0R10、ORlU 0R12组成的一组或门合并,这组或门的输出就是 梯形图垂直线段或运算的结果。取典型一节解释,如或门0R5,它有两个输入,一个是本位的逻辑量输入13,另外 一个是上边相邻或门0R7的输出经与门AND7送入0R5的信号,与门AND7的另外两个输入 是本位的垂线信号L3和上位的垂线信号L4。或门0R5的输出分成两路,一路作为本位输出 03,另外一路送入下边的与门AND5。与门AND5的另外两个输入是本位的垂线信号L3和下 位的垂线信号L2,与门AND5的输出送入或门0R3。这种结构实现了本位输出和逻辑量1沿 垂线向下传递的功能。同样0R4、0R6、0R8、AND4、AND6实现了本位输出和逻辑量1沿垂线 向上传递的功能。0R10、ORlU 0R12把向上、向下传递的两组输出合并,成为完整的输出信 号02、03、04,这就是梯形图垂直线段或运算的结果。如果Ll = 0,L2 = 1,L3 = 1,L4 = 0,Il = 0,12 = 1,13 = 0,14 = 0,输入的逻 辑量1沿线传递,到无垂线时终止,输出为01 = 0,02 = 1,03 = 1,04 = O0如果Ll =0, L2 = 0, L3 = 1,L4 = 1,Il = 1,12 = 0,13 = 1,14 = 0,输入的逻辑量 1 沿线传递,到无 垂线时终止,输出为01 = 1,02 = 0,03 = 1,04 = 1。实现了梯形图垂直线段或运算功能。图3是第二种梯形图垂直线段或运算加速电路的一个实施例中的电路块产生第 三位输出的电路构成,它由3个与门和1个或门组成,13直接输出到或门ORl的第一个输入 端,I2、L2、L3经与门AND3相与后输到或门ORl的第二个输入端,I1、L1、L2、L3经与门AND2 相与后输到或门ORl的第三个输入端,CIN、L1、L2、L3经与门ANDl相与后输到或门ORl的 第三个输入端。或门ORl的输出端就是电路块第三位03的输出端。图中I表示梯形图逻 辑量,L表示垂线信号,CIN表示从相邻电路块传递过来的信号。本位的13可以直接输出; 邻位的12如果有垂线L2、L3就可传递给03 ;11如果有垂线Li、L2、L3也可传递给03 ;从 相邻电路块传递过来的CIN如果有垂线L1、L2、L3也可传递给03。从以上看出这个电路块 内部除本位输入可直接输出外,逻辑量1是并行、单向沿垂线传递的。图4是第二种梯形图垂直线段或运算加速电路的这个实施例中的电路块产生块 间逻辑1传递输出的电路构成,基本原理与图3相似,但需要注意的是每个与门的输入端都 有L4,就是说只有L4为1,或者说L4有垂线信号,才有可能产生块间逻辑1传递输出信号 COUT0本块的COUT与下一块的CIN相连。
权利要求
1.一种实现由微控制器或微处理器组成的可编程控制器梯形图功能的解释及编译方 法,其特征在于解析所得指令串的逻辑运算是多位逻辑变量运算。
2.一种由微控制器或微处理器组成的可编程控制器,其特征在于它以多位逻辑变量运 算的方法实施梯形图功能。
3.如权利要求1所述的解释及编译方法,其特征在于把可编程控制器梯形图分成若干 个块,每个块的深度小于或等于一个最大值,每次循环扫描,由上而下按块处理。
4.如权利要求2所述的由微控制器或微处理器组成的可编程控制器,其特征在于它含 有梯形图垂直线段或运算加速电路。
5.如权利要求2所述的由微控制器或微处理器组成的可编程控制器,其特征在于在微 控制器或微处理器内含有支持位变量在位寻址区与至少一个寄存器的任意位之间双向直 接传送的电路。
6.如权利要求1所述的解释及编译方法,其特征在于它在可编程控制器内建有梯形图 垂直线段或运算加速表。
7.如权利要求4所述的由微控制器或微处理器组成的可编程控制器,其特征在于它的 一种梯形图垂直线段或运算加速电路是由两组或门和与门、一组或门组成,一组或门和与 门的或门输入信号是垂线所在列的逻辑量输出信号,或门的输出一路传入与门,与门的输 出向上传给上位或门的输入端,与门的另外两个输入端为本位和上位的垂线信号,或门的 输出另一路作为一组或门的一个输入;另一组或门和与门的或门输入信号也是垂线所在列 的逻辑量输出信号,或门的输出一路传入与门,与门的输出向下传给下位或门的输入端,与 门的另外两个输入端为本位和下位的垂线信号,或门的输出另一路作为一组或门的另一个 输入,这组或门的输出就是梯形图垂直线段或运算加速电路的输出。
8.如权利要求4所述的由微控制器或微处理器组成的可编程控制器,其特征在于它的 另一种梯形图垂直线段或运算加速电路是按照逻辑1相邻传递的特点把整个电路分成若 干个块,块间有一边相邻块传递输入的信号和向另一边相邻块传递输出的信号,对典型的 一个电路块有若干个输入信号数行梯形图水平信号、同样行数的梯形图垂线信号、1个相 邻块传递过来信号;若干输出信号同样行数的垂直线段或运算输出信号、1个向另一边相 邻块传递输出的信号,电路块内部采用的是并行结构,包括逻辑1的单向传递也是并行的、 预传递的,用一组与门和一组或门构成,先与后或,再作适当变换,用这样的若干个电路块 构成本位的输出和逻辑1的由上向下的传递;另用这样的若干个电路块构成本位的输出和 逻辑1的由下向上的传递,这两组电路块的对应输出再相或就是垂直线段或运算的输出。
全文摘要
一种采用多个逻辑变量并行处理的可编程控制器,它充分利用微控制器或微处理器的字节、半字或字长的逻辑运算能力,把可编程控制器梯形图的逻辑关系解析成多个逻辑变量同时运算的关系,实施梯形图功能时,在机器内实行多位(多于一位)逻辑运算,实现多个逻辑变量并行处理;梯形图中垂直线段所表达的或运算需要微控制器或微处理器执行较多的程序指令,为加快梯形图垂直线段所表达的或运算,采取相应的软、硬件加速技术;为加快逻辑量传递,在微控制器或微处理器内添加支持位变量在位寻址区与至少一个寄存器的任意位之间双向直接传送的电路。因此,加快了可编程控制器梯形图的执行速度,提高了可编程控制器用于高速控制的能力。
文档编号G05B19/05GK102073296SQ201010622230
公开日2011年5月25日 申请日期2010年12月21日 优先权日2010年12月21日
发明者邵振翔 申请人:邵振翔
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1