从零开始学PLC-第二讲指令详解

从零开始学PLC-第二讲指令详解

首页音乐舞蹈黑色星期五之夜编程猫模组更新时间:2024-09-03

一直很纠结这堂课讲软件的安装还是直接进入正题,经过和学员的探讨,还是直奔主题,直接讲解PLC的指令,结合实例,这样会比较有意思,软件安装不会的可以私信我,我会告诉大家方法,下面直接进入正题。

首先介绍一下STEP-7的编程语言

STEP 7所支持的PLC编程语言非常丰富。该软件的标准版支持STL(语句表)、LAD(梯形图)及FBD(功能块图)3种基本编程语言,并且在STEP 7中可以相互转换。专业版附加对GRAPH(顺序功能图)、SCL(结构化控制语言)、HiGraph(图形编程语言)、CFC(连续功能图)等编程语言的支持。不同的编程语言可供不同知识背景的人员采用。

一、编程语言

1. STL(语句表)

STL(语句表)是一种类似于计算机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语句表可供习惯汇编语言的用户使用,在运行时间和要求的存储空间方面最优。在设计通信、数学运算等高级应用程序时建议使用语句表。

电机启停STL

2. LAD(梯形图)

LAD(梯形图)是一种图形语言,比较形象直观,容易掌握,用得最多,堪称用户第一编程语言。梯形图与继电器控制电路图的表达方式极为相似,适合于熟悉继电器控制电路的用户使用,特别适用于数字量逻辑控制。 PS:后续讲解主要应用LAD(梯形图)。

电机启停LAD

3.FBD(功能块图)

FBD(功能块图)使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示。FBD比较适合于有数字电路基础的编程人员使用。

电机启停FBD

4.GRAPH(顺序控制)

GRAPH类似于解决问题的流程图,适用于顺序控制的编程。利用S7-GRAPH编程语言,可以清楚快速地组织和编写S7 PLC系统的顺序控制程序。它根据功能将控制任务分解为若干步,其顺序用图形方式显示出来并且可形成图形和文本方式的文件。

电机启停.GRAPH

5.HiGraph(图形编程语言)

S7-Higraph允许用状态图描述生产过程,将自动控制下的机器或系统分成若干个功能单元,并为每个单元生成状态图,然后利用信息通讯将功能单元组合在一起形成完整的系统。

电机启停HiGraph

6.SCL(结构化控制语言)

S7-SCL(Structured Control Language:结构控制语言)是一种类似于PASCAL的高级文本编辑语言,用于S7-300/400和C7的编程,可以简化数学计算、数据管理和组织工作。S7-SCL具有PLC公开的基本标准认证,符合IEC 1131-3 (结构化文本)标准。

电机启停SCL

7.CFC(连续功能图)

利用工程工具CFC(Continuous Function Chart:连续功能图),可以通过绘制工艺设计图来生成SIMATIC S7和SIMATIC M7的控制程序,该方法类似于PLC的FBD编程语言。在这种图形编程方法中,块被安放在一种绘图板上并且相互连接。利用CFC用户可以快速、容易地将工艺设计图转化为完整的可执行程序。

二、数据类型

数据类型决定数据的属性,在STEP 7中,数据类型分为三大类:

1.基本数据类型

2.复杂数据类型

复杂数据类型由数组(ARRAY)、结构(STRUCT) 、字符串(STRING)、日期和时间(DATE_AND_TIME)、用户定义的数据类型(UDT)、功能块类型(FB、SFB)构成。

(1)数组

数组是由一组同一类型的数据组合在一起而形成的复杂数据类型。数组的维数最大可以到6维;数组中的元素可以是基本数据类型或者复杂数据类型中的任一数据类型(Array类型除外,即数组类型不可以嵌套);数组中每一维的下标取值范围是-32768~32767,要求下标的下限必须小于下标的上限。

数组

(2)结构

结构是由一组不同类型(结构的元素可以是基本的或复杂的数据类型)的数据组合在一起而形成的复杂数据类型。结构通常用来定义一组相关的数据,例如电机的一组数据可以按如下方式定义:

定义结构

(3)字符串

字符串是最多有254个字符(CHAR)的一维数组,最大长度为256个字节(其中前两个字节用来存储字符串的长度信息)。字符串常量用单引号括起来,例如:

定义字符串

(4)日期和时间(DATE_AND_TIME)

用于存储年、月、日、时、分、秒、毫秒和星期,占用8个字节,用BCD格式保存。星期天的代码为1,1~6的代码为2~7。例如:

时间

(5)用户定义的数据类型(UDT)

用户定义数据类型表示自定义的结构,存放在UDT块中(UDT1~UDT65535),在另一个数据类型中作为一个数据类型“模板”。当输入数据块时,如果需要输入几个相同的结构,利用UDT可以节省输入时间

自定义结构

(6)功能块类型(FB、SFB)

这种数据类型仅可以在FB的静态变量区定义,用于实现多背景DB。

3.参数数据类型

参数类型是一种用于逻辑块(FB、FC)之间传递参数的数据类型,主要有以下几种:

(1)TIMER(定时器)和COUNTER(计数器)。

(2)BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。

(3)POINTER(指针):6字节指针类型,用来传递DB的块号和数据地址。

(3)ANY:10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。

以上主要简单介绍编程语言、数据类型,对于编程语言大家有个了解就可以,后续主要用到梯形图,对与数据类型,需要掌握一下,后期变成用的比较多。

下面主要介绍讲解一下指令,首先介绍一下指令

1.指令操作数

指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标识符和参数组成。操作标识符由主标识符和辅助标识符组成,主标识符用来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位(如:位、字节、字、双字等)。

主标识符有:I(输入过程映像寄存器、Q(输出过程映像寄存器)、M(位存储器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)和L(本地数据寄存器);

辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)。

2.位逻辑指令

位逻辑指令处理的对象为二进制位信号。位逻辑指令扫描信号状态“1”和“0”位,并根据布尔逻辑对它们进行组合,所产生的结果(“1”或“0”)称为逻辑运算结果,存储在状态字的“RLO”中。 位置指令主要包括 触点与线圈 、基本逻辑指令 、置位和复位指令 、 RS和SR触发器、 跳变沿检测指令 。

(1)触点与线圈

在LAD(梯形图)程序中,通常使用类似继电器控制电路中的触点符号及线圈符号来表示PLC的位元件,被扫描的操作数(用绝对地址或符号地址表示)则标注在触点符号的上方,如图所示。

触电与线圈

(1.1)常开触点

对于常开触点(动合触点),则对“1”扫描相应操作数。在PLC中规定:若操作数是“1”则常开触点“动作”,即认为是“闭合”的;若操作数是“0”,则常开触点“复位”,即触点仍处于打开的状态。常开触点所使用的操作数是:I、Q、M、L、D、T、C。

常开触点

(1.2)常闭触点

常闭触点(动断触点)则对“0”扫描相应操作数。在PLC中规定:若操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“复位”,即触点仍保持闭合。常闭触点所使用的操作数是:I、Q、M、L、D、T、C。

常闭触点

(1.3)输出线圈

输出线圈与继电器控制电路中的线圈一样,如果有电流(信号流)流过线圈(RLO=“1”),则被驱动的操作数置“1”;如果没有电流流过线圈(RLO=“0”),则被驱动的操作数复位(置“0”)。输出线圈只能出现在梯形图逻辑串的最右边。 输出线圈等同于STL程序中的赋值指令(用等于号“=”表示),所使用的操作数可以是:Q、M、L、D。

线圈输出

(1.4)中间输出

在梯形图设计时,如果一个逻辑串很长不便于编辑时,可以将逻辑串分成几个段,前一段的逻辑运算结果(RLO)可作为中间输出,存储在位存储器(I、Q、M、L或D)中,该存储位可以当作一个触点出现在其他逻辑串中。中间输出只能放在梯形图逻辑串的中间,而不能出现在最左端或最右端。

中间继电器

图1

图2

图1与图2中程序等效,以中间继电器代替

3.基本逻辑指令

基本逻辑指令包括:“与”指令“、与非”指令、“或”指令、“或非”指令、“异或”指令、“异或非”指令、逻辑块的操作信号流取反指令

(1)逻辑“与” 指令

逻辑“与” 指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑“与” 运算。

逻辑“与”指令

(2)逻辑 “与非”指令

逻辑 “与非”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑 “与非”运算。

“与非”指令

3)逻辑 “或”指令

逻辑 “或”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑 “或”运算。

“或”指令

(4)逻辑 “或非”指令

逻辑 “或非”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑 “或非”运算。

“或非”指令

(5)逻辑 “异或”指令

“异或”指令

(6)逻辑 “异或非”指令

“异或非”指令

(7)信号流取反指令

信号流取反指令的作用就是对逻辑串的RLO值进行取反。指令格式及示例见表4-13。当输入位I0.0和I0.1同时动作时,Q4.0信号状态为“0”;否则,Q4.0信号状态为“1”。

信号流取反指令

以上是今天的讲解内容,比较简单,明天继续讲解指令,信息量会比较大,希望大家做一下笔记,这样会有助于记忆,看完这篇文章你学会了多少呢?

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved