西门子1200PLC大型项目包膜机程序 威纶通触摸屏,PTO控制20多个轴,100多个气缸,控制2台机器人。 5台PLC智能IO通讯,ModbusRTU通讯轮询,完整威纶通触摸屏程序,5台西门子1200PLC+一台1500PLC,是学习西门子PLC通信、伺服、复杂程序如何编写的好帮手,另外附带威纶通触摸屏程序 全站式整厂自动化集中控制程序,新能源行业,2台上下料机器人,控制包括MES系统,程序结构分明,注释详细,有机械结构图,威纶通触摸屏程序,开关机操作,故障处理,机械结构图全写入触摸屏的。 主站和MES系统通讯,1号2号从站和绝缘测试仪器RS-232通讯,4号从站Modbus 总线通讯读取4个智能传感器值,5号从站Modbus 总线和3个温控器通讯大型项目包膜机程序,西门子plc巅峰应用,气缸,通讯,机械手,模拟量等,各种FB块,可用来参考和学习,双触摸屏操作互锁功能,在线添加修改账号权限功能
这个包膜机项目绝对是工业自动化领域的"满汉全席",5台1200PLC+1500PLC主站扛把子,20多个伺服轴和上百气缸配合机器人跳舞。先看这张通讯拓扑图(自己画的草图):
network = { "主站": { "CPU1511": ["MES系统(TCP/IP)", "威纶屏A(HMI)", "威纶屏B(HMI)"], "子站": [ "站1: 1200+RS232绝缘测试仪", "站2: 1200+Modbus温控器*3", "站3: 1200+智能传感器*4", "站4: 1200+PTO轴控制器", "站5: 1200+机器人IO箱" ] } }项目最秀的是用SCL写的Modbus轮询调度器,比梯形图效率高N个档次。比如温控器通讯模块:
// Modbus轮询状态机 CASE #State OF 0: // 初始化 #Timeout := T#5S; #MB_Request(ADR(ReadTemp1), BUSY=>#Busy); #State := 10; 10: // 等待响应 IF NOT #Busy THEN IF #MB_Error THEN #RetryCounter +=1; #State := 0; ELSE ParseTemperatures(); // 解析温度值到DB块 #State := 20; END_IF; END_IF; ...// 后续状态处理其他设备轴控制这块更是骚操作,用PTO脉冲+Profinet双保险。看这段轴控制FB块参数封装:
FB_AxisControl( AxisID := 3, Mode := #Positioning, SetPos := 1500.0, MaxSpeed := 3000, Accel := 500, Done => #Axis3_Done, Error => #Axis3_Error, CurrentPos => #HMI_Pos_Feedback[3] );触摸屏的互锁机制玩得贼溜,两个屏用同一个UserDB但权限不同。权限管理脚本里这种写法很实用:
' 威纶通脚本片段 If SmartTags("OperatorLevel") < 2 Then SetVisible("Btn_Admin", False) SetEnable("Btn_JogMode", False) End If故障处理树才是真大佬,气缸动作超时直接定位到电磁阀地址:
// 气缸诊断FB块 IF #Timer_Q.DN THEN #FaultCode := SHL(16#01,8) OR #ValveAddress; SendToHMI(ADR(#FaultCode)); TripMachine(); // 触发急停链 END_IF;这个项目最值钱的是那个MES对接层,TCP/IP通讯用TSENDC/TRCVC配动态DB:
// 数据打包 "PKG_Header".ProductID := #CurrentProduct; "PKG_Header".Status := BYTE#16#A5; TSEND_C( REQ := #SendTrigger, CONT := TRUE, DATA := P#DB_MES_SendDB.DataArray[0] BYTE 128, DONE => #SendDone );建议新手重点研究它的FB模块化设计,特别是那个设备抽象层把气缸/轴/传感器都封装成标准接口。看这个气缸控制块调用:
// 主程序调用示例 FB_Cylinder( CylinderID := "Clamp01", ExtendCmd => #IO_Inputs[3].0, RetractCmd => #IO_Inputs[3].1, PosFeedback => #IO_Analog[2], Mode := #AutoMode, Override := #ManualOverride );项目里埋了很多彩蛋,比如用数组实现的配方管理系统,用指针操作的报警历史栈,甚至还有用字符串处理实现的MES指令解析器。搞懂这个项目,出去面试吹牛说做过50轴项目都不虚了!