simotiond435实例.docx

上传人:李司机 文档编号:1585077 上传时间:2022-12-09 格式:DOCX 页数:68 大小:1.22MB
返回 下载 相关 举报
simotiond435实例.docx_第1页
第1页 / 共68页
simotiond435实例.docx_第2页
第2页 / 共68页
simotiond435实例.docx_第3页
第3页 / 共68页
simotiond435实例.docx_第4页
第4页 / 共68页
simotiond435实例.docx_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《simotiond435实例.docx》由会员分享,可在线阅读,更多相关《simotiond435实例.docx(68页珍藏版)》请在三一办公上搜索。

1、SIMOTIoN项目实战一D435Beginner1概述本文档通过一个实际项目来介绍SlMOTION项目组态、配置和编程的过程。在SIMOTloNSCOUT软件的安装包里提供了一个供初学者学习的项目“D435_BEGINNER”,该项目位于软件光盘路径.UtiIities_AppIicationssrcExampIesExampIeForBeginners文件夹内,该项目提供了完整的项目文件和介绍文档,该项目可以在SimotionD435演示设备上模拟运行。图1项目实战图示该项目要实现的功能是将生产线上的空盒子吹出生产线,其工作过程如下:按下起动按钮后,盒子在传送带上从上游运输到下游,如果在运

2、输途中被检测出是空的,那么载有喷嘴的吹出器会跟随空盒子运动,建立同步以后在指定的位置打开喷嘴将空盒子吹出传送带,然后吹出器重新返回等待位置。在运行过程中,如果安全门被打开,那么生产线立即停止,在安全门关上以后,又自动恢复运行。复位起动按钮后,生产线停止。该项目中使用的运动控制功能有:齿轮同步Gearing凸轮同步Camming快速点输出OutputCam2项目中使用的硬件和软件项目中使用的硬件项目使用的硬件基于SlMoTIOND435(可以转换到其他SIMOTlON硬件),具体的产品如下表所示。编号名称数量订货号/备注1SimotionD43516AU1435-0AA00-0AA12CF卡16

3、AU1400-2PA01-OAAO3Simotion多轴授权包16AU1820-0AA43-0AB04端子板TB3016SL3055-0AA00-2TA05智能型电源模块SLM5KW16SL3130-6AE15-0AB06双轴电机模块DMM2X16SL3120-2TE13-0AA37传送带电机11FK7022-5AK71-OLGO8吹出器电机11FK7022-5AK71-OAGO9起动按钮1数字量输入,常开点10安全门1数字量输入,常闭点11空盒子传感器1数字量输入,常开点12吹出器喷嘴阀门1数字量输出13连接电缆若干动力电缆、信号电缆等表1本项目所使用的硬件列表项目中使用的软件编号名称版本1

4、WindowsXPSP3,Professional2STEP7SP2HF13SimotionscoutSP1HF34WinCCFlexible2008SP2Upd125SIMOTIOND435Firmware,withSinamics表2本项目所使用的软件列表3项目配置SimotionSCOUT项目的基本配置步骤如下:1 .配置驱动器2 .配置工艺对象TO3 .编写程序并分配执行系统4 .连接HMl设备配置驱动器本项目中有两台电机,由双轴电机模块驱动,可以参考下载中心应用文档编号A0309(视频教程)来完成驱动器配置文档名称SIMOTIOND435调试入门,其下载网址如下:-绘D435_Beg

5、innerOverview日CommunicationMessageframeconfiguration由TopologyHCUJ_003国一JInfeeds由Input/outputcomponents白口DrivesIInsertdrivecveyor由ejectS_JDocumentation+_JLIBRARIES+SINAMICSLIBRARIES二MONITORTOaxis UserprogramCommandsZJobsActual valestatsaarm evaluation创建虚主轴MasterAxis,步骤如下。AXES,双击insertaxis可以插入一yT*轴。在弹

