La version V1.1 d' EcoStruxure Machine Expert ne prend pas en charge les contrôleurs M258, LMC058 et LMC078.

Equipements

Présentation

Ce chapitre décrit les méthodes permettant de manipuler les objets d'équipements.

Ajouter

Cette méthode ajoute l'équipement spécifié.

Elle est constituée de trois paramètres :

oune chaîne spécifiant le nom de l'équipement,

oun DeviceID désignant l'identification de l'équipement (pour connaître le DeviceID, reportez-vous à la description de l'équipement à ajouter),

oune chaîne spécifiant l'identifiant du module.

# We want to add a TM5C12D6T6L Module to the TM5_Manager
# Search for the TM5_Manager. The new Module will be inserted below this object.
parent_device = projects.primary.find('TM5_Manager', True)[0]
 
if not(parent_device == None):
    parent_device.add("Module_TM5C12D6T6L", DeviceID(51063, "101a 0363", "3.1.2.2"))

Désactiver

Cette méthode marque ce périphérique comme désactivé durant le téléchargement.

# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    device.disable()

Activer

Cette méthode marque ce périphérique comme sactivé durant le téléchargement.

# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    device.enable()

Extraire l'adresse

Cette méthode extrait l'adresse de l'équipement. Elle renvoie une chaîne.

# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    print("Address: " + device.get_address())

Extraire l'identification des appareils

Cette méthode extrait l'identification de l'appareil.

# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    print(str(device.get_device_identification()))

Obtenir une passerelle

Cette méthode renvoie le GUID de la passerelle.

# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    print("Gateway: " + str(device.get_gateway()))

Insérer

Cette méthode insère l'équipement spécifié à l'index spécifié.

Elle est constituée de quatre paramètres :

oune chaîne spécifiant le nom de l'équipement,

ola chaîne Int32 spécifiant l'index d'insertion de l'équipement,

oun DeviceID désignant l'identification de l'équipement (pour connaître le DeviceID, reportez-vous à la description de l'équipement à ajouter),

oune chaîne spécifiant l'identifiant du module.

# Finds the MyController object in the project
parent_device = projects.primary.find("TM5_Manager", True)[0]
 
if not(parent_device == None):
    # We need the amount of children to add the new device at the end
    child_count = len(parent_device.get_children())
 
    # Use a unique name for the inserted device
    parent_device.insert("Module_TM5C12D6T6L_" + str(child_count), child_count, DeviceID(51063, "101a 0363", "3.1.2.2"))

Définir la passerelle et l'adresse

Cette méthode définit la passerelle et l'adresse. Si vous transmettez le GUID vide avec une adresse vide, l'adresse de la passerelle sera effacée.

# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    device.set_gateway_and_address(gateway, address)

Définir le mode de simulation

Cette méthode définit le mode de simulation. Si la valeur est True, la simulation est activée.

# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    device.set_simulation_mode (True)

Mise à jour

Cette méthode met à jour l'équipement spécifié.

# This is a more generic approach to find and update a device by its device description
import os
 
def find_device_repository(head_dir, sub_dir):
    for root, dirs, files in os.walk(head_dir):
        for d in dirs:
            current_dir = os.path.join(root, d)
            if current_dir.endswith(sub_dir):
                return current_dir
 
# This function is used to find the newest version
def version_tuple(v):
    return tuple(map(int, (v.split("."))))
 
def get_newest_version(directory, current_version):
    newest_version = None
    available_versions = os.listdir(directory)
    for version in available_versions:
        if version_tuple(version ) > version_tuple(current_version):
            newest_version = version
 
    return newest_version
 
# Finds the MyController object in the project
device = projects.primary.find("MyController", True)[0]
 
if not(device == None):
    device_identification = device.get_device_identification()
 
    # Device Repository subdirectory
    sub_dir = os.path.join(str(device_identification.type), device_identification.id)
 
    # Find the path where the device description is stored
    result_directory= find_device_repository(r"c:/", sub_dir)
 
    if not result_directory == None:
        newest_version = get_newest_version(result_directory, device_identification.version)
 
        if not newest_version == None:
            device.update(device_identification.type, device_identification.id, newest_version)