Projekt

Allgemein

Profil

9050 DataFox Terminal » Historie » Revision 43

Revision 42 ([S] Dominik G, 10.04.2019 09:33) → Revision 43/76 ([S] Dominik G, 10.04.2019 09:53)

h1. DataFox Terminal 

 %{color:red}RFID per Standard in alle unsere config-Dateien als DEC eingestellt!% 

 h2. Gerät konfigurieren 

 * mit USB verbinden 
 ** Bios > Kommunikation > Schnittstelle > Usb 
 * Gerät: IP einrichten, Active Mode, Server-IP (bzw. Rechner wo DataFoxStudio läuft) 
 + ACHTUNG: das Gerät kann nur mit einer Software kommunizieren: entweder DataFox ODER Prodat-Dienst 
 + *Port/Firewall beachten!* *ACHTUNG IM GERÄT PORT OHNE FÜHRENDE 0!?* 
 * Gerätekonfiguration mit DataFox Studio laden (S\Prodat2005\DataFoxTerminal\config_2.8.aes _geht auch für 3.5_) 
 * Menu > Setup Bearbeiten 
 + Gerät richtig konfigurieren (Leser/RFID Chiptyp) >    ... Rechts Register "Transponder" 
 + Displaykonfiguration (Bilder) mit DataFox Studio einspielen ("Display-Designer" im Menu) 
 + Menupunkt "Schönhagen" ersetzen oder entfernen 
 * Setup in Gerät schreiben (ACHTUNG: *NICHT* Firmware, Setup) 

 _Beachte Abschnitt Tastenbelegung weiter unten_ 

 {{collapse(ScreenShot) 
 !02-12-_2016_14-55-26.png! 
 }} 

 h3. 1. Terminaleinstellungen: IP Adresse des Gerätes und des Servers 

 {{collapse(Aufklappen) 

 {{include(DataFoxTerminalSetupBios)}} 

 }} 

 h3. 2. IP-Adresse und Netzwerkeinstellungen per DatafoxStudio konfigurieren 

 {{collapse(Aufklappen) 

 *1. LAN-Konfiguration per USB* 
 * Ist das Terminal per USB angeschlossen, können LAN-Settings per DatafoxStudio editiert werden. 
 ** Menü 
 !datafox.lan.konfig1.png! 
 ** Auslesen und Zurückschreiben. Unter Allgemein muss LAN aktiviert sein. 
 !datafox.lan.konfig2.png! 

 *2. Detaillierte LAN- und Server-Konfiguration per USB* 
 * Ist das Terminal per USB angeschlossen, können Server-IP Server-IP, DNS-Server und DNS-Server LAN-Settings per DatafoxStudio im Detail editiert werden. 
 ** Probleme bei best. Netzwerken hiermit lösen: 
 ### Wenn führende Nullen in IP-Settings geschrieben werden und nicht per DNS aufgelöst werden können. 
 ### Wenn DNS-Server falsch eingestellt ist. 
 ** Menü: 
 !datafox.server.konfig1.png! 
 ** Auslesen und Zurückschreiben. 
 !datafox.server.konfig2.png! 
 ** Bearbeitung 
 !datafox.server.konfig3.png! 
 ### Active-Mode 
 ### Server-IP (Prodat-Server-IP bzw. bei Tests IP wo DatafoxStudio läuft) 
 ### DNS-Server (je nach Netzwerk eigene Maschine oder Gateway) 

 *3. Überprüfung der Verbindung* 
 * USB-Verbindung muss entfernt werden. 
 * In DatafoxStudio: *Kommunikation/Einstellungen/Active-Mode* warten wir bis das Programm Gerät findet 
 In dem Beispiel wurde ein Gerät mit *IP: 192.168.178.58* gefunden. 
 !http://redmine.prodat-sql.de/attachments/download/6023/AktuelleIP.png! 
 * Das Gerät in dem Fall als Server den Rechner mit DataFox Studio haben. Normal ist das auch der Apps. Dieser muss für die Einrichtung deaktiviert werden, das Gerät kann nur mit einer Software kommunizieren 
 }} 

 h3. 3. Tastenbelegung 

 {{collapse(Aufklappen) 
 <pre> 
 F1 - Defaultaste wenn Chip gelesen wird:  

   Anstempeln, wenn keine Präsenzzeit               
      -> Neu anmelden  

   Anstempeln, wenn unterbrochen mit 103 o. 110     
      -> Heute unterbrochen? -> Fortsetzen Präsenzzeit  
      -> Heute unterbrochen? -> Aufträge mit Ausfallgrund 110 (Pause) fortsetzen,  
                   (nur wenn 'AUTO_END_BDEA' aktiv ist, da sonst keine Unterbrechnung) 
      -> Älterer Eintrag?      -> Neue Präsenzzeit, Aufträge bleiben mit 110 unterbrochen -> Per Formular wieder aufnehmen 

   Anstempeln, Alle anderen Abwesenheiten    
      -> Anmelden, Aufträge nicht automatisch wieder aufnehmen 

   Abstempeln, mit 110 (Unterbrechung d. Terminal)           
      -> Wenn 'AUTO_END_BDEA' aktiv ist, Aufträge unterbrechen 


 F2 - Info mit Stundenkonto, Urlaub und RFID 

 F3 - Gehen mit Abwesenheitsgrund 
   Setting 'Abwesenheit Präsenzzeit ist Raucherpause' (BDE_RP) 
     -> Unterbrechen Präsenzzeit mit 103, Aufträge mit 110 
   Sonst  
     -> Auswahl des Abwesenheitsgrundes 
     -> Präsenzzeit beenden,  
     -> Eintrag in Mitarbeiterabwesenheiten 
     -> Aufträge, wenn AUTO_END_BDEA -> Aufträge beenden (ohne Grund, also richtig und nicht nur unterbrechen) 
      
   Nach Umstellen des Settings -> Terminalkonfiguration neu schreiben, Button wie in Abwesenheitsgründe 

 F4 - Pause 

 F5 - Raucherpause 

 F6 - Gehen mit Abwesenheitsgrund 111 
 </pre> 
 }} 

 h3. Apps 

 h2. Firewall 

 * Die Kummunikation zwischen Apps und Gerät zulassen (tcp 8000) 
 * Apps @ProdatSrvXE.exe@ in der Firewall freigeben, ggf. wenigstens @Port 8000@ 

 h2. ProdatSRV.ini 

 * In dieser Ini darf für @[RFIDSERVER] Host@ kein @localhost@ angegeben werden!! Immer eine IP!! 
 ** z.B.: Apps zu PRODAT-DEMO - {{collapse(Ini für Apps via PRODAT-DEMO) 
 <pre><code class="sql"> 
 [CONNECTION] 
 server=prodatDBIP 
 #server=localhost 
 #listenport=5431 
 database=PRODAT-DEMO 
 #database=SUNTEST 

 [DATASERVER] 
 StreamPort=2123 

 [SETTINGS] 
 BACKUPS=False 
 BACKUPPATH=E:\EXE\\BackUp\ 
 DailyDBFunc=False 
 BDEBedarfBestand=False 

 [WEBSERVER] 
 Path=C:\BIN\EXE\Help\ 
 Active=False 

 [RFIDSERVER] 
 Active=True 
 Host=192.168.178.110                 -- lokaler Laptop 
 #Host=192.168.178.61                 -- z.B. Wifi-IP Laptop  
 Mode=Active 
 </code></pre> 
 }} 

 h3. Links 

 * Getestete Gerätversionen 
 ** Datafox EVO 2.8 Zeiterfassungs- und Zutrittsterminal ("Gerätbeschreibung":http://www.datafox.de/datafox-evo-28-zeiterfassungs-und-zutrittsterminal.html) 
 ** Datafox EVO 4.3 Multifunktionsterminal ("Gerätbeschreibung":http://www.datafox.de/datafox-evo-43-multifunktionsterminal.html) 

 * DatafoxStudioIV ("Herunterladen":http://www.datafox.de/downloads-software-masteriv-hardwareversion-v4.html?file=tl_files/Datafox_Devices/Downloads_Geraete_Zubehoer/MasterIV-Software/Datafox_SDK_Windows.zip, "Seite":http://www.datafox.de/downloads-software-masteriv-hardwareversion-v4.html, "Konfigurationdateibeschreibung":http://www.prodat-sql.de/redmine/attachments/download/4232/Modify_DatafoxStudioFile_V2.2.pdf) 

 * Kommunikationsmodul DFComDLL.dll v4.3.3.9 ("DFComDLL.dll":http://www.prodat-sql.de/redmine/attachments/download/4231/DFComDLL.dll, "Beschreibung":http://www.prodat-sql.de/redmine/attachments/download/4233/Beschreibung_zum_Kommunikationsmodul_DFComDLL__V_13.11.2009.pdf, "DelphiUnit für die Arbeit mit dll":http://www.prodat-sql.de/redmine/attachments/download/4234/LinkSDFComDLL.pas, "Entwiklerdokumentation":http://www.prodat-sql.de/redmine/attachments/download/4235/DFComDLL_DE.zip) 

 * Zugehörige Tickets 
  - "BDE - Datafox Betriebszeiterfassung":http://www.prodat-sql.de/redmine/issues/5389 

 h3. DatafoxStudioIV 

 * Konfiguration laden, siehe SVN: @../PRODAT/ProdatSQL/Develop/Developversion/DataFoxTerminal/@ 
 (Beispiele: "Datafox EVO v2.8 Konfigdatei":http://www.prodat-sql.de/redmine/attachments/download/4266/Config_EVO_Line_2.8_.aes, "Datafox EVO v4.3 Konfigdatei":http://www.prodat-sql.de/redmine/attachments/download/4267/Config_EVO_Line_4.3_.aes) (Oder neu erstellen, siehe "Konfigurationdateibeschreibung":http://www.prodat-sql.de/redmine/attachments/download/4232/Modify_DatafoxStudioFile_V2.2.pdf) 
 ** Die zwei Konfiguration funktionieren schon, anpassen kann man in Menü [ *Setup/Bearbeiten* ] 
 ** Bilder kommen per zug. ini-Dateien. Bearbeiten per [ *Konfiguration/Display-Designer* ] 
 Relative Pfade nicht vorhanden, daher müssen alle Bilder aus Repository @../icons/@ geladen werden. 
 * Ins Gerät laden [ *Kommunikation/Setup schreiben* ] 
 * LAN/WLAN Konfigurieren(IP-Adresse und Port zu beachten) (Beispiele: "LAN/WLAN Konfiguration v4.3":http://www.prodat-sql.de/redmine/attachments/download/4270/lan_4.3.df0, "LAN/WLAN Konfiguration v2.8":http://www.prodat-sql.de/redmine/attachments/download/4271/lan_2.8.df0 [ *Kommunikation/LAN/WLAN Konfiguration* ] 
 * [ *Konfiguration/Systemvariablen Active-Mode* ] "Konfigdatei für ActiveVerbindung(für beite version gleich)":http://www.prodat-sql.de/redmine/attachments/download/4272/ActiveVerbindung.ini 
  - 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. 

 h3. 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 

 h1. DFComDLL Log konfigurieren 

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

 <pre> 
 [Log] 
 Enable=1 
 Path=E:\\ProdatERP\\Prodat\\ 
 Folder=DFComLog 
 Trace=0 
 Erase=1 
 Keep=3 
 Elapse=1 
 List=0 
 </pre> 

 *[FS:]* 
 Eventuell in Path den absoluten Pfad angeben und dabei alle @\@ doppelt schreiben, also Path=D:\\ProdatTemp. 
 Ich vermute mal ganz spekulativ, dass 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. 

 h1. Terminalverbindung im Prodat konfigurieren 

 In der Datei *ProdatSRV.ini*, Section *[RFIDSERVER]* 
 <pre> 
 [RFIDSERVER] 
 Active=True     ;Terminal ein/ausschalten 

 ;für Active-Modus---------------------------------------  
 Mode=Active 
 Host=192.168.178.29 
 Port=8000 
 Timeout=3000 

 ;für USB Modus------------------------------------------ 
 Mode=USB 
 COMPort=6       ;Wenn ChannelNum nicht stimmt, schauen nach Geräte-Manager/Anschlüsse (COM & LPT)/Datafox Virtual COM Port (COM?) 
 Timeout=600 
 </pre> 

 *Defaultvalues:* 
 <pre><code class="delphi"> 
   Host         := DM1.Configuration['RFIDSERVER', 'Host'];     //ServerIP 
   Port         := DM1.Configuration['RFIDSERVER', 'Port',      8000]; 
   Timeout      := DM1.Configuration['RFIDSERVER', 'Timeout', 3000]; 
   Mode         := DM1.Configuration['RFIDSERVER', 'Mode',      'Active']; 
   ChannelNum := DM1.Configuration['RFIDSERVER', 'COMPort', 6]; 
 </code></pre> 

 --- 

 h1. Processablauf 

 !http://www.gliffy.com/go/publish/image/9921503/M.png! 
 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 

 * Neue Funktionen: 
 ** *CimDM_SysDataServer.FunctionMethods.IsTerminalConnected* - Wenn Service mit Terminal verbundet ist. 
 ** *CimDM_SysDataServer.FunctionMethods.DoUpdateAbwesenheitsgrundListe()* - setzt *DoUpdateAbw* flag, dass Abwesenheitsgrundliste aktualisiert werden soll 

 * Abwesenheitsgrundlistesynchronisation 
 ** in Modul *UBDEAbw* Toolbutton *Abwesenheitsgrundliste aktualisieren* 
 ** Bei Buttonclick: wenn *IsTerminalConnected* und Setting _Abwesenheit Präsenzzeit ist Raucherpause_ @BDE_RP@ nicht gesetzt ist -> *DoUpdateAbwesenheitsgrundListe* 
 ** In Arbeitsschleife wird jede 15 Sekunden nach Verbindung geprüft und bei Verbindung wenn *DoUpdateAbw* gesetzt ist Abwesenheitsgrundliste synchronisien wird 

 * 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