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
Application number
ES01992939T
Other languages
English (en)
Inventor
Thilo Opaterny
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Siemens Corp
Original Assignee
Siemens AG
Siemens Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG, Siemens Corp filed Critical Siemens AG
Application granted granted Critical
Publication of ES2223954T3 publication Critical patent/ES2223954T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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.
ES01992939T 2000-11-02 2001-10-26 Herramienta de programacion. Expired - Lifetime ES2223954T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19728476A1 (de) * 1997-07-03 1999-01-07 Siemens Ag Programmiergerät

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