三、第3章(1)PLC程序设计基础_第1页
三、第3章(1)PLC程序设计基础_第2页
三、第3章(1)PLC程序设计基础_第3页
三、第3章(1)PLC程序设计基础_第4页
三、第3章(1)PLC程序设计基础_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章PLC程序设计基础3.1

存储器的数据类型与寻址方式3.2

可编程序控制器的编程语言和程序结构3.1

存储器的数据类型与寻址方式

3.1.1数据在存储器中存取的方式

1.用1位二进制数表示开关量。2.多位二进制数表示数字:2#1010=10。3.十六进制数表示多位二进制数:用于简化二进制数的表示方法,“逢16进1”

。二进制(2#)二进制是计算机技术中广泛应用的一种数制,只有0和1。宜用二进制表示电子元件的状态,断开-0,闭合-1。例:2#0=10#02#1=10#12#1001=10#9十六进制(16#)

数据:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F例:16#6=10#6=2#11016#A=10#10=2#101016#F=10#15=2#111116#10=10#1616#6AD=10#1709=2#0110

1010

1101

对于比较大的数字,用2#表示太长,所以采用16#注:16#与2#的关系:16#的每一位对应2#的4个位。4.位、字节、字、双字的概念这些都表示内存空间的大小,PLC据此寻址。一个字节(Byte)的内存空间包含了8个2#位;一个字(Word)的内存空间含2个字节,包含了16个2#位;一个双字(Dword)的内存空间含2个字(4个字节),包含了32个2#位;例:2#111001如何存放呢?

如果占用一个字节的空间--00111001;

如果占用一个字的空间--0000000000111001;

如果在一个双字的空间--00000000000000000000000000111001所以:一个字节存放的数值范围:16#00—16#FF;即:10#0—10#255;一个字存放的数值范围:16#0000—16#FFFF;

即:10#0—10#65535;一个双字存放的数值范围:16#00000000—16#FFFFFFFF;

即:10#0—10#4294967295;存储器地址的表示方法I4.5:“字节.位”寻址方式。字节、字与双字存取方式以起始字节的地址作为字和双字的地址。注意:起始字节为最高位的字节。例如:VW100:VB100为高8位,VB101为低8位字节地址。I、Q、V、M、S、SM、L均可按位、字节、字和双字来存取。数整数浮点数(Real)(实数)-带小数点无符号整数-正数(格式:Byte/Word/Dword)有符号整数-有正有负(格式:INT/DINT)5、负数如何表达?

在计算机中,负数以其正值的补码形式表达。原码-一个整数,按照绝对值转换成的2#数;反码-将2#数按位取反,所得的新数为原2#数的反码;补码-反码加1;例:-5,原码--2#0000000000000101;

反码--2#1111111111111010;

补码--2#1111111111111011;故:-5在PLC内存里的表示方式为:2#1111111111111011;用二进制补码表示有符号数,最高位为符号位:0为正数,1为负数,最大的16位正数为16#7FFF(32767)(表3-2)6.BCD码BCD码是一种编码方式,用4位二进制数对1位十进制数进行编码,用2#数对10#数字进行编码,改用16#数字表示。BCD码用于输入输出设备。由于10#只有10个数字,因此16#中的A—F不会出现在BCD码中。数据类型、格式汇总寻址格式数据长度(二进制位)数据类型取值范围BOOL(位)1(位)布尔数(二进制位)真(1),假(0)BYTE(字节)8无符号整数0-255,0-FF(Hex)INT(整数)16有符号整数-32768-327678000-7FFF(Hex)WORD(字)无符号整数0-655350-FFFF(Hex)DINT(双整数)32有符号整数-2147483648-214748364780000000-7FFFFFFF(Hex)DWORD(双字)无符号整数0-4294967295;0-FFFFFFFF(Hex)REAL(实数)IEEE32位单精度浮点数-3.402823E+38--1.175495E-38(负数);+1.175495E-38-+3.402823E+38(正数)ASCLL1个汉字2个字符,1个字符占用1个字节(8位)的内存,查ASCLL码表。字符列表ASCLL字符,汉字内码(每个汉字2字节)STRING(字符串)字符串1-254个ASCLL字符,汉字内码(每个汉字2字节)VMIQSSMLTCHCACAIAQ定时器计数器高速计数器累加器模拟量输入缓存区模拟量输出缓存区这些区域存放的是“软功能器件”,不同器件有不同的数据存取规定。这些区域可按位、字节、字、双字存取数据(寻址)。3.1.2CPU的存储区数字量输入的存储区(也称输入继电器)数字量输出的存储区(也称输出继电器)位存储区变量存储区V特殊存储区局部存储器顺序控制继电器存储器类型及其寻址方式:1.数字量输入的存储区(I)a)是PLC接收外部输入的数字量信号的窗口。

b)外部输入电路接通时对应的映像寄存器为ON(1状态),反之为OFF(0状态)

c)输入端可以是外部常开触点或常闭触点,也可以是多个触点的串、并联电路。

d)编程中,可以多次使用输入位的常开触点和常闭触点。

e)地址标志:If)寻址方式:位(I),字节(IB),字(IW),双字(ID)位寻址范围:I0.0-I15.7

2.数字量输出的存储区(Q)a)在输出刷新阶段,CPU将数字量输出存储区的数据传送给输出模块,驱动外部负载。b)如果Q0.0的线圈“通电”,继电器输出模块中对应的硬件继电器的常开触点闭合,接在标号为Q0.0的端子的外部负载通电。c)编程中,可以多次使用输出位的常开触点和常闭触点。d)地址标志:Qe)寻址方式:位(Q),字节(QB),字(QW),双字(QD)位寻址范围:Q0.0-Q15.73.变量存储区V是全局存储器,所有的程序都可以存取,(与L相对)。在程序执行过程中用来存放中间结果,或者用来保存与工序或任务有关的其他数据。4.位存储区(M)类似于继电器控制系统中的中间继电器,用来存放中间操作状态或者其他控制信息。只有32个字节(M0—M31)。5.定时器存储区(T)

相当于继电器控制系统中的时间继电器。时间基准分为1ms,10ms,100ms。

包括定时器的位(触点的状态)和定时器当前值寄存器,都用定时器的地址来寻址。6.计数器存储区(C)

分为加、减、加减计数器3种

用来累计其计数输入脉冲电平由低到高的次数。7.高速计数器(HC)

用来累计比CPU扫描速率更快的事件,计数过程与扫描周期无关。8.32位累加器(AC0~AC3)可以按字节、字和双字来存取。按字节、字只能存取累加器的低8位或低16位。9.特殊存储器(SM)

用于CPU与用户之间交换信息。各特殊存储器(SM)的标志位:

SM0.0一直为1状态;SM0.1仅在执行用户程序的第一个扫描周期为1状态。

SM0.4和SM0.5分别提供周期为1分钟和1秒的时钟脉冲。

SM1.0、SM1.1和SM1.2分别为零标志、溢出标志和负数标志。10.局部存储器L

作为暂时存储器,或给子程序传递参数。共有64个字节。各POU都有自己的局部变量表,局部变量仅仅在被创建的POU中有效。11.模拟量输入(AI)

将模拟量A/D转换为一个字长(16位)的数字量,输入地址:AIW2,AIW4等,从偶数字节地址开始,为只读数据。12.模拟量输出字(AQ)将一个字长的数字量D/A转换为模拟量输出,输出地址:AQW2,AQW4等,从偶数字节地址开始,用户只能写出数据,不能读取。13.顺序控制继电器(S):用于顺序控制编程,与顺序控制继电器指令配合使用。14.常数的表示方法与范围15.实数(浮点数):在编程软件中,用小数表示浮点数。3.1.3直接寻址与间接寻址

直接寻址:指定了存储器的区域、长度和位置,例如VB200。按位寻址的格式为:Ax.y按字节寻址的格式为:ABX按字寻址的格式为:AWX按双字寻址的格式为:ADX存储区内另有一些元件是具有一定功能的硬件,由于元件数量很少,所以不用指出元件所在存储区域的字节,而是直接指出它的编号。其寻址格式为:Ay间接寻址方式

间接寻址方式:数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址的地址。存储单元地址的地址又称为地址指针。这种间接寻址方式与计算机的间接寻址方式相同。间接寻址在处理内存连续地址中的数据时非常方便,而且可以缩短程序所生成的代码的长度,使编程更加灵活。用间接寻址方式存取数据需要作的工作有3种:建立指针、间接存取和修改指针。(1)建立指针

建立指针必须用双字传送指令(MOVD),将存储器所要访问的单元的地址装入用来作为指针的存储器单元或寄存器,装入的是地址而不是数据本身,格式如下:例: MOVD &VB200,VD302 MOVD &MB10,AC2 MOVD &C2,LD14注意:建立指针用MOVD指令。指令中在操作数的前面加“*”表示该操作数为一个指针。3.2

可编程序控制器的编程语言和程序结构3.2.1可编程序控制器的编程语言PLC为用户提供了完整的编程语言,以适应编制用户程序的需要。PLC提供的编程语言通常有以下几种:梯形图、指令表、顺序功能流程图和功能块图。下面以S7-200系列PLC为例加以说明。PLC编程语言的国际标准

IEC61131-3标准的5种编程语言:(1)顺序功能图(SequentialFunctionChart);(SFC)(2)梯形图(LadderDiagram);(LAD)(3)功能块图(FunctionBlockDiagram);(FBD)(4)指令表(InstructionList);(IL)(5)结构文本(StructuredText)。(ST)

1.梯形图(LAD)

梯形图(LAD)编程语言是从继电器控制系统原理图的基础上演变而来的。PLC的梯形图与继电器控制系统的原理图的基本思想是一致的,只是在使用符号和表达方式上有一定区别。图3.1是一个典型的梯形图。左右两条垂直的线称作母线。母线之间是触点的逻辑连接和线圈的输出。图3.1典型的梯形图结构:母线、触点、线圈、盒;软元件、能流继电接触器控制线路图结构:电源线、触点、线圈;实际的元件、有电流

梯形图的一个关键概念是“能流”(PowerFlow),这仅是概念上的“能流”。把左边的母线假想为电源“火线”,而把右边的母线(虚线所示)假想为电源“零线”。如果有“能流”从左至右流向线圈,则线圈被激励;如果没有“能流”,则线圈未被激励。

在梯形图中,触点代表逻辑“输入”条件,如开关、按钮、内部条件等;线圈通常代表逻辑“输出”结果,为“输出软元件”。对S7-200系列PLC来说,还有一种输出——“盒”(方块图),它代表附加的指令,如定时器、计数器和功能指令等。

图3-2梯形图与语句表 图3-3功能块图“能流”(PowerFlow)只能从左向右流动。1个网络(Network)中只能放1块独立电路。功能块图(FBD)类似于数字逻辑门电路。STEP7-Micro/WIN的IEC61131-3指令集只提供梯形图、功能块图。地址前加“%”,其指令不区分数据类型。2.指令表(STL)

指令表(STL)编程语言类似于计算机中的助记符语言,它是可编程序控制器最基础的编程语言。所谓指令表编程,是用一个或几个容易记忆的字符来代表可编程序控制器的某种操作功能。一般来说,指令表编程适合于熟悉PLC和有经验的程序员使用。图2.2基本指令应用举例(a)梯形图;(b)指令表3.顺序功能流程图(SFC)

顺序功能流程图(SFC)编程是一种图形化的编程方法,亦称功能图。使用它可以对具有并行、选择等复杂结构的系统进行编程,许多PLC都提供了用于SFC编程的指令。

4.功能块图(FBD)

S7-200系列PLC专门提供了FBD编程语言,利用FBD可以查看到像普通逻辑门图形的逻辑盒指令。它没有梯形图编程器中的触点和线圈,但有与之等价的指令,这些指令是作为盒指令出现的。FBD编程语言有利于程序流的跟踪,但在目前使用较少。图2.3FBD简单实例3.2.2可编程序控制器的程序结构

控制一个任务或过程,是通过在RUN方式下,使主机循环扫描并连续执行用户程序来实现的,用户程序决定了一个控制系统的功能。广义上的PLC程序由三部分构成:主程序、子程序、中断程序。1.主程序:每次扫描都要执行主程序。每个项目都必须有且只能有一个主程序(OB1)。2.子程序:简化程序代码、减少扫描时间、容易移植到别的项目(SBRN)。可以多次调用。图2.4程序结构

用编程软件在计算机上编程时,利用编程软件的程序结构窗口双击主程序、子程序和中断程序的图标,即可进入各程序块的编程窗口。编译时编程软件自动对各程序段进行连接。

S7-200PLC的主程序、子程序和中断程序结束结束时,编程软件会在程序编译时自动加入相应的结束指令。主程序

存储区子程序中断子程序子程序子程序子程序子程序子程序:为了清晰地组织一个项目,可以根据功能进行结构化组织,即:一个项目分解为几个子功能块,每个子功能块由一个或多个子程序组成。有利于分步调试,便于查找问题所在,且具有通用性。注意事项:1)可以在确定的时刻调用,可以嵌套调用,最多嵌套8个。2)S7-200CPU最多可调用64个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论