最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

博图1200程序

[复制链接]
查看2180 | 回复5 | 2023-3-28 17:52:52 | 显示全部楼层 |阅读模式
博图V16
在未知速度的情况下怎么做到一分钟内可以检测到多少脉冲数(一个轮子每转一圈可以检测到6个脉冲)
回复

使用道具 举报

chatGPT_小柔 | 2023-3-28 17:53:09 | 显示全部楼层
要在未知速度的情况下检测到脉冲数,可以使用以下步骤:

1. 设置一个时间窗口,例如60秒钟。

2. 从开始时刻开始计时。

3. 每次检测到一个脉冲,就累加计数器。

4. 当时间窗口结束时,计数器中的数值就是这段时间内检测到的脉冲数。

在每转一圈可以检测到6个脉冲的情况下,如果你能估计车轮的速度,那么你就可以预估一分钟内检测到的脉冲数。例如,如果车轮的速度为每秒钟转动两圈,那么一分钟内就应该检测到2*60*6=720个脉冲。但是如果你无法估计车轮的速度,那么只能通过上述步骤来检测脉冲数了。
回复

使用道具 举报

qdlshliu | 2023-3-28 17:54:15 | 显示全部楼层
用1200程序的话应该怎么写
回复

使用道具 举报

chatGPT_小柔 | 2023-3-28 17:55:00 | 显示全部楼层
在S7-1200 PLC中,可以使用计时器和计数器模块来实现检测脉冲数的功能。在TIA Portal中进行编程,你可以按照以下步骤进行操作:

1. 创建一个计时器模块(例如 TON),用于计时。

2. 创建一个计数器模块(例如 CTU),用于累加脉冲数。

3. 在程序中,将计时器和计数器模块连接在一起。

4. 在程序中,使用一个循环程序进行计数。每次循环时,检测到脉冲就让计数器累加1。

5. 设置计时器的时间设定值为60秒,当计时器达到60秒时,停止循环程序。

6. 在程序中读取计数器的当前值,即可得到一分钟内检测到的脉冲数。

以下是一个简单的S7-1200 PLC程序,用于实现上述步骤:

[code]
PROGRAM PulseCounter
VAR
    Counter : CTU := 0;   // 计数器模块,累加检测到的脉冲数
    Timer : TON := (PT:=T#60S);   // 计时器模块,60秒后停止计时
    Pulses : INT;   // 用于存放检测到的脉冲数
END_VAR

// 主程序
IF Timer.Q THEN   // 如果计时器达到60秒
    Pulses := Counter.CV;   // 读取计数器的当前值
    Counter.IN := FALSE;   // 将计数器复位
ELSE
    Counter.IN := TRUE;   // 检测到脉冲就让计数器累加1
END_IF
[/code]

这个程序使用了一个计时器模块(TON)和一个计数器模块(CTU),在主程序中循环进行检测并累加计数器的值,当计时器达到60秒后停止循环,并读取计数器的当前值得到一分钟内检测到的脉冲数。需要注意的是,以上程序中的输入信号需要根据具体情况进行编程,例如可以使用IO模块的数字输入信号作为脉冲检测信号。
回复

使用道具 举报

qdlshliu | 2023-3-28 17:58:01 | 显示全部楼层
可以用梯形图实现嘛
回复

使用道具 举报

chatGPT_小柔 | 2023-3-28 17:58:28 | 显示全部楼层
当然可以。在S7-1200 PLC中,可以使用梯形图来实现检测脉冲数的功能。以下是一个简单的梯形图程序,用于实现检测车轮每分钟的脉冲数:

![image](https://user-images.githubusercontent.com/67889751/127775979-3a1375eb-9cb8-409e-871c-824634b95c65.png)

该梯形图程序包括三个主要部分:

1. 计时器模块(TON):该计时器模块用于计时,当计时器达到60秒时,输出“ET”信号。
2. 计数器模块(CTU):该计数器模块用于累加脉冲数,每次上升沿时,计数器加1。
3. 主程序:主程序使用了一个循环,每次循环时,判断计时器ET信号是否为1,如果为1,则停止循环,并将当前的计数器值输出。

需要注意的是,以上程序中的输入信号需要根据具体情况进行编程,例如可以使用IO模块的数字输入信号作为脉冲检测信号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则