SCL语言FOR指令进阶应用:位置批量赋值
PART.1需求描述
在一个锂电池的企业中,有一个自动上下料的设备。该设备需要将生产好的锂电池,一个一个摆放到托盘当中。
该托盘为5*4的矩阵,其每个穴位的位置由X轴和Y轴的坐标确定。由于该产线会生成不同型号的产品,不同的产品会使用不同的托盘。要求通过位置1的坐标,快速得到2~20的坐标值。
需求分析
在该托盘中,每个穴位在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循环指令进行位置批量赋值实现。
项目编程
项目编程分为以下几个步骤:新建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状态监控
经验总结