View Full Version : Anyone have any experience on a K16?

01-30-2010, 12:03 PM
We just got a K16 VII in our shop to compliment our L20 VII. It looks like a great little machine, and I really like the idea of the virtual axis.

Up until this point I've only been programming on mills and lathes. Our main guy in our shop who does all of the programming besides me (there is me and him), has been having problems with his hands and feet losing all their skin and hes been flaky on coming into work and such (my boss understands, hes not going to be fired over something he cant really control), so my boss is going to be sending me for K16 programming training, and the K16 will basically become "mine".

The l20 has a mitsubishi control whereas the k16 has a fanuc, so no one in the shop really knows the fanuc control, even though its got to be similar to the mitsubishi, just not as fancy with the pictures and stuff, but who needs those right.

Ive got the programming manual here and reading it is quite very interesting, I know the jist of how these machines work, but reading about the machining modes etc has left myself with a great many ideas regardining ways to manipulate the machine to do things its not "supposed" to do :bat:

Im am quite excited to be given a chance to run such a great machine so early in my career, does anyone have any experience they could share on this machine?

02-02-2010, 02:44 PM
I know K machine very well - very quick and accurate

Even though its Fanuc controlled, as opposed to Mitsubishi, the programs are nigh on identical and you could take a program from your L20 and easily convert it to run on the machine with following logic - i assumed your programming L20 with G800 commands

G821 becomes G610 on K machine

G820 is G630

G811 is G650

G810 is G600

You can't use #814(bar size) and #817(cutoff rpm) variables - you could of course use standard #500/#100 variables

All equations (+,-,/,* etc) have to be within square brackets on Fanuc machines

Some of the variables in G83,G76 commands etc use microns on K machines (you may be able to change parameters)

Fanuc uses ,A for angles (again parameter change)

All your collet chucks and cutting tools should be common

Last part is bit more awkward to program as Fanuc control doesn't run M98 H subroutine same way as Mitsubishi does - easy to do via simple macro

Good luck!

02-02-2010, 05:54 PM
Ive not actually done any programming of my own on the L20, but those differences are great to know, even our guy who does the L20 programming didnt know of those such differences - we assumed the gcodes would be pretty much the same. I know how to set up jobs on it though.

No one does any macro/parametric programming in our shop, something I hope to change (ive done little stuff such as setting feeds rates as parameters for easy rate changing rather than skimming through an entire program and changing values). We encountered problems running hex material in our L20 with the bar loader timing out during attempting to load.. Ive thought of a way to fix this but it would require editing the actual barloading macro itself which im not sure you can do? There is the generic barload program, but that calls an M function which does everything, I need to be able to change that function.

The microns thing shouldnt be an issue, though we use imperial for all of our work, well even convert metric values to inches.. something I dont quite understand, it would probably be far simpler to tell the machine the program is in metric and just use the values it gives rather than rounding off the hundred thousandths of an inch.

Can you elaborate on what you mean about the "last part"? Do you mean literally the machine knowing when its on it last part, or do you mean that the last part of what you were saying is that the machine is a little harder to program on due to no m98? Like I said I havnt had any formal training on the L20 or done any real programming aside from simple MDI stuff and synching the spindles, so im not quite aware of what that does.

Thanks for the reply

cheers :)

02-03-2010, 09:25 AM
"We encountered problems running hex material in our L20 with the bar loader timing out during attempting to load.. Ive thought of a way to fix this but it would require editing the actual barloading macro itself which im not sure you can do? "

We normally use a dedicated subprogram for the barfeed (not a macro called via M108/M109). I have outlined below

G1G99X#814+0.05 W-3.0 F0.05
M26 - This picks up G899 alignment

M108 macro on K series is standard method

The barfeed control is set to pulse and it will just pulse till it finds its way through main collet

