M40=PROGRAM STOP W/ OPTIONAL PROGRAM RERUN
M41= OPTIONAL STOP W/ OPTIONAL FORMATTED MESSAGE
M45= OUTPUT ASCII CHARACTER TO SERIAL PORT
I'LL CHECK ON SOME OF THE OTHER STUFF.
I just started working at this granite shope and the current post processor that we are using outputs some codes that I have never seen nor can I find in any books. I was wondering if anyone could possible explain what some of these codes are and how to decipher the NC file?![]()
Also this is a CMS Junior 1.40 with a OASI/10 controller
Here are some of the funky codes that I am not sure about. The actual nc code is below this list!
G79 (I believe this is the Origin)
E190
$ORIG3
E195
M40
M41
CLS
VEN
WOS
UOT
USVAR10
CAMBUT
MSA
UAO
M45
E184
E185
START OF CODE
++++++++++++++++++++++++++++++++++++++++++++
;Program: TEST
;Date: 24-11-2003
(DIF,2,4,13,1,3,1,1)
(CLS,MESSAGGI)
(INP,N2,T!USVAR10(440).19CH,!USVAR10(0).40CH,40,E181)
G00 G79 Z0
G16 X Y
$ORIG3(1)=12.356
E190=12.356
$ORIG3(2)=8
E195=8
$ORIG3(3)=-11.25208
G00 G79 Z0
N0 (IF,E181=1)
T0.0 M6
M5
(CLS,CAMBUT)
(DIS,!USVAR10(480).40CH)
M40
(WOS,$I(34)=1)
(CLS,VEN200)
(UOT,0,X0,Y0,Z-.1)
G00 X11.746Y13.689
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN200)
(UOT,0,X0,Y0,Z-.1)
G00 X23.163Y7.39
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN200)
(UOT,0,X0,Y0,Z-.1)
G00 X38.911Y7.39
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN240)
(UOT,0,X0,Y0,Z0)
G00 X27.256Y14.571
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN240)
(UOT,0,X0,Y0,Z0)
G00 X35.763Y20.474
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN240)
(UOT,0,X0,Y0,Z0)
G00 X19.068Y20.907
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN130)
(UOT,0,X0,Y0,Z0)
G00 X18.513Y13.38
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN130)
(UOT,0,X0,Y0,Z0)
G00 X36.238Y12.908
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(CLS,VEN130)
(UOT,0,X0,Y0,Z0)
G00 X27.256Y21.963
Z-6.14
M40
(WOS,$I(34)=1)
M41
(UOT,0,X0,Y0,Z0)
Z0
(DIS,!USVAR10(160).40CH)
(ENDIF)
G79 X-0 Y55.00
M45
(DAN)
(UPR)
(CLS,SHIFTXY)
(CLS,VEN120)
M40
(WOS,$I(34)=1)
M41
(DIS," SAW_PROFILE ")
G79 G00 Z0
T.0 M6
M5
T2 M6
(UAO,3)
(UOT,3,ZE182)
G90 G00 X27.369 Y-1
Z10.7339 C90
M14 M7 S4500
G90 G09 G01 Z9.1939 F3
Y2 F30
Y17.2534
G00 Z10.7339
X27.4827 Y16.5356 C108
G09 G01 Z9.1939 F3
X27.3261 Y17.0176 F30
G00 Z10.7339
X27.656 Y16.37 C126
G09 G01 Z9.1939 F3
X27.3581 Y16.78 F30
G00 Z10.7339
X27.872 Y16.2661 C144
G09 G01 Z9.1939 F3
X27.462 Y16.564 F30
G00 Z10.7339
X28.1096 Y16.2341 C162
G09 G01 Z9.1939 F3
X27.6276 Y16.3907 F30
G00 Z10.7339
X28.3454 Y16.277 C180
G09 G01 Z9.1939 F3
X1.8386 F30
G00 Z10.7339
X2.5564 Y16.3907 C198
G09 G01 Z9.1939 F3
X2.0744 Y16.2341 F30
G00 Z10.7339
X2.722 Y16.564 C216
G09 G01 Z9.1939 F3
X2.312 Y16.2661 F30
G00 Z10.7339
X2.8259 Y16.78 C234
G09 G01 Z9.1939 F3
X2.528 Y16.37 F30
G00 Z10.7339
X2.8579 Y17.0176 C252
G09 G01 Z9.1939 F3
X2.7013 Y16.5356 F30
G00 Z10.7339
X2.815 Y17.2534 C270
G09 G01 Z9.1939 F3
Y1.7466 F30
G00 Z10.7339
X2.7013 Y2.4644 C288
G09 G01 Z9.1939 F3
X2.8579 Y1.9824 F30
G00 Z10.7339
X2.528 Y2.63 C306
G09 G01 Z9.1939 F3
X2.8259 Y2.22 F30
G00 Z10.7339
X2.312 Y2.7339 C324
G09 G01 Z9.1939 F3
X2.722 Y2.436 F30
G00 Z10.7339
X2.0744 Y2.7659 C342
G09 G01 Z9.1939 F3
X2.5564 Y2.6093 F30
G00 Z10.7339
X1.8386 Y2.723 C360
G09 G01 Z9.1939 F3
X28.3454 F30
G00 Z10.7339
X27.6276 Y2.6093 C18
G09 G01 Z9.1939 F3
X28.1096 Y2.7659 F30
G00 Z10.7339
X27.462 Y2.436 C36
G09 G01 Z9.1939 F3
X27.872 Y2.7339 F30
G00 Z10.7339
X27.3581 Y2.22 C54
G09 G01 Z9.1939 F3
X27.656 Y2.63 F30
G00 Z10.7339
X27.3261 Y1.9824 C72
G09 G01 Z9.1939 F3
X27.4827 Y2.4644 F30
G00 Z10.7339
X27.369 Y1.7466 C90
G09 G01 Z9.1939 F3
Y2 F30
G00 Z10.7339
(DIS," OGEE_EXT Y ROUGH ")
G79 G00 Z0
M5
T0.0 M6
M5
(CLS,CAMBUT)
T.4 M6
G0 G79 Z0
E184=0.026
E185=E184+E183
MSA=E185
(UAO,3)
(UOT,3,ZE182)
G90 G00 X32.592 Y2
Z2.318 C0
M14 M7 S4500
G90 G01 Z0 F25
G42 Y-1
G02 X29.592 Y2 R3
G01 Y9.5 F27
Y17
G03 X28.092 Y18.5 R1.5
G01 X2.092
G03 X0.592 Y17 R1.5
G01 Y2
G03 X2.092 Y0.5 R1.5
G01 X28.092
G03 X29.592 Y2 R1.5
G02 X32.592 Y5 R3 F25
G40 G01 Z1.5
Y2
Z2.318
G00
M45
(DAN)
(UPR)
(DIS," OGEE EXT D1 ")
G79 G00 Z0
M5
T0.0 M6
M5
(CLS,CAMBUT)
T.41 M6
G0 G79 Z0
E184=0.026
E185=E184+E183
MSA=E185
(UAO,3)
(UOT,3,ZE182)
G90 G00 X32.592 Y2
Z2.2065 C0
M14 M7 S4500
G90 G01 Z0 F25
G42 Y-1
G02 X29.592 Y2 R3
G01 Y9.5
Y17
G03 X28.092 Y18.5 R1.5
G01 X2.092
G03 X0.592 Y17 R1.5
G01 Y2
G03 X2.092 Y0.5 R1.5
G01 X28.092
G03 X29.592 Y2 R1.5
G02 X32.592 Y5 R3
G40 G01 Z1.5
Y2
Z2.2065
G00
M45
(DAN)
(UPR)
(DIS," OGEE EXT D3 ")
G79 G00 Z0
M5
T0.0 M6
M5
(CLS,CAMBUT)
T.42 M6
G0 G79 Z0
E184=0.014
E185=E184+E183
MSA=E185
(UAO,3)
(UOT,3,ZE182)
G90 G00 X32.592 Y2
Z2.201 C0
M14 M7 S4500
G90 G01 Z0 F27
G42 Y-1
G02 X29.592 Y2 R3
G01 Y9.5
Y17
G03 X28.092 Y18.5 R1.5
G01 X2.092
G03 X0.592 Y17 R1.5
G01 Y2
G03 X2.092 Y0.5 R1.5
G01 X28.092
G03 X29.592 Y2 R1.5
G02 X32.592 Y5 R3
G40 G01 Z1.5
Y2
Z2.201
G00
M45
(DAN)
(UPR)
(DIS," OGEE EXT D4 ")
G79 G00 Z0
M5
T0.0 M6
M5
(CLS,CAMBUT)
T.43 M6
G0 G79 Z0
E184=0.005
E185=E184+E183
MSA=E185
(UAO,3)
(UOT,3,ZE182)
G90 G00 X32.592 Y2
Z2.158 C0
M14 M7 S4500
G90 G01 Z0 F27
G42 Y-1
G02 X29.592 Y2 R3
G01 Y9.5
Y17
G03 X28.092 Y18.5 R1.5
G01 X2.092
G03 X0.592 Y17 R1.5
G01 Y2
G03 X2.092 Y0.5 R1.5
G01 X28.092
G03 X29.592 Y2 R1.5
G02 X32.592 Y5 R3
G40 G01 Z1.5
Y2
Z2.158
G00
M45
(DAN)
(UPR)
G79 G00 Z0
M05
G79 G00 X0 Y55.118 C0
M5
M30
M40=PROGRAM STOP W/ OPTIONAL PROGRAM RERUN
M41= OPTIONAL STOP W/ OPTIONAL FORMATTED MESSAGE
M45= OUTPUT ASCII CHARACTER TO SERIAL PORT
I'LL CHECK ON SOME OF THE OTHER STUFF.
At my company we have a CMS 5-axis router and some of the code looks familiar and some of it does not.
G79 ---we use it as an absolute zero command (follwed by one or more axis)
E190---?
$ORIG3---there has to be a table that this command refers to, We use the OSAI/10 on 4 machines. As it is very flexible in regards to configuration of the interface it could be anything, though.
E195
M40---spindle off
M41---spindle on
CLS--call of sub program
VEN
WOS
UOT---temporary origin
USVAR10---user variable
CAMBUT---?
MSA---?
UAO---use absolute origin
M45---?
E184---?
E185---?
Of course every machine is different but I would assume that the MSA and E codes are some sort of machine compensation (not tool) maybe for spindle length or tool length. Not sure though, hope you figure it out.
Greetings,
I hope this isn't too late to be of use to you.
CMS machines have their own particular codes written in the chipset. They differ according to the controller used, but there are many that are common.
G79 = reference all moves from machine 0,0,0 (hard home)
They provide this code so that you can program a move without having to change any origin shifts.
Anything with "E" is usually a user variable. For example, I program our CMS for making guitar necks. We have three different heel lengths, so the saw blade needs three different depths. I use the same subprogram, but the main program supplies the depth by a variable, for example
(SUPERSHALL HEEL DEPTH)
E35=-1.5
(MID HEEL DEPTH)
E35=-1.875
(FULL HEEL DEPTH)
E35=2.25
It is then called up in the subprogram when the blade cuts:
G01 ZE35
The number after the "E" controls the type of variable allowed (INTEGER; LONG INTEGER; BYTE; REAL; LONGREAL). The range on your example is much higher then our controller uses (Our format is E0 through E30). The manual implies that the format can go beyond E30 to a user assigned maximum, but I've never tried it). Looking at your code, I'm not sure why the post would spit out the variables without user interaction, but then again, I've never had a good CMS post for our machine. I've had to do a lot "by hand".
M45 is a CMS specific code; I'm not sure what yours would be. Our machine uses an Allen-Bradley 8601MC controller, and has two rotating heads. The M45 for ours closes the dust collection gate on the "B" Head. I suspect yours does something different.
VEN, WOS, MSA along with CLS, UOT, UAO are CMS 3-letter commands. I don't have a listing for VEN, WOS or MSA. If you haven't figured them out I can try and find out what they are.
I have been able to at times talk with CMS' former head of programming. (He's a wealth of knowledge, and generious person). I will see if he recognizes anything in your code. It may take time, he is usually on the move.
Hope I was of some help.
rpm
Looking for an editor to do code for a old anilam crusader 2 controll anyone have an idea thanks okuma
Thats the Swahilee version of CaveMan Cam
The only thing we have to fear is..
getting sucked into a lathe.
G79 -SETS PROGRAMMING IN ABSOLUTE REFERENCE TO MACHINE HOME POSITION
E190 -PARAMETER#190
$ORIG3 -FUNCTION
E195 -PARAMETER#195
M40 -DEACTIVATE SPINDLE RANGE / SPINDLE RANGE RESET
M41 -SPINDLE RANGE
CLS -CALL A SUBROUTINE / SUBPROGRAM
VEN -"VEN200" SUBPROGRAM'S NAME
WOS -WAIT ON SIGNAL / WAIT UNTIL THE CONDITION IS
SATISFIED
UOT -USE TEMPORARY ORIGIN / UOT=UTO COMPATIBILITY
BETWEEN 10 SERIES & 8600 SERIES
!USVAR10 -USER VARIABLE
CAMBUT -CAMBUT SUBPROGRAM'S NAME
MSA -MACHINING STOCK ALLOWANCE / MSA=UOV
UAO -USE ABSOLUTE ORIGIN
M45 -AUTOMATIC SPINDLE RANGE CHANGE
E184 -PARAMETER#184
E185 -PARAMETER#185
INP -INPUT
G16 -DEFINED INTERPOLATION PLANE
DIS -DISPLAYING A VARIABLE
DAN -DEFINE AXIS NAME
UPR -USE PLANE ROTATED
Hope this helps
I am programming a 12 year old CMS Router with an Allen Bradley controller. Does anyone know what G795, G796 & G798 do?
WOS = Wait on signal. Waits until targeted bit in an input or output module equals specified value.
Example:
(WOS,@SX=1)
Addresses of various bits in the input/output modules can be determined with the help of the Programming Manuals + Schematic.
WOS can cause a duel process control to hang up, so it is often better to use a conditional loop instead:
"LOOP"
(GTO,RUN,$I(36)=0)
(GTO,LOOP)
"RUN"
MSA = Make stock allowance. This can be a positive or negative number that directly and temporarily modifies the active tool radius compensation value. Can be used to create rough, repeat or clean-up passes while keeping an accurate tool measurement in the offset table. Can be placed anywhere before tool radius comp is activated and will effect every tool until cancelled.
Example:
MSA=.01
Cancel with:
MSA=0
G*** (G305, G523, etc) are a range of subroutine and canned cycle names that can be run directly as G codes, thus avoiding the uses of the (CLS, ***) command. The G*** subroutines are a text file that can also be used by the machine logic and can perform any programming language function or repetitious task. Opening the file in a text editor is the only sure way of determining what it does. Never open a program file with any kind of editor that inserts format characters (use notepad or wordpad vs. MS office products)
VEN*** is not a command, it is the name of a subroutine used by Glass and Stone machines to display the name and dimensions of various vacuum accessories as the locations are pointed out by the machine. There is a VEN160, VEN200... named and edited for each accessory.
Many CMS machines use subroutines or resident files to manage proprietary functions that are typically external to the control. They may contain any programming language accepted by the control.
I really need help guys!
The company where I started to work has "Monopost CMS model: CN/9R2 RG, serial No.:560", but no user manual fot it. It is quite an old machine...
I saw that you mentioned earlier CMS, so I'm asking if anyone has a *.pdf instructions for its use or if you know where I can find it.
I'm new in programming the machines and help would welcome.
Thank You
Last edited by Marko Kostic; 01-09-2012 at 08:23 AM.
Marko:
Try posting your question here, Machinery Manuals & Brochures - CNCzone.com-The Largest Machinist Community on the net! . That might have more visitors that can answer your question. Good luck.