Neueste Beiträge

Seiten: [1] 2 3 ... 10
1
BECKHOFF / Re: HTTP_GET (Fehler 252)
« Letzter Beitrag von peewit am 13. April 2018, 22:00:17 »
ja, kann man rausfinden , aber ...

die google seite ist nicht so einfach

1. leitet sie den http aufruf auf eine https seite um (verschlüsselung) und das kann deine sps nicht verarbeiten !
2. kann sich die umleitung jederzeit ändern bzw. kann dynamisch erfolgen
3. die menge an daten wird wahrscheinlich sowieso weit über 4096 bytes betragen !

wieso willst du denn umbedingt eine google seite aufrufen ?
 
2
BECKHOFF / Re: HTTP_GET (Fehler 252)
« Letzter Beitrag von climber6 am 13. April 2018, 20:35:25 »
Hallo

Du hast recht, ich war / bin mir dem nicht so richtig bewusst. Das mit der Umleitung bei Google leuchtet mir ein. Weshalb das bei einem Interner Server der Fall ist, ist mir zwar ein Rätsel, kann der Baustein aber wohl nichts dafür.

Gibt es eine möglichkeit, zu eruiren wo diese Umleitung hingeht? Könnte ja dann das auslesen und via Error Meldung irgendwie den neuen Link triggern?

Danke für deine Hilfe!

Gruss
climber
3
Modulentwicklung / Module Development / Re: new module for "moving average"
« Letzter Beitrag von mattsches am 13. April 2018, 12:35:40 »
Provided that you need to change N during runtime, yes, the buffer initialization makes sense. I'd prefer a leaner approach for detecting changes on N, without the A_TRIG_N instance call. But that's just my personal taste.

(* limit N to size of buffer *)
N := MIN(N, SIZEOF(buffer)/4);

(* startup initialisation *)
IF NOT init OR rst OR N = 0 OR N <> N_old  THEN
   init := TRUE;
   FOR i := 0 TO UINT_TO_INT(N)-1 DO
      buffer := X;
   END_FOR;
   sum := X * N;
   Y := X;
ELSE
   i := INC1(i, UINT_TO_INT(N));
   sum := sum + X - buffer;
   Y := sum / N;
   buffer := X;
END_IF;

N_old := N;


