To create a better understanding of the TIC4.0 semantics, we are using a very simple container terminal example as a reference. This will make sure, that everybody has the same business and business process in mind and can refer to the same examples when discussing the definitions and semantics. Complexity in any direction can be added to make sure the definitions fit for more detailed questions, for the high-level view and for similar operational situations or equipment being used.
Our TIC4.0 Terminal is a typical TT → RMG terminal. It has a small quay with one berth and only one ship-to-shore crane (STS-1) with a twin spreader. The terminal operates with terminal tractors for the horizontal transport. It stacks the container with RMGs. It has two terminal tractors (TT-1 and TT-2) and one RMG (RMG-1). The RMG is also being used to interchange containers with trucks.
At the beginning of the first week, there are only 2 containers kept in the yard: BOX-1 and BOX-2
Once per week the terminal gets a vessel visit. The vessel name is CLARA. During the first vessel visit, BOX-3 is discharged from the vessel. Once per week one truck is coming (named MAX). The truck MAX is picking up BOX-1.
Let's first have a look, what is happening and when:
Week 1
Monday 9 AM: No vessel. no equipment is moving = no operation. Boxes in the yard = 2
Monday 12 PM: Vessel CLARA is mooring - the first line is secured. No operation. Boxes in the yard=2.
Monday 3 PM: Vessel CLARA mooring is completed. The vessel is ready to be worked on. STS-1 has moved to the right place to begin the loading and discharging. But nothing more will happen today.
Tuesday 9 AM: Vessel CLARA is ready to work. The terminal is ready to work. No operation. Boxes in the yard=2.
Tuesday 12:00 PM: STS-1 is discharging (in progress) BOX-3 from vessel CLARA. TT-1 is already in the right location to receive BOX-3.
Tuesday 12:10 PM: RMG-1 is discharging BOX-3 from TT-1 (discharging CLARA and loading TIC!Yard).
Tuesday 13:00 PM: RMG-1 hast just finished to load MAX (discharging TIC!Yard) with BOX-1
Tuesday 13:10 PM: MAX leaves the terminal with BOX-1
Terminal: TIC!Terminal
Area: TIC!Yard
Berth: TIC!Berth-1
CHE Ship-to-shore crane: TIC!-STS-1
Spreader
CHE Rail-mounted gantry crane: TIC!-RMG-1
CHE Terminal tractors: TIC!-TT-1, TIC!-TT-2
Service: FARAWAY
Servicevisit (Service FARAWAY Monday to Wednesday) = servicevisit.id= FARAWAY-TIC!Terminal-Mo-We
Carrier (Vessel): CLARA
Carriervisit (Vessel visit W1: CLARA Monday to Wednesday) = carriervisit.id = CLARA-TIC!Terminal-Mo-We-W1
Carrier (Trucks): MAX, MORITZ
Cycle : each discrete process designed to execute a job (usually move cargo) has an specific id but not name.
Cargo : for this example all cargo are containers.
The following concepts are required to describe the processes with a very high - level view:
ID
On
Off
Size
Location
Arrival.berthing.start (firstline)
Carriersafetyaccessible
Carrierreadytowork
Terminalreadytowork
Drive
Locked
Unlocked
Move
Laden
Time
Status
Counter
Timer
Logical (location.logical)
Move (cycle.move)
Laden (cycle.laden)
Start
End
pom : output (result, confirmation)
pomt (time) : Actual (realtime)
pomp (process) : started (process initiated but not necessarily completed); ended (process completed)
Value
Binary
TEU
Box
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Status | Output; Actual; | False | |
TIC!-STS-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-RMG-1 (che) | On | Status | Output; Actual; | False | |
TIC!-RMG-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-TT-1 (che) | On | Status | Output; Actual; | False | |
TIC!-TT-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-TT-2 (che) | On | Status | Output; Actual; | False | |
TIC!-TT-2 (che) | Off | Status | Output; Actual; | True | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 2 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Status | Output; Actual; | False | |
TIC!-STS-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-RMG-1 (che) | On | Status | Output; Actual; | False | |
TIC!-RMG-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-TT-1 (che) | On | Status | Output; Actual; | False | |
TIC!-TT-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-TT-2 (che) | On | Status | Output; Actual; | False | |
TIC!-TT-2 (che) | Off | Status | Output; Actual; | True | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 2 | |
CLARA-TIC!-Mo-We-W1 (carriervisit) | Location | logical | Output; Actual; | TIC!-Berth1 | |
CLARA (carrier) | Location | logical | Output; Actual; | TIC!-Berth1 | |
berthing process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit.arrival) | active | status | Output; Actual; | true | |
berthing process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit.arrival) | start | time | Output; Actual; | 12:00:00 | |
berthing process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit) | carriersafetyaccesible | Status | Output; Actual; | False | |
berthing process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit) | carrierreadytowork | Status | Output; Actual; | False |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Status | Output; Actual; | True | |
TIC!-STS-1 (che) | Off | Status | Output; Actual; | False | |
TIC!-STS-1 (che) | Location | Logical | Output; Actual; | TIC!-Berth -Bolard2 | |
TIC!-STS-1 (che) | Drive | Status | Output; Actual; | True |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value (hh:mm:ss) | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Timer | Output; Actual; | 00:20:00 | |
TIC!-STS-1 (che) | Off | Timer | Output; Actual; | 00:40:00 | |
TIC!-STS-1 (che) | Drive | Timer | Output; Actual; | 00:15:00 | |
TIC!-STS-1_Spreader (che.spreader) | Unlocked | Timer | Output; Actual; | 00:60:00 | |
TIC!-STS-1_Spreader (che.spreader) | Locked | Timer | Output; Actual; | 00:00:00 | |
TIC!-STS-1_Spreader (che.spreader) | Locked | Counter | Output; Actual; | 0 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Status | Output; Actual; | False | |
TIC!-STS-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-RMG-1 (che) | On | Status | Output; Actual; | False | |
TIC!-RMG-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-TT-1 (che) | On | Status | Output; Actual; | False | |
TIC!-TT-1 (che) | Off | Status | Output; Actual; | True | |
TIC!-TT-2 (che) | On | Status | Output; Actual; | False | |
TIC!-TT-2 (che) | Off | Status | Output; Actual; | True | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 2 | |
Vessel visit process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit) | carrierreadytowork | Status | Output; Actual; | True | |
Vessel visit process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit) | terminalreadytowork | Status | Output; Actual; | False |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Status | Output; Actual; | True | |
TIC!-STS-1 (che) | Off | Status | Output; Actual; | False | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 2 | |
berthing process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit.arrival.mooring) | active | status | Output; Actual; | False | |
berthing process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit.arrival.mooring) | lastline | status | Output; Actual; | True | |
Vessel visit process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit) | carrierreadytowork | Status | Output; Actual; | True | |
Vessel visit process of CLARA-TIC!Terminal-Mo-We-W1 (carriervisit) | terminalreadytowork | Status | Output; Actual; | True |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Status | Output; Actual; | True | |
TIC!-STS-1 (che) | Off | Status | Output; Actual; | False | |
TIC!-STS-1 (che) | Location | Logical | Output; Actual; | TIC!-Berth -Bolard2 | |
TIC!-STS-1 (che) | Drive | Status | Output; Actual; | False | |
TIC!-STS-Spreader (che.spreader) | Locked | Status | Output; Actual; | True | |
TIC!-STS-Spreader (che.spreader) | Unlocked | Status | Output; Actual; | False | |
TIC!-TT-1 (che) | On | Status | Output; Actual; | True | |
TIC!-TT-1 (che) | Location | logical | Output; Actual; | TIC!-Berth1-Bolard2 | |
TIC!-TT-1 TT executing a “move” (che.cycle) | active | status | Output; Actual; | True | |
TIC!-TT-1 TT executing a “move” with cargo (che.cycle.laden) | active | status | Output; Actual; | True | |
TIC!-STS-1 (che.cycle.cargo) | id | “metadata” | Output; Actual; | BOX-3-ISO 6346 | |
TIC!-STS-1 (che.cycle.laden) | Start | time | Output; Actual; | 11:59:00 | |
TIC!-STS-1 (che.cycle.end) | End | time | Output; Actual; | ||
CLARA (carrier.cycle) | End | time | Output; Actual; | 11:59:00 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | timer | Output; Actual; | 00:10:00 | |
TIC!-STS-1 (che) | Off | timer | Output; Actual; | 00:00:00 | |
TIC!-STS-1 (che) | Drive | Timer | Output; Actual; | 00:00:00 | |
TIC!-STS-1_Spreader (che.spreader) | Unlocked | Timer | Output; Actual; | 00:09:00 | |
TIC!-STS-1_Spreader (che.spreader) | Locked | Timer | Output; Actual; | 00:01:00 | |
CLARA (carrier.cycle) | Move | Box | Output; Actual; Ended | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Ended | 0 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Started | 0 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Ended | 0 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Started; | 1 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Ended; | 0 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | Status | Output; Actual; | True | |
TIC!-STS-1 (che) | Off | Status | Output; Actual; | False | |
TIC!-STS-1 (che) | Location | Logical | Output; Actual; | TIC!-Berth -Bolard2 | |
TIC!-STS-1 (che) | Drive | Status | Output; Actual; | False | |
TIC!-STS-Spreader (che.spreader) | Locked | Status | Output; Actual; | False | |
TIC!-STS-Spreader (che.spreader) | Unlocked | Status | Output; Actual; | True | |
TIC!-TT-1 is running under the crane (che.on) | On | Status | Output; Actual; | True | |
TIC!-TT-1 (che) | Location | logical | Output; Actual; | TIC!-Berth1-Bolard2 | |
TIC!-TT-1 TT executing the next “move” (che.cycle) | active | status | Output; Actual; | True | |
TIC!-TT-1 TT executing a “move” with cargo (che.cycle.laden) | active | status | Output; Actual; | True | |
TIC!-TT-1 TT holds Box-3 (che.cycle.cargo) | id | “metadata” | Output; Actual; | BOX-3-ISO 6346 | |
TIC!-STS-1 (che.cycle.cargo) | id | “metadata” | Output; Actual; | BOX-3-ISO 6346 | |
CLARA (carrier.cycle.end) | End | time | Output; Actual; | 11:59:00 | |
TIC!-STS-1 (che.cycle.laden) | Start | time | Output; Actual; | 11:59:00 | |
TIC!-STS-1 (che.cycle.end) | End | time | Output; Actual; | 12:01:00 | |
TIC!-TT-1 (che.cycle.laden) | Start | time | Output; Actual; | 12:01:00 | |
TIC!-TT-1 (che.cycle.end) | End | time | Output; Actual; |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-STS-1 (che) | On | timer | Output; Actual; | 00:11:00 | |
TIC!-STS-1 (che) | Off | timer | Output; Actual; | 00:00:00 | |
TIC!-STS-1 (che) | Drive | Timer | Output; Actual; | 00:00:00 | |
TIC!-STS-1_Spreader (che.spreader) | Unlocked | Timer | Output; Actual; | 00:09:00 | |
TIC!-STS-1_Spreader (che.spreader) | Locked | Timer | Output; Actual; | 00:01:59 | |
CLARA (carrier.cycle) | Move | Box | Output; Actual; Ended | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Ended | 0 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Started; | 1 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Ended; | 0 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-RMG-1 (che) | On | Status | Output; Actual; | True | |
TIC!-RMG-1 (che) | Off | Status | Output; Actual; | False | |
TIC!-RMG-1 (che) | Location | Logical | Output; Actual; | TIC!Yard-B01 | |
TIC!-RMG-1 (che) | Drive | Status | Output; Actual; | False | |
TIC!-RMG-1-Spreader (che.spreader) | Locked | Status | Output; Actual; | True | |
TIC!-RMG-1-Spreader (che.spreader) | Unlocked | Status | Output; Actual; | False | |
TIC!-TT-1 is running under the RMG (che.on) | On | Status | Output; Actual; | True | |
TIC!-TT-1 (che) | Location | logical | Output; Actual; | TIC!Yard-B01 | |
TIC!-TT-1 TT executing the next “move” (che.cycle) | on | status | Output; Actual; | True | |
TIC!-TT-1 TT executing a “move” with cargo (che.cycle.laden) | on | status | Output; Actual; | False | |
TIC!-TT-1 TT holds a cargo (che.cycle.cargo) | id | “metadata” | Output; Actual; | ||
TIC!-RMG-1 moving a cargo (che.cycle.cargo) | id | “metadata” | Output; Actual; | BOX-3-ISO 6346 | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 2 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
CLARA (carrier.cycle) | Move | Box | Output; Actual; Ended | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Ended | 0 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Started; | 1 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Ended; | 0 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-RMG-1 (che) | On | Status | Output; Actual; | True | |
TIC!-RMG-1 (che) | Off | Status | Output; Actual; | False | |
TIC!-RMG-1 (che) | Location | Logical | Output; Actual; | TIC!Yard-B01 | |
TIC!-RMG-1 (che) | Drive | Status | Output; Actual; | False | |
TIC!-RMG-1-Spreader (che.spreader) | Locked | Status | Output; Actual; | False | |
TIC!-RMG-1-Spreader (che.spreader) | Unlocked | Status | Output; Actual; | True | |
TIC!-RMG-1 moving a cargo (che.cycle.cargo) | id | “metadata” | Output; Actual; | BOX-3-ISO 6346 | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 3 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
CLARA (carrier.cycle) | Move | Box | Output; Actual; Ended | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Started; | 1 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Ended; | 0 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-RMG-1 (che) | On | Status | Output; Actual; | True | |
TIC!-RMG-1 (che) | Off | Status | Output; Actual; | False | |
TIC!-RMG-1 (che) | Location | Logical | Output; Actual; | TIC!Yard-B01 | |
TIC!-RMG-1 (che) | Drive | Status | Output; Actual; | False | |
TIC!-RMG-1-Spreader (che.spreader) | Locked | Status | Output; Actual; | False | |
TIC!-RMG-1-Spreader (che.spreader) | Unlocked | Status | Output; Actual; | True | |
TIC!-RMG-1 moving a cargo (che.cycle.cargo) | id | “metadata” | Output; Actual; | BOX-1-ISO 6346 | |
MAX (carrier.cycle.laden) | on | Status | Output; Actual; | True | |
MAX (carrier) | location | logical | Output; Actual; | TIC!Yard-B01 | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 2 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
CLARA (carrier.cycle) | Move | Box | Output; Actual; Ended | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Started | 2 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Ended | 2 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Started; | 1 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Ended; | 0 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
TIC!-RMG-1 (che) | On | Status | Output; Actual; | True | |
TIC!-RMG-1 (che) | Off | Status | Output; Actual; | False | |
TIC!-RMG-1 (che) | Location | Logical | Output; Actual; | TIC!Yard-B01 | |
TIC!-RMG-1 (che) | Drive | Status | Output; Actual; | False | |
TIC!-RMG-1-Spreader (che.spreader) | Locked | Status | Output; Actual; | False | |
TIC!-RMG-1-Spreader (che.spreader) | Unlocked | Status | Output; Actual; | True | |
TIC!-RMG-1 moving a cargo (che.cycle.cargo) | id | “metadata” | Output; Actual; | BOX-1-ISO 6346 | |
MAX (carrier.cycle.laden) | on | Status | Output; Actual; | True | |
MAX (carrier) | location | logical | Output; Actual; | TIC!Gate-G01 | |
Cargo sum at TIC!-Yard (tos.cargo) (filter by location.logical=TIC!-yard) | size | box | Output; Actual; | 2 |
SUBJECT | CONCEPT | OBSERVED PROPERTY | pom; pomt; pomp; | Value | |
---|---|---|---|---|---|
CLARA (carrier.cycle) | Move | Box | Output; Actual; Ended | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-STS-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Started | 1 | |
TIC!-TT-1 (che.cycle) | Move | Box | Actual; Input; Ended | 1 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Started | 2 | |
TIC!-RMG-1 (che.cycle) | Move | Box | Actual; Input; Ended | 2 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Started; | 1 | |
TIC!Terminal “moves” (terminal.cycle) | Move | Box | Output; Actual; Ended; | 1 |
Between 11:50:00 and 13:10:00 the TIC!Terminal has performed very well:
STS-1 has moved 1 box,
TT-1 also has moved 1 Box
RMG-1 has moved 2 Boxes
but the TIC!Terminal only could finish 1 box! Well, TIC!Terminal has started 1 box and ended 1 box (sum terminal.cycle.move.box.started_and_ended = 2 Boxes). To achieve this result it had to make 4 che.cycles, moving a total of 4 boxes (sum of che.cycle.move.box).
Terminal berth has moved 1 box
Terminal gate has moved 1 box
TIC!Terminal has moved 1 box
This efficiency is not so bad, just to move 1 box! If you need to know anything about TIC40!Terminal you just have to combine any of the thousands values that defines your terminal virtual objects to get any information.
To be continued…. (TOS example pending)