s1200 博图高速脉冲计数值没有变化_西门子1200PLC高速计数.docx

本文介绍了西门子1200PLC高速计数器的工作原理,强调了过程映像区的限制以及通过读取外设地址获取实时值的方法。此外,详细讲解了高速计数器的中断功能、频率测量功能,并提供了相关指令块和参数的说明。同时,针对固件V4.1以上版本新增的CTRL_HSC_EXT指令,阐述了周期测量功能的配置和编程步骤。
摘要由CSDN通过智能技术生成

高速计数器寻址CPU 将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为 32 位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,读取到的值并不是当前时刻的实际值,在一个扫描周期内,此数值不会发生变化,但计数器中的实际值有可能会在一个周期内变化,用户无法读到此变化。用户可通过读取外设地址的方式,读取到当前时刻的实际值。以 ID1000 为例,其外设地址为 “ID1000:P”。表1. 所示为高速计数器寻址列表。表1. 高速计数器寻址高速计数器号数据类型默认地址HSC1DINTID1000HSC2DINTID1004HSC3DINTID1008HSC4DINTID1012HSC5DINTID1016HSC6DINTID1020中断功能S7-1200 在高速计数器中提供了中断功能,用以处理某些特定条件下触发的程序共有 3 种中断事件:1.当前值等于预置值2.使用外部信号复位3.带有外部方向控制时,计数方向发生改变频率测量S7-1200 除了提供计数功能外,还提供了频率测量功能,有 3 种不同的频率测量周期:1.0 秒,0.1 秒和0.01 秒。频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以 Hz (每秒脉冲数)为单位。高速计数器指令块高速计数器指令块,需要使用指定背景数据块用于存储参数, 如图 1.所示。 图1. 高速计数器指令块表2. 高速计数器参数说明HSC (HW_HSC) 高速计数器硬件识别号DIR (BOOL) TRUE : 使能新方向CV (BOOL) TRUE : 使能新起始值RV (BOOL) TRUE: 使能新参考值PERIODE (BOOL) TRUE : 使能新频率测量周期NEW_DIR (INT): 方向选择1:=正向;-1 :=反向NEW_CV (DINT): 新起始值NEW_RV (DINT): 新参考值NEW_PERIODE (INT) : 新频率测量周期 表3. STATUS 错误代码错误代码(十六进制)描述0无错误80A1高速计数器的硬件标识符无效80B1计数方向 (NEW_DIR) 无效80B2计数值 (NEW_CV) 无效80B3参考值 (NEW_RV) 无效80B4频率测量周期 (NEW_PERIOD) 无效80C0多次访问高速计数器CTRL_HSC_EXT 扩展高速计数器组态及编程S7-1200产品从固件版本V4.1起新增了高速计数器的周期测量功能,该功能通过 CTRL_HSC_EXT 扩展高速计数器指令实现。如下:周期测量 CTRL_HSC_EXT 扩展高速计数器指令在博途软件集成的工艺指令文件夹中可以找到CTRL_HSC_EXT指令,如图1,图2所示。该指令各参数含义请参考图3。图1 指令文件夹图2 CTRL_HSC_EXT指令图3 参数数据类型 全部CTRL_HSC_EXT指令都需要使用系统定义的数据结构(存储在用户自定义的全局背景数据块中)存储计数器数据。该数据块要被指定用作CTRL_HSC_EXT的“CTRL”输入参数,其创建和使用步骤如下: 新添加一个全局DB块(例如图4中名称为MYDB)。 在此DB块中找到一个空行,添加变量(例如图4中名称为 my period),在此变量的数据类型一列,手动输入“HSC_Period”并回车。注意:数据类型下拉控件里并没有此类型,所以必须用户正确输入该名称。 检查新添加变量是否是一个可以扩展的通信数据结构。 在梯形图CTRL_HSC_EXT 指令的 CTRL引脚上链接刚刚生成的数据块变量(例如“MYDB.my period”)。 图4 全局数据块示例 HSC_Period 数据结构如图5所示: 图5 HSC_Period数据结构 其中, ① ElapsedTime返回当前周期测量间隔最后一个脉冲和前一个周期测量间隔最后一个脉冲之间的间隔时间(单位:纳秒)。 若 EdgeCount = 0, 则 ElapsedTime 为自最后一个脉冲算起的累计时间。ElapsedTime的范围为 0 至 4,294,967,280 纳秒(0x0000 0000 至 0xFFFF FFF0)。 返回值若为 429496295 (0xFFFFFFFF),则表示出现周期溢出。 自 0xFFFF FFF1 至 0xFFFF FFFE 的值为保留值。? 如果 ElapsedTime 为 0 (没有收到输入脉冲)或 0xFFFF FFFF(出现周期溢出),则 EdgeCount 中的值无效。 ② EdgeCount 返回最近一个测量间隔的输入脉冲的数量。 EdgeCount 必须大于等于“1”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>