584,866 active members*
5,132 visitors online*
Register for free
Login
Page 20 of 23 101819202122
Results 381 to 400 of 459
  1. #381
    Join Date
    Jun 2004
    Posts
    355

    Re: Hurco BMC20 Dynomotion Retrofit

    Quote Originally Posted by Need TECH Help! View Post
    Hi m_C,
    The other day i was looking at flow control valves and found one that has an exhaust built into it. Need to check if they are one way. Also noticed the gauge on my machine pressure regulator was reading about 85-90psi and shop pressure is 100-110. Did a quick test and lowered pressure regulator to about 60psi on gauge this helped more and i did not notice any speed reduction. Going to swap out the gauge today and see if its bad.
    Just had a quick search, and this is the kind of valve I'm thinking off - https://www.airlines-pneumatics.co.u...ush-in/S070132
    They work by allowing a free flow of air into the cylinder, but restrict the exhausting, so the venting air acts as a cushion, however too high a pressure could also cause the problem you're having, so probably wise to check the pressure first.

  2. #382
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Hi Tom,
    I have tool 8 that i typed into text file and saved. When i do a tool change, say M6T5, the print out says "Tool Changed to Tool 8"

  3. #383
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Hi m_c,
    My gauge is only off about 5psi maybe. So it wasnt the issue. I would think that the cylinders are designed to work off of 90 psi. The manufacture sticker is worn off so i dont know for sure.
    Thanks for the link, if i cant get the built in air cushion to work i will try that valve.
    Troy

  4. #384
    Join Date
    May 2006
    Posts
    4043

    Re: Hurco BMC20 Dynomotion Retrofit

    Hi Troy,

    I have tool 8 that i typed into text file and saved. When i do a tool change, say M6T5, the print out says "Tool Changed to Tool 8"
    Obviously it should print 5 not 8.

    Please post the M6 Tool change C program that you are using with all the latest changes.

    Also show us how you have the M6 Action configured.
    TK
    http://dynomotion.com

  5. #385
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Hi Tom,
    So when i was trouble shooting i had these 2 lines commented out in the M6 tool change C code keeping it from writing to text file.

    Code:
    persist.UserData[157] = persist.UserData[6];	// Update current tool number
    persist.UserData[161] = 0;	// toolchanger finished
    Now tool change is writing to text file as it should. In KMotionCNC Tool Setup the M6 is set to Exec./Wait.
    Also have a working C code for Referencing machine axis and the Tool Changer. The Tool Changer reference sequence rotates carousel to limit switch which is at tool 16 slot. Then it opens a text file called Tool_16.txt that has tool 16 saved in it and sets KmotionCNC as active tool 16. After this, Ccode opens the KFlopData.txt file that has last used tool, and sets KMCNC active tool to whats in this file, then rotates TC carousel to this tool slot. So far it seems to be working correctly.
    Attached are the C codes iam currently using. Iam sure its fairly sloppy coding but thats the extent of my understanding of Ccode.

    Troy

  6. #386
    Join Date
    May 2012
    Posts
    537

    Re: Hurco BMC20 Dynomotion Retrofit

    Glad to hear you got it all working!

    FWIW most CNC's simply save the last position of the toolchanger and thats it, no referencing the toolchanger on each start up. Id probably set that up as an M code to recover from possible lost position rather then have the toolchanger going nuts every time you start the machine. But im sure what you have will work fine too if you dont mind the extra toolchanges every morning.

    The only point of saving the tool number to file was for the next start up. Since your using referencing the tool changer, you really didnt need to mess with saving or loading files at all. Just do your thing to find pocket 16, then set persist.UserData[157] = 16 and your good to go.

  7. #387
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Hi mmurray,

    The only point of saving the tool number to file was for the next start up. Since your using referencing the tool changer, you really didn't need to mess with saving or loading files at all. Just do your thing to find pocket 16, then set persist.UserData[157] = 16 and your good to go.
    I thought of this, but the sort of redundancy eliminates more human error on my part. It doesnt actually do a tool change, just rotates carousel to position.The limit switch on carousel is Hurco's original setup. They still calibrate there tool changer today, at least on there swing arm style. Haas carousel does a calibration at first machine start up also.
    Was going to ask how i could set tool 16 instead of calling on another text file, thanks, will give this a try. persist.UserData[157] = 16

    Troy

  8. #388
    Join Date
    May 2012
    Posts
    537

    Re: Hurco BMC20 Dynomotion Retrofit

    Be careful moving carousel only. Things could get messed up if theres a tool left in spindle and it doesnt get put away in the right place. Wouldn't want to end up in some kind of situation where its trying to do a tool change with a tool in spindle, and current carosel pocket too. Might be safer to go through all the toolchange steps while referencing the carousel.

    I guess all machines are different. My Fadal has nothing to reference toolchanger, pockets are not even numbered. At my last shop we had a Fanuc with side mount toolchanger and that had nothing to reference as well, just relied on memory. We also had a Mazak 510 but that had a little different, it had a servo driven drum, and the servo drive had a battery backup for position so it always knew where it was. Seemed like the battery would always go dead at worst possible time, and was a pain to recover lol.

  9. #389
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Be careful moving carousel only. Things could get messed up if theres a tool left in spindle and it doesnt get put away in the right place. Wouldn't want to end up in some kind of situation where its trying to do a tool change with a tool in spindle, and current carosel pocket too. Might be safer to go through all the toolchange steps while referencing the carousel.
    This was my thought if machine was shut off with tool in spindle. If TC reference was allowed to do a tool change at position 16 and there is a tool in spindle and carousel that would cause a crash also. At least if it is not actually doing a tool change, just rotating carousel in position, and for some reason tool in spindle and tool slot in carousel did not match up, user would have an opportunity to see that tool slot has a tool in it without a tool change happening.

    Ya, i ran some Bridgeports/Fanuc that where a pain to get tool changer back into position if something failed. Sometimes had to reset all the tool locations. If there was a referencing for TC it would have made things a lot easier.

  10. #390
    Join Date
    May 2012
    Posts
    537

    Re: Hurco BMC20 Dynomotion Retrofit

    If you know of an issue, better to fix it properly so there cant be any problem. If you leave it to an operator to potentially see the problem and stop it, it will certainly cause a problem eventually. Probably the first or second time it happens lol. You really cant trust us operators with much lol.

    It should be really easy to do everything you want to reference safely. Just create a copy of your M6toolchange program, and use this as a starting point. Change step "9. Rotate Carousel" to simply rotate until you find that sensor and locate pocket 16. Then at the end of that program set the current tool, persist.UserData[157] = 16 and you should be good. If theres a tool in the spindle, it will put it in the right place before moving anything else. If its empty, no big deal.

  11. #391
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Did some more tests and found some Ccode issues.
    1. After i run my machine/ToolChanger reference Ccode.Then do a MDI tool change, the tool change sequence faults out at the point where the tool changer should move out to spindle. After i run my main INIT code to reset fault, the tool change sequence works fine.

    2. I did a simple Gcode test like this....
    G53G0Z0.
    M6T5
    G53G0Z-2.
    G53G0Z0.
    M30

    And after tool change i get a Following error on z axis when the G53G0Z-2. trys to execute. So i did a test by commenting out the Z axis position move in my M6ToolChange Ccode. And G code ran fine. Of course Z axis did not position for tool change.
    This is the Z axis move in the M6ToolChange code that i commented out....

    Code:
    // 4. Move to toolchange position Z-1.01inches from Reference Position
    	{
    		Move(Z, -20528);
    		while (!CheckDone(2))
    		WaitNextTimeSlice();	// wait until we are stopped
    	}


    Also tried using the below command to move Z axis but still had same issue of Following Error on Z axis.

    Code:
    MoveAtVel(2, -20528, 20000);
    	while (!CheckDone(2)) WaitNextTimeSlice(); // wait until we are stopped

    Any ideas what am i missing in my M6Tool change code?

    Code:
    #include "KMotionDef.h"
    #define TMP 10					// which spare persist to use to transfer data
    #include "KflopToKMotionCNCFunctions.c"
    //#define Z 2
    
    
    
    main()
    {
    	if (!ReadBit(137))
    		return 0;				// if in Estop, Exit program
    
    
    // 1. Determine how many pockets to rotate
    
    	int pockets = persist.UserData[6] - persist.UserData[157];	// pockets = requested tool - current tool
    
    	if (pockets == 0)
    		return 0;				// No toolchange needed, End
    	if (pockets >= 8)
    		pockets = -16 + pockets;	// If more then halfway CW, reverse
    	if (pockets <= -8)
    		pockets = 16 + pockets;	// If more then halfway CCW, reverse
    
    
    	persist.UserData[161] = 1;	// Toolchanger active disable feedhold button
    	ResumeCoordinatedMotion();	// Clear feedhold
    
    
    
    // 3. Turn off spindle
    
    	if (ReadBit(147) || ReadBit(148))	//check if spindle is running forward or reverse
    	{
    		SetBit(147);			// turn off spindle clockwise
    		SetBit(148);			// turn off spindle counterclockwise
    		while(fast_fabs(Spindle.TrueSpeedRPS)*60.0>5.0);//wait untiless than 5RPM
    		Delay_sec(.2);
    		ClearBit(147);
    		ClearBit(148);
    	}
    
    
    
    // 4. Move to toolchange position Z-1.01inches from Reference Position
    	{
    		MoveAtVel(2, -20528, 20000);
    	    while (!CheckDone(2)) 
            WaitNextTimeSlice(); // wait until we are stopped
    		//Move(Z, -20528);
    		//while (!CheckDone(2))
    		//WaitNextTimeSlice();	// wait until we are stopped
    	}
    
    // 5. Orientate
    
    	if (!ReadBit(1035) || !ReadBit(1037))		// if toolchanger slide is not home estop
    	{
    		MsgBox("E-Stop TC not Home",MB_OK|MB_ICONEXCLAMATION);
    		printf("E-stop Toolchanger not Home");
    		DoPC(PC_COMM_ESTOP);			// E-stop
    		
    	}
    
    
    	{
    		persist.UserData[155] = 1;	// Enable orientate speed override
    		SetBit(156);			// Kanalog Switch4 to turn on SpindleOrientateProxSensor
    		Delay_sec(0.1);			// Delay 0.1s
    		DAC(7, -16);			// set motor rpm approx 30
    		SetBit(147);			// spindle on CW        
    		Delay_sec(0.2);			// wait for spindle to reach speed  
    		while (!ReadBit(1038))
    			WaitNextTimeSlice();	// wait for SpindleOrientateProx signal
    		SetBit(48);				// Signal to VFD, set VFD to ZeroServoCommand
    		Delay_sec(0.90);		// Delay for spindle to stop at orientation that is set in VFD parameter
    	}
    
    
    	{
    
    		persist.UserData[155] = 0;	// Spindle speed normal
    		Delay_sec(0.75);		// wait before checking if successfull
    	}
    
    
    	while (!ReadBit(1035) || !ReadBit(1037))
    		WaitNextTimeSlice();	// Check TC is at home position.
    
    
    // 6. Tool Chnager OUT
    
    	SetBit(63);					// TC_OUT solenoid
    	Delay_sec(1.1);
    	ClearBit(63);				//TC_OUT solenoid
    	double TF = Time_sec() + 2;	// timeout in 2 seconds
    
    	while (!ReadBit(1034))		// Wait for TC_OUT limit switch
    	{
    		WaitNextTimeSlice();
    
    		if (Time_sec() > TF)	// Timed out?
    		{
    			if (MsgBox("E-Stop TC Not OUT", MB_OK | MB_ICONEXCLAMATION))
    			{
    	
    				DoPC(PC_COMM_ESTOP);//Estop
    				
    				persist.UserData[161] = 0;	// toolchanger finished
    				
    				return 0;		//exit program
    			}
    			else
    			{
    				TF = Time_sec() + 3;	// continue and timeout after 3 seconds
    			}
    		}
    
    	}
    
    
    // 7. Unclamp Tool
    
    	SetBit(59);					//Tool Release Solenoid
    	Delay_sec(.6);
    
    	double TF = Time_sec() + 2;	// timeout in 2 seconds    
    
    	while (!ReadBit(1039))		// Wait for ToolReleaseProxSensor
    	{
    		WaitNextTimeSlice();
    
    		if (Time_sec() > TF)	// Timed out?
    		{
    			if (MsgBox("E-Stop Tool Unclamp Failed",MB_OK|MB_ICONEXCLAMATION))
    			{
    				DoPC(PC_COMM_HALT);
    				persist.UserData[161] = 0;	// toolchanger finished
    				DoPC(PC_COMM_ESTOP);//Estop
    				return 0;		//exit program
    			}
    			else
    			{
    				TF = Time_sec() + 3;	// continue and timeout after 3 seconds
    			}
    		}
    
    	}
    
    
    // 8. Move Tool Changer DOWN
    
    	SetBit(61);					// TC_DOWN Solenoid
    	Delay_sec(0.9);
    	ClearBit(61);				//TC_DOWN solenoid
    
    	double TF = Time_sec() + 2;	// timeout in 2 seconds    
    
    	while (!ReadBit(1036))		// Wait for TC_DOWN Limit Switch
    	{
    		WaitNextTimeSlice();
    
    		if (Time_sec() > TF)	// Timed out?
    		{
    			if (MsgBox("E-Stop TC not DOWN",MB_OK|MB_ICONEXCLAMATION))
    			{
    				DoPC(PC_COMM_HALT);
    				persist.UserData[161] = 0;	// toolchanger finished
    				DoPC(PC_COMM_ESTOP); //Estop
    			
    				return 0;		//exit program
    			}
    			else
    			{
    				TF = Time_sec() + 3;	// continue and timeout after 3 seconds
    			}
    		}
    
    	}
    // 9. Rotate Carousel 
    
    	while (pockets >= 1)		// Rotate Turret CW whatever number of pockets
    	{
    		SetBit(49);				// TC Carousel Motor On CW
    		while (!ReadBit(1033))
    			WaitNextTimeSlice();	// Wait for CarouselMotorProxSensor
    		Delay_sec(.4);
    		ClearBit(49);			// TC_Carousel CW Motor Off
    		pockets = pockets - 1;
    	}
    
    	while (pockets <= -1)		// Rotate Turret CCW whatever number of pockets
    	{
    		SetBit(50);				// TC Carousel Motor On CCW
    		while (!ReadBit(1033))
    			WaitNextTimeSlice();	// Wait for CarouselMotorProxSensor
    		Delay_sec(.4);
    		ClearBit(50);			// TC_Carousel CCW Motor Off
    		pockets = pockets + 1;
    	}
    
    
    // 10. Move Tool Changer UP
    
    	SetBit(60);					// TC_UP Solenoid
    	Delay_sec(0.9);
    	ClearBit(60);				//TC_UP solenoid
    	double TF = Time_sec() + 2;	// timeout in 2 seconds    
    
    	while (!ReadBit(1037))		// Wait for TC_UP Limit Switch
    	{
    		WaitNextTimeSlice();
    
    		if (Time_sec() > TF)	// Timed out?
    		{
    			if (MsgBox("E-Stop TC not UP",MB_OK|MB_ICONEXCLAMATION))
    			{
    				DoPC(PC_COMM_HALT);
    				persist.UserData[161] = 0;	// toolchanger finished
    				DoPC(PC_COMM_ESTOP);//Estop
    				
    				return 0;		//exit program
    			}
    			else
    			{
    				TF = Time_sec() + 3;	// continue and timeout after 3 seconds
    			}
    		}
    
    	}
    
    // 11. Clamp tool
    
    	ClearBit(59);				//Tool Release Solenoid
    
    	double TF = Time_sec() + 2;	// timeout in 2 seconds
    
    	while (ReadBit(1039))		// Wait for Tool Release Proximity Sensor
    	{
    		WaitNextTimeSlice();
    
    		if (Time_sec() > TF)	// Timed out?
    		{
    			if (MsgBox("E-Stop Tool Clamp Failed",MB_OK|MB_ICONEXCLAMATION))
    			{
    				DoPC(PC_COMM_HALT);
    				persist.UserData[161] = 0;	// toolchanger finished
    				DoPC(PC_COMM_ESTOP);//Estop
    				
    				return 0;		//exit program
    			}
    			else
    			{
    				TF = Time_sec() + 3;	// continue and timeout after 3 seconds
    			}
    		}
    
    	}
    
    
    // 12. Tool Changer IN
    	SetBit(62);					// TC_IN solenoid
    	Delay_sec(0.7);
    	ClearBit(62);				// TC_IN solenoid
    
    
    	double TF = Time_sec() + 2;	// timeout in 2 seconds
    
    	while (!ReadBit(1035))		// Check TC_IN limit switch
    	{
    		WaitNextTimeSlice();
    
    		if (Time_sec() > TF)	// Timed out?
    		{
    			if (MsgBox("E-Stop TC not IN",MB_OK|MB_ICONEXCLAMATION))
    			{
    				DoPC(PC_COMM_HALT);
    				persist.UserData[161] = 0;	// toolchanger finished
    				DoPC(PC_COMM_ESTOP);//Estop
    				
    				return 0;		//exit program
    			}
    			else
    			{
    				TF = Time_sec() + 3;	// continue and timeout after 3 seconds
    			}
    		}
    
    	}
    
    
    
    // 13. Set Variables
    
    	persist.UserData[157] = persist.UserData[6];	// Update current tool number
    	persist.UserData[161] = 0;	// toolchanger finished
    
    	printf("Tool changed to T%d\n", persist.UserData[157]);	// send message to console
    
    
    // 14. Write current tool # disk
    
    	FILE *f;
        	char s[256];
        	
        	float CTool = persist.UserData[157]; // s value from g code       
        	
        	f=fopen("c:\\KMotionFiles\\KFlopData.txt","wt");
        	fprintf(s,"%f\n",CTool);
        	fclose(f);
    
    //15.
    ClearBit(156);
    ClearBit(48);
    ClearBit(147);
    ClearBit(148);
    //SetBit(147);
    //SetBit(148);
    Delay_sec(.3);
    }
    Thanks,
    Troy

  12. #392
    Join Date
    May 2012
    Posts
    537

    Re: Hurco BMC20 Dynomotion Retrofit

    Quote Originally Posted by Need TECH Help! View Post
    Now tool change is writing to text file as it should. In KMotionCNC Tool Setup the M6 is set to Exec./Wait.Troy
    Try setting it to Exec/Wait/Sync. I think any time the C-program causes axis motion you are supposed to use the Sync option. That might be causing part of your problem

  13. #393
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Setting to Exec/Wait/Sync fixed the issue when running Gcode. Thanks.
    Still looking at what is causing first tool change fail after running my referencing program.

  14. #394
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Found problem to tool change fail after referencing. For some reason the IN and UP solenoid bits are not clearing. It is in the code after the limit switch for each solenoid is active then i ClearBit for each solenoid. Work around i found was simply adding the ClearBit for each solenoid at end of referencing program. Tests ok so far.

  15. #395
    Join Date
    Dec 2007
    Posts
    578

    Re: Hurco BMC20 Dynomotion Retrofit

    Here is a video of tool changer. Still need to fine tune the pneumatics.
    https://youtu.be/Wf-TXzZg43M

  16. #396
    Join Date
    May 2012
    Posts
    537

    Re: Hurco BMC20 Dynomotion Retrofit

    Thats awesome, nice work! I like how your toolchanger has an up and down movement too. I thought that was odd at first, why not just use Z axis?? But your machine stores the tools up higher, and out of the way. And I like how the toolchange position is at the end of the travel, not 4 inches away from it like mine. I almost crashed once because of that.

    Pneumatics seem fine to me. I love those iscar ER32 holders with the flush bearing nut too, my favorite holders

  17. #397
    Join Date
    May 2006
    Posts
    4043

    Re: Hurco BMC20 Dynomotion Retrofit

    Hi Troy,

    Love the video. Tool change in ~ 5sec! Excellent work as always for you.
    TK
    http://dynomotion.com

  18. #398
    Join Date
    Dec 2007
    Posts
    578

    4th axis

    Hello all again,
    Next on my mill project list after i make my control panel, is a 4th axis. It has a Fanuc red cap AC servo.
    Wondering if i should replace it with another servo and drive set. Trying to avoid replacing it as whatever i buy i will have to disassemble the servo so i can machine a taper, cut od thread and a woodruff key on shaft.
    Currently dont have a drive for the Fanuc and was wondering if anyone has used a compatible drive that is not the overpriced Fanuc drive? Read where Granite Devices makes a drive that should work? Anyhow any info much appreciated.

    Here is a couple pics of it.
    Attached Thumbnails Attached Thumbnails 20200125_185928.jpg   20200125_185938.jpg   Motor.jpg  

  19. #399
    Join Date
    May 2012
    Posts
    537

    Re: Hurco BMC20 Dynomotion Retrofit

    I went through this last year with a Yaskawa motor on my 4th axis. I also needed a drive and seemed like the simplest and cheapest option for me was to swap it out. If you have a strange mounting setup for the gear you may be able to modify it to use something simpler on the new motor. Might be worth measuring up the gear. Lots of times they end up being standard sizes. Might be able to buy a blank gear for cheap and just bore and broach it for the new motor and call it a day.

    You probably can reuse the motor if you really want. You will most likely need to fit your own encoder as Fanuc encoders probably wont work with anything else. I think Tom told me last year that snap amp would work. But the max voltage would have limited speed and I would have needed a separate power supply. Also theres something about finding the commutation angle with AC servos, seemed a little complicated to me. I decided it was easier to sleeve my gear and mount a DMM motor and drive. Been working great. Running parts on the 4th as I type this.

  20. #400
    Join Date
    Dec 2013
    Posts
    5717

    Re: Hurco BMC20 Dynomotion Retrofit

    Your Fanuc motor may be commutated by the main computer. It is a crazy system. I faced the same thing when I did the retrofit on my lathe. I finally gave up on the idea of trying to use the Fanuc servos & drives and went with all DMM servos. I just simply bored my original taper bore timing belt sprockets and shrunk them onto the DMM shafts, I'm sure you could do the same thing with whatever your 4th axis drive requires.
    Jim Dawson
    Sandy, Oregon, USA

Page 20 of 23 101819202122

Similar Threads

  1. Local repairman for '92 Hurco bmc20 around Bristol, IN
    By Benkerst5278 in forum CNC Machining Centers
    Replies: 0
    Last Post: 07-13-2010, 03:32 PM
  2. HURCO BMC20
    By PCM in forum HURCO
    Replies: 3
    Last Post: 05-03-2009, 08:03 PM
  3. Hurco BMC20 with Ultimax 2 control
    By kwmkoester in forum HURCO
    Replies: 6
    Last Post: 04-30-2009, 11:52 PM
  4. Hurco BMC20 Post Prosser help
    By moorport in forum CNC (Mill / Lathe) Control Software (NC)
    Replies: 12
    Last Post: 02-06-2007, 05:19 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •