问下一个扫描周期如果有2次出现Q0.2,Q0.3, 点击:2686 | 回复:11



cjj5405

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:27
  • 注册:2011年8月01日
发表于:2011-11-03 09:02:51
楼主
问下怎么回事,我主程序中Q0.2.Q0.3不运行时候,怎么子程序中的Q0.2,Q0.3程序监控是运行,但PLC输出端子没反应啊 18:45:09 还有就是把2个都含有Q0.2,Q0.3的网络放一主程序中,结果就出现了错误啊当监控发现第一个程序中Q0.2,Q0.3运行,第二个程序中 Q0.2,Q0.3不运行,结果怎么也是不运行啊



louliang505

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 47回
  • 年度积分:0
  • 历史总积分:533
  • 注册:2011年4月27日
发表于:2011-11-03 09:11:31
1楼
第一个问题我也不知道,第二个:如果你在一个主程序中出现两次同一个输出,它会按照最后的网络处理,比如,你前面的程序是当i0.0接通时,Q0.0接通,后面网络又出现当I0.1接通,Q0.0接通,程序扫描的时候是以I0.1那条作为结果的

cjj5405

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:27
  • 注册:2011年8月01日
发表于:2011-11-03 09:22:48
2楼

目前做项目,就卡这了,郁闷

bhdxzgp

  • 精华:5帖
  • 求助:8帖
  • 帖子:141帖 | 5451回
  • 年度积分:0
  • 历史总积分:21609
  • 注册:2006年4月16日
发表于:2011-11-03 21:08:25
3楼

首先最好不用用多线圈输出;最好用中间继电器;程序只有一个Q输出;

2也可以用SET和RSER的方式;比较好的!

zaxife

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 80回
  • 年度积分:0
  • 历史总积分:270
  • 注册:2005年5月25日
发表于:2011-11-04 12:46:27
4楼

1 子程序,如果能流不通过时根本不会执行里面的指令运算,基本上里面的数据都变成了动态共享内存了,所以里面内存的状态已经没意义了。

2 没清楚你想说的什么问题,两个子程序,能流进不去不执行里面的指令运算,PLC干嘛要输出啊?PLC要输出的前提就是有一个能流流入Q点吧....你子程序没能流流入,也就没能流流入里面的Q点,Q点有什么可能会输出呢?

打个比方:

if en=1 then

q0.2=1

end if

如果EN不等于1,根本不会执行if....end if 里面的q0.2=1语句,那Q0.2就不可能会由于if....end if 的存在而输出吧?

那么EN不等于1时,那么判断里面的映射内存Q0.2的状态还有意义么?

zaxife

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 80回
  • 年度积分:0
  • 历史总积分:270
  • 注册:2005年5月25日
发表于:2011-11-04 12:51:19
5楼
1 子程序,如果能流不通过时根本不会执行里面的指令运算,基本上里面的数据都变成了动态共享内存了,所以里面内存的状态已经没意义了。

2 没清楚你想说的什么问题,两个子程序,能流进不去不执行里面的指令运算,PLC干嘛要输出啊?PLC要输出的前提就是有一个能流流入Q点吧....你子程序没能流流入,也就没能流流入里面的Q点,Q点有什么可能会输出呢?

打个比方:

if en=1 then

q0.2=1

end if

如果EN不等于1,根本不会执行if....end if 里面的q0.2=1语句,那Q0.2就不可能会由于if....end if 的存在而输出吧?

那么EN不等于1时,那么判断里面的映射内存Q0.2的状态还有意义么?

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-11-04 12:59:42
6楼

多个地方有输出确实不太掌握好PLC的扫描功能。建议增加多个变量的形式,最后输出单个即可

mantra

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2010年9月30日
发表于:2011-11-04 16:11:26
7楼

编程养成用中间变量的习惯,使一个程序的输入输出只有一组接口,这样可以方便灵活的修改,也便于程序在不同设备间移植。

如果有特殊要求一定要再一个扫描周期内产生两次不同的输出,那么以西门子s7-200编程为例,要使用立即指令,这样可以绕过扫描周期与过程寄存器的影响,直接对输入输出进行读取和赋值。

xiakebiao110

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 645回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2011-11-04 23:04:20
8楼
双线圈会引起冲突,建议不要使用双线圈。

唯一de恶魔

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 34回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2011年9月02日
发表于:2011-11-08 08:33:22
9楼
双线圈是不允许的,如果你使用了,就会只有前面那个激活

wxr5637791

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 287回
  • 年度积分:0
  • 历史总积分:678
  • 注册:2009年3月20日
发表于:2011-11-08 09:00:05
10楼
一个扫描周期出现2次q2.0,结果就是其值永远为0

迷茫小电工

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 234回
  • 年度积分:0
  • 历史总积分:502
  • 注册:2009年7月05日
发表于:2011-11-11 19:10:16
11楼

 做项目 你还要一个主程序出现两个相同的输出啊! 不应该!

 


热门招聘
相关主题

官方公众号

智造工程师