如何自动批量修改数据 点击:383 | 回复:7



abcdefjj

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年12月17日
发表于:2013-11-28 22:25:12
楼主

各位高手:
 有一个问题请教一下,有一个数据块,其中存有40个工位的参数号,不同产品其参数号是不同的,根据每个工位产品的不同,需要定期修改某个工位的参数号(在触摸屏上修改),因为每次生产在不同工位上总是有相同的产品,因此40个工位上的参数号有相同的情形,现在的问题是:怎样实现我修改一个参数号后,其它与之相同的参数号全部自动更改为我修改的号呢?如1号,3号,23号,34号,40号原先的参数号为65号,因为这些工位都换了产品,我在1号工位上将65改为50,则其它3号,23号,34号,40号也能自动更改为50呢?PLC是315-2DP,用的TP270(Protool组态)。
 各位帮忙出个思路,实在想不出一个合理的方法,谢谢! 




wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-11-29 00:54:06
1楼

  1、在PLC设置时建立DB1数据区,如各工位的参数号最大置数<255,可选用DB1的前40个字节存储器作为40个工位的参数号存数区:DB1.DBB0为第一工位的参数号存数区,DB1.DBB1为第二工位的参数号存数区。。。。DB1.DBB39为第40工位的参数号存数区。这40个存储器与触摸屏通讯。

 2、如参数号相同的工位是固定的,如:1号,3号,23号,34号,40号的工位的参数号总是相同的(即总是放相同产品),而2号,5号,24号,35号,38号的工位的参数号也是相同的另一种产品...在触摸屏修改新参数号时,可规定只修改各组里工位序号最小的存储区参数即可。如第一组,只在触摸屏里改写1号存储器(DB1,DBB0)的值,程序会自动的通过MOVE指令,将DB1.DBB0的内容传递给3号(DB1,DBB2)、23号(DB1,DBB22)、34号(DB1,DBB33)40号(DB1,DBB39)里。见下面梯形图:


..........

taoren_1

  • 精华:0帖
  • 求助:1帖
  • 帖子:30帖 | 427回
  • 年度积分:0
  • 历史总积分:1005
  • 注册:2007年9月28日
发表于:2013-11-29 16:53:43
2楼

好帖子,顶顶顶顶顶顶

辛岩

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年12月17日
发表于:2013-11-29 19:00:22
3楼

非常感谢王者之师的解答,可我现在的问题是每个工位放的产品并不是一定的,即不是哪个产品固定的放在某几个工位上,所有的东西都是在变的。

辛岩

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年12月17日
发表于:2013-11-29 19:02:40
4楼

我想应该首先进行一下判断,到底哪几个工位的参数号是相同的,因为工位并不是固定的!

邵-王者之师

  • 精华:1帖
  • 求助:39帖
  • 帖子:81帖 | 861回
  • 年度积分:0
  • 历史总积分:2844
  • 注册:2011年3月24日
发表于:2013-11-29 21:24:12
5楼

配方!这么好用。。。把需要所有工艺设备的配方变量存储起来,可以做到一键更换,而且还可以一键上载修改已经存储的配方。

西门子的配方功能不是所有触摸屏都支持的,当然可以用触摸屏组态来弥补,比如按下按钮,实现多个数值的赋值切换,组态多个按钮就实现了多个“配方”的切换。当然比较麻烦,我只知道原理。。。

邓稼先

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2013年9月14日
发表于:2013-11-30 15:54:21
6楼

学习一下啊。。。。。。。。。。。。

辛岩

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 24回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年12月17日
发表于:2013-12-01 21:15:36
7楼

感谢各位的关心,这几天一直在考虑这个问题,终于想出了段程序,在数据块中进行循环比较,找到相同的数后,全部进行更改。程序如下:

      L     #position
      L     4
      *I    
      T     #Pos_temp
      L     #Pos_temp
      L     4
      -I    
      T     #POS
      L     #POS
      SLD   3
      T     #index
      T     #POS

      L     #P_max
      SLD   3
      T     #max_temp
      L     #P_min
      SLD   3
      T     #min_temp
      L     0
      T     #i
      L     #index
      L     #max_temp
      >=D   
      JCN   mid
      L     0
      LAR1  
      L     #POS
      LAR2  
      OPN   "mould_Nr"
      L     40
next: T     #count
      L     DBW [AR2,P#0.0]
      L     DBW [AR1,P#0.0]
      ==I   
      JCN   ad1
      L     #In_value
      T     DBW [AR1,P#0.0]
      L     1
      L     #i
      +I    
      T     #i
ad1:  +AR1  P#4.0
      L     #count
      LOOP  next
      JU    end
mid:  L     #max_temp
      L     #index
      -D    
      T     #count_1
      L     #count_1
      SRD   3
      T     #count_2


      L     #count_2
      L     4
      /I    
      T     #count_3
      L     #POS
      LAR2  
      LAR1  AR2
      +AR1  P#4.0

      OPN   "mould_Nr"
      L     #count_3
Nxt:  T     #count
      L     DBW [AR2,P#0.0]
      L     DBW [AR1,P#0.0]
      ==I   
      JCN   ad2
      L     #In_value
      T     DBW [AR1,P#0.0]
      L     1
      L     #i
      +I    
      T     #i
ad2:  +AR1  P#4.0
      L     #count
      LOOP  Nxt

      L     40
      L     #count_3
      -I    
      T     #count_4
      L     0
      LAR1  
      OPN   "mould_Nr"
      L     #count_4
Nx:   T     #count
      L     DBW [AR2,P#0.0]
      L     DBW [AR1,P#0.0]
      ==I   
      JCN   ad3
      L     #In_value
      T     DBW [AR1,P#0.0]
      L     1
      L     #i
      +I    
      T     #i
ad3:  +AR1  P#4.0
      L     #count
      LOOP  Nx
end:  L     #In_value
      T     DBW [AR2,P#0.0]
      L     #i
      T     #counts
      NOP   0

 

 在OB1调用这个程序块即可。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


热门招聘
相关主题

官方公众号

智造工程师