广东省技师学院
SCL:Structured Contorl Language,结构化控制语言。
在西门子TIA博途软件中,默认支持SCL语言,在建立程序块时可以直接选择SCL语言。
本例利用SCL语言编程来实现机器人自动上下料过程中的自动寻料判断。
上图分别显示毛坯区和成品区料位实际状态,蓝色和绿色代表料位有料,灰色代表料位无料。机器人自动选择抓取毛坯区2号料,放置在成品区7号空料位。
机器人自动寻料要求实现功能如下:上料时从毛坯区自动选择有料的最小料位号的毛坯,放料时自动选择无料的最小成品料区放料。毛坯无料的位和成品区的有料位自动跳过,直至全部毛坯取完,或者全部成品区放满料。
如果使用梯形图来写的话,此程序会很繁琐,由此我们引出西门子博途的SCL语言编程,将会比较容易实现,步骤如下:
1、建立数据块
30LW:表示料仓30个料位传感器状态,本例只使用1-17号。其中1-6为毛坯料区,7-12为成品料区。
2、完成料位传感器和机器人料位号数据处理
ID8是外部30个料位传感信号输入,将外部30个料位信号传给30LW数据
将毛坯区和成品区料位信息传送给机器人
在程序段插入SCL程序段
打开基本指令中的程序控制指令,选择所需要的指令编程
4、编程
方法一:
该方法使用IF条件执行指令
XZ1是发给机器人取料料位信号,XZ1为发给机器人放料料位信号
此段程序处理毛坯区料位判断。当1号料位有料时,毛坯区料位号为1,如果无料则执行下一条(即2号料位判断)。如果1-6号都无料,则毛坯区料位号为0
此段程序处理成品区料位判断。当7号料位无料时,则成品区料位号为7,如果该料位有料则执行下一条(即8号料位判断)。如果7-12号都有料,则成品区料位号为0
这种方法通俗易懂,但程序会随着料位的增加而增加,料位越多,程序就会越长。
方法二:
该方法程序使用FOR:在计数循环中执行指令,配合IF条件执行指令。
通过PLC循环扫描方式让7减(1至6),得出料位传感器从(6至1)循环执行,料位传感器(6至1)任意一位为1则把7减(1至6)值给到毛坯区。成品区料位判断计算方法原理一样
这种方法简短实用,不会因为料位增加而增加程序。对于料位很多的情况非常合适。
在用SCL语言编程时,主要用IF...THEN/FOR/WHILE语句去构造条件、循环、判断这样的结构,在这些结构中再次添加指令,去实现逻辑判断。通过以上实例简单介绍了SCL语言的基本用法,在感性上对SCL语言编程有所认识。