DE19521357A1 - Fehlersuchverfahren - Google Patents

Fehlersuchverfahren

Info

Publication number
DE19521357A1
DE19521357A1 DE1995121357 DE19521357A DE19521357A1 DE 19521357 A1 DE19521357 A1 DE 19521357A1 DE 1995121357 DE1995121357 DE 1995121357 DE 19521357 A DE19521357 A DE 19521357A DE 19521357 A1 DE19521357 A1 DE 19521357A1
Authority
DE
Germany
Prior art keywords
subroutine
point
program
troubleshooting
call
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.)
Granted
Application number
DE1995121357
Other languages
English (en)
Other versions
DE19521357C2 (de
Inventor
Bernhard Dipl Ing Weyermann
Helmut Dipl Ing Kielburger
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
Original Assignee
Siemens AG
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 filed Critical Siemens AG
Priority to DE1995121357 priority Critical patent/DE19521357C2/de
Publication of DE19521357A1 publication Critical patent/DE19521357A1/de
Application granted granted Critical
Publication of DE19521357C2 publication Critical patent/DE19521357C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

Die vorliegende Erfindung betrifft ein Fehlersuchverfahren für ein von einem Hauptprogramm aufrufbares Unterprogramm, wobei das Hauptprogramm an einer Aufrufstelle einen Aufruf für das Unterprogramm und das Unterprogramm einen Unterbre­ chungspunkt enthält.
Bei der Online-Fehlersuche in Datenverarbeitungsprogrammen, allgemein als Debuggen bezeichnet, wird üblicherweise das auf Fehler zu untersuchende Programm unter Kontrolle eines soge­ nannten Debuggers ausgeführt. Hierzu wird vom Betriebssystem aus der Debugger, also das Fehlersuchprogramm, aufgerufen. Von diesem Fehlersuchprogramm aus wird dann das zu untersu­ chende Programm aufgerufen. Das zu untersuchende Programm enthält in aller Regel einen Unterbrechungspunkt. Bei Errei­ chen dieses Unterbrechungspunktes wird die weitere Abarbei­ tung des zu untersuchenden Programms gestoppt und zum Debug­ ger zurückgekehrt. Innerhalb des Debuggers wird dann zyklisch eine Benutzerschnittstelle abgefragt und gemäß den über die Benutzerschnittstelle eingegebenen Anweisungen Daten ausge­ lesen oder neu geschrieben. Auch können über den Debugger im zu untersuchenden Programm neue Unterbrechungspunkte gesetzt, bisher vorhandene Unterbrechungspunkte gelöscht und die Ab­ arbeitung des zu untersuchenden Programms fortgesetzt werden. Das Hauptprogramm, das Betriebssystem also, hingegen wird erst wieder ausgeführt, wenn der Debugger beendet wird. Im Prinzip kann der Rechner, auf dem das Fehlersuchprogramm ab­ gearbeitet wird, also beliebig lange im Fehlersuchprogramm verweilen, ohne zum Betriebssystem zurückzukehren.
Speicherprogrammierbare Steuerungen weisen ein Hauptprogramm auf, welches zyklisch zu wiederholen ist. Die Zeit für einen Zyklus wird dabei innerhalb der speicherprogrammierbaren Steuerung überwacht. Wenn diese Zeit die maximale Zykluszeit überschreitet, behandelt dies die speicherprogrammierbare Steuerung als Fehler. Sie überführt daraufhin die von ihr ge­ steuerte Anlage in einen sicheren Zustand und beendet die weitere Abarbeitung des Programms.
Es ist sofort ersichtlich, daß die Überwachung des Hauptpro­ gramms auf zyklische Ausführung einerseits und das prinzi­ piell beliebig lange Verweilen im Debugger andererseits sich widersprechen. Daher war es bisher nicht möglich, Programme für speicherprogrammierbare Steuerungen online, d. h. in der speicherprogrammierbaren Steuerung, auf Fehler zu untersu­ chen.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren anzugeben, mit dem dies möglich wird.
Die Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst. Erfindungsgemäß wird also - im Unterschied zum Stand der Technik - beim Debuggen die zyklische Abarbeitung vom Fehler­ suchprogramm zum Hauptprogramm verlagert. Dadurch ist gewähr­ leistet, daß die maximale Zykluszeit trotz Online-Fehlersuche nicht überschritten wird. Die Online-Fehlersuche wird also möglich.
Weitere Vorteile und Einzelheiten ergeben sich aus der nach­ folgenden Beschreibung eines Ausführungsbeispiels. Dabei zei­ gen:
Fig. 1 die Aufruffolge der verschiedenen Programme und
Fig. 2 ein Struktogramm des Fehlersuchprogramms.
Fig. 1 zeigt ein Hauptprogramm 1, das zyklisch ausgeführt wird, wie aus Fig. 1 aufgrund des Pfeils 2 sofort ersichtlich ist. Fig. 1 zeigt ferner ein Unterprogramm 3, welches vom Hauptprogramm 1 aus aufrufbar ist. Hierzu enthält das Haupt­ programm 1 eine Aufrufstelle 4, an welcher ein Aufruf für das Unterprogramm 3 abgespeichert ist. Wenn das Fehlersuchpro­ gramm 5 deaktiviert ist, wird bei Erreichen der Aufrufstelle 4 stets das Unterprogramm 3 aufgerufen und ausgeführt. Nach Ausführen des Unterprogramms 3 wird mit der Abarbeitung des Hauptprogramms nach der Aufrufstelle 4 fortgefahren.
Wenn das Fehlersuchprogramm 5 hingegen aktiviert ist, wird bei Erreichen der Aufrufstelle 4 nicht direkt das Unterpro­ gramm 3 aufgerufen, sondern zunächst das Fehlersuchprogramm 5. Im Fehlersuchprogramm 5 wird im Programmteil 6 eine Benut­ zerschnittstelle bedient. Hierauf wird später nochmals in Verbindung mit Fig. 2 näher eingegangen werden.
Nach Bedienen der Benutzerschnittstelle wird, wenn das Feh­ lersuchprogramm 5 erstmals aufgerufen wurde, im Programmteil 7 das Unterprogramm 3 aufgerufen. Das Unterprogramm 3 wird ausgeführt, bis es den Unterbrechungspunkt S (BP = break point) erreicht. Bei Erreichen des Unterbrechungspunktes 8 wird die weitere Abarbeitung des Unterprogramms 3 gestoppt und eine Interruptserviceroutine 9 aufgerufen. Diese rettet aus dem Prozessor, der das Unterprogramm 3 ausführt, unter­ programmspezifische Daten (üblicherweise als Prozessorkontext bezeichnet) in einen dafür vorgesehenen Speicherbereich und kehrt dann direkt zum Fehlersuchprogramm 5 zurück. Dies ist in Fig. 1 durch die durchgezogenen Pfeile zwischen Fehlersuch­ programm 5, Interruptserviceroutine 9 und Unterprogramm 3 an­ gedeutet. Das Fehlersuchprogramm 5 wird daraufhin fortgesetzt und nach Beendigung des Fehlersuchprogramms 5 zum Hauptpro­ gramm 1 zurückgekehrt. Das Hauptprogramm 1 wird dann nach der Aufrufstelle 4 fortgesetzt.
Wenn dann bei einem weiteren Durchlauf des Hauptprogramms erneut die Aufrufstelle 4 erreicht wird, wird wieder das Feh­ lersuchprogramm 5 aufgerufen. Beim Abarbeiten des Fehlersuch­ programms 5 wird auch erneut die Benutzerschnittstelle durch den Programmteil 6 bedient. Danach wird aber im Regelfall nicht erneut das Unterprogramm 3 aufgerufen, sondern direkt zum Hauptprogramm 1 zurückgekehrt und das Hauptprogramm 1 nach der Aufrufstelle 4 fortgesetzt.
Aus obiger Schilderung ist ersichtlich, daß das Bedienen der Benutzerschnittstelle zum einen im Rahmen des Fehlersuchpro­ gramms 5 ausgeführt wird und daß das Bedienen der Benutzer­ schnittstelle zum anderen bei jedem Aufrufen des Unterpro­ gramms 5, also auch vor dem Aufrufen des Unterprogramms 3, erfolgt.
Über die Benutzerschnittstelle ist zumindest der Unterbre­ chungspunkt 8 setz- und löschbar. Gleiches gilt selbstver­ ständlich auch für einen weiteren Unterbrechungspunkt, der z. B. an der Stelle 8′ gesetzt bzw. gelöscht werden kann. Fer­ ner ist es auch möglich, Variablen, also gespeicherte Werte, die vom Unterprogramm 3 verwertet und/oder geändert werden, mittels des Programmteils 6 abzufragen. Gegebenenfalls kann auch zugelassen werden, diese Werte mittels des Programmteils 6 zu ändern.
Wenn der Unterbrechungspunkt 8 aufgrund entsprechender Ein­ gaben über die Benutzerschnittstelle gelöscht wird, wird beim nächsten Erreichen des Programmteils 7 der Prozessorkontext aus dem Speicherbereich, in den er gerettet wurde, ausgelesen und wieder in den Prozessor, der das Unterprogramm 3 fortset­ zen soll, geladen. Dann wird das Unterprogramm 3 vom Fehler­ suchprogramm 5 aus aufgerufen und ab dem Unterbrechungspunkt 8 weiter ausgeführt. Dies ist in Fig. 1 durch den gestrichel­ ten Pfeil vom Fehlersuchprogramm 5 zum Unterprogramm 3 ange­ deutet. Das Unterprogramm 3 wird dann im Regelfall bis zum Ende ausgeführt und, wie durch den zweiten gestrichelten Pfeil vom Unterprogramm 3 zum Fehlersuchprogramm 5 angedeu­ tet, über das Fehlersuchprogramm 5 zum Hauptprogramm 1 zu­ rückgekehrt. Bei weiteren Aufrufen des Unterprogramms 3 wird dann dieses aufgerufen und in üblicher Weise ausgeführt.
Wenn beim Bedienen der Benutzerschnittstelle ein neuer Unter­ brechungspunkt 8′ gesetzt wurde, wird das Unterprogramm 3 selbstverständlich nur bis zum neu gesetzten Unterbrechungs­ punkt 8′ ausgeführt. Die weitere Vorgehensweise ist dann, wie in Fig. 1 durch die strichpunktierten Linien angedeutet, völ­ lig analog zu der bei gesetztem Unterbrechungspunkt 8.
Fig. 2 zeigt nun ein Struktogramm des Fehlersuchprogramms 3, soweit es zum Verständnis der vorliegenden Erfindung erfor­ derlich ist.
Im Rahmen des Fehlersuchprogramms 3 wird zunächst im Pro­ grammteil 6-1 die Benutzerschnittstelle, also z. B. über eine Tastatur oder mittels einer Maus und eines Bildschirms einge­ gebene Befehle, abgefragt. Im Programmteil 6-2 wird dann überprüft, ob Befehle eingegeben wurden. Eingegebene Befehle werden ausgeführt. Mögliche Befehle sind beispielsweise die Abfrage von Variablen, das Verändern von Variablen und das Setzen und Löschen von Unterbrechungspunkten.
Wie bereits erwähnt, kann beim Abarbeiten des Programmteils 6-2 unter anderem auch der Unterbrechungspunkt 8 gelöscht werden. Wenn dies der Fall ist, wird selbstverständlich auch die Variable exe-UP von ihrem Wert "nein" auf den Wert "ja" geändert. Die diesbezügliche Abfrage erfolgt im Schritt 6-3, das Ändern der Variable exe-UP gegebenenfalls im Schritt 6-4.
Im Programmteil 7-1 wird dann die Variable exe-UP abgefragt. Wenn der Wert der variablen exe-UP "nein" ist, erfolgt gemäß Programmteil 7-2 keine weitere Aktion. Wenn der Wert der Va­ riablen exe-UP dagegen "ja" ist, wird im Programmteil 7-3 ab­ gefragt, ob der Wert der Variablen continuation "ja" oder "nein" ist. Wenn der Wert "nein" ist, handelt es sich um ei­ nen normalen Unterprogrammaufruf des Unterprogramms 3, der dann im Programmteil 7-4 erfolgt. Ansonsten handelt es sich um eine Fortsetzung des Unterprogramms 3 nach dem Unterbre­ chungspunkt 8. In diesem Fall wird der gerettete Prozessor­ kontext wieder in den Prozessor geladen und die Abarbeitung des Unterprogramms 3 nach dem Unterbrechungspunkt 8 fortge­ setzt. Diese Schritte erfolgen im Programmteil 7-5.
Nach der Rückkehr aus dem Unterprogramm 3 in das Fehlersuch­ programm 5 wird im Programmteil 7-6 abgefragt, ob das Unter­ programm 3 normal beendet wurde oder ob das Unterprogramm 3 einen Unterbrechungspunkt 8 bzw. 8′ erreichte und von dort in das Fehlersuchprogramm 5 zurückgekehrt ist. Wenn das Unter­ programm 3 vollständig abgearbeitet wurde wird im Programm­ teil 7-7 die Variable exe-UP auf "ja" gesetzt und die Vari­ able continuation auf "nein". Ansonsten werden im Programm­ teil 7-8 die Variable exe-UP auf "nein" und die Variable con­ tinuation auf "ja" gesetzt. Sodann wird durch Abarbeiten des Programmteils 7-9 zum Hauptprogramm 1 zurückgekehrt.

Claims (8)

1. Fehlersuchverfahren für ein von einem Hauptprogramm (1) aufrufbares Unterprogramm (3), wobei das Hauptprogramm (1) an einer Aufrufstelle (4) einen Aufruf für das Unterprogramm (3) und das Unterprogramm (3) einen Unterbrechungspunkt (8) ent­ hält, mit folgenden Merkmalen:
  • - das Hauptprogramm (1) wird zyklisch ausgeführt,
  • - beim ersten Erreichen der Aufrufstelle (4) wird ein Fehler­ suchprogramm (5) aufgerufen und vom Fehlersuchprogramm (5) aus das Unterprogramm (3) aufgerufen und ausgeführt, bis es den Unterbrechungspunkt (8) erreicht,
  • - bei Erreichen des Unterbrechungspunkts (8) wird die Abar­ beitung des Hauptprogramms (1) nach der Aufrufstelle (4) fortgesetzt,
  • - bei weiteren Erreichen der Aufrufstelle (4) wird eine Be­ nutzerschnittstelle bedient und das Hauptprogramm (1) nach der Aufrufstelle (4) fortgesetzt.
2. Fehlersuchverfahren nach Anspruch 1, dadurch gekennzeichnet, daß beim Erreichen des Unter­ brechungspunktes (8) unterprogrammspezifische Daten aus einem Prozessor ausgelesen und in einen dafür vorgesehenen Spei­ cherbereich gerettet werden.
3. Fehlersuchverfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß bei Er­ reichen der Aufrufstelle (4) stets, also auch vor dem Auf­ rufen des Unterprogramms (3), die Benutzerschnittstelle be­ dient wird.
4. Fehlersuchverfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, daß das Be­ dienen der Benutzerschnittstelle im Rahmen des Fehlersuch­ programms (5) ausgeführt wird.
5. Fehlersuchverfahren nach Anspruch 1, 2, 3 oder 4, dadurch gekennzeichnet, daß über die Benutzerschnittstelle zumindest der Unterbrechungspunkt (8) setz- und löschbar ist und daß gespeicherte Werte abfragbar sind.
6. Fehlersuchverfahren nach Anspruch 5, dadurch gekennzeichnet, daß über die Benutzerschnitt­ stelle auch gespeicherte Werte änderbar sind.
7. Fehlersuchverfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß
  • - daß nach dem Löschen des Unterbrechungspunktes (8) beim nächsten Erreichen der Aufrufstelle das Unterprogramm (3) aufgerufen und ab dem Unterbrechungspunkt (8) ausgeführt wird, und
  • - daß, wenn nicht ein weiterer Unterbrechungspunkt (8′) ge­ setzt wurde, bei weiteren Erreichen der Aufrufstelle (4) das Unterprogramm (3) aufgerufen und ausgeführt wird.
8. Fehlersuchverfahren nach Anspruch 2 und 7, dadurch gekennzeichnet, daß vor dem ersten Aufrufen des Unterprogramms (3) nach dem Löschen des Unterbrechungspunktes (8) die unterprogrammspezifischen Daten aus dem dafür vorgesehenen Speicherbereich ausgelesen und in den Prozessor eingeschrieben werden.
DE1995121357 1995-06-12 1995-06-12 Fehlersuchverfahren Expired - Fee Related DE19521357C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1995121357 DE19521357C2 (de) 1995-06-12 1995-06-12 Fehlersuchverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1995121357 DE19521357C2 (de) 1995-06-12 1995-06-12 Fehlersuchverfahren

Publications (2)

Publication Number Publication Date
DE19521357A1 true DE19521357A1 (de) 1996-06-27
DE19521357C2 DE19521357C2 (de) 1997-12-11

Family

ID=7764195

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1995121357 Expired - Fee Related DE19521357C2 (de) 1995-06-12 1995-06-12 Fehlersuchverfahren

Country Status (1)

Country Link
DE (1) DE19521357C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103010888A (zh) * 2012-12-18 2013-04-03 张国庆 矿井提升机s7-300电控保护综合试验技术

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wüllen, Martin van und Laskowski, Michael, Die SPS und ihr Debugger, in: Technische Rundschau, H. 40, 1991, S. 62-66 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103010888A (zh) * 2012-12-18 2013-04-03 张国庆 矿井提升机s7-300电控保护综合试验技术
CN103010888B (zh) * 2012-12-18 2016-03-09 张国庆 矿井提升机s7-300电控保护试验方法

Also Published As

Publication number Publication date
DE19521357C2 (de) 1997-12-11

Similar Documents

Publication Publication Date Title
DE2953432C1 (de) Vorrichtung zum Testen eines Mikroprogramms
DE3206891C2 (de)
DE69114905T2 (de) Verfahren und System zum Optimieren des Abschaltens in Systemen aus programmierbaren Vorrichtungen.
DE10116809A1 (de) Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
WO1995027236A1 (de) Verfahren zur automatischen diagnose von störungsfällen
DE102005018910A1 (de) Verfahren zum Aufrüsten eines mikroprozessorgesteuerten Geräts mit neuem Softwarecode über ein Kommunikationsnetzwerk
DE112014002979T5 (de) Entwicklungswerkzeug, Programmänderungsgerät undProgrammänderungssystem
DE19521357C2 (de) Fehlersuchverfahren
EP2496993B1 (de) Verfahren zur absicherung von end-user programmänderungen durch formale kontrakte und programmverifikation in der automatisierungstechnik
DE60225464T2 (de) Robotersystem und verfahren und software für das robotersystem
DE102004006767A1 (de) Verfahren und Vorrichtung zum Transport von Datenabschnitten mittels eines DMA-Controllers
DE102007045602A1 (de) Programmiersystem
DE10017708A1 (de) Verfahren zum Steuern von Mechanismen und technischen Systemen, Einrichtung und Steuerungssoftware
DE10057782C1 (de) Verfahren und Vorrichtung zum Überführen einer Prozesssteuerung von einem Solobetrieb in einen redundanten Steuerungsbetrieb
DE19954810B4 (de) Verfahren zur Erzeugung und zum Debuggen eines Maschinenprogramms
EP1330714B1 (de) Programmierwerkzeug
DE102021112165A1 (de) Speichervergleichen einer speicherprogrammierbaren Steuerung
DE4210844A1 (de) Programmierbare steuerung und verfahren zur ueberwachung eines ablaufprogrammes der steuerung
EP2418581A1 (de) Verfahren und Analyseeinrichtung zum Auffinden von Fehlern in einem ablaufenden Programm
EP2363771A1 (de) Programmierschnittstelle und Verfahren zur Steuerung einer Anwendung eines Gerätes einer industriellen Automatisierungsanordnung
EP1594063B1 (de) Verfahren zum Überprüfen von Steuerungsprogrammen
EP0809183A1 (de) Verfahren und Anordnung zur Aktualisierung eines Teils eines Programmcodes während dessen Ausführung
EP0924619A2 (de) Programmgesteuerte Einheit
DE4421245A1 (de) Einrichtung zur Simulation des Betriebs einer technischen Anlage

Legal Events

Date Code Title Description
OAV Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee