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).
  1. Abra el software de ingeniería MOVISUITE® y busque el parámetro.
  2. 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.
  3. Cree una instancia del bloque funcional FB_EcCoeSdoWrite.
  4. 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

  1. Escale el valor que debe escribirse conforme al parámetro.
  2. 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.