RFID Lese-System für wenig Knete

Hallo zusammen,
eine Frage hätte ich noch zu dem Projekt.
Was genau ist das für eine Kabelverbindung an dem USB RS232 wandler?
Handelt es sich dabei jediglich um die 5V Spannungsversorgung?

Gruß Kiste

Die 2 Adern meinst Du?

Das ist der Abgriff von der USB-Buchse, die Spannungsversorgung für das RFID-System

Gruß Helmut

Hallo zusammen,
wollten heute dann mal endlich meinen RFID Leser in Betrieb nehmen.
Nun frag ich mich wie genau die Antenne an den RS232 TTL Wandler angeschlossen wird.

Gruß Kiste

blau Versorgungsspannung 0V (GND)
rot Versorgungsspannung 3.3 – 5 V (VCC)
gelb serieller Datenausgang

Und dann ist bei RX und TX die Auswahl, sind Pfeile dran, 50 % Chance auf Erfolg :wink:

Gruß Helmut

Dann hätten wir das mit der Antenne ja auch geklärt.

Die Hardware des Lesers scheint nun zu funktionieren:
Wenn man einen Transponder auf den Leser legt und Bei der Com-Schnittstelle auf „Debug“ geht sieht man dass was empfangen wird.

Das Skript zur Abfrage des Transponders funktioniert aber nicht wie erwartet:

<?php

$IRF_leser = RegVar_GetBuffer($_IPS[‚INSTANCE‘]);
/* Hier kommt schon nichts raus. $_IPS[‚INSTANCE‘] enthält die ID der Register-VAriable die ich angelegt habe.
$IRF_leser ist aber leer.
*/
?>

Logisch dass die Variable leer ist, er liest ja das aus, was man hier im Screenshot unter „Wert“ sieht
Muss man bei dem Com-Port noch irgendwelche Ereignisse konfigurieren, damit die REgister-Variable gefüllt wird?

Hast Du die RegVar auf die Com Schnittstelle verlinkt?

Sent from my iPhone using Tapatalk

Hallo,
ja die Variable ist mit dem Com Port Verknüpft.

Script1:

<?php
/*
IP-SYMCON Event Scripting


File : Com_Port_eingang.ips.php
Trigger : On Update IRF_Leser
Interval :
*/

echo „RFID: Start“;

if ($_IPS[‚SENDER‘] == „RegisterVariable“)
{
$IRF_leser = RegVar_GetBuffer($_IPS[‚INSTANCE‘]);
echo „RFID: IPS[‚INSTANCE‘]:“ . $_IPS[‚INSTANCE‘];
echo „RFID: IRF_leser:“ . $IRF_leser;
$IRF = pack(‚H*‘, $IRF_leser); // 0xA1B2C3D4F5 // 5 chars/bytes.
SetValueString(28353 /[Sicherheit\RFID\RFID Leser Inhalt]/, $IRF);
$eins = strlen($IRF);
echo „RFID: IRF:“ . $IRF;
$o = „“;
for( $i=0; $i<$eins; $i++)
{
$o .= bin2hex( substr($IRF,$i,1))."";
}
echo " RFID-Karte Nr.: ";
echo $o;

$Zulass2 = ‚‘;

$Zulass1=getvaluestring(35439 /[Sicherheit\RFID\Berechtigung 1]/);
//$Zulass2=getvaluestring(12345 /[Bereiche\Flure\Deckenleuchte Luftraum\Zustand]/);

If (($Zulass1 == $IRF)) {

     Echo " , Person 1 ist erkannt, Türöffner gestartet,";
     //setValueBoolean(12345 /*[Bereiche\Flure\Deckenleuchte Luftraum\Zustand]*/,true);
     ips_sleep(1000);
     //setValueBoolean(12345 /*[Bereiche\Flure\Deckenleuchte Luftraum\Zustand]*/,false);
     Echo " Türöffner gestoppt.";

} else {

   Echo "Es war nicht Person 1";
   setValueBoolean(12345 /*[Bereiche\Flure\Deckenleuchte Luftraum\Zustand]*/,false);

}
If (($Zulass2 == $IRF)) {

/*
Echo " , Person 2 ist erkannt, Türöffner gestartet,";
setValueBoolean(12345 /[Bereiche\Flure\Deckenleuchte Luftraum\Zustand]/ ,true);
ips_sleep(1000);
setValueBoolean(12345 /[Bereiche\Flure\Deckenleuchte Luftraum\Zustand]/ ,false);
Echo " Türöffner gestoppt.";
*/
} else {

   Echo "Es war nicht Person 2";
   //setValueBoolean(12345 /*[Bereiche\Flure\Deckenleuchte Luftraum\Zustand]*/,false);

}

}
?>



Debug Register Variable.JPG

Kannst Du in dem Tread vorher noch Dein RFID Script 1 abbilden?
Wenn im Debug was drinsteht, dann muß da was sein, wieviele Zeichen in Hex sind da?

Gruß Helmut

Hallo Helmut,
Hab das Script jetzt dem letzten Post hinzugefügt.

Hat was mit der Hex zu String oder String zu Hex zu tun, hab’ nur keinen Leser mehr.

Was bekommst Du in Hex aus dem Leser, darfst auch die Zeichen verändern, wegen Datenschutz :wink:

Oder sind es reine String Daten, ich weiß es nicht mehr, könntest Du auch mit einem Terminalprg erlesen, Hterm oä.

Gruß Helmut

Hallo zusammen,

ich möchte auch gerade den beschriebenen RFID-Leser in Betrieb nehmen.
Anschluss ist erfolgreich:

Daten kommen auf dem Seriellen Port an
Daten kommen auch auf dem Cutter an (welcher auf dem Seriellen Port geschaltet ist)

jetzt kommt mein Problem (welches sich auch nach mehrfachen Recherchen im Forum & Doku nicht lösen lässt):

die Registervariable wird nur aktualisiert und starte das Zielskript an, wenn es direkt auf dem Comport hängt,
wenn die Registervariable auf dem Cutter hängt, dann springt die Registervariable nicht an. (Daten kommen aber im Cutter an …)

Habe ich doch noch einen Denkfehler drin? (ich habe schon mehrfach die Instanzen neu angelegt und verknüpft, aber immer mit dem gleich Effekt: Registervariable funktioniert nur direkt auf ComPort und nicht auf dem Cutter …:frowning: )

vielen Dank für anregende Ideen

Tilo

Es gibt bei IPS V3,3 einen andere Syntax für die Comport Abfrage und

Die $data Variable wird durch
$IRF_leser = $_IPS[‚VALUE‘];
und nicht durch
$IRF_leser = RegVar_GetBuffer($_IPS[‚INSTANCE‘]);
geholt.
Versuch’ mal.

Gruß Helmut
PS Ist im Script geändert.

Hallo Helmut,

leider bleibt mein Problem - die Registervariable springt nur an an, wenn sie direkt auf dem Comport zeigt. So bald ich die Registervariable auf den Cutter hänge, springt die Registervariable nicht an.

Daten kommen aber im Cutter sauber an (lt. Debug-Fenster)?

irgendwie komisch … :confused:

Tilo

Steht im Debug auch das die Daten weitergegeben wurden ?
Wenn nein, hast du den Cutter wohl falsch konfiguriert oder einen Bug gefunden. Hatten wir da nicht gerade was ? Finde den Thread grad nicht :frowning:
Michael

Hallo Michael,

Steht im Debug auch das die Daten weitergegeben wurden ?

Daten weitergeben wurden - wie erkenne ich das …? :confused:

anbei der Debug-Auszug vom Cutter:

17.01.2015 20:37:52.00 |        Received Data | 01 
17.01.2015 20:37:52.00 |        CURRENTBUFFER | 01 
17.01.2015 20:37:52.00 |        Received Data | 38 
17.01.2015 20:37:52.00 |        CURRENTBUFFER | 01 38 
17.01.2015 20:37:52.00 |        Received Data | 02 
17.01.2015 20:37:52.00 |        CURRENTBUFFER | 01 38 02 
17.01.2015 20:37:52.00 |        Received Data | F5 
17.01.2015 20:37:52.00 |        CURRENTBUFFER | 01 38 02 F5 
17.01.2015 20:37:53.00 |        Received Data | C3 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 02 F5 C3 
17.01.2015 20:37:53.00 |        Received Data | 01 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 
17.01.2015 20:37:53.00 |        Received Data | 38 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 
17.01.2015 20:37:53.00 |        Received Data | 02 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 02 
17.01.2015 20:37:53.00 |        Received Data | F5 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 02 F5 
17.01.2015 20:37:53.00 |        Received Data | C3 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 02 F5 C3 
17.01.2015 20:37:53.00 |        Received Data | 01 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 
17.01.2015 20:37:53.00 |        Received Data | 38 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 
17.01.2015 20:37:53.00 |        Received Data | 02 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 02 
17.01.2015 20:37:53.00 |        Received Data | F5 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 02 F5 
17.01.2015 20:37:53.00 |        Received Data | C3 
17.01.2015 20:37:53.00 |        CURRENTBUFFER | 01 38 02 F5 C3 

Danke
Tilo

Wie jetzt? Klär mich mal auf…
Muss ich, wenn ich auf 3.3 umsteige den ganzen Haufen von Scripten durchforsten, die teilweise auch noch seh lang sind, und alles umschreiben?
Nee, nich wirklich oder?

Musst du nicht.
Entweder (wenn nicht ab Werk schon drin) in der __compatibility.inc.php selber die Alte auf den neue Funktion wrappen . Oder einfach über die Konsole oder externe Programme mit suche in allen Scripten/Dateien.
Hättest du schon immer RegVar_Send genutzt, würdest du gar nix andern müssen.
Michael

Ich muß mir mal so’n Teil wieder bestellen, da muß im Cutter Debug "Chunk irgendwas " stehen …

Gib doch mal ein paar Zeichen aus dem bekannten RFID-String als rechter oder linker Begrenzer im Cutter vor.

Nur mal um zu sehen, ob dann was kommt. Oder eine andere Quelle für Daten einer ser. Schnittstelle von Hterm oder so.

Gruß Helmut

Hallo Helmut,

Gib doch mal ein paar Zeichen aus dem bekannten RFID-String als rechter oder linker Begrenzer im Cutter vor.

also - dann funktioniert es. Dann springt die Registervariable sauber an.
D.h. da ist ein Wurm (oder Bug) im Cutter drin, dass er auf feste Länge (siehe Dein erster Post) nicht reagiert …:confused:

soll ich eine Bugmeldung machen?

Danke für Deinen Support

Tilo

Kann mich täuschen, aber braucht es nicht bei fester Länge auch ein Sync-Zeichen ?
Michael