指令流水 一个时钟周期 出一个结果_怎样在 STEP 7 (TIA Portal) 中编写一个脉冲发生器程序?...

方法 1

可以使用 STEP 7 (TIA Portal) 的 IEC 定时器来通过简单的编程产生一个脉冲发生器。图 01 展示了是如何利用两个 "TON"(接通延时定时器)来实现在输出端 Q0.1 输出周期性脉冲信号的。

ec02c92410e2c242f29328b490d648e4.png

图 01

“接通延时定时器”指令将使得输出端 Q 延迟一段时间接通,该时间通过 PT 来定义。下表将描述如何实现脉冲发生功能。

脉冲发生器的功能

1、输入 I0.0 "Release" 用于激活此脉冲发生器。

2、标志 M0.1 "Out" 初始值为 "False" ,因此,下面一条接通延迟定时器指令 "TON"开始计时。

3、当接通延时时间到达的时候,标志 M0.0 "Trig" 将被置位并且输出 Q0.1 "Trig_Out" 获得 "True" 信号。

4、M0.0 的"True" 信号将触发上面一条"TON" 指令开始计时。

5、当第二次接通延时时间到达的时候,标志 M0.1"Out" 被置位。

6、M0.1 的 "True" 信号将断开下面一条 "TON" 指令的计时条件并中断该定时器,同时使标志 "M0.0" 被复位。输出 Q0.1 "Trig_Out" 获得 "False" 信号。

7、M0.0 的 "False" 信号将中断上面一条"TON" 指令,并将 M0.1 复位。

8、标志 M0.1 的 "False" 信号将重新触发下面一条 "TON" 指令,然后整个过程再次重新开始。

图 02 展示了这个脉冲发生器的时序图

d93982c468c8aa2e9c97b38e61cd3bbb.png

图. 02

更多关于 IEC timer 的指令信息请参考 STEP 7 (TIA Portal) 的在线帮助。你可以通过按 "F1" 键获得这些信息。

方法 2

您可以通过设置时钟标志来产生一个占空比为 50% 周期性脉冲信号。

步骤

1、打开您的 STEP7 项目,在设备视图中双击 S7 CPU 模块。

2、选择 "Properties" ,并在页签中点击 "System and clock memory" 。

3、勾选 "Enable the use of clock memory byte" 选项并为时钟标志选定一个字节的地址;比如,"100" 表示 MB100。时钟标志的每一位将被分配为不同频率的脉冲信号。

d2fa473bc1e8f6bdc0016c7f748d599b.png

图. 03

4、保存并编译硬件组态。然后下载到CPU。

5、标志 M100.0 将被分配为 10 Hz 频率的脉冲,也就是说它每 0.1 秒改变一次状态。 图 04 中展现了让 "IN/OUT" 引脚的操作数 MD110 循环递增的例子。比较指令连接 MOVE 指令使得当操作数到达 99 时将被复位为 0。

9233144bf2fadca5730505e669474797.png

图. 04

方法1的优势

  • 脉冲信号为 True 和 False 的时间可以设为变量。
  • 使用这种方式可以灵活的更改脉冲信号的占空比。

方法2 的优势

  • 只需更改组态设置,简单便捷。
  • 不需要用 IEC 定时器指令。

使用时钟标志说明

时钟标志的占空比是 1:1 。由于时钟标志的运行周期和 CPU 是异步的,在一个长扫描周期中时钟标志能变化多次,这将导致歧义。

举例:

  • 时钟标志的保持时间是 100ms 。
  • 程序的扫描周期是 100ms 并有正负 10ms 的波动。
  • 如果时钟标志在几个周期后状态都为 1 ,则可能感觉在监控时有 300ms 状态没有变化。
73d2232b04190b104e9995cd8f9eae2d.png

图. 05

1) 时钟标志每 100ms 发生变化

2) 扫描周期: 110ms

3) 扫描周期: 90ms

4) 在线监控时钟标志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值