西门子S7-300入门级教程04-基础编程篇04-STL编程实战

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

实验四 STL编程实战

1) 目的

掌握参数调用DB,STL运用

2) 实验内容

①设计一个FC111,它具有两个输入参数:源DB块号和目标DB块号。实现在OB1中调用FC111时,只需输入两个DB块号,就能实现从源DB中传输指定偏移地址和长度的数据到目标DB的指定偏移地址开始的区域中;

②源数据区与目标数据区大小、数据结构相同。

③传输过程中,将数据依次按照位、字节、字、双字等四种基本格式传输。

④具体要求:把源DB块从起始字节开始移动450个位到目标数据块的从第3个字节开始的区域。把源DB块从第75个字节开始移动123个字节到目标数据块,地址紧接着前一区域。把源DB块从第266个字开始移动99个字到目标数据块,地址紧接着前一区域。把源DB块从第400个字节开始移动13个双字到目标数据块,地址紧接着前一区域。

⑤源DB和目标DB全部要求为长度1000的Byte。

3) 实验流程

创建DB2,作为源DB

在DB2中定义1个包含1000个BYTE的数组型变量,并赋值如下,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图1-源DB创建

创建DB3,作为目标DB

在DB3中定义1个包含1000个BYTE的数组型变量,该数组的1000字节初始值为0,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图2-目标DB创建

新建FC111

在FC111的接口处定义输入参数,数据类型为INT,定义两个输入管脚DB号如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图3-定义输入参数

在FC111的接口处定义TEMP参数,数据类型为INT,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图4-定义TEMP参数

FC111编程

根据实验内容,在FC111中编程。

首先打开源DB和目标DB,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图5-打开源DB和目标DB

再初始化,用MD50和MD54用来装指针,NUM用来计数:

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图6-初始化

然后是按位传输,编程如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图7-按位传输

按字节传输

初始化,编程如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图8-初始化

然后按字节传输,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图9-按字节传输

按字传输

初始化,编程如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图10-初始化

最后是按字传输编写程序,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图11-按字传输

按双字传输

初始化,编程如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图12-初始化

最后是按双字传输的程序,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图13-按双字传输

保存编译并下载到PLCSIM中,监视DB2中的数据是否移动到DB3中。

在源DB(DB2)中该数组的值均为11,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图14-源DB数值

监视到目标DB(DB3)中数据已经移动成功,如下图所示。

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图15-位传递结果

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图16-字节传递结果

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图17-字传递结果

西门子S7-300入门级教程04-基础编程篇04-STL编程实战

图18-双字传递结果

4)总结

1、注意运用资料,不懂多多查询如同STEP7编程指南等书籍,其中今天寻址这章在P170页,很多指令的运用都是可以查询的。

敬请期待下一篇-开关量和模拟量输入输出

PS:友情提醒,所有文章都是一个系列,是连贯的,顺着看效果更好~

作者简介

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

本文为原创文章,于头条首发,欢迎关注转载,请注明出处和作者!

发表评论

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

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