《项目5任务5.18交通灯控制电路教学情境》由会员分享,可在线阅读,更多相关《项目5任务5.18交通灯控制电路教学情境(34页珍藏版)》请在金锄头文库上搜索。
1、,任务5.18 交通灯控制电路教学情境,5.18.1 教学情境的学习目的 通过交通灯控制教学情境的学习,学习指令基础、触点与线圈、基本逻辑指令、边沿检测指令、定时器指令、CPU的时钟存储器的应用。 5.18.2指令基础 1.指令的组成 指令是程序的最小独立单位,用户程序是由若干条顺序排列的指令构成。指令一般由操作码和操作数组成,其中的操作码代表指令所要完成的具体操作(功能),操作数则是该指令操作或运算的对象。例如,对于STL指令“A I0.0”,其中“A”是操作码,表示该指令的功能是逻辑“与”操作;“I0.0”是操作数,也就是数字量输入模块的第0字节的第0位;该指令的功能就是对I0.0进行“与
2、”操作。 2.变量 指令操作数既可以是变量,也可以是常量或常数。如果指令的操作数是变量,则该变量既可以用绝对地址表示,也可以用符号地址表示。绝对地址是数字地址。如:I0.0、I0.1符号地址是用户在符号表或声明表中定义的与绝对地址相对应并具有一定意义的字符串。如:SB1、SB2 1位(Bit): 通过一个变量标识符、一个字节数字、一个间隔符(小数点)和一个位数字引用一个绝对地址。位数字范围是07。例如: I1.0表示数字量输入区域的第1字节的第0位; Q16.4表示数字量输出区域的第16字节的第4位。 8位(字节,BYTE): 通过一个地址标识符B和一个字节数字编号来引用一个绝对地址, 例如:
3、IB2表示数字量输入区域的第2个字节; QB18表示数字量输出区域的第18个字节。,16位(字,WORD): 通过一个地址标识符W和一个字数字编号来引用一个绝对地址。一个字由2个字节组成,其中的高地址字节位于字的低位、低地址字节位于字的高位,为了避免两个字变量出现字节重叠,一般规定字的地址用偶数表示。 例如: IW4表示数字量输入区域地址是4的字,它包含IB4(高字节)和IB5(低字节)。 QW20表示数字量输出区域地址是20的字,它包含QB20(高字节)和QB21(低字节)。 32位双字(DWORD): 通过一个地址标识符D和一个双字数字编号来引用一个绝对地址。一个双字由4个字节组成,其中的
4、最高地址字节位于双字的最低位、最低地址字节位于双字的最高位,为了避免两个双字变量出现字节重叠,一般规定双字的地址用4的倍数表示。 例如: ID8表示数字量输入地址是8的双字,它包含IB8(高字节)、IB9(次高字节)、IB10(次低字节)和IB11(低字节); QD24表示数字量输出地址是24的双字,它包含QB24(高字节)、QB25(次高字节)、QB26(次低字节)和QB27(低字节)。,图5-151字节、字及双字的关系,3.常数及其数据类型 常数是预先给定的数据,在STEP 7中,每个常数都有一个前缀以表示其数据类型。 数据类型决定数据的属性,在STEP 7中,数据类型分为:基本数据类型、
5、复杂数据类型和参数类型。 基本数据类型定义不超过32位的数据,可以装入S7处理器的累加器中,可利用STEP7基本指令处理。基本数据类型共有12种。,表5-36 数据类型,复杂数据类型定义超过32位或由其它数据类型组成的数据。复杂数据类型要预定义,其变量 只能在全局数据块中声明,可以作为参数或逻辑块的局部变量。STEP 7的指令不能一次处理一个复杂的数据类型(大于32位),但是一次可以处理一个元素。 参数类型是一种用于逻辑块(FB、FC)之间传递参数的数据类型,主要有定时器(TIMER)、计数器(COUNTER)、块(BLOCK)、指针(POINTER)和ANY等类型。 4.S7-300/400
6、系列PLC用户存储区的分类及功能,表5-37用户存储区的分类及功能,5.操作数的寻址方式 所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方式给出操作数。STEP7系统支持4种寻址方式: 立即寻址 存储器直接寻址 存储器间接寻址 寄存器间接寻址 (1)立即寻址方式 立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指令中,或以惟一形式隐含在指令中。 例如: L 66 /把常数66装入累加器1中 AW W#16#168 /将十六进制数168与累加器1的低字 /进行“与”运算 SET /默认操作数为RLO,该指令实现对 /RLO置1操作 (2)存储器直接寻址方式 存储器直接寻址,
7、简称直接寻址。该寻址方式在指令中直接给出操作数的存储单元地址。存储单元地址可用符号地址(如SB1、KM等)或绝对地址(如I0.0、Q4.1等)。 例如: A I0.0 /对输入位I0.0执行逻辑“与”运算 = Q4.1 /将逻辑运算结果送给输出继电器Q4.1 L MW2 /将存储字MW2的内容装入累加器1 T DBW4 /将累加器1低字中的内容传送给数据字DBW4 (3)存储器间接寻址方式 存储器间接寻址,简称间接寻址。该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的内容是操作数所在存储器单元的地址。该存储器一般称为地址指针,在指令中需写,在方括号“”内。 地
8、址指针可以是字或双字,对于地址范围小于65535的存储器(如T、C、DB、FB、FC等)可以用字指针;对于其他存储器(如I、Q、M等)则要使用双字指针。 存储器间接寻址的双字指针的格式如下,,其中: 位02(xxx)为被寻址地址中位的编号(07) 位318为被寻址地址的字节的编号(065535) 【例5-18-1】 存储器间接寻址的单字格式的指针寻址 L 2 /将数字2#0000_0000_0000_0010装 /入累加器1 T MW50 /将累加器1低字中的内容传给MW50 /作为指针值 OPN DB35 /打开共享数据块DB35 L DBWMW50 /将共享数据块DBW2的内容装入累 /加
9、器1 【例5-18-2】 存储器间接寻址的双字格式的指针寻址。 L P#8.7 /把指针值装载到累加器1。 /P#8.7的指针值为: /2#0000_0000_0000_0000_0000_0000_0100_0111 T MD2 /把指针值传送到MD2 A IMD2 /查询I8.7的信号状态 = QMD2 /给输出位Q8.7赋值 (4)寄存器间接寻址方式 寄存器间接寻址,简称寄存器寻址。该寻址方式在指令中通过地址寄存器和偏移量间接获取操作数,其中的地址寄存器及偏移量必须写在方括号“ ”内。在S7-300/400中有两个地址寄存器AR1和AR2,用地,址寄存器的内容加上偏移量形成地址指针,并指
10、向操作数所在的存储器单元。 地址寄存器的地址指针有两种格式 : 区内寄存器间接寻址 区域间寄存器间接寻址 【例5-18-3】 区域内寄存器间接寻址(寄存器间接寻址方式1) L P#3.2 /将间接寻址的指针装入累加器1 /P#3.2的指针值为:2#0000 0000 0000 0000 0000 0000 0001 1010 LAR1 /将累加器1的内容送入地址寄存器AR1 /AR1的指针值为:2#0000 0000 0000 0000 0000 0000 0001 1010 A IAR1,P#5.4 /P#5.4的指针值为:2#0000 0000 0000 0000 0000 0000 00
11、10 1100 / AR1与偏移相加结果:2#0000 0000 0000 0000 0000 0000 0100 0110 /指明是对输入位I8.6进行逻辑“与操作” = QAR1,P#1.6 / P#1.6的指针值为:2#0000 0000 0000 0000 0000 0000 0000 1110 / AR1与偏移相加结果:2#0000 0000 0000 0000 0000 0000 0010 1000 /指明是对输出位Q5.0进行赋值振作,(注意:3.2+1.6=5.0,而不是4.8) 【例5-18-4】区域间寄存器间接寻址(寄存器间接寻址方式2) L P#I8.7 /把指针值及存储
12、区域标识装载到累加器1 / P#I8.7的指针值为:2#1000_0001_000_0000_0000_0000_0100_0111 LAR1 /把存储区域I和地址8.7装载到AR1 L P#I8.7 /把指针值和地址标识符装载到累加器1 / P#Q8.7的指针值为:2#1000_0010_000_0000_0000_0000_0100_0111 LAR2 /把存储区域Q和地址8.7装载到AR2 AAR1,P#0.0 /查询输入位I8.7的信号状态(偏移量0.0不起作用) =AR2,P#1.2 /给输出位Q10.1赋值(注意:8.7+1.2=10.1,而不是9.9),6.状态字 状态字用于表示
13、CPU执行指令时所具有的状态信息。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,在位逻辑指令或字逻辑指令中可访问并检测这些位。 状态字的格式如下:,(1)首位检测位(FC) 状态字的位0称为首位检测位。若FC位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串的第1条指令。 CPU对逻辑串第1条指令的检测(称为首位检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首位检测结果。FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将清0
14、。 (2)逻辑操作结果(RLO) 状态字的位1称为逻辑操作结果RLO(Result of Logic Operation)。该位存储逻辑指令或比较指令的结果。 在逻辑串中,RLO位的状态能够表示有关信号流的信息,RLO的状态为1,表示有信号流(通);RLO的状态为0,表示无信号流(断)。可用RLO触发跳转指令。 (3)状态位(STA) 状态字的位2称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。 如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的“读”或“写”操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置1。 (
15、4)“或”位(OR) 状态字的位3称为或位(OR)。在先“与”后“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。,(5)溢出位(OV) 状态字的位4称为溢出位。溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(溢出、非法操作、不规范格式)。如果后面的算术运算或浮点数比较指令执行结果正常,OV位就被清0。 (6)溢出状态保持位(OS) 状态字的位5称为溢出状态保持位(或称为存储溢出位)。OV被置1时OS也被置1;OV被清0时OS仍保持。所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。只有JOS(OS=1时跳转)
16、、块调用指令和块结束指令才能复位OS位。 (7)条件码1(CC1)和条件码0(CC0) 状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系。 (8)二进制结果位(BR) 状态字的位8称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。 在LAD的方块指令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。 5.18.3触点与线圈 1.常开触点 与继电器的常开触点相似,对应的元件被操作时,其常开触点闭合;否则,对应常开触点“复位”,即触点仍处于打开的状态。,2.常闭触点 与继电器