Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Nachrichten - Tom

Seiten: 1 [2] 3
16


Zitat
Ich war aber auch schon mal bei 80%, als ich ein paar STRING-Funktionen aus der OSCAT eingesetzt hatte.
Möglicherweise läuft die STRING-Konvertierung in JEDEM Zyklus.   ;D

Einmal den String wandeln reicht ja nicht  ?
(Ist Ironisch gemeint)


Gruß Karl

Es waren diverse Umwandlungen von DT_TO_STRF und DWORD_TO_STRF für Visualisierungszwecke. Da die Daten dynamisch sind, musste ich auch die Umwandlung ständig ausführen. Hatte schon Zykluszeit bei 250ms und die Bearbeitung nur, wenn die Daten benötigt werden. Ansonsten hätte ich jeden einzelnen Wert auf Änderung prüfen müssen. Das fand ich zu dicke und hab alles in die Visu verlegt.

17
Die Auslastung erscheint schon recht hoch. Arbeitest du viel mit REAL oder STRING?

Ich hab auf meinem CX9001:

Bausteinindizies: 1873 (91%)
Größe der verbrauchten Daten: 61850 von 1048576 Bytes (5.90%)
Größe der verbrauchten Retain-Daten: 0 von 32768 Bytes (0.00%)
0 Fehler, 0 Warnung(en)
Codegröße 228053 Bytes

Auslastung ca. 20%. Ich war aber auch schon mal bei 80%, als ich ein paar STRING-Funktionen aus der OSCAT eingesetzt hatte.
Allerdings hatte sich der CX nicht aufgehängt, so weit ich mich erinnere.

18
Oder, um die Idee mit dem Baustein aufzugreifen: Bastle einen FB, welchem du z.B. 6 Schaltpunkte übergibst un der einen Ausgang entsprechend schaltet. So könnte es gehen (nicht getestet):


VAR_INPUT
 start: BOOL;
 ein1: DWORD;
 aus1: DWORD;
 ein2: DWORD;
 aus2: DWORD;
 ein3: DWORD;
 aus3: DWORD;
END_VAR

VAR_OUTPUT
 ausg: BOOL;
END_VAR

VAR
 is_started: BOOL;
 time: DWORD;
END_VAR



IF NOT start THEN
 is_started := FALSE;
 ausg := FALSE;
 RETURN;
END_IF;

tx := T_PLC_MS()/1000; (*Millisek. > Sek.*)

IF NOT is_started THEN
 start_time := tx;
 is_started := TRUE;
END_IF;

time := tx - start_time;

IF ein1 <= time AND time <= aus1 OR ein2 <= time AND time <= aus2 OR ein3 <= time AND time <= aus3 THEN
 ausg := TRUE;
ELSE
 ausg := FALSE;
END_IF;



Solange start = TRUE wird der Baustein bearbeitet. Man könnte es auch umschreiben und eine Flanke verwenden.

19
Vorschlag: Nimm ST und ändere es etwas ab. Am Anfang alles zurücksetzen und dann mit einer CASE-Verzweigung ansteuern. IF-THEN geht natürlich auch.

sound1 := FALSE;
sound2 := FALSE;
zylinder1 := FALSE;
zylinder2 := FALSE;

IF NOT scare RETURN;

CASE scaretime OF

    1 .. 5:    sound1 := TRUE;
            zylinder1 := TRUE;

    6 .. 10:   sound2 := TRUE;
             zylinder1 := TRUE;

   11 .. 20: sound2 := TRUE;
             zylinder2 := TRUE;

END_CASE;





20
oscat.lib fuer TwinCAT/CoDeSys / Re:ONTIME und METER_STAT PERSISTENT
« am: 14. Oktober 2010, 04:25:31 »
Das Problem beim ONTIME liegt am init-Teil, dort werden beim Start die Zähler genullt. Man könnte doch den Teil so ändern:


IF NOT init THEN
init := TRUE;
last := tx;
cycles := cycles + BOOL_TO_UINT(in);
ms := 0;
ELSIF rst THEN
SECONDS := 0;
CYCLES := BOOL_TO_UINT(in);
ELSIF IN THEN
...

21
Ich hol den Thread mal aus der Versenkung. Hat etwas gedauert, bis meine Webvisu fertig war. Kompletter Eigenbau: HTML5, CSS und Javascript über Beckhoff ADS-Webservice. Layer  und  Widgets frei positionierbar, Schaltuhr per Drag'n'Drop programmierbar. Die Elemente sind so gestaltet, dass auf 800x600 nicht gescrollt werden muss.

