#include raw #Include "CONTEC_Motion.pcs" '--------------------------------------------------- ' Initialization '--------------------------------------------------- Sub Panel_INITIALIZE() CONTEC_Motion "SIGMA_5", "CaoProv.CONTEC.SMC", "", "DeviceName=SMC000,@Ifnotmember=True" '1 axis pulse output initialization smcSetIniPis "SIGMA_5", 1, 4, 1, 0 '1 axis counter movement settings smcSetIniCnt "SIGMA_5", 1, 0, 0, 0 '1 axis control I/O settings smcSetIniDio "SIGMA_5", 1, 1, 0, 0, 0, 0 '1 axis encoder settings smcSetIniEnc "SIGMA_5", 1, 1, 0, 0, 0, 0 '1 axis origin settings smcSetIniOrg "SIGMA_5", 1, 1, 1, 0, 0, 1 '1 axis speed resolution settings smcSetReSpd "SIGMA_5", 1, 10 '1 axis other initial settings smcSetIniExt "SIGMA_5", 1, 0, 0, 0 End Sub '--------------------------------------------------- ' General purpose output: OUT1 ON/OFF '--------------------------------------------------- Sub ipbOUT1_CLICKED() If smcOutBitCheck( "SIGMA_5", 1, 1 ) = 0 Then smcOut1_On "SIGMA_5", 1 ipbOUT1.State = 1 ElseIf smcOutBitCheck( "SIGMA_5", 1, 1 ) = 1 Then smcOut1_Off "SIGMA_5", 1 ipbOUT1.State = 0 End If End Sub '--------------------------------------------------- ' General purpose output: OUT2 = ON '--------------------------------------------------- Sub ipbOUT2_CLICKED() smcOut2_On "SIGMA_5", 1 End Sub '--------------------------------------------------- ' General purpose output: OUT3 = ON '--------------------------------------------------- Sub ipbOUT3_CLICKED() smcOut3_On "SIGMA_5", 1 End Sub '--------------------------------------------------- ' General purpose output: OUT2 = OFF '--------------------------------------------------- Sub ipbOUT2_RELEASED() smcOut2_Off "SIGMA_5", 1 End Sub '--------------------------------------------------- ' General purpose output: OUT3 = OFF '--------------------------------------------------- Sub ipbOUT3_RELEASED() smcOut3_Off "SIGMA_5", 1 End Sub '--------------------------------------------------- ' Timer 1 event '--------------------------------------------------- Sub Timer1_TIMER() '"/S-ON" (General purpose output 1: Out1) status If smcOutBitCheck( "SIGMA_5", 1, 1 ) = 0 Then ipbOUT1.State = 0 ElseIf smcOutBitCheck( "SIGMA_5", 1, 1 ) = 1 Then ipbOUT1.State = 1 End If '"ALM" (General purpose input 1: In1) status If smcIn1( "SIGMA_5", 1 ) = 0 Then plIN1.State =0 ElseIf smcIn1( "SIGMA_5", 1 ) = 1 Then plIN1.State =1 End If '"/COIN" (General purpose input 2: In2) status If smcIn2( "SIGMA_5", 1 ) = 0 Then plIN2.State =0 ElseIf smcIn2( "SIGMA_5", 1 ) = 1 Then plIN2.State =1 End If '"/S-RDY" (General purpose input 3: In3) status If smcIn3( "SIGMA_5", 1 ) = 0 Then plIN3.State =0 ElseIf smcIn3( "SIGMA_5", 1 ) = 1 Then plIN3.State =1 End If '"/TGON" (General purpose input 4: In4) status If smcIn4( "SIGMA_5", 1 ) = 0 Then plIN4.State =0 ElseIf smcIn4( "SIGMA_5", 1 ) = 1 Then plIN4.State =1 End If '"ALO1" (General purpose input 5: In5) status If smcIn5( "SIGMA_5", 1 ) = 0 Then plIN5.State =0 ElseIf smcIn5( "SIGMA_5", 1 ) = 1 Then plIN5.State =1 End If '"ALO2" (General purpose input 6: In6) status If smcIn6( "SIGMA_5", 1 ) = 0 Then plIN6.State =0 ElseIf smcIn6( "SIGMA_5", 1 ) = 1 Then plIN6.State =1 End If '"ALO3" (General purpose input 7: In7) status If smcIn7( "SIGMA_5", 1 ) = 0 Then plIN7.State =0 ElseIf smcIn7( "SIGMA_5", 1 ) = 1 Then plIN7.State =1 End If 'ALM limit (alarm/emergency stop limit) status If (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 0 ) = 0 Then plALM.State = 0 ElseIf (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 0 ) = 2 ^ 0 Then plALM.State = 1 End If '+LMT limit (CW limit) status If (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 1 ) = 0 Then plLMTP.State = 0 ElseIf (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 1 ) = 2 ^ 1 Then plLMTP.State = 1 End If '-LMT limit (CCW limit) status If (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 2 ) = 0 Then plLMTM.State = 0 ElseIf (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 2 ) = 2 ^ 2 Then plLMTM.State = 1 End If 'ORG limit (origin limit) status If (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 3 ) = 0 Then plORG.State = 0 ElseIf (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 3 ) = 2 ^ 3 Then plORG.State = 1 End If 'SD limit (deceleration stop limit) status If (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 4 ) = 0 Then plSD.State = 0 ElseIf (smcGetStsLmt( "SIGMA_5", 1 ) And 2 ^ 4 ) = 2 ^ 4 Then plSD.State = 1 End If 'Pulse status lblCNTPLS.Caption = smcGetCntPls( "SIGMA_5", 1 ) 'Encoder status lblCNTENC.Caption = smcGetCntEnc( "SIGMA_5", 1 ) 'Pulse output speed during movement lblSTSSPD.Caption = smcGetStsSpd( "SIGMA_5", 1 ) 'Motor movement status Select Case smcGetStsMov( "SIGMA_5", 1 ) Case 0 lblSTSMOV.Caption = "Stopped" Case 1 lblSTSMOV.Caption = "Performing PTP movement" Case 2 lblSTSMOV.Caption = "Performing JOG movement" Case 3 lblSTSMOV.Caption = "Performing origin return" Case 4 lblSTSMOV.Caption = "Performing bank movement (single)" Case 5 lblSTSMOV.Caption = "Performing bank movement (loop)" End Select 'Motor stop cause Select Case smcGetStsStp( "SIGMA_5", 1 ) Case 0 lblSTSSTP.Caption = "Moving" Case 1 lblSTSSTP.Caption = "Stop command" Case 2 lblSTSSTP.Caption = "Deceleration stop command" Case 3 lblSTSSTP.Caption = "Other axis stop" Case 4 lblSTSSTP.Caption = "Alarm/emergency stop signal" Case 5 lblSTSSTP.Caption = "CW limit stop signal" Case 6 lblSTSSTP.Caption = "CCW limit stop signal" Case 7 lblSTSSTP.Caption = "Deceleration stop signal" Case 255 lblSTSSTP.Caption = "Movement function complete" End Select 'Pulse output status Select Case smcGetStsPls( "SIGMA_5", 1 ) Case 0 lblSTSPLS.Caption = "Pulse output stopped" Case 1 lblSTSPLS.Caption = "Moving with constant speed at starting speed" Case 2 lblSTSPLS.Caption = "Moving with constant speed at target speed" Case 3 lblSTSPLS.Caption = "Awaiting synchronous start" Case 4 lblSTSPLS.Caption = "Awaiting ERC timer completion" Case 5 lblSTSPLS.Caption = "Awaiting direction change timer completion" Case 6 lblSTSPLS.Caption = "Accelerating" Case 7 lblSTSPLS.Caption = "Decelerating" Case 8 lblSTSPLS.Caption = "INP input wait status" End Select 'Origin return PB indication status If lblSTSMOV.Caption = "Performing origin return" Then ipbORG.State = 1 ElseIf lblSTSMOV.Caption <> "Performing origin return" Then ipbORG.State = 0 End If 'Position movement PB indication status If lblSTSMOV.Caption = "Performing PTP movement" Then ipbMOV.State = 1 ElseIf lblSTSMOV.Caption <> "Performing PTP movement" Then ipbMOV.State = 0 End If End Sub '--------------------------------------------------- ' Speed change '--------------------------------------------------- Sub SpeedChange() Dim dblValue As Double 'Starting speed dblValue = nbSTSPD.Value smcSetMvStSpd "SIGMA_5", 1 , dblValue 'Target speed dblValue = nbTGSPD.Value smcSetMvTgSpd "SIGMA_5", 1 , dblValue 'Acceleration time dblValue = nbACCTM.Value smcSetMvAccTm "SIGMA_5", 1 , dblValue 'Deceleration time dblValue = nbDECTM.Value smcSetMvDecTm "SIGMA_5", 1 , dblValue End Sub '--------------------------------------------------- ' Origin return '--------------------------------------------------- Sub ipbORG_CLICKED() 'Speed setting SpeedChange If rbORG1.State = 1 Then smcOrg "SIGMA_5", 1, 0 'Origin return: CW ElseIf rbORG2.State = 1 Then smcOrg "SIGMA_5", 1, 1 'Origin return: CCW End If End Sub '--------------------------------------------------- ' Count reset '--------------------------------------------------- Sub pbCNTRST_CLICKED() 'Output pulse count reset smcSetCntPls "SIGMA_5", 1, 0 'Encoder count reset smcSetCntEnc "SIGMA_5", 1, 0 End Sub '--------------------------------------------------- ' JOG(+) movement valid '--------------------------------------------------- Sub pbJOBP_CLICKED() 'Speed setting SpeedChange 'JOG(+) smcJog "SIGMA_5", 1, 0 End Sub '--------------------------------------------------- ' JOG(+) movement invalid '--------------------------------------------------- Sub pbJOBP_RELEASED() smcMvStop "SIGMA_5", 1 End Sub '--------------------------------------------------- ' JOG(-) movement valid '--------------------------------------------------- Sub plJOGM_CLICKED() 'Speed setting SpeedChange 'JOG(-) smcJog "SIGMA_5", 1, 1 End Sub '--------------------------------------------------- ' JOG(-) movement invalid '--------------------------------------------------- Sub plJOGM_RELEASED() smcMvStop "SIGMA_5", 1 End Sub '--------------------------------------------------- ' Stop '--------------------------------------------------- Sub pbSTP_CLICKED() smcMvStop "SIGMA_5", 1 End Sub '--------------------------------------------------- ' Deceleration stop '--------------------------------------------------- Sub pbDSTP_CLICKED() smcMvDStop "SIGMA_5", 1 End Sub '--------------------------------------------------- ' Position movement '--------------------------------------------------- Sub ipbMOV_CLICKED() Dim dblValue As Double 'Speed setting SpeedChange dblValue = nbSTPPOS.Value If rbCOODINATE1.State = 1 Then smcMvPtoP "SIGMA_5", 1, 0, dblValue 'Absolute movement ElseIf rbCOODINATE2.State = 1 Then smcMvPtoP "SIGMA_5", 1, 1, dblValue 'Relative movement End If End Sub #ifdef TP_DESIGNER '<<--TPDESIGNER_RESERVED-->> CAPTION="smcGetCntPls( \"SIGMA_5\", 1 )\"\"\"" BG=&H8CB4D2 FG=&H000000 TIMEOUT=2000 TIMEOUTMODE=1 RELEASEMODE=0 PNLCCVER=232 COLORTYPE=1 FONTTYPE=1 BORDERSTYLE=0 add_widget 7,"Rect6",470,290,160,70,&H7F7F7F,&HB0B0B0,1,1,0,1; add_widget 7,"Rect5",530,20,100,110,&H7F7F7F,&HB0B0B0,0,1,0,1; add_widget 7,"Rect2",10,140,130,220,&H7F7F7F,&HB0B0B0,0,1,0,1; add_widget 7,"Rect1",10,20,130,100,&H7F7F7F,&HB0B0B0,0,1,0,1; add_widget 2,"lblNAME12",11,330,50,20,&H000000,&H8CB4D2,0,1,0,"In7: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME11",11,300,50,20,&H000000,&H8CB4D2,0,1,0,"In6: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME10",11,270,50,20,&H000000,&H8CB4D2,0,1,0,"In5: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME09",11,240,50,20,&H000000,&H8CB4D2,0,1,0,"In4: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME08",11,210,50,20,&H000000,&H8CB4D2,0,1,0,"In3: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME07",11,180,50,20,&H000000,&H8CB4D2,0,1,0,"In2: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME06",11,150,50,20,&H000000,&H8CB4D2,0,1,0,"In1: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME04",11,92,50,20,&H000000,&H8CB4D2,0,1,0,"Out3: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME03",11,60,50,20,&H000000,&H8CB4D2,0,1,0,"Out2: ",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME02",11,30,50,20,&H000000,&H8CB4D2,0,1,0,"Out1: ",10,0,"MS PGOTHIC","",1,1; add_widget 7,"Rect3",150,20,90,160,&H7F7F7F,&HB0B0B0,0,1,0,1; add_widget 17,"ipbOUT3",60,90,70,25,&H00FF00,&H000000,0,3,1,"/CLR",10,0,0,"MS PGOTHIC"; add_widget 3,"plIN1",60,150,70,25,&H0000FF,&H000000,0,1,1,"ALM",10,0,0,"MS PGOTHIC"; add_widget 3,"plIN2",60,180,70,25,&H00FF00,&H000000,0,1,1,"/COIN",10,0,0,"MS PGOTHIC"; add_widget 3,"plIN3",60,210,70,25,&H00FF00,&H000000,0,1,1,"/S-RDY",10,0,0,"MS PGOTHIC"; add_widget 3,"plIN4",60,240,70,25,&H00FF00,&H000000,0,1,1,"/TGON",10,0,0,"MS PGOTHIC"; add_widget 3,"plIN5",60,270,70,25,&H0000FF,&H000000,0,1,1,"ALO1",10,0,0,"MS PGOTHIC"; add_widget 3,"plIN6",60,300,70,25,&H0000FF,&H000000,0,1,1,"ALO2",10,0,0,"MS PGOTHIC"; add_widget 3,"plIn7",60,330,70,25,&H0000FF,&H000000,0,1,1,"ALO3",10,0,0,"MS PGOTHIC"; add_widget 17,"ipbOUT1",60,30,70,25,&H00FF00,&H000000,0,3,1,"/S-ON",10,0,0,"MS PGOTHIC"; add_widget 17,"ipbOUT2",60,60,70,25,&H00FF00,&H000000,0,3,1,"/ALM-RST",10,0,0,"MS PGOTHIC"; add_widget 2,"lblNAME13",150,10,80,18,&HFFFFFF,&H008B8B,0,1,0,"Limit status",10,2,"MS PGOTHIC","",1,1; add_widget 3,"plALM",160,30,70,25,&H0000FF,&H000000,0,1,1,"ALM",11,0,0,"MS PGOTHIC"; add_widget 3,"plLMTP",160,60,70,25,&H0000FF,&H000000,0,1,1,"+ Lmt",11,0,0,"MS PGOTHIC"; add_widget 3,"plLMTM",160,90,70,25,&H0000FF,&H000000,0,1,1,"- Lmt",11,0,0,"MS PGOTHIC"; add_widget 3,"plORG",160,120,70,25,&H0000FF,&H000000,0,1,1,"ORG",11,0,0,"MS PGOTHIC"; add_widget 3,"plSD",160,150,70,25,&H0000FF,&H000000,0,1,1,"SD",11,0,0,"MS PGOTHIC"; add_widget 7,"Rect4",250,20,270,160,&H7F7F7F,&HB0B0B0,0,1,0,1; add_widget 2,"lblNAME14",250,10,100,18,&HFFFFFF,&H008B8B,0,1,0,"Motion status",10,2,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME15",260,30,90,20,&H000000,&H8CB4D2,0,1,0,"Motor movement status",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME16",260,55,90,20,&H000000,&H8CB4D2,0,1,0,"Motor stop cause",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME17",260,80,90,20,&H000000,&H8CB4D2,0,1,0,"Pulse output status",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME18",253,105,130,20,&H000000,&H8CB4D2,0,1,0,"Pulse output speed during movement",9,0,"MS PGOTHIC","",1,1; add_widget 2,"lblSTSMOV",350,30,160,20,&H000000,&HFAE6E6,0,1,0,"",10,1,"MS PGOTHIC","",1,1; add_widget 2,"lblSTSSTP",350,55,160,20,&H000000,&HFAE6E6,0,1,0,"",10,1,"MS PGOTHIC","",1,1; add_widget 2,"lblSTSPLS",350,80,160,20,&H000000,&HFAE6E6,0,1,0,"",9,1,"MS PGOTHIC","",1,1; add_widget 2,"lblSTSSPD",379,105,131,20,&H000000,&HFAE6E6,0,1,0,"0",10,1,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME19",260,130,80,20,&H000000,&H8CB4D2,0,1,0,"Output pulse",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME20",260,155,80,20,&H000000,&H8CB4D2,0,1,0,"Encoder",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME01",10,10,80,18,&HFFFFFF,&H008B8B,0,1,0,"General purpose output ",10,2,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME05",10,130,80,18,&HFFFFFF,&H008B8B,0,1,0,"General purpose input ",10,2,"MS PGOTHIC","",1,1; add_widget 4,"Line1",340,70,0,0,&H000000,&HB0B0B0,0,1,0,1; add_widget 2,"lblCNTPLS",350,130,160,20,&H000000,&HFAE6E6,0,1,0,"0",10,1,"MS PGOTHIC","",1,1; add_widget 2,"lblCNTENC",350,155,160,20,&H000000,&HFAE6E6,0,1,0,"0",10,1,"MS PGOTHIC","",1,1; add_widget 1,"pbSTP",150,320,90,40,&H00FFFF,&H0000FF,0,3,1,"Stop",13,0,0,"MS PGOTHIC"; add_widget 1,"pbDSTP",250,320,90,40,&H00FFFF,&H2068FF,0,3,1,"Deceleration stop",13,0,0,"MS PGOTHIC"; add_widget 1,"pbCNTRST",530,140,100,40,&H000000,&HB0B0B0,0,3,1,"Counter reset",10,0,0,"MS PGOTHIC"; add_widget 11,"rbORG1",531,40,90,12,&H000000,&H8CB4D2,0,3,0,"CW",10,1,1,"MS PGOTHIC"; add_widget 1,"pbJOBP",470,190,160,40,&H0000FF,&H98FB98,0,3,1,"JOG ({)",16,0,0,"MS PGOTHIC"; add_widget 1,"plJOGM",470,230,160,40,&H0000FF,&H98FB98,0,3,1,"JOG (|)",16,0,0,"MS PGOTHIC"; add_widget 5,"nbSTPPOS",300,190,160,20,&H000000,&HFFFFFF,0,3,0,"",10,1,26214,"MS PGOTHIC"; add_widget 2,"lblNAME23",150,190,140,20,&H000000,&H8CB4D2,0,1,0,"Movement amount [Pulse]",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME24",150,215,140,20,&H000000,&H8CB4D2,0,1,0,"Pulse output starting speed [PPS]",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME25",150,240,140,20,&H000000,&H8CB4D2,0,1,0,"Pulse output target speed [PPS]",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME26",150,265,140,20,&H000000,&H8CB4D2,0,1,0,"Acceleration time [ms]",10,0,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME27",150,290,140,20,&H000000,&H8CB4D2,0,1,0,"Deceleration time [ms]",10,0,"MS PGOTHIC","",1,1; add_widget 5,"nbSTSPD",300,215,160,20,&H000000,&HFFFFFF,0,3,0,"",10,1,10000,"MS PGOTHIC"; add_widget 5,"nbTGSPD",300,240,160,20,&H000000,&HFFFFFF,0,3,0,"",10,1,10000,"MS PGOTHIC"; add_widget 5,"nbACCTM",300,265,160,20,&H000000,&HFFFFFF,0,3,0,"",10,1,1,"MS PGOTHIC"; add_widget 5,"nbDECTM",300,290,160,20,&H000000,&HFFFFFF,0,3,0,"NB1",10,1,1,"MS PGOTHIC"; add_widget 11,"rbORG2",531,70,90,12,&H000000,&H8CB4D2,0,3,0,"CCW",10,1,0,"MS PGOTHIC"; add_widget 11,"rbCOODINATE1",478,310,99,12,&H000000,&H8CB4D2,1,3,0,"Absolute movement",10,1,1,"MS PGOTHIC"; add_widget 11,"rbCOODINATE2",478,340,99,12,&H000000,&H8CB4D2,1,3,0,"Relative movement",10,1,0,"MS PGOTHIC"; add_widget 2,"lblNAME21",530,10,90,18,&HFFFFFF,&H008B8B,0,1,0,"Origin return",10,2,"MS PGOTHIC","",1,1; add_widget 2,"lblNAME22",470,280,100,18,&HFFFFFF,&H008B8B,0,1,0,"Specified position movement",10,2,"MS PGOTHIC","",1,1; add_widget 15,"Timer1",240,130,0,1,100; add_widget 17,"ipbMOV",350,320,110,40,&H00FF00,&H000000,0,3,1,"Position movement",13,0,0,"MS PGOTHIC"; add_widget 17,"ipbORG",540,90,80,30,&H00FF00,&H000000,0,3,1,"Origin return",13,0,0,"MS PGOTHIC"; '<<--TPDESIGNER_RESERVED-->> #endif