Ausgabe 25, September 1999

Mit SIOS unterwegs / Von Ulrich Groth

Mit dem SIOSBAS.EXE kann das SIOS-Interface in den Zustand versetzt werden, autonome Anwendungen ohne angeschlossenen PC durchzuführen. Was liegt also näher als die Idee, mit dem SIOS unabhängig wie mit der ZELLE außerhalb der 4 Wände unterwegs Langzeitmessungen durchzuführen.

Der Artikel mit den beschriebenen Beispielprogramme steht auch zum DownLoad zur Verfügung. (5 KB)

Aufgabenbeschreibung

Erfassung von 1020 Messdaten mit variablen Messpunktabständen von Vielfachem einer Sekunde bis mindestens 30 Sekunden – das entspricht 8 1/2 Stdn. Gesamtmessdauer über einen Sensorkanal – genug für einen Ausflug.

Starten der Messung über Triggerung.

Messzeitpunkt sowie Ende der Messung sollen signalisiert werden.

Zusätzlich sollen nach Messwerterfassung die erfassten Daten ausgelesen und mit einem PC weiter verarbeitet werden können; aus Datensicherheitsgründen soll vor einem endgültigen Programmabschluss immer eine erneute Auslesung der Messdaten durch Entscheidung des Anwenders möglich sein.

Eingesetzte Hardware

Eingesetzte Software

Das Programm gliedert sich in die Teile: Initialisierung, Messvorgang, Datenauslese

Mittels der Variablen S und Z kann die Zeit zwischen den einzelnen Messpunkten variiert werden. S=401 ergab den Wert für ca 1 Sekunde Schleifendurchlauf; die Variable Z ergibt dann das Vielfache von 1 Sekunde; danach wird der Ausgabeport A0..A7 auf Null-potential gesetzt. Es werden 4 Variablen zu je 255 Datenfeldern initialisiert.

Nach positiver Triggerung an E0 beginnt der Messvorgang;

Abhängig von den Zeitverzögerungsschleifen werden die einzelnen Variabelenfelder mit den am Sensoreingang AN(2) anliegenden Werten beschickt; die einzelnen Messzeitpunkte werden am Datenausgang A0 während des Messvorgangs laufend signalisiert. Das Ende des Messvorgangs wird über den Datenausgang A7 angezeigt.

Ab diesem Zeitpunkt kann die Datenauslese erfolgen; hierzu erwartet das Programm einen lfd. positiven Impuls abwechselnd an den Dateneingängen E1 und E2 – beginnend mit E1. In Abhängigkeit dieses Taktes gibt das Interface an seinen Datenausgängen A0..A7 die einzelnen 1020 Messdaten aus.

Das Ende der Datenausgabe wird über OUTPORT=255 am Datenausgang A0..A7 angezeigt; jetzt kann der Anwender das Programm durch positiven Inpuls an E0 beenden oder mittels positivem Impuls an E3 eine erneute Datenauslese ermöglichen.

ModulLAB für CompuLAB (INMCLAB.PRG; INWERK.PRC)

Mit diesem Programm kann die Datenauslese erfolgen. Gleichzeitig ist eine Speicherung der ausgelesenen Daten für nachfolgende Verarbeitungen mit dem Softwarepaket ModulLab für CompuLAB möglich, was das Arbeiten mit diesem Werkzeug sehr angenehm macht.

Ablaufbeispiel

Messung durchführen

Gewünschten Sensor anschließen; dann Nullpotential von E0 lösen und mit der Messleitung E0 positiv triggern.

Datenauslese

Nachdem nun das SIOS-Interface mit den gespeicherten Messwerten vorliegt, ist die Hardware für die anstehende Datenauslese wie folgt vorzubereiten:

Unbedingt jetzt vorab eine gemeinsame Masseverbindung zwischen dem SIOS Interface und dem CompuLAB mit einer freien Messleitung herstellen und dann erst beide Interfaces über ihre Sammelanschlüsse mit dem o.a. besonderen Verbindungskabel verbinden.

Jetzt kann Programm INMCLAB.PRG gestartet werden. Das Programm läuft in einer Warteschleife bis ein beliebiger Tastendruck eintrifft.

Vor dem Starten der Auswertung mit Tastendruck sind aber die Messleitungen an E1 und E2 am SIOS-Interface (Nullpotential !! – Kurzschlußgefahr !!) unbedingt zu entfernen.

