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

谁能分析清楚? 点击:2040 | 回复:21



徐洁

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2005年4月23日
发表于:2005-07-05 19:12:00
楼主
以下是台达两个plc程序: 程序1: LD M1002 ZRST S0 S127 SET S0 LD X0 RST S0 STL S0 OUT Y0 SET S20 STL S20 OUT Y1 OUT S0 RET END 运行前x0断开,运行后即使x0闭合,y0,y1仍然闪烁 程序2 LD M1002 ZRST S0 S127 SET S0 STL S0 OUT Y0 SET S20 STL S20 OUT Y1 OUT S0 RET LD X0 RST S0 END 运行前x0断开,运行后x0闭合,y0,y1断开 请问,为什么结果不一样?



莫其麟

  • 精华:14帖
  • 求助:0帖
  • 帖子:120帖 | 5688回
  • 年度积分:0
  • 历史总积分:29157
  • 注册:2004年2月27日
发表于:2005-07-05 20:27:00
1楼
是在PLC上,实际运行吗? 从相似类型的PLC原理上说,两个程序的运行结果应一致:X0接通时,Y0、Y1应断开。除非另有说明。 你做的很细致,也很好。

徐洁

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2005年4月23日
发表于:2005-07-06 08:43:00
2楼
是在台达DVP-EX上运行的,结果很怪异

新四军

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 337回
  • 年度积分:0
  • 历史总积分:390
  • 注册:2004年10月12日
发表于:2005-07-06 09:56:00
3楼
不奇怪,这主要是时序问题造成的。

徐洁

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2005年4月23日
发表于:2005-07-06 10:14:00
4楼
恕我愚钝,能否帮我详细分析一下,多谢!!!急!!!

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-07-06 10:20:00
5楼
EH不會出現該現象,两个程序結果都是程序2的结果。

徐洁

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2005年4月23日
发表于:2005-07-06 10:34:00
6楼
难道是BUG?

新四军

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 337回
  • 年度积分:0
  • 历史总积分:390
  • 注册:2004年10月12日
发表于:2005-07-06 12:04:00
7楼
不是bug,你用的是es系列的plc,它是扫描所有触点,在程序最后时将状态变化,你的程序1中plc进入步进后,当你的x0闭上,是将s0复位了,但是由于步进中又将s0置位,在程序最后当然s0为1,所以步进会继续运行下去,而程序2则正好相反,在程序最后是将s0置0,所以步进运行不下去了。这种问题在台达eh就没有了,主要原因我想可能是写底层程序的人就想这样做,或者、、、不好说了!

莫其麟

  • 精华:14帖
  • 求助:0帖
  • 帖子:120帖 | 5688回
  • 年度积分:0
  • 历史总积分:29157
  • 注册:2004年2月27日
发表于:2005-07-06 13:21:00
8楼
只有状态器如此,对吗? 我未看过台达资料,故有此问。

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-07-06 13:22:00
9楼
新四军的分析没错。ES/EX/SS/SA/SX/SC都是用软件的算法实现步进的,这种情况就类似与双线圈输出,以后一个输出的结果为最终输出结果,EH机种采用的是硬件演算方式实现步进,所以不存在这个问题。

xljuan88

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2005年7月07日
发表于:2005-07-07 20:19:00
10楼
我也遇到过类似情况,我的理解是:程序1 RST S0后不会再进入步进状态啊。

徐洁

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2005年4月23日
发表于:2005-07-07 20:21:00
11楼

新四军

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 337回
  • 年度积分:0
  • 历史总积分:390
  • 注册:2004年10月12日
发表于:2005-07-11 14:10:00
12楼
简单,问题在于如果你在步进过程中,当s20通的时候,虽然你将s0 rst掉了,但是他又将s0在后面有置位上了。你的程序又短,每个扫描周期都会让s20置位上。故有此现象。

mentian

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2005年11月30日
发表于:2005-11-30 21:27:00
13楼
    对楼上所讲的不是很清楚,若是X0接通的第一个循环周期,那还有可能那样,但第二个周期S0就应会被清除。
    我是刚开始用台达的PLC,上述两个程序的运行结果应该一样才对,不一样实在太不符合逻辑了吧,那以后又如何防止,像这种问题程序短还好,程序一多可是很难查出来的。我也正在用ES的,而且也在用步进的功能,虽说现在没什么问题,但若让我碰到上面的问题可就惨了,PLC又没办法做单步运行的仿真。
    希望能弄清楚上面的问题,免得日后痛苦,望高人指点,谢谢!

mentian

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2005年11月30日
发表于:2005-12-02 14:50:00
14楼
刚刚明白是怎么回事了

新四军

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 337回
  • 年度积分:0
  • 历史总积分:390
  • 注册:2004年10月12日
发表于:2005-12-02 17:44:00
15楼
??

lesing

  • 精华:1帖
  • 求助:0帖
  • 帖子:76帖 | 3076回
  • 年度积分:0
  • 历史总积分:5728
  • 注册:2005年4月13日
发表于:2005-12-02 20:34:00
16楼
请高手在详细地解释一下里面的原因!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-02-07 01:10:00
17楼
徐洁 提到的兩個程序﹐最大的問題點在於X0閉合的時間﹐
所謂的即時閉合﹐是多即時﹖
PLC的掃描時間是以ms為單位﹐
以這兩個程序而言掃描時間都<1ms﹐
必須說明出 X0是在啥時閉合﹐
個人分析 X0閉合時間造成的不同執行結果如下

狀況一
若在PLC Run的第一次掃描時間閉合﹐則兩個程序執行結果如下﹐
程序1 Y0, Y1根本不會反應
程序2 Y0, Y1 僅會 on 一次掃描時間

狀況二
若不是在一次掃描時間閉合﹐而是經過PLC 幾次掃描時間後
程序1 Y0, Y1會交替閃爍
程序2 在Y0, Y1 在X0 閉合後 就會停止閃爍


倘若你在PLC RUN之後才閉合 X0﹐雖然你讓X0閉合的時間很快﹐
但是PLC執行更快﹐PLC已經執行過好幾次掃描時間了﹗
我相信以人的肉眼與感覺是無法恰巧在PLC第一次掃描時間就讓X0 閉合
這並非台達PLC BUG,而是使用上的差異

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-02-09 09:07:00
18楼
该问题已经被反馈给台达的韧体工程师,处理中.....

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-02-10 17:12:00
19楼
程式1:
  LD M1002
  ZRST S0 S127
  SET S0
  LD X0
  RST S0
  STL S0
  OUT Y0
  SET S20
  STL S20
  OUT Y1
  OUT S0
  RET 
  END
  EX系列:運行前x0斷開,運行後即使x0閉合,y0,y1仍然閃爍
[color=#0000FF][color=#808000][color=#008000][color=#800080][color=#FF0000]因为RST S0,S0被清零后,得到下一个扫描周期Y0 、S20才会被RST。所以在当前时刻,Y0 仍会亮一下,而后进入S20,Y1亮一下,OUT S0,S0又ON了!!第二个扫描周期中,X0 为ON,S0又被清零,又得到下一个周期Y0 、S20才会被RST,如此循环下去,Y0、Y1就不断闪烁了[/color][/color][/color][/color][/color]EH系列:運行前x0斷開,運行後x0閉合,y0,y1斷開
  EH系列没有BUFFER,不会缓冲,只有硬件实现。所以,x0閉合,y0,y1灭 
  程式2
  LD M1002
  ZRST S0 S127
  SET S0
  STL S0
  OUT Y0
  SET S20
  STL S20
  OUT Y1
  OUT S0
  RET 
  LD X0
  RST S0
  END
  EX系列:運行前x0斷開,運行後x0閉合,y0,y1斷開
[color=#FF0000]因为RST S0,S0被清零后,得到下一个扫描周期Y0 、S20才会被RST。第二个周期中,Y0 、S20才会被RST,Y1也就RST。所以Y0、Y1 OFF[/color]
EH系列:運行前x0斷開,運行後x0閉合,y0,y1斷開

思乡

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 27回
  • 年度积分:0
  • 历史总积分:49
  • 注册:2005年9月20日
发表于:2006-02-14 10:05:00
20楼
因为你前面的那个X0除非一直接通.要不是不会闪烁的,因为它不段的在扫描.第二个是因为你一送电,M1002扫描一个周期,接通SO点,然后接通S20,所以两个还是会不段的闪烁,当你按下X0 后步进点S0复位,所以不亮,还有因为M1002是送电扫描一个周期所以你松开X0后它一样不会工作~

热门招聘
相关主题

官方公众号

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