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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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/104—Adding 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
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07D—HANDLING OF COINS OR VALUABLE PAPERS, e.g. TESTING, SORTING BY DENOMINATIONS, COUNTING, DISPENSING, CHANGING OR DEPOSITING
- G07D7/00—Testing 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/004—Testing 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
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07D—HANDLING OF COINS OR VALUABLE PAPERS, e.g. TESTING, SORTING BY DENOMINATIONS, COUNTING, DISPENSING, CHANGING OR DEPOSITING
- G07D7/00—Testing 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/004—Testing 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/0047—Testing 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.
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.
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)
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)
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 |
-
1977
- 1977-03-04 FR FR7706484A patent/FR2382724A1/fr active Granted
-
1978
- 1978-02-22 GB GB7163/78A patent/GB1597043A/en not_active Expired
- 1978-02-28 BR BR7801218A patent/BR7801218A/pt unknown
- 1978-03-01 IT IT20797/78A patent/IT1108709B/it active
- 1978-03-03 DE DE19782809341 patent/DE2809341A1/de active Granted
- 1978-03-03 SE SE7802443A patent/SE444997B/sv not_active IP Right Cessation
- 1978-03-03 JP JP2371878A patent/JPS53110344A/ja active Pending
-
1979
- 1979-11-13 US US06/093,433 patent/US4358849A/en not_active Expired - Lifetime
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 |