simotiond435实例.docx

上传人:b****5 文档编号:29537445 上传时间:2023-07-24 格式:DOCX 页数:45 大小:1.82MB
下载 相关 举报
simotiond435实例.docx_第1页
第1页 / 共45页
simotiond435实例.docx_第2页
第2页 / 共45页
simotiond435实例.docx_第3页
第3页 / 共45页
simotiond435实例.docx_第4页
第4页 / 共45页
simotiond435实例.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

simotiond435实例.docx

《simotiond435实例.docx》由会员分享,可在线阅读,更多相关《simotiond435实例.docx(45页珍藏版)》请在冰豆网上搜索。

simotiond435实例.docx

simotiond435实例

SIMOTION项目实战—D435Beginner

1概述

       本文档通过一个实际项目来介绍SIMOTION项目组态、配置和编程的过程。

在SIMOTIONSCOUT软件的安装包里提供了一个供初学者学习的项目“D435_BEGINNER”,该项目位于软件光盘路径...\Utilities_Applications\src\Examples\ExampleForBeginners文件夹内,该项目提供了完整的项目文件和介绍文档,该项目可以在SIMOTIOND435演示设备上模拟运行。

图1项目实战图示

       该项目要实现的功能是将生产线上的空盒子吹出生产线,其工作过程如下:

按下起动按钮后,盒子在传送带上从上游运输到下游,如果在运输途中被检测出是空的,那么载有喷嘴的吹出器会跟随空盒子运动,建立同步以后在指定的位置打开喷嘴将空盒子吹出传送带,然后吹出器重新返回等待位置。

在运行过程中,如果安全门被打开,那么生产线立即停止,在安全门关上以后,又自动恢复运行。

复位起动按钮后,生产线停止。

该项目中使用的运动控制功能有:

•齿轮同步Gearing

•凸轮同步Camming

•快速点输出OutputCam

2项目中使用的硬件和软件

项目中使用的硬件

       项目使用的硬件基于SIMOTIOND435(可以转换到其他SIMOTION硬件),具体的产品如下表所示。

编号

名称

数量

订货号/备注

1

SIMOTIOND435

1

6AU1435-0AA00-0AA1

2

CF卡

1

6AU1400-2PA01-0AA0

3

SIMOTION多轴授权包

1

6AU1820-0AA43-0AB0

4

端子板TB30

1

6SL3055-0AA00-2TA0

5

智能型电源模块SLM5KW

1

6SL3130-6AE15-0AB0

6

双轴电机模块DMM2×

1

6SL3120-2TE13-0AA3

7

传送带电机

1

1FK7022-5AK71-0LG0

8

吹出器电机

1

1FK7022-5AK71-0AG0

9

起动按钮

1

数字量输入,常开点

10

安全门

1

数字量输入,常闭点

11

空盒子传感器

1

数字量输入,常开点

12

吹出器喷嘴阀门

1

数字量输出

13

连接电缆

若干

动力电缆、信号电缆等

表1本项目所使用的硬件列表

 

项目中使用的软件

编号

名称

版本

1

WindowsXP

SP3,Professional

2

STEP7

SP2HF1

3

SIMOTIONSCOUT

SP1HF3

4

WinCCFlexible

2008SP2Upd12

5

SIMOTIOND435Firmware

,withSINAMICS

表2本项目所使用的软件列表

3项目配置

        SIMOTIONSCOUT项目的基本配置步骤如下:

1.配置驱动器

2.配置工艺对象TO

3.编写程序并分配执行系统

4.连接HMI设备

配置驱动器

       本项目中有两台电机,由双轴电机模块驱动,可以参考下载中心应用文档编号A0309(视频教程)来完成驱动器配置文档名称《SIMOTIOND435调试入门》,其下载网址如下:

创建虚主轴MasterAxis,步骤如下。

AXES,双击insertaxis可以插入一个轴。

在弹出的窗口中配置轴的名称为MasterAxis,工艺为Positioning(即为位置轴)。

       在离线情况下,在SCOUT软件中依次打开D435

图4插入轴

点击OK进入下一步,选择轴的类型为旋转轴Rotary、虚轴Virtual,单位采用默认值。

图5选择轴类型

点击Next进入最后一步,这里可以看到所有配置的摘要信息,点击Finish结束配置。

