-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Beiträge - cali

#1
Hi,

Zitatweiters ist fragwürdig ob das so sinnvoll ist, wenn du zyklisch den dimm_i.out wert beschreibst
somit kann der dimm_i baustein selber nichts bewirken

Genau darauf bin ich auch gestoßen. Gibt es eine Lösung ohne den Baustein anzupassen?
#2
Hallo,

in der Doku zu DIMM_I steht:
ZitatOUT ist der Wert des Dimmers und wird als I/O Variable extern definiert. dies hat den Vorteil das der Wert des Dimmers jederzeit extern beeinflusst werden kann und auch nach einem Stromausfall wieder rekonstruiert werden kann

Wie programmiere ich das? In meinem Programm wandel ich den OUT-Wert von Byte in Word (Range_to_Wird) um und lege ihn auf einen analogen Ausgang. Das funktioniert ohne Probleme. Wenn ich jedoch davor dem Out-Wert einen Wert zuweise überschreibe ich damit die Funktionalität des DIMM_I. Ein ausschalten/regeln mittels Taster ist nicht mehr möglich.

Grüße
Cali

#3
Hi,

entschuldigt das ich diesen alten Thread wiederbelebe, doch meine Frage paßt zu gut.

Zitatden Ausgang Q kannst du entweder auf das entsprechende statusbit laut kl 2751 doku legen
Wie kann ich das Statusbit zum deaktivieren des Bauteins ansprechen?

Viele Grüße
Cali
#4
Hello brose

habe a look at the BLIND_SHADE function. That should be what you are looking for. It has also am input for a light sensor.

Greetings
Cali
#5
SPS-Hardware / Re:Dimmen mit WAGO
04. August 2010, 08:58:38
Hallo,
Ich habe mir auch eine Beckhoff Dimmerklemme für meine 750-841 besorgt. Wielege ich die nun in der Steuerungskonfiguration an? Als DO mit einem Ausgang? Benötige ich eine Potentialtrennung/eine Einspeiseklemme oder kann ich die Klemme direkt hinter meine 24V 750-530 Ausgänge hängen?
@ellie funktioniert dein Helligkeitssensor mittels 3202 inzwischen?
Grüße
Cali
#6
Hallo volkmarrigo,

wie hast liest Du denn die Temperaturwerte aus der Wago aus? Wie kann ich denn die Real-Werte in z.B. Double umwandeln? Ich nutze C#. Kannst Du mir evt den VB Code zukommen lassen?

Grüße
Cali
#7
Hallo,
wie verdrahte ich denn die Bausteine am geschicktesten, z.B. in FUP? In der Doku sind z.B. die Ausgänge des einen Moduls mir den Eingängen eines anderen verschaltet. Bisher habe beiden dieselbe Variable zugeordnet. Kann ich die Verbindung auch einfacher herstellen -gibt es da einen Trick? Gerade bei der Rollladensteuerung mit 3 FB wirds da schnell unübersichtlich!

Grüße
Cali
#8
Hallo,

was ist denn jetzt Deine Frage? Für alles was Du beschrieben hast gibt es in Oscat Bausteine. Schau Dir mal die gute Doku dazu an.

Viele Grüße
Cali
#9
oscat.lib fuer TwinCAT/CoDeSys / ACTUATOR_2P
05. April 2009, 22:44:31
Hallo,
ich nutze derzeit noch Version 2.76 und wollte auf Version 3.04 updaten. In Version 2.79 hatte der ACTUATOR_2P einen Real-Eingang (0-1) nun einen vom Typ Byte (0-255). Ich nutze den CTRL_IN den ich mit einem PID_Regler verbunden habe. Den Ausgang des PID konnte ich direkt auf den Eingang des ACTUATOR_2P legen. Wie ist das nun gedacht? Muß ich einen PWM-Baustein verwenden oder Real nach Byte konvertieren? Vorher war das so einfach...

