112 lines
5.4 KiB
HTML
112 lines
5.4 KiB
HTML
<HTML>
|
||
<HEAD>
|
||
<TITLE>Q_CANSTD</TITLE>
|
||
<META NAME="Generator" CONTENT="KDOC ">
|
||
</HEAD>
|
||
<BODY bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#000099" alink= "#ffffff">
|
||
|
||
<table BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#FFFFCC" NOSAVE >
|
||
<tr ALIGN=CENTER VALIGN=CENTER NOSAVE>
|
||
<td NOSAVE><font face="Arial,Helvetica"><font size=+2></font></font>
|
||
<br><font face="Arial,Helvetica"><font size=+2>CCS Modul <b>Q_CANSTD</b></font></font>
|
||
<br> </td>
|
||
</tr>
|
||
</table>
|
||
<PRE>
|
||
$Id: q_canstd.C,v 1.9 2005/09/01 07:11:40 sniff Exp $
|
||
---------------------------------------------------------------------
|
||
Kurzbeschreibung: CAN - Auftrag an die PSS/SKM senden
|
||
---------------------------------------------------------------------
|
||
Projekt: CCS
|
||
Sourcefile: q_canstd.C
|
||
Autor: RtW/TEF72-Keppler (04.08.99)
|
||
Zielsystem: HP9000/V743 (HP-RT 2.0x), /Sxxx (HP-UX 9.0x)
|
||
Sprache: C++
|
||
---------------------------------------------------------------------
|
||
Prototyp:
|
||
MPI Schnittstelle
|
||
void q_canstd(shm_stringpointer *zeilen_info
|
||
,shm_stringpointer *zeilen_wert
|
||
,long index1
|
||
,long anzahl)
|
||
|
||
---------------------------------------------------------------------
|
||
Aufruf: im Vectorinterpreter
|
||
|
||
(*funktionen[modulnummer])
|
||
(Ssp_expand_zeile
|
||
,Ssp_expand_wert
|
||
,p_verwaltung->begin_modulblock
|
||
,p_verwaltung->anzahl_modulparameter);
|
||
|
||
---------------------------------------------------------------------
|
||
Funktionsbeschreibung:
|
||
Dieses Modul dient zur Auftragsvergabe an die SKM. Es bereitet die
|
||
Eingangsdaten zu einem SKM-verstaendlichen String auf und veranlasst
|
||
die gewuenschten Aktionen.
|
||
Die Antwort wird im shared Memory abgelegt und kann dort z.B. vom Modul
|
||
p_zerlege_string geholt und verarbeitet werden.
|
||
|
||
ACHTUNG: Derzeit nur SKM
|
||
|
||
Beschreibung der Moduluebergabeparameter:</pre><b><a name="param1">1</a> PRUEFSCHRITT</b><pre>
|
||
GAUDI Pruefschritt</pre><b><a name="param2">2</a> POSITION</b><pre>
|
||
PAV- Position</pre><b><a name="param3">3</a> BEFEHL</b><pre> Befehl an die SKM
|
||
CANBLOCK: Die folgenden Parameter werden wie in der
|
||
Standard-Pruefvorschrift beschrieben interpretiert.</pre><b><a name="param4">4</a> ID_SENDEN</b><pre>Sende Identifier an das SG: Identifier in HEX an das
|
||
SG. Soll keine Botschaft gesendet werden, so wird
|
||
kein Wert eingetragen.</pre><b><a name="param5">5</a> ID_SENDEN_LEN</b><pre>Hier wird die Bitzahl des Sende-Identifier eingetragen.
|
||
11 = 11 Bit Identifier
|
||
29 = 29 Bit Identifier</pre><b><a name="param6">6</a> ID_LESEN</b><pre>Lese Identifier: Gibt den Identifier an fuer das Objekt,
|
||
auf dem die Antwort des SG erwartet wird.
|
||
Soll keine Antwort vom SG gelesen werden, so ist hier
|
||
nichts einzutragen.</pre><b><a name="param7">7</a> ID_LESEN_LEN</b><pre>Hier wird die Bitzahl des Lese-Identifiers eingetragen.
|
||
11 = 11 Bit Identifier
|
||
29 = 29 Bit Identifier</pre><b><a name="param8">8</a> MODUS_STD</b><pre>Gibt an, wie die Botschaft behandelt werden soll.
|
||
C: Die Strings in DATEN werden so lange aneinander gehaengt
|
||
bis hier ein Wert != C eingetragen wird.
|
||
D: Der angegebene Identifier wird geloescht.
|
||
E: Echoboard-Funktion:
|
||
Das als Lesebotschaft eingestellte Objekt loest nach Empfang
|
||
einen Interrupt auf der SKM aus, welcher das Senden des als
|
||
Sendebotschaft eingestellten Objektes veranlasst. Das Senden
|
||
geschieht unmittelbar nach Empfang.
|
||
Es mu<6D> hier als Sendebotschaft und Lesebotschaft eingestellt
|
||
werden, sonst geschieht Unsinn.
|
||
L: Lese- und Steuerfunktion: Ist in den Parametern ID_SENDEN
|
||
und ID_SENDEN_LEN eine Botschaft spezifiziert, so wird
|
||
dieses Frame an das SG gesendet.
|
||
Es wird eine Botschaft (spez. unter ID_LESEN) zurueck-
|
||
erwartet.
|
||
Soll nur eine Botschaft vom SG gelesen werden, (z.B. eine
|
||
vom SG zyklisch gesendete Botschaft) so bleiben ID_SENDEN
|
||
und ID_SENDEN_LEN leer.
|
||
S: Es wird eine Botschaft zum SG mittels Dataframe gesendet.
|
||
Es wird keine Antwort erwartet.
|
||
R: Es wird eine Botschaft mittels Remote-Frame gelesen.
|
||
Der Tester(SKM) sendet eine als Remote-Frame gekenn-
|
||
zeichnete Botschaft an das SG. Die Antwort wird in diesem
|
||
Objekt erwartet.
|
||
ID_LESEN, ID_LESEN_LEN und DATEN werden hier nicht
|
||
beruecksichtigt.
|
||
Die resultierende Botschaft wird zurueckgegeben
|
||
(noch nicht implementiert).
|
||
INIT: Einstellen (Initialisieren) eines Lese-Identifiers.
|
||
Es wird ein Identifier der als ID_LESEN angegeben
|
||
wird dem CAN-Baustein mitgeteilt. Der Host wartet jedoch
|
||
nicht bis die SKM eine Antwort liefert, sondern faehrt
|
||
im Programm fort.
|
||
Die Antwort kann mit dem Modul L in einem spaeteren Schritt
|
||
abgeholt werden.</pre><b><a name="param9">9</a> SG_DATEN</b><pre> Hier werden die Daten, die zum SG gesendet werden sollen
|
||
(ID_SENDEN), eingetragen.</pre><b><a name="param10">10</a> PERIODE_SEND</b><pre>Gibt an, ob ein Sendeobjekt einmal oder zyklisch gesendet
|
||
werden soll.
|
||
0 = einmal senden
|
||
n = Zeitintervall in ms
|
||
-1 = Zyklisches Senden beenden
|
||
Diese Angaben beziehen sich auf ID_SENDEN</pre><b><a name="param11">11</a> TIMEOUT_SKM</b><pre>Wird eine Anforderung innerhalb dieser Zeit nicht beant-
|
||
wortet, so wird ein Fehler generiert.</pre><b><a name="param12">12</a> FEHLERFLAG</b><pre> Wird gesetzt bei aufgetretenem Fehler</pre><b><a name="param13">13</a> ERGEBNIS</b><pre> Pointer auf den Antwortstring der PSS/SKM
|
||
|
||
</PRE>
|
||
</BODY>
|
||
</HTML>
|