杰瑞科技汇

西门子S7-300 PLC教程,从零开始怎么学?

西门子S7-300 PLC综合教程

第一部分:基础知识篇

在开始学习编程之前,我们必须先了解S7-300的基本构成和概念,这就像学开车前要先认识汽车部件一样。

西门子S7-300 PLC教程,从零开始怎么学?-图1
(图片来源网络,侵删)

什么是PLC?

  • 全称: Programmable Logic Controller,可编程逻辑控制器。
  • 作用: 一种专为工业环境设计的数字运算操作电子系统,它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式或模拟式的输入/输出,控制各种类型的机械设备或生产过程。
  • 简单理解: 工业现场的“大脑”,通过接收传感器信号(输入),根据预设的程序进行逻辑判断,然后控制电机、电磁阀、指示灯等设备(输出)。

S7-300 PLC的硬件构成

S7-300采用模块化设计,非常灵活,一个基本的系统由以下几个核心部分组成:

模块类型 中文名称 功能描述 示例型号
RACK 机架 用于安装所有模块,提供模块间通信的总线连接。 UR1, UR2, ER1 (通用机架), CR2 (导轨式机架)
PS 电源模块 为整个PLC系统提供24V DC电源。 PS 307 ( 5A, 10A)
CPU 中央处理器模块 PLC的核心,负责运行程序、处理数据、管理通信。 CPU 313C-2 PtP, CPU 315-2 DP, CPU 317-2 DP
IM 接口模块 用于连接多个机架,扩展系统。 IM360 (主接口), IM361 (扩展接口)
SM 信号模块 I/O模块,负责连接现场设备。 SM 321 (数字量输入), SM 322 (数字量输出), SM 331 (模拟量输入), SM 332 (模拟量输出)
FM 功能模块 用于执行高速、复杂的任务,如计数、定位、闭环控制。 FM 353 (步进电机定位), FM 354 (伺服电机定位)
CP 通信处理器 负责PLC与PLC、PLC与上位机(如HMI、SCADA)、PLC与其他智能设备之间的通信。 CP 343-1 (以太网), CP 343-5 (PROFIBUS)

一个典型的S7-300系统配置示例:

+---------------------------------+
|          电源模块 (PS 307)      |
+---------------------------------+
|          CPU 315-2 DP           |
+---------------------------------+
| (如果模块多) 接口模块 (IM360/361) |
+---------------------------------+
|          数字量输入 (SM 321)     |
+---------------------------------+
|          数字量输出 (SM 322)     |
+---------------------------------+
|          模拟量输入 (SM 331)     |
+---------------------------------+
|          模拟量输出 (SM 332)     |
+---------------------------------+

S7-300的软件环境

  • STEP 7: 这是西门子PLC的官方编程软件,用于所有S7-300/400系列。
    • 主要功能: 硬件组态、网络配置、编写程序(梯形图LAD、语句表STL、功能块图FBD)、调试、监控、归档等。
    • 版本: 常见的版本有 STEP 7 V5.5 SPx,以及与博途融合的STEP 7 Basic (针对S7-1200/1500)。
  • S7-PLCSIM: S7-300的软件仿真器,它可以在没有真实硬件的情况下,在计算机上模拟PLC的运行,用于程序的初步测试和调试,非常方便。

第二部分:软件入门与编程篇

安装与新建项目

  1. 安装软件: 安装 STEP 7 V5.5 和 S7-PLCSIM。
  2. 新建项目:
    • 打开 STEP 7,选择 File -> New...
    • 给项目命名,MyS7300_Project
    • 在项目下,右键点击 Blocks,选择 Insert New Object -> S7 Program,这会自动创建一个包含 OB1, SDB1 等的标准程序块。

硬件组态

硬件组态是告诉软件你的PLC具体型号和配置了哪些模块。

  1. 在项目树中,双击 Hardware 图标。
  2. 在右侧的硬件目录中,依次展开 SIMATIC 300 -> RACK-300,将 Rail (导轨) 拖拽到左侧的窗口中。
  3. 展开 PS-300,选择你的电源模块型号,拖拽到导轨的插槽1。
  4. 展开 CPU-300,选择你的CPU型号,拖拽到插槽2。
  5. 根据你的实际配置,依次添加IM、SM、FM、CP等模块到对应的插槽。
  6. 组态完成后,点击 Save and Compile 按钮,编译无误后关闭硬件组态窗口。

三种基本编程语言

S7-300支持三种标准的编程语言,你可以根据习惯选择或组合使用。

西门子S7-300 PLC教程,从零开始怎么学?-图2
(图片来源网络,侵删)
语言类型 中文名称 特点 适用场景
LAD 梯形图 类似电气继电器控制电路图,直观易懂,电气工程师上手快。 逻辑控制、联锁保护。
STL 语句表 类似计算机汇编语言,是CPU直接执行的指令,执行效率高,功能强大。 复杂数学运算、程序优化、底层控制。
FBD 功能块图 使用逻辑门(与、或、非)等图形符号连接,适合描述信号流。 过程控制、数据处理。

我们以最常用的LAD(梯形图)为例进行讲解。

LAD编程基础

一个梯形图程序由网络组成,每个网络完成一个特定的逻辑功能。

  • 电源轨: 梯形图两侧的垂直线,左侧为“左电源轨”或“L+”,右侧为“右电源轨”或“地”,电流从左流向右。
  • 触点: 代表输入条件,如传感器、按钮的状态。
    • 常开触点: 在其线圈得电时闭合,符号:
    • 常闭触点: 在其线圈得电时断开,符号:
  • 线圈: 代表输出结果,如控制继电器、指示灯、电机等。
    • 输出线圈: 当左侧逻辑为真时,线圈得电,符号:
    • 置位/复位线圈: 用于将某一位设置为1或0,并保持状态,符号:-(S)- / -(R)-

一个简单的“启动-停止”电路示例:

  • 要求: 按下启动按钮,电机启动(指示灯亮);按下停止按钮,电机停止(指示灯灭),启动信号自锁。
  • I/O分配:
    • 输入 I0.0: 启动按钮 (常开)
    • 输入 I0.1: 停止按钮 (常闭)
    • 输出 Q4.0: 电机/指示灯

梯形图程序:

西门子S7-300 PLC教程,从零开始怎么学?-图3
(图片来源网络,侵删)
Network 1: 电机启停控制
      |      |      |
      |      |      |
L+----| |----( )----| |----M
      |      |      |
      I0.0   Q4.0   I0.1
      启动   自锁    停止

程序逻辑解释:

  1. 当按下启动按钮 I0.0 时,电流流过,使输出线圈 Q4.0 得电。
  2. Q4.0 得电后,其常开触点 Q4.0 (在自锁回路中) 闭合。
  3. 即使松开启动按钮 I0.0,电流也可以通过自锁回路 Q4.0 继续为 Q4.0 供电,保持电机运行。
  4. 当按下停止按钮 I0.1 (常闭触点) 时,电路被断开,Q4.0 失电,电机停止,自锁回路也断开,松开停止按钮后,电机也不会再启动。

第三部分:核心指令与程序结构篇

常用基本指令

  • 位逻辑指令: A (与), O (或), NOT (取反), X (异或)。
  • 定时器指令: S7-300提供多种定时器。
    • SD型: 接通延时定时器。SD T1, 5s (当输入为1时,开始5秒计时,时间到输出为1)。
    • SF型: 断开延时定时器。SF T1, 5s (当输入从1变0时,开始5秒计时,时间到输出为1)。
    • SP型: 脉冲定时器。SP T1, 5s (当输入为1时,立即输出一个5秒的脉冲)。
  • 计数器指令: S_CU (加计数器), S_CD (减计数器)。

数据类型与寻址

  • : 存储单元中的某一位,如 I0.0 (输入字节0的第0位)。
  • 字节: 8位,如 MB10 (存储区B的10号字节)。
  • : 16位,如 MW10 (由MB10和MB11组成)。
  • 双字: 32位,如 MD10 (由MB10到MB13组成)。
  • 定时器字: 16位,用于存储定时器当前值。
  • 计数器字: 16位,用于存储计数器当前值。

程序结构

