用过才知道。D8140对PLSY的脉冲计算有漏洞。寻解决方案。 点击:7592 | 回复:20



芳季

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

PLSY指令是适合1S 1N 2N 2NC等PLC的脉冲输出指令。

指令包含三个参数。

S1:脉冲频率。

S2:脉冲个数。

D:输出点。

当S2指定为0时。指令将不受脉冲个数限制,无限地发脉冲。直到指令前面的触点断开为止。

D8140(32位)就在后台记录已发的脉冲累计数。不论PLSY指令执行与否,只管累计出总数。

但可以随时使用DMOV等指令进行清零。

现在我在使用当中确定了一些功能。

我是用点动的形式控制伺服电机,并且还要记录当前伺服的绝对位置。单凭D8140记录,没有使用伺服的分频输出,也没有使用反馈形式的高速计数器(PLC自己输出点接到高计输入点)。

试运行中我对比D8140的值和伺服器中命令脉冲数的值。理论上PLC发多少个脉冲,伺服器就接收多少个脉冲。

我从10Hz到10kHz都试过,指定S2为非0数值。确认之间不会有干扰等影响。发送和接收正常。

当我把S2置0时试验。发现绝大多数情况D8140都比伺服显示少了1个脉冲。换句话说:PLC已经发了n个脉冲,伺服已经清楚收到了。但是PLC自己的D8140只计算到n-1个脉冲。

为何会少了一个脉冲。




山东地瓜

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 676回
  • 年度积分:0
  • 历史总积分:1641
  • 注册:2003年5月10日
发表于:2008-12-24 16:15:25
1楼
学习了 我也要是一是

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2008-12-25 20:26:35
2楼

补充:我是用2N的。发现上术问题。

1S的没有上述漏洞。

我又试了一天了。都是没有什么突破。请行家们先试试再起来讨论讨论吧。

我只是不想多接一根线从Y0 到X0。

双片机

  • 精华:0帖
  • 求助:0帖
  • 帖子:36帖 | 631回
  • 年度积分:0
  • 历史总积分:993
  • 注册:2005年5月08日
发表于:2008-12-25 21:20:47
3楼

又是芳季同志,呵呵, 我对你印象很深,觉得你对学术问题研究得比较细致。

我现在没有条件做试验,我猜会不会是FX2N的D8140的计数方式和伺服的不一样呀?比如PLC是上升沿,伺服是下降沿?

daizhi

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 221回
  • 年度积分:0
  • 历史总积分:742
  • 注册:2006年10月13日
发表于:2008-12-26 13:53:59
4楼
这个指令却不是用来定位的!

XP Vista

  • 精华:4帖
  • 求助:11帖
  • 帖子:290帖 | 1797回
  • 年度积分:1
  • 历史总积分:3209
  • 注册:2002年3月17日
发表于:2008-12-26 14:16:43
5楼
有点不太适意!!楼主不防将程序发上来看看。我在猜想是不是楼主在使用D8140得方法有点失误呢???

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2008-12-27 12:09:02
6楼

程序很简单都可以得到结果.

LD X0

PLSY K1 K0 Y1

END

你试试.

原因上面双片机已经猜中了.

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2008-12-27 12:12:34
7楼

要试的必须在2N上试。1S1N上的结果是 D8140最小值是2。

2N上的结果最小值是0。

我讨厌30有这样的区别。

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2011-02-08 14:54:45
8楼
标注,便于查询,凑够十个字

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2011-02-08 22:03:04
9楼

为何你要这样标注?我看有几个地方出现过了。一切与技术无关的都视作灌水,要删的。

你可以用“收藏”吗。

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2011-02-10 13:01:06
10楼
楼上:我看过你的一个关于D8140刷新的贴子我找不到了,麻烦你给个提示.

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2011-02-10 18:07:50
11楼
回复内容:
对:winter938 关于楼上:我看过你的一个关于D8140刷新的贴子我找不到了,麻烦你给个提示. 内容的回复:


哪个啊?是不是wang网友的回帖呢。有点印象但是也是不知道是什么名字是谁楼主了。说的是用子程序反复调用包含PLS的子程序。

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2011-02-11 08:45:35
12楼
就是那个,麻烦你帮我找找,多谢了!

wtc05301

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2010年9月09日
发表于:2011-02-11 17:34:13
13楼

我觉得D8140会不会计数的时候是0~1是一个数1~2有是一个数,所以就出现这种情况,我有PLSR指令时也出现这种现象。

傲客

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 16回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2004年12月28日
发表于:2011-02-12 11:42:32
14楼

刚才把PLSY K3 K0 Y0      Y0接入到X0后。通过C235高速计数,已经证实了楼主的观点:

D8140在内部计数是在脉冲的下降沿计数的。我采用的C235是在上升沿计数的。当驱动此PLSY指令在断开时若正好处于高电平。则D8140就没有计下下降沿,则少计数一次。

芳季

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

楼上有没有解决方法?

fx的高速计数器已经少得可怜了。不想占用高计了。

winter938

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

楼上:可否这样认为D8140的刷新必须在PLSY指令条件为ON驱动执行后才进行?按WGQ的观点2N的PLSY指令条件OFF则脉冲立即停止,如果D8140又是以下沿为计数信号的话,傲客的观点就很正确,我没有实机测试,就你的实验也应该可以观察到高计和D8140吻合的现象吧?

http://www.gongkong.com/webpage/forum/200701/F-B854-97008DBD8228-6.shtml#replyea

以上是我要找的贴子,对这个问题有参考意义.

芳季

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

楼上荐的这个贴一定跟本贴不是同一回事。那个贴我很清楚。一个是软件端的问题,一个是硬件端的问题。如果不是按照高电平计数就非常难搞。

winter938

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

楼上的意思30本身对脉冲的计数就有少一的硬件缺陷,而D8140的刷新属于用户程序编制的软件问题?其实那个贴我感觉S7 200主要是在中断比FX丰富和开放,比如说脉冲输出相关的中断就使得它不必象30那样要以扫描周期进行更新你提到的实时停止脉冲输出就是个例子,另外FX的中断程序中好象不能调用子程序?

 

另外楼上可曾实验过FX子程序中含PLSY指令且其条件发生了状态变化时的脉冲输出情况?W的那些观点仍适用于此吗?

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2011-02-13 20:09:55
19楼

没有做这类实验。
你只W哪个观点?

 

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2011-02-14 11:27:06
20楼

http://www.gongkong.com/webpage/forum/201007/2010070716574000009-1.shtml

就是这个贴中的观点,W研究得很多的


热门招聘
相关主题

官方公众号

智造工程师