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

小程序出现的问题 点击:1176 | 回复:25



小胡12

    
  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-12 01:27:03
楼主
求助帖30分-未结帖


1.jpg2.jpg

我想问一下我写的这个程序,接通W10.00,使W5.00中的任意一个一直接通,程序只走一次,如果任意俩个或者三个一直接通,程序可以一直循环,我找不到原因,有没有大师能帮忙告知一下,我比较笨,(原来中的程序W1.00,W2.00,W4.00到时候用步进指令代替就可以实现三进一出的放料方法)


正在下载,请等待……
下载附件需0积分!



楼主最近还看过



幽木

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:1099
  • 注册:2019年10月24日
发表于:2020-01-12 11:42:00
1楼

这与PLC工作方式有关系,

PLC每个周期开始时进行采样、更新,之后执行程序,程序从第一条到最后一条依次执行。程序执行过程中,对I/O是不会刷新的,刷新只是在每个周期开始时。

你这个程序假设始终是1号有料通,当T0时间到了以后,这个一个周期完成时D0就已经为0了,下个周期又开始D0由0变为1,W1.0等于1,T0时间到(T0相当于始终没有断信号),继续执行D0变为2,D0变为4,D0变为0,又是一个周期T0变为0。

当又两个或三个接通时运行T1,T2,时T0就中断了,会重新计时,所以会循环。


幽木

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:1099
  • 注册:2019年10月24日
发表于:2020-01-12 11:51:45
2楼

解决办法将程序顺序调整一下就好,使T0、T1、T2可以中断一个周期就行。如下面这个顺序。



幽木

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:1099
  • 注册:2019年10月24日
发表于:2020-01-12 11:54:50
3楼

你可以看下这个帖子,原理差不多。

http://bbs.gongkong.com/d/201910/811566_1.shtml

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:622帖 | 8548回
  • 年度积分:24
  • 历史总积分:335295
  • 注册:2011年4月25日
发表于:2020-01-12 19:54:18
4楼

写了那么多,看的好累,相信很多人跟我一样都不想仔细看,你就直接告诉大家你想实现什么功能,给你说一下思路,说不定几行程序就解决了

李东泽

  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:224
  • 历史总积分:44417
  • 注册:2010年3月25日
发表于:2020-01-12 21:05:44
5楼

用置位指令,这个相当于只要一个导通,就置位,然后,就是在导通也没有事情了

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-12 21:21:51
6楼

回复内容:

对:请叫我王老湿 写了那么多,看的好累,相信很多人跟我一样都不想仔细看,你就直接告诉大家你想实现什么功能,给你说一下思路,说不定几行程序就解决了     内容的回复:

我写了的,三进料一出料的程序啊

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-12 21:28:30
7楼

回复内容:

对:幽木 这与PLC工作方式有关系,PLC每个周期开始时进行采样、更新,之后执行程序,程序从第一条到最后一条依次执行。程序执行过程中,对I/O是不会刷新的,刷新只是在每个周期开始时。你这个程序假设始终是1号有料通,当T0时间到了以后,这个一个周期完成时D0就已经为0了,下个周期又开始D0由0变为1,W1.0等于1,T0时间到(T0相当于始终没有断信号),继续执行D0变为2,D0变为4,D0变为0,又是一个周期T0变为0。当又两个或三个接通时运行T1,T2,时T0就中断了,会重新计时,所以会循环。     内容的回复:

我想问一下,我前面没有接通D0=1,这条路应该是断开的

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-13 05:50:53
8楼


回复内容:

对: 幽木 这与PLC工作方式有关系,PLC每个周期开始时进行采样... 内容的回复!

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

能不能再详细一点,没怎么看懂

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-13 07:04:12
9楼


回复内容:

对: 幽木 这与PLC工作方式有关系,PLC每个周期开始时进行采样... 内容的回复!

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

当我程序运行到D0=0时,D0=3没有接通,T0应该不及时啊

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-13 07:07:03
10楼


