• Tags
  • Documentation
  • Order
  • Register
  • Login
Duet3D Logo Duet3D
  • Tags
  • Documentation
  • Order
  • Register
  • Login

Process Control with Duet

Scheduled Pinned Locked Moved
General Discussion
5
10
434
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • undefined
    Garth_42
    last edited by 25 Nov 2020, 20:35

    Hello everyone, my company is working with printing thermoset resins out of a mixing extruder. Since the resin is time-reactive, once X amount of time passes, the static mixing tip clogs.

    I was wondering if there is a way to implement a process control so the printer knows to purge the mixing tip every X seconds since the last extrusion. This way G-code doesn't need to be post-processed to add purges from simulating the g-code.

    Now that I am thinking about it, the DSF would potentially let me stream G-Code to the printer and the python program streaming the G-Code could take care of this?

    Thanks for your responses,

    Best,
    Garth

    1 Reply Last reply Reply Quote 0
    • ?
      A Former User
      last edited by 25 Nov 2020, 21:15

      you might be able to do some voodoo with daemon.g on the duet itself, but a bit how-do-you-do until a firmware supporting user variables is released.

      dsf is probably less pain

      is the "extruder" piston type pump or rotational ala peristaltic? in case you want a belt and suspenders type solution that can be more or less an independent watchdog.

      undefined 1 Reply Last reply 1 Dec 2020, 01:01 Reply Quote 0
      • undefined
        jay_s_uk
        last edited by 25 Nov 2020, 21:51

        I think the difficulty you'll have it knowing when the extruder last extruded.

        Something like this may work but you would need to edit the gcode.
        If after every extrusion move you set

        G10 L9 Z1
        

        and then in daemon.g run

        ; daemon.g
        while {move.axes[2].workplaceOffsets[8]<60}
        G10 L2 P9 Z{move.axes[2].workplaceOffsets[8]+1}
        break
        if {move.axes[2].workplaceOffsets[8]==X}
        add extrusion move here

        This basically increments the value every second or so and then when the magic number X is reached, whatever your added will happen

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        undefined 1 Reply Last reply 1 Dec 2020, 01:03 Reply Quote 0
        • undefined
          Garth_42 @A Former User
          last edited by 1 Dec 2020, 01:01

          @bearer the pump is a ViscoTec extruder, it is a screw type pump. Thanks for the thoughts!

          ? 1 Reply Last reply 1 Dec 2020, 01:41 Reply Quote 0
          • undefined
            Garth_42 @jay_s_uk
            last edited by 1 Dec 2020, 01:03

            @jay_s_uk oh that is really interesting! Thanks for the idea.

            1 Reply Last reply Reply Quote 0
            • ?
              A Former User @Garth_42
              last edited by 1 Dec 2020, 01:41

              @Garth_42 said in Process Control with Duet:

              it is a screw type pump

              if you can get to rotational bits then an encoder might be able to provide out of band monitoring with something like and arduino like board,

              undefined 1 Reply Last reply 3 Dec 2020, 02:05 Reply Quote 0
              • undefined
                dc42 administrators
                last edited by 1 Dec 2020, 07:27

                We could add an item in the object model to give the time when an extruder last moved. That would allow you to use a Gcode command to do a conditional purge.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                1 Reply Last reply Reply Quote 0
                • undefined
                  chrishamm administrators
                  last edited by 1 Dec 2020, 09:13

                  Or you could write a DSF plugin that monitors the total amount of extruded filament. Whenever it changes, you could reset a timer and send a purge command when it expires.

                  Duet software engineer

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    Garth_42 @A Former User
                    last edited by 3 Dec 2020, 02:05

                    @bearer Unfortunately, I can't although this would be a good work-around that requires little firmware alteration.

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      Garth_42
                      last edited by 3 Dec 2020, 02:20

                      @dc42, that would be great but if it isn't quick don't worry about it. We have other workarounds to the issue and while what you proposed is the most elegant solution, it isn't necessary yet. In the future it may become more important though.
                      @chrishamm thanks for the suggestion, I will keep that in mind as we are currently using the DSF for some other functions.

                      1 Reply Last reply Reply Quote 0
                      6 out of 10
                      • First post
                        6/10
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA