您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 西门子PLC指令实例教程
Date:2020/3/15Page:1第四章S7-300软件基础•4.1PLC编程基础•4.2STEP7的指令结构•4.3位逻辑指令•4.5定时器与计数器指令Date:2020/3/15Page:24.1PLC编程基础4.1.1STEP7编程语言STEP7是S7-300/400系列PLC应用设计软件包,所支持的PLC编程语言非常丰富。该软件的标准版支持STL(语句表)、LAD(梯形图)及FBD(功能块图)3种基本编程语言,并且在STEP7中可以相互转换。不同的编程语言可供不同知识背景的人员采用。其中LAD、STL和FBD是三种基本编程语言。Date:2020/3/15Page:34.1.1STEP7编程语言LAD(LAD:LadderDiagram)简称梯形图,LAD是使用最多的PLC编程语言。因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特别适合于数字量逻辑控制,也适合于熟悉继电器电路的人员使用。LAD编程语言如图4.1所示。图4.1LAD编程语言1、梯形图(LAD)Date:2020/3/15Page:44.1.1STEP7编程语言2、语句表(STL)STL(STL:StatementList)简称语句表,STL是一种类似于微机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语句表适合于经验丰富的程序员使用,可以实现某些梯形图不能实现的功能。STL适用于喜欢用汇编语言编程的人员使用。STL编程语言如图4.2所示。图4.2STL编程语言Date:2020/3/15Page:54.1.1STEP7编程语言3、功能块图(FBD)FBD(FBD:FunctionBlockDiagram)简称功能块图,功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示。FBD适合于有数字电路基础的编程人员使用。FBD编程语言如图4.3所示。Date:2020/3/15Page:64.1.1STEP7编程语言图4.3FBD编程语言Date:2020/3/15Page:74.1.2S7-300CPU的系统存储器1、过程映像输入表/输出表(I/Q)过程映像输入表(PII):循环扫描开始时,存储数字量输入模块的输入信号的状态。过程映像输出表(PIQ):循环扫描结束时,存储用户程序计算的输出值,并将PIQ的内容写入数字量输出模块。2、内部存储器区(M)内部存储器区(M),主要用于存储中间变量。3、定时器(T)存储器区在CPU的存储器中,有一个区域是专为定时器保留的。此存储区域为每个定时器地址保留一个16位字。梯形图逻辑指令集支持256个定时器。时间值可以用二进制或BCD码方式读取。Date:2020/3/15Page:84.1.2S7-300CPU的系统存储器4、计数器(C)存储器区在用户CPU的存储器中,有为计数器保留的存储区。此存储区为每个计数器地址保留一个16位字。梯形图指令集支持256个计数器。计数值(0~999)可以用二进制或BCD码方式读取。5、数据块/背景数据块(DB)DB为共享数据块,DBX2.3,DBB5,DBW10和DBD12。DI为背景数据块,DIX,DIB,DIW和DID。6、外部I/O存储区(PI/PQ)外设输入(PI)区和外设输出(PQ)区允许直接访问本地的和分布式的输入模块和输出模块。Date:2020/3/15Page:94.1.3S7-300CPU的寄存器1、累加器(ACCUx)累加器用于处理字节、字或双字的寄存器。S7-300有两个32位累加器(ACCU1和ACCU2)。2、状态字寄存器(16位)状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测。状态字的结构如图4.4所示。FCRLOSTAOROVOSCC0CC1BR未用012345678915图4.4状态字的结构Date:2020/3/15Page:104.1.4STEP7数据类型在STEP7中,大多数指令要与具有一定大小的数据对象一起操作,不同的数据类型具有不同的格式。编程所用的数据要指定数据类型,要确定数据大小和数据的位结构。数据类型分为3大类。1、基本数据类型基本数据类型有很多种,每种数据类型在分配内存空间时有确定的位数,如布尔型(BOOL)数据为1位,字节型(BYTE)数据为8位,字型(WORD)数据为16位,双字型(DWORD)数据为32位。基本数据类型见表4-1。Date:2020/3/15Page:114.1.4STEP7数据类型表4-1STEP7中常用的基本数据类型Date:2020/3/15Page:124.1.4STEP7数据类型2、复式数据类型超过32位或由其他数据类型组成的数据为复式数据类型,STEP7允许4种复式数据类型,见表4-2。表4-2STEP7中的复式数据类型数据类型说明日期_时间DTDATE_AND_TIME定义64位区(8字节)。用BCD码存储时间信息:字节0,年;字节1,月;字节2,日;字节3,小时;字节4,分;字节5,秒;字节6和字节7的高位,毫秒;字节7的低位,星期几字符串STRING可定义254个字符。字符串的默认大小为256字节(存放254个字符,外加双字节字头),可以通过定义字符串的实际数目来减少预留值数组ARRAY定义一种数据格式的多维数组构造STRUCT定义多种数据类型组合的数组Date:2020/3/15Page:134.1.4STEP7数据类型3、参数类型参数类型用于向FB和FC传送参数。STEP7提供的参数类型见表4-3。参数大小说明定时器(Timer)2字节指定执行逻辑块时要使用的定时器,如T1计数器(Counter)2字节指定执行逻辑块时要使用的计数器,如C1块BlockFBBlockFCBlockDBBlockSDB2字节如:FB1FC1DB1SDB1指针(Pointer)6字节定义内存单元,如P#M30.0ANY10字节如果实参的数据类型未知,或可以使用任何数据类型时,如P#M30.0,byte10表4-3STEP7的参数类型Date:2020/3/15Page:144.1.5PLC编程的基本原则•1)外部输入、输出继电器、内部继电器、定时器、计数器等器件的接点可多次重复使用;•2)梯形图每一行都是从左母线开始,线圈接在最右边,接点不能放在线圈的右边;•3)线圈不能直接与左母线相连;•4)同一编号的线圈在一个程序中使用两次容易引起误操作,应尽量避免线圈重复使用;•5)梯形图程序必须符合顺序执行的原则,从左到右,从上到下地执行,如不符合顺序执行的电路不能直接编程;•6)在梯形图中串联接点、并联接点的使用次数没有限制,可无限次地使用。PLC编程应该遵循以下基本原则:Date:2020/3/15Page:154.2STEP7的指令结构指令是程序的最小独立单位,用户程序是由若干条顺序排列的指令构成。STEP7编程语言其指令功能非常丰富。利用程序编辑器,可以进行离线编程,即把程序存储在编程器中,也可以进行在线编程,将程序存储在CPU中。4.2.1指令操作数指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标识符和参数组成。操作标识符由主标识符和辅助标识符组成,主标识符用来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位(如:位、字节、字、双字等)。主标识符有:I(输入过程映像寄存器)、Q(输出过程映像寄存器)、M(位存储器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)和L(本地数据寄存器);辅助标识符有:X(位)、B(字节)、W(字)、D(双字)。4.2.2寻址方式所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方式给出操作数。S7-300有4种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。Date:2020/3/15Page:161、立即寻址立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指令中,或以唯一形式隐含在指令中。下面各条指令操作数均采用了立即寻址方式。SET//把RLO置1OWW#16#A320//将常量W#16#A320与累加器1“或”运算L27//把整数27装入累加器1LC#0100//把BCD码常数0100装入累加器12、存储器直接寻址存储器直接寻址,简称直接寻址。该寻址方式在指令中直接给出操作数的存储单元地址。存储单元地址可用符号地址(如SB1、KM等)或绝对地址(如I0.0、Q4.1等)。下面各条指令操作数均采用了直接寻址方式。AI0.0//对输入位I0.0进行“与”逻辑操作SL20.0//把本地数据位L20.0置1=M115.4//使存储区位M115.4的内容等于RLO的内容LIB10//把输入字节IB10的内容装入累加器1TDBD12//把累加器1中的内容传送给数据双字DBD12中Date:2020/3/15Page:173、存储器间接寻址存储器间接寻址,简称间接寻址。该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的内容是操作数所在存储器单元的地址。该存储器一般称为地址指针,在指令中需写在方括号“[]”内。地址指针可以是字或双字,对于地址范围小于65535的存储器可以用字指针;对于其他存储器则要使用双字指针。存储器间接寻址的双字指针的格式如图4.5所示。bbbbbxxxbbbbbbbb00000bbb000000000781516232431说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位序bbbbbxxxbbbbbbbb00000bbb000000000781516232431说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位序图4.5寄存器间接寻址的指针格式Date:2020/3/15Page:184.3位逻辑指令位逻辑指令包含位逻辑运算指令、定时器指令、计数器指令和位测试指令等。可以使用位逻辑指令扫描布尔操作数的状态,通过“与(AND)”、“或(OR)”、“异或(XOR)”及其组合操作实现逻辑操作。所产生的结果(“1”或“0”)称为逻辑运算结果,存储在状态字的“RLO”中。逻辑操作结果(RLO)用于赋值、置位/复位布尔操作数,也用于控制定时器和计数器的运行。4.3.1触点与线圈在LAD(梯形图)程序中,通常使用类似继电器控制电路中的触点符号及线圈符号来表示PLC的位元件,被扫描的操作数(用绝对地址或符号地址表示)则标注在触点符号的上方,如图4.6所示。图4.6触点符号的表示方式Date:2020/3/15Page:191、常开触点对于常开触点(动合触点),则对“1”扫描相应操作数。在PLC中规定:若操作数是“1”则常开触点“动作”,即认为是“闭合”的;若操作数是“0”,则常开触点“复位”,即认为是“打开”的。常开触点所使用的操作数是:I、Q、M、L、D、T、C。2、常闭触点常闭触点(动断触点)则对“0”扫描相应操作数。在PLC中规定:若操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“复位”,即触点“闭合”。常闭触点所使用的操作数是:I、Q、M、L、D、T、C。3、输出线圈(赋值指令)输出线圈与继电器控制电路中的线圈一样,如果有电流(信号流)流过线圈(RLO=“1”),则被驱动的操作数置“1”;如果没有电流流过线圈(RLO=“0”),则被驱动的操作数复位(置“0”)。输出线圈只能出现在梯形图逻辑串的最右边。输出线圈等同于STL程序中的赋值指令(用等于号“=”表示)。输出线圈所使用的操作数是:Q、M、L、D。Date:2020/3/15Page:204、中间输出在梯形图设计时,如果一个逻辑串很长不便于编辑时,可以将逻辑串分成几个段,前一段的逻辑运算结果(RLO)可作为中
本文标题:西门子PLC指令实例教程
链接地址:https://www.777doc.com/doc-4385722 .html