西门子大型程序及Fanuc机器人焊装系统集成 - 包含多项Profinet通讯与智能模块

西门子大型程序及Fanuc机器人焊装系统集成 - 包含多项Profinet通讯与智能模块

西门子大型程序fanuc机器人焊装 包括1台 西门子1500PLC程序,2台触摸屏TP1500程序,9个智能远程终端ET200SP Profinet连接 15个Festo智能模块Profinet通讯 10台Fanuc发那科机器人Profinet通讯 3台G120变频器Profinet通讯 2台智能电能管理仪表PAC3200 4个GRAPH顺控程序 图尔克RFID总线模组通讯 和MES系统通讯,西门子安全模块 内含GSD文件,可供其他项目使用 程序经典,结构清晰,SCL算法,堆栈,梯形图,结构化编程,想学习项目累计经验时间可以借鉴思路博途v15.1以上可以打开。

最近在搞一个挺有意思的项目,用西门子1500PLC搭了个Fanuc机器人焊装产线。这系统里光Profinet设备就三十多个,从ET200SP到发那科机器人,再带G120变频器,活脱脱一个工业通讯大杂烩。但别被设备数量吓到,程序结构可是清清爽爽,就像老司机整理的衣柜——该挂的挂,该叠的叠。

先说这程序里的SCL算法,比老式梯形图利索多了。举个栗子,处理机器人故障信号时用了堆栈结构:

VAR_TEMP AlarmStack : ARRAY[1..10] OF STRUCT RobotID : INT; ErrorCode : DWORD; Timestamp : DT; END_STRUCT; StackPointer : INT := 0; END_VAR IF Alarm_In THEN StackPointer := StackPointer + 1; AlarmStack[StackPointer].RobotID := %IW1024; AlarmStack[StackPointer].ErrorCode := %MD1100; AlarmStack[StackPointer].Timestamp := NOW(); END_IF;

这代码比梯形图里的自锁电路清爽多了,10台机器人报警信息各回各家,找数据就像查快递单号。处理报警时还能直接调时间戳,比用计数器卡时间准多了。

西门子大型程序fanuc机器人焊装 包括1台 西门子1500PLC程序,2台触摸屏TP1500程序,9个智能远程终端ET200SP Profinet连接 15个Festo智能模块Profinet通讯 10台Fanuc发那科机器人Profinet通讯 3台G120变频器Profinet通讯 2台智能电能管理仪表PAC3200 4个GRAPH顺控程序 图尔克RFID总线模组通讯 和MES系统通讯,西门子安全模块 内含GSD文件,可供其他项目使用 程序经典,结构清晰,SCL算法,堆栈,梯形图,结构化编程,想学习项目累计经验时间可以借鉴思路博途v15.1以上可以打开。

说到GRAPH顺控程序,焊装工位的状态机设计是真讲究。每个工位7个状态带互锁,切换条件写得跟地铁时刻表似的。特别是焊接完成后的冷却工步,用了个带滞后的温度判断:

| T1 CMP>50.0 TIMER1 | |----| |-------|/|----------(TON)------| | | PRESET:=T#5S |

这梯形图虽然看着简单,但配合着SCL里的PID算法,温度控制误差愣是压在了±1.5℃。要说结构化编程的妙处,看看变频器控制块就知道了。每个G120都封装成标准FB块:

FUNCTION_BLOCK FB_DriveControl VAR_INPUT SetSpeed : REAL; EmergencyStop : BOOL; END_VAR VAR_OUTPUT ActualSpeed : REAL; FaultCode : WORD; END_VAR VAR SpeedFilter : ARRAY[1..5] OF REAL; END_VAR

参数传递比全局变量省心多了,改个加减速时间不用满程序找交叉引用。最骚的是MES通讯那块,用了个动态数据缓冲区:

VAR_GLOBAL MES_Buffer : ARRAY[1..50] OF BYTE; DataPointer : INT := 0; END_VAR MES_Buffer[DataPointer+1] := B#16#AA; MES_Buffer[DataPointer+2] := TO_BYTE(StationID); DataPointer := DataPointer + 2;

这招对付不定长报文特好使,比固定格式DB块灵活多了。要说项目里最值钱的,还是那套经过实战检验的GSD文件库。像图尔克RFID模块的配置文件,直接拖到新项目就能用,省下的调试时间够搓三顿火锅的。

安全模块编程才是真功夫,急停回路跟普通逻辑完全隔离。用到了西门子特有的安全OB块,故障响应时间精确到毫秒级。有个双重确认的安全门逻辑值得细品:

| SafetyDoor1 SafetyDoor2 SafetyPLC_OK | |----| |-----------| |-------------| |-----------(SAFE)----|

这结构比普通串联可靠十倍,就算某个传感器抽风也不会误动作。整个项目看下来,最大的感受就是结构化编程真香。所有设备控制块像乐高积木一样拼装,新人接手不用看全貌,单啃某个FB块也能改得动。博途V15.1的硬件组态树展开跟圣诞树似的,但程序结构愣是没乱,这才是真本事。

Could not load content