Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SIMATIC
Consignas de
seguridad para el
usuario
Este manual contiene las informaciones necesarias para la seguridad personal as como para la prevencin de daos materiales. Las informaciones estn puestas de relieve mediante seales de precaucin. Las seales que figuran a continuacin representan distintos grados de peligro:
Peligro
Significa que, si no se adoptan las medidas preventivas adecuadas, se producir la muerte,
lesiones corporales graves o daos materiales considerables.
Precaucin
Significa que, si no se adoptan las medidas preventivas adecuadas, puede producirse la muerte,
lesiones corporales graves o daos materiales considerables.
Cuidado
Significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse lesiones corporales o daos materiales.
Nota
Se trata de una informacin importante, sobre el producto o sobre una parte determinada del manual,
sobre la que se desea llamar particularmente la atencin.
Personal cualificado
La puesta en funcionamiento y el servicio del equipo slo deben ser llevados a cabo conforme con
este manual.
Slo est autorizado a intervenir en este equipo el personal cualificado. En el sentido del manual se
trata de personas que disponen de los conocimientos tcnicos necesarios para poner en funcionamiento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas estndar de seguridad.
Uso conforme
!
Marca registrada
Considere lo siguiente:
Precaucin
El equipo o los componentes del sistema slo se podrn utilizar para los casos de aplicacin previstos
en el catlogo y en la descripcin tcnica, y slo en unin de los equipos y componentes de proveniencia tercera recomendados y homologados por Siemens.
SIMATIC, SIMATIC NET y SIMATIC HMI son marcas registradas por SIEMENS AG
Los restantes nombres y designaciones contenidos en el presente impreso pueden ser marcas registradas cuya utilizacin por terceros para fines propios pueden violar los derechos de los proprietarios.
Hemos probado el contenido de esta publicacin con la concordancia descrita para el hardware y el software. Sin embargo, es posible
que se den algunas desviaciones que nos impiden tomar garanta
completa de esta concordancia. El contenido de esta publicacin
est sometido a revisiones regularmente y en caso necesario se
incluyen las correcciones en la siguiente edicin. Agradecemos
sugerencias.
Siemens AG
Berich Automatisierungs- und Antriebstechnik
Geschaeftsgebiet Industrie-Automatisierungssysteme
Postfach 4848, D-90327 Nuernberg
Siemens AG 1998
Sujeto a cambios sin previo aviso.
Siemens Aktiengesellschaft
6ES7811-1CA02-8DA0
Prlogo
Finalidad del
manual
Destinatarios
Ambito de validez
del manual
Cumplimiento de
la norma
IEC 1131-3
iii
Prlogo
Integracin en el
conjunto de la
documentacin
S7 300/400
Smbolo
/30/
Manual
Manual
de programacin
Manuales sobre
S7-300/400
Hardware
/234/
Ayuda online
Manual
de usuario
Gui
/230/
/231/
KOP
/233/
STEP 7
Gui para facilitar la transicin
de S5 a S7.
AWL
/232/
FUP
/236/
SCL
/250/
Manual
de referencia
GRAPH
para S7
/251/
HiGraph
/252/
CFC para
S7
CFC para
S7
Tomo 1
Tomo 2
/254/
/235/
/249/
Paquetes de lenguaje
iv
Prlogo
Ttulo
Contenido
ABC de la programacin
S7-300 Iniciacin a la
configuracin y
programacin
Manual de programacin
Diseo de programas
S7-300/400
Manual de referencia
Funciones del sistema y
funciones estndar
S7-300/400
Manual de usuario
STEP 7
El manual de usuario STEP 7 explica la aplicacin bsica y las funciones del software de
automatizacin STEP 7. Tanto al nuevo usuario del STEP 7 como al experto de STEP 5, el
manual ofrece una visin general de cmo proceder para efectuar la configuracin,
programacin y puesta en servicio de un S7-300/400. Al trabajar con el software se puede
acceder puntualmente a la ayuda online, la cual asiste en cualquier cuestin de detalle relativa
a la aplicacin del software.
Gui
Para facilitar la transicin
de S5 a S7.
Manuales
AWL, KOP, FUP, SCL1
Los manuales de los paquetes de lenguaje AWL, KOP, FUP y SCL contienen tanto las
instrucciones de usuario como tambin la descripcin del lenguaje tratado. Para la
programacin de un S7-300/400 se requiere un solo lenguaje pero, en caso necesario, se
pueden mezclar varios lenguajes dentro de un proyecto. Para la primera aplicacin de los
lenguajes, es recomendable familiarizarse con el manual que trata sobre la metodologa de
programacin.
En las operaciones con el software se puede utilizar la Ayuda online, la cual ofrece detalles
sobre la aplicacin de los editores/compiladores correspondientes.
Manuales
GRAPH1 , HiGraph1,
CFC1
Los lenguajes GRAPH, HiGraph, CFC ofrecen posibilidades adicionales para implementar
controles secuenciales, de estado o interconexin grfica de bloques. Los manuales contienen
tanto las instrucciones de usuario como la descripcin del lenguaje tratado. Al usar por
primera vez un lenguaje se recomienda familiarizarse con el manual sobre la metodologa de
programacin. Al trabajar con el software se puede utilizar la ayuda online (excepcin
HiGraph), la cual ofrece detalles sobre la aplicacin de los editores/compiladores.
Prlogo
Ayudas para
acceder al manual
En el captulo 2 se tratar, ayudndose de un ejemplo, un proceso de diseo ayudndose que podr ejecutar usted mismo.
Convenciones
Soporte
complementario
Observacin
vi
La parte de este manual que est dedicada al usuario no incluye instrucciones detalladas
sobre los pasos especficos a dar en cada situacin concreta, sino que pretende explicar
de modo general los procedimientos a seguir. En la Ayuda online encontrar
informacin detallada sobre cada cuadro de dilogo del software y sobre el modo en
que deber proceder en cada caso.
Indice
Prlogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iii
1-1
1.1
Qu es SCL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-2
1.2
1-3
1.3
1-5
2-1
2.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-2
2.2
Tarea planteada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-3
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2-5
2-5
2-6
2-7
2-9
2-10
2.4
2-11
2.5
2-12
2.6
2-17
2.7
2-21
2.8
Datos de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-22
3-1
3.1
3-2
3.2
3-4
Manejo de SCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1
4.1
4-2
4.2
4-3
4.3
4-5
5-1
5.1
5-2
5.2
5-3
5.3
5-4
vii
Indice
5.4
5-5
5.5
Proceso de compilacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-6
5.6
5-9
5.7
5-10
Test de un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-1
6.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-2
6.2
6-3
6.3
6-5
6.4
6-8
6.5
6-9
6.6
6-10
viii
7-1
7.1
7-2
7.2
7-4
7.3
Palabras reservadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-5
7.4
Identificadores en SCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-7
7.5
Identificadores estndar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-8
7.6
Nmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-10
7.7
Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-12
7.8
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-14
7.9
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-16
7.10
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-17
7.11
Bloques SCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-18
7.12
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-20
8-1
8.1
Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-2
8.2
8-4
8.3
Atributos de bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-5
8.4
Tabla de declaracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-7
8.5
Area de instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-10
8.6
Instruccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-11
8.7
8-12
8.8
8-14
8.9
8-16
8.10
8-17
8.11
8-19
Indice
10
11
12
13
Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-1
9.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-2
9.2
9-3
9.3
9.3.1
9.3.2
9.3.3
9.3.4
9-4
9-5
9-6
9-7
9-8
9.4
9-10
9.5
Tipos de parmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-12
10-1
10.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-2
10.2
10-4
10.3
Inicializacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-5
10.4
Declaracin de instancias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-7
10.5
Variables estticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10-8
10.6
Variables temporales
10-9
10.7
10.8
............................................
11-1
11.1
Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11-2
11.2
Literales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11-3
11.3
11-4
11.4
11-7
11.5
11.6
12-1
12.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12-2
12.2
12-3
12.3
12-4
12.4
12-6
12.5
12-7
12.6
Bloques de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12-8
12.7
12-9
12.8
12.9
13-1
13.1
Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13-2
13.2
13.2.1
Sintaxis de expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13-3
13-5
ix
Indice
14
15
16
13.3
Expresiones aritmticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13-7
13.4
Exponentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13-9
13.5
13.6
Asignacin de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14-1
14.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14-2
14.2
14-3
14.3
14-4
14.4
14-6
14.5
14-8
14.6
14-9
14.7
14.8
Instrucciones de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15-1
15.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15-2
15.2
Instruccin IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15-4
15.3
Instruccin CASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15-6
15.4
Instruccin FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15-8
15.5
15.6
15.7
15.8
15.9
15.10
16-1
16.1
16-2
16.2
16.2.1
16.2.2
16.2.3
16.2.4
16.2.5
16.3
16.3.1
16.3.2
16.3.3
16.3.4
Llamada a funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parmetros de FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Asignacin de entrada (FC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Asignaciones de salida y de entrada/salida (FC) . . . . . . . . . . . . . . . . . . . . .
Ejemplo de una llamada a funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4
16-13
16-15
16-16
16-17
16-19
Indice
17
18
19
Contadores y temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17-1
17.1
17.1.1
17.1.2
17.1.3
17.1.4
17.1.5
Funciones de contaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduccin y valoracin del valor del contador . . . . . . . . . . . . . . . . . . . . . .
Contaje incremental (Counter Up) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contaje decremental (Counter Down) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contaje incremental/decremental (Counter Up Down) . . . . . . . . . . . . . . . . .
Ejemplo de funcin S_CD (contador decremental) . . . . . . . . . . . . . . . . . . . .
17-2
17-6
17-7
17-7
17-8
17-8
17.2
17.2.1
17.2.2
17.2.3
17.2.4
17.2.5
17.2.6
17.2.7
17.2.8
17-10
17-14
17-16
17-17
17-18
17-19
17-20
17-21
17-22
18-1
18.1
18-2
18.2
18-3
18.3
18-9
18.4
Interface de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19-1
19.1
Interface de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19-2
19.2
Interface de transmisin a OB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19-3
A-1
A.1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-2
A.2
Resumen de terminales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-5
A.3
A-6
A.4
A-7
A.5
A-9
A.6
A-12
A.7
Resumen de nonterminales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-14
A.8
Resumen de token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-14
A.9
Identificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-15
A.10
A-16
A.11
A-18
Anexos
A
xi
Indice
Reglas lxicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B-1
B.1
B.1.1
B.1.2
Identificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Literales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Direccionamiento absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B-2
B-4
B-9
B.2
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B-11
B.3
Atributos de bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B-12
Reglas sintcticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C-1
C.1
C-2
C.2
C-4
C.3
C-8
C.4
Tabla de instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C-11
C.5
Asignacin de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C-13
C.6
C-16
C.7
Instrucciones de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C-18
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
D-1
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glosario-1
xii
Parte 1:
Diseo de programas
-2
S gestin de datos,
S optimizacin de procesos,
S gestin de recepciones,
S funciones matemticas/estadsticas.
Caractersticas
tcnicas
Para poder trabajar con SCL necesita una unidad de programacin SIMATIC o un
PC (a partir de procesador 80486, con 16 MBytes de memoria principal).
Elementos de lenguaje
Operadores
potencia/aritmtica/
comparaciones/combinaciones lgicas
Funciones
temporizadores/contadores/
llamadas a bloquesdefuncin
Estructuras de control
bucles (FOR/WHILE/REPEAT)
alternativas (IF THEN/CASE/GOTO)
Tipos de datos
simples
BOOL/BYTE/WORD/DWORD/INT/DINT/REAL
DATE/TIME/TIME_OF_DAY/S5TIME
compuestos
cadenas/arrays/estructuras/estructuras
deusuario/DATE_AND_TIME
Tema
Apartado
Pgina
1.1
Qu es SCL?
1-2
1.2
1-3
1.3
1-5
1-1
1.1
Qu es SCL?
Lenguaje de alto
nivel
Entorno de desarrollo
Para utilizar de forma ptima y aplicar en la prctica SCL existe un entorno de desarrollo de gran capacidad adaptado tanto a las caractersticas especficas de SCL
como a las de STEP 7. Este entorno de desarrollo est formado por los siguientes
componentes:
S Un compilador de lotes, para compilar a cdigo mquina MC7 el programa previamente editado. El cdigo MC7 generado puede ejecutarse en todas las CPU
del sistema de automatizacin S7-300/400 a partir de la CPU 314.
S Un depurador, que permite buscar errores lgicos de programacin en una compilacin sin errores. La bsqueda de errores se realiza en lenguaje fuente.
Cada uno de los componentes se maneja con sencillez y comodidad, puesto que corren en Windows 95 y aprovechan todas las ventajas de este sistema operativo.
Editor
Figura 1-1
1-2
Compilador
de lotes
Depurador
1.2
SCL le ofrece todas las ventajas de un lenguaje de programacin de muy alto nivel.
Pero SCL incluye tambin algunas caractersticas que fueron diseadas especficamente para servir de ayuda a la programacin estructurada; p.ej.:
SCL est diseado de forma ptima para solucionar todas las tareas que se presentan
en proyectos de automatizacin, de forma que, junto con STEP 7, le permite trabajar
con eficacia en todas las fases del proyecto.
SCL apoya en particular el concepto de bloques de STEP 7 y permite, junto con
AWL y KOP, programar bloques conforme a las normas.
OB
FC
FB
DB
UDT
SFC
SFB
Bloques STEP 7
Tipos de bloques
Los bloques STEP 7 son partes de un programa de usuario delimitadas por su funcin, su estructura o el fin para el que se utilizan. Con SCL puede crear los siguientes bloques:
Abrev.
Tipo de bloque
OB
Bloque de organizacin
FC
Funcin
FB
Bloque de funcin
DB
Bloque de datos
UDT
Tipo de datos de
usuario
Funcin
1-3
Bloques predefinidos
Usted no tiene necesidad de programar todas las funciones; tambin puede acudir a
bloques predefinidos. Estos son bloques que existen en el sistema operativo de las
unidades centrales de procesamiento o en libreras (S7lib) del paquete bsico STEP
7, y que pueden utilizarse, p.ej., para la programacin de funciones de comunicaciones. En concreto se trata de los siguientes tipos de bloques:
Abrev.
Tipo de bloque
Funcin
SFC
Funcin de sistema
SFB
Posibilidad de
mezclar los bloques
Los bloques programados con SCL puede mezclarlos con bloques programados en
AWL, KOP y FUP. Esto significa que un bloque programado con SCL puede llamar
a otro bloque programado en AWL, en KOP o en FUP. Consecuentemente los bloques SCL tambin pueden ser llamados en programas AWL, KOP y FUP. En definitiva, los lenguajes de programacin de STEP 7 y SCL (paquete opcional) se complementan de forma ptima.
Capacidad de recompilacin
En aplicaciones prcticas concretas, los bloques SCL pueden recompilarse al lenguaje de programacin de STEP 7 AWL (lista de instrucciones). No es posible la
recompilacin a SCL.
Compatibilidad
con STEP 5
A excepcin de algunos casos concretos, los bloques que haya programado con SCL
en STEP 5 son compatibles con las versiones superiores; es decir, estos bloques tambin pueden editarse, compilarse y comprobarse con SCL para STEP 7.
Mtodos de programacin
Facilidad de aprendizaje
SCL se aprende fcilmente con un poco de experiencia en un lenguaje de programacin de alto nivel, puesto que el repertorio de estructuras del lenguaje SCL se
orienta a lenguajes de programacin de alto nivel.
1-4
1.3
Editor
El editor SCL es un editor de texto con el que se puede editar cualquier tipo de
texto. La tarea central que puede realizar con l es la de generar y editar archivos
fuente para programas de STEP 7. En un archivo fuente puede programar uno o varios bloques:
Editor
Bloque 1
.
.
Bloque i
.
Archivo fuente 1
Figura 1-2
Archivo fuente j
Editor SCL
Compilador
Despus de que ha creado sus archivos fuente con el editor SCL, debe compilarlos a
cdigo MC7.
Compilador
de lotes
Bloques del
programa S7
Compilador SCL
1-5
S compilar varios archivos fuente SCL por medio de un archivo de control de compilacin que contiene los nombres de los archivos fuente;
Depurador
Depurador
Figura 1-4
Depurador SCL
S observar progresivamente.
En este modo se completa la ejecucin lgica del programa. Usted puede ejecutar el algoritmo del programa instruccin por instruccin y visualizar en una ventana de resultados las variaciones producidas en las variables editadas;
S observar continuamente.
Le permite efectuar un test de un grupo de instrucciones dentro de un bloque del
archivo fuente. Mientras se realiza el test se visualizan, ordenados cronolgicamente, los valores de las variables y parmetros, y se actualizan cclicamente
siempre que sean posible.
Paquete bsico
STEP 7
1-6
Qu describe
este captulo?
La prctica demuestra que la forma ms sencilla y rpida de programar es estructurar la tarea; es decir, descomponerla en partes individuales independientes entre s.
SCL le ayuda a hacerlo. Con SCL podr disear de forma racional y eficaz cada uno
de los bloques individuales.
Este captulo describe cmo puede disear y aplicar un programa de usuario en
SCL. La descripcin se ilustrar con un programa de ejemplo que usted podr ejecutar con los datos de test que se proporcionan y con sus propios mdulos de entrada y
salida.
Apartado
Tema
Pgina
2.1
Resumen
2-2
2.2
Tarea planteada
2-3
2.3
2-5
2.3.1
2-5
2.3.2
2-6
2.3.3
2-7
2.3.4
2.3.5
2-10
2.4
2-11
2.5
2-12
2.6
2-17
2.7
2-21
2.8
Datos de test
2-22
2-9
2-1
2.1
Resumen
Objetivo
Funciones de test
El programa est estructurado para permitirle realizar un test rpido mediante los
interruptores de la entrada y las indicaciones de la salida. Para realizar un test
detallado utilice las funciones de test de SCL (v. cap. 6).
Adems de las funciones de SCL, dispone de toda la funcionalidad del paquete
bsico STEP 7.
2-2
2.2
Tarea planteada
Resumen
Los valores medidos deben registrarse, clasificarse y procesarse a travs del mdulo
de entrada. El rango exigido para los valores medidos est comprendido entre 0 y
255. Por lo tanto se necesita un byte para el registro de entrada.
Las funciones de procesamiento utilizadas son la raz y el cuadrado. Los resultados
deben visualizarse en el mdulo de salida, para lo cual se necesita una palabra. El
programa se controla con un byte de entrada.
Procesamiento de
valores medidos
Cuando en el interruptor de clasificacin se reconoce un flanco, los valores guardados en el campo del rea de medida deben clasificarse en orden ascendente. Despus
se calcular la raz y el cuadrado para cada uno de los valores.
Introducir datos
Interruptor
de entrada
Valor medido
Interruptor de
clasificacin
1 1 1 1 1 1 1 1
255
Raz
Cuadrado
255
127
63
49
31
15
225
15
31
961
63
3969
127
11
16129
255
16
Clculos
(* = Desbordamiento)
Adquirir valores
medidos
Figura 2-1
Clasificar valores
medidos
Calcular resultados
2-3
Salida ajustable
Dado que en la salida slo puede visualizarse un valor cada vez, deben existir las
siguientes posibilidades de seleccin:
S con tres interruptores se ajusta un cdigo que se acepta cuando en el cuarto interruptor (el interruptor de codificacin) se reconoce un flanco. De aqu se calcula
la direccin que se asignar a la salida.
S Para la salida se disponen tres valores (valor medido, raz y cuadrado) con la
misma direccin. Para poder seleccionar uno de estos valores deben preverse dos
conmutadores (v. fig. 2-2).
Introducir datos
Raz o
cuadrado
Valor medido
o resultado
Interruptor de codificacin
Raz
Valor medido
Cuadrado
49
15
225
31
961
3969
11
16129
3
7
Direccionar
salida
Conmutador
63
Seleccionar
salida
127
255
16
Direccin
Direccin
Valores
clasificados
Resultados
(* = Desbordamiento)
Salida de datos
Visualizacin en mdulos
de salida
Figura 2-2
2-4
4
Salida
Salida ajustable
2.3
Resumen
La mejor forma de solucionar la tarea descrita es con un programa SCL estructurado. Dicho programa tiene estructura modular; es decir, est organizado en bloques
que tratan una o varias tareas parciales. SCL le ofrece al igual que los lenguajes de
programacin de STEP 7, distintos tipos de bloques. Encontrar ms informacin al
respecto en los captulos 1, 7 y 8.
Proceso de solucin
2.3.1
Resumen
Las tareas parciales se representan mediante casillas en la figura 2-3. Las reas rectangulares sobre fondo gris representan los bloques. La disposicin de los bloques
lgicos de izquierda a derecha corresponde al orden de llamada:
CICLO
Bloque de organizacin (OB)
Salida de datos
Direccionar y
seleccionar
salida
ADQUISICION_DATOS
Bloque de datos (DB)
VALORACION
Entrada de
datos
Llamada
cclica
Figura 2-3
ADQUISICION
Funciones RAIZ
y CUADRADO
Calcular resultados
Raz, cuadrado
Guardar
datos
Flujo del programa
Flujo de datos
2-5
2.3.2
Resumen
CICLO
Los programas de usuario slo pueden iniciarse en un OB. Como los valores medidos tienen que registrarse cclicamente, se necesita un OB para llamada cclica
(OB1). Una parte de la ejecucin se programa en el OB: en el puesto central se ejecuta Entrada de datos y Salida de datos.
ADQUISICION
Para la tarea parcial de Adquirir datos se necesita un bloque con memoria, es decir,
un FB, dado que de un ciclo de programa al siguiente deben conservarse determinados datos locales del bloque (p.ej., el bfer de circulacin). El lugar para Guardar
datos, tambin llamado memoria, es el bloque de datos de instancia ADQUISICION_DATOS.
El mismo FB puede asumir la tarea parcial Direccionar salida o Seleccionar salida,
puesto que se dispone de los datos necesarios.
VALORACION
Al seleccionar el tipo de bloque para solucionar las tareas parciales Clasificar valores medidos y Calcular resultados hay que tener en cuenta que debe crearse un
bfer de salida que incluya los resultados del clculo de la raz y el cuadrado para
cada valor medido.
Por este motivo el nico bloque posible es un FB. Dado que el FB es llamado por un
FB de orden superior, no necesita ningn DB propio. Sus datos de instancia pueden
depositarse en el bloque de datos de instancia del FB invocante.
RAIZ y CUADRADO
Lo ms idneo para solucionar la tarea parcial Calcular la raz o Calcular el cuadrado es una FC, puesto que el resultado puede devolverse como valor de respuesta
de la funcin. Adems, para el clculo no se necesita ningn dato que deba conservarse ms de un ciclo de ejecucin del programa.
Para calcular la raz puede utilizarse la funcin estndar RAIZ de SCL. Para calcular el cuadrado debe crearse una funcin CUADRADO, que tambin ejecuta una comprobacin del lmite del rango.
2-6
2.3.3
Resumen
La interface de un bloque se define mediante la declaracin de sus parmetros formales. En SCL existen las siguientes tablas de declaracin:
S Parmetros de entrada:
S Parmetros de salida:
ADQUISICION
Tipo de declaracin
Descripcin
intr_val_med
INT
VAR_INPUT
Valor medido
nue_val
BOOL
VAR_INPUT
nue_clas
BOOL
VAR_INPUT
sel_funcion
BOOL
VAR_INPUT
seleccion
WORD
VAR_INPUT
nue_sel
BOOL
VAR_INPUT
sal_resultado
DWORD
VAR_OUTPUT
sal_v_med
DWORD
VAR_OUTPUT
2-7
VALORACION
RAIZ y CUADRADO
Tipo de declaracin
Descripcin
Bufer_de_clasificacion
ARRAY[..]
OF REAL
VAR_IN_OUT
Bufer_de_calculo
ARRAY[..]
OF STRUCT
VAR_OUTPUT
Las funciones son llamadas por VALORACION. Estas funciones necesitan un valor
de entrada y proporcionan su resultado como valor de funcin (ver tabla 2-3).
Tabla 2-3
Nombre
2-8
Tipo de dato
Tipo de declaracin
Descripcin
Valor
REAL
VAR_INPUT
RAIZ
REAL
Valor de funcin
Valor
INT
VAR_INPUT
CUADRADO
INT
Valor de funcin
Resumen
Autmata
programable
Fuente CPU
de ali- 314
mentacin
Entrada
Interruptores
Mdulo de entrada
Indicadores
Significado
0
1
2
3
4
5
6
7
0a7
Canal
Significado
0a7
Byte0
Mdulo de salida
Direccin de memoria:
Entrada: 0
Salida: 4
Salida
Canal
Byte1
Figura 2-4
Indicadores
La figura 2-4 muestra el interface de entrada/salida. Tenga en cuenta que en la entrada/salida por bytes el byte de arriba es el ms significativo y el de abajo el menos
significativo. Por el contrario, en entradas/salidas con palabras ocurre a la inversa.
Interruptores
2.3.4
Byte0
0a7
Byte1
Indicadores e interruptores
2-9
2.3.5
Programacin de
bloques
Una vez definidos los interfaces puede disear los bloques independientemente unos
de otros. Lo mejor es hacerlo de arriba abajo, es decir, siguiendo el orden CICLO,
ADQUISICION, VALORACION y CUADRADO. A continuacin se describen los bloques en este mismo orden.
Al compilar los bloques debe tener en cuenta que un bloque debe existir antes de
utilizarlo; es decir, antes de ser llamado por otro bloque. Por ello, en la fuente SCL
el orden de los bloques es CUADRADO, VALORACION, ADQUISICION y CICLO
(ms informacin al respecto encontrar en el captulo 8).
Programacin simblica
(*###################################################################################
Programa SCL para la adquisicin y procesamiento de valores medidos:
EB1
E0.0
E0.1
E0.2
E0.3
EW0
E0.7
AW4
BYTE
BOOL
BOOL
BOOL
BOOL
WORD
BOOL
INT
//
//
//
//
//
//
//
//
ADQUISICION
FB10
ADQUISICION_DATOS
VALORACION
CUADRADO
CICLO
DB10
FB20
FC41
OB1
FB10 //
//
FB10 //
FB20 //
FC41 //
OB1 //
Valor medido
Interruptor de entrada para aceptar el valor medido
Inicio de Clasificacion y Calculo
Seleccin de resultado Raiz o Cuadrado
Seleccin de salida Valor_medido o Resultado
Codificacin, bits relevantes 12, 13 y 14
Aceptacin del cdigo
Valor medido o resultado: Raiz o Cuadrado
Adquirir valores medidos,
direccionar y seleccionar salida
Bloque de datos de instancia de ADQUISICION
Evaluar valores medidos, calcular resultados
Funcin de clculo del cuadrado
Llamada cclica y entrada/salida
####################################################################################*)
Figura 2-5
2-10
2.4
Proceso de solucin
S Llamar y proporcionar datos de entrada y datos de control para el bloque de funcin ADQUISICION.
ORGANIZATION_BLOCK CICLO
(****************************************************************************************
CICLO equivale a OB1, es decir, es llamado cclicamente por el sistema S7.
Parte 1 : llamada del bloque de funcin y transferencia de los valores de entrada
Parte 2 : aceptacin de los valores de salida y salida con conmutacin de salida
****************************************************************************************)
VAR_TEMP
datos_del_sistema
END_VAR
ARRAY[0..20] OF BYTE;
BEGIN
(*
Parte 1
*********************************************************************)
ADQUISICION.ADQUISICION_DATOS(
intr_val_med
:= WORD_TO_INT (entrada),
nue_val
:= entrada 0.0,//interruptor de entrada como smbolo
nue_clas
:= interruptor de clasificacin,
sel_funcion
:= interruptor de funcin,
nue_sel
:= interruptor de codificacin,
seleccion
:= codificacin;
(*
Parte 2
*********************************************************************)
IF interr_salida THEN
salida
:= ADQUISICION_DATOS.sal_resultado;
ELSE
salida
:= ADQUISICION_DATOS.sal_v_med.;
END_IF;
//Conmutacin de salida
//Raz o cuadrado
//Valor medido
END_ORGANIZATION_BLOCK
Figura 2-6
Conversiones de
tipo de datos
El valor medido tiene en la entrada el tipo BYTE. Debe convertirse a tipo INT: Para
ello debe convertirlo de WORD a INT, y el compilador realizar implcitamente la
anterior conversin de BYTE a WORD (v. cap. 18). Por el contrario, para la salida
no se necesita ninguna conversin, puesto que ya fue declarada en la tabla de smbolos como INT (v. fig. 2-5).
2-11
2.5
Solucin
Se ha elegido el tipo de bloque FB porque hay datos que deben ser guardados desde
un ciclo del programa al siguiente. Son las variables estticas, declaradas en la tabla
de declaracin VAR, VAR_END (v. tabla 2-4).
Las variables estticas son variables locales cuyo valor se mantiene en todos los
recorridos del bloque. Dichas variables sirven para almacenar valores de un bloque
de funcin. Se depositan en el bloque de datos de instancia.
FUNCTION_BLOCK ADQUISICION
(*******************************************************************************
Parte 1 :
Registro de los valores medidos
Parte 2 :
Iniciar Clasificacion y Calculo
Parte 3 :
Valorar cdigo y preparar salida
*******************************************************************************)
Figura 2-7
Tabla 2-4
Variables estticas
Nombre
Tipo de datos
valores_
medidos
ARRAY [..]
OF INT
VAR
8(0)
bufer_
ARRAY [..]
resultado OF STRUCT
VAR
puntero
INT
VAR
ant_val
BOOL
VAR
FALSE
ant_clas
BOOL
VAR
FALSE
ant_sel
BOOL
VAR
FALSE
VAR
valorar_
VALORACION, VAR
instancia = FB 20
direccion INT
2-12
Tipo de
declaracin
Pre
ajuste
Descripcin
S Constantes:
S Parmetros:
de entrada:
de salida:
S Variables estticas:
CONST
LIMITE
NUMERO
END_CONST
:= 7;
:= LIMITE + 1;
VAR_INPUT
intr_val_med
nue_val
nue_clas
nue_sel
seleccion
END_VAR
VAR_OUTPUT
sal_resultado
sal_v_med
END_VAR
:
:
INT;
BOOL;
BOOL;
BOOL;
BOOL;
WORD;
//
//
//
//
//
//
//
:
:
:
:
:
:
INT;
INT;
//
//
Valor calculado
Valor medido correspondiente
:
:
:
:
INT;
INT;
VAR
valores_medidos
bufer_resultado
STRUCT
RAIZ
CUADRADO
END_STRUCT;
puntero
ant_val
ant_clas
ant_sel
direccion
valorar_instancia:
END_VAR
Figura 2-8
: INT
: BOOL
: BOOL
: BOOL
: INT
VALORAR;
:=
:=
:=
:=
:=
0;
TRUE;
TRUE;
TRUE;
0;
//Direccin de salida convertida
//Declarar instancia local
2-13
1 parte: registrar
valores medidos
Interruptor
en el mdulo
Interruptor
para valor de
codificacin
Interruptor
de codificacin
Figura 2-9
Clculo de la direccin
Palabra en
la memoria
0
1
2
3
4
5
6
7
Byte0
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Byte1
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
8
9
10
11
12
13
14
15
direccin
EW0
2-14
Organigrama de
ADQUISICION
ADQUISICION
Bloque de funcin
Inicio
S
Cambio
valor nuevo
?
Leer valor medido en el bfer de
circulacin, recalcular el puntero
No
Cambio
clasificacin
nueva
?
VALORACION
No
S
Cambio
cdigo nuevo
?
Evaluar cdigo y determinar
direccin de salida
TRUE
Seleccin de
funcin?
FALSE
Cargar resultado de
RAIZ
Cargar resultado de
CUADRADO
Cargar:
escribir elementos de la lista en los parmetros de salida junto con la direccin de salida,
para despus indicar sus valores
Fin
Figura 2-10
2-15
BEGIN
(* Parte 1 :
:=
bufer_resultado [direccion].cuadrado;
bufer_resultado [direccion].raiz;
END_FUNCTION_BLOCK
Figura 2-11
2-16
2.6
S Constantes:
S Parmetros:
de entrada/salida:
de salida:
S Variables temporales:
FUNCTION_BLOCK VALORACION
(*********************************************************************************
Parte 1 :
Clasificar el bfer de circulacin con los valores medidos
Parte 2 :
Iniciar el clculo de los resultados
**********************************************************************************)
Figura 2-12
CONST
LIMITE
END_CONST
:= 7;
VAR_IN_OUT
bufer_clasif
END_VAR
VAR_OUTPUT
bufer_calculo
STRUCT
raiz
cuadrado
END_STRUCT;
END_VAR
VAR_TEMP
cambiar
indice, ayuda
n_valor, n_resultado
END_VAR
Figura 2-13
Proceso
ARRAY[0..LIMITE] OF INT;
ARRAY[0..LIMITE] OF
:
:
INT;
INT;
:
:
:
BOOL;
INT;
REAL;
2-17
En la figura 2-14 puede ver la relacin existente entre los arrays descritos.
bufer_clasif
valores_medidos
bufer_calculo
VALORACION
Figura 2-14
2-18
Organigrama de
VALORACION
VALORACION
bloque de funcin
Inicio
Inicio de la
instruccin REPEAT
Cambio := FALSE
Inicio de la
instruccin FOR
I := LIMITE
I significa ndice
No
I >= 1 ?
No
S
Intercambiar los valores de
bfer de clasificacin [I1]
y bfer de clasificacin [I]
CAMBIO = TRUE
I := I 1
Fin de la
instruccin FOR
Fin de la
instruccin REPEAT
TRUE
Cambiar
?
FALSE
Inicio de la
instruccin FOR
I := 0
No
I
<= LIMITE ?
Fin de la
instruccin FOR
RAIZ
CUADRADO
I := I + 1
Fin
Figura 2-15
2-19
BEGIN
(* Parte 1
Clasificacion : ********************************************************
Clasificacin segn el proceso bubble sort: intercambiar por parejas los
valores hasta que el bfer de valores medidos est clasificado*)
REPEAT
cambiar
:= FALSE;
1 DO
> bufer_clasif [indice] THEN
:=
bufer_clasif [indice];
:=
bufer_clasif [indice1] ;
:=
ayuda;
:=
TRUE;
Calculo : *************************************************************
Clculo de la raz con la funcin estndar RAIZ y
obtencin del cuadrado con la funcin CUADRADO.*)
Figura 2-16
2-20
2.7
INT;
BEGIN
IF valor <= 181 THEN
CUADRADO
:=
ELSE
CUADRADO
:=
END_IF;
valor * valor;
32_767;
END_FUNCTION
Figura 2-17
Funcin CUADRADO
2-21
2.8
Datos de test
Requisitos
Paso
Accin
Resultado
Visualice la raz correspondiente colocando el interruptor Los indicadores de la salida corresponden al valor binario
de salida (E0.3) en posicin 1.
10000 (=16).
Visualice el cuadrado correspondiente colocando el inter- En la salida se iluminan 15 indicadores. Esto significa
ruptor de funcin (E0.2) en posicin 1.
que se ha producido un desbordamiento, puesto que 255
x 255 arroja un valor demasiado grande para el rango de
nmeros enteros.
4a
Recupere la posicin 0 del interruptor de salida (E0.4). Se visualiza de nuevo el valor medido: todas las indicaciones en las salidas del byte de salida de menor valor
estn activadas.
4b
5a
5b
8a
8b
2-22
Test complementario
Las explicaciones referentes a los interruptores de manejo de la tabla 2-6 y las plantillas de test de la tabla 2-7 le facilitarn la definicin de las fases del test:
S La entrada se realiza a travs de interruptores: los 8 interruptores superiores sirven para el manejo, y los 8 inferiores para ajustar el valor medido.
Tabla 2-6
Interruptores de manejo
Interruptor
de manejo
Nombre
Explicacin
Canal 0
Interruptor de entrada
Canal 1
Interruptor de clasificacin
Canal 2
Interruptor de funcin
Interruptor de salida
Canal 4
Codificacin
Canal 5
Codificacin
Canal 6
Codificacin
Canal 7
Interruptor de codificacin
Canal 3
Valor medido
Cuadrado
0000 0001 =
0, 0000 0001 = 1
0000 0011 =
0, 0000 0010 = 2
0000 0111 =
0, 0000 0011 = 3
49
0000 1111 = 15
0, 0000 0100 = 4
225
0001 1111 = 31
0, 0000 0110 = 6
961
0011 1111 =
63
0, 0000 1000 = 8
0, 0000 1011 = 11
0, 0001 0000 = 16
2-23
2-24
Parte 2:
Manejo y comprobacin
Manejo de SCL
Test de un programa
2-26
Resumen
Requisitos para la
instalacin
S como mnimo, 1 MB de memoria libre en la unidad de disco C: para la instalacin (los archivos de instalacin se borran una vez concluida sta)
Apartado
Tema
Pgina
3.1
3-2
3.2
3-4
3-1
3.1
Introduccin
Para utilizar el paquete de software SCL se necesita una autorizacin especfica del
producto (derecho de utilizacin). El software protegido slo puede utilizarse
cuando en el disco duro de la PG o el PC correspondiente se ha reconocido la
autorizacin necesaria para el programa o el paquete de software.
Disquete de autorizacin
Autorizacin en
caso de primera
instalacin
Cuidado
Observe las indicaciones que figuran en el archivo LEAME.TXT incluido en el
disquete de autorizacin. En caso de incumplimiento de esta observacin existe el
peligro de prdida irrecuperable de la autorizacin.
Deber proceder a ejecutar la autorizacin cuando as lo solicite el mensaje correspondiente durante la primera instalacin. Proceda de la siguiente forma:
1. Introduzca el disquete de autorizacin cuando as se le requiera en la pantalla.
2. A continuacin, confirme la autorizacin.
La autorizacin de uso se transfiere a una unidad de disco fsica (es decir, su ordenador se da cuenta de que usted tiene autorizacin).
3-2
Cuando arranque el software SCL y no exista autorizacin, recibir el correspondiente mensaje. Para ejecutar con posterioridad la autorizacin, arranque el programa AUTHORS en el disquete de autorizacin. Con l puede visualizar, instalar y
desinstalar autorizaciones. El programa est guiado por mens.
Nota
Al instalar la autorizacin para SCL indique siempre como unidad de disco de destino la unidad de disco C:.
Desinstalar autorizacin
Cuando se necesita una nueva autorizacin (p.ej., cuando desee formatear de nuevo
la unidad de disco en la que se encuentra la autorizacin), primero debe salvar la
autorizacin. Para ello necesita el disquete de autorizacin original.
Para transferir de nuevo la autorizacin al disquete de autorizacin, proceda de la
siguiente forma:
1. Introduzca el disquete de autorizacin original en la unidad de disco de 3,5 .
2. Abra el programa AUTHORS.EXE del disquete de autorizacin.
3. Seleccione el comando de men Autorizacin " Desinstalar.
4. A continuacin, en el cuadro de dilogo que aparece indique la unidad de disco
en la que se encuentra la autorizacin y confirme el dilogo. Se visualizar una
lista con todas las autorizaciones de la unidad de disco en cuestin.
5. Marque la autorizacin que desea desinstalar y confirme el dilogo. Si el proceso
ha concluido sin errores recibir el siguiente mensaje:
Autorizacin <Nombre> retirada de disquetera <X:>.
6. Confirme el mensaje.
A continuacin volver a visualizarse el cuadro de dilogo con la lista de las
autorizaciones restantes existentes en la unidad de disco. Si no desea desinstalar
ninguna autorizacin ms, cierre el cuadro de dilogo.
Despus podr utilizar de nuevo ese disquete para instalar autorizaciones.
Si su disco duro
est defectuoso...
3-3
3.2
Resumen
Preparativos
Si ya hay instalada
una versin de
SCL
S cancelar la instalacin (para posteriormente desinstalar la versin de SCL antigua bajo Windows 95 y arrancar de nuevo la instalacin), o
3-4
Desinstalacin
Sobre el alcance
de la instalacin
Todos los lenguajes del interface de usuario y todos los ejemplos necesitan aprox.
8 MB de memoria.
Sobre la autorizacin
Errores durante la
instalacin
S Cuando inmediatamente despus de arrancar el Setup se produce un error de inicializacin, es muy probable que el programa SETUP.EXE no se haya arrancado
bajo Windows 95.
3-5
3-6
Manejo de SCL
Resumen
El presente captulo le familiariza con el manejo de SCL. Le informa sobre los interfaces de usuario del editor SCL.
Apartado
Tema
Pgina
4.1
4.2
4.3
4-1
Manejo de SCL
4.1
Arranque desde el
interface de
Windows
Arranque desde el
Administrador
SIMATIC
Ver
Ayuda
NM
Nota
Puede consultar ms informacin sobre las condiciones y opciones estndar de Windows 95, o bien en su manual de usuario de Windows, o bien online en el tutorial de
Windows 95.
4-2
Manejo de SCL
4.2
Resumen
Al igual que otras ventanas de STEP 7, las ventanas SCL constan de los siguientes
componentes estndar (v. fig. 4-2):
Barra de ttulo:
incluye el ttulo de la ventana y smbolos para el control de ventanas.
Barra de mens:
incluye todos los mens de que se dispone en la ventana.
Barra de herramientas:
incluye botones que le permitirn ejecutar rpidamente los comandos ms frecuentemente utilizados.
Area de trabajo:
incluye las diferentes ventanas en las que puede editar el texto del programa o
leer datos del compilador o datos de test.
Barra de estado:
indica el estado y otros datos sobre el objeto seleccionado.
Barra de ttulo
Barra de mens
Ver
Ayuda
Barra de herramientas
Area de trabajo
Barra de estado
NM
4-3
Manejo de SCL
Cambios posibles
de componentes
Adaptar la barra de
herramientas
Usted puede activar o desactivar la visualizacin de la barra de herramientas utilizando el comando de men Ver " Barra de herramientas. Una marca de verificacin situada detrs del comando de men indica si el comando est activado o desactivado.
Adaptar la barra de
puntos de parada
Adaptar la barra de
estado
Adaptar el entorno
de desarrollo
Crear bloques
Adaptar el compilador
Tambin puede adaptar el proceso de compilacin a sus necesidades. En el apartado 5.5 encontrar una descripcin detallada de las opciones.
Para ello, seleccione el comando de men Herramientas " Preferencias, y en el
cuadro de dilogo Preferencias haga clic sobre la ficha Compilador.
Adaptar el editor
4-4
Manejo de SCL
4.3
Resumen
En principio, la fuente SCL est formada por texto continuo. Para introducir el texto
contar con la ayuda de funciones de tratamiento de texto del editor SCL,
especialmente adaptado al lenguaje SCL.
Sistema de destino
Test
Ver
FUNCTION_BLOCK FB11
VAR
I:INT;
Array:ARRAY[1..10,1..20] OF REAL;
REGLER:
ARRAY[1..3,1..4] OF INT:=54, 736, 83, 77,
1289, 10362, 385, 2,
60, 37, 7, 103;
END_VAR
BEGIN
Insertar
0:0
offline
Seleccionar texto
En SCL puede seleccionar texto posicionando el cursor al principio del rea que va
a seleccionarse y manteniendo pulsado el botn izquierdo del ratn mientras desplaza el cursor a lo largo del rea deseada.
Adems, puede:
S seleccionar el texto completo de una fuente eligiendo el comando de men Edicin " Seleccionar todo,
Con el comando de men Edicin Buscar/reemplazar se abre un cuadro de dilogo con el que puede buscar una cadena de caracteres y reemplazarla por otros objetos de texto.
4-5
Manejo de SCL
Insertar plantillas
La insercin de plantillas le permite una programacin eficaz y le facilita el cumplimiento de la sintaxis. En SCL puede:
Cortar, copiar,
pegar, borrar
Puede cortar, copiar, pegar y borrar objetos de texto de la forma habitual. Los comandos de men correspondientes se encuentran en el men Edicin.
Por regla general los objetos tambin pueden desplazarse o copiarse mediante la
operacin de Arrastrar y soltar (Drag&Drop).
Ir a ... (instruccin
GOTO)
Con el comando de men Edicin Ir a ... se abre un cuadro de dilogo a travs del
cual podr posicionar el punto de insercin al inicio de la lnea que desee, introduciendo el nmero de lnea y confirmando con Aceptar.
Deshacer,
restablecer
Con el comando de men Edicin Deshacer puede deshacer una accin; por
ejemplo, deshacer el borrado de una lnea.
El comando de men Edicin Restablecer le permite restablecer una accin deshecha anteriormente.
4-6
Resumen
Tema
Pgina
5.1
5-2
5.2
5-3
5.3
5-4
5.4
5-5
5.5
Proceso de compilacin
5-6
5.6
5.7
5-9
5-10
5-1
5.1
Requisitos para la
creacin de programas
Antes de crear un programa con SCL debe realizar las siguientes tareas:
1. Instale un proyecto con el Administrador SIMATIC.
2. Con el Administrador SIMATIC asigne a cada CPU la direccin de comunicacin en la red.
3. Configure y parametrice la unidad central de procesamiento y los mdulos de
seales.
4. En caso de que desee utilizar direcciones simblicas para reas de memoria de la
CPU o para identificaciones de bloque, debe crear una tabla de smbolos.
Cmo proceder?
Para crear con SCL un programa de usuario lo primero que debe hacer es crear una
fuente SCL. En ella puede editar uno o varios bloques (OB, FB, FC, DB y UDT), y
a continuacin compilarlos en un proceso por lotes. Al compilar la fuente, los
bloques que contiene se depositan en el contenedor Programa de usuario
(<AP-off>, v. fig. 5-1) del mismo programa S7 en el que est guardada la fuente.
Puede proceder a crear y editar la fuente SCL con el editor integrado o con un editor
estndar. Las fuentes que haya generado con un editor estndar debe importarlas al
proyecto con el Administrador SIMATIC. Despus puede abrirlas para procesarlas o
compilarlas.
5-2
5.2
Resumen
Las fuentes que haya creado con SCL puede integrarlas en la estructura de un programa S7 de la siguiente forma:
Programa S7
Bloques
Bloque
(p.ej.: FB1, OB1)
Fuentes
Fuente
(p.ej.: Fuente SCL)
Smbolos
Figura 5-1
Creacin de la
fuente SCL
Puede abrir un objeto fuente que haya generado con SCL y que haya guardado, para
procesarlo o compilarlo.
Proceda de la siguiente forma:
1. Seleccione el comando de men Archivo Abrir, o haga clic sobre el botn
Abrir.
2. En el cuadro de dilogo Abrir seleccione el objeto deseado y el programa S7
correspondiente.
3. Asegrese que est seleccionado el filtro fuente SCL y seleccione el
contenedor fuente (SO).
4. En el cuadro de dilogo se visualizarn todas las fuentes SCL del programa S7.
Seleccione el objeto deseado y confirme con Aceptar, o haga doble clic sobre
la fuente.
Las fuentes que haya generado con un editor estndar puede abrirlas de igual forma
despus de importarlas al proyecto con el Administrador SIMATIC.
5-3
5.3
Resumen
FUNCTION_BLOCK FB11
VAR
I:INT;
Array:ARRAY[1..10,1..20] OF REAL;
REGULADOR:
ARRAY[1..3,1..4] OF INT:=54, 736, 83, 77,
1289, 10362, 385, 2,
60, 37, 7, 103;
END_VAR
BEGIN
Figura 5-2
Reglas
Fuente SCL
S Los bloques de datos globales anteceden a los bloques que acceden a ellos.
S Siga las normas de formato y sintaxis que se indican en la parte de este Manual
titulada Descripcin del lenguaje.
5-4
5.4
Guardar una
fuente SCL
En SCL se entiende por Guardar guardar archivos fuente. En SCL, los bloques se
generan al compilar el archivo fuente y se depositan automticamente en el
directorio correspondiente del programa.
Dispone de varias posibilidades para guardar una fuente SCL:
Imprimir un objeto
fuente
En todo momento puede sacar en la impresora una copia impresa de los bloques,
declaraciones e instrucciones que se encuentren en su fuente SCL. Para ello es necesario que haya instalado y configurado la impresora mediante el control del sistema
Windows. Proceda de la siguiente forma:
Definir el diseo
de pgina
Crear lneas de
encabezado y pies
de pgina
Presentacin
preliminar
5-5
5.5
Proceso de compilacin
Resumen
S El compilador trabaja por lotes; es decir, procesa una fuente SCL como una unidad. No son posibles compilaciones parciales (p.ej.: por lneas).
S El compilador comprueba la sintaxis de una fuente SCL y a continuacin muestra todos los errores que ha encontrado durante la compilacin.
S Genera bloques con informacin sobre el test si la fuente SCL est libre de
errores y la opcin correspondiente (ver ms abajo) est marcada. Debe seleccionar la opcin TestInfo en todos los programas que desee someter a un test con
lenguaje de alto nivel SCL.
Preferencias
Crear bloque
Compilador
Editor
99
253
OK
Figura 5-3
5-6
Cancelar
Aceptar
Ayuda
Opciones
Crear bloque
Iniciar el proceso
de compilacin
5-7
Despus de la
compilacin
15:4397
Se encontraron 1 error(es) y 1 advertencia(s).
Ir a
Cerrar
Figura 5-4
Encontrar causas
de errores y alarmas
Ayuda
Cada mensaje indica la lnea y columna a que se refiere y una breve descripcin.
Puede consultar una descripcin detallada del error o de la alarma seleccionando el
mensaje deseado y haciendo clic sobre el botn de comando Ayuda.
Haciendo doble clic sobre un mensaje puede posicionar el cursor en el punto correspondiente de la fuente SCL.
Estas dos posibilidades le permiten localizar y corregir con rapidez y sencillez errores y alarmas.
5-8
5.6
Resumen
Al compilar una fuente SCL se generan los bloques a partir de la fuente, y se guardan en el contenedor Bloques del programa S7. Posteriormente, en SCL slo se
podrn cargar estos bloques en la CPU a partir de la unidad de programacin.
Si desea transferir otros bloques del programa S7 al autmata programable, utilice el
Administrador SIMATIC.
Requisitos
Para cargar el programa de usuario en el PLC deben cumplirse los siguientes requisitos:
S Los bloques que van a cargarse deben estar compilados sin errores.
Borrado total de la
memoria de la CPU
Con la funcin Borrado total puede borrar online el programa de usuario completo
de una CPU. Tenga en cuenta que adems se inicializa la CPU, se interrumpen todas
las conexiones existentes con la CPU y, siempre que exista insertada una Memory
Card, el contenido de la Memory Card se copiar en la memoria interna de carga.
Proceda de la siguiente forma:
1. Seleccione el comando de men Sistema de destino Estado operativo y coloque la CPU en STOP.
2. Seleccione el comando de men Sistema de destino Borrado total.
3. Confirme la accin en el cuadro de dilogo que aparece a continuacin.
Es ventajoso cargar los bloques en estado operativo STOP, puesto que en caso de
sobreescribirse un programa antiguo en estado operativo RUN pueden surgir errores.
Proceda de la siguiente forma:
1. Seleccione el comando de men Sistema de destino Cargar.
2. Si el bloque ya existe en la RAM de la CPU, cuando se solicite confirmacin
confirme si debe sobreescribirse o no el bloque.
5-9
5.7
Resumen
Puede automatizar la compilacin de varias fuentes SCL creando un archivo de control de compilacin.
Archivo de control
de compilacin
Creacin
S Al generar un archivo con Nuevo o en Abrir debe crear el filtro para Archivo de control de compilacin.
S El archivo con el que trabaja en este momento tiene como identificador especfico la extensin .inp.
S Cuando compile este archivo se compilarn por orden los archivos indicados por
su nombre.
Compilacin
5-10
Test de un programa
Resumen
Las funciones de test de SCL ofrecen la posibilidad de controlar un programa durante su ejecucin en el PLC para encontrar posibles errores.
Los errores de sintaxis son detectados e indicados por SCL en el proceso de compilacin. Los errores de tiempo de ejecucin en la ejecucin del programa se indican
mediante alarmas del sistema; los errores lgicos de programacin puede detectarlos
con las funciones de test de SCL.
En la ayuda online puede encontrar datos detallados sobre el test con SCL. La ayuda
online le proporciona respuestas a preguntas concretas mientras trabaja con SCL.
Apartado
Tema
Pgina
6.1
Resumen
6-2
6.2
6-3
6.3
6-5
6.4
6-8
6.5
6-9
6.6
6-10
6-1
Test de un programa
6.1
Resumen
Lenguaje de alto
nivel
Con las funciones de test de SCL puede efectuar un test a los programas de usuario
programados en SCL (lenguaje de alto nivel). Este tipo de test le permite:
Antes de poder hacer un test a un programa SCL debe ejecutar con xito los siguientes pasos:
1. Debe compilar sin errores el programa con las opciones de compilacin Crear
object code y Crear debug information. Los ajustes puede seleccionarlos en la
ficha Compilador del cuadro de dilogo Herramientas Preferencias.
2. Debe garantizar que entre la PG o el PC y la CPU existe comunicacin online.
3. Adems, debe cargar el programa en la CPU. Puede hacerlo con el comando de
men Sistema de destino Cargar.
Las funciones de
test de SCL
La tabla 6-1 muestra los nombres y una caracterizacin abreviada de las funciones
de test esenciales que pueden llamarse en SCL.
Tabla 6-1
Funcin
6-2
Observacin continua
(CPU SIMATIC S7-300/400)
Observar/forzar variables
Nota
Un test efectuado con la instalacin en funcionamiento puede provocar graves
daos materiales y personales en caso de que existan averas de funcionamiento o
errores del programa. Antes de ejecutar las funciones de test asegrese de que no
pueden producirse estados peligrosos.
Test de un programa
6.2
Resumen
Tipo de test
Al realizar un test en modo Observacin continua, los valores actuales de los datos se consultan y visualizan en el rea de observacin. La consulta se realiza mientras se recorre el rea de observacin, y la mayora de las veces provoca una prolongacin de los tiempos de ciclo.
Para poder influir sobre esta prolongacin, SCL ofrece dos tipos de test diferentes.
6-3
Test de un programa
Cmo utilizar
Observacin continua?
6-4
Test de un programa
6.3
Resumen
Puntos de parada
Puede definir puntos de parada en cualquier punto del rea de instrucciones del
texto fuente.
Los puntos de parada no se transmiten al PLC ni se activan hasta que no elija el comando de men Test Activar puntos de parada. Entonces el programa se ejecuta
hasta que se alcanza el primer punto de parada.
El nmero de puntos de parada activos depende de la CPU:
S Continuar
Continuar hasta el siguiente punto de parada activo.
6-5
Test de un programa
6-6
Test de un programa
Proceso de test
paso a paso
Inicio
1)
Abrir
Fuente SCL
Nuevos puntos de
parada
?
2)
No
Ventana de la
fuente SCL
3)
Arrancar proceso
paso a paso
Continuar
4a)
Visualizar contenidos
de variables
4b)
Hasta siguiente punto
de parada
4c)
Hasta punto de parada
en el punto de insercin
Ventana dividida
S
Repetir
?
No
5)
Finalizar proceso
paso a paso
Desconecter
Activar puntos de parada
S
Repetir
?
No
6)
Cerrar
Fin
Figura 6-1
6-7
Test de un programa
6.4
Resumen
6-8
Test de un programa
6.5
Resumen
Para facilitar la realizacin de tests y modificar su programa de usuario, puede generar y evaluar datos de referencia.
Los datos de referencia abarcan: estructura del programa, lista de referencias cruzadas, plano de ocupacin, lista de operandos no utilizados, lista de operandos sin smbolo.
Los datos de referencia puede utilizarlos como:
6-9
Test de un programa
6.6
Editor AWL
Se pueden abrir bloques en AWL que han sido compilados con SCL y probarlos en
el editor AWL.
Seleccione el comando de men Sistema de destino Estado operativo para consultar o modificar el estado operativo actual de la CPU.
El comando de men Sistema de destino Informacin del mdulo abre un cuadro de dilogo en el que:
6-10
Parte 3:
Descripcin del lenguaje
Tipos de datos
10
11
12
13
Asignacin de valores
14
Instrucciones de control
15
16
Contadores y temporizadores
17
18
Interface de llamada
19
6-12
Resumen
En este captulo encontrar los medios de que dispone el lenguaje SCL y cmo
puede manejarlos. Tenga en cuenta que aqu slo se avanzarn conceptos fundamentales y las definiciones necesarias, sobre las que se profundizar en los prximos
captulos.
Apartado
Tema
Pgina
7.1
7-2
7.2
7-4
7.3
Palabras reservadas
7-5
7.4
Identificadores en SCL
7-7
7.5
Identificadores estndar
7-8
7.6
Nmeros
7-10
7.7
Tipos de datos
7-12
7.8
Variables
7-14
7.9
Expresiones
7-16
7.10
Instrucciones
7-17
7.11
Bloques SCL
7-18
7.12
Comentarios
7-20
7-1
7.1
Descripcin del
lenguaje SCL
Para describir el lenguaje en cada uno de los captulos se utilizan diagramas sintcticos. Dichos diagramas le darn una buena visin de la estructura sintctica (es decir, gramatical) de SCL. En el anexo B encontrar una recompilacin completa de
todos los diagramas con los elementos de lenguaje utilizados.
Qu es un diagrama sintctico?
Secuencia
Bloque 3
Bloque 1
Bloque 2
Opcin
Bloque 4
Bloque 5
Iteracin
Alternativa
Figura 7-1
Diagrama sintctico
Un bloque es un elemento fundamental o un elemento que a su vez puede estar compuesto por bloques. La figura siguiente indica los tipos de smbolo que corresponden
a los bloques:
En este caso se trata de caracteres imprimibles y caracteres especiales, palabras clave e identificadores predefinidos.
Los datos referidos a estos bloques deben aceptarse sin cambios.
7-2
Al introducir textos fuente deben respetarse tanto reglas sintcticas como reglas
lxicas.
Ambos grupos de reglas estn representados en los anexos B y C. Libertad de formato significa que entre los bloques de reglas puede insertar caracteres de formato,
como blancos, tabuladores y saltos de pgina as como comentarios.
Reglas lxicas
En las reglas lxicas (por ejemplo segn la figura 7-2), no tiene libertad de formato.
Cuando utilice una regla lxica debe aceptar las indicaciones sin cambios.
Letra
Letra
Guon inferior
Guon inferior
Cifra
Figura 7-2
Letra
Cifra
Reglas sintcticas
Figura 7-3
:=
Constante
:= 100;
:= 3.2;
INTERRUPTOR:=FALSE;
7-3
7.2
Letras, cifras
Otros caracteres
Informacin adicional
7-4
<
>
7.3
Palabras reservadas
Significado
Palabras clave
Las palabras reservadas son palabras clave que slo se pueden utilizar tal como
estn predefinidas. No existe diferencia entre mayscula y minscula.
AND
END_STRUCT
ANY
END_VAR
ARRAY
END_WHILE
BEGIN
EXIT
BLOCK_DB
FOR
BLOCK_FB
FUNCTION
BLOCK_FC
FUNCTION_BLOCK
BLOCK_SDB
GOTO
BLOCK_SFB
IF
BLOCK_SFC
INT
BOOL
LABEL
BY
MOD
BYTE
NIL
NOT
CASE
OF
CHAR
OR
CONST
ORGANIZATION_BLOCK
CONTINUE
POINTER
COUNTER
REAL
DATA_BLOCK
REPEAT
DATE
RETURN
DATE_AND_TIME
S5TIME
DINT
STRING
DIV
STRUCT
DO
THEN
DT
TIME
DWORD
TIMER
ELSE
TIME_OF_DAY
ELSIF
TO
END_CASE
TOD
END_CONST
TYPE
END_DATA_BLOCK
VAR
END_FOR
VAR_TEMP
END_FUNCTION
UNTIL
7-5
Palabras clave,
continuacin
END_FUNCTION_BLOCK
VAR_INPUT
END_IF
VAR_IN_OUT
END_LABEL
VAR_OUTPUT
END_TYPE
WHILE
END_ORGANIZATION_BLOCK
WORD
END_REPEAT
XOR
VOID
EN
ENO
OK
TRUE
FALSE
7-6
7.4
Identificadores en SCL
Definicin
Reglas
Los identificadores pueden estar compuestos por letras y cifras en un orden cualquiera; el primer carcter debe ser una letra o un guin inferior. Estn permitidas las
letras maysculas y minsculas. Aqu tampoco se diferencia entre maysculas y
minsculas. (Por ejemplo, Anna y AnNa son idnticos).
Un identificador puede representarse formalmente por el siguiente diagrama sintctico:
IDENTIFICADOR
Letra
Letra
_
Guin inferior
Figura 7-4
_
Guin inferior
Cifra
Letra
Cifra
Sintaxis: IDENTIFICADOR
S Debe considerar si el nombre ya est ocupado por palabras clave (p.ej. segn la
tabla 7-1) o identificadores estndar.
y12
Suma
Temperatura
Nombre
Superficie
Regulador
Tabla
Los nombres siguientes no son identificadores vlidos por las razones indicadas:
4ter
Array
Valor S
7-7
7.5
Identificadores estndar
Definicin
SCL define una serie de identificadores, por lo que reciben el nombre de identificadores estndar. Estos identificadores estndar son:
Nemotcnica Nemotcnica
(IEC)
(SIMATIC)
Caracteriza
DBx
DBx
FBx
FBx
FCx
FCx
Funcin (Function)
OBx
OBx
SDBx
SDBx
SFCx
SFCx
SFBx
SFBx
Tx
Tx
Temporizador (Timer)
UDTx
UDTx
Zx
Cx
Contador (Counter)
x
DB0
IDENTIFICADOR ESTANDAR
Palabra clave
de bloque
Nmero
Figura 7-5
7-8
Identificadores de
operandos
Puede referirse a las reas de memoria de una CPU desde cualquier punto del programa con su identificador de operando.
La tabla siguiente est ordenada segn la nemotcnica SIMATIC; tambin se indica
la nemotcnica internacional IEC correspondiente.
Nemotcnica (SIMATIC)
Nemotcnica (IEC)
... direcciona
Tipo de datos
Ax.y
Qx.y
Bit
ABx
QBx
Byte
ADx
QDx
Doble palabra
AWx
QWx
Palabra
AXx.y
QXx.y
Bit
1)
1)
Bloque de datos
Bit
DBx 1)
DBx 1)
Bloque de datos
Byte
1)
1)
Bloque de datos
Doble palabra
DWx 1)
Bloque de datos
Palabra
DXx.y1)
Bloque de datos
Bit
Ex.y
Ix.y
Bit
EBx
IBx
Byte
EDx
IDx
Doble palabra
EWx
IWx
Palabra
EXx.y
IXx.y
Bit
Mx.y
Mx.y
Marcas
Bit
MBx
MBx
Marcas
Byte
MDx
MDx
Marcas
Doble palabra
MWx
MWx
Marcas
Palabra
MXx.y
MXx.y
Marcas
Bit
PABx
PQBx
Byte
PADx
PQDx
Doble palabra
PAWx
PQWx
Palabra
PEBx
PIBx
Byte
PEDx
PIDx
Doble palabra
PEWx
PIWx
Palabra
PEWx
PIWx
Palabra
PEWx
PIWx
Palabra
Dx.y
DDx
Dx.y
DDx
DWx 1)
DXx.y
1)
MW10
PAW5
DB20.DW3
1) Estos identificadores de operando slo valen junto con la indicacin de bloque de datos.
SCL para SIMATIC S7-300/400 Programacin de bloques
C79000-G7078-C522-01
7-9
7.6
Nmeros
Resumen
S Los nmeros no pueden superar por exceso ni por defecto determinados valores
mximos y mnimos.
Nmeros enteros
+1
-1
743
-5280
600_00
-32_211
Los siguientes nmeros enteros son errneos por las razones indicadas:
Nmeros enteros
como nmero binario, de base 8 o
hexadecimal
123,456
36.
10 20 30
En SCL puede representar los nmeros enteros en otro sistema de numeracin. Para
hacerlo, se antepone una palabra clave correspondiente al sistema de numeracin.
2# representa el sistema binario; 8# representa el sistema en base 8; 16# representa
el sistema hexadecimal.
Algunos nmeros enteros vlidos para el decimal 15 son:
2#1111
Nmeros reales
8#17
16#F
7-10
0.0
1.0
-0.2
827.602
50000.0
-0.000743
12.3
-315.0066
Los siguientes nmeros reales son errneos por las razones que se indican:
1.
1,000.0
.3333
3.0E10
3e+10
3E10
0.3E+11
0.3e11
30.0E+9
30e9
Cadena de
caracteres
3.E+10
8e2.3
.333e-3
30 E10
Una cadena de caracteres es una secuencia de caracteres (es decir, letras, cifras y
signos especiales) encerrados entre apstrofos. Pueden utilizarse las letras maysculas y minsculas.
Algunas cadenas de caracteres vlidas son:
ROJO
76181 Karlsruhe
270-32-3456
Despus de la compilacin
SIGNAL$ROT$
50.0$$
WERT$P
REG-$L
REGEL$R
SCHRITT$T
SEAL ROJO
50.0$
VALOR Salto de pgina
REG Salto de lnea
REGULADOR Retorno de carro
PASO
Tabulador
7-11
7.7
Tipos de datos
Resumen
Toda declaracin de una variable debe indicar el tipo de esa variable. El tipo determina el rango de la variable y define las operaciones que pueden ejecutarse con ella.
Un tipo de dato concreto determina:
Tipos de datos
Tipos de datos
simples
Simples
Compuestos
De usuario
Tipos de parmetros
Los tipos de datos simples definen la estructura de datos que no pueden descomponerse en unidades menores. Cumplen la definicin de la norma DIN EN 1131-3.
En SCL ha predefinido doce tipos de datos simples:
BOOL
INT
TIME
BYTE
DINT
DATE
WORD
REAL
TIME_OF_DAY
DWORD
7-12
CHAR
S5TIME
Tipos de datos
compuestos
Los tipos de datos compuestos definen estructuras de datos que estn formados por
otros tipos de dato. SCL admite los siguientes tipos de datos compuestos:
DATE_AND_TIME
STRING
ARRAY
STRUCT
Tipos de datos de
usuario
Se trata de tipos de datos globales (UDT) que usted puede crear en SCL para su
aplicacin. Puede utilizar este tipo de dato en la tabla de declaracin de un bloque o
de un bloque de datos con su identificacin UDT (UDTx, donde x representa un
nmero) o con un nombre simblico asignado.
Tipos de
parmetros
Adems de los tipo de datos simples, compuestos y de usuario, puede utilizar tipos
de parmetro para definir parmetros. SCL le ofrece los siguientes tipos de parmetro:
TIMER
BLOCK_FB
COUNTER
BLOCK_FC
POINTER
ANY
BLOCK_DB
BLOCK_SDB
7-13
7.8
Variables
Declaracin de
variables
S datos locales,
S datos de usuario globales, y
S variables predefinidas admisibles (reas de memoria de una CPU).
Datos locales
Los datos locales son datos que se declaran dentro de un bloque lgico (FC, FB,
OB) y que slo tienen validez para ese bloque lgico. En concreto son los siguientes:
Tabla 7-3
Variable
Significado
Variables estticas
Variables temporales
Parmetros del bloque Los parmetros del bloque son parmetros formales de un bloque de
funcin o de una funcin. Son variables locales que sirven para transferir los parmetros actuales indicados en la llamada.
7-14
Datos de usuario
globales
Los datos de usuario globales son datos o reas de datos que puede utilizar desde
cualquier punto del programa. Para hacerlo debe crear bloques de datos (DB).
Cuando usted crea un DB, define su estructura en una declaracin de estructura. En
lugar de una declaracin de estructura tambin puede utilizarse un tipo de dato de
usuario (UDT). El orden en el que usted introduce los componentes de la estructura
determina el orden de los datos en el DB.
Areas de memoria
de una CPU
Usted puede acceder a las reas de memoria de una CPU a travs de los identificadores de operandos (v. apt. 7.5) directamente desde cualquier punto del programa,
sin necesidad de declarar dichas variables.
Adems tambin tiene la posibilidad de recurrir a dichas reas de datos simblicamente. En este caso la asignacin simblica se realiza globalmente mediante la tabla de smbolos en STEP 7. Encontrar informacin al respecto en /231/.
7-15
7.9
Expresiones
Resumen
S Expresiones aritmticas
S Expresiones lgicas
S Expresiones de comparacin
Expresin aritmtica
Expresin de
comparacin
Una expresin de comparacin es una expresin lgica que puede ser verdadera o
falsa. He aqu un ejemplo de expresin de comparacin:
Valor_teorico < 100.0
En esta expresin, Valor_teorico es una variable real; 100.0 es un nmero
real, y el smbolo < es un operador de comparacin. La expresin tiene el valor
verdadero cuando el valor terico es un valor inferior a 100.0; en caso contrario la
expresin tiene el valor falso.
Expresin lgica
7-16
7.10 Instrucciones
Resumen
Una instruccin SCL es una accin ejecutable en el rea de instrucciones de un bloque lgico. En SCL hay tres instrucciones fundamentales:
1. Asignaciones de valor (asignacin de una expresin a una variable)
2. Instrucciones de control (repeticin o ramificacin de instrucciones).
3. Procesamiento de subrutinas (llamada o ramificacin de bloques lgicos).
Asignaciones de
valor
Instrucciones de
control
Procesamiento de
subrutinas
Al especificar un identificador de bloque para una funcin (FC) o un bloque de funcin (FB) se llama al bloque lgico declarado con dicho identificador. 1) Cuando la
declaracin del bloque lgico incluye parmetros formales, al llamar a los parmetros formales pueden asignarse operandos actuales a los parmetros formales.
Todos los parmetros listados en el bloque de declaracin
VAR_INPUT, VAR_OUTPUT y VAR_IN_OUT
de un bloque lgico se denominan como parmetros formales; por el contrario, los
parmetros correspondientes en las llamadas que se hallan dentro de la parte de
instrucciones se denominan parmetros actuales.
La transferencia de los parmetros actuales a los parmetros formales forma parte de
la llamada.
Un procesamiento tpico de subrutina es, por ejemplo:
FC31(X:=5, Q1:=Suma_horizontal);
1)
En las funciones la asignacin de parmetros actuales es imprescindible; en los bloques de funcin es opcional.
7-17
En un archivo fuente SCL puede programar como texto fuente desde 1 hasta n
bloques.
FUNCTION_BLOCK FB10
D
D
D
D
Area de instrucciones
Palabra clave B
Figura 7-6
Tipos de bloques
CONST
Constante:INT;
END_CONST
VAR
VALOR1,VALOR2:REAL;
END_VAR
BEGIN
VALOR1:=100;
:
END_FUNCTION_BLOCK
Los bloques STEP 7 son partes de un programa de usuario delimitadas por su funcin, su estructura o su finalidad. Con SCL puede programar los siguientes bloques:
OB
FC
FB
DB
UDT
Bloques STEP 7
Bloques
predefinidos
No necesita programar todas las funciones. Tambin puede recurrir a bloques predefinidos, que se hallan en el sistema operativo de las unidades centrales de procesamiento o en libreras (S7lib) del paquete bsico STEP7, y pueden utilizarse, por
ejemplo, para la programacin de funciones de comunicacin.
Estructura de un
bloque de SCL
S Tabla de declaracin
S Area de instrucciones (en los bloques de datos, tabla de asignacin).
7-18
Tabla de
declaracin
Area de instrucciones
IDENTIFICADOR
Instruccin
Meta de salto
Figura 7-7
:
:
BEGIN
7-19
7.12 Comentarios
Resumen
S la lnea de comentario, y
S el bloque de comentario.
Lnea de comentario
Comentario que se inicia con // y que se extiende hasta el final de la lnea. La longitud est limitada a un mximo de 253 caracteres, incluido el carcter de inicio //.
Puede representarse formalmente por el siguiente diagrama sintctico:
Lnea de comentario
Carcter
imprimible
//
CR
Retorno de carro (carriage return)
Figura 7-8
Los caracteres imprimibles puede consultarlos en la tabla A-2 del anexo. Dentro de
la lnea de comentario las parejas de signos (* y *) carecen de significado.
Bloque de comentario
Comentario que puede abarcar varias lneas y que, por ser un bloque, se inicia con
(* y concluye con *). Est permitido el anidamiento de bloques de forma estndar.
Se puede cambiar este ajuste e impedir el anidamiento de bloques de comentario.
Bloque de comentario
(*
Figura 7-9
Carcter
*)
7-20
Reglas a tener en
cuenta
S Los bloques de comentario dentro de bloques de datos deben notarse de la misma manera que las lneas de comentario, es decir, tambin se introducen con //.
Ejemplo de
introduccin de
comentarios
Figura 7-10
Ejemplo de comentario
Nota
Los comentarios de lnea situados directamente detrs de la declaracin de variables de un bloque se recuperan al decompilar a un programa AWL.
Estos comentarios los encontrar dentro de AWL en el rea de interface, es decir, en
la parte superior de la ventana (vase tambin /231/.)
7-21
7-22
Resumen
En principio un archivo fuente SCL est formado por texto continuo. En dicho archivo fuente puede programar varios bloques. Dichos bloques pueden ser OBs, FBs,
FCs, DBs o UDTs.
En este captulo se va a describir la estructura externa de los bloques. Los captulos
siguientes le informarn sobre las estructuras internas.
Apartado
Tema
Pgina
8.1
Estructura
8-2
8.2
8-4
8.3
Atributos de bloque
8-5
8.4
Tabla de declaracin
8-7
8.5
Area de instrucciones
8-10
8.6
Instruccin
8-11
8.7
8-12
8.8
8-14
8.9
8-16
8.10
8-17
8.11
8-19
8-1
8.1
Estructura
Resumen
Un archivo fuente SCL est compuesto por el texto fuente, de 1 hasta n bloques (que
pueden ser FBs, FCs, OBs, DBs o UDTs).
Para que su archivo fuente SCL pueda compilarse en cada uno de los bloques, debe
tener en cuenta determinadas estructuras y normas sintcticas de dichos bloques.
Unidad de programa SCL
Bloque de organizacin
Funcin
Bloque de funcin
Bloque de datos
Figura 8-1
Secuencia de los
bloques
Por cuanto respecta a la secuencia de los bloques, al crear el archivo fuente debe
tener en cuenta lo siguiente:
Los bloques llamados preceden a los bloques invocantes.
Es decir:
S Los tipos de dato de usuario (UDTs) preceden a los bloques en los que se utilizan.
S Los bloques de datos que tienen asignado tipo de datos de usuario (UDT) se
sitan despus del UDT.
S Los bloques de datos a los que se puede acceder desde todos los bloques lgicos
preceden a los bloques desde los que usted efecta la llamada.
S Los bloques de datos que tienen asignado bloque de funcin se sitan despus
del bloque de funcin.
S El OB1 que llama a otros bloques va en ltimo lugar. A su vez, los bloques llamados por los bloques llamados desde el OB1 anteceden a los anteriores.
Los bloques a los que usted llama en el archivo fuente pero que no programa en el
mismo archivo fuente deben encontrarse en el programa de usuario correspondiente
en el momento de compilar el archivo.
8-2
asignado a
UDT
DB
DB de UDT
llama a
FB3
llama a
llama a
asignado a
FC5
OB1
Estructura general
de bloques
Bsicamente el cdigo fuente para un bloque est formado por los siguientes segmentos:
S Final de bloque
8-3
8.2
Resumen
Cada uno de los textos fuente de un bloque viene precedido de un identificador estndar de inicio y final del bloque (v. tabla 8-1 ) que depende del tipo de bloque, as
como de un identificador del bloque.
Tabla 8-1
Sintaxis
Identificacin de
bloque
Sintaxis
Identificacin
ORGANIZATION_BLOCK ob_name
:
END_ORGANIZATION_BLOCK
OB
Bloque de organizacin
FUNCTION fc_name:function_type
:
END_FUNCTION
FC
Funcin
FUNCTION_BLOCK fb_name
:
END_FUNCTION_BLOCK
FB
Bloque de funcin
DATA_BLOCK db_name
:
END_DATA_BLOCK
DB
Bloque de datos
UDT
Nmero
IDENTIFICADOR
Smbolo
Figura 8-3
8-4
FUNCTION_BLOCK FB10
FUNCTION_BLOCK Bloque_regulador
FUNCTION_BLOCK Regulador.B1&U2
8.3
Atributos de bloque
Definicin
S Atributos de bloque
S Atributos del sistema para bloques
Atributos de
bloque
Carcter
imprimible
Secuencia de
cifras decimales
Versin
Version
Secuencia de
cifras decimales
Proteccin de bloque
KNOW_HOW_PROTECT
Autor
mx. 8 caracteres
AUTHOR
IDENTIFICADOR
Name
mx. 8 caracteres
NAME
Familia de bloques
FAMILY
Figura 8-4
IDENTIFICADOR
mx. 8 caracteres
:
IDENTIFICADOR
8-5
Atributos del
sistema para
bloques
Adems puede asignar a los bloques atributos del sistema: p.ej., para configurar la
tcnica de mando.
Atributos del sistema para bloques
mx. 24 caracteres
IDENTIFICADOR
:=
carcter
imprimible
La tabla 8-2 muestra los atributos del sistema que puede asignar a bloques en SCL.
Tabla 8-2
Atributo
Valor
S7_m_c
true, false
FB
S7_tasklist
taskname1,
taskname2, etc.
FB, FC
S7_blockview
big, small
FB, FC
Asignacin de
atributos
Figura 8-6
8-6
TITLE=Valor_medio
VERSION:2.1
KNOW_HOW_PROTECT
AUTHOR:AUT 1
NAME:B12
FAMILY:ANALOG
{S7_m_c:=true;
S7_blockview:=big}
Asignacin de atributo
8.4
Tabla de declaracin
Resumen
La tabla de declaracin sirve para definir las variables locales y globales, los
parmetros, las constantes y las metas de salto.
S Las variables locales, los parmetros, las constantes y las metas de salto, que
slo deben tener validez dentro de un bloque lgico, puede definirlas en la tabla
de declaracin del bloque lgico.
S Los datos globales, a los que puede acceder cualquier bloque lgico, los definir
en la tabla de declaracin del bloque de datos (DB).
Bloques de
declaracin
Lista de declaracin
X2)
END_CONST
LABEL
Metas de salto
Lista de declaracin
END_LABEL
VAR_TEMP
Variables temporales
Lista de declaracin
END_VAR
VAR
Variables estticas
Lista de declaracin
X1)
X1)
END_VAR
VAR_INPUT
Parmetros de entrada
Lista de declaracin
END_VAR
VAR_OUTPUT
Parmetros de salida
Parmetros de entrada/
salida
Lista de declaracin
END_VAR
VAR_IN_OUT
Lista de declaracin
END_VAR
Lista de declaracin: es la lista de los identificadores del tipo que debe declararse
1)
En los bloques de datos y los UDT las palabras clave VAR y END_VAR se reemplazan por
STRUCT y END_STRUCT.
2) La declaracin de variables dentro de la pareja de palabras clave VAR y END_VAR s est
permitida en funciones, pero durante la compilacin las declaraciones se desplazan al rea
temporal.
8-7
Atributos del
sistema para
parmetros
IDENTIFICADOR
:=
carcter
imprimible
La tabla 8-3 muestra los atributos del sistema que puede asignar a los parmetros.
Tabla 8-3
Atributo
Valor
Tipo de declaracin
permitida
S7_server
connection,
alarm_archiv
IN
S7_a_type
alarm,
alarm_8,
alarm_8p,
alarm_s,
notify,
ar_send
IN, slo en FB
S7_co
pbkl, pbk,
ptpl, obkl, fdl,
iso, pbks,
obkv
usted define el tipo de enlace que debe configurarse (requisito: tambin debe estar asignado el
atributo S7_server:=connection).
IN
S7_m_c
true, false
S7_shortcut 2 caracteres
cualesquiera;
p.ej., W, Y
S7_unit
S7_string_0 16 caracteres
cualesquiera;
p. ej.,
ABIERTO
S7_string_1 16 caracteres
cualesquiera;
p. ej.,
CERRADO
S7_visible
IN/OUT/IN_OUT, slo
en FB, FC
8-8
unidad;
p. ej., litro
true, false
Tabla 8-3
Atributo
Valor
Tipo de declaracin
permitida
S7_link
true, false
IN/OUT/IN_OUT, slo
en FB, FC
S7_dynamic
true, false
IN/OUT/IN_OUT, slo
en FB, FC
S7_param
true, false
Asignacin de
atributos
Los atributos del sistema para parmetros debe asignarlos en los bloques de declaracin Parmetros de entrada, Parmetros de salida o Parmetros de entrada/salida.
Ejemplo:
VAR_INPUT
in1 {S7_server:=alarm_archiv;
S7_a_type:=ar_send}:DWORD;
END_VAR
8-9
8.5
Area de instrucciones
Resumen
La figura 8-8 muestra la sintaxis del rea de instrucciones. Est compuesta por una
repeticin de las instrucciones individuales, por lo que antes de cada instruccin
puede existir una meta de salto (v. apt. 11.6) que es la meta de una instruccin de
salto.
Area de instrucciones
IDENTIFICADOR
Instruccin
Meta de salto
Figura 8-8
Notas importantes
RESULTADO
:=0;
:=200;
:=VALOR_TEORICO;
1)
En el presente manual utilizamos el trmino instruccin para todos los entes que declaran una funcin ejecutable.
8-10
8.6
Instruccin
Resumen
S Asignaciones de valor, que sirven para asignar a una variable un valor, el resultado de una expresin o el valor de otra variable.
Procesamiento
de subrutinas
Instruccin de control
Figura 8-9
Sintaxis: Instruccin
Los elementos necesarios para formular estas instrucciones son expresiones, operadores y operandos. Se tratarn en posteriores captulos.
Ejemplos
Los ejemplos que siguen pretenden ilustrar las diferentes variantes de instrucciones
que existen:
Ejemplo
8-1
Instrucciones
8-11
8.7
Resumen
Un FB (bloque de funcin) es un bloque lgico que contiene una seccin de un programa y que dispone de un rea de memoria asignada. Cada vez que se llama a un
FB debe asignrsele un DB de instancia (v. cap. 10). La estructura de este DB de
instancia puede definirla especificando la tabla de declaracin de FB.
Bloque de funcin
Identificacin
de FB
FUNCTION_BLOCK
BEGIN
Figura 8-10
Identificacin
de FB
Area de instrucciones
Tabla de
declaracin de FB
END_FUNCTION_BLOCK
Area de declaracin de FB
La tabla de declaracin de FB sirve para declarar los datos especficos del bloque.
Puede consultar los bloques de declaracin permitidos en el captulo 8.4. Tenga en
cuenta que la tabla de declaracin tambin define la estructura del DB de instancia
asignado.
Ejemplos:
CONST
CONSTANTE:=5;
END_CONST
VAR
VALOR1,VALOR2,VALOR3:INT;
END_VAR
8-12
Ejemplo
Ejemplo 8-2 muestra el cdigo fuente para un bloque de funcin. Los parmetros de
entrada y de salida (aqu V1, V2) estn predefinidos con valores iniciales.
FUNCTION_BLOCK FB11
VAR_INPUT
V1: INT:= 7;
END_VAR
VAR_OUTPUT
V2: REAL;
END_VAR
VAR
RECORRIDO_1:INT;
END_VAR
BEGIN
IF V1 = 7 THEN
RECORRIDO_1:= V1;
V2:= FC2 (VALOR_TEST:= RECORRIDO_1);
//Llamada a la funcin FC2 suministrando
//parmetros mediante la variable
//esttica RECORRIDO_1
END_IF;
END_FUNCTION_BLOCK
Ejemplo
8-2
8-13
8.8
Resumen
FUNCTION
Tabla de declaracin de FC
Figura 8-11
Identificacin
de FC
Identificacin
de FC
BEGIN
Area de instrucciones
Especificacin
de tipo de datos
END_FUNCTION
Especificacin de
tipo de dato
Aqu indique el tipo de dato del valor de respuesta. Estn permitidos todos los tipo
de dato que se describen en el captulo 9 a excepcin de STRUCT y ARRAY. No es
necesario indicar un tipo de dato cuando se prescinde del valor de respuesta con
VOID.
Tabla de declaracin de FC
Area de instrucciones
8-14
Ejemplo
El ejemplo muestra una funcin con los parmetros de entrada formales x1, x2, y1,
y2, un parmetro formal de salida Q2 y un valor de respuesta FC11.
El significado de los parmetros formales lo encontrar en el captulo 10.
// Tabla de instrucciones
8-3
8-15
8.9
Resumen
Un OB (bloque de organizacin) es, al igual que un FB o una FC, una seccin del
programa de usuario, que el sistema operativo llama cclicamente o cuando se producen determinados sucesos. Constituye el interface entre el programa de usuario y
el sistema operativo.
Bloque de organizacin
Identificacin
de DB
ORGANIZATION_BLOCK
BEGIN
Figura 8-12
Identificacin
de OB
Area de instrucciones
Tabla de declaracin de OB
END_ORGANIZATION_BLOCK
Tabla de declaracin de OB
8-16
Resumen
DB (bloque de datos): el bloque de datos incluye datos de usuario globales a los que
acudirn todos los bloques del programa. Todos los FB, FC u OB pueden leer o
escribir estos bloques de datos. En el captulo 12 encontrar la estructura de los
bloques de datos que slo estn asignados a determinados FB (DB de instancia).
Bloque de datos
Identificacin
de DB
DATA_BLOCK
BEGIN
Figura 8-13
Identificacin de
DB
Tabla de declaracin de DB
Tabla de asignacin de DB
END_DATA_BLOCK
Tabla de declaracin de DB
Identificacin
de UDT
Estructura especificacin del tipo de dato
Figura 8-14
Ejemplo:
DATA_BLOCK DB20
STRUCT
// Tabla de declaracin
VALOR:ARRAY [1..100] OF INT;
END_STRUCT
BEGIN
:
END_DATA_BLOCK
8-17
Tabla de asignacin de DB
Usted puede adaptar los datos que ha declarado en la tabla de declaracin para su
aplicacin especfica utilizando datos concretos especficos de DB. La tabla de asignacin comienza con la palabra clave:
BEGIN
y est compuesta de una secuencia de asignaciones de valor con la siguiente sintaxis:
Tabla de asignacin de DB
Variable simple
Figura 8-15
:=
Constante
Nota
Al adjudicar valores iniciales (inicializacin), al indicar atributos y al indicar comentarios dentro de un DB, se aplica la sintaxis de AWL. En el manual de usuario
/231/ o en el manual /232/ podr consultar informaciones sobre las formas de escribir constantes, atributos y comentarios.
Ejemplo
DATA_BLOCK
STRUCT
DB20
//Declaracin de datos
//predefinidos
VALOR : ARRAY [ 1..100] OF INT := 100 (1);
MARCA: BOOL := TRUE;
S_WORD: WORD
:= W#16#FFAA;
S_BYTE: BYTE
:= B#16#FF;
S_TIME: S5TIME := S5T#1h30m30s;
END_STRUCT
BEGIN
//Tabla de asignacin
//Asignacin de valor para determinados
//elementos del ARRAY
VALOR [1] := 5;
VALOR [5] :=1;
END_DATA_BLOCK
Ejemplo
8-18
8-4
Tabla de asignacin de DB
Resumen
Los tipos de datos de usuario (UDT) son estructuras de datos especialmente generadas por usted. Dado que los tipos de datos de usuario tienen un nombre, pueden utilizarse mltiples veces. Por definicin pueden utilizarse en la totalidad del programa
de la CPU, por lo que son tipos de datos globales. En consecuencia, estos tipos de
datos pueden:
TYPE
Figura 8-16
Identificacin de
UDT
Identificacin
de UDT
Estructura
especificacin
del tipo de datos
END_TYPE
Especificacin de
tipos de datos
La especificacin de tipos de datos se realiza siempre con ayuda de una especificacin de tipos de datos STRUCT. El tipo de datos UDT puede utilizarse en los bloques de declaracin de bloques lgicos o en bloques de datos, o asignarse a DBs. En
el captulo 9 puede consultar los bloques de declaracin permitidos y otras informaciones.
8-19
8-20
Tipos de datos
Resumen
Un tipo de datos es una reunin de rangos y operaciones para formar una unidad.
Como la mayora de los dems lenguajes de programacin, SCL posee tipos de datos predefinidos (es decir, integrados en el lenguaje). Adems, el programador puede
crear tipos de datos compuestos o de usuario.
Apartado
Tema
Pgina
9.1
Resumen
9-2
9.2
9-3
9.3
9-4
9.3.1
9-5
9.3.2
9-6
9.3.3
9-7
9.3.4
9-8
9.4
9-10
9.5
Tipos de parmetros
9-12
9-1
Tipos de datos
9.1
Resumen
Resumen
Tabla 9-1
CHAR
INT
TIME
BYTE
DINT
DATE
WORD
REAL
TIME_OF_DAY
DWORD
S5TIME
Tipos de datos compuestos
DATE_AND_TIME STRING
ARRAY
STRUCT
BLOCK_FB
COUNTER
BLOCK_FC
POINTER
ANY
BLOCK_DB
BLOCK_SDB
9-2
Tipos de datos
9.2
Resumen
Los tipos de datos simples definen la estructura de datos que no puede descomponerse en unidades menores. Cumplen la definicin de la norma DIN EN 1131-3. Un
tipo de datos simple describe un rea de memoria de longitud fija y representa una
magnitud de bits, un entero, un nmero real, un tiempo, una hora del da o un
carcter. Estos tipos de datos estn predefinidos en SCL.
Tabla 9-2
Tipos de datos
Palabra clave
Bits de
anchura
Rango
Bits
Los datos de este tipo ocupan 1 bit (tipo de datos BOOL), 8 bits,
16 bits o 32 bits.
Bit
BOOL
0, 1 o FALSE, TRUE
Byte
BYTE
Palabra
WORD
16
Doble palabra
DWORD
32
Caracteres
Carcter individual
CHAR
Datos numricos
Entero de 16 bits
INT
16
DINT
32
REAL
32
Entero de 32 bitse
Nmero en coma
flotante (IEE)
Temporizadores
Tiempo S5
S5TIME
Datos de tiempo:
Tiempo IEC en intervalos de 1 ms
Fecha:
Fecha IEC en intervalos de 1 da
Hora del da:
Hora en intervalos de
1 ms
TIME
(=DURATION)
16
T#0H_0M_0S_10MS hasta
T#2H_46M_30S
32
-T#24D_20H_31M_23S_647MS
hasta
T#24D_20H_31M_23S_647MS
DATE
16
TIME_OF_DAY
(=TOD)
32
D#1990-01-01 hasta
D#2168-12-31
TOD#0:0:0 hasta
TOD#23:59:59.999
9-3
Tipos de datos
9.3
Resumen
Tipo de dato
Descripcin
Define un rea con 64 bits (8 Bytes). Este tipo de datos memoriza (en
DATE_AND_TIME formato decimal con codificacin binaria) la fecha y la hora del da, y
DT
est predefinido en SCL.
STRING
ARRAY
STRUCT
9-4
Tipos de datos
9.3.1
Resumen
Este tipo de datos consta de los dos tipos de datos DATE y TIME y define un rea de
64 bits (8 Bytes) para indicar fecha y hora del da. El rea de datos guarda las siguientes informaciones: aomesdahoras:minutos:segundos.milisegundos.
DATE_AND_TIME
DATE_AND_TIME#
Indicacin de fecha
DT#
Figura 9-1
Sintaxis: DATE_AND_TIME
Tabla 9-4
Rango
Tipo
Fecha y hora
del da
Palabra clave
Bits de
anchura
DATE_AND_TIME
(=DT)
64
Rango
DT#1990-01-01-0:0:0.0 hasta
DT#2089-12-31-23:59:59.999
En el captulo 11 de la presente descripcin encontrar la sintaxis exacta para indicar la fecha y la hora del da. Una definicin vlida para las 12 horas, 20 minutos,
30 segundos y 10 milisegundos del da 20.10.1995 es:
DATE_AND_TIME#1995102012:20:30.10
DT#1995102012:20:30.10
Nota
Se dispone de funciones estndar para acceder dirigidamente a los componentes
DATE o TIME.
9-5
Tipos de datos
9.3.2
Resumen
El tipo de datos STRING define una cadena de caracteres de una longitud mxima
de 254 caracteres individuales.
El rea estndar reservada para una cadena de caracteres est compuesta por
256 bytes, que es el espacio necesario para memorizar 254 caracteres y un
encabezado de 2 bytes.
Puede reducir el espacio de memoria destinado a una cadena de caracteres definiendo el nmero mximo de caracteres que pueden guardarse en una cadena de
caracteres. Una Cadena cero (es decir, una cadena sin contenido) representa el valor
ms pequeo posible.
Especificacin de tipo de datos STRING
STRING
Expresin
simple
Dimensin de la cadena
Figura 9-2
Rango
En una cadena de caracteres estn permitidos todos los caracteres del cdigo ASCII.
En el captulo 11 se describe cmo se manejan los caracteres de control y los caracteres no imprimibles.
Nota
Para aprovechar mejor los recursos de su CPU se puede reducir la longitud estndar
de 254 caracteres del tipo de datos STRING a cualquier cantidad de caracteres en
valores de retorno de una FC, as como en parmetros de salida y de entrada/salida.
Seleccione el comando de men Preferencias del men Herramientas, y en el
siguiente cuadro de dilogo seleccione la ficha Compilador. A continuacin introduzca el nmero de caracteres deseado dentro de la opcin Nmero mx. de caracteres.
9-6
Tipos de datos
9.3.3
Resumen
ARRAY
Indice
Especificacin de ndice
..
Indice
OF
Figura 9-3
Especificacin de
ndice
Especificacin
de tipo de datos
Con la especificacin de tipo de datos puede declarar el tipo de datos de los componentes de array. Como tipos de datos estn permitidas todas las posibilidades mencionadas en este captulo. El tipo de datos de un array puede ser tambin una estructura.
Las siguientes especificaciones son posibles tipos de array:
ARRAY[1..10] OF REAL
ARRAY[1..10] OF STRUCT..END_STRUCT
ARRAY[1..100, 1..10] OF REAL
9-7
Tipos de datos
9.3.4
Resumen
Un tipo de datos STRUCT describe un rea compuesta por un nmero fijo de componentes, cuyos tipos de datos respectivos pueden ser diferentes. En el diagrama
sintctico de la fig. 9-4 se indican estos elementos de datos inmediatamente despus
de la palabra clave STRUCT dentro de la declaracin de componentes.
En particular, un elemento de tipo de datos STRUCT puede estar a su vez estructurado. Es decir, est permitido el anidamiento de estructuras.
En el captulo 10 ver cmo puede acceder a los datos de una estructura.
Especificacin de tipo de datos STRUCT
Declaracin
de componentes
STRUCT
Figura 9-4
Declaracin de
componentes
END_STRUCT
S 1 a n identificadores con
S el tipo de dato asignado y
S una predefinicin opcional de los valores iniciales.
Declaracin de componentes
IDENTIFICADOR
Especificacin
de tipo de datos
Inicializacin
de tipo de datos
Nombre del
componente
Figura 9-5
Identificador
9-8
El identificador es el nombre de un elemento de estructura al que se aplica la especificacin del tipo de datos que le sigue.
Tipos de datos
Inicializacin de
tipo de datos
Ocasionalmente, despus de la especificacin de tipo de datos puede definir un elemento de estructura concreto con un valor inicial. Esta asignacin se realiza mediante una asignacin de valor y se describe en el captulo 10.
Ejemplo
STRUCT
//INICIO Declaracin de componentes
A1
A2
A3
:INT;
:STRING[254];
:ARRAY [1..12] OF REAL;
Nombres de componentes
9-1
9-9
Tipos de datos
9.4
Resumen
TYPE
Figura 9-6
Identificacin
de UDT
Estructura
especificacin
del tipo de datos
END_TYPE
Identificacin de
UDT
La declaracin de un UDT se inicia con la palabra clave TYPE, seguida del nombre
del UDT (identificador de UDT). De acuerdo a lo expuesto en el captulo 8, el
nombre del UDT puede indicarse de forma absoluta, es decir, mediante un nombre
estndar de forma UDTx (donde x es un nmero), o puede utilizarse un nombre
simblico.
Especificacin del
tipo de datos
Utilizacin de un
UDT
El tipo de datos as definido puede utilizarse para usar variables o parmetros y para
la declaracin de DB. Tambin pueden declararse componentes de estructuras o arrays, incluso dentro de otros UDT, con ayuda del UDT.
Nota
Al adjudicar valores iniciales (inicializacin) dentro de un UDT se aplica la sintaxis
de AWL. En el manual de usuario /231/ o en el manual /232/ podr consultar informaciones sobre las formas de escribir las constantes.
9-10
Tipos de datos
Ejemplo
El ejemplo le muestra una definicin de UDT y el uso de este tipo de datos dentro
de una declaracin de variables. Se presupone que en la lista de smbolos se ha declarado el nombre VALORES_MEDIDOS para UDT50.
FUNCTION_BLOCK FB11
VAR
RANGO_VAL_MED: VALORES_MEDIDOS;
END_VAR
BEGIN
//...
RANGO_VAL_MED.BIPOL:= -4;
RANGO_VAL_MED.MEDICION.UNIPOLAR_4_20MA:= 2.7;
//...
END_FUNCTION_BLOCK
Ejemplo
9-2
9-11
Tipos de datos
9.5
Tipos de parmetros
Resumen
Adems de los tipos de datos simples, compuestos y de usuario, para definir los
parmetros formales de bloques de funcin y en funciones puede utilizar los denominados tipos de parmetros. Estos sirven para:
Tipos de parmetros
Tamao
Descripcin
TIMER
2 bytes
COUNTER
2 bytes
Identifica un determinado contador que ser utilizado por el programa en el bloque lgico llamado.
Parmetro actual:
p.ej.:
Z10
BLOCK_FB
BLOCK_FC
BLOCK_DB
BLOCK_SDB
2 bytes
Identifica un determinado bloque que ser utilizado por el programa en el bloque lgico llamado.
Parmetro actual:
p.ej.:
FC101
DB42
ANY
10 bytes Se utiliza cuando como tipo de datos del parmetro actual debe
permitirse cualquier tipo de datos, a excepcin de ANY.
POINTER
6 bytes
Parmetro
Temporizador
(TIMER) y
contador
(COUNTER)
Tipos de bloques
9-12
Tipos de datos
ANY
9-13
Tipos de datos
PUNTERO
9-14
Tipos de datos
Ejemplos
FUNCTION DISTANCIA: REAL
VAR_INPUT
MiDB:BLOCK_DB;
Tempo : TIMER;
END_VAR
VAR
INDICE: ENTERO;
END_VAR
BEGIN
MiDB.DB5:=5;
DISTANCIA:=....
// VALOR_RESPUESTA
END_FUNCTION
Ejemplo
9-3
9-4
9-15
Tipos de datos
9-16
Resumen
10
Las variables locales y los parmetros de bloque son datos que se declaran dentro de
un bloque lgico (FC, FB, OB) y que slo tienen validez para dicho bloque lgico.
El presente captulo le informa sobre la declaracin y la inicializacin de estos datos.
Apartado
Tema
Pgina
10.1
Resumen
102
10.2
Declaracin de variables
104
10.3
Inicializacin
105
10.4
Declaracin de instancias
107
10.5
Variables estticas
108
10.6
Variables temporales
109
10.7
Parmetros de bloque
1010
10.8
10-12
10-1
10.1 Resumen
Clasificacin de
las variables
Las variables locales pueden clasificarse en las siguientes categoras, como muestra
la tabla 10-1:
Tabla 10-1
Variables locales
Significado
Variables locales
Clasificacin de
los parmetros de
bloque
Variables estticas
Las variables estticas son variables locales cuyo valor se conserva a lo largo de todos los recorridos del bloque (memoria de
bloque). Sirven para guardar valores de un bloque de funcin y se
depositan en el bloque de datos de instancia.
Variables temporales
Las variables temporales se corresponden localmente con un bloque lgico y no ocupan rea de memoria esttica, puesto que se
depositan en la pila de la CPU. Su valor slo se conserva durante
el recorrido de un bloque. A las variables temporales no se puede
acceder fuera del bloque en el que se han declarado las variables.
Los parmetros de bloque son comodines que slo pueden definirse cada vez que se
utiliza de forma concreta (llamada) el bloque. Los comodines existentes en el bloque se denominan parmetros formales, y los valores asignados cuando se llama al
bloque se denominan parmetros actuales. Los parmetros formales de un bloque
pueden considerarse como variables locales.
Los parmetros de bloque pueden clasificarse en las siguientes categoras, como
muestra la tabla 10-2:
Tabla 10-2
Parmetros de bloque
Parmetros de bloque
Marcas OK
(OK flag)
10-2
Significado
Parmetros de entrada
Parmetros de salida
Los parmetros de salida transmiten los valores de salida actuales al bloque invocante.
Pueden escribirse y leerse.
Parmetros de entrada/salida
Cuando se produce una llamada, los parmetros de entrada/salida asumen el valor actual
de una variable, lo procesan y a continuacin
devuelven los resultados a la misma variable.
El compilador SCL ofrece una marca OK que sirve para detectar errores durante la
ejecucin de programas en la CPU. Es una variable local de tipo BOOL con el
nombre predefinido OK.
Como muestra la tabla 10-3, cada categora de variables locales o parmetros tiene
asignado un bloque de declaracin propio, identificado por su propia pareja de palabras clave.
Cada bloque contiene las declaraciones que estn permitidas para dicho bloque de
declaracin. Slo puede presentarse una vez en la tabla de declaracin del bloque, y
los bloques pueden tener un orden cualquiera.
En la tabla 10-3, los bloques de declaracin permitidos en un bloque estn marcados
con una x.
Tabla 10-3
Datos
FB
FC
Variable esttica
VAR
:
END_VAR
X1)
Variable temporal
VAR_TEMP
:
END_VAR
VAR_INPUT
:
END_VAR
VAR_OUTPUT
:
END_VAR
Parmetro de salida
VAR_IN_OUT
Parmetro de entrada/salida :
END_VAR
OB
Inicializacin
Categora de datos
Variables estticas
posible
Variables temporales
no posible
Parmetros de bloque
10-3
Resumen
1)
Especificacin
de tipo de datos
Inicializacin
de tipo de datos
EL IDENTIFICADOR
es un nombre de
variable, de
parmetro o de
componente
1) Atribotos del sistema para parmetros
CONJUNTO: STRUCT
ARRAY_MEDICION:ARRAY[1..20] OF REAL;
INTERRUPTOR:BOOL;
END_STRUCT
Especificacin de
tipo de datos
Estn permitidos todos los tipos de datos que se han tratado en el captulo 9.
Nota
Las palabras reservadas que slo tienen validez en SCL puede declararlas como
identificadores anteponindoles el carcter # (p.ej., #FOR). Esto puede ser til
cuando desee transferir parmetros actuales a bloques que han sido creados en otro
lenguaje (p.ej., AWL).
10-4
10.3 Inicializacin
Principio
Constante
Lista de inicializacin
de array
:=
Figura 10-2
Sintaxis: Inicializacin
Ejemplo:
VALOR
:REAL
:= 20.25;
Tenga en cuenta que no es posible inicializar una lista de variables (A1, A2,
A3,...:INT:=...). En este caso debe inicializar las variables independientemente. Pueden predefinirse valores iniciales para los arrays de acuerdo con la figura 10-3.
Constante
Secuencia de
cifras decimales
)
Lista de inicializacin de array
Factor de repeticin
Figura 10-3
ARRAY :
Valor
10-5
Ejemplos
10-1
736
-83
77
-1289
10362
385
60
-37
-7
103
60
60
60
60
VAR
REGULADOR:
ARRAY [1..4, 1..4] OF INT:= -54, 736, -83, 77,
-1289, 10362, 385, 2,
60, -37, -7, 103,
4(60);
END_VAR
Ejemplo
10-2
Inicializacin de array
10-6
10-3
Inicializacin de estructura
Resumen
Adems de las variables de tipo de datos simples, compuestos o de usuario ya conocidas, en la tabla de declaracin de bloques de funcin puede declarar tambin
variables del tipo FB o SFB. Estas variables se denominan instancias locales del FB
o del SFB.
Los datos de instancia locales se guardan en el bloque de datos de instancia del bloque de funcin invocante.
Declaracin de instancia
IDENTIFICADOR
Identificacin
de SFB
Figura 10-4
: Motor ;
Direccin
Tipo de dato
MOTOR
FB20
FB20
Figura 10-5
Inicializacin
10-7
Resumen
Una variable esttica es una variable local cuyo valor se mantiene a lo largo de todos los recorridos del bloque (memoria de bloque). Sirve para guardar valores de un
bloque de funcin. Las variables se guardan en el bloque de datos de instancia de
su bloque de funcin.
Bloque de variables estticas
Declaracin
de variable
END_VAR
VAR
Declaracin
de instancia
Figura 10-6
Bloque de declaracin
VAR
END_VAR
:INT;
:ARRAY[1..10] OF REAL;
:BOOL;
:FB100;
//Declaracin de instancia
END_VAR
Ejemplo
Acceso
10-4
S Acceso desde el interior: es decir, en el rea de instrucciones del bloque de funcin en cuya tabla de declaracin se ha declarado la variable. Este acceso se ha
explicado en el captulo 14 Asignacin de valores.
10-8
Resumen
Declaracin
de variable
VAR_TEMP
END_VAR
No es posible inicializacin
Figura 10-7
Bloque de declaracin
VAR_TEMP
END_VAR
Ejemplo
VAR_TEMP
BUFER_1
AYUDA1,AYUDA2
END_VAR
Ejemplo
Acceso
10-5
10-9
S Los parmetros formales de entrada/salida tienen tambin la funcin de un parmetro de entrada y de un parmetro de salida.
En el captulo 16 obtendr ms informacin sobre el uso de parmetros y el intercambio de informacin entre los bloques.
Bloque de parmetros
VAR_INPUT
Declaracin
de variables
VAR_OUTPUT
END_VAR
VAR_IN_OUT
La inicializacin slo es posible para VAR_INPUT y VAR_OUTPUT.
Figura 10-8
Bloque de declaracin
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
10-10
Ejemplo
VAR_INPUT
REGULADOR
HORA_DEL_DIA
END_VAR
//Parmetro de entrada
:DWORD;
:TIME_OF_DAY;
VAR_OUTPUT
//Parmetro de salida
VALORES_TEORICOS: ARRAY [1..10] OF INT;
END_VAR
VAR_IN_OUT
AJUSTE: INT;
END_VAR
Ejemplo
Acceso
10-6
//Parmetro de entrada/salida
10-11
Descripcin
Declaracin
Ejemplo
Ejemplo
10-12
10-7
Utilizacin de la marca OK
11
Declaracin de constantes
y metas de salto
Resumen
Las constantes son datos que poseen un valor fijo y que no puede cambiarse durante
el tiempo de ejecucin del programa. Cuando el valor de las constantes se expresa
mediante su escritura, se habla de constantes literales.
Las constantes no necesitan ninguna declaracin de variables. Sin embargo, puede
adjudicar nombres simblicos a las constantes mediante el bloque de declaracin.
Las metas de salto representan los nombres de las metas del salto dentro del rea de
instrucciones del bloque lgico.
Tanto los nombres simblicos de las constantes como las metas de salto se declaran
por separado en sus propios bloques de declaracin.
Apartado
Tema
Pgina
11.1
Constantes
11-2
11.2
Literales
11-3
11.3
11-4
11.4
11-7
11.5
11-10
11.6
Metas de salto
11-14
11-1
11.1 Constantes
Utilizacin de
constantes
Declaracin de
nombres simblicos
CONST
IDENTIFICADOR
:=
Expresin
simple
END_CONST
Nombre de constante
Figura 11-1
En este caso la expresin simple representa expresiones aritmticas en las que puede
utilizar las operaciones bsicas +, -, *, /, DIV y MOD.
Ejemplo
Escrituras
11-2
11-1
:=
:=
:=
:=
:=
10 ;
TIME#1D_1H_10M_22S.2MS ;
SIEMENS ;
2 * 5 + 10 * 4 ;
3 + NUMERO2 ;
11.2 Literales
Definicin
El literal es una escritura formal para definir el valor y el tipo de una constante.
Existen los siguientes grupos de literales:
S literal numrico
S literal de carcter
S indicacin de tiempos.
Dependiendo del tipo de datos y del formato existe una determinada forma de escritura para el valor de una constante:
15
VALOR_15
2#1111
VALOR_15
16#F
VALOR_15
11-3
Resumen
INT:
40
REAL:
2000
3000.40
20.00
El nmero decimal dentro de literales est formado por una secuencia de cifras que
opcionalmente pueden separarse mediante guiones inferiores. Los guiones inferiores
ayudan para mejorar la legibilidad cuando los nmeros son grandes.
Secuencia de cifras decimales
Cifra
Guin inferior
Figura 11-3
Los siguientes ejemplos son escrituras permitidas para las secuencias de cifras decimales dentro de literales:
1000
1_120_200
666_999_400_311
11-4
Literales enteros
Los literales enteros son valores numricos enteros. En el programa SCL pueden
asignarse a estos literales, dependiendo de su longitud, variables de los tipos de datos:
BOOL, BYTE, INT, DINT, WORD, DWORD
La figura 11-4 muestra la sintaxis de un literal entero:
LITERAL ENTERO
+
Secuencia de
cifras decimales
1)
1)
slo con los tipos de datos
INT y DINT
Figura 11-4
Los siguientes ejemplos son escrituras permitidas para la secuencia de cifras decimales dentro de literales enteros:
1000
+1_120_200
-666_999_400_311
Valores binarios/
en base ocho/
hexadecimales
Un literal entero puede expresarse en otro sistema de numeracin diferente del decimal; esto puede hacerse anteponiendo los prefijos 2#, 8# 16# seguidos del nmero,
expresado en el sistema correspondiente. El guin inferior puede insertarse opcionalmente entre las cifras para mejorar la legibilidad de los nmeros grandes.
La escritura general de un literal entero se explica en la figura 11-5 con el ejemplo
de una secuencia de cifras para un nmero en base ocho:
Secuencia de cifras en base ocho
8#
Figura 11-5
Guin inferior
11-5
Los literales numricos reales son valores con decimales. Pueden asignarse variables
con tipo de dato REAL. La indicacin del signo es opcional. Si no se indica ningn
signo el nmero se considera positivo. La figura 11-6 muestra la sintaxis de un
nmero real:
LITERAL NUMERICO REAL
Secuencia de
cifras decimales
Secuencia de
cifras decimales
Figura 11-6
Secuencia de
cifras decimales
Secuencia de
cifras decimales
Exponente
+
Secuencia de
cifras decimales
Figura 11-7
Sintaxis: Exponente
Ejemplo:
En SCL la magnitud 3 x 10 10 puede representarse por los siguientes nmeros reales:
Ejemplos
3.0E+10
3.0E10
3e+10
3E10
0.3E+11
0.3e11
30.0E+9
30e9
El ejemplo final que viene a continuacin resume una vez ms todas las posibilidades:
// Literales enteros
NUMERO1:= 10 ;
NUMERO2:= 2#1010 ;
NUMERO3:= 16#1A2B ;
// Literales numricos reales
NUMERO4:= -3.4 ;
NUMERO5:= 4e2 ;
NUMERO6:= 40_123E10;
Ejemplo
11-6
11-2
Literales numricos
Literal de carcter
(carcter individual)
El literal de carcter tiene exactamente un carcter (v. fig. 11-8). El carcter est encerrado entre apstrofos ().
LITERAL DE CARACTER
Figura 11-8
Carcter
Ejemplo:
CARACTER_1 := B;
Literal de cadena
(string)
// Carcter B
Figura 11-9
Carcter
Interrupcin
de cadena
Carcter
7500 Karlsruhe
270323456
11-7
La asignacin de valor:
TEXT:STRING[20]:=SIEMENS KARLSRUHE Rheinbrckenstr.
provoca un mensaje de error, y en la variable TEXT se deposita:
SIEMENS KARLSRUHE Rh
Los signos de formateado especiales, el apstrofo () o un smbolo $ puede
introducirlos con el smbolo de escape $. Puede interrumpir y continuar varias
veces un literal string.
Blanco (blank),
Salto de lnea (linefeed)
Retorno de carro (carriage return)
Salto de pgina (formfeed, page)
Tabulador horizontal (tabulator)
$>
$<
Comentario
Figura 11-10
Caracteres imprimibles
Carcter
imprimible
Smbolo de escape $
Carcter de sustitucin
$o
Carcter de control
PoLoRoT
Cifra
hexadecimal
Figura 11-11
11-8
Cifra
hexadecimal
Sintaxis: Caracteres
Caracteres no imprimibles
En un literal de carcter o de string puede introducir caracteres no imprimibles incluidos en el juego de caracteres ampliado completo de ASCII. Para ello debe
introducirlos en su representacin en cdigo hexadecimal.
Introduzca un carcter ASCII mediante $hh, donde hh representa el valor del
carcter ASCII expresado en el sistema hexadecimal.
Ejemplo:
CARACTER_A
Blan#co
Ejemplos
11-3
Literales de carcter
11-9
Escritura de tipos
de temporizador
SCL ofrece diferentes formatos para introducir valores de hora y de fecha. Son posibles las siguientes indicaciones de tiempo:
Fecha
Tiempo
Hora del da
Fecha y hora
Fecha
Una fecha est precedida por el prefijo DATE# o D# (v. fig. 11-12).
FECHA
FECHA#
Indicacin de fecha
D#
Figura 11-12
Sintaxis: Fecha
Secuencia de
cifras decimales
Ao
Figura 11-13
Mes
Secuencia de
cifras decimales
Da
11-10
Tiempo
S Representacin decimal
S Representacin escalonada.
TIEMPO
TIME#
Representacin decimal
T#
Representacin escalonada
Representacin decimal
- Cada unidad de tiempo (p.ej.: horas, minutos) slo puede indicarse una vez.
- Debe respetarse la secuencia: das, horas, minutos, segundos, milisegundos.
Figura 11-14
Sintaxis: Tiempo
Utilice la representacin decimal cuando tenga que expresar su tiempo alternativamente en das, horas, minutos, segundos o milisegundos:
Representacin decimal
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Das
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Horas
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Segundos
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
MS
Milisegundos
Minutos
El acceso a la representacin decimal slo es posible con unidades de tiempo no definidas todava.
Figura 11-15
Ejemplos
para 20,5
TIME#45.12M
T#300MS
das
11-11
Utilice la representacin escalonada cuando tenga que indicar su tiempo como una
secuencia de das, horas, minutos, segundos o milisegundos. Est permitido omitir
componentes individuales (v. fig. 11-16). Pero como mnimo debe indicarse un componente.
Representacin escalonada
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Das
SECUENCIA DE
CIFRAS DECIMALES
Horas
SECUENCIA DE
CIFRAS DECIMALES
Minutos
SECUENCIA DE
CIFRAS DECIMALES
Segundos
MS
Milisegundos
Figura 11-16
11-12
Hora del da
Como indica la figura 11-17, una hora del da se inicia con el prefijo
TIME_OF_DAY# o TOD#.
HORA DEL DIA
TIME_OF_DAY#
Indicacin de hora del da
TOD#
Figura 11-17
Para la indicacin de la hora del da se declaran las horas, minutos y segundos separados por dos puntos. La indicacin de los milisegundos es opcional. En caso de
utilizarse, se separa de los dems datos mediante un punto. La figura 11-18 muestra
la sintaxis de indicacin de hora del da:
Indicacin de hora del da
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Indicacin de horas
Indicacin de minutos
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Indicacin de segundos
Figura 11-18
Indicacin de milisegundos
DT#
Figura 11-19
11-13
Descripcin
Las metas de salto (labels) sirven para definir la meta de una instruccin GOTO
(v. apt. 11.4).
Descripcin de
metas de salto
Las metas de salto se declaran en la tabla de declaracin de un bloque lgico utilizando su nombre simblico (v. apt. 8.4):
Bloque de metas de salto
IDENTIFICADOR
LABEL
END_LABEL
Meta de salto
,
Figura 11-20
Ejemplo
LABEL
MARCA1, MARCA2, MARCA3;
END_LABEL;
Ejemplo
11-14
11-4
Metas de salto
12
Resumen
Los datos globales son datos que pueden utilizarse desde cualquier bloque lgico
(FC, FB, OB). A estos datos puede tenerse acceso absoluto o simblico. En este
captulo vamos a presentarle cada una de las reas de datos, describiendo cmo
puede acceder a estos datos.
Apartado
Tema
Pgina
12.1
Resumen
122
12.2
123
12.3
124
12.4
126
12.5
127
12.6
128
12.7
129
12.8
1211
12.9
1212
12-1
12.1 Resumen
Datos globales
Tipos de acceso
absoluto
simblico
indizado
estructurado
no
Tipo de acceso
12-2
Las reas de memoria de la CPU son reas declaradas por el sistema. Por ello, no es
necesario que declare en su bloque lgico estas reas.
Diferentes reas
de memoria
Cada CPU pone a su disposicin las siguientes reas de memoria con su propio espacio de direccionamiento:
Direccin
Acceso absoluto
IDENTIFICADOR
Acceso simblico
SIMBOLO
Indice
Expresin
bsica
Figura 12-1
12-3
Principio
El identificador absoluto remite a un rea de memoria dentro de la CPU. Puede especificar este rea indicando el identificador de operando (en este caso EB) seguido
de la direccin (en este caso 10).
Identificador absoluto
E B 10
Prefijo de memoria
Direccin
Identificador de operando
Identificador de
operando
Prefijo de memoria
Prefijo de
tamao
I
Q
Entrada
Salida
Marca
PE
PI
Entrada de periferia
PA
PQ
Salida de periferia
Figura 12-3
1)
Dependiendo del lenguaje seleccionado (ajuste del compilador), los identificadores de operando en alemn, o en
cdigo internacional tienen un significado reservado.
12-4
Prefijo de tamao
Al introducir el prefijo de tamao especifica el tamao o el tipo del rea de memoria que debe leerse desde la periferia; p.ej., un byte o una palabra. La especificacin
del prefijo de tamao es opcional si est especificando un byte. La figura 12-4
muestra la sintaxis:
Prefijo de tamao
Figura 12-4
Direccin
Bit
Byte
Palabra
Doble palabra
Nmero
Slo con direcciones de bit
Figura 12-5
Ejemplos
Sintaxis: Direccin
BYTE_ESTADO
ESTADO3
Valor_medido
Ejemplo
12-1
:= EB10;
:= E1.1;
:= EW20;
Acceso absoluto
12-5
Principio
Operando
Tipo de dato
Comentario
Contacto_motor
E 1.7
BOOL
Contactor 1 para
Motor A 1
Entrada
EW 10
INT
Byte_entrada1
EB 1
BYTE
Byte de entrada
Entrada 1.1
E 1.1
BOOL
Barrera ptica
Canales_medicion
MW 2
WORD
Bfer de valores
de medida
MD4
REAL
Bfer
Acceso
Se realiza, por ejemplo, mediante una asignacin de valor a una variable del mismo
tipo, utilizando los smbolos declarados.
VALOR_MEDIDO1
:= Contacto_motor;
:= %MD4;
Ejemplos
BYTE_ESTADO
ESTADO3
Valor_medido
Ejemplo
12-6
12-2
:= Byte de entrada;
:= Entrada 1.1;
:= Canales de medicin;
Acceso simblico
Principio
Tambin tiene la posibilidad de acceder a reas de memoria de una CPU con acceso
indizado. Con respecto al acceso absoluto, tiene la ventaja de que puede direccionar
dinmicamente los accesos utilizando ndices variables. Por ejemplo, puede utilizar
la variable en ejecucin de un bucle FOR para el indizado.
El acceso indizado a un rea de memoria se realiza de forma similar al acceso absoluto. Slo se diferencia en la forma de especificar la direccin. En lugar de la direccin se especifica un ndice que puede ser una constante, una variable o una expresin aritmtica.
Identificador
absoluto
En el acceso indizado el identificador absoluto se compone del identificador de operando (v. apt. 12.3) y de una expresin bsica para el indizado.
Prefijo de tamao
Prefijo de memoria
E X [i,j]
Direccin
Expresin bsica para ndice,
encerrada entre corchetes.
Identificador de operando
Reglas para el
acceso indizado
S En un acceso a tipo de dato BYTE, WORD o DWORD, debe utilizar exactamente un ndice. El ndice se interpreta como la direccin del byte. La anchura
del acceso viene determinada por el prefijo de tamao.
S En un acceso con tipo de datos BOOL debe utilizar dos ndices. El primer ndice
especifica la direccin del byte, y el segundo ndice la posicin del bit dentro del
byte.
S Cada ndice debe ser una expresin aritmtica del tipo de dato INT.
VALOR_MEDIDO1
:= EW[CONTADOR];
MARCA_SALIDA
:= E[NUM_BYTE, NUM_BIT];
Ejemplo
12-3
Acceso indizado
12-7
Resumen
Dentro de los bloques de datos puede guardar y procesar para su aplicacin todos los
datos cuyo rango de validez se aplica a todo el programa o a todo el proyecto. Todos
los bloques lgicos pueden acceder a ellos con derecho a lectura o escritura.
Declaracin
En el captulo 8 puede consultar la sintaxis para la estructura de los bloques de datos. Debe distinguir entre los dos tipos de bloques de datos siguientes:
S bloques de datos,
S bloques de datos de instancia.
Acceso a bloques
de datos
A los datos de un bloque de datos cualquiera puede accederse siempre de las formas
siguientes:
Identificador de operando
Acceso indizado a DB
Identificador de operando
Indice
[
Expresin
bsica
Acceso estructurado a DB
Identificador de DB
Variable
simple
Variable
simple
Acceso simblico a DB
Smbolo para DB
Figura 12-6
12-8
Principio
Al igual que el acceso a las reas de memoria de la CPU, el acceso absoluto se realiza asignando un valor a una variable del mismo tipo. Despus de especificar el
identificador de DB sigue la palabra clave D junto con especificacin del prefijo
de tamao (p.ej.: W para WORD) y la direccin del byte (p.ej.: 13.1).
ESTADO_5:= DB11.DX13.1;
Direccin
Prefijo de tamao
Identificador de DB
Variable del mismo tipo
Acceso
Figura 12-7
Prefijo de tamao
Prefijo de
tamao
Direccin
Indica la longitud del rea de memoria dentro del bloque de datos al que debe accederse (p.ej.: un byte o una palabra). La especificacin del prefijo de tamao es
opcional si desea especificar un bit. La figura 12-8 muestra la sintaxis para el prefijo
de tamao.
Prefijo de tamao
X
Bit
Byte
Palabra
Doble palabra
Figura 12-8
12-9
Direccin
Para especificar la direccin conforme a la figura 12-9, indique una direccin absoluta cuyo destino sea un bit, un byte, una palabra o una doble palabra, dependiendo
del prefijo de tamao que haya utilizado. Slo en el caso de que haya especificado
bit puede indicar una direccin de bit complementaria. El primer nmero significa
la direccin del byte, y el segundo la direccin del bit.
Direccin
Nmero
Nmero
slo con direccin de bit
Figura 12-9
Ejemplos
BYTE_ESTADO
ESTADO_3
Valor_medido
:= DB101.DB10;
:= DB30.D1.1;
:= DB25.DW20;
BYTE_ESTADO
ESTADO_3
Valor_medido
:= Datos de estado.DB10;
:= Datos nuevos.D1.1;
:= Datos medidos.DW20;
ESTADO_1
:= WORD_TO_BLOCK_DB(INDICE).DW10;
Ejemplo
12-10
Sintaxis: Direccin
12-4
Acceso absoluto
Acceso indizado
Tambin tiene la posibilidad de acceder a bloques de datos globales de forma indizada. Frente al direccionamiento absoluto tiene la ventaja de que puede efectuar un
direccionamiento dinmico utilizando ndices variables. Por ejemplo, puede utilizar
la variable en ejecucin de un bucle FOR para el indizado.
El acceso indizado a un bloque de datos se realiza de forma similar al acceso absoluto. Slo se diferencia en la forma de especificar la direccin.
En lugar de la direccin se especifica un ndice que puede ser una constante, una
variable o una expresin aritmtica.
Identificador
absoluto
En el acceso indizado el identificador absoluto se compone del identificador de operando (v. apt. 12.7) y de una expresin bsica para el indizado.
Prefijo de tamao
Identif_de_DB
Prefijo de memoria
D X [i,j]
Direccin
Expresin bsica para ndice,
encerrada entre corchetes.
Identificador de operando
Reglas para el
acceso indizado
S Cada ndice debe ser una expresin aritmtica del tipo de dato INT.
S En un acceso a tipo de dato BYTE, WORD o DWORD, debe utilizar exactamente un
ndice. El ndice se interpreta como la direccin del byte. La anchura del acceso
viene determinada por el prefijo de tamao.
S En un acceso con tipo de dato BOOL debe utilizar dos ndices. El primer ndice
especifica la direccin del byte, y el segundo ndice la posicin del bit dentro del
byte.
ESTADO_1:= DB11.DW[CONTADOR];
ESTADO_2:= DB12.DX[WNR, NUM_BIT];
ESTADO_1:= Base de datos1.DW[CONTADOR];
ESTADO_2:= Base de datos2.DX[WNR, NUM_BIT];
ESTADO_1:= WORD_TO_BLOCK_DB(INDICE).DW[CONTADOR];
Ejemplo
12-5
Acceso indizado
12-11
Principio
El acceso estructurado se realiza asignando valores a una variable del mismo tipo.
TIME_1:= DB11.HORA_DEL_DIA ;
Variable simple
Identificacin de DB
Variable del mismo tipo
12-6
Bloque de funcin
..
FB10.DB10();
PAL_RES_A
:=
PAL_RES_B
:=
PAL_RES_C
:=
Ejemplo
12-12
12-7
DB10.Resultado.RES2;
DB20.RES2;
DB30.RES2;
Resumen
13
S expresiones aritmticas
S expresiones de potencias
S expresiones de comparacin
S expresiones lgicas
Indice del captulo
Apartado
Tema
Pgina
13.1
Operadores
13-2
13.2
Sintaxis de expresiones
13-3
13.2.1
Operandos
13-5
13.3
Expresiones aritmticas
13-7
13.4
Expresin de potencias
13.5
Expresiones de comparacin
13-10
13.6
Expresiones lgicas
13-12
13-9
13-1
13.1 Operadores
Resumen
Las expresiones estn formadas por operadores y operandos. La mayora de los operadores de SCL relacionan dos operandos y, por lo tanto, se denominan binarios.
Los restantes trabajan con un solo operando, y por ello se llaman unarios.
Los operadores binarios se escriben entre los operandos (p.ej., A+B). Un operador
unario se sita siempre inmediatamente delante del operando (p.ej., -B).
La prioridad entre los operadores que se muestra en la tabla 13-1 regula el orden de
clculo. En la tabla la cifra 1 corresponde a la mxima prioridad.
Tabla 13-1
Clases de
operadores
Resumen de operadores
Operador
Clase
Representacin
Prioridad
:=
11
**
Multiplicacin
Funcin de mdulo
MOD
DIV
Adicin
Sustraccin
Menor que
<
Mayor que
>
M
Menor
o igual
i l que
<=
>=
Igualdad
Desigualdad
<>
Operadores
Negacin (unaria)
NOT
lgicos
AND o &
O exclusiva
XOR
OR
10
Parntesis
( Expresin )
Operadores
Potencia
aritmticos
Operadores unarios
Ms unario
Operadores de
comparacin
Estos operadores se necesitan para poder formular
condiciones.
13-2
( )
Resumen
Expresin
Expresin
Operador de
comparacin
Operador aritmtico bsico
Potencia
Expresin
Ms unario
Menos unario
NOT
Negacin
(
Figura 13-1
Resultado de una
expresin
Exponente
**
Expresin
Expresin
Sintaxis: Expresin
Orden de
valoracin
13-3
Reglas
S La colocacin de parejas de parntesis puede anular la prioridad de los operadores; es decir, la colocacin de parntesis tiene prioridad mxima.
S Las expresiones dentro de parntesis se consideran operadores nicos y se valoran siempre en primer lugar.
Ejemplos
// Operando
A1 AND (A2)
// Expresin lgica
// Expresin de comparacin
3+3*4/2
// Expresin aritmtica
VALOR_MEDIDO**2
// Expresin de potencia
13-4
13-1
// Expresin de potencia
Expresiones diversas
13.2.1
Operandos
Resumen
Los operandos son objetos que permiten formar expresiones. Los operandos pueden
representarse por el diagrama sintctico de la figura 13-2.
Operando
Constante
Variable ampliada
( Expresin )
NOT
Figura 13-2
Constantes
Operando
Sintaxis: Operando
Nombre de constante
Figura 13-3
Sintaxis: Constante
13-5
Variables
ampliadas
La variable ampliada es un concepto genrico que engloba a una serie variables que
se tratarn con ms exactitud en el captulo 14.
Variable ampliada
Variable simple
Variable absoluta
para reas de memoria de la CPU
Variable en DB
Figura 13-4
VALOR_TEORICO
EW10
E100.5
DB100.DW[INDICE]
MOTOR.NUM_REV
SQR(20)
FC192(VALOR_TEORICO)
Ejemplo
13-2
Variable simple
Variable absoluta
Variable absoluta
Variable en DB
Variable en instancia local
Funcin estndar
Llamada a funcin
Nota
En una llamada a funcin el resultado calculado (valor de respuesta) se inserta en la
expresin en lugar del nombre de la funcin. Por esta razn no estn permitidos en
una expresin las funciones VOID actuando como operandos, puesto que no tienen
valor de respuesta.
13-6
Expresiones aritmticas son expresiones formadas con operadores aritmticos. Dichas expresiones permiten el procesamiento de tipos de datos numricos.
Operador aritmtico bsico
*
Figura 13-5
Operaciones
aritmticas
MOD
DIV
La tabla 13-2 resume las posibles operaciones y muestra el tipo que debe asignarse
al resultado en funcin de los operandos.
Se utilizan las abreviaturas
para los tipos de datos
para los tipos de datos
ANY_INT
ANY_NUM
Tabla 13-2
INT, DINT
ANY_INT y REAL
Operadores aritmticos
Operacin
Operador
Potencia
**
ANY_NUM
INT
Ms unario
ANY_NUM
TIME
ANY_NUM
Menos unario
Multiplicacin
Divisin
TIME
Prioridad
REAL
ANY_NUM
TIME
ANY_NUM
TIME
3
4
ANY_NUM
ANY_NUM
ANY_NUM
TIME
ANY_INT
TIME
ANY_NUM
ANY_NUM
ANY_NUM
TIME
ANY_INT
TIME
ANY_INT
ANY_INT
ANY_INT
TIME
ANY_INT
TIME
MOD
ANY_INT
ANY_INT
ANY_INT
ANY_NUM
ANY_NUM
ANY_NUM
TIME
TIME
TIME
TOD
TIME
TOD
DT
TIME
DT
ANY_NUM
ANY_NUM
ANY_NUM
TIME
TIME
TIME
TOD
TIME
TOD
DATE
DATE
TIME
TOD
TOD
TIME
DT
TIME
DT
DT
DT
TIME
DIV
Adicin
Sustracin
4
4
1) Tenga en cuenta que el tipo correspondiente al resultado viene determinado por el tipo del
13-7
Reglas
S Para facilitar la lectura de los parntesis se recomienda poner los signos de los
nmeros negativos incluso donde no sea necesario.
S En divisiones con dos operandos enteros del tipo de datos INT, los operadores
DIV y / arrojan el mismo resultado (vase ejemplo 13-3).
S Los operadores de divisin (/, MOD y DIV) exigen que el segundo operando
sea distinto de cero.
S Cuando un operando es del tipo INT (entero) y otro del tipo REAL (nmero de
coma flotante), el resultado siempre ser del tipo REAL.
Ejemplos
Expresin
i + j
i j
i * j
i DIV j
i MOD j
i/j
Ejemplo
13-3
Valor
8
14
33
3
2
3
Expresiones aritmticas
Supongamos que i y j son variables enteras cuyos valores son 3 o -5. Entonces,
segn el ejemplo 13-4, el resultado de la expresin aritmtica (el valor entero 7) se
asignar a la variable VALOR.
Ejemplo
13-8
13-4
Expresin aritmtica
13.4 Exponentes
Resumen
La figura 13-6 pretende ilustrar la formacin del exponente en una expresin de potencia (ver apt. 13.2). Tenga en cuenta que el exponente, como caso especial, tambin puede formarse con variables ampliadas.
Exponente
Variable ampliada
Figura 13-6
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Sintaxis: Exponente
VALOR_MEDIDO**2
// Expresin de potencia
(DIFERENCIA)**DB10.EXPONENTE
(SUMA)**FC100(..)
Ejemplo
13-5
// Expresin de potencia
// Expresin de potencia
13-9
Definicin
Una expresin de comparacin es una expresin de tipo BOOL formada con operadores de comparacin. Estas expresiones se forman combinando operadores del
mismo tipo (de cualquier tipo, excepto las lgicas) con los operadores relacionados
en la figura 13-7.
Operador de comparacin
<
Figura 13-7
Operaciones de
comparacin
>
<=
>=
<>
Los operadores de comparacin comparan sus dos operandos con su valor numrico.
1 Operando Operador 2 Operando Valor booleano
Como resultado se obtiene un valor que puede ser verdadero o falso. El valor es
verdadero (TRUE) en caso de que la comparacin se cumpla; y falso (FALSE)
cuando no se cumple.
Reglas
S Para evitar falta de claridad en el orden en que deben efectuarse las operaciones
lgicas, los operandos lgicos deben estar encerrados entre parntesis.
13-10
Ejemplos
Ejemplo
13-6
Expresiones lgicas
13-11
Una expresin lgica es una expresin formada con operadores lgicos. Los operadores lgicos (AND,&,XOR,OR) pueden enlazar operandos lgicos (tipo BOOL) o
variables del tipo de dato BYTE, WORD o DWORD, para formar expresiones lgicas.
Para negar el valor de un operando lgico (es decir, invertirlo) se utiliza el operador
NOT.
AND
Figura 13-8
Operaciones
lgicas
XOR
OR
La tabla 13-3 ofrece informacin sobre las expresiones lgicas disponibles y los
tipos de datos para los resultados y operandos. Se utilizan las abreviaturas:
para los tipos de datos
ANY_BIT
Tabla 13-3
Operadores lgicos
Operador
Primer
operando
Segundo
operando
Resultado
Prioridad
Negacin
NOT
ANY_BIT
ANY_BIT
Conjuncin
AND
ANY_BIT
ANY_BIT
ANY_BIT
Disyuncin exclusiva
XOR
ANY_BIT
ANY_BIT
ANY_BIT
Disyuncin
OR
ANY_BIT
ANY_BIT
ANY_BIT
10
Operacin
Resultados
&
13-12
Ejemplos
Expresin
(
(
(
(
(
(
Ejemplo
n>0 )
n>0 )
n>0 )
n>0 )
n=10 )
n<>5 )
13-7
Valor
AND
AND
OR
XOR
AND
OR
(
(
(
(
(
(
n<20)
n<5 )
n<5 )
n<20)
s=A)
s>=A)
verdadero
falso
verdadero
falso
verdadero
verdadero
Expresiones lgicas
13-13
13-14
14
Asignacin de valores
Resumen
Informacin
adicional
Una asignacin de valor sirve para asignar a una variable el valor de una expresin,
sobreescribindose el valor anterior.
Apartado
Tema
Pgina
14.1
Resumen
14-2
14.2
14-3
14.3
14-4
14.4
14-6
14.5
14-8
14.6
14-9
14.7
14-10
14.8
14-11
En SCL existen instrucciones simples y estructuradas. Entre las instrucciones simples se encuentran la asignacin de valor, la instruccin de llamada y la instruccin
GOTO (Ir a). Ms informacin al respecto encontrar en los captulos 15 y 16.
Las instrucciones de control para una ramificacin del programa y para un procesamiento de bucles se cuentan entre las instrucciones estructuradas. Encontrar explicaciones en el captulo 15.
14-1
Asignacin de valores
14.1 Resumen
Principio
Asignacin de valor
:=
Variable simple
Expresin
Variable absoluta
en reas de memoria de la CPU
Variable en DB
Figura 14-1
Resultado
14-2
Asignacin de valores
Toda expresin y toda variable de tipo de datos simple puede asignarse a otra variable del mismo tipo.
Identificador: = Expresin;
Identificador: = Variable de tipo de datos simple;
Ejemplos
FUNCTION_BLOCK FB10
VAR
INTERRUPTOR_1
:
INTERRUPTOR_2
:
VALOR_TEORICO_1 :
VALOR_TEORICO_2 :
CONSULTA_1
:
TIEMPO_1
:
TIEMPO_2
:
FECHA_1
:
HORA_DEL_DIA_1 :
END_VAR
INT;
INT;
REAL;
REAL;
BOOL;
S5TIME;
TIME;
DATE;
TIME_OF_DAY;
BEGIN
// Asignacin de una constante a una variable
INTERRUPTOR_1
:= -17;
VALOR_TEORICO_1 := 100.1;
CONSULTA_1
:= TRUE;
TIEMPO_1
:= TIME#1H_20M_10S_30MS;
TIEMPO_2
:= TIME#2D_1H_20M_10S_30MS;
FECHA_1
:= DATE#19960110;
// Asignacin de una variable
VALOR_TEORICO_1 := VALOR_TEORICO_2;
INTERRUPTOR_2_ := INTERRUPTOR_1;
// Asignacin de una expresin a una variable
INTERRUPTOR_2 := INTERRUPTOR_1 * 3;
END_FUNCTION_BLOCK
Ejemplo
14-1
14-3
Asignacin de valores
Las variables del tipo STRUCT o UDT son variables estructuradas que representan
o una estructura completa o un componente de dicha estructura.
Son especificaciones vlidas de una variable estructurada las siguientes:
Imagen
//Identificador de una estructura
Imagen.elemento //Identificador de un componente
//de estructura
Imagen.array
//Identificador de un array simple
//dentro de una estructura
Imagen.array[2,5]//Identificador de un componente de
//array dentro de una estructura
Asignacin de
una estructura
completa
Una estructura completa slo puede asignarse a otra estructura cuando coincide
tanto los componentes de las estructuras como sus tipos de datos y sus nombres. Una
asignacin vlida es la siguiente:
nom_estruct_1:=nom_estruct_2;
Asignacin de
componentes de
estructuras
A cualquier componente de estructura puede asignar una variable de tipo compatible, una expresin de tipo compatible u otro componente de estructura. Son asignaciones vlidas las siguientes:
nom_estruct_1.elemento1 := Valor;
nom_estruct_1.elemento1 := 20.0;
nom_estruct_1.elemento1 := nom_estruct_2.elemento1;
nom_estruct_1.nom_array1 := nom_estruct_2.nom_array1;
nom_estruct_1.nom_array[10]:= 100;
14-4
Asignacin de valores
Ejemplos
Con ayuda de los siguientes ejemplos vamos a ilustrar las asignaciones de valor para
datos de estructuras:
FUNCTION_BLOCK FB10
VAR
VAR_AUX
:REAL;
VALOR_MEDIDO :STRUCT //Estructura de destino
TENSION
:REAL;
RESISTENCIA :REAL;
Array simple:ARRAY[1..2,1..2] OF INT;
END_STRUCT;
VALOR_REAL :STRUCT //Estructura fuente
TENSION
:REAL;
RESISTENCIA :REAL;
Array simple:ARRAY[1..2,1..2] OF INT;
END_STRUCT;
END_VAR
BEGIN
//Asignacin de una estructura completa a una
//estructura completa
VALOR_MEDIDO:= VALOR_REAL;
//Asignacin de un componente de estructura a un
//componente de estructura
VALOR_MEDIDO.TENSION:= VALOR_REAL.TENSION;
// Asignacin de un componente de estructura a
// una variable del mismo tipo
VAR_AUX:= VALOR_REAL.RESISTENCIA;
// Asignacin de una constante a un componente
// de estructura
VALOR_MEDIDO.RESISTENCIA:= 4.5;
// Asignacin de una constante a un
// ARRAY simple
VALOR_MEDIDO.ARRAY_SIMPLE[1,2]:= 4;
END_FUNCTION_BLOCK
Ejemplo
14-2
14-5
Asignacin de valores
Variable ARRAY
Un array consta de un nmero de dimensiones comprendido entre 1 y 6 o por elementos que son todos del mismo tipo. Para la asignacin de arrays a una variable
existen dos variantes posibles:
Puede referenciar arrays completos o partes de arrays. Referencie un array completo indicando el nombre de variable de array.
nom_array_1
Un elemento de array individual se referencia con el nombre del array seguido de
los valores de ndice encerrados entre corchetes. Para cada dimensin se dispone de
un ndice, separado por comas y encerrado asimismo entre corchetes. Uno de los
ndices debe ser una expresin aritmtica del tipo de datos INT.
nom_array_1[2]
nom_array_1[4,5]
Asignacin de un
array completo
Un array completo puede asignarse a otro array cuando coinciden tanto los tipos de
datos de los componentes como de los lmites del array (ndice de array mnimo y
mximos posibles). Son asignaciones vlidas las siguientes:
nom_array_1:=nom_array_2;
Asignacin de un
componente de
array
Obtendr una asignacin de valor para una parte de array admisible omitiendo los
ndices que se encuentran despus del nombre del array dentro de los corchetes,
,comenzando por la derecha. De esta forma especifica un rea parcial cuyo nmero
de dimensiones es igual al nmero de ndices omitidos.
De todo ello resulta que puede referenciar en una matriz filas y componentes individuales, pero no columnas cerradas (cerradas significa de ... hasta).
Son asignaciones vlidas las siguientes:
nom_array_1[i]:=nom_array_2[j];
nom_array_1[i]:=expresion;
identificador_1 :=nom_array_1[i];
14-6
Asignacin de valores
Ejemplos
Con ayuda de los ejemplos siguientes va a ilustrarse las asignaciones de valor para
ARRAY:
FUNCTION_BLOCK FB3
VAR
VALORES_TEORICOS:ARRAY [0..127] OF INT;
VALORES_REALES :ARRAY [0..127] OF INT;
// Declaracin de una matriz
// (=array bidimensional)
// de 3 lneas y 4 columnas
REGULADOR: ARRAY [1..3, 1..4] OF INT;
// Declaracin de un vector
// (=array unidimensional)
// de 4 componentes
REGULADOR_1: ARRAY [1..4] OF INT;
END_VAR
BEGIN
// Asignacin de un ARRAY completo a un
// ARRAY
VALORES_TEORICOS:= VALORES_REALES;
// Asignacin de un vector a la segunda lnea
// del array REGULADOR
REGULADOR [2]:= REGULADOR_1;
//Asignacin de un componente de ARRAY a un
//componente del array REGULADOR
REGULADOR [1,4]:= REGULADOR_1 [4];
END_FUNCTION_BLOCK
Ejemplo
14-3
14-7
Asignacin de valores
Variable STRING
Una variable del tipo de datos STRING incluye una cadena de caracteres de un
mximo de 254 caracteres.
Asignacin
Toda variable del tipo de datos STRING puede asignarse a otra variable del mismo
tipo. Son asignaciones vlidas las siguientes:
variable_string1 := literal_string ;
variable_string1 := variable_string2 ;
Ejemplo
FUNCTION_BLOCK FB3
VAR
INDICACION_1
: STRING[50] ;
STRUCT1
: STRUCT
INDICACION_2 : STRING[100] ;
INDICACION_3 : STRING[50] ;
END_STRUCT;
END_VAR
BEGIN
// Asignacin de una constante a una variable
// STRING
INDICACION_1 := Error en mdulo 1;
// Asignacin de un componente de estructura
// a una variable STRING
INDICACION_1 := STRUCT1.INDICACION_3;
// Asignacin de una variable STRING a un
// componente de estructura STRING
If INDICACION_1 <> STRUCT.INDICACION_3 THEN
STRUCT.INDICACION_3 := INDICACION_1;
END_IF;
END_FUNCTION_BLOCK
Ejemplo
14-8
14-4
Asignacin de valores
Variable
DATE_AND_TIME
El tipo de datos DATE_AND_TIME define un rea de 64 Bits (8 Bytes) para especificar la fecha y la hora del da.
Asignacin
Todas las variables del tipo de datos DATE_AND_TIME pueden asignarse a otra
variable o constante del mismo tipo. Son asignaciones vlidas las siguientes:
variable_dt1 := Fecha_y_literal_de_hora_del_da;
variable_dt1 := variable_dt2;
Ejemplo
Con ayuda de los ejemplos siguientes pretende ilustrarse las asignaciones de valor
con variables DATE_AND_TIME.
FUNCTION_BLOCK FB3
VAR
TIEMPO_1
: DATE_AND_TIME;
STRUCT1
: STRUCT
TIEMPO_2 : DATE_AND_TIME;
TIEMPO_3 : DATE_AND_TIME;
END_STRUCT;
END_VAR
BEGIN
// Asignacin de una constante a una variable
// DATE_AND_TIME
TIEMPO_1 := DATE_AND_TIME#1995-01-01-12:12:12.2;
STRUCT1.TIEMPO_3 := DT#1995-02-02-11:11:11;
// Asignacin de un componente de estructura a
// una variable DATE_AND_TIME
TIEMPO_1 := STRUCT1.TIEMPO_2;
// Asignacin de una variable DATE_AND_TIME
// a un componente de estructura DATE_AND_TIME
If TIEMPO_1 < STRUCT1.TIEMPO_3 THEN
STRUCT1.TIEMPO_3 := TIEMPO_1;
END_IF;
END_FUNCTION_BLOCK
Ejemplo
14-5
14-9
Asignacin de valores
Variable absoluta
La variable absoluta referencia las reas de memoria vlidas de una CPU. Al hacer
una asignacin de valor dispone de las tres posibilidades descritas en el captulo 12
para referenciar dichas reas.
Variable absoluta
Identificador de operando
Prefijo de
memoria
Figura 14-2
Prefijo de
tamao
Direccin
Asignacin
Con excepcin de las entradas de periferia y las entradas mediante la imagen del
proceso, usted puede asignar a todas las variables absolutas una variable o una expresin del mismo modo.
Ejemplo
Con ayuda de los ejemplos siguientes pretende ilustrarse las asignaciones de valor
para identificadores absolutos:
FUNCTION_BLOCK_FB10
VAR
PALABRA_ESTADO1
: WORD;
PALABRA_ESTADO2
: BOOL;
PALABRA_ESTADO3
: BYTE;
PALABRA_ESTADO4
: BOOL;
DIRECCION
: INT:= 10;
END_VAR
BEGIN
// Asignacin de una palabra de entrada
// a una variable (acceso simple)
PALABRA_ESTADO1 := EW4 ;
// Asignacin de un bit de salida a una
// variable (acceso simple)
PALABRA_ESTADO2 := a1.1 ;
// Asignacin de un byte de entrada a una
// variable (acceso indizado)
PALABRA_ESTADO3 := EB[DIRECCION];
// Asignacin de un bit de entrada a una
// variable (acceso indizado)
FOR DIRECCION := 0 TO 7 BY 1 DO
PALABRA_ESTADO4 := e[1,DIRECCION] ;
END_FOR;
END_FUNCTION_BLOCK
Ejemplo
14-10
14-6
Asignacin de valores
Variables en DB
El acceso a datos en los bloques de datos globales tambin se realiza por medio de
una asignacin de valor a variables del mismo tipo o viceversa. Dispone de las posibilidades de acceso estructurado, absoluto o indizado (v. cap. 12).
Variable de DB
IDENTIFICADOR
DE DB
Figura 14-3
Asignacin
Identificador de operando
.
Prefijo de
tamao
Direccin
Sintaxis: Variable de DB
A todas las variables globales puede asignar una variable o una expresin del mismo
tipo. Son vlidas las asignaciones siguientes:
DB11.DW10 := 20;
DB11.DW10 := Estado;
Ejemplos
Ejemplo
14-7
14-11
Asignacin de valores
VAR
REGULADOR_1
: ARRAY [1..4] OF INT;
PALABRA_ESTADO1: WORD ;
PALABRA_ESTADO2: ARRAY [1..10] OF INT;
PALABRA_ESTADO3: INT
DIRECCION
: INT ;
END_VAR
BEGIN
// Asignar la palabra 10 del DB11 a una
// variable (acceso simple)
PALABRA_ESTADO1:= DB11.DW10
// El primer componente del array se ha
// asignado a la variable NUMERO de DB11
// (acceso estructurado)
REGULADOR_1[1]:= DB11.NUMERO;
// Asignar el componente estructurado
// NUMERO2 de la estructura NUMERO1 a la
// variable PALABRA_ESTADO3
PALABRA_ESTADO3:= DB11.NUMERO1.NUMERO2
// Asignar una palabra con ndice DIRECCION
// procedente del DB11 a una variable
// (acceso indizado)
FOR DIRECCION:= 1 TO 10 BY 1 DO
PALABRA_ESTADO2[DIRECCION]:=DB11.DW[DIRECCION];
END_FOR;
Ejemplo
14-12
14-8
15
Instrucciones de control
Resumen
Son pocos los bloques que puede programar de forma que todas las instrucciones se
ejecuten consecutivamente hasta el final del bloque. En el caso general ocurre que
slo se ejecutarn determinadas instrucciones (alternativas) dependiendo de determinadas condiciones, o que incluso se repitan mltiples veces (bucles). Los medios
tcnicos de que dispone el programa para ello son las instrucciones de control dentro
del bloque SCL.
Apartado
Tema
Pgina
15.1
Resumen
15-2
15.2
Instruccin IF
15-4
15.3
Instruccin CASE
15-6
15.4
Instruccin FOR
15-8
15.5
Instruccin WHILE
15.6
Instruccin REPEAT
15-11
15.7
Instruccin CONTINUE
15-12
15.8
Instruccin EXIT
15-13
15.9
Instruccin GOTO
15-14
15.10
Instruccin RETURN
15-16
15-10
15-1
Instrucciones de control
15.1 Resumen
Instrucciones de
seleccin
En los programas se presenta el problema de que dependiendo de determinadas condiciones deben ejecutarse diferentes instrucciones. Con una instruccin de seleccin
tiene la posibilidad de ramificar el flujo del programa en un nmero de instrucciones
sucesivas y alternativas comprendido entre 2 y n.
Tabla 15-1
Tipos de ramificaciones
Tipo de
ramificacin
Instruccin IF
Funcin
Con la instruccin IF puede ramificar el flujo del programa hacia una de
dos alternativas, en funcin de una condicin, que puede ser TRUE o
FALSE.
Instruccon CASE Con una instruccin CASE puede controlar el flujo del programa en una
ramificacin 1:n, haciendo que una variable adopte un valor de entre n
valores posibles.
Instrucciones de
repeticin
El procesamiento de bucles puede controlarlo con ayuda de las instrucciones de repeticin. Una instruccin de repeticin indica la parte de su programa que debe repetirse en funcin de determinadas condiciones.
Tabla 15-2
Tipo de
ramificacin
Instrucciones de
salto
Instruccin
FOR
Instruccin
WHILE
Sirve para repetir una secuencia de instrucciones hasta que se cumpla una
condicin de ejecucin.
Instruccin
REPEAT
Sirve para repetir una secuencia de instrucciones hasta que se cumpla una
condicin de interrupcin.
Un salto de programa provoca el salto inmediato hasta una meta de salto especificada, y por lo tanto, hasta otra instruccin dentro del mismo bloque.
Tabla 15-3
Tipo de
ramificacin
15-2
Funcin
Funcin
Instruccin
CONTINUE
Sirve para interrumpir la ejecucin del bucle que se est recorriendo en ese
momento.
Instruccin
EXIT
Sirve para abandonar un bucle en un punto cualquiera e independientemente de que se haya cumplido o no la condicin de interrupcin.
Instruccin
GOTO
Instruccin
RETURN
Instrucciones de control
Condiciones
Los siguientes son ejemplos de utilizacin de expresiones de comparacin con operadores lgicos:
(CONTADOR<=100) AND(CH1<*)
(SALDO<100.0) OR (ESTADO =R)
(Respuesta<0)OR((Respuesta>5.0) AND (RESPUESTA<10.0))
Nota
Tenga en cuenta que los operandos lgicos (aqu, expresiones de comparacin) figuran entre parntesis para evitar cualquier ambigedad sobre el orden de valoracin.
15-3
Instrucciones de control
15.2 Instruccin IF
Principio
IF
Expresin
THEN
Area de
instrucciones
THEN
Area de
instrucciones
Condicin
ELSIF
Expresin
Condicin
Area de
instrucciones
ELSE
Figura 15-1
END_IF
Sintaxis: Instruccin IF
15-4
Instrucciones de control
Nota
Con respecto a una secuencia de instrucciones IF, la utilizacin de una o varias ramas ELSIF presenta la ventaja de que ya no se valoran las expresiones lgicas que
siguen a una expresin vlida. De esta forma se acorta el tiempo de ejecucin de un
programa.
Ejemplo
Ejemplo
15-1
Instruccin IF
15-5
Instrucciones de control
Principio
Instruccin CASE
Expresin de seleccin (entero)
CASE
Expresin
OF
Valor
Figura 15-2
Ejecucin
Lista de
valores
Area de
instrucciones
ELSE
Area de
instrucciones
END_CASE
15-6
Instrucciones de control
Lista de valores
Valor
..
Valor
Figura 15-3
Reglas
S toda lista de valores o lista puede comenzar con una constante, una lista de
constantes o un rango de constantes,
15-2
:=
:=
:=
:=
:=
:=
:=
:=
:=
:=
OVEN_TEMP;
MOTOR_SPEED;
GROSS_TARE;
16#0003;
INT_TO_DINT (TW);
16#0004;
99;
16#0005;
0;
1;
Instruccin CASE
Nota
Asegrese de que el tiempo de ejecucin de los bucles no sea demasiado largo, pues
de lo contrario la CPU pasara a STOP con demora en la confirmacin.
15-7
Instrucciones de control
Asignacin
inicial
TO
Expresin
bsica
BY
Expresin
bsica
DO
Area de
instrucciones
END_FOR
Figura 15-4
Ejecucin
15-8
Instrucciones de control
Asignacin inicial
:=
Figura 15-5
Expresin
bsica
para valor inicial
Ejemplos:
FOR I
:= 1 TO 20 DO
FOR I
:= 1 TO (Inicio+J) DO
Puede formar una expresin bsica para formar el valor final, y otra expresin
bsica para formar el paso deseado.
Reglas
S El valor inicial, el valor final y el paso son expresiones (v. cap. 13). La valoracin se realiza una sola vez al principio de la ejecucin de la instruccin FOR.
S No est permitido un cambio de los dos valores (del valor final y del paso) durante la ejecucin.
Ejemplo
15-3
Instruccin FOR
15-9
Instrucciones de control
Principio
La instruccin WHILE permite repetir la ejecucin de una secuencia de instrucciones controlando una condicin de ejecucin. La condicin de ejecucin se forma
siguiendo las reglas de una expresin lgica.
Instruccin WHILE
WHILE
Expresin
DO
Area de
instrucciones
END_WHILE
Condicin de ejecucin
Figura 15-6
El rea de instrucciones que sigue a DO se repite hasta que la condicin de ejecucin posee el valor TRUE.
Ejecucin
Ejemplo
15-10
15-4
Instruccin WHILE
Instrucciones de control
Principio
Una instruccin REPEAT produce la ejecucin repetida de una secuencia de instrucciones que se encuentre comprendida entre REPEAT y UNTIL, hasta que se cumpla
una condicin de interrupcin. La condicin de interrupcin se forma con las reglas
de una expresin lgica.
Instruccin REPEAT
REPEAT
Area de
instrucciones
UNTIL
Expresin
END_REPEAT
Condicin de interrupcin
Figura 15-7
Ejemplo
15-5
Instruccin REPEAT
15-11
Instrucciones de control
Principio
Figura 15-8
En un bucle WHILE la condicin inicial (en el caso de un bucle REPEAT, la condicin final) decide si se repite una secuencia de instrucciones.
En una instruccin FOR, inmediatamente despus de una instruccin CONTINUE la
variable en ejecucin aumenta el paso especificado.
Ejemplo
15-12
15-6
Instruccin CONTINUE
Instrucciones de control
Principio
Una instruccin EXIT sirve para abandonar un bucle (bucle FOR, WHILE o
REPEAT) en un punto cualquiera y con independencia que se haya cumplido o no la
condicin de interrupcin.
Instruccin EXIT
EXIT
Figura 15-9
Ejemplo
15-7
Instruccin EXIT
15-13
Instrucciones de control
Principio
Con una instruccin GOTO puede ejecutar un salto en el programa. Produce el salto
inmediato hasta una meta de salto especificada y, por tanto, hasta otra instruccin
dentro del mismo bloque.
Las instrucciones GOTO deben utilizarse slo en casos especiales; p.ej., para procesar errores. Segn las reglas de la programacin estructurada la instruccin GOTO
no debera utilizarse.
Instruccin GOTO
GOTO
IDENTIFICADOR
Meta de salto
Figura 15-10
La meta del salto designa una marca dentro del bloque de declaracin LABEL /
END_LABEL. Esta marca precede a la instruccin que se ejecuta despus de
GOTO.
Reglas
Para utilizar la instruccin GOTO deben tenerse en cuenta las siguientes reglas:
S La meta de una instruccin de salto debe de estar situada dentro del mismo bloque.
15-14
Instrucciones de control
Ejemplo
FUNCTION_BLOCK FB3//GOTO_BSP
VAR
INDICE
: INT;
: INT;
: INT;
: INT;
PALABRA_CLAVE
: ARRAY[1..51] OF STRING;
END_VAR
LABEL
MARCA1,
MARCA2, MARCA3;
END_LABEL
BEGIN
IF A > B THEN GOTO MARCA1;
ELSIF A > C THEN GOTO MARCA2;
END_IF;
//...
MARCA1
INDICE:= 1;
GOTO MARCA3;
MARCA2
INDICE:= 2;
//...
MARCA3
//...
END_FUNCTION_BLOCK
Ejemplo
15-8
15-15
Instrucciones de control
Principio
Una instruccin RETURN hace que se abandone el bloque que se est ejecutando
actualmente (OB, FB, FC) y se retorna al bloque invocante (o al sistema operativo,
en caso de que se abandone un OB).
Instruccin RETURN
RETURN
Figura 15-11
Nota
Una instruccin RETURN situada al final de la parte de ejecucin de un bloque
lgico o de la tabla de declaracin de un bloque de datos es redundante, puesto que
se ejecuta automticamente.
15-16
Resumen
16
Desde un bloque SCL puede llamar a otras funciones (FC) o bloques de funcin
(FB). Los bloques a los que puede llamarse son los siguientes:
S Funciones del sistema (SFC) y bloques de funcin del sistema (SFB), disponibles
en el sistema operativo de la CPU utilizada por usted.
Apartado
Tema
Pgina
16.1
16-2
16.2
16-3
16.2.1
Parmetros de FB
16-5
16.2.2
16-7
16.2.3
16-8
16.2.4
16-10
16.2.5
16-12
16.3
Llamada a funciones
16-13
16.3.1
Parmetros de FC
16-15
16.3.2
16-16
16.3.3
16-17
16.3.4
16-19
16.4
16-20
16-1
Principio
Lista de parmetros
Parmetro de
entrada/salida actual
Parmetro de
salida actual
Nombre de la funcin
Figura 16-1
Parmetros formales
3
LONGITUD
Suma_horizontal
Figura 16-2
Parmetros
formales
E_Par
D_Par
A_Par
Los parmetros formales son los que espera el bloque cuando efecta la llamada. Se
trata nicamente de comodines para los parmetros actuales que son transferidos
al bloque cuando se efecta la llamada. Estos parmetros han sido definidos por
usted en las tablas de declaracin de un bloque (FB o FC).
Tabla 16-1
Bloques de declaracin
Datos
Parmetro de entrada
Palabra clave
VAR_INPUT
Lista de declaracin
END_VAR
Bloque de parmetros
Parmetro de salida
VAR_OUTPUT
Lista de declaracin
END_VAR
Parmetro de entrada/salida
VAR_IN_OUT
Lista de declaracin
END_VAR
16-2
Instancia global y
local
IDENTIFICADOR
DE FB
IDENTIFICADOR
DE SFB
IDENTIFICADOR
DE DB
Parmetro de FB
Figura 16-3
Sintaxis: Llamada a FB
S el nombre del bloque de funcin o del bloque de funcin del sistema (identificacin de FB o de SFB),
Llamada absoluta:
FB10.DB20 (X1:=5,X2:=78,......);
Especificacin de parmetros
Llamada simblica:
ACCIONAMENTO.INTRO (X1:=5,X2:=78,......);
Figura 16-4
16-3
MOTOR (X1:=5,X2:=78,......);
Especificacin de parmetros
Figura 16-5
16-4
16.2.1
Principio
Parmetros de FB
Al efectuar una llamada de un bloque de funcin (como instancia global o como
instancia local) debe diferenciar, dentro de la lista de parmetros, entre:
Parmetros
actuales
3
//Asignacin de entrada
LONGITUD//Asignacin de entrada/salida
Figura 16-7
Ejemplo
Sintaxis:Parmetros de FB
Una llamada con una asignacin del parmetro de entrada y del parmetro de entrada/salida podra tener, por ejemplo, el siguiente aspecto:
FB31.DB77(E_Par:=3, D_Par:=LONGITUD);
Reglas
16-5
S Los parmetros de salida del bloque invocante pueden leerse a partir del bloque
de instancia global o desde el bloque de instancia local. A este respecto, ver el
ejemplo 16-3 en la pgina 16-11.
16-6
16.2.2
Principio
Mediante las asignaciones de entrada se asignan parmetros actuales a los parmetros formales de entrada. El FB no puede cambiar estos parmetros actuales. La
asignacin de parmetros de entrada actuales es opcional. Si no se especifica ningn
parmetro actual se mantienen los valores de la ltima llamada.
Asignacin de entrada
Parmetro actual
Expresin
IDENTIFICADOR
DE TEMPORIZADOR
IDENTIFICADOR
Nombre del parmetro de entrada
IDENTIFICADOR
DE CONTADOR
(parmetro formal)
IDENTIFICADOR
DE BLOQUE
Figura 16-8
:=
Parmetro actual
Expresin
Identificador de
Usted determina un temporizador determinado o un contador determiTEMPORIZADOR / nado que debe utilizarse en la ejecucin de un bloque (v. cap. 17).
CONTADOR
Identificador de
BLOQUE
16-7
16.2.3
Principio
IDENTIFICADOR
Variable
ampliada
:=
Parmetro actual
(parmetro formal)
Figura 16-9
Dado que los parmetros actuales asignados pueden variar durante el recorrido del
FB por tratarse de parmetros de entrada/salida), debe ser una variable. Por esta
razn en las asignaciones de entrada/salida no puede asignarse un parmetro de entrada (el nuevo valor no podra reescribirse).
Tabla 16-3
Parmetro
actual
Variable
ampliada
16-8
Particularidades
S Despus de recorrer el bloque se actualiza el valor que ha cambiado del parmetro de entrada/salida. Una excepcin la constituyen los parmetros de entrada/
salida de un tipo de datos simple. Aqu la actualizacin slo se produce cuando
en la llamada se ha especificado un parmetro actual.
S Parmetros ANY: bsicamente se aplica en este caso lo expuesto arriba. Adicionalmente hay que tener en cuenta que no est permitido que las constantes
acten de parmetros actuales.
16-9
16.2.4
Principio
Un bloque de funcin con un bucle FOR podra tener el siguiente aspecto (v.
ej. 16-1). En los ejemplos se ha supuesto que en la tabla de smbolos se ha declarado
el smbolo TEST para el FB17.
FUNCTION_BLOCK TEST
VAR_INPUT
VALOR_FINAL : INT; //Parmetro de entrada
END_VAR
VAR_IN_OUT
IQ1
: REAL; //Parmetro de entrada/salida
END_VAR
VAR_OUTPUT
CONTROL
: BOOL; //Parmetro de salida
END_VAR
VAR
INDICE
: INT;
END_VAR
BEGIN
CONTROL
:= FALSE;
FOR INDICE := 1 TO VALOR_FINAL DO
IQ1:= IQ1 * 2;
IF IQ1 > 10000 THEN
CONTROL:= TRUE;
END_IF;
END_FOR;
END_FUNCTION_BLOCK
Ejemplo
Llamada
16-1
Ejemplo de un FB
Para llamar a este FB puede elegir entre las siguientes variantes. Se presupone que
en el bloque invocante la VARIABLE1 est declarada como variable REAL.
//Llamada absoluta, instancia global:
FB17.DB10 (VALOR_FINAL:=10, IQ1:= VARIABLE1);
//Llamada simblica, instancia global:
TEST.TEST_1 (VALOR_FINAL:= 10, IQ1:= VARIABLE1) ;
Ejemplo
Resultado
16-10
16-2
Leer valor de
salida
Con ayuda de los dos ejemplos siguientes pretenden explicarse las posibles variantes
para suprimir el parmetro de salida CONTROL.
Ejemplo
16-3
16-11
16.2.5
Principio
Llamada
Presuponiendo que la VARIABLE1 se ha declarado como variable REAL en el bloque invocante, puede llamar a este FB de la siguiente forma:
// Llamada, instancia local:
TEST_L (VALOR_FINAL:= 10, IQ1:= VARIABLE1) ;
Ejemplo
16-4
Leer parmetros
de salida
Ejemplo
16-12
16-5
Figura 16-10
Parmetro
de FC
FC: funcin
SFC: funcin de sistema
Funcin estndar realizada en el compilador
16-13
Nota
Si en SCL se llama a una funcin que an no tiene asignado valor de respuesta, el
programa de usuario puede ejecutarse de forma errnea.
En una funcin de SCL puede producirse este caso cuando el valor de respuesta se
haya asignado pero no se haya atravesado la instruccin correspondiente.
En una funcin de AWL, KOP o FUP puede producirse este caso cuando la funcin
se ha programado sin asignarle un valor de respuesta o cuando no se ha atravesado
la instruccin correspondiente.
Llamada
S la lista de parmetros.
Ejemplo
Resultado de la
llamda
S valor de respuesta, o
S parmetro de salida y parmetro de entrada/salida (parmetros actuales).
Encontrar ms informacin al respecto en el captulo 18.
16-14
16.3.1
Principio
Parmetros de FC
A diferencia de los bloques de funcin, las funciones no tienen memoria en la que
poder guardar los valores de los parmetros. Durante la ejecucin de la funcin los
datos locales slo se guardan temporalmente. Por esta razn, en la llamada deben
asignarse parmetros actuales a todos los parmetros formales de entrada, de entrada/salida y de salida definidos en la tabla de declaracin de una funcin.
La figura 16-11 muestra la sintaxis de la asignacin de parmetros de FC:
Parmetro de FC
Expresin
Asignacin
de entrada
Asignaciones
de salida y de
entrada/salida
,
Figura 16-11
Sintaxis: Parmetro de FC
Reglas
16-15
16.3.2
Principio
Mediante las asignaciones de entrada se asignan parmetros actuales a los parmetros formales de entrada de la FC llamada. La FC puede trabajar con estos parmetros actuales, pero no cambiarlos. A diferencia de la llamada al FB, esta asignacin
no es opcional en la llamada a FC. Las asignaciones de entrada tienen la siguiente
sintaxis:
Parmetro actual
Asignacin de entrada
Expresin
IDENTIFICADOR
DE TEMPORIZADOR
IDENTIFICADOR
Nombre del parmetro de entrada
IDENTIFICADOR
DE CONTADOR
(parmetro formal)
IDENTIFICADOR
DE BLOQUE
Figura 16-12
:=
Parmetro actual
Expresin
Explicacin
Una expresin representa un valor y est compuesta por operandos y
operadores. Se dispone de los siguientes tipos de expresiones:
Particularidades
16-16
Tenga en cuenta que en los parmetros de FC que no sean del tipo de datos simple,
no estn permitidos como parmetros actuales los parmetros de entrada/salida de
FB, ni los parmetros de FC.
16.3.3
Principio
En una asignacin de salida puede establecer dnde se escribirn los valores de salida generados en la ejecucin de una funcin. Con una asignacin de entrada/salida
asigne un valor actual a un parmetro de entrada/salida.
La figura 16-13 muestra la sintaxis de las asignaciones de salida y de entrada/salida:
IDENTIFICADOR
Variable
ampliada
:=
Parmetro actual
(parmetro formal)
Figura 16-13
Parmetros en
asignaciones de
salida y de entrada/salida
Parmetro actual
Variable ampliada
16-17
Particularidades
16-18
16.3.4
Principio
Una funcin DISTANCIA para calcular la distancia entre dos puntos (X1, Y1) y
(X2, Y2) en el plano utilizando coordenadas cartesianas podra tener el siguiente
aspecto (en los ejemplos se ha supuesto siempre que en una tabla de smbolos se ha
declarado el smbolo DISTANCIA para la FC37):
16-6
Clculo de distancia
16-7
16-19
Los parmetros definidos implcitamente son los parmetros que puede utilizar sin
necesidad de declararlos previamente en un bloque. SCL pone a su disposicin dos
parmetros definidos de esta forma:
S el parmetro de entrada EN y
S el parmetro de salida ENO.
Ambos parmetros son del tipo de datos BOOL y estn depositados en el rea de
datos temporales del bloque.
Parmetro de entrada EN
Ejemplo
BEGIN
MI_ENABLE:= FALSE;
// Llamada a una funcin,
// donde se especifica el parmetro EN:
RESULTADO:= FC85 (EN:= MI_ENABLE, PAR_1:= 27);
// La FC85 no se ha ejecutado porque MI_ENABLE
// era igual a FALSE
//...
END_FUNCTION_BLOCK
Ejemplo
16-20
16-8
Utilizacin de EN
Parmetro de
salida ENO
Todo bloque de funcin y toda funcin poseen el parmetro de salida ENO definido
implcitamente, que es del tipo de datos BOOL. Al terminar la ejecucin de un bloque el valor actual de las variables OK se deposita en ENO.
Inmediatamente despus de llamar a un bloque puede comprobar, con ayuda del
valor de ENO si todas las operaciones del bloque se han ejecutado correctamente o
si se han producido errores.
Ejemplo
Ejemplo
16-9
Utilizacin de ENO
Ejemplo
16-21
16-22
17
Contadores y temporizadores
Resumen
En SCL puede controlar la ejecucin del programa en funcin de un dato de temporizador o un estado de contador.
Para ello STEP 7 le ofrece funciones de contador y de temporizador estndar que
puede utilizar en su programa SCL sin necesidad de declararlas previamente.
Apartado
Tema
Pgina
17.1
Funciones de contaje
17-2
17.1.1
17-6
17.1.2
17-7
17.1.3
17-7
17.1.4
17-8
17.1.5
17.2
17-10
17.2.1
17-14
17.2.2
17-16
17.2.3
17-17
17.2.4
17-18
17.2.5
17-19
17.2.6
17-20
17.2.7
17-21
17.2.8
17-22
17-8
17-1
Contadores y temporizadores
Resumen
A las funciones de contaje puede llamarse igual que las funciones. La identificacin
de funcin puede utilizarse en una expresin en sustitucin de un operando, siempre
que el tipo del resultado de la funcin sea compatible con el del operando sustituido.
Tabla 17-1
Nombre de la funcin
S_CU
S_CD
S_CUD
Valor de la funcin
17-2
Significado
Contadores y temporizadores
Parmetros de
llamada
En la tabla 17-2 puede consultar los parmetros de llamada junto con su identificacin y su significado para las tres funciones de contaje. En general hay que distinguir los siguientes tipos de parmetros:
Parmetros de llamada
Parmetro
C_NO
Ejemplo
Tipo de
datos
Descripcin
CU
Entrada
BOOL
CD
Entrada
BOOL
Entrada
BOOL
PV
Entrada
WORD
Entrada
BOOL
Entrada de inicializacin
Salida
BOOL
CV
Salida
WORD
La llamada mencionada en el ejemplo 17-1 hace que al calcular la funcin se reserve un rea de memoria global del tipo COUNTER (CONTADOR) de nombre Z12.
Ejemplo
17-1
:=Z12,
:=E0.1,
:=E0.0,
:=E0.2 & E0.3,
:=120,
:=FALSE,
:=act_Flag,
:=binVal);
17-3
Contadores y temporizadores
Llamada dinmica
El lugar de un nmero absoluto de contador (p.ej.: C_NO=Z10), tambin puede especificar en la llamada una variable del tipo de datos COUNTER. Esto tiene la ventaja de que puede organizar dinmicamente la llamada a los contadores asignando
otro nmero absoluto a esas variables cada vez que se efecta una llamada.
Ejemplo:
FUNCTION_BLOCK CONTADOR;
VAR_INPUT
MiContador: Contador;
END_VAR
:
currVAL:=S_CD (C_NO:=MiContador,........);
Reglas
Dado que los valores de los parmetros (p.ej., CD:=E.0) se guardan globalmente, su
especificacin es opcional en determinados casos. Al especificar parmetros deben
observarse las siguientes reglas:
S Dependiendo de la funcin de contaje, debe especificarse el parmetro CU (contador incremental) o el parmetro CD (contador decremental)
S Pueden omitirse por parejas las especificaciones del parmetro PV (valor predefinido) y S (ajuste).
17-4
Contadores y temporizadores
FUNCTION_BLOCK FB1
VAR
currVal, binVal: word;
actFlag: bool;
END_VAR
BEGIN
currVal
currVal
currVal
:=S_CUD(C_NO:=Z12, CD:=E0.0,
CU:=E0.1,S:=E0.2 & E0.3, PV:=120,
R:=FALSE,CV:=binVal, Q:=actFlag);
currVal
:=S_CD(C_NO:=Z10,CD:=FALSE,
S:=FALSE,
PV:=100, R:=TRUE, CV:=binVal,
Q:=actFlag);
END_FUNCTION_BLOCK
Ejemplo
17-2
17-5
Contadores y temporizadores
17.1.1
Resumen
Para introducir el valor predefinido o la valoracin del resultado de la funcin necesita la representacin interna del valor del contador (v. fig. 17-1).
Cuando se ajusta el contador (parmetro S) se escribe en el contador el valor definido por usted. El rango est comprendido entre 0 y 999. Usted puede variar el valor
del contador dentro de este rango utilizando las operaciones contaje incremental/decremental, contaje incremental y contaje decremental.
Formato
15 14
13 12
11 10
0
1
Introduccin
S Decimal como valor entero: por ejemplo 295, siempre que este valor corresponda a un cdigo BCD vlido.
17-6
Contadores y temporizadores
17.1.2
Descripcin
Funcionamiento
17.1.3
Funcionamiento
Operacin
Contaje incremental
Ajustar contador
Cuando el estado de la seal en la entrada S cambia de 0 a 1, en el contador se ajusta el valor de la entrada PV. Este cambio de la seal es siempre
necesario para ajustar el contador.
Inicializar
Consultar
contador
Descripcin
Funcionamiento
Funcionamiento
Operacin
Contaje decremental
Ajustar contador
Cuando el estado de la seal en la entrada S cambia de 0 a 1, en el contador se ajusta el valor de la entrada PV. Este cambio de la seal es siempre
necesario para ajustar el contador.
Inicializar
Consultar
contador
17-7
Contadores y temporizadores
17.1.4
Descripcin
Con el contador Counter Up Down puede ejecutar tanto operaciones de contaje incremental como decremental. Cuando los impulsos de contaje incremental y decremental
son simultneos se ejecutan ambas operaciones.
El valor del contador permanece inalterado.
Tabla 17-5
Funcionamiento
17.1.5
Funcionamiento
Operacin
Contaje incremental
Contaje decremental
Ajustar contador
Inicializar
Consultar
contador
Especificacin de
parmetros
Parmetros de llamada
Descripcin
Parmetro
17-8
C_NO
MiContador
CD
Entrada E0.0
AJUSTAR
PV
Predefinir 16#0089
Inizializar
A0.7
CV
VALOR_BINARIO
Contadores y temporizadores
Ejemplo
FUNCTION_BLOCK CONTAJE
VAR_INPUT
MICONTADOR: COUNTER;
END_VAR
VAR_OUTPUT
RESULTADO: INT;
END_VAR
VAR
AJUSTAR
: BOOL;
INICIALIZAR
: BOOL;
VALOR_BCD
: WORD; //Estado de contador BCD
VALOR_BINARIO
: WORD; //Estado de contador binario
PREDEFINICION
: WORD;
END_VAR
BEGIN
A0.0:= 1;
AJUSTAR:= E0.2;
INICIALIZAR:= E0.3;
PREDEFINICION:= 16#0089;
VALOR_BCD:= S_CD
(C_NO := MICONTADOR,//Contador decr.
CD
:= E0.0,
S
:= AJUSTAR,
PV
:= PREDEFINICION,
R
:= INIZIALIZAR,
CV
:= VALOR_BINARIO,
Q
:= A0.7);
RESULTADO:=WORD_TO_INT(VALOR_BINARIO);
//Contina procesamiento como
//parmetro de salida
AW4:= VALOR_BCD; //Para visualizar en la salida
END_FUNCTION_BLOCK
Ejemplo
17-3
17-9
Contadores y temporizadores
Resumen
Los temporizadores son elementos de funcin de su programa que ejecutan y supervisan procesos controlados por tiempo. STEP 7 dispone de una serie de funciones de
temporizacin estndar a las que puede acudir con SCL. Con las operaciones de
temporizacin, en su programa puede:
Nombre de la funcin
Valor de la funcin
17-10
S_PULSE
Impulso (Pulse)
S_PEXT
S_ODT
S_ODTS
S_OFFDT
Contadores y temporizadores
Parmetros de
llamada
Parmetros de llamada
Tipo de
dato
Parmetro
Ejemplo
Descripcin
T_NO
TIMER
BOOL
Entrada inicial
TV
S5TIME
BOOL
Entrada de inicializacin
BOOL
BI
WORD
Al ejecutar la llamada mencionada en el ejemplo 17-4 se reserva un rea de memoria global del tipo TIMER con el nombre T10.
17-4
:=
:=
:=
:=
:=
:=
T10,
TRUE,
T#1s,
FALSE,
biVal,
actFlag
17-11
Contadores y temporizadores
Llamada dinmica
Reglas
S Puede omitirse por parejas la especificacin del parmetro TV (valor predefinido) y S (ajuste).
17-12
Contadores y temporizadores
FUNCTION_BLOCK FB2
VAR
currTime
biVal
actFlag
END VAR
: S5time;
: word;
: bool;
BEGIN
currTime:= S_ODT (T_NO:=T10, S:=TRUE, TV:=T#1s,
R:=FALSE, BI:=biVal,
Q:=actFlag);
currTime:= S_ODTS (T_NO:=T11, S:=M0.0, TV:=T#1s,
R:=M0.1, BI:=biVal,
Q:=actFlag);
currTime:=S_OFFDT (T_NO:=T12, S:=E0.1 & actFlag,
TV:=T#1s, R:=FALSE, BI:=biVal,
Q:=actFlag);
currTime:= S_PEXT (T_NO:=T13, S:=TRUE,
TV:=T#1s, R:=E0.0, BI:=biVal,
Q:=actFlag);
currTime:= S_PULSE (T_NO:=T14, S:=TRUE,
TV:=T#1s, R:=FALSE, BI:=biVal,
Q:=actFlag);
END_FUNCTION_BLOCK
Ejemplo
17-5
17-13
Contadores y temporizadores
17.2.1
Resumen
Formato
15...
x
...8
x
7...
...0
0
Introduccin
17-14
Contadores y temporizadores
Base de tiempo
10 ms
00
100 ms
01
1s
10
10 s
11
Nota
Dado que los valores de temporizacin slo se guardan en un intervalo de tiempo,
los valores que no son mltiplo exacto del intervalo de tiempo se truncan.
Los valores cuya resolucin es demasiado poco precisa para el rango deseado se
redondean, de forma que se obtenga el rango deseado, pero no la resolucin deseada.
17-15
Contadores y temporizadores
17.2.2
Descripcin
El tiempo mximo que la seal de salida permanece a 1 es igual al tiempo de temporizacin programado t.
Si durante el tiempo de funcionamiento del temporizador de la entrada se produce el
estado de seal 0, la salida Q cambia a 0 (es decir, el temporizador se detiene).
La figura 17-3 ilustra el funcionamiento del temporizador arrancar temporizador
como impulso.
Funcionamiento
Seal de entrada
E 2.1
Seal de salida
(temporizador
como impulso)
A 4.0 S_PULSE
t
Figura 17-3
Tabla 17-10
Operacin
Funcionamiento
Arrancar temporizador
La operacin arrancar temporizador como impulso arranca un temporizador especificado cuando el estado de la seal de la entrada de arranque
S cambia de 0 a 1. Para habilitar el temporizador siempre se necesita
un cambio de seal.
17-16
Reinicializar
El temporizador se reinicializa cuando la entrada de inicializacin tambin llamada entrada de puesta a 0 R cambia de 0 a 1 mientras funciona el temporizador. Este cambio tambin pone a 0 el valor de temporizacin y la base de tiempo.
El estado de la seal 1 en la entrada R no influye si el temporizador no
est en funcionamiento.
Consultar estado
de seal
Consultar valor
de temporizacin
actual
El valor de temporizacin actual puede consultarse en la salida BI y mediante el valor de la funcin S_PULSE.
Contadores y temporizadores
17.2.3
Descripcin
Funcionamiento
Seal de entrada
E 2.1
Seal de salida
(temporizador como
impulso prolongado)
A 4.0 S_PEXT
t
Figura 17-4
Tabla 17-11
Operacin
Funcionamiento
Arrancar temporizador
Rearranque del
Si el estado de la seal de la entrada S cambia de nuevo a 1 durante el
tiempo de funcio- tiempo de ejecucin, el temporizador arranca de nuevo con el valor de
namiento
temporizacin especificado.
Preajuste del
El temporizador contina funcionando con el valor especificado en la entiempo de funcio- trada TV hasta que concluye el tiempo programado.
namiento
Reinicializar
Consultar estado
de seal
Consultar valor
de temporizacin
actual
El valor de temporizacin actual puede consultarse en la salida BI y mediante el valor de la funcin S_PEXT.
17-17
Contadores y temporizadores
17.2.4
Descripcin
Seal de entrada
E 2.1
A 4.0
Seal de salida
(temporizador como
retardo a la conexin)
Funcionamiento
S_ODT
t
Figura 17-5
Tabla 17-12
Operacin
Funcionamiento
Arrancar temporizador
Conservar temporizador
Consultar estado
de seal
Cuando se consulta el estado de la seal en la salida Q se obtiene el resultado 1 si el tiempo se ha agotado sin existir error y en la entrada S contina el valor 1.
Si el temporizador se ha detenido, al consultar el estado de la seal se obtiene siempre 0.
Al consultar el estado de la seal en la salida Q se obtiene tambin 0
cuando el temporizador no est en funcionamiento y el RLO (resultado
lgico, ver /232/) en la entrada S contina siendo 1.
Consultar valor
de temporizacin
actual
17-18
El valor de temporizacin actual puede consultarse en la salida BI y mediante el valor de la funcin S_ODT.
Contadores y temporizadores
17.2.5
Descripcin
La seal de salida cambia de 0 a 1 cuando ha transcurrido el tiempo programado, independientemente del tiempo que la seal de entrada permanezca en 1.
La figura 17-6 ilustra el funcionamiento de la operacin arrancar temporizador
como retardo a la conexin con memoria.
Seal de entrada
E 2.1
A 4.0 S_ODTS
Seal de salida
(temporizador como
retardo a la conexin
con memoria)
Funcionamiento
Figura 17-6
Tabla 17-13
Operacin
Funcionamiento
Arrancar temporizador
La operacin arrancar temporizador como retardo a la conexin con memoria arranca un temporizador especificado cuando el estado de la seal
de la entrada de arranque S cambia de 0 a 1. Para habilitar el
temporizador siempre se necesita un cambio de seal.
Rearrancar temporizador
Definir tiempo
de funcionamiento
Reinicializar
Cuando la entrada de reinicializacin R cambia de 0 a 1, el temporizador se reinicializa independientemente del RLO (resultado lgico ver
/232/) en la entrada S.
Consultar estado
de seal
Consultar valor
El valor de temporizacin actual puede consultarse en la salida BI y mede temporizacin diante el valor de la funcin S_ODTS.
actual
17-19
Contadores y temporizadores
17.2.6
Descripcin
Seal de entrada
E 2.1
Seal de salida
A 4.0
(temporizador como
retardo a la desconexin)
Funcionamiento
S_OFFDT
t
Figura 17-7
Tabla 17-14
Operacin
Funcionamiento
Arrancar temporizador
Rearrancar temporizador
17-20
Reinicializar
Consultar estado
de seal
Consultar valor
de temporizacin
actual
El valor de temporizacin actual puede consultarse en la salida BI y mediante el valor de la funcin S_OFFDT.
Contadores y temporizadores
17.2.7
Ejemplo S_PEXT
El ejemplo 17-6 muestra un programa para aplicar la funcin de temporizacin impulso prolongado:
FUNCTION_BLOCK TEMPORIZADOR
VAR_INPUT
MITEMPORIZADOR: TIMER;
END_VAR
VAR_OUTPUT
RESULTADO: S5TIME;
END_VAR
VAR
AJUSTAR
: BOOL;
INICIALIZAR: BOOL;
VALOR_BCD : S5TIME;//Base de tiempo y valor rest.
//Codificacin BCD
VALOR_BINARIO
: WORD; //Valor de temporiz. binario
PREDEFINICION
: S5TIME;
END_VAR
BEGIN
A0.0:= 1;
AJUSTAR:= E0.0;
INICIALIZAR:= E0.1;
PREDEFINICION:= T#25S;
VALOR_BCD:= S_PEXT(T_NO:= MITEMPORIZADOR,
S := AJUSTAR,
TV := PREDEFINICION,
R := INICIALIZAR,
BI := VALOR_BINARIO,
Q := A0.7);
RESULTADO:=VALOR_BCD;//Contina procesamiento como
//parmetro de salida
AW4:= VALOR_BINARIO //A visualizacin en salida
END_FUNCTION_BLOCK
Ejemplo
17-6
17-21
Contadores y temporizadores
17.2.8
Seal de entrada
E 2.1
Seal de salida
(temporizador
como impulso)
A 4.0 S_PULSE
t
El tiempo mximo durante el que la seal de salida permanece a
1 es igual al tiempo de temporizacin programado t. La seal
de salida permanece un tiempo menor a 1 si la seal de entrada
cambia a 0.
Seal de salida
A 4.0 S_PEXT
(temporizador como
impulso prolongado)
Seal de salida
A 4.0
(temporizador como
retardo a la conexin)
Figura 17-8
17-22
S_ODT
Seal de salida
A 4.0 S_ODTS
(temporizador como
retardo a la conexin
con memoria)
Seal de salida
(temporizador como
retardo a la
desconexin)
t
La seal de salida slo cambia de 0 a 1 cuando transcurre el
tiempo programado y la seal de entrada contina a 1.
t
La seal de salida slo cambia de 0 a 1 cuando transcurre el
tiempo programado, independientemente del tiempo que la
seal de entrada permanezca a 1.
A 4.0 S_OFFDT
t
La seal de salida slo cambia de 0 a 1 cuando la seal de
entrada cambia de 1 a 0. La seal de salida permanece a 1
durante el tiempo programado. El temporizador arranca cuando la
seal de entrada cambia de 0 a 1.
18
Resumen
SCL pone a su disposicin una serie de funciones estndar para solucionar las tareas
que se presentan frecuentemente; usted puede llamar a dichas funciones estndar en
sus bloques SCL.
Apartado
Tema
Pgina
18.1
18-2
18.2
18-3
18.3
18.4
18-9
18-11
18-1
Resumen
Categoras
ANY_BIT
ANY_NUM
18-2
18-1
THEN
IF / THEN
implcitaWORD. *)
Conversin
explcita de tipo de
datos
Llamada a la
funcin
S Parmetro de entrada:
Toda funcin para conversin de un tipo de dato tiene exactamente un parmetro
de entrada llamado IN. Como se trata de una funcin con un solo parmetro, es
suficiente especificar el parmetro actual.
S Valor de la funcin
El resultado es siempre el valor de la funcin. Las dos tablas muestran las reglas
que se aplican para convertir una fecha. La tabla 18-3 indica si la funcin correspondiente influye sobre la marca OK.
S Denominacin
Como los tipos de datos del parmetro de entrada y del valor de la funcin derivan de sus nombres respectivos de funcin, no se han incluido especficamente
en la lista de las tablas 18-2 y 18-3: por ejemplo, en la funcin BOOL_TO_BYTE
el tipo de datos del parmetro de entrada es BOOL, y el tipo de datos del valor de
la funcin, BYTE.
Lista de funciones
de conversin
(categora A)
Nombre de la funcin
BOOL_TO_BYTE
BOOL_TO_DWORD
BOOL_TO_WORD
BYTE_TO_DWORD
BYTE_TO_WORD
CHAR_TO_STRING
DINT_TO_REAL
INT_TO_DINT
INT_TO_REAL
WORD_TO_DWORD
18-3
Lista de funciones
de conversin
(categora B)
Nombre de la funcin
Regla de conversin
OK
BYTE_TO_BOOL
BYTE_TO_CHAR
CHAR_TO_BYTE
CHAR_TO_INT
La cadena de bits existente en el parmetro de entrada se registra en el byte de menor valor del valor
de la funcin.
DINT_TO_DATE
DINT_TO_DWORD
DINT_TO_INT
DINT_TO_TOD
DWORD_TO_BOOL
DWORD_TO_BYTE
DWORD_TO_DINT
DWORD_TO_REAL
DWORD_TO_WORD
INT_TO_CHAR
INT_TO_WORD
REAL_TO_DINT
REAL_TO_INT
STRING_TO_CHAR
18-4
Tabla 18-3
Nombre de la funcin
Regla de conversin
OK
TIME_TO_DINT
TOD_TO_DINT
WORD_TO_BOOL
WORD_TO_BYTE
WORD_TO_INT
WORD_TO_BLOCK_DB
BLOCK_DB_TO_WORD
Nota
Adems tiene la posibilidad de utilizar funciones IEC para efectuar conversiones
de tipo de datos. En /235/ encontrar informacin sobre cada una de estas funciones
IEC.
En el ejemplo 18-2 es necesario efectuar una conversin explcita, puesto que el tipo
de datos de destino es de menor rango que el tipo de dato fuente.
FUNCTION_BLOCK FB10
VAR
INTERRUPTOR : INT;
REGULADOR
: DINT;
END_VAR
BEGIN
INTERRUPTOR := DINT_TO_INT (REGULADOR);
(* INT es de menor rango que DINT *)
// ...
END_FUNCTION_BLOCK
Ejemplo
18-2
18-5
En el ejemplo 18-3 es necesaria una conversin, puesto que no est permitido el tipo
de datos REAL para una expresin aritmtica con el operador MOD.
FUNCTION_BLOCK FB20
VAR
valor_int:INT:=17;
KONV2 := INT;
END_VAR
BEGIN
KONV2 := valor_int MOD REAL_TO_INT (2.3);
(* MOD slo debe aplicarse a datos del tipo
INT o DINT. *)
// ...
END_FUNCTION_BLOCK
Ejemplo
18-3
En el ejemplo 18-4 es necesaria una conversin, puesto que no est presente el tipo
de datos correcto para un operador lgico. El operador NOT slo puede aplicarse a
datos del tipo BOOL, BYTE, WORD o DWORD.
FUNCTION_BLOCK FB30
VAR
valor_int: INT := 17;
KONV1
: WORD;
END_VAR
BEGIN
KONV1 := NOT INT_TO_WORD(valor_int);
(* NOT no debe aplicarse a datos del
tipo INT*)
// ...
END_FUNCTION_BLOCK
Ejemplo
18-6
18-4
18-5
18-7
Tarea
ROUND
REAL
DINT
Redondeo
(formar un nmero DINT)
TRUNC
REAL
DINT
Truncado
(formar un nmero DINT)
18-8
S ROUND (3.14)
S ROUND (3.56)
S TRUNC (3.14)
S TRUNC (3.56)
Funcionalidad
Son las funciones para el calcular el valor absoluto, el cuadrado o la raz cuadrada
de una magnitud.
Tabla 18-5
Funciones generales
Nombre de la funcin
Descripcin
ABS
ANY_NUM1)
ANY_NUM
Valor absoluto
SQR
ANY_NUM1)
REAL
Cuadrado
SQRT
ANY_NUM1)
REAL
Raz
1) Tenga en cuenta que a nivel interno los parmetros de entrada de tipo ANY_NUM se trans-
Funciones logartmicas
Nombre de la
funcin
Descripcin
EXP
ANY_NUM1)
REAL
e elevado a IN
EXPD
ANY_NUM1)
REAL
10 elevado a IN
LN
ANY_NUM1)
REAL
Logaritmo natural
LOG
ANY_NUM1)
REAL
1)
Tenga en cuenta que a nivel interno los parmetros de entrada del tipo ANY_NUM se transforman en variables reales.
Nota
Adems tiene la posibilidad de utilizar funciones IEC como funcin numrica
estndar. En este caso copie la funcin deseada de la librera de STEP 7
STDLIBS\IEC en el directorio de su programa. En /235/ encontrar informacin
sobre cada una de estas funciones IEC.
18-9
Lista de las
funciones
trigonomtricas
Funciones trigonomtricas
Nombre de la funcin
Descripcin
ACOS
ANY_NUM1)
REAL
Arco coseno
ASIN
ANY_NUM1)
REAL
Arco seno
ATAN
ANY_NUM1)
REAL
Arco tangente
COS
ANY_NUM1)
REAL
Coseno
SIN
ANY_NUM1)
REAL
Seno
TAN
ANY_NUM1)
REAL
Tangente
1)
Ejemplos
Tenga en cuenta que a nivel interno los parmetros de entrada del tipo ANY_NUM se transforman en variables reales.
La tabla 18-8 muestra llamadas posibles a funciones estndar numricas y sus resultados respectivos:
Tabla 18-8
Resultado
529
60.340 ...
1_000
RESULTADO := LN (2.718_281);
2.389_166 ...
PI := 3. 141 592;
0.5
1.047_197
(=PI / 3)
18-10
Funcionalidad
Cada funcin estndar de cadena de bits tiene dos parmetros de entrada que se denominan IN o N. El resultado es siempre el valor de la funcin. La tabla 18-9 muestra los nombres del valor de las funciones y los tipos de datos de los dos parmetros
de entrada, adems del valor de la funcin. Significan lo siguiente:
S Parmetro de entrada IN: bfer en el que se ejecutan las operaciones de desplazamiento de bits.
Lista de las
funciones
Nombre de la
funcin
Tipo de dato
Tipo de dato
Tipo de dato
del parmetro del parmetro del valor de la
de entrada
de entrada
funcin
IN
N
ROL
BOOL
INT
BOOL
BYTE
INT
BYTE
WORD
INT
WORD
DWORD
INT
DWORD
BOOL
INT
BOOL
BYTE
INT
BYTE
WORD
INT
WORD
DWORD
INT
DWORD
BOOL
INT
BOOL
BYTE
INT
BYTE
WORD
INT
WORD
DWORD
INT
DWORD
BOOL
INT
BOOL
BYTE
INT
BYTE
WORD
INT
WORD
DWORD
INT
DWORD
ROR
SHL
SHR
Tarea
El valor existente en el
parmetro
t IN rota
t hacia
h i
la izquierda tanto puestos como indique el con
contenido del parmetro N.
El valor existente en el
t IN rota
t hacia
h i
parmetro
la derecha tantos puestos
conte
como indique el contenido del parmetro N.
En el valor existente en
el parmetro IN se desplazan
l
h i la
hacia
l izquierda
i i d
tantos bits como indique
el contenido del parmetro N y se sustituye por 0
p
el mismo nmero de posiciones
i i
en ell llado
d dderecho.
En el valor existente en
el parmetro IN se desplazan
l
hacia
h i la
l derecha
d
h
tantos bits como indique
el contenido del parmetro N y se reemplazan
por 0 el mismo nmero
de posiciones en el lado
izquierdo.
18-11
Nota
Adems tiene la posibilidad de utilizar funciones IEC para operaciones de cadena
de bits. En este caso copie la funcin deseada desde la librera STEP 7
STDLIBS\IEC en el directorio de su programa. En /235/ encontrar ms informacin sobre cada una de las funciones IEC.
Ejemplos
RESULTADO
RESULTADO := ROL
2#0111_1010
(IN:=2#1101_0011, N:=5);
(= 122 decimal)
// IN := 211 decimal
RESULTADO := ROR
2#1111_0100
(IN:=2#1101_0011, N:=2);
(= 244 decimal)
// IN := 211 decimal
RESULTADO := SHL
2#1001_1000
(IN:=2#1101_0011, N:=3);
(= 152 decimal)
// IN := 211 decimal
RESULTADO := SHR
2#0011_0100
(IN:=2#1101_0011, N:=2);
(= 52 decimal)
// IN := 211 decimal
18-12
19
Interface de llamada
Resumen
Apartado
Tema
Pgina
19.1
Interface de llamada
19-2
19.2
Interface de transmisin a OB
19-3
19-1
Interface de llamada
Resumen
Ejemplo: SFC 31
Las siguientes lneas de comando le permiten llamar a la funcin del sistema SFC31
(consultar alarma horaria):
FUNCTION_BLOCK FY20
VAR
Resultado: INT;
END_VAR
BEGIN
// ...
Resultado:= SFC31 (OB_NR:= 10,ESTADO:= MW100 );
// ...
// ...
END_FUNCTION_BLOCK
Ejemplo
19-1
Resultados
El valor de la funcin es del tipo entero. Si su valor es mayor o igual que 0, el bloque se ha ejecutado sin errores; si el valor es menor que 0 se ha producido un error.
Despus de efectuar la llamada puede valorar el parmetro de salida ENO definido
implcitamente.
Llamada
condicional
Para efectuar una llamada condicional primero debe asignar 0 a los parmetros de
entrada EN predefinidos (por ejemplo, mediante la entrada E0.3), y despus no es
necesario llamar al bloque. Cuando EN sea 1 se llamar a la funcin. En este caso el
parmetro de salida ENO pasa a 1 (en caso contrario, a 0) en caso de que durante la ejecucin del bloque no se produzca ningn error.
Nota
En los bloques de funcin o en los bloques de funcin del sistema las informaciones
que pueden transmitirse con el valor de la funcin se guardan en el parmetro de
salida. A continuacin se valoran mediante el bloque de datos de instancia. Consulte ms informacin en el captulo 16.
19-2
Interface de llamada
Bloques de organizacin
S al arrancar la CPU,
S en ejecucin cclica o por ciclos de tiempo,
S a determinadas horas del da o en determinados das,
S despus de que transcurra un tiempo predefinido,
S cuando aparezcan errores,
S cuando se produzcan alarmas del proceso o de comunicacin.
Los bloques de organizacin se ejecutan siguiendo el orden de prioridad asignado
por usted.
No todas las CPU pueden ejecutar todos los OB disponibles en S7. En las hojas de
datos de su CPU podr consultar los OB de que dispone.
Informacin adicional
S /70/ Manual:
Autmata programable S7-300, Configuracin, instalacin y datos de las CPU
Este manual incluye las hojas de datos que describen las prestaciones de las diferentes CPU del S7-300. Se incluyen tambin los posibles sucesos para el arranque de cada OB.
S /100/ Manual:
Sistemas de automatizacin S7-400, M7-400, Configuracin e instalacin
Este manual incluye las hojas de datos que describen las prestaciones de las diferentes CPU del S7-400. Tambin se incluyen los posibles sucesos para el arranque de cada OB.
19-3
Interface de llamada
19-4
Anexos
Descripcin formal del lenguaje
Reglas lxicas
Reglas sintcticas
Bibliografa
S-6
Descripcin del
lenguaje SCL
La base para la descripcin del lenguaje SCL dentro de cada uno de los captulos
son los diagramas sintcticos, que le proporcionarn una vision de conjunto de la
estructura sintctica (es decir, gramatical) de SCL. En los anexos B y C encontrar
un resumen completo de todos los diagramas, con los elementos de lenguaje correspondientes.
Apartado
Tema
Pgina
A.1
Resumen
A-2
A.2
Resumen de terminales
A-5
A.3
A-6
A.4
A-7
A.5
A-9
A.6
A-12
A.7
Resumen de nonterminales
A-14
A.8
Resumen de token
A-14
A.9
Identificadores
A-15
A.10
A-16
A.11
A-18
A-1
A.1
Resumen
Qu es un diagrama sintctico?
Secuencia
Bloque 3
Bloque 1
Bloque 2
Bloque 4
Opcin
Bloque 5
Iteracin
Alternativa
Figura A-1
El diagrama sintctico se lee de izquierda a derecha. Deben observarse las estructuras que tienen las reglas:
Terminal
Elementos nonterminales
<Nombre de regla>
Token
<Nombre de regla>
El nombre de regla siempre en
maysculas
Figura A-2
A-2
Reglas
Las reglas que puede utilizar para estructurar su programa en SCL se clasifican en
dos niveles: reglas lxicas y reglas sintcticas.
Reglas lxicas
Las reglas lxicas describen la estructura de los elementos (token) que se procesan
durante el anlisis lxico del compilador. Por ello, en la escritura no hay libertad de
formato y deben respetarse estrictamente las reglas. En particular esto significa que:
Letra
_
Guin inferior
_
Guin inferior
Cifra
Figura A-3
Letra
Cifra
Reglas sintcticas
Programa SCL
Figura A-4
Reglas
sintcticas
Libertad de formato
Reglas lxicas
Sin
libertad de formato
A-3
Consideraciones
formales
Semntica
En las reglas slo puede representarse la estructura formal del lenguaje, de la cual
no siempre puede deducirse su significado, es decir, su semntica. Por ello, en puntos importantes se escriben informaciones adicionales junto a las reglas. Ejemplos:
S con elementos de igual clase y diferente significado se indica un nombre adicional: p.ej., en la regla de indicacin de fecha se indica ao, mes o da en SECUENCIA DE CIFRAS DECIMALES. El nombre indica a la utilizacin.
S Las restricciones importantes se hacen constar junto a las reglas: p.ej., con un
smbolo que debe definirse en la tabla de smbolos.
A-4
A.2
Resumen de terminales
Definicin
Figura A-5
Resumen
Smbolos de terminales
En los apartados A.3 y A.4 se exponen los tipos de utilizacin de cada uno de los
caracteres. Son los siguientes:
A-5
A.3
Resumen
En las tablas siguientes los terminales se especifican indicando el conjunto de elementos del juego de caracteres ASCII.
Letras y cifras
Las letras y cifras son los caracteres utilizados principalmente. El IDENTIFICADOR consta, p.ej., de letras, cifras y guiones inferiores.
Tabla A-1
Letras y cifras
Caracteres
Subgrupo
Letra
Mayscula
A.. Z
Minscula
a.. z
Cifra
Cifra decimal
0.. 9
Cifra octal
Cifra octal
0.. 7
Cifra hexadecimal
Cifra hexadecimal
0.. 9,
Bit
Cifra binaria
0, 1
El juego de caracteres ASCII ampliado completo puede utilizarse en cadenas, comentarios y smbolos.
Tabla A-2
Caracteres
Subgrupo
Caracteres imprimbles
Caracteres de complementario
Signo de dlar
Apstrofo
$P o $p
Salto de pgina
(formfeed page)
$L o $l
Salto de lnea
(linefeed)
$R o $r
Retorno de carro
(carriage return)
$T o $t
Tabulador
Signos de control
A-6
A.. F, a.. f
A.4
En reglas lxicas
En la table A-3 puede consultar el uso de caracteres aislados del juego de caracteres
ASCII que sirven de caracteres de formateado y separacin en al mbito de las reglas lxicas (ver anexo B).
Tabla A-3
Caracteres
:
Descripcin
Carcter de separacin entre horas, minutos y segundos
Atributos
Para literales
Tabla A-4
Prefijo
Identificador de
Regla lxica
2#
LITERAL ENTERO
8#
LITERAL ENTERO
16#
LITERAL ENTERO
D#
Dato de temporizador
FECHA
DATE#
Dato de temporizador
FECHA
DATE_AND_
TIME#
Dato de temporizador
FECHA Y HORA
DT#
Dato de temporizador
FECHA Y HORA
Exponente
Exponente
MS
Milisegundos
(Regla: representacin escalonada)
Carcter de separacin para intervalo de tiempo (segundos) Segundos (Regla: representacin escalonada)
T#
Dato de temporizador
INTERVALO
TIME#
Dato de temporizador
INTERVALO
TIME_OF_
DAY#
Dato de temporizador
TOD#
Dato de temporizador
A-7
En reglas
sintcticas
Tabla A-5
En la tabla A-5 puede consultar la utilizacin de caracteres concretos como caracteres de formateado y de separacin en el mbito de reglas sintcticas y en comentarios y atributos (v. apt. B.2 y B.3).
Caracteres de formateado y separacin en las reglas sintcticas
Caracteres
Descripcin
..
Indicacin de rango
( )
[ ]
Declaracin de arrays
Especficacin de tipo de datos array, especificacin, espeVariable estructurada, array parcial, indizado cificacin de tipo de datos STRING
en variables globales y strings
(* *)
Bloque de comentario
Ver anexo B
//
Lnea de comentario
Ver anexo B
{ }
Bloque de atributos
Especificacin de atributos
Operadores
Tabla A-6
En la tabla A-6 se muestran todos los operadores de SCL, palabras clave (p.ej.
AND) y los operadores habituales formados por caracteres individuales. Esta tabla
es vlida para nemotcnica SIMATIC y nemotcnica IEC.
Operadores SCL
Operador
Descripcin
Regla sintctica
:=
Operador de asignacin
+, -
+, -, +, /
MOD; DIV
A-8
**
NOT
Expresin
<,>, <=,>=,=,<>
Operador de comparacin
Operador de comparacin
A.5
Palabras clave e
identificadores
predefinidos
Tabla A-7
Palabras clave
Descripcin
Regla sintctica
AND
Operador lgico
ANY
ARRAY
BEGIN
BLOCK_DB
BLOCK_FB
BLOCK_FC
BLOCK_SDB
BOOL
BY
Inicio de salto
Instruccin FOR
BYTE
CASE
Instruccin CASE
CHAR
Tipo de caracteres
CONST
Bloque de constantes
CONTINUE
Instruccin CONTINUE
COUNTER
DATA_BLOCK
Bloque de datos
DATE
Tipo de temporizador
DATE_AND_TIME
Ver tabla C4
DINT
DIV
Operador de divisin
DO
DT
Ver tabla C4
DWORD
ELSE
Instruccin IF
ELSIF
Instruccin IF
EN
A-9
Tabla A-7
Palabras clave
Descripcin
Regla sintctica
END
END_CASE
Instruccin CASE
END_CONST
Bloque de constantes
END_DATA_BLOCK
Bloque de datos
END_FOR
Instruccin FOR
END_FUNCTION
Final de funcin
Funcin
END_FUNCTION_BLOCK
Bloque de funcin
END_IF
Final de instruccin IF
Instruccin IF
END_LABEL
END_TYPE
Final de UDT
END_ORGANIZATION_BLOCK
Bloque de organizacin
END_REPEAT
Instruccin REPEAT
END_STRUCT
END_VAR
END_WHILE
Instruccin WHILE
EXIT
EXIT
FALSE
FOR
Instruccin FOR
FUNCTION
Inicio de funcin
Funcin
FUNCTION_BLOCK
Bloque de funcin
GOTO
IF
Instruccin IF
INT
LABEL
MOD
NIL
Puntero cero
NOT
Expresin, operando
OF
OK
OR
Operador lgico
ORGANIZATION_BLOCK
Blque de organizacin
A-10
Tabla A-7
Palabras clave
Descripcin
Regla sintctica
POINTER
V. cap. 10
REAL
REPEAT
Instruccin REPEAT
RETURN
Instruccin RETURN
S5TIME
Tipo de temporizador
STRING
STRUCT
THEN
Instruccin IF
TIME
Tipo de temporizador
TIMER
TIME_OF_DAY
Tipo de temporizador
TO
Instruccin FOR
TOD
Tipo de temporizador
TRUE
TYPE
VAR
VAR_TEMP
UNTIL
Instruccin REPEAT
VAR_INPUT
Bloque de parmetros
VAR_IN_OUT
Bloque de parmetros
VAR_OUTPUT
Bloque de parmetros
WHILE
Instruccin WHILE
WORD
VOID
V. cap. 8
XOR
Operador lgico
Operador lgico
A-11
A.6
Prefijo de tamao
Bit
AB
QB
Byte
AD
QD
Doble palabra
AN
QW
Palabra
AX
QX
Bit
Bloque de datos
Bit
DB
DB
Bloque de datos
Byte
DD
DD
Bloque de datos
Doble palabra
DW
DW
Bloque de datos
Palabra
DX
DX
Bloque de datos
Bit
Bit
EB
IB
Byte
ED
ID
Doble palabra
EW
IW
Palabra
EX
IX
Bit
Marca
Bit
MB
MB
Marca
Byte
MD
MD
Marca
Doble palabra
MW
MW
Marca
Palabra
MX
MX
Marca
Bit
PAB
PQB
Byte
PAD
PQD
Doble palabra
PAW
PQW
Palabra
PEB
PIB
Byte
PED
PID
Doble palabra
PEW
PIW
Palabra
A-12
Palabras clave de
bloques
Tabla A-9
Nemotcnica
SIMATIC
DB
DB
FB
FB
FC
FC
Funcin (Function)
OB
OB
SDB
SDB
SFC
SFC
SFB
SFB
Temporizador (Timer)
UDT
UDT
Contador (Counter)
A-13
A.7
Resumen de nonterminales
Definicin
Nonterminal
<Nombre de regla>
Cualquier nombre de regla
Figura A-6
Nonterminal
A.8
Resumen de token
Definicin
Token
<Nombre de regla>
Nombre de regla
siempre en maysculas
Figura A-7
Resumen
Token
S Identificadores
S Asignaciones de nombre en SCL
S Constantes predefinidas y marcas OK
A-14
A.9
Identificadores
Identificadores en
SCL
Por identificadores nos referimos a objetos del lenguaje SCL. La tabla A-10 le informa sobre las clases de identificadores:
Tabla A-10
Tipo de identificador
Observaciones, ejemplos
Palabras clave
Nombres predefinidos
Nombres de
S Tipos de datos estndar (p.ej.: BOOL, BYTE, INT)
S Funciones estndar predefinidas, p. ej. ABS
S Constantes estndar TRUE y FALSE
Maysculas y minsculas
Clase de identificador
Diferenciacin
Palabras clave
No
No
No
No
Por lo tanto, los nombres de las funciones estndar (p.ej., BYTE_TO_WORD y ABS)
tambin pueden escribirse en minsculas. Lo mismo se aplica para los parmetros de
funciones de temporizacin y conteo, p.ej., SV, se o ZV.
A-15
Asignacin de
nombres de libre
eleccin
S Puede asignar nombres dentro de SCL. Dichos nombres deben cumplir la regla
IDENTIFICADOR (v. fig. A-8). La regla IDENTIFICADOR puede utilizarla
para cualquier nombre dentro de SCL.
Letra
Letra
Guin inferior
Guin inferior
Cifra
Cifra
SIMBOLO
Figura A-8
Reglas para la
asignacin de
nombres
Carcter
imprimible
S Para la asignacin de nombres lo mejor es seleccionar nombres claros y expresivos que ayuden a la inteligibilidad del programa.
S Asegrese de que el mismo nombre no ha sido asignado previamente por el sistema; p.ej., mediante identificadores para tipos de datos o funciones estndar.
S Rango de validez: en los nombres que tienen validez global, el rango de validez
se extiende al programa completo. Los nombres vlidos localmente slo se aplican dentro de un bloque. As es posible utilizar un mismo nombre en diferentes
bloques. La tabla A-12 le informa sobre las posibilidades de que dispone.
A-16
Limitaciones de
los nombres
La tabla A-12 le muestra los casos en que puede utilizar nombres que cumplen la
regla de IDENTIFICADOR.
Tabla A-12
Utilizacin de IDENTIFICADORES
IDENTIFICADOR
Descripcin
Regla
Nombre de bloque
Nombre de atributo
Asignacin de atributo
Nombre de constante
Meta de salto
Nombre de variable
Nombre de instancia
local
A-17
IDENTIFICACION
DE BLOQUE
Palabra clave
de bloque
Nmero
Smbolo
Figura A-9
Constantes predefinidas
Nemotcnica
Descripcin
FALSE
TRUE
Tabla A-14
Marcas
Nemotcnica
A-18
Descripcin
EN
ENO
OK
Reglas lxicas
Reglas lxicas
Apartado
Tema
Pgina
B.1
Identificaciones
B-2
B.1.1
Literales
B-4
B.1.2
Direccionamiento absoluto
B-9
B.2
Comentarios
B-11
B.3
Atributos de bloque
B-12
Las reglas lxicas describen la estructura de los elementos (token) que se procesan
en el anlisis lxico del compilador. No se dispone de libertad de formato para la
escritura y deben respetarse estrictamente las reglas. Esto significa en concreto que:
S Identificaciones
S Literales
S Direccionamiento absoluto
B-1
Reglas lxicas
B.1
Identificaciones
Tabla B-1
Identificaciones
Regla
Diagrama sintctico
IDENTIFICADOR
Letra
Letra
Letra
Guin inferior
Guin inferior
Cifra
Identificacin de
bloque
Cifra
IDENTIFICACION DE UDT
Palabra clave
de bloque
DB, FB, FC, OB, UDT
Nmero
IDENTIFICADOR
Smbolo
Identificacin de
temporizador
Nmero
T
en nemotcnica SIMATIC
y en nemotcnica IEC
IDENTIFICADOR
Smbolo
B-2
Reglas lxicas
Tabla B-1
Identificaciones, continuacin
Regla
Diagrama sintctico
IDENTIFICACION
DE CONTADOR
Nmero
Z
en nemotcnica SIMATIC
C en nemotcnica IEC
IDENTIFICADOR
Smbolo
Palabra clave de
bloque
OB
Bloque de organizacin
FC
Funcin
SFC
FB
SFB
DB
Bloque de datos
Tipo de datos de usuario
(User Data Type)
UDT
Smbolo
Carcter
imprimible
Nmero
Cifra
B-3
Reglas lxicas
B.1.1
Tabla B-2
Literales
Literales
Regla
Diagrama sintctico
LITERAL ENTERO
+
SECUENCIA DE
CIFRAS DECIMALES
1)
Secuencia de cifras binarias
Secuencia de cifras octales
1)
Slo en los tipos de
datos INT y DINT
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS
DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Exponente
Cifra decimal
_
Cifra decimal: 0 9
Secuencia de cifras
binarias
2#
Guin inferior
Cifra binaria
_
Cifra binaria: 0 1
Secuencia de cifras
octales
8#
Guin inferior
Cifra octal
_
Cifra octal: 0 8
B-4
Guin inferior
Reglas lxicas
Tabla B-2
Literales, continuacin
Regla
Diagrama sintctico
Secuencia de cifras
hexadecimales
Cifra hexadecimal
16#
Cifra hexadecimal: 0 9
A-F
Guin inferior
Exponente
E
+
SECUENCIA DE
CIFRAS DECIMALES
LITERAL DE
CARACTER
Carcter
Literal STRING
Interrupcin
de string
Carcter
Carcter
Carcter
Carcter
imprimible
$
Smbolo de escape $
Carcter
complementario
$
Smbolo
de control
PoLoRoT
Cifra hexadecimal
Cifra hexadecimal
B-5
Reglas lxicas
Tabla B-2
Literales, continuacin
Regla
Diagrama sintctico
Interrupcin de string
Blanco (blank)
Salto de lnea (linefeed)
Retorno de carro (carriage return)
Salto de pgina (formfed, page) o
Tabulador horizontal (tabulator)
Signo de
formateado
$>
$<
Comentario
Fecha
DATE#
Indicacin de fecha
D#
Intervalo
Representacin decimal
TIME#
T#
Representacin escalonada
Representacin decimal
Toda unidad de tiempo (p.ej. horas, minutos) slo puede indicarse una vez.
Debe respetarse la siguiente secuencia: das, horas, minutos, segundos, milisegundos.
Hora del da
TIME_OF_DAY#
Indicacin de hora del da
TOD#
Fecha y hora
DATE_AND_TIME#
Indicacin de fecha
DT#
B-6
Reglas lxicas
Tabla B-2
Literales, continuacin
Regla
Diagrama sintctico
Indicacin de fecha
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Ao
Indicacin de hora
del da
SECUENCIA DE
CIFRAS DECIMALES
Indicacin de segundos
SECUENCIA DE
CIFRAS DECIMALES
Mes
Indicacin de horas
SECUENCIA DE
CIFRAS DECIMALES
Da
SECUENCIA DE
CIFRAS DECIMALES
Indicacin de minutos
SECUENCIA DE
CIFRAS DECIMALES
Indicacin de milisegundos
B-7
Reglas lxicas
Tabla B-2
Literales, continuacin
Regla
Representacin
decimal
Diagrama sintctico
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Das
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Horas
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Segundos
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
MS
Milisegundos
Minutos
Representacin
escalonada
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
Das
SECUENCIA DE
CIFRAS DECIMALES
Horas
SECUENCIA DE
CIFRAS DECIMALES
Minutos
SECUENCIA DE
CIFRAS DECIMALES
Segundos
MS
Milisegundos
B-8
Reglas lxicas
B.1.2
Tabla B-3
Direccionamiento absoluto
Direccionamiento absoluto
Regla
Acceso simple a
memoria
Diagrama sintctico
IDENTIFICADOR
DE OPERANDO
Direccin
Acceso absoluto
IDENTIFICADOR
Acceso simblico
Smbolo
Indice
Acceso indizado a
memoria
IDENTIFICADOR
DE OPERANDO
Expresin
bsica
Expresin
bsica
Acceso absoluto a
DB
Prefijo de
memoria
Prefijo de
tamao
Identificador de operando DB
Direccin
Acceso absoluto
Indice
Acceso indizado a
DB
Identificador de
operando DB
Expresin
bsica
Expresin
bsica
Acceso estructurado
a DB
Identificacin de DB
Variable
simple
B-9
Reglas lxicas
Tabla B-3
Regla
Identificador de
operando DB
Diagrama sintctico
Identificador de operando
IDENTIFICADOR
DE DB
Prefijo de memoria
Prefijode
tamao
E
A
Entrada
Salida
Marca
PE
PI
Entrada perifrica
PA
PQ
Salida perifrica
Nemotcnica SIMATIC
Nemotcnica IEC
Prefijo de tamao
para memoria y DB
X
Bit
Byte
Palabra
Doble palabra
Direccin de
memoria y DB
Nmero
Nmero
Slo con direccin de bit
Acceso a instancia
local
IDENTIFICADOR
Variable
simple
B-10
Reglas lxicas
B.2
Comentarios
Tenga en cuenta
Comentarios
Regla
Diagrama sintctico
Comentario
Lnea de comentario
Bloque de comentario
Lnea de comentario
Bloque de
comentario
//
(*
Carcter
imprimible
CR
Carcter
*)
B-11
Reglas lxicas
B.3
Atributos de bloque
Tenga en cuenta
Tabla B-5
Atributos
Regla
Diagrama sintctico
Ttulo
TITLE
Versin
VERSION
Carcter
imprimible
SECUENCIA DE
CIFRAS DECIMALES
SECUENCIA DE
CIFRAS DECIMALES
0-15
0-15
Proteccin de bloque
KNOW_HOW_PROTECT
Mx. 8 caracteres
Autor
AUTHOR
NAME
IDENTIFICADOR
Nombre
Mx. 8 caracteres
IDENTIFICADOR
Familia de bloque
Mx. 8 caracteres
FAMILY
IDENTIFICADOR
mx. 24 caracteres
IDENTIFICADOR
:=
carcter
imprimible
B-12
Reglas sintcticas
Consideraciones
formales
Tema
Pgina
C.1
C-2
C.2
C-4
C.3
C-8
C.4
Tabla de instrucciones
C-11
C.5
Asignacin de valores
C-13
C.6
C-16
C.7
Instrucciones de control
C-18
Toda regla tiene un nombre antepuesto. Cuando la regla se utiliza en una regla superior, su nombre aparece encerrado en un rectngulo.
Si el nombre del rectngulo est escrito con maysculas, se trata de un token, descrito en las reglas lxicas.
Sobre los nombres de reglas encerrados en crculos o en rectngulos con esquinas
redondeadas, puede encontrar informacin en el anexo A.
Tenga en cuenta
C-1
Reglas sintcticas
C.1
Tabla C-1
Regla
Diagrama sintctico
Programa en SCL
Bloque de organizacin
Unidad de programa
SCL
Funcin
Bloque de funcin
Bloque de datos
Bloque de organizacin
ORGANIZATION_BLOCK
BEGIN
IDENTIFICACION
DE OB
Tabla de instrucciones
Tabla de declaracin de OB
END_ORGANIZATION_BLOCK
VOID
Funcin
Tenga en cuenta que
en las funciones que
no tienen VOID en la
tabla de instrucciones, el valor de respuesta debe asignarse al nombre de
la funcin.
FUNCTION
Tabla de declaracin de FC
IDENTIFICACION
DE FC
BEGIN
Especificacin
de tipo de datos
Tabla de instrucciones
END_FUNCTION
Bloque de funcin
FUNCTION_BLOCK
BEGIN
C-2
IDENTIFICACION
DE FB
Tabla de instrucciones
Tabla de declaracin de FB
END_FUNCTION_BLOCK
Reglas sintcticas
Tabla C-1
Regla
Diagrama sintctico
Bloque de datos
IDENTIFICACION
DE DB
DATA_BLOCK
BEGIN
Tipo de datos de
usuario
TYPE
Tabla de declaracin de DB
Tabla de asignaciones de DB
IDENTIFICACION
DE UDT
Especificacin
de tipo de datos
STRUCT
END_DATA_BLOCK
END_TYPE
C-3
Reglas sintcticas
C.2
Tabla C-2
Regla
Tabla de declaracin
de OB
Diagrama sintctico
Bloque de constantes
Tabla de declaracin
de FC
Bloque de constantes
Tabla de declaracin
de FB
Bloque de constantes
Tabla de declaracin
de FB
Interface
IDENTIFICACION
DE UDT
Especificacin de tipo
de datos STRUCT
C-4
Reglas sintcticas
Tabla C-3
Regla
Diagrama sintctico
Tabla de asignacin
de DB
Variable simple
Constante
:=
Bloque de constantes
CONST
IDENTIFICADOR
Expresin
simple
:=
END_CONST
Nombre de constante
Bloque de metas de
salto
IDENTIFICADOR
LABEL
END_LABEL
Meta de salto
,
Bloque de variables
estticas
Declaracin
de variable
VAR
END_VAR
Declaracin
de instancia
Declaracin de variable
IDENTIFICADOR
1)
Especificacin
de tipo de datos
Nombre de variable,
nombre de parmetro
o
nombre de componente
Inicializacin
de tipo de datos
No en caso de inicializacin
mx. 24 caracteres
IDENTIFICADOR
:=
carcter
imprimible
C-5
Reglas sintcticas
Tabla C-3
Regla
Diagrama sintctico
Inicializacin de tipo
de dato
Constante
Inicializacin
de datos simples
:=
Constante
Constante
SECUENCIA DE
CIFRAS DECIMALES
)
Tabla de inicializacin de array
Factor de repeticin
,
Los FB deben
existir previamente
Declaracin de instancia
IDENTIFICACION
DE FB
IDENTIFICADOR
IDENTIFICACION
DE SFB
Bloque de variables
temporales
VAR_TEMP
Declaracin
de variables
END_VAR
No es posible inicializacin.
C-6
Reglas sintcticas
Tabla C-3
Regla
Bloque de parmetros
Diagrama sintctico
VAR_INPUT
Declaracin
de variables
VAR_OUTPUT
END_VAR
VAR_IN_OUT
La inicializacin slo es posible para VAR_INPUT y VAR_OUTPUT.
Especificacin de
tipo de datos
Tipo de datos
simple
DATE_AND_TIME
Especificacin de
tipo de datos STRING
Especificacin de
tipo de datos ARRAY
Especificacin de
tipo de datos STRUCT
IDENTIFICACION
DE UDT
Especificacin de tipo
de datos de parmetro
C-7
Reglas sintcticas
C.3
Tabla C-4
Regla
Diagrama sintctico
Tipo de datos
de bit
Tipo de
caracteres
Tipo de datos
numricos
Tipo de
temporizador
BOOL
Bit
BYTE
Byte
WORD
Palabra
DWORD
Doble palabra
Tipo de caracteres
CHAR
Especificacin de
tipo de datos
STRING
STRING
Expresin
simple
INT
DINT
REAL
C-8
Entero
Entero, precisin doble
Nmero real
Reglas sintcticas
Tabla C-4
Regla
Diagrama sintctico
Tipo de temporizador
S5TIME
Temporizador,
formato S5
TIME
Temporizador
TIME_OF_DAY
Hora del da
TOD
DATE
Fecha
DATE_AND_TIME
DATE_AND_TIME#
Indicacin de fecha
DT#
Especificacin de ndice
Especificacin de
tipo de datos ARRAY
ARRAY
Indice
1
..
Indice
n
,
Mx. 5 repeticiones = 6 dimensiones
OF
Especificacin de
tipo de datos
STRUCT
Especificacin
de tipo de datos
STRUCT
Declaracin
de componentes
END_STRUCT
No olvide terminar la
palabra clave
END_STRUCT con
punto y coma.
C-9
Reglas sintcticas
Tabla C-4
Regla
Diagrama sintctico
Declaracin de componentes
IDENTIFICADOR
Especificacin
de tipo de datos
Inicializacin
de datos
Nombre de
componente
Especificacin de tipo
de parmetro
TIMER
COUNTER
ANY
POINTER
Contador
Cualquier tipo
Direccin
BLOCK_FC
Funcin
BLOCK_FB
Bloque de funcin
BLOCK_DB
Bloque de datos
BLOCK_SDB
C-10
Temporizaddor
Reglas sintcticas
C.4
Tabla de instrucciones
Tabla C-5
Regla
Area de instrucciones
Diagrama sintctico
IDENTIFICADOR
Instruccin
Meta de salto
INSTRUCCION
Asignacin
de valores
Procesamiento
de subrutinas
Instruccin
de control
Asignacin de valor
Variable simple
:=
Expresin
Variable absoluta
en reas de memoria de la CPU
Variable en DB
Variable ampliada
Variable simple
Variable absoluta
en reas de memoria de la CPU
Variable en DB
Llamada a FC
C-11
Reglas sintcticas
Tabla C-5
Regla
Variable simple
Diagrama sintctico
IDENTIFICADOR
Nombre de variable o
nombre de parmetro
Variable
estructurada
Array
simple
Variable estructurada
IDENTIFICADOR
Es al principio,
el identificador
nombre de variable o
nombre de parmetro, y
Array
simple
.
C-12
Reglas sintcticas
C.5
Asignacin de valores
Tabla C-6
Regla
Expresin
Diagrama sintctico
Operando
Operador
lgico bsico
Expresin
Expresin
Operador
de comparacin
Operador aritmtico bsico
Potencia
**
Expresin
Exponente
Expresin
Ms unitario
Menos unitario
NOT
Negacin
(
Expresin
Expresin simple
+
Expresin
simple
Multiplicacin
simple
Multiplicacin simple
Multiplicacin
simple
*
/
DIV
MOD
Constante
Expresin
simple
C-13
Reglas sintcticas
Tabla C-6
Regla
Diagrama sintctico
Operando
Constante
Variable ampliada
(Expresin)
NOT
Operando
Variable simple
Variable ampliada
Variable absoluta
para reas de memoria de la CPU
Variable en DB
Constante
Constante
Valor numrico
Secuencia de caracteres
Nombre de constante
Exponente
Variable ampliada
C-14
&
XOR
OR
Reglas sintcticas
Tabla C-6
Regla
Diagrama sintctico
Operador aritmtico
bsico
*
MOD
DIV
<=
>=
Operador de comparacin
<
>
<>
C-15
Reglas sintcticas
C.6
Tabla C-7
Regla
Llamada a FB
Diagrama sintctico
FB: Bloque de funcin
SFB: Bloque de funcin del sistema
IDENTIFICACION
DE FB
Nombre de instancia global
IDENTIFICACION
DE SFB
IDENTIFICACION
DE DB
Parmetro
de DB
IDENTIFICADOR
Nombre de instancia local
Llamada a funcin
IDENTIFICACION
DE FC
IDENTIFICACION
DE SFC
IDENTIFICADOR
FC: Funcin
SFC: Funcin del sistema
Funcin estndar realizada en el compilador
Parmetro de FB
Parmetro
de FC
Asignacin
de entrada
Asignacin de
entrada/salida
,
Parmetro de FC
Expresin
Asignacin
de entrada
Asignacin de entrada
y asignacin de
entrada/salida
,
C-16
Reglas sintcticas
Tabla C-7
Regla
Diagrama sintctico
Asignacin de entrada
Parmetro actual
Expresin
IDENTIFICACION
DE TEMPORIZADOR
IDENTIFICADOR
:=
IDENTIFICACION
DE CONTADOR
IDENTIFICACION
DE BLOQUE
Parmetro formal
Asignacin de salida
y de entrada/salida
IDENTIFICADOR
Variable
ampliada
:=
Parmetro actual
Parmetro formal
Asignacin de entrada/salida
IDENTIFICADOR
Nombre del parmetro
de entrada/salida
:=
Variable
ampliada
Parmetro actual
Parmetro formal
C-17
Reglas sintcticas
C.7
Instrucciones de control
Tabla C-8
Regla
Diagrama sintctico
Instruccin IF
IF
Expresin
THEN
Area de
instrucciones
THEN
Area de
instrucciones
Condicin
ELSIF
Expresin
Condicin
No olvide terminar la
palabra clave
END_IF con punto y
coma.
Area de
instrucciones
ELSE
END_IF
Instruccin CASE
CASE
Expresin
OF
Valor
Lista de valores
No olvide terminar la
palabra clave
END_CASE con
punto y coma.
ELSE
Area de
instrucciones
Area de
instrucciones
Lista de valores
END_CASE
Valor
Valor
..
Valor
C-18
Reglas sintcticas
Tabla C-8
Regla
Diagrama sintctico
Valor
LITERAL ENTERO
IDENTIFICADOR
Nombre de constante
Instruccin
FOR
Instruccin
WHILE
Instruccin
REPEAT
Instruccin
CONTINUE
Instruccin
EXIT
Instruccin
RETURN
Instruccin
GOTO
Instruccin FOR
Asignacin
inicial
FOR
Expresin
bsica
TO
Expresin
bsica
BY
No olvide terminar la
palabra clave
END_FOR con punto
y coma.
DO
Area de
instrucciones
para paso
END_FOR
Asignacin inicial
Variable
simple
del tipo de datos
INT/DINT
:=
Expresin
bsica
para valor inicial
C-19
Reglas sintcticas
Tabla C-8
Regla
Diagrama sintctico
Instruccin WHILE
WHILE
Expresin
Area de
instrucciones
DO
END_WHILE
No olvide terminar la
palabra clave
END_WHILE con
punto y coma.
Instruccin REPEAT
REPEAT
Area de
instrucciones
UNTIL
Expresin
END_REPEAT
No olvide terminar la
palabra clave
END_REPEAT con
punto y coma.
Instruccin CONTINUE
CONTINUE
Instruccin RETURN
RETURN
Instruccin EXIT
EXIT
Salto en el programa
GOTO
IDENTIFICADOR
Meta de salto
C-20
Bibliografa
/12/
/13/
/20/
/30/
/70/
/71/
/72/
D-1
Bibliografa
D-2
Glosario
A
Archivo fuente
Un archivo fuente contiene cdigos fuente (texto ASCII) que pueden crearse con
cualquier editor de textos. Un archivo fuente se compila con un compilador (AWL,
SCL) para generar un archivo de programa de usuario. Una fuente se deposita en el
contenedor Fuentes (SO) dentro del programa S7 o del programa M7.
Area de memoria
El SIMATIC S7, una unidad central de procesamiento tiene tres reas de memoria:
la memoria de carga, la memoria de trabajo y la memoria del sistema.
Array
Un array es un tipo de datos compuestos que est constituido por elementos de datos
del mismo tipo. A su vez estos elementos de datos pueden ser simples o compuestos.
Atributo
Ayuda online
B
Bloque
Los bloques son secciones del programa de usuario delimitados por su funcin, por
su estructura o por el uso para el que estn destinados. En STEP 7 hay bloques lgicos (FB, FC, OB, SFC; SFB), bloques de datos (DB, SDB) y tipos de datos de usuario (UDT).
Bloque de datos
(DB)
Los bloques de datos (DB) son reas de datos del programa de usuario que contienen datos de usuario. Puede accederse a ellos desde todos los bloques lgicos. Los
bloques de datos que estn asignados a una determinada llamada de FB se denominan bloques de datos de instancia.
Glosario-1
Glosario
Bloques de datos
de instancia (DB
de instancia)
Un bloque de datos de instancia guarda los parmetros formales y los datos estticos
de los bloques de funcin. Un bloque de datos de instancia puede estar asignado a
una llamada de FB o a una jerarqua de llamada de bloques de funcin. En SCL se
genera automticamente.
Bloque de datos
del sistema (SDB)
Los bloques de datos del sistema son reas de datos localizadas dentro de la unidad
central de procesamiento, las cuales contienen ajustes del sistema y parmetros de
mdulos. Los bloques de datos del sistema se crean y modifican con la herramienta
Configuracin S7.
Bloque de funcin
(FB)
Bloque de funcin
del sistema (SFB)
Un bloque de funcin del sistema (SFB) es un bloque de funcin que est integrado
dentro del sistema operativo de la CPU, y que se puede llamar en el programa de
usuario de STEP 7 cuando se necesite.
Bloque de organizacin
Bloque lgico
En SIMATIC S7 un bloque lgico es un bloque que contiene una seccin del programa de usuario STEP 7. Por el contrario, un bloque de datos slo contiene datos.
Existen los siguientes bloques lgicos: bloques de organizacin (OB), bloques de
funcin (FB), funciones (FC), bloques de funcin del sistema (SFB) y funciones del
sistema (SFC).
C
Carga en el sistema de destino
Carga en la PG
Categora de
bloque
En funcin de su contenido, los bloques se dividen en dos categoras: bloques lgicos y bloques de datos. El tipo de datos de usuario (UDT) puede considerarse como
bloque de datos.
Glosario-2
Glosario
Comentario de
bloque
Informacin complementaria sobre un bloque (p.ej. explicaciones acerca del proceso de automatizado) que no se carga en la memoria de trabajo de los autmatas
programables SIMATIC S7.
Compilador SCL
Compilar
Constantes (simblicas)
Las constantes con nombres simblicos son comodines para valores constantes en
los bloques lgicos. Se utilizan para aumentar la legibilidad de un programa.
Constantes (literales)
Las constantes literales son constantes cuyo valor y tipo depende de la forma de
escritura. Se distinguen literales numricos, literales de caracteres y literales de indicacin de tiempos.
Contadores
Contenedor
Convertir explcitamente
Convertir implcitamente
Glosario-3
Glosario
D
Datos estticos
Los datos estticos son datos locales de un bloque de funcin que se guardan en el
bloque de datos de instancia, por lo que se conservan hasta que se vuelve a ejecutar
el bloque de funcin.
Datos globales
Los datos globales son reas de memoria de la CPU a los que se puede acceder
desde cualquier punto del programa (p.ej., marcas).
Los datos globales son accesibles desde cualquier bloque lgico (FC, FB, OB). Dentro de los datos globales se distinguen: marcas (M), entradas (E), salidas (A), temporizadores, contadores y elementos de bloques de datos (DB). A los datos globales se
puede acceder con direccionamiento simblico o absoluto.
Datos locales
Los datos locales son datos asignados a un bloque lgico que estn definidos en su
tabla de declaracin. Dependiendo del bloque en cuestin, abarcan a los parmetros
formales, los datos estticos y los datos temporales.
Datos de usuario
Datos temporales
Declaracin del
tipo de datos
Declaracin de
variables
Decompilacin
Depurador SCL
Direccionamiento
absoluto
Glosario-4
Glosario
Direccionamiento
simblico
E
Editor SCL
El editor SCL es un editor hecho a la medida del lenguaje SCL que permite crear la
fuente SCL.
Enable (EN)
En STEP 7 cada bloque tiene una entrada Enable (EN). Con esta entrada se llama
al bloque. Si en EN existe una seal 1, se llama al bloque; si la seal es 0 no se
efecta la llamada al bloque.
En STEP 7 cada bloque tiene una salida Enable Output (ENO). Dentro del bloque
el usuario puede relacionar la entrada Enable con un valor interno (Y). El resultado se asigna automticamente a la salida ENO. En el caso de llamadas encadenadas a bloques, ENO permite que la edicin del bloque consecutivo dependa de que
se haya editado correctamente el bloque precedente.
Entero (INT)
Entero (INT) es uno de los tipos de datos simples. Se representa por medio de un
nmero entero de 16 bits.
Entrada orientada
a la fuente
Observacin continua
Estructura
(STRUCT)
Expresin
Glosario-5
Glosario
F
Fuente
Una fuente (archivo de texto) incluye un cdigo fuente (texto en ASCII) que puede
crearse con cualquier editor de texto. Una fuente se compila con un compilador
(AWL, SCL) para generar un programa de usuario ejecutable. Una fuente se deposita en el contenedor Fuentes dentro del programa S7.
Funcin (FC)
De acuerdo con la norma IEC 1131-3, una funcin (FC) es un bloque lgico sin datos estticos. Una funcin ofrece la posibilidad de transferir parmetros dentro del
programa de usuario. Por esta razn las funciones resultan ser idneas para programar funciones complejas que se repiten con frecuencia; p.ej., los clculos.
Una funcin de sistema (SFC) es una funcin integrada dentro del sistema operativo
de la CPU que se puede llamar en el programa de usuario de STEP 7 cuando se necesite.
I
Identificador
Identificador de
operando
Un identificador de operando es una parte del operando de una operacin que contiene informaciones (p.ej., el rea de memoria en el que la operacin tiene un valor
(objeto de datos)), con el que el usuario ejecuta una relacin lgica, o la magnitud
de un valor (objeto de datos) con la que el usuario ejecuta una relacin lgica. En la
instruccin Valor:= EB10, EB es el indicador de operando (E representa el
rango de entrada de la memoria, B representa un byte dentro de este rea).
Imagen del
proceso
Los estados de seal de los mdulos digitales de entradas y salidas se depositan dentro de la CPU en una imagen de proceso. Se distingue entre la imagen del proceso
de las entradas (PAE) y la imagen del proceso de las salidas (PAA).
Antes de la ejecucin del programa de usuario el sistema operativo lee en los mdulos de entradas la imagen de proceso de las entradas.
Al final del programa de usuario el sistema operativo transfiere la imagen del proceso de las salidas a los mdulos de salidas.
Glosario-6
Glosario
Instancia
Instancia local
Una instancia local se define en la parte de la variable esttica de un bloque de funcin. En lugar de utilizar todo el bloque de datos de instancia como rea de datos
para el bloque de funcin, slo se utiliza una parte local, a la que se llama con el
nombre de instancia local.
Instruccin
Instruccin CASE
Instruccin
CONTINUE
Instruccin EXIT
Instruccin FOR
Una instruccin FOR sirve para repetir una secuencia de instrucciones hasta que la
variable en ejecucin se site dentro de un valor especificado.
Instruccin GOTO
Instruccin
REPEAT
Una instruccin REPEAT sirve para repetir una secuencia de instrucciones hasta
llegar a una condicin de interrupcin.
Instruccin
RETURN
Interface de
llamada
Glosario-7
Glosario
J
Jerarqua de
llamada
Para poder editar cualquier bloque primero hay que llamarlo. El orden y el anidamiento de estas llamadas se denomina jerarqua de llamada.
L
Lista de instrucciones (AWL)
LL
Llamada a un
bloque
Arranque de un bloque en el programa de usuario de STEP 7; los bloques de organizacin son llamados bsicamente por el sistema operativo; todos los dems bloques
son llamados por el programa de usuario de STEP 7.
M
Marca (M)
Area de memoria localizada en la memoria del sistema de una CPU SIMATIC S7. A
esta memoria se tiene acceso de escritura y de lectura (con bits, bytes, palabras y
palabras dobles). El usuario puede utilizar el rea de marcas para guardar resultados
intermedios.
Memoria del
sistema (rea del
sistema)
Multiinstancia
N
Nemotcnica
La nemotcnica es una representacin abreviada de los operandos y de las operaciones de programacin dentro del programa (p.ej., E significa entrada). STEP 7
soporta la representacin IEC (basada en el idioma ingls) y la representacin SIMATIC (basada en la expresin alemana de las operaciones y de las convenciones
para el direccionamiento en SIMATIC).
Nonterminal
Glosario-8
Glosario
Nmero real
Un nmero real, tambin denominado nmero en coma flotante, es un nmero positivo o negativo que contiene un valor decimal (p.ej., 0.339 o 11.1).
O
Observacin
continua
Offline
Online
Operacin
Una operacin es parte de una instruccin que especifica lo que tiene que hacer el
procesador.
Operando
Un operando es una parte de una instruccin que especifica con qu debe hacer algo
el procesador. Puede direccionarse tanto absoluta como simblicamente.
P
Palabra clave
Palabra de estado
PARADA
El estado operativo PARADA se alcanza a partir del estado operativo RUN cuando
lo solicita la unidad de programacin. En este estado operativo es posible efectuar
funciones de test especiales.
Parmetro
Parmetros
actuales
Glosario-9
Glosario
Parmetros de
entrada
Solamente las funciones y los bloques de funcin tienen parmetros de entrada. Con
ayuda de los parmetros de entrada se transfieren datos al bloque llamado, para el
procesamiento de los mismos.
Parmetros de
entrada/salida
Parmetros de
salida
Parmetros
formales
Parte de declaracin
Paso individual
El paso individual es una funcin de test del depurador SCL que permite ejecutar el
programa instruccin por instruccin, y observarlo en la ventana de resultado.
Programa de
usuario
Programa de
usuario S7
El programa de usuario S7 se encuentra en el contenedor Bloques. Contiene bloques que se cargan en un mdulo S7 programable (p.ej., CPU), donde son ejecutables, con el fin de controlar una instalacin o un proceso.
Programacin
estructurada
Para solucionar tareas de automatizacin complejas, el programa de usuario se subdivide en secciones de programa cerradas individuales (bloques). El programa de
usuario se organiza siguiendo la estructura funcional o tecnolgica de las instalaciones.
Programacin
simblica
El lenguaje de programacin SCL permite utilizar secuencias de caracteres simblicos en lugar de operandos. Por ejemplo, el operando A1.1 puede sustituirse por
Vlvula 17. La lista de smbolos de STEP 7 constituye la relacin entre el operando y la secuencia de caracteres simblicos asignada.
Glosario-10
Glosario
Proteccin de
bloque
Proyecto
Un proyecto es un contenedor para todos los objetos de una solucin a una tarea de
automatizacin, independientemente de la cantidad de estaciones, de mdulos y de
la interconexin de los mismos en una red.
Punto de parada
Con esta funcin se logra que la unidad central de procesamiento (CPU) pase al estado operativo PARADA en puntos definidos del programa. Al llegar a un punto de
parada se pueden realizar funciones de test como p.ej., la ejecucin paso a paso de
un comando o de una variable de estado.
R
Reglas lxicas
El nivel inferior de las reglas formales que describen el lenguaje SCL est compuesto por las reglas lxicas. Al aplicarlas no existe libertad de formato, es decir, no
est permitida la complementacin (p.ej., con blancos y caracteres de control).
Reglas sintcticas
El nivel superior de las reglas formales que describen el lenguaje SCL est formado
por las reglas sintcticas. Pueden usarse con libertad de formato, es decir: p.ej. pueden incluirse blancos y caracteres de control.
Representacin
BCD
En STEP 7, a nivel interno de la CPU los temporizadores y contadores se especifican slo en formato BCD. BCD es el acrnimo de BinrCode fr Dezimaalzhalen
= cdigo binario para nmeros decimales.
RUN
En estado operativo RUN se ejecuta el programa de usuario, y la imagen del proceso se actualiza cclicamente. Todas las salidas digitales estn habilitadas.
RUN-P
El estado operativo RUN-P es equivalente al sistema operativo RUN, con la diferencia de que en el estado operativo RUN-P estn permitidas todas las funciones de la
unidad de programacin, sin limitacin alguna.
S
SCL
Glosario-11
Glosario
Smbolo
Single Step
Paso individual
T
Tabla de smbolos
Tabla de variables
En la tabla de variables se recompilan las variables que se desea observar y controlar, incluyendo las especificaciones correspondientes de formato.
Temporizadores
Los temporizadores son componentes de la memoria del sistema de la CPU. El sistema operativo actualiza el contenido de estos temporizadores de forma asncrona
con respecto al programa de usuario. Por medio de instrucciones de STEP 7 se determina exactamente la funcin que tendr un temporizador (p.ej., retardo a la conexin) y se impulsa su ejecucin (arranque).
Terminal
Tiempo de ciclo
El tiempo de ciclo es el tiempo que necesita la CPU para ejecutar una vez el programa de usuario.
Tipo de bloque
La arquitectura de bloques de STEP 7 reconoce los siguientes tipos de bloques: bloque de organizacin, bloque de funcin, funciones, bloque de datos y bloque de funcin del sistema, funciones del sistema y bloque de datos del sistema. Bloque
Tipo de datos
Con ayuda de un tipo de datos se determina cmo debe utilizarse el valor de una
variable o de una constante en el programa de usuario.
En SCL el usuario dispone de tres tipos de datos:
Glosario-12
Glosario
Tipo de datos
estructurados
Se distingue entre estructuras y arrays. Las estructuras estn compuestas por diferentes tipos de datos compuestos diferentes (p.ej. tipos de datos simples). Los arrays estn formados por varios elementos del mismo tipo de datos. Los tipos de
datos STRING y DATE_AND_TIME tambin son tipos de datos estructurados.
Tipo de datos de
usuario
Los tipos de datos de usuario los define el propio usuario mediante la declaracin
del tipo de datos. Estos datos tienen su propio nombre distintivo, por lo que son de
uso mltiple. Por ejemplo, un tipo de datos de usuario se puede aprovechar para
crear varios bloques de datos que tengan la misma estructura (p.ej., reguladores).
Tipo de datos
simples
Los tipos de datos simples son tipos de datos predefinidos conforme a la norma
IEC 1131-3. Ejemplos: el tipo de datos BOOL define una variable binaria (Bit);
el tipo de datos INT define una variable fija de 16 bits.
Tipo de declaracin
Tipo de parmetro
U
UDT
V
Variable
Una variable define un dato de contenido variable que puede utilizarse en el programa de usuario de STEP 7. Una variable consta de un operando (p.ej. M 3.1) y un
tipo de datos (p.ej. Bool) y puede identificarse con un smbolo (p.ej. BAND_EIN).
Se declara en la tabla de declaracin.
Variable OK
La variable OK sirve para indicar si la ejecucin de un bloque es correcta o incorrecta. Es un tipo de datos BOOL global.
Glosario-13
Glosario
Glosario-14
Indice alfabtico
A
Acceso a datos globales, 12-2, 12-3
Acceso absoluto
a bloques de datos globales, 12-9
a un rea de memoria de la CPU, 12-4
Acceso estructurado a bloques de datos globales,
12-12
Acceso indizado
a bloques de datos globales, 12-11
a un rea de memoria de la CPU, 12-7
reglas, 12-7, 12-11
ADQUISICION
rea de instrucciones, 2-16
tabla de declaracin, 2-13
Alternativas, 15-1
Ampliaciones, SCL, KOP, AWL, 1-2
Anidamiento de comentarios, 7-21
Archivo de programa, 7-19
Archivo fuente
estructura, 4-5, 8-2
secuencia de los bloques, 8-2
Archivo fuente en formato ASCII
creacin en SCL, 5-2
creacin y compilacin en SCL, 5-3
Area de instrucciones, 7-19, 8-10
ADQUISICION, 2-16
instrucciones, 8-10
reglas, 8-10
sintaxis, 8-10
Area de trabajo, 4-3
Areas de datos, declaracin de datos, 12-2
Areas de memoria de la CPU, resumen, datos globales, 12-2
Arrancar temporizador como impulso, 17-16
Arrancar temporizador como impulso prolongado,
17-17
Arrancar temporizador como retardo a la conexin,
17-18
Arrancar temporizador como retardo a la conexin
con memoria, 17-19
Arrancar temporizador como retardo a la desconexin, 17-20
Arranque de SCL, 4-2
Array
bidimensional (matriz), 9-7
de dimensin superior a dos, 9-7
unidimensional (vector), 9-7
Arrays de acuerdo, 10-5
Asignacin de salida, parmetros actuales, 16-17
Asignacin inicial, 15-9
Asignaciones, parmetros actuales de entrada/salida, 16-8
Asignaciones de entrada, parmetros actuales, 16-7
Asignaciones de valor, 8-11, 14-1
array, 14-6
componentes de arrays, 14-6
con variables de tipo simple, 14-3
datos globales de usuario, 14-11
estructuras, 14-4
partes de arrays, 14-6
variables absolutas para reas de memoria,
14-10
Atributos, 8-5
Atributos de bloque, definicin, 8-5
Atributos del sistema
para bloques, 8-6
para parmetros, 8-8
AUTHORS.EXE, 3-3
Autorizacin, 3-2, 3-5
disquete original, 3-3
transferencia al disquete, 3-3
AWL
ampliacin, SCL, 1-2
recompilar bloques SCL, 1-4
B
Barra de estado, 4-3
Barra de herramientas, 4-3
Barra de mens, 4-3
Barra de ttulo, 4-3
Base de tiempo para S5 TIME, 17-15
BLOCK, tipos de parmetros, 7-13, 9-12
Bloque de comentario, 7-20
Indice-1
Indice alfabtico
C
Caracteres, 9-3
Caractersticas generales del compilador, 1-5, 1-6
Caractersticas generales del depurador, 1-6
Caractersticas generales del editor, 1-5
Comentario de inicio, 2-10
Comentarios, 7-20
anidamiento, 7-21
introduccin, 7-21
Comparacin lgica, 13-10
Comparaciones, 13-10
Compatibilidad con STEP 5, 1-4
Compilador
caractersticas generales, 1-5, 1-6
entorno de desarrollo, 1-2
opciones, 5-6
preferencias, 5-6
Compilar un programa SCL, 5-6
Condiciones, 15-3
Condiciones de ejecucin, 15-10
Condiciones de interrupcin, 15-11, 15-13
Constantes, 11-2
declaracin de nombres simblicos, 11-2
STRING, 11-7
utilizacin, 11-2
Constantes de array (STRING), 11-7
Contador (COUNTER), 9-12
Indice-2
Contaje
decremental, 17-7
incremental, 17-7
incremental/decremental, 17-8
Continuacin de string, 11-8
Conversin del tipo de datos, conversin implcita,
18-2
COUNTER, tipos de parmetros, 7-13, 9-12
Creacin de bloques
proceso de solucin, 2-11
programacin, 2-10
Cumplimiento de normas, 1-2
D
Datos de usuario (UDT), resumen, datos globales,
12-2
Datos declarados por el sistema, entradas, salidas,
marcas, 12-2
Datos globales
acceso, 12-2, 12-3
acceso absoluto, 12-4
acceso indizado, 12-7
reas de memoria de la CPU, 12-2
declaracin de datos, resumen, 12-1
resumen
reas de memoria de la CPU, 12-2
tipos de acceso, 12-2
Datos locales, 7-14, 10-1
parmetros de bloque, 10-2
Datos numricos, 9-3
DB, (bloque de datos), estructura, 8-17
Declaracin
de datos globales, resumen, 12-1
de metas de salto, 11-14
Declaracin de datos globales, 12-1
Declaracin de parmetros, tipos de parmetros,
9-12
Declaracin de variables, 10-10
Depurador
caractersticas generales, 1-6
entorno de desarrollo, 1-2
modos de test, 1-6
Derecho de utilizacin, 3-2
Descripcin del lenguaje
ayudas, A-1
SCL, A-1
Desinstalar SCL, 3-5
Diagrama de flujo, VALORACION, 2-19
Diagrama sintctico, 7-2, A-2
Dimensin de array, 9-7
Direccin, 12-5, 12-10
Indice alfabtico
E
Editor
caractersticas generales, 1-5
entorno de desarrollo, 1-2
Elemento de array, 14-6
EN, 16-20
ENO, 10-12, 16-20
Entorno de desarrollo, 1-2
compilador de lotes, 1-2
depurador, 1-2
editor, 1-2
Errores durante la instalacin, 3-5
Errores y alarmas, causas, 5-8
Escrituras. Ver Formas de escritura
Especificacin de ndice, 9-7
Especificacin de tipo de datos, 9-7
Estructura, (STRUCT), 9-8
Estructura completa, 14-4
Estructura de bloque, STEP 7, 1-3
Estructura de bloques en archivos fuente, 8-3
Estructura de las reglas, A-2
Estructura de un archivo fuente en SCL, 8-1
Estructura de un bloque de datos, 8-17
Estructura de un bloque de funcin. Ver FB
Estructura de un bloque de organizacin. Ver OB
Estructura de un bloque SCL, 7-18
Estructura de una funcin. Ver FC
Exponente, 13-9
Expresiones
aritmticas, 13-7
de comparacin, 13-10
de lgica booleana, 13-10
de potencias, 13-3
lgicas, 13-12
reglas de proceso, 13-4
F
Facilidad de aprendizaje del lenguaje SCL, 1-4
FB, (bloque de funcin)
rea de declaracin, 8-12
estructura, 8-12
FC, (funcin), 8-14
Final de bloque, 8-4
Formacin del valor final, 15-9
Formacin del valor inicial, 15-9
Formas de escritura
(formatos), 11-2
fecha, 11-10
hora del da, 11-13
temporizador, indicaciones de tiempo, 11-10
tiempo, 11-11
Formas de esritura, literales de nmeros, 11-4
Formato de un valor de temporizacin, 17-14
Funcin, estructura, 8-14
Funciones, 1-3
de sistema (SFC), 1-4
tipos de bloques, 1-3
Funciones de bloques, tipos, 1-4
Funciones de contaje, 17-2
Funciones de conversin
categora A, 18-3
categora B, 18-4
Funciones de redondeo, 18-8
Funciones de temporizacin, 17-10
Funciones de truncado, 18-8
Funciones estndar, 18-2
Funciones estndar de cadena de bits, 18-11
lista de las funciones, 18-11
Funciones estndar de conversin del tipo de datos,
18-2
conversin explcita, 18-2
conversin implcita, 18-2
Funciones estndar numricas, 18-9
lista de las funciones generales, 18-9
lista de las funciones logartmicas, 18-9
lista de las funciones trigonomtricas, 18-10
G
Guardar una fuente SCL, 5-5
Guardar archivos fuente, 5-5
Guardar bloques en SCL, 5-5
I
Identificacin de bloque, 8-4
Identificacin de errores, tipos de bloques de organizacin, 19-3
Identificador absoluto, 12-4
Identificadores, 7-7
Identificadores en SCL, 7-7
Imprimir fuente SCL, 5-5
Indice, 9-7
Indizado, reglas, 12-7, 12-11
Ingeniera de software, mtodos de programacin,
1-4
Inicializacin, 10-5
parmetros de entrada, 10-5
variables estticas, 10-5
Inicio de bloque, 8-4
Instalacin del software SCL
errores, 3-5
proceso, 3-4
requisitos, 3-1
resumen, 3-1
Instalar SCL, 3-4
Instancia global, llamada, 16-3
Instancia local, llamada, 16-3
Instruccin de control, 8-11
Indice-3
Indice alfabtico
Instrucciones, 8-10
CASE, 15-2, 15-6
CONTINUE, 15-2, 15-12
de repeticin, 15-2
de salto, 15-2
EXIT, 15-2, 15-13
FOR, 15-2, 15-8
GOTO, 15-2, 15-14
IF, 15-2, 15-4
REPEAT, 15-2, 15-11
RETURN, 15-2, 15-16
WHILE, 15-2, 15-10
Instrucciones de control, 15-1
alternativas, 15-1
bucles, 15-1
expresiones de comparacin, 15-3
Instrucciones de repeticin, abandonar un bucle,
15-13
Interface de usuario SCL, 4-3
Interrupcin de cadena (STRING), 11-8
Interrupcin de string, 11-8
Introducir un valor de temporizacin, 17-14
M
Manejo de SCL, 4-1
Marca OK (OK flag), 10-2
Marcas, 10-12
Marcas OK (OK flag), 10-12
Metas de salto, 11-14
declaracin de bloques lgicos, 11-14
Mtodos de ingeniera de software, 1-4
Mtodos de programacin, 1-4
Mezclar bloques, 1-4
Modos de test, depurador, 1-6
N
Non-Terminal, A-14A-34
Norma EN-61131-3, 1-2
K
KOP, ampliacin, SCL, 1-2
O
OB
L
Labels, declaracin de bloques lgicos, 11-14
Lenguaje de programacin de alto nivel, 1-2
Lenguaje de programacin de muy alto nivel, 1-3
Libertad de formato, 7-3
Lnea de comentario, 7-20
Literal STRING, 11-7
Literales, 11-3
asignacin de tipos de datos a las constantes,
11-3
de caracteres, 11-7
enteros, 11-5
numricos, 11-6
numricos reales, 11-6
Literales de caracteres, 11-7
imprimibles, 11-8
no imprimibles, 11-7, 11-9
Llamada a bloques de funcin, FB o SFB, 16-3
Llamada a FC, no opcional, 16-16
Llamada a funciones, 16-13, 16-19
Llamada a funciones de contaje, 17-2
Llamada a funciones de temporizacin, 17-10
Llamada a instancias globales, 16-10
Llamada a instancias locales, 16-12
Llamada a valores de respuesta, 16-14
resultado, 16-14
Llamada condicionada, 19-2
Llamada dinmica a contadores, 17-4
Indice-4
P
Palabras clave, 9-3, 9-5
Parmetros
de FC, 16-15
asignacin de entrada, 16-16
de salida (ENO), 16-21
especificacin, 16-3
Parmetros
de entrada (EN), 16-20
de FB
asignacin de entrada, 16-7
asignacin de entrada/salida, 16-8
principio, 16-5
definidos implcitamente, 16-20
SCL para SIMATIC S7-300/400 Programacin de bloques
C79000-G7078-C522-01
Indice alfabtico
Parmetros actuales
asignacin de entrada, 16-16
asignacin de salida o de entrada/salida, 16-17
Parmetros actuales, 16-2
Parmetros de bloque, acceso, 10-11
Parmetros de bloque, 10-2
Parmetros de bloques, 10-10
Parmetros de entrada, 10-10
Parmetros de entrada/salida, 10-10
Parmetros de salida, lectura, 16-12
Parmetros de salida, 10-10
Parmetros de sistema, ENO, 10-12
Parmetros definidos implcitamente, 16-20
Parmetros del bloque, 7-14
Parmetros formales, 16-2
de entrada, 10-10
de entrada/salida, 10-10
de salida, 10-10
tipos de datos, 9-12
Pascal, 1-2
Permiso de utilizacin, 3-2
POINTER, tipos de parmetros, 7-13, 9-12
Prefijo
de memoria, 12-4
de tamao, 12-5
Prioridades, operadores, 13-8
Procesamiento de bucles, 15-2
Procesamiento de subrutinas, 8-11
Proceso de compilacin, 5-7
Programa de usuario, 1-3, 2-5, 7-18
Programa estructurado, 2-5
Programacin, tipos de bloques de organizacin,
19-3
Programacin estructurada, 1-3, 1-4
Programar con SCL, 5-1
R
Ramificaciones, 15-2
Recompilacin, al lenguaje AWL, de bloques SCL,
1-4
Requisitos de hardware, 2-2
Resumen
datos globales, datos de usuario, 12-2
instalacin inicial, 3-1
S
S_CD. Ver Contaje decremental
S_CU. Ver Contaje incremental
S_CUD. Ver Contaje incremental/decremental
S_ODT. Ver Arrancar temporizador como retardo a
la conexin
S_ODTS. Ver Arrancar temporizador como retardo
a la conexin con memoria
Indice-5
Indice alfabtico
T
Tabla de asignacin, 8-18
Tabla de declaracin, 8-7, 8-14, 8-16, 8-17
ADQUISICION, 2-13
VALORACION, 2-17
Tabla de smbolos, creacin, 5-2, 12-6
Temporizador
arrancar temporizador como impulso, 17-16
arrancar temporizador como impulso prolongado, 17-17
arrancar temporizador como retardo a la conexin, 17-18
arrancar temporizador como retardo a la conexin con memoria, 17-19
arrancar temporizador como retardo a la desconexin, 17-20
seleccin de la operacin correcta, 17-22
valor de temporizacin, 17-14
rango, 17-1417-22
sintaxis, 17-14
Temporizador (TIMER), 9-12
Temporizadores, 9-3
TIMER, tipos de parmetros, 7-13, 9-12
Tipo de datos de usuario, estructura, 8-19
Tipo de datos de usuario (UDT), 1-3
Tipos de acceso, resumen, 12-2
Tipos de bloques, 2-10, 9-12
funciones, 1-3, 1-4
Tipos de datos
array, 9-7
BOOL, 16-20
compuestos, 9-4
de usuario (UDT), 7-13, 8-19, 9-10
datos globales, 12-2
globales, 12-1
para parmetros formales, 9-12
simples, 7-12, 9-3
STRUCT, 9-8
declaracin de componentes, 9-8
declaracin de variables, 9-8
Tipos de datos compuestos, 7-13
Indice-6
U
UDT
definicin, 8-19
especificacin de tipo, 8-19
llamada, 8-19
Uso de la instruccin GOTO, 15-14
V
Valor de respuesta, 16-13
Valor de salida, lectura, 16-11
Valor de temporizacin
componentes, 17-14
sintaxis, 17-14
Valor del contador, 17-6
introduccin, 17-6
valoracin, 17-6
VALORACION
diagrama de flujo, 2-19
tabla de declaracin, 2-17
Valores medidos, procesamiento, 2-3
Variables
estaticas, 10-8
estticas, 2-12, 7-14, 10-2
temporales, 7-14, 10-2, 10-9
Variables ampliadas, 13-6
Variables estaticas, 10-8
Variables estticas, 2-12, 7-14, 10-2
Variables temporales, 7-14, 10-2, 10-9
W
Windows 95, 1-2
Siemens AG
A&D AS E46
stliche Rheinbrckenstr. 50
D-76181 Karlsruhe
R.F.A.
Remitente:
Nombre:
_
Cargo: _ _ _ _
Empresa:
_
Calle: _ _ _ _
Cdigo postal: _
Poblacin:
_
Pas: _ _ _ _
Telfono:
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_ _ _
_ _ _ _
_ _ _ _
_ _ _
_ _ __
_ _ _ _
_ _ _ _
_ _ _ _
Industria farmacutica
Industria qumica
Industria elctrica
Industria papelera
Industria alimentaria
Industria textil
Control e instrumentacin
Transportes
Industria mecnica
Otros _ _ _ _ _ _ _ _ _ _ _
Industria petroqumica
Observaciones/sugerencias
Sus observaciones y sugerencias nos permiten mejorar la calidad y utilidad de nuestra
documentacin. Por ello le rogamos que rellene el presente formulario y lo envie a
Siemens.
Responda por favor a las siguientes preguntas dando una puntuacin comprendida entre
1 = muy bien y 5 = muy mal
1.
2.
3.
Es comprensible el texto?
4.
5.
En las lneas siguientes puede exponer los problemas concretos que se le hayan planteado
al manejar el manual:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _