SSD Parvex SAS 8, avenue du Lac - B.P. 249 F-21007 Dijon Cedex www.SSDdrives.com DIGIVEX MOTION PME Tool Kit Manual de instrucciones PVD 3528 E – 11/2003 GAMA DE PRODUCTOS 1 - SERVOACCIONAMIENTOS « BRUSHLESS » GAMAS DE PAR O DE POTENCIA : • ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ • ⇒ ⇒ ⇒ ⇒ • SERVOMOTORES BRUSHLESS, BAJA INERCIA, CON RESOLVER: Relación Par/Inercia muy alta (máquinas de alta dinámica): NX -HX - HXA NX - LX Elevada inercia del rotor para una mejor adecuación de la inercia de la carga : HS - LS Una selección geométrica variada: motores cortos : HS - LS motores de pequeño diámetro : HD, LD Tensión adecuada para distintas redes: 230V trifásica para la «série L - NX» 400V, 460V trifásica para la «série H - NX» SERVOAMPLIFICADORES DIGITALES « DIGIVEX DRIVE » MONOEJE DSD MONOEJE COMPACT DµD, DLD MONOEJE DE POTENCIA DPD MULTIEJE (RACK) DMD SOFTWARE DE REGLAJE « PARVEX MOTION EXPLORER » 1 a 320 N.m 0,45 a 64 N.m 3,3 a 31 N.m 3,3 a 31 9 a 100 N.m N.m 2 - ACCIONAMIENTOS DE « CABEZAL » • MOTORES SINCRONOS DE CABEZAL ⇒ SERIE COMPACTA « HV » ⇒ ELECTROCABEZAL « HW », Suministrado en kit, a integrar con refrigeración por agua • SERVOAMPLIFICADORES DIGITALES « DIGIVEX » Una amplia zona a potencia constante. De 5 a 110 kW Hasta 60000 RPM 3 - SERVOACCIONAMIENTOS DE « CORRIENTE CONTINUA » • SERVOMOTORES Series «AXEM », « RS » • • SERVOAMPLIFICADORES « RTS » SERVOAMPLIFICADORES « RTE » para motores de corriente continua + resolver dando la medida de posición. 0.08 a 13 N.m 4 - SERVOACCIONAMIENTOS «ADAPTACIONES ESPECIALES» • SERVOMOTORES « EX » para atmósferas explosivas • SERVOREDUCTORES COMPACTOS SERIE « AXL » 5 - SISTEMAS DE POSICIONAMIENTO • • • ⇒ ⇒ ⇒ • CONTROL NUMERICO « CYBER 2000 » 1 a 2 ejes CONTROL NUMERICO « CYBER 4000 » 1 a 4 ejes VARIADOR POSICIONADOR DIGIVEX MOTION MONOEJE DSM MONOEJE DE POTENCIA DPM MULTIEJE (RACK) DMM SOFTWARE DE REGLAJE Y PROGRAMACION PARVEX MOTION EXPLORER 5 a 700 N.m PME Tool Kit INDICE 1. GENERALIDADES 1.1 1.2 1.3 1.4 2 Relación de manuales existentes del DIGIVEX MOTION Protocolo CANopen Presentación Principios generales 2. GUIA DEL USUARIO 2.1 2.2 2.3 2.4 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 Archivos necesarios D.L.L. de interface PXCOMM.DLL Driver software PC-CRS232 Estructura de los archivos de definición de los parámetros Memorias EEPROM_DM RAM_DM FLASH_DM PROG_DM FIRM_DM RAM_PC Memoria de masa 3. GUIA DE FUNCIONES 3.1 Repertorio alfabético de las funciones 3.2 Códigos de retorno de las funciones - Códigos de error 3.3 Descripción detallada de las distintas funciones PxDirectReadParam PxDirectWriteParam PxOpenStreamEx 4. EJEMPLOS DE PROGRAMACION Las características y medidas pueden modificarse sin aviso previo SSD Parvex SAS 8 Avenue du Lac / B.P 249 / F-21007 Dijon Cedex Tél. : +33 (0)3 80 42 41 40 / Fax : +33 (0)3 80 42 41 23 www.SSDdrives.com 1 PVD 3528 E 11/2003 2 2 3 4 5 5 6 6 7 8 8 8 8 8 8 8 8 11 11 12 12 17 18 22 32 PME Tool Kit 1. GENERALIDADES 1.1 Relación de manuales existentes del DIGIVEX MOTION ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ Manual de utilización DIGIVEX Single Motion (DSM) Manual de utilización DIGIVEX Power Motion (DPM) Manual de utilización DIGIVEX Multi Motion (DMM) Manual DIGIVEX Motion - CANopen Manual DIGIVEX Motion - PROFIBUS Manual de ajuste PME - DIGIVEX Motion Repertorio de variables DIGIVEX Motion Manual de programación DIGIVEX Motion Manual DIGIVEX Motion - Complemento Leva Manual de utilización PME Tool kit CANopen - Acceso al bus CAN mediante CIM03 CANopen - Contro remoto mediante mensajes PDO Software de aplicación " Posicionamiento por bloques " Software de aplicación "Cortes lineales a medida mediante cizalla volante" Software de aplicación "Cortes a medida mediante cuchillas rotativas" PVD3515 PVD3522 PVD3523 PVD3518 PVD3554 PVD3516 PVD3527 PVD3517 PVD3538 PVD3528 PVD3533 PVD3543 PVD3519 PVD3531 PVD3532 1.2 Protocolo CANopen El protocolo CANopen sirve para parametrizar y supervisar los aparatos de la familia DIGIVEX Motion. El protocolo CANopen permite gestionar entre otros: • los mensajes de proceso (PDO) y • los mensajes de servicio (SDO) Los mensajes de tipo PDO no reciben confirmación (acuse de recibo), sólo lo hacen los mensajes de tipo SDO. Los mensajes de tipo SDO permiten gestionar consignas puntuales dirigidas a un solo destinatario (lectura o escritura de una variable o de un parámetro de un abonado presente en la red). Teóricamente la velocidad de transmisión máxima del bus CAN (1 Mbit/s) permite el envío de un mensaje cada milisegundo. En la práctica, la utilización de un software bajo Windows para gestionar los mensajes limita dichas posibilidades al envío de un mensaje cada 50ms. Los mensajes de tipo PDO permiten el envío de consignas cíclicas a alta velocidad (ver el manual PVD 3543). Actualmente, los variadores posicionadores de la familia DIGIVEX Motion sólo gestionan los mensajes de tipo SDO. 2 PVD 3528 E 11/2003 PME Tool Kit 1.3 Presentación Este documento presenta el PME Tool Kit y describe el método para acceder a las funciones de gestión de la red CANopen definidas por PARVEX. • • • • El capítulo 1 de Generalidades ofrece una presentación general de PME Tool Kit. El capítulo 2 es la Guía del usuario. Describe el modo de utilización funcional de PME Tool Kit. El capítulo 3 constituye la Guía de Funciones. El capítulo 4 presenta Ejemplos de Programación. PME Tool Kit permite acceder desde un PC equipado con una comunicación serie RS232 a las variables y parámetros de un variador posicionador de la familia DIGIVEX Motion, a través de un módulo de interface CRS232. PME Tool Kit es una biblioteca de funciones de tipo "DLL" incorporada al CD-Rom de instalación del software PME (repertorio tool_kit). Dicha biblioteca contiene todas las funciones necesarias para la inicialización del módulo CRS232 y la gestión de los mensajes de tipo SDO que pasan por el bus CANopen. PME Tool Kit está destinado a usuarios que tengan buenos conocimientos de programación bajo el entorno Windows® 32 bits (C, Delphi®, Visual Basic® ...), no siendo necesario, sin embargo, que conozcan el protocolo CANopen. PME Tool Kit contiene: • Una biblioteca con las funciones de gestión de la red CANopen, de tipo D.L.L. (Dynamic Link Library) 32 bits. • Un driver de la interface CRS232 en forma de ejecutable de 32 bits. • Los archivos de definición de las funciones, variables y parámetros. • La descripción de todas las funciones de gestión de la red CANopen, en forma de documentación. • Ejemplos de programación en distintos lenguajes. 3 PVD 3528 E 11/2003 PME Tool Kit 1.4 Principios generales Se llama Flujo a un canal de comunicación que se abre para un abonado CANopen determinado. El usuario debe, en primer lugar, abrir un flujo. Dicho flujo se identifica mediante un número único devuelto por el sistema. Una vez abierto el flujo, se puede proceder a una lectura o una escritura desde o hacia un aparato, especificando su número de abonado CANopen y el número de flujo. Cualquier flujo abierto debe cerrarse para liberar los recursos utilizados. Se podrán abrir simultáneamente hasta 16 flujos de comunicación en una sesión de trabajo Windows. • Tras la apertura del flujo, se envía a la D.L.L. el código de identificación del archivo de definición de las variables y parámetros para el tipo de aparato afectado. En dicho archivo la DLL encontrará la correspondencia entre el número de variable o de parámetro a leer o escribir y las informaciones asociadas (números de indicador y subindicador CANopen, formato, valores mínimo y máximo, valor por defecto, ...). • Sólo se podrá realizar simultáneamente una operación en un flujo dado. Salvo especificación contraria, la llamada de las funciones de la DLL es "bloqueante", es decir que el programa no puede continuar su ejecución hasta que no se haya producido la salida de la función. Un mecanismo de time-out permite a la DLL devolver un código de error si una función no se ha realizado dentro de un tiempo razonable en la red (abonado ausente, error de transmisión...). El tiempo de time-out varia según la función y el tipo de error encontrado. 4 PVD 3528 E 11/2003 PME Tool Kit 2. GUIA DEL USUARIO 2.1 Archivos necesarios Con PME Tool Kit se entregan los archivos siguientes: ¡Atención! Dichos archivos están previstos para un entorno de desarrollo y de trabajo Win32. PxFnDef.pas Archivo representante de la unidad DELPHI que contiene las definiciones de las funciones exportadas por la D.L.L. Este archivo sólo se utiliza para la programación en lenguaje DELPHI. Debe copiarse en el repertorio del proyecto en desarrollo y guardarse en la cláusula uses. PxFnDef.h Archivo de definición de tipo puntero en las funciones exportadas por la D.L.L. Este archivo sólo se utiliza para la programación en lenguaje "C". Debe incluirse en todos los archivos fuente del proyecto "C" que utilicen alguna de las funciones de la DLL (#include <PxFnDef.h>). Apigid32.dll Archivo biblioteca que contiene las funciones de conversión específicas para VISUAL BASIC. Este archivo sólo se utiliza para una programación en lenguaje VISUAL BASIC. Debe copiarse en el directorio del proyecto en desarrollo. PxComm.dll Archivo biblioteca que contiene todas las funciones de gestión de la red CANopen definidas por PARVEX. Este archivo debe guardarse en el mismo repertorio que los ejecutables que lo utilizan. PxComm.exe Driver software encargado de la comunicación con una interface CRS232, a través de la comunicación serie PC. Este archivo debe obligatoriamente guardarse en el repertorio que contiene PxComm.dll Param.csv Dsm.csv Dtp.csv Estos 3 archivos contienen la definición de las variables y parámetros utilizados por los aparatos PARVEX de la familia DIGIVEX Motion (número, indicador, subindicador, tipo, valor mínimo, valor máximo, valor por defecto...). Gestionan la información prevista en el protocolo CANopen, lo que permite reconocer la presencia de aparatos no-PARVEX en la red. Estos archivos deben obligatoriamente guardarse en el repertorio que contiene PxComm.dll. Firmcrs.h86 Routram.h86 Estos 2 archivos contienen el código ejecutable de la interface CRS232. Dicho código se cargará en la interface CRS232 cuando, tras la primera conexión de la misma, se abra un flujo de comunicación. Estos archivos deben obligatoriamente guardarse en el repertorio que contiene PxComm.dll. 5 PVD 3528 E 11/2003 PME Tool Kit 2.2 D.L.L. de interface PXCOMM.DLL Esta biblioteca de funciones está escrita en DELPHI 4.0 para un entorno Win32. Todas las funciones se declaran mediante la directiva stdcall, con lo que son directamente accesibles desde otros lenguajes como el 'C'. La biblioteca debe incorporarse al proyecto en desarrollo. Para ello, debe incluirse el archivo de definición de las funciones PxFnDef • o bien en una cláusula uses PxFnDef en DELPHI • o bien mediante un #include <PxFnDef.h> en C • o bien copiando las declaraciones Decla_VB_Function_Parvex.txt en VISUAL BASIC (archivo PxFnDef.pas) (archivo PxFnDef.h) contenidas en el archivo La biblioteca debe encontrarse en el mismo repertorio que el o los ejecutables que utilicen sus funciones. Para acceder a una de las variables o uno de los parámetros de un aparato, se envía a una función de la D.L.L. el número de registro en decimal correspondiente a dicha variable o parámetro (ver el manual PVD 3527, Repertorio de variables DIGIVEX Motion, columna "n°" en las tablas descriptivas). Por su parte, el driver de comunicación debe conocer los números de indicador y subindicador CANopen de la variable o del parámetro para poder acceder a la misma/al mismo. La biblioteca realiza por tanto la correspondencia entre dichos números mediante un archivo de definición de las variables y parámetros que deberá incluirse en el mismo repertorio que la D.L.L. Con PME Tool Kit se suministran los archivos de definición de las variables y parámetros para los aparatos PARVEX de la familia DIGIVEX Motion (Param.csv, DSM.csv, DTP.csv). Dichos archivos incluyen también determinados parámetros definidos por la norma CANopen (tipo de aparato, nombre del fabricante...), lo que normalmente permite detectar la presencia en la red de todos los aparatos que incorporen dichos parámetros. 2.3 Driver software PC-CRS232 El archivo ejecutable PxComm.exe es el driver software que realiza todas las comunicaciones entre una aplicación (a través de la D.L.L. de interface) y un aparato de la red CANopen (a través de la interface hard CRS232). Este archivo ejecutable de 32 bits no debe cerrarse nunca durante la utilización de las funciones de gestión de la red CANopen PARVEX. En funcionamiento normal, dicho programa debe "iconificarse" y, por tanto, permanecer invisible para el usuario. El arranque del driver se produce automáticamente cuando se carga un elemento de la D.L.L. de interface PxComm.dll en una aplicación que utilice al menos una de sus funciones. Su cierre es realizado por el último elemento de la D.L.L. que se cierre. 6 PVD 3528 E 11/2003 PME Tool Kit 2.4 Estructura de los archivos de definición de los parámetros Los archivos Param.csv, DSM.csv, DTP.csv tienen una estructura común. Describen las variables y parámetros de los aparatos de la familia DIGIVEX Motion. Estos archivos tienen un formato ASCII, con separadores de campos mediante " ; ". Cada línea corresponde a la definición de una variable o un parámetro distinto. Ejemplo (inicio del archivo DSM.csv): no_registro;nombre;indicador;subindicador;unidad_hexa;Mínimo;Máximo;defecto;tipo;atrib uto;observabilidad 9;Firmware_Version;10249;0;FFFF;sin;sin;;15;3;17 10;CAN_Address;10250;0;FFFF;0;63;;16;1;17 11;Serial_Number;10251;0;FFFF;sin;sin;;15;1;17 12;Param_12;10252;0;FFFF;0;65535;;12;1;17 13;CAN_Baud_Rate;10253;0;FFFF;0;63;;16;1;17 14;Processor_Type;10254;0;FFFF;sin;sin;C167CR LM;15;3;17 Descripción de los campos: no_registro indica el número de registro que se utilizará en la mayoría de las funciones para acceder a la variable o al parámetro (ver manual PVD 3527, Repertorio de las variables DIGIVEX Motion, columna "n°" en las tablas descriptivas). nombre indica el nombre simbólico de la variable o del parámetro. indicador especifica el número de indicador CANopen que utilizará el driver software para acceder a la variable o al parámetro. subindicador especifica el número de subindicador CANopen. unidad_hexa código que indica la unidad de la variable o del parámetro. Mínimo valor mínimo de la variable o del parámetro. Máximo valor máximo de la variable o del parámetro. defecto valor por defecto de la variable o del parámetro, tipo código que indica el tipo de la variable o del parámetro (flotante, entero, binario,...), atributo código que indica si la variable o el parámetro permite el acceso sólo para lectura o para lectura/escritura. observabilidad código que indica la herramienta PARVEX con la que es observable la variable o el parámetro. 7 PVD 3528 E 11/2003 PME Tool Kit 2.5 Memorias Las distintas informaciones comunicadas al variador posicionador, tales como datos, parámetros o programas, son almacenadas en distintas zonas de memoria. La extensión _DM corresponde a los aparatos de la familia DIGIVEX MOTION (DSM, DMM, DPM). La extensión _PC corresponde al ordenador PC conectado al bus CAN. 2.5.1 EEPROM_DM Una zona de memoria no volátil, llamada EEPROM_DM, contiene los parámetros de la máquina y el archivo de configuración del usuario. Dicha memoria está físicamente situada en la tarjeta de personalización del variador posicionador. Parte de la memoria EEPROM_DM es solidaria de la tarjeta matriz del variador posicionador. Memoriza en particular el tiempo de funcionamiento del variador posicionador y su número de serie. 2.5.2 RAM_DM Cuando se realiza la conexión del variador a la red, o al efectuarse una restauración (comando restore), se transfiere el contenido de la memoria EEPROM_DM hacia una memoria viva, llamada RAM_DM. Dicha memoria permite el intercambio de informaciones en línea (ON LINE) entre el variador posicionador y el ordenador PC. 2.5.3 FLASH_DM Los programas de usuario (programas ensamblador, programas fuente, tablas de leva) están guardados en una zona de memoria de tipo flash_eprom, llamada FLASH_DM. Dicha memoria está situada en la tarjeta de personalización y tiene un tamaño de 512Kbytes. 2.5.4 PROG_DM Cuando se conecta el variador o al aplicarse los programas (orden "Aplicar programas"), se transfiere el código ejecutable contenido en la memoria FLASH_DM hacia una memoria viva llamada PROG_DM (RAM 216Kbytes). Los programas de usuario ejecutados por el variador posicionador son los que se encuentran en la memoria PROG_DM. 2.5.5 FIRM_DM El software del sistema operativo se llama firmware. Está situado en una zona de memoria de tipo flash_eprom, llamada FIRM_DM. Dicha memoria es solidaria de la tarjeta matriz del variador posicionador. 2.5.6 RAM_PC Cuando se conecta el variador al ordenador PC, se transmite una imagen de su memoria RAM_DM a la memoria viva del ordenador, llamada RAM_PC. 2.5.7 Memoria de masa Los disquetes y discos duros constituyen la memoria de masa del ordenador PC. Dicha memoria sirve para guardar los datos del usuario. 8 PVD 3528 E 11/2003 PME Tool Kit unidad_hexa: FFFF FFFE FFFD FFFC FFFB FFFA FFF9 FFF8 FFF7 FFF6 FFF5 FFF4 FFF3 FFF2 FFF1 FFF0 FFEF FFEE FFED FFEC FFEB FFEA FFE9 FEFF FEFE FEFD FEFC FEFB FEFA FEF9 FEF8 FEF7 FEF6 FEF5 FEF4 FEF3 FEF2 FEF1 FEF0 FEEF sin V A Ω mH Hz s r.p.m. °C punto/revol. grado angular % V/1000 r.p.m. mA/r.p.m. A/1000 r.p.m. kg.m² r.p.m./V N.m N.m/1000 r.p.m. %/°C mA minuto angular J unit1 unit1/s unit1/s² unit1/revol. unit1/impulsos unit2 unit2/s unit2/s² unit2/revol. unit2/impulsos unit3 V/unit3 unit4 unit4/V Impulsos 1/s Ms 9 PVD 3528 E 11/2003 PME Tool Kit tipo: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 no definido cadena de 16 caracteres no definido flotante IEEE 64 bits flotante IEEE 32 bits entero hexadecimal de 32 bits con signo binario (0 o 1) codificado en entero hexadecimal de 32 bits cadena de 16 caracteres como máximo cadena de 16 caracteres en el formato ± 0.123456789E±01 no definido entero hexadecimal de 32 bits sin signo entero hexadecimal de 32 bits con signo entero hexadecimal de 16 bits sin signo entero hexadecimal de 16 bits con signo binario (0 o 1) codificado en entero hexadecimal de 16 bits cadena de 16 caracteres como máximo cadena de 16 caracteres en el formato ± 0.123456789E±01 0 1 2 3 4 5 no definido parámetro para lectura/escritura parámetro específico parámetro sólo para lectura variable sólo para lectura variable para lectura/escritura atributo: La diferencia entre variable y parámetro sólo radica en el hecho de que: • las variables tienen valores de inicialización que no son modificables por el usuario; • los parámetros tienen valores de inicialización que son modificables por el usuario. observabilidad: 0 0 / 16 / 17 / 81 5 / 13 / 85 / 125 / 253 16 / 17 / 81 / 85 / 125 / 241 / 253 no observable no observable mediante la herramienta osciloscopio observable mediante la herramienta osciloscopio observable de otra forma que mediante la herramienta osciloscopio 10 PVD 3528 E 11/2003 PME Tool Kit 3. GUIA DE FUNCIONES 3.1 Repertorio alfabético de las funciones En las páginas siguientes, se describen las funciones: • • • • • • • • • • • • • • • • PxChangeCANBaudRate PxChangeRS232BaudRate PxCloseAllStream PxCloseStream PxDirectReadStream PxDirectWriteParam PxGetFirmLoadProgress PxOpenStream PxOpenStreamEx PxReadOscilloCurve PxReadParam PxReadUserProgFile PxWriteFirmWareFile PxWriteParam PxWriteParameterFile PxWriteUserProgFile 11 PVD 3528 E 11/2003 PME Tool Kit 3.2 Códigos de retorno de las funciones - Códigos de error SUCCESS = 0 (no hay errores) -1 Número de flujo de comunicación erróneo. -3 El driver de comunicación está ocupado. Por favor, vuelva a intentarlo después. -4 El driver de comunicación no contesta. Por favor, vuelva a lanzar la aplicación. -5 El driver está cerrado. No es posible ninguna comunicación. Vuelva a lanzar PxComm.exe. -20 Valor fuera de límites. Por favor vuelva a empezar. -21 El parámetro no es accesible. -22 El parámetro direccionado es de sólo lectura. -23 Este parámetro no existe. -24 Para escribir este parámetro, el variador debe estar con velocidad y par nulos. -25 El archivo no es correcto. Contiene un error de sintaxis. -26 Incoherencia entre el valor y el tipo de parámetro. Compruebe el valor. -27 Se ha detectado un error de check-sum durante la transferencia del firmware. -28 Error de check-sum. El archivo firmware es incorrecto. -30 Error de time-out en el bus CANopen. -50 Se ha producido un problema de comunicación con la interface CRS232. -51 La comunicación con la interface CRS232 se ha interrumpido. Compruebe la conexión y vuelva a empezar. -100 Comunicación imposible. Compruebe las conexiones y vuelva a lanzar la aplicación. -202 Una instrucción está en curso de ejecución. Vuelva a intentarlo. -204 El archivo de definición de los parámetros no existe o no es correcto. 3.3 Descripción detallada de las distintas funciones 12 PVD 3528 E 11/2003 PME Tool Kit PxChangeCANBaudRate Función Esta función pide al driver que cambie la velocidad de comunicación utilizada por la interface CRS232 para comunicar en el bus CANopen. Sinopsis DELPHI function PxChangeCANBaudRate( iStream: Integer; BaudRateCode: Integer ): Integer; stdcall; C int _stdcall PxChangeCANBaudRate( int iStream, int BaudRateCode ); VISUAL BASIC Private Declare Function PxChangeCANBaudRate Lib "pxcomm.dll" (ByVal iStream As Long, ByVal BaudRateCode As Long) As Long Parámetros iStream BaudRateCode de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). de tipo Integer, contiene un código que especifica la velocidad de comunicación deseada: 0 10 Kbaudios 4 250 Kbaudios 1 20 Kbaudios 5 500 Kbaudios 2 50 Kbaudios 6 1 Mbaudios 3 125 Kbaudios Códigos de retorno de tipo Integer <0 6 Se ha producido un error (ver códigos de error § 3.2). El proceso se ha realizado satisfactoriamente. Comentarios El identificador del flujo a utilizar debe corresponder a la interface CRS232 físicamente conectada. El driver espera un acuse de recibo/confirmación de la CRS232 antes de salir de esta función. ¡Atención! Antes de utilizar esta función, es necesario cambiar la velocidad de comunicación en la red CANopen de cada uno de los abonados conectados. El procedimiento es el siguiente: • conectar únicamente un solo aparato a la red • cambiar la velocidad de emisión/recepción de dicho abonado en el bus CANopen mediante la función PxWriteParam (escritura del parámetro "Can_Baud_Rate" número de registro 13 para un variador posicionador de la familia DIGIVEX MOTION) • cambiar la velocidad CANopen de la interface CRS232 mediante la función PxChangeCANBaudRate • guardar la nueva velocidad cargada en el abonado mediante la función PxWriteParam (escritura del parámetro "Save_Param" número de registro 12295 para un variador posicionador de la familia DIGIVEX MOTION) • volver a cambiar la velocidad CANopen de la interface CRS232 a su valor inicial mediante la función PxChangeCANBaudRate • desconectar el aparato y repetir el procedimiento descrito para los demás aparatos • volver a conectar todos los aparatos • cambiar una última vez la velocidad CANopen de la interface CRS232 (velocidad final deseada) mediante la función PxChangeCANBaudRate 13 PVD 3528 E 11/2003 PME Tool Kit PxChangeRS232BaudRate Función Esta función pide al driver que cambie la velocidad de comunicación de la conexión serie entre el PC y la interface CRS232. Sinopsis DELPHI function PxChangeRS232BaudRate( iStream: Integer; BaudRate: dword ): Integer; stdcall; C int _stdcall PxChangeRS232BaudRate( int iStream, DWORD BaudRate ); VISUAL BASIC Private Declare Function PxChangeRS232BaudRate Lib "pxcomm.dll" (ByVal iStream As Long, ByVal BaudRate As Long) As Long Parámetros iStream de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). BaudRate de tipo dWord, indica la velocidad a aplicar a la comunicación serie entre el PC y la interface CRS232. Los valores de velocidad posibles son: 0 9600 baudios 2 57600 baudios 1 19200 baudios 3 115200 baudios Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). 5 El proceso se ha realizado satisfactoriamente. Comentarios La petición de cambio se transmite a la velocidad antigua, siendo el valor del parámetro un octeto que representa la velocidad deseada. A continuación se interrumpe la comunicación y luego la conexión se cierra y se abre de nuevo automáticamente con la nueva velocidad. El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. 14 PVD 3528 E 11/2003 PME Tool Kit PxCloseAllStream Función Esta función pide al driver de la interface CRS232 que cierre todos los flujos de comunicación anteriormente abiertos por las llamadas a la función PxOpenStream. Sinopsis DELPHI function PxCloseAllStream( dwProcess: dWord ): Integer; stdcall; C int _stdcall PxCloseAllStream( DWORD dwProcess ); VISUAL BASIC Private Declare Function PxCloseAllStream Lib "pxcomm.dll" (ByVal dwProcess As Long) As Long Parámetros dwProcess de tipo dWord, indica el identificador del proceso que llama (anteriormente devuelto por la función GetCurrentProcessId del API Win32). Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). ≥0 el proceso se ha realizado satisfactoriamente (devuelve el número de flujos cerrados). Comentarios No será posible ninguna nueva comunicación por los flujos de comunicación cerrados mediante dicha función (a menos que se vuelva a abrir el flujo). 15 PVD 3528 E 11/2003 PME Tool Kit PxCloseStream Función Esta función pide al driver de la interface CRS232 que cierre un flujo de comunicación anteriormente abierto por una llamada a la función PxOpenStream. Sinopsis DELPHI function PxCloseStream( dwProcess: dWord; iStream: Integer ): Integer; stdcall; C int _stdcall PxCloseStream( DWORD dwProcess, int iStream ); VISUAL BASIC Private Declare Function PxCloseStream Lib "pxcomm.dll" (ByVal dwProcess As Long, ByVal iStream As Long) As Long Parámetros dwProcess de tipo dWord, indica el identificador del proceso que llama (anteriormente devuelto por la función GetCurrentProcessId del API Win32). iStream de tipo Integer, indica el identificador del flujo a cerrar (anteriormente devuelto por la función PxOpenStream). Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). >0 el proceso se ha realizado satisfactoriamente (devuelve el número del flujo cerrado). Comentarios No será posible ninguna nueva comunicación por el flujo de comunicación cerrado mediante dicha función (a menos que se vuelva a abrir el flujo). 16 PVD 3528 E 11/2003 PME Tool Kit PxDirectReadParam Función Esta función es idéntica a PxReadParam. La única diferencia es que se especifican el número de indicador, el número de subindicador y el tipo del parámetro que se quiere leer. Se utilizará esta función cuando el abonado en el que se vaya a leer el parámetro no sea un terminal µVision ni un variador posicionador de la familia DIGIVEX Motion (DSM, DMM o DPM). Sinopsis DELPHI function PxDirectReadParam( iStream: Integer; iNode: Integer; wIndexParam: word; wSubIndexParam: word; iType: Integer; var cArray: array of Char ):Integer; stdcall; C int_stdcall PxDirectReadParam( int iStream, int iNode, WORD wIndexParam, WORD wSubIndexParam, int iType, char cArray[4096], int iSize ); VISUAL BASIC Private Declare Function PxDirectReadParam Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wIndexParam As Long, ByVal wSubIndexParam As Long, ByVal iType As Long, ByVal cArray As Long, ByVal iSize As Long ) As Long Parámetros de tipo Integer, indica el indicador de flujo a utilizar (anteriormente devuelto iStream por la función PxOpenStream). iNode de tipo Integer, indica el número del abonado CANopen al que va dirigida la petición. wIndexParam de tipo Word, indica el número de indicador CANopen del parámetro que se quiere leer. wSubIndexParam de tipo Word, indica el número de subindicador CANopen del parámetro que se quiere leer. iType de tipo Integer, indica el tipo del parámetro que se quiere leer (ver § 2.4). cArray de tipo array of Char, contiene, en respuesta, el valor codificado en ASCII de la variable o del parámetro leído. iSize Códigos de retorno de tipo Integer <0 Tamaño de la tabla cArray (utilizado sólo en C y VISUAL BASIC). se ha producido un error (Ver códigos de error § 3.2). el proceso se ha realizado satisfactoriamente. = SUCCESS Comentarios Ver función PxReadParam. 17 PVD 3528 E 11/2003 PME Tool Kit PxDirectWriteParam Función Esta función es idéntica a PxWriteParam. La única diferencia es que se especifican el número de indicador, el número de subindicador y el tipo del parámetro a modificar. Se utilizará esta función cuando el abonado en el que se vaya a escribir el parámetro no sea un terminal µVision ni un variador posicionador de la familia DIGIVEX Motion (DSM, DMM o DPM). Sinopsis DELPHI function PxDirectReadParam( iStream: Integer; iNode: Integer; wIndexParam: word; wSubIndexParam: word; iType: Integer; cArray: array of Char ):Integer; stdcall; C int_stdcall PxDirectReadParam( int iStream, int iNode, WORD wIndexParam, WORD wSubIndexParam, int iType, char cArray[4096], int iSize ); VISUAL BASIC Private Declare Function PxDirectReadParam Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wIndexParam As Long, ByVal wSubIndexParam As Long, ByVal iType As Long, ByVal cArray As Long, ByVal iSize As Long ) As Long Parámetros de tipo Integer, indica el indicador de flujo a utilizar (anteriormente devuelto iStream por la función PxOpenStream) iNode de tipo Integer, indica el número del abonado CANopen al que va dirigida la petición. wIndexParam de tipo Word, indica el número de indicador CANopen del parámetro a modificar. wSubIndexParam de tipo Word, indica el número de subindicador CANopen del parámetro a modificar. iType de tipo Integer, indica el tipo del parámetro a modificar (ver § 2.4). cArray de tipo array of Char, contiene, en respuesta, el valor codificado en ASCII de la variable o del parámetro a modificar. iSize Tamaño de la tabla cArray (utilizado sólo en C y VISUAL BASIC). Códigos de retorno de tipo Integer se ha producido un error (ver códigos de error § 3.2). <0 el proceso se ha realizado satisfactoriamente. = SUCCESS Comentarios Ver función PxWriteParam. 18 PVD 3528 E 11/2003 PME Tool Kit PxGetFirmLoadProgress Función Tras una petición de transferencia de firmware hacia un variador posicionador de la familia DIGIVEX Motion (PxWriteFirmWareFile), esta función permite implementar una espera con visualización de la progresión de la transferencia. Sinopsis DELPHI function PxGetFirmLoadProgress( iStream:Integer ): Integer; stdcall; C int _stdcall PxGetFirmLoadProgress( int iStream ); VISUAL BASIC Private Declare Function PxGetFirmLoadProgress Lib "pxcomm.dll" (ByVal iStream As Long) As Long Parámetros iStream de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). El identificador de flujo es el mismo que se utilizó para iniciar la transferencia del firmware (función PxWriteFirmWareFile). Códigos de retorno de tipo Integer El valor devuelto (valor entero comprendido entre 0 y 100) especifica el porcentaje de realización de la función de transferencia del Firmware en curso. El valor por defecto (no hay carga en curso) es de 100%. Comentarios El código de sondeo que utiliza la función PxGetFirmLoadProgress debe implantarse en un "thread" distinto del que lanzó la función de transferencia del firmware. 19 PVD 3528 E 11/2003 PME Tool Kit PxOpenStream Función Esta función pide al driver que abra un flujo de comunicación entre una aplicación y una interface CRS232, utilizando el puerto serie especificado en la llamada de la función. Sinopsis DELPHI function PxOpenStream( dwProcess: dWord; pCOM: PChar; BaudRate: dWord; iConfig: Integer ): Integer; stdcall; C int _stdcall PxOpenStream( DWORD dwProcess, LPSTR pCom, DWORD BaudRate, int iConfig ); VISUAL BASIC Private Declare Function PxOpenStream Lib "pxcomm.dll" (ByVal dwProcess As Long, ByVal pCom As String, ByVal BaudRate as Long, ByVal iConfig as Long) As Long Parámetros dwProcess de tipo dWord, especifica el identificador del proceso que llama (anteriormente devuelto por la función GetCurrentProcessId del API Win32). pCOM de tipo Pchar, posiciona el puntero en la cadena de caracteres ASCII (con "cero" terminal) que contiene el nombre en claro del puerto de comunicación serie a utilizar para el flujo que se quiere abrir (COM1, COM2, ...). BaudRate de tipo dWord, indica el valor en claro de la velocidad de transmisión a utilizar para abrir la comunicación serie (9600, 19200, 57600 o 115200). iConfig de tipo Integer, contiene un código que identifica el archivo de definición de las variables y parámetros del abonado para el que se abrirá el flujo: 0 Param.csv (reservado para uso interno) 1 DSM.csv (a utilizar para direccionar un variador posicionador de la familia DIGIVEX Motion : DSM, DMM o DPM) 2 DTP.csv (a utilizar para direccionar un terminal µVision) Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). =0 Se ha producido un error: no hay flujo de comunicación disponible. >0 Devuelve el identificador de flujo (número único comprendido 1 y 16). 20 PVD 3528 E 11/2003 PME Tool Kit Comentarios Esta función debe utilizarse en primer lugar, antes de cualquier intercambio en la red. De lo contrario se produce el cierre del flujo de comunicación mediante la función PxCloseStream. Si la interface de communicación CRS232 no ha sido inicializada, el driver le transfiere su firmware, espera una respuesta de acuse de recibo y luego le envía la velocidad de comunicación RS232 deseada. Si el puerto de comunicación serie especificado está ya abierto (operación anteriormente realizado por otro flujo), la función comprueba si la interface CRS232 está correctamente inicializada, la inicializa en su caso y devuelve un número único de flujo a la aplicación que ha realizado la petición. Se pueden abrir simultáneamente hasta un máximo de 16 flujos. Nota: la inicialización de la interface CRS232 tarda algunos segundos, pero normalmente sólo se realiza una única vez cuando se efectúa la conexión del módulo. 21 PVD 3528 E 11/2003 PME Tool Kit PxOpenStreamEx Función Esta función es idéntica a PxOpenStream. La única diferencia es que se especifican el nombre del archivo de definición de las variables y parámetros del abonado para el que se va a abrir el flujo. Se utilizará esta función cuando el abonado no sea un terminal µVision ni un variador posicionador de la familia DIGIVEX Motion (DSM, DMM o DPM). Sinopsis DELPHI function PxOpenStreamEx( dwProcess: dWord; pCOM: PChar; BaudRate: dWord; iConfig: Integer; cFile: array of Char ):Integer; stdcall; C int_stdcall PxOpenStream( DWORD dwProcess, LPSTR pCom, DWORD BaudRate, int iConfig, char cFile[4096], int iSize ); VISUAL BASIC Private Declare Function PxOpenStream Lib "pxcomm.dll" (ByVal dwProcess As Long, ByVal pCom As String, ByVal BaudRate As Long, ByVal iConfig As Long, ByVal cFile As Long, ByVal iSize As Long ) As Long Parámetros de tipo dWord, indica el identificador del proceso que llama (anteriormente dwProcess devuelto por la función GetCurrentProcessId del API Win32). pCom de tipo Pchar, posiciona el puntero en la cadena de caracteres ASCII (con "cero" terminal) que contiene el nombre en claro del puerto de comunicación serie a utilizar para el flujo que se quiere abrir (COM1, COM2, ...). BaudRate de tipo dWord, indica el valor en claro de la velocidad de transmisión a utilizar para abrir la comunicación serie (9600, 19200, 57600 o 115200). iConfig de tipo Integer, contiene el código 0. cFile de tipo array of Char, contiene la cadena de caracteres ASCII (con "cero" terminal) que indica el nombre completo del archivo (.csv) de definición de las variables y de los parámetros del abonado para el que se va abrir el flujo. iSize Códigos de retorno de tipo Integer <0 =0 Tamaño de la tabla cFile (utilizado sólo en C y VISUAL BASIC). se ha producido un error (Ver códigos de error § 3.2). se ha producido un error : no hay flujo de comunicación disponible. devuelve el identificador de flujo (número único comprendido entre 1 y 16). >0 Comentarios Ver función PxOpenStream. 22 PVD 3528 E 11/2003 PME Tool Kit PxReadOscilloCurve Función Esta función envía a la interface CRS232 una petición de lectura de curva del osciloscopio en el variador posicionador correspondiente al abonado CANopen especificado. Sinopsis DELPHI function PxReadOscilloCurve( iStream: Integer; iNode: Integer; wNumParam: word; wNumSegment: word; var cArray: array of char ): Integer; stdcall; C int _stdcall PxReadOscilloCurve( int iStream, int iNode, WORD wNumParam, char cArray[4096], int iSize); VISUAL BASIC Private Declare Function PxReadOscilloCurve Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wNumParam As Long, ByVal wNumSegment As Long, ByVal cArray As Long, ByVal iSize As Long) As Long Parámetros iStream de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). iNode de tipo Integer, indica el número del abonado CANopen afectado por la petición. wNumParam De tipo Word, indica el número de indicador de la variable que contiene los puntos de la curva que se quiere leer: • 1180 para la vía 1 (osc_channel0) • 1181 para la vía 2 (osc_channel1) • 1182 para la vía 3 (osc_channel2) • 1183 para la vía 4 (osc_channel3) de tipo Word, indica el número del segmento de curva a leer. (1 a 128) wNumSegment cArray iSize De tipo array of Char, contiene, en respuesta, para el segmento considerado, los valores de los puntos de osciloscopio leídos (16 valores flotantes simple precisión 32 bits codificados en formato IEEE). Tamaño de la matriz cArray (utilizada únicamente en C y VISUAL BASIC) Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). = SUCCESS El proceso se ha realizado satisfactoriamente. 23 PVD 3528 E 11/2003 PME Tool Kit Comentarios El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. Las curvas de osciloscopio están divididas en 128 segmentos de 16 valores flotantes (formato IEEE). La variable "osc_data_ready" especifica el número de segmentos listos para ser leídos por el usuario. El usuario dispone de 10 parámetros para definir la función de osciloscopio: Parámetro osc_num0 n° de registro 1184* osc_num1 1185* osc_num2 1186* osc_num3 1187* osc_trig_level 1188* osc_trig_channel 1189* osc_trig_edge 1190* osc_pretrig 1191* osc_timebase 1192* osc_trig_on 1193* Descripción entero que define el número de registro de la variable asociada a la vía 1 (channel1) las variables observables se especifican en el documento PVD3527 "Repertorio de variables DIGIVEX MOTION" entero que define el número de registro de la variable asociada a la vía 2 (channel2) las variables observables se especifican en el documento PVD3527 "Repertorio de variables DIGIVEX MOTION" entero que define el número de registro de la variable asociada a la vía 3 (channel3) las variables observables se especifican en el documento PVD3527 "Repertorio de variables DIGIVEX MOTION" entero que define el número de registro de la variable asociada a la vía 4 (channel4) las variables observables se especifican en el documento PVD3527 "Repertorio de variables DIGIVEX MOTION" flotante IEEE que indica el umbral de disparo del trigger entero que define el número de la vía utilizada por el trigger (0, 1, 2 ó 3) binario que define el sentido de disparo del trigger: 0 sentido positivo (valor creciente) 1 sentido negativo (valor decreciente) flotante IEEE que indica el valor de pretrig (% de trazado antes del trigger) mínimo 0,01 (1%) máximo 0,99 (99%) entero que indica el valor de la base de tiempo del osciloscopio (expresado en múltiplos de 250 µs) base de tiempo = periodo entre dos muestras mínimo 1 (0,25 ms) máximo 16000 (4 s) binario que define el disparo: 0 disparo inmediato 1 disparo por el trigger * Para un variador posicionador de la familia DIGIVEX MOTION. 24 PVD 3528 E 11/2003 PME Tool Kit Están disponibles además dos variables que permiten poner en marcha la lectura e indicar que los datos están listos para ser leídos: Parámetro osc_on n° de registro 1194* Descripción la escritura de un 1 en esta variable pone en marcha la captura osc_data_ready 1195* entero que indica el número de "segmentos" listos para ser leídos mínimo 0 máximo 128 * Para un variador posicionador de la familia DIGIVEX MOTION. Nota: También se puede utilizar la herramienta osciloscopio PARVEX suministrada con el software PME. Para ello, sólo es necesario pasar en línea de comando al ejecutable scope.exe los parámetros siguientes (los distintos parámetros van separados mediante un carácter "espacio"): scope.exe DSM 3 COM1 115200 12 Parámetro 1 Ejemplo DSM 2 3 3 COM1 4 115200 5 12 Descripción nombre sin extensión del archivo de definición de las variables y parámetros (DSM.csv para un variador posicionador de la familia DIGIVEX Motion) parámetro fijo de uso interno nombre del puerto de comunicación serie utilizado (COM1, COM2, ...) velocidad de la comunicación serie (9600, 19200, 57600 o 115200) número de abonado CANopen del aparato afectado por la petición 25 PVD 3528 E 11/2003 PME Tool Kit PxReadParam Función Esta función envía a la interface CRS232 una petición de lectura de una variable o de un parámetro en el abonado CANopen especificado. Sinopsis DELPHI function PxReadParam( iStream: Integer; iNode: Integer; wNumParam: word; var cArray: array of char ): Integer; stdcall; C int _stdcall PxReadParam( int iStream, int iNode, WORD wNumParam, char cArray[4096], int iSize); VISUAL BASIC Private Declare Function PxReadParam Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wNumParam As Long, ByVal cArray As Long, ByVal iSize As Long) As Long Parámetros iStream iNode wNumParam cArray iSize de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). de tipo Integer, indica el número del abonado CANopen afectado por la petición. de tipo Word, indica el número de registro de la variable o del parámetro a leer (ver el manual PVD 3527, Repertorio de variables DIGIVEX Motion, columna "n°" en las tablas descriptivas). de tipo array of Char, contiene, en respuesta, el valor codificado en ASCII de la variable o del parámetro leído. Tamaño de la matriz cArray (utilizada únicamente en C y VISUAL BASIC) Códigos de retorno de tipo Integer <0 = SUCCESS Se ha producido un error (ver códigos de error § 3.2). El proceso se ha realizado satisfactoriamente. Comentarios La función traduce el valor leído en el aparato en una cadena de caracteres ASCII. Atención: Según la variable o el parámetro leído, esta función puede devolver un valor en código ASCII comprendido entre 2 octetos y 4 Koctetos (16 octetos generalmente). El buffer que recibe el dato deberá tener, por tanto, el tamaño suficiente. El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. 26 PVD 3528 E 11/2003 PME Tool Kit PxReadUserProgFile Función Esta función envía a la interface CRS232 una petición de salvaguarda en el PC del Programa Usuario del variador posicionador correspondiente al abonado CANopen especificado. Sinopsis DELPHI function PxReadUserProgFile( iStream: Integer; iNode: Integer; wNumParam: word; var Filename: PChar ):Integer; stdcall; C int _stdcall PxReadUserProgFile( int iStream, int iNode, WORD wNumParam, LPSTR FileName ); VISUAL BASIC Private Declare Function PxReadUserProgFile Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wNumParam As Long, ByVal FileName As String) As Long Parámetros iStream de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). iNode de tipo Integer, indica el número del abonado CANopen afectado por la petición. wNumParam de tipo Word, indica el número de registro correspondiente a una petición de salvaguarda del Programa Usuario (parámetro "Data_Prog" número 12288 para un variador posicionador). FileName de tipo PChar, posiciona el puntero, en respuesta, en una cadena de caracteres (con "cero" terminal) que indica el nombre completo del archivo temporal que contiene el programa de usuario leído. Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). = SUCCESS El proceso se ha realizado satisfactoriamente. Comentarios El driver crea un archivo temporal, guarda en el mismo el programa usuario descargado, y luego devuelve el nombre de dicho archivo. El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. 27 PVD 3528 E 11/2003 PME Tool Kit PxWriteFirmWareFile Función Esta función pide al driver de la interface CRS232 que transfiera un archivo de Firmware hacia un abonado CANopen (transferencia a memoria FIRM_DM). Sinopsis DELPHI function PxWriteFirmWareFile( iStream: Integer; iNode: Integer; wNumParam: Word; FileName: PChar ): Integer; stdcall; C int _stdcall PxWriteFirmWareFile( int iStream, int iNode, WORD wNumParam, LPSTR FileName ); VISUAL BASIC Private Declare Function PxWriteFirmWareFile Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wNumParam As Long, ByVal FileName As String) As Long Parámetros iStream de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). iNode de tipo Integer, indica el número del abonado CANopen afectado por la petición. wNumParam de tipo Word, indica el número de registro correspondiente a una petición de transferencia del archivo Firmware (parámetro "Data_Firm" número 12291 para un variador posicionador). FileName de tipo PChar, posiciona el puntero en una cadena de caracteres (con "cero" terminal) que indica el nombre completo del archivo Firmware a transferir. Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). = SUCCESS El proceso se ha realizado satisfactoriamente. Comentarios Atención: Esta función sustituye el "código Firmware" del aparato conectado por el del archivo transmitido. En caso de problemas de transmisión, la reinicialización del aparato permite recuperar el antiguo Firmware. El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. 28 PVD 3528 E 11/2003 PME Tool Kit PxWriteParam Función Esta función envía a la interface CRS232 una petición de escritura de una variable o un parámetro en el abonado CANopen especificado (transferencia a memoria RAM_DM). Sinopsis DELPHI function PxWriteParam( iStream: Integer; iNode: Integer; wNumParam: word; var cArray: array of char ): Integer; stdcall; C int _stdcall PxWriteParam( int iStream, int iNode, WORD wNumParam, char cArray[4096], int iSize); VISUAL BASIC Private Declare Function PxWriteParam Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wNumParam As Long, ByVal cArray As Long, ByVal iSize As Long) As Long Parámetros iStream iNode wNumParam cArray iSize de tipo Integer, indica el identificador de flujo a utilizar (anteriormente devuelto por la función PxOpenStream). de tipo Integer, indica el número del abonado CANopen afectado por la petición. de tipo Word, indica el número de registro de la variable o del parámetro a modificar (ver manual PVD 3527, Repertorio de variables DIGIVEX Motion, columna "n°" en las tablas descriptivas). de tipo array of Char, contiene el valor codificado en ASCII de la variable o del parámetro a modificar. Tamaño de la matriz cArray (utilizada únicamente en C y VISUAL BASIC) Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). = SUCCESS El proceso se ha realizado satisfactoriamente. Comentarios El valor transmitido a la función debe ser una cadena de caracteres (por ejemplo "+1,444" o "EJE1"). Si dicho valor no se ajusta al formato esperado para la variable o el parámetro que se quiere modificar, la función devuelve un código de error. El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. Nota: Para guardar en memoria EEPROM_DM, el o los parámetros anteriormente modificado(s), utilizar la función PxWriteParam para escribir el texto '1' en el parámetro "Save_Param" (número de registro 12295 para un variador posicionador de la familia DIGIVEX MOTION). Este comando permite guardar el conjunto de los parámetros de memoria RAM_DM en memoria EEPROM_DM. 29 PVD 3528 E 11/2003 PME Tool Kit PxWriteParameterFile Función Esta función pide al driver de la interface CRS232 que transfiera un archivo de Parámetros hacia un abonado CANopen (transferencia a memoria RAM_DM). Sinopsis DELPHI function PxWriteParameterFile( iStream: Integer; iNode: Integer; FileName: PChar ): Integer; stdcall; C int _stdcall PxWriteParameterFile( int iStream, int iNode, LPSTR FileName ); VISUAL BASIC Private Declare Function PxWriteParameterFile Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal FileName As String) As Long Parámetros iStream iNode FileName de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). de tipo Integer, indica el número del abonado CANopen afectado por la petición. de tipo PChar, posiciona el puntero en una cadena de caracteres (con "cero" terminal) que indica el nombre completo del archivo Parámetros a transferir. Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). = SUCCESS El proceso se ha realizado satisfactoriamente. Comentarios El archivo de parámetros a escribir debe tener la sintaxis siguiente: <Parameters> N°_del_ parámetro_en_decimal=Valor_del_parámetro_en_ASCII ;Nombre_del_parámetro_en_ASCII </Parameters> Ejemplo: <Parameters> 51=LX310BS;Nmot 52=DIGIVEX 4/8;Nvar 53=1;TypC 54=1;TypF 55=280;U </Parameters> El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. Nota: Para guardar en memoria EEPROM_DM, el conjunto de los parámetros existentes en memoria RAM_DM, utilizar la función PxWriteParam para escribir el texto '1' en el parámetro "Save_Param" (número de registro 12295 para un variador posicionador de la familia DIGIVEX MOTION). 30 PVD 3528 E 11/2003 PME Tool Kit PxWriteUserProgFile Función Esta función pide al driver de la interface CRS232 que transfiera un archivo de Programa Usuario hacia el variador posicionador correspondiente al abonado CANopen especificado (transferencia a memoria FLASH_DM). Sinopsis DELPHI function PxWriteUserProgFile( iStream: Integer; iNode: Integer; wNumParam: Word; FileName: PChar ): Integer; stdcall; C int _stdcall PxWriteUserProgFile( int iStream, int iNode, WORD wNumParam, LPSTR FileName ); VISUAL BASIC Private Declare Function PxWriteUserProgFile Lib "pxcomm.dll" (ByVal iStream As Long, ByVal iNode As Long, ByVal wNumParam As Long, ByVal FileName As String) As Long Parámetros iStream iNode wNumParam FileName de tipo Integer, indica el identificador del flujo a utilizar (anteriormente devuelto por la función PxOpenStream). de tipo Integer, indica el número del abonado CANopen afectado por la petición. de tipo Word, indica el número de registro correspondiente a una petición de transferencia de Programa Usuario (parámetro "Data_Prog" número 12288 para un variador posicionador). de tipo PChar, posiciona el puntero en una cadena de caracteres (con "cero" terminal) que indica el nombre completo del archivo Programa Usuario que se quiere transferir. Códigos de retorno de tipo Integer <0 Se ha producido un error (ver códigos de error § 3.2). = SUCCESS El proceso se ha realizado satisfactoriamente. Comentarios Este archivo tiene un formato especial y sólo puede proceder del editor de programa PARVEX. El driver espera un acuse de recibo de la CRS232 antes de salir de esta función. Notas: • Antes de transferir un nuevo archivo de Programa Usuario (FLASH_DM), es necesario borrar previamente la memoria de programa usuario del variador posicionador: se utilizará la función PxWriteParam para escribir el texto 'DELE' en el parámetro "Erase_Prog" (número de registro 12290 para un variador posicionador de la familia DIGIVEX MOTION). • "Para aplicar" el Programa Usuario: se utilizará la función PxWriteParam para escribir el texto 'PROG' en el parámetro "Cmd_Prog" (número de registro 12289 para un variador posicionador de la familia DIGIVEX MOTION). Este comando permite transferir el código ejecutable de memoria FLASH_DM a memoria PROG_DM. 31 PVD 3528 E 11/2003 PME Tool Kit 4. EJEMPLOS DE PROGRAMACION Se proporcionan con PME Tool Kit varios ejemplos de utilización de las funciones de la D.L.L. Se encuentran en el CD-ROM de instalación de PME en el directorio tool_kit. Dichos ejemplos se presentan a título puramente didáctico. PARVEX no podrá en ningún caso ser considerada responsable de los eventuales problemas que pudieran derivarse de la utilización de los mismos. 32 PVD 3528 E 11/2003