 Utilización del editor de textos

Este apartado sólo describe características y comandos específicos del editor de textos de ISaGRAF, en especial cuando se utiliza para introducir el código fuente de programas ST e IL.

Edición de comandos

Opciones

Comandos del menú "Herramientas"

Llamadas a otras herramientas ISaGRAF

Parámetros del programa

Otros comandos del menú "Fichero"

Actualización del diario del programa

Selección de una variable del diccionario

Depuración de programas ST e IL

El editor de textos de ISaGRAF también se utiliza para introducir el descriptor de proyectos, para editar los ficheros diarios y notas técnicas (documentación en línea) para elementos de librería, y cada vez que el usuario tiene que introducir un documento de texto.

Definición de recursos


Edición de comandos

Se utilizan los comandos del menú "Edición" para trabajar con el texto editado. La mayoría de estos comandos actúa sobre los caracteres seleccionados en ese momento en el diagrama, o realiza alguna acción en la posición del cursor.

 	Cortar y pegar

Localizar y sustituir

Ir a la línea

Insertar símbolo desde el diccionario

Insertar fichero


 	Cortar y pegar

Se puede emplear el botón DEL (Supr) para eliminar el texto seleccionado. Utilizar el comando "Edición / Deshacer" para restaurar elementos después de ejecutar un comando DEL. Los comandos "Cortar", "Copiar", "Pegar" del menú "Edición" se utilizan para mover o copiar texto dentro del programa, o para insertar bloques de texto copiados al portapapeles desde otras aplicaciones.


Localizar y sustituir

Los comandos de menú "Edición / Buscar" y "Edición / Reemplazar" se utilizan para localizar y sustituir textos en el programa. Se puede encontrar cualquier cadena de caracteres. La búsqueda puede efectuarse en sentido ascendente o hacia atrás, comenzando en la posición actual del cursor. No se efectúa un bucle cuando se alcanzan los límites del programa.


Ir a la línea

Se utiliza el comando "Edición / Ir a línea" para desplazar el cursor hasta un número de línea específico. Esto puede ser muy útil cuando se quiera acceder a una línea que contenga algún error detectado por el compilador ISaGRAF en un programa ST o IL y que esté referenciado por un número de línea.


Insertar símbolo desde el diccionario

Utilizar el comando "Edición / Insertar variable" para insertar, en la posición del cursor, el símbolo de una variable o un objeto que se haya declarado en el diccionario del proyecto. El símbolo se selecciona por medio de la ventana de selección de variables comunes, que se describe en el apartado titulado "Más sobre los editores de programas".


Insertar fichero

El comando "Edición / Insertar Fichero" inserta el contenido íntegro de un fichero en la posición actual del cursor. Nota: Este comando sólo puede manejar ficheros de texto ASCII puro.


Opciones

Los comandos del menú "Opciones" se utilizan para mostrar u ocultar las barras de herramientas del editor y para seleccionar el tipo de letra. Se empleará el tipo de letra seleccionado para cualquier tarea de edición de textos en el banco de trabajo ISaGRAF.

Cuando se utiliza para introducir el código fuente de un programa ST o IL, el comando "Opciones / Mostrar palabras clave" se emplea para mostrar u ocultar una caja de herramientas que agrupa a las palabras clave más comunes de los lenguajes ST e IL. Hacer click sobre un botón de la barra de herramientas para insertar las correspondientes palabras claves u operadores en la posición actual del cursor.


Llamadas a otras herramientas ISaGRAF

Verificar (compilar) el programa

 	Simular o depurar la aplicación

Editar el diccionario de variables


Verificar (compilar) el programa

El comando "Fichero / Verificar" ejecuta el generador de código ISaGRAF para verificar la sintaxis de programación del programa que se está editando en ese momento. En el caso del lenguaje SFC, se comprueban los niveles 1 y 2. Cuando se completa la verificación de sintaxis, la ventana del generador de código se tiene que cerrar para que puede continuar el trabajo con el programa. Si sólo hay un programa en la aplicación (la que se está editando) se genera el código de la aplicación siempre que no se haya detectado un error de sintaxis. Se utiliza el comando "Opciones / Opciones del compilador" para fijar los parámetros de compilación y optimización. Para más información sobre compilación y generación de código, véase el apartado titulado "Cómo utilizar el generador de código".


 	Simular o depurar la aplicación

Los comandos "Fichero / Simular" y "Fichero / Depurar" ejecutan el depurador gráfico de ISaGRAF bien en modo simulado o bien en modo de conexión real y vuelve a abrir el programa SFC editado en modo depuración. Cuando se utiliza en modo depuración, no se puede introducir modificación alguna en el programa.


Editar el diccionario de variables

Se utiliza el comando "Fichero / Diccionario" para editar el diccionario de variables de la aplicación actual y el programa  actual. También contiene los puntos de entrada necesarios para editar las palabras definidas por el usuario. Las declaraciones o palabras definidas  locales están relacionadas con el programa que se está editando.


Parámetros del programa

Cuando el programa editado es una función, un bloque de función o un subprograma, se utiliza el comando "Fichero / Parámetros" para definir sus parámetros de llamada y retorno. Este comando no tiene efecto si el programa editado es un programa SFC o de nivel superior de las secciones Comienzo o Fin.

Los subprogramas, las funciones y los bloques de función pueden tener hasta 32 parámetros (de entrada o salida). Las funciones y subprogramas siempre tienen un único parámetro de retorno, que tiene que tener el mismo nombre que la función para poder cumplir con las normas de escritura del lenguaje ST.

La lista situada en la parte superior izquierda de la ventana muestra los parámetros, dispuestos en el orden del modelo de llamada: los parámetros de llamada al principio y los parámetros de retorno al final. La parte inferior de la ventana muestra una descripción detallada del parámetro que en ese momento esté seleccionado en la lista. Se puede utilizar cualquiera de los tipos de datos ISaGRAF para un parámetro. Los parámetros de retorno tienen que estar situados después de los parámetros de llamada en la lista. Los nombres de los parámetros tienen que cumplir con las siguientes normas:

- la longitud del nombre no puede superar los 16 caracteres

- el primer carácter tiene que ser una letra

- los restantes caracteres tienen que ser letras, dígitos o caracteres de subrayado '_'

- los nombres son insensibles al uso de mayúsculas o minúsculas

Se utiliza el comando "Insertar" para insertar un parámetro nuevo delante del parámetro seleccionado. Se utiliza el comando "Borrar" para eliminar el parámetro seleccionado. El comando "Ordenar" reordena (clasifica) los parámetros, colocando los parámetros de retorno al final de la lista.


Otros comandos del menú "Fichero"

Los siguientes comandos están disponibles en el menú "Fichero" de todos los editores de programas:

Abrir otro programa

Imprimir el programa


Abrir otro programa

El comando "Fichero / Abrir" le permite al usuario cerrar el programa que está editando en ese momento y empezar a editar otro programa perteneciente al proyecto actual, con el mismo lenguaje. No se puede utilizar esta función para editar un programa escrito en otro lenguaje. El nuevo programa sustituye al programa actual en la ventana de edición.


Imprimir el programa

El comando "Fichero / Imprimir" da salida al programa editado por impresora. Cuando se editan programas ST o IL, este comando ejecuta el generador de documentos de proyecto para imprimir el programa.

En el caso de los programas gráficos (SFC, FBD y Quick LD), también se puede utilizar el comando "Edición / Copiar imagen (metafile)" para copiar el dibujo del diagrama al portapapeles en formato metafile, para que pueda pegarse en otras aplicaciones tales como procesadores de texto. Para los programas SFC, sólo la información de Nivel 1 (diagrama, numeración y comentarios de Nivel 1) aparece en el metafile copiado.


Actualización del diario del programa

El fichero diario asociado al programa editado puede introducirse manualmente por medio del comando "Fichero / Diario". El fichero diario se actualiza automáticamente, con los mensajes de salida de chequeo de sintaxis cada vez que se compila el programa. Las salidas de compilación se completan con el sello de fecha / hora de la compilación.

Si se selecciona el modo "Actualizar diario" en el menú "Opciones" del editor de programas, se abre la siguiente ventana de diálogo cada vez que se guarda el programa en el disco.

Si se pulsa el botón Aceptar, la anotación introducida se guarda al final del fichero diario con el sello de fecha / hora actual. Esta función es muy útil para el mantenimiento de programas completos, ya que proporciona una eficaz ayuda sobre el ciclo de vida del programa.


Selección de una variable del diccionario

 Cuando se edita un programa de texto (ST o IL), el comando "Edición / Insertar variable" permite seleccionar el nombre de la variable declarada que se desea insertar en la posición actual del cursor. Cuando se editan programas LD o FBD, es necesaria la selección de variables para la descripción de contactos, bobinas (salidas), parámetros de bloques de E/S o ventana variables FBD. En ambos casos, se abre la siguiente ventana de diálogo "Seleccionar variable" para seleccionar la variable declarada.

