平时在使用PLC编程的过程中也遇到过这样的问题,处理方法就是把程序段掉换位置,放在定时器“线圈”或计数器“线圈”前面(当然和个人所编写的程序有关)。楼主所提出的问题和本网站所讨论的“一个周期脉冲”、“一键开关”有相同之处,都和PLC扫描周期有关,我觉得理解这些问题是很有必要的。也许是我不够勤快,我到现在对这些问题也不是很理解(但用死记硬背和其他方法可以应用),现将“一个周期脉冲”、“一键开关“两个问题都列举出来,我这次也会争取将”扫描周期“这个概念理解透彻,期待各位“大侠”的参与和指导! “一键开关”程序如下: 程序段1: A I 0.0 AN M 1.1 = M 1.0 程序段2: A I 0.0 = M 1.1 程序段3: A M 1.0 AN Q 0.0 O AN M 1.0 A Q 0.0 = Q 0.0
quote:以下是引用Harry_dong在2008-12-17 14:01:43的发言: 看过老兵和客服的贴子我有了新的认识:我的新观点定时器与扫描周期是异步的,定时时间到就动作。通过下面的试验PLC:CPU313C-2DP;程序中只包含OB1:利用SFC47延长用户程序时间能够更仔细的观察M10.2怪异现象! a试验:AN T 3 L S5T#1S SD T 2 A T 2 L S5T#1S SD T 3 CALL SFC47 WT:=5000 A T 3 S M 10.2 测试结果:WT值 扫描周期 M10.2被置位的几率 5000 6ms 偶尔置不上 100 1ms 经常置不上 不添加SFC47 <1ms 有机会置上 通过以上结果可以看出M10.2还是有机会被置位的,而且被置位的几率和扫描周期的长短有关系,在不添加SFC47的情况下如果使用更高的CPU可能被置位机会更少。 b试验:移动调用SFC47的位置 CALL SFC47 WT:=5000 AN T 3 L S5T#1S SD T 2 A T 2 L S5T#1S SD T 3 A T 3 S M 10.2 测试结果:WT值无论大小M10.2被置位的可能性都很小,那么可以得出结论M10.2置位的可能性不直接与扫描周期的长短有关,而是与从AN T3到A T3之前的这段程序执行时间和扫描周期时间的比值有直接关系。 也就是:如果从AN T3到A T3之前的这段程序执行时间所占总的扫描周期时间的比重比较大那么T3在这其间定时时间到的可能性比较大,它被置位的可能性就大,由此可以看出定时器是时间到就有动作。
quote:以下是引用shine在2008-12-18 10:15:10的发言: 做这么一个实验: ob1: Network 1 A M 10.3 JNB _001 CALL FC 1 _001: NOP 0 Network 2 A T4 = M10.5 FC1: A M10.6 L s5t#5s sd t4