首页 上一页 1 2 下一页 尾页

求助定时器 点击:1638 | 回复:21



okyouandme

    
  • 精华:0帖
  • 求助:6帖
  • 帖子:12帖 | 70回
  • 年度积分:0
  • 历史总积分:203
  • 注册:2010年12月04日
发表于:2010-12-07 20:36:53
楼主

初学PLC遇到很多问题比如三菱FX2N-32MRCPU手册上说它有256点定时器,Q系列Q02CPU有2048点,那这256点定时器是硬件实现的256个定时器还是通过软件方式实现的?还有程序在运行过程中当执行OUTT_指令时CPU读取的是当前定时时间的值还是上个扫描周期END指令时定时器的值?望高手多多指教




云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2010-12-15 18:50:18
1楼

这256点定时器是硬件实现的256个定时器

建议楼主还是先看一下PLC的定义。

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-15 18:54:14
2楼

 

  我却认为这256点定时器是软件虚拟的256个定时器 。

         

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-12-15 21:23:16
3楼

很难界定的。明显的就说知道啧。但是你说一个plc哪来由硬件的计时器呢?

一楼说硬件实现。是不是说CPU作为硬件实现的计时?

二楼的说软件实现。是不是依靠控制器底层的操作系统软件虚拟出来的计时?

很难界定吧。

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-16 19:34:07
4楼

 

   教科书里有这样一段话:系统管理程序将有限个数的CTC扩展为几十上百个用户时钟和计数器。通过这部分程序,用户看到的就不是实际机器存贮地址和PIO、CTC的地址了,而是按照用户数据结构排列的元件空间和程序存贮空间了。

  (这还是80年代版本的教科书。现在又过去30年了,PLC技术又有了长足的进步,1个主频可以扩展为512个甚至2048个计时器!)

                     

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-21 16:39:44
5楼

 

引用云锋 的内容:

             这256点定时器是硬件实现的256个定时器

             建议楼主还是先看一下PLC的定义。




  Wanggq回复:

 

    从IEC对PLC的定义来看,看不出该“定义”支持“PLC的定时器是由硬件实现的”这一观点!

 

  下面是在1987年国际电工委员会(International Electrical Committee)颁布的PLC标准草案中对PLC做了如下定义:

 

  “PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。PLC及其有关的外围设备都应该按易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。”

                      

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-21 16:46:44
6楼

 

  其中的“ 它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令”一句就已经能说明PLC的“计时”是用“程序”来实现的。也就是说:它的计时是靠“软件”来实现的!芳季怎么说“很难界定”呢?!

             

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-21 19:34:52
7楼

 

  <winter938 >网友曾经用S7 200的0.1秒分辨率定时器写了一个有“双线圈”错误的测试片断,试图来说明西门子PLC计时器不是对“PLC中的一个占空比50%的时钟脉冲”计数而实现计时器功能。他的这个测试片断不但不能支持他的这一观点,相反,从事物的另一面来证实了西门子PLC的计时器也是对“时钟脉冲”计数而实现的计时。

 

  我把<winter938 >的测试S7 200的0.1秒分辨率定时器的程序图片整理出来贴在下面:

                              
   <winter938 >网友的这个测试片断正好可以用来证实PLC计时器是由“软件”来实现的!
                        

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-22 19:24:21
8楼

 

  按一楼的说法PLC定时器是硬件实现的,则我们就可以把<winter938 >的这个片断中的“T37”和“T38”看成是两个类似石英电子表的硬件电路,其“驱动条件I0.0”就好比石英电子表电路的“电源开关”。当“I0.0电源开关”为ON时,两个石英电子表电路就开始计时。经历同一段时间后的某一时刻,T38的硬件电路计时数值为21个100mS ;T37的硬件电路若是没有故障的,则它的计时数值也应该是21个100mS !但是,在程序上T37被驱动了两次,就造成了T37的计时数值比T38的计时数值增加了一倍!这就充分说明PLC计时器功能并不是硬件电路实现的!因为一个硬件的石英电子表电路决不可能因为它的“电源开关的接点是双接点”而导致它的时基频率增快一倍!!它的计时数值比正常数值大一倍的原因是它在同一个扫描周期里重复的对同一个“时基脉冲”计数所造成的!这就是PLC计时器功能“由程序(软件)来实现”的有力证据!!

         

okyouandme

  • 精华:0帖
  • 求助:6帖
  • 帖子:12帖 | 70回
  • 年度积分:0
  • 历史总积分:203
  • 注册:2010年12月04日
发表于:2010-12-22 21:48:07
9楼

谢谢 楼上几位的热心解答 你们说的都很有道理 市面上貌似介绍PLC内部原理的资料不是很多 所以我也觉得很难界定。。。

okyouandme

  • 精华:0帖
  • 求助:6帖
  • 帖子:12帖 | 70回
  • 年度积分:0
  • 历史总积分:203
  • 注册:2010年12月04日
发表于:2010-12-22 22:14:19
10楼
回复内容:
对:wanggq 关于

 

  其中的“ 它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令”一句就已经能说明PLC的“计时”是用“程序”来实现的。也就是说:它的计时是靠“软件”来实现的!芳季怎么说“很难界定”呢?!

             

内容的回复:

看了你的回帖,我也觉得PLC大部分的定时器是靠软件实现的,它们可能是每个扫描周期内依靠对几个分辨率的时标计数器的计数值进行读取然后加到之前的值上去,从你举得那个例子看,S7-200PLC可能是在每次执行定时器OUT指令时把之前计数器在某个阶段记到的值加到了自己的计时存储器中去了,T37和T38可能是从同一个存储器里读的数据,但由于OUT-T37被执行了2次,所以它的值是T38的2倍,如果这样的话那写3次T37的线圈,应该值就是63了,这个应该可以验证下的,如果成立,那我觉得你说得是很有道理的。。。,但到底每个定时器是否都有一个硬件的时标电路还是不太清楚的,个人感觉但要真是上面那种情况,那每个定时器都有一个硬件定时器的做法确实没什么必要性了,至少我很赞同你。。。

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-22 22:17:35
11楼

   回复第9楼:

 

   你不动脑筋当然很难界定啦!,现在我给你找出证据了,在确凿的证据面前你还是弄不明白,那有什么办法呢!

            

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-22 22:34:28
12楼

 

  请网友们注意:<winter938 >网友的这个片断是在西门子PLC的S7-200上测试的。它说明西门子S7-200的系统软件不能对计时器的“双线圈”错误有容错的能力!如果我们把这个片断移植到三菱FX1s上,三菱FX系列PLC就能对这个“错误”有容错的能力!

 

  如果把这个 S7-200 监视图片上的内容移植到三菱 FX1S 上,我们就能看到在三菱 FX1S 上,T37 同样还是在一个程序里有两处驱动,但是,它的当前值仍然和程序中只有一处驱动的T38 一样正确的对 100mS 时基信号计数(见下图所示):


 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-22 22:45:15
13楼

 

  关于PLC计时器的原理,请参阅《编程思想的图解》一帖的相关讨论。

                   

okyouandme

  • 精华:0帖
  • 求助:6帖
  • 帖子:12帖 | 70回
  • 年度积分:0
  • 历史总积分:203
  • 注册:2010年12月04日
发表于:2010-12-23 19:45:57
14楼
回复内容:
对:wanggq 关于

   回复第9楼:

 

   你不动脑筋当然很难界定啦!,现在我给你找出证据了,在确凿的证据面前你还是弄不明白,那有什么办法呢!

            

内容的回复:

恩 我心里是很支持你的看法的啊 只是觉得你这样举例并不能100%确定定时器就是软件实现的,因为如果都用硬件实现的话,只要CPU采取某种特定的读取方式,也能实现你所说的例子的:有的定时器可能是在每次OUT指令时都刷新定时器读数的,比如你说的西门子;有的可能只在一个程序周期里只刷新一次读数(比如可能在执行END指令时),比如说你举的那个FX的例子,完全可以做成那样的。这并不能绝对的说明每个定时器下面就没有一个专门的硬件定时器在工作的,虽然感觉要是这样做有点画蛇添足。。。  看得出你是位热心的PLC高手,我刚接触PLC没多久,以后会多关注你的帖子的,希望你可以多多指教哈!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-23 21:04:12
15楼

 

  只有那些分辨率为 1 ms / 0.1ms的定时器才是采用硬件来对时钟脉冲计数的!为什么1ms / 0.1ms分辨率的计时器要特别一点呢,这是因为一般用户程序都在1ms以上,如果让1ms / 0.1ms分辨率的计时器也像普通计时器(100ms / 10ms分辨率)那样在程序扫描运算计时器“线圈指令”时对时钟脉冲计数,那就很容易错过1ms / 0.1ms时钟脉冲的“ON半周”造成计时不准!所以才特别的把1ms / 0.1ms分辨率计时器做成所谓的“采用中断形式计时”。其实这个“中断”并非指把正在执行的程序中断而去执行1ms / 0.1ms时钟脉冲的计数。而是一边照常进行程序的扫描运算,一边让专用的硬件电路给计时器对时钟脉冲计数。

                                             

  除此之外,100ms / 10ms分辨率的计时器都是在程序扫描运算计时器线圈指令时才对时钟脉冲计数。也就是说除1ms / 0.1ms分辨的计时器之外的所有定时器都是用软件来实现的计时功能!

          

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-23 21:14:23
16楼

 

  在一个PLC中,1ms计时器最多也是有限的几个。不能做成几百个或上千个!只有用软件来虚拟的计时器才有可能做到成百上千的数量!

    

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-05-17 22:13:31
17楼

 

         在FX1s系列 PLC 中,1ms分辨率的计时器仅只1个(譬如:T63);在FX1n / FX2n系列 PLC 中,1ms分辨率的计时器只有4个(譬如:T246 /  T247 / T248 / T249 );在FX2n系列 PLC 中,0.1ms分辨率的计时器( 譬如:D8099 ) 仅只1个!

                               

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2011-05-18 21:40:09
18楼

很长时间没看到楼上的贴子怪想的,呵呵

还是定时器的问题,请楼上看看下面的连接,并测试一下7楼的程序吧http://www.gongkong.com/webpage/forum/201104/2011040716235300001-1.shtml

吴德星

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2010年10月20日
发表于:2011-05-19 22:13:53
19楼

新人报到哈哈。。。。。。。。。。

okyouandme

  • 精华:0帖
  • 求助:6帖
  • 帖子:12帖 | 70回
  • 年度积分:0
  • 历史总积分:203
  • 注册:2010年12月04日
发表于:2011-06-12 21:59:50
20楼
回复内容:
对:wanggq 关于

 恩 对的 以前对PLC了解不多 谢谢指教拉

         在FX1s系列 PLC 中,1ms分辨率的计时器仅只1个(譬如:T63);在FX1n / FX2n系列 PLC 中,1ms分辨率的计时器只有4个(譬如:T246 /  T247 / T248 / T249 );在FX2n系列 PLC 中,0.1ms分辨率的计时器( 譬如:D8099 ) 仅只1个!

                               

内容的回复:



热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页