西门子plc常用指令使用方法

发布时间:2025-11-14
来源:
点击:32

第一部分:PLC的工作原理 —— 永不停止的“循环扫描”

 

要理解指令如何使用,首先必须透彻理解PLC是如何工作的。其核心是循环扫描工作方式,这是一个永不停息的过程,可以分为三个主要阶段:

 

1. 输入采样阶段

 

· PLC的CPU会按顺序读取所有输入模块的当前状态(例如:按钮是否按下、传感器是否触发),并将这些物理信号(0/1)一次性、批量地存入一个专门的存储区——输入映像寄存器。

 

· 关键点:在此阶段,无论外部输入信号如何变化,输入映像寄存器中的状态将保持不变,直到下一个扫描周期再次采样。这保证了程序执行过程中,所用到的输入状态是一致的。

 

2. 用户程序执行阶段

 

· CPU从用户程序的第一条指令开始,到最後一条指令结束,逐条执行存储在用户程序存储器中的指令。

 

· 执行指令时,CPU并不会直接去读取输入模块的实时状态或改变输出模块的实时状态,而是从输入映像寄存器中读取数据,进行逻辑运算,并将中间结果和最终结果写入另一个专门的存储区——输出映像寄存器。

 

· 关键点:程序执行过程中,即使某个实际输入信号发生了变化(比如按钮松开了),但由于输入映像寄存器在本次扫描周期内已经被锁定,程序感知到的仍然是它采样时的状态。

 

3. 输出刷新阶段

 

· 当所有用户程序指令执行完毕后,CPU将输出映像寄存器中的状态,一次性、批量地传送给输出模块。

· 输出模块再驱动外部负载(例如:接触器吸合、指示灯亮起、电机启动)。

· 关键点输出信号在整个扫描周期的这个最后时刻才被统一更新。

 

循环扫描的周而复始:

输出刷新阶段结束后,CPU会立即开始下一个扫描周期的输入采样。如此循环往复。

 

打个比方:

PLC就像一个严格的考场考官:

 

· 输入采样 = 在考试开始时,一次性把所有题目(输入信号)抄到自己的草稿纸(输入映像寄存器)上。

 

· 程序执行 = 在整个考试期间,他只看着自己的草稿纸解题(执行程序),完全不理会窗外(实际输入)是否发生了什么变化。

 

· 输出刷新 = 考试结束铃响,他一次性把所有的答案(输出结果)誊写到答题卡(输出模块)上。

 

理解这个原理至关重要,因为它解释了为什么程序会有“响应延迟”,以及为什么在编程时要考虑扫描周期的影响。

 

---

 

第二部分:西门子PLC的编程体系与指令系统

 

西门子PLC主要使用 TIA Portal(博途) 作为编程软件,支持多种编程语言,最常用的是LAD(梯形图) 和SCL(结构化控制语言,类似高级语言)。

 

指令是构建程序的基石,我们可以将其分为几个层次:

 

层次一:基本位逻辑指令 —— 继电器控制的数字化身

 

这是最基础、最核心的指令集,用于处理布尔量(BOOL,即0或1)。

 

· 常开触点 (I0.0)

  · 原理:对应继电器线圈未得电时的触点状态。当它关联的位为“1”时,触点“闭合”,能流通过。

  · 使用方法:I0.0 表示检查输入点I0.0是否为1。是则通,否则断。

 

· 常闭触点 (I0.1 上加一条斜线)

  · 原理:对应继电器线圈未得电时闭合的触点。当它关联的位为“0”时,触点“闭合”,能流通过。

  · 使用方法:I0.1 表示检查输入点I0.1是否为0。是则通,否则断。

· 线圈输出 (M0.0)

  · 原理:对应继电器线圈。当左侧的能流到达时,它将关联的位设置为“1”。

  · 使用方法:Q0.0 表示如果左侧逻辑运算结果为真,则让输出点Q0.0通电。

  · 区别:

    · 普通线圈:每次扫描都根据逻辑结果刷新。

    · 置位线圈 S:一旦被能流触发,将位设置为“1”并保持,直到被复位线圈复位。

    · 复位线圈 R:一旦被能流触发,将位设置为“0”并保持,直到被置位线圈置位。

 

经典应用示例:起保停电路

1763111004332.png

· 原理:当I0.0(正转启动按钮)按下,能流通路建立,正转电机Q0.0线圈得电。同时,正转电机Q0.0的常开触点闭合,形成自锁。即使正转按钮I0.0松开,电流仍能通过正转电机Q0.0的触点维持通路。当I0.2(停止按钮,常闭触点)按下时,通路被切断,正转电机Q0.0失电,自锁解除。

 

层次二:定时器与计数器指令 —— 时间与数量的度量

 

