Mit 5000W DWC100 EDM MZ15 89


{Change Comments ***********************************************************}

{3/15/95
Copied & modified: Fanuc 6M M001.81.2
For: Hi-Tech
Machine: Mitsubishi DWC 90C
This is a 2 axis wire EDM Processor to be used with Virtual Gibbs.
There are no special EDM items supported.
There is no NewTool Section, a wire EDM does not have one!.
Z Reps are not suppoerted.
CoolOn outputs M80 Dielectric Fluid On.
CoolOff outputs M81 Dielectric Fluid Off.
SpinOn outputs M82 Wire Feed On.
SpinOff outputs M83 Wire Feed Off.
Cutter Radius Compensation turned on on 1st linear feat and off on last one.
????? MultipleParts FullUp cuts the wire, MultipleParts ExitClearancePlane does not. ???????
** call to see if they have the auto wire feed option **
Jim Radcliffe}

{6/21/96
Initial: Mitsubishi DWC 90C EDM M765.82
Created: Mit 5000W DWC100 EDM M000.89
ForUser: CIM Solutions / Metal Stampings
Control: Mitsubishi Model 5000W
Machine: Mitsubishi DWC100 Wire EDM
Develop: ComPost 4.21.37, Catalyst68K v3.04.10.C
Comment: New Processor per marked up readout and conversation with Chuck Klinect
Deleted program numbers.
Changed to NoSubs format per Fanuc 6M NoSubs M877.89.1
No Work Fisture Offsets.
Machine does not have Rapid G0 cammand, using Feed and RapidF.
Changed to trailing zeros.
CRC on line by itself.
Jim Radcliffe}

{Prog Numeric Format Definitions *******************************************}

