西门子SCL语言在汽车制造行业中的应用研究

2021-07-08 07:55关伟
科学与信息化 2021年18期
关键词:编程语言出库库区

关伟

宜科(天津)电子有限公司 四川 成都 610000

引言

随着我国生产力水平的不断发展进步,传统工业制造对电气自动化控制也有了新的需求。信息技术与传统工业制造行业的结合是必然的趋势,通过电气自动化设备在汽车制造行业中的广泛应用,可以大幅提升企业的生产效率,同时能够节约大量的人力和物力成本,符合我国倡导的科技强国的发展战略。为了在汽车生产制造的过程中实现高性能的电气自动化设备,编程语言的应用不可或缺。在众多编程语言的实践应用中,SCL语言得到程序员的青睐。因此,研究SCL语言在汽车制造业中的应用具有重要的现实意义[1]。

1 西门子SCL语言

西门子PLC(可编程控制器)的主要编程语言有梯形图(LAD)、语句表(STL)、结构化控制语言(SCL)、功能块(FBD)、顺序控制(GRAPH)等。相较于其他编程语言,SCL语言与计算机高级语言类似,在有大量的数据处理需求下,使用SCL编写的程序效率更高,同时也更加容易阅读和理解。笔者在实际应用中更加倾向于使用该语言进行设计。

1.1 SCL语言的特点

1.1.1 易读性。SCL语言在语句的结构上与Basic、Pascal、C这些高级语言相似,同时又与Pascal的语法类似。这就意味着SCL语言更接近高级语言,其关键字或者指令的形式基本是简单的自然语言,易于理解。对于了解计算机高级编程语言的PLC人员,上手SCL语言快、容易。

1.1.2 编辑空间利用率高。由于SCL语言在语句结构和语法上都接近于高级语言,其编程的效率与Basic、Pascal这些高级语言比较接近。SCL语言可以通过“REGION”指令将程序段按照其功能进行归类,类似于LAD/FBD/STL编程环境下的“程序段”概念。程序员可以根据程序实现的功能进行分类,将每个不同功能的程序指令放到不同的“REGION”组中。“REGION”组可以进行折叠操作,需要使用时再展开,可以大大提高编辑空间的利用率,以便于编写出更具逻辑性的程序,同时也方便对程序进行管理。

1.1.3 易于管理和移植。SCL语言的功能块可以导入或者导出,导出的文件,可以通过windows自带的记事本软件进行查看。同时,也可以将文件导入到同平台的其他项目中,生成功能块进行使用。程序员也可以利用SCL语言的这个优点编辑通用的库文件,将常用的功能块归类存下,在项目需要的时候直接拿来重复使用,可以很大程度节约时间,提高编程的效率。

2 SCL语言的应用

本文结合笔者实际参与的汽车厂Buffer库区的项目来阐述SCL语言在汽车制造行业中的应用[2]。

2.1 项目描述

某汽车厂在焊装车间新建Buffer库区,用于缓存由焊装车间发往涂装车间前的白车身。同时,需要按照涂装车间的需求车型进行发车。本项目采用西门子S7-1518F控制器,西门子Portal V15.1编程平台,核心数据处理算法采用SCL语言编写。

2.2 功能设计

2.2.1 白车身库区布局说明。图1为白车身库区布局图。粉红色部分是库位,里面由44台固定辊床组成,用于存储白车身。左上角黑色部分为库区出口,通过输送通道进入涂装车间。右下角黑色部分为库区入口,上一道工序从这里进入库区。中间黄色部分为两台横移机,用于将入口白车身存入库区,以及将白车身从库区里面取出从库区出口发出。在涂装车间,需要白车身按照指定的顺序进入。因此,库区除了作为白车身存储使用外,更重要的一个角色是用于调整车辆进入涂装车间的顺序。库区里面每一个辊床都有编号,1-44号。在程序中入库寻址就按照1-44号入库,出库根据涂装车间需求的车型条件进行出库。

图1 白车身库区布局图

2.2.2 项目动作说明。根据客户对项目的动作工艺要求,需实现入库、出库精准动作。入库时,当有车辆到达库区入口时,触发申请入库命令,程序开始搜寻库区数据,找到空位的辊床,然后返回结果,横移机将车辆送入到对应的辊床上。出库时,根据涂装车间需求的类型(Body Type),自动搜索库区里面的数据,找到满足类型(Body Type)的车辆,再根据车身编号(Body ID)最小的一台车,优先出库(车身编号是唯一的)[3]。

2.3 功能模块编程

为实现前文所述功能,本项目使用SCL语言进行编程,具体变量及代码设计如下://变量声明

2.4 模拟试验

2.4.1 入库动作模拟。令初始库区里存车量为空,模拟触发一次进库请求指令(InFeed_Request),通过逻辑输出结果(InFeedNumber)得到入库的库位号1。然后,模拟库区里前3个库位已经存入车辆,再执行一次进库请求指令,通过逻辑输出结果得到库位号4。入库动作模拟试验成功。

2.4.2 出库动作模拟。在库区里模拟存储6台车(A/B/C/D/E/F),将其依次存入1-6号库位。将A/B/C的车型(BodyType)定义为1300000,将D/E/F的车型定义为1300001,将它们的车身编号(BodyID)从A-F分别定义为1/3/6/7/4/9。现模拟出库一台1300001类型的车,在Req_BodyType处填入1300001,触发一次出库请求指令(OutFeed_Request),按照车身编号最小优先出库的原则,通过逻辑输出结果(OutFeedNumber)得到车身编号为5,表明出库动作模拟成功。

通过以上项目方案的设计、程序的编写,功能的模拟验证,最后实物调试,达到了客户对项目的功能需求,实现了精准出入库的目的[4]。

3 结束语

通过本项目中SCL语言编程的实际应用,我们可以更直观地看到该编程语言在汽车制造业中实现电气自动化的优势,SCL语言作为高级语言,和数学公式基本一致,可以运用许多计算机语言的思想,去解决生产中遇到的问题,这样在写程序时,大大减小程序量,完成数据的处理分析需求,同时,也让程序易懂。后续维护人员对程序进行查看和优化也较为方便,很大程度上提高了工作生产效率。SCL语言在汽车制造行业中为企业降低人力、物力成本,大大调高效率,在其他需要电气自动化控制的生产企业也同样适用,值得广泛推广应用。

猜你喜欢
编程语言出库库区
江垭库区鱼类群落组成和资源量评估
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
配方高架库空箱出库程序的优化设计与应用
河南丹江口库区滑坡危害性评价及防治对策
计算机软件开发的JAVA编程语言及其实际应用分析
软件开发中JAVA编程的应用探究
浅谈不同编程语言对计算机软件开发的影响
伊拉克库尔德地区公投在即
优化拍卖出库流程控制防范拍卖出库环节财务风险
报文数据分析法在立体库故障分析中的应用