# Factoryio_Plc **Repository Path**: openwcs/factoryio_-plc ## Basic Information - **Project Name**: Factoryio_Plc - **Description**: 使用Factoryio 和西门子 PLC 实现自动入库控制 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-07 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Factory I/O 完整使用教程 > Factory I/O 是一款专为工业自动化设计的3D仿真软件,广泛应用于PLC编程学习、教育培训、生产线设计与优化、设备调试和维护等领域。 --- ## 📑 目录 1. [软件简介](#1-软件简介) 2. [快速入门](#2-快速入门) - [2.5 运行示例场景](#25-运行示例场景) 3. [环境搭建](#3-环境搭建) 4. [基础操作](#4-基础操作) 5. [设备与元器件详解](#5-设备与元器件详解) 6. [PLC通信配置](#6-plc通信配置) 7. [高级用法](#7-高级用法) 8. [典型应用场景](#8-典型应用场景) 9. [注意事项](#9-注意事项) 10. [最佳实践](#10-最佳实践) 11. [常见问题解答](#11-常见问题解答) 12. [学习资源](#12-学习资源) --- ## 0 项目预览(自动仓储) ![](images/warehouese_run.gif) ![](images/warehouse.png) ![适配西门子PLCSIM](images/warehouse_plc2.gif) ## 1. 软件简介 ### 1.1 什么是 Factory I/O Factory I/O 是由 Real Games 公司开发的一款3D工厂仿真软件,专为学习和教授自动化技术而设计。它提供了一个逼真的虚拟环境,让用户可以在没有实际硬件的情况下学习和测试PLC编程。 ### 1.2 主要特点 | 特点 | 描述 | |------|------| | 🏭 逼真的3D仿真 | 提供真实的物理引擎和工业设备模型 | | 🔌 多种I/O驱动 | 支持多种PLC和通信协议 | | 📚 丰富的场景 | 内置20+工业应用场景 | | 🎓 教学友好 | 适合从初学者到高级用户 | | 🔧 高度可定制 | 支持自定义场景和设备配置 | ### 1.3 系统要求 #### 最低配置 | 组件 | 要求 | |------|------| | 操作系统 | Windows 7/8/10/11 (64位) | | 处理器 | Intel Core i3 或同等AMD处理器 | | 内存 | 4 GB RAM | | 显卡 | 支持DirectX 11的显卡,1GB显存 | | 硬盘空间 | 2 GB 可用空间 | #### 推荐配置 | 组件 | 要求 | |------|------| | 操作系统 | Windows 10/11 (64位) | | 处理器 | Intel Core i5 或更高 | | 内存 | 8 GB RAM 或更高 | | 显卡 | NVIDIA GTX 1050 或更高,4GB显存 | | 硬盘空间 | 5 GB 可用空间(SSD推荐) | --- ## 2. 快速入门 ### 2.1 下载与安装 #### 步骤一:获取软件 1. 访问 Factory I/O 官方网站:https://factoryio.com 2. 选择适合的版本下载(教育版/商业版) 3. 下载完成后得到安装包 #### 步骤二:安装软件 ``` 1. 双击安装包运行安装程序 2. 接受许可协议 3. 选择安装路径(建议保持默认) 4. 等待安装完成 5. 创建桌面快捷方式 ``` #### 步骤三:激活软件 - **试用版**:安装后可免费试用30天 - **教育版**:需要教育机构许可证 - **完整版**:输入购买的许可证密钥 ### 2.2 首次启动 1. **启动软件**:双击桌面图标启动 Factory I/O 2. **选择场景**: - 点击 **"New"** 创建新场景 - 点击 **"Open"** 打开现有场景 - 选择 **"Scenes"** 浏览预设场景 ### 2.3 界面概览 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 菜单栏: File | Edit | View | Run | Help │ ├─────────────────────────────────────────────────────────────────┤ │ 工具栏: [选择] [移动] [旋转] [缩放] [连接] [运行] [停止] │ ├─────────────────┬───────────────────────────────────────────────┤ │ │ │ │ 部件库面板 │ 3D 场景视图 │ │ (Parts) │ │ │ │ │ │ - 传感器 │ │ │ - 执行器 │ │ │ - 传送带 │ │ │ - 站点 │ │ │ - 其他 │ │ │ │ │ ├─────────────────┴───────────────────────────────────────────────┤ │ 属性面板 / I/O面板 / 驱动配置面板 │ └─────────────────────────────────────────────────────────────────┘ ``` ### 2.4 基本操作快捷键 | 快捷键 | 功能 | |--------|------| | `W/A/S/D` | 视角移动(前/左/后/右) | | `Q/E` | 视角上升/下降 | | `鼠标右键拖动` | 旋转视角 | | `鼠标滚轮` | 缩放视图 | | `F` | 聚焦选中对象 | | `Delete` | 删除选中对象 | | `Ctrl+Z` | 撤销 | | `Ctrl+Y` | 重做 | | `Ctrl+S` | 保存场景 | | `F5` | 运行仿真 | | `F6` | 停止仿真 | ### 2.5 运行示例场景 Factory I/O 内置了20+预设场景,以下是运行这些示例场景的完整步骤。 #### 2.5.1 打开示例场景 ``` 步骤: 1. 启动 Factory I/O 2. 在启动界面点击 "Scenes"(场景) 3. 浏览并选择一个预设场景,如: - "From A to B"(初级,简单传送带) - "Sorting by Height"(中级,高度分拣) - "Automated Warehouse"(高级,自动仓库) 4. 双击打开场景 ``` #### 2.5.2 选择控制方式 打开场景后,需要选择**如何控制**这个场景,有以下几种方式: ##### 方式1:使用内置控制器(最简单,无需PLC) ``` 步骤: 1. 点击菜单 File → Drivers 2. 在驱动列表中选择 "Control I/O" 3. 点击 "Connect" 4. 按 F5 运行仿真 5. 在 Driver 面板中手动切换 I/O 状态来控制设备 ``` 适用场景: - ✓ 初次了解场景结构 - ✓ 测试设备是否正常工作 - ✓ 不需要编写PLC程序的快速体验 ##### 方式2:连接 TIA Portal + PLCSIM(推荐学习方式) ``` 准备工作: □ 安装 TIA Portal V15/V16/V17/V18 □ 安装 PLCSIM(TIA Portal自带) □ 准备好对应的PLC程序 步骤: 1. 打开 TIA Portal,创建/打开项目 2. 编写对应场景的控制程序 3. 启动 PLCSIM,下载程序并切换到 RUN 模式 4. 在 Factory I/O 中: - File → Drivers - 选择 "Siemens S7-PLCSIM" - 配置 I/O 映射 - 点击 "Connect" 5. 按 F5 运行仿真 ``` ##### 方式3:连接真实 PLC ``` 准备工作: □ PLC硬件(如 S7-1200/1500) □ 网线连接 PC 和 PLC □ 配置同一子网 IP □ PLC程序已下载并运行 步骤: 1. File → Drivers 2. 选择对应驱动(如 "Siemens S7-1200/1500") 3. 输入 PLC IP 地址 4. 配置 I/O 映射 5. 点击 "Connect" 6. 按 F5 运行 ``` #### 2.5.3 I/O 映射配置 每个场景都有预定义的 I/O 点,需要与 PLC 地址对应: ``` 配置步骤: 1. File → Drivers 2. 选择驱动后,点击 "CONFIGURATION" 标签 3. 查看场景的 I/O 点列表 示例映射: ┌──────────────────────────────────────────────────────┐ │ Sensors(传感器 → PLC输入) │ │ ┌─────────────────────┬──────────┐ │ │ │ Factory I/O 信号 │ PLC地址 │ │ │ ├─────────────────────┼──────────┤ │ │ │ Sensor 1 │ I0.0 │ │ │ │ Sensor 2 │ I0.1 │ │ │ │ Start Button │ I0.2 │ │ │ └─────────────────────┴──────────┘ │ │ │ │ Actuators(执行器 → PLC输出) │ │ ┌─────────────────────┬──────────┐ │ │ │ Factory I/O 信号 │ PLC地址 │ │ │ ├─────────────────────┼──────────┤ │ │ │ Conveyor │ Q0.0 │ │ │ │ Pusher │ Q0.1 │ │ │ └─────────────────────┴──────────┘ │ └──────────────────────────────────────────────────────┘ 4. 根据你的 PLC 程序修改地址映射 5. 点击 "Connect" ``` #### 2.5.4 运行仿真 ``` 运行步骤: 1. 确认驱动已连接(状态显示 "Connected") 2. 按 F5 或点击工具栏 ▶ 按钮启动仿真 3. 观察场景运行情况 4. 按 F6 停止仿真 仿真速度控制(菜单 Run → Simulation Speed): - 0.5x:慢速(用于调试观察) - 1x:正常速度 - 2x:2倍速 - 4x:4倍速 ``` #### 2.5.5 快速体验示例(无需PLC) 如果只想快速体验场景运行效果,无需任何 PLC 软件: ``` 最简单的方法: 1. 打开任意场景(如 "From A to B") 2. File → Drivers → 选择 "Control I/O" → Connect 3. 按 F5 运行仿真 4. 在右侧 Driver 面板中: ☑ 勾选 Actuators 下的输出(如 Conveyor) → 观察传送带开始运转 ☑ 勾选 Emitter → 开始生成物料 5. 手动控制各设备,观察场景运行 ``` #### 2.5.6 完整示例:运行 "From A to B" 场景 ``` 详细步骤: 1. 启动 Factory I/O 2. 点击 Scenes → 选择 "From A to B" → 打开 3. 配置驱动: File → Drivers → Control I/O → Connect 4. 按 F5 启动仿真 5. 在 Driver 面板中手动控制: ☑ 勾选 "Conveyor Entry" → 入口传送带运转 ☑ 勾选 "Conveyor Exit" → 出口传送带运转 ☑ 勾选 "Emitter" → 开始生成物料 6. 观察物料从 A 点传送到 B 点 7. 取消勾选可停止相应设备 8. 按 F6 停止仿真,场景重置 ``` #### 2.5.7 示例场景准备清单 | 场景名称 | 难度 | I/O 数量 | 建议控制方式 | |----------|------|----------|--------------| | From A to B | ⭐ | 2输入/2输出 | Control I/O 或 PLCSIM | | Sensors | ⭐ | 4输入/3输出 | Control I/O | | Sorting by Height | ⭐⭐ | 6输入/4输出 | PLCSIM | | Pick & Place | ⭐⭐⭐ | 8输入/6输出 | PLCSIM | | Automated Warehouse | ⭐⭐⭐⭐ | 15+输入/输出 | PLCSIM 或真实PLC | > 💡 **小贴士**: > - 首次使用建议先用 "Control I/O" 熟悉场景结构 > - 查看场景的 I/O 点了解需要控制的设备 > - 可以在场景中点击设备查看其属性和 I/O > - 使用 `F` 键聚焦选中的设备,便于观察 > - 每个场景在官方文档都有对应的详细说明 --- ## 3. 环境搭建 ### 3.1 与西门子 PLC 连接 #### 3.1.1 使用 TIA Portal + PLCSIM **所需软件:** - TIA Portal V15/V16/V17/V18 - PLCSIM(集成于TIA Portal) - Factory I/O 2.4 或更高版本 **配置步骤:** 1. **在TIA Portal中创建项目** ``` ① 打开TIA Portal ② 创建新项目 ③ 添加PLC设备(如S7-1200/S7-1500) ④ 配置PLC的IP地址 ``` 2. **配置PLCSIM** ``` ① 在TIA Portal中启动PLCSIM ② 加载程序到虚拟PLC ③ 将PLC切换到RUN模式 ``` 3. **配置Factory I/O** ``` ① 打开 Factory I/O ② 点击 File → Drivers ③ 选择 "Siemens S7-PLCSIM" ④ 配置连接参数 ⑤ 点击 Connect ``` #### 3.1.2 使用真实 S7 PLC(S7-1200/S7-1500) **网络配置要求:** ``` PLC IP地址: 192.168.0.1 PC IP地址: 192.168.0.100 子网掩码: 255.255.255.0 ``` **TIA Portal 配置:** 1. 在设备属性中开启 `PUT/GET` 通信权限 2. 在保护设置中允许来自远程设备的访问 3. 确保防火墙开放102端口 **Factory I/O 配置:** ``` 驱动类型:Siemens S7-1200/1500 PLC IP地址:192.168.0.1 Rack:0 Slot:1 ``` ### 3.2 与其他 PLC 连接 #### 3.2.1 支持的通信驱动 | 驱动类型 | 适用场景 | |----------|----------| | **Siemens S7-PLCSIM** | 与TIA Portal PLCSIM联动 | | **Siemens S7-1200/1500** | 连接真实西门子PLC | | **Siemens S7-300/400** | 连接老款西门子PLC | | **Allen-Bradley Logix** | 连接AB PLC | | **Modbus TCP/IP Client** | 支持Modbus协议的设备 | | **Modbus TCP/IP Server** | 作为Modbus服务器 | | **OPC Client DA** | 连接OPC DA服务器 | | **OPC UA Client** | 连接OPC UA服务器 | | **Control I/O** | 软件内置控制 | | **Automgen Server** | 连接Automgen软件 | #### 3.2.2 Modbus TCP/IP 配置示例 ``` 驱动类型:Modbus TCP/IP Client 服务器IP:127.0.0.1(或PLC IP) 端口:502 单元ID:1 寄存器映射: - 输入寄存器:从地址0开始 - 保持寄存器:从地址0开始 - 线圈:从地址0开始 - 离散输入:从地址0开始 ``` ### 3.3 网络配置清单 ``` □ 确认Factory I/O和PLC在同一子网 □ 检查网线连接(如使用真实PLC) □ 关闭或配置Windows防火墙 □ 确认通信端口未被占用 - S7协议:102端口 - Modbus:502端口 - OPC UA:4840端口 □ 测试网络连通性(ping命令) ``` --- ## 4. 基础操作 ### 4.1 创建新场景 1. **启动Factory I/O** 2. **选择 File → New** 3. **从部件库拖放设备到场景中** ### 4.2 添加设备 #### 拖放操作 1. 在左侧部件库中找到需要的设备 2. 点击并拖动到3D场景中 3. 释放鼠标放置设备 #### 对齐与定位 ``` - 按住 Shift + 移动:启用网格对齐 - 使用移动工具:精确定位 - 使用旋转工具:调整设备方向 - 右键菜单 → Transform:输入精确坐标 ``` ### 4.3 连接与配置I/O #### 查看设备I/O 1. 选中设备 2. 在属性面板查看 **Sensors**(传感器)和 **Actuators**(执行器) #### 配置I/O映射 1. 点击 **File → Drivers** 2. 选择驱动类型 3. 在 **I/O Points** 标签页配置地址映射 ``` 示例I/O映射: 传感器(输入): - Sensor 1 → I0.0 - Sensor 2 → I0.1 执行器(输出): - Conveyor → Q0.0 - Emitter → Q0.1 ``` ### 4.4 运行仿真 #### 仿真模式 | 模式 | 说明 | |------|------| | **Run** (F5) | 启动仿真,物理引擎开始工作 | | **Pause** | 暂停仿真 | | **Stop** (F6) | 停止仿真,重置场景 | #### 仿真速度控制 ``` - 1x:正常速度 - 2x:2倍速 - 4x:4倍速 - 0.5x:慢速(用于调试) ``` ### 4.5 保存与加载场景 ``` 保存场景:File → Save (Ctrl+S) 另存为:File → Save As 打开场景:File → Open (Ctrl+O) 场景文件格式:*.factoryio ``` --- ## 5. 设备与元器件详解 ### 5.1 传感器类型 | 传感器类型 | 功能描述 | 典型应用 | |------------|----------|----------| | **Diffuse Sensor(漫反射传感器)** | 检测一定范围内的物体 | 物体检测 | | **Retroreflective Sensor(回归反射传感器)** | 配合反光板检测物体 | 精确位置检测 | | **Capacitive Sensor(电容传感器)** | 检测各种材质物体 | 液位检测 | | **Inductive Sensor(电感传感器)** | 检测金属物体 | 金属检测 | | **Vision Sensor(视觉传感器)** | 检测颜色和形状 | 质量检测、分拣 | ### 5.2 执行器类型 | 执行器类型 | 功能描述 | 控制方式 | |------------|----------|----------| | **Conveyor(传送带)** | 运输物料 | 单向/双向,变速 | | **Pusher(推料器)** | 推动物体 | 伸出/缩回 | | **Pick & Place(拾放机构)** | 抓取和放置物体 | 多轴运动 | | **Turntable(转台)** | 旋转物体或改变方向 | 旋转角度控制 | | **Elevator(升降机)** | 垂直搬运 | 上升/下降 | ### 5.3 物料生成与移除 | 设备 | 功能 | |------|------| | **Emitter(发射器)** | 生成物料(盒子、托盘等) | | **Remover(移除器)** | 移除/销毁物料 | ### 5.4 控制元件 | 元件 | 功能 | |------|------| | **Push Button(按钮)** | 手动触发信号 | | **Emergency Stop(急停按钮)** | 紧急停止 | | **Selector Switch(选择开关)** | 模式选择 | | **Indicator Light(指示灯)** | 状态显示 | | **Digital Display(数字显示器)** | 数值显示 | ### 5.5 常用传送带配置 ``` 直线传送带: - 速度:0.5-2.0 m/s - 方向:正向/反向 - 控制:启动/停止 弯道传送带: - 90°/180° 转弯 - 自动方向引导 重力滚筒: - 无需电力驱动 - 利用重力输送 ``` --- ## 6. PLC通信配置 ### 6.1 西门子 S7-PLCSIM 详细配置 #### 步骤一:TIA Portal 项目配置 ``` 1. 创建新项目 2. 添加S7-1500 CPU(推荐CPU 1516) 3. 创建PLC程序: - 添加FB/FC块 - 创建全局DB用于I/O映射 4. 程序示例(SCL语言): // 传送带控制 IF "Start_Button" AND NOT "Emergency_Stop" THEN "Conveyor_Motor" := TRUE; ELSE "Conveyor_Motor" := FALSE; END_IF; ``` #### 步骤二:编译与下载 ``` 1. 编译项目(Ctrl+B) 2. 启动PLCSIM 3. 下载程序到PLCSIM 4. 将PLC切换到RUN模式 ``` #### 步骤三:Factory I/O 配置 ``` 1. File → Drivers 2. 驱动选择:Siemens S7-PLCSIM 3. 配置I/O点: - 添加输入标签(映射到传感器) - 添加输出标签(映射到执行器) 4. 点击 Connect 5. 状态显示 "Connected" 表示成功 ``` ### 6.2 I/O 地址映射 #### 西门子地址格式 ``` 输入(I): I0.0 - I0.7 (第一字节位输入) IB0 (第一字节输入) IW0 (第一字输入) ID0 (第一双字输入) 输出(Q): Q0.0 - Q0.7 (第一字节位输出) QB0 (第一字节输出) QW0 (第一字输出) QD0 (第一双字输出) 数据块(DB): DB1.DBX0.0 (DB1的第0字节第0位) DB1.DBB0 (DB1的第0字节) DB1.DBW0 (DB1的第0字) DB1.DBD0 (DB1的第0双字) ``` #### 典型映射表 | Factory I/O 设备 | 信号类型 | PLC地址 | 说明 | |------------------|----------|---------|------| | Sensor at Entry | Input | I0.0 | 入口传感器 | | Sensor at Exit | Input | I0.1 | 出口传感器 | | Start Button | Input | I0.2 | 启动按钮 | | Stop Button | Input | I0.3 | 停止按钮 | | Conveyor | Output | Q0.0 | 传送带电机 | | Green Light | Output | Q0.1 | 绿色指示灯 | | Red Light | Output | Q0.2 | 红色指示灯 | ### 6.3 Modbus 通信配置 #### Modbus 地址类型 | 寄存器类型 | 功能码 | 地址范围 | 读/写 | |------------|--------|----------|-------| | Coils(线圈) | 01/05/15 | 0-65535 | 读/写 | | Discrete Inputs(离散输入) | 02 | 0-65535 | 只读 | | Holding Registers(保持寄存器) | 03/06/16 | 0-65535 | 读/写 | | Input Registers(输入寄存器) | 04 | 0-65535 | 只读 | #### Factory I/O Modbus 配置 ``` 驱动:Modbus TCP/IP Client 主机:192.168.0.1(或localhost) 端口:502 单元ID:1 地址映射示例: 输入点 → Input Registers 或 Discrete Inputs 输出点 → Coils 或 Holding Registers ``` --- ## 7. 高级用法 ### 7.1 自定义场景设计 #### 设计原则 ``` 1. 明确控制目标 2. 绘制工艺流程图 3. 确定I/O点数量 4. 规划设备布局 5. 考虑安全联锁 ``` #### 场景布局技巧 ``` ✓ 传送带对齐:使用网格对齐功能 ✓ 传感器位置:放置在关键检测点 ✓ 预留空间:便于后期扩展 ✓ 视角设置:保存常用视角 ``` ### 7.2 复杂控制逻辑 #### 顺序控制(SFC) ``` 适用场景: - 物料搬运流程 - 装配序列 - 批处理操作 实现方式: - 使用GRAPH(TIA Portal) - 使用顺序功能图编程 ``` #### 多工位协调 ``` 示例:三工位装配线 工位1(上料)→ 工位2(加工)→ 工位3(下料) 控制要点: 1. 工位间的握手信号 2. 缓冲区管理 3. 节拍同步 ``` ### 7.3 数据监控与记录 #### 使用HMI功能 ``` Factory I/O 支持的显示元件: - 数字显示器:显示计数、速度等 - 指示灯:显示状态 - 仪表盘:模拟仪表显示 ``` #### 数据记录 ``` 1. 在PLC程序中添加计数和统计逻辑 2. 使用DB块存储生产数据 3. 通过OPC或其他方式导出数据 ``` ### 7.4 故障模拟与诊断 #### 模拟故障场景 ``` 1. 传感器失效 - 手动强制传感器输出 2. 执行器卡死 - 禁用执行器响应 3. 通信中断 - 断开驱动连接 4. 物料堵塞 - 在场景中制造堵塞条件 ``` #### 诊断功能 ``` Factory I/O 提供的诊断工具: - I/O监视窗口 - 实时状态显示 - 驱动连接状态 - 仿真日志 ``` ### 7.5 与SCADA系统集成 #### OPC UA 连接 ``` 1. Factory I/O 配置 OPC UA Server 2. SCADA 作为 OPC UA Client 连接 3. 配置节点映射 4. 实现数据交换和监控 ``` #### 典型应用 ``` - 生产数据采集 - 远程监控 - 历史数据记录 - 报表生成 ``` --- ## 8. 典型应用场景 ### 8.1 内置场景列表 Factory I/O 提供20+预设场景,难度从初级到高级: #### 初级场景 | 场景名称 | 描述 | 学习重点 | |----------|------|----------| | **From A to B** | 简单传送带运输 | 基础I/O控制 | | **Sensors** | 传感器应用 | 各类传感器使用 | | **Sorting by Height** | 按高度分拣 | 传感器检测+分拣逻辑 | #### 中级场景 | 场景名称 | 描述 | 学习重点 | |----------|------|----------| | **Sorting by Weight** | 按重量分拣 | 模拟量处理 | | **Assembler** | 装配工站 | 多步骤顺序控制 | | **Pick & Place** | 拾放操作 | 机械手控制 | | **Palletizer** | 码垛机 | 复杂运动控制 | #### 高级场景 | 场景名称 | 描述 | 学习重点 | |----------|------|----------| | **Automated Warehouse** | 自动化仓库 | 仓储管理系统 | | **Production Line** | 生产线 | 完整生产流程 | | **Buffer Station** | 缓冲站 | 物料缓冲管理 | ### 8.2 场景实例:传送带分拣系统 #### 系统描述 ``` 功能:根据物料颜色将产品分拣到不同出口 设备清单: - 1x 入口传送带 - 1x 视觉传感器 - 3x 分拣传送带 - 2x 推料器 - 1x 物料发射器 - 1x 物料移除器 ``` #### I/O分配 ``` 输入: - I0.0:启动按钮 - I0.1:停止按钮 - I0.2:入口传感器 - I0.3:视觉传感器(蓝色) - I0.4:视觉传感器(绿色) - I0.5:视觉传感器(金属) 输出: - Q0.0:主传送带 - Q0.1:推料器1(蓝色) - Q0.2:推料器2(绿色) - Q0.3:分拣传送带1 - Q0.4:分拣传送带2 - Q0.5:分拣传送带3 ``` #### 控制逻辑(伪代码) ``` IF Start_Pressed AND NOT Stop_Pressed THEN Main_Conveyor := ON IF Blue_Detected THEN Pusher1 := ON // 推向蓝色出口 ELSIF Green_Detected THEN Pusher2 := ON // 推向绿色出口 ELSE // 继续前进到默认出口 END_IF ELSE All_Outputs := OFF END_IF ``` ### 8.3 场景实例:自动化立体仓库 #### 系统描述 ``` 功能:实现货物的自动存取 设备清单: - 堆垛机(X/Y/Z三轴运动) - 货架系统(多层多列) - 入库传送带 - 出库传送带 - 多个传感器 ``` #### 控制要点 ``` 1. 货位管理 - 货位编码(行/列/层) - 空货位检测 - 货位分配算法 2. 堆垛机控制 - 定位控制 - 速度控制 - 货叉伸缩控制 3. 任务调度 - 入库任务队列 - 出库任务队列 - 优先级管理 ``` --- ## 9. 注意事项 ### 9.1 软件使用注意事项 #### ⚠️ 版本兼容性 ``` ✗ 避免的情况: - 不同版本的场景文件可能不兼容 - 驱动版本与PLC软件版本不匹配 ✓ 建议做法: - 使用相同版本进行项目开发 - 更新前备份项目文件 - 记录软件版本信息 ``` #### ⚠️ 性能优化 ``` 问题:场景复杂时仿真卡顿 解决方案: 1. 减少场景中的物体数量 2. 简化不必要的视觉效果 3. 关闭不需要的后台程序 4. 升级显卡驱动 5. 适当降低仿真速度 ``` ### 9.2 通信配置注意事项 #### ⚠️ 网络配置 ``` 常见问题:无法连接PLC 检查清单: □ IP地址是否在同一子网 □ 防火墙是否阻止通信 □ 端口是否被占用 □ PLC是否在RUN模式 □ 驱动选择是否正确 ``` #### ⚠️ I/O映射 ``` 常见问题:I/O信号不工作 检查清单: □ 地址格式是否正确 □ 数据类型是否匹配 □ 读/写方向是否正确 □ 是否存在地址冲突 □ PLC程序是否正确运行 ``` ### 9.3 安全注意事项 #### ⚠️ 仿真与现实 ``` 重要提醒: 仿真环境无法完全替代实际设备测试 注意事项: 1. 仿真验证后仍需实际设备测试 2. 注意仿真与实际设备的差异 3. 考虑实际环境中的安全因素 4. 急停和安全联锁必须单独验证 ``` ### 9.4 数据备份 ``` 备份建议: 1. 定期保存项目文件 2. 使用版本控制(如Git) 3. 备份PLC程序和配置 4. 记录配置参数 5. 云端备份重要文件 ``` --- ## 10. 最佳实践 ### 10.1 学习路径建议 ``` 阶段一:入门(1-2周) ├── 熟悉软件界面 ├── 完成内置教程 ├── 尝试简单场景 └── 理解I/O概念 阶段二:基础(2-4周) ├── 学习PLC基础编程 ├── 配置PLC通信 ├── 完成中级场景 └── 掌握常用设备 阶段三:进阶(1-2月) ├── 设计自定义场景 ├── 复杂控制逻辑 ├── 故障诊断 └── 系统优化 阶段四:高级(持续学习) ├── SCADA集成 ├── 高级算法应用 ├── 实际项目经验 └── 持续更新知识 ``` ### 10.2 项目开发流程 ``` 1. 需求分析 └── 明确控制目标和功能要求 2. 系统设计 ├── 工艺流程设计 ├── I/O点规划 └── 控制策略设计 3. 场景搭建 ├── 设备布局 ├── I/O配置 └── 通信设置 4. 程序开发 ├── PLC程序编写 ├── 调试测试 └── 功能验证 5. 优化完善 ├── 性能优化 ├── 异常处理 └── 文档编写 ``` ### 10.3 编程规范 #### PLC程序结构 ``` 推荐结构: Main (OB1) ├── 初始化程序 (FC/FB) ├── 输入处理 (FC) ├── 控制逻辑 (FB) │ ├── 自动模式 │ ├── 手动模式 │ └── 安全联锁 ├── 输出处理 (FC) └── 故障诊断 (FC) ``` #### 命名规范 ``` 变量命名示例: bStart_Button // 布尔型_启动按钮 bStop_Button // 布尔型_停止按钮 bSensor_Entry // 布尔型_入口传感器 bMotor_Conveyor // 布尔型_传送带电机 iCounter_Parts // 整型_零件计数 rSpeed_Conveyor // 实数_传送带速度 ``` ### 10.4 调试技巧 ``` 1. 分步调试 - 先测试单个设备 - 再测试设备组合 - 最后整体调试 2. 使用监视功能 - 监视I/O状态 - 跟踪变量变化 - 记录调试过程 3. 故障排除 - 从简单到复杂 - 隔离问题区域 - 对比正常情况 4. 日志记录 - 记录调试步骤 - 保存配置参数 - 总结经验教训 ``` ### 10.5 团队协作 ``` 协作建议: 1. 统一开发环境和版本 2. 制定命名和编码规范 3. 使用版本控制系统 4. 定期代码评审 5. 编写技术文档 6. 知识共享和培训 ``` --- ## 11. 常见问题解答 ### Q1: Factory I/O 无法连接PLC? ``` 排查步骤: 1. 检查IP地址配置是否正确 2. 确认在同一子网内 3. 检查防火墙设置 4. 确认PLC在RUN模式 5. 重启Factory I/O和PLC软件 6. 检查驱动配置是否正确 ``` ### Q2: 仿真运行很卡顿? ``` 优化建议: 1. 减少场景中的物体数量 2. 降低图形质量设置 3. 关闭不必要的后台程序 4. 更新显卡驱动 5. 检查电脑配置是否满足要求 ``` ### Q3: I/O信号不工作? ``` 检查步骤: 1. 确认通信连接正常 2. 检查I/O地址映射是否正确 3. 验证PLC程序逻辑 4. 使用监视窗口查看信号状态 5. 检查数据类型是否匹配 ``` ### Q4: 物料穿过传送带? ``` 解决方法: 1. 检查传送带高度设置 2. 调整物料生成位置 3. 确保传送带正确对齐 4. 检查物理参数设置 ``` ### Q5: 如何提高仿真精度? ``` 建议: 1. 使用合适的仿真速度(1x或更慢) 2. 正确配置物理参数 3. 合理设置传感器位置 4. 考虑实际设备响应时间 ``` ### Q6: 场景文件打不开? ``` 可能原因和解决方法: 1. 版本不兼容 → 使用相同版本打开 2. 文件损坏 → 从备份恢复 3. 路径问题 → 避免中文路径 4. 权限问题 → 以管理员身份运行 ``` --- ## 12. 学习资源 ### 12.1 官方资源 | 资源 | 链接 | |------|------| | 官方网站 | https://factoryio.com | | 官方文档 | https://docs.factoryio.com | | 官方论坛 | https://forum.factoryio.com | | YouTube频道 | Factory I/O 官方频道 | ### 12.2 学习材料 ``` 推荐学习路径: 1. Factory I/O 官方教程视频 2. 西门子TIA Portal培训资料 3. PLC编程基础教程 4. 工业自动化相关书籍 ``` ### 12.3 社区资源 ``` 国内资源: - CSDN博客(搜索Factory IO教程) - B站视频教程 - 知乎专栏 - 微信公众号(工控相关) 国外资源: - YouTube教程 - Reddit自动化社区 - LinkedIn学习 - Udemy课程 ``` ### 12.4 配套软件 | 软件 | 用途 | 获取方式 | |------|------|----------| | TIA Portal | 西门子PLC编程 | 西门子官网 | | PLCSIM | PLC仿真 | TIA Portal自带 | | CODESYS | 通用PLC编程 | 官方免费版 | | Modbus Poll/Slave | Modbus测试工具 | 官网下载 | | OPC UA Client | OPC通信测试 | 开源工具 | --- ## 附录 ### 附录A:常用地址对照表 #### 西门子S7地址格式 | 地址类型 | 格式示例 | 说明 | |----------|----------|------| | 位输入 | I0.0 | 第0字节第0位输入 | | 字节输入 | IB0 | 第0字节输入 | | 字输入 | IW0 | 第0字输入 | | 位输出 | Q0.0 | 第0字节第0位输出 | | 字节输出 | QB0 | 第0字节输出 | | 数据块位 | DB1.DBX0.0 | DB1第0字节第0位 | ### 附录B:快捷键速查表 | 功能 | 快捷键 | |------|--------| | 新建场景 | Ctrl+N | | 打开场景 | Ctrl+O | | 保存场景 | Ctrl+S | | 撤销 | Ctrl+Z | | 重做 | Ctrl+Y | | 运行仿真 | F5 | | 停止仿真 | F6 | | 删除对象 | Delete | | 复制 | Ctrl+C | | 粘贴 | Ctrl+V | | 聚焦对象 | F | | 全屏 | F11 | ### 附录C:故障排除检查清单 ``` □ 软件版本是否最新 □ 驱动是否正确安装 □ 网络连接是否正常 □ 防火墙是否允许通信 □ PLC是否在RUN模式 □ I/O地址是否正确映射 □ 数据类型是否匹配 □ 场景文件是否损坏 □ 系统资源是否充足 □ 显卡驱动是否更新 ``` --- ## 附录:常见问题解决 ### A.1 PLCSIM 中文显示乱码问题 PLCSIM(特别是 PLCSIM Advanced)在中文 Windows 系统上可能出现界面乱码或显示异常,以下是解决方案: #### 方案一:修改系统区域设置(推荐) 1. **打开区域设置** - 按 `Win + I` 打开设置 - 搜索"区域设置"或进入:设置 → 时间和语言 → 语言和区域 2. **修改管理语言设置** - 点击「管理语言设置」或「相关设置」中的「管理」 - 点击「更改系统区域设置」按钮 3. **设置为英文区域** - 将「当前系统区域设置」改为 `English (United States)` - **不要勾选** "Beta版: 使用 Unicode UTF-8 提供全球语言支持" - 点击确定并重启电脑 4. **重启后启动 PLCSIM** - PLCSIM 界面应该正常显示(英文界面) > ⚠️ 注意:修改系统区域可能影响其他软件的中文显示 #### 方案二:使用兼容性模式运行 1. **找到 PLCSIM 启动程序** ``` PLCSIM: C:\Program Files (x86)\Siemens\Automation\PLCSIM\bin\ PLCSIM Advanced: C:\Program Files\Siemens\Automation\PLCSIM Advanced\ ``` 2. **右键 → 属性 → 兼容性** - 勾选「以兼容模式运行这个程序」 - 选择「Windows 7」或「Windows 8」 - 勾选「以管理员身份运行此程序」 3. **点击确定并重新启动程序** #### 方案三:创建英文环境启动脚本 创建一个批处理文件 `StartPLCSIM.bat`: ```batch @echo off chcp 437 set LANG=en_US set LC_ALL=en_US REM PLCSIM V16/V17 路径(根据实际安装路径修改) cd /d "C:\Program Files (x86)\Siemens\Automation\PLCSIM\bin" start Siemens.Simatic.PlcSim.exe REM 或者 PLCSIM Advanced REM cd /d "C:\Program Files\Siemens\Automation\PLCSIM Advanced\bin" REM start Siemens.Simatic.PlcSim.Advanced.UserInterface.exe ``` #### 方案四:修改注册表强制英文界面 1. **打开注册表编辑器** - 按 `Win + R`,输入 `regedit` 2. **导航到 Siemens 语言设置** ``` HKEY_CURRENT_USER\Software\Siemens\ ``` 3. **查找语言相关项** - 找到 `Language` 或 `Locale` 相关的键 - 将值修改为 `en-US` 或 `1033`(英语代码) 4. **重启 PLCSIM** #### 方案五:安装时选择英文 如果可以重新安装: 1. **卸载现有 PLCSIM** - 通过 TIA Portal 安装程序卸载 2. **修改系统语言为英文后安装** - 临时将系统显示语言改为英文 - 安装 PLCSIM - 安装完成后恢复中文 3. **或在安装时选择英文界面** - 安装程序启动时选择 English #### 方案六:使用 Locale Emulator(推荐工具) 1. **下载 Locale Emulator** - 下载地址:https://github.com/xupefei/Locale-Emulator/releases 2. **安装后右键 PLCSIM 快捷方式** - 选择「Locale Emulator」→「Run in English」 3. **或创建自定义配置** - 打开 LEProc.exe - 添加 PLCSIM 程序 - 设置区域为 English (United States) #### 问题排查检查清单 | 检查项 | 说明 | |--------|------| | TIA Portal 版本 | 确保 TIA Portal 和 PLCSIM 版本匹配 | | 系统更新 | 安装最新的 Windows 更新 | | .NET Framework | 确保安装了必需的 .NET 版本 | | 管理员权限 | 以管理员身份运行 | | 杀毒软件 | 暂时关闭杀毒软件测试 | | 系统字体 | 确保系统字体完整 | #### 各方案对比 | 方案 | 难度 | 影响范围 | 推荐程度 | |------|------|----------|----------| | 修改系统区域 | ⭐ | 全系统 | ⭐⭐⭐ | | 兼容性模式 | ⭐ | 仅该程序 | ⭐⭐⭐⭐ | | 启动脚本 | ⭐⭐ | 仅该程序 | ⭐⭐⭐ | | 修改注册表 | ⭐⭐⭐ | Siemens软件 | ⭐⭐ | | 重新安装 | ⭐⭐⭐ | 仅该程序 | ⭐⭐⭐⭐⭐ | | Locale Emulator | ⭐ | 仅该程序 | ⭐⭐⭐⭐⭐ | #### 其他建议 1. **使用虚拟机** - 在 VMware/VirtualBox 中安装英文版 Windows - 在虚拟机中运行 TIA Portal + PLCSIM 2. **双系统** - 安装英文版 Windows 专用于 PLC 开发 3. **联系 Siemens 支持** - 如果以上方法都无效,联系西门子技术支持 - 提供详细的系统信息和错误截图 - 工单地址:https://support.industry.siemens.com --- ### A.2 Factory I/O 与 PLCSIM 连接问题 如果 Factory I/O 无法连接 PLCSIM,请参考以下检查清单: | 问题 | 解决方案 | |------|----------| | 检测不到 PLCSIM 实例 | 确保 PLCSIM 先于 Factory I/O 启动 | | 连接超时 | 检查防火墙设置,添加例外 | | IP 地址不匹配 | 确保 Factory I/O 和 PLCSIM 使用相同网段 | | PUT/GET 未启用 | 在 TIA Portal 中启用 PLC 的 PUT/GET 通信 | | 驱动选择错误 | S7-1200/1500 用 PLCSIM Advanced,S7-300/400 用 PLCSIM | --- ## 版本历史 | 版本 | 日期 | 更新内容 | |------|------|----------| | 1.0 | 2024-12-31 | 初始版本 | | 1.1 | 2025-01-04 | 增加 PLCSIM 中文显示问题解决方案 | --- > 📝 **提示**:本教程基于Factory I/O 2.4版本编写,如有版本差异请参考官方文档。 > > 💡 **建议**:学习过程中多动手实践,理论结合实际效果最佳! --- *祝您学习愉快!* 🎓