STEP 7 Professional V13 SP1 - Siemens Industry Online Support

Anuncio
STEP 7 Professional V13 SP1
Sinopsis de la conversión de tipos de datos
Sinopsis de la conversión de tipos de datos
Introducción
Para combinar lógicamente varios operandos en una instrucción, es necesario verificar la
compatibilidad de los tipos de datos. Esto también es aplicable a las asignaciones, o a la
asignación de valores a los parámetros de bloque. Si los tipos de datos de los operandos son
diferentes, será preciso realizar una conversión.
La conversión puede realizarse de dos maneras, a saber:
•
Conversión implícita
La conversión se realiza automáticamente al ejecutar la instrucción.
•
Conversión explícita
Se utiliza una instrucción de conversión explícita antes de ejecutar la instrucción propiamente dicha.
Nota
Las posibilidades descritas para convertir tipos de datos siempre toman como base la versión
más reciente de la CPU (V. 4). Es posible que algunas conversiones marcadas como posibles
no estén disponibles en las versiones 1 - 3 de la CPU.
Nota
Conversión de secuencias de bits en SCL
Todas las secuencias de bit (BYTE, WORD, DWORD y LWORD) incluidas en expresiones
reciben el mismo tratamiento que los enteros correspondientes sin signo (USINT, UINT y
UDINT). Por ello, p. ej., la conversión implícita de DWORD a REAL se lleva a cabo del mismo
modo que una conversión de UDINT a REAL.
Conversión implícita
La conversión implícita se realiza automáticamente si los tipos de datos de los operandos son
compatibles. La compatibilidad puede verificarse según criterios más o menos estrictos:
•
Con verificación CEI (ajuste predeterminado)
Si está activada la verificación CEI, se aplican las siguientes reglas:
―
La conversión implícita de BOOL a otros tipos de datos no es posible.
―
Solo los tipos de datos REAL, BYTE, WORD, DINT, INT, SINT, UDINT, UINT, USINT, TIME,
DT, STRING, CHAR y WCHAR se pueden convertir de forma implícita.
―
La longitud de bits del tipo de datos de origen no debe superar la longitud de bits del tipo de
datos de destino. El operando del tipo de datos WORD no puede indicarse, por ejemplo, en un
parámetro si en él se espera el tipo de datos BYTE.
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=es-ES&TopicId=64582004747
24/11/2016
STEP 7 Professional V13 SP1
Sinopsis de la conversión de tipos de datos
•
Sin verificación CEI
Si no está activada la verificación CEI, se aplican las siguientes reglas:
―
La conversión implícita de BOOL a otros tipos de datos no es posible.
―
Solo los tipos de datos REAL, LREAL, BYTE, WORD, DWORD, SINT, INT, DINT, USINT, UINT,
UDINT, TIME, DTL, TOD, DATE, STRING, CHAR y WCHAR se pueden convertir de forma
implícita.
―
La longitud de bits del tipo de datos de origen no debe superar la longitud de bits del tipo de
datos de destino. El operando del tipo de datos DWORD no puede indicarse, por ejemplo, en
un parámetro si en él se espera el tipo de datos WORD.
―
En los parámetros de entrada/salida (InOut) la longitud de bits de un operando indicado debe
coincidir con la longitud de bits programada para el parámetro correspondiente.
Nota
Conversión implícita sin verificación CEI
El editor de programación identifica los operandos que deben convertirse de forma implícita
con un rectángulo gris. Un rectángulo gris oscuro indica que es posible realizar una conversión
implícita sin pérdidas de precisión, p. ej., si el tipo de datos SINT se convierte a INT. Un
rectángulo gris claro indica que es posible realizar una conversión implícita, aunque pueden
producirse fallos en tiempo de ejecución. Si, por ejemplo, el tipo de datos DINT se convierte
a INT y se produce un desbordamiento, la salida de habilitación ENO se pone a "0".
Encontrará más información sobre el ajuste de la verificación CEI y la conversión implícita en
el apartado "Consulte también".
Conversión explícita
Si los operandos no son compatibles, por lo que no se puede realizar una conversión implícita,
es posible utilizar una instrucción de conversión explícita. Encontrará las instrucciones de
conversión en la Task Card "Instrucciones".
Un posible desbordamiento se indica en la salida de habilitación ENO. El desbordamiento se
produce cuando, p. ej., el valor del tipo de datos de origen es mayor que el del tipo de datos
de destino.
Encontrará más información sobre la conversión explícita en "Consulte también".
La figura siguiente muestra un ejemplo en el que debe realizarse una conversión explícita de
tipos de datos:
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=es-ES&TopicId=64582004747
24/11/2016
STEP 7 Professional V13 SP1
Sinopsis de la conversión de tipos de datos
El bloque de función "Bloque" espera en el parámetro de entrada "IN_INT" una variable del
tipo de datos INT. Por este motivo, el valor de la variable "IN_DINT" debe convertirse primero
de DINT a INT. Si el valor de la variable "IN_DINT" se encuentra dentro del rango de valores
válido del tipo de datos INT, se produce la conversión. En caso contrario, se notifica un
desbordamiento. No obstante, en caso de desbordamiento también tiene lugar una conversión,
pero los valores se cortan y la salida de habilitación ENO se pone a "0".
Ver también
→ Conversión implícita
→ Conversión explícita
→ Activar o anular la verificación CEI
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=es-ES&TopicId=64582004747
24/11/2016
Descargar