ES2223954T3 - Herramienta de programacion. - Google Patents
Herramienta de programacion.Info
- Publication number
- ES2223954T3 ES2223954T3 ES01992939T ES01992939T ES2223954T3 ES 2223954 T3 ES2223954 T3 ES 2223954T3 ES 01992939 T ES01992939 T ES 01992939T ES 01992939 T ES01992939 T ES 01992939T ES 2223954 T3 ES2223954 T3 ES 2223954T3
- Authority
- ES
- Spain
- Prior art keywords
- program
- operands
- access
- identifiers
- logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23105—Window, drop, pull down menus
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23211—Limit value to tolerances, ranges, plausibility
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
Procedimiento para generar una interrupción de programa dentro de una lógica de programa con operadores y operandos para controlar y/o regular un proceso técnico en el que se ejecutan los siguientes pasos: - generación de una lista de identificadores preferentemente completa de los identificadores de operandos usados dentro de la lógica del programa y de sus puntos de uso correspondientes dentro de la lógica de programa durante la compilación de la lógica de programa y - el almacenamiento en la memoria intermedia de dicha lista de identificadores para el siguiente procesamiento, de tal forma - que se pueda seleccionar una selección de dichos identificadores de operandos y que con la ayuda de esta selección - se genere una tabla de operandos que presente los operandos usados en relación con el correspondiente tipo y/o anchura del acceso correspondiente, ofreciéndose de esta forma para el siguiente procesamiento, - que mediante la tabla de operandos se identifique un acceso a uno de los operandos usados y - que dicho acceso se cree dentro de la lógica de programa como condición para una interrupción del programa.
Description
Herramienta de programación.
La invención se refiere a una herramienta de
programación para producir la interrupción de un programa.
Dentro de los sistemas de automatización se
emplea una lógica de programa para controlar y/o regular los
análisis sensoriales y/o los análisis de los actores de un proceso
técnico. Con una lógica de programa de este tipo se leen los valores
de parámetros registrados por los sensores, así como los valores
introducidos a través de los elementos de manejo, y se siguen
procesando de forma interna con estados determinados o existentes,
convirtiéndose en valores de salida para los análisis sensoriales
y/o los análisis de los actores mencionados. El componente de
software de los sistemas de automatización modernos aumenta
constantemente.
La creación de una lógica de programa de este
tipo para un sistema de automatización se distingue de los programas
convencionales, especialmente porque los sistemas de automatización
constituyen sistemas cibernéticos, autocontroladores y/o
autorreguladores, en continuo funcionamiento. Esta aplicación
requiere la constante repetición de secuencias recurrentes que son
controladas y/o reguladas por correspondientes secuencias de
programa recurrentes de la lógica de programa. Por tanto, la técnica
de programación necesaria para ello se denomina programación
cíclica. Un objetivo esencial dentro de la programación cíclica es
un tiempo de ejecución lo más corto posible, porque el tiempo de
ejecución de las distintas secuencias del programa corresponde
sustancialmente al tiempo de reacción del control y/o de la
regulación en que se basa el sistema controlado y/o regulado.
Las tareas resultantes en el marco del control
y/o la regulación de un sistema de automatización se separan en
tareas individuales por el programador antes de la programación, de
modo que se puedan representar en el lenguaje de programación
empleado. En el marco de este trabajo preparatorio se intenta
reconocer la máxima cantidad posible de tareas y módulos que puedan
repetirse constantemente. El reconocimiento de secuencias parciales
recurrentes permite una programación especialmente clara y
breve.
Generalmente, se emplean programas de usuario
compuestos habitualmente por módulos. Estos módulos se componen de
redes que a su vez se componen de operaciones que interrelacionan
entre sí a distintos operandos. Para la creación de este tipo de
programas de usuario están disponibles lenguajes de programación
gráficos como, por ejemplo, KOP (esquema de contactos) o FUP
(esquema de funciones). Dentro de estos programas, los módulos
constituyen unas redes de enlaces lógicos de operadores y operandos.
En sentido figurado, un módulo de este tipo corresponde, pues, a un
procedimiento o una función en lenguajes de programación textuales
tales como C o Pascal. Cada módulo tiene una interfaz y puede ser
invocado por otros módulos. Una vez ejecutado un módulo, se ejecuta
el siguiente módulo invocado en la lógica del programa.
Aunque se tenga el máximo cuidado, no se puede
evitar que algunos operandos presenten en el transcurso de la
ejecución del programa sorprendentemente otro valor del que se
esperaba inicialmente. Es decir, que el programa no responde en este
punto de la manera esperada. Esto ocurre en la mayoría de los casos,
especialmente en procesos complejos, si han actuado sobre el módulo
anterior valores de entradas no considerados o no esperados.
En relación con los lenguajes de programación
textuales, pero también en el área informática, se conocen las
llamadas interrupciones ("interrupt"). En este sentido, se
entiende la interrupción de un proceso en curso por la CPU
existiendo un requerimiento correspondiente.
Dependiendo de si la causa del requerimiento
radica en el hardware o en el software, se distingue entre las
interrupciones de hardware y las de software. Para ejecutar las
interrupciones de hardware, la mayoría de los procesadores disponen
de un controlador de interrupción propio. Las interrupciones de
software son activadas por comandos especiales del código de máquina
o por el procesador mismo en caso de la aparición de manejos
erróneos definidos. Estas interrupciones ofrecen la posibilidad de
detener un proceso al producirse determinadas condiciones para
comprobar qué condiciones han provocado la "PARADA". En
relación con los lenguajes de programación textuales, las
interrupciones de este tipo pueden usarse conscientemente para
provocar una interrupción de este tipo en cuanto un parámetro adopte
un valor inesperado. Entonces, tras interrumpirse el proceso, se
puede analizar qué condiciones han conducido al estado inesperado o
indeseable. Dado que en el campo de la técnica de automatización,
los módulos mencionados también se pueden invocar mutuamente, una
vez finalizada la ejecución completa de un programa, el listado del
programa normalmente es tan poco sinóptico que resulta difícil
buscar la causa concreta del error.
El documento
DE-A-19728476 da a conocer un equipo
de programación con medios para formular una tarea de automatización
que se ha de solucionar en forma de un lenguaje de programación para
equipos de automatización, que facilite un análisis de error de
proceso a una unidad de evaluación. Sin embargo, en dicho documento
no se mencionan las interrupciones de programa.
Por lo tanto, la invención tiene el objetivo de
proporcionar un procedimiento y una herramienta de programación para
generar una interrupción de programa, que se pueda usar en
combinación con una lógica de programa para controlar y/o regular un
proceso técnico, es decir, especialmente en combinación con un
lenguaje de programación gráfico de la técnica de
automatización.
Este objetivo se consigue con un procedimiento
según la reivindicación 1, así como con una herramienta de
programación con las características según la reivindicación 7.
Configuraciones ventajosas del procedimiento
según la invención se proporcionan según las características de las
reivindicaciones subordinadas 2 a 6 y, respecto a la herramienta de
programación, según las reivindicaciones subordinadas 8 y 9.
Según la reivindicación principal, se proporciona
un procedimiento para generar una correspondiente interrupción de
programa dentro de una lógica de programa con operadores y operandos
para controlar y/o regular un proceso técnico. Aquí, se elabora una
compilación de identificadores de operandos, creada durante la
compilación del programa, en relación con los puntos de utilización
correspondientes de los identificadores de operandos, en una lista
de identificadores. A partir de esta lista de identificadores
relativamente amplia se compila una tabla de operandos con operandos
seleccionados y con la denominación del acceso correspondiente a
dichos operandos. Además, mediante esta tabla se pueden establecer
determinados accesos como condición para la aparición de una
interrupción de programa.
En este procedimiento, por lo tanto, para
establecer una interrupción de programa ya no es necesario revisar
todos los puntos de utilización del operando "problemático",
sino que se puede seleccionar exactamente y de manera cómoda el tipo
de acceso que ha provocado un error que ha de comprobarse o que debe
comprobarse por otra razón en el marco de una interrupción de
programa.
La lista de identificadores se produce
habitualmente al compilar la lógica de programa examinada. Sin
embargo, hasta ahora no está disponible para el siguiente
tratamiento. Según una configuración ventajosa de la invención,
todas las listas parciales de identificadores originadas durante las
distintas fases de compilación se resumen en una sola lista completa
de identificadores que, entonces, está disponible para el siguiente
procesamiento, en este caso para generar una interrupción de
programa.
A esta lista de identificadores está asignado un
elemento de filtro para configurar de forma más clara la lista de
identificadores que suele ser muy extensa. Así, por ejemplo,
únicamente se pueden seleccionar aquellos identificadores de
operandos que se transmitan en las entradas y salidas de un módulo.
Por lo tanto, el elemento de filtro se puede emplear para la
selección de los operandos relevantes en relación con la definición
de una interfaz.
Finalmente, dentro de una tabla de operandos,
mediante una herramienta de marcado propio se puede marcar una línea
o una o varias celdas de dicha línea. Con esta selección se
determina de forma unívoca la anchura de un acceso al operando y se
establece como condición para la interrupción de programa.
Según otra forma de realización, además de la
selección de la anchura del acceso a un operando, también se puede
establecer el tipo de acceso como criterio para la generación de un
punto de detención de datos.
Si la definición de la anchura del acceso se
produce por el marcado de celdas o líneas de la tabla de operandos,
la determinación del tipo de acceso se efectúa de una manera cómoda
en forma de un menú de selección del que se selecciona un tipo de
acceso deseado mediante otra herramienta de marcado.
Por lo tanto, la herramienta de programación
según la reivindicación 7 permite la definición de las condiciones
para una interrupción de programa, es decir la creación de un punto
de detención de datos sin necesidad de un análisis complicado de
todos los puntos de utilización del operando en cuestión, además de
una gran comodidad de uso y una representación siempre clara.
En cuanto se hayan definido unívocamente las
condiciones para la aparición de la interrupción de programa
mediante el procedimiento antes descrito, un punto de detención de
datos es generado automáticamente por la herramienta de
programación, de tal forma que un comando se incorpore en la
secuencia de programa del contenido que ha de ejecutarse, y que al
producirse las condiciones definidas anteriormente se genere un
comando de interrupción de programa, es decir, "interrupt", por
el que quede interrumpida al menos temporalmente la siguiente
ejecución de la lógica del programa.
La herramienta de programación presenta, además,
un editor de programa que se abre automáticamente para el caso de
una interrupción de programa, de forma que sea posible el análisis
del programa y, en especial, de los parámetros que conducen a la
aparición de la interrupción del programa. Entonces, dentro del
editor de programa se puede revisar la correspondiente secuencia del
programa o el correspondiente módulo siendo posible dotarlo de
nuevo, mediante la herramienta de programación, de puntos de
detención de datos modificados, para permitir de nuevo un análisis
de una secuencia de programa que controle un sistema de
automatización.
A continuación, el procedimiento y la herramienta
de programación según la invención se describen con la ayuda de una
tabla de operandos representada en el dibujo. La realización según
el ejemplo de realización constituye tan sólo una posible
realización del procedimiento o de la herramienta de
programación.
A continuación, la invención se describe
detalladamente con la ayuda de un ejemplo de realización haciendo
referencia a la única figura del dibujo. La figura del dibujo
muestra una tabla de operandos selectos, usados dentro de una lógica
de programa.
La tabla, representada en el dibujo sólo a título
de ejemplo, de los operandos usados dentro de una lógica de programa
se refiere, por ejemplo, a los operandos de una salida (A), con un
direccionamiento de byte de (AB0 a AB7), siendo asignado a cada
direccionamiento de byte una línea de la tabla de operandos. Las
distintas líneas están divididas en distintas columnas que designan
distintas anchuras de acceso a la dirección de byte asignada a la
línea correspondiente. Se distingue entre los accesos por bit (0 a
7), el acceso por byte (B), el acceso por palabra (W) y el acceso
por palabra doble (D).
Los operandos resumidos en la tabla son sólo una
subcantidad seleccionada mediante un filtro de todos los operadores
usados dentro de la lógica de programa. En el presente ejemplo,
interesan los operadores de la salida A.
Adicionalmente, la tabla muestra diversas marcas,
en este caso aspas. En lugar de las aspas, las distintas celdas o
líneas de la tabla también pueden tener un fondo de color o estar
resaltadas de otra forma. Estas marcas muestran cómo se accede a los
operadores usados. En el presente caso, la tabla muestra la anchura
del acceso. Esta representación por tabla constituye una realización
gráfica de los accesos a operandos seleccionados.
La información representada en la tabla se
obtiene a partir de una lista de identificadores almacenadas en la
memoria intermedia que comprende todos los identificadores de
operandos y sus puntos de uso dentro de la lógica de programa. La
lista de identificadores es creada durante la compilación de la
lógica del programa y, a continuación, se almacenan en la memoria
intermedia como se ha mencionado. Mediante un elemento de filtro, es
decir, la selección de la salida o la entrada de un módulo por
ejemplo, se seleccionan determinados operandos y, entonces, se
visualizan, de la manera descrita, en relación con la representación
de la anchura de acceso en la tabla de operandos.
Mediante una herramienta de marcado, es decir,
por ejemplo un posicionamiento de cursor en la tabla de operandos,
mediante la selección de una o varias líneas o celdas se puede
seleccionar un determinado acceso como condición para una
interrupción del programa. En relación con el marcado en forma de un
menú emergente o desplegable o ambos, a un usuario se le ofrece la
posibilidad de determinar adicionalmente también el tipo de acceso,
es decir, escritura, lectura o ambas.
De este modo, quedan establecidos unívocamente
uno o varios accesos a un operando determinado como condición para
una interrupción del programa. Una herramienta de programación
origina, además, automáticamente el punto de detención de datos
deseado en un punto de acceso definido de esta forma.
Claims (9)
1. Procedimiento para generar una interrupción de
programa dentro de una lógica de programa con operadores y operandos
para controlar y/o regular un proceso técnico en el que se ejecutan
los siguientes pasos:
- -
- generación de una lista de identificadores preferentemente completa de los identificadores de operandos usados dentro de la lógica del programa y de sus puntos de uso correspondientes dentro de la lógica de programa durante la compilación de la lógica de programa y
- -
- el almacenamiento en la memoria intermedia de dicha lista de identificadores para el siguiente procesamiento, de tal forma
- -
- que se pueda seleccionar una selección de dichos identificadores de operandos y que con la ayuda de esta selección
- -
- se genere una tabla de operandos que presente los operandos usados en relación con el correspondiente tipo y/o anchura del acceso correspondiente, ofreciéndose de esta forma para el siguiente procesamiento,
- -
- que mediante la tabla de operandos se identifique un acceso a uno de los operandos usados y
- -
- que dicho acceso se cree dentro de la lógica de programa como condición para una interrupción del programa.
2. Procedimiento según la reivindicación 1,
caracterizado porque con cada fase de compilación de la
lógica del programa se crea una lista parcial de identificadores que
se almacena en la memoria intermedia, siendo resumidas a
continuación todas las listas parciales de identificadores en una
lista de identificadores.
3. Procedimiento según la reivindicación 1 ó 2,
caracterizado porque de la lista de identificadores con un
elemento de filtro ajustable se seleccionan identificadores de
programa definidos, preferentemente de las entradas y salidas de un
programa, de una secuencia del programa y/o de los distintos
operandos.
4. Procedimiento según una de las
reivindicaciones precedentes, caracterizado porque dentro de
la tabla de operandos, mediante una herramienta de marcado se marcan
distintas líneas y/o celdas, identificando de esta manera la anchura
del acceso.
5. Procedimiento según la reivindicación 4,
caracterizado porque, adicionalmente a la selección de la
anchura del acceso correspondiente, se selecciona también el tipo de
acceso, preferentemente escritura y/o lectura.
6. Procedimiento según la reivindicación 5,
caracterizado porque los posibles tipos de acceso se ofrecen
para su selección mediante un menú de selección, preferentemente en
forma de un menú emergente y/o desplegable, y se seleccionan
mediante otra herramienta de marcado y se establecen como otra
condición para la aparición de la interrupción del programa.
7. Herramienta de programación para generar una
interrupción de programa dentro de una lógica del programa con
operadores y operandos para controlar y/o regular un proceso
técnico, en el que se almacenan en la memoria intermedia una lista
de los identificadores de los identificadores de operandos usados
dentro de la lógica del programa, creada durante la compilación de
la lógica del programa, y está prevista para el siguiente
procesamiento de tal forma que para una selección definible de
operandos se genere una tabla de operandos que presente los
operandos usados en relación con el tipo y/o la anchura
correspondiente del acceso correspondiente, pudiendo determinarse
mediante esta tabla de operandos únicamente un acceso a uno de los
operandos usados, y estando creado dicho acceso automáticamente
dentro de la lógica del programa como condición para una
interrupción del programa.
8. Herramienta de programación según la
reivindicación 7, caracterizada porque en el momento del
acceso definido mediante la tabla de operandos se puede generar un
comando de interrupción del programa y de esta forma se puede
interrumpir la ejecución de la lógica del programa, con un sistema
de automatización en ejecución, excitado correspondientemente.
9. Herramienta de programación según la
reivindicación 8, caracterizada porque en el momento de la
interrupción del programa se puede invocar automáticamente un editor
de programa y, dentro de este editor de programa, preferentemente
mediante un marcado por cursor, se puede especificar mediante un
marcado el punto del acceso que desencadene la interrupción del
programa.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10054196 | 2000-11-02 | ||
| DE10054196A DE10054196A1 (de) | 2000-11-02 | 2000-11-02 | Programmierwerkzeug |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2223954T3 true ES2223954T3 (es) | 2005-03-01 |
Family
ID=7661821
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES01992939T Expired - Lifetime ES2223954T3 (es) | 2000-11-02 | 2001-10-26 | Herramienta de programacion. |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20040049622A1 (es) |
| EP (1) | EP1330714B1 (es) |
| AT (1) | ATE271237T1 (es) |
| DE (2) | DE10054196A1 (es) |
| ES (1) | ES2223954T3 (es) |
| WO (1) | WO2002037281A2 (es) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8490064B2 (en) * | 2004-05-21 | 2013-07-16 | Oracle International Corporation | Hierarchical debug |
| CN110632878B (zh) * | 2019-10-08 | 2022-06-28 | 上海宝阶智能科技有限公司 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE19728476A1 (de) * | 1997-07-03 | 1999-01-07 | Siemens Ag | Programmiergerät |
-
2000
- 2000-11-02 DE DE10054196A patent/DE10054196A1/de not_active Withdrawn
-
2001
- 2001-10-26 EP EP01992939A patent/EP1330714B1/de not_active Expired - Lifetime
- 2001-10-26 DE DE50102871T patent/DE50102871D1/de not_active Expired - Lifetime
- 2001-10-26 AT AT01992939T patent/ATE271237T1/de not_active IP Right Cessation
- 2001-10-26 WO PCT/DE2001/004068 patent/WO2002037281A2/de not_active Ceased
- 2001-10-26 ES ES01992939T patent/ES2223954T3/es not_active Expired - Lifetime
-
2003
- 2003-05-02 US US10/428,045 patent/US20040049622A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| DE10054196A1 (de) | 2002-05-29 |
| EP1330714B1 (de) | 2004-07-14 |
| US20040049622A1 (en) | 2004-03-11 |
| WO2002037281A2 (de) | 2002-05-10 |
| ATE271237T1 (de) | 2004-07-15 |
| WO2002037281A3 (de) | 2002-08-29 |
| DE50102871D1 (de) | 2004-08-19 |
| EP1330714A2 (de) | 2003-07-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7201078B2 (ja) | データ引数を動的に識別し、ソースコードを計装するためのシステムと方法 | |
| ES2493068T3 (es) | Procedimiento y dispositivo para crear un programa de aplicación para un mando de seguridad | |
| US6243857B1 (en) | Windows-based flowcharting and code generation system | |
| US8893144B2 (en) | Systems and methods for parallel execution of a portion of a script by interpreting comments in the script as parallel control statements | |
| JP2021533485A (ja) | プログラムの機能を向上するための制御フローシステム、非一時的可読媒体、および方法 | |
| ES2913636T3 (es) | Control de secuencia de módulos de programa | |
| CN102207901A (zh) | 用于分析软件的方法和设备 | |
| JP6372308B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体 | |
| JP3819639B2 (ja) | プログラミング装置 | |
| CN102693124A (zh) | 用于识别程序流程的方法 | |
| Fuchs et al. | Identification of design patterns for IEC 61131-3 in machine and plant manufacturing | |
| ES2309706T3 (es) | Procedimiento para configurar un programa informatico. | |
| JP6150953B2 (ja) | デバッグ装置、デバッグ方法及びデバッグプログラム | |
| EP3951519B1 (en) | Development support device, method for controlling development support device, information processing program, and recording medium | |
| JP2010134593A (ja) | プログラマブルコントローラ | |
| CN111954854A (zh) | 支持装置以及支持程序 | |
| JP7338922B2 (ja) | 異種埋め込み型の表形式化動作プロセスの処理および実行方法および装置 | |
| CN101561779A (zh) | 一种调试方法和调试器 | |
| US20160103439A1 (en) | Production machine or machine tool and method for operating such a machine tool | |
| CN103514099B (zh) | 用于对存储器间接寻址的工业自动化部件和方法 | |
| JP2005326909A (ja) | プラントエンジニアリングシステム | |
| US20040049622A1 (en) | Programming tool | |
| Reinbacher et al. | Refining assembly code static analysis for the Intel MCS-51 microcontroller | |
| Stec | SFC graphic editor for CPDev environment | |
| JPS63214804A (ja) | Plc用プロセツサ及びplc |