您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > PLC教程理论篇之数据处理指令及标志值逻辑一
PLC教程理论篇之数据处理指令及标志值逻辑一一、数据处理指令简介数据处理指令很多,占PLC指令集的大部分。大都以双字、字、多字为单位操作。这些指令实在太多,只能择其主要者进行介绍。具体是:传送指令、比较指令、译码指令及各种运算与文字处理指令,等等。1.传送指令最简单、最常用的传送指令为把源地址的内容或某即时数传送到某目标地址。传送后,源地址内容不变。图9-1示的为三厂家传送梯形图及助记符指令。传送的数为0时,置其为1,不然置0。OMRONPLC的MOV指令名称前加@,即@MOV(021),三菱PLC的MOV指令后加P、即MOVP,则指令为微分执行。只在逻辑条件从OFF到ON那个扫描周期,指令执行一次。其它情况,指令不执行。OMRON新型PLC,MOV之后L,即MOVL,三菱PLCMOV之前加D,即DMOV,可实现双字传送。而且,这里的MOV前加字及后加字可同时进行。西门子PLCMOV-W为字传送,而MOV-B为字节传送,MOV-D为双字传送,MOV-R为实数传送。提示:从三家MOV指令的表示再次看出,同样是梯形图,不同厂家的指令表示是不相同的。所以,设计不同厂家PLC的程序,要看到这个差别。除了MOV,OMRON、三菱还有反相传送指令MNV(三菱为CML)指令,它与MOV不同的只是传送之前,先把要传的内容取反,然后再传。此外,还有其它多种传送指令。有:多字传送,也称块传送,或称成批传送指令,可把若干连续地址的内容分别传送给对应的连续的目标地址。只要设好要传的数据的起始地址,目标的起始地址及要传的字数就可以了。块设定,或称多点传送指令。它可把一个字的内容设定到指定的连续存储区中,只要指出该区的起始地址及末了地址。这个指令可很方便地用于对PLC的一些存储区进行初始化。字交换指令,可进行两个地址内容的交换。OMRON还有带偏移目标地址的传送指令DIST。可把源地址的内容传送给某基址加偏移地址后的地址。带偏移源地址的传送指令,COLL。可把某基址加偏移地址后的地址的内容传送到某个目标地址。这种传送也类似使用指针,较灵活。除了字、双字、多字传送,还有BCD码的位(digit)及16进制的位(Bit)传送,等等。这些指令给数据处理都提供了方便。2.比较指令常用的比较指令为一般CMP。执行它时,实现两个数的比较,并依据比较结果使相应的标志位置位。比较结果位有三个:EQ(等于),第一、第二比较数相等,OMRON以前机型是使特殊继电器255.06ON:LE(小、等于),第一个数小于第二个数,OMRON机以前机型是使特殊继电器250.07ON;GR(大、等于),第一个数大于第二个数,OMRON以前机型是使特殊继电器255.05ON。提示:OMRONPLC不仅使用比较指令会改变以上特殊继电器的状态。有的其它指令也会改变它。所以,在比较指令与取得比较结果之间,不能如图9-2那样,夹入指令B。因为执行指令B,有时可能改变在比较时得到的结果。那样,A得到的结果,就可能有误。图9-2不正确使用比较指令示意提示:由于编程软件的进步,比较结果的标志用的特殊继电器编号,可以不必记忆。可用P-EQ(相等)、P-LT(小于)及P-GT(大于)代替。三菱的一般比较指令的结果标志是由指令指定。其格式如下:—[CMPD1D2M1]这里方括号左边横线为执行本指令的逻辑条件。方括号中CMP为指令名称,D1为第一比较数,D2为第二比较数,M1(在此虽只指明M1)到M3为比较结果标志。当D1大于D2时,M1ON,其它OFF;当D1等于D2时,M2ON,其它OFF;当D1小于D2时,M3ON,其它OFF。三菱的CMP与MOV一样可加前、后缀D、P,实行双字比较或微分执行。西门子无一般比较指令,但有触点比较指令。可进行各种长度及不同数据类型的比较,其结果可当作为梯形图的逻辑条件使用。图9-3示的为使用西门子PLC比较指令的梯形图程序。图中除了常开触点I0.0及输出Q0.0外,全部为比较指令。从图知,要使Q0.0产生输出,其条件是:VB0(字节整数)要大或等于QB0(字节整数)或I0.0ON,同时VW7(字整数)等于VW4(字整数)或IB2(字节整数)大于或等于VB3(字节整数),同时VD56(双字浮点数)小于或等于VD12(双字浮点数),同时VB100(字符)等于VB10(字符)。OMRON新机型及三菱PLC也都有类似的触点比较指令。图9-4示的为使用三菱触点比较指令的梯形图程序。图中除了常开触点X002及输出Y000外,其它的为比较指令。从图知,要使Y000产生输出,其条件是:D1(字整数)要大于D2(字整数),同时X002ON,或D10(双字,这里大于号之前加D,为双字的含义)大于或等于D20(双字)。此外,OMRONPLC还有表比较指令,可把一个数与若干个数比较,那个数相等,则指定字中相应位ON。否则,OFF。块(范围)比较指令。它的比较表是16对数,列出被比较数的上下限。当这个比较数处于被比较数的某上下限之间(含上、下限本身),视同比较相等,可使指定字的相应位ON。否则,OFF。三菱PLC除了CMP指令,还有ZCP区域比较指令。格式如下:这里的S1、S2为区域的上、下范围界限(S2必须大于S1),S为比较值。D为比较结果为输出。如上,当计数器C30的现值小于100时,M3ON,M4、M5OFF;当计数器C30的现值大、等于100,而又小、等于120时,M4ON,M3、M5OFF;当计数器C30的现值大于120时,M5ON,M3、M4OFF。比较指令是很关键的。正如没有比较,人们无法思考问题一样,没有比较指令,PLC就不能进行逻辑判断,也没有什么智能可言。如在本教程第7讲图7-10程序中,增加计数器现值与常数1比较,并处理成:若等,则输出ON(启动);如不等,则输出OFF(停车),则可达到单按钮实现启、停控制的目的。再如在本教程第7讲图7-11程序中,增加计数器现值与一系列设定的时间值比较,并处理成:与要求的输出对应,也可实施图6-11程序的功能。比较指令与实时时钟配合,还可实现用时钟的时间对系统实施各种控制。等等。提示:比较指令对应操作数的格式应一致,否则无法得到预期的结果。提示:比较指令是实现逻辑判断的基本手段。正确理解与巧妙使用比较指令,是PLC程序设计的关键之一。3.译码指令用以译码,以适应数据使用或实现控制的需要。最常用的为BCD码与BIN二进制码转换用指令。BCD为二进制码转换成BCD码指令。BIN为BCD码转换二进制码指令。有的PLC还有可处理双字的BCD及BIN治令,可进行两字长转换。还有为4转16(DMPX、DECO)及16转4(MLPX、ENCO)的译码指令。4转16:此指令可用一个输入(源)数位(DIGIT,由4个BIT组成)的值,使一个16位二进制输出(目标)数中,与该值相等的位ON,其它位OFF。当使用数值去控制不同的输出时,常要使用到此指令。而多数PLC都提供有这个指令。图9-5为一组不同PLC使用4转16指令的梯形图程序。其作用都是用4个输入点(分别是0.00到0.03、I0.0到I0.3及X000到X003)组成的一个数位(DIGIT)的不同取值(16进制编码),去控制输出(分别为10.00到10.15、Q0.0到Q1.7及Y000到Y017)。如图程序,如输入(编码)值为6,则将使10.06、Q1.6(注意:西门子位在字中的排序与其它PLC不同,其升幂先是高字节的00位到07位,后为低字节的00到07位,故这里为Q1.6,而不是Q0.6)及Y006ON,而其它各位全OFF。再如输入(编码)值为11,则将使10.11、Q1.3(8进制计算)及Y013(8进制计算)ON,而其它各位全OFF。再如输入(编码)值为0,则将使10.00、Q0.0及Y000ON,而其它各位全OFF。有了这个程序,如用16位的拨码开关接输入点,则可很方便地用这个开关的不同设置,产生不同输出。如用增计数器作为这里的源,也可用计数值的变化,一步步改变输出。提示:如图b)所示,西门子S7-200的DECO指令的输入(IN)是字节,且其作用的仅它的低4位(如图,为I0.0到I0.3),输出是两个字节,16个位(BIT)。只要其EN端逻辑条件ON(图中SM0.0为常ON触点,故此条件满足),即执行本指令。而S7-300、400则没有这个指令。提示:如图c)所示,三菱的DECO指令,稍复杂,功能也稍强。如图,X000到X003,4个位(BIT),为源(S。、输入),Y000到Y017为目标(D。、输出),16个位(BIT)。只要执行它的逻辑条件ON(图中M8000为常ON触点,故此条件满足),即执行本指令。为什么这里输入为4位,输出为16位?这与常数(n)的取值为4有关。图9-6示的为三菱DECO指令n的取值及其含义示意。当目标(D)是“位”软元件时,n取值应小或等于8。输出多少位?是2的n次方。9-5C的n为4,故输出为16位,对应的输入为4位。如n为8,则可输出256位。图9-6n为3,故输出为8位,对应的输入为3位。该图输入X000、X001ON,X003OFF,其值为3,故M13ON,其它7位均OFF。当目标(D)是“字”软元件时,n取值应小或等于4。输出多少位?也是2的n次方。图9-6n为3,故输出为8位,对应的输入为3位。该图输入D0的低3位值为3,故D1的第3位ON,其它位,含高字节各位均OFF。提示:如图a)所示,OMRON的MLPX指令,更复杂,功能也更强。如图,000。00到000.03,4个位(BIT),为源(第1个操作数、S),010。00到010。15为目标(第3个操作数、R),16个位(BIT)。只要执行它的逻辑条件ON(图中P-ON为常ON触点,故此条件满足),即执行本指令。为什么这里输入为4位,输出为16位?这与#0(第2个操作数,控制字的取值)有关。图9-7示的为MLPX指令控制字(第2个操作数,C)的含义及应用实例。这里C有4个数位,其中数位0(n)指的是“源”字(S)中那个数位用作输入,数位1(l)指的是有多少数位用作输入。自然,输入数位多,输出也多(4对16)。如图所示,这里n=2,l=1(0时用一个数位,1用2个,余类推)。所以,如S中数位2的值为m,则R字中的m位ON。如S中数位3的值为p,则R+1字中的p位ON。控制字C的数位,这里为0。如数位3取值为1,将进行8到256的译码(老机型无此功能)。256为16个字组成的256个位(bit)。8为8个字节为一组,每组两数位16进制数,其值变化范围为00~FF,正好对应于256位(bit)的00~255位。8到256译码,本质上与4到16是相同的,只是它的通道长(位数)不是16,而是256,位(号),不是0~F,而是两位16进制数00~FF。但8到256最多只能进行两组,不像4到16可进行4组译码。图9-8示的为MLPX指令8到256应用实例。16转4:它与4转16相反,是把一个16位二进制输入(源)数中ON位的序号,作为一个输出(目标)数位(DIGIT,由4个BIT组成)的值。如前者有多个ON的位,则取其最大(对S-200相反,取其最小,OMRONCJ1等机可选定)的位。当需对不同的输出进行记录时,常要使用到此指令。而多数PLC都提供有这个指令。图9-9为一组不同PLC使用16转4指令的梯形图程序。其作用都是将16个触点(分别是10.00到10.15、Q0.0到Q1.7及Y000到Y017)的不同取值(16进制编码),译成一个数位(DIGIT)输出(分别为100.00到100.03、VB0.0到VB0.3及D0的低4位)。如图程序,如输入10.06、Q0.6及Y006ON,而其它各位全OFF,则将使100、D0字、VB0字节的低数位(数位0)的值将为6。如010.11、010.9、Q1.3、Q1.1及Y013、Y011ON,而其它各位全OFF,则将使100、D0字的低数位(数位0)的值将为11,而VB0字节的低数位(数位0)的值、将为9。有了这个程序,可很方便地把输出点的输出
本文标题:PLC教程理论篇之数据处理指令及标志值逻辑一
链接地址:https://www.777doc.com/doc-2887347 .html