【文档说明】plc课件-plc-3-第三章-s7-300plc的编程基础及指令系统.ppt,共(84)页,901.523 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45402.html
以下为本文档部分文字说明:
S7-300使用STEP7软件编程,STEP7是S7-300/400PLC的通用编程软件。STEP7标准版配备了梯形图(LAD)、语句表(STL)及功能块图(FBD)三种编程语言,各语言中的部分指令在STEP7中可互相转换。此外,可选编程语言软件还支持顺序功能图(SFC)、结构文本(
SCL)、连续功能图(CFC,仅S7-400PLC支持)等。第三章S7-300PLC编程基础及指令系统第1节S7-300PLC编程语言及基本程序结构一、ST-300PLC的编程语言二、用户程序的基本结构S7-300PLC的用户程序由程序块(或称为逻
辑块)和数据块组成。程序块包括组织块OB、系统功能块SFB、系统功能SFC、功能块FB、功能FC等。OB由操作系统调用,其它块由OB调用。OB可调用SFB、FB、SFC、FC。FB、FC可调用SFB
、FB、SFC、FC数据块为程序块提供相应的数据,包扩共享数据块和背景数据块。1、基本数据类型1)位(bit)BOOL型。其值为0或1。2)字节(Byte)BYTE型,8位二进制数组成1个字节。值为0~255。3)字(Word)WORD型。相邻
两个字节组成一个字,表示16位无符号数(含BCD)。值为0~65535。第2节基本数据类型及CPU内部寄存器一、基本数据类型及常数表示方法4)双字(DoubleWord)DWORD型。相邻两个字组成一个双字,表示32位无符号
数(含BCD)。其值为0~4294967295。5)字符(Character)CHAR型,表示一个ASCII字符(8位)。6)16位整数(Integer)INT型,表示16位有符号数。其值为
-32768~32767。7)32位整数(DoubleInteger)DINT型,表示32位有符号数。其值为-2147483648~2147483647。8)32位浮点数(Real)REAL型。表示32位IEEE745标准格式的浮点数(实数)。其值为±1
.175495E-38~±3.402823E+38。9)S5时间(S5Time)S5TIMER型,表示16位S5时间常数。其格式为S5T#aHbMcSdMS。(a、b、c、d对应时、分、秒、毫秒。10)IEC时间(Time)TIME型,表示32位IEC格式时间(有符号)。其值为-T#
24D20H31M23S648MS~T#24D20H31M23S648MS。11)IEC日期(Date)DATE型,表示16位IEC格式日期。其值为D#1990-1-1~D#2168-12-31.12
)24小时制时间(24hTime_Of_Day)TIME_OF_DATE型,32位24小时制格式时间。其值为TOD#0:0:0.0~TOD#23:59:59.9992.常数表示方法(常用部分)16位10进制整数及32位浮点数常
数输入时不需加字头。如123,-123,123.4,-123.4。浮点数将自动转成指数形式,如:1.234000e+002。浮点常数为整数值时,需加小数点。如123.0。符号说明2#2进制常数B#16#W#16#DW#16#16进制字节常数16进制字常数16进制双字常
数L#32位整数常数S5T#S5时间常数(16位)C#计数器常数(3位BCD,0~999)1.累加器(ACCU1、ACCU2)两个32位累加器,用于处理字节、字、双字。2.状态字寄存器16位状态字寄存器用于存储CPU执行指令的状态。第0
位(FC):首次检测位。为0时表示一个逻辑网络的开始。第1位(RLO):逻辑运算结果位。用于存储执行位逻辑或比较指令的结果。状态为1时表示逻辑运算结果为1或比较结果成立。015781234569OROVOSCC0CC1BR未使用FCRL
OSTA二、CPU内部寄存器第2位(STA):状态位。执行位逻辑指令时,STA总是与该位的值一致。第3位(OR):或位。在先逻辑“与”后逻辑“或”的逻辑运算中,OR位暂存逻辑“与”的操作结果。第4位(OV):溢出位。算术运算或浮点数比较指令执行出错
时置1。后续同类指令执行正常时,该位清0。第5位(OS):溢出状态保持位。OV置1时,OS置1,OV清0时,OS仍保持为1。(只能由JOS、块调用、块结束指令复位)第6位和第7位(CC0、CC1):条件码0和条件码1。两位结合用于表示算术运算或逻辑运算的结果与0的大小关系,以及比较指令的执
行结果或移位指令的移出状态。第8位(BR):二进制结果位。用于表示字操作的结果是否正确。1—正确,0—错误。3.地址寄存器(AR1和AR2)两个32位地址寄存器用于寄存器间接寻址。4.数据块地址寄存器S7-300PLC
中有两个数据块地址寄存器,一个用于共享数据块,一个用于背景数据块,均为32寄存器。寄存器中存有数据块编号及数据块长度。存储器有3个基本区域:装载存储器、工作存储器和系统存储器。1、装载存储器用于保存用户程序(不包括符号地址及注释)和系统数据
(即组态、连接和模块参数等)。部分型号的CPU内集成有装载存储器,而有些型号的CPU采用MMC作为装载存储器。对于集成的装载存储器具有掉电保护功能。使用MMC的装载存储器,因数据保存在MMC上,所以可认为能永久保留。第3节S7-
300PLC的存储区分布及寻址一、S7-300系列PLC的存储区分布2、工作存储器用于存储CPU运行时的用户程序和数据,OB(组织块)、FB(功能块)、FC(功能)、DB(数据块)等。只有与程序运行有关
的块被装入工作存储器,在CPU启动时,从装载存储器装入。工作存储器集成在CPU内且不可扩展,其容量及保持性特性与CPU型号有关,。3、系统存储器系统存储器是CPU为用户程序提供的存储器,也集成在CPU内且不可扩展。系统存储器分为若干区域,如:过程映像I/O区、
位存储区、定时器和计数器、堆栈区、诊断缓冲区,以及临时存储区等,需保持的数据可在组态时设置。存储系统构成及关系示意图(以配MMC的CPU为例)硬盘存储器MMC工作存储器逻辑块数据块系统数据块注释符号逻辑块数据块系统数据块工作存储器存放与执行相关的逻辑块以及组态数据。装载存储器编程
设备CPU模块装载存储器的剩余空间可作为一般的文件存储器使用系统存储器也集成在CPU内系统存储器:位存储器、定时器和计数器、I/O过程映像、本地数据二、S7-300系列PLC的寻址(地址分配)1、基于槽位的寻址基于槽位的寻址为默认设置。机架号为0~3,0号机架为CPU机架,其
余为扩展机架。CPU机架上的槽号为1~11,槽号1放置电源模块(PS),槽号2放置CPU模块(CPU),槽号3放置接口模块(IM),槽号4~11放置其它模块(SM、FM、CP)每个槽分配4个字节数字量地址(共32位)和16字节的模拟量地址
(共8个字)。基于槽位的寻址(以字节为单位)PSIMSMSMSMSMSMSMSMSMPSCPU模块IMSMSMSMSMSMSMSMSMCRER槽号起始地址(数字)起始地址(模拟)45678910110481216202428256272288304320336352368槽号起始地址
(数字)起始地址(模拟)456789101132364044485256603844004164324484644804962、用户自定义寻址使用用户定义寻址可以从CPU控制的地址区域中自由分配任何所
选则模块的地址。应注意,只有某些型号的CPU支持用户自定义寻址。3、信号模块的寻址数字量输入:I+字节地址+位地址IB+字节地址(0、1、2…)IW+字的低字节地址(0、2、4…)如I0.0,IB0,IW0(字地址为0、
2、4、…..偶数地址,即IW0由IB0和IB1组成,IW2由IB2和IB3组成)等。数字量输出:Q+字节地址+位地址QB+字节地址QW+字地址如Q0.0,QB0,QW0(字地址为0、2、4、…偶数字节地址)等。模拟量输入:
IW+字地址如IW256(字地址为偶数字节地址)模拟量输出:QW+字地址如QW288(字地址为偶数字节地址)4、外设I/O寻址对于没有I/O映像区的外部I/O,可采用直接访问方式访问(大部分S7-300PLC的CPU模块对模拟量I/
O的访问需采用此方式),称作过程I/O访问,字头为PI或PQ。外设I/O寻址支持字节(PIB、PQB)、字(PIW、PQW)、双字(PID、PQD)寻址。现以模拟量I/O为例:模拟量输入:PIW+字地址例如P
IW256(字地址为偶数字节地址)模拟量输出:PQW+字地址例如PQW272(字地址为偶数字节地址)5、位(状态)存储区寻址依CPU型号,存储器大小为128~2048B不等,支持位寻址、字节寻址、字寻址和双字寻址。位存储区以M标识,如:M0.0、MB0、MW
0、MD0(字地址为偶数地址0、2、4…,双字地址为0、4、8…)等。6、定时、计数器存储区寻址依CPU型号不同,可有64~256个定时器,32~256个计数器。定时器标识符为T,计数器标识符为C。如:T0,C0等。7、数据块DB(1)共享数据块(
SharedDB)共享数据块为系统或用户自定义的数据结构(与C语言中的结构类似),可供所有逻辑块使用。名称为DBn,n为编号(一般为1~2047,具体可定义的个数,视CPU型号而定),其属性Shared。在DB中可定义各种类型的数据变量,且可对变量赋初值
。支持DB绝对地址访问及变量形式访问。(2)背景数据块(InstanceDB)与某一功能块(FB)或系统功能块(SFB)相关联,名称也为DBn,但其结构由对应的FB/SFB决定。其属性为Instance,且属性中有其所归属的FB或SFB标识。(3)数据块的访问共享数据块与背景
数据块的访问方法相同。数据块中的数据可采用先打开,后访问或直接访问的方法来访问。先打开后访问时,先用数据块打开指令打开要访问的DBn,然后可直接采用DBXm1.m2、DBBm、DBWm、DBDm的直接地址形式访问。DBX为数据块中数据位的标识,如寻
址数据块中某一位时采用DBXm1.m2形式,m1为字节地址,m2为位地址。DBB为数据块中的数据字节,字节寻址为DBBm,m为字节地址。DBW为数据块中的数据字,字寻址为DBWm,m为偶数地址。DBD为
数据块中的数据双字,双字寻址为DBDm,m为0、4、8……等。直接访问时采用绝对地址访问或变量名称访问形式来访问。采用绝对地址访问的形式为DBn.DBXm1.m2、DBn.DBBm、DBn.DBWm、DBn.DBDm。采用变量名称访问的形式为DBn.变量名8、寻址方式概述
STEP7指令有四种寻址方式,即立即寻址、直接寻址、存储器间接寻址和寄存器间接寻址。(1)立即寻址操作数本身就在指令中,或因操作数是唯一的,在指令中不再给出。立即寻址主要用于常数操作数和某些状态寄存器操作。例如:
L25//整数37装入ACCU1L‘ABCD’//ASCII字符装入ACCU1LC#12//计数常数装入ACCU1AWW#16#0F1A//ACCU1低字和常数逐位“与”SET//RLO置1(2)直
接寻址所谓直接寻址,就是指令中直接给出操作数的存储单元。例如:AI0.0//”与“I0.0LIB0//将IB0的内容装入运算累加器1(ACCU1)LMW64//将MW64的内容装入ACCU1
=Q0.0//将RLO的内容赋给Q0.0SM1.0//M1.0置1TDBD10//将ACCU1中的内容传送至DBD12中(3)存储器间接寻址存储器间接寻址就是以存储器的内容作为地址,通过这个地址间接找到操作数。对于T、C、D
B、FB和FC的编号,因其范围在0~65535之间,只需16位地址,故使用字指针。其它地址(如I、Q、M及DB块中的位、字节、字、双字寻址),则采用双字地址。例如:16位地址OPNDB[MW2]//MW2内容为5,则为打开DB5SDT[MW4]//MW4内容
为2,则为启动T2双字指针格式:31~19位—均为0;18~3位—字节地址;2~0位—位地址;地址指针常数以P#标识,MD、LD和DBD可用于存储地址指针。32位地址示例程序:LP#2.3//将地址
2.3装入ACCU1TMD2//将ACCU1的内容(即地址2.3)传送至MD2AI[MD2]//对输入位I2.3进行与操作=Q[MD2]//结果输出至Q2.3(注:P#2.3为2#00000000000000000000000000010011)(4)地址寄存器间接寻址地址寄存器间接寻
址是使用地址寄存器AR1和AR2对存储区寻址。分为区域内寄存器间接寻址和区域间寄存器间接寻址区域内寄存器间接寻址程序示例如下:LP#8.7//将地址8.7装入ACCU1LAR1//将ACCU1内容装入AR1AI[AR1,P#0.0]//对I8.7进行“与”操作=Q[AR1,P#1.1
]//结果输出至Q10.0注:[AR1,P#0.0]为AR1内容(8.7)加上偏移量0.0(仍为8.7);[AR1,P1.1]为AR1内容(8.7)加上偏移量1.1(为10.0),位运算为八进制,字节运算为十进制;区域间寄存器间接寻址程序示例如下:LP
#I7.3//将I7.3的地址装入ACCU1LAR1//将ACCU1内容装入AR1LP#Q8.3//将I7.3的地址装入ACCU1LAR2//将ACCU1内容装入AR2A[AR1,P#0.0]//对I8.7进行“与”操作
=[AR2,P#1.1]//结果输出至Q10.0与区域内寻址的区别是在前面的地址中直接指定了区域(I和Q),而在后面的操作中不再指定区域。(1)“与”和“与非”操作“与”是以常开点开始的串联逻辑行,或者是串联单个常开点。“
与非”是以常闭点开始的串联逻辑行,或者是串联单个常闭点。触点可以是I区、Q区、M区、DB块内的BOOL点、定时器T和计数器C的状态点,以及临时状态点。第4节S7-300PLC的指令系统一、位逻辑、装入/传送及定时/计数指令1.位逻辑指令例如:I0.0I0.1I0.0I0.1LA
D指令STL指令AI0.0AI0.1AI0.0ANI0.1I0.1I0.0ANI0.0AI0.1(2)“或”和“或非”操作“或”是以常开点开始的并联逻辑行,或者是并联单个常开点。“或非”是以常闭点开始的并联逻辑行,或者是并联单个常闭点。触点同
1)。例如:OI0.0ONI0.1I0.0I0.1LAD指令STL指令OI0.0OI0.1I0.0I0.1(3)“非”操作RLO取“非”。(4)输出操作将逻辑运算结果输出至指定存储位。存储位可以是Q区、M区、
DB块内的BOOL点,以及临时状态点。|NOT|LAD指令STL指令NOTLAD指令STL指令()Q0.0=Q0.0(5)“与”操作嵌套开始及结束由于程序按先“与”后“或”次序执行,当需要先进行“或”操作时,使用该指令。A(开始)
结束例如:LADSTL指令I0.0I0.1Q4.1()Q4.1A(OI0.0OQ4.1)ANI0.1=Q4.1A(ONI0.0OI0.2)A(OI0.1ONI0.3)ANC2=Q4.3STL指令I0.0I0.2I0.3I
0.1C2()Q4.3LAD(6)逻辑行“或”操作(O)由于程序按先“与”后“或”次序执行,当出现逻辑行“或”操作时,使用不带地址的O指令。例如:ANI0.0AI0.1OAI0.2ANI0.3=Q4.2LADSTL指令I0.0I0.2I
0.3I0.1()Q4.2(7)复位(R)、置位(S)操作、对应点的置1或置0。(8)上升沿检测(P)和下降沿检测(N)RLO上升沿检测和下降沿检测。RQ1.2STL指令LAD指令SM1.2STL指令LAD指
令FPM1.2STL指令LAD指令(P)M1.2FNM1.2STL指令LAD指令(N)M1.2(R)Q1.2(S)M1.2(9)RLO状态保存至BR(SAVE)(10)地址下降沿(NEG)和上升沿检测(POS)S
AVESTL指令LAD指令AI0.0BLD100FNM1.0=Q0.0STL指令LAD指令AI0.0BLD100FPM1.0=Q0.0NEGM_BITQI0.0M1.0()Q0.0POSM_BITQI0.0M1.0()Q0.0(SAVE)(11)RS触发器
、SR触发器置位优先触发器(RS)和复位优先触发器(SR)。AI0.0RM0.1AI0.1SM0.1LADSTL指令AI0.0SM0.2AI0.1RM0.2I0.0I0.1RSRQSM0.1I0.0I0.1SRSQRM0.2这两条是STL指令,无对应的梯形图指令。STL
编程及一些梯形图转为STL指令时会用到。(1)装入指令(L)装入指令L将源操作数装入累加器1中,累加器1中的原有数据移入累加器2中。如:LMW0(2)传送指令(T)传送指令T将累加器1中的内容传送至目的存储器中,累加器1的内容不变。如:TMD102.装入指令与传送指令(1)定时器
接通延时定时器(S_ODT)I0.1I0.2当前值Q4.0S—启动端R—复位端TV—定时时间(1~9990s)Q—输出端BI—16进制当前值BCD—BCD码当前值S5T#3SI0.2I0.1()Q4.0MW1
0MW12T1S_ODTSQTVBIBCDR3.定时/计数指令(常用部分)定时器指令使用示例:AI0.1LS5T#3SSDT1AI0.2RT1LT1TMW10LCT1TMW12AT1=Q4.0AT1=M1.0S5T#3SI0.2I0.1()Q4.0
MW10MW12T1S_ODTSQTVBIBCDRT1M1.0()Network1Network2断开延时定时器(S_OFFDT)I0.1I0.2当前值Q4.0各端说明同前S5T#3SI0.2I0.1()Q4.0MW10MW12T1S_OFFDTSQ
TVBIBCDR定时器指令简化形式:当不使用强制复位端及不显示当前值时,可使用定时器简化形式指令。例如:AI0.1LS5T#3SSDT1I0.1T1(SD)S5T#3SI0.1T2(SF)S5T#5SAI0.1LS5T#5SSFT2S5T#3SI0.1T1S_ODTSQTVBI
BCDRS5T#5SI0.1T2S_OFFDTSQTVBIBCDR(2)计数器减计数器(S_CD)设定值为0~999。CD—计数端S—计数设置端PV—计数设定值R—复位端Q—输出端CV—16进制当前值CV_BCD—BC
D码当前值。C#3I0.3I0.1()Q4.0MW10MW12S_CDCDQPVCVCV_BCDRI0.2SC10计数当前值不为零时,计数器状态输出为1(ON),否则为0(OFF)。当计数设置端S为1时,将计数设定值(PV端规定)送
如计数器。然后,计数端(CD端)每接通一次,计数值减1。当计数值减为0时,计数器状态输出由1(ON)变为0(OFF)。当复位端(R端)为1(ON)时,计数器复位。再次启动计数前,需再次通过S端设置。减计数器指令应用示例C#3I0.3I0.1()Q4.0MW10MW12S_CDC
DQPVCVCV_BCDRI0.2SC0AI0.1CDC0BLD101AI0.2LC#3SC0AI0.3RC0LC0TMW10LCC0TMW12AC0=Q4.0Q4.2()C0AC0=Q4.2Network1Network2加计数器(S_CU)计数值为0时,状态输出为0,否则为1。计数范围
为0~999CD—计数端S—计数设置端PV—计数值R—复位端Q—输出端CV—16进制当前值CV_BCD—BCD码当前值。C#3I0.3I0.1()Q4.0MW10MW12S_CUCUQPVCVCV_BC
DRI0.2SC10(1)延时接通,延时断开I0.0Q4.16s3sI0.0T0(SD)S5T#3SQ4.1()T0Q4.1T1Q4.1I0.0T1(SD)S5T#6S4.位逻辑及定时/计数器指令应用(2)振荡器(脉冲发生器)S5T#3ST2T1S_ODTSQTVBIBCDRS5T#1ST2
S_ODTSQTVBIBCDRI0.0I0.0Q4.01s3s3s1s()Q4.0T1(3)定时器T0T1(SD)S5T#10MN2T1T2T2(SD)S5T#1HN4C0T2C#3S_CDCDQPVCVCV_BCDRI0.0SN3I0.0T0(SD)S5T#5SN1
()Q4.0N5C0I0.0(4)一般闪光报警系统S5T#500MST0T1(SD)N2T0Q4.0()N3M0.1I0.2I0.0I0.1M0.1()N4M0.1I0.0I0.0Q4.1()N5M0.1I0.0为报警信
号I0.1为确认按钮I0.2为试灯按钮闪烁程序报警灯控制警铃控制确认信号I0.0T0(SD)S5T#500MSN1T1M0.1梯形图中的传送指令:MOVE—移动ENENOINOUTMOVEIN端和OUT端可以是所有长度为8、16或32位的基本数据类型,且IN端可以是
各类常数。当EN端(使能端)为1时,将IN端数据传入OUT端,且使ENO=1。二、数据处理及算数运算指令1.移动(梯形图中传送)指令移动指令使用示例:A(AI0.1JNB_001L100TMW4SETSAVECLR_001:ABR)┆/
/如RLO=0,则跳至标号_001处,且BR=RLO。//将常数100装入累加器1低字//将累加器1低字内容传至MW4//将RLO置1//将RLO存入BR位(执行正确为1)//将RLO置为0ENENOINOUTMOVE100M
W4I0.1ENENOINOUTMOVEMB8IB2()Q4.0注:第2个MOVE的STL指令忽略比较指令用于比较累加器1与累加器2中的数据大小,被比较的两个数的数据类型应相同。数据类型可以是整数(I)、双字整数(D)或浮点数(R、即实数)如果比较条件满足,则ROL为1,否则为0。比较条件包括
==、<>、>、<、>=、<=。CPU状态寄存器中的CC0和CC1位用来表示两个数的大于、小于和等于关系(00相等、01为小于、10为大于)。2.比较指令语句表指令?I整数比较?D双字整数比较?R
浮点数比较?可以是==、<>、>、<、>=、<=。梯形图指令IN2CMP?IIN1IN2CMP?DIN1IN2CMP?RIN1比较指令使用示例:IN2CMP<=IIN1MW2I0.1MW4()Q4.0AI0.1A(LMW2LMW4<=I)=Q4.01)整数运算指令单字加
、减、乘、除指令:+I、-I、*I、/IENENOIN2OUTADD_IIN1ENENOIN2OUTSUB_IIN1ENENOIN2OUTMUL_IIN1ENENOIN2OUTDIV_IIN13.算数运算
指令整数运算指令使用示例:A(AI0.1JNB_001L10LMW4+ITMW6ANOVSAVECLR_001:ABR)JNB_002LMW6LMW8-ITMW10ANOVSAVECLR_002:ABR=Q4.0JNB_002LMW6LMW8-ITMW10_002:NOP0ENENOIN2
OUTADD_IIN110I0.1MW4()Q4.0MW6ENENOIN2OUTSUB_IIN1MW6MW8MW10(有Q4.0时)(无Q4.0时)双字加、减、乘、除指令+D、-D、*D、/DENENOIN
2OUTADD_DIIN1ENENOIN2OUTSUB_DIIN1ENENOIN2OUTMUL_DIIN1ENENOIN2OUTDIV_DIIN1双字整数运算指令使用示例:ENENOIN2OUTADD_DIIN1MD20I0.1L#10M
D24A(AI0.1JNB_001LMD20LL#10*DTMD24ANOVSAVECLR_001:ABR)JNB_002LMD24LL#3/DTMD28_002:NOP0ENENOIN2OUTSUB_DIIN1MD24L#3MD28浮点数加、减、乘、除指令+
R、-R、*R、/RENENOIN2OUTADD_RIN1ENENOIN2OUTSUB_RIN1ENENOIN2OUTMUL_RIN1ENENOIN2OUTDIV_RIN1浮点数运算指令使用示例:ENENOIN2OUTADD_RIN1MD2012.5MD10
ENENOIN2OUTMUL_RIN1MD1010.0MD14A(LMD20L1.250000e+001+RTMD10ANOVSAVECLRABR)JNB_001LMD10L1.000000e+001*
RTMD14_001:NOP0浮点数的其它运算包括取绝对值(ABS)、平方(SQR)、开平方(SQRT)、自然指数(EXP)、自然对数(LN)、正弦(SIN)、余弦(COS)、正切(TAN)、反正弦(ASIN)、反余弦(ACOS)、反正切(ATAN)(各角度为弧度单位
),例如ENENOINOUTABSENENOINOUTSQRTENENOINOUTEXPENENOINOUTLNENENOINOUTSINENENOINOUTSQR单字左移(SHL_W)、单字右移(SHR_W)双字左移(SHL_DW)、双字右移(SHR_D
W)移出位丢失,补位位为0,例如SHL_W:ENOENOUTINNXXX_XXEN使能输入ENO使能输出IN要移位的值N要移动的位数OUT移位指令的结果150D04.移位/循环移位指令双字循环左移(ROL_DW)双字循
环右移(ROR_DW)ENOENOUTINNXXX_XXEN使能输入ENO使能输出IN要移位的值N要移动的位数OUT移位指令的结果310ROR_DWD310ROL_DWD移位类指令使用示例:ENOENOUTINNSHL_WQW0I0.1MW0QW0(P)E
NENOINOUTMOVE1QW0I0.02M3.0IN2CMP==IIN1ENENOINOUTMOVEMW0QW01ENENOINOUTMOVEQW00I0.0I0.1STL程序A(AI0.0JNB_001L1TQW0SETSAVECLR
_001:ABR)JNB_002L2TMW0_002:NOP0A(AI0.1FPM3.0JNB_003LMW0LQW0SLWTQW0SETSAVECLR_003:ABR)A(LQW0L0==I)JNB_004L1
TQW0_004:NOP0Network1:Network2:单字“与”(WAND_W)、双字“与”(WAND_DW)单字“或”(WOR_W)、双字“或”(WOR_DW)单字“异或”(WXOR_W)双字“异或”(WX
OR_DW)ENOENOUTIN1IN2XXXX_XXEN使能输入ENO使能输出IN1逻辑运算第1个值IN2逻辑运算第2个值OUT逻辑运算的结果5.字逻辑运算指令字逻辑指令使用示例:ENENOIN2OUTWOR_WIN1MW0MW2MW4ENENOIN2OUTWAND_WIN1MW4MW
6MW8A(LMW0LMW2OWTMW4SETSAVECLRABR)JNB_001LMW4LMW6AWTMW8_001:NOP0包括整数、BCD、浮点数之间的转换,以及取反、求补、取整等。BCD_IBCD码转换为整型(STL:
BTI)I_BCD整型转换为BCD码(STL:ITB)BCD_DIBCD码转换为长整型(STL:BTD)I_DI整型转换为长整型(STL:ITD)DI_BCD长整型转换为BCD码(STL:DTB)DI_R整型转换为浮点型(STL:DTR)INV_I整数求反码(STL:INVI)I
NV_DI长整数求反码(STL:INVD)6.转换指令NEG_I对整数求补码(STL:NEGI)NEG_DI对长整数求补码(STL:NEGD)NEG_R浮点数取反(STL:NEGR)ROUND舍入取整为长整型(S
TL:RND)TRUNC截取长整数部分(STL:TRUNC)CEIL向上取整(STL:RND+)FLOOR向下取整(STL:RND-)ENOENOUTINXXXXEN使能输入ENO使能输出IN输入数据OUT结果转换指令使用示例:ENENOOUTI_DII
N1MW0MD2ENENOOUTDI_RIN1MD2MD6A(LMW0ITDTMD2SETSAVECLRABR)JNB_001LMD2DTRTMD6_001:NOP0状态位指令属于位逻辑指令,用于对状态字的位进行处理。二进制结果位(BR)被置位(即信号状态为1)
。数学运算函数发生溢出(OV)或存储溢出(OS)。数学运算函数的结果是无序的(UO)。数学运算函数的结果与0的关系有:==0、<>0、>0、<0、>=0、<=0。可以采用是常开或常闭点,如同地址接点,例如:BR>0OV==07.状态位指令状态
位指令使用示例:ENENOIN2OUTSUB_RIN1MD1010.1MD14>=0()Q4.0A(LMD10L1.010000e+001-RTMD14ANOVSAVECLRABR)A>=0=Q4.0(1)梯形图中的跳转指令无条件跳转和条件跳转指令JMP
条件跳转为逻辑运算结果RLO=1时跳转。RLO=0跳转指令JMPN三、程序执行控制指令1.跳转指令(JMP)LABEL(JMP)LABELI0.2条件跳转无条件跳转(JMPN)LABELI0.2标号LABELLABEL为首字符为字母的标识符
。(2)STL指令中的部分跳转指令无条件跳转:JU根据上一指令语句生成的逻辑运算结果(RLO)来跳转:JC(RLO=1跳转)、JNC(RLO=0跳转)根据计算结果来跳转:JZ(等于0跳转)、JN(不等于0跳转)JP(大于0跳转)、JM(小于0跳转)JPZ(大
于等于0跳转)、JMZ(小于等于0跳转)跳转指令使用示例:AI0.4JCLAB1AI0.5=Q4.1LAB1:AI0.5=Q4.2I0.4LAB1(JMP)N1I0.5Q4.1()N2LAB1N3I0.5Q4.2()
只在STL中使用,无对应的LAD指令。格式地址标号:┇┇LOOP地址标号LOOP跳转标号:该指令对ACCU1-L(ACCU1的低字)进行减1操作,并在ACCU1-L<>0时跳转至标号处;若ACCU1-L=0,则顺序向下执行。循
环体2.循环控制指令LOOP循环控制指令的使用:初始化循环计数器程序段A循环计数器减1循环计数器=0?YN┇L5LAB1:TMW10┇┇LMW10LOOPLAB1程序段A(1)逻辑块指令逻辑块包括功
能(FC)、功能块(FB)、系统功能(SFC)、系统功能块(SFB)的调用,相当于子程序或函数调用。逻辑块指令包括逻辑块结束、逻辑块调用等指令。(2)数据块指令数据块指令包括数据块的打开、数据块内容交换、数据块长度和编号的获取等。有
关逻辑块和数据块指令的使用将在编程部分介绍。3.逻辑块与数据块指令主控继电器指令包括四条指令:MCRA:激活MCR区MCR<:打开主控继电器区MCR>:关闭主控继电器区MCRD:取消MCR区MCRI1I2I3I4Q1Q1MCR电源母
线A电源母线B继电器式线路4.主控继电器指令主控继电器指令的使用:I0Q1MCRI1MCRQ2I2Q3I3I4MCRA(MCRA)(MCR<)I0.0()I0.1Q4.1()I0.2Q4.2()I0.3Q4.3I0.4(MCR>)(MCRD)AI0.0MCR(AI0.1=Q4.1OI
0.3OI0.4=Q4.3)MCRMCRDAI0.2=Q4.2这类指令是STL指令,无对应的LAD指令。(1)程序显示指令BLD该指令用于编程设备(PG)的图形显示。梯形图或FBD程序编译时将自动创建,执行程序时不产生任何操作。指令形式为:BLDn(n=0~255)(2)空操作指令NOP
0和NOP1占位指令,无任何操作。NOP0指令代码为16个0(即用0占位);NOP1指令代码为16个1(即用1占位);5.程序显示和空操作指令程序显示和空操作指令示例:C#3I0.3I0.1MW12S_CDCDQ
PVCVCV_BCDRI0.2SC0AI0.1CDC10BLD101AI0.2LC#3SC0AI0.3RC0NOP0LCC0TMW12NOP0Q4.2()C0AC0=Q4.2