#1 = '#.00'
#2 = '###^##0'
#3 = '*###^##0'
#4 = '####.####;0'
#5 = '#######0'
#6 = '####^##0'
#7 = '#;'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4)
FORMAT(Program#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(NewWFO#,5)
FORMAT(Parts#,5)
FORMAT(Dwell#,6)
FORMAT(RapidF#,7)

{Special EDM Use Subroutines ***********************************************}

FeedWire:
'M0'
IF UseComments?
'( Feed Wire )'
END
RETURN

CutWire:
'M0'
IF UseComments?
'( Cut Wire )'
END
RETURN

PowerOn: { turns power supply on to begin machining }
'M84'
RETURN

PowerOff: { turns power supply off for end of machining }
'M85'
RETURN

{Prog Subroutines **********************************************************}

RestoreScale:
IF Metric? {CAM file is in Metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
RETURN

DoSubComment:
IF UseComments? AND SubComment?
'( CYCLE START )' EOL
END
RETURN

DoOpComments:
IF UseComments?
SetScale('1')
IF MultipleParts? AND SubComment?
'( PART ' Tag# ' )' EOL
END
IF OperationIDComment?
'( OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'( ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'( ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'( TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'( ' ToolComment$ ' )' EOL
END
RestoreScale
END
RETURN

PSInit: {reset flags}
NewWFOF
RotateF
RETURN

PSStuff: {revised.72}
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqC 'A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqC 'A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqC 'B' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqC 'B' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN

DoPostScript:
PSInit
EachPS
SeqC PostScript EOL
PSStuff
NextPS
RETURN

DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL
PSStuff
NextPS
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXYZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN

StdRapid:
IF LastFeat?
SeqC FeedC MoveXYZC RapidFC EOL
SeqC CRCOffC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC CRCOnC CRCOffsetC EOL
SeqC FeedC MoveXYZC RapidFC EOL
END
END
RETURN

StdLine: {enables CRC on first call, .70}
IF LastFeat?
SeqC FeedC MoveXYZC FeedRateC EOL
SeqC CRCOffC EOL
ELSE
SeqC CRCOnC CRCOffsetC EOL
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqC FeedC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC FeedC MoveXYZC FeedRateC EOL
END
END
END
RETURN

StdArc:
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
RETURN

ToolPath2: {for AutoCycle element moves}
EACHFeat
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
END
END
NEXTFeat
RETURN

CutAutoCycle:
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqC IncValue EOL
ToolPath2
SeqC AbsOrInc EOL
SetSRSubXY {restore tool position}
SetSRSubMove
ReSetPass2 {restore for positioning moves}
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
IF NOT FirstFeat?
SeqC
IF FIFO?
Rapid
END
MoveSXYC EOL
END
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
CutAutoCycle
ELSE
SeqC MoveSXYZC EOL {.80.01}
END
ELSE
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
END
END
END
NEXTFeat
RETURN

WFOStuff:
{ WFOs not supported in this processor }
RETURN

CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN

DoOp:
IF FirstOperation?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
IF FullUp?
SeqC CoolOff SpinOff PowerOff EOL
SeqC CutWire EOL
END
DoOpComments
CheckPass
SeqC FeedC StrtPos RapidFC EOL
IF FullUp?
SeqC FeedWire EOL
SeqC CoolOn SpinOn PowerOn EOL
END
ELSE
DoOpComments
DoPostScript
CheckPass
SeqC Feed StrtPos RapidF EOL
SeqC FeedWire EOL
SeqC CoolOn SpinOn PowerOn EOL
END
ELSE

{Finish off last Operation}

IF LAST ProgStop?
SeqC CoolOff SpinOff PowerOff EOL
SeqC CutWire EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END

{Start new Operation}

DoOpComments
DoPostScript
CheckPass
SeqC FeedC StrtPos RapidFC EOL
IF LAST ProgStop?
SeqC FeedWire EOL
SeqC CoolOn SpinOn PowerOn EOL
ELSE
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
END

{ Common Point for All Operations }

ResetCRCNum {call here to reset for each new operation only, call in tool path to reset for each repeat in an operation}

IF Milling?
SeqC ZCP2C EOL
IF Repeats?
EACHRep
DoSubComment
IF NOT FirstCycle?
IF FeedConnect?
SeqC FeedC StrtPos FeedRateC EOL
ELSE
SeqC FeedC StrtPos RapidFC EOL
SeqC FeedWire EOL
END
END
ToolPath
SeqC CRCOffC EOL
IF NOT FeedConnect?
SeqC CutWire EOL
END
NEXTRep
END
ToolPath
SeqC CRCOffC EOL
ELSE
IF Drilling?
'*** Drilling operations are not supported in this Post Processor ***' EOL
END
END
RETURN

FinishLastOp:
SeqC CoolOff SpinOff PowerOff EOL
SeqC CutWire EOL
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC Rapid FirstHome EOL
END
RETURN

DoToolsOps:
EachOp
IF GTEqual? Operation# Recall# Num#('1') AND LTEqual? Operation# Recall# Num#('2')
{Tools1stOp ² op ² ToolsLastOp}
DoOp
END
NextOp
RETURN

NextTools1stOp:
SetNextToolOp Operation#
RETURN

GetToolsOps:
EachOp
IF Equal? Operation# Recall# Num#('1') {if op = Tools1stOp}
IF GreaterThan? NextTools1stOp Recall# Num#('1') {if NextTools1stOp is greater Tools1stOp}
Save# Num#('2') SUB# NextTools1stOp Num#('1') {ToolsLastOp becomes NextTools1stOp less 1}
ELSE {else}
Save# Num#('2') Recall# Num#('3') {ToolsLastOp becomes ncCAMsLastOp}
END
END
NextOp
RETURN

DoTool:
IF NOT Flag?('1')
GetToolsOps
IF WorkFixtureOffsets?
NewWFO
EachWFO
TagInc
DoToolsOps
IncWFO
NextWFO
ELSE
EachPart
TagInc
DoToolsOps
NextPart
END
IF LessThan? Recall# Num#('2') Recall# Num#('3') {if ToolsLastOp < ncCAMsLastOp}
Save# Num#('1') ADD# Recall# Num#('2') Num#('1') {Tools1stOp becomes NextTools1stOp}
ELSE {else}
SetFlag('1') {set DoneFlag}
END
TagInit
END
RETURN

MPallTools1P:
IF WorkFixtureOffsets?
NewWFO
EachWFO
TagInc
EachOp
DoOp
NextOp
FinishLastOp
IncWFO
NextWFO
ELSE
EachPart
TagInc
EachOp
DoOp
NextOp
FinishLastOp
NextPart
END
RETURN

MP1ToollAllPs:
EachOp
IF FirstOperation?
Save# Num#('1') Operation# {ncCAMs1stOp becomes Tools1stOp}
END
IF LastOp?
Save# Num#('3') Operation# {save ncCAMsLastOp}
END
NextOp
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
FinishLastOp
RETURN

NoMPs:
EachOp
DoOp
NextOp
FinishLastOp
RETURN

ProgStart:
InitProg
TagInit
SetFlagF('1') {done flag}
ReverseXZArcs
InitWFONum
SetFlood
SetMaxRPM('10000')
SetMaxFeed('500')
SkipZ
IF PSComment? AND UseComments?
'PostScript:' EOL
' Literals: put between single or double quotes.' EOL
' Separate commands and literals with at least one space.' EOL
' A CR ( RETURN key ) will start a new line.' EOL
' Commands: may be capital and/or lower case letters. Separate commands with a space.' EOL
' EndOP -' EOL
' all literals and commands before an ENDOP command' EOL
' will appear at the beginning of the operation. All ' EOL
' literals and commands after an ENDOP command will appear' EOL
' at the end of the operation. ' EOL
' NewWFO(56), NWFO(56) -' EOL
' The Work Fixture Offset # you specify will be used for all following operations.' EOL
' Do not use with the ncPost multiple part option.' EOL
' 4thAxisCW(12.5), 4ACW(12.5) -' EOL
' generates a + A move of the value you specify' EOL
' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL
' generates a - A move of the value you specify' EOL
' 5thAxisCW(30), 5ACW(30) -' EOL
' generates a + B move of the value you specify' EOL
' 5thAxisCCW(22.5), 5ACCW(22.5) -' EOL
' generates a - B move of the value you specify' EOL
END
RETURN

BeginProgram:
EachOp {Start of post processing *********************}
Plane { no output }
IF FirstOperation?
EOR EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'( PROGRAM: ' ProgramName$ ' )' EOL
END
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ' MoveType$ ' INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale
SeqC AbsOrInc EOL
SeqC Preset Home EOL
END
NextOp
RETURN

EndProgram:
SeqC EOP EOL
EOR EOL
CloseSub
Post2
IF UseComments?
SetScale('1') {restore scale for comments}
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
END
Close
RETURN

{Start of executable Prog, top level ****}

IF MultipleParts? AND WorkFixtureOffsets?
'This processor does not support' EOL
'multiple parts with work fixtures!' EOL
' ' EOL
'Change your setting to use the' EOL
'Equally Spaced Offsets selection!' EOL
' ' EOL
' ' EOL
' ' EOL
ELSE
ProgStart {setup and initializations}
BeginProgram
IF MultipleParts?
IF AllToolsOnePart?
MPallTools1P
ELSE {implied OneToolAllParts?}
MP1ToollAllPs
END
ELSE
NoMPs
END
EndProgram
END


Wyszukiwarka

Podobne podstrony:
Mit Meldas 320M [SAV] MY34 89 1
Mit Meldas 50M [DC] MU33 89 2
Mit M3 Dynamyte 4500 M998 89 2
Mit 520AM Comet [RM] MZ18 89
Mit 530H Takumi [EM] MT55 89
Mit Meldas 50M LW M134 89 2
Mit 520A Comet [IPS] MU09 89
Mit 330M Comet [SRW] M620 89
Mit Meldas 300 [PE] M548 89 1
Mit 520A AS [RH] MT34 89
Mit 500M Comet [DM] MU46 89
Mit Meldas 330M MV70C MY46 89 1

więcej podobnych podstron