S7300编程语句手册汇总.doc

上传人:文库蛋蛋多 文档编号:2385671 上传时间:2023-02-17 格式:DOC 页数:35 大小:1.14MB
返回 下载 相关 举报
S7300编程语句手册汇总.doc_第1页
第1页 / 共35页
S7300编程语句手册汇总.doc_第2页
第2页 / 共35页
S7300编程语句手册汇总.doc_第3页
第3页 / 共35页
S7300编程语句手册汇总.doc_第4页
第4页 / 共35页
S7300编程语句手册汇总.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《S7300编程语句手册汇总.doc》由会员分享,可在线阅读,更多相关《S7300编程语句手册汇总.doc(35页珍藏版)》请在三一办公上搜索。

1、S7-300编程语言与指令孟令生整理STEP 7编程语言介绍2数据类型4参数数据类型5PLC用户存储区的分类及功能6指令操作数6寻址方式7状态字9基本逻辑指令10置位和复位指令12RS和SR触发器13跳变沿检测指令13定时器与计数器指令16计数器指令21访问CPU的时钟存储器23数字指令24装入和传送指令24转换指令26比较指令29算数运算指令30移位指令32控制指令33 STEP 7编程语言介绍STEP 7是S7-300/400系列PLC应用设计软件包,所支持的PLC编程语言非常丰富。该软件的标准版支持STL(语句表)、LAD(梯形图)及FBD(功能块图)3种基本编程语言,并且在STEP 7

2、中可以相互转换。专业版附加对GRAPH(顺序功能图)、SCL(结构化控制语言)、HiGraph(图形编程语言)、CFC(连续功能图)等编程语言的支持。不同的编程语言可供不同知识背景的人员采用。 STL(语句表) STL(语句表)是一种类似于计算机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语句表可供习惯汇编语言的用户使用,在运行时间和要求的存储空间方面最优。在设计通信、数学运算等高级应用程序时建议使用语句表。 FBD(功能块图) FBD(功能块图)使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示。FBD比较适合于有数字电路基础的编程人员使用。 GRAPH(顺

3、序控制)GRAPH类似于解决问题的流程图,适用于顺序控制的编程。利用S7-GRAPH编程语言,可以清楚快速地组织和编写S7 PLC系统的顺序控制程序。它根据功能将控制任务分解为若干步,其顺序用图形方式显示出来并且可形成图形和文本方式的文件。 HiGraph(图形编程语言) S7-Higraph允许用状态图描述生产过程,将自动控制下的机器或系统分成若干个功能单元,并为每个单元生成状态图,然后利用信息通讯将功能单元组合在一起形成完整的系统。 数据类型1.数组(ARRAY)数组是由一组同一类型的数据组合在一起而形成的复杂数据类型。数组的维数最大可以到6维;数组中的元素可以是基本数据类型或者复杂数据类

4、型中的任一数据类型(Array类型除外,即数组类型不可以嵌套);数组中每一维的下标取值范围是-3276832767,要求下标的下限必须小于下标的上限。2.结构(STRUCT)结构是由一组不同类型(结构的元素可以是基本的或复杂的数据类型)的数据组合在一起而形成的复杂数据类型。结构通常用来定义一组相关的数据,例如电机的一组数据可以按如下方式定义: 3.字符串(STRING)字符串是最多有254个字符(CHAR)的一维数组,最大长度为256个字节(其中前两个字节用来存储字符串的长度信息)。字符串常量用单引号括起来,例如: 4.日期和时间(DATE_AND_TIME)用于存储年、月、日、时、分、秒、毫

5、秒和星期,占用8个字节,用BCD格式保存。星期天的代码为1,16的代码为27。例如: 5.用户定义的数据类型(UDT) 用户定义数据类型表示自定义的结构,存放在UDT块中(UDT1UDT65535),在另一个数据类型中作为一个数据类型“模板”。当输入数据块时,如果需要输入几个相同的结构,利用UDT可以节省输入时间。 6.功能块类型(FB、SFB) 这种数据类型仅可以在FB的静态变量区定义,用于实现多背景DB。 参数数据类型参数类型是一种用于逻辑块(FB、FC)之间传递参数的数据类型,主要有以下几种: (1)TIMER(定时器)和COUNTER(计数器)。 (2)BLOCK(块):指定一个块用作

6、输入和输出,实参应为同类型的块。 (3)POINTER(指针):6字节指针类型,用来传递DB的块号和数据地址。(3)ANY:10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。 PLC用户存储区的分类及功能指令操作数指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标识符和参数组成。操作标识符由主标识符和辅助标识符组成,主标识符用来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位(如:位、字节、字、双字等)。 主标识符有:I(输入过程映像寄存器、Q(输出过程映像寄存器)、M(位存储器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数

7、器)、DB(数据块寄存器)和L(本地数据寄存器); 辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)。 寻址方式所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方式给出操作数。S7-300有4种寻址方式: 立即寻址 存储器直接寻址 存储器间接寻址 寄存器间接寻址 1.立即寻址 立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指令中,或以惟一形式隐含在指令中。下面各条指令操作数均采用了立即寻址方式,其中“/”后面的内容为指令的注释部分,对指令没有任何影响。 2.存储器直接寻址 存储器直接寻址,简称直接寻址。该寻址方式在指令中直接给出操作数的存储单元地址。

8、存储单元地址可用符号地址(如SB1、KM等)或绝对地址(如I0.0、Q4.1等)。下面各条指令操作数均采用了直接寻址方式。 3.存储器间接寻址(1/3)存储器间接寻址,简称间接寻址。该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的内容是操作数所在存储器单元的地址。该存储器一般称为地址指针,在指令中需写在方括号“”内。地址指针可以是字或双字,对于地址范围小于65535的存储器可以用字指针;对于其他存储器则要使用双字指针。【例4-3-1】 存储器间接寻址的单字格式的指针寻址。 存储器间接寻址的双字指针的格式如图所示。【例4-3-2】 存储器间接寻址的双字格式的指针

9、寻址。 5.寄存器间接寻址寄存器间接寻址,简称寄存器寻址。该寻址方式在指令中通过地址寄存器和偏移量间接获取操作数,其中的地址寄存器及偏移量必须写在方括号“”内。在S7-300中有两个地址寄存器AR1和AR2,用地址寄存器的内容加上偏移量形成地址指针,并指向操作数所在的存储器单元。地址寄存器的地址指针有两种格式,其长度均为双字,指针格式如图所示。 第一种地址指针格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。 【例4-3-3】 区内寄存器间接寻址。第二种地址指针格式适用于区域间寄存器间接寻址。 【例4-3-4】 区域间寄存器间接寻址。第一种地址指针格式包括被寻址数据所在存储单元地址的字节编

10、号和位编号,至于对哪个存储区寻址,则必须在指令中明确给出。这种格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。 第二种地址指针格式包含了数据所在存储区的说明位(存储区域标识位),可通过改变标识位实现跨区域寻址,区域标识由位2624确定。这种指针格式适用于区域间寄存器间接寻址。状态字状态字用于表示CPU执行指令时所具有的状态信息。 首位检测位(FC) 逻辑操作结果(RLO) 状态位(STA) 或位(OR) 溢出位(OV) 溢出状态保持位(OS) 条件码1(CC1)和条件码0(CC0) 二进制结果位(BR)位逻辑指令位逻辑指令处理的对象为二进制位信号。位逻辑指令扫描信号状态“1”和“0”位,

11、并根据布尔逻辑对它们进行组合,所产生的结果(“1”或“0”)称为逻辑运算结果,存储在状态字的“RLO”中。 常闭触点常闭触点(动断触点)则对“0”扫描相应操作数。在PLC中规定:若操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“复位”,即触点仍保持闭合。 常闭触点所使用的操作数是:I、Q、M、L、D、T、C。输出线圈(赋值指令) 输出线圈与继电器控制电路中的线圈一样,如果有电流(信号流)流过线圈(RLO=“1”),则被驱动的操作数置“1”;如果没有电流流过线圈(RLO=“0”),则被驱动的操作数复位(置“0”)。输出线圈只能出现在梯形图逻辑串的最右边。 输出线圈