Nicht über die Anzeigen wundern: Bis auf die Wohnzimmer- und Vorlauftemperatur sind noch keine Sensoren angeschlossen.

[gelöscht durch Administrator]

22
Modulentwicklung / Re:Email versenden aus TwinCat (CX9000)
« am: 13. März 2010, 08:33:44 »
Der Thread ist zwar schon älter, hab ihn aber erst jetzt gelesen ...

Es gibt noch einen unter XP recht problemlosen Workaround: In der TcUtilities.lib gibts einen FB namens NT_StartProcess. Mit diesem könnte man z.B. recht einfach das Wget-Beispiel in http://www.sms4.de/cgi-bin/sms_http.pl umsetzten. Wenn's Probleme mit der Kommandozeile gibt, einfach in eine Batch-Datei packen und diese aufrufen. Man könnte auch Telnet-Befehle in eine Batch packen und so eine Email-Schnittstelle bedienen. Übern Browser würde ich es nicht machen, man müsste sicherstellen, dass er auch wieder geschlossen wird.

Das Problem ist WinCE: Ich wollte mal versuchen, Wget für CE zu übersetzen, bin aber noch nicht dazu gekommen. Ich weiß jetzt nicht aus dem Kopf, ob ein Telnet-Client dabei ist, ich glaube aber nicht. Müsste man mal schauen, ob's da was kostenloses gibt.

23
Ankündigungen / Announcements / Re: Referenzen
« am: 07. August 2009, 17:38:01 »
Ich hab sie auch privat in der Haussteuerung im Einsatz (Beckhoff). Super Sache. 8)

24


Nun habe ich, wenn ich aus der Verteilung heraus auf und ab steuern will, nur noch einen Ader frei. Laut VDE Vorschriften darf ich im selben Mantel nur die selbe Spannung (230V) verwenden.



Ich hab diese Aussage schon öfter gehört und mich würde mal interessieren, welche VDE das sein soll. So weit ich weiß, sind verschiedene Spannungen zulässig, insofern die Isolation für die höchste Spannung bemessen ist. Sonst wären fast alle Maschinen bei uns gegen die Vorschrift installiert worden.

Wie dem auch sei, bei nur einer freien Leitung fällt mir nix sinnvolles ein. Ich weiß nicht welche Steuerung du einsetzt, bei Beckhoff würde ich eine EnOcean-Klemme kaufen und entsprechende Taster an die Wand kleben. Dann kannste die Drehschalter ausbauen und die Rollläden zentral ansteuern. Ist halt nur nicht ganz billig.


Gruß,

Tom

25
Das schaut richtig gut aus, Respekt! Flexibel und gut durchdacht. Siehst du eine Möglichkeit, das Ganze auch auf Beckhoff zum laufen zu bringen?

26
Bestehende Module / Existing Modules / Re: Actuator_2P, die 2te
« am: 12. Dezember 2008, 04:21:03 »
Hallo Hugo, noch mal zum Verhalten des Actuator_2P. Der Baustein scheint nicht so zu funktionieren, wie von die beschrieben. Beispiel cycle_time T#20s, min_ontime und min_offtime jeweils T#5s. Bei val < 0.125 (entspricht 2.5s, der Hälfte von min_ontime) schaltet der Ausgang ab, soweit o.K.; bei Werten darüber geht der Ausgang auf minimum 5s (pos 0.25). Bei val-Werten über 0.75 bleibt der Ausgang bei 0.75 hängen, um dann oberhalb von 0.875 auf 1 zu steuern.

Ich verstehe auch die Beschreibung in der Oscat-Doku anders als du oben Beschreiben hast. Dort wird die z.B. min_ontime als Mindestwert beschrieben, unter den der Ausgang nicht geht (sehe ich jedenfalls so) , du schreibst dagegen, dass der Ausgang bei Werten unterhalb gar nicht erst einschaltet. In der Praxis macht der Baustein irgendwie beides zur Hälfte. Etwas schizophren, der Gute. ;)

Ein weiterer Punkt ist, dass die Zeit für die Ansteuerung bei Selbstbetätigung von min_ontime und min_offtime abhängt, bei T#0s habe ich da ein Problem.


27
Bestehende Module / Existing Modules / Re: Actuator_2P, die 2te
« am: 10. Dezember 2008, 00:00:35 »
@volkmarrigo: Meine FBH ist noch in Planung, beim Angebot waren die Möhlenhoff-TSA's dabei, deshalb bin ich davon ausgegangen. Die Zeit stand im Datenblatt: Öffnungs-/Schließzeit 3 Min., über das Diagramm hab ich dann auf ca. 1 Min. Totzeit geschlossen. Nach 3 Minuten sollte auf jeden Fall was zu sehen sein.

Bei Zykluszeiten von 20 Min. ist die Totzeit natürlich nicht mehr so gravierend. Werte unterhalb der Totzeit könnte man dann beim Actuator_2P mit min_ontime ausblenden.

Ich hatte mir die PWM-Regelung allerdings so vorgestellt, dass das Ventil mit Zykluszeiten im Sekundenbereich auf eine bestimmte Position geregelt wird. Tja, falsch gedacht, das läuft hier ganz anders, scheint aber auf Grund der Trägheiten gut zu funktionieren. Kann ich meinen Baustein glatt auf den Mond schießen ... 

Hier steht z.B. was zur Regelung (S. 12): http://www.busch-jaeger.de/pdf/6326_101_triton3fachrtr_handbuch.pdf

Schreib mal bitte, wenn du mehr weißt.

28
Bestehende Module / Existing Modules / Re: Actuator_2P, die 2te
« am: 09. Dezember 2008, 04:33:43 »
Meine FBH ist zwar noch nicht eingebaut, aber ich hab das Problem schon kommen sehen, als ich mir in der Doku zum Antrieb die Kennlinie anschaute. Das Problem ist, dass der Antrieb bei Anlegen von 24V eine Totzeit von über einer Minute hat. Bei einer Ansteuerung mit kleinen PWM-Impulsen dauert das natürlich noch viel länger. Ich hab mir einen extra PWM-Baustein (mit CTRL_PWM) gebastelt, der den Stellantrieb für die Totzeit voll ansteuert, wenn er länger als die Totzeit nicht angesteuert wurde. Selbstbetätigung und manueller Override sind ähnlich wie beim Actuator_2P auch mit drin.

Ich kanns leider nicht testen, da wie gesagt meine FBH noch nicht eingebaut ist.

29
SPS-Hardware / Re: Relaisklemme KL2622 für Rolladenmotor?
« am: 23. Juni 2008, 00:59:10 »
Ohne genauere Angaben zu deinen Motoren lässt sich das nicht sagen.

Allgemein: Anlaufstrom bei Kondensatormotoren ist nicht so hoch, bei Finder steht was von 120%, ein Rollladenhersteller hat mir was von 150% erzählt. Cos Phi ist ebenfalls günstig. Die Kontakte dürfen nicht nur nicht gleichzeitig angesteuert werden, sondern du musst auch beim Umpolen aufpassen: Hier muss unbedingt eine Pause von min. 300ms (lt. techn. Beschreibung von Finder, hab auch schon 200ms gelesen) eingehalten werden, sonst verschweißen dir die Kontakte (Kondensator muss entladen werden). Insofern hilft eine reine Verriegelung eh wenig. Die Pausenzeit ist übrigens in Hugo's blind-Bausteinen schon drin, hab aber den genauen Wert nicht im Kopf.

Aber wie gesagt: Ohne Angabe zu den Motoren kann man nichts genaues sagen und ein Risiko bliebt sicher, da die Lösekräfte bei den kleinen Relaiskontakten nicht groß sind. Bei mir ist das Problem ähnlich: Ich hab aus Platzgründen die Serie 38 von Finder für meine Selve TR1/10 Antriebe im Einsatz (230V/105W/0,45A). Ein Ingengieur von Finder meinte dazu: Müsste gehen, er würde aber die 49er empfehlen, da bei Stromspitzen die Kontakte verschweißen können. Hab aber auch in einem Forum gelesen, dass einer die 38er schon seit Jahren problemlos im Einsatz hat. Ist halt immer so eine Sache.


30
SPS-Programmierung / FlipFlop in ST
« am: 09. Mai 2008, 12:40:52 »
Hi Hugo,

da du dich viel mit Effizienz beschäftigt hast, eine Frage: Ist es in ST besser, einen FlipFlop über ein IF Konstrukt selber zu schreiben normal einen RS/SR Aufruf zu verwenden?

Seiten: 1 [2] 3