雨后的彩虹
级别: 探索解密
精华主题: 0
发帖数量: 9 个
工控威望: 128 点
下载积分: 538 分
在线时间: 1(小时)
注册时间: 2012-12-06
最后登录: 2020-12-15
查看雨后的彩虹的 主题 / 回贴
楼主  发表于: 2020-11-14 10:36
最近在维修设备时,发现其PLC程序一启动,其复位指令控制的M40就被置位了,但前面的条件都没有满足,M40一直处于复位状态,想请教一下各位大侠,有谁知道这是咋回事啊? 
雨后的彩虹
级别: 探索解密
精华主题: 0
发帖数量: 9 个
工控威望: 128 点
下载积分: 538 分
在线时间: 1(小时)
注册时间: 2012-12-06
最后登录: 2020-12-15
查看雨后的彩虹的 主题 / 回贴
1楼  发表于: 2020-11-14 11:33
这是一个温度控制的程序,D1存储的是当前温度值,D200是温度设定值。C是计时器(记录M8014脉冲数的),这几个程序步是通过比较D1和D200的数值,当D1≥D200的时候,M40和M41就复位M40,当D1小于D200时,M42动作设备开始加热。这个M40是长期处于比较状态的,所以必须要用RST指令复位。
为了避免M40中途发生了冲突或被使用过,我把它换成了M210,但是在模拟运行时,发现这个M210还是处于置位状态。
雨后的彩虹
级别: 探索解密
精华主题: 0
发帖数量: 9 个
工控威望: 128 点
下载积分: 538 分
在线时间: 1(小时)
注册时间: 2012-12-06
最后登录: 2020-12-15
查看雨后的彩虹的 主题 / 回贴
2楼  发表于: 2020-11-14 11:41
我又找到以前程子华老师的一个CMP比较程序的范例,我把这个程序做了模拟测试,发现程序一运行,RST没有出现开机即置位的状态。感觉之前提到的这个程序还是在某一段上有bug。

个人认为,在一个程序中如果发现有出现莫名其妙的问题,应该尝试把程序不重要的,或者没有直接关联的部分全部剔除掉。把有问题的核心程序内容进行单独的测试,或许能看到问题所在。
雨后的彩虹
级别: 探索解密
精华主题: 0
发帖数量: 9 个
工控威望: 128 点
下载积分: 538 分
在线时间: 1(小时)
注册时间: 2012-12-06
最后登录: 2020-12-15
查看雨后的彩虹的 主题 / 回贴
3楼  发表于: 2020-11-14 12:45
不是正常的。因为这个M40一直处于复位状态,导致加热程序出现了温度不可控。以前不是这样子,肯定是程序在编写调试过程中有什么细节部分有问题。下午我把程序再精简一下,看看问题在哪里