Grüße
Cali
#10
Hier meine Lösung:

Mit
COM1( bCOM_PORT_NR := 1,
cbBAUDRATE := BAUD_9600,
cbsBYTESIZE := BS_8,
cpPARITY := PARITY_NO,
csSTOPBITS := STOPBITS_1,
cfFLOW_CONTROL := NO_FLOW_CONTROL,
utRECEIVE_BUFFER := ReceiveBuffer,
ptSEND_BUFFER := ADR(SendString),
xINIT := xInitPort,
      xOPEN_COM_PORT := xOpenPort,
iBYTES_TO_SEND := LEN(SendString) +1,
xSTART_SEND := xSendActive3 );
wird gesendet was unter SendString steht. Diesen ändere ich bei jedem Durchlauf mit Hilfe eines Zustandsautomaten. Die die Antwort werte ich jedes mal aus. Thats it!
#11
Hallo gravieren,

ich habe eine WAGO 750-841. Hast Du ein Beispiel dafür in ST? Man kann zwar bei Wago und im Programm einiges finden, aber ein richtiges ST Tutorial habe ich noch nicht gefunden. Wie bekomme ich denn mit, wenn Daten empfangen wurden und einen Timeout brauche ich ja auch...

Danke
Cali
#12
Hallo,

Folgendes Problem. Mein Sensor möchte initialisiert werden, dabei sendet er mir alle Informationen wobei jedoch mein RingBuffer überläuft. Ich suche daher nach einer Möglichkeit mehr als 255 Zeichen zu empfangen, oder nach dem Initialisieren die Informationen abzufragen. Wie muß ich die Struktur ändern um den "SendString" zu überschreiben, wie kann ich neu senden (xStartSend) und die Antwort auswerten. Wahrscheinlich mit einem Zustandsautomaten... nur wie starte ich mehrfach COM1 und empfange dannn?


Hier ist was ich habe und was auch für eine Abfrage funktioniert:

(*---- Solange eine Anforderung gesendet wird -> den Empfangsbuffer löschen *)
IF xSendActive3 THEN  (* neue Anforderung wird gesendet *)
FOR i:= 0 TO 255 DO
ReceiveBuffer.Data[i] := 0; (* Empfangsbuffer löschen*)
END_FOR
ReceiveBuffer.Index := 0; (* Empfangsbuffer löschen*)
END_IF

(*--- Auffuf der Schnittstelle -----------------------------------------------------*)
(* Send and Receive for COM1 *)
COM1( bCOM_PORT_NR := 1,
cbBAUDRATE := BAUD_9600,
cbsBYTESIZE := BS_8,
cpPARITY := PARITY_NO,
csSTOPBITS := STOPBITS_1,
cfFLOW_CONTROL := NO_FLOW_CONTROL,
utRECEIVE_BUFFER := ReceiveBuffer,
ptSEND_BUFFER := ADR(SendString),
xINIT := xInitPort,
      xOPEN_COM_PORT := xOpenPort,
iBYTES_TO_SEND := LEN(SendString) +1,
xSTART_SEND := xSendActive3 );

(*---- Empfangsdaten in String kopieren ---------------------------------------------------------------------------------------*)
ptString := ADR(ReceiveBuffer.Data); (* Stringzeiger auf den Anfang des Empfangsbuffers *)
ReceiveBuffer.Data[ ReceiveBuffer.Index ] := 0; (* String terminieren *)
ReceiveString := ptString^;    (* String kopieren *)
(*-------------------------------------------------------------------------------------------------------------------------------------------*)
temp2:=STRING_TO_REAL(LIST_GET(44,1,ReceiveString));*)

temp:=LIST_GET(44,0,ReceiveString); (*Sensor*)
TEMPIST:=STRING_TO_REAL(LIST_GET(44,1,ReceiveString)); (*Temperatur in Real*)


Bin für jeden Tipp dankbar.
Cali