admin 管理员组文章数量: 1086019
2024年4月30日发(作者:3dmax入门基础知识)
数据类型
Page 1 of 18
数据类型
S7-200 SMART的数据主要分为:
l
与实际输入/输出信号相关的输入/输出映象区:
¡
I:数字量输入(DI)
:数字量输出(DO)
¡
Q
¡
AI:模拟量输入
¡
AQ:模拟量输出
内部数据存储区
¡
V:变量存储区,可以按位、字节、字或双字来存取V 区数据
:位存储区,可以按位、字节、字或双字来存取M区数据
¡
M
:定时器存储区,用于时间累计
¡
T
¡
C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数
¡
HC:高速计数器,独立于 CPU 的扫描周期对高速事件进行计数,高速计数器的当前值是只读
值,仅可作为双字(32 位)来寻址
¡
AC:累加器,可以像存储器一样使用的读/写器件,可以按位、字节、字或双字访问累加器中的
数据
M:特殊存储器,提供了在 CPU 和用户程序之间传递信息的一种方法。 可以使用这些位来选
¡
S
择和控制 CPU 的某些特殊功能, 可以按位、字节、字或双字访问 SM 位
¡
L:局部存储区,用于向子例程传递形式参数
:顺序控制继电器,用于将机器或步骤组织到等效的程序段中,实现控制程序的逻辑分段。
¡
S
可以按位、字节、字或双字访问 S 存储器
l
存储器范围及特性
表1.存储器范围
说明
用户程序大小
用户数据大小
过程映象输入寄存器
过程映象输出寄存器
模拟量输入(只读)
模拟量输出(只写)
变量存储器(V)
局部存储器(L)
位存储器(M)
CPU SR20
12288字节
8192字节
I0.0到I31.7
Q0.0到Q31.7
AIW0到AIW110
AQW0到AQW110
VB0到VB8191
LB0到LB63
M0.0到M31.7
CPU SR40, CPU
CPU CR40
ST40
24576字节
16384字节
I0.0到I31.7
Q0.0到Q31.7
AIW0到AIW110
AQW0到AQW110
VB0到VB16383
LB0到LB63
M0.0到M31.7
12288字节
8192字节
I0.0到I31.7
Q0.0到Q31.7
--- ---
--- ---
VB0到VB8191
LB0到LB63
M0.0到M31.7
CPU SR60,CPU
ST60
30270字节
20480字节
I0.0到I31.7
Q0.0到Q31.7
AIW0到AIW110
AQW0到AQW110
VB0到VB20479
LB0到LB63
M0.0到M31.7
SM0.0到SM1535.7 SM0.0到SM1535.7 SM0.0到SM1535.7 SM0.0到SM1535.7
特殊存储器(SM)
SM0.0到SM29.7 SM0.0到SM29.7 SM0.0到SM29.7 SM0.0到SM29.7
SM1000.0到
SM1535.7
数据寻址
S7-200 SMART 系统中的数据及其格式
SM1000.0到
SM1535.7
SM1000.0到
SM1535.7
SM1000.0到
SM1535.7
file://D:TEMP~2012-12-22
数据类型
Page 2 of 18
S7-200 SMART CPU收集操作指令、现场状况等信息,把这些信息按照用户程序指定的规律进行运算、处
理,然后输出控制、显示等信号。所有这些信息都表示为不同格式的数据,作为数据来处理。各种指令对
数据格式都有一定要求,指令与数据之间的格式要一致才能正常工作。例如,为一个整数数据使用实数
(浮点数)运算指令,显然会得到不正确的结果。
数据有不同的长度(以二进制表示它们时,占据的位数不同),也就决定了数值的大小范围。模拟量信号
在进行模/数(A/D)和数/模(D/A)转换时,一定会存在误差;代表模拟量信号的数据,只能以一定的精
度表示模拟量信号。
l
l
l
l
所有的数据在PLC中都是以二进制形式表示的
数据都有其特定的长度和表示方式,称为格式
数据的格式与用于运算、处理它的指令相关
以不同的格式查看一个数据,或是使用不同格式的指令处理它,会得到不同的效果
二进制、十六进制和十进制
二进制和二进制数: 所有通过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 754-1985 标准中所描述的形式。实数按
双字长度访问。
注意:浮点数精确到小数点后第 6 位。 因此输入浮点常数时,最多只能指定 6 位小数。计算涉及到包
含非常大和非常小数字的一长串数值时,计算结果可能不准确。
ASCII字符和String(字符串)
在S7-200 SMART中,ASCII字符是由表示字母、数字和一些特殊符号的ASCII编码组成的二进制数据字节,
一个字节存储一个字符。
file://D:TEMP~2012-12-22
数据类型
Page 3 of 18
ASCII(美国信息交换标准码)是一种字符编码格式,在一个字节长度中不同的二进制数值代表不同的字
符。如字母A为41h(十六进制数值),以十进制看就是65;而数字5的ASCII值为35h,十进制值为53。
字符串是一个字符序列,其中的每个字符都以字节的形式存储。 字符串的第一个字节定义字符串的长
度,即字符数。 字符串的长度可以是 0 到 254个字符,再加上长度字节,因此字符串的最大长度为 255
个字节。 字符串常数限制为126 个字节。(字符串中也能包括汉字编码,每个汉字占用两个字节。)
这是S7-200 SMART 内部对ASCII字符串的格式定义,所有与字符串有关的指令都遵照这个格式。
l
l
l
l
在编程软件中,用单字节(英文)的单引号(')将作为字符的内容括起来可以在数据块和状态图中
输入ASCII数据字节
在单字节的双引号(")中间输入文本内容可以输入字符串
按上述方法输入的字符串会自动按字符串格式排列(在起始地址中放入字符个数)
使用程序,或人为组合成的ASCII字符串,使用ASCII字符串指令时,必须注意是否符合格式
例如:
图1. 在数据块中输入ASCII数据和字符串
下载项目到S7-200 SMART CPU,使用状态图在线监控可以看到:
file://D:TEMP~2012-12-22
数据类型
Page 4 of 18
图2. 状态图
注意ASCII字节和字符串的区别。D6D0h是汉字“中”的编码。
S7-200 SMART 数据寻址
l
l
l
l
l
如何调用开关量或模拟量信号?
怎样读取数据?
怎么使用输入信号?
如何输出控制?
……
上述问题都是关于如何访问、使用数据的问题,也就是所谓“寻址”。
访问S7-200 SMART 中的数据
S7-200 SMART从外部接收信号输入(输入数据),在内部按照用户程序运算、处理后,再输出进行各种控
制、显示。
CPU 将信息存储在不同存储单元,每个位置均具有唯一的地址。寻址时,数据地址以代表存储区类型的字
母开始,随后是表示数据长度的标记,然后是存储单元编号;对于二进制位寻址,还需要在一个小数点分
隔符后指定位编号。
位寻址的举例如下图所示:
file://D:TEMP~2012-12-22
数据类型
Page 5 of 18
图1.位寻址举例
其中,存储区和字节地址(“M3”)代表 M 存储器的第 3 个字节,用句点(“.”)与位地址(位 4)分
开。
字节寻址的举例如下图所示:
图2. 字节寻址举例
可以看出,VW100包括VB100和VB101;VD100包括VW100和VW102,即VB100,VB101,VB102,VB103这4个字
节。这些地址是互相交叠的。
当涉及到多字节组合寻址时,遵循“高地址,低字节”的规律。
下表给出了不同数据长度可表示的整数值范围。
表1.不同数据长度表示的十进制和十六进制数范围
表示方式
无符号整数
16#00到16#FF 16#0000到16#FFFF 16#00000000到16#FFFFFFFF
-128到+127
有符号整数
16#80到16#7F16#8000到16#7FFF
-32,768到+32,767
-2,147,483,648到+2,147,
483,647
16#8000 0000到16#7FFF FFFF
+1.175495E-38 到 +3.402823E+38
(正数)
不适用
-1.175495E-38到-3.402823E+38
(负数)
字节(B)
0到255
字(w)
0到65,535
双字 (DW)
0到4,294,967,295
实数(IEEE32位浮点
不适用
数)
file://D:TEMP~2012-12-22
数据类型
Page 6 of 18
S7-200 SMART 中的数据类型
《S7-200 SMART系统手册》上关于PLC概念的第四章,其中对于S7-200 SMART中数据寻址的叙述非常好,
建议初学者必读!
几乎所有的指令、功能都与各种形式的寻址有关,不弄清楚数据寻址会给工作带来极大的困难。
对本地 I/O 和扩展 I/O 进行寻址
CPU 提供的本地 I/O 具有固定的 I/O 地址。可以通过在 CPU 的右侧连接扩展 I/O 模块,或通过安装信
号板来增加 I/O 点。 模块点的地址取决于 I/O 类型和模块在 I/O 链中的位置。
注意:
l
l
数字量 I/O 的过程映像寄存器空间总是以八位(一个字节)递增的形式预留。 如果模块没有为每个
保留字节中的每一位提供相应的物理点,那些未使用的位就无法分配给 I/O 链中的后续模块。 对于
输入模块,这些未使用的位会在每个输入更新周期中被清零。
模拟量 I/O 点总是以两点递增的方式分配。 如果模块没有为这些点分配相应的物理 I/O,则这些
I/O 点将丢失,并且不能够分配给 I/O 链中的后续模块。
下表提供固定映射惯例的示例(由 STEP 7 Micro/WIN SMART 建立,并作为系统块中I/O 组态的一部分
下载)。
表2. CPU 映射惯例:
起始地址
CPU
I0.0
Q0.0
信号板信号模块 0 信号模块 1 信号模块 2 信号模块 3
I20.0
Q20.0
AI64
AQ64
I7.0 I8.0 I12.0 I16.0
Q7.0 Q8.0 Q12.0 Q16.0
A无 AI SBI16 AI32 AI48
AQ12
AQ16AQ32AQ48
间接寻址
间接寻址是指用指针来访问存储区的数据。指针以双字的形式 存储其它存储区的地址,只能将 V 存储单
元、L 存储单元或累加器寄存器(AC1、AC2、AC3)用作指针。
注意:不能使用间接寻址访问单个位或访问 HC、L 或累加器存储区。
要创建指针,必须使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。;用“&”符号加上
要访问的存储区地址可建立一个指针,当指令中的操作数是指针时,应该在操作数前加上“*”号。
如下图所示为以创建和使用指针示例。在该示例中,输入*AC1 表示 AC1 存储指向“移动字”(MOVW) 指
令引用的字长度值的指针,在 VB200 和 VB201 中存储的值被移至累加器 AC0。
图3.创建和使用指针举例
其中:
l
通过将VB200的地址(VW100的初始字节)移动到AC1创建指针。
file://D:TEMP~2012-12-22
数据类型
Page 7 of 18
l
l
移动AC1中的指针引用的字值。
注意:修改指针的值时,请记住调整所访问数据的大小:访问字节时,指针值加 1;访问定时器 或计数
器的字或当前值时,指针值加 2;访问双字时,指针值加 4。
子程序和中断服务程序
子程序和中断服务程序都是程序的组织结构,它们和主程序一起被称为POU(程序组织单元)。
子程序
子程序可以把整个用户程序按照功能进行结构化的组织。一个“好”的程序总是把全部的控制功能分为几
个符合工艺控制规律的子功能块,每个子功能块可以由一个或多个子程序组成。这样的结构也非常有利于
分步调试,以免许多功能综合在一起无法判断问题的所在;而且,几个类似的项目也只需要对同一个程序
作不多的修改就能适用。
l
l
l
l
l
l
更好的组织程序结构,便于调试和阅读;
子程序在执行到末尾时自动返回,不必加返回指令;
子程序不能使用跳转语句跳入、跳出;
S7-200 SMART CPU最多可以调用128个子程序;
子程序可以嵌套调用,即子程序中再调用子程序,一共可以嵌套8层 ;
子程序可以带参数调用,在子程序的局部变量表中设置参数的类型;
有关子程序的详情,请看《S7-200 SMART系统手册》相关部分。
中断服务程序
中断功能是S7-200 SMART 的重要功能,用于实时控制、高速处理、通信和网络等复杂和特殊的控制任务。
S7-200 SMART 系列可编程控制器最多有38个中断源(9个预留),分为三大类:通信中断、输入/输出
(I/O)中断和时基中断,优先由高到低依次是:通信中断、I/O中断和时基中断。每类中断中不同的中断
事件又有不同的优先权。
S7-200 SMART 中使用中断服务程序来响应这些内部、外部的中断事件。中断服务程序与子程序最大的不同
是,中断服务程序不能由用户程序调用,而只能由特定的事件触发执行。
l
l
l
l
l
l
l
及时处理与用户程序的执行时序无关的操作,或者不能事先预测何时发生的“事件”
只有把中断服务程序标号(名称)与中断事件联系起来,并且开放系统中断后才能进入等待中断并随
时执行的状态
多个中断事件可以连接同一个中断服务程序;一个中断服务程序只能连接一个中断事件
中断程序只需与中断事件连接一次,除非需要重新连接
中断事件各有不同的优先级别 ,中断服务程序不能再被中断,如果再有中断事件发生,会按照发生
的时间顺序和优先级排队
中断程序应短小而简单,执行时对其他处理不要延时过长,即越短越好
中断程序一共可以嵌套 4层子程序。
在《S7-200 SMART系统手册》中有关中断指令的叙述十分详细,建议初学者仔细阅读。
常见问题
file://D:TEMP~2012-12-22
数据类型
Page 8 of 18
中断指令
S7-200 SMART设置了中断功能,用于实时控制、高速处理、通信和网络等复杂和特殊的控制任务。
S7-200 SMART 系列可编程控制器最多有38个中断源(9个预留),分为三大类:通信中断、输入/输出
(I/O)中断和时基中断,S7-200 SMART规定的中断优先由高到低依次是:通信中断、I/O中断和时基中
断。每类中断中不同的中断事件又有不同的优先权。
中断指令主要包括以下几种:
l
l
l
l
l
l
ATCH:中断连接,连接某中断事件所要调用的程序段。
ENI:全局允许中断,开放中断处理功能。
DISI:全局禁止中断,禁止处理中断服务程序,但中断事件仍然会排队等候。
DTCH:中断分离,将中断事件号与中断服务程序之间的关联切断,并禁止该中断事件。
RETI:条件中断返回,根据逻辑操作的条件,从中断服务程序中返回。
CLR_EVNT:清空中断队列。
与S7-200相比,下表所示中断事件号为S7-200 SMART 所特有的 :
表1.S7-200 SMART 特有中断事件号
事件号
35
36
37
38
说明CR40SR20/SR40/ST40/SR60/ST60
Y
Y
上升沿,信号板输入0N
下降沿,信号板输入0N
上升沿,信号板输入1N
下降沿,信号板输入1N
Y
Y
中断指令的有效操作数如下:
表2.中断指令的有效操作数
输入/输出数据类型
INT
EVNT
BYTE
BYTE
操作数
常数: 中断例程编号(0 到 127)
常数: 中断事件编号(CPU CR40: 0-13、16-18、
21-23、27、28 和 32CPU SR20、SR40、ST40、
SR60、ST60: 0-13、16-18、21-28、32和 35-38)
中断程序实例
本例使用定时中断实现对100ms定时周期计数。我们使用特殊存储器定时中断0。由定时中断0的中断事件号
为10,确定周期的特殊寄存器字节时SMB34。
该程序主要包括以下几部分:
l
l
SBR_0:中断初始化程序;
INT_0:中断服务程序;
在主程序中调用SBR_0,如下图所示:
file://D:TEMP~2012-12-22
数据类型
Page 9 of 18
图_0的调用
其中,初始化中断程序秩序调用一次,因此用SM0.1作为条件。
SBR_0编程如下图所示:
图_0编程
其中,写入定时周期数100ms,连接10号中断事件即定时中断0,指定中断服务程序名称为INT_0。
INT_0编程如下图所示:
file://D:TEMP~2012-12-22
数据类型
Page 10 of 18
图_0编程
其中,用双字长的整数加法对VD200自身加1。
注意:中断程序的初始化只需执行一次。也可根据需要重新定义中断事件。
使用状态表监视,VD200的内容就是100ms周期到达的次数,如下图所示:
图4.状态表监视
计数器
S7-200 SMART 指令提供了下述三种类型的计数器。
l
CTU:增计数器。
l
CTD:减计数器 。
l
CTUD:增/减计数器 。
计数器指令的梯形图格式如下图所示。
图1.计数器指令
l
CU:增计数信号输入端;
l
CD:减计数信号输入端;
l
PV:预置值;
l
LD:装载预置值;
l
R:复位输入;
计数器指令的有效操作数如下表所示:
表1.计数器指令接收操作数
输入/输出数据类型操作数
CxxWORD常数(C0 到 C255)
file://D:TEMP~2012-12-22
数据类型
Page 11 of 18
CU,CD,LD,R
PV
BOOL
INT
I、Q、V、M、SM、S、T、C、L、逻辑流
IW、QW、VW、MW、SMW、SW、LW、T、C、AC、AIW、
*VD、*LD、*AC、常数
注意:当子程序在同一周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器。
注意:由于每个计数器有一个当前值,因此请勿将同一计数器编号分配给多个计数器。 (编号相同的加
计数器、加/减计数器和减计数器会访问相同的当前值)
计数器按如下表所列的规律工作:
表2.计数器工作规律
类型
CTU
CTD
操作计数器位上电周期/首次扫描
CU 增加当前值。 当前值 >= 预设值计数器位关断。
直至达到32,767。时,计数器位接通 当前值可保留
CD减少当前值。
直至达到0。
当前值 = 0时,计计数器位关断。
数器位接通 当前值可保留
CTUD
CU 增加当前值。CD
减少当前值。
当前值 >= 预设值计数器位关断。
当前值持续增加或减
时,计数器位接通当前值可保留
少,直至
计数器复位。
计数器计数范围为0~32,767。计数器号不能重复使用。计数器有两种寻址类型:Word(字)和Bit
(位)。计数器号既可以用来访问计数器当前值,也可以用来表示计数器位的状态。
增/减计数器指令举例如下图所示:
图2.增/减计数器指令
时序图如下所示:
file://D:TEMP~2012-12-22
数据类型
Page 12 of 18
图3.时序图
其中:
l
l
l
l
I0.0加计数;
I0.1减计数;
I0.2将当前值复位为0;
当前值大于等于4时,加/减计数计数器C48 接通 C48 位;
定时器
S7-200 SMART指令提供了下述三种类型的定时器。
l
l
l
接通延时定时器(TON):用于定时单个时间间隔 。
有记忆的接通延时定时器(TONR):用于累积多个定时时间间隔的时间值。
断开延时定时器(TOF): 用于在 OFF(或 FALSE) 条件之后延长一定时间间隔,例如冷却电机的延
时。
定时器号和分辨率
定时器对时间间隔计数。定时器的分辨率(时基)决定了每个时间间隔的长短。
S7-200 SMART提供了256个可供使用的定时器,即用户可用的定时器号为T0-T255。TON、TONR 和 TOF 定时
器提供三种分辨率:1ms、10ms和100ms。(当前值的每个单位均为时基的倍数。例如,使用 10 ms 定时器
时,计数 50 表示经过的时间为 500 ms )。
定时器号的分辨率(时基)及最大计数时间,如下表:
表1. 定时器号和分辨率
file://D:TEMP~2012-12-22
数据类型
Page 13 of 18
定时器类型分辨率
1 ms
最大定时值
32.767s
(0.546min.)
32.767s
(0.546min.)
32.767s
(0.546min.)
定时器值
T0, T64
T1-T4, T65-T68
TONR
(可保持)
10 ms
100 ms 3276.7s (54.6min.)T5-T31, T69-T95
1 ms
TON,TOF
(不保持)
10 ms
1 ms
T32, T96
T33-T36, T97-
327.67s (5.46min.)
T100
T37-T63, T101-
3276.7s (54.6min.)
T255
定时器号决定了定时器的分辨率(时基),并且分辨率在指令块上标出。
注意:同一个定时器编号不能同时用于 TON 和 TOF 定时器。 例如,不能同时使用 TON T32和 TOF
T32。
不同分辨率的定时器按以下规律刷新:
l
l
l
1ms:1ms分辨率的定时器,定时器位和当前值的更新不与扫描周期同步。对于大于1ms的程序扫描周
期,在一个扫描周期内,定时器位和当前值刷新多次。
10ms:10ms分辨率的定时器,定时器位和当前值在每个程序扫描周期的开始刷新。定时器位和当前值
在整个扫描周期过程中为常数。在每个扫描周期的开始会将一个扫描累计的时间间隔加到定时器的当
前值上。
100ms:100ms分辨率的定时器,定时器位和当前值在指令执行时刷新。因此为了保证正确的定时值,
要确保在一个程序扫描周期中,只执行一次100ms定时器指令。
注意:要确保最小时间间隔,请将预设值 (PV) 增大 1。例如:使用 100 ms 定时器时,为确保最小时
间间隔至少为 2100 ms,则将 PV 设置为22。
定时器指令的有效操作数如下表所示:
表2. 定时器指令的有效操作数
输入/输出
Txxx
IN
PT
数据类型
WORD
BOOL
INT
操作数
定时器编号(T0~T255)
I、Q、V、M、SM、S、T、C、L、能流
?IW 、QW、VW、MW、SMW、SW、T、C、
LW、AC、AIW、*VD、 *LD、*AC、常数
不同定时器的功能
TON 和 TONR 定时器操作:
l
l
l
l
在使能输入 IN 接通时开始计时。 当前值等于或大于预设时间时,定时器位置为接通。
使能输入置为断开时,清除 TON 定时器的当前值。
使能输入置为断开时,保持 TONR 定时器的当前值。 输入 IN 置为接通时,可以使用TONR 定时器累
积时间。 使用复位指令 (R) 可清除 TONR 的当前值。
达到预设时间后,TON 和 TONR 定时器继续定时,直到达到最大值 32,767 时才停止定时。
TOF 定时器
l
l
使能输入接通时,定时器位立即接通,当前值置为 0。输入断开时,定时开始,定时一直持续到当前
时间等于预设时间。
达到预设值时,定时器位断开,当前值停止递增;但是,如果在 TOF 达到预设值之前使能输入再次
file://D:TEMP~2012-12-22
数据类型
Page 14 of 18
l
l
接通,则定时器位保持接通。
要使 TOF 定时器开始定时断开延时时间间隔,使能输入必须进行接通-断开转换。
如果 TOF 定时器在 SCR 区域中,并且 SCR 区域处于未激活状态,则当前值设置为0,定时器位断开
且当前值不递增。
定时器工作规律如下表所示:
表3. 定时器操作和PLC上电循环
类型 当前值 >= 预设值
定时器位接通
TON
当前值继续定时到
32,767
定时器位接通
TONR
当前值继续定时到
32,767
定时器位断开
TOF
当前值 = 预设值,停止
定时
使能输入 IN 的状态
ON: 当前值 = 定时值
OFF: 定时器位断开,当前值 = 0
ON: 当前值 = 定时值
上电循环/首次扫
描
定时器位 = OFF
当前值 = 0
定时器位 = OFF
OFF: 定时器位和当前值保持最后状态和
当前值可以保持
值
ON: 定时器位接通,当前值 = 0
OFF: 在接通-断开转换之后,定时器开
始定时
定时器位 = OFF
当前值 = 0
接通延时定时器指令举例如下图所示:
图1.接通延时定时器指令程序举例
其中:
l
定时器T37时基为100ms,预置值设定为10,实际延时时间为100ms×10=1s。
file://D:TEMP~2012-12-22
数据类型
Page 15 of 18
图2.时序图
其中:
l
l
l
l
IN为“1”状态时,定时器开始运行
延时到达预置值,T37 置位
IN输入端为“0”状态时,定时器复位
如无复位,当前值继续增至最大值
定时器在子程序中的表现
在条件调用子程序的主程序中,当停止子程序调用时,如果定时器已经激活正在计时,停止调用这个子程
序会造成定时器的失控。不管此时定时器前面的激活条件如何变化,定时器(1ms、10ms 时基的)会一直
走到最大值,定时器输出也会在达到设定值时接通;(100ms 时基的定时器会在上述情况下停止计时,但
在逻辑上处于失控状态)。
如果用 SM0.0 调用子程序;或者在控制逻辑的时序上做到能够保证定时功能完整执行,定时器会正常运
行。使用条件调用含有定时器的子程序时,一定要注意时序逻辑,以免造成程序运行错误。
常见问题
编了一个利用定时器的程序,在编译时已经通过,为何下载到CPU中时提示出错?
这种情况往往是调用的定时器号与定时器类型不配合造成的。参见上面的表格,如T7只能用作TONR,而不
能用于TON或TOF。
移位指令
S7-200 SMART移位指令分为左、右移位、循环左、右移位及寄存器移位指令三大类。前两类移位指令按移
位数据的长度又分字节型、字型、双字型3种。
下图所示为移位指令梯形图:
图1. 移位指令:
如下为一个移位和循环移位实例:
file://D:TEMP~2012-12-22
数据类型
Page 16 of 18
图2.移位和循环移位程序图
其中:
l
l
l
I4.0上升沿触发
FOR_W为字循环右移
SHL_W为字左移
其移位和循环移位的过程可由下图进一步说明:
图3.移位和循环移位过程说明图
For Next 循环
程序循环结构用于描述一段程序的重复循环执行。由 FOR和NEXT指令构成程序的循环体。FOR指令标记循环
的开始,NEXT指令为循环体的结束指令。
file://D:TEMP~2012-12-22
数据类型
Page 17 of 18
图 Next 循环
其中:
l
l
l
INIT,FINAL分别定义起始值和结束值。
使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX
增1,达到终止值FINAL时,循环结束。
使能输入无效时,循环体程序不执行。每次使能输入有效,指令自动将各参数复位。
注意:使用 FOR 和 NEXT 指令可在重复执行分配计数的循环中执行程序段。每条 FOR 指令需要一条
NEXT 指令。
For Next 编程实例
图 Next 循环循环程序图
使用状态表监控程序的运行如下图所示
file://D:TEMP~2012-12-22
数据类型
Page 18 of 18
图6.状态监视图
如上表所示,VW100值为4, INDEX大于终止值,循环终止。
file://D:TEMP~
2012-12-22
版权声明:本文标题:S7-200 SMART PLC编程说明 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1714486299a682301.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论