The last part is optional via G999/N999 command and is a means of running the back end of part twice in the once cycle during setup. I.e if you were making a shaft for example and you wanted to inspect it you'd have to run 2 cycles to get a complete part and you'll end up wasting material. If you program with G999 then rather than stop at the end of the cycle with a part in the subspindle half done, it will carry on and do the back end again.

Its easy on a L20 but requires a simple macro command IF/GOTO on Fanuc control

02-03-2010, 10:21 AM
our K16 does have a G999/N999 last program, or so the programming manual has stated, I think the book states its used more for end of program, cut off and position setting.. Ill learn more at the training in a month I guess. Macros dont scare me at all, Ive been a programmer all my life and macros = fun for me :)

For our hex the bar loader would pulse like you said until it found its way into the collet, however sometimes it woudlnt find it and it would time out. We had even dropped the spindle speed as low as 5rpm. My idea was to index the spindle a few degrees at a time each time it attempts the pulse. With hex that is a max of 60 degrees youd need to turn in order for the bar to go in.

We dont have a keyd collet system in our L20, and we were thinking that the collet itself was sometimes catching the bar and spinning on itself, causing the time out, as wed have to resync the main spindle and guide bushing each time it happened.

Thanks for the replies

03-18-2010, 08:16 PM
Hey everyone, Ive been to training in new jersey and im rockin' and rollin' on this machine now and.. what a piece haha. It is nothing compared to the L20.. the fanuc control is lacking so much in comparison to the mitsubishis in terms of ease of use. the machine is tiny and it is fast, but its pretty clear that this is a "budget" citizen machine. Any-who, Ive come across some issues that perhaps someone may be able to answer:

1) Is there any way to keep the sub spindle near the guide bushing in a "waiting" position while in G610 rather than returning to Z2 home? The manuals and even my TRAINING notes from citizen themselves say you can use a Z argument along with M141 to define how far it retracts.. Tried using both positive values in Z as well as even trying W but it just always retracts home no matter what. Pretty annoying for a current part we're running (pretty much spot, drill, cut off, its a simple "dough nut" part), and it could run so much faster if it didnt retract all the way, we're trying to get multiple parts per chuck for speed but we're really not saving much because the whole reason for going for multiple parts per chuck was so that the machine didnt return home at the end of its cycle!

2) In the fanuc control when you are editing/writing a program is there any way to turn off "insert"?!?!?! Its completely frustrating that it simply overwrites whatever is currently there.. for instance if I had a line:
G1 Z0.5 X2.3 F0.003
and I wanted to change that Z value to something like say Z0.5015 I would have to erase the entire line and rewrite it because if I just went to the start of Z and started writing, it just overwrites everything and I would end up with
G1 Z0.5015.3 F0.003
rather than
G1 Z0.5015 X2.3 F0.003

We cannot figure it out at work and it is mighty annoying.

Overall the K is a fun machine, though its really meant for small guys like myself.. its just so cramped in there, I coudlnt imagine being a big dude and having to work on this thing haha.


03-19-2010, 07:09 AM
If you put the cursor where you want to ADD then press the INSERT key before you start typing it will move the code ahead as you type.

03-19-2010, 07:18 AM
Without seeing exactly what you are trying to achieve you have a couple of options

1 In G610 mode you do not need to command M141 to retract as if you change mode to say G630 it will retract anyway

2 For every G610/G630 mode commanded use a W0 (Z) or U0(X) on the command line to not reference that portion of the axis

3 Program the job in G600 free mode throughout but then all subspindle moves are in absoleute format

good luck

03-19-2010, 06:12 PM
What I am trying to achieve is pretty simple, im making essentially a washer, its a piece of nylon 1/4 diameter .075 wide with a .089 hole through it.

Using 3 tools, cutoff, spot and drill.

Im trying to get as many parts per chuck as I can and trying to make it as fast as I can as well. What I am trying to achieve is for the back headstock NOT to retract all the way home once I start using the cut off tool. We're not picking the part off but rather just letting it fall into the tray to be picked out later, so its simply
spot, drill, cut off; spot drill cutoff; and so on and so forth, and there is no reason for the back headstock to go all the way home, it need only retract all of half an inch at most.

I tried removing the m141 and keeping the back headstock upfront, but chaning to an empty tool post such that there was room for the bar to work, but I found out that as soon as you call any of the gang tools the back retracts home. Am I right to assume the issue is turning interference check off, if I can even do that on this machine?

Its nothing huge.. but over the course of 100k+ of these things.. that movement is a lot of time savings.

Thanks for the tip cogsman1

03-20-2010, 07:15 PM
Well I realized I can do what I want in G620 and I started proving out a program which was working nicely but I came across a problem I am hoping someone could address.

Here is my code

G0 X.3 Z0. T1
G1 X.01 F.0025
X.246 Z.02 F.002
Z.05 F.01
Z.1456 F.003
X.230 Z.1545 F.002
!2 L2

G620 U0;
G0 Z-1.0

G0 Z-.02 T24
G1 Z.039 F.0025

$1 gets to !2L2 and waits until $2 reaches !1L2 however $2 stops doing anything once it gets to the line G1 Z.039 F.0025. It rapids to position -.02 and then just does nothing.

The machine just stops all movement, $1 is waiting on cue for $2 but $2 never gets past the G1 line. The Z2 work position remains at Z-.02 and no matter how much I turn the hand wheel there is no movement.

I know the axis are superimposed because the Z2 axis follows the Z1 while it is moving in Z, but while that is happening it should be spotting and drilling in $2 but it just never starts the spot!

Im pretty baffled. I know the Z2 hasnt run out of movement because I can put the spot and drill into the guide bushing manually without any overtravel. At first I thought it was an interference issue so I used M88 but that didnt solve anything..

Any advice would be greatly appreciated!

03-21-2010, 06:03 AM
I think its something to do with subspindle encoder and programming feed / rev in G620 mode.

Try running the subspindle whilst drilling (you'll need to close collet M15 first to get above 200 rpm).

If this doesn't work try using G43 (subspindle encoder off) and then reenable G44 again

03-21-2010, 09:03 AM
I believe that you DO need the G43 in $2. That will tell the feedrate to be calculated from the RPM of the MAIN spindle. It must be waitting for spindle 2 to rotate and it is not.

G44 = follow Sub spindle RPM
G43 = follow Main spindle RPM

03-21-2010, 12:26 PM
Well I dont know if the machine has G43/G44, it was taught to me and that does make sense but it is not in the machines code list, or the programming manual.. hmm.

Ill try spinning the sub up to the same speed as the main and see if anything happens.

If that doesnt work Im going to try drilling in IPM mode so its not related to the spindle speed at all (obv have to do some calculations).

coincidentally the manuals example of G620 shows $1 in IPR and $2 in IPM so perhaps that is the key here. Will post back with results :)

03-21-2010, 05:35 PM
I got it to work and trimmed 3 seconds off the cycle time :)

What I did was turned the sub spindle to the same rpm as the main and made sure it was in G99 and it worked which I am very pleased with considering im new to these machines. Really appreciate the advice.

I want to use a macro to loop everything in the G620 part, will using a loop work in both $1 and $2 at once? ie if I had something like

#101=10 (number of loops)

GOTO 100

end prog



will the goto in $1 also carry over to $2 or should I put the whole G620 section as a subprogram and loop that?

04-27-2011, 03:06 AM
After 1 year this topic helped me also a lot. This is the first CNC that I'm programming and I got only a 2 days training from a Citizen programmer (I'm an amateur programmer, if I can call it like this).
I've earned also 3 seconds (from 11 to 8 sec). I've run the sub spindle in $2 at the same rpm like in the main spindle in $1 and surprise: the machine continued to work without stopping (like before).
Thank you glenthemann for opening this topic and UK Engineer for your suport.