为了使程序清晰、可复用,S7-300使用“块”的概念。

  • 组织块: 由操作系统调用,用于处理事件,最重要的组织块是 OB1 (主循环组织块),PLC上电后,会循环执行OB1中的程序。
  • 功能块: 带有“背景数据块”,有记忆功能。FB41 (标准PID控制块)。
  • 功能: 不带“背景数据块”,无记忆功能,类似于子程序。FC10 (一个自定义的加法运算)。
  • 数据块: 用于存储数据。DB1 是系统数据块,存放硬件组态信息,用户可以创建自己的DB来存放变量。

创建并调用一个功能块:

  1. Blocks 文件夹上右键,Insert New Object -> Function Block,命名为 FB1_Motor_Control
  2. FB1 的接口区定义输入、输出和临时变量。
  3. FB1 的网络中编写电机控制逻辑。
  4. OB1 的某个网络中,调用 FB1,并传递实际参数(如I/O地址)。

第四部分:调试与实战篇

下载程序到PLC

  1. 硬件连接: 使用编程电缆(如USB/MPI适配器)将电脑与CPU的MPI/DP接口连接。
  2. 设置PG/PC接口: 在STEP 7中,通过 Options -> Set PG/PC Interface 选择你使用的编程电缆。
  3. 在线连接: 在项目树中,右键点击 BlocksHardware,选择 Online
  4. 下载: 如果连接成功,会显示PLC的在线状态,右键点击 Blocks,选择 Download,将硬件组态和程序下载到PLC中。

程序调试

  • 监控/修改变量:
    • 在LAD/STL/FBD视图中,选中某个变量(如I0.0),右键选择 Monitor/Modify Variable
    • 在弹出的窗口中,可以强制置位/复位该变量,观察程序运行结果。
  • 断点: 在程序行左侧的灰色区域点击,设置断点,程序运行到断点时会暂停,便于观察中间状态。
  • 跟踪: 使用 View -> Online -> Single ScanMultiple Scan 来逐条或逐个循环地执行程序,跟踪逻辑变化。

一个综合实战示例:水箱水位控制

控制要求:

  1. 水箱有高、中、低三个液位传感器(常开触点)。
  2. 启动按钮按下后,进水泵开始注水。
  3. 当水位达到中位时,进水泵停止。
  4. 当水位低于中位时,进水泵再次启动。
  5. 当水位达到高位时,报警灯闪烁并停止进水泵。
  6. 停止按钮按下后,系统停止工作。

I/O分配:

  • I0.0: 启动按钮
  • I0.1: 停止按钮
  • I0.2: 高位传感器
  • I0.3: 中位传感器
  • I0.4: 低位传感器
  • Q4.0: 进水泵
  • Q4.1: 报警灯

程序设计思路:

  1. OB1中实现启停逻辑。
  2. 使用I0.2I0.3的状态组合来控制Q4.0
  3. I0.2为1时,置位一个内部标志位(如M10.0)并复位Q4.0
  4. M10.0来控制Q4.1(使用定时器实现闪烁效果)。

第五部分:进阶学习资源

当你掌握了以上基础后,可以继续探索以下领域:

  1. PROFIBUS通信: 学习如何配置CPU和CP模块作为主站或从站,实现PLC之间的数据交换。
  2. PID控制: 学习使用功能块FB41FB58进行模拟量(如温度、压力、流量)的闭环控制。
  3. WINCC组态: 学习使用西门子的上位机组态软件,创建人机界面,监控PLC数据。
  4. SCL编程: 学习结构化控制语言,这是一种类似Pascal的高级语言,特别适合编写复杂的算法和数据处理程序。

学习建议

  1. 理论与实践结合: 不要只看书,一定要安装STEP 7和PLCSIM,亲手去创建项目、编写程序、模拟调试。
  2. 从简单开始: 先掌握最基本的启停、自锁、互锁,再逐步学习定时器、计数器和复杂逻辑。
  3. 勤做笔记: 记录常用的指令、编程技巧和遇到的问题及解决方法。
  4. 多看示例: STEP 7软件自带的示例程序是很好的学习材料。

希望这份详细的教程能帮助你顺利入门西门子S7-300 PLC!祝你学习愉快!

分享:
扫描分享到社交APP
上一篇
下一篇