Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: Visualisierung mit Java

  1. #1
    Michael_K Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    ich soll in meinem Abschlussprojekt zum "Staatlich geprüften Techniker" dieVisualisierung einer S7-300 in Java programmieren. Hört sich ja nicht ganz so schwierig an, ... dachte ich zumindest am Anfang.
    Mittlerweile hab ich das Problem, dass ich nicht weiß, wie die Daten der SPS in mein Javaprogramm eingebunden werden. Die Daten sollen über MPI übergeben werden. Im SPS-Programm wollte ich es mit den Bausteinen "xget" und "xput" versuchen. Mein Problem besteht jetzt aber darin, dass ich keine Ahnung hab, wie ich meinem Javaprogramm beibringe, dass da jetzt Daten kommen, die es in Variablen einbinden soll.
    Zu erwähnen wäre vielleicht noch, dass das ganze ohne zusätzliche Hardware (CP...) und nach Möglichkeit auch ohne zusätliche Software realisiert werden soll.
    Ich hoffe es kann mir jemand helfen.
    Bis dann,
    Michael
    Zitieren Zitieren Gelöst: Visualisierung mit Java  

  2. "Visual besteht aus zwei Teilen:

    1. HMI-Komponenten, aus denen eine Bedienoberfläche zusammengestellt werden kann. Diese wird durch ein JAVA-Applet (hmiViewer) dargestellt und animiert. Der tatsächliche Aufbau einer bestimmten Seite wird über Parameter-Zeilen des Applets angegeben. Beispiel:
    Digitalanzeige.
    Code:
    <param name="0" value="hmiDigital,10,100,60,22,1,12,15,2,3,4,5,6,7,C1,0,100,Druck ,Bar,2">
    Diese Zeile bewirkt, daß eine Digitalanzeige: hmiDigital
    bei 10 Pixel von links,100 Pixel von oben
    60 Pixel breit, 22Pixel hoch dargestellt wird.
    Die Darstellung erfolgt für niedrige Werte mit den Farben 1,12,15,
    für normale Werte mit den Farben 2,3,4,
    für hohe Werte mit den Farben 5,6,7.
    Der Wert kommt aus C1 (Erklärung folgt)
    0 und weinger ist "niedrig",100 und mehr hoch,
    Der angezeigte Text ist Druck <Wert> Bar mit 2 Nachkommastellen.
    Also Druck 23.45 Bar.

    2. Einem Server-Teil, der laufend mit einer oder mehreren SPSen (oder Meßgeräten oder anderen Instanzen von VISUAL) kommuniziert. Er erfüllt 2 Hauptaufgaben: Der Server kann beliebig viele Clients bedienen, ohne daß die Belastung der SPS durch Kommunikation ansteigt. Der Server holt auch dann Daten von der SPS, wenn kein Client sie anfordert und zeichnet sie in Dateien oder Datenbanken auf.

    Der Server ist nur für Linux verfügbar. Er stellt die Life-Daten intern in einer (oder mehreren) Tabelle(n) dar, die einem Excel-Blatt ähneln. Treiber für verschiedene SPS werden beim Start dynamisch nachgeladen, entsprechend den Angaben in einer Konfigurationsdatei für das Projekt. Ein einzelner Treiber erhält Anweisungen in der Art "lies von DB5 ab Datenwort 12 Daten im Format 'FFFLIWWWB' nach D5", was bedeuten würde: Hole 3 Real-Zahlen, ein DINT, ein INT, 3 WORD, ein Byte ab Adresse DB5.DBB12 und schreibe sie nach D5 und folgende Zeilen.
    Dadurch steht in:
    D5 REAL aus DBD12
    D6 REAL aus DBD16
    D7 REAL aus DBD20
    D8 DINT aus DBD24
    D9 WORD aus DBD28
    D10 WORD aus DBD30
    D11 WORD aus DBD32
    D12 BYTE aus DBD34

    Auf diese Zellen-Koordinaten bezieht sich das "C1" in der Angabe, wo der Wert herkommt. Jede Zahl, die in der Definition für Position, Größe, Farbe, usw auftaucht, kann prinzipiell durch eine Koordinate ersetzt werden, wodurch die Eigenschaft dynamisch wird.

    Außer Digitalanzeigen gibt es all das Zeug, was auf der Web-Seite zu sehen ist.

    Wer nun den Server-Teil garnicht braucht, kann den HMI-Teil (mit Einschränkungen) alleine verwenden: So wie die einzelnen Anzeige-Elemente in die Sweite eingebunden werde, wird auch eine "Plug-In"-Klasse für die Kommunikation über eine Parameter-Zeile eingebunden. Für VISUALs Server:
    Code:
    <param name="communicator" value="org.visual.hmi.protocol.hmiVisualCI">
    Das ist einfach der vollständige Name.
    Alternativ könnte ein anderes Ding eingebunden werden:
    Code:
    <param name="communicator" value="org.visual.hmi.protocol.siemens.ISOTCP_CI">
    Das gibt es, aber es ist nicht auf dem neuesten Stand, nicht veröffentlicht und kommuniziert mittels einer JAVA-Version von Libnodave direkt mit der SPS. Damit kann ein JAVA-fähiges Gerät ein Bediengerät wie OPxx ersetzen. Natürlich braucht jetzt jedes Gerät eine Verbindung(sresource) der SPS.

    In diesem Fall ist die Angabe einer Zelle wie C1 natürlich sinnlos. Aber die Interpretation der Bezeichnungen liegt alleine bei der als "communicator" eingebundenen JAVA-Klasse(CI). (Und alles, was keine Zahl ist, wird an das CI weitergereicht) ISOTCP_CI nimmt nun Variablenname wie DB5:F6. Das heißt: Der Wert ist ein REAL (F) ab DBB6 (also in DBD6) im DB5."


  3. #2
    Registriert seit
    25.07.2005
    Ort
    Vogelsbergkreis
    Beiträge
    1.717
    Danke
    48
    Erhielt 68 Danke für 60 Beiträge

    Standard

    Zottels "viusal" ist eine Java-Visualisierung!

    http://visual.sf.net

  4. #3
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Visual besteht aus zwei Teilen:

    1. HMI-Komponenten, aus denen eine Bedienoberfläche zusammengestellt werden kann. Diese wird durch ein JAVA-Applet (hmiViewer) dargestellt und animiert. Der tatsächliche Aufbau einer bestimmten Seite wird über Parameter-Zeilen des Applets angegeben. Beispiel:
    Digitalanzeige.
    Code:
    <param name="0" value="hmiDigital,10,100,60,22,1,12,15,2,3,4,5,6,7,C1,0,100,Druck ,Bar,2">
    Diese Zeile bewirkt, daß eine Digitalanzeige: hmiDigital
    bei 10 Pixel von links,100 Pixel von oben
    60 Pixel breit, 22Pixel hoch dargestellt wird.
    Die Darstellung erfolgt für niedrige Werte mit den Farben 1,12,15,
    für normale Werte mit den Farben 2,3,4,
    für hohe Werte mit den Farben 5,6,7.
    Der Wert kommt aus C1 (Erklärung folgt)
    0 und weinger ist "niedrig",100 und mehr hoch,
    Der angezeigte Text ist Druck <Wert> Bar mit 2 Nachkommastellen.
    Also Druck 23.45 Bar.

    2. Einem Server-Teil, der laufend mit einer oder mehreren SPSen (oder Meßgeräten oder anderen Instanzen von VISUAL) kommuniziert. Er erfüllt 2 Hauptaufgaben: Der Server kann beliebig viele Clients bedienen, ohne daß die Belastung der SPS durch Kommunikation ansteigt. Der Server holt auch dann Daten von der SPS, wenn kein Client sie anfordert und zeichnet sie in Dateien oder Datenbanken auf.

    Der Server ist nur für Linux verfügbar. Er stellt die Life-Daten intern in einer (oder mehreren) Tabelle(n) dar, die einem Excel-Blatt ähneln. Treiber für verschiedene SPS werden beim Start dynamisch nachgeladen, entsprechend den Angaben in einer Konfigurationsdatei für das Projekt. Ein einzelner Treiber erhält Anweisungen in der Art "lies von DB5 ab Datenwort 12 Daten im Format 'FFFLIWWWB' nach D5", was bedeuten würde: Hole 3 Real-Zahlen, ein DINT, ein INT, 3 WORD, ein Byte ab Adresse DB5.DBB12 und schreibe sie nach D5 und folgende Zeilen.
    Dadurch steht in:
    D5 REAL aus DBD12
    D6 REAL aus DBD16
    D7 REAL aus DBD20
    D8 DINT aus DBD24
    D9 WORD aus DBD28
    D10 WORD aus DBD30
    D11 WORD aus DBD32
    D12 BYTE aus DBD34

    Auf diese Zellen-Koordinaten bezieht sich das "C1" in der Angabe, wo der Wert herkommt. Jede Zahl, die in der Definition für Position, Größe, Farbe, usw auftaucht, kann prinzipiell durch eine Koordinate ersetzt werden, wodurch die Eigenschaft dynamisch wird.

    Außer Digitalanzeigen gibt es all das Zeug, was auf der Web-Seite zu sehen ist.

    Wer nun den Server-Teil garnicht braucht, kann den HMI-Teil (mit Einschränkungen) alleine verwenden: So wie die einzelnen Anzeige-Elemente in die Sweite eingebunden werde, wird auch eine "Plug-In"-Klasse für die Kommunikation über eine Parameter-Zeile eingebunden. Für VISUALs Server:
    Code:
    <param name="communicator" value="org.visual.hmi.protocol.hmiVisualCI">
    Das ist einfach der vollständige Name.
    Alternativ könnte ein anderes Ding eingebunden werden:
    Code:
    <param name="communicator" value="org.visual.hmi.protocol.siemens.ISOTCP_CI">
    Das gibt es, aber es ist nicht auf dem neuesten Stand, nicht veröffentlicht und kommuniziert mittels einer JAVA-Version von Libnodave direkt mit der SPS. Damit kann ein JAVA-fähiges Gerät ein Bediengerät wie OPxx ersetzen. Natürlich braucht jetzt jedes Gerät eine Verbindung(sresource) der SPS.

    In diesem Fall ist die Angabe einer Zelle wie C1 natürlich sinnlos. Aber die Interpretation der Bezeichnungen liegt alleine bei der als "communicator" eingebundenen JAVA-Klasse(CI). (Und alles, was keine Zahl ist, wird an das CI weitergereicht) ISOTCP_CI nimmt nun Variablenname wie DB5:F6. Das heißt: Der Wert ist ein REAL (F) ab DBB6 (also in DBD6) im DB5.

Ähnliche Themen

  1. TwinCAT to Java
    Von dflash254 im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 24.02.2011, 21:00
  2. Libnodave für Java
    Von sha im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 19.04.2006, 12:40
  3. Java auf CP243-1IT
    Von Gaida im Forum HMI
    Antworten: 2
    Letzter Beitrag: 01.11.2005, 16:41
  4. VB, c# oder JAVA
    Von kaiwerner im Forum HMI
    Antworten: 2
    Letzter Beitrag: 11.04.2005, 12:22
  5. Programmierung mit Java / VC
    Von mod2k im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.02.2005, 13:31

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •