首页 SIMATIC S7 PLC原理及应用第四章 西门子200(2)

SIMATIC S7 PLC原理及应用第四章 西门子200(2)

举报
开通vip

SIMATIC S7 PLC原理及应用第四章 西门子200(2)五.转换指令 数据转换指令的功能是对操作数的类型进行转换,可以完成各种数据类型之间的转换、字符串转换指令、编码和译码操作,还可产生七段码的输出。 1.数据类型转换指令 在进行数据处理时,不同性质的操作指令需要不同数据类型的操作数。数据类型转换指令的功能是当使能端有效时(EN=1),将数据IN端的数据类型按操作指令要求转换成相应的数据类型存放到OUT中。S7-200的数据转换指令共有9种,包含: 字节到整数的转换指令BTI(ByteToInteger); 整数到字节的转换指令ITB(IntegerToByte); 整...

SIMATIC S7 PLC原理及应用第四章 西门子200(2)
五.转换指令 数据转换指令的功能是对操作数的类型进行转换,可以完成各种数据类型之间的转换、字符串转换指令、编码和译码操作,还可产生七段码的输出。 1.数据类型转换指令 在进行数据处理时,不同性质的操作指令需要不同数据类型的操作数。数据类型转换指令的功能是当使能端有效时(EN=1),将数据IN端的数据类型按操作指令要求转换成相应的数据类型存放到OUT中。S7-200的数据转换指令共有9种,包含: 字节到整数的转换指令BTI(ByteToInteger); 整数到字节的转换指令ITB(IntegerToByte); 整数到双整数转换指令ITD(IntegerToDoubleinteger); 双整数到整数转换指令DTI(DoubleintegerToInteger); 实数到双整数转换指令(小数部分4舍5入)ROUND; 实数到双整数转换指令(小数部分舍去)TRUNC(Truncate); 双整数到实数转换指令DTR(DoubleintegerToReal); 整数到BCD码转换指令IBCD; BCD码到整数转换指令BCDI; 9种指令的具体格式介绍见表4-21所示 LAD 指令名称 方块上部的符号 STL指令 指令说明 字节与整数转换指令 B_I BTIIN,OUT 字节型数据IN转换为整型数据OUT I_B ITBIN,OUT 整数转换为字节,当IN超过字节表示范围(0~255),产生溢出 整数与双整数转换指令 I_D ITDIN,OUT 整型数据IN转换成双整型数据(包含符号)送到OUT D_I DTIIN,OUT 将32位整数IN转换成16位整数,当IN超过16位整数范围时,产生溢出。 双整数与实数转换指令 ROUND ROUNDIN,OUT 将实型IN中的小数部分进行4舍5入处理,转换成双整数型数据OUT TRUNC TRUNCIN,OUT 将实型IN中的小数部分舍去,转换成双整数型数据OUT DI_R DTRIN,OUT 将32位有符号整数IN转换成32位实数OUT 整数与BCD码转换指令 I_BCD IBCDOUT 将整型数据IN转换成BCD码,送到OUT。当输入数据IN超过BCD码的表示范围(0~9999),SM1.6置位 BCD_I BCDIOUT 将范围0~9999的BCD码IN转换成整数OUT。当IN超过BCD码的表示范围时SM1.6置位 在转换指令中影响的特殊继电器:SM1.1(溢出)或SM1.6(BCD错误)。 影响允许输出ENO正常工作的出错条件为:SM1.1(溢出)或SM1.6(BCD错误)、SM4.3(运行时间),0006(间接寻址)。 【例4-15】某现场测量中,采用计数器(C10)的计数值来存储长度值,实际测量中以英寸为单位,现在想把这个长度单位改为厘米,且需要把该长度的整数部分保存。 分析:1英寸=2.54厘米,故需要把C10的计数值乘以2.54,这是一个实数运算,需要先把整数(C10)转换成实数,再进行实数运算。这个乘积是一个实数,为了得到整数值,则需要进行实数到整数的转换。具体的执行过程如图4-44所示。图4-44数据转换指令编程举例 2.编码和译码指令 (1)编码指令ENCO(Encode) 编码指令的功能是对字型输入数据的最低有效位的位号进行编码后,送到输出字节的低4位,指令格式如图4-45所示。在梯形图中,编码指令以功能框的形式编程,指令名称为:ENCO。当允许输入EN有效时,将字型输入数据IN的最低有效位(值为1的位)的位号(00~15)进行编码,编码结果送到由OUT指定字节的低4位。影响允许输出ENO正常工作的出错条件为:SM4.3(运行时间)、0006(间接寻址)。图4-45编码指令 (2)译码指令DECO(Decode) 译码指令的功能是将字节型输入数据的低4位内容译成位号,并将输出字的该位置1,其余位置0,指令格式如图4-46所示。图4-46译码指令在梯形图中,译码指令以功能框的形式编程,指令的名称为:DECO。当允许输入EN有效时,将字节型输入数据IN的低4位的内容译成位号(00~15),且将由OUT指定字的该位置1,其余位置0。影响允许输出ENO正常工作的出错条件为:SM4.3(运行时间)、0006(间接寻址)。 【例4-16】:图4-47是一个编码指令的例子。为了只执行一次编码操作,EN端需受边沿触发指令控制,从运行结果可以看出VB0的值为3。图4-47编码指令举例 3.七段显示码指令SEG(Segment) 如果在PLC的输出端上接数码管,可应用七段显示码指令,将输入字节的低4位所对应的数据,直接显示在数码管上。当允许输入EN有效时,将字节型输入数据IN的低4位对应的七段显示码(0~F),输出到OUT指定的字节单元。如果该字节单元是输出继电器字节QB,则可直接驱动数码管。影响允许输出ENO正常工作的出错条件为:SM4.3(运行时间)、0006(间接寻址)图4-48七段显示码指令 4.字符串转换指令 字符串转换指令是将用标准字符编码(即ASCII码)表示的0~9、A~F的字符串,与十六进制、整数、双整数、及实数之间进行转换,共有5种字符串转换指令。 (1)ASCII码转换为十六进制数指令ATH(ASCIITOHEX) 指令格式如图4-49所示,可以看出,它有2个数据输入端及1个输出端: IN:开始字符的字节首地址 LEN:字符串长度,字节型,最大长度255 OUT:输出字节的首地址。当允许输入EN有效时,把从输入数据IN开始的长度为LEN的ASCII码,转换为十六进制数,并将结果送到首地址为OUT的字节存储单元。如果输入数据中有非法的ASCII字符,则终止转换操作,特殊继电器SM1.7置1。图4-49ASCII码转换为十六进制数指令 【例4-17】:图4-50是一个ASCII码转换为十六进制数指令编程的例子。当I0.0接通时,从VB10开始的连续3个单元的ASCII值为“3”、“5”、“8”(因为ASCII码“0”的存储值为16#30即2#00110000,所以2#00110011表示ASCII码“3”),转换为十六进制数(358X),其中X表示该位数据不受这个指令的影响。转换后的数据是从高位到低位依次存放到以VB20开始的连续单元中。图4-50ASCII码转换为十六进制数编程举例 (2)十六进制数转换为ASCII码指令HTA(HEXTOASCII) 指令格式如图4-49所示,可以看出,它有2个数据输入端及1个输出端: IN:十六进制数开始位的字节首地址 LEN:转换位数,字节型,最大长度255 OUT:输出字节的首地址。图4-51十六进制数转换为ASCII码指令当允许输入EN有效时,把从输入数据IN开始的长度为LEN位的十六进制数,转换成ASCII码,并将结果送到首地址为OUT的字节存储单元。如果输入数据中有非法的ASCII字符,则终止转换操作,特殊继电器SM1.7置1。 【例4-18】:图4-52是一个十六进制数转换为ASCII码指令编程的例子。当I0.0接通时,从VB100开始的连续2个单元的十六进制数(24、56)被转换成ASCII码,依次存放到以VB200开始的连续单元中。图4-52十六进制数转换为ASCII码举例 (3)整数转换为ASCII码指令ITA 指令格式如图4-53所示,,可以看出,它有2个数据输入端及1个输出端: IN:整数数据输入; FMT:转换精度或转换格式(小数位的表示方式),数据类型为字节; OUT:连续8个输出字节的首地址,数据类型为字节。图4-53整数转换为ASCII码指令 当允许输入EN有效时,把整数输入数据IN,根据FMT指定的转换精度,转换成始终是8个字符的ASCII码,并将结果送到首地址为OUT的8个连续字节存储单元。 FMT的定义如下:在FMT中,高4位必须是0,C为小数点的表示方式:C=0时,用小数点来分割整数和小数;C=1时,用逗号来分割整数和小数。nnn表示小数的位数,nnn=000~101,分别对应0~5个小数位,小数部分的对位方式为右对齐。 MSBLSB   0 0 0 0 C n n n   【例4-19】指令:ITAVW10,VB100,6。表明在FMT精度控制字中C=1,nnn=010时,即用逗号来分割整数和小数,将数据IN的后两位取做小数位,其它位作为整数位,在OUT(VB100)为首地址的字节中的表示方式如表4-22所示。 表4-22经FMT后的数据格式 VW10(IN) VB100 VB101 VB102 VB103 VB104 VB105 VB106 VB107 12 0 0 , 1 2 -123 - 0 1 , 2 3 1234 1 2 , 3 4 -12345 - 1 2 3 , 4 5 (4)双整数到ASCII码转换指令DTA 指令格式如图4-54所示,,可以看出,它有2个数据输入端及1个输出端: IN:双整数数据输入; FMT:转换精度或转换格式(与ITA指令完全相同); OUT:连续12个输出字节的首地址,数据类型为字节。当允许输入EN有效时,把双整数输入数据IN,根据FMT指定的转换精度,转换成始终是8个字符的ASCII码,并将结果送到首地址为OUT的12个连续字节存储单元图4-54双整数到ASCII码转换指令 【例4-20】指令:DTAVD0,VB10,4。表明在FMT精度控制字中C=0,nnn=100时,用小数点进行格式化处理的数据格式,在OUT中的表示方式如表4-23所示。表4-23DTA转换后的数据格式 VD0(IN) VB10 VB11 VB12 VB13 VB14 VB15 VB16 VB17 VB18 VB19 VB20 VB21 12 0 . 0 0 1 2 -123 - 0 . 0 1 2 3 1234 0 . 1 2 3 4 -1234567 - 1 2 3 . 4 5 6 7 (5)实数到ASCII码指令RTA 指令格式如图4-55所示,,可以看出,它有2个数据输入端及1个输出端: IN:实数数据输入 FMT:转换精度或转换格式(小数位的表示方式) OUT:连续3~15个输出字节的首地址。当允许输入EN有效时,把整数输入数据IN,根据FMT指定的转换精度,转换成始终是8个字符的ASCII码,并将结果送到首地址为OUT的8个连续字节存储单元。FMT的定义如下:在FMT中,高4位SSSS表示OUT为首地址的连续存储单元的字节数,SSSS=3~15。C为小数点的表示方式:C=0时,用小数点来分割整数和小数;C=1时,用逗号来分割整数和小数。nnn表示在首地址为OUT的连续字节中,小数的位数,nnn=000~101,小数部分的对位方式为右对齐。 MSBLSB  S S S S C n n n   【例4-21】指令:RTAVD0,VB10,2#01100010。表明在FMT精度控制字中在SSSS=0110(6个字节),C=0,nnn=010(小数两位),用小数点进行格式化处理的数据格式,在OUT中的表示方式如表4-24所示。 表4-24经RTA转换后的数据格式 VD0(IN) VB10 VB11 VB12 VB13 VB14 VB15 VB16 1234.5 1 2 3 4 . 5 0 0.0034 0 . 0 0 2.97 2 . 9 7 -3.6571 - 3 . 6 64.2.3应用及控制类指令 PLC的应用指令,或称功能指令,是指在完成基本逻辑控制,定时控制,顺序控制的基础上,PLC制造商为满足用户不断提出的一些特殊控制要求而开发的那些指令,主要包含程序控制类指令和特殊指令。 ·程序控制指令:包括结束及暂停指令,看门狗指令,跳转指令,子程序指令,循环指令,顺序控制器指令等。 ·特殊指令:包括时钟指令,中断指令,通信,高速计数器指令,高速脉冲输出指令,PID指令等。(一)结束指令END、MEND 结束指令的功能是结束主程序,注意它只能在主程序中使用,而不能在子程序或中断程序中使用。 END指令是条件结束指令,由结束条件、指令助记符(END)构成。结束指令根据先前逻辑条件终止用户程序,这样可利用END指令处理突发事件。 MEND是无条件结束指令。MEND指令用于程序的最后,无条件终止用户程序的执行,返回到主程序的第一条指令。STEP7-Mircro/WIN32软件自动在主程序结束添加了无条件结束语句。在编制主程序时,用户不用自己再在程序末尾添加结束指令(END)。 指令格式及应用见后面的图4-56所示。一.程序控制类指令 (二)暂停指令STOP 暂停指令的功能是将PLC主机CPU的工作方式由RUN切换到STOP方式,CPU在1.4s内终止PLC的运行。因此,STOP与END指令均能用于处理突发紧急事件。 STOP指令既可以在主程序中使用,也可以在子程序和中断程序中使用。如果在中断程序中执行STOP指令,则中断处理立即结束,并忽略所有挂起的中断,返回主程序执行到MEND后,将PLC切换到STOP方式。 暂停指令由暂停条件、指令助记符(STOP)构成。指令格式及应用见后面的图4-56所示。 (三)看门狗复位指令WDR(Watch_DogReset) 看门狗指令由看门狗条件、指令助记符WDR构成,其指令格式如后图4-56所示。 看门狗指令可以在没有监视程序错误的条件下增加CPU的扫描时间。有些程序的执行过程(如I/O更新)只有在一个扫描循环终止后才能进行,如果用户程序中使用了循环指令造成阻止扫描完成或过度地延迟扫描完成时间,而当前扫描时间不能满足这一要求时,可以考虑使用看门狗复位指令用以延长扫描时间,否则,下列程序的执行过程可能会被禁止。 除自由口通信外的通信;除立即I/O外的I/O刷新;强制刷新;特殊继电器的刷新;运行时间诊断;中断程序中的STOP指令。 【例4-22】END、STOP及WDR指令的应用如图4-56所示。分析:(1)当SM5.0(当有I/O错误时为ON)、SM4.3(当运行时,发现编程问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 时为ON)或I0.1(手动按钮)中的任意点接通时,PLC的CPU就会从RUN状态切换到STOP状态,PLC停止输出,即所有的输出显示灯立即熄灭;这时PLC的输入信号仍然有显示。(2)当手动接通I0.0(I0.0=1)时,CPU会因为条件满足结束本次扫描,去进行输出刷新,而不会执行其后的程序,即Q0.0保持I0.0接通前的状态,而不再受I0.4的控制(如先接通I0.0,再接通I0.4,这时Q0.0不会有输出);当断开I0.1时,END无效,这时Q0.0就受I0.4的控制。图4-56END、STOP及WDR指令 (四)跳转指令 跳转指令的功能是根据不同的逻辑条件,有选择地执行不同的程序。利用跳转指令,可使程序结构更加灵活,减少扫描时间,从而加快了系统的响应速度。 跳转指令JMP和LBL必须配合应用在同一个程序块中,即JMP和LBL可同时出现在主程序中,或者同时出现在子程序中,或者同时出现在中断程序中。不允许从主程序中跳转到子程序或中断程序,也不允许从某个子程序或中断程序中跳转到主程序或其它的子程序或中断程序。 执行跳转指令需要用两条指令配合使用,跳转开始指令JMPn和跳转标号指令LBLn,n是标号地址,n的取值范围是0~255的字型类型。 跳转指令可以使程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 跳转到具体的标号处。当跳转条件满足时,程序由JMP指令控制跳转到对应的标号地址n处向下执行(即跳过了JMPN和LBLn之间的程序);当跳转条件不满足时,顺序向下执行程序,即执行JMPN和LBLn之间的程序,指令的使用如图4-57所示。 图4-57的程序分析如下: 当I0.2断开时(I0.2=0),能执行到程序A和程序C,即输出Q0.0受I0.3的控制;当I0.2接通时(I0.2=1),能执行到程序B和程序C,即输出Q0.0受I0.4的控制。 从上述分析可以看出,输入点I0.2为一方式选择开关,通过它的通断来完成了一个2选1的控制。图4-57跳转指令的使用 【例4-23】:某生产线对产品进行加工处理,同时利用增减计数器对成品进行累计,每当检测到10个成品时,就要跳过某些控制程序,直接进入到小包装控制程序。每当检测到40个成品(4个小包装),直接进入到大包装控制程序。相关的控制程序如图4-58所示。 由图4-58可以看出,CO计数器为增减计数器,计数范围0~10,当等于10时,起动小包装程序(Q0.0接通),再次扫描到计数器C0时自复位,从0重新计数;C1计数器为递增计数器,CO为其计数脉冲端,计的是小包装个数,计数范围0~4,当等于4时,起动大包装程序(Q0.1接通),再次扫描到计数器C1时自复位,从0重新计数。 (五)子程序指令 S7-200PLC把程序主要分为三大类:主程序、子程序和中断程序。在实际应用中有些程序内容可能被反复使用,对那些需要经常执行的程序段,可设计成子程序的形式,并为每个子程序赋以不同的编号,在程序执行的过程中,可随时调用某个编号的子程序。 子程序的优点在于它可以用于对一个大的程序进行分段及分块,使起成为较小的更易管理的程序块。程序调试、程序检查和程序维护时,可充分利用这项优势。子程序只在需要时才被调用、执行。这样就可以更有效地使用PLC,充分利用CPU的时间。 1.子程序的建立 可以采用下列 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 创建子程序: ·在编辑环境的程序块中鼠标右键——插入子程序SBR_n。(n的范围为:0~63); ·从编辑菜单中,选择插入子程序SBR_n。 只要插入了子程序,程序编辑器底部就将出现一个新标签,标志新的子程序名。此时,可以对新的子程序编程。 2.为子程序定义参数 根据子程序有无参数,可以将子程序分为无参子程序和有参子程序,如果该子程序带有参数,就要使用该子程序的局部变量表来定义参数。S7-200为每个程序都安排了局部变量表,必须利用选定该子程序后出现的局部变量表为该子程序的局部变量,S7-200对其局部变量参数有以下规定: ·子程序在带参数调用时,最多可以带16个参数。每个参数包含变量名、变量类型和数据类型。这些参数在子程序的局部变量表中进行定义。 ·变量名由不超过8个字符的字母和数字组成,但第一个字符必须是字母。 ·变量类型:在子程序带参数调用时可以使用4种变量类型,根据数据传递的方向,依次安排这些变量类型在局部变量表中的位置,包含: IN类型(传入子程序型); IN/OUT类型(传入/传出子程序型,调用子程序时,将指定地址的参数传入子程序,子程序执行结束时,将得到的结果值返回达到同一个地址); OUT类型(传出子程序型); TEMP类型(暂时型,用于在子程序内部暂时存储数据,不能用来与主程序传递参数数据)。 ·变量的数据类型,可以是: 布尔能流型(BOOL):该数据类型仅对位输入操作有效,它是位逻辑运算的结果。对能流输入类型的数据,要安排在局部变量表的最前面; 布尔型(BOOL):该数据类型用于单独的位输入和位输出。 字节型(BYTE)、字型(WORD)、双字型(DWORD):该数据类型分别用于说明1个字节、2个字节和4个字节的无符号的输入参数或输出参数。 整数(INT)和双整数型(DINT):该数据类型分别用于说明2个字节和4个字节的有符号的输入参数或输出参数。 实数型(REAL):该数据类型用于说明IEEE标准的32位浮点输入参数或输出参数。 【例4-24】:SBR1主程序是一个含有4个输入参数、1个输入/输出参数、1个输出参数的带参数的子程序。在创建这个主程序时,首先要打开这个主程序的“SIMATICLAD”(局部变量表)。在局部变量表中,为这6个参数赋予名称(如IN1、IN2、IN3、IN4、INOUT、OUT),选顶变量类型(IN或者IN_OUT或者OUT),并赋予正确的数据类型(如BOOL、BYTE、BOOL、WORD、DWORD、WORD),见表4-25。表4-25局部变量表注:第一完局部变量表,这时再调用SBR0时,这个子程序自然就带参数了。表中局部变量一项(L区)参数是自动形成的,不需用户填写。 地址 名称 变量类型 数据类型 地址 名称 变量类型 数据类型 L0.0 IN1 IN BOOL LW3 IN4 IN WORD LB1 IN2 IN BYTE LW5 INOUT IN_OUT DWORD L2.0 IN3 IN BOOL LW9 OUT OUT WORD 3.子程序调用指令和返回指令 子程序调用指令CALL的功能是将程序执行转移到编号为n的子程序。 子程序的入口用指令SBRn表示,在子程序执行过程中,子程序将执行全部指令直至满足返回条件而返回,或者执行到子程序末尾而返回。当子程序返回时,返回到原主程序出口的下一条指令执行,继续向下扫描程序。 在梯形图中,子程序调用指令以功能框形式编程,子程序返回指令以线圈形式编程,如图4-59所示,其中调用指令:CALLSBR_1,也可写成:CALL1。图4-59子程序调用及返回指令 4.子程序编程步骤 ·建立子程序(SBR_n); ·在子程序(SBR_n)中编写应用程序,如果子程序带有参数,应首先在子程序中填写局部变量表,然后再编写应用程序; ·在主程序或其他子程序中编写调用子程序(SBR_n)指令。 5.注意事项 1)程序内一共可有64个子程序,允许子程序嵌套调用(在子程序内放置子程序的调用指令),嵌套深度最多为8重。 2)S7-200不允许直接递归调用(例如,不能在SBR0中调用SBR0),但允许间接递归。3)各子程序的参数最大限制是16个,如果要下载的程序超过此限制,将返回错误。 4)用Micro/WIN32软件编程时,编程人员不用手工输入RET指令,而是由软件自动加在每个子程序的结束处,在子程序中不能使用END指令。 【例4-25】:图4-60是一个带有6个参数的子程序调用。在这个例子中,在建立SBR1时,要首先填写局部变量表,见表4-25。 在使用语句表编程时,要注意CALL指令的第一个参数是子程序标号,接着是有关参数,其中参数的顺序和局部变量表中参数填写的顺序完全相同,先输入,后输入/输出,最后是输出。图4-60带参数的子程序调用 【例4-26】:采用子程序的形式来控制一台交流电动机的启/停控制,系统的I/O分配为: 电机启动按钮(常开):I0.0;停止按钮(常开);I0.1;电机电源接触器:Q0.0 编程步骤: (1)采用子程序编写电机的启/停控制,则该子程序一定带有参数,且需要2个输入参数,1个输出参数。所以建立子程序SBR0后,应先填写局部变量表,见表4-26。 地址 名称 变量类型 数据类型 L0.0 Start IN BOOL L0.1 Stop IN BOOL L2.0 Motor OUT BOOL 填写完局部变量表后,就可以编写应用程序,应采用名称作为指令的操作数。 在主程序中应一直(采用常闭点SM0.0)调用子程序SBR0。具体的子程序及主程序如图4-61所示。图4-61子程序编程举例 (六)循环指令 在需要对某个程序段重复执行一定次数时,可采用循环程序结构。循环指令由循环开始指令FOR和循环结束指令NEXT组成,即对FOR与NEXT之间的指令重复执行一定次数,指令格式如图4-62所示。图4-62循环指令 循环开始指令FOR的功能是标记循环体的开始,它有3个输入端: INDX:存放当前循环计数值的单元地址,数据类型为:WORD; INIT:循环初值 FINAL:循环终值 循环结束指令NEXT的功能是标记循环体的结束。 FOR和NEXT必须成对使用,在FOR和NEXT之间构成循环体。当允许输入EN有效时,执行循环体,首先将循环初值(INIT)装入INDX,然后每执行1次循环体,INDX自动加1,并且与终值相比较,如果INDX大于FINAL,循环结束。 在S7-200中,循环指令允许嵌套使用,最大嵌套深度为8重。 【例4-27】:用循环指令完成S=1+2+3+…+100,并将求和结果放在VW100中。 分析:这是一个典型的累加求和问题:S=S+i(S放在VW100,i放在VW10),首先要初始化(对两单元清零)。然后作循环结构和循环体,累加求和的循环体要做两件事:i++和S=S+i。具体的程序如图4-63所示图4-63循环程序应用举例 (七)顺序控制继电器SCR(SequenceControlRelay)指令 对于一个复杂的控制系统,尤其是顺序控制程序,由于内部的连锁、互动关系极其复杂,用梯形图或语句表方式编写通常要由熟练的电气工程师才能编制,这样的程序如果不加注释,其程序的可读性会大大降低,也为调试、试运行带来困难。 近年来,许多PLC增加了顺序控制指令,用于编制复杂的顺序控制程序,利用这种方法,使初学者也很容易编写复杂的顺序控制程序。这种方法也为调试、运行带来许多难以言传的方便。 S7-200CPU含有256个顺序控制继电器(S0.0~S31.7)用于顺序控制,在顺序控制或步进控制中,常常将控制过程分成若干个顺序控制继电器(SCR)段,一个SCR段有时也称为一个控制功能步,简称步。每个SCR都是一个相对稳定的状态,都有段开始,段结束,段转移。在S7-200中,有3条简单的SCR指令与之对应。 1.顺序控制指令 1)段开始指令LSCR(LoadSequenceControlRelay) 段开始指令的功能是标记一个SCR段(或一个步)的开始,其操作数是状态继电器Sx.y(范围为:S0.0~S31.7),Sx.y是当前SCR段的标志位,当Sx.y为1时,允许该SCR段工作。 2)段转移指令SCRT(SequenceControlRelayTransition) 段转移指令的功能是将当前的SCR段切换到下一个SCR段,其操作数是下一个SCR段的标志位Sx.y(如S0.1)。当允许输入有效时,进行切换,即停止当前SCR段工作(复位),启动下一个SCR段工作(置位)。 3)段结束指令SCRE(SequeceControlRelay End) 段结束指令的功能是标记一个SCR段(或一个步)的结束。段结束指令和段开始指令必须成对出现,否则无法下载程序。 顺序控制指令的格式如图4-64所示图4-64顺序控制指令 2.SCR指令的特点 ①SCR指令的操作数(或编程元件)只能是状态继电器Sx.y;反之,状态继电器S可应用的指令并不仅限于SCR,它还可以应用LD、LNN、A、AN、O、ON、=、S、R等指令。 ②1个状态继电器Sx.y作为SCR段标志位,可以用于主程序、子程序或者中断程序中,但是只能使用1次,不能重复使用。 ③在一个SCR段中,禁止使用循环指令FOR/NEXT、跳转指令JMP/LBL和条件结束指令END。 3.状态转移图 状态转移图是用状态继电器(即S继电器)代表工程中的工序,一个工序的任务就是一个状态的控制过程(即一步)。确定每步的启动条件和转换条件。每个独立的步分别用方框表示,根据动作顺序用箭头将各个方框连接起来,在相邻的两步之间用短横线表示转换条件。在每步的右边画上要执行的控制程序。一个工序的完成就意味着一个状态的结束,另一状态的开始。 在大中型PLC中,可直接使用S7-GRAPH语言处理比较复杂的顺序控制或步进控制问题。而在小型PLC的程序设计中,对于大量遇到的顺序控制或步进控制问题,如果能采用状态流程图的设计方法,再使用步进指令将很容易地转化成梯形图程序,就可完成比较复杂的顺序控制或步进控制任务 【例4-27】:图4-65是一个单一流程状态转移图转化成梯形图的例子。系统初始进入S0.0,当S0.0=1时,系统进入S0.0段,在这一程序段中,使Q0.1输出1,使Q0.2置位。当I0.1=1时,状态由S0.0转为S0.1(S0.0先复位,S0.1再置位)。 注意: (1)用OUT指令输出只能在本程序段内保持(即只在本工序有输出),为了能在段外也有输出,应该使用置位指令S,但一定要有复位指令R配合使用。 (2)段内输出一般直接用常开点(SM0.0)控制,不再设置其它条件,否则即使进入该步也不会有输出。 (3)是段转移指令使本步复位,而不是段结束指令。所以应该注意各语句的先后位置,应该是:段开始,段输出,段转移,段结束。 (4)状态转移图可以转化成梯形图程序,也可以直接写成语句表程序,梯形图程序需要画到6个网络里,而语句表程序都写到1个网络里也能编辑运行。所以建议直接转化成语句表来编辑运行,会减少大量的输入、调试时间。 4.多流程顺序控制的步进指令编程方法 在顺序控制中,任何复杂的控制流程都可以分解为以下几种基本组合形式。 (1)单一流程编程方法 单一流程由一系列相继执行的工步组成。每一工步的后面只能接一个转移条件;而每一转移条件之后仅有一个工步,其结构及转化成梯形图及语句表的方法如图4-65所示,分析见例4-27。 (2)选择分支结构 从多个分支流程中选择某一个分支,称为选择份子,同一时刻只允许选择一个分支。如图4-66a示例,若S1.0动作时,一旦I0.1接通,动作状态就向S1.1转移,则S1.0变为0状态;此后即使I0.0闭合,S2.0也不动作。分支结束称为汇合,任一分支流程结束时的转移条件成立(I0.2或I0.4接通),均可转移到汇合状态S1.3。图4-66选择分支结构编程方法 在将选择分支转化成梯形图及语句表时应注意以下几点: ·各个程序段中的操作应根据实际工程要求去编辑,在梯形图中应处在各段的段开始(LSCR)和段转移(SCRT)之间,用常开点(SM0.0)控制。本图中省略了这方面的编程内容。 ·该种结构最需注意的是选择分支开始的梯形图转化,当S1.0动作时,下一步有可能转移到S1.1或S2.0,所以在S1.0段编程时,要有两个段转移指令,然后才是段结束指令。 ·多个选择分支应按着从左到右的顺序转化为梯形图,当左边支路按着顺序结构转化方法编辑完成后,才转化右边支路。 ·将每个支路的结束段(S1.2和S2.0)的段转移(SCRT)的目标段都指向汇合处(S1.3),则完成了选择结构汇合点的转化。 (3)并行分支的开始与汇合:满足某个条件后导致几个分支同时动作,称为并行分支。如图4-67a示例中,若S1.0动作时,I0.1一接通,S1.1和S1.4就同时接通,并按各自分支的条件向下转移,待各分支流程的动作全部结束时,若I0.3接通,汇合状态S2.0动作,同时将S1.2和S1.6全部复位。为了强调转移的同步实现,分支开始和汇合处的水平连线用双线表示。各个程序段中的操作应根据实际工程要求去编辑,本图中省略了这方面的编程内容。图4-67并行结构编程方法 在将并行结构转化成梯形图及语句表时应注意以下几点: ·首先需要注意的是并行分支的开始的转化,在S1.0程序段当I0.1接通,同时激活S1.1和S1.4,如图4-67d的第一个*所示。 ·如果系统有n条并行支路,在前n-1条支路的结束段不要使用段转移指令使该段复位,但要有段结束指令(格式需要),如图4-67d的第二个*所示。 ·并行分支结束要求必须保证全部并行支路均已完成,且并行结束条件接通(I0.3=1),才能使各并行支路结束段同时复位,同时置位并行汇集段(采用R、S指令)。如图4-67的第三个*所示。 (4)跳转与循环:跳转与循环是选择分支的一种特殊形式。图4-68a的示例中,在S1.0动作时,若转移条件I0.3接通,将跳过S1.1去执行S1.2,这种情况为正向跳转;当顺序执行完S1.2和S1.3后,I0.4仍未闭合,将返回去再执行S1.2和S1.3,直到I0.4闭合后,才转向下一步S1.4,这时为逆向跳转。S1.4完成后,若I0.5闭合,将转移到初始步S1.0,开始新一个工作循环。 由图4-68可以看出,将跳转与循环结构的状态转移图转化为梯形图是非常简单的,是单一流程和选择分支的组合,其中正跳转、逆跳转及循环的转化方法如图4-68b的标注处 【例4-28】步进控制指令应用举例 控制要求: 控制3台电动机M1(Q0.0)、M2(Q0.1)、M3(Q0.2)的启动/停止,要求依次延时顺序启动/逆序停止3台电动机,即按下启动按钮(I0.0)后,M1立即启动,延时3s启动M2,再延时4s启动M3;按下停止按钮(I0.2)后,M3立即停止,延时4s停止M2,再延时4s停止M3。 如果在启动的过程中,想终止启动过程,按下停止按钮,也要求逆序停车。例如在M1、M2已经起动,M3还没启动时,按下停止按钮,则终止启动过程,并立即停止M2,延时3s停止M1。 分析: (1)系统要求延时起动,延时停车,所以必须在步进控制中用到延时,为了节省系统资源及便于调试、监控,可以将相同设定值的延时段采用一个定时器来完成,即只用两个定时器(T37为3s定时器,T38为4s定时器); (2)PLC运行初试(SM0.1=1),应使第一步(初始化步)置位,其它系统工作步复位。目的是即使中途切断程序的运行(断电、PLC停止运行),下次再运行时,仍然能保证系统能从头开始工作; (3)由于允许在启动过程中终止启动过程,并要求逆序停车,所以系统的状态流程图应含有跳转结构。由于系统停车后必须回到初试状态,准备下次启动,所以应包含循环部分。根据控制要求绘制的步进控制状态流程图如图4-69a所示; (4)由于将延时时间相同的时间段采用一个定时器来控制,所以在将状态转移图转化成梯形图或语句表时,必须使定时器在段外编程(可以放置在程序的结尾处),将所有启用该定时器的段(状态继电器S)并联后来控制定时器的运行。对应的语句表见图4-69b。图4-69步进控制应用举例二.特殊指令 每个PLC制造厂家在生产PLC的过程中,都要有意识地增加一些特殊的硬件,以实现某些特殊的功能,就可能使某些比较复杂的控制任务的程序编制变得简单容易。 在S7-200中,涉及到的特殊功能有:实时时钟的设定和读取,中断处理,通信(在第八章详细介绍),高速计数,高速脉冲输出,PID控制等。 (一)实时时钟指令 S7-200PLC增加了时钟功能。其中CPU221和CPU222都有可以安装(也可以不装),和都有内置时钟利用实时时钟指令可以方便地读取实时时钟的时间,也可以设定实时时钟的时间。S7-200PLC为实时时钟开辟了一个8个字节的时钟缓冲区存放当前的日期和时间数据,在PLC控制系统运行期间,可通过读实时时钟指令进行运行监视,或者作运行记录。 1.设定实时时钟指令TODW(TimeofDayWrite) 设定实时时钟指令的格式如图4-70a)所示,其中输入端T为8个字节时钟缓冲区的起始地址,数据类型为字节型。设定实时时钟指令的功能是将正确的日期和时间数据写入到以T为首地址的连续8个字节的时钟缓冲区。时钟缓冲区的格式如表4-27所示。在星期几的范围中,01~07分别代表星期日、星期一、…、星期六。表4-27时钟缓冲区的格式 字节 T T+1 T+2 T+3 T+4 T+5 T+6 T+7 含义 年 月 日 小时 分 秒 0 星期几 范围 00~99 00~12 00~31 00~23 00~59 00~59 0 01~07 2.读实时时钟指令TODR(TimeofDayRead) 设定实时时钟指令的格式如图4-70b)所示,输入端T为时钟缓冲区的首地址。读实时时钟指令的功能是,当允许输入EN有效时,系统读当前的日期和时间,并将其装入一个首地址为T的8个字节缓冲区。T为字节型数据。影响实时时钟指令允许输出ENO正常工作的出错条件:SM4.3(运行时间),0006(间接寻址),000C(PLC没有安装时钟卡)。图4-70实时时钟指令 (二)中断指令 在计算机控制中,对于那些可考虑的不定期产生的急需处理事件,常常通过采用中断处理技术来完成,当CPU响应中断请求后,会暂时停止当前正在执行的程序,进行现场保护,在将累加器、逻辑堆栈、寄存器及特殊继电器的状态和数据保存起来后,转到相应的中断服务程序中去处理。一旦处理结束,立即恢复现场,将保存起来的现场数据和状态重新装入,返回到原程序继续执行。这种工作方式就叫中断方式。 在启动中断程序之前,必须使中断事件与发生此事件时希望执行的程序段(中断程序INTn)建立联系,使用中断连接指令(ATCH)。将中断事件连接于中断程序时,该中断自动被启动。 使用中断分离指令(DTCH)可删除中断事件与中断程序之间的联系因而关闭耽搁中断事件。 在S7-200中,可以引发的中断事件总共有5大类34项,每个中断事件分配不同的编号,编号范围:0~34。其中输入信号引发的中断事件有8项,通信口引发的中断事件有6项,定时器引发的中断事件有4项,高速计数器引发的中断事件有14项,脉冲指令引起的中断事件有2项,见表4-28。 事件号 中断事件描述 CPU221 CPU222 CPU224 CPU226 0 I0.0上升沿中断 Y Y Y Y 1 I0.0下降沿中断 Y Y Y Y 2 T0.1上升沿中断 Y Y Y Y 3 I0.1下降沿中断 Y Y Y Y 4 I0.2上升沿中断 Y Y Y Y 5 I0.2下降沿中断 Y Y Y Y 6 I0.3上升沿中断 Y Y Y Y 7 I0.3下降沿中断 Y Y Y Y 8 通信口0:接收字符 Y Y Y Y 9 通信口0:发送字符完成 Y Y Y Y 10 定时中断0,SMB34存放定时间隔,5~255s Y Y Y Y 11 定时中断1,SMB35存放定时间隔,5~255s Y Y Y Y 12 高速计数器0:CV=PV(当前值=设定值) Y Y Y Y 13 高速计数器1:CV=PV(当前值=设定值) Y Y 14 高速计数器1:输入方向改变 Y Y 15 高速计数器1:外部复位 Y Y 16 高速计数器2:CV=PV(当前值=设定值) Y Y 17 高速计数器2:输入方向改变 Y Y 18 高速计数器2:外部复位 Y Y 19 PTO0脉冲串输出完成中断 Y Y Y Y 20 PTO1脉冲串输出完成中断 Y Y Y Y 21 定时器T32CT=PT中断 Y Y Y Y 22 定时器T96CT=PT中断 Y Y Y Y 23 通信口0:接收信息完成 Y Y Y Y 24 通信口1:接收信息完成 Y Y 25 通信口1:接收字符 Y Y 26 通信口1:发送字符完成 Y Y 27 高速计数器0:输入方向改变 Y Y Y Y 28 高速计数器0:外部复位 Y Y Y Y 29 高速计数器4:CV=PV(当前值=设定值) Y Y Y Y 30 高速计数器4:输入方向改变 Y Y Y Y 31 高速计数器4:外部复位 Y Y Y Y 32 高速计数器3:CV=PV(当前值=设定值) Y Y Y Y 33 高速计数器5:CV=PV(当前值=设定值) Y Y Y Y 1.中断调用指令 (1)开中断指令ENI(EnableInterrupt)和关中断指令DISI(DisableInterrupt) ①开中断指令的功能是全局地启动全部中断事件,一旦进入运行模式,就允许CPU接收所有中断事件的中断请求,并执行各个已经激活的中断事件。 ②关中断指令的功能是全局地关闭所有中断事件,禁止CPU接收各个中断事件的中断请求。 开/关中断指令格式如图4-71所示。图4-71开/关中断指令当CPU进入RUN状态时,禁止中断,但是可以通过执行开中断指令ENI,全面开放中断。当CPU执行关中断指令DISI后,中断队列仍会产生,但是不执行中断程序。 (2)中断连接指令ATCH(Attach) 中断连接指令的功能是建立一个中断事件EVNT与一个标号为INT的中断服务程序的联系,并对该中断事件开放,根据指定事件优先级组,PLC按照先来先服务的顺序对中断提供服务。 中断连接指令ATCH的格式如图4-72所示,它有两个数据输入端: INT为中断服务程序号,用字节型常数输入(范围为:0~127); EVNT为中断事件号,用字节型常数输入(范围为:0~33)。 当允许输入有效时,连接与中断事件EVNT相关联的INT中断程序,并去执行对应的中断程序。影响允许输出ENO正常输出的出错条件为:SM4.3(运行时间),0006(间接寻址)。图4-72中断连接指令 (3)中断分离指令DTCH(Detach) 中断分离指令的功能是取消某个中断事件EVNT与所有中断程序的关联,并对该事件关中断。指令格式如图4-73所示。图4-73中断分离指令中断分离指令只有一个数据输入端:EVNT,用以指明要被分离的中断事件。当允许输入有效时,切断由EVNT指定的中断事件与所有中断程序的联系。 (4)中断返回指令CRETI(ConditionalReturnInterrupt)和RETI(ReturnInterrupt) CRETI是有条件返回指令,可根据先前编辑条件从中断程序返回,可放置在中断程序的任何位置。在梯形图中以线圈形式编程,无操作数。 RETI是无条件返回指令,当中断结束时,通过中断返回指令退出中断服务程序,返回到主程序。Micro/WIN32自动为各中断程序的结尾处添加了无条件返回(RETI)。在编写程序时,用户不必再 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写无条件返回指令了。 2.中断程序的调用 原则 组织架构调整原则组织架构设计原则组织架构设置原则财政预算编制原则问卷调查设计原则 (1)中断优先级 在S7-200的中断系统中,将全部中断事件按中断性质和轻重缓急分配不同的优先级,使得当多个中断事件同时发出中断请求时,按照优先级的从高到低进行排队,优先级的顺序按照中断性质依次是通信中断、高速脉冲串输出中断、外部输入中断、高速计数器中断、定时中断、定时器中断。 (2)中断队列 在PLC中,CPU一般在指定的优先级内按照先来先服务的原则响应中断事件的中断请求,在任何时刻,CPU只执行一个中断程序。当CPU按照中断优先级响应并执行一个中断程序时,就不会响应其它中断事件的中断请求(尽管此时可能会有更高级别的中断事件发出中断请求),直到将当前的中断程序执行结束。在CPU执行中断程序期间,对新出现的中断事件仍然按照中断性质和优先级的顺序分别进行排队,形成中断队列。 (3)在S7-200中,无中断嵌套功能,但在中断程序中可以调用一个嵌套子程序,因为累加器和逻辑堆栈在中断程序和被调用的子程序中是公用的。 (4)多个中断事件可以调用同一个中断服务程序,但是同一个中断事件不能同时指定调用多个中断服务程序,否则,当某个中断事件发生时,CPU只调用为该事件指定的最后一个中断服务秩序。 3.中断程序编程步骤 (1)建立中断程序INTn(同建立子程序方法相同)。 (2)在中断程序INTn中编写其应用程序。 (3)在主程序中编写中断连接程序(ATCH)。 (4)在主程序中开中断(ENI)。 (5)如果需要的话,可以编写中断分离指令(DTCH)。 4.中断服务程序的编制要求 (1)中断程序的标号来区别每个中断程序。 (2)中断服务程序越短越好。 (3)在中断服务程序中,不能使用开中断指令ENI、关中断指令DISI、定义高速计数器指令HDEF、步进段开始指令LSCR和条件结束指令END。
本文档为【SIMATIC S7 PLC原理及应用第四章 西门子200(2)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
孟子73代
暂无简介~
格式:ppt
大小:4MB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-06-30
浏览量:47