图6轴配置完成

       2.创建实轴Conveyorbelt,步骤如下。

AXES,双击insertaxis可以插入一个轴。

在弹出的窗口中配置轴的名称为Conveyorbelt,工艺为Synchronousoperation(即为跟随轴)。

       在离线情况下,在SCOUT软件中依次打开D435

图7插入同步轴

点击OK进入下一步,选择轴的类型为旋转轴Rotary,电气轴Electrical,模式为标准轴Standard,单位采用默认单位。

图8选择轴类型

点击Next进入下一步,选择需要连接的驱动为SINAMICS_Integrated中的conveyor。

图9选择轴的驱动

点击Next进入下一步,编码器的数据会自动识别出来,默认选择使用的编码器为驱动器的Encoder_1,该编码器为绝对值编码器。

图10选择轴的编码器

点击Next进入最后一步,这里可以看到所有配置的摘要信息,点击Finish结束配置。

图11结束轴配置

打开ConveyorBelt轴得机械配置部分进行模态轴的组态:

图12组态轴参数

设置该轴为模态轴:

图13配置模态轴

        3.创建实轴Ejector,注意修改轴的类型为直线轴,回零方式修改为编码器零脉冲(Encoderzeromarkonly),Conveyorbelt使用的是绝对值编码器,所以无需设定回零模式。

图14配置Ejector轴的回零

步骤与Conveyorbelt基本相同,这里不再赘述。

保存并且编译下载后,可以使用控制面板对实轴进行测试。

齿轮同步TO的配置

       在轴TO配置完成以后,需要配置跟随轴Conveyorbelt与主轴MasterAxis的互联,在SCOUT软件中,依次打开D435 AXESConveyorbeltConveyorbelt_SYNCHRONOUS_OPERATION(Conveyorbelt_GLEICHLAUF),双击其中的Interconnections,在右侧窗口选择使用虚主轴MasterAxis的设定值Setpoint。

图15同步配置

 

凸轮TO的配置

       在配置Ejector轴与Conveyorbelt轴之间的凸轮同步操作之前,需要先定义凸轮曲线。

根据工艺要求,如果检测到有空盒子,那么Ejector轴开始跟随传送带移动,在1mm处建立同步以后,喷嘴打开吹出吹盒子,然后在4mm处关闭喷嘴,同时Ejector轴开始返回初始位置。

这个操作过程中,Ejector轴与Conveyorbelt轴的位置关系可以用下面的曲线(横纵坐标显示为位置)来描述。

图16凸轮曲线

•第1段:

建立同步过程中

•第2段:

已建立同步

•第3段:

返回初始位置

        可以使用凸轮绘制工具CamTool来绘制这条曲线,CamTool软件需要预先安装好。

在SCOUT软件中,依次打开D435CAMS,双击InsertcamwithCamTool即可打开编辑器,输入CAM曲线的名称为CAM_Ejector。

如果没有安装CamTool软件,也可以通过描点法插入这条CAM曲线,本文档以CamTool为例进行说明。

图17创建CAM曲线

       在编辑窗口插入两个插补点和一个线段。

点击工具栏上的插补点工具,在起点和终点附近插入两个插补点,使用直线工具在两个插补点之间插入一条直线。

图18创建CAM曲线

       在画出雏形以后,使用工具栏上的箭头工具,设定插入的各个对象的参数。

双击第一个插补点,在弹出的属性窗口中指定其参数为x=0,y=0。

同理可以设定直线段和第二个插补点的参数,如下图所示。

图19设定插入各个对象的参数

 

        在参数修改完成以后,曲线如图20所示:

图20完成后的CAM曲线

       最后指定坐标的范围,在工作区的右键菜单中选择TargetDeviceParameters,在Scaling选项卡中设置主轴范围为360,从轴范围为10,如下图所示。

这样,就将Ejector轴与Conveyorbelt轴的位置对应了起来,在Conveyor轴到36º()时,Ejector轴到达1mm()位置,此时即已建立同步,同理在4mm()位置处开始解除同步,并返回初始位置。

图21指定坐标的范围