Nun Tastendruck – und die Datenauslese beginnt.

Wenn alle LED am Ausgangsport aufleuchten, ist die Datenauslese beendet.

Das Programm wird beendet mit Triggerung am Dateneingang E0; eine erneute Datenauslese lässt sich jedoch auch – durch Triggerung an E3 – statt dessen veranlassen.

Die ausgelesenen Daten lassen sich als eigene Datei abspeichern und so für nachfolgende Auswertungen oder weitere Verarbeitungen sichern.

Programm INAD(2).BAS

Initialisierung

10     CLEAR  : S=401 : Z=5     S=401 entspricht etwa 1 Sekunde; Z=5 ergibt  

15    OUTPORT=0                 eine Messzeitdifferenz von 5 Sekunden

20     DIM A1(254)              Maximalwert je Variable 0..254 

22     DIM A2(254)              insgesamt 255 * 4 = 1020 Messwerte möglich

24     DIM A3(254)

26     DIM A4(254)

Messvorgang 

50     IF (INPORT.AND.1)<>1 THEN  GOTO 50   Warte auf +Triggerung an E0  

60     FOR I=0 TO 254

70    A1(I)=AD(2)

80    OUTPORT=1                 Signal Messzeitpunkt an A0

85     FOR N=1 TO Z

90     FOR V=1 TO S

100   OUTPORT=0                 Messzeitpunkt durchlaufen 

110    NEXT V

115    NEXT N

120    NEXT I

130    FOR I=0 TO 254

140   A2(I)=AD(2)                usw. ....... 

150   OUTPORT=1                       .

155    FOR N=1 TO Z                   .

 .                                                     .

 .                                                     .

260    NEXT I                                .

270    FOR I=0 TO 254            bis letzte Variable beschickt 

280   A4(I)=AD(2)                wird     

290   OUTPORT=1

295    FOR N=1 TO Z

300    FOR V=1 TO S

310   OUTPORT=0

320    NEXT V

325    NEXT N

330    NEXT I

640   OUTPORT=128              Signal Ende der Messung an A7  

650   N=0

Datenauslese

660    IF (INPORT.AND.2)<>2 THEN  GOTO 660 warten auf Taktsignal an E1 

680   OUTPORT=A1(N)                        zum Auslesen der Daten 

690    IF (INPORT.AND.4)<>4 THEN  GOTO 690 warten auf Taktsignal an E2   

710   N=N+1                                zum Auslesen der Daten 

720    IF N=255 THEN  GOTO 750             über CompuLAB 

730    GOTO 660

750   N=0

760    IF (INPORT.AND.2)<>2 THEN  GOTO 760 usw. mit Datenauslese A2(N)....

780   OUTPORT=A2(N)                                  

800    IF (INPORT.AND.4)<>4 THEN  GOTO 800   

 .                                                        

 .                                                          

1000   IF (INPORT.AND.4)<>4 THEN  GOTO 1000      

1010  N=N+1                                                               

1020   IF N=255 THEN  GOTO 1040                            

1030   GOTO 960                             bis letzte Variable A4(N)

1040  N=0                                   ausgelesen ist

1050  OUTPORT=255                   Signal Ende der Datenausgabe A0..A7

1060   IF (INPORT.AND.1)=1 THEN  GOTO 1090  entweder jetzt Programmende (E0)

1070   IF (INPORT.AND.8)=8 THEN  GOTO 640   oder Datenauslese nochmal  (E3)  

1080   GOTO 1060

1090  OUTPORT=0

1500   END

INMCLAB.PRG

Hauptprogramm

PROGRAMM

 Speicher 3 = 0

 Wiederhole 

         Ausgänge = oooooooo

 Bis Tastendruck

 Wiederhole 

         Einlesen

         Speicher 3 + 1

 Bis Speicher 3 = 4

ENDE.





INWERK.PRC

PROZEDUR Einlesen

 Speicher 1 = 0

 Ausgänge = oooooooo

 Wiederhole 

         Ausgang 2 = O

         Ausgang 1 = I

         Speicher 2 = Eingänge

         Schreibe Speicher 2 D

         Speicher 1 + 1

         Ausgang 1 = O

         Ausgang 2 = I

 Bis Speicher 1 = 255

ENDE;


Zurück zum CompaS-Archiv
Zurück zur Startseite AK-Modul-Bus