LC-Display mit serieller Schnittstelle

Das folgende Beispiel zeigt, wie ein LC-Display mit serieller Schnittstelle ansteuert wird.

Aufgabe:
Ein Meldetext oder ein Temperatur-Wert soll auf einem LC-Display ausgegeben werden.

Lösung:
Wir fügen in „Instances“ das I/O Modul „COM Port“ ein.
Die Settings für das u.g. Display lauten: 9600,8,N,1

Bezugsquelle:
Conrad Electronic / z.B. Best.-Nr. 181756 / ca. € 100,- :frowning:

Das fertige Skript:


<?
/*
*******************************
 IP-SYNCOM Event Scripting
*******************************
*/
//File: LCD_Text_Display.ips.php
// (C) by CSS / MST April 2005
// Trigger: Variable: "TEMP_Büro"
$temperatur = GetValueFloat("TEMP_Büro");
// Wert formatieren
$temperatur=number_format($temperatur, 1, ".", "." );
// Display löschen & Cursor an Position 1,1
COMPort_SendText(40558, chr(12));
// Cursor ausschalten  ( ESC und C und 0 )
COMPort_SendText(40558, chr(27) . "C0");
// LCD-Beleuchtung für 30/10 Sekunden einschalten
// ESC und L und Wert in HEX !!!
COMPort_SendText(40558, chr(27) . "L" . chr(30));
// Text ausgeben / ü als $81 > 129 DEZ
COMPort_SendText(40558, "B" . chr(129). "ro $temperatur Grad");
//Cursor zu position (Spalte,Zeile in HEX) 5, 2
COMPort_SendText(40558, chr(27) . "O" . chr(5). chr(2));
COMPort_SendText(40558, "IP-SYMCON");
?>

PS:
Die im o.g. Skript verwendete Instance–ID muß für Ihre Umgebung angepasst werden.
Benutzen Sie die Tastenkombination CTRL + I um InstanceID Selector zu öffnen und wählen Sie die entsprechende Instance aus.

Ich bin begeistert von Eueren Scripts :slight_smile: . Da fallen einem immer wieder neue Möglichkeiten ein.
Übrigens gibt es bei LC-Design sehr günstige Displays. Hab da mal eins für meinen VDR gekauft. Auch der Service ist prima.

Viele Grüße
normi

http://www.lc-design.de/Download/CFdata/634full.pdf

Hallo ich habe Probleme dieses Display in Verbindung mit IP-Symcon zum laufen zu bringen. Kann mir jemand helfen? Wenn ich ipsymcon starte aktiviert sich das Display und der Cursor blinkt. Wenn ich aber mit COMPort_SendText etwas sende passiert nichts. Der Cursor blinkt einfach weiter ohne sich zu bewegen oder Text anzuzeigen. Wenn ich den Comport debuge wird auch nichts angezeigt (Fenster bleibt leer). Ich glaube nicht das es an dem Display liegt da ich über ein stink normales Terminalprogramm das Display steuern kann. Vielleicht hat jemand eine Idee?

Gruß Rufus999

Hallo Rufus999,

ich gehe davon aus, dass Du kein Schnittstellen – Tester hast.
Bist Du im Besitz eines Null Modem Kabels, kann Du mit Deinem Terminalprogramm überprüfen,
ob Daten gesendet werden.
Bitte überprüfe noch einmal die Settings und stelle „Flow control“ auf „none“.

Bitte um Rückmeldung

MST

com_open.jpg

Hallo Steiner,

nein wenn ich die von dir gezeigten Einstellungen mache schaltet das Display ab. Kein blinkender Cursor, keine Anzeige nichts. :confused:
Wenn ich das von Windows XP interne Hyperterminal nehme kann ich ohne Problem Texte schreiben. Allerdings nur wenn ich Flow Control auf Hardware oder None stelle.

Ich hoffe das Hilft ein wenig weiter.

Gruß Rufus999

Hallo Rufus999,

die beste Lösung ist wirklich ein Nullmodem-Kabel (2 und 3 gekreuzt), ein Terminalprogramm
und ein PC mit zwei seriellen Schnittstellen.
Wenn das nicht zur Verfügung steht, musst Du Dir das Kapitel „Handshaking“ auf der Seite 3
Deines Datenblatts näher ansehen.
Meine gezeigten Einstellungen sind nur ein Beispiel!!!
Den Port und die Baudrate musst Du einstellen (siehe Jumper Stellung auf Deinem LCD).
Über die Anzahl der Datenbits habe ich dem Datenblatt nichts gefunden – ist aber meistens 8.

Viel Erfolg

MST

Folgende IDee hätte ich noch zu diesem Thema:

Ich fände es toll, wenn es vielleicht über kurz oder lang die Möglichkeit gäbe grafische Displays dort anzuschliessen.

Ich stelle mir in wichtigen Räumen z.B. die Möglichkeit vor, das diese Displays Schalter ersetzen, oder einen Grundriss vom Haus anzeigen mit den Schaltermöglichkeiten… nur so mal ins Unreine gesprochen (gesponnen? :wink: )

Eventuell sogar mit Touschscreen…?

Just my 2 cents
Gruß E.

Lieber E. :cool:

Dies ist das Ding wo alle von traumen … http://www.vantageinc.com/products/Product.asp?id=8 aber hier sprechen wir uber ein kabelgebundetes produkt. Aber unbezahlbar :frowning:

Let’s resume dreaming :slight_smile:

Hallo,

das EDip240 ist zwar nur blau/weiss ist aber grafikfähig hat einen Touch und ist mit 9,5cm x 6cm Anzeigefläche nicht gerade klein. Mit dem XPort zusammen kann man es übers Netzwerk betreiben und mit dem XPort WLan auch über Funk .

Der Preis für das Display liegt bei 170€ und der XPort kostet noch einmal 70€.

http://www.lcd-module.de/deu/pdf/grafik/edip240-7.pdf

Wenn man ein bezahlbares VGA oder XGA Display sucht sollte man auf TabletPC’s zurückgreifen. Ein gebrauchtes SinusPad (Telekom) gibt es bei EBay schon ab 100€ auf dem kann man aber den Designer nicht installieren, da das Pad mit Windows CE läuft. Für eine Weboberfläche reicht es aber allemal aus und man kann es per LAN oder WLan betreiben.

Ein weiters Gerät ist das Siemens Stylistc Pad 2xxx, 3400, 3500. Diese Pads haben ein Windows BS und eine Festplatte, brauchen aber wie ein PC einen Moment zum fochfahren. Der Preis liegt bei EBay so zwischen 150€ und 400€. Auf dem 3400/3500 kann man sogar das ganze IPS System laufen lassen .

Grüße, Keule

Hier mal ein Bild von meinem EDip mit einer Infoseite zur Heizungsteuerung…

Waaw … schmelz schmelz
und dies steuerst du uber IPS an? RS232 signale also?
Hast du ne funktion (script) dafuer geschrieben die das ganse RS232 protokoll auf sich nimmt? Möchte da mal ‚reinschauen‘.

Chick gemacht!
Fredje

Hi,

danke für die Blumen.
Ist alles keine Zauberei. Das Display kannst du direkt mit dem XPort verbinden und den XPort dann mit dem IPS Modul so steuern:


COMPort_SendText(17199,"#ZL,0,15,Sensor".chr(10).chr(13));
COMPort_SendText(17199,"#ZL,65,15,Ist".chr(10).chr(13));
COMPort_SendText(17199,"#ZL,90,15,Soll.IPS".chr(10).chr(13));
COMPort_SendText(17199,"#ZL,135,15,Soll.FHT".chr(10).chr(13));
COMPort_SendText(17199,"#ZL,180,15,Mode".chr(10).chr(13));
COMPort_SendText(17199,"#ZL,210,15,Heizen".chr(10).chr(13));

„Z“ bedeutet Zeichen ausgeben, „L“ bedeutet Left (Ausrichtung), die anderen Werte sind die XY Koordinaten.

In der Doku für das Display stehen alle Befehle drin http://www.lcd-module.de/deu/pdf/grafik/edip240-7.pdf.

Die Befehle vom Touch kann man leider noch nicht auswerten, da das ComPortModul vom IPS noch keine reinen Zahlen auswerten kann, aber wenn wir bei paresy ein bischen „kratzen“…

Ansonsten geht aber noch viel mehr z.B. zeichnen, Grafiken, Bargraph, Schieberegler, DropDown Menü’s…u.s.w.

Grüße, Keule

Huch? Also eigentlich kann man mit unserem ComPort Modul alles Auswerten (außer Chr(0)). Wo liegt denn das Problem? Was meinst du mit reine Zahlen? Über dem ComPort kommt ja alles Byteweise… sind alles Zahlen :smiley:

Grüße, paresy

Hallo paresy,

ich glaube da gibt es auch noch ein Problem mit dem Display. Ich habe jetzt noch einmal getestet und für die Touchtaste ASCII dez „88“ beim drücken und dez „89“ beim loslassen der Taste hinterlegt. Wenn ich die Taste jetzt ein paar mal betätige bekomme ich im Debug Fenster folgende Ausgaben:

[18:19:20] RECEIVED B
ASCII: 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 |
PLAIN: eAYeAXeAYeAXeAYeAXeAYeAXeAYeAXeAYeAXeAYeAXeAYeAXeAYeAX
[18:19:35] RECEIVED B
ASCII: 27 | 65 | 1 | 89 | 27 | 65 | 1 | 88 | 27 | 65 | 1 | 89 |
PLAIN: eAYeAXeAY

Wie werte ich diese Daten jetzt am einfachsten aus und muß ich noch Einstellungen zum filtern im Comport Modul vornehmen?

Komisch ist, das das Display erst nach mehrmaligen drückens der Taste die Daten über die Schnittstelle sendet. Der erste Logeintrag entstand nach 8maligen drücken und der zweite schon nach einmal drücken, schon komisch.

Grüße, Keule

Man erkennt die Sequenz doch ganz genau:


27 | 65 | 1 | 89 | 


27 | 65 | 1 | 88 | 

Ist die selbe Sache wie mit dem BHKW:

Ich verweise, wegen Register Variable auch auf die ComPort Wiki:
http://www.ipsymcon.de/wiki/index.php/Com_Port

Du musst halt auf den Puffer String triggern und die chr(27) suchen und den Rest dahinter auswerten :slight_smile:

Grüße, paresy

Zur Info:Reichelt hat im Moment das EDip240 für 129 Euro im Angebot.

… wenn wir mal gaaaaaaaaaaaaaaaanz viel Zeit haben gibt es ein IPS-Modul :wink:

PDF hier: http://www.mpi.ch/attach/000018d1.pdf
http://www.reichelt.de/inhalt.html?SID=15t9x1KqwQAREAAHMdj8c672fde5a54b244c4b2b8a3242f504b61;ACTION=7;LASTACTION=6;SORT=artikel.artnr;GRUPPE=A524;WG=0;SUCHE=DIP240;ARTIKEL=LCD%20EDIP240B-7TP;START=0;END=16;STATIC=0;FC=669;PROVID=0;TITEL=0;DATASHEETSEARCH=LCD%20EDIP240B-7TP;FOLDER=A500;FILE=edip240-7_EAS%23EAS.pdf;DOWNLOADTYP=1;DATASHEETAUTO=;OPEN=1

„Notlösung für Helden“: das IP-Symcon Com Port Modul (RS232)

Gruß MST

Intelligentes LCD-Display, 240 x 128 Pixel
analoges Touch-Panel, variables Raster

Alles on board:
3 Schnittstellen: RS-232, I²C-Bus, SPI
Grafikroutinen
Textroutinen
Flexible Zeichensätze
Panel Verwaltung
Single supply +5V
DIP-Technologie
Grafik in blau/weiß
Herstellerbezeichnung:EA EDIP240B-7LWTP

Hallo,

das ist echt ein Hammerpreis! Ich habe vor ein paar Monaten noch 170€ ausgegeben. :o

Grüße, Keule

Hallo,

wenn man das Smallprotokoll deaktiviert wirds noch ein bischen einfacher. Man muss halt nur aufpassen, das man das Display nicht mit Befehlen „überschüttet“ und dadurch der Displaypuffer überläuft.:o

Grüße, Keule

… kannst Du inzwischen die Touch-Befehle auswerten?

…hier noch was für Grossverdiener oder für den Gabentisch. :smiley:
http://www.reichelt.de/inhalt.html?SID=17zRvx46wQARIAACKb9Tsc42f0acc213f265712125f11714cca72;ACTION=7;LASTACTION=6;SORT=artikel.artnr;GRUPPE=A525;GRUPPEA=A522;WG=0;ARTIKEL=LCD%2520KIT320F-8;START=0;END=16;STATIC=0;FC=10;PROVID=0;TITEL=0;DATASHEETSEARCH=LCD%20KIT320F-8;FOLDER=A500;FILE=LCDKIT320F-8%2523EAS.pdf;DOWNLOADTYP=1;DATASHEETAUTO=;OPEN=1
Kostet aber leider 639.-€. :frowning:

Keule