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 - mattsches

Seiten: [1] 2 3 ... 18
1
oscat.lib fuer Step 7 / Re: Siemens Kündigt S7 300 Baureihe ab
« am: 16. Mai 2022, 20:56:04 »
Ich glaube eher, das Löschen hat eine andere Ursache. Von mir sind auch Anhänge verschwunden, die vorher aber lange online waren. Ich tippe eher auf ein technisches Problem mit der Forensoftware oder der Datenbank, die vermutlich dahinter liegt (MySQL o. ä.). Vielleicht musste auch aus Speicherplatzgründen gelöscht werden.

Das Forum hier läuft ja allenfalls noch auf Sparflamme. Peewit dürfte der letzte Mohikaner aus der Truppe sein, die die OSCAT Bibliotheken seinerzeit erschaffen haben. Dass das Forum überhaupt noch lebt (für den Webspace wird ja irgendwer zahlen müssen), grenzt für mich schon an ein Wunder. Aber bösen Willen seitens der Admins würde ich nicht unterstellen, eher erlahmtes Interesse - was für mich durchaus nachvollziehbar ist, wenn ich mir überlege, dass das alles in der Freizeit erbracht wurde.

2
oscat.lib for q4Logix / Forenbereich löschen
« am: 26. April 2022, 12:42:35 »
Ich glaube, den Bereich hier kann man getrost löschen. Außer dem Ankündigungsthread ist seit fünf Jahren nichts passiert, und die News auf der Seite von qmd4 enden im Jahr 2017 (https://www.qmd4.com/index.php/news.html). OSCAT-Bibliotheken dürfte es für dieses System kaum geben, geschweige denn Nutzer, die sich hier darüber austauschen würden.

3
SPS-Programmierung / Re: Dimmen per Zeit
« am: 07. Januar 2022, 16:52:17 »
bei dem Datum sind 2 Tage drin, wie kann ich das dann verstellen?

Ich verstehe die Frage nicht ganz. Wo sind zwei Tage drin? Das Ganze ist ein Beispiel, ich schalte da eine Lampe unter bestimmten Bedingungen aus, nicht nur über die Uhrzeit. Du müsstest bei dir natürlich auf die gewünschte(n) Zeitpunkt(e) vergleichen. Und wenn diese Uhrzeit verstellbar sein soll (im Sinne von einstellbar über eine Bedienoberfläche), dann müsstest du sie natürlich auf Variablen legen.

Wie du das Licht dann tatsächlich schaltest, und welche Bausteine es dafür gibt, kannst du prima in der Doku der OSCAT_BUILDING nachlesen. Ich habe wie schon gesagt z. B. den DIMM_2 im Einsatz. Wobei die Auswahl des Bausteins natürlich davon abhängt, wie genau du denn dimmen willst. Den DIMM_2 habe ich an einer Dimmerklemme im Einsatz, die einen Analogwert als Sollwert erwartet. Für nicht dimmbare Lampen (an/aus) kannst du z. B. einen SWITCH_I nehmen.


4
SPS-Programmierung / Re: Dimmen per Zeit
« am: 04. Januar 2022, 20:33:03 »
Hallo Matze,

die Uhrzeit kannst du mit dem FB "RTC" auslesen (TcUtilities.lib, kurioserweise in der Kategorie "Converting + Formatting"). Vorher muss sie aber mindestens einmal gesetzt werden, was über denselben Baustein geht. Wie das geht, ist in der Doku ganz gut beschrieben: https://infosys.beckhoff.com/index.php?content=../content/1031/tcplclibutilities/html/tcplclibutilities_rtc.htm&id=

Um auf eine Uhrzeit reagieren zu können (also das Datum außer Acht zu lassen), ist eine zyklische Überführung in eine Variable vom Typ TOD sinnvoll:

todTime := DT_TO_TOD(dtDateTime);
Die kannst du dann im Code ganz einfach gegen die entsprechenden Schaltzeiten vergleichen:

Reset:= bAwayLongTerm AND
(todTime=tod#19:34:52 + tRandomTimeOffset OR
todTime=tod#07:11:23 AND NOT Dunkelheit_TOF.Q OR
todTime>tod#07:11:23 AND Dunkelheit_FN.Q ),

Mit dem Ergebnis eines solchen Vergleichs könntest du dann zu einer bestimmten Uhrzeit z. B. den SET-Eingang eines DIMM_2 beschalten und über VAL den gewünschen Schaltpunkt vorgeben. Ich würde dabei wirklich auf "=" vergleichen, damit die Vorgabe nur als Impuls von einer Sekunde dauer erfolgt und davor und danach weiterhin manuell gedimmt werden kann.

5
Wenn du nur Bausteine brauchst, die die erwähnten Bibliotheken nicht erfordern, dann ist es vermutlich das einfachste, die benötigten Bausteine aus der Bibliothek in dein Projekt oder in eine eigene Bibliothek zu kopieren. Nicht sehr elegant (wirklich nicht), aber vermutlich der pragmatischste Ansatz.

6
Andere Projekte / other Projects / Re: CODESYS compiler output file
« am: 04. Januar 2022, 12:50:52 »
There is no way I know of how you can get hold of the compiler output as a file. And there is no use for it, at least not for debugging the PLC code. For that, you just transfer your program into the PLC and do the debugging in the programming editors while online. Don't see how any intermediate file format would help there.

P. S. This is not OSCAT related, don't expect many responses here. I guess you're better off in the SPS forum. in which you already posted (https://www.sps-forum.de/threads/einsteig-mit-festo-cecc-s-und-codesys.106211/).

7
Hi George, just open the library stored on your hard drive like you open a project (File -> Open).

8
Ich kann nur mutmaßen, wofür du das Programm brauchst. Studienarbeit? Facharbeit? Für die Ausbildung? Genau danach hört es sich für mich an. Und da ist mein spontaner Impuls immer: Schau dir deine Ausbildungsunterlagen an, sprich mit Mitschülern/Kommilitonen und/oder wende dich an den Ausbilder/Professor. Aber frage nicht in einem Forum, ob dir nicht jemand das mal eben programmieren kann, um dann einfach copy & paste machen zu können. Wenn du später bei der Inbetriebnahme in der zugigen Maschinenhalle sitzt, wirst du deine Aufgabenstellung auch selbst lösen müssen.

Von alledem abgesehen: Was bewegt dich, diese Frage

a) in einem Forum zu stellen, das sich auf eine konkrete Bibliothek bezieht, die mit deiner Anwendung nichts zu tun hat und
b) dort auch noch im Bereich "Home Automation"?

Weißt du, was eine Stern-Dreieck-Schaltung ist und wann sie eingesetzt wird?

10
oscat.lib fuer CoDeSys 3 / Re: 3.5 SP17 & OSCAT 3.3.4.0
« am: 21. Juli 2021, 18:07:22 »
In CODESYS V3.5, you need to add the library's namespace as prefix to the declaration. The namespace is defined in the Library Manager in your project. If you set it to OSCAT_BASIC, your declaration should read

VAR
  PWM_DC_0: OSCAT_BASIC.PWM_DC;
END_VAR

11
Nachdem du die Frage hier im Forum der OSCAT.lib stellst und nicht etwa im SPS-Forum, beziehe ich meine Antwort auch darauf. Was du machen willst, ist ein HTTP_GET-Aufruf. Dazu gibt es in der OSCAT Network Lib einen geeigneten Baustein (der auch genau so heißt). Die URL wird dabei als String übergeben, den du zuvor aus einer Konstante und einem variablen Teil zusammensetzen müsstest.

Der HTTP_GET wird allerdings nicht alleinstehend eingesetzt, sondern von anderen Bausteinen (IP_CONTROL, DNS_CLIENT) flankiert. Wie man das macht, kannst du dir z. B. in den *_WEATHER-Bausteinen anschauen.

Antworten bzgl. Wago-Bibliotheken bekommst du vermutlich eher im SPS-Forum oder beim Support von Wago.

12
Der Baustein werkelt im Wetterbaustein für Weatherbit.io. Siehe Link im ersten Post.

13
SPS-Programmierung / Re: BLIND_NIGHT doesn't work
« am: 22. April 2021, 17:33:55 »
Hi dawrut,

I found some issues with BLIND_NIGHT when I started using it and more or less rewrote its code. Don't remember if your issue was among my findings (more than seven years ago), but if you want, you can try if my version fixes your problem.

Declaration:
FUNCTION_BLOCK BLIND_NIGHT
VAR_INPUT
UP, DN : BOOL;
S_IN : BYTE;
PI, AI : BYTE;
E_NIGHT : BOOL := TRUE;
E_DAY : BOOL := TRUE;
END_VAR
VAR_INPUT CONSTANT
SUNRISE_OFFSET : TIME;
SUNSET_OFFSET : TIME;
NIGHT_POSITION : BYTE;
NIGHT_ANGLE : BYTE;
END_VAR
VAR_IN_OUT
CX : CALENDAR;
END_VAR
VAR_OUTPUT
QU, QD : BOOL;
STATUS : BYTE;
PO, AO : BYTE;
END_VAR
VAR
night : BOOL;
last_night, last_day : DATE;
END_VAR

(*
version 1.2 6 oct 2007
programmer hugo
tested by tobias


*)

Code:
IF NOT (up AND dn) AND night THEN
(* manual operation at night will cancel operation for one night *)
night := FALSE;
ELSIF (cx.LTOD > cx.SUN_SET + sunset_offset) AND (last_night < cx.LDATE) AND NOT night AND e_night AND UP AND DN THEN
(* enable night *)
night := TRUE;
last_night := DT_TO_DATE(cx.LDT);
ELSIF (cx.LTOD > cx.SUN_RISE + sunrise_offset) AND (last_day < cx.LDATE) AND night AND e_day AND (last_night < cx.LDATE) AND UP AND DN THEN
(* disable night *)
night := FALSE;
last_day := DT_TO_DATE(cx.LDT);
END_IF;

(* shade at night only in auto mode and enable = true *)
IF UP AND DN AND night THEN
status := 141;
po := night_position;
ao := night_angle;
ELSE
po := pi;
ao := ai;
status := s_in;
END_IF;

QU := UP;
QD := DN;


(* revision history
hm 29. sep 2007 rev 1.0
original version

hm 5. oct 2007 rev 1.1
added enable input

hm 6. oct 2007 rev 1.2
added pos and angle inputs and outputs
night position and angle can now be configured
any manual operation at night will cancel night operation

md 29 dec 2013 rev 1.3
added CX variable for sunrise, sunset and date and time information;
activated night program only if automatic mode is detected (i.e.
don't skip auto closing when in manual mode);
corrected missing QU/QD assignment when in night mode

md  12 jan 2015 rev 1.4
removed type conversion for TOD and DATE variables by directly
accessing cx.LTOD and cx.LDATE members

*)

Please note that the block now uses one CALENDAR parameter instead of the SUNRISE, SUNSET and DT parameters. The calendar variable is fed by a CALENDAR_CALC FB instance which does some additional calculations I found useful. If you prefer the original style of dedicated parameters, you can easily change my code back to that approach.

Have you checked the times for sunrise and sunset calculated by SUN_TIME?

Cheers,
mattsches

14
Hallo,

ich komme gerade nicht dazu, den Baustein auf 3.5 zu portieren. Aber du müsstest die Exportdatei eigentlich ganz gut importieren können. In der Regel passen dann die Referenzen auf die aufgerufenen Bausteine nicht, weil in 3.5 mit Namensraum gearbeitet wird (<Namensraum>.<FB_Name>), was in 2.3 nicht der Fall war.

Gruß,
mattsches

15
Änderungsvorschlag:

SUN_TIME, Zeile 5 der Klarheit halber ändern von
UTC : DATE; (* world time *)in
DAY : DATE; (* date of day to calculate times for *)
und Zeile 32 in CALENDAR_CALC von
sun(latitude := XCAL.LATITUDE, longitude := xcal.LONGITUDE, utc := DT_TO_DATE(xcal.UTC), H := H);in
sun(latitude := XCAL.LATITUDE, longitude := xcal.LONGITUDE, day := xcal.LDATE, H := H);
Dann wird der Baustein weiterhin um Mitternacht Lokalzeit getriggert, rechnet aber die Sonnenstandszeiten für den aktuellen Tag und nicht für den Vortag.

Seiten: [1] 2 3 ... 18