BCD zahlen in der s7 314

Beiträge
38
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hi
eine kurze frage
ich will mit der s7 314 58 istwerte und 58 sollwerte in
BCD format nur positive zahlen,also 116 MW auf ein touchpanel übertragen,
ist das überhaupt möglich ?
ich meine wieviel merkerworte hab ich zu verfügung
danke für die hilfe.
gruss
 
Die CP 314 hat 256 Merkerbytes (= 128 Merkerworte). Am einfachsten immer online gehen, Baugruppenzustand aufrufen und auf den Reiter Leistungsdaten klicken. Dort werden die ganzen CPU-spezifischen Operandenbereiche und sowie die verfügbaren Systembausteime angezeigt.
 
hi
danke für die aufklärung.
in den Baugruppenzustand steht Merker 0- 254.7,
mir war aber nicht klar was genau gemeint ist,ob ein
merker ein byte oder ein wort lang ist ,deshalb meine
frage. die antwort von Rainer ist genau das was ich wissen
wollt,das es 254 Merkerbytes sind.danke dafür.

volker ich habe noch nicht soviel erfahrung mit programmieren
das mit dem DB glingt für mich noch etwas kompliziert,
hast du vieleicht ein kleines beispiel für mich,wen das mit
dem DB leichter zu machen geht währe das natürlich
prima
gruss an beide
 
hobby programmierer schrieb:
hi
danke für die aufklärung.
in den Baugruppenzustand steht Merker 0- 254.7,
mir war aber nicht klar was genau gemeint ist,ob ein
merker ein byte oder ein wort lang ist ,deshalb meine
frage. die antwort von Rainer ist genau das was ich wissen
wollt,das es 254 Merkerbytes sind.danke dafür.

volker ich habe noch nicht soviel erfahrung mit programmieren
das mit dem DB glingt für mich noch etwas kompliziert,
hast du vieleicht ein kleines beispiel für mich,wen das mit
dem DB leichter zu machen geht währe das natürlich
prima
gruss an beide
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ein bit aus einem datenwort kannst du in einer s7 genauso behandeln wie ein merkerbit.

die merker halte ich mir lieber für schrittketten etc frei.

du kannst abhängig von der cpu etliche datenbausteine mit etlichen datenworten anlegen.

nehmen wir mal an, du legst dir db10 für deine soll/istwerte an.

du kannst nun auf ein dw folgendermassen zugreifen.
entwerder so

auf db10 //hier wird der datenbaustein geöffnet
L dbw 1 //lade datenbausteinwort 1 //vergleichbar mit L mw 10
auf db11
L dbw 2

oder so
l db10.dbw1
l db11.dbw2
der vorteil von methode 2 ist, dass du nicht von 'hand' den db öffnen musst. das passiert automatisch durch die adressierung.

ein datenbit sprichst du so an
u db10.dbx0.0
= a1.0

spricht aus dem datenwort 0 im db10 das bit null an.
vergleichbar mit
u m0.0
= a1.0

leichter würde ich das nicht nenne. ist eigentlich beides gleich zu behandeln. du spricht immer gewisse speicherbereiche in der cpu an, nur das die eben einen anderen namen haben.

mit db's kann man soviele werte aber besser organisieren und so das programm übersichtlicher halten.

du kannst also z.b. einen db für deine sollwerte anlegen und einen anderen db für deine istwerte.
 
danke für die beispiele
werde es ausprobieren
dauert ein wenig da ich noch
nicht soweit bin mit der hardware
gruss
 
Hallo,

sofern es sich nicht um eine selbstgeschriebene Funktion handelt, in der man nichts mehr ändern muß/sollte, ist die zweite Adressierungsart immer vorzuziehen. Also dbXX.Dbx X.Y. Nur so kann später über die Anwahl von "Gehe Zu --> Verwendungstelle" sinnvoll im Programm nach Querverweisen gesucht werden. Ausserdem ist es dann immer möglich die Symbolik zu nutzen, auch wenn der DB nicht als Instanz DB aktiv ist.
Und selbst ohne Symbolik ist es leichter zu lesen, da man immer sofort sieht um welchen DB es sich handelt, und nicht erst hochscrollen muß um zu gucken welche db irgendwo weiter oben geöffnet wird.

Torsten
 
Zurück
Oben