SEW伺服电机IPOS典型控制程序.docx

上传人:b****7 文档编号:8859380 上传时间:2023-02-02 格式:DOCX 页数:23 大小:19.32KB
下载 相关 举报
SEW伺服电机IPOS典型控制程序.docx_第1页
第1页 / 共23页
SEW伺服电机IPOS典型控制程序.docx_第2页
第2页 / 共23页
SEW伺服电机IPOS典型控制程序.docx_第3页
第3页 / 共23页
SEW伺服电机IPOS典型控制程序.docx_第4页
第4页 / 共23页
SEW伺服电机IPOS典型控制程序.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

SEW伺服电机IPOS典型控制程序.docx

《SEW伺服电机IPOS典型控制程序.docx》由会员分享,可在线阅读,更多相关《SEW伺服电机IPOS典型控制程序.docx(23页珍藏版)》请在冰豆网上搜索。

SEW伺服电机IPOS典型控制程序.docx

SEW伺服电机IPOS典型控制程序

/****************************************************************************

--------------------------------

10.18.01D.BroermanCopiedfromVersion5ofRackStackerSoftware

08.01.02D.BroermanAddedPosition_6atocontroltheVaccumCupextendposition

10.08.02D.BroermanV04AddedsequencetoLoadfromRack

31.01.03St.ReuterV05CommunicationviaDeviceNet

17.04.03IBBChinaCSGPos.13

NecessaryParameters:

--------------------------

OperatingMode=VFC-n-Reg.&IPOS

ParameterP700

ParameterP100Sollwertquelle=Feldbus

ParameterP101Steuerquelle=Feldbus

BinaryInputsBaseUnit

DI00Enable

P600DI01Release/RapidStop

P601DI02HighSpeedInput1

P602DI03HighSpeedInput2

P603DI04Spare

P604DI05Spare

aaa

BinaryOptionCard1

P610DI10IPOSInput(VacuumCupExtendedProx)

P611DI11IPOSInput(VacuumCupRetractedProx)

P612DI12IPOSInput(VacuumSwitch)

P613DI13IPOSInput(Spare)

P614DI14IPOSInput(Spare)

P615DI15IPOSInput(Spare)

P616DI16IPOSInput(Spare)

P617DI17IPOSInput(Spare)

BinaryInputsIPOSInputsPA1(DeviceNet)

DI20IPOSInput(StartCycleSignalStacking)

DI21IPOSInput(StopCycleSignal)

DI22IPOSInput(MotorRight/Halt,ArmUpHand)

DI23IPOSInput(MotorLeft/Halt,ArmDownHand)

DI24IPOSInput(VacuumManMode)

DI25IPOSInput(ReleaseManMode)

DI26IPOSInput(VacuumCupIn/OutManMode)

DI27IPOSInput(StackerMode)

(Automatic=1)

(ManualMode=0)

DI30IPOSInput(LoadingCycleStart)

DI31IPOSInput(StartRackReference)

DI32Spare

DI33Spare

DI34Spare

DI35Spare

DI36Spare

DI37Spare

BinaryOutputsBaseUnit

DB00ConfiguredwithBrake

P620DO01DriveReady

P621DO02DriveFault

BinaryOutputOptionCard1

P630DO10IPOSOutput(ArmDown)

P631DO11IPOSOutput(ConvReleaseInTransport)

P632DO12IPOSOutput(StackerFault)

P633DO13IPOSOutput(BasicPosition)

P634DO14IPOSOutput(ConvReleaseOutTransport)

P635DO15IPOSOutput(VacuumCupExtended)

P636DO16IPOSOutput(RackReferencePosition)

P637DO17IPOSOutput(VacuumFault)

OutputOptionCard2

DO20IPOSOutput(VacuumCupExtendSol)

DO21IPOSOutput(VacuumCupRetractSol)

DO22IPOSOutput(VacuumOnSol)

D023IPOSOutput(VacuumOffSol)

DO24IPOSOutput(BlowOffOn)

DO25IPOSOutput(Spare)

DO26IPOSOutput(Spare)

DO27IPOSOutput(Spare)

P941IPOSGeberquelle=MotorEncoderonTerminalX15

AnwenderprogrammmitfolgendenFunktionen:

-------------------------------------------

1)AllgemeinerManualModeeinespositioniergeregeltenAntriebs.

-黚erzweiEingangsklemmenkannderAntriebmiteinerfesten

GeschwindigkeitinbeideRichtungengefahrenwerden.

-DieLageregelungistdabeiaktiv.

-EinevorherigeReferenzfahrtistnichtnotwendig.

2)BetriebsartAutomatic

****************************************************************************/

#include

#include

//=================FahrVariables===========================================

#pragmaglobals200250

longV_MotorRight,V_MotorLeft;

//=================ZielPosition-Variables==============================

#definePosition_0H0

#definePosition_1H1

#definePosition_2H2

#definePosition_3H3

#definePosition_4H4

#definePosition_5H5

#definePosition_6H6

#definePosition_7H7

#definePosition_8H8

#definePosition_9H9

#definePosition_10H10

#defineRef_PosH11

#definePosition_6aH12

#defineAuto_Speed_0H20

#defineAuto_Speed_1H21

#defineAuto_Speed_2H22

#defineRef_Speed_0H23

#defineAuto_Speed_3H24

#defineMan_Speed_0H25

#defineAuto_Speed_4H26

#defineAuto_Speed_5H27

#defineAuto_Speed_6H28

#definePosition_WindowH30

#defineM_StateH31

#defineM_FaultH32

#defineM_MerkerH33

#definePos_0H35

#defineM_LoadingH36

#defineM_StackingH37

#defineLoad_Pos_0H40

#defineLoad_Pos_1H41

#defineLoad_Pos_2H42

#defineLoad_Pos_3H43

#defineLoad_Pos_4H44

#defineLoad_Pos_5H45

#defineLoad_Pos_6H46

#defineLoad_Pos_7H47

#defineLoad_Pos_8H48

#defineLoad_Pos_9H49

#defineLoad_Pos_10H50

#defineLoad_Pos_11H51

#defineLoad_Pos_12H52

#defineLoad_Pos_6aH53

#defineBustypH100

#defineLe_PA_DATAH101

#definePA1H102

#definePA2H103

#definePA3H104

#defineLe_PE_DATAH110

#definePE1H111

#definePE2H112

#definePE3H113

//=================INPUTS=========================================

//OnboardInputs

#defineE_DriveEnableDI00

#defineE_DriveRelDI01

#defineE_Touchp_1DI02

#defineE_Touchp_2DI03

#defineE_Spare_1DI04

#defineE_Spare_2DI05

//InputsCardDIO11A

#defineE_CupExtendedProxDI10

#defineE_CupRetractedProxDI11

#defineE_VacuumSwitchDI12

#defineE_Spare_3DI13

#defineE_Spare_4DI14

#defineE_Spare_5DI15

#defineE_Spare_6DI16

#defineE_Spare_7DI17

//InputsFieldBus

#defineE_Start_Cycle((PA1&0b1)!

=0)

#defineE_Stop_Cycle((PA1&0b10)!

=0)

#defineE_ArmRight((PA1&0b100)!

=0)

#defineE_ArmLeft((PA1&0b1000)!

=0)

#defineE_VacManMode((PA1&0b10000)!

=0)

#defineE_RelManMode((PA1&0b100000)!

=0)

#defineE_CupInOutManMode((PA1&0b1000000)!

=0)

#defineE_AutoMode((PA1&0b10000000)!

=0)

#defineE_LoadCycleStart((PA1&0b100000000)!

=0)

#defineE_ReferenceRack((PA1&0b1000000000)!

=0)

#defineE_Continue_Cycle((PA1&0b10000000000)!

=0)

#defineE_Reset_Cycle((PA1&0b100000000000)!

=0)

#defineE_Resume_Cycle((PA1&0b1000000000000)!

=0)

#defineE_Vacuum_On_Auto((PA1&0b10000000000000)!

=0)

//=================OUTPUTS=========================================

//OnboardOutputs

#defineA_DriveReadyDO01

#defineA_DriveFaultDO02

//OutputsCardDIO11A

#defineA_CupExtendSol0//DO20

#defineA_CupRetractSol1//DO21

#defineA_VacuumOnSol2//DO22

#defineA_VacuumOffSol3//DO23

#defineA_BlowOffSol4//DO24

//OutputsFieldbus

#definePE1_OutputPE1

#defineA_StackerArmDown0

#defineA_ConvRel1//((PE1&0b10)!

=0)

#defineA_StackerFault2//((PE1&0b100)!

=0)

#defineA_HomePosition3//((PE1&0b1000)!

=0)

#defineA_ConvRelOut4//((PE1&0b10000)!

=0)

#defineA_CupExtendSwitch5//((PE1&0b100000)!

=0)

#defineA_ArmReferencePos6//((PE1&0b1000000)!

=0)

#defineA_VacuumFault7//((PE1&0b10000000)!

=0)

#defineA_ArmProbePos8//((PE1&0b100000000)!

=0)

#defineA_CupRetractSwitch9//((PE1&0b1000000000)!

=0)

#defineA_VacuumConfirm10//((PE1&0b10000000000)!

=0)

#defineA_RelCrosstrREV11//((PE1&0b100000000000)!

=0)

//=================Festwerte===============================================

#pragmalist

/*===========================================================================

Subroutines

===========================================================================*/

/*================================================

SubroutineforInitializingtheSystem.

==================================================*/

Initialize()

{

_AxisStop(AS_RSTOP);

OptOutpIPOS=0;//allOutputsOff

ControlWord=0;//IPOSControlWordOff

Pos_0=1000;

Auto_Speed_0=15000;//TouchProbeSearching

Auto_Speed_1=19500;//DriveDownStacking

Auto_Speed_2=5000;

Auto_Speed_3=10000;

Auto_Speed_4=15000;//DriveUPStacking

Auto_Speed_5=1500;//MedPeeloffspeed

Auto_Speed_6=100;//SlowPeeloffspeed

Ref_Speed_0=29000;

Man_Speed_0=5000;

Position_1=250000;

M_State=0;

M_Fault=0;

M_Loading=0;

M_Stacking=0;

Bustyp=3;//Value3=Fieldbus

Le_PA_DATA=3;//Value3=RrocessInputWords

Le_PE_DATA=3;//Value3=RrocessOutputWords

}//EndInitialize()

/*=================================================

InterruptSubroutine

=================================================*/

Interrupt()

{

_TouchProbe(TP_DIS1);

M_State=4;

Position_2=H507;

Position_3=H507+10000;//VacuumOn10000

Position_4=H507+345834;//345834

Position_5=H507+140000;//VacCupsRet200000

Position_6=H507+320000;//SlowSpeed400000

Position_6a=H507+363000;//VacCupExt411000

Position_7=H507+421000;//VacRelvorher250000//425000

Position_8=H507+438000;//Blow-offoff438000

Position_9=H507+850000;//ConvRel850000

Position_10=H507+870000;//870000

Ref_Pos=H507+415000;//275000

Load_Pos_0=H507-10000;

Load_Pos_1=H507+80000;//VacCupsRet

Load_Pos_2=H507+200000;//SlowSpeed

Load_Pos_3=H507+230000;//VacCupsExtVacOn

Load_Pos_4=H507+280000;//

Load_Pos_5=H507+250000;//RetVacCup

Load_Pos_6=H507+248000;//LowSpeed

Load_Pos_6a=H507+220000;//MedSpeed

Load_Pos_7=H507+185000;//HiSpeedExtVacCup

Load_Pos_8=H507+70000;//LowSpeed

Load_Pos_9=H507+40000;//VacRel

Load_Pos_10=H507+2000;//ConvRel

return;

}//EndInterrupt()

/*****************************************************************

CyclingSubroutine.

******************************************************************/

Cycling()

{

if(!

E_DriveRel)

{

M_State=0;

_BitClear(PE1_Output,A_ArmProbePos);

_BitClear(PE1_Output,A_ArmReferencePos);

_AxisStop(AS_RSTOP);

TargetPos=SetpointPos;

}

}//EndCycling

/*****************************************************************

ManualModeSubroutine

******************************************************************/

ManualMode()

{

//StackerArmUpandDown

if(E_ArmRight||E_ArmLeft)

{

_AxisStop(AS_ENABLE);

V_MotorRight=V_MotorLeft=Man_Speed_0;

_SetSys(SS_POSSPEED,V_MotorRight);

if(E_ArmRight&&(!

E_ArmLeft))//Klemmenabfragen

_GoAbs(GO_NOWAIT,(ActPos_Mot+409600));

if(E_ArmLeft&&(!

E_ArmRight))

_GoAbs(GO_NOWAIT,(ActPos_Mot-409600));

}

if(!

E_ArmRight&&!

E_ArmLeft)

{

_AxisStop(AS_RSTOP);

TargetPos=SetpointPos;

}

//VacuumandRelease

if(E_VacManMode)

{

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

当前位置:首页 > 高等教育 > 农学

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

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