EcoStruxure Machine Expert versión 1.1 no soporta los controladores M258, LMC058 y LMC078.

Lectura de la documentación de la API de .NET

Lectura de la documentación de API de .NET para programadores de Python

La versión preliminar actual de la documentación de interfaz de script se genera automáticamente a partir de las fuentes .NET / C# subyacentes. Por tanto, contiene algunas expresiones que no resultan comunes para los programadores de Python.

La lista ofrece algunas sugerencias sobre cómo convertirlas a la lógica de Python.

oLas interfaces en .NET son un contrato en relación con qué miembros (métodos, propiedades) deben proporcionar las clases que implementan la interfaz. En IronPython, se pueden implementar una o varias interfaces .NET derivándolas como se hace con las clases básicas. Cuando falta un miembro declarado por la interfaz en la declaración, se emite una excepción en tiempo de ejecución. (En el ejemplo DeviceImportFromSvn.py se muestra una clase que implementa la interfaz ImportReporter).

oEn .NET, todos los parámetros, propiedades y valores de retorno de funciones se tipifican estáticamente. El tipo permitido se anota delante del nombre del parámetro. En las funciones, el tipo del valor de retorno va delante del nombre de la función. Se permiten instancias de subclases cuando se menciona una clase padre (o interfaz). void denota una función sin valor de retorno.

oLos métodos pueden sobrecargarse; una clase puede tener varios métodos con el mismo nombre pero que difieren en el número o los tipos de parámetros. IronPython llamará automáti­camente la variable que coincida.

oEl tipo INT puede contener un número entero entre -2.147.483.648 y 2.147.483.647, BOOL es igual al tipo Python BOOL (TRUE y FALSE), el tipo STRING es igual al tipo Python str y unicode (que son iguales en IronPython). IDictionary<Objeto, Objeto> denota un diccionario normal de Python. IronPython realiza automáticamente la conversión entre tipos Python y .NET.

oSi un tipo T deriva de IBaseObject<T>, ese tipo puede ampliarse con más miembros mediante otros complementos. Los usos reales de este tipo T en los parámetros o los valores de retorno se marcarán con IExtendedObject<T>.

oLa interfaz IEnumerable<T>  describe cualquier secuencia (listas, matrices, generadores) que producen solo objetos de tipo T (o subclases). Cuando la secuencia produce un objeto incompatible, se emite una excepción en tiempo de ejecución.

oLa interfaz IList<T> describe una lista que contiene solo objetos de tipo T (o subclases). Cuando se intenta añadir un objeto incompatible, se emite una excepción.

oLa sintaxis params T [] name es igual a la sintaxis *name de Python para listas de argumentos variables, pero limita los parámetros al tipo T (o subclases).

oLas enumeraciones (ENUM) no existen como construcción del lenguaje en Python. Se utilizan para definir una cantidad fija de valores constantes; por ejemplo, los días de la semana. Puede accederse a los valores de enumeración definidos en .NET en IronPython mediante la sintaxis Nombre.Miembro (de forma similar a los miembros de clases estáticas); por ejemplo, OnlineChangeOption.Try. Existen varios patrones para emular valores de enumeración en Python; por ejemplo, http://pypi.python.org/pypi/enum/ o http://www.ironpython.info/index.php/Enumerations.

oLas propiedades marcadas con { get; set; }  son de lectura y escritura, mientras que las propiedades marcadas únicamente con { get; }  son de solo lectura. Son similares al decorador @property de Python.

Los siguientes puntos de entrada están disponibles para scripts:

osystem: funcionalidad básica para la integración en el sistema EcoStruxure Machine Expert. Este objeto proporciona todas las funciones descritas en la interfaz ISystem, como la salida de EcoStruxure Machine Expert, el acceso a la ventana de mensajes o la consulta si se está ejecutando el modo --noUI por medio del comando ui_present.

oprojects: funcionalidad básica para la gestión de proyectos. Este objeto proporciona todas las funciones descritas en la interfaz IScriptProjects, como la carga de proyectos y archivos del proyecto. Además, es el punto de entrada a proyectos individuales.

oonline: funcionalidad básica para la conexión online al dispositivo. Mediante el método create_online_application puede crearse el objeto online de un objeto de aplicación. Este objeto online permite iniciar sesión en los controladores, iniciar aplicaciones y recuperar valores de variables.