Schnittstelle COM1 öffnen

Hallo Leute,

ich nun auch endlich glücklicher Besitzer vom IPS. Nach langem überlegen habe ich mich nun entschlossen auf IPS umzusteigen.
Mein Ziel ist es, den seriellen Powerline-Controller von Contr***s über IPS zu steuern, allerdings gibt es hierfür in IPS noch kein Modul. Leider weiss ich noch gar nicht, wie ich die Kommunikation mit PHP realisieren soll. Das Protokoll hierfür liegt mir allerdings vor, aber bis dort bin ich noch gar nicht gekommen, da sich die Schnittstelle in IPS nicht öffnen läßt.

Beim öffnen des COM1 ist das Statusfeld rot/OPEN und wenn ich mit Apply bestätige, springt der Status wieder auf rot/Closed und nicht auf grün/OPEN, wie eigentlich erwartet. Habe ich da einen Denkfehler oder hat das auch schon jemand gehabt? Kann hier jemand helfen?

Viele Grüße,

Thomas

Wenn Du auf Apply klickst, wird der Befehl erst ausgeführt, d.h. entweder, es wird grün, dann ist alles OK, bleibt es auf rot, konnte die Schnittstelle nicht geöffnet werden (z.B. weil ein anderes Programm sich schon vorgedrängelt hat).

Tommi

Hallo tommi,

genau das habe ich gemacht. Ein anderes Programm ist zur zeit nicht aktiv, das die Schnittstelle benutzt oder kann man das unter win irgendwo testen? Allerdings habe ich jetzt 2 Rechner mit dem gleichem Ergebnis getestet. Hyperterm oder eine anderes Programm zur Steuerung über die Schnittstelle funktioniert tadellos, nur in IPS kann ich die Schnittstelle nicht aktivieren.

Gruß,

Thomas

Hallo Thomas,

das hört sich nach einem Bug an. Wir werden es morgen überprüfen.
Hast Du nur eine serielle Schnittstelle am PC?

MST

Hallo Steiner,

ja, leider nur 1x ser.

Beide Rechner sind frisch mit XP installiert, alle getesteten Programme kommen mit der Schnittstelle klar (Hyperterm, Contr***cs, Schnittstellentester usw.), nur IPS leider nicht :frowning:

Ich habe es auf 2 weiteren Notebooks getestet, hierbei allerdings kein Problem mit Win98 u. XP.

Habe IPS auch schon mal zum Testen neu installiert und auch einen neuen Benutzer mit Adminrechten angelegt, leider ohne Erfolg.

Kann es sein, das IPS mit dieser HW nicht klar kommt. Ich dachte immer, Progs greifen auf die SW-Schnittstelle von Windows zu, um Daten zu senden.

Thomas

… es scheint ein Problem mit PCs mit nur einer Schnittstelle zu sein …

Hast Du evtl. 2 Instanzen des Com-Moduls und beide auf die gleiche Schnittstelle Com1 konfiguriert? Oder im Bios die Standard-Adresse(3F8) bzw Standard-Interupt(4) geändert?

Ich habe das Com-Modul zusammen mit einem M232 an einem Notebook im Einsatz. Da klappt das öffnen,senden und empfangen klaglos (dafür andere Dinge im M232-Modul nicht :frowning: ). Also ein generelles Problem kann ich nicht bestätigen.

Tommi

…hmmm, da könntest Du Recht haben.

Die Notebooks haben zwar auch nur eine Schnittstelle, habe aber beide virtuelle Com-Ports für IR usw. die ich in IPS auch sehen kann.

Hallo tommi,

habe nur den einen COM-Port konfiguriert. IRQ4 u.3F8 hatte ich im Bios auch als erstes vermutet, das ist aber alles richtig. An meinen beiden Notebooks funktioniert das ja auch, nur an den anderen Rechnern nicht, die haben allerdings auch nur diesen einen COM-Port, die Notebooks haben mehrere.
Wie schon gesagt, alle anderen Programme können diese Schnittstelle ohne Probleme nutzen.

