AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi K8055 Analog EIngang - Digital Ausgang
Thema durchsuchen
Ansicht
Themen-Optionen

K8055 Analog EIngang - Digital Ausgang

Ein Thema von nexttoptechniker · begonnen am 30. Mai 2013 · letzter Beitrag vom 30. Mai 2013
Antwort Antwort
nexttoptechniker

Registriert seit: 30. Mai 2013
1 Beiträge
 
#1

K8055 Analog EIngang - Digital Ausgang

  Alt 30. Mai 2013, 17:15
Hallo, ich habe bis jetzt hier viel gelesen, kommen aber bei dem
problem nicht mehr weiter. Ich bin gerade dabei meine staal. gepr.
Techniker zu machen und noch im ersten Halbjahr. Wir sollen mit der
Vellemann K8055 zwei Eingänge auslesen und min. zwei Ausgänge ansteuern.
Die Programmierung machen wir mit Delphi. Mein Projekt sind zwei
Lichtschranken die als Eingang dienen als Ausgang hängen zwei LED und
ein Piepser dran. Die Lichtempfindliche Diode hängt am Analogeingang und
dessen Wert kann ich mit einer Progressbar auslesen...
Soweit genug geschrieben, jetzt zu meiner Frage.

Wie sage ich dem Digitalen Ausgang das er schalten soll wenn die
Lichtschranke das Signal gibt?


Lese den Analog in mit einem timer aus

Procedure Form.timer3timer(Sender: tobjec)
Var ldr1, ldr2 : integer
Beginn
Readallanalog(ldr1,ldr2)
Progressbar1.Position := ldr1;
Progressbar2.Position :=ldr2;

End;

Wen ich das durch habe bin ich endlich fertig und kann mich an die
Dokumentation und Präsentation machen.

Vielen Dank


Andreas
  Mit Zitat antworten Zitat
kamel08
(Gast)

n/a Beiträge
 
#2

AW: K8055 Analog EIngang - Digital Ausgang

  Alt 30. Mai 2013, 19:14
// In der Demo gibt es folg. procedure

Delphi-Quellcode:
procedure TForm1.DigitalOut(Sender: TObject);
var i:longint;
begin
  i:=integer(CheckBox6.checked)*1+
  integer(CheckBox7.checked)*2+
  integer(CheckBox8.checked)*4+
  integer(CheckBox9.checked)*8+
  integer(CheckBox10.checked)*16+
  integer(CheckBox11.checked)*32+
  integer(CheckBox12.checked)*64+
  integer(CheckBox13.checked)*128;
  if not DisableOtherFunctionCall then WriteAllDigital(i);
end;
ich mache es so:

Delphi-Quellcode:
Type TDigitalAusgaenge = Array[1..8] of Boolean;
Var DigitalAusgang : TDigitalAusgaenge;

Procedure TMainForm.WriteDigital;
var i: longint;
begin
     DisableOtherFunctionCall := true;
     i := Integer(DigitalAusgang[1]) * 1 +
          Integer(DigitalAusgang[2]) * 2 +
          Integer(DigitalAusgang[3]) * 4 +
          Integer(DigitalAusgang[4]) * 8 +
          Integer(DigitalAusgang[5]) * 16 +
          Integer(DigitalAusgang[6]) * 32 +
          Integer(DigitalAusgang[7]) * 64 +
          Integer(DigitalAusgang[8]) * 128;
     //SetDigitalChannel(CardAddr); // Karte 0..3 auswählen
     WriteAllDigital(i);
     DisableOtherFunctionCall := false;
end;

begin
     DigitalAusgang[1] := TRUE;
     DigitalAusgang[2] := TRUE;
     WriteDigital;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz