bodesc
级别: 探索解密
精华主题: 0
发帖数量: 4 个
工控威望: 134 点
下载积分: 581 分
在线时间: 0(小时)
注册时间: 2013-07-31
最后登录: 2013-10-15
查看bodesc的 主题 / 回贴
楼主  发表于: 2013-10-11 16:13
//比较VB3和VB1,如果不相等,M9.0设置为ON
LDB<>  VB3, 复用输入:VB1
S      M9.0, 1


//M9.0为ON,延时定时器开始计时
LD     M9.0
TON    T37, 5

//到达延长的时间后,读取温度,并将M9.0复位为OFF。
LD     T37
MOVW   AIW8, AC1
ITD    AC1, AC1
DTR    AC1, AC1
/R     10.0, AC1
MOVR   AC1, 复用温度:VD76
R      M9.0, 1


//问题来了,1、在T37从来没有接通的情况下,M9.0的值不停改变;2、定时器后面的代码从来没有被执行;在T37没有打开的情况下,M9.0为什么会被改变?
beichen
级别: 家园常客
精华主题: 0
发帖数量: 158 个
工控威望: 979 点
下载积分: 1681 分
在线时间: 158(小时)
注册时间: 2013-06-21
最后登录: 2017-09-14
查看beichen的 主题 / 回贴
1楼  发表于: 2013-10-12 15:16
这段程序好像有问题,改下试下

LDB<>  VB3, 复用输入:VB1
AN   T37
S      M9.0, 1
无锡市北辰自动化技术有限公司
BCNet-S7  技术交流群:229195162
0510-85166823  bcnets7@163.com
www.beichen-automation.com
淘宝:http://shop113462796.taobao.com/
wang91569
级别: 探索解密
精华主题: 0
发帖数量: 16 个
工控威望: 139 点
下载积分: 1438 分
在线时间: 9(小时)
注册时间: 2013-04-10
最后登录: 2014-03-30
查看wang91569的 主题 / 回贴
2楼  发表于: 2013-10-14 07:46
很简单,因为M9.0不是随T37而变化的,相反,M9.0的闭合时间大于500毫秒后T37触点才会动作,执行后面的代码。
而M9.0是受vB1和VB3的大小决定,你说M9.0值不停的变,可能是这两个变量的值一直在变化,时而相等时而不相等,而不相等的时间不超过500ms所以定时器一直不动作,后面的代码也不执行。