6、出的窗口中配置轴的名称为MaSterAxis,工艺为POSitiOning(即为位置轴)。在离线情况下,在SCOUT软件中依次打开D435图4插入轴点击OK进入下一步,选择轴的类型为旋转轴Rotary、虚轴VirtUaI,单位采用默认值。AxisconfigurationMasterAxhAxitTypeAmlyperU,mifR0U91Electnc413“C(VUMCorqrH图5选择轴类型点击NeXt进入最后一步,这里可以看到所有配置的摘要信息,点击FiniSh结束配置。2.创建实轴COnVeyOrbeIt,步骤如下。AXES,双击insertaxis可以插入一个轴。在弹出的窗口中配置轴

7、的名称为COnVeyorbe13工艺为SynchronousOPeratiOn(即为跟随轴)。在离线情况下,在SCoUT软件中依次打开D435图7插入同步轴点击OK进入下一步,选择轴的类型为旋转轴Rotary,电气轴Electrical,模式为标准轴Standard,单位采用默认单位。AxisconfigurationConveyorbeltAxisTypeAxisT7peYcanselecttheaxtypeonthispageDfiVea,5r*rt,Neaset&UcanbeIoMJthisettyBchanged,astheStmcturedVImerW一theCOihguratond

8、atachangesEncode*tgnmcriEnCodefCOrtfigIr必SummaryrLmeGRotary6Electncd3afcVrtudStandardConftQtjers图8选择轴类型点击Next进入下一步,选择需要连接的驱动为SINAMICS_Integrated中的conveyoroAxisconfiguration-Conveyorbelt-Driveassignment5Axw TypeDrive assignment Encodefdssignment EncodADORESSLISTaALDEVICEVARIABLES-,JAXESjInsertax-8Coo

9、*ywt*CortfiourdttonExpertJstI、Urttg设置该轴为模态轴:Mechancs|Anhve向n of both VtIbeS COffespondi to n rwson ot the drive directionMeatuiingSyHemMeassysteminOPP(Mtetense(hvtaclpotVakje)VInvatmanipulatedvariableRotaryencodesystemMOUntingof encoderI Motor de1Check gcot ratio?LoadQMfNumbei of-mlo CevoiuliortsPNu

10、mber ot7load IeVObbom:MeasutinggefNumber otMa revok/iom:I1Numboiofencodef revolutions:歹Moddo axisModiA)stat value 00ModiA)length (360 OBacklashrevertaicorc)entation图13配置模态轴3.创建实轴EjeCtor,注意修改轴的类型为直线轴,回零方式修改为编码器零脉冲(Encoderzeromarkonly),Conveyorbelt使用的是绝对值编码器,所以无需设定回零模式。EncoderlneertaencoderSmusodalHom

11、ingrequitedPMax ds. to encoder ZeW markDataHamfeffrcxnthedth/eHomingmodeEncoderzoomrkorfyHomngprocedureStartinnegativedrectiEntiyveloaty2DOEReducedvelocity:图14配置EjeCtOr轴的回零步骤与ConVeyorbelt基本相同,这里不再赘述。保存并且编译下载后,可以使用控制面板对实轴进行测试。齿轮同步To的配置在轴TO配置完成以后,需要配置跟随轴COnVeyOrbeIt与主轴MaSterAXiS的互联,在SCoUT软件中,依次打开D435A

