IPSEDIP - Ansteuerung von Edip Displays

Leider funktioniert es immer noch nicht, das Display zeigt weiterhin den Demomodus an. Ich habe mal aufgezeichnet, wie ich das Display angeschlossen habe.

Da stimmt doch bestimmt wieder was nicht? :confused:

Hi,

das Displa muß/sollte auf 115200 baud laufen.

Standard einstellung. Das wird auch von IPSEDIP so genutzt.

Wenn Du das Display auf 9600 umstellst, hast Du auch in IPS die Instance angepasst?

Der Bildschirmaufbau dauert dann ewig.

Gruß
André

Ich hatte die Instanz auch auf 9600 gesetzt. Aber am Display hat sich überhaupt nichts getan. Auch wenn es langsam ist, sollte sich der Demomodus doch abschalten, oder wie verhält sich das?

Ist denn mein Seriell USB Adapter richtig angeschlossen?

Da gibt es insgesammt 4 Anschlüsse:

  1. T-/A
  2. T+/B
  3. R+
  4. R-
  5. GND
  6. 9V

Ich gehe vom EDIP auf T-/A und auf R- … ist das korrekt, was ist mit T+ und R+?

Viele Grüße
Holger

Hi,

von der Anschlußbeschreibung hast Du einen USB Adapter mit RS485 Schnittstelle.

Wenn Du das Nackte Original eDIP hast, benötigst Du einen USB Adapter mit TTL Pegel.
Also keinen mit RS232 oder RS485 Pegel.
Alles ist seriell. Nur die Spannungspegel sind unterschiedlich und dadurch kommt keine Kommunikation zustande.
Du kannst dadurch Komponenten zerstören.
z.B. TTL 5V, RS232 12V, RS485 1-2V.

Wenn Du Deinen Adapter nutzen möchtest, benötigst Du einen Wandler von RS485 auf TTL. Dieser kommt dann direkt an das eDIP. eDIP kann von Haus aus nur TTL. Alle anderen Schnittstellen benötigen einen Adapter.

In Deiner jetzigen Konstellation geht es nicht.

Gruß
André

Ok jetzt habe ich es verstanden :o Danke.

Kannst Du da einen RS232-USB TTL Adapter empfehlen?

Dieser Adapter sollte doch passen?

USB RS232 TTL-Konverter USB Adapter USB stecker RS232 Adapter

Such mal bei ELV nach Mini-USB-Modul UM2102

USB->TTL

Hallo Leute,

ich oute mich hiermit vermutlich als ziemlicher „Simple“ aber ich komme seit Tagen nicht weiter.

Ich habe es geschafft die IPS Library mit folgendem Script zu installieren:

<?

  IPSUtils_Include ("IPSModuleManager.class.php",
                    "IPSLibrary::install::IPSModuleManager");
  InstallModule('IPSLogger');
  InstallModule('IPSComponent');
  InstallModule('IPSEDIP');
 
  function InstallModule($module, $configFile='', $configNamespace='') {
    $moduleManager = new IPSModuleManager($module);
    $moduleManager->LoadModule();
    if ($configFile <> '') {
      $fileHandler = new IPSFileHandler();
      $fileHandler->CreateFileFromExample($configFile,
                        str_replace('Demo', '',$configFile), $configNamespace);
    }

    $moduleManager->InstallModule(true);
  }
?>

Damit wird dann die Ordner Struktur angelegt.

Nun geht es an die Config des IPSEDIP (falls ich nix übersehen habe). Dazu habe ich in die File

./Program/IPSLibrary/config/hardware/IPSEDIP/IPSEDIP_Configuration

folgenden Inhalt gepackt:

$EDIP_CONFIGURATION = array(
        EDIP_CONFIG_NR1 => array(
          EDIP_CONFIG_NAME              => 'eDIP',
          EDIP_CONFIG_REGISTER          => 43478 ,
          EDIP_CONFIG_COMPORT           => '3',
          EDIP_CONFIG_ROOT              => 0,
          EDIP_CONFIG_REFRESHMETHOD     => EDIP_REFRESHMETHOD _NONE,
          EDIP_CONFIG_CLASSNAME         => EDIP_CLASSNAME_EDIP43));

So. Und nun hänge ich. Die ID „43478“ ist meine Register Variable für das eDIP. Die „3“ bei Comport habe ich gesetzt, weil mein xbee gateway an COM3 hängt. Passt das so?

Was muss ich nun genau machen, damit mein eDIP irgendwas anzeigt? Was sind die nächsten Schritte?

Ich finde die Doku der IPS Library sehr schick, wenn man programmieren will usw. Aber als blutiger Anfänger versteht man erstmal absolut GAR nix. Ich will daher - sobald ich herausgefunden habe wie es genau funktioniert - hierzu eine Anleitung für Dummies wie mich schreiben. Wäre daher super, wenn ihr mir etwas unter die Arme greifen könntet. Ich verzweifle leider an dem Tool :wink:

Hi,

das Wichtigste ist der Eintrag für die Register Variable, der Comport ist optional und legt gegebenenfalls die Instanz für die serielle Schnittstelle an. Da die Register Variable aber ohnehin benötigt wird, bringt die Angabe des Comport eigentlich nichts (ich hatte ursprünglich geplant, dass man nur den Seriellen Port angeben muss).

Die richtige Vorgehensweise sollte also sein:

[ul]
[li]Anlegen der Register Variable
[/li][li]Anlegen der IO Instanz (Eingabe des Comports + Baudrate)
[/li][li]Empfangsscript für RegisterVariable=IPSEDIP_Receive.ips.php
[/li][li]Register Variable in Konfiguration eintragen
[/li][li]Installation starten
[/li][/ul]

Durch Angabe der EDIP Instanz ID kann man ein EDIP Objekt instanzieren und die Anzeige aktualisieren:


   IPSUtils_Include ("IPSEDIP.class.php", "IPSLibrary::app::hardware::IPSEDIP");
   IPSUtils_Include ("IPSEDIP_TFT43A.class.php", "IPSLibrary::app::hardware::IPSEDIP");
	$edip = new IPSEDIP_TFT43A(12345);
	$edip->RefreshDisplay();

Alle angeschlossen EDIP Display kann man mit folgendem Script aktualisieren:


   IPSUtils_Include ("IPSEDIP.class.php", "IPSLibrary::app::hardware::IPSEDIP");
   IPSUtils_Include ("IPSEDIP_TFT43A.class.php", "IPSLibrary::app::hardware::IPSEDIP");
	$edipFolder = IPSUtil_ObjectIDByPath('Program.IPSLibrary.data.hardware.IPSEDIP');
	$edipIds = IPS_GetChildrenIDs($edipFolder);
	foreach ($edipIds as $edipId) {
		$edip = new IPSEDIP_TFT43A($edipId);
		$edip->RefreshDisplay();
	}

Wohin muss denn das Install Script gelegt werden?

Ich tue mich noch schwer damit zu verstehen wo welche File liegen muss.

Ich bekomme folgende Fehler:

Warning:  Objekt mit Ident ROOT_ID wurde nicht gefunden in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 91

Warning:  Variable #0 existiert nicht in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 91

Warning:  Objekt mit Ident CURRENT_ID wurde nicht gefunden in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 92

Warning:  Variable #0 existiert nicht in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 92

Warning:  Objekt mit Ident REGISTER_ID wurde nicht gefunden in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 93

Warning:  Variable #0 existiert nicht in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 93

Warning:  Objekt mit Ident OBJECT_IDS wurde nicht gefunden in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 94

Warning:  Objekt mit Ident OBJECT_VALUES wurde nicht gefunden in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 95

Warning:  Objekt mit Ident OBJECT_CMDS wurde nicht gefunden in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 96

Warning:  Objekt mit Ident OBJECT_EDIT wurde nicht gefunden in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 97
Found Category WebFront Configurator
Found Category Hardware
Found Category xbee
Found Category Program
Found Category Event Handler
Found Script Module_Install
Found Script test
Found Script install
Found Category Utils Handler
Found Category Test
Found Category eDIP
Found Script Base_install
Found Category eDIP
Found Category XBee Gateway
Found Category Visualization
Found Category Archive Handler

Warning:  Variable #0 existiert nicht in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 159

Warning:  Variable #0 existiert nicht in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 160

Warning:  Variable #0 existiert nicht in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 161

Warning:  Variable #0 existiert nicht in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP_TFT43A.class.php on line 170

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Warning:  regvar_sendtext: Instance #0 not found! in C:\IP-Symcon\scripts\IPSLibrary\app\hardware\IPSEDIP\IPSEDIP.class.php on line 588

Und wie startet mann denn die „Installation“? Sorry wenn ich mich hier etwas blöd anstelle … ich komme mit PHP soweit klar aber die IPSLibrary ist für einen Anfänger in dem Thema schon relativ komplex … :frowning:

Installation für IPSEDIP mit folgendem Code:


	IPSUtils_Include ("IPSModuleManager.class.php", "IPSLibrary::install::IPSModuleManager");
	$moduleManager = new IPSModuleManager('IPSEDIP');
	$moduleManager->InstallModule();

Ist eigentlich eh immer derselbe Ablauf - einfach den Namen des entsprechenden Modul beim ModuleManager angeben + Installation (siehe auch IPSLibrary

Hoffe, dass das in Zukunft noch einfacher wird …

negativ. Ich komm hier einfach nicht weiter. Wo packe ich denn die Code-Schnippsel hin? In ein neues Script? Muss in das Script sonst noch was rein? Wohin lege ich das Script? Ein bestimmtes „Verzeichnis“ in der IPS Struktur oder egal wohin?

Mein eDIP zeigt jedenfalls nix an. Wenn ich manuell über IPS einige Befehle hinschicke, zeigt das eDIP ganz normal den text an, den ich verschicke. Die Kommunikation IPS <-> eDIP tut also problemlos.

Ich bin scheinbar zu doof :frowning:

Einfach irgendwo ein Script anlegen, Code rein kopieren und ausführen

Hallo,

erstmal ein großes Lob und Danke an Andreas für die tolle „Arbeit“ die er leistet :).

Ich habe heute versucht den eDip mit IPSEDIP zu verbinden, aber irgendwie klappt es nicht so richtig.

  • RegVar mit virtuellem Comport 3 angelegt.

  • Geschwindigkeit korrekt eingestellt (112500)

  • Mit einem RegVar_SendText ein #DS gesendet und das Display hat sich erwartungsgemäß geändert.

  • Das „IPSEDIP“ Modul geladen ([snip]$moduleManager->LoadModule(); )

  • Dann unter /Program/IPSLibrary/config/hardware/IPSEDIP/IPSEDIP_Configuration folgenden Aufbau.

	$EDIP_CONFIGURATION = array
	(
		EDIP_CONFIG_NR1 => array
		(
			EDIP_CONFIG_NAME              => 'Test',
         EDIP_CONFIG_REGISTER          => 17534 /*[Program\eDip]*/,
         EDIP_CONFIG_COMPORT           => '',
         EDIP_CONFIG_ROOT              => 0,
         EDIP_CONFIG_REFRESHMETHOD     => EDIP_REFRESHMETHOD_NONE,
         EDIP_CONFIG_CLASSNAME         => EDIP_CLASSNAME_EDIP43
		)
	);


	function IPSEDIP_GetConfiguration() {
		return array();
	}

  • Das „IPSEDIP“ Modul installiert ([snip]$moduleManager->InstallModule():wink:

IPSModuleManager-Log-IPSFileVersionHandle2012-05-06 01:28:21.50 Set Version IPSEDIP=2.50.1…Installing
IPSModuleManager-Log-IPSFileVersionHandle2012-05-06 01:28:21.52 Set Version IPSEDIP=2.50.1

Aber es werden keine weiteren Variablen angelegt, bzw. keine Dummy Instanzen unterhalb /Hardware/EDIP und /Program/IPSLibrary/data/hardware/IPSEDIP ist alles leer :confused:.

Wo könnte denn mein Denkfehler liegen?

Danke, Gruß & gute Nacht
Thorsten

Hi,

das configarray muss in die funktion. dann nochmal installieren. Hatte den gleichen Fehler :slight_smile:

Hallo,

das hatte ich auch schon versucht, aber offensichtlich falsch :rolleyes:.
Hat mal jemand ein Beispiel wie die Funktion inklusive Config aussehen muss?

Danke & Gruß
Thorsten

Auch wenn ich es in die Funktion packe (in verschiedenen Variationen), kommen entweder Syntax Fehler oder die folgenden 2 Zeilen an Output.

IPSModuleManager-Log-IPSFileVersionHandle2012-05-06 15:15:55.51 Set Version IPSEDIP=2.50.1…Installing
IPSModuleManager-Log-IPSFileVersionHandle2012-05-06 15:15:55.56 Set Version IPSEDIP=2.50.1

Aber es werden keine Variablen, etc. bezüglich des konfigurierten eDip angelegt.

Ich verstehe es nicht.
Dabei klingt es laut Doku doch so einfach :o.

Gruß
Thorsten

Hallo thorsten9,

Dein ConfigFile muß so aussehen:


	function IPSEDIP_GetConfiguration() {
		return array(
         EDIP_CONFIG_NR1 => array(
         EDIP_CONFIG_NAME                => 'Test',
         EDIP_CONFIG_REGISTER          => xxxxx,
         EDIP_CONFIG_COMPORT          => 'COM3',
         EDIP_CONFIG_ROOT                => 'Visualization.IPSEDIP.Test',   
         EDIP_CONFIG_REFRESHMETHOD => EDIP_REFRESHMETHOD_BOTH,
         EDIP_CONFIG_CLASSNAME        => EDIP_CLASSNAME_EDIP43),

		);
	}

Wenn Du das xxxxx durch ‚‘ (2x ') ersetzt, wird automatisch die Registervariable und Comport angelegt.
WICHTIG Nach der Installation: Per HAND die echte InstanzID der RegVar eintragen.
Falls Du es schon angelegt hast, muß hier die InstanzID der RegVar rein.

Jetzt installieren.

In Visualization.IPSEDIP.Test kannst Du dann Deine Variablen und Kategorien verlinken.

P.S.: Mit EDIP_REFRESHMETHOD_NONE aus Deinem obigen Beitrag wird nie was auf das Display geschrieben.

GA

Hallo MCS,

vielen Dank. In dieser Variante hatte ich es natürlich nicht probiert :D.
Nur das Komma am Ende musste noch raus.

Jetzt bin ich wieder einen Schritt weiter.

Gruß in die Runde
Thorsten