With N_old being an FB internal variable, of course.
4
Modulentwicklung / Module Development / Re: new module for "moving average"
« Letzter Beitrag von elconfa am 12. April 2018, 17:09:03 »
 :-[
I have to thankyou! I did not seen that function and your help is very appreciated. I just made a little change because after changing the N variable, I need to send a reset signal for a Plc cycle or the result is wrong.


(* limit N to size of buffer *)
N := MIN(N, SIZEOF(buffer)/4);

A_TRIG_N(IN:= UINT_TO_REAL(N), RES:= 0.5, Q=> rst, D=> );

(* startup initialisation *)
IF NOT init OR rst OR N = 0 THEN
   init := TRUE;
   FOR i := 0 TO UINT_TO_INT(N)-1 DO
      buffer := X;
   END_FOR;
   sum := X * N;
   Y := X;
ELSE
   i := INC1(i, UINT_TO_INT(N));
   sum := sum + X - buffer;
   Y := sum / N;
   buffer := X;
END_IF;
5
Modulentwicklung / Module Development / Re: new module for "moving average"
« Letzter Beitrag von mattsches am 12. April 2018, 15:01:28 »
I don't know if you are aware of the FILTER_MAV_W function block in OSCAT_Basic which does a moving average, although for WORD variables. I needed that for REALs, too, so I modified it and fixed the buffer initialization at the same time. Might be interesting for you, since it seems considerably more compact than your code. If you really need a calculation with 1000 values (which seems a lot to me), you can easily change the size of the "buffer" array.

FUNCTION_BLOCK FILTER_MAV_R
VAR_INPUT
X : REAL;
N : UINT;
RST : BOOL := FALSE;
END_VAR
VAR_OUTPUT
Y : REAL;
END_VAR
VAR
init: BOOL := FALSE;
buffer : ARRAY[0..31] OF REAL;
i: INT;
sum : REAL;
END_VAR
VAR_TEMP
tmp : INT;
END_VAR

(* limit N to size of buffer *)
N := MIN(N, SIZEOF(buffer)/4);

(* startup initialisation *)
IF NOT init OR rst OR N = 0 THEN
init := TRUE;
FOR i := 0 TO UINT_TO_INT(N)-1 DO
buffer[i] := X;
END_FOR;
sum := X * N;
Y := X;
ELSE
i := INC1(i, UINT_TO_INT(N));
sum := sum + X - buffer[i];
Y := sum / N;
buffer[i] := X;
END_IF;
6
BECKHOFF / Re: HTTP_GET (Fehler 252)
« Letzter Beitrag von peewit am 12. April 2018, 07:32:20 »
hallo

ich glaube das du dir der komplexität von webseiten (http) und der ganzen varianten nicht ganz bewusst bist

der fehlercode 302 weisst darauf hin das es eine umleitungsseite gibt
https://en.wikipedia.org/wiki/HTTP_302

du bekommst als antwort den fehlercode 302 und die daten der neuen url mitgeteilt
das ist somit kein fehler sondern eine information und somit ein applikationsproblem da du damit nicht richtig umgehst
der http baustein unterstützt keine automatische umleitung


und bei deinen ersten fehler ist es ziemlich sicher das problem der umleitung wegen verschlüsselung

das das alles im browser ganz normal funktioniert ist auch klar
7
BECKHOFF / Re: HTTP_GET (Fehler 252)
« Letzter Beitrag von climber6 am 11. April 2018, 16:31:22 »
Hallo peewit

Es funktioniert auch ein Webserver im eigenen Netzwerk nicht. Im Browser kann ich die Seite öffnen(http, nicht https), per SPS nicht, resp. es kommt der Fehler..

http Fehler: "302 Found" falls das etwas hilft..

(siehe bild)

Im Browser wird mir aber eine Homepage dargestellt..
8
Ankündigungen / Announcements / OSCAT auf Github
« Letzter Beitrag von MarkusN am 11. April 2018, 14:50:51 »
Hallo zusammen,
wie bereits angekündigt hat das EBC der RWTH Aachen University damit begonnen die OSCAT Bibliothek in ihr Git-Repository zu mirgieren.
Unter https://github.com/RWTH-EBC/AixOCAT findet ihr neben der OSCAT Bibliothek auch Erweiterungen, Beispielprogramme und ein Wiki.

Wir freuen uns auf eure Unterstützung.
Viele Grüße
Markus

9
oscat.lib für CoDeSys 3 / ONTIME Fehler im Quellcode
« Letzter Beitrag von ekki am 11. April 2018, 13:56:14 »
Hallo alle zusammen,
ich weiß nicht ob es hier der Richtige Ort ist das zu Posten aber in der oscat.lib Basic hat der Baustein "ONTIME" einen kleinen fehler in Zeile 5... wodurch das Reseten des Bausteins nicht funktioniert (in keinem Zustand)


I(* read system time *)
tx := T_PLC_MS();

(* make sure the first cycle works correctly *)
IF NOT init OR rst THEN                                       //<------- hier wurden die Klammern vergessen
init := TRUE;
last := tx;
ms := 0;
ELSIF RST THEN
SECONDS := 0;
CYCLES := 0;
ELSIF IN THEN
(* add the current milliseconds *)
ms := (tx - last) + ms;
IF ms >= 1000 THEN
seconds := seconds + 1;
ms := ms - 1000;
END_IF;
cycles := cycles + BOOL_TO_UINT(NOT edge);
END_IF;
ledge);
END_IF;
last := tx;
edge := in;


Zeile 5 müssten die Klammern hinzugefügt werden und so aussehen...
IF NOT (init OR rst) THEN



Mit besten Grüßen
Ekki
10
BECKHOFF / Re: HTTP_GET (Fehler 252)
« Letzter Beitrag von peewit am 11. April 2018, 13:10:24 »
hallo

http://www.google.ch

das liegt wahrscheinlich daran das google auf eine verschlüsselte seite umleitet und das kann die sps nicht !

Seiten: [1] 2 3 ... 10