[西门子] SCL语言FOR指令进阶应用:位置批量赋值

[复制链接]
查看37353 | 回复0 | 2024-3-15 07:47:23 | 显示全部楼层 |阅读模式
PART.1
需求描述

在一个锂电池的企业中,有一个自动上下料的设备。该设备需要将生产好的锂电池,一个一个摆放到托盘当中。

该托盘为5*4的矩阵,其每个穴位的位置由X轴和Y轴的坐标确定。由于该产线会生成不同型号的产品,不同的产品会使用不同的托盘。要求通过位置1的坐标,快速得到2~20的坐标值。



PART.2
需求分析

在该托盘中,每个穴位在X方向和Y方向的间隔一致,X方向每个穴位间隔10mm,Y方向每个穴位间隔5mm。X方向的位置1~位置5的坐标为5、15、25、35、45,其规律为{X基准坐标+X间距*穴位间隔数}。Y方向的位置1、6、11、16的坐标为5、10、15、20,其规律为{Y基准坐标+Y间距*间隔层数}。


穴位的间隔数,可使用序号的余数可得,而层数的间隔,可使用序号的商可得。具体实现的思路,可以使用SCL语言的FOR循环指令进行位置批量赋值实现。

PART.3
项目编程

项目编程分为以下几个步骤:新建FB块、在FB添加变量、编写FB程序、调用FB程序。


(1)新建FB块

在博图的新建项目中,项目树下选择“添加新块”,选择“函数块”,在命名为“位置批量赋值”,选择语言为“SCL”,点击“确定”则实现了FB的SCL块的添加。如图1所示。



图1新建FB块

(2)在FB中添加变量

在“Static(静态变量)”中添加一个Real数据类型的二维数组,其中“0…19”表示的是1-20的位置,其中“0…1”表示的是X轴和Y轴的坐标。在“Temp(运行变量)”中添加一个Int数据。如图2所示。



图2在FB中添加变量

(3)编写FB程序

在SCL的编程区中,编写控制程序。如图3所示。



图3编写FB程序

(4)调用FB程序

将编写好的FB1块拖动到OB1中,会自动生成一个背景数据块。如图4所示。



图4调用FB程序

(5)调试仿真

仿真调试后,监控背景数据块,数组的状态如图5所示。



图5状态监控

PART.4

经验总结

本文通过SCL的FOR循环指令,实现了位置的批量赋值。使用FOR循环指令,可以实现批量性的、有规律的数据处理。以上就是本文的全部内容,更多关于本文的介绍、资料,请关注技成培训网S7-1200的进阶直播课程。


文章来源:技成培训网原创,作者:刘郴;未经授权禁止转载,违者必究!






扫描下方二维码↓↓↓免费获取【西门子全套】

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则