首页 > 编程语言 >Siemens 西门子SCL语言编程实例——循环调用电机

Siemens 西门子SCL语言编程实例——循环调用电机

时间:2023-08-07 14:25:10浏览次数:45  
标签:SCL 变量 电机 编程 皮带 Siemens 所示 编写

导读

  西门子结构化编程可将不同的控制任务划分为不同的控制区域,相同控制功能数量众多的设备可利用具备多重背景的FB功能块重复调用来解决,使程序简洁、清晰、合理,易读性强,更改方便,为以后系统的升级改造提供了极大的便利。SCL语言的应用,更是大大减小了程序代码的占用空间,使西门子PLC能容纳更大的程序,控制更大的系统。下面就举一实例加以说明。

01所需软件及硬件

  博途V15编程软件及仿真软件、西门子1215CPU一台、网线一条。

  *注:如无PLC实物,可用仿真软件做测试*

02项目描述

  顺丰、京东、邮政等大型物流企业的中转场的输送分拣系统大都是由数量众多、结构各异的皮带机再加上数台高效分拣机组成。因输送分拣的路向繁多,皮带机往往分为不同的线体,每条线体包含若干条皮带以应对不同的路向或最终汇集到分拣机以满足其大处理量的要求,因此皮带机的自动控制是中转场控制系统极其重要的一环。下面的例子以控制一条线体为例加以说明。

  该实例为利用SCL语言编写的控制程序,控制一条线体当中的5条皮带启停。说明:

1、此例主要的目的是使大家掌握编程的方法,不是控制的逻辑,因此每条皮带的控制与起保停类似。具体的控制逻辑要根据实际的需求编写;

2、实际现场一条线体往往不止5条皮带,这里为了测试监控方便只用5条,但利用SCL语言编写控制再多数量的皮带,再多的线体,代码并不会增加,只是改下数量而已,后面会有描述;

3、这个例子可使大家借一斑而窥全豹,初步认知具有多重背景FB块的使用魅力。

03程序编写

1、创建新项目

实际生产中配方的数据已经定好,打开博途V15软件,创建一个名为“SCL循环调用电机”的项目,组态一台固件版本为4.2的1215CPU,如下图1所示:

2、创建自定义数据类型

  将默认的SBR0子程序重命名为配方处理,创建自定义数据类型可把我们从编写大量符号表变量的工作中解脱出来,变量越多,效果越明显。在这个项目中我们创建一个名为“motordata”数据类型的变量,如下图2所示。该数据类型包含4个布尔变量,分别是皮带电机的启动、停止、故障和运行变量。

3、创建全局DB块

  创建全局DB块的目的是为了给五台皮带电机FB块的形参赋实参,而DB块建了个符号名为motor的数组变量,数组元素5个,每个元素的类型为“motordata”,即我们一开始自定义的数据类型,这样我们就不必在DB块里去一个个的输5台电机的变量。节省了时间,提高了效率。图中显示了电机1(Motor【0】)展开的变量,如下图3所示:

4、编写电机启停程序

  该程序编写相对简单,这里为了测试或仿真方便,只写了简答的类似起保停的控制逻辑,实际的控制要根据具体要求来编写。新建名为“Mrun”的块FB1,该段程序用SCL编写,如下图4所示:

5、编写电机调用程序

  这是该例子的核心部分,在项目中新建FB块,命名为DYMrun,程序的变量表与代码如下图5所示:

  创建全局DB块的目的是为了给五台皮带电机FB块的形参赋实参,在静态参数中分别建立“dymrun”和“i”两个变量,“dymrun”为数组变量,用FB1作为数组元素的数据类型,对应5台电机;“i”为循环调用指针,整数类型,分别指向不同的皮带电机。如程序所示,i为0到4,如果电机数量更多,比如12台,那么把4改为11即可。代码很简单,就是一个FOR循环语句,重要的是把全局DB块DB1的数组变量正确赋值到FB1(Mrun)各形参管脚。要理解上述程序需要掌握UDT、SCL、数组、结构化编程等等知识点。

04测试效果

在主程序中调用FB2,为照顾没有实体PLC的学员,我们用仿真进行演示。新建一个监控表,监控表输入了Motor0和Motor2两个电机的变量。主程序及测试的结果如下图6所示:

  图7中Motor0的启动信号为true,其运行信号也为true,证明程序导通,如两个红框内容所示,Motor2也是一样,如两个蓝色框内容所示;图8为复位启动信号后,Motor0和Motor2因已自锁仍继续运行;图9为Motor0按下停止信号,其运行也停止,而Motor2因为发生故障使电机停止运行。其余的几台请有兴趣的学员自行测试。

  总结:SCL语言类似高级语言,因其代码简单易用,占存储空间少以及强大的数据处理能力,成为未来编程语言的首选,想成为编程高手一定要熟练掌握。本案例抛砖引玉,希望能对大家学习SCL有所帮助。

