S7-200 编程方案,高手请进!!!! 点击:664 | 回复:9



LYAUTO

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:22帖 | 14回
  • 年度积分:0
  • 历史总积分:77
  • 注册:2007年10月14日
发表于:2007-11-29 18:51:00
楼主
哪位大侠有好的方案,多谢了。我现在用梯形图编程,用了两个双字(共64位)vd100(vb100,vb101,vb102,vb103)vd200(vb200,vb201,vb202,vb203)。57个传感器对应其中57个位。当某个长度的钢筋经过时,哪些光电开关检测
到 ,其对应位“置位”这样双字vd100和vd200将会有不同的十进制输出值。不同的值对应着不同的槽打开,钢筋落入其中。但十进制值很难算,而且程序很长 。谁有更好的方案?谢了!  
57个光电开关等间距(0.25米)同一规格(长度)的钢筋从任何位置放,结果是一样的,对应的都是同一个槽打开,累加器的方案我考虑过,但我想如果某个光电开关坏了就会导致错误的结果(打开的是不钢筋对应的槽)虽然用双字置位很麻烦,但如果某光电开关坏了,恰巧钢筋经过这个传感器,这时不会有槽打开,我们就知道有光电开关坏了,可以查出来



hzgm

  • 精华:1帖
  • 求助:0帖
  • 帖子:1帖 | 212回
  • 年度积分:0
  • 历史总积分:289
  • 注册:2007年10月10日
发表于:2007-11-29 19:56:00
1楼
                                                           

DIANSHAN

  • 精华:0帖
  • 求助:0帖
  • 帖子:69帖 | 337回
  • 年度积分:0
  • 历史总积分:636
  • 注册:2007年3月11日
发表于:2007-11-30 07:02:00
2楼
你的“对应位“置位”这样双字”够思很好,按着你的设计要求,做出如下方案,但是在实际
钢筋检测中有效位,最高位和最低位光电开关坏了,查不出来
1, 连续VD100和VD200对应的光电开关I点输入。
2, 暂存:VD100→VD110,VD200→VD114,
3, 暂存:VD100→VD120,VD200→VD124,
4, 第一个循环:①,内循环:右移VD124→VD304,查到置位停止循环,记录内循环次数=  
                   没有置位 个数(A),
②,外循环(如果内循环检测到置位,外循环停止):右移VD120→VD300,查到置位停止循环,记录外循环次数=没有置位个数(B),  
③,第一个循环总的没有置位个数==(A)+(B),  
5, 第二个循环:①,内循环:左移VD114,查到置位停止循环,记录内循环次数=没有置位   
                   个数(C),
②,外循环(如果内循环检测到置位,外循环停止):左移VD110,查到置位停止循环,记录外循环次数=没有置位个数(D),  
③,第二个循环总的没有置位个数==(C)+(D),  
6, 计算VD100,VD200总的置位个数, 64—(A+B+C+D)=L
7, 计算L对应钢筋的长度,并打开相应的槽,
8, 光电开关故障报警,(因为是连续置位计算,不影响出钢)
用L连续有效位对应的数值和VD300,VD304进行比较,如果不等,则光电开关故障
报警,
9, 用到的主要功能块有:
  FOR
NEXT

MOVD

SLD

SRD
 

wenjun

  • 精华:0帖
  • 求助:0帖
  • 帖子:27帖 | 629回
  • 年度积分:0
  • 历史总积分:733
  • 注册:2005年2月21日
发表于:2007-11-30 08:03:00
3楼
楼上的不错

jiakun001

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 27回
  • 年度积分:0
  • 历史总积分:91
  • 注册:2006年8月08日
发表于:2007-11-30 09:34:00
4楼
检测一次光电开关的点亮数量,数量不同钢筋长度不同,打开相应的槽位,所有光电开关灭掉后复位该过程即可;但如果钢筋两头点亮的光电开关正常工作,这两个高低位之间连续的位没有点亮就可查出没有报警的具体是哪一位,然后对这位进行报警!

陈卫华

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 30回
  • 年度积分:0
  • 历史总积分:207
  • 注册:2003年4月16日
发表于:2007-11-30 13:45:00
5楼
确实是好的构思!
但是,这个方案从硬件配置来说是不可靠的!如果应该是6个传感器能测到,但恰好左边连续的3个传感器坏了,测出的结果就是不对的!再好的程序也判断不出来!
这说明:1、传感器的稳定和可靠很重要!
        2、基本方案还要考虑周全!
建议:在槽的下方再设置光电传感器,槽打开后一定时间内还要检测有没有钢筋经过!如果有,证明传感器没问题,如果没有则说明传感器或者判断有问题!就是说,系统需要反馈!
个人拙见!

心茫然

  • 精华:1帖
  • 求助:0帖
  • 帖子:14帖 | 234回
  • 年度积分:0
  • 历史总积分:317
  • 注册:2004年1月18日
发表于:2007-11-30 14:32:00
6楼
有没有考虑到:
1)光电开关不是同时感应的
2)传感器似乎用接近开关会不会好一点
3)如果20到40的感应器感应到信号,但中间一个31的传感器没有感应到,那就应该可以判断31感应器是坏的了??
4)完全判断出所有的传感器好坏是不现实的吧
5)计算长度应该不复杂吧,应用双循环(位循环,字节循环)来查找最靠边一个感应信号就可以了 

[TS]风之子

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 41回
  • 年度积分:0
  • 历史总积分:64
  • 注册:2005年9月28日
发表于:2007-11-30 16:30:00
7楼
难道就只有用光电开关吗?可以考虑用其他的检测元件.比如说位移传感器,这样不就可以直接检测长度了吗?把这个长度进行分区,不同的长度打开不同的槽,个人认为也可以.

jiakun001

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 27回
  • 年度积分:0
  • 历史总积分:91
  • 注册:2006年8月08日
发表于:2007-12-03 20:36:00
8楼
要是怕光电开关是坏的,检测不出来,那还不简单,再来一排冗余的,那总没有顾虑了吧!

sangkunpeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 72回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2001年10月21日
发表于:2007-12-03 23:59:00
9楼
如果真的方案这么做,我就不同意3楼的做法,典型的简单问题复杂化
搞一堆循坏 建议直接做加法运算 简单明了 一个光电信号对应(0/1)累加

热门招聘
相关主题

官方公众号

智造工程师