Step 7 Addition Datentyp Word

Elektro Wolf

Level-1
Beiträge
38
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich bin gerade ein bisschen am überlegen, wie ich Datentyp von WORD von W#16#38 bis W#16#A4 nach jedem Zyklus um 2 erhöhen kann.
Also beispielsweise:

Erster Zyklus = W#16#38
Zweiter Zyklus = W#16#40
Dritter Zyklus = W#16#42
usw...

Ich möchte es vorangig im FUP machen, da ich nur eine Programmiersprache verwenden soll.
Dort finde ich nur ADD Bausteine Typ Int und Real...
Und die Zählerbausteine addieren nur plus 1...

Jemand eine zündete Idee?

Gruß Wolf
 
Richtigerweise sollte man auf den Datentyp INT umschwenken. Ansonsten in AWL schreiben, dort funktioniert das mit WORD/DWORD

Code:
L DeinWord
L 2
+I
T DeinWord

Irgendwann gibt es halt mal einen Überlauf, daran denken
 
Hallo
Also bei mir lässt sich in FUP das Kästchen ADD_I mit dem Datentyp WORD problemlos beschalten.

Es gibt da was "Typüberprüfung ausschalten", ich finde das jetzt auf die Schnelle nicht
aber ich denke auch nicht dass ich das bei mir ausgeschaltet habe.


Wenn alle Stricke reißen schreib dir doch einen Mini FC in AWL und ruf den dann in FUP auf
Kannst ja noch KNOW-HOW Schutz draufhauen dann sieht keiner das böse AWL ;)

EDIT:
WOW hier prasseln ja die Antworten im Minutentakt rein
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ZW gibt doch den Wert an, mit dem der Zähler starten soll.

Stimmt, habe seit der Ausbildung keine Zähler mehr verwendet, ist so ziemlich das überflüssigste was S7 hat...

Nimm AWL oder INT!

Falls dir der Überlauf Sorgen macht nimm DINT, der kann bis 2,1 Mrd. oder REAL der kann noch viel mehr...
 
Falls Du mit Step7 V5.5 arbeitest, dann kannst Du für das eigentlich unzulässige Addieren von WORDs in FUP die ADD_I Box nehmen. Siemens hat da die Typüberprüfung der Operanden fest deaktiviert. Achtung: Die Eingangs-Operanden werden dann automatisch als INT interpretiert.

In TIA hingegen ist das nicht möglich. Da müssen Word-Operanden vor dem ADD auf INT-Variablen umgespeichert werden.

Harald
 
Falls Du mit Step7 V5.5 arbeitest, dann kannst Du für das eigentlich unzulässige Addieren von WORDs in FUP die ADD_I Box nehmen. Siemens hat da die Typüberprüfung der Operanden fest deaktiviert. Achtung: Die Eingangs-Operanden werden dann automatisch als INT interpretiert.

In TIA hingegen ist das nicht möglich. Da müssen Word-Operanden vor dem ADD auf INT-Variablen umgespeichert werden.

Harald

Ist der Ausgang dann auch ein Integer?

Gruß Wolf
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, das Ergebnis ist ein INT, und kann auch wieder auf eine WORD-Variable gespeichert werden, oder auf ein DWORD oder BYTE oder TIME oder ...

Welche Step7-Version hast Du eigentlich?

Harald
 
Step7 V5.5: da geht das ADD_I mit WORD - allerdings läßt sich das dann (zur Zeit) nicht nach TIA konvertieren. Vorher/nachher mit MOVE von WORD-Variable zu INT-Variable und zurück kopieren wäre zwar "sauberer", läßt sich aber auch nicht in TIA konvertieren. Ich weiß nicht was sich Siemens da wieder "gedacht" hat... irgendjemand hat das bestimmt gut gemeint...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Step7 V5.5: da geht das ADD_I mit WORD - allerdings läßt sich das dann (zur Zeit) nicht nach TIA konvertieren. Vorher/nachher mit MOVE von WORD-Variable zu INT-Variable und zurück kopieren wäre zwar "sauberer", läßt sich aber auch nicht in TIA konvertieren. Ich weiß nicht was sich Siemens da wieder "gedacht" hat... irgendjemand hat das bestimmt gut gemeint...

Harald

Ich habe es gerade versucht.Unbenannt.PNG

Konvertieren ist so eine Sache...
Aber ist halt eine Alternative, die ich mir noch offen halte.
Danke!

Gruß Wolf
 
Also bei mir mit V5.5 SP4 HF14 K5.5.4.14 geht das.
Siehe mal im FUP-Editor: Extras > Einstellungen > KOP/FUP > [ ] Typüberprüfung von Operanden (ist bei mir ausgegraut deaktiviert)

PS: Möglicherweise wurde das "Feature" erst mit V5.5 SP4 HF8 eingeführt: http://www.sps-forum.de/simatic/81815-feld-typpruefung-von-operanden-ausgegraut.html

PPS: Was ist das in DB2.DBW0? Könntest Du da nicht den Datentyp auf INT ändern? (das wäre die sauberere, vielleicht sogar richtige Lösung)

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Darf ich, nur so aus Interesse, nach dem genauen Hintergrund der Aktion fragen ...?

Klar! Ich möchte aus einem Energiezähler über Modbus die Werte aus einem Register herauslesen.
Ich kann jedoch nur ein Register pro Anfrage auswerten und müsste demnach alles nacheinander lesen.

Aus diesem Grund der Adressbereich von W#16#38 bis W#16#A4 in 2er Schritten.

Die Werte würde ich dann in ein DB nacheinander aufgelistet schreiben. Zu diesem Punkt muss ich auch noch rätseln, wollte aber zuerst das erste Problem lösen.

Gruß Wolf
 
Unbenannt.PNG

Den Unterreiter finde ich nicht.
Wie gesagt, das mit dem Konvertieren ist so eine Sache...es muss zwingend ein WORD sein.

Ich habe es noch nicht ausprobiert, ob ein Fehler bei der Rückkonvertierung entsteht.
Aber die Option halte ich mir noch offen.

Zurzeit versuche ich es in AWL zu schreiben.

Gruß Wolf
 
Wäre dann nicht SCL der bessere Ansatz ?
Ich denke mal, dass du am Ende deinen Datenblock auch noch sinnvoll aufsplitten und ggf. umrechnen willst ...

Gruß
Larry
 
Zurück
Oben