馃搱FB comunicaci贸n variadores por SDO 鉃★笍 FB_SDO_Variadores
Planteamiento detr谩s de la
FBFB.El objetivo principal de la creaci贸n de esta
FBFunci贸n Bloque (FB) es permitir la comunicaci贸n depoder comunicar lasvelocidades desde la pantalla HMIpasandohacia los variadores, a trav茅s de un PLC de la serie NX yfuncionandoutilizandoaeltrav茅s delm茅todoSDO.SDO.Este bloque de funci贸n
esha sido dise帽ado para ser totalmente reutilizable, pudiendo implementarse en cualquier proyectoparay adaptarse a unnumeron煤meroindeterminadoindefinido devariadores,variadores,tantossiemprecomoque el PLCPermitatengacomunicar.capacidad - de comunicaci贸n con ellos.
鈿欙笍 Desarrollo y pruebas
Para el desarrollo
deyestevalidaci贸nbloquedelde funci贸n,bloque, sehan realizadorealizaron pruebas conunlos siguientes elementos:-
Controlador: NX102
y -
comunicaci贸nComunicaci贸n:
aEtherCATtrav茅s -
Ethercat deVariadores: 4
variadoresunidades MX2 consutarjeta opcional instaladay -
con losConfiguraci贸n: par谩metros
queajustados seg煤n la documentaci贸n t茅cnica
ladeconfiguradoAdem谩s, se
detallan a continuaci贸n, as铆 comoutiliz贸 la funci贸n EC_CoESDOWrite (descrita en el documentoEC_CoESDOWriteManual FB SO_Write (1).pdf) para gestionar la escritura de los valores mediante SDO.
馃З Resultado
El resultado es una FB flexible y escalable, capaz de integrarse f谩cilmente en distintas aplicaciones, simplificando la comunicaci贸n de datos entre la HMI, el PLC y los variadores MX2 a trav茅s de EtherCAT.
鈩癸笍
Introducci贸n -
馃摌
Para realizar la comunicaci贸n por SDO se utiliza una funci贸n de Sysmac studio llamada EC_CoESDOWrite.
鉁忥笍 Objeto Ethercat A020
Para configurar bien esta instrucci贸n debemos crear una variable de tipo SdoObj en la cual se define el objeto Ethercat a comunicar, este objeto lo sacamos del Manual de comunicaciones de Ethercat del variador MX2.
Para escribir en el canal A020 el cual es el canal para la multi-velocidad 0 debemos configurar el objeto Ethercat de la siguiente manera:
// PARAMETRO A020 -> ES EL REGISTRO 1216 HEX Y EL INDICE 4012 hex y SUBINDICE 3B
OBJ_SDO_A020.Index:= UINT#16#4012;
OBJ_SDO_A020.Subindex:= USINT#16#3B;
//TAMA脩O DE DATOS 32 BITS
WteSize:=UINT#4;
Tal y como se describe en dicho Manual de comunicaciones Ethercat. apartado A-4 MX2 Series Parameter List:
El tama帽o de datos es muy importante configurarlo adecuadamente ya que de lo contrario no funcionar铆a.
鈩癸笍 Explicaci贸n funci贸n EC_CoESDOWrite y l贸gica de la FB general
Tambi茅n es muy importante introducir correctamente el tipo de datos en el par谩metro WriteDat seg煤n el tipo de datos que vayamos a leer. En nuestro caso, el par谩metro WriteDat va a venir de desde un array de velocidades de tipo UDINT. ( VelocidadVariadores[])
Tal y como se puede apreciar en la l铆nea de programa, se configura el bloque con un array (VelocidadVariadores[] ) y un 铆ndice iNodoSDO, este 铆ndice se va recorriendo desde el 1 hasta el n煤mero m谩ximo de variadores a comunicar, tiene una l贸gica a帽adida la cual nos permite avanzar la comunicaci贸n aunque uno de los variadores no est茅 en conectado a la red en ese momento, gracias a esto, permitimos una comunicaci贸n mucho m谩s r谩pida y sin interrupciones.
En este caso se comunican 52 Variadores, una vez que se ha completado la instrucci贸n, doneSDO, se incrementa el numero del 铆ndice a comunicar el cual se utiliza tanto para el NodeAdr como el array de velocidad a comunicar.
Una vez completado, se vuelve a realizar la comunicaci贸n, 1 ms m谩s tarde. Esto nos brinda rapidez a la hora de comunicar con muchos nodos como es este caso.
En este apartado se gestionan alarmas para que el usuario sepa que variadores no est谩n comunicando y cuales si, adem谩s nos indicar谩 si ha tenido un fallo en la ejecuci贸n de la FB.
鈿欙笍Configuraci贸n de la FB
Una vez explicado el funcionamiento, hay que definir el bloque de funci贸n en el programa, el cual se presenta de la siguiente manera y requiere ciertas entradas y salidas.
Tal y como vemos, para activar la ejecuci贸n de la FB tenemos que alimentar el IN con un contacto o siempre que est茅 el PLC encendido. si en alg煤n momento queremos pausar la comunicaci贸n, debemos de poner a TRUE el bit StopSDO del FB, esto, detendr谩 la comunicaci贸n en el nodo que est茅 comunicando en ese momento.
En el par谩metro VelocidadVariadores, tenemos que introducir un array de longitud el mismo numero de variadores que vamos a comunicar, en este caso, el tipo de datos es UDINT tal y como se ha explicado en la descripci贸n del objeto.
La velocidad es un n煤mero entero, por lo tanto, si deseamos poner 42,10 hz deberemos poner el valor 4210 en la velocidad de ese variador.
En el siguiente par谩metro, NodosAComunicar, introducimos un valor fijo. La entrada de bResetSDO, sirve para resetear fallos en la ejecuci贸n de la instrucci贸n.
En las salidas tenemos el bErrorSDOVariadores, el cual tambi茅n es un array de BOOL del mismo tama帽o que variadores se vayan a comunicar.
Par谩metros a configurar en el variador.
Configurar el par谩metro A001 鉃★笍 2 (referencia de frecuencia desde multi-velocidad A020).
El par谩metro A002 鉃★笍* 1 Depende de la configuraci贸n pero en este caso se utilizaron entradas digitales.
Si deseamos que el valor se mantenga aunque se produzca un fallo de tensi贸n o la comunicaci贸n se interrumpa por un periodo largo de tiempo, debemos configurar los siguientes par谩metros:






