西门子1200锂电设备三轴电芯极柱拍照检测设备程序案例 设备采用V90伺服PN总线控制方式,程序采用自编FB块轴控方式,调用控制很方便。 程序功能非常齐全,有视觉CCD检测程序 丶扫码枪扫码上传程序 丶RFID应用程序丶MES上传 丶产品配方功能等等功能。 对于手自动/报警等常用功能也很齐全,程序弄快化编程,每个模块下又分段编程,逻辑非常清晰,注释齐全,可读性非常高。 采用了多种自编FB功能块,全开源。 个人认为这个程序比较全面,集成常用电气元器件功能应用都有,不管是用来做模板还是学习借鉴都非常合适 认真看一遍,会有很大收货。 采用配套西门子触摸屏,画面美观 V16打开 包含:PLC程序+西门子KTP700画面
拆开西门子1200锂电检测项目的程序包,扑面而来的是工控老司机的编程洁癖。这个三轴极柱检测项目里藏着不少实战派才懂的"骚操作",比如用V90伺服搞出的PN总线三轴联动,看着像官方库函数调用的轴控FB块,点进去发现全是自己手搓的。
轴控FB块的调用界面就透着实用主义:
#AxisCtrl_FB( Axis:= "X_Axis", JogForward:= %M10.1, Position:= 120.0, FeedRate:= 500, Done=> %M200.3, Error=> %MW210);看着跟西门子原生指令似的,但内部的急停斜坡算法魔改过,加速度曲线比原厂库更适配锂电池生产线的节拍需求。每个FB块内部藏着六组状态机,从手动微调到自动定位的无缝切换,处理得比德芙还丝滑。
视觉检测模块的交互方式有点意思,在DB17里划了块共享内存区:
CASE #Vision_Status OF 1: //CCD就绪 #CCD_Trigger := TRUE; #Image_Data := PEEK(area:=DB17, dbNumber:=17, byteOffset:=16, size:=64); 2: //特征点比对 #Result_Flag := BYTE_TO_BOOL(#Image_Data[32] & 16#01); 3: //NG处理 #Reject_Counter += 1; SET_BIT(#Alarm_Word, 5); END_CASE;这招省掉了复杂的通信协议解析,直接把视觉数据当俄罗斯方块堆在DB块里。配合扫码枪的GS1-128码解析算法,在FB内部用移位寄存器拼装完整条码,比用现成库节省了300ms响应时间。
MES上传部分藏着个JSON打包黑魔法:
#MES_Packet.Header := "CT:"; #MES_Packet.Body := CONCAT(STRNG_TO_CHAR("SN:"), #Product_SN); #MES_Packet.Body := CONCAT(#MES_Packet.Body, STRNG_TO_CHAR(",RS:")); CASE #Result_Flag OF 0: #MES_Packet.Body := CONCAT(#MES_Packet.Body, 'NG'); 1: #MES_Packet.Body := CONCAT(#MES_Packet.Body, 'OK'); END_CASE; TSend_C(REQ:=TRUE, DATA:=#MES_Packet, LEN:=60);不用任何第三方库硬核拼接JSON字符串,配合TSend_C模块直接走TCP/IP甩给MES系统。报警处理队列更狠,用了个环形缓冲区存最近20条报警,溢出时自动覆盖最早记录,这比常规的FIFO队列更适合产线环境。
配方管理模块的骚操作在于把DB块当Excel玩,用指针玩出了花:
//配方选择 "Recipe_Ptr" := WORD_TO_BLOCK_DB(#Current_Recipe).DD0; FOR #i := 0 TO 15 DO #Process_Params[#i] := WORD_TO_REAL(PEEK(area:=DB, dbNumber:=#Recipe_DB, byteOffset:=#i*4)); END_FOR;直接把配方DB的地址偏移玩成数组索引,比用传统MOV指令搬运数据快了近40个时钟周期。触摸屏上的配方选择画面其实是个动态生成的List视图,根据当前DB中的有效配方数量自动刷新条目。
这个程序最值钱的地方在于报警处理逻辑里藏着产线玄学——在伺服报错恢复逻辑里加了个三次重试机制,每次重试前偷偷给使能信号加了个200ms的"冷静期"。这招是从老设备维护手册里抠出来的实战经验,专治V90伺服的"间歇性抽风"。
每个程序块末尾的注释才是精华:
//注意!此位置补偿算法仅适用于18650规格电芯 //2023.02.14 老王调试发现Z轴回零需先抬升3mm //遇到电磁阀响应延迟时把TIMER#改成T12这种带时间戳和调试人名的注释,比标准化文档更实用。整个项目就像个工控代码的样板间,从地基到装修全敞着让你看,连水泥标号都标得清清楚楚。