S7-1200 快速入门
软件与硬件准备
编程软件
西门子 PLC 使用 TIA Portal(Totally Integrated Automation Portal)进行编程。目前主流版本为 V17 及以上。
⚠️ TIA Portal 体积较大(40GB+),安装需要较高配置电脑,建议最低 16GB 内存。
硬件准备
| 物品 | 说明 |
|---|---|
| S7-1200 CPU(如 CPU 1214C DC/DC/DC) | 主流型号 |
| 编程线缆(USB 或以太网) | 推荐用网线,下载更快 |
| DC 24V 电源 | 为 PLC 供电 |
TIA Portal 项目创建
步骤 1:新建项目
- 打开 TIA Portal → 点击 "创建新项目"
- 填写项目名称、存储路径、作者
- 点击 "创建" 按钮
步骤 2:添加设备
- 点击左侧 "项目和方案" → "添加新设备"
- 选择 "控制器" → 展开 SIMATIC S7-1200 → 选择具体型号
- 点击 "确定"
步骤 3:编写程序
- 展开 CPU → 双击 "程序循环" 或 "Main[OB1]"
- 在编程界面拖拽触点和线圈进行编程
变量与地址
绝对地址
| 地址 | 类型 | 说明 |
|---|---|---|
| I0.0 ~ I1.5 | 输入(Input) | 数字量输入 |
| Q0.0 ~ Q1.5 | 输出(Output) | 数字量输出 |
| M0.0 ~ | 中间标志位(Marker) | 内部继电器 |
| DB1.DBX0.0 | 数据块位 | 全局数据块中的位 |
符号地址(推荐)
在 PLC 变量 页面定义符号名:
| 符号名 | 地址 | 数据类型 | 说明 |
|---|---|---|---|
| start_btn | I0.0 | Bool | 启动按钮 |
| stop_btn | I0.1 | Bool | 停止按钮 |
| motor_run | Q0.0 | Bool | 电机运行输出 |
基本编程示例
示例 1:启保停控制(SCL)
txt
motor_run := (start_btn OR motor_run) AND NOT stop_btn AND NOT fault;1
示例 2:延时启停
txt
// 启动信号来后 5 秒电机启动
ton1(IN := start_sig, PT := T#5S);
Q0.0 := ton1.Q;
// 停止信号来后 3 秒电机停止
tof1(IN := stop_sig, PT := T#3S);
Q0.0 := Q0.0 AND NOT tof1.Q;1
2
3
4
5
6
7
2
3
4
5
6
7
示例 3:计数器控制
txt
// 按下按钮时增计数
IF btn_edge AND NOT last_btn THEN
counter := counter + 1;
END_IF;
last_btn := btn;
// 到达 10 次后复位计数器并点亮灯
IF counter >= 10 THEN
counter := 0;
lamp := TRUE;
END_IF;1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
程序下载与调试
- 用网线连接 PC 和 PLC,将 PC 网卡 IP 设为 同一网段(如 192.168.0.100)
- 点击 "下载到设备" → 选择 PG/PC 接口类型为 PN/IE
- 点击 "装载" → 完成后将 CPU 拨到 RUN 模式
- 点击 "转到在线" → "监视" 按钮实时查看状态
高速计数器(HSC)
用于统计编码器脉冲,计数频率可达 100kHz+。
配置位置:CPU 属性 → 高速计数器(HSC) → 启用通道
数据块(DB)
数据块用于存储大量数据:
| 名称 | 数据类型 | 起始值 | 说明 |
|---|---|---|---|
| motor_speed | Int | 1500 | 电机转速 RPM |
| recipe_1 | Array[1..10] of Int | - | 配方数组 |