12、XESConveyorbeItConveyorbeIt_SYNCHRONOUS_OPERATION(ConveyorbeIt_GLEICHLAUF),双击其中的Interconnections,在右侧窗口选择使用虚主轴MasterAxis的设定值SetpointoIniefcorYMCiiom|FoloMngConveyabdt-Rolacy($tandd/p(e$Mie)IriecccmecbomtothernartevalueHerfeceTOrMmeCoupfcnqtypeDevtce忙gotD435pMftSlerAxtSse疝rtrcJOTJAlrrOoTinorii5i0montI

13、ntcsr2FreeacltftcU_l_OO3WCU_STWI7WOO_8=5t1PoroEoturuluctor1OWOZI曰c_Aua,0kgomgcorrt8_1-11J曲GJgCtRuprfrr-CrCnotri-ploy图25配置TO在OUTPUTCAMTO配置完毕以后,如下图所示。ConftgurationUnrfg|NomeSSProc.cydedockIP0|OUlPMCerntypePosrtioMjsMcam二JTypeoloutputcamvaluesSelpomtsFAdiveielWutComoutputon:CCemouiput(CAM)(eg04)a-TWC2x

14、TMl5/1?.)(SFastdigitaloutput(DO)(D4C240)CStandarddgaJoutput(DO)(egET200TMC,TM31,)UnkingofoutputcamsthroughLogicelOROutputISlNAMleSJntegratedC.D0_8图26TO配置完毕这样,本项目中所使用的TO就都配置完成了,此时的项目导航栏如下图所示。绘D435_BeginnerjInsert5IM0TI0NdeviceInsertsingledriveunitD435E画!匚二EXECUTION5Y5TEM0-ADDRESSLISTg-GLOBALDEVICEVAR

15、IABLESCJaxesInsertaxisft&Conveyorbelt-豆Ejector Configuration Expertlist Mechanics Default Limits Actualvalue Closed-loopcontrol Homing Monitoring Profiles Controlpanel InterconnectionsSignalflow由cEjectoreGLEICHLAUF田_JMEASURINGINPUTSOUTPUTCAMInsertoutputcamInsertcamtrack由JT.ValveSE;MasterAxis_JEXTERN

16、ALENCODERSjPATHOBJECTSSjCAMSInsertcamInsertcamwithCamTooIB-.Cam_Ejector_JTECHNOLOGY+_JPROGRAMS+35SINAMICSJntegrated图27本项目To配置完毕编写程序并分配执行系统SlMOTlON提供的编程环境方便而灵活,可以使用不同的编程语言实现相同的功能,这完全取决于个人的编程习惯。SIMOTloN程序的执行系统清晰而全面,不管是周期性执行,还是单次执行,不管是时间触发,还是事件触发,都可以按照优先级高低顺序进行程序的分配。通过程序在执行系统中的合理分配,可以方便的实现各种运动控制功能,Simo

17、tion的执行系统的示意图如下图所SynchronousTasks IIpOSynCTaSkl IIPOSynCTaSk 2 L图28Simotion的执行系统示意图运动控制效的使能与回导毡之间的齿轮同纤、五字执行快速点输出I MotionTask效之间的凸轮同步图29项目功能分解在使用SIMOTION创建项目时,首先需要对程序结构进行规划,根据工艺要求,将所需的功能分解,编写成多个独立的程序,再将程序分门别类地分配到执行系统当中。在本项目中,根据工艺的要求,可以将程序分成几部分,再将程序分配到相应的执行系统中,如图29所示。programs即可插入程序。Simotion设备支持的程序语言有s

18、t、mcc、LAD/FBD、DCC等,这些编程语言各有特点,其中使用MCC语言可以方便地编写运动控制程序,使用LAD/FBD语言可以方便地实现逻辑控制功能,使用DCC可以方便地实现工艺控制功能,使用ST语言可以方便地实现复杂的运动、逻辑和工艺控制功能。在SCoUT软件中,依次打开D435PROGRAMS*InsertSTsourceFileJInsertMCCunitJInsertLAD/FBDunitInsertDCCcharts图30插入程序本项目中使用了ST、MCC和LAD/FBD三种编程语言。在使用MCC和LAD/FBD时,需要先插入程序单元(Unit),再在单元中插入程序(Progr

19、am)。本项目中,使用ST编写了PInit()和PHMIOUt()程序,使用MCC编写了pAuto(),pEject(),pHoming(),pProtDoor(),PTeCFaUIt()程序,使用LAD/FBD编写了pLADFBD(),pPLCopenProg()程序,如图31所示。PROGRAM3InsertSTsourcefileInsertMCCunitInsertLAD/FBDunitInsertDCCchartsPDefInitPlnM)PHMOUSPHMIWsoPAUtO士jInsertMCCchart pAuto()PEjedjInsertMCCchart PEjea()PHO

20、mingInsertMCCchart.PHOming()PProtDoorjInsertMCCchartPPrOtDOOrOPTeCFaUkjInsertMCCchartpTecFult()PBckFBD2jInsertLAD/FBDprogram PIADFBDo变量定义与初始化与HMI通讯的数据处理A模式1:自动运行,线速度调整吹出器开始建立Camon并运行A模式0:回零,并做好运行前准备A安全门若打开就停止设备A自动复位系统提示信息在安全门关闭时自动起动设备在HMl上点动轴 PPLCOPenPrOgO图31项目中的程序ExecutionSyStenl即可以打开分配执行系统的画面,分配结果