12、等同于STL程序中的赋值指令(用等于号“=”表示),所使用的操作数可以是:Q、M、L、D。 中间输出 在梯形图设计时,如果一个逻辑串很长不便于编辑时,可以将逻辑串分成几个段,前一段的逻辑运算结果(RLO)可作为中间输出,存储在位存储器(I、Q、M、L或D)中,该存储位可以当作一个触点出现在其他逻辑串中。中间输出只能放在梯形图逻辑串的中间,而不能出现在最左端或最右端。 与下面程序等效基本逻辑指令逻辑“与” 指令 逻辑“与” 指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑“与” 运算。逻辑 “与非”指令 逻辑 “与非”指令使用的操作数可

13、以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑 “与非”运算。逻辑 “或”指令 逻辑 “或”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑 “或”运算。逻辑 “或非”指令 逻辑 “或非”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑 “或非”运算。逻辑 “异或”指令 逻辑 “异或非”指令 逻辑块的操作 置位和复位指令置位(S)和复位(R)指令根据RLO的值来决定操作数的信号状态是否改变,对于置位指令,一旦RLO为“1”,则操作数

14、的状态置“1”,即使RLO又变为“0”,输出仍保持为“1”;若RLO为“0”,则操作数的信号状态保持不变。对于复位操作,一旦RLO为“1”,则操作数的状态置“0”,即使RLO又变为“0”,输出仍保持为“0”;若RLO为“0”,则操作数的信号状态保持不变。这一特性又被称为静态的置位和复位,相应地,赋值指令被称为动态赋值。RS和SR触发器 l RS触发器为“置位优先”型触发器(当R和S驱动信号同时为“1”时,触发器最终为置位状态);l SR触发器为“复位优先”型触发器(当R和S驱动信号同时为“1”时,触发器最终为复位状态)。 RS触发器和SR触发器的“位地址”、置位(S)、复(S)及输出(Q)所使

15、用的操作数可以是:I、Q、M、L、D。 3.RS触发器和SR触发器的工作时序跳变沿检测指令STEP 7中有2类跳变沿检测指令,一种是对RLO的跳变沿检测的指令,另一种是对触点的跳变沿直接检测的梯形图方块指令。1.RLO上升沿检测指令 2.RLO下降沿检测指令 3.RLO边沿检测指令的工作时序触点信号上升沿检测指令 触点信号下降沿检测指令 触点信号边沿检测指令的工作时序定时器与计数器指令S_PULSE(脉冲S5定时器)S_PULSE(脉冲S5定时器)S_PULSE(脉冲S5定时器)S_PEXT(扩展脉冲S5定时器)S_PEXT(扩展脉冲S5定时器)S_ODT(接通延时S5定时器)S_ODTS(保

16、持型接通延时S5定时器)S_OFFDT(断电延时S5定时器)计数器指令S7-300的计数器都是16位的,因此每个计数器占用该区域2个字节空间,用来存储计数值。不同的CPU模板,用于计数器的存储区域也不同,最多允许使用64512个计数器。计数器的地址编号:C0C511。 S_CUD(加/减计数器)块图指令 S_CU(加计数器)块图指令 S_CD(减计数器)块图指令 计数器的线圈指令 除了前面介绍的块图形式的计数器指令以外,S7-300系统还为用户准备了LAD环境下的线圈形式的计数器。这些指令有计数器初值预置指令SC、加计数器指令CU和减计数器指令CD。 l 加计数器线圈指令应用示例初值预置SC指