Kennst du dich mit der Konfiguration des COM-Ports „Split using Cutchars“ aus? Kann ich damit nach einem Wert in der Zeichenkette filtern oder wofür ist das gedacht?

Gruß,

Thomas

Das mit dem Comport hört sich nicht so gut an. Bist Du sicher,das kein anderes Programm oder Dienst die Schnittstelle schon belegt hat. Beliebt sind dabei immer Handy-, PDA-,Fax, Irda(auch Fernbedienungen zB. fürs Mediacenter) oder auch Chipkartentreiber. Womit man das unter Windows nachsehen kann, habe ich auch gerade nicht auf Tasche, unter Linux heißt das tool lsof (list open files).
IRQ-sharing kommt meistens auch nicht gut an, du solltest mal sehen, ob noch andere Geräte den IRQ nutzen und diesen dann einen andrenen IRQ verpassen. Ganz exotisch wird es, wenn Dein Rechner nicht die Standard-Seriellen Schnittstellen-Bausteine benutzt und Spezialtreiber braucht.
Evtl. hilft es auch, mal zu testen, ob es wenigstens im abgesicherten Modus, also wenn keine anderen Dienste laufen, geht.Da Du aber geschrieben hast, das es mit Hyperterm funktioniert, scheidet das wohl auch aus. :confused: Und ohne ordentliches open wirst Du nie Daten zu sehen bekommen. Vieleicht kann Paresy noch mal nachsehen, ob er seine Open-Routine evtl. zu restriktiv ausgelegt hat, sprich anders arbeitet als die von den anderen Programmen.

Das mit den Cutchars bezieht sich auf einen Protokollrahmen. Bei ELV fängt es oft mit SOH(01hex) an und endet mit EOT. Beim M232 aber ist das letzte Zeichen CR(0Dhex).Wenn man das weiss und als Cutchars einträgt, kriegt man immer einen kompletten gültigen Datensatz, sprich man kriegt alles was dazwischen liegt. Normalerweise könnte es passieren, das man die Daten selbst „zusammenstückeln“ muss, wenn nur Teile übergeben werden. Der Vorteil besteht also darin, das man in seiner Anwendung einen Teil der Arbeit (Prüfung des Protokollrahmens) abgenommen bekommt.

Tommi

Hallo Tommi,

unter DOS/Windows kann man sich den Status mit „MODE COM1:“ anzeigen lassen. Wenn ein Prog den Port benutzt, funktioniert das nicht.

Mit den Cutchars ist interessant, da das Protokoll immer mit Dez. 192 anfängt, das Ende aber offen ist, d.h. im 2 byte steht die Länge des kompletten Rahmens. Aber was muss ich denn hier eintragen? hex o.dez ?

Das senden funktioniert ja schon , sieht allerdings nicht besonders elegant aus: :stuck_out_tongue:

COMPort_SendText(46167, chr(129));
COMPort_SendText(46167, chr(5));
COMPort_SendText(46167, chr(1));
COMPort_SendText(46167, chr(130));
COMPort_SendText(46167, chr(0));
COMPort_SendText(46167, chr(1));
COMPort_SendText(46167, chr(129));

Kann man das irgendwie verkürzen? Wie gesagt, ich fange gerade erst an und mit der C*******s-SW war das etwas einfacher.

Hast Du evtl. ein Script für mich, das ich mir mal anschauen kann, wie man die eingehenden Daten auswerten kann?

Danke schon mal für deine (eure) Hilfe,

Thomas

Das du den COMPort nicht öffnen kannst scheint ein Bug zu sein. Wir werden das Problem Morgen/Übermogen beheben und einen Fix bereitstellen. Hab da bitte eine wenig Geduld.

COMPort_SendText(46167, chr(129).chr(5).chr(1).chr(130).chr(0).chr(1).chr(129));

Grüße, paresy

… habt ihr hier schon was finden können? :cool:

Anbei der Fix.

Grüße, paresy

Na, das ging ja Fix mit dem Fix :smiley: :smiley: :smiley:

… funktioniert!

Vielen Dank für die Hilfe,

Thomas