西门子S7-1500入门级教程3-编程进阶篇02

<a href=https://www.xmzyj.com/ximenzi>西门子</a>S7-1500入门级教程3-编程进阶篇02″ inline=”0″></p>
<p class=S7-1500

实验二SCL编程应用

1)实验内容

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

②源数据区与目标数据区大小、数据结构相同,均为非优化DB。

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

④具体要求:把源DB块从起始字节开始移动300个字节到目标数据块的从第5个字节开始的区域;把源DB块从第330个字节开始移动60个字到目标数据块,地址紧接着前一区域;把源DB块从第600个字节开始移动50个双字到目标数据块,地址紧接着前一区域。

2) 实验流程

创建FC1,选用SCL编程语言:

西门子S7-1500入门级教程3-编程进阶篇02

图1-创建FC1-SCL版本

定义输入管脚以及静态变量

西门子S7-1500入门级教程3-编程进阶篇02

图2-定义输入管脚、静态变量

在M区定义中转传输的量

西门子S7-1500入门级教程3-编程进阶篇02

图3-定义中转传输的量

编程

把300个字节传输给目标数据块从第五个字节起的数据区域。

西门子S7-1500入门级教程3-编程进阶篇02

图4-编程思路展示1

把60个字传输给目标数据块接上部分(图中目标地址305字节起是自己算出来的)

西门子S7-1500入门级教程3-编程进阶篇02

图5-编程思路展示2

把50个双字传输到目标数据块:

西门子S7-1500入门级教程3-编程进阶篇02

图6-编程思路展示3

注意: FOR这个程序不是自己编写的,在SCL中有很多程序模板可以调用,所以一定要记得调用,这样不易出错。

在OB1中调用FC1

西门子S7-1500入门级教程3-编程进阶篇02

图7-OB1中调用FC1

3) 实验结果

对源数据块DB1进行赋值:

西门子S7-1500入门级教程3-编程进阶篇02

图8-对源数据块DB1进行赋值1

西门子S7-1500入门级教程3-编程进阶篇02

图9-对源数据块DB1进行赋值2

西门子S7-1500入门级教程3-编程进阶篇02

图10-对源数据块DB1进行赋值3

监视目标数据块DB2结果:

西门子S7-1500入门级教程3-编程进阶篇02

图11-DB2结果1

西门子S7-1500入门级教程3-编程进阶篇02

图12-DB2结果2

西门子S7-1500入门级教程3-编程进阶篇02

图13-DB2结果3

4) 本篇总结

1. 想与300/400原来一样编程注意取消块优化,因为优化块是以符号地址来寻找,没有绝对地址,所以当使用的指针或者OPN等一些方式的时候就会出现问题,一定要注意。

2. 如果程序没有调用在OB1中执行,那么在线监控状态下程序就会显示为灰色,所以当程序显示灰色时,不妨检查程序是否被调用。

3. 不建议DB块命名使用中文,极其不方便,不要搞错指令,否则怎么做都是错的。

4. FOR这个程序不是自己编写的,在SCL中有很多程序模板可以调用,所以一定要记得调用,这样不易出错。

该系列将在300系列完结后再继续,大家敬请期待~

PS:根据大家的反馈,最近两篇有些难懂,所以本篇讲完后,我将暂停S7-1500系列入门教程,先完成S7-300系列的入门教程,再更新该系列~

作者简介

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

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

2017最后一天,提前祝大家新年快乐,2018更上一层楼~

发表评论

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

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