1. 项目概述:Factory IO工厂流水线分拣仿真实践
去年带新人时发现一个现象:90%的工业自动化初学者在接触真实产线前,都会经历"看文档懂原理,面对设备无从下手"的尴尬阶段。这正是我开发这个Factory IO仿真项目的初衷——用零硬件成本搭建一个真实度达85%的虚拟训练场。
这个分拣流水线仿真方案包含三个核心模块:
- Factory IO 2.5.0构建的3D物理场景(传送带+光电传感器+机械臂)
- TIA Portal V16编写的PLC控制程序(梯形图逻辑)
- 西门子触摸屏HMI交互界面
特别说明兼容性:虽然基于V16开发,但经过实测可完美适配V17-V19版本。最近有位学员用V18版本复现时,仅需在导入工程时勾选"自动版本转换"选项即可。
2. 环境搭建与软件配置
2.1 软件获取与安装
建议按此顺序安装(避免驱动冲突):
- TIA Portal V16(需预留15GB磁盘空间)
- Factory IO 2.5.0(安装时勾选OPC UA驱动)
- PLCSIM Advanced(仿真PLC必备)
关键提示:安装TIA Portal时务必关闭杀毒软件,否则可能造成许可证管理器异常。遇到过三次安装失败案例都是因为这个。
2.2 通信配置
两个关键连接点:
-
Factory IO与TIA的OPC UA对接
- 在Factory IO的Driver配置中选择"OPC UA Client"
- 填入TIA项目的OPC服务器地址(默认端口4840)
-
触摸屏与PLC的变量绑定
- 在WinCC RT里添加HMI连接
- 设置PLC的IP为127.0.0.1(本地仿真)
3. 流水线场景建模详解
3.1 传送带系统搭建
在Factory IO中按F2进入编辑模式:
- 从Conveyors分类拖出3段滚筒传送带
- 设置速度参数为0.3m/s(实测最接近真实场景)
- 添加光电传感器(检测工件位置)
lua复制-- Factory IO的Lua脚本示例(控制传送带启停)
function onSensorActivated(sensor)
if sensor == "PhotoEye1" then
setOutput("Conveyor1", true)
end
end
3.2 分拣机械臂配置
使用6轴机器人模型时注意:
- 工作半径设置为800mm(覆盖传送带宽度)
- 末端执行器选择真空吸盘
- 轨迹规划中需设置中间过渡点(避免碰撞)
4. PLC程序设计要点
4.1 梯形图关键逻辑
ladder复制Network 1: 启动连锁
LD I0.0 // 启动按钮
S Q0.0 // 主接触器
TON T1, 50 // 延时5秒启动传送带
Network 2: 分拣控制
LD I0.1 // 光电传感器
MOVB MB10, MB20 // 颜色数据转移
CMP== MB20, 1 // 红色工件判断
JMPC RED_HANDLE
4.2 数据块规划建议
| 变量名 | 数据类型 | 地址范围 | 备注 |
|---|---|---|---|
| Conveyor1 | Bool | Q0.0 | 主传送带控制 |
| RobotBusy | Bool | M10.0 | 机械臂状态标志 |
| PartColor | Byte | MB20 | 工件颜色代码 |
5. 触摸屏开发技巧
5.1 画面元素布局原则
- 控制按钮尺寸不小于80x80像素(便于操作)
- 状态指示灯使用标准颜色编码:
- 绿色:运行中
- 黄色:待机
- 红色:故障
5.2 报警信息处理
建议采用报警视图控件,绑定到PLC的报警字:
xml复制<AlarmList>
<Alarm ID="1" Text="传送带堵料" Trigger="M100.0"/>
<Alarm ID="2" Text="气压不足" Trigger="M100.1"/>
</AlarmList>
6. 联合仿真调试实录
6.1 典型问题排查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| OPC连接超时 | 防火墙阻挡 | 添加4840端口例外规则 |
| 机械臂不动作 | 工具坐标系未设置 | 在Factory IO中校准TCP |
| 触摸屏按钮无响应 | PLC变量地址不匹配 | 检查HMI连接配置 |
6.2 性能优化建议
- 在Factory IO设置中开启"Fast Mode"
- TIA Portal里禁用非必要监控功能
- 将PLCSIM Advanced的循环周期设为50ms
7. 教学实践心得
经过三个月在培训课程中的应用,总结出两个黄金练习组合:
- 基础版:仅实现传送带启停+光电检测(2小时可完成)
- 进阶版:增加颜色识别+分拣统计(需4-6小时)
有个值得注意的细节:在教授梯形图时,先让学生用流程图画出逻辑,再转化为梯形图,理解效率提升40%以上。最近一个班级用这种方法,项目完成率从65%提升到了92%。
