职业特工0
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 101 点
下载积分: 1018 分
在线时间: 26(小时)
注册时间: 2021-12-08
最后登录: 2022-12-30
查看职业特工0的 主题 / 回贴
楼主  发表于: 2022-03-29 16:20
图片:
如题,那位大神知道问题出在哪里吗?
[ 此帖被职业特工0在2022-03-30 17:19重新编辑 ]
附件: 钢带2线原始程序.rar (162 K) 下载次数:31
网站提示: 请不要用迅雷下载附件,容易出错
职业特工0
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 101 点
下载积分: 1018 分
在线时间: 26(小时)
注册时间: 2021-12-08
最后登录: 2022-12-30
查看职业特工0的 主题 / 回贴
1楼  发表于: 2022-03-30 08:35
引用
引用第1楼zhangqi_1234于2022-03-29 18:25发表的  :
严格地说,不能这样使用C251,C251是外部高速计数器,采用中断方式工作。普通的内部计数器可以这样使用
一直这样使用的,好几年了,最近才出现这样问题,我觉得程序没问题,不知哪里出问题了?
职业特工0
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 101 点
下载积分: 1018 分
在线时间: 26(小时)
注册时间: 2021-12-08
最后登录: 2022-12-30
查看职业特工0的 主题 / 回贴
2楼  发表于: 2022-03-30 08:39
C251手动复位后,可以用一段时间,但时间一长C251里面的数就是累加数了
职业特工0
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 101 点
下载积分: 1018 分
在线时间: 26(小时)
注册时间: 2021-12-08
最后登录: 2022-12-30
查看职业特工0的 主题 / 回贴
3楼  发表于: 2022-03-30 17:08
引用
引用第5楼zhangqi_1234于2022-03-30 14:23发表的  :

既然你认为C251这么用没问题,那么你只把这段程序拿出来是几个意思?

我怀疑是PLC有问题,但用比较指令就可以复位C251,不知为什么
职业特工0
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 101 点
下载积分: 1018 分
在线时间: 26(小时)
注册时间: 2021-12-08
最后登录: 2022-12-30
查看职业特工0的 主题 / 回贴
4楼  发表于: 2022-03-30 17:09
引用
引用第6楼lijinniu于2022-03-30 15:18发表的  :
XOX1有没有使用

接的编码器
职业特工0
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 101 点
下载积分: 1018 分
在线时间: 26(小时)
注册时间: 2021-12-08
最后登录: 2022-12-30
查看职业特工0的 主题 / 回贴
5楼  发表于: 2022-03-30 17:15
整个程序
[ 此帖被职业特工0在2022-03-30 17:22重新编辑 ]
附件: 钢带2线原始程序.rar (162 K) 下载次数:28
网站提示: 请不要用迅雷下载附件,容易出错
职业特工0
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 101 点
下载积分: 1018 分
在线时间: 26(小时)
注册时间: 2021-12-08
最后登录: 2022-12-30
查看职业特工0的 主题 / 回贴
6楼  发表于: 2022-03-31 11:03
引用
引用第10楼zhangqi_1234于2022-03-30 19:45发表的  :

我看你发的程序,我个人认为,程序设计者使用C251意思是:用它来接收X0和X1端的脉冲。当X0的脉冲超前X1脉冲90度时,进行加计数,当X0脉冲滞后X1脉冲90度时,进行减计数。当计数值等于1时,表明X0端和X1端各自输入了一个脉冲,两个脉冲相差90度,X0端超前X1端90度。然后C251常开触头闭合,C251闭合的第一个扫描周期使D31自加1,然后C251复位,C251常开触头断开。C251重新从零开始计数,计数值等于1又开始上述动作,如此周而复始。然后把D31转存D33,D33转换成实数存D55,D55又经过一系列实数运算,得出的结果可能是某零件的长度。那么你说的C251不断累加计数,而没有复位的这种故障,很有可能是X0端输入的脉冲不是超前X1端脉冲90度,而是滞后X1端90度,结果导致C251减计数,计数结果为负数,始终不等于1,无法实现复位。这个属于PLC的X0端和X1端接编码器的故障 ,不是PLC的故障。还有一种可能,就是这样编程使用C251有个前提条件:X0和X1端输入的脉冲周期不能小于PLC的扫描周期,否则会导致C251不断累加计数而不会复位。另外,需要指出的是,你开始只拿部分程序出来,而不说明PLC的X0和X1端接的什么,别人也很难作出判断。

出问题时候,一直正计数,您说的没错,可能是编码器故障,另外一种情况不会出现,因为出问题前一直这样使用没问,现在用比较指令复位C251,使用没问题,谢谢解答。