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

plc语句执行顺序问题 点击:4130 | 回复:56



zhoujy@smeecomcn

    
  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-30 14:01:12
楼主
求助帖50分-已结帖

初学PLC,写了一个简单的测试程序,思路就是:启动1有效 -> T0计时5s -> 置位Y0 -> Y1输出1/同时触发T1计时3s -> 复位Y0,现在很奇怪为什么第四行里Y0已经变成0了,而Y1仍然输出有效,计时器T1也保持在3s的状态?

image.png

是因为PLC是顺序执行,执行END,就不会再从头扫描了吗?但如果我将Y0强制置为有效,T1结束后,Y0复位,此时计时器T1和Y1都归0

image.png




竹叶三—王者之师

  • [版主]
  • 精华:7帖
  • 求助:21帖
  • 帖子:1141帖 | 3349回
  • 年度积分:198
  • 历史总积分:58069
  • 注册:2009年7月21日
发表于:2019-10-30 14:10:22
1楼

同一段程序总对Y0,进行置位和复位时,以最后一个执行为准。

你对定时器的理解不好。

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:622帖 | 8531回
  • 年度积分:91
  • 历史总积分:332562
  • 注册:2011年4月25日
发表于:2019-10-30 14:19:43
2楼

PLC扫描周期是循环的,从上到下,从左到右

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:622帖 | 8531回
  • 年度积分:91
  • 历史总积分:332562
  • 注册:2011年4月25日
发表于:2019-10-30 14:23:44
3楼

楼主你将Y1那一步放到最后一步试一下

xiexie1999

  • [版主]
  • 精华:1帖
  • 求助:12帖
  • 帖子:717帖 | 3885回
  • 年度积分:23
  • 历史总积分:160147
  • 注册:2013年4月29日
发表于:2019-10-30 14:32:32
4楼

所以一般最好用置位和复位

zhshxxy

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:98
  • 历史总积分:271
  • 注册:2018年12月07日
发表于:2019-10-30 14:33:03
5楼

启动信号是不是一直处在高电平,启动信号用脉冲信号试试。

zhoujy@smeecomcn

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-30 15:24:19
6楼


回复内容:

对: zhshxxy 启动信号是不是一直处在高电平,启动信号用脉冲信号试试。 内容的回复!

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

启动信号确实是一直高电平呢,但是Y1线圈理论上只由Y0控制吧,为何Y0被RST了,Y1还有输出呢?

zhoujy@smeecomcn

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-30 15:26:01
7楼


回复内容:

对: 竹叶三—王者之师 同一段程序总对Y0,进行置位和复位时,以最后一个执行为... 内容的回复!

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

嗯,执行完,Y0确实是被复位了,但现在不太理解为何Y0被复位后,Y1线圈还保持有效呢?就如图上第4行所示的

zhoujy@smeecomcn

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-30 15:29:15
8楼


回复内容:

对: 请叫我王老湿 楼主你将Y1那一步放到最后一步试一下 内容的回复!

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

是的,Y1放到最后一步,就没问题了。只是很不理解放到前面不行的原因。如果是循环扫描的话,即使放到前面,Y0一旦复位,Y1也应该会被清0吧

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:622帖 | 8531回
  • 年度积分:91
  • 历史总积分:332562
  • 注册:2011年4月25日
发表于:2019-10-30 15:39:54
9楼

回复内容:

对:zhoujy@smeecomcn 回复内容:对: 请叫我王老湿 楼主你将Y1那一步放到最后一步试一下 内容的回复!-------------------------是的,Y1放到最后一步,就没问题了。只是很不理解放到前面不行的原因。如果是循环扫描的话,即使放到前面,Y0一旦复位,Y1也应该会被清0吧     内容的回复:

你要搞清楚plc执行原理就可以

xiexie1999

  • [版主]
  • 精华:1帖
  • 求助:12帖
  • 帖子:717帖 | 3885回
  • 年度积分:23
  • 历史总积分:160147
  • 注册:2013年4月29日
发表于:2019-10-30 16:26:48
10楼


回复内容:

对: zhoujy@smeecomcn 回复内容:对: 请叫我王老湿  楼主你将Y1那一步放到... 内容的回复!

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

PLC执行的问题

青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:55帖
  • 帖子:109帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2019-10-30 16:38:56
11楼

引用 请叫我王老湿 的回复内容: PLC扫描周期是循环的,从上到下,从左到右

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


一颗小小草

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1683
  • 历史总积分:39928
  • 注册:2005年6月28日
发表于:2019-10-30 17:20:45
12楼


引用 zhshxxy 的回复内容: 启动信号是不是一直处在高电平,启动信号用脉冲信号试试。

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

应该就是这个原因。

GONGKONG0769

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 36回
  • 年度积分:0
  • 历史总积分:79
  • 注册:2017年4月13日
发表于:2019-10-30 19:42:02
13楼

其实,上面的解答,都没真正解释:Y000都等于0了,而受Y000常开触点控制的Y001,居然还为1。

  这核心问题被众人成功地绕开了

同一程序里,既有 SET Y000,又有RST Y000,在这个程序里,运行稳定以后,是会出现SET Y000和RST Y000,都满足,而RST在后,所以,在程序运行稳定后,Y000是一直为0。(仿真也说明确实如此)

 但上面只是说明Y000为啥是0而已,100%的Y000=0,这就另人更纳闷了,y000确实为0了,那依赖Y000而生存的y001为何能续命?

  期待真正的答案,而非王顾左右而言他。

李东泽

  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:216
  • 历史总积分:44409
  • 注册:2010年3月25日
发表于:2019-10-30 22:32:15
14楼

楼主看到Y1有输出,可以下载到PLC里面测试一下,仿真的不可信。

但是Y1,应该是会被没有输出。

但是是在PLC的下一个扫描周期

李东泽

  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:216
  • 历史总积分:44409
  • 注册:2010年3月25日
发表于:2019-10-30 22:36:21
15楼

另外楼主还是不明白,PLC循环扫描,执行完end后,接着从第一步程序开始循环

zhoujy@smeecomcn

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-31 11:19:06
16楼


回复内容:

对: GONGKONG0769 其实,上面的解答,都没真正解释:Y000都等于0了,而... 内容的回复!

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

知己呀,上面都没有回答为何Y000为0而Y001还为1,我正是因为知道PLC是顺序循环扫描的,所以才纠结于这个问题的

zhoujy@smeecomcn

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-31 11:19:40
17楼


回复内容:

对: 李东泽 楼主看到Y1有输出,可以下载到PLC里面测试一下,仿真... 内容的回复!

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

确实也下载过看了,Y1的指示灯的确是保持为亮的

zhoujy@smeecomcn

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-31 11:20:37
18楼


回复内容:

对: 李东泽 另外楼主还是不明白,PLC循环扫描,执行完end后,接... 内容的回复!

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

正是因为PLC是循环扫描的,所以才纠结于为什么Y000都已经为0了,而受它控制的Y001线圈还在输出1

zhoujy@smeecomcn

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2019年10月29日
发表于:2019-10-31 11:28:54
19楼


回复内容:

对: GONGKONG0769 其实,上面的解答,都没真正解释:Y000都等于0了,而... 内容的回复!

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

可惜你看懂了我的问题,却不能回答我

phoenixyqc

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 124回
  • 年度积分:89
  • 历史总积分:625
  • 注册:2009年2月23日
发表于:2019-10-31 17:39:29
20楼

因为T1 on以后,下面每次一扫描周期都先执行了LD T0--SET Y0,Y0又被置位了。但是执行Y0输出的时候确实是又被复位了,所以Y0输出OFF而T1一直保持。把RST Y0放在T1上面看看


热门招聘
相关主题

官方公众号

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