Skip to content

Discharge and Dumper

The Discharge and the Dumper are the two remaining converters. Between them they are the seam where the measured half of a model meets the counted half.

A Discharge empties a tank and sends the whole draw out as a single entity, carrying its amount on a reserved attribute, BulkQty. From that instant it is an ordinary entity: it can queue, seize a resource, be held, be reviewed and be rejected.

A Discharge's settings, turning a tank draw into one entity.
Figure 1. A Discharge turns a tank of material into one entity carrying its amount.

Choose how much it takes: all of the tank, down to the heel, or a fixed quantity. It fires from logic with DISCHARGE("name"), so a batch record can authorize the draw rather than a timer.

A Dumper goes the other way. An entity routes into it, and the Dumper empties the entity’s contents into a tank at a rate. Its settings are:

  • Empties Into: the tank it fills.
  • Discharge Rate: how much goes in per minute, in the material’s own unit. A dump takes the load divided by this rate.
  • Fixed Amount: leave it empty to use what the arriving container is carrying, which is the usual case. Set it only where every container is identical, and as a literal number.
  • The Container Then: what happens to the emptied container. Is consumed sends it out of the model, counted as exited. Becomes an empty turns it into a different entity type, named in Becomes, which can route differently. Carries on as itself keeps the returnable tote, now empty, so you can send it to a wash line.
  • If The Tank Is Full: there is no partial dump. Room for the whole load is reserved before the dump starts, or the container is turned away, counted as balked and reported against this Dumper.
A Dumper's settings, emptying an arriving entity back into a tank.
Figure 2. A Dumper empties an arriving entity back into a tank.

With Fixed Amount empty, a Dumper takes the load each arriving container carries, which is its reserved attribute Entity.BulkQty, in the material’s own unit. You set it where the container arrives. In the arrival’s action logic, write Entity.BulkQty = T(5000, 6000, 7000) and each truck carries its own load, never below 5,000, never above 7,000, and most often near 6,000. Any expression works there, and a plain number gives every container the same load.

Keep the Entity. in front. It says the number belongs to this container: without it the line sets a model variable instead, every container carries nothing, and the Dumper unloads nothing. Every entity already has BulkQty, so do not add it to the entity’s attributes. A number in Fixed Amount overrides all of this: every container unloads that number, whatever BulkQty says.

That closes the loop: material becomes an entity, travels through the discrete world, and returns to a tank.