Dyna DM4400 Conversion

Results 1 to 8 of 8

Thread: Dyna DM4400 Conversion

  1. #1
    Registered
    Join Date
    Dec 2009
    Location
    USA
    Posts
    444
    Downloads
    0
    Uploads
    0

    Default Dyna DM4400 Conversion

    Ok, not a build log here, but I am posting pictures as I go on my Picasa Web album. I'm am going to use Flashcut CNC and their servo drive box with Keling 600 oz-in DC Brush Servos and AMT-102 Encoders with line drivers. I plan on keeping the tool changer which turns with a stepper motor. I will reuse the stepper motor. Any questions or comments, please feel free to post here.

    I would really like to see how the pneumatic cylinder mounts that swings the ATC arm in and out on the later model DM4400M (Mitsubishi Control) and measurements on where it mounts to the machine and the ATC.

    https://picasaweb.google.com/marty.escarcega/DynaDM4400

    Similar Threads:


  2. #2
    Registered
    Join Date
    Dec 2009
    Location
    USA
    Posts
    444
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by Marty_Escarcega View Post
    Ok, not a build log here, but I am posting pictures as I go on my Picasa Web album. I'm am going to use Flashcut CNC and their servo drive box with Keling 600 oz-in DC Brush Servos and AMT-102 Encoders with line drivers. I plan on keeping the tool changer which turns with a stepper motor. I will reuse the stepper motor. Any questions or comments, please feel free to post here.

    I would really like to see how the pneumatic cylinder mounts that swings the ATC arm in and out on the later model DM4400M (Mitsubishi Control) and measurements on where it mounts to the machine and the ATC.

    https://picasaweb.google.com/marty.escarcega/DynaDM4400
    FYI, I have been coming along on this retrofit. SLOWLY but surely. No one should ever underestimate how much work is involved in a retrofit and some basic level knowledge of electricity/electronics. If you don't....don't do the retrofit.



  3. #3
    Registered
    Join Date
    Dec 2009
    Location
    USA
    Posts
    444
    Downloads
    0
    Uploads
    0

    Default

    Just a quick update. The machine is up and running. The ATC is functional. Cut a simple logo. Going to cut some parts and shake down the machine in the next week or two. Updated pics can be found here: https://picasaweb.google.com/marty.escarcega/DynaDM4400
    Some YouTube video clips:
    https://www.youtube.com/user/opencon1/videos



  4. #4
    Registered
    Join Date
    Mar 2017
    Location
    Norway
    Posts
    6
    Downloads
    0
    Uploads
    0

    Default Re: Dyna DM4400 Conversion

    The link is broken
    This one is working



  5. #5
    Registered
    Join Date
    Mar 2018
    Location
    United States
    Posts
    11
    Downloads
    0
    Uploads
    0

    Default Re: Dyna DM4400 Conversion

    Does anyone have an M6 macro for the DM4400 tool changer that you can send me.
    Want to study it and compare with the following for the UTCH300 and UCCNC code. see below.

    I would like to continue to use the existing relays for the tool changer but have not figured how to wire up the CN3 and CN4 wires on the relay

    board. (bottom 2 sockets either side of the board with 4 wires each, see image below). I understand that each socket drives one of the AC motors

    of the ATC, the tool change arm and the pull bar. I understand that wire pin 1 on both is +12V. The other 3 wires go to pin 10 on each of the 3

    relays on their appropriate side. I think 2 of them would be connected at one time for CW or CCW direction but no luck getting it to drive the AC

    motors.
    Anyone can tell me what the voltages are in those 3 wires each side?

    I think the stepper motor of the carousel I can drive in similar fashion to the X, Y, Z axis which work fine now with new motors.

    Many thanks
    Don
    wildskyboy@yahoo.com

    M6 code:
    // Carousel toolchanger code
    // Original Code by Terry Parker, Adapted to the AXYZ CNC by Arturo Duncan and Don Green
    // Some code for the original linear tool change which is not used was left there intentionally and is commented

    // MessageBox.Show(" New Tool Change Macro Newtool=");

    //Tool positions definition
    int Chuckopenport = 1;
    int Chuckopenpin = 16;

    // Tool carusel driven by the B axis.
    double[] ToolB = new double[11];
    ToolB[0] = 0; // Tool0 B position

    //Angle at which each tool is.

    ToolB[1] = 36*(1-1); // Tool1 B position
    ToolB[2] = 36*(2-1); // Tool2 B position
    ToolB[3] = 36*(3-1); // Tool3 B position
    ToolB[4] = 36*(4-1); // Tool4 B position
    ToolB[5] = 36*(5-1); // Tool5 B position
    ToolB[6] = 36*(6-1); // Tool6 B position
    ToolB[7] = 36*(7-1); // Tool7 B position
    ToolB[8] = 36*(8-1); // Tool8 B position
    ToolB[9] = 36*(9-1); // Tool9 B position
    ToolB[10] = 36*(10-1); // Tool10 B position

    //Read and store the position of the machine before doing the tool change so we can send the spindle to where it was when the tool change was

    called.

    double x = exec.GetXpos(); // GetOEMDRO(83)
    double y = exec.GetYpos(); // GetOEMDRO(84)
    double z = exec.GetZpos(); // GetOEMDRO(85)
    double a = exec.GetApos(); // GetOEMDRO(86)
    double b = exec.GetBpos(); // GetOEMDRO(87)
    double c = exec.GetCpos(); // GetOEMDRO(88)

    // MessageBox.Show("Newtool=");

    // These are the machine constants. The positions in the machine coordinate system where phisical things are.

    double SafeZ = -.5;
    double Ztoolrelease = 88;
    double Ztoolpickup = 86;
    int MaxToolNum = 10; //'Max number off tools for the changer
    double ToolDown = -5.339; //'Z Pos to Get or drop a tool
    double ToolUp = -0; //'Z Hieght to Rapid from tool to tool
    double DustCollector = 0.154;
    double ToolProbePos = -3.1336;
    double YTootChangePos = -7.8;
    double YTootPos = -11.6913;
    double SpindleSpeed = Convert.ToDouble(AS3.Getfield(870));

    int Newtool = exec.Getnewtool();
    int Currenttool = exec.Getcurrenttool();


    if(Currenttool == 0) // If new tool number is -1 means a missing T code, so we need to stop here...
    {
    MessageBox.Show("The Current TOOL # is out of range 1 - 10 , Correct the Value and Restart");
    exec.Stop();
    return;
    }

    if(Newtool == -1) // If new tool number is -1 means a missing T code, so we need to stop here...
    return;

    if(Newtool <1 || Newtool >10) // Tool number is out of range, so we need to stop here...
    return;

    if(Newtool == Currenttool) // Same tool was selected, so do nothing, stop here...
    return;

    if(Newtool == 0 || Newtool >10) // If new tool number is 0 means a missing T code, so we need to stop here...
    {
    MessageBox.Show("The TOOL # is out of range 1 - 10 , Correct the Value and Restart");
    exec.Stop();
    return;
    }

    if(!exec.GetLED(56)||!exec.GetLED(57)||!exec.GetLED(58)||!exec.GetLED(60)) // If machine was not homed then it is unsafe to move in machine

    coordinates, stop here...
    {
    MessageBox.Show("The machine was not yet homed, do homeing before executing a tool change!");
    exec.Stop();
    return;
    }

    while(exec.IsMoving()){}

    // Get current XY machine coordinates to return to this position at the end of the macro

    double Xoriginalpos = exec.GetXmachpos();
    double Yoriginalpos = exec.GetYmachpos();

    // Stop spindle if running and Move Z up

    exec.Stopspin();
    //MessageBox.Show("G00 G53 Z+ SafeZ"); // Move Z up");
    exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
    while(exec.IsMoving()){}
    // Open Dust Collector
    exec.Setoutpin(2,1); // Open the Dust Collector
    while(exec.IsMoving()){}

    if(Currenttool!=0) // No need to drop down tool if current tool number is zero
    {
    // Drop old tool

    // exec.Code("G00 G53 "+" B" + ToolB[Currenttool]);
    //while(exec.IsMoving()){}

    // Drop current tool

    //exec.Code("G00 G53 Z"+ Ztoolrelease); // Move Z axis down to tool holder position
    //while(exec.IsMoving()){}
    //exec.Setoutpin(Chuckopenport, Chuckopenpin); // Open the chuck with pneumatic valve
    //exec.Wait(1000); // Wait one 1000msec
    //exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
    //while(exec.IsMoving()){}
    }

    // Move to new tool position on XY plane
    // MessageBox.Show("G00 G53 Y"+DustCollector+ "B "+ ToolB[Currenttool]);
    exec.Code("G00 G53 Y"+DustCollector+" B" + ToolB[Currenttool]);
    while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G00 G53 Y+YTootChangePos)");
    exec.Code("G00 G53 Y"+YTootChangePos);
    while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G00 G53 Z+ToolDown)");
    exec.Code("G00 G53 Z"+ToolDown);
    while(exec.IsMoving()){}
    //Wait unti spindle is off



    //Check that the spindle is really off before delivering the tool
    do
    {
    exec.Wait(50);
    SpindleSpeed = Convert.ToDouble(AS3.Getfield(870));
    }
    //MessageBox.Show("SpindleSpeed ="+SpindleSpeed );
    while(SpindleSpeed != 0);

    // MessageBox.Show("exec.Code(G0 G53 Y+YTootPos+.25)");
    exec.Code("G0 G53 Y"+(YTootPos+.1));
    while(exec.IsMoving()){}

    // MessageBox.Show("exec.Code(G1 F30 G53 Y+YTootPos)");
    exec.Code("G1 F30 G53 Y"+YTootPos);
    while(exec.IsMoving()){}
    //MessageBox.Show("exec.Code(G4 P.75)");
    exec.Code("G4 P.75");
    while(exec.IsMoving()){}
    // Tool Release
    {exec.Setoutpin(2,14); // Release Tool
    }
    //MessageBox.Show("exec.Code(G4 P.75)");
    exec.Code("G4 P.75");
    while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G1 F10 G53 Z & ToolDown+.25)");
    exec.Code("G1 F10 G53 Z" + (ToolDown+.1));
    while(exec.IsMoving()){}
    exec.Clroutpin(2,14); // Clamp Tool
    while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G0 G53 Z + ToolUp-2)");
    exec.Code("G0 G53 Z" + (ToolUp-2.25));
    while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G0 G53 BToolB[Newtool])");
    exec.Code("G0 G53 B"+ToolB[Newtool]);
    while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G0 G53 Z & ToolUp-2)");
    exec.Code("G0 G53 Z" + (ToolUp-2.25));
    while(exec.IsMoving()){}
    {exec.Setoutpin(2,14); // Release Tool
    }
    // MessageBox.Show("exec.Code(G0 G53 Z & ToolDown+.25)");
    exec.Code("G0 G53 Z" + (ToolDown+.1));
    while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G0 G53 Z & ToolDown);");
    exec.Code("G1 F10 G53 Z" + ToolDown);
    while(exec.IsMoving()){}
    // Clamp Tool
    exec.Clroutpin(2,14); // Clamp Tool
    while(exec.IsMoving()){}
    exec.Wait(1000); // Wait one 1000msec
    // MessageBox.Show("exec.Code(G1 F30 G53 Y+YTootPos-.2)");
    //exec.Code("G1 F30 G53 Y"+(YTootPos+1));
    //while(exec.IsMoving()){}
    // MessageBox.Show("exec.Code(G00 G53 Y+YTootChangePos)");
    exec.Code("G00 G53 Y"+YTootChangePos);
    while(exec.IsMoving()){}
    //MessageBox.Show(" exec.Code(G00 G53 Z+ SafeZ)");
    exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
    while(exec.IsMoving()){}

    //MessageBox.Show(" exec.Code(G00 G53 Y+ DustCollector+5)");
    // exec.Code("G00 G53 Y20"); // Bang the Dust Collector
    // while(exec.IsMoving()){}


    // Move back to start point
    //MessageBox.Show("exec.Code(G00 G53 X + Xoriginalpos + Y + Yoriginalpos)");
    exec.Code("G00 G53 X" + Xoriginalpos + " Y" + Yoriginalpos);
    while(exec.IsMoving()){}

    //MessageBox.Show("Reset Tool Offset");
    exec.Code("G49"); // Reset Tool Offset

    exec.Wait(200);
    while(exec.IsMoving()){}
    AS3.Setfield(Newtool,1003);

    if(!exec.Ismacrostopped()) // If tool change was not interrupted with a stop only then validate new tool number
    {
    exec.Setcurrenttool(Newtool); //Set the current tool -> the new tool

    //MessageBox.Show("exec.Code(G43 H+Newtool)");
    exec.Code("G43 H"+Newtool); // Load new tool offset
    exec.Wait(200);
    while(exec.IsMoving()){}

    //MessageBox.Show("Tool change done.");
    }
    else
    {
    exec.StopWithDeccel();
    MessageBox.Show("Tool change was interrupted by user!");
    }

    Dyna DM4400 Conversion-atc-board-jpg

    Attached Thumbnails Attached Thumbnails Dyna DM4400 Conversion-atc-board-jpg  


  6. #6
    Registered
    Join Date
    Dec 2009
    Location
    USA
    Posts
    444
    Downloads
    0
    Uploads
    0

    Default Re: Dyna DM4400 Conversion

    This is one of the reasons I converted my ATC in out to pneumatic with hall effect sensors....I didn't want to deal with the electro mechanical in and out. Same with my drawbar. I lucked out and found a power drawbar off a late model DM4400M (Mitsubishi control)

    My macro is written for flashcut.

    Marty



  7. #7
    Registered
    Join Date
    Mar 2018
    Location
    United States
    Posts
    11
    Downloads
    0
    Uploads
    0

    Default Re: Dyna DM4400 Conversion

    Thanks Marty. Still would be interested to see how the code is written for Flashcut.



  8. #8
    Registered
    Join Date
    Mar 2018
    Location
    United States
    Posts
    11
    Downloads
    0
    Uploads
    0

    Default Re: Dyna DM4400 Conversion

    Well I was prodding around today and had some luck with the draw bar and arm.
    See attached drawing.
    Make sure a good ground is attached to right hand center socket 2nd pin down. Check that it reads a 12 v difference to your 12 v supply. Mine did not when grounded to frame but did when grounded to transformer inside cabinet as I used the V3 12 V supply from there too. When attached to frame got something slightly less and relays would not close properly.
    Attach the 120V supply.
    To clamp draw bar:
    On the relay board the top left socket.
    Attach pin 3 (mine is black wire) to GND
    Pin 4 (red) to 12v.
    Motor will turn and clamp.

    To unclamp draw bar:
    Pin 3 to GND
    Pin 4 + Pin 2 to 12V
    Motor turns, (However sometimes it does not, seems random so not sure of cause)

    Cheers
    Don
    Dyna DM4400 Conversion-atc-board3-jpg

    Attached Thumbnails Attached Thumbnails Dyna DM4400 Conversion-atc-board3-jpg  


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
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Dyna DM4400 Conversion

Dyna DM4400 Conversion