凸轮同步TO的配置

       在凸轮曲线配置完成以后,可以配置轴Ejector与Conveyorbelt的互联,在SCOUT软件中依次打开D435AXESEjectorEjector_SYNCHRONOUS_OPERATION(Ejector_GLEICHLAUF),双击其中的Interconnections,在右侧窗口选择使用Conveyorbelt轴的设定值,并选择互联的CAM曲线为Cam_Ejector。

图22配置轴的CAM互联

快速点输出TO的配置

       OUTPUTCAM是SIMOTION中用于快速点输出的TO。

本项目中吹出器喷嘴的控制可以使用OUTPUTCAM功能实现,喷嘴的通断由Ejector轴的位置决定,所以需要为Ejector轴配置一个OUTPUTCAMTO。

该TO通过SIMOTIOND435集成的CU320上的DO点输出。

Control_Unit,双击其中的Inputs/outputs,在右侧窗口中Bidirectionaldigitalinputs/outputs选项卡下,设置为输出点,如下图所示。

SINAMICS_Integrated       本项目中使用DI/DO8作为该OUTPUTCAM的输出通道,所以首先要将该通道配置为数字量输出。

在SCOUT软件中,依次打开D435

图23设置为输出点

          然后插入快速点输出TO。

在SCOUT软件中,依次打开D435AXESEjectorOUTPUTCAM,双击其中的Insertoutputcam,创建一个名称为Valve的OUTPUTCAMTO。

图24插入快速点输出TO

        然后配置该TO的通过SINAMICS_Integrated中的DO8输出。

在SCOUT软件中,依次打开D435EjectorAXESOUTPUTCAMValve,双击其中的Configuration,在右侧窗口中,选择激活输出

,选择Fastdigitaloutput(DO)(D4xx,C240),然后点击Output中的

按钮,可以浏览到SINAMICS_Integrated中配置的DO8。

图25配置TO

 

        在OUTPUTCAMTO配置完毕以后,如下图所示。

图26TO配置完毕

        这样,本项目中所使用的TO就都配置完成了,此时的项目导航栏如下图所示。

图27本项目TO配置完毕

编写程序并分配执行系统

        SIMOTION提供的编程环境方便而灵活,可以使用不同的编程语言实现相同的功能,这完全取决于个人的编程习惯。

SIMOTION程序的执行系统清晰而全面,不管是周期性执行,还是单次执行,不管是时间触发,还是事件触发,都可以按照优先级高低顺序进行程序的分配。

通过程序在执行系统中的合理分配,可以方便的实现各种运动控制功能,SIMOTION的执行系统的示意图如下图所示。

图28SIMOTION的执行系统示意图

 

图29项目功能分解

       在使用SIMOTION创建项目时,首先需要对程序结构进行规划,根据工艺要求,将所需的功能分解,编写成多个独立的程序,再将程序分门别类地分配到执行系统当中。

在本项目中,根据工艺的要求,可以将程序分成几部分,再将程序分配到相应的执行系统中,如图29所示。

PROGRAMS即可插入程序。

SIMOTION设备支持的程序语言有ST、MCC、LAD/FBD、DCC等,这些编程语言各有特点,其中使用MCC语言可以方便地编写运动控制程序,使用LAD/FBD语言可以方便地实现逻辑控制功能,使用DCC可以方便地实现工艺控制功能,使用ST语言可以方便地实现复杂的运动、逻辑和工艺控制功能。

在SCOUT软件中,依次打开D435

图30插入程序

       本项目中使用了ST、MCC和LAD/FBD三种编程语言。

在使用MCC和LAD/FBD时,需要先插入程序单元(Unit),再在单元中插入程序(Program)。

本项目中,使用ST编写了pInit()和pHMIout()程序,使用MCC编写了pAuto(),pEject(),pHoming(),pProtDoor(),pTecFault()程序,使用LAD/FBD编写了pLADFBD(),pPLCopenProg()程序,如图31所示。

图31项目中的程序

ExecutionSystem即可以打开分配执行系统的画面,分配结果详见本文档节。

然后在线连接设备,编译并下载项目后,系统就可以正常运行了。

       在程序编写并编译完成以后,再分门别类地分配到执行系统中。

在SCOUT软件中,依次打开D435

与SIMATICPLC的程序不同的是,SIMOTION中没有数据块DB的概念,所有程序都对变量进行操作,所在在缩写SIMOTION程序时,需要按照以下步骤进行:

