Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: Skalieren

  1. #1
    Join Date
    04.04.2019
    Posts
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag!

    Ich brauche kleine Hilfe von euch. Ich habe einen ArrayDB und möchte jeder Element skalieren. Ich hab so was geschrieben aber es hat Fehler. Wer kann mir weiter helfen?


    FOR #i := 0 TO 71 DO
    #variable_von_array:= "AnalogDB"."THIS"[#i];

    SCALE(IN := #variable_von_array, HI_LIM := 150, LO_LIM := 0, BIPOLAR := FALSE, OUT => #variable_zurück);


    "AnalogDB"."THIS"[#i] := #variable_zurück;

    END_FOR;
    Reply With Quote Reply With Quote Skalieren  

  2. #2
    Join Date
    05.03.2017
    Posts
    188
    Danke
    1
    Erhielt 26 Danke für 24 Beiträge

    Default

    Na du skalierst ja auch (unendlich oft) den skalierten Wert immer wieder.

    Code:
    FOR #i := 0 TO 71 DO
        #variable_von_array:= HIER_DEIN_UNSKALIERTER_EINGANGSWERT;
        
        SCALE(IN := #variable_von_array, HI_LIM := 150, LO_LIM := 0, BIPOLAR := FALSE, OUT => #variable_zurück);
    
    
        "AnalogDB"."THIS"[#i] := #variable_zurück;
        
    END_FOR;
    Versuchs mal damit

  3. #3
    Boldi is offline Neuer Benutzer
    Themenstarter
    Join Date
    04.04.2019
    Posts
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ich habe so gemacht

    FOR #i := 0 TO 71 DO
    #variable_von_array:= "AnalogeDB"."THIS"[#i];

    #fehlerinformationen :=SCALE (IN := #variable_von_array, HI_LIM := 150, LO_LIM := 0, BIPOLAR := FALSE, OUT => #variable_zurück)
    ;


    "AnalogeDB"."THIS"[#i] := #variable_zurück;

    END_FOR;

  4. #4
    Join Date
    25.06.2017
    Location
    Oerlinghausen
    Posts
    1,387
    Danke
    125
    Erhielt 239 Danke für 192 Beiträge

    Default

    Was soll denn in den ArrayElementen stehen? Der Wert, wie er vor dem Skalieren ist oder der Wert, wie er nach dem Skalieren ist?
    Du könntest z.B. mit 2 Arrays arbeiten. Eines für die unskalierten und das andere für die skalierten Werte.
    Last edited by Heinileini; 15.04.2019 at 10:33.

  5. #5
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    12,739
    Danke
    608
    Erhielt 2,834 Danke für 2,053 Beiträge

    Default

    Quote Originally Posted by Heinileini View Post
    Was soll denn in den ArrayElementen stehen? Der Wert, wie er vor dem Skalieren ist oder der Wert, wie er nach dem Skalieren ist?
    Du könntest z.B. mit 2 Arrays arbeiten. Eines für die unskalierten und das andere für die skalierten Werte.
    Genau so, ein Array für die unscalierten Werte, ein weites für die scalierten. Hat auch den Vorteil, dass man bei unplausiblen Werten mal in beide Array schauen kann.

    @Boldi

    Wie AQ3 schreibt, du nimmst die Werte im DB, scalierst sie und schreibst an die selbe Stelle im DB zurück. Das geht genau einmal, bei zweiten Mal scalierst du die schon scalierten Werte.
    Oder du schreibst jeden Zyklus die Analogwerte in den DB und scalierst sie anschließend. Aber ob das wirklich nötig ist?
    Wenn du mit 2 Array arbeitest, hast du in jedem Fall die bessere Übersicht.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Boldi is offline Neuer Benutzer
    Themenstarter
    Join Date
    04.04.2019
    Posts
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Beispiel.
    Ich habe 72 Eingänge und muss alle skalieren. Ich kann für jeder seine eigene Funktion machen,aber ich dachte es geht auch mit Array. 72 Eingänge skaliere und in den Array rein stecke. Oder?

  7. #7
    Join Date
    25.06.2017
    Location
    Oerlinghausen
    Posts
    1,387
    Danke
    125
    Erhielt 239 Danke für 192 Beiträge

    Default

    Quote Originally Posted by Boldi View Post
    Beispiel.
    Ich habe 72 Eingänge und muss alle skalieren. Ich kann für jeder seine eigene Funktion machen,aber ich dachte es geht auch mit Array. 72 Eingänge skaliere und in den Array rein stecke. Oder?
    Wo sind denn Deine 72 Eingänge? Du nimmst doch gar nicht die 72 Eingänge, sondern holst nacheinander aus den 72 "Schubladen" Deines Arrays irgendwelche Werte, skalierst also Werte, von denen wir gar nicht wissen, ob sie bereits oder noch den 72 Eingängen entsprechen und legst die (zum x-ten Male?) skalierten Werte wieder in denselben Schubladen ab.
    Wie/wo kommen die 72 Eingänge ins Array und wo merkst Du Dir, ob die ArrrayElemente schon skaliert wurden oder noch nicht?

  8. #8
    Boldi is offline Neuer Benutzer
    Themenstarter
    Join Date
    04.04.2019
    Posts
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    Na ja, ich hab jetzt so gemacht und habe genauso was ich brauchte)

    FOR #i := 0 TO 71 DO

    #variable_von_array := WORD_TO_INT(PEEK_WORD(area := 16#81,
    dbNumber := 0,
    byteOffset := #i * 2));

    #fehlerinformationen := SCALE(IN := #variable_von_array, HI_LIM := 150, LO_LIM := 0, BIPOLAR := FALSE, OUT => #variable_zurück);

    "TemperaturenDB"."THIS"[#i] := #variable_zurück;

    END_FOR;

  9. #9
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    13,442
    Danke
    1,086
    Erhielt 3,960 Danke für 3,199 Beiträge

    Default

    Quote Originally Posted by Boldi View Post
    Na ja, ich hab jetzt so gemacht und habe genauso was ich brauchte)

    FOR #i := 0 TO 71 DO

    #variable_von_array := WORD_TO_INT(PEEK_WORD(area := 16#81,
    dbNumber := 0,
    byteOffset := #i * 2));
    Das machst Du aber bei Dir zuhause und nicht in einer richtigen Industrieanlage?
    Wenn durch solch undurchsichtige Programmierung Dein Haus an Wert verliert ist es Dein Problem. Wenn im Problemfall das SPS-Programm verschrottet und neu programmiert wird, dann muß das jemand (teuer?) bezahlen. Hintergrund: so programmiert wird man nur mit übermäßig langem Suchen finden wo Deine Analogeingänge verwendet werden.

    Ist bei Deinem Auftraggeber indirekte Adressierung von Eingängen und Ausgängen erlaubt?

    Was sind das für Analogsensoren daß die alle exakt gleich skaliert werden?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #10
    Boldi is offline Neuer Benutzer
    Themenstarter
    Join Date
    04.04.2019
    Posts
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by PN/DP View Post
    Das machst Du aber bei Dir zuhause und nicht in einer richtigen Industrieanlage?
    Wenn durch solch undurchsichtige Programmierung Dein Haus an Wert verliert ist es Dein Problem. Wenn im Problemfall das SPS-Programm verschrottet und neu programmiert wird, dann muß das jemand (teuer?) bezahlen. Hintergrund: so programmiert wird man nur mit übermäßig langem Suchen finden wo Deine Analogeingänge verwendet werden.

    Ist bei Deinem Auftraggeber indirekte Adressierung von Eingängen und Ausgängen erlaubt?

    Was sind das für Analogsensoren daß die alle exakt gleich skaliert werden?

    Harald
    Hey,sorry, ich bin ganz neu in sps, ich war früher auf IOS(Apple) da läuft fast alles über den Arrays und indirekt. Ich wollte nur nach Hilfe bieten. Wo ist Problem? Wieso so aggressiv?

Similar Threads

  1. Step 7 Zeit skalieren
    By chipchap in forum Simatic
    Replies: 7
    Last Post: 20.06.2016, 14:28
  2. SM 1231 AI 8 x TC skalieren?
    By simon-brl in forum Simatic
    Replies: 0
    Last Post: 01.07.2011, 20:10
  3. Analogwert skalieren
    By Poldi007 in forum Simatic
    Replies: 7
    Last Post: 25.05.2011, 18:16
  4. Analogwerte skalieren!!
    By jack untawega in forum Simatic
    Replies: 1
    Last Post: 02.03.2011, 08:03
  5. Analogwert skalieren!
    By bastler in forum Simatic
    Replies: 33
    Last Post: 07.10.2008, 14:29

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •