S7-200 SMART的数据主要分为:
l 与实际输入/输出信号相关的输入/输出映象区:
¡ I:数字量输入(DI)
¡ Q:数字量输出(DO)
¡ AI:模拟量输入
¡ AQ:模拟量输出
l 内部数据存储区
¡ V:变量存储区,可以按位、字节、字或双字来存取V 区数据
¡ M:位存储区,可以按位、字节、字或双字来存取M区数据
¡ T:定时器存储区,用于时间累计
¡ C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数
¡ HC:高速计数器,独立于 CPU 的扫描周期对高速事件进行计数,高速计数器的当前值是只读值,仅可作为双字(32 位)来寻址
¡ AC:累加器,可以像存储器一样使用的读/写器件,可以按位、字节、字或双字访问累加器中的数据
¡ SM:特殊存储器,提供了在 CPU 和用户程序之间传递信息的一种方法。可以使用这些位来选择和控制 CPU 的某些特殊功能, 可以按位、字节、字或双字访问 SM 位
¡ L:局部存储区,用于向子例程传递形式参数
¡ S:顺序控制继电器,用于将机器或步骤组织到等效的程序段中,实现控制程序的逻辑分段。
可以按位、字节、字或双字访问 S 存储器存储器范围及特性
表1.存储器范围
数据寻址
S7-200 SMART CPU收集操作指令、现场状况等信息,把这些信息按照用户程序指定的规律进行运算、处理,然后输出控制、显示等信号。所有这些信息都表示为不同格式的数据,作为数据来处理。各种指令对数据格式都有一定要求,指令与数据之间的格式要一致才能正常工作。例如,为一个整数数据使用实数(浮点数)运算指令,显然会得到不正确的结果。
数据有不同的长度(以二进制表示它们时,占据的位数不同),也就决定了数值的大小范围。模拟量信号在进行模/数(A/D)和数/模(D/A)转换时,一定会存在误差;代表模拟量信号的数据,只能以一定的精度表示模拟量信号。
l 所有的数据在PLC中都是以二进制形式表示的
l 数据都有其特定的长度和表示方式,称为格式
l 数据的格式与用于运算、处理它的指令相关
l 以不同的格式查看一个数据,或是使用不同格式的指令处理它,会得到不同的效果
二进制、十六进制和十进制
二进制和二进制数:所有通过S7-200 SMART PLC处理的数据(数值、字符等等)都以二进制形式表示。
十六进制和十六进制数:在二进制数中,每4个二进制位可以分为一组;这组二进制数值的不同变化可以表
示16个状态,正好是16进制数每一位数字的变化范围。因此,可以用十六进制数值方便地表示二进制数。
例如,二进制数1000_1111b分为两组来看,分别是1000b和1111b,正好可以表示16进制数字8h和Fh(0000b
对应于0h,...,1111b对应于Fh);那么这个二进制数就可以表示为8Fh。
十进制和十进制数:十进制是S7-200 SMART的数学计算的基础,一般都使用十进制的体系,除了时间(12/24或60进制)等特殊数据外。
二进制数用于在PLC中表示十进制数值、或者其他(如字符等)数据,而16进制用来比较简单地描述二进制数。
二进制位逻辑(bit)
PLC中以二进制“位”的数据形式来表示逻辑“1”、“0”(或者“开”、“关”)。位是基本的数据单位。
在数据字节(Byte)中,二进制逻辑只用一个位(bit)来表示。每个字节由8个位组成。
整数、无符号整数和有符号整数
字节、字、双字都可以用来表示十进制整数,显然它们的数据长度不同,能够表示的数的大小范围也不同。
无符号整数只有0和正整数;有符号整数可以有正数和负数。
有符号整数采用二进制补码的形式来表示负数。
实数(浮点数)
实数(或浮点数)以 32 位单精度数表示,其格式为 ANSI/IEEE 标准中所描述的形式。实数按双字长度访问。
注意:浮点数jingque到小数点后第 6 位。因此输入浮点常数时,多只能指定 6 位小数。计算涉及到包含非常大和非常小数字的一长串数值时,计算结果可能不准确。
ASCII字符和String(字符串)
在S7-200 SMART中,ASCII字符是由表示字母、数字和一些特殊符号的ASCII编码组成的二进制数据字节,
一个字节存储一个字符。
访问S7-200 SMART 中的数据
S7-200 SMART从外部接收信号输入(输入数据),在内部按照用户程序运算、处理后,再输出进行各种控制、显示。
CPU 将信息存储在不同存储单元,每个位置均具有唯一的地址。寻址时,数据地址以代表存储区类型的字母开始,随后是表示数据长度的标记,然后是存储单元编号;对于二进制位寻址,还需要在一个小数点分隔符后指定位编号。
位寻址的举例如下图所示:
图1.位寻址举例
其中,存储区和字节地址(“M3”)代表 M 存储器的第 3 个字节,用句点(“.”)与位地址(位 4)分开。
字节寻址的举例如下图所示:
图2. 字节寻址举例
可以看出,VW100包括VB100和VB101;VD100包括VW100和VW102,即VB100,VB101,VB102,VB103这4个字节。这些地址是互相交叠的。
当涉及到多字节组合寻址时,遵循“高地址,低字节”的规律。
下表给出了不同数据长度可表示的整数值范围。
表1.不同数据长度表示的十进制和十六进制数范围
对本地 I/O 和扩展 I/O 进行寻址
CPU 提供的本地 I/O 具有固定的 I/O 地址。可以通过在 CPU 的右侧连接扩展 I/O 模块,或通过安装信号板来增加 I/O 点。模块点的地址取决于 I/O 类型和模块在 I/O 链中的位置。
注意:
l 数字量 I/O 的过程映像寄存器空间总是以八位(一个字节)递增的形式预留。如果模块没有为每个保留字节中的每一位提供相应的物理点,那些未使用的位就无法分配给 I/O 链中的后续模块。对于输入模块,这些未使用的位会在每个输入更新周期中被清零。
l 模拟量 I/O 点总是以两点递增的方式分配。如果模块没有为这些点分配相应的物理 I/O,则这些I/O 点将丢失,并且不能够分配给 I/O 链中的后续模块。
下表提供固定映射惯例的示例(由 STEP 7 Micro/WIN SMART 建立,并作为系统块中I/O 组态的一部分下载)。
表2. CPU 映射惯例:
计数器
S7-200 SMART 指令提供了下述三种类型的计数器。
l CTU:增计数器。
l CTD:减计数器 。
l CTUD:增/减计数器 。
计数器指令的梯形图格式如下图所示:
图1.计数器指令
l CU:增计数信号输入端;
l CD:减计数信号输入端;
l PV:预置值;
l LD:装载预置值;
l R:复位输入;
注意:当子程序在同一周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器。
注意:由于每个计数器有一个当前值,因此请勿将同一计数器编号分配给多个计数器。(编号相同的加计数器、加/减计数器和减计数器会访问相同的当前值)
计数器按如下表所列的规律工作:
表2.计数器工作规律
计数器计数范围为0~32,767。计数器号不能重复使用。计数器有两种寻址类型:Word(字)和Bit(位)。计数器号既可以用来访问计数器当前值,也可以用来表示计数器位的状态。
增/减计数器指令举例如下图所示:
定时器
S7-200 SMART指令提供了下述三种类型的定时器。
l 接通延时定时器(TON):用于定时单个时间间隔 。
l 有记忆的接通延时定时器(TONR):用于累积多个定时时间间隔的时间值。
l 断开延时定时器(TOF):用于在 OFF(或 FALSE) 条件之后延长一定时间间隔,例如冷却电机的延时。
定时器号和分辨率
定时器对时间间隔计数。定时器的分辨率(时基)决定了每个时间间隔的长短。
S7-200 SMART提供了256个可供使用的定时器,即用户可用的定时器号为T0-T255。TON、TONR 和 TOF 定时器提供三种分辨率:1ms、10ms和100ms。(当前值的每个单位均为时基的倍数。例如,使用 10 ms 定时器时,计数 50 表示经过的时间为 500 ms )。
定时器号的分辨率(时基)及大计数时间,如下表:
表1. 定时器号和分辨率
定时器号决定了定时器的分辨率(时基) , 并且分辨率在指令块上标出。
注意:同一个定时器编号不能同时用于 TON 和 TOF 定时器。例如,不能同时使用 TON T32和 TOFT32。
不同分辨率的定时器按以下规律刷新:
l 1ms:1ms分辨率的定时器,定时器位和当前值的更新不与扫描周期同步。对于大于1ms的程序扫描周期,在一个扫描周期内,定时器位和当前值刷新多次。
l 10ms:10ms分辨率的定时器,定时器位和当前值在每个程序扫描周期的开始刷新。定时器位和当前值在整个扫描周期过程中为常数。在每个扫描周期的开始会将一个扫描累计的时间间隔加到定时器的当前值上。
l 100ms:100ms分辨率的定时器,定时器位和当前值在指令执行时刷新。因此为了保证正确的定时值,要确保在一个程序扫描周期中,只执行一次100ms定时器指令。
注意:要确保小时间间隔,请将预设值 (PV) 增大 1。例如:使用 100 ms 定时器时,为确保小时间间隔至少为 2100 ms,则将 PV 设置为22。
TON 和 TONR 定时器操作:
l 在使能输入 IN 接通时开始计时。当前值等于或大于预设时间时,定时器位置为接通。
l 使能输入置为断开时,清除 TON 定时器的当前值。
l 使能输入置为断开时,保持 TONR 定时器的当前值。输入 IN 置为接通时,可以使用TONR 定时器累积时间。使用复位指令 (R) 可清除 TONR 的当前值。
l 达到预设时间后,TON 和 TONR 定时器继续定时,直到达到大值 32,767 时才停止定时。
TOF 定时器
l 使能输入接通时,定时器位立即接通,当前值置为 0。输入断开时,定时开始,定时一直持续到当前时间等于预设时间。
l 达到预设值时,定时器位断开,当前值停止递增;但是,如果在 TOF 达到预设值之前使能输入再次接通,则定时器位保持接通。
l 要使 TOF 定时器开始定时断开延时时间间隔,使能输入必须进行接通-断开转换。
l 如果 TOF 定时器在 SCR 区域中,并且 SCR 区域处于未激活状态,则当前值设置为0,定时器位断开,且当前值不递增。
定时器工作规律如下表所示:
表3. 定时器操作和PLC上电循环