1.声明变量

2.编写程序

3.分配执行系统

声明变量

        在编写程序之前,需要声明变量。

SIMOTION设备中的变量分为系统变量、全局变量和局部变量。

其中系统变量在TO创建完成后,就已经由系统自动生成,比如轴TO的运行状态等。

全局变量包括IO变量、设备全局变量和程序单元变量三类,其中IO变量可以通过SCOUT软件中的ADDRESSLIST来创建,设备全局变量可以通过GLOBALDEVICEVARIABLES来创建(本项目中没有使用),而程序单元变量需要在程序单元中创建,可以在程序单元内使用。

一个程序单元中的全局变量通过互联,也可以用于其他程序单元。

局部变量在单个程序中创建,只可以在本程序中使用。

图32变量说明

创建IO变量

       在SCOUT软件中,双击D435下的ADDRESSLIST,即可在软件下半窗口中配置全局的IO变量。

在Name列输入变量名称,在I/Oaddress一列指定输入输出类型以后,就可以直接在Assignment列点击按钮浏览到系统中的IO变量。

本项目中的IO变量配置如下图所示。

其中iboEject为空盒子传感器的DI信号,iboProtDoor为安全门的DI信号,iboStartBelt为生产线起动的DI信号。

图33创建IO变量

创建程序单元变量和局部变量

        根据编程语言的不同,程序单元变量的创建方式也不同。

        

(1)在ST语言中的声明变量

        使用ST语言时,可以在INTERFACE段声明全局变量,其格式如下:

变量名:

数据类型(:

=初始值);

        比如pDefInit程序单元中一个名称为gboProgEnd的布尔型变量,需要按以下格式声明:

INTERFACE

            VAR_GLOBAL

            gboProgEnd:

BOOL:

=FALSE;

            END_VAR

END_INTERFACE

        这里声明的全局变量只能在本程序单元中使用。

如果需要在其他程序单元中访问这些变量,那么需要在其他程序的INTERFACE段内添加USES语句,比如在pHMIout程序单元中就有这样的语句,其格式如下:

INTERFACE

              USESpDefInit;

END_INTERFACE

       另外,在程序中IMPLEMENTATION段也可以声明全局变量,这里声明的变量只能在本程序单元中使用,无法被其他程序单元访问,在本项目中并没有在IMPLEMENTATION段中声明全局变量。

局部变量在程序内部的PROGRAM段内声明,仅供本程序使用,无法被其他程序或程序单元访问,其声明格式与全局变量相同。

本项目中也没有在PROGRAM段声明局部变量。

        

(2)在MCC程序单元中声明变量

PROGRAM,双击其中的InsertMCCUnit即可插入一个程序单元,此时在右侧的窗口中可以定义本程序单元的全局变量。

        在SCOUT软件中,依次打开D435

        MCC程序单元中的全局变量在数据表格中声明,变量声明的位置与ST语言是一致的。

如果是全局变量,并希望被其他程序单元访问,那么变量在INTERFACE段声明,如果不希望被其他程序单元访问,那么变量在IMPLEMENTATION段声明。

比如在pProtDoor程序单元中定义了下面的全局变量。

图34MCC程序单元中声明变量

        如果要访问其他程序单元的变量,只需要在INTERFACE段的Connection选项卡下进行连接即可,这与ST语言中使用USES语句的功能相同,比如在pAuto程序单元中要引用在ST程序pDefInit中定义的全局变量,那么可按下图所示的方法进行访问。

图35连接需访问变量的程序单元

       在每个程序单元里都有一个插入程序的选项,比如pAuto程序单元中双击InsertMCCChart即可以在右侧窗口中打开程序的主编辑界面。

在顶部的表格里,可以声明本程序的局部变量,比如在图中

选项卡下,将变量名称、数据类型和初始值填入表格即可,本项目中没有定义局部变量。

图36本项目无局部变量

(3)在LAD/FBD程序单元中声明变量

       LAD/FBD程序单元中声明变量的操作与MCC类似,这里不再赘述。

另外,在LAD/FBD程序编辑窗口中也可以直接声明不存在的变量。

比如在pLADFBD()程序中,将局部变量boResult修改为boResult1,此时系统会自动弹出一个变量boResult1的声明窗口,在这里可选择数据类型和变量类型等。

