Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :

Ähnliche Präsentationen


Präsentation zum Thema: "OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :"—  Präsentation transkript:

1 OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :
- Aufzugsfahrten der Mieter in einem Wohnhaus zählen - max 120 Wohnungen, jede Wohnung hat einen Eingang - Abspeicherung der Gesammtfahrten im Monat und eine komplette Auflistung der Fahrten mit Datum und Uhrzeit sollte möglich sein - darausfolgt ein großes Datenaufkommen was auf der Flashkarte der SPS gespeichert wird - die Auswertung erfolgt über Modem und Server Lite - Steuerung CJ1M CPU 12 1

2 Probleme bei der Verwirklichung
Flashkarte über Server Lite auslesen, es gibt keine fertige Funktion dafür, sie muß mit FINS Befehlen ausgelesen werden Ab der CX Server Lite Version 1.1 ist es möglich FINS Befehle zu Senden und Empfangen mit RawFins SPS sollte FINS fähig sein (CQM1 ist es nicht ) Zusammenstellung der Befehlsketten und Auswerten der Antworten Abschalten der Fehlermeldungen durch die Comms1 Controlle Probleme mit der Typzuweisung bei Variablen in VBA Beschreibung wie man auf das Root Directory der Flashkarte zugreift fehlte in Handbüchern Wird die Display Komponente verwendet funktioniert die Hex -Umwandlung von VBA nicht mehr

3 FINS Befehlarten Befehl als String: Läßt sich durch Stringaddition sehr gut zusammensetzen, Daten müssen als String vorliegen oder gewandelt werden und bei großen Datenmengen schlechtere Zugriff auf die Daten ( es ist ein großer String ) Befehl als Array of Bytes : Jedes Byte muß extra Beschrieben werden ( aufwendig), Vorteile bei großen Datenmengen da sie als Byte mit Index vor- liegen. Wandlung der Daten in andere Formate ist einfacher.

4 Beispiel FINS Befehl als String
Dim Tag As String Dim Monat As String Dim Jahr As String Dim Sunden As String Dim Minuten As String Dim Sekunde As String Die Variablen mußten als String deklariert werden, weil sonst die String Funktionen (Left, Mid, Right) nicht richtig ausgeführt werden. VBA weißt den Variablen einen Standard Typen zu der passt. Beim Zusammensetzen des Strings gibt es dann Fehler. Der Wert wird z.B. in Integer gewandelt. Tag = Left(Date, 2) Monat = Mid(Date, 4, 2) Jahr = Right(Date, 2) Stunde = Left(Time, 2) Minuten = Mid(Time, 4, 2) Sekunden = Right(Time, 2) Fins_Befehl = "0702" + Jahr + Monat + Tag + Stunde + Minuten + Sekunden + "00" Fins_Antwort = Comms1.RawFINS(Fins_Befehl, "NeueSPS1", AsString) Label13.Caption = Fins_Antwort „0702“ ist der FINS Befehl zum SPS Uhr stellen Die Antwort kommt dann auch als String zurück und anhand der Stelle eines Zeichen muß man dann den Fehlercode usw ermitteln.

5 Beispiel FINS Befehl als Array of Bytes
Fins_Befehl(0) = &H22Rem Befehl zum Datei lesen Fins_Befehl(1) = &H2 Fins_Befehl(2) = &H80Rem von der Speicherkarte Fins_Befehl(3) = &H0 Fins_Befehl(4) = &H44Rem Dateiname "D" Fins_Befehl(5) = &H41Rem "A" Fins_Befehl(6) = &H54Rem "T" Fins_Befehl(7) = Monat_H Fins_Befehl(8) = Monat_L Fins_Befehl(9) = Jahr_H Fins_Befehl(10) = Jahr_L Fins_Befehl(11) = DateiteilRem Teil A,B,C,D,E,F Fins_Befehl(12) = &H2ERem "." Fins_Befehl(13) = &H54Rem "t" Fins_Befehl(14) = &H58Rem "x" Fins_Befehl(15) = &H54Rem "t" Fins_Befehl(16) = &H0 Fins_Befehl(17) = &H0 Fins_Befehl(18) = &H0 Fins_Befehl(19) = &H0 Fins_Befehl(20) = &HFFRem Daten länge = max 32000 Fins_Befehl(21) = &HFF Fins_Befehl(22) = &H0Rem "0" für Root Directory Fins_Befehl(23) = &H0Rem "0" für Root Directory Zusammenstellung des Befehls mit Hilfe eines Arrays. Ist bei großen Datenmengen hilfreich da auf den Inhalt über den Index zu- gegriffen wird(Verwendung von Schleifen). Dateiname auf der Flashkarte: DAT1102A.txt Teil des Monats, da ein Monat mehrere Dateien haben kann. 2 Byte mit jeweils 0 müssen angehängt werden für das Root Directory.

6 Beispiel FINS Befehl als Array of Bytes
Befehle senden und Auswerten was für ein Fehlercode kommt. Fehlercode 11 bedeutet das die Datei weniger Zeichen enthält als ich lesen will, sie wird trotzdem vollständig gelesen. Sonst muß vorher die Dateilänge ausgelesen werden, das wird aber mit Nummern gemacht und nicht dem Dateinamen. Somit muß man wissen an welcher Stelle die Datei steht (aufwendig). Ein weiterer Fehlercode ist Datei existiert nicht, in diesem Projekt ist das kein Fehler sonder die Abbruchbedingung für Dateien auslesen. Rem FINS Befehl zur SPS schicken Fins_Antwort = Comms1.RawFINS(Fins_Befehl, "NeueSPS1", AsArrayOfBytes) Rem überprüfen ob der Befehl richtig ausgeführt wird Fehlercode = Hex(Fins_Antwort(3)) If Fehlercode = 0 Or Fehlercode = 11 Then For Count = 14 To UBound(Fins_Antwort) Step 10 Fehlercode Auswertung Ubound gibt die Anzahl der Zeichen des Arrays FINS_Antwort wieder, da man nicht weiß wieviel Daten ausgelesen wurden.

7 Abschalten der Comms Fehler Meldungen
Eigenschaften der Comms1 Control nur im Design Mode verfügbar. Abschalten der Fehler ist nur über das Eigenschaftsfenster im VBA möglich. DisplayErrors von True auf False setzen.

8 Display wieder entfernen
Nur löschen der Komponente von der Seite reicht nicht, man muß unter Extras -> Verweise die Zuweisung löschen. Display Komponente Hier entfernen


Herunterladen ppt "OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :"

Ähnliche Präsentationen


Google-Anzeigen