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

回复网友关于PLSY指令的问题 点击:6290 | 回复:44



wanggq

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

 

 引用<winter938 >的内容:


 “在PLSY指令的驱动条件OFF时正在输出的脉冲串又是以什么状态结束的?”

-------------------------------------------------

 

     <Wanggq>回复:

 

  在不同系列的PLC上,这个问题的答案是不同的。

 

  在FX2n上,当“PLSY指令”的驱动条件OFF时,正在输出的脉冲串嘎然而止!并不保证其正在输出中的一个脉冲达到标准脉宽。

 

  在FX1s或FX1n上,脉冲的输出,是一份一份的进行的。当“PLSY指令”的驱动条件出现OFF(准确的说,是驱动条件的“下降沿”)时,正在输出中的“方波”(这里我用“方波”的概念来替代“脉冲串”更加准确一些)必须保证正在执行的一份“方波”后面再追加一份“前瞻预备份”完整执行后才停止输出。倘若在“PLSY指令”执行前,对应的“脉冲输出禁止”位已经置为ON,则不须追加“前瞻预备份”,但也必须待正在执行中的一份“方波”完整执行后才能停止输出。

 

  相关链接: 《关于plsy指令的一个问题》

 

 




wanggq

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

 

  关于FX系列PLC上“PLSY指令”的“脉冲输出”的概念有两种:

 

  在FX2n及FX2nc系列上,“脉冲输出”指令所指“脉冲”的定义为:在短时间内突变,随后又迅速返回其初始值的物理量。(此乃定义1) 

 

  在FX1s及FX1n系列上,“脉冲输出”指令所指“脉冲”实质是指“输出波形的一个周期”。它的定义是:输出波形周期性的从一点开始完成一个过程再回到这一点。我们可将这一“过程”称之为“一个周波”。简称“周”。(此乃定义2)

 

 

wanggq

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

 

引用 < xitonghua  >网友的内容:

   “为什么给 x002一个上升沿脉冲时,y001会输出两次?”

------------------------------------------------------------

 

 < xitonghua >网友的意思是问:用X002的上升沿操作一次,PLSY指令的执行结果为什么既不是5个“脉冲”,也不是1个“脉冲”?而偏偏是两个“脉冲”(两个周波)。

 

  答案是:

 

  在FX1s或FX1n系列的PLC上,PLSY指令实际是靠“驱动条件的前沿”触发“脉冲输出硬件电路”启动来输出“脉冲”的。如果在触发前对应的“脉冲输出禁止”状态位--M8146或M8145还未置ON,则PLSY指令将赋予“脉冲输出中”标志位--M8148或M8147 之ON的时值为:“( 首份周波数+基本单位周波数) ×周期 ”。在<xitonghua >网友的这个例程中,“首份周波数”等于1 ;“基本单位周波数”也等于1 。所以才是每操作一次X002的上升沿,“脉冲输出”位--Y001就会输出两个“脉冲”(即两个周波)。

 

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-09 20:00:53
3楼

 

  如果在“脉冲输出硬件电路”被触发前,对应的“脉冲输出禁止”状态位--M8146或M8145 已经置ON,则PLSY指令将赋予“脉冲输出中”标志位--M8148或M8147 之ON的时值中就没有“前瞻性预备部分”,仅为:“ 首份周波数×周期 ”。

 

wanggq

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

<接上一楼的内容>

 

  我们还是以 < PLSY    K1     K5     Y001 > 为例,接着讲该指令输出3、或4、或5个周波的情形:

 

  在对应的“脉冲输出禁止”位--M8146一直处于OFF状态下,如果我们设计一个让“驱动条件”在Y01输出方波之第2个周波的时间段里才由ON转为OFF,则M8148之ON的持续时值将“前瞻性”的延长到3个周波末,Y01将输出完整的3个周波;以此类推,当“驱动条件”在Y01输出方波之第4个周波的时间段里才由ON转为OFF,则M8148之ON的持续时值将延长到5个周波末,Y01将输出5个完整的周波。

 

  下面举例设计一个让“驱动条件”之ON持续到Y01输出方波之第2个周波的时间段里才OFF,

  使   < PLSY      K1      K5      Y01 >     输出3个完整周波的例程片断。

 



wanggq

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

 

  用这个波形时序图也正好形象准确的回答<winter938 >网友关于“在PLSY指令的驱动条件OFF时正在输出的脉冲串又是以什么状态结束的?”的问题。(限于FX1s、FX1n 其M8146处于OFF状态)

 

  “驱动条件”的“下降沿”出现于正在输出进行中的情形:

 

 

wanggq

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

 

   “驱动条件”在PLSY指令的执行过程中,不允许有任何的“缺口”!如果出现“缺口”则第2个“上升沿”将被视作“再次启动”从而无效。(前次驱动的脉冲输出指令的“脉冲输出中监视”--M8147或M8148处于OFF状态后必须经过1个以上的OFF运算。若在M8147或M8148OFF之前再次启动,将发生运算错误!)

 

wanggq

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

 

  关于<首份脉冲> ( 准确的讲是<首份周波> ) 的概念,我是用它来跟<基本单位周波>这一概念相区别的。

 

  我曾在《关于plsy指令的一个问题》主题下跟帖时贴出过<基本单位脉冲>(即<基本单位周波>)与PLSY指令的“源操作数1”所指定的频率的关系。我把它重新以表格的形式再贴出来:

 

 

<基本单位周波数>与脉冲输出命令的指定频率的关系

指定频率(Hz)

 

  基本单位周波数

1~1999

 

             1

2000~3000

 

             2

3001~4999

 

             4

5000~8998

 

             8

8999~16999

 

            16

17000~32976

 

            32

32977~65040

 

            64

65041~100000

 

           128

 

wanggq

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

 

  <首份周波数>是由PLSY指令的两个“源操作数”(即:“指定频率”和“周波总量”)共同来决定的。

 

  我先将一组实验数据列一个表格,让网友们自己思考一下其中的规律:

 

 

wanggq

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

<接楼上的内容>

 

  现在揭示这个表格所列举的一组数据的规律:

 

  第3列的数据减去第4列数据,其差都是“32”。这就是指定频率“ 32767 Hz ”所对应的“基本单位份”的周波数--32个周波。

 

  第3列的数据减去一个“基本单位份周波数”--“32”,其差为“首份周波数”,即第4列数据。

 

  当第2列数据--“指定周波总量”等于“基本单位周波数”的整数倍(如表格中染为红色的行所示数据)时,“首份周波数”等于“基本单位份周波数”

 

  当“指定周波总量”不等于“基本单位周波数”的整数倍时,“首份周波数”等于“基本单位份周波数”+“尾数”。(“指定周波总量”>“基本单位周波数”的情形。)

 

  

wanggq

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

 <接楼上的内容>

 

  这里“尾数”是指小于1个“基本单位周波数”的周波量。

 

  我们设“基本单位周波数”为  Q ,“尾数”为 m  (m <Q  ),则:“首份周波数”= Q + m

 

  在M8145 / M8146 先于(FNC57)脉冲指令之前置为ON 的情形下,若“指定周波总量”<2Q 时,一次“前沿触发”执行量为:全部“指定周波总量”;

 

  若“指定周波总量”= nQ  (n ≥ 2)时,一次“前沿触发”执行1个“基本单位周波数”Q ; 

 

  若“指定周波总量”= nQ+m (n ≥ 2)时,一次“前沿触发”执行量为:1个“首份周波数”即:Q+m  如表格第4列数据所示。

 

 

wanggq

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

 

  在“脉冲输出禁止”无效(M8145 / M8146为:OFF)的前提下,若(FNC57)脉冲指令在执行一份输出周波(且其驱动条件的“下降沿”还没有出现)时就已经前瞻性的预备了下一份“基本单位周波”(在指定周波总量范围内,如果还有下一个“基本单位份”的话)。

 

  若“指定周波总量”<2Q 时,一次“前沿触发”执行量为:全部“指定周波总量”; 

 

  若“指定周波总量”= nQ  (n ≥ 2)时,一次“前沿触发”执行2个“基本单位周波”--2Q; 

 

  若“指定周波总量”= nQ+m (n ≥ 2)时,一次“前沿触发”执行量为:“首份周波数”加“基本单位周波数”即:Q+m+Q =2Q+m 如表格第3列数据所示。

 


winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2010-07-13 23:46:44
12楼

很想知道王先生是用什么方法和设备测试出来这些数据的,仅凭FX1S的PLC本身能完成吗?相信这个疑问解答出来又会教给网友很多实际应用有益的知识,很是期盼!

wanggq

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

引用<winter938> 的内容:

 

  “很想知道王先生是用什么方法和设备测试出来这些数据的,仅凭FX1S的PLC本身能完成吗?”


 


 

 

  <Wanggq>回复:

 

  我所用的测试设备就是仅仅一块FX1s的PLC和一台电脑搭配。测试方法就是根据需要测试的内容,巧妙的设计一些程序片断,把与需要测试的内容相关的“元件”安排在片断里便于记录和监视相关的状态和数据。



wanggq

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

 

   掌握了第9楼、第10楼所揭示的规律,我们就可以不必每组数据都要经过实际测试,直接就能运用这些规律,在PLC允许的数据范围内任意地写出第8楼所示表格中没有出现过的各个相关数据:

 

 

   我们现在可以给“尾数- m”下一个更加确切的定义:

 

  S2被Q除,所得到的“余数”就是 m 。 

 

  因此,m 的最小取值为:0 , m 的最大取值为:Q-1

 

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2010-07-15 16:38:45
15楼

如果频率高得以上规律输出的脉冲在不到一个扫描周期就输出完成,但此时边沿检测尚未完成PLC会怎样处理呢?是就这样处理并立即置位M147/8还是输出PLSY指令的脉冲数并立即置位M8147/8?比如PLSY   K32767  K300  Y001在扫描周期10毫秒的程序中边沿驱动该指令时输出多少个脉冲?(300/32=9.....12           首份32+12=44

基本份32*7=224      前瞻预备份32       按以上规律可能输出44或76个脉冲,我的这个理解对吗?是否PLC会输出300个脉冲并立即置位M8148?)

王林海

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 449回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-07-15 19:39:17
16楼

楼主请问您plsy指令我在三菱fx1s软件仿真中为啥会出现指令不支持的情况呢?

王林海

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 449回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-07-15 19:44:09
17楼
我把您前几年发的帖子 (手把手教您写“让PLC唱歌”的程序)中的程序在软件中写一遍后.用仿真软件仿真时出现plsy指令不支持的情况?能帮忙分析一下是怎么回事吗?

王林海

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 449回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-07-15 19:46:14
18楼
7777777777777777777777

王林海

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 449回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-07-15 19:46:41
19楼
66666666666666666

王林海

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 449回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-07-15 19:47:21
20楼
5555555555555555555555

热门招聘
相关主题

官方公众号

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