西门子S7-1500入门级教程2-编程基础篇01

<a href=https://www.xmzyj.com/ximenzi>西门子</a>S7-1500入门级教程2-编程基础篇01″ inline=”0″></p>
<p class=S7-1500

实验一 S7-1500的数据类型及编程语言

1)实验内容

①了解S7-1500的数据类型,掌握在STEP 7中变量和常量的使用;

②掌握S7-1500的编程语言:LAD/FBD/SCL,了解STL和Graph;

③设计一个PLC程序,在OB1中调用FB1(LAD)、FB2(FBD)、FB3(SCL);

④将程序下载到PLCSIM V13,并在STEP 7中在线监控PLC程序执行情况。

2) 实验流程

①数据类型

二进制数

数据类型 BOOL 的操作数表示一位值,并包含以下值之一:TRUE和FALSE;

数据类型 BYTE 的操作数是位字符串,有 8 位;

数据类型 WORD 的操作数是位字符串,有 16 位;

数据类型 DWORD 的操作数是位字符串,有 32 ;

数据类型 LWORD 的操作数是位字符串,有 64 位(只有1500)。

二进制数和位字符串在各类 S7-CPU 中的情况如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图1-各CPU数据类型对比

1) 整数

数据类型 SINT(短 INT)的操作数长度为 8 位,并由两部分组成: 一部分是符号,另一部分是数值。 位 0 到 6 的信号状态表示数值。 位 7 的信号状态表示符号。 符号可以是”0″(正信号状态),或”1″(负信号状态)。数据类型 SINT 的操作数在存储器中占用 1 BYTE。

数据类型 INT 的操作数长度为 16 位,并由两部分组成: 一部分是符号,另一部分是数值。 位 0 到 14 的信号状态表示数值。 位 15 的信号状态表示符号。 符号可以是”0″(正信号状态),或”1″(负信号状态)。数据类型 INT 的操作数在存储器中占用 2 BYTE。

数据类型 DINT (Double INT) 的操作数长度为 32 位,并由两部分组成: 一部分是符号,另一部分是数值。 位 0 到 30 的信号状态表示数值。 位 31 的信号状态表示符号。 符号可以是”0″(正信号状态),或”1″(负信号状态)。 数据类型 DINT 的操作数在存储器中占用 4 BYTE。

整数在各类 S7-CPU 中的情况如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图2-各类CPU整数对比

2) 浮点数

数据类型 REAL 的操作数长度为 32 位,用于表示浮点数。 数据类型 REAL 的操作数由以下三部分组成:

符号: 符号由位 31 的信号状态确定。位 31 可以是”0″(正数)或”1″(负数)。

以 2 为底的 8 位指数: 该指数按常数增加(基值 +127),因此其范围为 0 ~ 255。

23 位尾数: 仅显示尾数的小数部分。 尾数为标准化的浮点数,其整数部分始终为 1,且不会保存。

浮点数在各类 S7-CPU 中的情况如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图3-各类CPU浮点数对比

3) 定时器

TIME(IEC 时长),数据类型为 TIME 的操作数内容以毫秒表示。 表示信息包括天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。

定时器在各类 S7-CPU 中的情况如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图4-各类CPU定时器对比

4) 日期和时长

数据类型 DTL 的操作数长度为 12 个字节,以预定义结构存储日期和时长信息。

日期和时长在各类 S7-CPU 中的情况如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图5-各类CPU日期和时长对比

西门子S7-1500入门级教程2-编程基础篇01

图6-DTL属性

5) 字符

数据类型 CHAR 的操作数长度为 8 个字节,在存储器中占用 1 BYTE。CHAR 数据类型以 ASCII 格式存储单个字符。

数据类型为 STRING 的操作数在一个字符串中存储多个字符,最多可包括 254 个字符。 在字符串中, 可使用所有 ASCII 码字符。 字符在单引号中指定。

字符在各类 S7-CPU 中的情况如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图7-各类CPU字符对比

6) 数组

Array 数据类型表示一个由固定数目的同一种数据类型元素组成的数据结构。允许使用除了 Array 之外的所有数据类型。数据类型为 Array 的变量始终以 WORD 限制开始。数组元素通过下标进行寻址。 在数组声明中,下标限值定义在 Array 关键字之后的方括号中。 下限值必须小于或等于上限值。 一个数组最多可以包含 6 维,并使用逗号隔开维度限值。

7) 结构

STRUCT 数据类型表示由固定数目的多种数据类型的元素组成的数据结构。 数据类型 STRUCT 或 ARRAY 的元素还可以在结构中嵌套。 嵌套深度限制为 8 级。 结构可用于根据过程控制系统分组数据以及作为一个数据单元来传送参数。对于 S7-1200 或 S7-1500 系列 CPU,可最多创建 65534 个结构。 其中每个结构可最多包括 252 个元素。 此外,还可创建最多 65534 个函数块、65535 个函数和 65535 个组织块,每个块最多具有 252 个元素。数据类型为 ARRAY 的元素始终以 WORD 限制开始。

8) 指针

指针在各类 S7-CPU 中的情况如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图8-各类CPU指针对比

9) 此外还包括了参数类型、PLC 数据类型、系统数据类型和硬件数据类型。

②编程语言

1) LAD

LAD 是一种图形编程语言。 它采用基于电路图的表示法。 程序以一个或多个程序段表示。 程序段在梯级源位置的左侧包含一个电源线。 二进制信号以触点的形式排列在梯级上。 在梯级上元素的顺序排列构成串联,在并行分支上的排列构成并联。 复杂函数用函数块表示。

2) FBD

FBD 是一种图形编程语言。 它采用基于电路系统的表示法。程序以一个或多个程序段表示。 程序段包含一个或多个逻辑运算路径。 二进制信号扫描用函数框连接。 逻辑表示法以布尔代数中使用的图形逻辑符号为基础。

3) SCL

SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。 这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。 SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的 PLCopen 初级水平。

4) STL

STL 是一种基于文本的编程语言,用于编写逻辑块。STL 程序通常分为若干个程序段。 每个程序段中可包含一行或多行。 每个程序段中的行编号从 1 开始,每出现一个新行编号便递增。 各 STL 指令都在程序段的行中进行编写,每行只能指定一条 STL 指令。 每条语句都代表一条 CPU 指令。 CPU 将自上而下执行指令。

5)Graph

顺序功能图,在一些流程作业里确实是很实用,每个步骤的编程都很清晰,调试起来也比较方便,尤其是完成一个流程的步骤较多时。但,有些现场对流程步骤要求不高,只是简单的三四步就完成一个流程,反而是一些动作的互锁等相关联的内容较多,这样的话用顺序功能图就没有什么优势了,反而是梯形图在线监控一下就看出出来了。梯形图是大家普遍使用的编程语言,其结构也与继电器电路图类似。对于初学者来说确实比较容易就入门了。

③编程

分别用LAD、FBD和SCL编写启保停程序,在OB1中调用FB1(FBD)、FB2(LAD)、FB3(SCL);当启动位为true,且停止位为false时,灯输出为true,且有自保持功能;当停止位为true时,灯输出为false。

1) LAD编程

先建立FB块如下:

西门子S7-1500入门级教程2-编程基础篇01

图9-建立FB块(LAD)

编程下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图10-启保停程序LAD版

2) 在FBD编程时,启动位和灯输出采用或预算(>=1),运算结果与停止位采用与预算(&),运算结果赋值给灯输出位。需要注意的是停止位采用的常闭触点,所以对停止位在与运算之前加一个对停止位的RLO取反的运算。编程如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图11-启保停程序FBD版

3) 在SCL编程时,使用if 条件 then end_if的结构将启保停分为三种情况来判断处理,情况一,当START为true且END为false时,OUT输出true,情况二,当OUT输出true且END为false时,OUT输出true,情况三,当END为true时,OUT输出false。编程如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图12-启保停程序SCL版

4) 当FB编写完成后,需要先进行编译操作,检查是否有错误,编译通过后要在OB1中进行调用,即将FB直接拖拽到OB1指定位置。FB调用需要给一个DB块,如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图13-OB1中调用FB

5) 打开PLCSIM,并下载,在线并监控各个FB执行的情况。

LAD程序运行结果如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图14-LAD版程序仿真运行结果

FBD程序运行结果如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图15-FBD版程序仿真运行结果

SCL程序运行结果如下图所示。

西门子S7-1500入门级教程2-编程基础篇01

图16-SCL版程序仿真运行结果

敬请期待下一篇程序基础篇02~

作者简介

谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生

本文为原创文章,欢迎转载,请注明出处和作者!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据