q605668560
级别: 家园常客
精华主题: 0
发帖数量: 133 个
工控威望: 743 点
下载积分: 1707 分
在线时间: 256(小时)
注册时间: 2009-09-15
最后登录: 2021-06-07
查看q605668560的 主题 / 回贴
楼主  发表于: 2012-10-17 16:14
这是其中的一部分  

完整版 程序 装饰灯 控制程序.rar (11 K) 下载次数:17
为什么C1线圈已得电,可下面的 RST M100却没有得电
这里的动作为什么是M19得电一次,M100置位一次,M19再得电一次,变复位一次。如此循环。我用的是在线模拟,有关系吗?
[ 此帖被q605668560在2012-10-18 08:29重新编辑 ]
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1278 个
工控威望: 6109 点
下载积分: 52282 分
在线时间: 1123(小时)
注册时间: 2012-04-24
最后登录: 2024-12-23
查看john42tw的 主题 / 回贴
1楼  发表于: 2012-10-17 17:03
PLC是一次掃瞄輸出  因此上述情形不可能出現   除非程式不完整

應該如下
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1278 个
工控威望: 6109 点
下载积分: 52282 分
在线时间: 1123(小时)
注册时间: 2012-04-24
最后登录: 2024-12-23
查看john42tw的 主题 / 回贴
2楼  发表于: 2012-10-17 17:05
图片:
實測如圖所示
dowhat791123
级别: 探索解密
精华主题: 0
发帖数量: 11 个
工控威望: 127 点
下载积分: 592 分
在线时间: 6(小时)
注册时间: 2011-09-13
最后登录: 2013-12-13
查看dowhat791123的 主题 / 回贴
3楼  发表于: 2012-10-17 17:17
同意楼上意见
1294497603
级别: 探索解密
精华主题: 0
发帖数量: 55 个
工控威望: 147 点
下载积分: 2147 分
在线时间: 9(小时)
注册时间: 2012-06-25
最后登录: 2014-12-24
查看1294497603的 主题 / 回贴
4楼  发表于: 2012-10-17 22:07
你看一下CPU有没处于RUN的状态,如果是STOP状态也会这样
q605668560
级别: 家园常客
精华主题: 0
发帖数量: 133 个
工控威望: 743 点
下载积分: 1707 分
在线时间: 256(小时)
注册时间: 2009-09-15
最后登录: 2021-06-07
查看q605668560的 主题 / 回贴
5楼  发表于: 2012-10-18 08:23
引用
引用第2楼john42tw于2012-10-17 17:05发表的  :
實測如圖所示


这是完整程序 装饰灯 控制程序.rar (11 K) 下载次数:11
我用的是在线模拟,动作也是如我发的图所示。
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5212 个
工控威望: 7436 点
下载积分: 158993 分
在线时间: 3172(小时)
注册时间: 2007-11-21
最后登录: 2024-12-22
查看sjm213的 主题 / 回贴
6楼  发表于: 2012-10-18 09:14
考虑一个扫描周期内的状态:
首先M100是OFF的,C1被M100的常闭触点一直复位中;

M19置ON后第一个扫描周期
第一句指令:当M19第一次为ON时,C0计数到1,线圈变为ON;
第二句指令:C0将M100置位为ON;(注意此时程序还没有扫描到后面,C1仍然是在被复位的状态。而内存中的M100状态已经由OFF变为ON了)
第三句指令:M100将C0复位;
第四句指令:虽然M19和M100同时为ON,但是因为C1仍在被复位的状态,所以此时没有计数。虽然输出线圈显示为ON了,但计数值仍为0;
第五句指令:C1计数值为0,未达到设定值1,触点保持为OFF,未能复位M100;
第六句指令:M100保持为ON,未能继续复位C1;

第二个扫描周期:

第一句指令:当M19仍为ON时,但M100也为ON了,所以C0不计数,保持上一次被复位的状态OFF;
第二句指令:C0状态为OFF,对M100线圈无影响,M100仍为ON;
第三句指令:M100继续将C0复位;
第四句指令:虽然M19和M100同时为ON,但C1仍没有计数。因为计数器计数需要前边的条件状态有个OFF---->ON的状态变化,而此时M10和M100保持了上一个扫描周期的状态,一直是ON,没有变化,所以C1计数值保持为0,虽然输出线圈的状态是ON 的,但因实际计数值为0,未达到1,所以C1触点的状态仍为OFF;
第五句指令:C1保持为OFF,未能复位M100;
第六句指令:M100保持为ON,未能继续复位C1;

此后就继续保持这种状态,也就是楼主图片中的情况;直到M19再次出现OFF---->ON的状态,使C1得到一个计数值使其触点状态变为ON,将M100复位,再由M100的常闭触点将C1复位。这个过程中应该也能观察到C0前面M19和M100都为ON而C0计数值也为0的情况。
本帖最近评分记录:
  • 下载积分:+3(工控—魔术师) 好人!
  • 下载积分:+2(zzqforever) 好人!
  • 下载积分:+5(q605668560) 感谢! 版主幸苦了!