21、详见本文档节。然后在线连接设备,编译并下载项目后,系统就可以正常运行了。在程序编写并编译完成以后,再分门别类地分配到执行系统中。在SCOUT软件中,依次打开D435与Simaticplc的程序不同的是,Simotion中没有数据块db的概念,所有程序都对变量进行操作,所在在缩写SIMOTlON程序时,需要按照以下步骤进行:1 .声明变量2 .编写程序3 .分配执行系统声明变量在编写程序之前,需要声明变量。SlMOTIoN设备中的变量分为系统变量、全局变量和局部变量。其中系统变量在To创建完成后,就已经由系统自动生成,比如轴TO的运行状态等。全局变量包括IO变量、设备全局变量和程序单元变量三类,

22、其中IO变量可以通过SCOUT软件中的ADDRESSUST来创建,设备全局变量可以通过GLOBALDEVlCEVARlABLES来创建(本项目中没有使用),而程序单元变量需要在程序单元中创建,可以在程序单元内使用。一个程序单元中的全局变量通过互联,也可以用于其他程序单元。局部变量在单个程序中创建,只可以在本程序中使用。图32变量说明创建IO变量在SCOUT软件中,双击D435下的ADDRESSLIST,即可在软件下半窗口中配置全局的IO变量。在Nanle列输入变量名称,在I/Oaddress一列指定输入输出类型以后,就可以直接在ASSignnlent列点击按钮浏览到系统中的IO变量。本项目中的

23、IO变量配置如下图所示。其中iboEject为空盒子传感器的Dl信号,iboProtDoor为安全门的Dl信号,iboStartBelt为生产线起动的Dl信号。D435AddossHt图33创建IO变量创建程序单元变量和局部变量根据编程语言的不同,程序单元变量的创建方式也不同。在ST语言中的声明变量使用ST语言时,可以在INTERFACE段声明全局变量,其格式如下:变名:数据类型(:=初始值);比如pDefInit程序单元中一个名称为gboProgEnd的布尔型变量,需要按以下格式声明:INTERFACEVAR_GLOBALgboProgEnd:BOOL:二FALSE;END_VARend_I

24、Nterface这里声明的全局变量只能在本程序单元中使用。如果需要在其他程序单元中访问这些变量,那么需要在其他程序的INTERFACE段内添加USES语句,比如在PHMIOUt程序单元中就有这样的语句,其格式如下:INTERFACEUSESpDefInit;end_INterface另外,在程序中IMPLEMENTATlON段也可以声明全局变量,这里声明的变量只能在本程序单元中使用,无法被其他程序单元访问,在本项目中并没有在IMPLEMENTATlON段中声明全局变量。局部变量在程序内部的PROGRAM段内声明,仅供本程序使用,无法被其他程序或程序单元访问,其声明格式与全局变量相同。本项目中也

25、没有在PROGRAM段声明局部变量。(2)在MCC程序单元中声明变量PROGRAM,双击其中的InsertMCCUnit即可插入一个程序单元,此时在右侧的窗口中可以定义本程序单元的全局变量。在SCOUT软件中,依次打开D435MCC程序单元中的全局变量在数据表格中声明,变量声明的位置与ST语言是一致的。如果是全局变量,并希望被其他程序单元访问,那么变量在INTERFACE段声明,如果不希望被其他程序单元访问,那么变量在IMPLEMENTATlON段声明。比如在PProtDoor程序单元中定义了下面的全局变量。INTERFACE(exporteddeclaration)ParameterI/Os

26、ymbolsStructuresEnumerationsConnectionsIlameVaiiahletypeDatatyPeArraylengthInitialvalue1geRetValReadlOVAR_GLOBALEnumSetAndGetSafeVaIue2gb16RetVallOVAR-GLOBALWORD3_IMPLEMENTATION(source-internaldeclaration)Parameter110symbolsStructuresEnumerationsConnectionsNameVAriabIetypeDatatypeIArraylengthI1图34MC

