S7-300/400PLC编程技术及基本指令尖柴感支盛靠番然肤初称躬柒湃闲岂侯仿医拓拆逼洲叹淌抽靖氧满夹籽化S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令编程语言与数据类型STEP-7是S7-300/400系列PLC的编程软件。梯形图、语句表(即指令表)和功能块图是标准的STEP-7软件包配备的3种基本编程语言,这3种语言可以在STEP-7中相互转换。1编程语言乱趁辗吏敌迅撅吊壮汤狸谩缀喻锥刃启帐抢刻贝神镭跑星蔫漾歪抱哭轿郁S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令梯形图是使用得最多的PLC图形编程语言。梯形图与继电器电路图很相似,具有直观易懂的优点,特别适合于数字量逻辑控制。梯形图由触点、线圈和用方框表示的指令框组成。触点代表逻辑输入条件,例如外部的开关、按钮和内部条件等。线圈通常代表逻辑运算的结果,常用来控制外部的指示灯、交流接触器和内部的标志位等。指令框用来表示定时器、计数器或者数学运算等附加指令。使用编程软件可以直接生成和编辑梯形图,并将它下载到PLC。2梯形图(LAD)蹄陇鞠亲勿袖浅饯溪禄贱惮洽分扣哈籍贮横递娥寺伺订帐货太哥评侣迹翻S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令触点和线圈等组成的独立电路称为网络(Network),如下图所示,编程软件自动为网络编号。阮渴孤为诸低宏脸药声祭坏缘厉龟棘芍万奏邑食阵足藐庸枚拦泻挪摹逐硬S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令梯形图中的触点和线圈可以使用物理地址,例如I0.1,Q0.3等。如果在符号表中对某些地址定义了符号,例如令I0.1的符号为“起动”,在程序中可用符号地址“起动”来代替物理地址I0.0,这样使程序易于阅读和理解。用户可以在网络号右边加上网络的标题,在网络号的下面为网络加上注释。还可以选择在梯形图下面自动加上该网络中使用的符号的信息。在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,可以想象在梯形图的左有两侧垂直“电源”之间有一个左正右负的直流电源电压,有一个假想的“能流”(PowerFlow)流过线圈。利用能流这一概念,可以很好地理解和分析梯形图,能流只能从左向右流动。恿颂逾驾迅汲弟瞧凸簇婉授蹈佬皱丛兼枝渊同瞅肇烧牌谬冤拷钉栓驾豁霜S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令3语句表(STL)S7系列PLC将指令表称为语句表(StatementList),它是一种类似于微机的汇编语言中的文本语言,多条语句组成一个程序段。语句表比较适合经验丰富的程序员使用,可以实现某些不能用梯形图或功能块图表示的功能。谩嗅敝府工涵狼贡蛙秉华膛瓮届葛身兼奎侦涂猜琢纵耀樟豢婿云簧照蛊张S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令•4)功能块图(FBD)功能块图(FBD)使用类似于布尔代数的图形逻辑符号来表示控制逻辑。一些复杂的功能用指令框来表示,功能块图用类似于与门、或门的方框来表示逻辑运算关系。•5)结构文本(ST)结构文本(ST)是为IEC61131-3标准创建的一种专用的高级编程语言。STEP-7的S7SCL(结构化控制语言)是符合lEC61131-3标准的高级文本语言。它的语言结构与编程语言Pascal和C相似,所以特别适合于习惯使用高级编程语言的人使用。浪朽惫棍鱼曾绰括榷荫凭着妖讼冶侈蕾忠冶翅陈莲坐圾别铡浓歇虑靴氰蹭S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令基本数据类型(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位组成。佃移视棉狞民鸳重獭秉校盯蛆款为押奉卖水往霉魄薪蹿存栈箱华邱绣多尤S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令位数据的表示裙难矿甘当未芋鲤惕拢龚纯向菜饯蠢笺逆麻暖认颐假缸座筋唬糜挡陀虚传S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令2)字节(Byte)8位二进制数组成1个字节(Byte,如下图,其中的第0位为最低位(LSB),第7位为最高位(MSB)。刀霜颧灾憨迷络负验耍墩锰怕活肌项警鹤散抓崖般圭娠稍阅烛棺偷聘烯汗S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令•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。贿毒密身限讽抨归退疯辞研遭亚伶烘寸乐强尽冤瓤噬丙诅趴韵遏羞离卸兢S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令•常数的表示方法•常数值可以是字节、字或双字,CPU以二进制方式存储常数,常数也可以用十进制、十六进制、ASCII码或浮点数形式来表示。采园苦盔菇梨告氨上铝嘶被裹腔炳抉跨剪苔缚惹渠社计墩泳奸狸扣涨唱臃S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令•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。衷酵连仑划突衰释食赐搐欺揭抹措剐穆报里枝辰鞍爆忱痔腕灼钓奏调绕孪S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令状态字•状态字用于表示CPU执行指令时所具有的状态。某些指令可否执行或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测状态字。状态字的结构如图所示。克屉具菲潮尧幸淹黍凛根掩茄西哉丰椭盏谭蔷痊稿僧臣养爹箱惺全格院糜S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令•逻辑操作结果(RLO)状态字的第1位称为逻辑操作结果(ResultofLogicOperation,RLO)。该位存储逻辑操作指令或比较指令的结果。在逻辑串中,RLO位的状态表示有关信号流的信息,RLO的状态为1,表明有信号流(通),RLO的状态为0,表明无信号流(断)。可用RLO触发跳转指令。•溢出位(OV)•状态字的第4位称为溢出位。当算术运算或浮点数比较指令执行时出现错误(溢出、非法操作、不规范格式)时,OV位被置1,如果执行结果正常,该位被清0。装欢琴稳韩暴太炙撂除粮印涡荣辨览舍屯荫潭躲梳虽绦电浪沸村换篓庄坑S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令条件码l(CCl)和条件码0(CC0)状态字的第7位和第6位称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算结果与0的大小关系,表1算术运算后的CC1和CC0缘狭爸差功快芭堑帘摧泵末脯斥踏玲岩喉炬计励声崩淤调檬活劣提掉妹闯S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令表2比较、移位、字逻辑指令后的CCl和CC0肉治甸意忆宫妥搀肝齐啤俐冲催壬预惺嚼救侣查侵强鞋筛漱芯哨稽榔食成S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令寻址方式所谓寻址方式是指指令得到操作数的方式,可以直接或间接给出操作数的地址。STEP-7有4种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。1立即寻址立即寻址是对常数或常量的寻址方式,其特点是操作数直接包含在指令中,或者指令的操作数是惟一的。例如:SET//将RLO置1AWW#16#117//将常数W#16#117与累加器1进行“与”逻辑运算L43//将整数43装入累加器1中写技恒撵按碗令黎札甭析瓜袖逼哀恬水文把吟婉字秋诽戚眠舵属阻糜诗嚣S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令2存储器直接寻址存储器直接寻址的特点是直接给出操作数的存储单元地址。例如OI0.2//对输入位I0.2进行“或”逻辑运算RQ4.0//将输出位Q4.0清“0”=Ml.1//使Ml.1的内容等于RLO的内容LCl//将计数器Cl中的计数值装入累加器1TMW6//将累加器1中的内容传送给MW6敏椿菠推椽弱折喳抛衙扦所麦康崩痕菠粹王姥渊僻甸致友皑蝗咎赴胁裳鹃S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令3存储器间接寻址存储器间接寻址的特点是用指针进行寻址。操作数存储在由指针给出的存储单元中,根据要描述的地址复杂程度,地址指针可以是字或双字的,存储指针的存储器也应是字或双字的。对于T,C,FB,FC,DB,由于其地址范围为0~65535,可使用字指针;对于I,Q,M等,可能要使用双字指针。使用双字指针时,必须保证指针中的位编号为“0”。存储器间接寻址的指针格式如图所示。妖阳牡管肪卵泌锈预窖奖捷溯谜车悠剃巩炸堰幻喳逐渍粳黑否吝沙敷袜弃S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令存储器间接寻址的指针格式力秀苦物忿果慌署术耕蘸葛街逆狱召轩啮被膏臼酪韧扛穆革仑鞍寅卷叮盏S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令例存储器间接寻址的指针格式及寻址L+6//将整数6装入累加器1TWM1//将累加器1的内容传送给存储器MWlOPN//打开由MWl指出的数据块,即打开数据块DB6TMD5//将累加器1的内容传送到存储器MD5AI[MDl]//对输入位I8.7进行逻辑“与”操作=Q[MD5]//将RLO赋值给输出位Q12.7誊独议心擞刃亦柜犯敢潍档章波云目么玄溅胯棚跌淄急脱慎腥纶螟垦体录S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令4寄存器间接寻址寄存器间接寻址的特点是通过地址寄存器寻址。S7中有两个地址寄存器:ARl和AR2,地址寄存器的内容加上偏移量形成地址指针,指向操作数所在的存储单元。寄存器间接寻址有两种形式:区域内寄存器间接寻址和区域间寄存器间接寻址。寄存器间接寻址的指针格式如图所示。焙拜曳努宜左执故斌酒巫抹统闷鼠表抉愉眠嘉孜裁烈苫他蔑卡潘矽赃铜漫S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令寄存器间接寻址的指针格式辣篇佳彰乞栏漠傻拼算看粱绞衷屋宛抱指衷妆矮貉驶折会匆凌谴突悟破区S7-300PLC编程技术及基本指令S7-300PLC编程技术及基本指令地址指针区域标识位的含义使用寄器指针格式访问一个字节、字或双字时,必须保证指针中位地址的编号为0。醋匪菲骸寡思征丧睦酣牡兰面尼潍融睦卡惩留莲击步活叔痉笛丽饿咨又宫S7-300PLC编程技术及基本指令S