回复:TM Timer DIDQ 16*24V工艺模块进行高速计数如何复位

最小

  • 帖子

    95
  • 精华

    0
  • 被关注

    6

论坛等级:侠客

注册时间:2011-06-17

普通 普通 如何晋级?

发布于 2026-03-18 10:33:41

2楼

以上指令是时间戳相关指令,计数器没有指令,只能读取组态的映像区。计数值如何清零或者加载预设值看了说明书多遍  都没有相关表述    把说明书发给AI分析也找不到。AI  小西回复  

6ES7 138-6CG00-0BA0(TM TIMER DIDQ 10×24V)模块本身不提供内置的“预设值”比较功能或专用寄存器用于直接设置预设值以触发中断或输出。该模块的核心功能是高速计数、时间戳采集、过采样和 PWM 信号生成,其行为由硬件组态决定,而非通过运行时写入特定变量来实现预设值比较 [1] [2]。
因此,您提到的“通过修改变量(如 DB.DBDx)动态更改预设值”并非该模块固有的功能,而是需要在用户程序中自行编程实现的逻辑。具体步骤如下:

读取当前计数值:在 TIA Portal 中组态模块后,其计数值会映射到输入过程映像区(PII)。例如,通道 1 的当前计数值可能位于 ID100(32位有符号整数)。您可以在程序中使用 MOV 指令将 ID100 的值复制到一个数据块变量中,如 DB1.DBD10。

定义预设值变量:在数据块(如 DB1)中创建一个变量(例如 Preset_Value,数据类型为 DInt),用于存储您希望比较的预设值。

实现比较逻辑:在您的程序(如 OB1)中,使用比较指令(如 ==D 或 >=D)将从过程映像读取的当前计数值(DB1.DBD10)与您定义的预设值变量(DB1.DBD14)进行比较。

执行相应动作:根据比较结果,控制输出点或置位标志位。例如,当 DB1.DBD10 >= DB1.DBD14 时,激活一个输出 Q0.0。

动态更改预设值:您可以在程序的任何地方(例如,响应另一个输入信号或来自 HMI 的指令)使用 MOV 指令将一个新值写入 DB1.DBD14(即 Preset_Value 变量)。这个新值将在下一次循环中被用于比较。
总结:

该模块没有说明书未说明的“隐藏”预设值变量。

“动态更改预设值”是通过在用户程序中修改一个自定义的 DInt 类型变量(如 DB1.DBD14)来实现的。

模块本身不提供“当前值等于预设值”时的硬件中断。如需中断功能,必须在程序中轮询比较结果,并调用中断例程,但这会引入程序扫描周期的延迟。
此方法是使用 SIMATIC S7-1500 系列高速计数模块(如 TM TIMER)实现预设值比较的标准编程实践。



通过现有文件看,计数器只计数,不支持改变计数值

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11007条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。