27、C程序单元中声明变量如果要访问其他程序单元的变量,只需要在INTERFACE段的Connection选项卡下进行连接即可,这与ST语言中使用USES语句的功能相同,比如在pAuto程序单元中要引用在ST程序pDeflnit中定义的全局变量,那么可按下图所示的方法进行访问。INTERFACE(exporteddeclarationParameterI/OsymbolsStructuresEnumerationsConnectionsITypeHame1ProgramAjnitpDeflnit2图35连接需访问变量的程序单元在每个程序单元里都有一个插入程序的选项,比如PAUto程序单元中双击Ins

28、ertMCCChart即可以在右侧窗口中打开程序的主编辑界面。在顶部的表格里,可以声明本程序的局部变量,比如在图中ParametWriables|选项卡下,将变量名称、数据类型和初始值填入表格即可,本项目中没有定义局部变量。SIMOTIONSCTD435.Beginner(MCC(M35.pAuto(pAuto图36本项目无局部变量在LAD/FBD程序单元中声明变量LAD/FBD程序单元中声明变量的操作与MCC类似,这里不再赘述。另外,在LAD/FBD程序编辑窗口中也可以直接声明不存在的变量。比如在PLADFBD()程序中,将局部变量boResult修改为boResult1,此时系统会自动弹出

29、一个变量boResult1的声明窗口,在这里可选择数据类型和变量类型等。这种声明变量的方式非常方便。图37在LAD/FBD程序单元中声明变量编写程序项目程序需要根据实际工艺编写,本项目中将工艺分解为回零、传送带运行、吹出器动作、安全门控制、错误处理等部分,分别编程进行处理,最后通过程序在执行系统中的分配,达到各程序协调工作的目的。由于相同的功能,可以使用不同的编程语言实现,所以编程方式十分自由。本项目中使用ST语言编写了数据初始化PDefInit和与HMl的数据交换PHMIout两段程序,使用MCC语言编写了与运动控制相关的程序,使用LAD/FBD编写了周期性执行的逻辑控制程序。使用ST语言编

30、写程序PROGRAMS,双击其中的InsertSTsourcefile即可插入一段ST程序,在右侧窗口会自动打开ST程序编程器。使用ST语言编写的程序需要放在IMPLEMENTATION段中,以PROGRAM关键字开头,以END_PROGRAM关键字结尾。程序编写完成后,还需要在INTERFACE段进行声明。比如PDefInit()程序的ST程序如下。在SeOUT软件中,依次打开D435INTERFACEVAR_GLOBALII却N圜网国周STARTlUiJ 曷 AddfeBI 趾I开始虚主轴使能等待起动信号激活电子缶轮激活快速点输出等待虚主轴速度设定值变化起动虚主轴变里蛾值循环语句:直到gb

31、ProgEnd为1结束结束LevelIMessageInformationSTARTofthecompilationofpAutoat11:03:10InformationpAuto:STcodegenerationInformationPAUto:InformationpAuto:Codegeneration:PAUto0error。0warning(s)Informationputo:InformationENDoftheCompilalionof,pAutoat11:03:13InformationCompilationof,pAuto,:0error(s)z0Warningk)=Sym

32、bOlbrow$erJ0AddreSSIiStCompie/checkoutputtHfH)3画I回回回IYI回刨周HHpOOl-TitlecommentgboDriveActiveend11(JMPN)_I/.HAITF0RC0NDITIOlT,TSITS_ine()(JNVAUDJ(waiting)conditionfI1Ifiiiedy;,OCKED卜!-./WAIT-NEXTj广INTERRUPTy_diSableScheduler/_enabIeSchedulerRUNNINGyAytTS_STOPg*PENDINGSTOPPED/cTSSUSPENDED任务通过功能_suspend

33、Task()被暂停TS_WAIT_NEXT_CYCLETimerInterruptTask正在等待其触发信号TSWAITNEXTINTERRUPTSystemInterruptTask正在等待触发报警,或者UserInterruptTask正在等待触发事件TS_LOCKED任务通过功能.disabIeScheduIer()被锁定。通过系统功能_getStateOfTaskld可以读取指定任务的当前状态,该功能可以在命令库中找到,如图48所示:Cmdsvalidfew:Sorting:D4353abcjiLogica+Mathematicalfunctions住PLCopenBTasksyste

34、m-disableScheduler-enableScheduler-getAverageTaskldRuntime_getCurrentTaskldRuntime_getMaximalTaskldRuntime-getMinimalTaskldRuntime_getStateOfTaskId圉I回LProjectCommandlibrary图48命令库该功能的返回值为DWoRD,返回值指示下列状态:16#0000:指定的任务不存在(TASK_STATE_INVALID)16#0001:从RUN变换到STOP(TASK_STATE_STOP_PENDING)16#0002:任务被停止(TASK_STATE_

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号