您现在的位置 :

首页  >  市场分析 >  > 正文

​机械臂加工切割辅助半自动排程系统-03

时间 :2023-08-20 10:00:03   来源 : 个人图书馆-坚定前行

接上文,前期分别标准化机台数据与模具数据,其中机台数据的格式设置对后续统计机台的开机率与机械臂的机台空坑率统计提供重要的数据支持。而模具数据配合今天的程序数据就可以计算出零件对应机械臂的产能负荷。


(资料图片)

程序的统计的格式设计分别需要设计多方面的格式,以便后面的引用,因为排程的时候是需要排程到具体的某一个机械臂上面的某个坑位中(A或者B),所以是什么零件,编写到几号机械臂上面的哪个坑位?

程序一维表

最先设计的就是程序一维表,有了一维表后面的二维表可以通过函数公式自动生成。

零件类型:表示一类零件,可能对应一个料号也可能对应多个料号,后续可以用料号中零件类型的描述快速索引;

治具编号:表示机械臂加工需要的治具,一个治具可以在不同的机械臂上加工。治具号是唯一的。

机台加坑位号:表示机械臂加上对应的坑位,这样就形成了唯一索引;

一出几:零件一次切割出多少个成品,一般都是一出一,也有一出二,一出多的。加上这列是为了精准计算小时产能;

设备工时:机械臂加工程序时间,精准到具体多少秒,可以用这个计算出理论时间;

程序二维表

一维表的标准格式已经建立好了,现在需要创建程序的二维表了,因为需要做成全自动,所以每一步都需要按标准的动态数组的写法写。

零件类型去除重复录入函数:

=DROP(UNIQUE(B3:B10000),-1), UNIQUE本身就是动态数组,预留一个大范围,再通过DROP函数去掉最后一行的0

模具个数:

=DROP(REDUCE("",P3#,LAMBDA(X,Y,VSTACK(X,COUNTA(UNIQUE(FILTER(C3:C30000,B3:B30000=Y)))))),1)

公式释义:

P3#为刚刚写的零件类型去除的动态数组引用,带“#”号的写法就是当这一列是动态数组的时候,只需要录入这一列的第一个单元格加上#号就可以了;

FILTER(C3:C30000,B3:B30000=Y),这个函数的意思是筛选B列等于Y值的结果,显示成C列,Y值的范围是P3#,相当于(P3、P4、P5……)

筛选出的结果再去重复项,去重的目的是因为一个模具可能在不同的机械臂上面,去重后再统计数量,最后用合并函数VSTACK合并起来,就得到下图结果:

总程序数:

=DROP(REDUCE("",P3#,LAMBDA(X,Y,VSTACK(X,COUNTA(UNIQUE(FILTER(D3:D10000,B3:B10000=Y)))))),1)

函数释义:程序数也是一对多,通过看零件在几个机械臂坑位上判断有多少个程序,完全的排程就是每个机械臂都可以加工,这需要每个零件类型都要在对应的机械臂上编程,这个工作量是非常大的。

公式的原理和统计模具个数的原理是一样的。

效果如下图:

二维显示,录入公式

=IFNA(DROP(REDUCE("",H3#,LAMBDA(X,Y,VSTACK(X,TOROW(FILTER(D3:D30000,B3:B30000=Y))))),1),""),就可以显示出零件对应的机械臂坑位明细。

公式释义:

还是和上面的原理一样,通过筛选出零件对应机械臂的坑位,再用REDUCE配合LAMBDA/VSTACK/TOROW/FILTER函数形成动态数组一键生成全部结果。

动态标题

上面的零件对机械臂加工明细二维显示中缺少标题,需要动态做一个,录入函数:

="机台坑位"&SEQUENCE(,COUNTA(TAKE(IFNA(DROP(REDUCE("",H3#,LAMBDA(X,Y,VSTACK(X,TOROW(FILTER(D3:D30000,B3:B30000=Y))))),1),""),1)))

函数释义:

通过TAKE函数保留

1行,再用COUNTA统计这一行的非空数,配合SEQUENCE生成一个连续数字的行,前回连接上“机台坑位”就实现了动态标题。

效果如下图所示:

未完待续……

我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

标签:

推荐文章

X 关闭

X 关闭