版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章S7-300指令系统
第一节STEP7的数据类型和指令结构
第二节
位逻辑指令
第三节
数据传送与转换指令
第四节
运算指令
第五节
移位指令
第六节
控制指令
第七节S7-300的标准系统功能模块简介
习题与思考题
第一节STEP7的数据类型和指令结构一、STEP7的数据类型
1、基本数据类型
①布尔型1位②字节型8位B#16#00~FF③字型16位W#16#0000~FFFF、C#0~999、B#(0,0)~(255,255)④双字型32位DW#16#00000000~FFFFFFFF⑤字符型8位⑥整数型16位
-32768~+32767
⑦双整数型32位L#-214783648~214783647⑧实数32位
上限:±3.402823e+38
下限:±1.175495e-38
⑨时间TIME32位T#24D_20H_31M_23S_647MS
⑩时间DATE32位D#1990_1_1~D#2168_12_31
系统时间32位S5T#0H_0M_0S_0MS~S5T#2H_46M_30S_0MS
2、复式数据类型
数据类型说
明日期_时间DTDATE_AND_TIME定义64位空间。时间信息对应的BCD码存储格式:字节0:年,字节1:月,字节2:日,字节3:小时,字节4:分,字节5:秒,字节6和字节7的高位:毫秒,字节7的低位:星期几。字符串STRING字符串的默认大小为256字节(254个字符和双字节字头)。如:(STRING[7]‘SIEMENS’)。数组ARRAY定义一种数据格式的多维数组。如:“ARRAY[1..2,1..3]OFINT”表示2×3的整数数组。构造STRUCT定义多种数据类型组合的数组。3、参数数据类型
用于向FB和FC传送参数。STEP7提供的参数类型:(1)TIMER(定时器)和COUNTER(计数器)用定时器或计数器的编号作为实参(actualparameter,实际参数),占2个字节。如T3、C21。(2)BLOCK(块)指定一个块用作输入和输出,实参应为同类型的块,占2个字节。如FB20、FC101、DB12、SDB11。(3)POINTER(指针)用地址指针作为实参,占6个字节。如P#M50.0。(4)ANY用于实参的数据类型未知或实参可以使用任意数据类型的情况,占10个字节。如P#M30.0,byte10,或P#M60.0,word5。
二、STEP7的指令结构1、指令梯形逻辑指令LAD、语句指令STL和功能块图指令FBD。
①梯形逻辑指令A(OI0.0OQ4.0)ANI0.1=Q4.0AI0.2LS5T#20SSDT0LMW10TQW60NOP0与或与与输出②语句指令
③功能块图指令FBD。
2、操作数指令是由一个操作码和一个操作数组成,
助记符:表示指令的功能指令码:是指令的代码操作数:提供指令执行的对象或数据。AMW10
I:输入映像存储区Q:输出映像存储区M:位存储区PI:外部输入PQ:外部输出T:定时器C:计数器DB:数据块L:本地数据
M为主标识符W为辅助标识符操作数X(位)B(字节)W(字)D(双字)操作码3、存储区功能
输入位I0.0输入字节IB0输入字IW0输入双字ID0
输出位Q4.0输出字节QB4输出字QW4输出双字QD4
存储器位M10.0存储器字节MB10存储器字MW10存储器双字MD10
数据位DBX10.0数据字节DBB10数据字DBW10数据双字DBD10数据位DIX10.0数据字节DIB10数据字DIW10数据双字DID10
外部输入字节PIB288外部输入字PIW288外部输入双字PID288
外部输出字节PQB288外部输出字PQW288外部输出双字PQD288临时本地数据位L临时本地数据字节LB临时本地数据字LW临时本地数据双字LD
4、状态字
二进制结果位
条件码1和条件码0溢出状态保持位
溢出位
或位
状态位
逻辑操作结果位
首位检测位
该位存储逻辑指令或比较指令的结果。
在先逻辑“与”后逻辑“或”的逻辑块中,OR位暂存逻辑“与”的操作结果。
当算术运算或浮点数比较指令执行时出现错误OV位被置1。
保存OV位的状态,用于说明先前的某些指令执行过程中是否出现过错误。
如果执行出现错误,BR位为0,ENO也为0;反之,BR位为1,ENO也为1。
CC1、CC0真值表CC1CC0算术运算比较指令移位和循环移位指令字逻辑指令00结果=0累加器2=累加器1移出位=0结果=001结果<0累加器2<累加器1——10结果>0累加器2>累加器1—结果<>011—移出为=1—三、STEP7的寻址方式STEP7有四种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。
1、立即寻址是指在指令中直接给出操作数。L34LDW#16#1111_22222、存储器直接寻址
是指在指令中直接给出操作数的存储单元地址。
AI0.0=Q4.0LC1TMW10
3、存储器间接寻址存储器间接寻址是指操作数存储在由指针给出的存储单元中。其中,地址指针可以是字或双字,当对I、Q、M使用双字指针时,必须确保指针中的位编号为“0”。
L+6//将整数6装入累加器1TMW1//将累加器1的内容传送给存储字MW1OPNDB[MW1]//打开由MW1指出的数据块,即打开数据块DB6LP#8.7//将2#0000_0000_0000_0000_0000_0000_0100_0111装入累加器1;
TMD1//将累加器1中的内容传送给存储字MD1;
AI[MD1]//对输入位I8.7进行逻辑“与”操作;4、寄存器间接寻址
寄存器间接寻址是指操作数存储在由地址寄存器与偏移量之和形成的地址指针所给出的存储单元中。在S7中有两个地址寄存器AR1和AR2。使用寄存器指针格式访问字节、字或双字时,必须确保指针中位地址的编号为0。寄存器间接寻址有两种形式:区域内寄存器间接寻址和区域间寄存器间接寻址。
如:P#I8.52#10000001_00000000_00000000_01000101如:P#Q8.72#10000010_00000000_00000000_01000111LP#8.0;LAR2//将累加器1中的内容传送到地址寄存器2;LIB[AR2,P#2.0]//地址寄存器2的内容(8.0)加偏移量(2.0)为10.0,将输入字节IB10装入累加器1;TMW[AR2,P#200.0]//将累加器1中的内容传送到MW208;
LP#I8.5
LAR1
//将累加器1中的内容传送到地址寄存器1;LP#Q8.7LAR2//将累加器1中的内容传送到地址寄存器2;A[AR1,P#0.2]//和输入位I8.7进行逻辑“与”操作;=[AR2,P#1.1]//地址寄存器2内容(Q8.7)加偏移量(1.1)为Q10.0,对输出位Q10.0进行赋值操作。
与编号为0第二节
位逻辑指令位逻辑指令包含位逻辑运算指令、定时器指令、计数器指令和位测试指令等。
一、位逻辑运算指令1、标准触点指令①与指令A——常开触点相与(串联)的指令;与非指令AN——常闭触点相与(串联)的指令;②或指令O——常开触点相或(并联)的指令;或非指令ON——常闭触点相或(并联)的指令;③输出指令=——将执行结果输出到某位的指令。逻辑串输出指令-()、中间输出指令-(#)
Q4.0I0.0Q4.0Q4.1I0.0I0.1I0.0Q4.0Q4.0Q4.1I0.0I0.1I0.1M1.0I0.2#AI0.0ANI4.0=Q4.0ONI0.0OQ4.0=Q4.1AI0.0ANI0.1OANI0.0AI0.1=Q4.0ANQ4.0=M1.0AM1.0AI0.2=Q4.1任务三电动机的起停控制【例】试将电动机的单向运行继电控制系统改造成PLC控制系统。传统继电器控制电路1.PLC端子接线PLC端子接线图192.创建STEP7项目(1/2)新建项目窗口所创建的项目,项目名:My_Prj2任务三电动机的起停控制3.插入S7-300工作站在My_Prj2项目内插入S7-300工作站:SIMATIC300(1)4.硬件组态(1/6)硬件组态窗口4.硬件组态(2/6)插入导轨返回上级4.硬件组态(3/6)插入各种S7-300模块设置CPU属性任务三电动机的起停控制设置数字量模块属性任务三电动机的起停控制编译硬件组态(完成后的窗口)系统自动创建程序文件夹包含一个循环组织块OB1任务三电动机的起停控制5.编辑符号表(1/2)从LAD/STL/FBD编辑器打开符号表6.程序编辑窗口7.在OB1中编辑LAD程序(1/2)设置组织块(OB)属性为LAD方式7.在OB1中编辑LAD程序(2/2)编写梯形图(LAD)程序32
8.下载和调试程序为了测试PLC设计项目,必须将程序和模块信息下载到PLC的CPU模块。要实现编程设备与PLC之间的数据传送,首先应正确安装PLC硬件模块,然后用编程电缆(如USB-MPI电缆、PROFIBUS总线电缆)将PLC与PG/PC连接起来,并打开PS307电源开关。下载程序及模块信息用S7-PLCSIM调试程序33具体步骤如下:①启动SIMATICManager,并打开My_prj2项目;②单击仿真工具按钮,启动S7-PLCSIM仿真程序;③将CPU工作模式开关切换到STOP模式;④在项目窗口内选中要下载的工作站;⑤执行菜单命令【PLC】→【Download】,或单击鼠标右键执行快捷菜单命令【PLC】→【Download】将整个S7-300站下载到PLC。启动仿真工具S7-PLCSIM任务三电动机的起停控制插入仿真变量任务三电动机的起停控制激活监视状态任务三电动机的起停控制程序的运行状态任务三电动机的起停控制任务四电动机的正反转控制【例】试将电动机的正反转运行继电控制系统改造成PLC控制系统。I/O接线图任务四电动机的正反转控制样例程序2、嵌套表达式和先“与”后“或”3、置位/复位指令
置位:
根据RLO的值决定指定地址位的状态。复位:
置位/复位指令和操作数
指令名称LAD指令操作数数据类型存储区说明置位指令位地址BOOLI、Q、M、D、L位地址表示要进行置位/复位操作的位复位指令BOOLTIMERCOUNTERI、Q、M、T、C、D、L
触发器指令和操作数
指令名称LAD指令数据类型存储区操作数说明SR触发器QI、Q、M、D、L位地址位地址表示要置位/复位的位S置位输入端RS触发器R复位输入端与位地址对应的存储单元的状态RS触发器和SR触发器的工作时序示例梯形图程序工作时序
任务二传送带运送控制【例】
置位与复位指令的应用——传送带运动控制。如图所示为一个传送带,在传送带的两端各设有一组按钮即起动按钮S1、S3和停止按钮S2、S4。要求能从任一端起动或停止传送带,且当传送带上的物件到达尾端时,传感器S5使传送带停止。任务二传送带运送控制地址分配端子连接图梯形图程序
语句表4、跳变沿检测指令①对RLO的跳变沿进行检测②对触点的跳变沿直接进行检测。
指令名称LAD指令STL指令操作数数据类型存储区RLO正跳沿检测FP<位地址>位地址BOOLQ、M、DRLO负跳沿检测FN<位地址>
指令名称LAD指令操作数数据类型存储区说明触点正跳沿检测位地址1:被检测的触点地址BOOLI、Q、M、D、LQ只接通一个扫描周期位地址2(M_BIT):存储被检测触点上一个扫描周期的状态Q、M、D触点负跳沿检测Q:单稳输出I、Q、M、D、LM_BITQNEG位地址2位地址1位地址1M_BITQPOS位地址2位地址1【例】
边沿检测指令的应用——传送带运动方向检测。在图示传送带一侧装配有两个反射式光电传感器(PEB1和PEB2)(安装距离小于包裹的长度),设计用于检测包裹在传送带上的移动方向,并用方向指示灯L1和L2指示。其中光电传感器触点为常开触点,当检测到物体时动作(闭合)。
端子连接图
梯形图5、其余RLO的直接操作指令
二、定时器1、脉冲定时器SP当RLO出现正跳沿,定时器则以设定的时间值启动,如果期间RLO为0,定时器即停止。
2、扩展定时器SE当RLO出现正跳沿,定时器则以设定的时间值启动,即使RLO变为0,定时器仍保持运行直到达到定时器的设定值才复位。
3、接通延时定时器SD当RLO出现正跳沿,则以设定的时间值启动定时器。达到设定时间后,定时器常开触点闭合并保持。当复位指令有效或运行期间RLO由1变化到0时,定时器复位。4、保持型接通延时定时器SS当RLO出现正跳沿,则以设定的时间值启动定时器,即使RLO由1变为0,定时器仍保持运行直到设定时间,此时,定时器常开触点闭合并保持。只有当复位指令有效时定时器才复位。5、关断延时定时器SF当RLO出现负跳沿,则以设定的时间值启动定时器。当RLO为1或定时器运行时,其常开触点闭合。达到定时时间后,常开触点断开。当复位指令有效或运行期间RLO由0变到1时,定时器复位。6、功能框表示定时器指令脉冲扩展脉冲接通延时保持型接通延时关断延时操作数数据类型存储区说明noTIMER-定时器编号SBOOLI、Q、M、D、L启动输入TVS5TIMEI、Q、M、D、L设置定时时间RBOOLI、Q、M、D、L复位输入QBOOLI、Q、M、D、L定时器状态输出BIWORDI、Q、M、D、L剩余时间输出(二进制码格式)BCDWORDI、Q、M、D、L剩余时间输出(BCD码格式)【例】某电机,当按下起动按钮SB1时,采用星型启动,5秒后自动转接为△运行;若按下SB2,则Y型启动并保持Y型运行,直至按下SB3,再转接为△运行。当按下停止按钮SB4或电机过载则电机立刻停止运行。
I/O接线图自动Y/△切换任务四Y-△起动控制手动Y/△切换7、时钟存储器在S7系列PLC的CPU位存储器M中,可以任意指定一个字节作为时钟脉冲存储器,当PLC运行时,指定字节的每一位能周期性地改变二进制值,即产生不同频率(或周期)的时钟脉冲。
位76543210时钟脉冲周期(s)21.610.80.50.40.20.1时钟脉冲频率(Hz)0.50.62511.2522.5510双击Hardware选择CPU的ObjectProperties设置时钟存储器三、计数器功能LAD指令操作数数据类型存储区说明设定计数值预置值WORDI、Q、M、D、L0~999,BCD码加计数器线圈计数器号noCOUNTERC计数器总数与CPU模板有关减计数器线圈加计数器减计数器加/减计数器操作数数据类型存储区说明noCOUNTERC计数器标号CUBOOLI、Q、M、D、L加计数输入CDBOOLI、Q、M、D、L减计数输入SBOOLI、Q、M、D、L计数器预置输入PVBOOLI、Q、M、D、L计数器初始值输入RBOOLI、Q、M、D、L计数器复位输入QBOOLI、Q、M、D、L计数器状态输出CVWORDI、Q、M、D、L当前计数值输出(整数格式)CV_BCDWORDI、Q、M、D、L当前计数值输出(BCD格式)1、计数器级联2、定时器与计数器级联
【例】已知电梯的PLC输入输出端子连接如下:一楼的平层信号为I0.0,上强迫减速信号为I0.2,下强迫减速信号为I0.4,设计梯形图,将楼层位置信息存放MW10。【例】设计一梯形图程序,当I0.0持续接通8小时后,Q4.0以2秒频率闪烁。第三节数据传送与转换指令数据传送与转换指令包括数据装入与传送指令、数据转换指令。一、数据装入与传送指令数据装入指令L与数据传送指令T用于在各个存储区之间交换数据及存储区与过程输入/输出模板之间交换数据。①在S7-300中,有两个32位的累加器:累加器1与累加器2。②当执行指令L时,将数据装入到累加器1中,累加器1中原有的数据被移入到累加器2中,累加器2中原有的数据被覆盖。③当执行指令T时,将累加器1中的数据复制到目的存储区中,而累加器1中的内容保持不变。④L和T指令操作位数:字节(8位)、字(16位)、双字(32位),当数据长度小于32位时,数据在累加器1中右对齐(低位对齐),其余各位填0。1、对累加器1的装入和传送有三种寻址方式:立即寻址、直接寻址和间接寻址。①立即寻址L+4LB#(3,5,7,6)LDW#16#ADCD_01AELP#I2.0LS5T#6SLD#2004_2_14LT#0D_2H_3M_0S_0MS
②直接寻址和间接寻址LIB[DBD2]LIW[AR2,P#5.0]TMW[MD11]LDIW[MD3]TLD[DBD11]③存储区间接寻址LW[AR2,P#4.0]2、装入剩余时间值或当前计数值
在定时器中以二进制格式保存剩余时间值。①装入定时器剩余时间值二进制格式读出指令形式:LTno(no为定时器编号)BCD码格式读出指令形式:LCTno(no为定时器编号)时基与时间值相乘就得到当前剩余时间②装入计数器当前计数值二进制格式读出指令形式:LCno(no为计数器编号)。BCD码格式读出指令形式:LCCno(no为计数器编号)。3、地址寄存器的装入和传送S7-300有两个地址寄存器:AR1和AR2。指令形式:LAR1操作数
LAR2操作数
TAR1操作数
TAR2操作数地址寄存器交换指令:CAR4、用梯形图指令表示装入和传送指令
梯形图指令操作数数据类型存储区说明ENBOOLI、Q、M、D、L允许输入ENOBOOL允许输出IN8、16、32位的所有基本数据类型源操作数(可以是常数)OUT8、16、32位的所有基本数据类型目的操作数LAR1P#I0.0LAR1DBD20TAR1AR2TAR1MD20
注:L缺省操作数,则将累加器1中的内容传送给地址寄存器;T缺省操作数,则将地址寄存器中的内容传送给累加器1。二、转换指令转换指令是将累加器1中的数据进行数据类型转换,转换的结果仍存放在累加器1中。
①BCD码与整数及长整数之间的转换指令说明BTI将累加器1低字中的3位BCD码转换为16位整数BTD将累加器1中的7位BCD码转换为32位整数ITB将累加器1低字中的16位整数码转换为3位BCD码ITD将累加器1低字中的16位整数码转换为32位整数DTB将累加器1中的32位整数码转换为7位BCD码DTR将累加器1中的32位整数码转换为32位整数②数的取反、取负操作
指令说明RND将实数化整为最接近的整数,四舍五入,如果小数部分等于5,则选择偶数结果,例如:1002.5化整为1002,1003.5化整为1004RND+将实数化整为大于或等于该实数的最小整数RND-将实数化整为小于或等于该实数的最大整数TRUNC取实数的整数部分(截去小数)执行的指令累加器1的内容累加器1内容说明化整前化整结果化整前化整结果RND+100.5-100.5+100-100+99.5-99.5+100-100将实数化整为最接近的整数RND++100.5-100.5+101-100+99.5-99.5+100-99将实数化整为大于或等于该实数的最小整数RND-+100.5-100.5+100-101+99.5-99.5+99-100将实数化整为小于或等于该实数的最大整数TRUNC+100.5-100.5+100-100+99.5-99.5+99-99取实数的整数部分(截去小数)③实数与长整数之间的转换指令说明INVI对累加器1低字中的16位整数求反码INVD对累加器1中的32位整数求反码NEGI对累加器1低字中的16位整数求补码NEGD对累加器1中的32位整数求补码NEGR对累加器1中的32位实数的符号位求补码第四节运算指令STEP7的运算指令包括算术运算指令,字逻辑运算指令和比较指令。
一、算术运算指令算术运算指令包括考加、减、乘、除四则运算,数据类型:整型INT、双整型DINT、实数REAL。①累加器1是主累加器,累加器2是辅助累加器,与主累加器进行运算的数据存储在累加器2中;②算术运算的结果保存在累加器1中;③运算结束累加器2中的值保持不变;④运算结果影响状态字中的CC1、CC0、OV、OS位
。1、整数算术运算指令
指令名称STL表示说明整数加法+I将累加器1、2中的低字(低16位)整数相加,16位运算结果保存在累加器1的低字中整数减法-I将累加器2低字中的16位整数减去累加器1低字中的16位整数,16位运算结果保存在累加器1的低字中整数乘法*I将累加器1、2中的低字(低16位)整数相乘,16位运算结果保存在累加器1的低字中整数除法/I将累加器2低字中的16位整数除以累加器1低字中的16位整数,16位的商存在累加器1的低字中,余数存在累加器1的高字中双整数加法+D将累加器1、2中32位整数相加,32位整数运算结果保存在累加器1中双整数减法-D将累加器2中的32位整数减去累加器1中的32位整数,32位运整数算结果保存在累加器1中双整数乘法*D将累加器1、2中的32位整数相乘,32位整数运算结果保存在累加器1中双整数除法/D将累加器2中的32位整数除以累加器1中的32位整数,32位的商存在累加器1中,余数被忽略除法取余MOD将累加器2中的32位整数除以累加器1中的32位整数,32位的余数存在累加器1中,商被忽略加常数法+累加器1中加一个16位或32位的整数常量,运算结果保存在累加器1中2、实数算术运算指令指令名称STL表示说明实数加法+R将累加器1、2中的32位实数进行相加,32位运算结果保存在累加器1中实数减法-R将累加器2中的32位实数减去累加器1中的32位整数,32位运算结果保存在累加器1中实数乘法*R将累加器1、2中的32位实数进行相乘,32位运算结果保存在累加器1中实数除法/R将累加器2中的32位实数数除以累加器1中的32位实数,32位的商存在累加器1中3、数学函数指令
绝对值指令ABS余弦函数指令COS
平方指令SQR正切函数指令TAN
平方根指令SQRT反正弦函数指令ASIN
自然对数指令LN反余弦函数指令ACOS
指数指令EXP反正切函数指令ATAN
正弦函数指令SIN运算指令整数双整数实数加法指令减法指令乘法指令除法指令二、字逻辑运算指令字逻辑运算指令是将两个字(数据长度为16位或32位)逐位进行逻辑运算,可以进行逻辑“与”、逻辑“或”和逻辑“异或”运算。①参与逻辑运算的两个字,分别存放在累加器1和2中或者是立即数(常数)。②字逻辑运算的结果存放在累加器1低字中,双字逻辑运算的结果存放在累加器1中;③运算结束累加器2中的值保持不变。④字逻辑运算结果将影响状态字的下列标志位:CC1:如果逻辑运算的结果为0,CC1被复位到0;
如果逻辑运算的结果为非0,CC1被置位到1。CC0:在任何情况下,被复位到0。OV:
在任何情况下,被复位到0。
STL指令LAD指令操作数数据类型存储区说明AWENBOOLI、Q、M、L、D两个16位的字逐位进行逻辑“与”运算ENOBOOLIN1WORDIN2WORDOUTWORDOWENBOOLI、Q、M、L、D两个16位的字逐位进行逻辑“或”运算ENOBOOLIN1WORDIN2WORDOUTWORDXOWENBOOLI、Q、M、L、D两个16位的字逐位进行逻辑“异或”运算ENOBOOLIN1WORDIN2WORDOUTWORDSTL指令LAD指令操作数数据类型存储区说明ADENBOOLI、Q、M、L、D两个32位的字逐位进行逻辑“与”运算ENOBOOLIN1WORDIN2WORDOUTWORDODENBOOLI、Q、M、L、D两个32位的字逐位进行逻辑“或”运算ENOBOOLIN1WORDIN2WORDOUTWORDXODENBOOLI、Q、M、L、D两个32位的字逐位进行逻辑“异或”运算ENOBOOLIN1WORDIN2WORDOUTWORD三、比较运算指令比较指令用于对累加器2与累加器1中的数据进行比较。①参与比较的两个数据的类型必须相同;类型:整数、长整数或实数;②比较类型有:等于==、不等于<>、大于>、小于<、大于等于>=、小于等于<=;③比较的结果为真,则RLO为1,否则为0。1、整数比较指令
==I
累加器2低字中的整数是否等于累加器1低字中的整数。<>I累加器2低字中的整数是否不等于累加器1低字中的整数。>I累加器2低字中的整数是否大于累加器1低字中的整数。<I累加器2低字中的整数是否小于累加器1低字中的整数。>=I累加器2低字中的整数是否大于等于累加器1低字中的整数。<=I累加器2低字中的整数是否小于等于累加器1低字中的整数。2、长整数比较指令
==D
累加器2中的长整数是否等于累加器1中的长整数。<>D累加器2中的长整数是否不等于累加器1中的长整数。>D累加器2中的长整数是否大于累加器1中的长整数。<D累加器2中的长整数是否小于累加器1中的长整数。>=D累加器2中的长整数是否大于等于累加器1中的长整数。<=D累加器2中的长整数是否小于等于累加器1低字中的长整数。3、实数比较指令
==R
累加器2中的实数是否等于累加器1中的实数。<>R累加器2中的实数是否不等于累加器1中的实数。>R累加器2中的实数是否大于累加器1中的实数。<R累加器2中的实数是否小于累加器1中的实数。>=R累加器2中的实数是否大于等于累加器1中的实数。<=R累加器2中的实数是否小于等于累加器1中的实数。【例】设计一个报警程序,要求当输入I0.0接通5次(M0.0)且I0.1接通小于3次(M0.1)时,报警输出Q4.0接通并自锁;按下复位键I0.2,Q4.0断开,清除I0.0、I0.1的接通次数。第五节移位指令一、移位指令分类1、有符号整数和长整数的右移指令2、无符号字型数据的左移和右移指令3、无符号双字型数据的左移和右移指令4、双字的循环左移和循环右移指令二、移位指令运算规则1、移位指令将累加器1中的数据逐位左移或逐位右移。2、累加器1中移位后空出的位,填0或符号位。3、移出位保存在状态字CC1中,CC0和OV被复位到0。4、循环移位指令的特点是:移出的空位填以从累加器中移出的位。三、移位指令
STL指令LAD指令操作数数据类型存储区说明SSIENBOOLI、Q、M、D、L有符号整数右移:当EN为1时,将IN中的整数数据向右逐位移动N位,送OUT。右移后空出的位补0(正数)或1(负数)ENOBOOLININTNWORDOUTINTSSDENBOOLI、Q、M、D、L有符号长整数右移:当EN为1时,将IN中的长整数数据向右逐位移动N位,送OUT。右移后空出的位补0(正数)或1(负数)ENOBOOLINDINTNWORDOUTDINTSLWENBOOLI、Q、M、D、L无符号字型数据左移:当EN为1时,将IN中的字型数据向左逐位移动N位,送OUT。左移后空出的位补0ENOBOOLINWORDNWORDOUTWORDSTL指令LAD指令操作数数据类型存储区说明SRWENBOOLI、Q、M、D、L无符号字型数据右移:当EN为1时,将IN中的字型数据向右逐位移动N位,送OUT。右移后空出的位补0ENOBOOLINWORDNWORDOUTWORDSLDENBOOLI、Q、M、D、L无符号双字型数据左移:当EN为1时,将IN中的双字型数据向左逐位移动N位,送OUT。左移后空出的位补0ENOBOOLINDWORDNWORDOUTDWORDSRDENBOOLI、Q、M、D、L无符号双字型数据右移:当EN为1时,将IN中的双字型数据向右逐位移动N位,送OUT。右移后空出的位补0ENOBOOLINDWORDNWORDOUTDWORDSTL指令LAD指令操作数数据类型存储区说明RLDENBOOLI、Q、M、D、L无符号双字型数据循环左移:当EN为1时,将IN中的双字型数据向左循环移动N位后送OUT。每次将最高位移出后,移进到最低位ENOBOOLINDWORDNWORDOUTDWORDRRDENBOOLI、Q、M、D、L无符号双字型数据循环右移:当EN为1时,将IN中的双字型数据向右循环移动N位后送OUT。每次当最低位移出后,移进到最高位ENOBOOLINDWORDNWORDOUTDWORD四、移位指令示例1、无符号左移四位
2、有符号右移四位
3、循环右移四位
【例】实现8个彩灯(L1-L8)依次延时1秒点亮并循环工作(一次只亮一盏灯)启动:I0.0;停止:I0.1;L1-L8:Q4.0-Q4.7。第六节控制指令在STEP7中,控制指令分为逻辑控制指令和程序控制指令。
一、逻辑控制指令逻辑控制指令是指逻辑块内跳转和循环指令。1、目标地址标号(简称标号)①标号最多为4个字符,第一个字符必须是字母,其余字符可以是字母或数字。如next:L100②在同一个逻辑块内的标号是惟一的,不能重复,在不同的逻辑块内,标号可以相同。③在LAD指令中,标号必须在一个网络的开始,如2、无条件跳转指令注:多分支跳转指令JL如果累加器1低字中低字节内容小于JL指令和由JL指令所指定的标号间的JU指令数量,JL指令将跳转到其中一条JU处执行,并由JU指令进一步跳转到目标地址;如果累加器1低字中低字节的内容为0,则直接执行JL指令下面的第一条JU指令;如果累加器1低字中低字节的内容为1,则直接执行JL指令下面的第二条JU指令;如果跳转的目的地超出了JU指令数量,则JL指令跳转到目的地列表中最后一个JU指令之后的第一个指令。
JL指令实例
L#sequencerJLerro//如果累加器中值大于2则跳转至erro,执行4JUstp0//如果累加器中值等于0则跳转至stp0,执行1JUstp1//如果累加器中值等于1则跳转至stp1,执行2JUstp2//如果累加器中值等于2则跳转至stp2,执行3erro:JUcommstp0:<程序段1>JUcommstp1:<程序段2>JUcommstp2:<程序段3>JUcommcomm:<程序段4>
3、条件跳转指令
STL指令说
明JC当RLO=1时跳转JCN当RLO=0时跳转JCB当RLO=1,且BR=1时跳转,指令执行时将RLO保存在BR中JNB当RLO=0,且BR=0时跳转,指令执行时将RLO保存在BR中JBI当BR=1时跳转。指令执行时,OR、FC清0,STA置1JNBI当BR=0时跳转。指令执行时,OR、FC清0,STA置1STL指令说明JO当OV=1时跳转JOS当OS=1时跳转,指令执行时,OS清0JZ累加器1中的计算结果为0时跳转JN累加器1中的计算结果为非0时跳转JP累加器1中的计算结果为正时跳转JM累加器1中的计算结果为负时跳转JMZ累加器1中的计算结果小于等于(非正)0时跳转JPZ累加器1中的计算结果大于等于0(非负)时跳转JUO实数溢出跳转LAD指令说明算术运算结果大于0,则动合触点闭合,动断触点断开。该指令检查条件码CC1和CC0的组合,决定触点与0的关系。算术运算结果小于0,则动合触点闭合,动断触点断开。该指令检查条件码CC1和CC0的组合,决定触点与0的关系。LAD指令说明算术运算结果大于等于0,则动合触点闭合,动断触点断开。该指令检查条件码CC1和CC0的组合,决定触点与0的关系。算术运算结果小于等于0,则动合触点闭合,动断触点断开。该指令检查条件码CC1和CC0的组合,决定触点与0的关系。算术运算结果等于0,则动合触点闭合,动断触点断开。该指令检查条件码CC1和CC0的组合,决定触点与0的关系。算术运算结果不等于0,则动合触点闭合,动断触点断开。该指令检查条件码CC1和CC0的组合,决定触点与0的关系。如果状态字的BR位(二进制结果位)为1,则动合触点闭合,动断触点断开如果算术运算结果溢出,则动合触点闭合,动断触点断开。该指令检查条件码CC1和CC0的组合,决定触点与0的关系4、循环指令
①以累加器1作为循环计数器。②循环体是指循环标号和循环指令LOOP之间的程序段。③循环指令每执行一次,循环计数值减1,若其值不为0,则返回到循环指令LOOP的标号处,否则执行其后的指令。④数值范围:W#16#0000~W#16#FFFF。⑤循环计数器的初值是0,那么循环将执行65535次。
L5NEXT:TMW10 LMD20 *DTMD20LMW10LOOP NEXTLMW24二、程序控制指令程序控制指令是指对功能块(FB、FC、SFB、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度水利工程施工合同示范文本(含安全要求)4篇
- 2022版义务教育体育与健康课程标准试卷
- 2024配电室设备安装及调试服务合同2篇
- 2024锚具供货合同
- 2024年高端人才招聘居间服务合同书3篇
- 2025年0号柴油油品认证居间服务协议3篇
- 2025年度生态大门研发与安装服务合同范本4篇
- 2025年度特色烹饪技艺传承厨师雇佣协议4篇
- 深圳房地产中介培训课件制作专业
- 2025年度旅游观光车租赁合同标的转让协议3篇
- 全自动化学发光分析仪操作规程
- 北仑区建筑工程质量监督站监督告知书
- 深蓝的故事(全3册)
- GB/T 42461-2023信息安全技术网络安全服务成本度量指南
- 职校开学第一课班会PPT
- 法考客观题历年真题及答案解析卷一(第1套)
- 央国企信创白皮书 -基于信创体系的数字化转型
- GB/T 36964-2018软件工程软件开发成本度量规范
- 6第六章 社会契约论.电子教案教学课件
- 机加车间各岗位绩效考核方案
- 小学数学专题讲座:小学数学计算能力的培养课件
评论
0/150
提交评论