资源描述
STEP7软件结构及调用执行,按用户程序分:系统块、用户块系统块:系统功能块(SFB)、系统功能(SFC)和系统数据块(SDB)用户块:组织块(OB)、功能块(FB)、功能(FC)及数据块(DB),系统块是储存在CPU操作中的预定义的功能或功能块,这些块不占用用户的任何存储空间。这些块在系统中具有相同的接口、相同的名称和相同的编号,所以可被不同的CPU或CPU之间互换用户程序用户块是提供给用户用于管理用户程序代码和数据的区域,用户块也称为程序块。,3.2位逻辑指令及应用,位逻辑指令的运算结果用两个二进制数字1和0来表示。可以对布尔操作数(BOOL)的信号状态扫描并完成逻辑操作。逻辑操作结果为RLO(resultoflogicoperatian)(PLC对第一条语句的扫描称为首次扫描,被直接保存在RLO中)位逻辑指令:位逻辑运算、定时器指令、计数器指令及位测试指令。,3.2.1基本逻辑指令及应用,基本逻辑指令见P36表3-2。PLC规定:如果触点是常开触点,则常开触点“动作”认为是“1”,常开触点“不动作”认为是“0”;如果触点是常闭触点,则常闭触点“动作”认为是“0”,常闭触点“不动作”认为是“1”;,一、位操作指令介绍1.逻辑取(装载)及线圈驱动指令LD(load):常开触点逻辑运算的开始。LDN(loadnot):常闭触点逻辑运算的开始=(OUT):线圈驱动指令。,位操作类指令,2.触点串联指令A/AN指令A(And):与操作,表示串联连接单个常开触点。AN(Andnot):与非操作,表示串联连接单个常闭触点。,位操作类指令,3.触点并联指令:O(Or)/ON(Ornot)O:或操作,表示并联连接一个常开触点。ON:或非操作,表示并联连接一个常闭触点。,网络1LDI0.0OI0.1ONM0.0=Q0.0,网络2LDNQ0.0AI0.2OM0.1ANI0.3OM0.2=M0.1,位操作类指令,4、“异或”和“异或非”XXN表示两信号结果不同时为“1”,两信号结果相同时为“0”在S5系列中不具备此功能,只有在S7系列中才有“异或”和“异或非”指令,但该功能只在STL(语句指令)/FBD(功能块图指令)方式下编程。,位操作类指令,5.电路块的串联指令ALDALD:块“与”操作,串联连接多个并联电路组成的电路块。,位操作类指令,OLD,OLD,LDI0.0AI0.1,LDI0.2AI0.3,LDNI0.4AI0.5,=Q0.0,OLD,OLD,6.电路块的并联指令OLDOLD:块“或”操作,并联连接多个串联电路组成的电路块。,位操作类指令,注意输出线圈不能串联,位操作类指令,7.嵌套表达式和先“与”后“或”当逻辑串是串并联的复杂组合时,CPU的扫描是先“与”后“或”。指令规则:先“与”后“或”逻辑不加括号先“或”后“与”逻辑加括号,位操作类指令,注意电路图上的常闭开关不一定要在PLC等效梯形图中画成常闭的,比如一些机械的限位开关,在电路图里一般画成常开点,这样正常状态下该路通,具体画成什么点要根据程序的逻辑判断。此为PLC内部的软触点和外接硬元件的关系。但根据中央电大考核要求:在考试范围内,凡常闭的在梯形图上一律画成常闭的。,实验题:起动保持停止电路(起保停电路),LDI0.0,起动I0.0,停止I0.1,Q0.0,OQ0.0,ANI0.1,=Q0.0,0,1,0,1,1,1,位操作类指令,8.置位/复位指令S/R,置位指令S:使能输入有效后从起始位S-bit开始的N个位置“1”并保持。复位指令R:使能输入有效后从起始位R-bit开始的N个位清“0”并保持。,位操作类指令,置位/复位功能:复位优先型RS触发器置位优先型RS触发器详情见P47-48,9.边沿触发指令EU/ED,上升沿触发指令:EU在EU指令前有一个上升沿时(由OFFON)产生一个宽度为一个扫描周期的脉冲,驱动后面的输出线圈。下降沿触发指令:ED在ED指令前有一个下降沿时(由ONOFF)产生一个宽度为一个扫描周期的脉冲,驱动其后线圈。,基本位操作指令应用举例,抢答器程序设计(1)控制任务:有3个抢答席和1个主持人席,每个抢答席上各有1个抢答按钮和一盏抢答指示灯。参赛者在允许抢答时,第一个按下抢答按钮的抢答席上的指示灯将会亮,且释放抢答按钮后,指示灯仍然亮;此后另外两个抢答席上即使在按各自的抢答按钮,其指示灯也不会亮。这样主持人就可以轻易的知道谁是第一个按下抢答器的。该题抢答结束后,主持人按下主持席上的复位按钮(常闭按钮),则指示灯熄灭,又可以进行下一题的抢答比赛。,位操作类指令,(2)I/O分配表输入I0.0SB0/主持席上的复位按钮I0.1SB1/抢答席1上的抢答按钮I0.2SB2/抢答席2上的抢答按钮I0.3SB3/抢答席3上的抢答按钮输出Q0.1L1/抢答席1上的指示灯Q0.2L2/抢答席2上的指示灯Q0.3L3/抢答席3上的指示灯,位操作类指令,(3)程序设计,请写出指令表.,位操作类指令,三、定时器指令定时器的定时时间:T=PT*S(PT设定值,S时基)工作方式:3种定时指令分别为TON、TONR和TOF,3.4定时指令及应用,时基(定时器的精度)按脉冲分,有1ms、10ms、100ms三种定时器。1ms定时器每隔1ms刷新一次,当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个扫描周期内不一定保持一致。10ms定时器则由系统在每个扫描周期开始自动刷新。由于每个扫描周期内只刷新一次,故而每次程序处理期间,其当前值为常数。100ms定时器则在该定时器指令执行时刷新。下一条执行的指令,即可使用刷新后的结果,非常符合正常的思路,使用方便可靠。,定时器的工作原理:使能输入有效后,当前值PT对PLC内部的时基脉冲增1计数,当计数值大于或等于定时器的预置值后,状态位置1。,用于单一间隔的定时。上电周期或首次扫描,定时器状态位OFF(0),当前值为0。使能输入接通时,定时器位为OFF(0),当前值从0开始计数时间,当前值达到预置值时,定时器位ON(1),当前值最大到32767并保持。使能输入断开,定时器自动复位,即定时器状态位OFF(0),当前值为0。指令格式:TONTxxx,PT,1.接通延时定时器,用于对许多间隔的累计定时。上电周期或首次扫描,定时器状态位OFF(0),当前值保持。使能输入接通时,定时器位为OFF,当前值从0开始计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器状态位ON(1),当前值连续计数最大到32767。指令格式:TONRTxxx,PT,2.保持型接通延时定时器,断电延时型定时器用来在输入断开,延时一段时间后,才断开输出。使能端(IN)输入有效时,定时器输出状态位立即置1,当前值复位为0。使能端(IN)断开时,定时器开始计时,当前值从0递增,当前值达到预置值时,定时器状态位复位为0,并停止计时,当前值保持。指令格式:TOFTxxx,PT,3.断电延时延时定时器,例2:闪烁电路I0.0的常开触点接通后,T37的IN输入端为1状态,T37开始定时。2S后定时时间到,T37的常开触点接通,使Q0.0变为ON,同时T38开始计时。3s后T38的定时时间到,它的常闭触点断开,使T37的IN输入端变为0状态,T37的常开触点断开,Q0.0变为OFF,同时使T38的IN输入端变为0状态,其常闭触点接通,T37又开始定时,以后Q0.0的线圈将这样周期性地“通电”和“断电”,直到I0.0变为OFF,Q0.0线圈“通电”时间等于T38的设定值,“断电”时间等于T37的设定值。,闭,计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。指令操作数有4方面:编号、预设值、脉冲输入和复位输入。,3.5计数器指令,CTUD,增减计数器指令。有两个脉冲输入端:CU输入端用于递增计数,CD输入端用于递减计数。指令格式:CTUDCxxx,PV例:CTUDC30,5,举例,指令表格式,LDI0.1LDI0.2LDI0.3CTUDC50,+4LDC50=Q0.0,增减计数程序及时序,注:在同一程序段里不能同时使用同一计数器的线圈编号。,将其中一个C8改为C0-C255之间的任意其他线圈PV为032767任意数,3.6比较指令,1.字节比较LDB、AB、OB2.整数比较LDW、AW、OW3.双字整数比较LDD、AD、OD4、实数比较LDRAROR,比较运算符:=等于、小于、大于、=小于等于、=大于等于、不等于,控制要求:一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。,程序举例,6000,6000,6000,时序图,一、算术运算指令二、逻辑运算指令,3.7运算指令,算术运算指令在累加器1和2中进行,在累加器2中的值作为被减数或被除数。算术运算的结果保存在累加器1中,累加器1原有的值被运算结果覆盖,累加器2中的值保持不变,一、算术运算指令,1.整数与双整数加减法指令(INT/DINT),1、将累加器1中的16位整数与累加器2中的16位整数相加,产生一16位整数保存在累加器1中2、用累加器2中的16位整数减去累加器1中的16位整数,产生一16位整数保存在累加器1中3、将累加器1中的32位整数与累加器2中的32位整数相加,产生一32位整数保存在累加器1中4、用累加器2中的32位整数减去累加器1中的32位整数,产生一32位整数保存在累加器1中,例4-7运行结果如下(演示),将+500装入累加器1中将+400装入累加器1中,累加器1中的原有值移至累加器2中将运算的结果送到ACO里,2.整数乘除法指令,1、用累加器1中的16位整数乘以累加器2中的16位整数,产生一16位整数保存在累加器1中,2、用累加器2中的16位整数除以累加器1中的16位整数,产生一16位整数保存在累加器1中,不留余数,3、用累加器1中的32位整数乘以累加器2中的32位整数,产生一32位整数保存在累加器1中,4、用累加器2中的32位整数除以累加器1中的32位整数,产生一32位整数保存在累加器1中,不留余数,5、用累加器1中的16位整数乘以累加器2中的16位整数,产生一32位整数保存在累加器1中,6、用累加器2中的16位整数除以累加器1中的16位整数,产生一32位整数保存在累加器1中低16位为商,高16位为余数。,例4-8运行结果如下:(演示),3.实数加减乘除指令,二、逻辑运算指令,1.逻辑与指令(WAND)2.逻辑或运算(WOR)3.逻辑异或指令(WXOR)4.取反指令(INV),运算规则:,与,或,异或,取反,数字逻辑运算指令将两个字(16位)或两个双字(32位)逐位进行逻辑运算。两个数中的一个在累加器1中,另一个可以再累加器2中或在指令中以立即数(常数)的方式给出,字逻辑运算指令的逻辑运算结果放在累加器1低字中,双字逻辑运算结果放存在累加器1中,累加器2的内容保持不变。,字节逻辑运算包括:字节与、字节或、字节异或、字节取反,8位字节逻辑“与”指令。如果输入端EN位“1”,将IN1与IN2中的值按位做“与”运算,如果没有超出范围,结果存放在OUT中,ENO连接的为“1”,否则为“0”,字逻辑运算包括:字与、字或、字异或、字取反,16位字逻辑“与”指令。如果输入端EN位“1”,将IN1与IN2中的值按位做“与”运算,如果没有超出范围,结果存放在OUT中,ENO连接的为“1”,否则为“0”,双字逻辑运算包括:双字与、双字或、双字异或、双字取反,一、数据传送指令二、移位指令,3.7传送及位移指令,一、数据传送指令,1.单一传送MOV2.块传送BLKMOV,1、单一传送,MOV指令可用用来传送单个数据,数据类型可以是字节、字、双字、实数。,将IN的内容拷贝到OUT中,2.块传送,BLKMOV指令可用来进行一次多个(最多255个)数据的传送,数据块类型可以是字节块、字块、双字块。,N的范围为1至255,将从IN开始的连续N个字节/字/双字数据拷贝到从OUT开始的数据块,举例:,二、移位指令,1.左移位和右移位2.循环左移位、循环右移位3.寄存器移位,1.左移位和右移位,(1)左移位指令(SHL)原理:使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1,二进制左移一位相当与将原数值乘以2,右移一位相当与将原数值除以2,如:01001101左移一位为10011010左移两位为00110100详见P89图3-79,(2)右移位指令(SHR)原理:使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位如果为正数,补0,负数补1,最后一移出位保存在SM1.1,详见P89图3-80,2.循环左移位、循环右移位,循环左移(ROL)和循环右移(ROR)移位特点:移位数据存储单元的移出端与另一端相连,同时又与SM1.1(溢出)相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存储单元。例如在循环右移时,移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。,循环移位的类型,(1)字节循环左移和字节循环右移(2)字循环左移和字循环右移(3)双字循环左移和双字循环右移,EN:使能输入端;ENO:有效输出端IN:输入端N:循环位数,字循环右移3次举例:,例4-10:,3.8转换指令,1、数据类型转换指令2、编码和译码指令3、七段译码指令4、字符串转换指令,一、数据类型转换,1字节型数据与字整数之间转换的指令,2字整数与双字整数之间的转换,3BCD码与整数之间的转换的指令格式,二、编码和译码指令,1.编码ENCO,编码指令。使能输入有效时,将字型输入数据IN的最低有效位(值为1的位)的位号输出到OUT所指定的字节单元的低4位。指令格式:ENCOIN,OUT例:ENCOAC0,VB0,2.译码DECO,译码指令。使能输入有效时,将字节型输入数据IN的低4位所表示的位号对OUT所指定的字单元的对应位置1,其他位置0。指令格式:DECOIN,OUT例:DECOVB0,AC0,举例,字:2#0010100100010000(最低有效位的位号:4)编码:2#000001002#00000100译码:位号:4字:2#0000000000010000,四、字符串转换指令,(1)ASCII码转换16进制指令ATH(2)16进制到ASCII码HTA,ASCII码:美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案.基本的ASCII字符集共有128个字符,其中有96个可打印字符,包括常用的字母、数字、标点符号等,另外还有32个控制字符。字母和数字的ASCII码的记忆是非常简单的。只要记住了一个字母或数字的ASCII码(例如记住A为65,0的ASCII码为48),知道相应的大小写字母之间差32,就可以推算出其余字母、数字的ASCII码,
展开阅读全文