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编程语言:
图1-创建FC1-SCL版本
定义输入管脚以及静态变量
图2-定义输入管脚、静态变量
在M区定义中转传输的量
图3-定义中转传输的量
编程
把300个字节传输给目标数据块从第五个字节起的数据区域。
图4-编程思路展示1
把60个字传输给目标数据块接上部分(图中目标地址305字节起是自己算出来的)
图5-编程思路展示2
把50个双字传输到目标数据块:
图6-编程思路展示3
注意: FOR这个程序不是自己编写的,在SCL中有很多程序模板可以调用,所以一定要记得调用,这样不易出错。
在OB1中调用FC1
图7-OB1中调用FC1
3) 实验结果
对源数据块DB1进行赋值:
图8-对源数据块DB1进行赋值1
图9-对源数据块DB1进行赋值2
图10-对源数据块DB1进行赋值3
监视目标数据块DB2结果:
图11-DB2结果1
图12-DB2结果2
图13-DB2结果3
4) 本篇总结
1. 想与300/400原来一样编程注意取消块优化,因为优化块是以符号地址来寻找,没有绝对地址,所以当使用的指针或者OPN等一些方式的时候就会出现问题,一定要注意。
2. 如果程序没有调用在OB1中执行,那么在线监控状态下程序就会显示为灰色,所以当程序显示灰色时,不妨检查程序是否被调用。
3. 不建议DB块命名使用中文,极其不方便,不要搞错指令,否则怎么做都是错的。
4. FOR这个程序不是自己编写的,在SCL中有很多程序模板可以调用,所以一定要记得调用,这样不易出错。
该系列将在300系列完结后再继续,大家敬请期待~
PS:根据大家的反馈,最近两篇有些难懂,所以本篇讲完后,我将暂停S7-1500系列入门教程,先完成S7-300系列的入门教程,再更新该系列~
作者简介
谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生
本文为原创文章,于头条首发,欢迎转载,请注明出处和作者!
2017最后一天,提前祝大家新年快乐,2018更上一层楼~