summaryrefslogtreecommitdiff
path: root/doc/prozess/gs-prozess-9
diff options
context:
space:
mode:
Diffstat (limited to 'doc/prozess/gs-prozess-9')
-rw-r--r--doc/prozess/gs-prozess-9477
1 files changed, 0 insertions, 477 deletions
diff --git a/doc/prozess/gs-prozess-9 b/doc/prozess/gs-prozess-9
deleted file mode 100644
index 6551b01..0000000
--- a/doc/prozess/gs-prozess-9
+++ /dev/null
@@ -1,477 +0,0 @@
-limit (11.0)##pagelength (16.5)##block#
-#start (2.0,0.0)#
-#page (1)#
-#headodd#
-#center#gs-Prozess#right#%
-
-#end#
-#headeven#
-%#center#gs-Prozess
-
-#end#
-#center#1
-
-#on("b")#9  Hinweise für den Systembetreuer/   Programmierer#off("b")#
-
-Sie haben wahrscheinlich bisher - ausschließlich zu Testzwecken - mit nur einem
-Interface-System gearbeitet. In diesem Kapitel möchten wir Ihnen Vorschläge
-machen, wie Sie Ihr Tasksystem organisieren können, um möglichst effektiv und
-störungsfrei mit der vorhandenen Hardware zu arbeiten.
-
-Neben den Möglichkeiten der Organisation des Systems werden wir Ihnen zeigen, wie
-Sie eine einmal vorgenommene Konfiguration/Organisation "fixieren", d.h. schützen
-können.
-
-Im letzten Teil dieses Kapitels werden wir für den #on("b")#routinierten(!) Programmierer#off("b")#,
-Möglichkeiten aufzeigen, wie man, unter weitgehender Umgehung von #on("b")#gs-Prozess#off("b")#,
-Programme für spezielle Anwendungen entwickeln kann. Schon an dieser Stelle sei
-ausdrücklich gesagt, daß dabei alle "Sicherheiten", die #on("b")#gs-Prozess#off("b")# normalerweise
-bietet, nicht (mehr) vorhanden sind.
-
-
-#on("b")#9.1  Vergabe der Kanäle/Organisation des Tasksystems#off("b")#
-
-Zur optimalen Organisation Ihres Systems sollten Sie wissen, in welcher Task die
-Konfiguration sinnvollerweise vorzunehmen ist. Da die Aspekte sehr vielfältig sind,
-werden wir verschiedene Situationen beschreiben. Lesen Sie die Ausführungen zu der
-Situation, die der Ihren am ehesten entspricht.
-
-
-#on("b")#
-1) Es stehen mehrere MUFIs als Adapter zur Verfügung. Alle MUFIs sollen
- im Terminalkanal betrieben werden. Die Arbeitsplätze sind alle mit
- dem gleichen Interfacesystem ausgestattet.
-#off("b")#
-#page#
- Sie sind hervorragend ausgestattet. Die Organisation und Konfiguration des
- Systems ist sehr einfach:
-
- Es ist sinnvoll, die Konfiguration von #on("b")#gs-Prozess#off("b")# in der Task vorzunehmen, in
- der Sie #on("b")#gs-Prozess#off("b")# installiert haben. Das hat den Vorteil, daß alle Sohntasks,
- die sich anschließend anmelden, diese Konfiguration "erben".
-
- Bei dieser Ausstattung ist es sinnvoll die Konfiguration zu "fixieren", um irrtüm­
- lichen oder "böswilligen" Umkonfigurationen vorzubeugen. Sehen Sie dazu
- Kapitel 9.4.
-
-
-#on("b")#
-2) Es stehen mehrere MUFIs als Adapter zur Verfügung. Alle MUFIs sollen
- im Terminalkanal betrieben werden. Die Arbeitsplätze sind aber mit
- verschiedenen Interface-Systemen ausgestattet.
-#off("b")#
-
- Wenn die Bestückung der einzelnen Arbeitsplätze ständig wechselt, ist es nicht
- sinnvoll, eine generelle Konfiguration vorzugeben. Teilen Sie jedem Anwender
- mit, daß er selbst für die Konfiguration seines Systems zuständig ist. Er sollte bei
- jedem Neuankoppeln seiner Task zumindest die Konfiguration überprüfen und
- ggf. den Vorgaben entsprechend eine Anpassung vornehmen. Es ist nicht sinn­
- voll, die jeweilige Konfiguration zu fixieren.
-
- Wenn Sie zwar unterschiedliche Interface-Systeme verwenden, aber die Inter­
- face-Systeme einzelnen MUFIs eindeutig zuordnen können, lohnt es sich schon,
- eine Konfiguration des Systems vorzugeben.
-
- Richten Sie zu diesem Zwecke so viele Tasks ein, wie Sie unterschiedliche
- Interface-Systeme zur Verfügung haben, und ordnen Sie jedem Interface-System
- eindeutig je eine Task zu. Die Namen der Tasks sollten Sie so wählen, daß sofort
- ersichtlich ist, welchem Interface-System sie zugeordnet ist.
-
- Nehmen Sie in jeder Task eine Konfiguration von #on("b")#gs-Prozess#off("b")# entsprechend
- dem zugeordneten Interface-System vor.
-#page#
- Auch hier ist es sinnvoll, die vorgenommenen Konfigurationen zu "fixieren", um
- irrtümlichen oder "böswilligen" Umkonfigurationen vorzubeugen. Sehen Sie
- dazu Kapitel 9.4.
-
- Die Anwender sollten sich später jeweils als Sohntask der Task anmelden, die
- sich dem an ihrem Arbeitsplatz vorhandenen Interface-System eindeutig zu­
- ordnen läßt.
-
-
-#on("b")#
-3) Es steht nur ein MUFI als Adapter zur Verfügung. Das MUFI soll im
- Terminalkanal betrieben werden.
-#off("b")#
-
- Je nachdem, ob Sie eine feste Hardware am MUFI betreiben oder nicht, sollten
- Sie sich an den beiden zuvor beschriebenen Fällen orientieren.
-
-
-#on("b")#
-4) Es steht nur ein RS232-Adapter oder ein MUFI, das als Endgerät an
- einer separaten Schnittstelle betrieben werden soll, zur Verfügung. Es
- soll nur von einem Arbeitsplatz/einer Task aus mit dem angeschlos­
- senen Interface-System gearbeitet werden.
-#off("b")#
-
- Nehmen Sie die Installation/Konfiguration wie unter 5) beschrieben vor.
- Arbeiten Sie nur in der Task, in der Sie die Konfiguration vorgenommen haben.
-
-
-#on("b")#
-5) Es steht nur ein Adapter zur Verfügung. Sie wollen aber die Möglichkeit
- schaffen, daß von verschiedenen Tasks abwechselnd darauf zugegriffen
- werden kann.
-#off("b")#
-
- Es ist gleichgültig, ob Sie ein MUFI oder einen RS232-Adapter verwenden - sie
- sollten den Adapter an einer separaten seriellen Schnittstelle betreiben.
-#page#
- Auch wenn Sie ein MUFI besitzen, kann es vorteilhaft sein, das MUFI nicht im
- Terminalkanal, sondern an einer separaten Schnittstelle zu betreiben:
-
- Beim Betrieb im Terminalkanal kann nämlich nur die Task mit dem MUFI
- kommunizieren, die an das Terminal gekoppelt ist, in dessen Zuleitung das
- MUFI eingebaut ist. Das wird hier zum Nachteil, denn wenn eine andere Task
- auf das Interface-System zugreifen möchte, muß erst die alte Task abgekoppelt
- und die neue an das Terminal mit dem MUFI angekoppelt werden.
-
- Der Betrieb an einer separaten Schnittstelle bietet hier wahrscheinlich viel­
- fältigere Möglichkeiten, wenngleich Sie dadurch auch Geschwindigkeitsein­
- bußen hinnehmen müssen.
-
- #on("b")#gs-Prozess#off("b")# bietet Ihnen bei Betrieb eines Adapters an einer separaten seriellen
- Schnittstelle nämlich die Möglichkeit, abwechselnd von verschiedenen Tasks auf
- den Adapter und das angeschlossene Interface-System zugreifen zu können.
-
- Teilen Sie bei der Installation (automatischen Generierung) von #on("b")#gs-Prozess#off("b")#
- dem System gleich mit, daß Sie Ihren Adapter (ob nun MUFI oder
- RS232-Adapter) an einer separaten seriellen Schnittstelle betreiben wollen.
- Schon bei dieser Installation werden Sie nach der Kanalnummer gefragt.
-
- Wir gehen hier davon aus, daß Sie immer mit dem gleichen Interface-System an
- diesem Adapter arbeiten werden. In diesem Falle empfiehlt es sich, gleich in der
- Task, in der Sie die Installation vorgenommen haben, auch die Konfiguration
- von #on("b")#gs-Prozess#off("b")# vorzunehmen und die Konfiguration zu "fixieren". Durch die
- Konfiguration in dieser Task, "erben" alle Sohntasks, die anschließend ange­
- meldet werden, diese Konfiguration.
-
- Wenn Sie sich mit 'taskinfo <RETURN>' einen Katalog ausgeben lassen,
- werden Sie feststellen, daß eine weitere Task als unbenannter Sohn ("-") Ihrer
- Task eingerichtet worden ist. Sie haben nämlich Ihre Task zu einer "zentralen
- Abwicklungstask" gemacht - genauer gesagt die unbenannte Sohntask.
-#page#
- Wenn Sie aus Ihrer Task, in der Sie die Konfiguration vorgenommen haben, mit
- dem Interface-System kommunizieren, erfolgt der Zugriff über diese unbe­
- nannte Sohntask!
-
- Sie schaffen dadurch aber zusätzlich die Möglichkeit, daß mehrere Sohntasks -
- natürlich abwechselnd - über diese "zentrale Abwicklungstask" mit dem Inter­
- face-System kommunizieren. Selbstverständlich setzt der Zugriff auf das Inter­
- face-System eine Absprache zwischen den Beteiligten voraus!
-
-
- Gerade in der Aufbauphase, wenn erst wenige Geräte zur Verfügung stehen, ist
- das eine Möglichkeit, von verschiedenen Arbeitsplätzen aus mit nur einem Adap­
- ter/Interface-System Prozeßdatenverarbeitung zu betreiben.
-
-
-#on("b")#
-6) Sie wollen mehrere Adapter an separaten seriellen Schnittstellen
- betreiben.
-#off("b")#
-
- In diesem Falle ist es sinnvoll - bevor Sie eine Konfiguration vornehmen - gleich
- nach der Installation von #on("b")#gs-Prozess#off("b")# für jeden einzelnen Adapter eine Sohntask
- unter der Task einzurichten, in der #on("b")#gs-Prozess#off("b")# installiert ist. Jede dieser Sohn­
- tasks koppeln Sie mit einem festen Kanal, an dem ein Adapter/Interface-System
- angeschlossen ist.
-
- Sie brauchen dazu #on("b")#gs-Prozess#off("b")# nicht mehrfach zu installieren; wir haben für
- diesen Fall vorgesorgt. Für die Kopplung der Tasks an die einzelnen Kanäle steht
- die Prozedur 'PROC interfacekanal (INT CONST kanalnummer)' zur Verfügung.
- Geben Sie also in einer Task z.B. das Kommando 'interfacekanal (5)
- <RETURN>', so wird von dieser Task aus das Interface-System am Kanal 5
- angesprochen.
-
- Über die Prozedur 'INT PROC interfacekanal' können Sie sich in jeder Task
- informieren, über welchen Kanal die Kommunikation mit dem Interface-System
- abgewickelt wird: z.B. mit 'put (interfacekanal) <RETURN>'.
-#page#
- Ihnen ist sicher klar, daß es auch hier sinnvoll ist, den Namen der jeweiligen
- Task so zu wählen, daß daraus sofort der betreffende Interfacekanal ablesbar
- ist.
-
- In jeder so an einen Kanal gekoppelten Task sollten Sie die Konfiguration von
- #on("b")#gs-Prozess#off("b")# vornehmen und ggf. "fixieren". Jede solche Task richtet auto­
- matisch eine unbenannte Sohntask ("-") ein, die sich wie eine "zentrale Ab­
- wicklungstask" verhält. Wenn Sie also aus Ihrer Task oder aus neu einge­
- richteten Sohntasks mit dem Interface-System kommunizieren, so erfolgt das
- über die "zentrale Abwicklungstask".
-
-
-#on("b")#9.2  Informationsprozeduren#off("b")#
-
-Zur Information stehen dem Systembetreuer drei wichtige Prozeduren zur Verfügung:
-
-#on("b")#
-TEXT PROC adapterart
-#off("b")#
-
-Hiermit können Sie in Erfahrung bringen, welche Interfaceanpassung z.Z. in der
-aktuellen Task insertiert ist: MUFI im Terminalkanal, MUFI als Endgerät oder
-AKTRONIK-Adapter (RS232-Adapter).
-
-
-#on("b")#
-INT PROC interfacekanal
-#off("b")#
-
-Hiermit können Sie in Erfahrung bringen, über welchen Kanal z.Z. mit dem Inter­
-face-System aus der Task kommuniziert wird. Die Prozedur steht allerdings nur dann
-zur Verfügung, wenn das Interface-System an einer separaten Schnittstelle betrieben
-wird - sonst erscheint der Hinweis 'FEHLER: unbekanntes Kommando'.
-
-Es gibt noch einen Befehl, mit dem Sie sich über den Zustand des Interface-Systems
-informieren können:
-#page#
-#on("b")#
-PROC oeffne interface (INT VAR testwert)
-#off("b")#
-
-Die Prozedur versucht, die aktuelle Betriebsart einzustellen. Anschließend erhalten
-Sie eine 'Erfolgsauskunft'. Dabei bedeuten:
-
- 0 - alles okay
- -1 - Interface ist noch nicht konfiguriert
- -2 - Interface-Task ist besetzt
- -3 - Interfacekanal ist belegt
- -4 - Interface meldet sich nicht
- -5 - Interface kann nicht geöffnet werden
-
-Ist der Adapter an einer separaten Schnittstelle angeschlossen, so arbeitet der Befehl
-über die "zentrale Abwicklungstask". Als Antwort können alle genannten Codes auftre­
-ten; beim MUFI im Terminalkanal allerdings nur die Codes 0, -1 und -4. Die oben
-genannten Fehlermeldungen sind detailliert in Kapitel 5.5 erläutert.
-
-Sie sollten anschließend #on("b")#unbedingt#off("b")# das Kommando 'schliesse interface' geben: Eine
-eventuell durch 'oeffne interface' vollzogene Betriebsartumstellung wird dadurch
-rückgängig gemacht.
-
-
-
-#on("b")#9.3  Neufestlegung des Interfacekanals#off("b")#
-
-Wenn Sie mit MUFI(s) im Terminalkanal arbeiten, spielen Kanalnummern für das
-Ansprechen des/der MUFIs keine Rolle. Das jeweilige MUFI kann in diesem Falle
-nämlich immer nur von der Task aus angesprochen werden, die an das Terminal
-gekoppelt ist, in dessen Zuleitung das MUFI eingebaut wurde.
-
-Wenn Sie Adapter (MUFI oder RS232-Adapter) an separaten seriellen Schnittstellen
-betreiben, so legen Sie schon bei der Installation von #on("b")#gs-Prozess#off("b")# den Kanal fest,
-über den die Task mit dem Interface-System kommuniziert. Wie wir schon oben be­
-schrieben haben, können Sie den Interface-Kanal mit der Prozedur 'PROC interface­
-kanal (INT CONST kanalnummer)' neu festlegen. Beachten Sie dabei aber bitte
-folgendes:
-#page#
-Wenn Sie in einer Task #on("b")#gs-Prozess#off("b")# konfigurieren und zuvor entschieden haben, daß
-der Adapter an einer separaten Schnittstelle betrieben wird, so wird automatisch eine
-unbenannte Sohntask ("-") eingerichtet. Diese Sohntask wird zur "zentralen Abwick­
-lungstask". Wenn Sie nun aus der Task, in der Sie die Konfiguration vorgenommen
-haben, oder aus einer Sohntask dieser Task, die anschließend eingerichtet wird, mit
-dem Interface-System kommunizieren, so erfolgt diese Kommunikation über diese
-unbenannte Sohntask. Daher wählten wir die Bezeichnung "zentrale Abwicklungs­
-task".
-
-Da die "zentrale Abwicklungstask" den "Zustand der Vatertask" in dem Augenblick
-erbt, in dem Sie eingerichtet wird, würde eine später erfolgende Neufestlegung des
-Interfacekanals nicht von Ihr registriert und damit auch nicht wirksam.
-
-#on("b")#Es ist unbedingt notwendig#off("b")#, in der Task, in der Sie eine Neufestlegung des Interface-
-Kanals vornehmen, #on("b")#gs-Prozess#off("b")# auch neu zu konfigurieren! Bei der Neukonfiguration
-wird nämlich die unbenannte Sohntask gelöscht und neu eingerichtet.
-
-(Das hier beschriebene Phänomen ist Ihnen wahrscheinlich schon aus der
-PRINTER-Task bekannt).
-
-Hinsichtlich der Sicherheit des Systems hat dieses Vorgehen aber einen Vorteil: wenn
-in den "zugänglichen Sohntask", die über eine "zentrale Abwicklungstask" mit dem
-Interface-System kommunizieren eine Neueinstellung des Interface-Kanals vorge­
-nommen wird, so bleibt diese unwirksam (solange in der Sohntask nicht umkonfigu­
-riert wird - was sich aber verhindern läßt! Sehen Sie dazu das folgende Kapitel!).
-
-
-#on("b")#9.4  Fixieren der Konfiguration#off("b")#
-
-Prinzipiell kann in jeder Task, in der #on("b")#gs-Prozess#off("b")# zur Verfügung steht, die Konfigura­
-tion (von #on("b")#gs-Prozess#off("b")#) vorgenommen werden. Gerade von unerfahrenen Anwendern
-könnte aber irrtümlich eine Umkonfiguration vorgenommen werden. Aber nicht nur
-das: auch erfahrene Anwender könnten "böswillig" die Konfiguration verändern. Aus
-diesem Grunde ist es ggf. sinnvoll, eine vorgenommene Konfiguration zu fixieren
-(schützen).
-#page#
-Dazu steht die Prozedur 'PROC pdv konfiguration zugelassen (BOOL CONST ent­
-scheidung)' zur Verfügung. Mit dem Kommando 'pdv konfiguration zugelassen
-(FALSE) <RETURN>' sperren Sie in der aktuellen Task und in allen Sohntasks, die
-sich #on("b")#anschließend#off("b")# unter dieser Task anmelden, den Menupunkt 'k Konfigurieren'
-unter dem Oberbegriff 'Interface'.
-
-Sofern nötig, können Sie diese Sperre mit dem Kommando 'pdv konfiguration zuge­
-lassen (TRUE) <RETURN>' wieder aufheben, #on("b")#allerdings nur in der Task, in der Sie
-auch die Sperre gesetzt haben#off("b")#, denn #on("b")#gs-Prozess#off("b")# merkt sich diesen Tasknamen!
-Wenn Sie also ein Password auf diese Task legen, und damit anderen den Zugang
-verwehren, kann auch eine "böswilligie Umkonfiguration" verhindert werden.
-
-
-#on("b")#9.5  Mögliche Fehlerfälle#off("b")#
-
-Wenn Fehlermeldungen auftreten, so finden Sie Fehlerbeschreibungen und Möglich­
-keiten zur Abhilfe im Kapitel 5.5 beschrieben. Auf einen Fehlerzustand möchten wir
-Sie hier noch besonders hinweisen:
-
-#on("b")#Interfacekanal ist belegt!#off("b")#
-
- Über den angegebenen Kanal greift schon eine andere Task auf das angeschlos­
- sene Interface-System zu. Vielleicht wurde der betreffende Kanal auch zuvor für
- andere Zwecke verwendet - anschließend hat der Benutzer den Kanal nicht
- ordentlich freigegeben. Geben Sie in der 'gib kommmando'-Ebene den Befehl
- 'taskinfo (2) <RETURN>'. In der Spalte mit der Überschrift 'CHAN' müßte jetzt
- irgendwo die Kanalnummer auftauchen. Steht die Kanalnummer bei einem Sohn
- der Task 'SUPERVISOR', so liegt der letztgenannte Fall vor, sonst der erstge­
- nannte.
-
- Abhilfe: Schließen Sie Ihr Interface-System an einen anderen Kanal an oder
- bitten Sie den betreffenden Anwender, den Kanal freizugeben.
- Ist das nicht möglich, so kann aus einer Systemtask das Kommando
- 'end (canal (kanalnummer))' <RETURN>' gegeben werden. Statt
- 'kanalnummer' ist natürlich die tatsächliche Nummer (z.B. '4')
- anzugeben.
-#page#
-#on("b")#9.6  Weitere Möglichkeiten#off("b")#
-
-Ihnen ist sicher aufgefallen, daß wir uns bemüht haben, einen sinnvollen Kompro­
-miß zwischen Sicherheit in der Handhabung und Geschwindigkeit des Systems zu
-finden. In Zweifelsfällen haben wir uns eher zugunsten der Sicherheit entschieden.
-
-Sicher werden Sie inzwischen bemerkt haben, daß die Kommunikation mit einem
-Adapter (MUFI oder RS232-Adapter) an einer separaten seriellen Schnittstelle recht
-zeitaufwendig ist.
-
-Prinzipiell standen uns bei der Konzeption zwei Möglichkeiten zur Verfügung: Ent­
-weder wir gestalten jeden Basisbefehl so, daß wir uns zu Beginn der Ausführung
-jeweils direkt an den betreffenden Kanal ankoppeln und am Ende der Ausführung
-des Befehls wieder abkoppeln - oder wir richten eine "zentrale Abwicklungstask" ein
-und nutzen die Intertaskkommunikation des EUMELs. Wir haben uns nach diversen
-Tests für die zweite Variante entschieden: Einmal zeigte sich, daß dieses Verfahren
-weit weniger zeitaufwendig ist als das ständige An- und Abkoppeln an den Interface-
-Kanal. Zum anderen konnten wir so die Möglichkeit schaffen, über diese "zentrale
-Abwicklungstask" den abwechselnden, koordinierten Zugriff mehrerer Tasks auf ein
-Interface-System zu realiseren.
-
-Wenn Sie nun aber spezielle Anwendungen schreiben wollen, für die die Geschwin­
-digkeit beim Ansprechen des Interface-Systems an einer separaten Schnittstelle nicht
-ausreicht, so möchten wir Ihnen hier noch eine Möglichkeit aufzeigen, dieses
-Problem zu bewältigen.
-
-Auch an dieser Stelle sei noch einmal ausdrücklich darauf hingewiesen, daß Sie bei
-dieser Programmiermöglichkeit auf alle Sicherheiten, die Ihnen #on("b")#gs-Prozess#off("b")# bietet,
-verzichten müssen. Deshalb sollten Sie diesen Weg nur beschreiten, wenn Sie ein
-hinlängliches Maß an Programmierroutine besitzen! Die zur Verfügung stehenden
-Befehle und die Besonderheiten möchten wir Ihnen an einem kleinen Beispiel­
-programm aufzeigen:
-#page#
-#on("b")#
- LET ausgabekanal = 4,
- eingabekanal = 3;
-
- INT VAR test, eingabewert;
- INT VAR terminalkanal :: channel (myself);
- schliesse interface;
- continue (interfacekanal);
- oeffne interface direkt (test);
- IF test < 0
- THEN continue (terminalkanal);
- errorstop ("Funktionsfehler Interface-System")
- FI;
- initialisiere interface direkt;
- eigentliches programm;
- schliesse interface direkt;
- continue (terminalkanal).
-
- eigentliches programm:
- direkt ausgeben (ausgabekanal, 3);
- eingabewert := direkteingabe (eingabekanal).
-#off("b")#
-
-Wenn Sie ein solches Programm geschrieben haben, starten Sie es bitte mit dem
-Befehl 'run pdv' oder aus dem Menusystem heraus mit der Menufunktion 's Starten'.
-(Bei 'run' kann der Befehl 'schliesse interface' gestrichen werden!).
-
-Für die eigentliche Programmierung des Interface-Systems stehen Ihnen nur zwei
-Befehle zur Verfügung:
-
-#on("b")#
-PROC direkt ausgeben (INT CONST kanal, wert)
-#off("b")#
-
- - ermittelt den auszugebenden Wert durch die Rechnung
-
-#on("b")##center#ausgabe = wert MOD 256#off("b")#
-
- und gibt diesen am Ausgabekanal aus.
-
- Der Befehl ähnelt dem Befehl 'dezimalwert ausgeben' - hat aber im Gegensatz
- dazu keinerlei "Fehlerfänger": so werden Sie z.B. nicht darauf aufmerksam
- gemacht, wenn der angegebene Kanal gar kein Ausgang ist, etc.)
-#page#
-#on("b")#
-INT PROC direkteingabe (INT CONST kanal)
-#off("b")#
-
- - liest den aktuell anliegenden Wert am angegebenen Kanal ein.
- - liefert einen INT-Wert mit 0 � 'wert' � 255.
-
- Der Befehl ähnelt dem Befehl 'dezimalwert' - hat aber im Gegensatz dazu
- ebenfalls keinerlei "Fehlerfänger"!
-
-
-Das obige Programm beginnt mit dem Befehl 'schliesse interface'. Sicher kommt es
-Ihnen sonderbar vor, daß zu Beginn des Programms das Interface geschlossen wird,
-wo wir es doch eigentlich "öffnen" müßten. Ihnen wird die Funktion aber sofort klar,
-wenn Sie sich die Situation vor Augen führen:
-
-Als Sie #on("b")#gs-Prozess#off("b")# in Ihrer Task konfiguriert haben, und festlegten, daß der Adapter
-an einer separaten Schnittstelle "hängt", richtete #on("b")#gs-Prozess#off("b")# automatisch eine
-unbenannte Sohntask ("-") als "zentrale Abwicklungstask" ein, die durch das
-Kommando 'run pdv' bzw. durch die Menufunktion 's Starten' an den Interfacekanal
-gekoppelt wird. Der Befehl 'schliesse interface' koppelt die Task "-" wieder vom Inter­
-face-Kanal ab, so daß Sie direkt darauf zugreifen können. Außerdem werden die
-internen Einstellungen im Adapter wieder in Ausgangsstellung gebracht.
-
-Mit der Prozedur 'PROC oeffne interface direkt (INT VAR testwert)' sprechen Sie das
-Interface neu an. Dabei wird ein angeschlossener Adapter automatisch auf Betriebs­
-bereitschaft getestet und dann auf den Betrieb an einer separaten seriellen Schnitt­
-stelle umgestellt (nur beim MUFI).
-
-Über 'testwert' erhalten Sie eine Rückmeldung. Dabei haben die gelieferten 'test­
-werte' folgende Bedeutung:
-
- 0 - Interface betriebsbereit
- -4 - Interface #on("b")#nicht#off("b")# betriebsbereit
- (Interface meldet sich nicht)
-#page#
-Der Befehl 'initialisiere interface direkt' wirkt ähnlich wie der schon oben be­
-schriebene Befehl 'initialisiere interface', jedoch #on("b")#nicht#off("b")# über den "Umweg zentrale
-Abwicklungstask" - sondern halt 'direkt' am Interface-Kanal. Einzige Aufgabe hier:
-Alle Ausgabe-Kanäle auf Wert '0' bzw. Nullspannung setzen.
-
-Durch das abschließende 'schliesse interface direkt' bringen Sie ein angeschlossenes
-MUFI wieder in die "Ausgangsstellung".
-
-Beachten Sie bei der Programmierung bitte unbedingt, daß Sie ständig zwischen dem
-Kanal, an dem Sie arbeiten (Terminal) und dem Interfacekanal hin- und herschalten
-(müssen), wenn Ein- oder Ausgaben auf dem Terminal erfolgen sollen. Die direkte
-Programmierung lohnt sich demnach nur, wenn aufeinanderfolgende Aktionen am
-Interfacekanal durchgeführt werden (z.B. Schrittmotorsteuerungen etc.).
-
-Treten Programmfehler auf, während Sie an den Interfacekanal gekoppelt sind,
-haben Sie keine Chance, von Ihrem Terminalkanal aus auf das Interface zuzugreifen
-- denn das "hängt am Interfacekanal" (z.B. bei "Programmabsturz" oder Endlos­
-schleife).
-
-Bei Ihrer Programmierung sollten Sie diesem Fall vorbeugen (disable stop - enable
-stop). Ansonsten müßten Sie aus einer Systemtask den Kanal "abschießen". Geben
-Sie dazu in einer Systemtask z.B. das Kommando 'end (canal (5)) <RETURN>',
-wenn das Interface-System über den Kanal 5 angesprochen wird.
-