TIA S5->S7 Hochrüsten

Jean_T

Member
Beiträge
11
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zsm,

ich habe gerade die Aufgabe bekommen ein Programm in S5 auf S7 hochzurüsten. Ich kenne mich leider mit S5 nicht gut aus.

Hardware: S5 115U --> S7 1500 CPU 1511-1PN
Software: Tia Portal V16... hätte auch Step7 Simatic Manager zu Verfügung falls das irgendwie weiterhilft.

Hier ist mein Code:

Code:
FUNCTION FC 3 : VOID
  NAME: NIVEAU
  VAR_INPUT
    _DB       :block_db;  // DB 
    DW        :word;      // DW 
    ADR       :word;      // ADR
    N1O       :int;       // N1O
    N1U       :int;       // N1U
    N2O       :int;       // N2O
    N2U       :int;       // N2U
  END_VAR
  VAR_OUTPUT
    GP1       :bool;      // GP1
    GP2       :bool;      // GP2
  END_VAR
  BEGIN
  NETWORK
       AUF #_DB ;
       L   #DW;
       T   MW 202;
       L   #ADR;  // Analog Eingang Wort --> pH (nicht skaliert)
       SLW 1;
       SRW 4;
       T   MW 200;
       L   #N1O;
       >=I;
       S   M 202.0; 
       TAK;
       L   #N1U;
       <=I;
       R   M 202.0;
       TAK;
       L   #N2O;
       >=I;
       S   M 202.1;
       TAK;
       L   #N2U;
       <=I;
       R   M 202.1;
       U   M 202.0;
       =   #GP1;
       U   M 202.1;
       =   #GP2;
       L   MW 202;
       T   #DW;

und dann wird FC gerufen:

Code:
TITLE = pH Alarm
       CALL FC 3
        ( _DB    :=  DB 100
        , DW     :=  DBW 6
        , ADR    :=  EW 68
        , N1O    :=  1945
        , N1U    :=  1945
        , N2O    :=  1433
        , N2U    :=  1433
        , GP1    :=  M 18.2
        , GP2    :=  M 18.3
        );

Wenn ich das richtig verstanden haben es handelt sich hier um eine pH Messung die gegen 4 Grenzwerte verglichen wird (N1O, N1U, N2O, N2U)

Fragen:

1. Ist die "AUF" Anweisung nötig in TIA Portal? (block_db Datentyp gibt es nicht mehr??) oder kann man da einfach die Symbolische Adressierung zu unserem Vorteil nutzen?

2. Wird #ADR bzw. MW200 gegen N1O, N1U... verglichen?

3. Warum wurde den Analog Eingang Wort verschoben und scheinbar nicht skaliert?
Code:
 L   #ADR;  // Analog Eingang Wort 
       SLW 1;
       SRW 4;
       T   MW 200;

4. Habt ihr hilfreiche Tipps oder Erfahrung bzgl. Hochrüstung?

Vielen Dank im Voraus
J
 

MFreiberger

Well-known member
Beiträge
1.930
Punkte Reaktionen
401
Moin Jean_T,

ist das der ganze Code, der übersetzt werden muss?
Dann würde ich die paar Zeilen gerade neu in SCL schreiben und gut.
Da übersetze ich doch nicht von S5 auf S7.

Oder ist das nur ein (kleiner) Teil des Programms? Auch da sollte man überlegen neu zu schreiben.
S5 -> TIA geht nicht. Da muss sowieso der Umweg über den SIMATIC Manager erfolgen. Je nach Programmgröße und -eigenheiten brauchst Du länger um die Fehler zu eleminieren, als neu zu schreiben. Und: beim Neuschreiben hättest Du nicht solche Unangenehmheiten wie Schmiermerker...

VG

MFreiberger
 
OP
J

Jean_T

Member
Beiträge
11
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hi MFreiberger,

das ist (leider) ein Teil des Programms. Ich dachte ich frage mal nach da diese Schiebe-Anweisungen im Programm oft vorkommen und ich mich nicht so gut auskenne. warum würden früher diese Anweisungen benutzt?

in SCL würde ich sowas wie folgendes schreiben:

Code:
IF #pH_skaliert <= #N1U THEN
    #Störung_N1U := TRUE; //Evtl. Störung Merker eisetzen(?)
END_IF;

IF #pH_skaliert >= #N1O THEN
    #Störung_N1O := TRUE; //Evtl. Störung Merker eisetzen(?)
END_IF;

und das gleiche für N2U und N2O. pH_skaliert natürlich ausgelesen normiert und skaliert...

VG
J
 

Aweeller

Well-known member
Beiträge
110
Punkte Reaktionen
106
Hi MFreiberger,

das ist (leider) ein Teil des Programms. Ich dachte ich frage mal nach da diese Schiebe-Anweisungen im Programm oft vorkommen und ich mich nicht so gut auskenne. warum würden früher diese Anweisungen benutzt?
SLW 1 sollte höchstwahrscheinlich das Vorzeichenbit weglöschen
SRW 4 ist im Endeffekt eine Division durch 8 (im Endeffekt, da vorher mal 2 wegen SLW 1)
 
Zuletzt bearbeitet:

volker

Supermoderator
Teammitglied
Beiträge
5.567
Punkte Reaktionen
960
auf den rechten 3 bit liegen i.d.r statusbits beim s5-analog. deswegen werden die rausgeschoben.
das linke bit ist, wie schon erwähnt, das vorzeichen.
solage keine negativen werten vorliegen können, kann man das so machen. sonst datenmüll
 

Spassbass

Well-known member
Beiträge
84
Punkte Reaktionen
6
Zuviel Werbung?
->Hier kostenlos registrieren
Ich hatte auch erst ein Projekt das wir von S5 in TIA konvertiert haben.
Die Thematik mit den Schieben hatte ich auch, ich bin dann hergegangen und habe die ganzen AWL Bausteine eliminiert und diese neu in SCL oder FUP geschrieben. Bei mir waren das Skalierung von Analgowerten Berechnungen usw.
Man sollte sich nur vorher mal Informieren was die Hardware konnte damit man die Meldungen richtig interpretieren kann.
Ich war erstaunt das man mit den S5 Analogkarten auch 30mA messen kann.
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
18.612
Punkte Reaktionen
5.552
Was ist das für eine S5-Analogkarte, wo das löschen/rausschieben des höchstwertigen Bits was sinnvolles bringt??? Das könnte auch ein Programmierfehler sein, der aber vielleicht noch nicht aufgefallen ist weil die Karte nie negative Werte bringt (bzw. nie Werte mit mehr als 12 Bit).

Harald
 

Thomas_v2.1

Well-known member
Beiträge
8.509
Punkte Reaktionen
2.597
Was ist das für eine S5-Analogkarte, wo das löschen/rausschieben des höchstwertigen Bits was sinnvolles bringt??? Das könnte auch ein Programmierfehler sein, der aber vielleicht noch nicht aufgefallen ist weil die Karte nie negative Werte bringt (bzw. nie Werte mit mehr als 12 Bit).

Harald
Bei den großen 115U / 135U ist das so mit den drei Statusbits, TFÜ, Tätigkeit/Fehler/Überlauf.
 
Oben