Schnelle Messungen mit dem SIOS

(19.3.03)

Das SIOS-Interface enthält Kommandos für schnelle Serienmessungen, deren Daten zunächst im RAM zwischengespeichert werden. Ein Beispiel für die Anwendung der Kommandos wird in dem "Handbuch der PC-Mess- und Steuertechnik" vorgestellt. Das komplette Delphi-Projekt kann hier geladen werden. Zugleich enthält das Archiv auch die RSCOM.DLL aus dem Buch und die Unit RSCOMdec.pas mit allen erforderlichen Deklarationen der DLL-Funktionen für eigene Delphi-Projekte.

Download des Projekts SIOSKOP mit Quelltext und EXE-Datei (sioskop.zip, 208 KB)


Die schnellste Messung mit den SIOS-Betriebssystemkommandos benötigt 0,2 ms pro Messpunkt. In älteren Dokumenten ist z.T. noch von 0,1 ms die Rede, was sich jedoch als unrealistisch herausgestellt hat. Diese Geschwindigkeitsgrenze kann jedoch durchbrochen werden, wenn man eigenen Programmcode im SIOS ausführt. Mit einer einfachen Messschleife kommt man so auf Abtastraten bis zu 30 kHz. Benötigt man eine genaues Zeitraster, sollten zusätzlich die Timerfunktionen des Systems verwendet werden, die ein kleinstes Raster von 0,1 ms zulassen. Ein Messprogramm kann im Prinzip mit jedem 8051-Compiler oder Assembler erzeugt werden. Besonders einfach geht es jedoch mit dem Makrocompiler MC.EXE, der spezielle Einstellungen für das SIOS kennt. Dieser Compiler wird nicht mehr weiter entwickelt und wird inzwischen zum freien Download angeboten.

Download des Makrocompilers MC (mc.zip, 183 K)
(Achtung, MC ist ein DOS-Programm, das unter Win2000/XP/NT keinen direkten Zugriff auf die RS232 hat. Man kann aber Programme kompilieren und über VB in das SIOS laden.)

Das folgende Messprogramm führt Messungen an einem Kanal mit einer Auflösung von 10 Bit bei einer Abtastrate von 10000 Messungen pro Sekunde durch. Pro Messpunkt werden zwei Bytes im RAM gespeichert. Die gesamte Messung dauert eine Sekunde, kann aber vorher abgebrochen werden, wenn weniger Messdaten benötigt werden. Die Messdaten werden ab 0800h im RAM abgelegt.

;Einkanal-Speicheroszilloskop 10 Bit   (OSZI3.MC35)



Procedure messen

RdAD 0

WrRAM

RdB          ;Lowbyte

WrRAM

delay 1      ;0,1ms pro Messung

EndProc



Procedure 250messungen

Count2 250

Loop2 messen

EndProc



Procedure steuerung

ResetRAM

WrP4 1                     ;Start anzeigen

Count1 40                  ;10000 Messpunkte

Loop1 250messungen

WrP4 0                     ;Ende anzeigen

WrCOM 1                    ;Ende melden

EndProc



Begin

T0.1ms

steuerung

End

Das Programm muss mit dem Makrocompiler kompiliert werden und wird dann als Binärfile Oszi3.bin gespeichert. Es handelt sich um direkt ausführbaren 8051-Code, der ab der Adresse 8100h im RAM des SIOS stehen soll. Das folgende Beispielprogramm wurde mit Visual Basic 5 entwickelt. Alle Zugriffe auf das SIOS erfolgen über die RSAPI.DLL, die ausführlich in dem Buch "Messen, Steuern, Regeln mit Word und Excel" vorgestellt wurde. Funktionen wie PROLADEN, PROSTART und RAMEIN erleichtern die Arbeit mit dem SIOS. Die folgenden Ausschnitte aus dem Quelltext zeigen das Laden des Programms, den Programmstart und das Auslesen der Daten aus dem RAM. Es wird jeweils nur das höherwertige Byte ausgewertet, also nur 8 Bit der Genauigkeit ausgenutzt. Außerdem wird die Messung bereits nach 60 ms mit SYSTEMRESET unterbrochen, weil hier nur etwa 550 Bytes geplottet werden sollen.

Private Sub Form_Load()

 i = INITSIOS(2)

 If i = 0 Then

    i = INITSIOS(1)

    Check1.Value = 1

    Check2.Value = 0

 End If

 If i = 0 Then MsgBox ("COM Interface Error")

 PROLADEN ("Oszi3.bin")

End Sub
Private Sub Command1_Click()

  PROSTART

  DELAY 60

  SYSTEMRESET

  For n = 0 To 560

  Ch1(n) = RAMEIN(2048 + 2 * n) 'nur Highbyte

  Next n

  Plot

End Sub



Die Messung zeigt ein Eingangssignal mit einer Frequenz von ca. 100 Hz und einer Periodendauer von 10 ms. Ähnliche Messungen lassen sich auch in Excel ausführen, wobei der Code für das benötigte VB-Makro in wesentlichen Teilen identisch mit dem VB-Beispiel ist.

Download des VB-Quelltextes mit OSZI3.M35 und OSZI3.BIN (Sioskop3.zip, 3k)
(Achtung, beim Test muss OSZI3.BIN im VB-Verzeichnis stehen, damit es zum Laden gefunden wird.)


Weitere Informationen zum Thema:

Technische Daten des SIOS: www.ak-modul-bus.de/technik/sios.html
Inhaltsübersicht zu "MSR mit Word und Excel": www.b-kainka.de/msrwe.htm
Inhaltsübersicht zum Handbuch der PC-Mess- und Steuertechnik: www.b-kainka.de/pcmess.htm


Zurück zur Startseite der MB-News
Zurück zur Startseite AK-Modul-Bus