VarData Speed Calculations

Theoretically the speed values calculated.


In [1]:
import math

def varData_speedCalc(cups_speed, printing_speed, substrate_size, turn_speed, ethernet_speed, printhead_nbr, printhead_dpi, cb):
  """
  varData_speedCalc, calculated the theoretical speed of a machine with the given settings
 
  :param cups_speed: mechanical max of [cups/min]
  :param printing_speed: max printing speed of Calmar system [mm/s]
  :param substrate_size: 2-dim array [w,h] of the subrate size in [mm]
  :param turn_speed: time for loading new cup (in digiround turn mechanism) in [seconds]
  :param ethernet_speed: data sending speed over ethernet in [Gbps]
  :param printhead_nbr: number of printheads on the machine [pcs]
  :param printhead_dpi: dpi of a printhead [dpi]
  :param cb: number of controllerboards in the machine
  """
  inch2mm          = 25.4  # mm/inch
  bpp              = 4.0   # bit/px

  # cup speed
  cup_speed_sec = cups_speed / 60 # cup/sec
  cup_cycle     = 1/cup_speed_sec # sec
  
  # print speed
  print_time = substrate_size[0] / printing_speed # sec
  print_cycle   = turn_speed + print_time # sec

  # image size
  pixel_pitch   = inch2mm / printhead_dpi # mm
  image_size_px = [int(math.ceil(substrate_size[0]/pixel_pitch)), int(math.ceil(substrate_size[1]/pixel_pitch))]

  # data size per image
  image_size_bytes = (image_size_px[0]*image_size_px[1])*bpp/8 # bytes

  # transfer time on ethernet
  image_transfer_time = (image_size_bytes*8) / (ethernet_speed*10e9)

  # transfer time all boards
  all_image_transfer_time = image_transfer_time * printhead_nbr

  # Print all results
  print("cup_speed_sec           = {:.3f} cup/sec".format(cup_speed_sec))
  print("cup_cycle               = {:.3f} ms (Mechanic Maximum)".format(cup_cycle*1000))
  print("print_time              = {:.3f} ms".format(print_time*1000))
  print("print_cycle             = {:.3f} ms".format(print_cycle*1000))
  print("image_size_px (x : y)   = ( {}px : {}px )".format(image_size_px[0], image_size_px[1]))
  print("image_size_bytes        = {:.3f} MB".format(image_size_bytes/1024/1024))
  print("image_transfer_time     = {:.3f} ms".format(image_transfer_time*1000))
  print("all_image_transfer_time = {:.3f} ms".format(all_image_transfer_time*1000))

Digiround 3 Worst Case


In [2]:
# Max values
cups_speed       = 250.0 # cups/min
printing_speed   = 850.0 # mm/s
substrate_size   = [408.407, 140.0] # mm [w, h] 130mm diameter

turn_speed       = 0.1   # sec
ethernet_speed   = 1.0   # Gbps
printhead_nbr    = 10.0  # pcs
printhead_dpi    = 360.0 # dpi
cb               = 5.0   # pcs

varData_speedCalc(cups_speed, printing_speed, substrate_size, turn_speed, ethernet_speed, printhead_nbr, printhead_dpi, cb)


cup_speed_sec           = 4.167 cup/sec
cup_cycle               = 240.000 ms (Mechanic Maximum)
print_time              = 480.479 ms
print_cycle             = 580.479 ms
image_size_px (x : y)   = ( 5789px : 1985px )
image_size_bytes        = 5.479 MB
image_transfer_time     = 4.596 ms
all_image_transfer_time = 45.965 ms

Digiround realistic case


In [3]:
cups_speed       = 250.0 # cups/min
printing_speed   = 850.0 # mm/s
substrate_size   = [280.0, 140.0] # mm [w, h]

turn_speed       = 0.1   # sec
ethernet_speed   = 1.0   # Gbps
printhead_nbr    = 10.0  # pcs
printhead_dpi    = 360.0 # dpi
cb               = 5.0   # pcs

varData_speedCalc(cups_speed, printing_speed, substrate_size, turn_speed, ethernet_speed, printhead_nbr, printhead_dpi, cb)


cup_speed_sec           = 4.167 cup/sec
cup_cycle               = 240.000 ms (Mechanic Maximum)
print_time              = 329.412 ms
print_cycle             = 429.412 ms
image_size_px (x : y)   = ( 3969px : 1985px )
image_size_bytes        = 3.757 MB
image_transfer_time     = 3.151 ms
all_image_transfer_time = 31.514 ms