Se utiliza el campo de selección "Rango" para elegir entre variables globales y locales. El campo de selección situado a la derecha permite elegir el tipo de datos. Los iconos pequeños dispuestos al lado del campo de selección de tipos son botones que pueden utilizarse como aceleradores para seleccionar los tipos de datos más usuales:

Booleanos

Enteros / Reales

Temporizador

Mensaje

Para seleccionar una variable, hacer click sobre su nombre en la lista. El nombre y el comentario asociado aparecerán en la parte superior de la lista. Pulsar el botón "Aceptar" para confirmar la selección. También se puede introducir el nombre de una variable directamente en el campo de control de edición, sin necesidad de utilizar la lista.


Definición de recursos

El comando "Recursos" del menú "Opciones" le permite al usuario definir recursos. Un recurso es cualquier dato definido por el usuario (configuración de red, configuración de hardware, etc.), en cualquier formato (fichero, lista de valores), que tenga que fusionarse con el código generado para su transmisión al PLC objeto.  El núcleo ISaGRAF no actúa directamente sobre este tipo de datos, que generalmente están dedicados a otro software instalado en el PLC objeto. Para mayor información sobre la disponibilidad de recursos, véase el manual del hardware.

El fichero de definición de recursos

Referencia de lenguajes

Ejemplo

Compilación de recursos

Implementación


El fichero de definición de recursos

Los recursos están definidos en un "Fichero de definición de recursos" que se almacena junto con otros ficheros del proyecto ISaGRAF. Se trata de un fichero de texto ASCII puro, procesado por el Compilador de Recursos ISaGRAF. Este compilador se ejecuta automáticamente cuando se elabora el código de aplicación. La presente sección explica la sintaxis de este fichero. El fichero de definición de recursos utiliza las normas léxicas del lenguaje ST. Se pueden insertar comentarios, comenzando por el carácter "(*" y terminado por el carácter "*)", en cualquier punto del texto. Las cadenas están delimitadas por apóstrofes simples. Para más información sobre los formatos léxicos que se utilizan para la introducción de valores numéricos, véase la segunda parte de este manual.


Referencia de lenguajes

A continuación está la lista de palabras claves y sentencias usadas en un fichero de definición de recursos.

ULONGDATA

VARLIST

BINARYFILE

TEXTFILE

TARGET

ANYTARGET

FROM

TO


ULONGDATA

Significado:	Especifica un recurso constituido por una lista de valores enteros. Se almacenan los valores en el código objeto como valores enteros de 32 bits, sin signo. Se almacenan los valores en el orden que esté especificado en el fichero de definición de recursos. Los valores tienen que estar separados por comas. El nombre del recurso no puede superar los 15 caracteres.

Sintaxis:	ULONGDATA '<nombre_recurso>'

BEGIN

...selección_objeto...

...lista de valores...

END

Ejemplo:	ULongData 'MYDATA'

Begin

...

0, -1, 100_000,	(* decimal *)

16#A0B1, 2#1011_0101	(* hexadecimal, binary *)

End


VARLIST

Significado:	Especifica un recurso constituido por una lista de direcciones de variables. Se identifica a las variables por sus nombres en el fichero de definición de recursos. Las direcciones variables se almacenan en el código destino como valores enteros de 16 bits, sin signo. Se almacenan las direcciones en el orden que esté especificado en el fichero de definición de recursos. Las variables tienen que estar separadas por comas. El nombre del recurso no puede superar los 15 caracteres.

Sintaxis:	VARLIST '<nombre_recurso>'

BEGIN

...selección_objeto...

...lista de nombres de variable...

END

Ejemplo:	VarList 'LIST'

Begin

...

Var100, MyParameter, Command, Alarm

End


BINARYFILE

Significado:	Especifica un recurso de Fichero Binario. Se almacenan los datos fuente en un fichero MS-DOS. La definición del recurso objeto se completa con la ruta de acceso. El Compilador de Recursos ISaGRAF no convierte los caracteres de fin de línea. El nombre del recurso no puede superar los 15 caracteres.

Sintaxis:	BINARYFILE '<nombre_recurso>'

BEGIN

...selección objeto...

FROM '<fichero_fuente>'

TO '<fichero_destino>'

END

Ejemplo:	BinaryFile 'MYFILE'

Begin

...

From 'c:\user\config.bin'

To '/dd/user/appl/config.dat'

End


TEXTFILE

Significado:	Especifica un recurso de Fichero de Texto. Se almacenan los datos fuente en un fichero ASCII. La definición del recurso objeto se completa con la ruta de acceso. El Compilador de Recursos ISaGRAF convierte los caracteres de fin de línea, de acuerdo con las convenciones del sistema objeto. El nombre del recurso no puede superar los 15 caracteres.

Sintaxis:	TEXTFILE '<nombre_recurso>'

BEGIN

...selección objeto...

FROM '<fichero_fuente>'

TO '<fichero_destino>'

END

Ejemplo:	TextFile 'MYFILE'

Begin

...

From 'c:\user\config.bin'

To '/dd/user/appl/config.dat'

End


TARGET

Significado:	Especifica el nombre del código objeto que tiene que incluir el recurso. Para más información sobre el tratamiento de objetos, véase la sección anterior (opciones del compilador). La sentencia "Target" puede aparecer en más de una ocasión en el mismo bloque de recursos, con la finalidad de seleccionar varios objetos. No se puede utilizar esta sentencia si se ha especificado la sentencia "AnyTarget".

Sintaxis:	TARGET '<nombre_objeto>'

Ejemplo:	BinaryFile 'MYFILE'

Begin

Target 'ISA86M'

Target 'ISA68M'

...

End


ANYTARGET

Significado:	Especifica que el recurso tiene que estar integrado en todos los códigos objeto que produzca el Generador de Código. El Generador de Código ISaGRAF puede producir varios códigos objeto durante el mismo comando "Ensamblar". No se puede utilizar esta sentencia si se han especificado una o más sentencias "Target".

Sintaxis:	ANYTARGET

Ejemplo:	ULongData 'MYDATA'

Begin

AnyTarget

...

End


FROM

Significado:	Especifica la ruta de acceso fuente (en el PC en el cual está instalado el banco de trabajo ISaGRAF) de un recurso BinaryFile o TextFile. Los caracteres que se utilicen para aislar a los componentes de la ruta de acceso (unidad, directorio, prefijo, sufijo) deben cumplir con las normas del sistema MS-DOS.

Sintaxis:	FROM '<ruta/nombre de objeto>'

Ejemplo:	BinaryFile 'MYFILE'

Begin

...

From 'c:\user\config.dat'

To '/dd/user/appl/config.dat'

End


TO

Significado:	Especifica la ruta de acceso destino (en el sistema objeto) de un recurso BinaryFile o TextFile. Los caracteres que se utilicen para aislar a los componentes de la ruta de acceso (unidad, directorio, prefijo, sufijo) deben cumplir con las normas del sistema anfitrión de destino.

Sintaxis:	TO '<ruta/nombre de objeto>'

Ejemplo:	TextFile 'MYFILE'

Begin

...

From 'c:\user\config.dat'

To '/dd/user/appl/config.dat'

End


Ejemplo

A continuación se muestra un ejemplo completo de un fichero de definición de recursos:

(* fichero de definición de recursos *)

ULongData 'DATA1'	(* lista de valores *)

Begin

   Target 'ISA86M'	(* sólo para este objeto *)

   1, 0, 16#1A2B3C4D, +1, -1	(* valores numéricos *)

End

VarList 'VLIST1'	(* lista de variables *)

Begin

   Target 'ISA86M'	(* sólo para este objeto *)

   Valve1, StateX, Command, Alrm1	(* nombres de variables *)

End

BinaryFile 'FILE1'	(* recurso fichero binario *)

Begin

   AnyTarget	(* dedicado a todos los objetos *)

   From 'c:\user\updatef.bin'	(* fichero fuente en PC *)

   To 'updatef.cfg'	(* fichero fuente en PLC *)

End

TextFile 'FILE2'	(* recurso fichero texto *)

Begin

   Target 'ISA68M'

   From 'c:\nw\nwbd.txt'	(* fichero fuente en PC *)

   To '/nw/dat/nwbd'	(* fichero fuente en PLC *)

End


Compilación de recursos

Si se introdujeron recursos en el fichero de definición de recursos, aparece una ventana de diálogo al término de la generación de código ISaGRAF. Pulsar el botón "Iniciar compilación" para ejecutar el compilador de recursos. Se mostrarán los mensajes de salida y los errores en el control principal. Pulsar "Salir" para evitar la compilación de recursos. En este caso, no se añadirán los recursos al código ISaGRAF.


Implementación

ISaGRAF no limita el número de recursos ni el tamaño de las columnas y filas de datos. Se guardan los recursos al final del código generado, junto con un directorio de recursos. El directorio de recursos tiene el siguiente formato (utilizando notaciones de "C"):

