DEC Alpha 3000-300 mit openVMS - Anfängerecke

  • Viele, aber nicht alle, Einstellungen lassen sich mit NOxxx bzw. xxx Aus-/Einschalten, nur Interactive bzw. Application eben nicht.

    /NOINTERACTIVE/PERM hat aus "interactive" "passall" gemacht. Insofern tut das schon. Ich glaube, ich kann alle relevanten Einstellungen der Schnittstelle ausserhalb meines Programmes in einem DCL script vornehmen.

    Möglicherweise kann die Schnittstelle auch selbst Hard- oder Softwarehandshake, mehr brauche ich für den Plotter zunächst nicht.

    • Offizieller Beitrag

    "Eigentlich" ist es verpönt Schnittstellen direkt anzusprechen. VMS ist da sehr strikt.

    In der "Regel" setzt man eine Printer queue auf und übergibt die Datei. Damit werden I/O locks umgangen. Natürlich gibt es Software, z.B. Maschinensteuerungen die eine bidirektionale Kommunikation erfordern.

  • Danke, aber das hilft mir zum Thema QIO nicht weiter :(


    Ich möchte sowohl Output als auch Input machen können.

    • Offizieller Beitrag

    Und damit sind wir wieder zurück zu den SYS$QIO/QIOW Funktionen:


    Dieses PDF möchte ich dir ans Herz legen, da steht alles drin was du brauchst. Auch wie du aus einem Programm die Schnittstelle konfigurierst. Alle diese Parameter lassen sich in Strukturen und/oder "Descriptoren" an sys$qio übergeben.


    Inwieweit du die Nutzung von asynchronen Traps "AST" verhindern kannst müsste man schauen. Sollte aber bei einem rudimentären Program sicherlich möglich sein.


    In dem PDF stehen auch sehr gute Beispiele:

    ftp://ftp.hp.com/pub/openvms/doc/AA-PV6SG-TK.PDF

    • Offizieller Beitrag

    Danke, aber das hilft mir zum Thema QIO nicht weiter :(


    Ich möchte sowohl Output als auch Input machen können.

    Das habe ich auch so verstanden, siehe meinen vorherigen Post.

  • Ich habe ein Beispiel unter


    http://h30266.www3.hpe.com/odl…s84/5841/5841pro_066.html


    gefunden. Nach etwas Tweaking (

    Code
    !$VMS_STATUS_SUCCESS( status )
    
    scheint nicht definiert zu sein und musste ich ersetzen durch
    
    (status != SS$_NORMAL)

    ) läuft das und geht auch auf der serielle Schnittstelle "_TTA1:" raus und rein - einfach $DESCRIPTOR(ttname, "_TTA1:");


    Danke, das PDF werde ich mir anschauen. Ich werde async read brauchen - gaaaanz sicher :)

  • Moin,

    wenn es "nur" darum geht, einen Plotter anzusteuern sind Print-Queues das Mittel der Wahl.

    Die Einstellungen des Terminals, der Queue sind entsprechend anzupassen (Seitenlänge, Handshake (XonXoff oder Hardware), Trennblatt, Headerpage, serielle Parameter, uvam...) da ist es nicht erforderlich eine eigene Anwendung für zu schreiben.

    In die Programmierung geht es dann, wenn es um speziellen Protokolle, schräge Geräte (SPS, ProcessAnalyser, Kommunikation in zwei Richtungen und so geht), dann wird es aber gleich eine Nummer gemeiner ;)

    Hoffe geholfen zu haben.

    Bernhard

  • wenn es "nur" darum geht, einen Plotter anzusteuern sind Print-Queues das Mittel der Wahl.

    jein... der Plotter ist ja Flachbett, da liegt ein Blatt Papier drauf. Da soll möglichst nur die Zeichnung drauf und überhaupt keine zusätzlichen Daten automatisch generiert werden. Das lässt sich möglicherweise alles unterdrücken, es bleibt aber das Problem des manuellen Seitenwechsels oder Stiftwechsels. Wenn der ganze Plot über eine Queue kommt, kann ich den ja kaum pausieren. Sonst macht ja die Anwendung WUPP und ist fertig, während der Plotter noch fleissig von der Queue Plotted.


    Ich möchte daher den Plotter von der Anwendung aus direkt ansprechen, auch um über Abfrage des Puffers den Plot-Stand anzeigen zu können.


    Später schliesse ich auch bestimmt mal etwas anderes an, welches dann eine serielle duplex Kommunikation braucht.


    Also sollte ich das gleich "richtig" mit QIO machen...

  • Moin,


    schau' mal hier

    http://www0.mi.infn.it/~calcol…S/ssb71/6015/6017p039.htm

    was so eine Queue alles kann...

    Da gibt es Möglichkeiten zwischen zwei Jobs etwas machen zu lassen (/SEPARATE=xxx)

    Das mit dem WUPP (siehe oben) ist ja genau der Grund fuer eine Queue, Processing ist erledigt, es geht jetzt nur noch um I/O zum Endgerät, das wird dann delegiert an die Queue.

    Was mich z.Zt. noch stört, ich habe aktuell keine Lösung für die Pause zum Wechsel des Stiftes...

    Ich gehe da mal in mich.

    Frage : Wenn das Kommando zum Wechsel des Stiftes an den Plotter gesendet wird, was macht der dann?

    Warten auf den "Operator", das der den richtigen Stift einlegt und dann die Weiter-Taste drückt...

    Das würde gehen ohne QIO-Programming...

    Du siehst, ich drücke mich ein wenig vor dem Aufwand, da ich grob abschätzen kann, was das für ein Do ist.


    Bernhard

  • Ich mache den Aufwand ja. Das geht schon in Ordnung...

  • War dann doch nicht so schwierig (die Hobbyist Sachen von VSI zum Laufen zu bringen)... Und jetzt gehe ich Schlafen.. Gute Nacht!

  • So. Neues "Problem".

    Ich habe, um LTO Laufwerke anzuschliessen, einen zweiten SCSI Kontroller drin. Im "BIOS" - Ich nenne das so, weil mir der richtige Name immer entfällt, ergibt sich dann folgendes und auch gewünschte Bild:


    Der 2. Kontroller ist PKB0 Und das LTO Laufwerk dran MKB300. Alle gut.

    Aber nach Booten unter VMS sind dann A und B vertauscht und meine ganzen Mounts der zusätzlichen Platten passen nicht mehr:

    Kann man das hinbekommen; dass diese Vertauschung unterbleibt?


    Witzig ist da natürlich auch, dass ich "b dka0" mache und unter VMS dann Das System-Laufwerk DKB0 ist...

    • Offizieller Beitrag

    Ist ein bekanntes Problem. Wir haben das an der Firma nie zufriedenstellend gelöst bekommen.

    Für die 1000er gab es mal ein Firmwareupdate. Hast du da mal geschaut?

  • Ist aber eine 2100er.


    Ich habe da ansonsten zwei nicht perfekte Lösungen:


    1. damit Leben und die Mounts anpassen. Dann muss der zusätzliche Kontroller eben immer drin bleiben. Es gibt aber Mecker und Delay im "BIOS" Selbsttest wenn kein Laufwerk zu finden ist. Vielleicht liegt das aber auch am dann fehlenden 2. Terminator.


    2. herausfinden, warum das LTO nicht am internen Bus tut. Beide, Intern und Extern, sind SE und Nutzen den gleichen Kontroller-Chip

  • An dem wundersamen Kontroller mit i960, den ich auch noch habe, funktionieren die LTO leider nicht, da dieser HVD ist- Die Laufwerke können LVD und SE.

    Der Kontroller wäre natürlich toll, mit seinem RAM Puffer

    • Offizieller Beitrag

    Hatte schon gelesen dass du die 2100er meinst. Trotzdem, hast du mal nach eine FW Update geschaut?

  • Ach und irgendwie stehe ich auf dem Schlauch. Ich habe mit


    $ backup dkb400:[000000...]*.*;* mka300:tape14


    Ein Laufwerk auf Band geschrieben und will nun mit


    $ backup/list


    nachsehen, ob alles drauf ist. Aber ich bekomme nicht raus, wie der Parameter "SAFE-SET" zu spezifizieren ist :(

  • Habs mal runtergeladen. Ich habe so ein Update schon mal für die 200 gemacht, über Diskette.

  • Haste eine Vorschlag für das BACKUP/LIST?

  • es geht aber um ein Band!


    Beschrieben habe ich es mit


    backup dkb400:[000000...]*.*;* mka300:tape14

    wie heisst dann nun das saveset?


    tape14 ist ja der Name des vorher initialisierten Bandes; mithin also kein Dateiname.

  • Moin,


    bei Tapes ist /Save nicht noetig meine ich, da es hier automatisch angenommen wird.


    Also

    $Backup /list tape:[]*.* /rewind


    /rewind ist noetig, da der nach dem Backup das Band hinter der gesicherten Datei stehen bleibt und danach ja noch nichts ist.


    MfG

    Bernhard

  • Danke, das passt:

    Backup /list mka300:[]*.* /rewind

  • Kann man das hinbekommen; dass diese Vertauschung unterbleibt?

    Ja, kann man. Das Teil hat ja viele PCI Slots. In einem "weit rechts" auf dem Mainboard kommt dann der zusätzliche Kontroller hinter dem "On Board" Kontroller.