[西门子] “手把手”教你使用PLC梯形图指令-西门子S7-200 SMART系列

[复制链接]
查看40127 | 回复0 | 2024-4-23 08:55:53 | 显示全部楼层 |阅读模式
西门子S7-200 SMART系列 PLC 可编程控制器的基本指令包含:计数器、定时器、顺控、转换指令、实时时钟、字符串、表格指令、移位与循环、间接寻址、中断和子程序、指数和对数、获取和设置IP地址、数据块的使用、系统扫描时间。

1. 计数器

S7-200包含三种计数器:CTU(增计数器)、CTD(减计数器)、CTUD(增/减计数器)



计数器梯形图表示

计数器指令:
指令
说明
CU
增计数信号输入端
CD
减计数信号输入端
PV
预置值
LD
装载预置值
R
复位输入
计数器计数范围为0~32767(2的15次方),计数器接收的是脉冲信号。CU、CD、LD、R都需要接收BOOL数据类型数据。PV接收INT数据类型。计数器指令接收操作数的意思是:操作数指的是计算机执行运算所需的数据或指令。



计数器指令接收操作数



计数器运行时序图

上升沿和下降沿是什么意思?指的是输入信号从低电平跳变到高电平的瞬间,下降沿指的是输入信号从高电平跳变到低电平的瞬间。这个瞬间通常用来表示一个开关量的状态变化。

2. 定时器

三种类型的定时器:接通延时定时器(TON),用于定时单个时间间隔;有记忆的接通延时定时器(TONR),用于累积多个定时时间间隔的时间值;断开延时定时器(TOF),用于在OFF(或FALSE)条件之后延长一定时间间隔,例如冷却电机的延时。S7-200 SMART提供256个定时器,T0-T255。

定时器对时间间隔计数。定时器的分辨率(时基)决定了每个时间间隔的长短。TON、TONR、TOF提供三种分辨率:1ms、10ms和100ms。



接通延时定时器指令

3. 顺序控制(SCR)指令

顺序控制指令的功能是按照控制工艺将一个复杂的步骤分割成几个简单的步骤,并根据工艺步骤顺序执行这些顺控段。普通的PLC程序从头到尾不断扫描执行,SCR指令关键是“步”和“转换”,当转换条件不满足时会一直保持在当前步中。“转换”是从一个步,进入另一个步。

SCR:装载SCR指令(LSCR)将S位的值装载到SCR和逻辑堆栈中

SCRT:标识要启用SCR位,需要设置下一个S_bit。能流进入线圈或FBD功能框

SCRE:梯形图编程中,直接连接SCRE指令到能流线上,表示该顺控段的结束。

4. 转换指令

ROUND取整指令将实数(IN)转换成双整数,采用四舍五入的原则,将结果置入OUT指定的变量中。

TRUNC取整指令将(IN)转换成双整数,采用舍去小数位取整的原则,将实数的整数部分置入OUT指定的变量中。

什么叫做双整数?

双整又称双字,一个字为16位,两个整数就是2*16=32位。

5. 实时时钟

实时时钟提供年、月、日、时、分、秒的日期/时间数据。

CPU断电状态下可保持7天。CPU的时钟精度是正负120秒/月。

6. 字符串

每个字符作为一个字节存储。字符串由变量存储时,字符串长度为0至254个字符,最长255个字节,其中第一个字符为长度字节。

字符串指令包括:STR_LEN(字符串长度)、STR_CPY(复制字符串)、SSTR_CPY(从字符串复制子字符串)、STR_CAT(字符串连接)、STR_FIND(在字符串内查找字符串)、CHR_FIND(在字符串中查找第一个字符)。

字符串怎么输入进PLC的?

7. 表格指令

表格指令使用流程:建表(存储器填充FILL)--->填表(增加至表格ATT)--->查询(表格查找TBL)--->先入先出(FIFO)或先入后出(LIFO)

表格可以理解为临时的存储区,数据库。

8. 移位和循环

移位指令分为左、右移位、循环左、右移位及寄存器移位指令三大类。左右移位指令按移位数据的长度分为字节型、字型、双字型3种。

SHL:字节、字、双字左移N位

SHR:字节、字、双字右移N位

该方法类似计算机编程中的整数位移计算,左移、右移。



9. 间接寻址

用指针来访问存储区的数据。指针以双字的形式存储其他存储区的地址,只能将V存储单元、L存储单元或累加器寄存器(AC1、AC2、AC3)用作指针。

S7-200 SMART CPU 允许指针访问下列存储区:I、Q、V、M、S、AI、AQ、SM、T和C。

要创建指针,需要使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。用“&”符号加上要访问的存储区地址可建立一个指针,当指令中的操作数是指针时,应该在操作数前加上“*”号。这个方式,与Golang计算机编程语言的指针用法如出一辙。

10. 子程序和中断服务程序

子程序和中断服务程序都是程序的组织结构,和主程序一起被称为POU(程序组织单元)。

子程序把整个用户程序按照功能进行结构化的组织。好的程序,总是把全部的控制功能分为几个符合工艺控制规律的子功能块,每个子功能块可以由一个或多个子程序组成。这样有利于分布调试,避免许多功能糅合在一起无法判断问题。S7-200 SMART CPU最多可以调用128个子程序。子程序可以嵌套调用,子程序调用子程序,最多嵌套8层。有点类似函数调用函数,子程序可以递归吗?

中断功能用于实时控制、高速处理、通信和网络等复杂和特殊的控制任务。S7-200 SMART 系列可编程控制器最多有38个中断源(9个预留),分为三大类:通信中断、输入/输出(I/O)中断和时基中断,优先由高到低依次是通信中断、I/O中断和时基中断。

中断指令
含义
ATCH
中断链接,连接某中断事件所要调用的程序段
ENI
全局允许中断,开放中断处理功能
DISI
全局禁止中断,禁止处理中断服务程序,但中断事件仍然会排队等候
DTCH
中断分离,将中断事件与中断服务程序之间的关联切断,并禁止该中断事件
RETI
条件中断返回,根据逻辑操作的条件,从中断服务程序中返回
CLR_EVNT
清空中断队列

中断指令类似,函数的return返回吗?利用栈的先进后出规则返回。

11. 指数和对数

自然指数(EXP)指令进行e的IN次方指数计算,并将结果置于OUT中;

自然对数(LN)指令对IN中的数值进行自然对数计算,并将结果置于OUT中。

12. 通过指令实现S7-200 Smart获取IP地址和设置IP地址

GIP_ADDR可以实现在线获取PLC的IP地址;指令SIP_ADDR在线设置PLC的IP地址。其中,IP地址、子网掩码和网关值被写入永久性存储器。

13. Micro/WIN SMART指令库

标准指令库-Modbus RTU Library、USS Library。

Micro/WIN附加指令库

指令
功能
Toggle
实现一个输出线圈随输入点接通而不断翻转状态
Clock_integer
由于S7-200时钟指令的数据格式是BCD码,使用该库指令可以直接读取S7-200 CPU时钟并以整数格式输出所读取的值
Logic_operaton
使用该库指令可以添加 NEG(一个数字的二进制补码),NAND(是AND 运算符的配对运算符,NAND的输出仅在所有输入都具有状态1时才会具有状态0),NOR(是OR运算符的配对运算符,NOR的输出仅在所有输入都具有状态 0时才会具有状态 1),和NXOR(是XOR 运算符的配对运算符,当输入具有不同状态值时,NXOR的输出具有状态0)指令
modulo
实现取模功能,可以检查一个数是否可以被另一个数整除(取模运算中结果是否为0)
...
...

总结

PLC梯形图编程,就是把一个个基础的编程关键字,控制结构,通过一个矩形方框框起来后,再加上输入输出点,来达到一个简单的流程控制及运算。PLC编程属于函数式(过程式)编程,梯形图中的每一个梯级就代表一个函数,程序只能从上到下,从左到右执行,可以理解为是一个shell脚本。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则