output function add_blank : BOOL
derived relation UnloadingDepositBelt
== CraneHorizontalMot = cIdle and GripperOverDepositBelt
derived relation Crane_not_loaded
== CraneHorizontalMot = ToDepositBelt or
WaitingToUnloadDepositBelt or
UnloadingDepositBelt
transition all_rules ==
// put a blank on the feed belt (if possible)
if FeedBeltFree and Crane_not_loaded
then if add_blank
then FeedBeltFree := false
endif
endif
// press
WAITING_UNLOAD_PRESS
MOVING_TO_MIDDLE
WAITING_LOAD_PRESS
MOVING_TO_UPPER
CLOSED
MOVING_TO_LOWER
// crane
WAITING_DB
UNLOADING_DB
MOVING_FB
WAITING_FB
LOADING_FB
MOVING_DB
// robot
WAITING
ACTION_extension
ACTION_proper
ACTION_retraction
MOVING
// deposit belt
DB_NORMAL
DB_CRITICAL
DB_STOPPED
// elevation rotary table
WAITING_LOAD
MOVING_UNLOAD
WAITING_UNLOAD
MOVING_LOAD
// feedbelt
FB_NORMAL
FB_STOPPED
FB_CRITICAL