tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用

本篇是《基于博途V15 西门子S7-1200 ...》系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇。也请专业领域的大神批评指正。

感谢大家关注与支持!

这是第四篇功能指令,本篇介绍两个简单的定时器指令应用实例。上一篇是《基于博途V15 西门子S7-1200 定时器指令应用实例》,大家可以自行查阅学习。

1.打开已经创建项目

名称为计数器指令应用

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第1张图片

2.添加PLC

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第2张图片

3.计数器简单介绍

1)计数器指令

可使用计数器指令对内部程序事件和外部过程事件进行计数;

每个计数器都使用数据块中存储的结构来保存计数器数据;

用户在编辑器中放置计数器指令时分配相应的数据块。

CTU 是加计数器

CTD 是减计数器

CTUD 是加减计数器

2)参数的数据类型

参数 数据类型 说明

CU, CD Bool 加计数或减计数,按加或减一计数

R (CTU, CTUD) Bool 将计数值重置为零

LD (CTD, CTUD) Bool 预设值的装载控制

PV SInt, Int, DInt, USInt, UInt, UDInt 预设计数值

Q, QU Bool CV >= PV 时为真

QD Bool CV <= 0 时为真

CV SInt, Int, DInt, USInt, UInt, UDInt 当前计数值

注:a.计数值的数值范围取决于所选的数据类型。如果计数值是无符号整型数,则可以减计数到零或加计数到范围限值。如果计数值是有符号整数,则可以减计数到负整数限值或加计数到正整数限值。

b.用户程序中可以使用的计数器数仅受 CPU 存储器容量限制。计数器占用以下存储器空间:

对于 SInt 或 USInt 数据类型,计数器指令占用 3 个字节。

对于 Int 或 UInt 数据类型,计数器指令占用 6 个字节。

对于 DInt 或 UDInt 数据类型,计数器指令占用 12 个字节

3)RUN-STOP-RUN 切换或 CPU 循环上电后保留计数器数据

如果从运行模式阶段切换到停止模式或 CPU 循环上电并启动了新运行模式阶段,则存储在之前运行模式阶段中的计数器数据将丢失,除非将定时器数据结构指定为具有保持性(CTU、CTD 和 CTUD 计数器)。将计数器指令放到程序编辑器中后,如果接受调用选项对话框中的默认设置,则将自动分配一个无法实现具有保持性的背景数据块。要使计数器数据具有保持性,必须使用全局数据块或多重背景数据块。

4)指定全局数据块将计数器数据存储为保持性数据

无论将计数器放在什么位置(OB、FC 或 FB),该选项都有效。

a. 创建一个全局数据块:

– 在项目树中双击“添加新块”(Add new block)。

– 单击数据块 (DB) 图标

– 对于“类型”(Type),选择“全局数据块”(global DB)。

– 如果希望能够将该数据块中的各个项选择为具有保持性,则确保选中“仅符号访问”(

symbolic-access-only) 框。

– 单击“确定”(OK)

b. 向该数据块添加计数器结构:

– 在新的全局数据块中,添加使用以下计数器数据类型之一的新静态变量。务必要考虑到想要用于预设值和计数值的类型。

– 在“保持性”(Retain) 列中,选中相应框以使该结构具有保持性。

– 重复此过程为要存储在该数据块中的所有计数器创建结构。

可以将每个计数器结构放置在独立的全局数据块中,也可以将多个计数器结构放置在同一个全局数据块中。

除计数器外,还可以将其它静态变量放置在该全局数据块中。将多个计数器结构放置在同一个全局数据块中可减少总的块数。

– 可根据需要重命名计数器结构。

c. 打开程序块来选择保持性计数器的放置位置(OB、FC 或 FB)。

d. 将计数器指令放置在所需位置。

e. 在调用选项对话框出现后,单击“取消”按钮。

您现在应该看到新的计数器指令,在指令名称的上面和下面均显示“???”。

f. 在新的计数器指令上方,输入上面所创建全局数据块和计数器结构的名称(请勿使用

助手浏览)(例如: “Data_block_3.Static_1”)。这需要填入对应的预设值和计数值类型(例如: UInt 对应于 IEC_UCounter 结构)。

计数器数据类型 预设值和计数值的相应类型

IEC_Counter INT

IEC_SCounter SINT

IEC_DCounter DINT

IEC_UCounter UINT

IEC_USCounter USINT

IEC_UDCounter UDINT

5)指定多重背景数据块以将计数器数据存储为保持性数据

该选项仅对于将计数器放置在 FB 中有效。该选项取决于 FB 属性是否指定“优化块访问”(Optimized block access)(仅允许符号访问)。 要检查现有 FB 访问属性的组态情况,请在项目树中右键单击该FB,选择“属性”(Properties),然后选择“特性”(Attributes)。如果 FB 指定“优化块访问”(Optimized block access)(仅允许符号访问):

a. 打开 FB 进行编辑。

b. 将计数器指令放在 FB 中的所需位置。

c. “调用选项”(Call options) 对话框出现后,单击“多重背景”(Multi instance) 图标。

仅在将该指令放置于 FB 中后,“多重背景”(Multi instance) 选项才可用。

d. 如有需要,请在“调用选项”(Call options) 对话框中重命名计数器。

e. 单击“确定”(OK)。 计数器指令将出现在编辑器中并且预设值和计数值的类型为INT,而 IEC_COUNTER 结构将出现在“FB 接口”(FB Interface) 的“静态”(Static) 下。

f. 如有需要,请在计数器指令中将类型从 INT 更改为其它类型之一。计数器结构将相应更改。

g. 如有必要,打开 FB 接口编辑器(可能需要单击小箭头以展开视图)。

h. 在“静态”(Static) 下,找到刚刚创建的计数器结构。

i. 在此计数器结构的“保持性”(Retain) 列中,改为选择“保持性”(Retain)。此后只要从另一程序块调用此FB,都将利用此接口定义(包含标有保持性的计数器结构)创建背景数据块。

4. CTU 运算(加计数)

当参数 CU 的值从 0 变为 1 时,CTU 计数器会使计数值加1。CTU 时序图显示了计数值为无符号整数时的运行(其中,PV = 3)。

如果参数 CV(当前计数值)的值大于或等于参数PV(预设计数值)的值,则计数器输出参数 Q = 1。

如果复位参数 R 的值从 0 变为 1,则当前计数值重置为 0。

时序图

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第3张图片

编写程序段1

I0.0接通 参数 CU 的值从 0 变为 1 时,CTU 计数器会使计数值加1。

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第4张图片

参数 CV(当前计数值)的值大于或等于参数PV(预设计数值)的值,则计数器输出参数 Q = 1。Q0.0 接通,一直到置位,或者加计数一直加到正整数限值。

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第5张图片

I0.1 接通 复位参数 R 的值从 0 变为 1,则当前计数值重置为 0。

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第6张图片

5. CTD 运算(减计数)

当参数 CD 的值从 0 变为 1 时,CTD 计数器会使计数值减 1。CTD 时序图显示了计数值为无符号整数时的运行(其中,PV = 3)。

如果参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。

如果参数 LOAD 的值从 0 变为 1,则参数PV(预设值)的值将作为新的CV(当前计数值)装载到计数器。

时序图

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第7张图片

编写程序段2

参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。Q0.1动作

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第8张图片

I0.3接通 参数 LD 的值从 0 变为 1,则参数PV(预设值)的值3将作为新的CV(当前计数值)装载到计数器。

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第9张图片

I0.3 断开 I0.2接通 参数 CD 的值从 0 变为 1 时,CTD 计数器会使计数值减 1。

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第10张图片

直到 参数 CV(当前计数值)的值等于或小于0,则计数器输出参数 Q = 1。Q0.1动作

减计数Q接通直到 重新重载或者减计数减到负整数限值。

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第11张图片

6. CTUD 运算(加计数和减计数)

当加计数 (CU) 输入或减计数 (CD) 输入从 0 转换为 1 时,CTUD计数器将加 1 或减 1。CTUD 时序图显示了计数值为无符号整数时的运行(其中 PV = 4)。

如果参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。

如果参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。

如果参数 LOAD 的值从 0变为 1,则参数 PV 的值将作为新的 CV 装载到计数器。

如果复位参数 R 的值从 0 变为1,则当前计数值重置为0。

时序图

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第12张图片

编写程序段3

参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第13张图片

I0.7接通 参数 LD 的值从 0变为 1,则参数 PV 的值4将作为新的 CV 装载到计数器。参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。Q0.2动作

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第14张图片

I0.7 断开 I0.5接通 减计数 (CD) 输入从 0 转换为 1 时,CTUD计数器将减 1

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第15张图片

直到 参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第16张图片

I0.6接通 参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。Q0.3动作

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第17张图片

I0.4 接通 加计数 (CU) 输入从 0 转换为 1 时,CTUD计数器将加 1

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第18张图片

参数 LD 的值从 0变为 1,则参数 PV 的值4将作为新的 CV 装载到计数器。参数 CV 的值大于等于参数 PV 的值,则计数器输出参数QU = 1。Q0.2动作

tia v15 添加项目_基于博途V15 西门子S7-1200 计数器指令应用_第19张图片

你可能感兴趣的:(tia,v15,添加项目,博途IEC,TIME数据类型,西门子博图的FB块)