17、令若与CU指令配合可实现S_CU指令的功能。 减计数器线圈指令应用示例SC指令若与CD指令配合可实现S_CD指令的功能。 l 加/减计数器线圈指令应用示例SC指令若与CU和CD配合可实现S_CUD的功能。访问CPU的时钟存储器要使用该功能,在硬件配置时需要设置CPU的属性,其中有一个选项为Clock Memory,选中选择框就可激活该功能。 设置CPU的时钟存储器在Memory Byte区域输入想为该项功能设置的MB的地址,如需要使用MB10,则直接输入10。Clock Memory的功能是对所定义的MB的各个位周期性地改变其二进制的值(占空比为1:1)。Clock Memory的各位的周期及

18、频率见表。 【例4-5-5】 时钟存储器与计数器的应用。 当定时器不够用时,可以将计数器扩展为定时器。图中分别给出了用减计数器扩展定时器的控制程序,程序中使用了CPU的时钟存储器,设置MB10为时钟存储器,由表4-39可知M10.0的变化周期为0.1s。 数字指令装入和传送指令装入指令(L)和传送指令(T),可以对输入或输出模块与存储区之间的信息交换进行编程。对累加器1的装入指令 . 状态字与累加器1之间的装入和传送指令 L STW(将状态字装入累加器1) 将状态字装入累加器1中,指令的执行与状态位无关,而且对状态字没有任何影响。指令格式如下:LSTW T STW(将累加器1的内容传送到状态字

19、) 使用T STW指令可以将累加器1的位08传送到状态字的相应位,指令的执行与状态位无关,指令格式如下: TSTW与地址寄存器有关的装入和传送指令LAR1(将操作数的内容装入地址寄存器AR1) 与地址寄存器有关的装入和传送指令 LAR2(将操作数的内容装入地址寄存器2) 使用LAR2指令可以将操作数的内容(32位指针)装入地址寄存器AR2,指令格式同LAR1,其中的操作数可以是累加器1、指针型常数(P#)、存储双字(MD)、本地数据双字(LD)、数据双字(DBD)或背景数据双字(DID),但不能用AR1。 TAR1(将地址寄存器1的内容传送到操作数) 与地址寄存器有关的装入和传送指令 TAR2

20、(将地址寄存器2的内容传送到操作数) 使用TAR2指令可以将地址寄存器AR1的内容(32位指针)传送给被寻址的操作数,指令格式同TAR1。其中的操作数可以是累加器1、存储双字(MD)、本地数据双字(LD)、数据双字(DBD)、背景数据双字(DID),但不能用AR1。 CAR(交换地址寄存器1和地址寄存器2的内容) 使用CAR指令可以交换地址寄存器AR1和地址寄存器AR2的内容,指令不需要指定操作数。指令的执行与状态位无关,而且对状态字没有任何影响。 LC(定时器/计数器装载指令 使用LC指令可以在累加器1的内容保存到累加器2中之后,将指定定时器字中当前时间值和时基以BCD码(0999)格式装入

21、到累加器1中,或将指定计数器的当前计数值以BCD码(0999)格式装入到累加器1中。指令格式如下: LCMOVE指令 MOVE指令为功能框形式的传送指令,能够复制字节、字或双字数据对象。应用中IN和OUT端操作数可以是常数、I、Q、M、D、L等类型,但必须在宽度上匹配。 转换指令转换指令是将累加器1中的数据进行数据类型转换,转换结果仍放在累加器1中。在STEP 7中,可以实现BCD码与整数、整数与长整数、长整数与实数、整数的反码、整数的补码、实数求反等数据转换操作。. BCD码和整数到其他类型转换指令BCD码和整数到其他类型转换指令BCD码和整数到其他类型转换指令整数和实数的码型变换指令整数和

22、实数的码型变换指令实数取整指令比较指令比较指令可完成整数、长整数或32位浮点数(实数)的相等、不等、大于、小于、大于或等于、小于或等于等比较 。整数比较指令 长整数比较指令 实数比较指令 算数运算指令 算术运算指令可完成整数、长整数及实数的加、减、乘、除、求余、求绝对值等基本算数运算;以及32位浮点数的平方、平方根、自然对数、基于e的指数运算及三角函数等扩展算数运算。基本算数运算指令(整数运算) 基本算数运算指令(实数运算) 扩展算数运算指令字逻辑运算指令字逻辑运算指令可对两个16位(WORD)或32位(DWORD)的二进制数据,逐位进行逻辑与、逻辑或、逻辑异或运算。 对于STL形式的字逻辑运

23、算指令,可对累加器1和累加器2中的字或双字数据进行逻辑运算,结果保存在累加器1中,若结果不为0,则对状态标志位CC1置“1”,否则对CC1置“0”。 对于LAD和FBD形式的字逻辑运算指令,由参数IN1和IN2提供参与运算的两个数据,运算结果保存在由OUT指定的存储区中。 移位指令移位指令有2种类型:基本移位指令可对无符号整数、有符号长整数、字或双字数据进行移位操作;循环移位指令可对双字数据进行循环移位和累加器1带CC1的循环移位操作。有符号右移指令格式字移位指令格式双字移位指令格式V双字循环移位指令格式带累加器循环移位指令格式控制指令控制指令可控制程序的执行顺序,使得CPU能根据不同的情况执

24、行不同的程序逻辑控制指令逻辑控制指令是指逻辑块内的跳转和循环指令,这些指令可以中断原有的线性程序扫描,并跳转到目标地址处重新执行线性程序扫描。目标地址由跳转指令后面的标号指定,该地址标号指出程序要跳往何处,可向前跳转,也可以向后跳转,最大跳转距离为-32768或32767字。1.无条件跳转指令无条件跳转指令JU执行时,将直接中断当前的线性程序扫描,并跳转到由指令后面的标号所指定的目标地址处重新执行线性程序扫描。 【例4-7-1】 无条件跳转指令的使用。 当程序执行到无条件跳转指令时,将直接跳转到L1处执行。 2. 多分支跳转指令多分支跳转指令JL的指令格式如下:JL 如果累加器1低字中低字节的

25、内容小于JL指令和由JL指令所指定的标号之间的JU指令的数量,JL指令就会跳转到其中一条JU处执行,并由JU指令进一步跳转到目标地址;如果累加器1低字中低字节的内容为0,则直接执行JL指令下面的第一条JU指令;如果累加器1低字中低字节的内容为1,则直接执行JL指令下面的第二条JU指令;如果跳转的目的地的数量太大,则JL指令跳转到目的地列表中最后一个JU指令之后的第一个指令。 3. 条件跳转指令【例4-7-3】 条件跳转指令的使用。 程序示例如图4-44所示。当I0.0与I0.1同时为“1”时,则跳转到L2处执行;否则,到L1处执行(顺序执行)。 4. 循环指令循环指令的格式如下:LOOP 使用

26、循环指令(LOOP)可以多次重复执行特定的程序段,由累加器1确定重复执行的次数,即以累加器1的低字为循环计数器。LOOP指令执行时,将累加器1低字中的值减1,如果不为0,则继续循环过程,否则执行LOOP指令后面的指令。循环体是指循环标号和LOOP指令间的程序段。 程序控制指令程序控制指令是指功能块(FB、FC、SFB、SFC)调用指令和逻辑块(OB,FB,FC)结束指令。调用块或结束块可以是有条件的或是无条件的。 基本控制指令 子程序调用指令 CALL指令可以调用用户编写的功能块或操作系统提供的功能块,CALL指令的操作数是功能块类型及其编号,当调用的功能块是FB块时还要提供相应的背景数据块DB。使用CALL指令可以为被调用功能块中的形参赋以实际参数,调用时应保证实参与形参的数据类型一致。 1. 基本控制指令2. 子程序调用指令主控继电器指令主控继电器(MCR)是一种继电器梯形图逻辑的主开关,用于控制电流(能流)的通断。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号