您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 3_S7-300PLC的编程解析
S7-300/400PLC的编程技术刘美俊编程语言与数据类型STEP-7是S7-300/400系列PLC的编程软件。梯形图、语句表(即指令表)和功能块图是标准的STEP-7软件包配备的3种基本编程语言,这3种语言可以在STEP-7中相互转换。1编程语言1顺序功能图(SFC)这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序,STEP-7中的S7Graph顺序控制图形编程语言属于可选的软件包。在这种语言中,工艺过程被划分为若干个顺序出现的步,步中包含控制输出的动作,从一步到另一步的转换由转换条件控制。用Graph表达复杂的顺序控制过程非常清晰,用于编程及故障诊断更为有效,使PLC程序的结构更加易读,它特别适合于生产制造过程。S7Graph具有丰富的图形、窗口和缩放功能。系统化的结构和清晰的组织显示使S7Graph对于顺序过程的控制更加有效。梯形图是使用得最多的PLC图形编程语言。梯形图与继电器电路图很相似,具有直观易懂的优点,特别适合于数字量逻辑控制。梯形图由触点、线圈和用方框表示的指令框组成。触点代表逻辑输入条件,例如外部的开关、按钮和内部条件等。线圈通常代表逻辑运算的结果,常用来控制外部的指示灯、交流接触器和内部的标志位等。指令框用来表示定时器、计数器或者数学运算等附加指令。使用编程软件可以直接生成和编辑梯形图,并将它下载到PLC。2梯形图(LAD)触点和线圈等组成的独立电路称为网络(Network),如下图所示,编程软件自动为网络编号。梯形图中的触点和线圈可以使用物理地址,例如I0.1,Q0.3等。如果在符号表中对某些地址定义了符号,例如令I0.1的符号为“起动”,在程序中可用符号地址“起动”来代替物理地址I0.0,这样使程序易于阅读和理解。用户可以在网络号右边加上网络的标题,在网络号的下面为网络加上注释。还可以选择在梯形图下面自动加上该网络中使用的符号的信息。在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,可以想象在梯形图的左有两侧垂直“电源”之间有一个左正右负的直流电源电压,有一个假想的“能流”(PowerFlow)流过线圈。利用能流这一概念,可以很好地理解和分析梯形图,能流只能从左向右流动。3语句表(STL)S7系列PLC将指令表称为语句表(StatementList),它是一种类似于微机的汇编语言中的文本语言,多条语句组成一个程序段。语句表比较适合经验丰富的程序员使用,可以实现某些不能用梯形图或功能块图表示的功能。•4)功能块图(FBD)功能块图(FBD)使用类似于布尔代数的图形逻辑符号来表示控制逻辑。一些复杂的功能用指令框来表示,功能块图用类似于与门、或门的方框来表示逻辑运算关系。•5)结构文本(ST)结构文本(ST)是为IEC61131-3标准创建的一种专用的高级编程语言。STEP-7的S7SCL(结构化控制语言)是符合lEC61131-3标准的高级文本语言。它的语言结构与编程语言Pascal和C相似,所以特别适合于习惯使用高级编程语言的人使用。•6)S7HiGraph编程语言图形编程语言S7HiGraph属于可选软件包,它用状态图(StateGraphs)来描述异步、非顺序控制过程的编程语言。•7)S7CFC编程语言可选软件包CFC(ContinuousFunctionChart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能,包括从简单的逻辑操作到复杂的闭环和开环控制等领域。编程时将这些块复制到图中并用线连接起来即可。基本数据类型(1)基本数据类型;(2)用户通过组合基本数据类型生成的复合数据类型;(3)可用来定义传送FB(功能块)和FC(功能)参数的参数类型。下面介绍STEP7的基本数据类型:1)位(bit)位数据的数据类型为BOOL(布尔)型,在编程软件中BOOL变量的值1和0常用英语单词TURE(真)和FALSE(假)来表示。位存储单元的地址由字节地址和位地址组成,例如I3.2中的区域标示符“I”表示输入(Input),字节地址为3,位地址为2,如图所示。这种存取方式称为“字节.位”寻址方式。输入字节IB3(B是Byte的缩写)由I3.0~I3.7这8位组成。位数据的表示2)字节(Byte)8位二进制数组成1个字节(Byte,如下图,其中的第0位为最低位(LSB),第7位为最高位(MSB)。•3)字(Word)•相邻两个字节组成一个字,字用来表示无符号数。MWl00是由MB1OO和MB1O1组成的1个字,如图5.4.3,MB00为高位字节。MW100中的M为区域标示符,W表示字,100为字的起始字节MB1O0的地址。字的取值范围为W#16#0000~W#16#FFFF。•4)双字(DoubleWord)•两个字组成1个双字,双字用来表示无符号数。MD100是由MB100~MB103组成的1个双字,(见上图),MB100为高位宇节,D表示双字,100为双字的起始字节MB100的地址。双字的取值范围为DW#16#0000_0000~DW#16#FFFF_FFFF。•常数的表示方法•常数值可以是字节、字或双字,CPU以二进制方式存储常数,常数也可以用十进制、十六进制、ASCII码或浮点数形式来表示。•B#16#,W#16#,DW#16#分别用来表示十六进制字节、字和双字常数。2#用来表示二进制常数,例如2#1101_1010。L#为32位双整数常数,例如L#+5。P#为地址指针常数,例如P#M2.O是M2.0的地址。S5T#是16位S5时间常数,格式为S5T#aD_bH_cM_dS_eMS。其中a,b,c,d,e分别是日、小时、分、秒和毫秒的数值。输入时可以省掉下划线,例如S5T#4S30MS=4s30ms,S5T#2H15M30S=2小时15分30秒。•C#为计数器常数(BCD码),例如C#250。状态字•状态字用于表示CPU执行指令时所具有的状态。某些指令可否执行或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测状态字。状态字的结构如图所示。•逻辑操作结果(RLO)状态字的第1位称为逻辑操作结果(ResultofLogicOperation,RLO)。该位存储逻辑操作指令或比较指令的结果。在逻辑串中,RLO位的状态表示有关信号流的信息,RLO的状态为1,表明有信号流(通),RLO的状态为0,表明无信号流(断)。可用RLO触发跳转指令。•溢出位(OV)•状态字的第4位称为溢出位。当算术运算或浮点数比较指令执行时出现错误(溢出、非法操作、不规范格式)时,OV位被置1,如果执行结果正常,该位被清0。条件码l(CCl)和条件码0(CC0)状态字的第7位和第6位称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算结果与0的大小关系,表1算术运算后的CC1和CC0表2比较、移位、字逻辑指令后的CCl和CC0寻址方式所谓寻址方式是指指令得到操作数的方式,可以直接或间接给出操作数的地址。STEP-7有4种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。1立即寻址立即寻址是对常数或常量的寻址万式,其特点是操作数直接包含在指令中,或者指令的操作数是惟一的。例如:SET//将RLO置1AWW#16#117//将常数W#16#117与累加器1进行“与”逻辑运算L43//将整数43装入累加器1中2存储器直接寻址存储器直接寻址的特点是直接给出操作数的存储单元地址。例如OI0.2//对输入位I0.2进行“或”逻辑运算RQ4.0//将输出位Q4.0清“0”=Ml.1//使Ml.1的内容等于RLO的内容LCl//将计数器Cl中的计数值装入累加器1TMW6//将累加器1中的内容传送给MW63存储器间接寻址存储器间接寻址的特点是用指针进行寻址。操作数存储在由指针给出的存储单元中,根据要描述的地址复杂程度,地址指针可以是字或双字的,存储指针的存储器也应是字或双字的。对于T,C,FB,FC,DB,由于其地址范围为0~65535,可使用字指针;对于I,Q,M等,可能要使用双字指针。使用双字指针时,必须保证指针中的位编号为“0”。存储器间接寻址的指针格式如图所示。存储器间接寻址的指针格式例存储器间接寻址的指针格式及寻址L+6//将整数6装入累加器1TWM1//将累加器1的内容传送给存储器MWlOPN//打开由MWl指出的数据块,即打开数据块DB6TMD5//将累加器1的内容传送到存储器MD5AI[MDl]//对输入位I8.7进行逻辑“与”操作=Q[MD5]//将RLO赋值给输出位Q12.74寄存器间接寻址寄存器间接寻址的特点是通过地址寄存器寻址。S7中有两个地址寄存器:ARl和AR2,地址寄存器的内容加上偏移量形成地址指针,指向操作数所在的存储单元。寄存器间接寻址有两种形式:区域内寄存器间接寻址和区域司寄存器间接寻址。寄存器间接寻址的指针格式如图所示。寄存器间接寻址的指针格式地址指针区域标识位的含义使用寄器指针格式访问一个字节、字或双字时,必须保证指针中位地址的编号为0。下面是区间间接寻址的例子:LP#5.0//将间接寻址的指针装入累加器1LAR1//将累加器1中的内容送到地址寄存器1AM[AR1,P#2.3]//AR1中的P#5.0加偏移量P#2.3,实际上是对M7.3进行操作=Q[AR1,P#0.2]//逻辑运算结果送Q5.2LDBW[AR1,P#18.0]//将DBW23装入累加器1下面是区域间间接寻址的例子:LP#M6.0//将存储器位M6.0的双字指针装入累加器1LAR1//将累加器1中的内容送到地址寄存器1TW[AR1,P#50.0]//将累加器1的内容传送到存储器字MW56基本指令及其编程1、位逻辑指令位逻辑指令状态寄存器触点在S7-300/400PLC中,CPU中有一个专门用于存储指令执行状态的16位状态寄存器,状态寄存器以二进制位的形式保存指令的执行结果与中间状态等,在梯形图编程时,这些标志可以用触点的形式在梯形图中使用与编程,S7-300/400PLC可以使用的状态寄存器触点如下表所示。状态寄存器触点1、“与”(A)、“与非”(AN)A:“与”指令适用于单个常开触点串联,完成逻辑“与”运算。AN:“与非”指令适用于单个常闭触点串联,完成逻辑“与非”运算。“与”(A)、“与非”(AN)指令由图可知,触点串联指令也用于串联逻辑行的开始。CPU对逻辑行开始第1条语句如I1.0的扫描称为首次扫描。首次扫描的结果(I1.0的状态)被直接保存在RLO(逻辑操作结果位)中;在下一条语句,扫描触点Q5.3的状态,并将这次扫描的结果和RLO中保存的上一次结果相“与”产生的结果,再存入RLO中,如此依次进行。在逻辑串结束处的RLO可作进一步处理。如赋值给Q4.2(=Q4.2).2、“或”(O)、“或非”(ON)O:“或”指令适用于单个常开触点并联,完成逻辑“或”的运算。ON:“或非”指令适用于单个常闭触点并联,完成逻辑“或非”运算。“或”(O)、“或非”(ON)指令由图可知,触点并联指令也用于一个并联逻辑行的开始。CPU对逻辑行开始第1条语句如I4.0的扫描称为首次扫描。首次扫描的结果(I4.0的状态)被直接保存在RLO(逻辑操作结果位)中,并和下一条语句的扫描结果相“或”,产生新的结果再存入RLO中,如此一次进行。在逻辑串结束处的RLO可用作进一步处理,如赋值给Q8.0(=Q8.0).此外,还有“异或”(X)、“异或非”(XN)、嵌套指令等等。3、输出线圈输出线圈指令即逻辑串输出指令,又称赋值指令,该指令把RLO中的置赋给指定的位地址,当RLO变化时,相应位地址信号状态也变化,在LAD中,只能将输出指令放在触点电路的最右端,不能将输出指令单独放在一个空网络中。下图是两个应用举例。4、中间输出如图所示,中间输出指令被安置在逻辑串中间,用于将其前面的位逻辑操作结果(即本位置的RLO值)保存到指定地址,所以有时也称为“连接器”或“中间赋值元件”。它和其他元件串联时,“连接器”指令和触点一样插入
本文标题:3_S7-300PLC的编程解析
链接地址:https://www.777doc.com/doc-3263304 .html