第五章 S7-200 可PLC 可编程序控制器原理及应用.ppt
第五章S7-200可编程控制器的指令系统,第一节S7-200PLC编程的基本概念一、编程语言S7-200PLC有两种指令集IEC1131-3指令集和SIMATIC指令集;IEC1131-3指令集支持系统完全数据类型检查,只能用梯形图(LAD)和功能块图(FBD)编程语言,指令执行时间较长。,SIMATIC指令集西门子公司为S7-200PLC设计的编程语言,不支持系统完全数据类型检查,可以用梯形图(LAD)、功能块图(FBD)和语句表(STL)编程语言,且指令执行时间较短。(一)梯形图(LAD)编程语言LAD是与电气控制电路图相呼应的一种图形语言,其信号流向清楚、简单、直观、易懂,很适合电气工程人员使用;常作为第一用户语言。,(二)功能块图(FBD)FBD类似于普通逻辑功能图,一般用一种功能方框表示一种特定的功能,框内的符号表示该方框图的功能。(三)语句表(STL)STL是用助记符来表达PLC的各种控制功能,类似于计算机的汇编语言。二、数据类型(一)基本数据类型及数据类型检查,1.基本数据类型1位布尔型(BOOL)、8位字节型(BYTE)、16位无符号整数型(WORD)、16位有符号整数型(INT)、32位无符号双字整数型(DWORD)、32位有符号双字整数型(DINT)、32位实数型(REAL)。2.数据类型检查数据类型检查分为三级完全数据类型检查、简单数据类型检查和无数据类型检查。,S7-200PLC的SIMATIC指令集不支持完全数据类型检查;使用局部变量时,执行简单数据类型检查;使用全局变量时,指令操作数为地址而不是可选的数据类型时,执行无数据类型检查。(二)数据长度和数值范围数据长度用字节型(B)、字型(W)、双字型(D)分别表示8位、16位、32位数据;不同的数据长度对应的数据范围如表5-4所示,注意操作数的数据类型应该和指令标识符相匹配。三、存储器区域PLC的存储器分为程序区、系统区、数据区程序区存放用户程序,存储器为EEPROM系统区存放有关PLC配置结构的参数,存储器为EEPROM;,数据区是S7-200CPU提供的存储器的特定区域,将数据存储区作了进一步的分区,并为每个存储区域赋予了不同的功能,形成专用的存储单元。包括I、Q、V、M、S、SM、L、T、C、AI、AQ、AC、HC;存储器为EEPROM和RAM。(一)数据区存储器的地址表示格式位地址格式由存储器区域标识符、字节地址及位号构成例如V5.4,2.字节、字、双字地址格式由存储器区域标识符、数据长度以及该字节、字或双字的起始地址构成例VB100、VW100、VD100分别表示字节、字、双字的地址,3.其他地址格式包括T、C、AC、HC地址格式区域标示符和元件号egT24(二)数据区存储器区域,四、寻址方式S7-200PLC的寻址方式有立即寻址、直接寻址、间接寻址(一)立即寻址指令中直接给出操作数,即操作数紧跟在操作码后面,在取出指令的同时也取出了操作数;立即寻址常用来提供常数,设置初始值等;指令中常数表示形式十进制、十六进制、ASCII码或浮点数,(二)直接寻址-指令中直接给出操作数的地址的寻址方式例位寻址ANDQ5.5字节寻址ORBVB33,LB21字寻址MOVWAC0,AQW200双字寻址MOVDAC1,VD200(三)间接寻址-指令中给出了存放操作数地址的存储单元的地址的寻址方式建立指针,指针中存放存储器的某个地址,则以指针中内容值为地址就可进行间接寻址;注只能使用V、L、AC1、AC2、AC3作为指针,AC0不能用作间接寻址的指针例MOVD定时器分辨率(时基)1ms、10ms、100ms,其分辨率由定时器号决定。,与定时器相关的变量当前值定时器累计时间的当前值,存放在T的当前寄存器(16bit)中;定时器位当定时器当前值等于或大于设定值时,该定时器位被置为“1”。1.接通延时定时器(TON),2.有记忆接通延时定时器(TONR),3.断开延时定时器(TOF),应用定时器指令应注意几个问题(1)不能把一个定时器号同时用作断开延时定时器(TOF)和接通延时定时器(TON);(2)使用复位(R)指令对定时器复位后,定时器位为“0”,定时器当前值为0;(3)TONR只能通过复位指令进行复位操作;(4)对TOF需在输入端有一个负跳变(由on到off)的输入信号启动计时;,(5)不同分辨率的定时器,其当前的刷新周期时不同的。,例1闪烁电路采用I0.0外接灯泡电源开关SB1,Q0.0外接灯泡,控制灯泡的亮与灭,并且设定闪烁间隔时间为1秒。,例2延时通断电路I0.0接控制电路通断的按钮SB1,线圈Q0.0接输出驱动一个灯泡。,(二)计数器指令1.增计数器(CTU)指令,2.增/减计数器(CTUD)指令,3.减计数器(CTD)指令,例报警电路I0.0外接报警启动信号,I0.1外接报警复位信号,输出Q0.0为报警蜂鸣器,Q0.1为报警闪烁灯,闪烁效果为报警灯的亮与灭,时间间隔为1秒。,七、顺序控制继电器(SCR)指令常用于顺序控制中,SCR指令是基于顺序功能图(SFC)的一种编程方式;(一)SCR指令的功能-包括LSCR、SCRT、SCRELSCRn指令标记一个顺序控制继电器(SCR)程序断的开始;LSCR指令把S位的值装载到SCR堆栈和逻辑堆栈栈顶;其SCR堆栈的值决定该SCR段是否执行;其S位置位时,执行SCR段。,SCRT指令一方面使当前激活的SCR程序段的S位复位,从而使该SCR程序段停止工作;另一方面使下一个将要执行SCR程序段S位置位,以使下一个程序段工作;SCRE指令表示一个程序段的结束,每一个SCR程序段必须由SCRE指令结束。(二)使用SCR指令的限制同一地址的S位不可用于不同的程序分区;,在SCR段内不能使用JMP、LBL、FOR、NEXT、END指令,可以在SCR段外使用JMP、LBL、FOR、NEXT、END指令(三)SCR指令的编程举例根据舞台灯光效果的要求,控制红、绿、黄三色灯。要求红灯先亮,2s后绿灯亮,再过3s后黄灯亮。待红、绿、黄灯全亮3min后,全部熄灭。试用SCR指令设计其控制程序。,八、移位寄存器(SHRB)指令SHRB指令把输入端(DATA)的数值移入移位寄存器,并进行移位。其中移位寄存器由S-BIT和N决定,S-BIT指定移位寄存器的最低位,N指定移位寄存器的长度。,九、比较触点指令,第三节S7-200PLC的功能指令一、传送指令(一)数据传送指令,(二)数据块传送指令,(三)交换字节指令,(四)传送字节立即指令读、写指令,二、数学运算指令(一)四则运算指令1.加法指令,2.减法指令,3.乘法指令,加法、减法、乘法指令影响的特殊存储器位SM1.0(零)、SM1.1(溢出位)、SM1.2(负),4.除法指令,影响的特殊存储器位SM1.0(零)、SM1.1(溢出位)、SM1.2(负)、SM1.3(除数为0),5.加1和减1指令,影响的特殊存储器位SM1.0(零)、SM1.1(溢出位)、SM1.2(负)(二)数学功能指令,三、逻辑运算指令(一)逻辑“与”指令,(二)逻辑“或”指令,影响的特殊存储器位SM1.0(零)、SM1.1(溢出位)、SM1.2(负),(三)逻辑“异或”指令,(四)取反指令SM1.0(零),四、移位和循环移位指令(一)右移位指令,(二)左移位指令,右/左移位指令,对移位后的空位自动补零,SM1.1(溢出位)、SM1.0(零),(三)循环右移位指令,(四)循环左移指令SM1.0(零)、SM1.1(溢出位),五、数据转换指令(一)BCD码与整数的转换SM1.6(非法BCD码),(二)双字整数与实数的转换SM1.1(溢出位),(三)双字整数与整数的转换SM1.1(溢出位),(四)字节与整数的转换SM1.1(溢出位),(五)译码、编码指令,(六)段码(SEG)指令,(七)ASCII码与十六进制数的转换指令,影响的特殊标志位SM1.7(非法ASCII),(八)整数、双字整数、实数转为ASCII码指令,(1)整数转为ASCII码指令(ITA)指令中的格式操作数(FMT)指定ASCII字符串中分隔符的位置和表示方法。,输出缓冲区格式化的规则1)正值不带符号写入输出缓冲区;2)负值带负号写入输出缓冲区;3)对小数点左边的无效零进行删除处理;4)在缓冲区中数值采用右对齐。其转换结果存入以OUT为起始字节地址的8个连续字节的输出缓冲区中。,(2)双字整数转换为ASCII码指令(DTA)其格式操作数(FMT)的定义和输出缓冲区格式化的规则与ITA指令相同;转换结果存入OUT为起始字节地址的12个连续字节中。例指令格式操作数FMT=4(0100),则C=0,nnn=100,(3)实数转为ASCII码指令(RTA)其转换的结果存入以OUT为起始字节地址的(3-15)个连续字节中。,输出缓冲区格式化的规则1)ITA指令输出缓冲区格式化的4条规则都使用;2)转换前实数的小数部分的位数若大于nnn区的值,则用四舍五入的方法删去多余的小数部分;3)输出缓冲区的字节数必须不小于3,还要大于输入实数小数点右边的位数。,例FMT中SSSS0110,C0,nnn=001,六、表功能指令(一)填表、查表指令,(二)先进先出、后进先出指令,FIFO、LIFO指令影响的特殊存储器标志位SM1.5(表空),(三)存储器填充指令(FILL),七、程序控制指令(一)有条件结束(END)指令执行条件成立时,返回主程序起点;END用在无条件结束(MEND)指令之前;用户程序必须以MEND结束主程序;END不能在子程序或中断程序中使用。,(二)暂停(STOP)指令STOP指令能引起CPU工作方式发生变化,从RUN方式进入STOP方式,立即终止程序的执行。(三)监视定时器复位(WDR)指令,(四)跳转与标号指令,(五)循环指令(FOR,NEXT)FOR指令标记循环体的开始,NEXT指令标记循环体的结束,(六)子程序1.子程序调用指令、子程序返回指令,2.带参数调用子程序,八、中断指令(一)全局中断允许、全局中断禁止指令全局中断允许(ENI)指令全局地允许所有被连接地中断事件;全局中断禁止(DISI)指令全局地禁止处理所有地中断事件。(二)中断连接指令、中断分离指令中断连接(ATCH)指令用来建立某个中断事件(EVENT和某个中断程序(INT)之间的联系,并允许这个中断事件;,中断分离(DTCH)指令用来解除某个中断事件(EVENT)和某个中断程序之间的连接,并禁止该中断事件。(三)中断返回指令有条件中断返回(CRETI)指令根据控制的条件从中断程序中返回主程序;无条件中断返回指令RETI注所有的中断程序必须放在主程序的无条件结束指令之后,在中断程序中不能使用DISI、ENI、HDEF和END指令,(四)中断的分类通信口中断其串行通信口可由用户程序来控制,称为自由端口模式,用户定义波特率、每个字符位数、奇偶校验和通信协议;其中断事件号有8、9、23-26。I/O中断包含上升沿或下降沿中断(I0.0-I0.3)、高速计数器中断和脉冲串输出(PTO)中断;I/O中断事件号有0-7、12-20、27-333.时基中断包括定时中断和定时器T32/T96中断,(五)中断优先级通信中断(最高)I/O中断时基中断(最低),