GE 550 LeBlonde [KSW] L219 82 8


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

{6/21/91
Copied & modified: GE 550 HNC L003.80
For: Keystone Steel & Wire
Machine: LeBlonde Tape-Turn Regal
Control: GE 550 Series Mark Century
Drastic modifications made:
Post is entirely incremental, non-decimal trailing zero format.
No G or M codes.
Only addresses allowed are N, X, Z, I, K, F, S and T.
Maximum axis move = 9.9998, Minimum = 0.0002
RapidF = 100 ipm.
Dwell is programmed 'X' Dwell# 'F0'.
CWSpindle = '+'. CCWSpindle = '-'.
RPM is to be output 'S' TABLE(5001,SpeedRPM#,1).
Programmed stop is output as 'S0'.
Thread move is designated with a literal 'F900' code.
Tapered Threads require I ( Cosine) and K ( Sine/Pitch ) outputs.
Added MATH Formulas for Tapered Thread calculations.
No Canned Cycles are supported.
NOTE: Still need to Support SetMaxAxis('9.9998').
DWB}

{7/15/91
Modified: GE 550 LeBlonde [KSW] L219.80
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Changed FORMAT for RapidF from '##^0' to '###^0'.
All motion lines require a FeedRate or RapidF as they are not modal.
Added subs to output FeedRate and RapidF IF NOT EmptyLine?
Modified FORMAT of X, Z, I & K address from '#^###0;0' to '#^###0;0:2' in Form and Prog.
DWB}

{7/24/91
Modified: GE 550 LeBlonde [KSW] L219.80.1
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Changed FORMAT for FeedRate from '^####0' to '#^##0' in Form.
Moved EOR from first line of output to last line of output in Prog.
DWB}

{9/23/91
Modified: GE 550 LeBlonde [KSW] L219.80.2
For: Keystone Steel & Wire
Updated to Version 4.0 per Fanuc 10T MS [-] L001.82 Format
Modifications made per Al Roe at Keystone Steel & Wire.
Modified FORMAT of I & K address from '#^###0;0:2' to '#^###0:2' in Form.
Changed FORMAT for ThrdLead 'K' address from '#^##0:2' to '#^###0:2' in Form.
Changed ArcIJ to ArcIJC in FormatArc sub.
Corrected SetMaxAxis('9.9998') bug.
DWB}

{3/12/92
Modified: GE 550 LeBlonde [KSW] L219.82
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Deleted MoveXC MoveZC from EachPiece/NextPiece Loop at NewTool.
Changed GetRapidF GetSpeedRPM to RapidF FeedRate at EachPiece/NextPiece Loop at NewTool.
NOTE: Customer reported that coordinate values output are to be even, according to the rules of the
control, and that some values are being output as odd. We need customer to provide us with an
example of this problem.
KM}

{4/10/92
Modified: GE 550 LeBlonde [KSW] L219.82.1
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Changed RapidF FeedRate back to GetRapidF GetSpeedRPM at EachPiece/NextPiece Loop at NewTool.
Deleted OpToolID '00' at end of Prog.
Deleted ProgStop at end of Prog.
KM}

{5/4/92
Modified: GE 550 LeBlonde [KSW] L219.82.2
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Added MoveXC MoveZC back in at EachPiece/NextPiece Loop at NewTool.
KM}

{5/20/92
Modified: GE 550 LeBlonde [KSW] L219.82.3
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Moved GetRapidF GetSpeedRPM to before EachPiece/NextPiece Loop at NewTool.
Added literal 'T0' at end of Prog, to cancel all offsets.
KM}

{5/26/92
Modified: GE 550 LeBlonde [KSW] L219.82.4
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Changed EachPiece/NextPiece Loop at NewTool to SetAbs TrackXNO# EPX# TrackZNO# EPZ# SetInc.
This suppresses output of FIRST move while updating status register. Customer reported that
this FIRST move caused Tool to crash into work.
KM}

{12/18/92
Modified: GE 550 LeBlonde [KSW] L219.82.5
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Added math formula for 30Ą infeed for SingleEdgeCut Threading.
Using VarNum(3) to store shift amount.
JR}

{1/14/93
Modified: GE 550 LeBlonde [KSW] L219.82.6
For: Keystone Steel & Wire
Modifications made per Al Roe at Keystone Steel & Wire.
Updated to Version 4.1 per Numbers Lathe L001.82.1 Format.
Modified math formula for 30Ą infeed for SingleEdgeCut Threading.
Added GetSingleEdgeCut sub and call to same at ToolPath RapidFeat.
Corrected bug of odd-number output reported on 3/12/92.
DWB}

{9/10/96
Modified: GE 550 LeBlonde [KSW] L219.82.7
Creatred: GE 550 LeBlonde [KSW] L219.82.7
For: Ucarb
Changed Prog & Form to use talbe resource 5000 not 5001 to work around bug
in DOS post converter
JM}

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

#1 = '#.00'
#2 = '#^###0;0:2'
#3 = '#######0'
#4 = '00'
#5 = '###^0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(MUL#,2)
FORMAT(FeedIPR#,2)
FORMAT(Dwell#,2) {.72}
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(ToolOffset#,4)
FORMAT(RapidF#,5)

{Added Subroutines *********************************************************}

GetSpeedRPM:
IF Flag?('1')
SetFlagF('1')
'S'
IF CWSpindle?
'+'
ELSE
'-'
END
TABLE(5000,SpeedRPM#,1)
END
RETURN

GetRapidF:
IF NOT EmptyLine?
RapidF
END
RETURN

GetFeedRate:
IF NOT EmptyLine?
FeedRate
END
RETURN

GetTT:
SetAbs
SetStatusOff
StockOff
Save# Num#('2') SUB# SetTTOff CycleStartX# SetTTOk CycleStartX#
Save# Num#('1') SUB# SetTTOff CycleStartZ# SetTTOk CycleStartZ#
SetStatusOn
SetInc
RETURN

GetExit:
SetAbs
SetStatusOff
IF ApproachFace?
Save# Num#('7') ClearancePlane3# { ZEOpCP }
ELSE
Save# Num#('7') MUL# ClearancePlane3# Num#('2') { XEOpCD PosSideLathe }
Save# Num#('8') SUB# ClearancePlane3# Recall# Num#('2') { For XsAreRadii NewTool }
END
SetStatusOn
SetInc
RETURN

GetX:
Save# Num#('6') DIV# Recall# Num#('4') Num#('2') { PosSideLathe }
RETURN

GetZ:
Save# Num#('5') Recall# Num#('3')
RETURN

GetXTT:
Save# Num#('6') DIV# ADD# Recall# Num#('4') Recall# Num#('2') Num#('1') { XsAreRadii PosSideLathe }
RETURN

GetZTT:
Save# Num#('5') ADD# Recall# Num#('3') Recall# Num#('1')
RETURN

DoLoad:
SetAbs
SetTTOff
LoadFeat Recall# Num#('5') Recall# Num#('6')
SetTTOk
SetInc
RETURN

LoadX:
GetX DoLoad
RETURN

LoadZ:
GetZ DoLoad
RETURN

LoadXZ:
GetX GetZ DoLoad
RETURN

LoadXTT:
GetXTT DoLoad
RETURN

LoadZTT:
GetZTT DoLoad
RETURN

LoadXTTZ:
GetXTT GetZ DoLoad
RETURN

LoadXZTT:
GetX GetZTT DoLoad
RETURN

LoadXTTZTT:
GetXTT GetZTT DoLoad
RETURN

DoRapidX:
EachPiece
SeqC MoveXC GetRapidF EOL
NextPiece
RETURN

DoRapidZ:
EachPiece
SeqC MoveZC GetRapidF EOL
NextPiece
RETURN

DoRapidXZ:
EachPiece
SeqC MoveXC MoveZC GetRapidF EOL
NextPiece
RETURN

DoFeedX:
EachPiece
SeqC MoveXC GetFeedRate EOL
NextPiece
RETURN

DoFeedZ:
EachPiece
SeqC MoveZC GetFeedRate EOL
NextPiece
RETURN

DoFeedXZ:
EachPiece
SeqC MoveXC MoveZC GetFeedRate EOL
NextPiece
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

DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'( OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'( ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'( ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'( TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'( ' ToolComment$ ' )' EOL
END
RestoreScale
END
RETURN

PSInit: {reset flags from last Op, .70}
RETURN

PSStuff:
RETURN

DoPostScript:
PSInit
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN

DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN

GetXCP:
SetAbs
SetStatusOff
Save# Num#('4') XStockMax#
SetStatusOn
SetInc
RETURN

GetZCP:
SetAbs
SetStatusOff
Save# Num#('3') ZStockMax#
SetStatusOn
SetInc
RETURN

GetXOpCD:
SetAbs
SetStatusOff
Save# Num#('4') XOpCD#
SetStatusOn
SetInc
RETURN

GetZOpCP:
SetAbs
SetStatusOff
Save# Num#('3') ZOpCP#
SetStatusOn
SetInc
RETURN

GetXSP:
SetAbs
SetStatusOff
StockOn
Save# Num#('4') CycleStartX#
StockOff
SetStatusOn
SetInc
RETURN

GetZSP:
SetAbs
SetStatusOff
StockOn
Save# Num#('3') CycleStartZ#
StockOff
SetStatusOn
SetInc
RETURN

GetNewToolXOpECD:
SetAbs
Save# Num#('4') Recall# Num#('8')
SetInc
RETURN

GetSameToolXOpECD:
SetAbs
Save# Num#('4') Recall# Num#('7')
SetInc
RETURN

GetSameToolZOpECP:
SetAbs
Save# Num#('3') Recall# Num#('7')
SetInc
RETURN

ODApproachSP:
GetZSP LoadZTT
StockOff DoRapidZ
GetXOpCD LoadXTT
DoRapidX
IF NotEqual? CycleStartX# XOpCD#
GetXSP LoadXTT
StockOff DoFeedX
END
StockOn
RETURN

IDApproachSP:
GetZSP LoadZTT
StockOff DoRapidZ
GetXOpCD LoadXTT
DoRapidX
IF NotEqual? CycleStartX# XOpCD#
GetXSP LoadXTT
StockOff DoFeedX
END
StockOn
RETURN

FaceApproachSP:
GetXSP LoadXTT
StockOff DoRapidX
GetZOpCP LoadZTT
DoRapidZ
IF NotEqual? CycleStartZ# ZOpCP#
GetZSP LoadZTT
StockOff DoFeedZ
END
StockOn
RETURN

AppMove:
LoadXTTZTT
StockOff DoRapidXZ
RETURN

Approach: { NOT FOR TAILSTOCK, .82 }
GetZCP
IF ApproachOD?
GetXCP AppMove
ODApproachSP
ELSE
IF ApproachID?
GetXOpCD AppMove
IDApproachSP
ELSE {ApproachFace}
GetXSP AppMove
FaceApproachSP
END
END
RETURN

CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC 'S0' EOL { ProgStop }
END
IF NewToolOffset?
SeqC OpToolID ToolOffset# EOL
END
IF LAST ProgStop?
SetFlag('1') { For GetSpeedRPM }
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SetFlag('1') { For GetSpeedRPM }
END
END
SeqC GetSpeedRPM EOL
DoPostScript
RETURN

FormatArc:
MoveXC MoveZC ArcIJC
RETURN

GetICosine:
IF Taper?
'I' MUL# FeedIPR# DIV# Taper# FinishZInc#
END
RETURN

GetSingleEdgeCut:
SetStatusOff
SetAbs
Save# Num#('4') EPX#
Save# Num#('3') ADD# SPZ# MUL# Num#('-1') ABS# MUL# SUB# SPX# EPX# TAN# Num#('30')
SetInc
SetStatusOn
LoadXTTZTT
RETURN

ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'X20000F0' EOL { Dwell }
SeqC 'S'
IF CWSpindle? { InverseSpinOn }
'-'
ELSE
'+'
END
TABLE(5001,SpeedRPM#,1) EOL
ELSE
IF Dwell?
SeqC 'X' Dwell# 'F0' EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
IF Threading? AND SingleEdgeCut? AND NEXT ThreadFeat? AND NOT Taper?
GetSingleEdgeCut
END
DoRapidXZ
ELSE
IF LineFeat?
IF CannedCycle? AND Drilling? AND Tap?
EachPiece
SeqC MoveXC MoveZC 'K' FeedIPR# 'F900' EOL
NextPiece
ELSE
DoFeedXZ
END
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc GetFeedRate EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
EachPiece
SeqC MoveXC MoveZC GetICosine ThrdLead 'F900' EOL
NextPiece
END
END
END
END
END
IF LastFeat?
SetAbs
SetStatusOff
Save# Num#('4') EPX#
Save# Num#('3') EPZ#
SetStatusOn
SetInc
END
NEXTFeat
RETURN

{Start of executable Prog **************************************************}

{setup and initializations}
InitProg
SetInc
PosSideLathe
StandardXZArcs
XsAreRadii
SetMaxAxis('9.9998')
SetMaxRPM('10000')
SetMaxFeed('500')
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: must be all capital letters when typed in.' 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
END
EachOp {Start of post processing *********************}
GetLCycle
GetTT
IF FirstOperation?
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 INCREMENTAL INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
DoOpComments
DoPostScript
Plane
SetFlag('1') { For GetSpeedRPM }
Seq GetSpeedRPM EOL
SeqC OpToolID ToolOffset# EOL
Approach
ELSE
IF NewTool?

{Finish off last Operation}

StockOff {.62}
IF LAST ApproachOD?
GetXCP LoadXTTZTT
DoRapidX
ELSE
IF LAST ApproachID?
GetNewToolXOpECD LoadXTTZTT
DoRapidX
END
END
GetZCP LoadXTTZTT
DoRapidZ
DoEndOpPS
SetStatusOff
Save# Num#('4') NewHomeX#
Save# Num#('3') NewHomeZ#
SetStatusOn
LoadXTTZTT
DoRapidXZ
SeqC LOfstOff '00' EOL
IF LAST ProgStop?
SeqC 'S0' EOL { ProgStop }
ELSE
SeqC ProgStop EOL
END

{Start new Operation}

DoOpComments
DoPostScript
SetFlag('1') { For GetSpeedRPM }
Seq GetSpeedRPM EOL
SetAbs
SetStatusOff
Save# Num#('4') HomeX#
Save# Num#('3') HomeZ#
SetStatusOn
LoadXTTZTT
TrackXNO# EPX#
TrackZNO# EPZ#
SetInc
SeqC OpToolID ToolOffset# EOL
Approach
ELSE
IF SameTool? {.62}

{Start new Operation}

StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
GetXSP GetZSP LoadXTTZTT
StockOff DoRapidXZ
StockOn
ELSE
IF ApproachOD?
IF LAST ApproachOD?
GetSameToolXOpECD LoadXZTT
DoRapidX
ELSE {around}
IF LAST ApproachID?
GetSameToolXOpECD LoadXTTZ
DoRapidX
END
GetZCP LoadXTTZTT
DoRapidZ
GetXCP LoadXTTZTT
DoRapidX
END
CheckOffset
ODApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
GetSameToolXOpECD LoadXZTT
DoRapidX
ELSE
IF LAST ApproachOD? {around}
GetXCP LoadXTTZ
DoRapidX
END
GetZCP LoadXTTZTT
DoRapidZ
GetXOpCD LoadXTTZTT
DoRapidX
END
CheckOffset
IDApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
GetSameToolZOpECP LoadXTTZ
DoRapidZ
ELSE
IF LAST ApproachOD? {around}
GetXCP LoadXTTZ
DoRapidX
ELSE {LAST ApproachID}
GetSameToolXOpECD LoadXTTZ
DoRapidX
END
GetZCP LoadXZTT
DoRapidZ
END
CheckOffset
FaceApproachSP
END
END
END
END
END
END {common point for all operations}
GetExit
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving? AND NOT RoughSimple? AND NOT Threading?
StockOff
IF Turning?
SetPass1
IF ApproachOD?
GetSameToolXOpECD LoadXZTT
DoRapidX
ODApproachSP
ELSE
IF ApproachID?
GetSameToolXOpECD LoadXZTT
DoRapidX
IDApproachSP
ELSE {ApproachFace}
GetSameToolZOpECP LoadXTTZ
DoRapidz
FaceApproachSP
END
END
ELSE
SetPass2
END
SetAbs
SetStatusOff
Save# Num#('4') CycleStartX#
Save# Num#('3') CycleStartZ#
SetStatusOn
LoadXTTZTT
SetInc
DoRapidXZ
ToolPath
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'X20000F0' EOL { Dwell }
SetFlag('1') { For GetSpeedRPM }
SeqC GetSpeedRPM EOL { SpinOn }
END
NextOp {loops back to EachOP until last Operation}

{End of program ************************************************************}

{finish last operation}
StockOff
IF ApproachOD?
GetXCP LoadXTTZTT
DoRapidX
ELSE
IF ApproachID?
GetNewToolXOpECD LoadXTTZTT
DoRapidX
END
END
GetZCP LoadXTTZTT
DoRapidZ
DoEndOpPS
SetAbs
SetStatusOff
Save# Num#('4') FirstHomeX#
Save# Num#('3') FirstHomeZ#
SetStatusOn
LoadXTTZTT
SetInc
DoRapidXZ
SeqC 'T0' EOL
EOR EOL
Post
Close
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
Close
END


Wyszukiwarka

Podobne podstrony:
GE 550 LeBlonde (CCD) L178 82
GE 550 LeBlond (HAC) L115 82
GE 550 LeBlonde L080 82
GE 1050T LeBlonde [CM] L249 82
GE 1050 LeBlonde [DEW] L250 82
GE 550 Okuma LS N L059 82 1
GE 550 HNC [AMC] L246 82
GE 102C Leblond [GV] L073 82 2
GE 550T LeBlonde L082 82
GE 550 L&S [GV] L293 82 3
GE 550L LeBlonde L083 82
GE 550L LeBlonde [R&R] L241 82
GE 550 L&S L184 82 5
GE 1050 LeBlonde Rgl L033 85
GE 550 DeVlieg 4K M908 89
GE 550 M087 87
GE 550 MC [SN] NMU25 87 1
GE 550 L&S [FC] L407 85
GE 1050T LeBlonde L105 85 1

więcej podobnych podstron