Neueste Beiträge

#1
Modulentwicklung / Aw: HTTP_GET - mit Authorizati...
Letzter Beitrag von peewit - 18. Februar 2025, 19:00:23
nein, was fertiges gibt es nicht aber das prinzip ist relativ klar

der HTTP_GET Baustein arbeitet nur mit dem HEADER und URL PARAMETER und benutzt keinen BODY
und ein HTTP_POST Baustein hat keine URL PARAMETER aber HEADER und BODY DATEN

Dein Ablauf erfordert folgende Schritte

1. Mittels HTTP_POST Abfrage bekommst du einen SESSION-COOKIE als Antwort
   Nachdem die SPS Bausteine keinen Browser nachbilden werden die SESSION-COOKIE auch nicht automatisch
   verwaltet. Somit ist es deine Aufgabe aus der Antwort den SESSION-COOKIE zu sichern.

2. Mit HTTP_GET und dem SESSION-COOKIE kann du dann eine REQUEST_ID abfragen

3. Mit HTTP_POST kannst du dann mit SESSION-COOKIE und REQUEST-ID und SMS Daten den SMS Versand starten.

den HTTP_POST Baustein gibt es noch nicht aber im Prinzip relativ einfach aufgebaut.
Aber das ist trotzdem für ungeübte relativ kompliziert.

Ein möglicher Schritt wäre die Befehle zuerst manuell mittels CURL auszuführen und gleichezeitig den Datenverkehr mit Wireshark aufzuzeichnen. Dann kann man sehr schön analysieren welche Daten und in welcher Form die DAten ausgetauscht werden.


Das Modem bietet aber auch alternative Protokolle die einfache umzusetzen wären.
Wie z.b. eine klassische Telnet Verbindung.
Damit wirst du vermutlich eher zurecht kommen.

LG peewit


#2
Modulentwicklung / Aw: HTTP_GET - mit Authorizati...
Letzter Beitrag von peter.haider - 13. Februar 2025, 10:43:26
Einen schönen Tag,
10 Jahre später erfordert die HTTP_GET Kommunikation nun eine Session-ID.

Gibt es eine Version des Baustein, die das kann?
Hier der Kommunikationsablauf.
https://download.bellequip.at/HTTP_API_ab_Firmware_5.3.1.pdf


Besten Dank im Voraus
#3
SPS-Programmierung / Aw: Wer kann mir was programmi...
Letzter Beitrag von hugo - 22. Januar 2025, 16:56:37
Beschreib doch mal hier einen Baustein, denke damit können mehr Leute was anfangen als mit einer fiktiven anfrage
#4
SPS-Programmierung / Wer kann mir was programmieren...
Letzter Beitrag von martin.k - 03. Januar 2025, 22:21:23
Ich suche jemanden der mir einige Oscat-Bausteine in Codesys3 zusammensetzt, damit ich sie auf einer Wago PFC200 laufen lassen kann.

Ich habe eine konkrete Aufgabenstellung incl. Visualisierung, die ich zwar Niederschreiben, aber nicht programmieren kann. :-(

Wenn jemand interesse hat, würde ich es hier mal veröffentlichen.
DANKE

Gruß
Martin
#5
Modulentwicklung / Aw: Neuer Baustein zum Parsen ...
Letzter Beitrag von jensen17 - 20. November 2024, 18:53:52
Hallo, nutze schon lange Oscat Bausteine, danke dafür erstmal. Ich bräuchte Unterstützung um den obigen Code des Json Parsers in PCWORX umzuschreiben. Gerade bei der Pointer-Geschichte komme ich nicht weiter.
Möchte eine Panasonic Wärmepumpe über Heishamon mit Http auslesen und bekomme ein Json zurück.
Danke
#6
Bestehende Module / Existing Modules / Aw: Streckenabhängige Baustein...
Letzter Beitrag von hugo - 08. November 2024, 10:37:05
Ich schlage vor wir bauen einen Baustein wie folgt:

Eingänge:
Start: Eingang Bool, wenn aktiviert, startet mit einem Strich, indem intern ein Offset auf den Wert von Run gesetzt wird. Wir starten also immer mit dem Strich!
on: Strichlänge in Meter
off: Lücke in Meter
run: die Lauflänge in Meter
out: True, wenn der Strich aufgetragen wird.

Code:
if start and not active then // steigende Flanke am start erkannt
   offset := run; // offset wird auf run gesetzt, damit wir bei 0 beginnen
endif

active := start; // active merkt sich den Zusatnd für die Flankenerkennung

if (active and ((off + on) >= 0)) then // wir müssen division durch 0 verhindern
   out := ((run - offset) mod (off + on) <= on; // die eigentliche Funktion die den Ausgang steuert
else out := false;
endif



#7
Ankündigungen / Announcements / Aw: Update of Forum Software
Letzter Beitrag von tobias - 08. November 2024, 10:00:01
Das Forum wurde auf SMF 2.1.4 geupdated.
the forum software has been updated to 2.1.4.
#8
du hast selbstverständlich recht.

ein IF, um dann einen Bool zu setzen ist immer nutzlos:

um bei meiner Implementierung zu bleiben wäre es so:
dein Code ist im Prinzip fast das gleiche.

Ob man mit Strich oder Lücke anfängt ist eine Frage ja.
eine andere wird dann: wenn der Baustein nur ein IEC 61499 Event für jeden Strich Anfang liefern soll. das muss ich noch austüfteln.


ALGORITHM REQ

DIST_REMAINDER := (DIST_IN + DIST_OFF) MOD (DIST_HIGH + DIST_LOW);

Q := (DIST_REMAINDER >= DIST_HIGH);

END_ALGORITHM
#9
Bestehende Module / Existing Modules / Re: Streckenabhängige Baustein...
Letzter Beitrag von hugo - 06. November 2024, 14:42:24
franz, ich denke das if kannst du dir sparen

OUT := (Run mod (Off + On)) >= Off; dieser Baustein beginnt mit einer Lücke.
OUT := (Run mod (Off + On)) <= On; und der beginnt mit einem Strich.

für einen Kombibaustein würde ich Folgendes vorschlagen:

X: interne variable
Offset: Interne Variable // dient zum Kalibrieren um bei beliebigem Run anfangen zu können
Cal: Boolscher Eingang // setzt Offset auf Run wenn True
Start: Eingang Bool // wenn True starten mit Lücke, wenn 0 starten mit Strich
On, Off: Eingänge
Out: Booscher Ausgang

If Cal Offset := Run;
if (Off+On) > 0 then X := ((Run-Offset) mod (Off + On)); wir dürfen nicht durch 0 teilen!
If Start then OUT := X <= On; else OUT := X >= Off;

Mit dem Eingang Cal kann man zu Beginn die Logik Kalibrieren, damit man mit beliebigem Run starten kann.
#10


https://github.com/eclipse-4diac/4diac-ide/pull/644

https://github.com/eclipse-4diac/4diac-ide/blob/be33b38cf418a42cac9cf5fa24a215ba33243133/data/typelibrary/signalprocessing-1.0.0/typelib/distance/RangeBasedPulse%20.fbt#L40

ja, so hab ich es auch gemacht:


ALGORITHM REQ

DIST_REMAINDER := (DIST_IN + DIST_OFF) MOD (DIST_HIGH + DIST_LOW);

IF (DIST_REMAINDER >= DIST_HIGH) THEN
   Q := TRUE;
ELSE
   Q := FALSE;
END_IF;

END_ALGORITHM