这种声明变量的方式非常方便。

图37在LAD/FBD程序单元中声明变量

编写程序

       项目程序需要根据实际工艺编写,本项目中将工艺分解为回零、传送带运行、吹出器动作、安全门控制、错误处理等部分,分别编程进行处理,最后通过程序在执行系统中的分配,达到各程序协调工作的目的。

由于相同的功能,可以使用不同的编程语言实现,所以编程方式十分自由。

本项目中使用ST语言编写了数据初始化pDefInit和与HMI的数据交换pHMIout两段程序,使用MCC语言编写了与运动控制相关的程序,使用LAD/FBD编写了周期性执行的逻辑控制程序。

使用ST语言编写程序

PROGRAMS,双击其中的InsertSTsourcefile即可插入一段ST程序,在右侧窗口会自动打开ST程序编程器。

使用ST语言编写的程序需要放在IMPLEMENTATION段中,以PROGRAM关键字开头,以END_PROGRAM关键字结尾。

程序编写完成后,还需要在INTERFACE段进行声明。

比如pDefInit()程序的ST程序如下。

       在SCOUT软件中,依次打开D435

INTERFACE

VAR_GLOBAL                

.

•TS_SUSPENDED

任务通过功能_suspendTask()被暂停

•TS_WAIT_NEXT_CYCLE

TimerInterruptTask正在等待其触发信号

•TS_WAIT_NEXT_INTERRUPT

SystemInterruptTask正在等待触发报警,或者

UserInterruptTask正在等待触发事件

•TS_LOCKED

任务通过功能_disableScheduler()被锁定。

通过系统功能_getStateOfTaskId可以读取指定任务的当前状态,该功能可以在命令库中找到,如图48所示:

图48命令库

该功能的返回值为DWORD,返回值指示下列状态:

16#0000:

指定的任务不存在(TASK_STATE_INVALID)

16#0001:

从RUN变换到STOP(TASK_STATE_STOP_PENDING)

16#0002:

任务被停止(TASK_STATE_STOPPED)

16#0004:

任务正在运行(TASK_STATE_RUNNING)

16#0010:

任务正在等待(TASK_STATE_WAITING)

16#0020:

任务被暂停(TASK_STATE_SUSPENDED)

16#0040:

定时中断任务等待下一个周期(TASK_STATE_WAIT_NEXT_CYCLE)

16#0080:

用户中断任务或者系统中断任务等待下一个事件(TASK_STATE_WAIT_NEXT_INTERRUPT)

16#0100任务被_disablescheduler禁止(TASK_STATE_LOCKED)

       本程序中,判断当前任务的状态,如果任务处于被停止(16#0002)或暂停(16#0020)状态,那么就使用系统功能_RestartTaskId()重新起动任务。

在完成本段程序编写后,程序如下:

图49任务控制编程

       在编写完成后,点击工具栏上的按钮完成编译,在SCOUT软件底部Compile/checkoutput信息栏可以查看编译状态。

图50编译无误

同理完成其他LAD程序的编写和编译。

分配执行系统

ExecutionSystem即可打开执行系统的配置画面。

在右侧窗口中为不同的任务添加程序即可,配置完成后,重新编译项目。

可以参考下载中心应用文档编号A0471来获得更多与执行系统相关的信息。

文档名称《SIMOTION的任务执行机制及系统时钟》,下载网址:

       在所有程序编写并编译完成后,再分配执行系统。

在SCOUT软件中,双击D435

图51分配执行系统

连接HMI设备

HMI(人机界面)可以通过PROFIBUS、IE或MPI网络建立与SIMOTION设备的连接,HMI设备的组态需要使用WinCCFlexible软件。

在SIMOTION项目中添加HMI设备有两种方式:

•HMI项目集成在SIMOTION项目中

通过打开SCOUT项目的网络配置,在NetPro中插入HMI设备,可将WinCCFlexible项目集成到SIMOTIONSCOUT项目中进行编辑。

•HMI项目独立于SIMOTION项目

在WinCCFlexible中使用项目向导在“IntegrateS7Project”中选择使用的SIMOTION项目,即可实现HMI与SIMOTION项目的集成。

下面以使用第一种方式为例,介绍在SIMOTION项目中插入HMI设备的配置过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1