Projekt

Allgemein

Profil

Aktionen

9050 DataFox Terminal » Historie » Revision 9

« Zurück | Revision 9/76 (diff) | Weiter »
[E] Andre K, 30.03.2016 15:06


DataFox Terminal

1. Links

2. DatafoxStudioIV

  • Konfiguration laden(Beispiele: Datafox EVO v2.8 Konfigdatei, Datafox EVO v4.3 Konfigdatei) (Oder neu erstellen, siehe Konfigurationdateibeschreibung)
  • Die zwei Konfiguration funktionieren schon, anpassen kann man in Menü [ Setup/Bearbeiten ]
  • Ins Gerät laden [ Kommunikation/Setup schreiben ]
  • LAN/WLAN Konfigurieren(IP-Adresse und Port zu beachten) (Beispiele: LAN/WLAN Konfiguration v4.3, LAN/WLAN Konfiguration v2.8 [ Kommunikation/LAN/WLAN Konfiguration ]
  • [ Konfiguration/Systemvariablen Active-Mode ] Konfigdatei für ActiveVerbindung
    - Konfiguration/Systemvariablen Active-Mode/Bearbeiten
    - Variable "HOST" mit dem IP des App-Servers anpassen.
    - Dann "Speichern" und "In Gerät schreiben"
  • Unter Menü [ Kommunikation/Einstellungen/Active-Mode/Aktuelle Verbindungen ], wenn alles richtig konfiguriert ist, wird das Gerät gefunden und angezeigt
    - daneben in "Verbindungen" muss man die gefundene Verbindung auswählen, damit wir unsere Einstellungen ins Gerät schreiben können.
  • Wenn alles richtig konfiguriert ist, sehen wir gefundene Active-Verbundung unter [ Kommunikation/Einstellungen/Active-Mode/Aktuelle Verbindungen ]
  • DatafoxStudio schließen, sonnst kann Server das Gerät nicht finden (weil gleichzeitig nur eine Active-Verbundung möglich ist).
    - Genau so wenn wir im DatafoxStudio arbeiten, muss man Prodatdienst deaktivieren, sonnst findet DatafoxStudio das Gerät nicht.

3. Demo-Projekte

  • Demo-Projekt von Datafox für "Daten lesen" vom Gerät ( Tools und TestprojekteDatafoxLoadData )
    - Aufwählen: Kommunikationsart - "RS232", Schnittstelle - "COM6"
  • Testprogramm "DatafoxUSBConnector" ( Tools und Testprojektedatafox USBConnector )
    - Kriegt ständig alle neue Datensetze vom Gerät
  • TestProgramm "DatafoxActiveModeConnector" ( Tools und TestprojekteDatafoxActiveModeConnector )
    - Beispiel wie kann man in Active-Mode mit dem Gerät kommunizieren

DFComDLL Log konfigurieren

Die Konfigdatei DFCom.ini im Prodatverzeichnis, neben der DFComDLL.dll:

[Log]
Enable=1
Path=.\\Temp\\
Folder=Log
Trace=0
Erase=1
Keep=3
Elapse=1
List=0

[FS:]
Eventuell in Path den absoluten Pfad angeben und dabei alle doppelt schreiben, also Path=D:\\ProdatTemp.
Ich vermute mal ganz spekulativ, daß die intern den Pfad nicht auflösen und wirklich relativ arbeiten.
Theoretisch könnte das gut gehn, aber wer weiß ob das Arbeitsverzeichnis im Apps wirklich unveränderlich dem Programmverzeichnis entspricht.

Enable = Logging aktiv (0 oder 1)
Path+Folder = das Verzeichnis für die Logdateien (YYYY_MM_DD_DFComDLL_channelID.log)
Standardmäßig wären es (laut Beschreibung) Path=.\ und Folder=DFComLog, wobei das .\ doch eigentlich .\\ sein müsste.
Keep = Anzahl der Tage bis gelöscht wird
Bei Keep=5 und List=1 (Datenpakete mit loggen) sollen das angeblich 300 MB werden.

Terminalverbindung im Prodat konfigurieren

In der Datei ProdatSRV.ini, Section [RFIDSERVER]

[RFIDSERVER]
Active=True
Host=192.168.178.25
Port=...
Timeout=...

Defaultvalues:

  Host     := DM1.Configuration['RFIDSERVER', 'Host']; //ServerIP
  Port     := DM1.Configuration['RFIDSERVER', 'Port',    8000];
  Timeout  := DM1.Configuration['RFIDSERVER', 'Timeout', 3000];


Processablauf


http://www.gliffy.com/go/publish/9921503

  • bei Dienststart
    • Nach einem aktiven Kanal wird gesucht (Fehler werden geloggt)
    • bei Erfolg wird das Gerät durch 3 kurze Töne signalisiert (Active-Verbindung erstellt)
    • Datensatzbeschreibungen werden gelesen
    • Zeitsynchronisation beim Start
    • wenn es im Gerät gespeicherte DS gibt, die werden gelesen
      • Info-DS werden ignoriert
      • Stempeln-DS werden mit Zeit von Gerät(die beim Stempeln gespeichert wurde) übernommen
    • Hauptschleife
      • Zeitsynchronisation
        • täglich um 00:05
        • am letzten Sonntag im März um 03:05 (Umstellung von Normalzeit auf Sommerzeit)
        • am letzten Sonntag im Oktober um 02:05 (Umstellung von Sommerzeit auf Normalzeit)
      • Info-DS werden angezeigt
      • Stempeln-DS werden mit current_date vom Server gespeichert
      • bei Verbindungfehler wird versucht die Verbindung neu aufzubauen
  • Wenn BoolSetting 'AUTO_END_BDEA' ('beenden Präsenzzeit beendet Auftragszeitstempelungen') eingecheckt ist:
    • bei Abstempeln werden auch alle Stempelungen (mit Abwesenheitsgrund 'Unterbrechung durch Terminal') abgestempelt
    • bei Anstempeln werden alle 'Alle Aufträge, die (HEUTE - bei dem Mitarbeiter - durch Terminal) unterbrochen wurde, wieder angestempelt
Predefined / Vorgaben
  • Eigener Produktionsausfallgrund, analog Raucherpause zum Kennzeichnen der Stempelungen
  • INSERT INTO bdeausgruende (aus_id, aus_txt) VALUES (110, 'Unterbrechung durch Terminal');
Trigger
  • bdea_do_maschausf und bdea_do_maschausf_ins
  • Sonderbehandlung Ausfallgrund: Raucherpausen und Unterbrechung durch RFID-Terminal sind keine Maschinenausfälle
  • Geht also nicht in Tabelle maschausf, wenn Auftragszeit mit einem dieser Gründe unterbrochen wird.
Systemeinstellungen, Präsenzzeit
  • Beenden Präsenzzeit beendet Auftragszeitstempelungen
  • AutoEndBDEA:=GetBoolSetting('AUTO_END_BDEA')
Application Server - TProdatSrvXEService.BackgroundThread_BDE
  • Procedure GetNewData(MsgI:Integer) - Einlesen von Terminalstempelungen.

Ablauf Application Server:

  • Ist Mitarbeiter anwesend (Über RFID <-> Mit.Nr.)
    • Abstempeln Präsenzzeit, bdep-Datensatz updaten
    • Wenn 'AUTO_END_BDEA' aktiv ist, alle Aufträge des Mitarbeiters mit Abwesenheitsgrund 'Unterbrechung durch Terminal' abgestempelt
  • Ist Mitarbeiter nicht anwesend
    • Anstempeln Präsenzzeit, neuer bdep-Datensatz
    • => Alle Aufträge, die HEUTE bei DIESEM Mitarbeiter und DURCH TERMINAL unterbrochen wurden, wieder anstempeln
    • Dabei werden die unterbrochenen bdea-Datensätze beendet und ein neuer bdea-Datensatz angelegt
Ablauf BDE-Stempeln Modul
  • Mitarbeiter stempelt zum kommen
    • Anzeigen aller unterbrochenenen Aufträge des Mitarbeiters
    • Wenn Ausfallgrund 110 => Rückfrage: Durch Terminal unterbrochene Aufträge erneut anstempeln?
    • => Alle Aufträge, die HEUTE bei DIESEM Mitarbeiter und DURCH TERMINAL unterbrochen wurden, wieder anstempeln

Von [E] Andre K vor mehr als 8 Jahren aktualisiert · 9 Revisionen