Ejemplo: Escritura de parámetros
Con ayuda del servicio SDO WRITE se pueden escribir parámetros. Para ello se precisan el índice y subíndice del parámetro que debe escribirse.
El servicio SDO se explica con mayor detalle en base a un ejemplo. En el ejemplo se ejecuta el servicio en un maestro EtherCAT® de la empresa Beckoff Automation GmbH en la herramienta de ingeniería TwinCAT 3.
Proceda como se indica a continuación:
- Usted ha integrado las bibliotecas y los bloques funcionales necesarios del servicio para el maestro EtherCAT® en el proyecto TwinCAT (véanse Servicios SDO READ y WRITE).
- Abra el software de ingeniería MOVISUITE® y busque el parámetro.
- Mueva el puntero del ratón sobre el campo de entrada o de visualización del parámetro y anote de la ayuda contextual el índice del parámetro. El subíndice está separado con un punto del número de índice.
- Cree una instancia del bloque funcional
FB_EcCoeSdoWrite. - Asignación de las entradas del bloque funcional:

Entrada | Valor |
|---|---|
sNetID | Net‑ID del maestro EtherCAT® |
nSlaveAddr | Dirección EtherCAT® de la unidad en la que deben escribirse los datos. |
nIndex | Índice del parámetro que debe escribirse. Si usted utiliza un módulo de eje doble, el índice del segundo eje tiene asignado un offset de 0x1000 (4096 dec). |
nSubIndex | Subíndice del parámetro que debe escribirse. |
pDstBuf | Puntero en el rango de datos en el que se encuentran los valores que deben escribirse. |
cbBufLen | Tamaño de memoria máximo en bytes que ocupa el parámetro que debe escribirse. Para los variadores del módulo de automatización MOVI‑C®, el tamaño de memoria máximo de los parámetros es siempre de 4 bytes. |
bExecute | Flanco positivo que inicia el proceso de escritura. |
tTimeout | Tiempo de desbordamiento del bloque funcional |
- Escale el valor que debe escribirse conforme al parámetro.
- Para iniciar el proceso, la entrada bExecute debe reconocer un "Rising Edge" (flanco positivo).
- En este ejemplo se ha escrito con un valor nuevo el límite de tensión. El valor ha sido escalado con 1000 antes de ejecutar el servicio.
- Las salidas bBusy y bError señalizan el estado del servicio. Si se produce un fallo durante la ejecución del servicio y usted ha activado la salida bError, la salida nErrId muestra el número de fallo.

