登录/注册

西门子plc有哪些编程指令?

可程编控制器是由现代化生产的需要而产生的,可编程序控制器的分制器的结构特点去分类类也必然要符合现代化生产的需求。一般来说可以从三个角度对可编程序控制器进行分类。其一是从可编程序控制器的控制规模大小去分类,其二是从可编程序控制器的性能高低去分类,其三是从可编程序控制器的结构特点去分类。

更多

以下是西门子PLC(主要针对 S7-300/400/1200/1500 系列使用的 TIA Portal (博途)STEP 7 编程环境)中常见的编程指令分类及常用指令示例(用中文说明):

核心分类与常用指令

  1. 位逻辑指令 (Bit Logic):

    • 常开触点 (Normally Open Contact): 检测位状态为“1”时导通。
    • 常闭触点 (Normally Closed Contact): 检测位状态为“0”时导通。
    • 输出线圈 (Output Coil): 将逻辑运算结果赋值给一个位。
    • 置位线圈 (Set Coil): 当执行条件满足时,将指定位置为“1”并保持,直到被复位。
    • 复位线圈 (Reset Coil): 当执行条件满足时,将指定位置为“0”并保持,直到被置位。
    • 置位复位触发器 (SR Flip-Flop): 锁存置位优先。
    • 复位置位触发器 (RS Flip-Flop): 锁存复位优先。
    • 上升沿检测 (Positive RLO Edge Detection): 检测信号从“0”跳变到“1”的瞬间(P, POS)。
    • 下降沿检测 (Negative RLO Edge Detection): 检测信号从“1”跳变到“0”的瞬间(N, NEG)。
    • 取反 (NOT): 对逻辑运算结果(RLO)取反。
  2. 定时器指令 (Timers):

    • 脉冲定时器 (Pulse Timer - TP): 在启动输入信号的上升沿开始输出一个预设宽度的脉冲。
    • 扩展脉冲定时器 (Extended Pulse Timer - TON): 启动输入信号变“1”即开始定时并输出,定时结束则停止输出(即使启动信号仍为“1”)。
    • 接通延时定时器 (On-Delay Timer - TON): 启动输入信号变“1”并保持预设时间后,输出才变“1”。
    • 保持型接通延时定时器 (Retentive On-Delay Timer - TONR): 与接通延时定时器类似,但定时过程中启动信号变“0”会暂停定时(保持当前值),下次启动信号变“1”会继续定时。
    • 关断延时定时器 (Off-Delay Timer - TOF): 启动输入信号变“0”时开始定时,预设时间结束后输出才变“0”。
  3. 计数器指令 (Counters):

    • 加计数器 (Up Counter - CTU): 每当加计数输入信号有上升沿时,计数值增加1。计数值到达预设值时,输出状态位置“1”。
    • 减计数器 (Down Counter - CTD): 每当减计数输入信号有上升沿时,计数值减少1。计数值减少到0时,输出状态位置“1”。
    • 加减计数器 (Up/Down Counter - CTUD): 同时具备加计数和减计数功能。计数值大于等于预设值时,加计数状态位置“1”;计数值小于等于0时,减计数状态位置“1”。
  4. 移动指令 (Move):

    • 移动 (MOVE): 将一个数据元素(字节、字、双字、实数等)从源位置复制到目标位置。
    • 块移动 (Block Move - MOVE_BLK, UMOVE_BLK, MOVE_BLK_VARIANT): 高效地复制一段连续的数据块。
    • 交换 (SWAP): 交换一个字(Word)或双字(DWord)内字节的顺序。
  5. 比较指令 (Comparison):

    • 等于 (Equal - ==, CMP ==): 比较两个值是否相等。
    • 不等于 (Not Equal - <>): 比较两个值是否不相等。
    • 大于 (Greater Than - >): 比较第一个值是否大于第二个值。
    • 小于 (Less Than - <): 比较第一个值是否小于第二个值。
    • 大于等于 (Greater Than or Equal - >=): 比较第一个值是否大于或等于第二个值。
    • 小于等于 (Less Than or Equal - <=): 比较第一个值是否小于或等于第二个值。
    • 在范围内 (In Range - IN_RANGE): 检查一个值是否在指定的下限和上限之间(含边界)。
    • 超出范围 (Out of Range - OUT_RANGE): 检查一个值是否小于指定下限或大于指定上限。
  6. 数学运算指令 (Math):

    • 加 (ADD): 两个操作数相加。
    • 减 (SUB): 两个操作数相减。
    • 乘 (MUL): 两个操作数相乘。
    • 除 (DIV): 两个操作数相除。
    • 取负 (NEG): 改变操作数的符号。
    • 取绝对值 (ABS): 获取操作数的绝对值。
    • 浮点运算 (ADD, SUB, MUL, DIV for REAL): 支持浮点数(实数)的加减乘除。
    • 取模 (MOD): 计算除法后的余数。
    • 指数 (EXP): 计算自然指数。
    • 自然对数 (LN): 计算自然对数。
    • 幂运算 (EXPT): 计算指定次幂。
    • 三角函数 (SIN, COS, TAN, ASIN, ACOS, ATAN): 计算正弦、余弦、正切、反正弦、反余弦、反正切等。
  7. 转换指令 (Conversion):

    • 标准转换 (CONVERT): 在不同的数据类型之间进行转换(如 INT -> REAL, BCD -> INT)。
    • 取整指令 (CEIL, FLOOR, ROUND, TRUNC): 对实数进行上取整、下取整、四舍五入取整、截断取整。
    • 缩放 (SCALE_X): 将线性输入的模拟量值缩放到指定的工程单位范围(如 0-27648 -> 0.0-100.0)。
    • 标准化 (NORM_X): 将线性输入的模拟量值标准化到0.0~1.0或0.0~100.0的范围。
    • 双整型转实数 (DI_R): 将双整数(DINT)转换为实数(REAL)。
    • 实数转双整型 (RND, RND+, RND-): 将实数(REAL)转换为双整数(DINT)(四舍五入/上取整/下取整)。
  8. 字逻辑指令 (Word Logic):

    • 字与 (AND): 对两个字(Word)或双字(DWord)的每个位进行逻辑“与”操作。
    • 字或 (OR): 对两个字(Word)或双字(DWord)的每个位进行逻辑“或”操作。
    • 字异或 (XOR): 对两个字(Word)或双字(DWord)的每个位进行逻辑“异或”操作。
    • 取反 (INV): 对一个字(Word)或双字(DWord)的所有位进行逻辑“非”操作。
    • 解码 (DECO): 根据输入值(表示位索引)将输出字中相应位置1。
    • 编码 (ENCO): 扫描输入字,将第一个为1的位的索引输出。
  9. 移位和循环移位指令 (Shift & Rotate):

    • 右移 (SHR): 将输入值的位向右移动指定位数。左端空出的位用0(无符号)或符号位(有符号)填充。
    • 左移 (SHL): 将输入值的位向左移动指定位数。右端空出的位用0填充。
    • 循环右移 (ROR): 将输入值的位向右循环移动指定位数。
    • 循环左移 (ROL): 将输入值的位向左循环移动指定位数。
    • 移位寄存器 (SHRB): 实现先进先出(FIFO)或后进先出(LIFO)的位队列。
  10. 程序控制指令 (Program Control):

    • 跳转 (JMP) / 跳转标签 (LABEL): 无条件跳转到程序中的指定标签处继续执行。
    • 条件跳转 (JMP, JMPN): 根据RLO (Result of Logic Operation) 的状态决定是否跳转到指定标签处。
    • 调用功能块/功能 (CALL): 调用用户编写的或系统提供的功能块(FB)或功能(FC)。
    • 主控继电器开 (MCR<): 激活一个主控继电器区域,该区域内所有后续指令的执行取决于MCR堆栈顶部的状态。
    • 主控继电器关 (MCR>): 结束一个主控继电器区域。
    • 返回 (RET): 从功能(FC)或功能块(FB)中返回到调用程序。
    • 置位域 (SET): 将整个位存储区(Bit memory)或过程映像输出区(Output)置为“1”(仅限STL)。
    • 复位域 (RESET / CLR): 将整个位存储区(Bit memory)或过程映像输出区(Output)置为“0”(仅限STL)。
    • 结束 (STOP): 将CPU切换到STOP模式(谨慎使用)。
    • 看门狗复位 (RE_TRIGR / WDR): 复位CPU的看门狗定时器。
  11. 数据块访问指令:

    • 通过DB块号.变量名或优化的%DB块号.%变量名方式直接访问数据块中的变量。
    • 打开数据块 (OPN): 打开一个数据块(DB)或背景数据块(DI)(在STL中常用)。
  12. 字符串指令 (String):

    • 合并字符串 (CONCAT): 将两个字符串连接成一个新字符串。
    • 字符串长度 (LEN): 获取字符串的当前有效长度。
    • 复制字符串 (STRCPY): 复制一个字符串。
    • 查找字符串 (FIND): 在一个字符串中查找另一个子字符串的位置。
    • 替换字符串 (REPLACE): 替换字符串中的一部分。
    • 插入字符串 (INSERT): 在字符串的指定位置插入另一个字符串。
    • 删除字符串 (DELETE): 删除字符串的一部分。
    • 比较字符串 (EQ_STRNG, NE_STRNG): 比较两个字符串是否相等或不相等。
    • 提取字符串 (LEFT, RIGHT, MID): 从字符串中提取指定部分的子字符串。
  13. 日期和时间指令:

    • 读取系统时间 (RD_SYS_T / RD_LOC_T): 读取CPU的实时时钟(系统时间或本地时间)。
    • 设置系统时间 (WR_SYS_T / WR_LOC_T): 设置CPU的实时时钟。
    • 转换时间/日期格式: 在DATE_AND_TIME (DT), DATE, TIME_OF_DAY (TOD), TIME等不同格式之间转换(如T_CONVT_COMBINE, T_DIFF等)。
    • 加减时间 (ADD / SUB for TIME and DATE): 对时间或日期值进行加减操作。
  14. 寻址指令 (仅限STL):

    • 加载 (L): 将操作数的值加载到累加器1 (ACCU1)。
    • 传送 (T): 将累加器1 (ACCU1)的值传送到指定的操作数位置。
    • 地址寄存器操作 (LAR1, LAR2, TAR1, TAR2, +AR1, +AR2, ...): 用于操作地址寄存器AR1和AR2,实现间接寻址。
  15. 其他指令:

    • 获取错误信息 (GET_ERROR, GET_ERR_ID): 读取详细的诊断错误信息。
    • 分配列表 (LIST): 操作列表数据结构(先进先出、后进先出)。
    • 通信指令 (如 PUT, GET, TSEND, TRCV, UPDAT_PI, UPDAT_PO): 用于CPU之间的通信(S7通信、开放式通信等)。
    • PID控制指令 (PID_Compact, PID_3Step, ...): 提供预编程的PID控制功能块。
    • 高速计数器指令 (HSC): 配置和操作高速计数器。

重要提示

  1. 具体支持度: 上述指令的具体可用性、表现形式和功能细节强烈依赖于您使用的具体PLC型号(如S7-1200, S7-1500, S7-300, S7-400)以及TIA Portal (博途) 或 STEP 7(经典STEP 7)的软件版本。 新CPU(如S7-1500)通常支持更多、更强大的指令,并且指令名称在不同版本中可能有细微差异(尤其是在从STL/FBD/LAD迁移到SCL时)。
  2. 指令视图: 这些指令可以以不同形式呈现在不同的编程语言中:
    • LAD (梯形图): 图形化,类似继电器电路图。
    • FBD (功能块图): 图形化,由逻辑门、功能块等组成。
    • STL (语句表): 文本型,类似汇编语言。
    • SCL (结构化控制语言): 高级文本型,类似Pascal/C语言。
  3. 数据类型: 绝大多数指令都依赖于操作数的数据类型(如Bool, Byte, Word, DWord, Int, DInt, Real, S7Time, String等)。在使用指令前务必确认操作数的数据类型是否匹配。
  4. 文档是权威: 强烈建议查阅西门子官方针对您使用的具体PLC硬件型号和软件版本的文档(硬件手册、指令列表手册),这是获取最准确、最完整、最详细指令信息的唯一权威来源。在TIA Portal中,通过“F1”帮助键或“信息”视图可以快速访问相关指令的详细帮助文档。

这个列表涵盖了最主要和常用的西门子PLC编程指令类别和代表指令。在实际编程中,需要根据具体的控制任务选择合适的指令。请始终参考您所用硬件和软件的最新官方手册。

西门子plc200编程实例详解

S7-200系列包括多种不同型号的CPU模块和扩展模块,可以根据具体的应用需求进行选择和配置。其主要特点包括:高性能的CPU、丰富的指令集、强大的网络通信功能以及易于使用的编程软件等。 在

2024-10-22 14:38:30

常见的西门子编程软件介绍

很多初入门的PLC工程师和不了解西门子产品的工程师不是很清楚西门子编程软

2023-10-26 17:01:31

三菱和西门子PLC区别及优势分析

首先它们的编程理念不同,三菱PLC是日系品牌,编程直观易懂,学习起来会比较轻松,而西门

2023-10-26 08:07:39

西门子PLC指令和程序设计

西门子PLC指令和程序设计方法免费下载。

资料下载 姚小熊27 2021-05-07 09:42:06

浅谈西门子PLC的SCL语言编程

西门子PLC的SCL语言编程说明。

资料下载 姚小熊27 2021-04-22 14:39:28

西门子PLC的位指令教程详细说明

本文档的主要内容详细介绍的是西门子PLC的位指令教程详细说明。

资料下载 佚名 2020-03-23 16:51:48

西门子PLC的数字指令教程详细说明

本文档的主要内容详细介绍的是西门子PLC的数字指令教程详细说明。

资料下载 佚名 2020-03-21 16:41:20

西门子PLC指令的教程详细说明

本文档的主要内容详细介绍的是西门子PLC位指令的教程详细说明

资料下载 佚名 2020-03-21 14:38:23

西门子PLC编程技巧(软件篇)

为大家整理一些西门子PLC的软件编程小窍门

2023-07-10 09:34:02

西门子S7系列PLC以太网通讯处理器

1970-01-01 08:00:00 至 1970-01-01 08:00:00

西门子常用PLC指令

西门子常用PLC指令表

2023-02-09 14:34:14

西门子PLC数据传送指令的功能介绍

西门子PLC数据传送指令用于各个编程元件之间进行数据传送,根据每次传送数

2022-06-28 16:29:14

三菱plc西门子plc编程什么不同?

首先它们的编程理念不同,三菱plc是日系品牌,编程直观易懂,学习起来会比较轻松,而西门

2021-12-21 15:19:37

西门子plc数据类型_西门子plc通讯方式

西门子PLC的品质非常好,其网络稳定性、开放性深受工控人员的喜爱,而且编程软件分类多,使用方便。在国内工控界具有显著地位。虽然大家对

2019-07-25 10:57:17

三菱PLC西门子PLC选用指南

首先它们的编程理念不同,三菱 PLC 是日系品牌,编程直观易懂,学习起来会比较轻松,而

2019-05-07 14:42:52

7天热门专题 换一换
相关标签