1.18k likes | 1.33k Views
S7-200 可编程控制器 基本概念 PLC 课程组. 主要内容. S7--200 的基本功能是监视现场的输入,根据控制逻辑去控制现场输出设备的接通和关断。下面解释有关程序执行、存储器种类以及存储器掉电保持等方面的一些概念。. 4 .1 理解 S7--200 如何执行控制逻辑. S7--200周而复始地执行程序中的控制逻辑和读写数据。 S7--200 将程序和物理输入输出点联系起来 S7--200 的基本操作非常简单: CPU 读输入状态 CPU 中存储的程序利用输入执行控制逻辑。当程序运行时, CPU 刷新有关数据。 CPU 将数据写到输出。
E N D
S7-200可编程控制器 基本概念 PLC 课程组
主要内容 • S7--200的基本功能是监视现场的输入,根据控制逻辑去控制现场输出设备的接通和关断。下面解释有关程序执行、存储器种类以及存储器掉电保持等方面的一些概念。
4.1 理解S7--200如何执行控制逻辑 • S7--200周而复始地执行程序中的控制逻辑和读写数据。 • S7--200将程序和物理输入输出点联系起来 • S7--200的基本操作非常简单: • CPU读输入状态 • CPU中存储的程序利用输入执行控制逻辑。当程序运行时,CPU刷新有关数据。 • CPU将数据写到输出。 • 图4-1给出了一个简图,说明一个继电器图如何与S7--200联系起来。在本例中,电机启动开关的状态和其它输入点的状态结合在一起。它们计算的结果,最终决定了控制执行机构启动电机的输出点状态。
S7--200在扫描循环中完成它的任务 • S7--200周而复始地执行一系列任务。任务循环执行一次称为一个扫描周期。如图4-2所示,在一个扫描周期中,S7--200将执行部分或全部下列操作: • 读输入:S7--200将物理输入点上的状态复制到输入过程映象寄存器中。 • 执行逻辑控制程序:S7--200执行程序指令并将数据存储在各种存储区中。 • 处理通讯请求:S7--200执行通讯任务。 • 执行CPU自诊断:S7--200检查固件、程序存储器和扩展模块是否工作正常。 • 写输出:在输出过程映象寄存器中存储的数据被复制到物理输出点。
4.2 S7--200数据的存取 • 用户程序的执行取决于S7--200是处于停止模式还是运行模式。当S7--200处于运行模式时,CPU执行程序;当S7--200处于停止模式时,CPU不执行程序。
读输入 • 数字量输入:在每个扫描周期的开始,CPU会读取数字量输入的当前值,并将这些值写入过程映象输入寄存器。 • 模拟量输入:除非使能模拟量滤波,否则S7--200在扫描周期中不会刷新模拟量输入值。经过模拟量滤波可以得到较稳定的信号。可以使能每个模拟量输入通道的滤波功能。 • 当使能了模拟量输入滤波功能后,S7--200会在每一个扫描周期刷新模拟量、执行滤波功能并且在内部存储滤波值。当程序中访问模拟量输入时使用滤波值。
如果没有使能模拟量输入滤波,则当程序访问模拟量输入时,S7--200都会直接从扩展模块读取模拟值。如果没有使能模拟量输入滤波,则当程序访问模拟量输入时,S7--200都会直接从扩展模块读取模拟值。 • 在每次扫描期间,CPU224XP的AIW0和AIW2模拟量输入都会读取模--数转换器生成的最新值,从而完成刷新。该转换器求取的是均值(sigmaelta),因此通常无需软件滤波。
执行程序 • 在扫描周期的执行程序阶段,CPU从头至尾执行应用程序。在程序或中断服务中,直接I/O指令允许对I/O点直接进行存取。 • 如果在程序中使用了中断,与中断事件相关的中断服务程序作为程序的一部分被存储。中断程序并不作为正常扫描周期的一部分来执行,而是当中断事件发生时才执行(可能在扫描周期的任意点)。 • 处理通讯请求 • 在扫描周期的信息处理阶段,CPU处理从通讯端口或者智能I/O模块接收到的任何信息。
执行CPU自诊断测试 • 在扫描周期的CPU自诊阶段,S7--200CPU自检的操作和扩展模块的状态是否正常。 • 写数字输出 • 在每个扫描周期的结尾,CPU把存储在输出映象寄存器中的数据写到数字输出点。(模拟量输出直接刷新,与扫描周期无关)
S7--200将信息存于不同的存储器单元,每个单元都有唯一的地址。可以明确指出要存取的存储器地址,这就允许用户程序直接存取这个信息。表 4-1列出了不同长度的数据所能表示的数值范围。
表4-1 不同长度的数据表示的十进制和十六进制数范围
若要存取存储区的某一位,则必须指定地址,包括存储器标识符、字节地址和位号。图4-3是一个位寻址的例子(也称为“字节.位”寻址)。在这个例子中,存储器区、字节地址(I代表输入,3代表字节3)和位地址(第4位)之间用点号(“.”)相隔开。若要存取存储区的某一位,则必须指定地址,包括存储器标识符、字节地址和位号。图4-3是一个位寻址的例子(也称为“字节.位”寻址)。在这个例子中,存储器区、字节地址(I代表输入,3代表字节3)和位地址(第4位)之间用点号(“.”)相隔开。
使用这种字节寻址方式,可以按照字节、字或双字来存取许多存储区(V、I、Q、M、S、L及SM)中的数据。若要存取CPU中的一个字节、字或双字数据,则必须以类似位寻址的方式给出地址,包括存储器标识符、数据大小以及该字节、字或双字的起始字节地址,如图4-4所示。使用这种字节寻址方式,可以按照字节、字或双字来存取许多存储区(V、I、Q、M、S、L及SM)中的数据。若要存取CPU中的一个字节、字或双字数据,则必须以类似位寻址的方式给出地址,包括存储器标识符、数据大小以及该字节、字或双字的起始字节地址,如图4-4所示。 • 其它CPU存储区(如T,C,HC和累加器)中存取数据使用的地址格式包括区域标识符和设备号。
图4-4 对同一地址进行字节、字和双字存取操作的比较
存储区数据的存取 • 输入过程映象寄存器:I • 在每次扫描周期的开始,CPU对物理输入点进行采样,并将采样值写入输入过程映象寄存器中。可以按位、字节、字或双字来存取输入过程映象寄存器中的数据: • 位: I[字节地址].[位地址] I0.1 • 字节、字或双字: I[长度][起始字节地址] IB4 • 输出过程映象寄存器:Q • 在每次扫描周期的结尾,CPU将输出过程映象寄存器中的数值复制到物理输出点上。可以按位、字节、字或双字来存取输出过程映象寄存器: • 位: Q[字节地址].[位地址] Q1.1 • 字节、字或双字: Q[长度][起始字节地址] QB5
变量存储区:V • 您可以用V存储器存储程序执行过程中控制逻辑操作的中间结果,也可以用它来保存与工序或任务相关的其它数据。并且可以按位、字节、字或双字来存取V存储区中的数据: • 位: V[字节地址].[位地址] V10.2 • 字节、字或双字: V[长度][起始字节地址] VW100 • 位存储区: M • 可以用位存储区作为控制继电器来存储中间操作状态和控制信息。并且可以按位、字节、字或双字来存取位存储区: • 位: M[字节地址].[位地址] M26.7 • 字节、字或双字: M[长度][起始字节地址] MD20
定时器存储区:T • S7--200 CPU中,定时器可用于时间累计,其分辨率(时基增量)分为1ms、10ms和100ms三种。 • 定时器有两个变量: • 当前值:16位有符号整数,存储定时器所累计的时间。 • 定时器位:按照当前值和预置值的比较结果置位或者复位。预置值是定时器指令的一部分。 • 可以用定时器地址(T+定时器号)来存取这两种形式的定时器数据。究竟使用哪种形式取决于所使用的指令:如果使用位操作指令则是存取定时器位;如果使用字操作指令,则是存取定时器当前值。如图4-5中所示,常开触点指令是存取定时器位;而字移动指令则是存取定时器的当前值。
计数器存储区:C • 在S7--200 CPU中,计数器可以用于累计其输入端脉冲电平由低到高的次数。CPU提供了三种类型的计数器:一种只能增计数;一种只能减计数;另外一种既可以增计数,又可以减计数。计数器有两种形式: • 当前值:16位有符号整数,存储累计值。 • 计数器位:按照当前值和预置值的比较结果置位或者复位。预置值是计数器指令的一部分。 • 可以用计数器地址(C+计数器号)来存取这两种形式的计数器数据。究竟使用哪种形式取决于所使用的指令:如果使用位操作指令则是存取计数器位;如果使用字操作指令,则是存取计数器当前值。如图4-6中所示,常开触点指令是存取计数器位;而字移动指令则是存取计数器的当前值。
高速计数器:HC • 高速计数器对高速事件计数,它独立于CPU的扫描周期。高速计数器有一个32位的有符号整数计数值(或当前值)。若要存取高速计数器中的值,则应给出高速计数器的地址,即存储器类型(HC)加上计数器号(如HC0)。高速计数器的当前值是只读数据,仅可以作为双字(32位)来寻址。 • 格式: HC[高速计数器号] HC1
累加器:AC • 累加器是可以象存储器一样使用的读写设备。例如,可以用它来向子程序传递参数,也可以从子程序返回参数,以及用来存储计算的中间结果。S7--200提供4个32位累加器(AC0,AC1,AC2和AC3)。并且可以按字节、字或双字的形式来存取累加器中的数值。 • 被访问的数据长度取决于存取累加器时所使用的指令。如图4-7所示,当以字节或者字的形式存取累加器时,使用的是数值的低8位或低16位。当以双字的形式存取累加器时,使用全部32位。
特殊存储器:SM • SM位为CPU与用户程序之间传递信息提供了一种手段。可以用这些位选择和控制S7--200 CPU的一些特殊功能。例如:首次扫描标志位、按照固定频率开关的标志位或者显示数学运算或操作指令状态的标志位。(有关SM位的详细信息参见附录D)。并且可以按位、字节、字或双字来存取SM位: • 位: SM[字节地址].[位地址] SM0.1 • 字节、字或者双字: SM[长度][起始字节地址] SMB86 • 局部存储器:L • S7--200有64个字节的局部存储器,其中60个可以用作临时存储器或者给子程序传递参数。
局部存储器和变量存储器很相似,但只有一处区别。变量存储器是全局有效的,而局部存储器只在局部有效。全局是指同一个存储器可以被任何程序存取(包括主程序、子程序和中断服务程序)。局部是指存储器区和特定的程序相关联。S7--200给主程序分配64个局部存储器;给每一级子程序嵌套分配64个字节局部存储器;同样给中断服务程序分配64个字节局部存储器。局部存储器和变量存储器很相似,但只有一处区别。变量存储器是全局有效的,而局部存储器只在局部有效。全局是指同一个存储器可以被任何程序存取(包括主程序、子程序和中断服务程序)。局部是指存储器区和特定的程序相关联。S7--200给主程序分配64个局部存储器;给每一级子程序嵌套分配64个字节局部存储器;同样给中断服务程序分配64个字节局部存储器。 • 子程序或者中断服务程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程序、中断服务程序或者其它子程序的局部存储器。同样的,中断服务程序也不能访问分配给主程序或子程序的局部存储器。
模拟量输入:AI • S7--200将模拟量值(如温度或电压)转换成1个字长(16位)的数字量。可以用区域标识符(AI)、数据长度(W)及字节的起始地址来存取这些值。因为模拟输入量为1个字长,且从偶数位字节(如0,2,4)开始,所以必须用偶数字节地址(如AIW0,AIW2,AIW4)来存取这些值。模拟量输入值为只读数据。 • 格式: AIW[起始字节地址] AIW4
模拟量输出:AQ • S7--200把1个字长(16位)数字值按比例转换为电流或电压。可以用区域标识符(AQ)、数据长度(W)及字节的起始地址来改变这些值。因为模拟量为一个字长,且从偶数字节(如0,2,4)开始,所以必须用偶数字节地址(如AQW0,AQW2,AQW4)来改变这些值。模拟量输出值是只写数据。 • 格式: AQW[起始字节地址] AQW4 • 顺控继电器存储器:S • 顺控继电器位(S)用于组织机器操作或者进入等效程序段的步骤。SCR提供控制程序的逻辑分段。可以按位、字节、字或双字来存取S位。 • 位: S[字节地址].[位地址] S3.1 • 字节、字或者双字: S[长度][起始字节地址] SB4
实数的格式 • 实数(浮点数)由32位单精度数表示,其格式按照ANSI/IEEE 754--1985标准中所描述的形式,参见图4-8。实数按照双字长度来存取。 图4-8 实数的格式
实数运算的精度 • 在计算中涉及到非常大和非常小的数,则有可能导致计算结果不精确。例如数值相差10的X次方倍而X>6时。 • 例如: 100 000 000+1=100 000 000
字符串的格式 • 字符串指的是一系列字符,每个字符以字节的形式存储。字符串的第一个字节定义了字符串的长度,也就是字符的个数。4-9给出了一个字符串的格式。一个字符串的长度可以是0到254个字符,再加上长度字节,一个字符串的最大长度为255个字节。而一个字符串常量的最大长度为126字节。
在S7--200指令中输入常数值 • 在S7--200的许多指令中,都可以使用常数值。常数可以是字节、字或者双字。S7--200以二进制数的形式存储常数,可以分别表示十进制数、十六进制数、ASCII码或者实数(浮点数)。见表4-2。
本地I/O和扩展I/O的寻址 • CPU提供的本地I/O具有固定的I/O地址。您可以将扩展模块连接到CPU的右侧来增加I/O点,形成I/O链。对于同种类型的输入输出模块而言,模块的I/O地址取决于I/O类型和模块在I/O链中的位置。举例来说,输出模块不会影响输入模块上的点地址,反之亦然。类似的,模拟量模块不会影响数字量模块的寻址,反之亦然。
图4-10中是一个特定的硬件配置中的I/O地址。地址间隙(用灰色斜体文字表示)无法在程序中使用。图4-10中是一个特定的硬件配置中的I/O地址。地址间隙(用灰色斜体文字表示)无法在程序中使用。
用指针对S7--200存储区间接寻址 • 间接寻址是指用指针来访问存储区数据。指针以双字的形式存储其它存储区的地址。只能用V存储器、L存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。要建立一个指针,必须以双字的形式,将需要间接寻址的存储器地址移动到指针中。指针也可以作为参数传递到子程序中。 • S7--200允许指针访问以下存储区:I、Q、V、M、S、AI、AQ、SMT(仅限于当前值)和C(仅限于当前值)。您无法用间接寻址的方式访问单独的位,也不能访问HC或者L存储区。
要使用间接寻址,您应该用“&”符号加上要访问的存储区地址来建立一个指针。指令的输入操作数应该以“&”符号开头来表明是存储区的地址,而不是其内容将移动到指令的输出操作数(指针)中。要使用间接寻址,您应该用“&”符号加上要访问的存储区地址来建立一个指针。指令的输入操作数应该以“&”符号开头来表明是存储区的地址,而不是其内容将移动到指令的输出操作数(指针)中。 • 当指令中的操作数是指针时,应该在操作数前面加上“*”号。如图4-11所示,输入*AC1指定AC1是一个指针,MOVW指令决定了指针指向的是一个字长的数据。在本例中,存储在VB200和VB201中的数值被移动到累加器AC0中。
如图4-12所示,您可以改变一个指针的数值。由于指针是一个32位的数据,要用双字指令来改变指针的数值。简单的数学运算,如加法指令或者递增指令,可用于改变指针的数值。如图4-12所示,您可以改变一个指针的数值。由于指针是一个32位的数据,要用双字指令来改变指针的数值。简单的数学运算,如加法指令或者递增指令,可用于改变指针的数值。
4.3 理解S7--200如何保存和存储数据 • S7--200提供了多种安全措施来确保用户程序、程序数据和组态数据不丢失。 • 保持数据存储器 -- 由用户选定的数据存储区,在一次上电周期中,只要超级电容和可选电池卡不放电,该存储器的数据就不会改变。在所有存储区中,只有V、M、定时器电流和计数器电流存储区能被组态为保持存储区。 • 永久存储器 -- 不可变存储器,用来储存程序块、数据块、系统块、强制值、组态为掉电保存的M存储器和在用户程序的控制下写入的指定值。 • 存储卡 -- 可拆卸的不可变存储器,用来储存程序块、数据块、系统块、配方、数据归档和强制值。
通过S7--200资源管理器,您可以将文档文件(doc、text、pdf等)储存在存储卡内,也可以将普通文件保留在存储卡中(复制、删除、创建目录和放置文件)。通过S7--200资源管理器,您可以将文档文件(doc、text、pdf等)储存在存储卡内,也可以将普通文件保留在存储卡中(复制、删除、创建目录和放置文件)。 • 要安装存储卡,应先从S7--200 CPU上取下塑料盖,然后将存储卡插入槽中。正确安装存储卡至关重要。
下载和上载用户程序 • 用户程序包括以下几个部分: • 程序块 • 数据块(可选) • 系统块(可选) • 配方(可选) • 数据归档组态(可选)
当您下载程序时,出于安全考虑,程序块、数据块和系统块将储存在永久存储器中。而配方和数据归档组态将储存在存储卡中,并更新原有的配方和数据归档。那些不涉及下载操作的程序部分也将保留在永久存储器和存储卡中,保持不变。当您下载程序时,出于安全考虑,程序块、数据块和系统块将储存在永久存储器中。而配方和数据归档组态将储存在存储卡中,并更新原有的配方和数据归档。那些不涉及下载操作的程序部分也将保留在永久存储器和存储卡中,保持不变。