Funciones de PROFIBUS DP-V1
I
9
Planificación del proyecto de un maestro C1
0 0
9.4.2
Ejemplo de programa para SIMATIC S7
Ejemplo: Componente funcional FB5 "DPV1_Movilink_FB"
FUNCTION_BLOCK FB 5
TITLE =DPV1_Movilink_FB
//NOTA!
//Este ejemplo de programa muestra sólo el modo principal de proceder.
//¡El fabricante no se hace responsable de los fallos en las funciones del
//programa ni de las consecuencias de los mismos!
//
//Requisitos del sistema:
// - conexión del maestro DP de las familias S7-300 ó S7-400,
// que es compatible con la funcionalidad del maestro DPV1.
// - conexiones de Profibus DPV1 de SEW (identificación "SEWA600x.GSD")
//
//Este componente funcional lleva a cabo un intercambio de parámetro entre variador
//y PLC a través de un canal DPV1. Debido a que en el caso del intercambio de datos a través del
//canal de parámetros DPV1 se trata de un servicio acíclico, se ha de
//activar el componente funcional hasta que se haya efectuado el intercambio de
//datos (duración desde el inicio de la orden de ajuste de parámetros mediante fActivate hasta el
//mensaje de acuse de recibo de fDone).
AUTHOR : SEW
FAMILY : Movilink
VERSION : 0.1
VAR_INPUT
Drive_IO_Address : INT ;
bService : BYTE ; //Byte de servicio Movilink 0x01 = READ, 0x02 = WRITE, etc.
bAxis : BYTE ;
wParameterIndex : WORD ;
wSubIndex : WORD ;
dwWRITEData : DWORD ; //Datos WRITE
InstanzDB_SFB52 : BLOCK_DB ;
InstanzDB_SFB52 : BLOCK_DB ;
END_VAR
VAR_OUTPUT
bError : BYTE ;
dwData : DWORD ;
END_VAR
VAR_IN_OUT
fActivate : BOOL ; //Iniciar la función
fBusy : BOOL ;
fDone : BOOL ;
END_VAR
VAR
fStaticBusy : BOOL ;
fStaticWRITEReq : BOOL ;
fDPV1WRITEDone : BOOL ;
fAuxflag : BOOL ;
dwStaticDriveAddr : DWORD ;
iStaticReqLength : INT ;
MVLK_Req : STRUCT
RequestReference : BYTE
RequestId : BYTE
Axis : BYTE ;
No_of_Parameter : BYTE
Attribute : BYTE ;
No_of_Elements : BYTE ;
ParameterNumber : WORD ;
Subindex : WORD ;
Format : BYTE
:= B#16#43;
Values : BYTE
:= B#16#1;
WRITEData : DWORD ;
END_STRUCT ;
TimeoutCounter : WORD ;
END_VAR
104
El código STEP 7 especificado en el archivo GSD muestra cómo se efectúa el acceso
a los parámetros por medio de los componentes de función del sistema STEP 7 SFB
52/53. Puede copiar el código STEP 7 e importarlo / traducirlo como fuente STEP 7.
Este ejemplo muestra como servicio especial gratuito obligatoriamente sólo el
procedimiento general para la creación de un programa PLC. Por tanto, no nos
responsabilizamos del contenido del programa-ejemplo.
//Dirección periférica del variador
//0 en caso de eje individual, subdirección del eje al usar la UFP11A
//Índice de parámetros Movilink
//Subíndice Movilink
//Instancia DB de la función del sistema SFB52. Se precisa para DPV1_READ
//Instancia DB de la función del sistema SFB53. Se precisa para DPV1_WRITE
//Ningún fallo = 0, fallo S7 = 1, TimeOut = 2, Fallo de Movilink = 3;
//Contiene datos si fError=0; S7-ErrorCode si fError=1; de lo contrario no definido
//Busybit. Permanece TRUE hasta que esté finalizada la función o responda la vigilancia del
//tiempo de desbordamiento
//Indica que la función está finalizada (con o sin fallo)
//Bit de memoria para Busyflag
//Con MVLK-WRITEReq = TRUE o MVLK-READReq = FALSE
//Indica si se ha efectuado DPV1-WRITE
//Dirección I/O del variador
//Longitud de los mensajes a transmitir
//Estructura Movilink WRITERequest
:= B#16#1;
//REQ: Request reference
:= B#16#40;
//REQ: Request ID
//REQ: Axis
:= B#16#1;
//REQ: No. of parameters
//REQ: Attribute
//REQ: Núm. de elementos
//REQ: Número de parámetro
//REQ: Subindex
//REQ: WRITEData
//Contador del tiempo de desbordamiento
Handboek – Veldbusinterface DFS11B PROFIBUS DP-V1 met PROFIsafe