· 定时器

  · 原理:基于PLC的内部时钟脉冲进行累加计数。时钟脉冲周期非常短(如1ms,10ms),累加到设定值(PT)时,定时器触点动作。

  · 类型与区别:

    · TP(脉冲定时器):产生一个固定宽度的脉冲,与输入信号宽度无关。

    · TON(接通延时定时器):最常用。输入条件为真后,开始计时,时间到则输出为真。输入条件变假,定时器立即复位。

    · TOF(断开延时定时器):输入条件为真时,输出立即为真。输入条件由真变假时,开始计时,时间到则输出才变假。

  · 使用方法:需要指定定时器号(如T0)和预设时间值(如S5T#2S 表示2秒)。

 

· 计数器

  · 原理:对输入脉冲的上升沿进行计数

  · 类型与区别:

    · CTU(加计数器):CU端每来一个上升沿,计数值CV加1。当CV >= 预设值PV时,计数器触点动作。需要用R端复位。

    · CTD(减计数器):CD端每来一个上升沿,计数值CV减1。当CV <= 0时,计数器触点动作。需要用LD端装载预设值。

    · CTUD(加减计数器):具备CTU和CTD的所有功能。

  · 使用方法:需要指定计数器号(如C0)和预设计数值(如10)。

 

层次三:数据处理与移动指令 —— PLC的“大脑”功能

 

这些指令处理的不再是单个的0/1,而是字节、字、双字等数据。

 

· 移动指令 MOVE

  · 原理:将源操作数的数据原封不动地复制到目标操作数中。是使用最频繁的指令之一。

  · 使用方法:MOVE %IW0, %MW10 将输入字IW0的值传送到存储字MW10。

· 比较指令 CMP

  · 原理:比较两个相同数据类型的数据,产生一个布尔结果(真或假)。

 类型与区别:

    · == (等于)、<> (不等于)、> (大于)、< (小于)、>= (大于等于)、<= (小于等于)

  · 使用方法:通常用在梯形图的网络中,如 CMP >: MW0 > 100,如果成立,则输出能流。

 

· 数学运算指令

  · 原理:执行加(ADD)、减(SUB)、乘(MUL)、除(DIV)等算术运算。

  · 使用方法:在SCL中直接使用 +, -, *, / 更为直观。在LAD中,是一个功能框,有IN1, IN2和OUT引脚。

 

层次四:程序控制指令 

 

· 跳转指令 JMP / LBL

  · 原理:无条件或有条件地跳转到指定的标签处执行,可以跳过部分程序。滥用会破坏程序结构,需谨慎使用。

· 块调用指令 CALL

  · 原理:调用一个子程序(如FC, FB)。这是实现结构化编程的核心。

  · FB(功能块) vs FC(函数)的详细区别与使用方法:

    · FB:

      · 拥有专属的“内存”:称为背景数据块(Instance DB)。每次调用FB,都必须指定一个唯一的DB来存储它的输入、输出和静态变量。

      · 具有“记忆性”:因为数据存储在DB中,所以下次调用时,能记住上次的状态(如定时器的当前时间、计数器的当前值)。

      · 使用场景:控制一台具有独立状态的设备,如电机、阀门、PID控制器等。例如,你用FB编写了一个“电机控制块”,厂里有100台电机,你只需调用这个FB 100次,并分配100个不同的DB即可。

    · FC:

      · 没有专属内存:它像数学中的函数 y = f(x),输出只由当前的输入决定。

      · 没有“记忆性”:它运算时使用的临时数据在调用结束后就释放了。

      · 使用场景:执行一个纯计算、单位转换、或一个没有记忆功能的逻辑操作。例如,计算 (AIW0 - 5530) / 27135 * 100.0 来将模拟量转换为工程量百分比。

 

---

 

总结与实践建议

 

1. 理解核心:牢牢掌握循环扫描和映像寄存器的概念,这是理解所有PLC程序行为的基础。

2. 分层学习:从位逻辑 -> 定时/计数 -> 数据操作 -> 程序控制,循序渐进。

3. 拥抱结构化:尽早学习并使用 FB + 背景DB 的编程模式。这是从“电工式编程”迈向“工程师式编程”的关键一步。它能极大地提高代码的可重用性、可读性和可维护性。

4. 善用仿真:TIA Portal提供了强大的PLCSIM仿真功能。不要只在纸上谈兵,多写程序,多仿真,观察变量表(Watch Table)中值的变化,这是验证你理解是否正确的最佳途径。

免责声明:本站所提供信息均来源于网友提供或网络搜集,由本站编辑整理,如涉及版权问题,请联系本站管理员予以更改或删除
旗下服务
在线课程 现场培训
微信公众号
© 2019-现在 版权所有,并保留所有权利。ICP备案证书号:沪ICP备18011190号-4

沪公网安备 31011202007493号