您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 西门子PLC培训讲义4
S7-300/400PLC培训讲义-19-四、S7-300/400梯形图指令介绍在学习指令之前,要先了解有关PLC的存储区域概念。不同品牌的PLC,梯形图指令均大同小异,但是,存储区的名字及地址的表示方法却差异很大。西门子S7-300/400PLC的存储区域分为:输入映像区(I或PI):开关量输入DI模块的影射到I区,模拟量输入AI模块影射到PI区;这是只读区。S7-300/400PLC培训讲义-20-输出映像区(Q或PQ):Q区写入与之对应的开关量输出DO模块,PQ区写入与之对应的模拟量输出AO模块;Q区可读/写,PQ只写,不可读。位存储区(M):又叫中间继电器,可读/写。DB块:用户定义的数据块,必须先定义后使用,可读/写。T区:计时器名。C区:计数器名。L区:这是局部数据区,上面提到的那些都是全局数据区。所谓全局数据区,就是所有的程序(OB块、FC、FB)都可以访问,而且访问到的是同一个变量;局部数据区则不然,每个独立的OB块、FC、FB块都有一个独立的L区,例如:OB1和FC1中都有L0.0,但它们却不是同一个变量。在STEP7的梯形图指令中,不同类型的常数的格式都有严格的规定。如byte、word和dword类型的常数,在输入时要以“16#”作为前缀,后面跟十六进制的数据;dint类型的数据在输入时要以“L#”作为前缀,后面跟十进制的数据;real类型的数据,在输入时,后面一定要带小数部分,如没有小数部分,则加上“.0”;计时器的时间常数则以“S5T#”为前缀,后面加上aH_bbM_ccS_dddMS(表示:几小时_几分_几秒_几毫秒),“S5T#2.5S”表示2.5秒。STEP7中的变量,从是否使用符号的角度,可以分为符号名变量和地址名变量。地址名变量是以存储区域名为前缀,后面紧跟代表二进制长度的B、W、D(分别代表字节、字和双字),然后是起始字节的地址;位的地址名变量是存储区域名,加上位所在的字节地址,加“.”,加上位的序号。例如:IB0、IW0、ID0、I0.0;QB0、QW0、QD0、Q0.0;MB0、MW0、MD0、M0.0;LB0、LW0、LD0、L0.0;DB1.DBB0、DB1.DBW0、DB1.DBD0、DB1.DBX0.0。计时器变量名则以T加上一个0~max之间的数字来表示,如T0、T1等等。计数器变量名则以C加上一个0~max之间的数字来表示,如C0、C1等等。(注:max代表某型号的CPU所具有的最大数)建S7-300/400PLC培训讲义-21-议大家尽量少用地址名变量,而使用符号名变量。符号名变量是可以通过符号编辑器(symboleditor)来建立,也可以直接在使用了地址名变量后,用鼠标右键点击它,在弹出菜单中,选择“编辑符号”来建立符号。在STEP7中,不仅可以为地址名变量建立符号名变量,还可以为组织块,功能块,功能,数据块建立符号名,并使用符号名来编写程序。一旦建立了符号名,在编写程序的过程中,系统会自动提示,以便我们正确输入变量。L区的变量,是局域变量;在程序进入该块时,到该块结束的过程中,局域变量是稳定的,当程序再次进入时,该局域变量的内容是不可知的,系统可能覆盖了它。除此之外,其他存储区域的变量为全局变量,组织块、功能块、功能均可访问它们,系统不会改变它们的内容。梯形图是PLC最常用的编程语言,它与电气控制原理图有一点点相似,是比较容易学习和掌握的一种PLC编程语言。在STEP7的梯形图指令中,按照功能特点共分为如下十四大类指令:位逻辑指令、比较指令、类型转换指令、整数运算指令、实数运算指令、移动(赋值)指令、字逻辑运算指令、移位指令、定时器指令、计数器指令、DB块调用指令、跳转指令、程序控制指令和(CPU)状态位指令。4.1、位逻辑指令位逻辑指令说明:指令符号前面的“––”,是指令的输入,指令符号后面的“––”,是指令的输出。输入和输出都是BOOL类型,即只有“0”和“1”两种可能。梯形图的左边竖线表示“1”,连接线表示直接传导这个信号,传导是由左向右的。––||––常开触点(地址):本地址位与输入进行“与”运算,结果输出。––|/|––常闭触点(地址):对本地址位先“非”,再与输入进行“与”运算,结果输出。––()输出线圈(地址):本地址位等于输入。S7-300/400PLC培训讲义-22-––|NOT|––能流取反:把输入信号,“非”后输出;––(S)置位线圈(地址):如果输入为“1”,本地址位等于“1”。––(R)重置线圈(地址):如果输入为“1”,本地址位等于“0”。––(P)––RLO上升沿检测:如果输入为“1”,本地址位为“0”,则输出为“1”,否则,输出为“0”。––(N)––RLO下降沿检测:如果输入为“0”,本地址位为“1”,则输出为“1”,否则,输出为“0”。––POS––地址上升沿检测:输入为“1”,指定的位检测上升沿时,输出为“1”,否则,输出为“0”。––NEG––地址下降沿检测:输入为“1”,指定的位检测下降沿时,输出为“1”,否则,输出为“0”。––(#)––中间输出:本地址位保存输入的值,输出等于输入。==SR复位优先型SR双稳态触发器:先置位,后重置,故复位优先。==RS置位优先型RS双稳态触发器:先重置,后置位,故置位优先。XOR逻辑“异或”:位与位直接进行“异或”运算的梯形图指令没有。立即读取:在执行含有PIB、PIW、PID的变量的指令时,CPU直接从外设读取数据。立即写入:在执行含有PQB、PQW、PQD的变量的指令时,CPU直接向外设写数据。4.2、比较指令比较指令说明:指令符号前面的“––”,是指令的输入,指令符号后面的“––”,是指令的输出。输入和输出都是BOOL类型,即只有“0”和“1”两种可能。当比较指令输入为“1”时,且IN1和IN2的比较,结果符合条件,输出为“1”,否则,输出为“0”。IN1和IN2S7-300/400PLC培训讲义-23-必须是相同的数据类型,比较的条件分为如下六种情况:==IN1等于IN2IN1不等于IN2IN1大于IN2IN1小于IN2=IN1大于等于IN2=IN1小于等于IN2根据IN1和IN2的数据类型,分为:整数比较、双整数比较和实数比较三大类。CMP?I整数比较,符号如下:CMP?D双整数比较,符号如下:CMP?R实数比较,符号如下:S7-300/400PLC培训讲义-24-4.3、数据格式转换指令数据格式转换指令说明:EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。IN输入的数据类型和OUT输出的数据类型在指令名称中已经说明;并且要求为全局变量或局部变量。BCD_IBCD码转换为整数I_BCD整数转换为BCD码BCD_DIBCD码转换为双整数DI_BCD双整数转换为BCD码I_DINT整数转换为双整数DI_REAL双整数转换为浮点数INV_I整数的二进制反码INV_DI双整数的二进制反码NEG_I整数的二进制补码NEG_DI双整数的二进制补码NEG_R浮点数求反ROUND舍入为双整数TRUNC舍去小数取整为双整数CEIL上取整FLOOR下取整4.4、计数器指令S_CUD加-减计数器S_CD减计数器S_CU加计数器---(SC)计数器线圈置位---(CU)加计数器线圈---(CD)减计数器线圈S7-300/400PLC培训讲义-25-**4.5、数据块指令在梯形图中,访问固定数据块中的数据的一种方式,是先用——(OPN)指令打开DB块,然后直接使用DB块中的地址。---(OPN)打开数据块:DB或DI(无条件调用功能)。4.6、逻辑控制指令逻辑控制指令,只能在逻辑块内跳转。---(JMP)---无条件跳转:指输入为“1”,跳转指令必定执行。---(JMP)---条件跳转:其输入为逻辑运算的结果,“1”时执行,“0”则不执行。---(JMPN)---若非则跳转:其输入为逻辑运算的结果,“0”时执行,“1”则不执行。LABEL标号是一个跳转指令目的地的标识符。由1~4个字符组成,第一个字符为字母,后面可以是数字或字母,中间也可以有“_”。与跳转指令配合使用。4.7、整数算术指令指令说明:EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。整数算术指令要求IN1、IN2必须为INT类型的变量或常数,OUT必须为INT类型的变量;双整数的运算指令要求IN1、IN2必须为DINT类型的变量或常数,OUT必须为DINT类型的变量。使用整数算术指令时,要考虑是否会产生溢出及除法余数丢失等等问题。ADD_I整数加法SUB_I整数减法MUL_I整数乘法DIV_I整数除法ADD_DI双整数加法SUB_DI双整数减法MUL_DI双整数乘法DIV_DI双整数除法MOD_DI回送余数的双整数S7-300/400PLC培训讲义-26-4.8、浮点数(实数)算术指令指令说明:EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。实数的加、减、乘、除法运算指令要求IN1、IN2必须为REAL类型的变量或常数,OUT必须为REAL类型的变量。ADD_R实数加法SUB_R实数减法MUL_R实数乘法DIV_R实数除法实数的下述运算指令要求IN必须为REAL类型的变量或常数,OUT必须为REAL类型的变量。求绝对值运算(ABS)求平方(SQR)运算求平方根(SQRT)运算求自然对数(LN)运算求基于e的指数运算(EXP)(e=2.71828)求正弦(SIN)运算求反正弦(ASIN)运算求余弦(COS)运算求反余弦(ACOS)运算求正切(TAN)运算求反正切(ATAN)运算4.9、赋值指令指令说明:EN为输入,是BOOL类型,ENO为输出,且总是与EN相同;当输入为“1”时,执行指令,否则,不执行指令。指令要求IN为变量或常数,其类型,与OUT的类型一致,且OUT必须为变量。MOVE只能复制BYTE(字节)、WORD(字)、INT(整数)、DWORD(双字)、DINT(双精度整数)和REAL(实数)数据对象。用户定义的数据类型(例如数组或结构)必须使用系统功能“BLKMOVE”(SFC20)进行复制。MOVE赋值指令S7-300/400PLC培训讲义-27-**4.10、程序控制指令---(CALL)从线圈调用:用来调用不带参数的功能(FC)或系统功能(SFC);从方块调用FB/FC/SFB/SFC,即从左侧的“总览(OVERVIEW)”里,拖放到梯形图中,EN为输入,ENO为输出,且总是相同的,如图所示:CALL_FB从方块调用FBCALL_FC从方块调用FCCALL_SFB从方块调用SFBCALL_SFC从方块调用SFC调用多背景块从库中调用块使用MCR功能的重要注意事项---(MCR)主控继电器接通---(MCR)主控继电器断开---(MCRA)主控继电器启动---(MCRD)主控继电器停止RET返回4.11、移位指令使用移位指令,可以将输入IN中的内容向左或向右逐位移动(请参见“CPU寄存器”)。将输入IN中的内容左移相当于完成乘2加权;将输入IN中的内容右移相当于完成除2加权的运算。例如,如果将十进制数值“3”的等效二进制数左移3位,则累加器中的结果是十进制数“24”的二进制数。如果将十进制数值“16”的等效二进制数右移2位,则累加器中的结果是十进制数“4”的二进制数。输入参数N提供的数值表示移动的位数。•SHR_I整数右移•SHR_DI双整数右移•SHL_W字左移•SHR_W字右移•SHL_DW双字左移•SHR_DW双字右移•ROL_DW双字左循环•ROR_DW双字右循环S7-300/400PLC培训讲义-28-**4.12、状态位
本文标题:西门子PLC培训讲义4
链接地址:https://www.777doc.com/doc-987160 .html