Regroupez les données de procédé associées dans des enregistrements STRUCT réutilisables, définissez des listes d'états nommés avec ENUM et indexez vos collections avec des variables ARRAY unidimensionnelles ou multidimensionnelles.
STRUCT ou une ENUM dans l'Éditeur de Machinemain.machine et sélectionnez l'onglet Datatypes.STRUCT : Cliquez sur + Add Field pour ajouter des champs nommés, sélectionnez le type de données de chaque champ (type élémentaire, ARRAY[n] OF Type ou type personnalisé imbriqué) et définissez une valeur initiale et un commentaire optionnels.ENUM : Cliquez sur + Add Value pour ajouter des énumérateurs nommés (par exemple IDLE, RUNNING, FAULT).| Catégorie de type | Rôle | Syntaxe d'accès aux membres |
|---|---|---|
STRUCT |
Enregistrement composite regroupant plusieurs champs nommés et typés | station.speed, recipe.target_temp |
ENUM |
Ensemble ordonné de constantes symboliques nommées | Mode.AUTO, State.IDLE |
main.machine (ou utilisez le panneau latéral Variables).STRUCT ou d'ENUM déclaré.ARRAY[n] OF Type ou ARRAY[low..high] OF Type (par exemple ARRAY[10] OF INT, ARRAY[1..8] OF BOOL ou ARRAY[4] OF StationData).ARRAY[1..3, 1..4] OF REAL).Dans l'Éditeur de séquence, l'Autocomplétion intelligente suggère automatiquement les champs de structures, les valeurs d'énumérations et les indices de tableaux :
recipe. pour compléter automatiquement des champs tels que recipe.clamp_pressure ou recipe.dwell_time.machine_mode == Mode.AUTO dans les conditions de transition ou MOVE Mode.HOMING dans machine_mode.buffer[0], pallet_grid[row, col] ou stations[idx].is_ready.main.machine -> Datatypes, créez une ENUM nommée PartType avec les valeurs NONE, PLASTIC et METAL.STRUCT nommée StationRecipe avec les champs part_type (PartType), press_time_ms (INT) et force_limit (REAL).main.machine -> Variables, déclarez active_recipe de type StationRecipe et part_queue de type ARRAY[10] OF PartType.from automation_machine import Machine, Struct, Enum, Array, INT, REAL
PartType = Enum("PartType", ["NONE", "PLASTIC", "METAL"])
StationRecipe = Struct("StationRecipe", {
"part_type": PartType,
"press_time_ms": INT,
"force_limit": REAL,
})
class SortingMachine(Machine):
def setup(self):
self.add_datatype(PartType)
self.add_datatype(StationRecipe)
self.add_variable("active_recipe", StationRecipe)
self.add_variable("part_queue", Array(PartType, 10))
SortingMachine()
M016–M018, S060–S062)