回复内容:

对: 小胡12 回复内容:对: 幽木  这与PLC工作方式有关系,PL... 内容的回复!

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

大师写错了,当程序运行一遍时,D0=0时,我T0接通的条件是D0=1,但是D0不等于1时,T0不接通啊

yinguiyao

  • [版主]
  • 精华:3帖
  • 求助:0帖
  • 帖子:8帖 | 260回
  • 年度积分:1302
  • 历史总积分:40586
  • 注册:2010年12月23日
发表于:2020-01-13 07:38:25
11楼

各步要保障不在循环的同一扫描周期。

1、每步加个定时器

2、或者跳转条件加交替的上升沿、下降沿。

3、或者直接用欧姆龙的步进指令

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-13 08:32:31
12楼

回复内容:

对:幽木 解决办法将程序顺序调整一下就好,使T0、T1、T2可以中断一个周期就行。如下面这个顺序。     内容的回复:

我试了,可以,但是没摸清套路

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-13 08:34:15
13楼

回复内容:

对:yinguiyao 各步要保障不在循环的同一扫描周期。1、每步加个定时器2、或者跳转条件加交替的上升沿、下降沿。3、或者直接用欧姆龙的步进指令     内容的回复:

我这个其实也是步进的一种写法,加延时的常闭触点可以实现循环

幽木

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:1099
  • 注册:2019年10月24日
发表于:2020-01-13 08:59:43
14楼


回复内容:

对: 小胡12 回复内容:对: 小胡12  回复内容:对: 幽木  这... 内容的回复!

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

判断T0是否接通是看在运行到这条指令时D0的状态,在这个程序中同一个周期内D0既等于1、还等于2、4、0,但在运行到T0计时这条指令时D0等于1,对于T0来说每个周期都是通的

幽木

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:1099
  • 注册:2019年10月24日
发表于:2020-01-13 09:08:44
15楼

由于你这个程序状态切换时没加延时,导致一个周期内状态D0就由0-1-2-4-0变化完成了,但对与每条指令来说,运行到这条指令时状态一直没变化。

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-15 02:47:14
16楼

回复内容:

对:幽木 这与PLC工作方式有关系,PLC每个周期开始时进行采样、更新,之后执行程序,程序从第一条到最后一条依次执行。程序执行过程中,对I/O是不会刷新的,刷新只是在每个周期开始时。你这个程序假设始终是1号有料通,当T0时间到了以后,这个一个周期完成时D0就已经为0了,下个周期又开始D0由0变为1,W1.0等于1,T0时间到(T0相当于始终没有断信号),继续执行D0变为2,D0变为4,D0变为0,又是一个周期T0变为0。当又两个或三个接通时运行T1,T2,时T0就中断了,会重新计时,所以会循环。     内容的回复:

以后写程序怎么避免出现这种问题

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-15 02:48:44
17楼

回复内容:

对:幽木 由于你这个程序状态切换时没加延时,导致一个周期内状态D0就由0-1-2-4-0变化完成了,但对与每条指令来说,运行到这条指令时状态一直没变化。     内容的回复:

我一直不明白,前面条件没接通,后面接通了

zgd5403

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 169回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2012年1月10日
发表于:2020-01-15 11:35:09
18楼

逛街,找方案,开阔思路

小胡12

  • 精华:0帖
  • 求助:18帖
  • 帖子:31帖 | 130回
  • 年度积分:0
  • 历史总积分:322
  • 注册:2018年12月23日
发表于:2020-01-16 01:58:38
19楼

回复内容:

对:幽木 由于你这个程序状态切换时没加延时,导致一个周期内状态D0就由0-1-2-4-0变化完成了,但对与每条指令来说,运行到这条指令时状态一直没变化。     内容的回复:

能加你微信吗,好好教我一下

kalalio

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 35回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2013年11月03日
发表于:2020-01-18 00:47:30
20楼

看起来很复杂的感觉


热门招聘
相关主题

官方公众号

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