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