线下实训
HOME
线下实训
正文内容
plc调度编程 西门子SCL编程实例——电机运行调度
发布时间 : 2025-07-04
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子SCL编程实例——电机运行调度

前面的文章我们介绍了带运行计时的电机控制函数块,今天这篇文章,我们来介绍下如何实现多个电机自动调度(超时自动关闭并调度下一台电机)。

注:本文默认电机连接是使用断路器、接触器实现的直接启动电路,对于变频器类的控制需要做一些配置才能使用。

控制要求如下:

可设置每个电机的额定运行时间,当电机的实际运行时间大于额定运行时间时,则自动关闭并调度下一台可用电机;当电机出现故障(比如断路器跳闸或超时无反馈),则电机状态变为不可用。不可用电机不参加调度;当故障消除并复位后,电机状态重新变为可用,可重新参加调度;

具体如下:

打开博途开发环境,新建项目,添加用户自定义数据类型:typeMotorSchedule,如下图所示:

其中:

Command:包括启动(start)和停止(stop),用来启动或停止电机;Para:电机控制参数,包括反馈时间和额定运行时间,单位,秒;ExtraSignal:外部信号,包括断路器和接触器反馈;State:状态,包括:输出位(Q)、错误位(error)、释放(release,表示电机是否可用)、选中(selected,表示电机是否被选中)、状态(status,电机状态,非0等于出错)、实际运行时间(actualRunningTime,单位,秒);

添加函数块,命名为:FB5017_MotorScheduler,声明变量如下图所示:

函数块代码比较长,我将其分成多个区域:

功能说明;初始化(initialize);复位(reset);调度(sheduler);

具体如下:

功能说明:

初始化:

复位:

调度:

使用该函数块时需要先初始化,然后使能。当出现错误时,要进行复位。

可以在全局数据块中创建电机数组(typeMotorSchedule),然后将断路器、接触器的信号写入电机数组的ExtraSignal中,并将电机状态State.Q输出到硬件的输出通道中。

我创建了测试函数块及全局数据块对电机调度程序进行了测试,包括断路器的错误测试,结果是OK的。

如果你有任何问题,欢迎留言。

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以扫描下面的二维码查看:

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 西门子S7-1200/1500 PLC SCL语言编程从入门到精通 ¥69 购买

PROFINET基础知识介绍,实例讲解西门子PLC通讯控制机器人!

工业以太网一般使用IEEE 802.3中定义的以太网标准。针对自动化系统的网络节点辅助采用了服务质量( QOS)机制。PROFINET作为工业以太网之一,它采用了三种不同的方法来实现。这样既满足了普通以太网的需求,又满足了工业系统对不同应用的实时性的要求。如下图1所示。

图1、PROFINET使用到的三种协议栈

① 使用了IEEE 802.3以太网标准和TCP/IP,报文结构如图2所示。大多数的PROFINET通信是通过没有被修改的以太网和TCP/IP包来完成。这使得可以无限制地把办公网络的应用集成到PROFINET网络中。

图2、TCP/IP报文结构

② RT的通信不仅使用了带有优先级的以太网报文帧(如下图3所示),而且优化掉了OSI协议栈的3层和4层。这样大大缩短了实时报文在协议栈的处理时间,进一步提高了实时性能。由于没有TCP/IP的协议栈,所以RT的报文不能路由。

图3、PROFINET RT报文结构

③ IRT通信是满足最高的实时要求,特别是针对于等时同步的应用。IRT是基于以太网的扩展协议栈,能够同步所有的通信伙伴并使用调度机制。IRT通信需要在IRT应用的网络区域内使用IRT交换机。在IRT域内也可以并行传输TCP/IP协议包,如图4所示。

图4、PN控制器和PN设备的分片处理机制

以PROFINET RT为例来理解在整个通信的过程中实时性能是如何来保证的。

从通信的终端设备(PN控制器和PN设备)来看,首先采用了优化的协议栈,这一点可以在图1的 ②看到。这样一来在终端的设备上数据报文被处理的时间大大的缩短,这是实时性能保证的一个方面。其次是终端设备上采用的分时间段处理机制,这一点可以在图5看到。这样保证了在每个通信的循环的周期内终端设备即可以处理RT的实时数据又可以处理TCP或UDP的数据。且在每个循环内优先处理RT的实时数据。这里需要强调的是每个PN终端设备只对自己的负责,需要发送的数据会按发送循环发送、对于由其他设备发到自己的数据会进行立即接收,且发送和接收是并行处理。

图5、RT的时间调度机制

从通信的传输设备(SCALANCE X交换机)来看,首先采用百兆全双工的交换网络,这样一来每个终端设备的每个端口都是独享带宽,且可以双向不间断的收发数据。其次是交换机支持802.1P或802.1Q的标准,使得发到交换机网络的PN的数据帧被优先处理和转发,如图6所示。这一点保证了PN在网络上的快速转发,也是实时性能保证的另一个方面。

图6、交换机802.1Q的工作机制

上面介绍的是PN RT的实时性能从机理上如何保证的。而从量化的角度去分析的话,PN RT完全是靠计算来精确保证每个发送循环所能发送的报文及对RT数据的时间的预留。

对于RT来说,在物理层上传输的最小报文帧来为88个字节,最大报文帧来为1488个字节。其中包括了12个字节的帧间隔,如下图7所示。

图7、RT的报文的长度

百以太网的传输速率 :

每个字节传输需要的时间:

最小的RT报文帧需要的传输时间 0.08

一个PN控制下带3个最小报文帧(40个字节的C_SDU)的PN设备,PN 控制器的发送循环为250 ,通信建立后在PN接口上抓报分析PN的通信可以分析出PN数据帧对时间调度的情况,如下图8所示。

图8、PN RT的时间调度机制

除了对PROFINET RT和IRT的通信调度的分析外,还对PROFINET的抗干扰性作了大量的研究。在对PROFINET推广的时候,很多用户很关心PROFINET是不是和PRROFIBUS一样,存在抗干扰的性能差的特点。我从理论和实际实验上验证了PROFINET的抗干扰性能优于PROFIBUS的抗干扰性能。PROFINET是基于IEEE 802.3的以太网标准。所以对PROFINET的抗干扰分析实质上是对工业以太网的抗干扰分析。

好吧!理论说完了,我们实例讲解一下吧!

今天带来的案例是博途PLC通过PROFINET连接库卡机器人!

网线连接至控制柜门上的KLI端口,另一端连接到交换机,PLC也连接到交换机(交换机无型号要求),交换机再连接到电脑。

首先将编程电脑、PLC、KUKA设置成统一网段,因KUKA的底层设置原因,最好不更改机器人IP地址

1:添加新设备 2:导入GSD文件

安装GSD,并把KUKA设备进行组态

在视图里面进行连接

删除安全模块、设置地址、设备名称

设置好以上后(包括PLC地址),接下来就可以编译下载到PLC。下载完成后PLC会报红灯,是因为下一级组件存在故障,即还没有设置机器人端,连接不到下一级组件,所以报错。也可以使用此方法判断是否连接成功。

WorkVisual对KUKA进行设置

激活、添加Profinet、DTM选择Profinet

双击Profinet进行设置

进行信号映射

首先生成代码,再下载到控制器,注意在控制器上做好确认工作

机器人侧的信号确认:

机器人侧即为映射时的IN(..),PLC侧则是在博图里对KUKA设备设置时的IO地址

相关问答

PLC主站从站什么意思?

是指在工业自动化控制系统中,PLC(可编程逻辑控制器)的通讯方式。其中,PLC主站是指负责控制、监视和调度PLC从站的设备,通常由计算机、上位机、控制器等设备...

plc的自检过程怎么完成的?

PLC控制系统在启动、运行过程中如何自检1、自控系统初始状态在一般的工业生产过程中,系统内每台设备开始时均处于初始状态。初始状态包括:供设备用电的电...

plc交通信号灯结构与功能?

PLC交通信号灯结构包括信号灯主控制器、信号灯控制器、信号灯灯头、信号灯电源等。PLC交通信号灯的功能主要包括:1.交通指示:根据不同的交通流量和行进方向...

PLC干嘛的?

PLC即可编程逻辑控制器,是一种用于工业自动化控制系统的重要设备。它主要用于监控和控制生产线、机械设备、工业过程等工业应用。PLC可以根据预设的程序和逻...

DDC和PLC有什么区别?

1.结构差别:DDC是一种“分散式控制系统”,组成的系统是分层的结构,可以实现点对点的通讯,而PLC只是一种控制“装置”,常用于生产线上某个部位的控制,组成的...

学机电一体化的对口工作岗位有哪些?

**机电设备管理**:在各类机电设备企业从事设备使用管理、维护维修、设备采购与物流管理等工作。4.**机械加工**:可以在机械制造企业从事零件加工工艺设计...

DCS比PLC的优势有哪些?

DCS和PLC是当前自动化控制领域的两大系统,是两种互不相同的系统,又紧密联系且互为主辅。在自动化控制装置中已被广泛应用,如石油、化工、冶金、电力等行业。它...

自动控制原理面试常问的问题?

1、什么是工业自动化?可以看到大部分行业都使用自动化,它用于减少人力。许多制造业已经用自动化取代了人力,如今可以看到自动化机器、自动化监控系统。所以大...

wcs系统是什么?

通常,自动化仓储物流系统软件由两部分组成:仓库管理系统(WMS)、仓库设备控制系统(WCS)。自动仓储系统大致可分为三个层次,最上层是WMS,负责仓储业务逻辑的处...

LCU是什么意?

而按照LCU本身的结构和配置来分,则可以分为(1)单机—线型结构的LCU。(2)可编程控制器(PLC)。(3)基础的LCU。智能现地控制器等三种...隔行扫描就是每...

 五洲御锦城  冬至的简介 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部