山西省大同市西门子中国总代理-西门子选型-西门子技术支持-西门子维修服务
| 更新时间 2024-12-01 08:50:00 价格 请来电询价 联系电话 15344432716 联系手机 15386422716 联系人 杨本刚 立即询价 |
西门子结构化编程可将不同的控制任务划分为不同的控制区域,相同控制功能数量众多的设备可利用具备多重背景的FB功能块重复调用来解决,使程序简洁、清晰、合理,易读性强,更改方便,为以后系统的升级改造提供了极大的便利。SCL语言的应用,更是大大减小了程序代码的占用空间,使西门子PLC能容纳更大的程序,控制更大的系统。下面就举一实例加以说明。
01所需软件及硬件
02项目描述
1、此例主要的目的是使大家掌握编程的方法,不是控制的逻辑,因此每条皮带的控制与起保停类似。具体的控制逻辑要根据实际的需求编写;
2、实际现场一条线体往往不止5条皮带,这里为了测试监控方便只用5条,但利用SCL语言编写控制再多数量的皮带,再多的线体,代码并不会增加,只是改下数量而已,后面会有描述;
3、这个例子可使大家借一斑而窥全豹,初步认知具有多重背景FB块的使用魅力。
03程序编写
实际生产中配方的数据已经定好,打开博途V15软件,创建一个名为“SCL循环调用电机”的项目,组态一台固件版本为4.2的1215CPU,如下图1所示:
▲图1▲
2、创建自定义数据类型
将默认的SBR0子程序重命名为配方处理,创建自定义数据类型可把我们从编写大量符号表变量的工作中解脱出来,变量越多,效果越明显。在这个项目中我们创建一个名为“motordata”数据类型的变量,如下图2所示。该数据类型包含4个布尔变量,分别是皮带电机的启动、停止、故障和运行变量。
▲图2▲
3、创建全局DB块
创建全局DB块的目的是为了给五台皮带电机FB块的形参赋实参,而DB块建了个符号名为motor的数组变量,数组元素5个,每个元素的类型为“motordata”,即我们一开始自定义的数据类型,这样我们就不必在DB块里去一个个的输5台电机的变量。节省了时间,提高了效率。图中显示了电机1(Motor【0】)展开的变量,如下图3所示:
▲图3▲
4、编写电机启停程序
该程序编写相对简单,这里为了测试或仿真方便,只写了简答的类似起保停的控制逻辑,实际的控制要根据具体要求来编写。新建名为“Mrun”的块FB1,该段程序用SCL编写,如下图4所示:
▲图4▲
5、编写电机调用程序
这是该例子的核心部分,在项目中新建FB块,命名为DYMrun,程序的变量表与代码如下图5所示:
▲图5▲
创建全局DB块的目的是为了给五台皮带电机FB块的形参赋实参,在静态参数中分别建立“dymrun”和“i”两个变量,“dymrun”为数组变量,用FB1作为数组元素的数据类型,对应5台电机;“i”为循环调用指针,整数类型,分别指向不同的皮带电机。如程序所示,i为0到4,如果电机数量更多,比如12台,那么把4改为11即可。代码很简单,就是一个FOR循环语句,重要的是把全局DB块DB1的数组变量正确赋值到FB1(Mrun)各形参管脚。要理解上述程序需要掌握UDT、SCL、数组、结构化编程等等知识点。
联系方式
- 电 话:15344432716
- 销售顾问:杨本刚
- 手 机:15386422716
- 微 信:AK66F7