标签:SCL,变量,电机,编程,皮带,Siemens,所示,编写
From: https://www.cnblogs.com/ybqjymy/p/17611302.html

相关文章

  • Siemens 西门子S7-200SMART两台PLC之间的MODBUS主从站通信
    通过MODBUS通信的方式实现两台PLC的主从站通信:主站的PLC的I0.0~I0.7控制从站PLC的Q0.0~Q0.7从站的I0.0~I0.7控制主站的Q0.0~Q0.7读取从站AIW16所采集到的数值读到主站的VW100中把主站的MW10~MW16的数据写给从站的VW100~VW106中。主站程序参考如下 从站程序如果只有一......
  • Siemens 如何用脚本将WinCC7.5写数据到Excel中?
    01要完成的功能任务在Wincc界面中使用按钮,添加脚本将需要写入的数据写入到excel表格中;02软件Wincc7.5、office2016;03实现方法1.Wincc新建工程,然后打开画面添加按钮对象以及TAG2、TAG3两个内部变量的IO域(图1所示) 2.在按钮中组态以下VBS脚本,如图2所示: 3.更改脚本中Excel......
  • Siemens Win10系统电脑的博途软件WIFI连接PLC详细教程
    一、硬件连接电脑与无线路由器通过WIFI连接,PLC与无线路由器通过网线连接,如图1所示。注意:!PLC需要上电,网线插上有数据交换时,PLC网线插口上面的LINK指示灯会常亮,RX/TX指示灯以一定的频率闪烁,这代表硬件连接成功。电脑也可以使用PING指令去PINGPLC的IP地址,如果没有丢数据为连接正......
  • Mitsubishi 三菱FXPLC入门之常用基本编程环节
    学习PLC,主要学习的就是它的编程,一说到编程我就头皮发麻,总觉得我学了编程后离脱发、秃头也就不远了。在学习PLC之前,我以为编程都是打代码,后来才发现,PLC的编程基本是梯形图,这让我大松一口气,好歹不用面对那些一串一串的英文字符,谢天谢地。犹记得高中的语文考试,阅读理解、诗......
  • 计算机算法与程序设计(python) 第一章 编程作业
    计算机算法与程序设计(python)第一章 编程作业查看帮助返回所有测验,作业和考试都在2020年12月30日23点截止,请及时完成。编程作业题可以多次提交,取最高分作为本题成绩。 依照学术诚信条款,我保证此作业是本人独立完成的。温馨提示:1.本次作业属于OnlineJudge题目,提交后由系统即时判......
  • 面向切面编程
    本文,我们来谈谈面向切面编程。什么是面向切面编程面向切面编程(AspectOrientedProgram,简称AOP)是一种编程范式,用于解藕系统中的横切关注点。这很抽象。我们换种理解~面向切面编程把业务功能分为核心、非核心两部分。比如:核心业务功能:用户登陆、增加数据、删除数据非核心业务功能:......
  • C++核心编程——引用
    引用1引用的基本使用作用:给变量起别名语法:数据类型&别名=原名示例:intmain(){ inta=10; int&b=a; cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; b=100; cout<<"a="&......
  • 4 Linux网络编程
    4Linux网络编程4.1网络结构模式C/S结构:服务器/客户机,即Client-Server(C/S)结构。B/S结构:浏览器/服务器,即Browser/Server(B/S)结构4.2MAC地址、IP地址和端口4.2.1MAC地址MAC地址(MediaAccessControlAddress),在OSI模型中,第三层网络层负责IP地址,第二层数据链路层......
  • 《Java编程思想第四版》学习笔记05
    6.9.1继承初始化我们有必要对整个初始化过程有所认识,其中包括继承,对这个过程中发生的事情有一个整体性的概念。请观察下述代码://:Beetle.java//Thefullprocessofinitialization.classInsect{inti=9;intj;Insect(){prt("i="+i+",j="+j);j=39;......
  • 【JAVA】探索泛型与数据结构:解锁高效编程
    引言在当今信息爆炸的时代,数据结构和算法成为了程序员必备的核心技能。而泛型作为Java语言中的一项强大特性,为数据结构和算法的实现提供了更高效、更安全的方式。本文将深入探讨泛型的概念、使用场景以及结合数据结构的应用,为您打开高效编程之道。第一部分:了解泛型1.1为什么使......