__RESOURCE:

{

  long nbres;	/* número de recursos definidos */

  {

    char name[16];	/* nombre de recurso */

    long type;	/* tipo de datos de recurso */

    long size;	/* tamaño exacto de bloque de datos */

    uint32 data;	/* puntero a datos */

    uint32 path_offset;	/* puntero a string */

  } /*nb de registros */

}

Los posibles valores del campo "type" son:

1 = fichero binario

2 = fichero de texto

3 = datos 'ulong' (no se utiliza el campo 'path_offset field' en este caso)

4 = lista de variables (no se utiliza el campo 'path_offset field' en este caso)

En el caso de los ficheros de texto, el compilador de recursos traduce los caracteres de final de línea de acuerdo con las convenciones del sistema objeto. Todos los punteros son offsets de 32 bits de la dirección de la estructura correspondiente. Todos los nombres de recursos y rutas de acceso son cadenas con terminaciones NULAS. Tras el directorio de recursos se encuentran los nombres de rutas de acceso y los datos.


Comandos del menú "Herramientas"

Los siguientes comandos están disponibles el menú Herramientas. Se usan para mostrar la información en una pequeña lista de texto en la parte inferior de la ventana de edición:

Mostrar salida del compilador	saca en la ventana de salida los mensajes de error desde la última compilación (sólo para programas ST/IL)

Buscar en texto	Encuentra las ocurrencias de un texto en todo el texto y las lista en la ventana de salida

Ocultar lista de salida	cierra la ventana de salida de lista

Cuando en la ventana de salida se muestran ocurrencias o mensajes de error, se puede hacer doble click en una línea para hacer directamente visible la selección en la posición correspondiente.


Depuración de programas ST e IL

Durante la simulación o la depuración en línea de un programa ST e IL, no se pueden introducir modificaciones en el texto del programa.

IL	Para programas IL las instrucciones de formatean en una vista de lista. El valor actual de la variable utilizada en una instrucción se muestra en la misma línea. Se puede hacer doble click en una instrucción para cambiar el correspondiente valor de la variable.

ST	Para programas ST, una ventana de Lista de Espía se integra en la ventana de edición. Se puede cambiar el tamaño de las ventanas arrastrando mediante el ratón la línea de separación entre las mismas.

Guardar listas en el disco duro

 	Inserción de variables en la lista

Modificación de la variable seleccionada

Vista hexadecimal

Para cada variable de la lista, ISaGRAF muestra su nombre, su valor actual y su texto de comentario. Se puede cambiar el tamaño de las columnas arrastrando con el ratón las líneas de separación en la barra de títulos.


Guardar listas en el disco duro

El comando "Fichero / Guardar" guarda la lista de variables en el disco, bajo el mismo nombre que el del programa editado. La lista se cargará automáticamente cada vez que el programa ST o IL se abre en modo depuración. Esta lista se puede también abrir y modificar libremente utilizando la herramienta Espiar Lista ejecutado por el comando "Herramientas / Espiar listas" de la ventana de depuración.


 	Inserción de variables en la lista

 El comando "Edición / Insertar" inserta otra variable en la lista de diagramas de tiempo. Se selecciona el nombre de la variable de la lista de objetos que están definidos en el diccionario del proyecto. De esta forma, el usuario no tiene que introducir el identificador manualmente. Se inserta la variable delante de la variable que está seleccionada en la lista. La lista no puede contener más de 8 variables. La misma variable no puede aparecer más de una vez en la misma lista.

 Cuando el nombre de una variable se destaca en texto ST, pulsar este botón en la barra de herramientas o ejecutar el comando "Edición / Espiar selección" para mandar directamente la variable a la lista de espía.


Modificación de la variable seleccionada

El comando "Edición / Modificar" sustituye la variable seleccionada por otra variable. También se puede utilizar el comando "Cortar" para eliminar la variable seleccionada de la lista.


Vista hexadecimal

En cualquier instante se puede conmutar entre el modo lista y la vista "Hexadecimal". Pulsar el botón de "zoom" en la barra de herramientas o usar el comando "Opciones / Vista hexadecimal" para conmutar el modo de vista.

En el modo "Hexadecimal", sólo se muestra el valor de una variable. Su valor se muestra en formato numérico/simbólico en la parte de arriba de la ventana, y se ve también en formato binario. Este modo permite espiar el valor hexadecimal de cada byte en el del valor de la variable.

El modo hexadecimal es muy útil para espiar y comprender mensajes que contienen caracteres no imprimibles.