![]() |
AW: Waagenwerte über com-Schnittstelle einlesen
Sorry, lag an mir. jetzt stürzt das Programm nicht mehr ab.
Und wo gebe ich jetzt an das die Werte im Com7 abgeholt werden sollen? |
AW: Waagenwerte über com-Schnittstelle einlesen
Hi,
ich würde schätzen im Objektinspektor, wenn du deine Comport-Komponenten-Instanz auf dem Formular ausgewählt hast. LG, Frederic |
AW: Waagenwerte über com-Schnittstelle einlesen
da ist auch bei 'Port:com7' eingestellt.
sollte er denn jetzt schon Waagenwerte in den Memofeldern anzeigen? |
AW: Waagenwerte über com-Schnittstelle einlesen
Hi,
hast du denn das RxChar-Event mit deiner Methode verknüpft? Dann sollte er was anzeigen, wenn die Waage was sendet. LG, Frederic |
AW: Waagenwerte über com-Schnittstelle einlesen
Du kannst auch mal einen Brechpunkt da reinhängen, gegf. kommen da #0 Zeichen am Anfang, dann siehst Du nichts.
Es kann auch sein dass Du erst einen sinnvollen "String" schicken musst um eine Antwort zu bekommen .... |
AW: Waagenwerte über com-Schnittstelle einlesen
was meinst du denn mit 'Methode'?
|
AW: Waagenwerte über com-Schnittstelle einlesen
Hi,
irgendwo in deinem Code steht doch
Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var s: AnsiString; begin ComPort1.ReadStr(s, Count); FInBuffer := FInBuffer + s; InterPretInbuffer; end; Das ist eine Methode. Die wird aber nicht durch göttliche Eingebung aufgerufen, sondern dafür muss sie passend mit der Komponente verknüpft sein. Auf der zweiten Registerkarte im Objektinspektor bei ausgewählter Comport-Instanz sollte in der Zeile OnRxChar rechts daneben was stehen - wenn da nur ein leeres weißes Feld ist, dann da mal nen Doppelklick reinmachen (wobei ich grad nicht weiß, ob er es hinbekommt, wenn es eine Methode des Names dann schon gibt). LG, Frederic |
AW: Waagenwerte über com-Schnittstelle einlesen
Also dann müsste die Methode aufgerufen werden, denn dass hatte ich vorhin schon gemacht.
Momentan sieht mein ganzer Quelltext grade so aus.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CPort; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; ComPort7: TComPort; Edit1: TEdit; Memo1: TMemo; Memo2: TMemo; procedure FormActivate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComPort7RxChar(Sender: TObject; Count: Integer); private FInBuffer: AnsiString; procedure InterPretInBuffer; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; hcomm : THandle; COM_enum : integer; implementation {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject); begin ComPort7.Connected := true end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; procedure TForm1.ComPort7RxChar(Sender: TObject; Count: Integer); var s: AnsiString; begin ComPort7.ReadStr(s, Count); FInBuffer := FInBuffer + s; InterPretInbuffer; end; procedure TForm1 .InterpretInbuffer; var i:Integer; part:AnsiString; begin i := Pos(#10,FInBuffer); Memo1.Lines.Add(FInBuffer); while i>0 do begin Part := Copy(FInBuffer,1,i-1); FInBuffer := Copy(FInBuffer,i+1,Length(FInBuffer)); Memo2.Lines.Add(Part); i := Pos(#10,FInBuffer); end; end; end. |
AW: Waagenwerte über com-Schnittstelle einlesen
Hi,
dann solltest du Thomas' Ansatz mit dem Breakpoint weiterverfolgen. LG, Frederic |
AW: Waagenwerte über com-Schnittstelle einlesen
Liste der Anhänge anzeigen (Anzahl: 1)
Mit den Breakpoints komme ich nich weiter, habe mehrere gesetzt, aber ich bekomme keine Werte von der Waage zu sahen.
Was kann man denn eigentlich anhand dieser Tabelle erkennen?Anhang 35412 Seite 147 Tabelle 11-7 Muss ich anhand dessen auch noch etwas einstellen? |
AW: Waagenwerte über com-Schnittstelle einlesen
Hast du mal gemessen ( mit einem Messgerät ), ob über die Schnittstelle überhaupt was kommt ? Milliampermeter in Reihe in eine Leitung : 20mA, wenn die Waage nicht sendet.
Ist der Loop überhaupt versorgt ? Leuchten die LED's auf dem Umsetzer ? |
AW: Waagenwerte über com-Schnittstelle einlesen
Die Waage funktioniert, habe das extra Siwarex Waagenprogramm bei mir auf dem PC installiert und da kommen auch immer die richtigen Waagenwerte an.
Die RX und die Power-Leuchte an dem Konvereter leuchten beide |
AW: Waagenwerte über com-Schnittstelle einlesen
Hallo,
läuft das Waagenprogramm wenn Du mit Deiner Applikatio probierst? Wenn ja, könnte es sein, dass das Wagenprogramm die Schnittstelle (com7) blockiert. Grüße Klaus |
AW: Waagenwerte über com-Schnittstelle einlesen
Daran liegt es nicht. Das Siwarex Programm läuft auch wenn das Delphi Programm in betrieb ist.
|
AW: Waagenwerte über com-Schnittstelle einlesen
Ich kann mich ja irren, aber irgendwie muß die Waage doch mitbekommen, daß auf der Gegenseite jemand ihre Daten lesen möchte. und ich meine mich zu erinnern, daß da ein Handshake-Protokoll darunter liegt. Wird das automatisch von der Komponente erledigt?
Gruß K-H |
AW: Waagenwerte über com-Schnittstelle einlesen
Da COM Ports imho nicht so ohne weiteres von mehreren Prozessen geteilt werden können, scheint das ein Indiz dafür zu sein, dass dein Programm überhaupt keine Verbindung öffnet. Lass dir den Wert von "Connected" mal mittels eines Timers regelmäßig anzeigen. Nicht, dass die Verbindung fehlschlägt oder kurz nach Öffnen durch irgendwas wieder gekappt wird.
Edit: @p80286: Es gibt auch Waagen, die einfach stumpf immer ihre Gewichtsdaten bei Änderung rausjubeln. Ob man requesten muss, wäre dann wieder der Waagendoku zu entnehmen. |
AW: Waagenwerte über com-Schnittstelle einlesen
Du könntest dir z.B. den PortMonitor von Sysinternals runterladen und damit mal untersuchen was das origial Waageprogramm so versendet und empfängt.
Welchen Anschluss benutzt du genau? RS232 (Klemme 3, 4, 5) oder TTL (Klemme 6, 7)??? In der ![]() @Medium: Ich wollte dich nicht verwirren, Sorry! :-D |
AW: Waagenwerte über com-Schnittstelle einlesen
Hallo,
das ist hier ein lustiges Ratespiel. Zitat:
Zitat:
Man sollte vieleicht etwas systematischer vorgehen, sonst gibt es zu viele Unbekannte und man kann das Problem nicht lösen. 1. Funktioniert das Delphi Programm? Dies kann man überprüfen, indem man sich ein kleines Sende-Programm schreibt und mittels eines virtuellen COM-Ports (z.B. COM0COM) Daten sendet und nachschaut, ob das Delphi Programm prinzpell in der Lage ist Daten über den COM-Port zu empfangen und anzuzeigen. 2. Stimmen die Einstellungen vom COM-Port? Dies muss man in der Dokumentation nachlesen und entsprechend im Delphi Programm einstellen. 3. Ist der COM-Port durch ein anderes Programm blockiert? Alle anderen Programme beenden, die evt. zugriff auf den COM-Port haben könnten. 4. Sendet die Waage Daten? Muss man den Datentransfer mit einem Befehl anstoßen, oder werden die Daten zyklisch gesendet, dass sollte in der Dokumentation stehen. Das sind im Groben die Arbeitsschritte um das Problem zu lösen. Bis bald Chemiker |
AW: Waagenwerte über com-Schnittstelle einlesen
Entschuldigt Bitte, aber ich lese das schon ne Weile mit..
ich hab sowas fuer ne LKW-Waage gemacht mit TP7..(Objekt Professional)..das ging ganz flott..aber ohne "Grundkenntnisse"..gehts nun mal nett. ...bissl Eigeninitiative iss dann schon gefragt!!! Sorry..aber musste ich mal schreiben:-( |
AW: Waagenwerte über com-Schnittstelle einlesen
Hallo,
gibt es Programme die eine Schnittstelle auslesen und mir dann am Ende den Waggenwert anzeigen zu kaufen? |
AW: Waagenwerte über com-Schnittstelle einlesen
Wenn, dann vom Hersteller der Waage.
|
AW: Waagenwerte über com-Schnittstelle einlesen
das ist schlecht, denn sowas ist bei Siemens meiner Meinung nach nicht im Programm.
Wo finde ich freie Programmierer die sowas machen? |
AW: Waagenwerte über com-Schnittstelle einlesen
Holl dir mal PortMon:
![]() Sehr nützlich um sich die Kommunikation von com_ports anzuschauen. Damit kannst Du genau sehen was die Originalsoftware an die Waage schickt, von ihr zurück kommt. Gruss, Jörn |
AW: Waagenwerte über com-Schnittstelle einlesen
da wir gerade bei Programmen sind, hier ist auch ein schönes 4free
HTerm 0.8.1beta das beta muss man nicht wirklich ernst nehmen. ![]() |
AW: Waagenwerte über com-Schnittstelle einlesen
Zitat:
|
AW: Waagenwerte über com-Schnittstelle einlesen
Wenn das SiwarexTool auch via com-port kommuniziert, muss da was zu sehen sein.
|
AW: Waagenwerte über com-Schnittstelle einlesen
Die Siwarex ist an RS232 über einen USB Konverter an com4 angeschlossen.
aber in dem Protokoll wird nichts angezeigt. Auch wenn in dem SiwarexTool der Wagenwert angezeigt wird |
AW: Waagenwerte über com-Schnittstelle einlesen
Bist du sicher, dass dies der einzige Weg ist, über den die Waage angeschlossen ist? Nicht, dass du noch via Ethernet an die SPS kommst, die die Waage auch kennt, und das Siwarex-Tool sich dass da ausm Eingangsabbild rausnuckelt :)
|
AW: Waagenwerte über com-Schnittstelle einlesen
Nein, sonst ist wirklich nichts angeschlossen. habe extra alles andere vorher vom PC getrennt
|
AW: Waagenwerte über com-Schnittstelle einlesen
Bist du sicher, dass du PortMon richtig verwendest? Schau da mal in die Hilfe, ist nicht sehr viel...
1. Erst all Programm schliessen welche auf den Port, die Waage zugreifen 2. PortMon starten (Kann sein, dass du es als Admin starten musst) 3. Computer->Connect Local 4. Unter Capture->Ports deinen Port wählen 5. Capture->Capture Events 6. SiwarexTool starten Nun müsste eigentlich die Kommunikation in PortMon sichtbar sein |
AW: Waagenwerte über com-Schnittstelle einlesen
Soweit ich das sehe war alles richtig. angeziegt hat er aber wieder nichts
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz