电工学习网

 找回密码
 立即注册

plc编程时新手容易犯错的一点

2016-9-30 08:16| 编辑:电工学习网| 查看: 12013| 评论: 0

操作定时器,包括使能位、直接赋定时值、R指令复位等,指令执行后立即生效,不是等到系统刷新时。
这和系统对定时器的刷新机制不冲突,也不矛盾的。
读定时状态位、当时定时值,读到的就是最新鲜的值,包括由操作定时器指令立即产生的结果。但读指令本身不会改变定时器的状态。
前几天看到一个提问是这样的
问为什么C0不计数?而把网络1和网络2交换就可以了?


这个问题对于新手来说是一个很容易犯的错误,我自己也犯过同样的错误。那是因为手册中有段话把我误导了,也是自己对它理解不够。


就是这个程序,我的想法是I0.0是按钮,按下Q0.0接通,在按下Q0.0断开,可实际Q0.0根本不会接通。
那么问题来了,手册中这样说的


我的程序应该I0.0上升沿时Q0.0置位,但要等到扫描完时才会输出Q0.0,那么网络2的I0.0上升沿后面Q0.0就应该为OFF,那么就不会复位,下次按下I0.0时Q0.0复位。应该没问题啊。


而第一个程序是这样的,说明书上说
10ms定时器在扫描开始时刷新,那么当T98 ON的那一个扫描周期计数器就应该计数啊。难道说明书有问题?
后来自己仔细研究才明白,CPU执行程序时用的是过程映像寄存器中的值,Q0.0那个程序就好理解了,置位Q0.0后,寄存器中Q0.0已经ON了,扫描网络2的时候读取寄存器中Q0.0 ——>ON,所以I0.0上升沿——>ON,Q0.0——>0N,所以Q0.0被复位,Q0.0输出OFF。
那定时器这个呢?我在想cpu读取的应该也是寄存器中的值而不是定时器的实际地址,所以
实际就是扫描开始
读取T98实际地址传送给T98寄存器——>T98寄存器ON
网络1  扫描到T98时——>T98寄存器off
网络2  T98寄存器OFF,
所以网络2的T98永远接不通。
这只是我的个人理解,实际是不是这样运算的也没找到资料,想到了电脑CPU的缓存,是不是plc的过程映像寄存器是一个道理。
经过我的消化,是这样理解的:
1、与定时器有关的指令,可以分两类,一类是使用定时数据的,另一类是操作定时器的。就象一个闹钟,读时间就是使用闹钟,拨弄闹钟就是操作。
2、使用定时器,也就是读定时器状态或定时器当前的时间值,对定时器是没有影响的,而操作定时器,则会影响定时器的状态及当前值,而且是若有影响,立即生效。所以T38,定时到时,又被立即复位了,T38=1的状态到不了下面的网络。

看过《plc编程时新手容易犯错的一点》的人还看了以下文章:

发表评论

最新评论

  • PLC输入端和输出端怎么接线
  • 什么是COM端口?PLC中COM端口如何接线?
  • plc控制电动机正反转梯形图
  • 西门子S7-200系列PLC全套接线图
  • PLC十字路口的交通灯控制编程实例
  • plc基础知识指令27个
热点文章

电工学习网 ( )

GMT+8, 2023-4-23 05:18

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部