DE2809341C2 - - Google Patents

Info

Publication number
DE2809341C2
DE2809341C2 DE2809341A DE2809341A DE2809341C2 DE 2809341 C2 DE2809341 C2 DE 2809341C2 DE 2809341 A DE2809341 A DE 2809341A DE 2809341 A DE2809341 A DE 2809341A DE 2809341 C2 DE2809341 C2 DE 2809341C2
Authority
DE
Germany
Prior art keywords
code group
module
read
remainder
sum
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
Application number
DE2809341A
Other languages
English (en)
Other versions
DE2809341A1 (de
Inventor
Jacques Vitry Sur Seine Fr Sery
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.)
Bull SA
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Publication of DE2809341A1 publication Critical patent/DE2809341A1/de
Application granted granted Critical
Publication of DE2809341C2 publication Critical patent/DE2809341C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07DHANDLING OF COINS OR VALUABLE PAPERS, e.g. TESTING, SORTING BY DENOMINATIONS, COUNTING, DISPENSING, CHANGING OR DEPOSITING
    • G07D7/00Testing specially adapted to determine the identity or genuineness of valuable papers or for segregating those which are unacceptable, e.g. banknotes that are alien to a currency
    • G07D7/004Testing specially adapted to determine the identity or genuineness of valuable papers or for segregating those which are unacceptable, e.g. banknotes that are alien to a currency using digital security elements, e.g. information coded on a magnetic thread or strip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07DHANDLING OF COINS OR VALUABLE PAPERS, e.g. TESTING, SORTING BY DENOMINATIONS, COUNTING, DISPENSING, CHANGING OR DEPOSITING
    • G07D7/00Testing specially adapted to determine the identity or genuineness of valuable papers or for segregating those which are unacceptable, e.g. banknotes that are alien to a currency
    • G07D7/004Testing specially adapted to determine the identity or genuineness of valuable papers or for segregating those which are unacceptable, e.g. banknotes that are alien to a currency using digital security elements, e.g. information coded on a magnetic thread or strip
    • G07D7/0047Testing specially adapted to determine the identity or genuineness of valuable papers or for segregating those which are unacceptable, e.g. banknotes that are alien to a currency using digital security elements, e.g. information coded on a magnetic thread or strip using checkcodes, e.g. coded numbers derived from serial number and denomination

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Character Discrimination (AREA)
  • Input From Keyboards Or The Like (AREA)

Description

Die Erfindung betrifft ein Verfahren zum Kontrollieren der Gültigkeit einer maschinell von einem Beleg abgelesenen, aus einzelnen Elementen bestehenden Codegruppe von bestimmter maximaler Länge, wobei das erste Element eine Prüfzahl ist.
Die Entwicklung der Bankoperationen hat eine beträchtliche Zunahme der Anzahl von in Umlauf befindlichen Schecks sowie eine Zunahme der Buchungsvorgänge, wie der Fortführung der Kundendateien, mit sich gebracht. Es ist daher erforderlich geworden, eine gewisse Anzahl von Scheckverarbeitungs­ operationen zu automatisieren, wie das Sortieren, die Prüfung der Bankcodegruppe und der Kundencodegruppe, das Buchen der Belastung, das Berechnen und das Registrieren des entsprechenden Guthabens in der Datei jedes betreffenden Kunden.
Diese Automatisierung ist durch die Verwendung von Schecks ermöglicht worden, welche außer der üblichen Beschriftung eine magnetische Beschriftung tragen, die aus sowohl durch den Menschen als auch durch die Maschine lesbaren Zeichen besteht, wie beispielsweise magnetische Zeichen im 7-Strich- Code, die abgekürzt auch als CMC-7-Zeichen bezeichnet werden (amtliche französische Norm NFK 11, Januar 1968). Sie erscheinen unten auf dem Scheck in Form eines Beschriftungs­ streifens, der die gesamte Länge des Schecks einnimmt und aus drei Teilen besteht, welche Codegruppen tragen, die sich auf den Umlauf des Schecks bzw. die Identifizierung des Bezogenen bzw. den Betrag des Schecks beziehen.
Aufgrund des automatischen Lesens der Codegruppen, die sich in diesem Beschriftungsstreifen befinden, führen daher die Datenverarbeitungssysteme eine gewisse Anzahl von Operationen aus, zu denen insbesondere die Sortierung der Schecks in Abhängigkeit von den bezogenen Instituten, die Belastung des bezeichneten Kontos mit dem angegebenen Betrag sowie die Führung der Bankbücher und der Kundenkonten gehören. Es ist klar, daß die Genauigkeit von solchen Operationen, die gewährleistet werden muß, hauptsächlich von dem korrekten Lesen der sie bestimmenden Codegruppen abhängig ist und daß es daher erforderlich ist, jede gelesene Codegruppe zu über­ prüfen, um jede Gefahr eines Fehlers auszuschalten und um sie auf diese Weise für gültig zu erklären, bevor sie durch das Verarbeitungssystem gebucht wird.
Zu diesem Zweck ist es bekannt, jeder Codegruppe eine Prüfzahl zuzuordnen, die in eindeutiger Beziehung zu der Art, dem Wert und der Relativanordnung der die Codegruppe bildenden Elemente steht. Diese Prüfzahl kann explizit sein, d. h. aus einer in Abhängigkeit von der Zusammensetzung irgendeiner Codegruppe berechneten Ziffer oder Zahl bestehen und ihr angefügt sein. Diese Prüfzahl könnte auch implizit sein, wobei alle Codegruppen so aufgebaut sind, daß sie ein bestimmtes Gesetz erfüllen, und wobei die Summe oder das Produkt ihrer Bestandteile gleich einer vorbestimmten Zahl oder durch diese teilbar ist.
Ein Typ von Prüfzahl, die besonders bequem und gebräuchlich ist, wird im englischen als "transposition check digit" (Aus­ tauschprüfziffer) oder, abgekürzt, als TCD-Ziffer bezeichnet. Diese Prüfziffer wird dadurch erhalten, daß der Zahlenwert jedes Elementes der Codegruppe mit einem Koeffizienten multipliziert wird, der von der relativen Position des betreffenden Elements in der Codegruppe abhängt, daß die Summe der durch diese Multiplikationen erhaltenen Produkte gebildet wird, daß diese Summe durch eine vorbestimmte Zahl, "Modul" genannt, dividiert wird, und daß das Komplement des bei der Division erhaltenen Restes zu dem Modul gebildet wird; dieses Komplement bildet die TCD-Ziffer, die als Prüfzahl verwendet wird.
Deshalb genügt es bei dem Lesen einer beliebigen Codegruppe, den Wert jedes seiner Elemente mit dem erforderlichen Koeffizienten zu multiplizieren, die erhaltenen Resultate und die TCD-Ziffer zu addieren und ihre Summe durch den Modul zu dividieren: wenn das Lesen der Codegruppe korrekt ist, ist der Rest dieser Division gleich Null und die Codegruppe kann für gültig erklärt werden.
Diese relativ komplexe Prüfprozedur erfordert jedoch eine nicht vernachlässigbare Verarbeitungszeit, die zu der hin­ zukommt, die für die Sortieroperationen erforderlich ist, und im gleichen Maß die Zeit verringert, über die die Zentral­ einheit des Systems verfügt, um die eigentliche Daten­ verarbeitung auszuführen. Die Zeit, die zum Prüfen der Codegruppen und zum Verarbeiten der Daten zwischen dem Zeitpunkt, in welchem die Daten in den Speicher überführt werden, und dem Zeitpunkt, in welchem der Befehl für die Auswahl des Einsortierfaches kommt, verfügbar ist, beträgt in der Praxis nur 40 ms.
Um diesen Nachteil zu beseitigen und um dabei die Vorteile zu bewahren, die sich durch die Prüfung der Codegruppen durch die Verwendung der TCD-Ziffer ergeben, hat die Anmelderin eine neue Organisation des Verarbeitungssystems geschaffen, das Gegenstand der älteren deutschen Patentanmeldung P 27 44 133.4 (DE-OS 27 44 133) ist. Das System zur Verarbeitung von aufgezeichneten Daten, das in dieser Anmeldung vorgeschlagen ist, unterscheidet sich von älteren ähnlichen Vorschlägen vor allem dahingehend, daß die Operationen des Prüfens der Codegruppen, der Steuerung der Einordnung der Belege und der Überführung der zu verarbeitenden Daten nach ihrer Prüfung der Peripheriegerätesteuereinheit und nicht mehr der Zentraleinheit zugewiesen sind, die daher von allen diesen Aufgaben befreit ist und sich ausschließlich der Verarbeitung der Daten widmen kann, ohne Echtzeitbe­ schränkung, die mit dem Betrieb des Systems verbunden ist.
Diese vorteilhafte Organisation des Systems würde von vornherein verlangen, daß die Steuereinheit mit ausreichend auf­ wendigen Verarbeitungseinrichtungen ausgerüstet ist, um in einer vernünftigen Zeit die komplexen Berechnungen auszuführen, welche die Verwendung einer Codegruppenprüfzahl des TCD-Typs verlangt.
In der DE-OS 15 74 528 wird ein "iteratives" Verfahren zur Prüfzeichenbildung beschrieben. Diese Druckschrift beschreibt zwar verschiedene, mehr oder weniger aufwendige iterative Verfahren, bei denen jeweils eine durch den Stellenwert und den jeweiligen Zahlenwert der Elemente der Codegruppe adressier­ bare Speichertabelle mit festen vorbestimmten Werten verwendet wird, zur Prüfzeichengewinnung, aber keine vereinfachten Verfahren zur Kontrolle der Gültigkeit einer Information unter Anwendung dieser Prüfzeichen.
Ein weiteres Prüfverfahren ist in der GB-PS 14 39 915 beschrieben. Bei dem dort beschriebenen Verfahren ist der "Restwert-Sammel"-Speicher ein 11stufiger Ringzähler. Aufgrund der Arbeitsweise dieses Ringzählers wird darin als Restwert die Differenz zu der zuvor in einem Addierer gebildeten Summe gespeichert. Dieser Restwert bildet entweder unmittelbar die Prüfziffer, die der Codegruppe als letzte Zahl hinzugefügt wird, oder aber das Komplement dieses Restwertes zur Zahl 11 wird als Prüfziffer verwendet. Je nach Ausführungsform enthält der ROS-Speicher die Komplementwerte der möglichen Restwerte, oder die möglichen Restwerte.
Dies hat mehrere Nachteile. Zum einen weicht die Vorschrift zur Bildung der Komplementwerte der möglichen Restwerte oder der möglichen Restwerte von der Berechnungsvorschrift für die vorangehenden Restwerte ab, wodurch die notwendigen Schaltungen aufwendiger und komplexer werden; zum anderen wird nach dem Auslesen des Restwertes für das erste Element der Codegruppe dieser Restwert zu dem Wert "0" addiert, bleibt also unverändert, wodurch die Kontrolle der Gültigkeit der Codegruppe erschwert und zeitaufwendiger wird. Hinzu kommt, daß jedes Element in gleicher Weise verarbeitet wird, bei der Verarbeitung also keine situationsbezogene, zeiteinsparende Vereinfachung vorgenommen wird.
Daher ist es Aufgabe der Erfindung, ein Verfahren zu schaffen, das mit einfachen Verarbeitungsschaltungen und innerhalb einer kurzen Verarbeitungszeit die Kontrolle der Gültigkeit einer maschinell von einem Beleg abgelesenen Codegruppe ermöglicht, die eine Prüfzahl enthält.
Diese Aufgabe wird durch das im Patentanspruch 1 angegebene Verfahren gelöst, das gemäß Patentanspruch 2 vorteilhaft weiter ausgebildet ist. Eine Vorrichtung zur Durchführung dieses Verfahrens ist in den Patent­ ansprüchen 3 bis 8 gekennzeichnet.
Diese Kontrolle konnte bisher nur durch relativ aufwendige Peripheriegeräte oder aber durch die Datenverarbeitungsanlage selbst erfolgen. Durch Anwendung des erfindungsgemäßen Verfahrens ist es möglich, diese Kontrolle innerhalb von nur etwa 500 µs durchzuführen, und zwar mit einfachen Verarbeitungs­ schaltungen, beispielsweise die im Anspruch 3 angegebenen Register und reversierbaren Zähleinrichtungen in Kombination mit einem einfachen Festwertspeicher.
Es ist zu erkennen, daß die Operationen, die durch die Verarbeitungsschaltungen auszuführen sind, an Zahlen ausgeführt werden, die nicht hoch sind, wobei die Prüfzahl, wie jeder Rest, definitionsgemäß um wenigstens eins kleiner ist als der Modul, so daß die größte Zwischensumme, die zu berücksichtigen ist, kleiner als das doppelte dieses Moduls ist.
Aufgrund dieser Tatsache ist die oben genannte Divisions­ operation nur auszuführen, wenn die Zwischensumme, die durch Addition des gelesenen Restes zu dem vorhergehenden Rest oder zu der Prüfzahl erhalten wird, größer oder gleich dem Modul ist, und reduziert sich dann auf eine einfache Subtraktion dieses Moduls.
Außerdem, wenn das gelesene Element der Codegruppe den Wert Null hat, ist es selbstverständlich überflüssig, zur Befragung der Tabelle und zu den Verarbeitungsoperationen überzugehen, da der vorhergehende Rest nicht modifiziert wird, und das System kann direkt zu dem Lesen des nächsten Elements der Codegruppe übergehen.
Infolgedessen reduzieren sich die eigentlichen Verarbeitungs­ schaltungen tatsächlich auf ein einfaches Additions- Subtraktionsregister, welchem erste Vergleichseinrichtungen zu­ geordnet sind, die mit den vorgenannten Leseeinrichtungen verbunden sind, um festzustellen, ob der Wert des gelesenen Elements der Codegruppe Null ist, und zweite Vergleichseinrichtungen, die mit diesem Register verbunden sind, um festzustellen, ob sein Inhalt gleich oder größer als der Modul oder aber am Ende des Lesens Null ist.
Dieser Einfachheit der Struktur der Verarbeitungsschaltungen entspricht die der Organisation der Speichereinrichtungen: in dem gebräuchlichsten Fall des Lesens von aus Dezimalziffern gebildeten numerischen Codegruppen und von einigen Markierungssymbolen kann die Länge jeder Tabelle mit doppeltem Eingang auf 10 × 16 Nutzadressen begrenzt werden, um die Identifizierung und die Gültigerklärung der Dezimalcodegruppen aus 16 Elementen einschließlich der Prüfzahl zu gestatten. In der Praxis werden vorzugsweise Tabellen des herkömmlichen Formats mit 16 × 16 = 256 Adressen benutzt.
Wenn jede Adresse einer solchen Tabelle die Speicherung einer Oktade, d. h. einer Binärcodegruppe mit 8 Positionen gestattet, ist der Maximalwert der Reste und daher des ent­ sprechenden Moduls gleich 2⁷ - 1 = 127, was eine große Auswahl an Modulen und/oder "Koeffizient/Position"-Kombinationen eröffnet.
Bei dem Verfahren nach der Erfindung werden somit sehr einfache Schaltungen benutzt, die die Überprüfungen von komplizierten Codegruppen gestatten, und das Verfahren kann daher problemlos in einer Peripheriegerätesteuereinheit angewendet werden, die in Echtzeit arbeitet, um die Zentral­ einheit von allen über die Datenverarbeitung hinausgehenden Aufgaben zu entlasten.
Mehrere Ausführungsbeispiele der Erfindung werden im folgenden anhand der Tabellen und der Zeichnung näher beschrieben. Es zeigt
die Tabellen 1 bis 4 die Dezimalwerte der Reste, die verschiedenen Prüfgesetzen entsprechen, und
die Figur das Teilablaufdiagramm des Verfahrens zum Lesen und Prüfen einer Codegruppe.
Wie erwähnt, besteht die herkömmliche Art und Weise des Erstellens einer Prüfzahl des Typs "transposition check digit" oder TCD darin, jeder Stelle einer Codegruppe von bestimmter maximaler Länge einen willkürlichen Koeffizienten zuzuordnen, den Zahlenwert des in dieser Stelle der Codegruppen befindlichen Elements mit diesem Koeffizienten zu multiplizieren, die so erhaltenen Produkte zu summieren, ihre Summe durch eine vorbestimmte Zahl, d. h. den Modul zu dividieren und das Komplement des Restes dieser Division zu dem Modul als Prüfzahl zu benutzen, der hinter der Codegruppe oder in irgendeiner anderen auffindbaren Stelle hinzugefügt wird.
Wenn beim Lesen der so mit ihrer Prüfzahl versehenen Codegruppe dieselbe Folge von Operationen durchgeführt wird, in die auch die Prüfzahl einbezogen wird, der der Koeffizient Eins zugeordnet wird, so erhält man schließlich den Rest Null, wenn die Codegruppe korrekt gelesen worden ist.
Ein erstes Beispiel der Anfertigung und der Organisation einer solchen Tabelle wird unter Bezugnahme auf die Tabelle 1 beschrieben, die die Gültigerklärung von Dezimalcodegruppen mit 16 Stellen (0 bis 15) betrifft, welchen abwechselnd Koeffizienten 1 und 2, je nachdem, ob ihre Stelle in der Codegruppe geradzahlig oder ungeradzahlig ist, gemäß folgender Kombination zugeordnet werden:
S = X 0 + 2X 1 + X 3 + 2X 4 + X 5 + . . . + X 14 + 2X 15
wobei X der Zahlenwert des Elements der Codegruppe ist, das sich in der angegebenen Stelle befindet, und wobei X 0 ver­ einbarungsgemäß die Prüfzahl (TCD) ist, wie beispielsweise R (S/M) = 0 für einen Modul M, der hier gleich 10 ist.
Jedes Fach der Tabelle stellt eine Stelle eines Speichers dar, die durch eine doppelte Adresse identifiziert ist, welche die Stelle des Elements (0-15) und seinen Dezimalwert (0-9) enthält. Die Tabelle enthält infolgedessen 16 Zeilen und 10 Nutzspalten, wobei die 6 ergänzenden Spalten unterstreichen, daß in der Praxis von Speichern mit dem herkömmlichen Format mit 16 × 16 = 256 Stellen Gebrauch gemacht wird, von denen jede eine Oktade und die letzte die Oktade FF, die das Ende markiert, empfängt.
Mit Ausnahme dieses letzten Falles ist jede in eine Speicher­ stelle geladene Oktade gleich dem Binärwert der Dezimalzahl, die sich in dem entsprechenden Fach der Tabelle 1 befindet, welche ihrerseits gleich dem Rest der Division des Produkts aus dem betreffenden Zahlenwert eines Elements der Codegruppe und dem Koeffizienten 1 oder 2, der der geradzahligen oder ungeradzahligen Stelle dieses Elements zugeordnet ist, durch den Modul M = 10 ist.
So beträgt beispielsweise für das Fach, das zu der Spalte 7 (Wert) und zu der Zeile 1 (Stelle) gehört, diese Zahl 4 = R (7 × 2/10).
Für die erste Spalte, die dem Zahlenwert Null zugeordnet ist, wie für die unbenutzten Spalten, denen vereinbarungsgemäß derselbe Wert zugeordnet ist, sind die Teilreste offenbar Null.
Das zweite Beispiel, das durch die Tabelle 2 veranschaulicht wird, entspricht der Linearkombination
S = X 0 + 2X 1 + 3X 2 + 4X 3 + 5X 4 + 6X 5 + . . . + 10X 9 + 11X 10
wobei die Koeffizienten, die den aufeinanderfolgenden Stellen zugeordnet sind, in einer natürlichen oder arithmetischen Reihe liegen und wobei der Modul M gleich 11 ist, so daß alle Teilreste der Zeile 10 (Koeffizient 11) Null sind.
Das dritte Beispiel, das durch die Tabelle 3 veranschaulicht wird, entspricht der Linearkombination
S = X 0 + 2X 1 + 4X 2 + 8X 3 + . . . + 512X 9 . . .
wobei die Koeffizienten, die den aufeinanderfolgenden Stellen zugeordnet sind, in einer geometrischen Reihe von zweiter Ordnung liegen und wobei der Modul M gleich 11 ist, so daß sich die Tabelle ab der zehnten Zeile mit dem Koeffizienten 1024 = 11 × 93 + 1 wiederholt.
Das letzte Beispiel, das durch die Tabelle 4 veranschaulicht wird, entspricht der Linearkombination
S = X 0 + 10¹X 1 + 10²X 2 + 10³X 3 + 10⁴X 4 + . . . + 10 N XN
die den wahren Dezimalwert jedes Elements der Codegruppe für einen Modul M = 17 berücksichtigt, wobei selbstverständlich in diesem Fall X 0 das erste signifikante Element der von rechts nach links gelesenen Codegruppe ist und wobei alle Codegruppen derart gewählt sind, daß S ein ganzzahliges Vielfaches des Moduls M ist, so daß die Prüfzahl, die systematisch gleich Null ist, weggelassen werden kann, weil ihr Wert unveränderlich und implizit bekannt ist.
In dieser Hinsicht sei angemerkt, daß die Elemente der Codegruppe - wenigstens manche - Buchstaben oder andere Symbole sein könnten, denen ein konventioneller Zahlenwert zugeordnet ist, welcher gleich oder größer als 10 ist, um jede Verwechselung mit den Dezimalziffern zu vermeiden, wenn dafür Bedarf besteht.
Außerdem sei angemerkt, daß jeder Teilrest in der erforderlichen Stelle der Speichertabelle mit doppelter Adressierung nicht nur in Form einer Oktade aufgezeichnet werden kann, die der Umsetzung ihres Dezimalwertes in den Binärcode entspricht, sondern auch in Form einer Oktade des Typs DCB, die unabhängig zwei Dezimalziffern ausdrückt, oder durch jede andere Codegruppe, die mit den Kenndaten des benutzten Speichers und der zugeordneten Verarbeitungsschaltungen kompatibel ist. Zur Vereinfachung der letzteren bleibt jedoch die erste angegebene Lösung vorzuziehen, da alle arithmetischen Verarbeitungen dann in reinem Binärcode ausgeführt werden, mit Dezimalcodeumsetzung auf der Höhe der Eingabe/Ausgabe-Schnittstellen des Systems.
Schließlich sei angemerkt, daß in allen Fällen, die in Betracht kommen können, die Gesamtstruktur des Verfahrens unverändert bleibt und daß die Art ihrer Anwendung im wesentlichen immer dem in der Figur dargestellten Ablauf­ diagramm entsprechen wird.
Dieses Ablaufdiagramm veranschaulicht den eigentlichen Ablauf des Verfahrens, unter Außerachtlassen der Folgeoperationen, die vor und hinter ihm ausgeführt werden, wie beispielsweise das Markieren oder Auffinden und das Lesen der Codegruppen, das Sortieren der Belege und die Auswertung der für gültig erklärten Daten.
Es wird daher am Anfang angenommen, daß die Codegruppe durch die Leseeinrichtungen markiert, gelesen, umgesetzt und gespeichert worden ist und daß ihre Elemente mit ihrem zugeordneten wirklichen oder konventionellen Zahlenwert entsprechend ihrer Stellen- oder Reihenfolge zugänglich sind. Außerdem wird angenommen, daß der Modul und die zu benutzende Restetabelle darüberhinaus bekannt und in Speichereinrichtungen verfügbar sind.
Die Operation 1 besteht infolgedessen darin, ein bestimmtes Element der Codegruppe zu lesen, dann in 2 zu entscheiden, ob ihr ein Zahlenwert zugeordnet ist oder nicht, der berücksichtigt werden kann, beispielsweise für die Unterscheidung zwischen Ziffern und Buchstaben in einem alphanumerischen Code. Wenn das der Fall ist, wird in 3 geprüft, ob dieser Wert nicht Null ist, bevor in 4 die doppelte Adresse der betreffenden Stelle der Tabelle der Reste berechnet wird. Wenn diese Adresse aufgrund des Wertes und der Stelle des Elements der Codegruppe ermittelt worden ist, wird der entsprechende Rest in 5 gelesen und in 6 zu dem vorhergehenden Rest oder gegebenenfalls zu der Prüfzahl am Anfang des Prozesses addiert. Die erhaltene Summe wird in 7 mit dem Modul verglichen und, wenn sie gleich oder größer ist, wird der Modul in 8 von ihr abgezogen. Nachdem das erfolgt ist, wird die Stelle in 9 inkrementiert (d. h. erhöht), um die Berücksichtigung des nächsten Elements der Codegruppe zu gestatten. Diese Inkrementierung erfolgt direkt am Schluß der Vergleiche 3 und 7, wenn der Zahlenwert des Elements der Codegruppe Null ist bzw. wenn die Summe des im Speicher gelesenen Restes und des vorhergehenden Restes kleiner als der Modul ist.
Es wird dann in 10 geprüft, ob die so inkrementierte Stelle kleiner oder gleich fünfzehn bleibt (Stelle des letzten Elements einer gültigen Codegruppe), andernfalls wird das Lesen in 11′ wegen Überlänge der gelesenen Codegruppe für ungültig erklärt. Wenn nicht, veranlaßt die Operation 11 die Verschiebung der gespeicherten Codegruppe um eine Stelle, damit ihr Element mit der höheren Stelle berücksichtigt werden kann. Dieselbe Verschiebung erfolgt direkt am Schluß der Operation 2, wenn das gelesene Element keine Ziffer ist oder, allgemeiner, wenn ihm kein Zahlenwert zugeordnet ist, der berücksichtigt werden kann. Wenn die Auswertung der Codegruppe nicht abgeschlossen wird, verzweigt die Verzweigung 12 über den Befehl 13′ und die Schleife I zurück zu dem Anfang des Prozesses, um ef­ fektiv das nächste Element der Codegruppe zu berücksichtigen, und der Zyklus wird wiederholt, bis die Codegruppe abgearbeitet ist.
Wenn die Verzweigung 12 feststellt, daß das letzte Element der Codegruppe berücksichtigt worden ist, entscheidet sie in 13 - in der Praxis durch einfachen Vergleich mit Null - ob der endgültige Rest korrekt ist oder nicht, und das Lesen dieser Codegruppe wird je nach Lage des Falles in 14 für gültig erklärt oder in 14′ für ungültig erklärt.
Tabelle 1
Tabelle 2
Tabelle 3
Tabelle 4

Claims (8)

1. Verfahren zum Kontrollieren der Gültigkeit einer maschinell von einem Beleg abgelesenen, aus einzelnen Elementen bestehenden Codegruppe von bestimmter maximaler Länge, wobei das erste Element eine Prüfzahl ist, die dadurch gebildet wird, daß der Zahlenwert jedes Elementes der Codegruppe mit einem Koeffizienten multipliziert wird, der von der relativen Position des betreffenden Elementes in der Codegruppe abhängt, die Summe der durch die Multiplikationen erhaltenen Produkte gebildet wird, diese Summe durch eine vorbestimmte Zahl (= Modul) dividiert wird und das Komplement des bei der Division erhaltenen Restes zu dem Modul gebildet wird, das als Prüfzahl zu der Codegruppe hinzugefügt wird, mit folgenden Schritten:
  • a) aus einer Speichertabelle, deren Speicherpositionen durch den Stellenwert und den jeweiligen Zahlenwert eines Elementes der Codegruppe adressiert werden, wird der für jede Adresse fest eingespeicherte Rest der Division des mit dem dem Stellenwert zugeordneten Koeffizienten multiplizierten Zahlenwertes durch den Modul an der dem ersten gelesenen Element der Codegruppe entsprechenden Adresse ausgelesen und zu der Prüfzahl addiert;
  • b) von der so erhaltenen Summe wird der Modul subtrahiert;
  • c) der bei dieser Subtraktion erhaltene Rest wird addiert zu dem aus der Speichertabelle an der Adresse des darauffolgenden Elements der Codegruppe ausgelesenen Rest;
  • d) von der so erhaltenen Summe wird der Modul subtrahiert und der bei dieser Subtraktion anfallende Rest wird jeweils zu dem aus der Speichertabelle an der Adresse des darauffolgenden Elements der Codegruppe ausgelesenen Rest addiert;
  • e) von der letzten so nach Abarbeitung der Codegruppe erhaltenen Summe wird der Modul subtrahiert, und die Codegruppe wird als gültig angesehen, wenn kein Rest bei dieser Subtraktion anfällt;
  • f) wenn eine der so erhaltenen Summen kleiner als der Modul ist, entfällt die Subtraktion des Moduls von dieser Summe, und es wird das Ablesen des jeweils nächsten Elements der Codegruppe veranlaßt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die aus der Speichertabelle ausgelesenen Reste jeweils mit Null verglichen werden und bei Übereinstimmung mit Null das Lesen des nächsten Elements der Codegruppe veranlaßt wird.
3. Vorrichtung zur Durchführung des Verfahrens nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß zur Durchführung der Additions- und Subtraktionsoperationen ein Register oder eine andere reversierbare Zähleinrichtung vorgesehen ist.
4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß Schaltungen zum Abzählen der Elemente der Codegruppe vorgesehen sind, welche das Lesen der Codegruppe für ungültig erklären, wenn die Zahl ihrer Elemente eine vorbestimmte Grenze übersteigt.
5. Vorrichtung nach Anspruch 3 oder 4, dadurch gekennzeichnet, daß die Speichertabelle wenigstens 10 N adressierbare Speicherpositionen enthält, worin N die maximale Anzahl von Elementen einer Codegruppe ist, von denen jede in codierter Form einen Rest enthalten kann, der höchstens gleich dem entsprechenden Modul ist.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß jede Speichertabelle 256 adressierbare Speicherpositionen enthält, die 10 + 6 möglichen Zahlenwerten und 16 möglichen Stellenwerten eines Elementes einer Codegruppe entsprechen.
7. Vorrichtung nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß an jeder adressierbaren Speicherposition der Speichertabelle wenigstens eine binäre Oktade aufgezeichnet ist.
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß jede Oktade die direkte Binärumsetzung des Dezimalwertes des entsprechenden Restes ist.
DE19782809341 1977-03-04 1978-03-03 System zum kontrollieren der gueltigkeit einer durch eine maschine von einem beleg abgelesenen codegruppe Granted DE2809341A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7706484A FR2382724A1 (fr) 1977-03-04 1977-03-04 Systeme pour controler la validite de la lecture par une machine d'un code porte sur un document

Publications (2)

Publication Number Publication Date
DE2809341A1 DE2809341A1 (de) 1978-09-07
DE2809341C2 true DE2809341C2 (de) 1988-10-27

Family

ID=9187604

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782809341 Granted DE2809341A1 (de) 1977-03-04 1978-03-03 System zum kontrollieren der gueltigkeit einer durch eine maschine von einem beleg abgelesenen codegruppe

Country Status (8)

Country Link
US (1) US4358849A (de)
JP (1) JPS53110344A (de)
BR (1) BR7801218A (de)
DE (1) DE2809341A1 (de)
FR (1) FR2382724A1 (de)
GB (1) GB1597043A (de)
IT (1) IT1108709B (de)
SE (1) SE444997B (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4270043A (en) * 1979-03-13 1981-05-26 Kronos Inc. Methods of and apparatus for time clock recording and computation and related uses
US4485435A (en) * 1981-03-09 1984-11-27 General Signal Corporation Memory management method and apparatus for initializing and/or clearing R/W storage areas
US4831521A (en) * 1983-11-10 1989-05-16 General Signal Corporation Vital processor implemented with non-vital hardware
US4807287A (en) * 1987-04-06 1989-02-21 Light Signatures, Inc. Document authentication method
GB2214673A (en) * 1988-01-29 1989-09-06 Texas Instruments Ltd Electronic control device for producing a particular code group of digits when energised.
DE19510626A1 (de) * 1995-03-23 1996-09-26 Giesecke & Devrient Gmbh Verfahren zur Prüfung der Unversehrtheit von gespeicherten Daten auf einer Verarbeitungsanlage für Blattgut, wie z. B. Banknoten oder Wertpapiere
JP4823277B2 (ja) * 2003-01-31 2011-11-24 花王株式会社 キャップの着脱構造

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3303463A (en) * 1963-03-04 1967-02-07 Ibm Error detection and correction apparatus for character readers
DE1574528A1 (de) * 1968-01-24 1971-05-13 Philips Patentverwaltung Verfahren und Vorrichtung zur Bestimmung von Pruefzeichen beliebig vorgegebener Anzahl
US3571581A (en) * 1968-09-10 1971-03-23 Ibm Digit verification system for an electronic transaction recorder
GB1327747A (en) * 1971-02-17 1973-08-22 Int Computers Ltd Universal check digit verifier/generator systems
US4065752A (en) * 1972-06-14 1977-12-27 Leslie Louis Goldberg Check digit generation and verification apparatus
GB1439915A (en) * 1972-06-14 1976-06-16 Goldberg L L Check digit generation verification apparatus
JPS5127040A (de) * 1974-08-30 1976-03-06 Tokyo Shibaura Electric Co
FR2366621A1 (fr) * 1976-10-01 1978-04-28 Cii Honeywell Bull Systeme de traitement de donnees enregistrees

Also Published As

Publication number Publication date
IT1108709B (it) 1985-12-09
FR2382724A1 (fr) 1978-09-29
FR2382724B1 (de) 1980-01-11
IT7820797A0 (it) 1978-03-01
JPS53110344A (en) 1978-09-27
BR7801218A (pt) 1978-09-26
US4358849A (en) 1982-11-09
SE7802443L (sv) 1978-09-05
SE444997B (sv) 1986-05-20
GB1597043A (en) 1981-09-03
DE2809341A1 (de) 1978-09-07

Similar Documents

Publication Publication Date Title
DE3506321C2 (de)
DE1146290B (de) Elektronisches Datenverarbeitungssystem
DE2619012A1 (de) Vorrichtung zur warenbestimmung
DE2729367A1 (de) Anlage zur kontrolle von warenverkaeufen
DE2809341C2 (de)
DE2824296C2 (de) Wechselgeld-Berechnungseinrichtung
DE2836317B1 (de) Verfahren zur Laufweitenkorrektur
DE3525217A1 (de) Verkaufsdatenverarbeitungsgeraet
DE2356079C2 (de) Verfahren und Anordnung zur Bestimmung des Werts der Zeilenvorschübe, die in einem Drucker zu steuern sind, insbesondere in einem mit einer Datenverarbeitungsanlage verbundenen Drucker
EP0230994B1 (de) Verfahren zur Steuerung des Programmablaufs bei der Formularbearbeitung in Datenverarbeitungsanlagen
DE2625183A1 (de) Datenverarbeitungseinrichtung
DE2329868A1 (de) Anordnung zur pruefdigitverifizierung
DE1955797A1 (de) Verfahren zur Steuerung der Verarbeitung von Eingabedaten und Datenverarbeitungsanlage hierfuer
DE3025167A1 (de) Datenverarbeitungseinrichtung
DE1611456A1 (de) Verfahren und Vorrichtung zum automatischen Zeilenausschliessen eines Rohtextes
CH646805A5 (de) Optisches handlesegeraet fuer maschinelle zeichenerkennung.
DE2332912C3 (de) Datenerfassungsgerät
DE3040166C1 (de) Verfahren und Schaltungsanordnung zur Transformation der Zeichenbreite von Schriftzeichen
DE2806452C3 (de) Anordnung zur Verarbeitung von Mehrbytefeldern mit Daten veränderlicher Länge
DE2331874A1 (de) Vorrichtung zum rechnerischen verarbeiten von kostenrechnungsaufzeichnungen
DE3534080C2 (de)
DE2744133A1 (de) Einrichtung zur verarbeitung von aufgezeichneten daten
DE2725382C2 (de) Anordnung zur Voreinstellung von Einheitspreisen in einer Anzahl von Registrierkassen
DE3120968C2 (de) Elektronische Registrierkasse
DE2950430C2 (de) Tastenbetätigter speicherprogrammierbarer Kleinrechner

Legal Events

Date Code Title Description
8128 New person/name/address of the agent

Representative=s name: PRINZ, E., DIPL.-ING. LEISER, G., DIPL.-ING., PAT.

8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition