OP7 und Werte anzeigen >32767

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich müsste ein paar Zähler aus der S5 anzeigen lassen, welche Werte bis 60000 beinhalten. muss ich da mit einem Überlaufzähler arbeiten oder gibts einen Trick den 'wahren' Inhalt anzeigen zu lassen?

MfG
Detlev
 
S5 Zähler bis 999.999.999

das geht nicht. es sei denn du hast eine 135u. die kann doppelworte.

ich benutze für sowas dann mehrere datenworte.

Code:
Netzwerk 1
Name :ZAEHLER
Bez  :TAKT      E/A/D/B/T/Z: E  BI/BY/W/D: BI
Bez  :HIM       E/A/D/B/T/Z: E  BI/BY/W/D: BI
Bez  :EINE      E/A/D/B/T/Z: A  BI/BY/W/D: W
Bez  :TAUS      E/A/D/B/T/Z: A  BI/BY/W/D: W
Bez  :MILL      E/A/D/B/T/Z: A  BI/BY/W/D: W

Netzwerk 2                   Zaehlt bis 999 999 999           AWL Ausgabe
     :AWL
     :
     :U   =TAKT                                Zaehlimpuls
     :UN  =HIM                                 HIM
     :SPB =M001
     :SPA =M002
     :                                         --------------------------------
M001 :S   =HIM
     :
     :L   =EINE
     :L   KF +1                                Einer um 1 erhoehen
     :+F
     :T   =EINE
     :
     :L   =EINE
     :L   KF +1000
     :>=F
     :SPB =M003
     :SPA =M002
     :                                         --------------------------------
M003 :L   KF +0
     :T   =EINE
     :L   =TAUS
     :L   KF +1                                Tausender um 1 erhoehen
     :+F
     :T   =TAUS
     :
     :L   =TAUS
     :L   KF +1000
     :>=F
     :SPB =M004
     :SPA =M002
     :                                         --------------------------------
M004 :L   KF +0
     :T   =TAUS
     :L   =MILL
     :L   KF +1                                Millionen um 1 erhoehen
     :+F
     :T   =MILL
     :
     :L   =MILL
     :L   KF +1000
     :>=F
     :SPB =M005
     :SPA =M002
     :                                         --------------------------------
M005 :L   KF +0
     :T   =EINE
     :T   =TAUS
     :T   =MILL                                Milliarde erreicht, alles Nullen
     :                                         --------------------------------
     :
M002 :UN  =TAKT
     :RB  =HIM
     :
     :***
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Stimmt...

So, das erste mal mit Login - wurde auch langsam Zeit :)

Yepp, habe leider eine 115U, man vergisst schnell mal diese Beschränkungen, ich arbeite sonst eigentlich fast ausschliesslich mit der CPU948.
Mal sehen wie sich das dann am OP darstellen lässt, da per Variable ja immer eine Stelle mehr deklariert als angezeigt wird. Und langsam muss ich wohl mal ein RAM stecken, denn dadurch wird das Programm erheblich größer, denn es geht um 30 Zähler...

Man könnte ja auch auf zwei Datenworte aufteilen, das würde ja dann reichen, das meinte ich mit dem 'Überlaufzähler'.

MfG
Detlev
 
du könntest folgendermassen vorgehen.

du benutzt 2 datenworte für deine zahl
z.b. 54321
in dw1 steht die 54, in dw2 die 321
nun nimmst du fb242 und multipilzierst dw1 mit 1000
das ergebnis legst du nach dw3 und dw4

im op benutzt du die funktion linear umrechnen.
dort addierst du dd3 und dw2
das ergebnis legst du in dd5 ab.

dieses dd5 kannst du im op7 darstellen da dies auch doppelworte anzeigen kann.
 
Jo mei, wie geht denn des ;-)

volker schrieb:
du könntest folgendermassen vorgehen.

du benutzt 2 datenworte für deine zahl
z.b. 54321
in dw1 steht die 54, in dw2 die 321
nun nimmst du fb242 und multipilzierst dw1 mit 1000
das ergebnis legst du nach dw3 und dw4

im op benutzt du die funktion linear umrechnen.
dort addierst du dd3 und dw2
das ergebnis legst du in dd5 ab.

dieses dd5 kannst du im op7 darstellen da dies auch doppelworte anzeigen kann.

Mmmh, habe jetzt einiges getestet, aber im OP finde die Funktion "Linear Umrechnen 1 und 2, aber nicht mit 3 Variablen - die ich laut deinem Vorschlag brauchen würde. Vielleicht war ich auch heute nach 7 Stunden programmiereri einfach nur zu genervt um das Problem noch anzugehen.
also die Formel im OP sieht quasi so aus:
X=X*Faktor+Y
Somit steht für X+Y jeweils nur ein Operand. Bei deinem Vorschlag müsste es aber vereinfacht gesehen
Z=X+Y
heissen, was ich aber so nicht finde.
Ich glaube, ich bin einfach nur zu müde - aber am Donnerstag gehe ich das Problem frisch an, ohne vorher was anderes zu machen :wink:

Aber dennoch danke vorerst für die Hilfe! (Der Weg ist das Ziel)

MfG
Detlev
 
Zuviel Werbung?
-> Hier kostenlos registrieren
y=a*x+b
der aus der steuerung gelesene x-wert wird umgerechnet bevor er als y angezeigt wird.
deine variable ist also dd3 (x) und b ist dw2.
sollte eigentlich gehen.
 
Hallo Volker,
cool, grad online - direkt Nachricht von dir :lol:
volker schrieb:
y=a*x+b
der aus der steuerung gelesene x-wert wird umgerechnet bevor er als y angezeigt wird.
deine variable ist also dd3 (x) und b ist dw2.
sollte eigentlich gehen.

Gestern hatte ich es so versucht, da meckert das OP rum, das ich keine Werte größer 1 004 345 123 237 anzeigen darf (Die Zahl weiß ich nicht mehr genau, aber die Stellenzahl stimmt so in etwa). Obwohl ich in meinen 'lesenden' DWs und DDs nur noch eine "1" drin hatte, kam diese Meldung immer noch. Wie gesagt, vielleicht war ich ja auch einfach zu müde und habe irgendwas übersehen - morgen weiß ich mehr.

Danke dir nochmals
Detlev
 
Hallo Volker
volker schrieb:
y=a*x+b
quote]

also ich bekomme es nicht hin.
Ich sollte ja dd2 +dw3 am Op damit rechnen und in dd5 ablegen (als Beispiel).
Das wären 3 Variablen, die ich in der Formel aber nirgends unterkriege.
Y=kann man nicht zuweisen, wird am OP angezeigt
a=Multiplikator
b=Variable (DW3)
x=Variable aus Steuerung (dd2)

Wenn ich das so mache kann ich rumexperimentieren wie ich will, ich bekomme meinen Zählerstand nie korrekt angezeigt. dd5 von deinem Beispiel benötige ich ja eigentlich nicht, denn der Wert wird ja am Display 'abgelegt', also Y.

Ich habe jetzt für meine Zähler vorab mal die Bilder aufgeteilt, da ich für die Darstellung etwas mehr Platz benötige, z.B.:
x12x345 , wobei das x für die eine Stelle mehr steht, die man ja leider parametrieren muß. x12 ist dann z.B. DW1(Tausender) x345 ist dann z.B. DW2(0-999).

Wenn ich die Woche nochmal Zeit habe, werde ich mich nochmal damit befassen.

MfG
Detlev
 
Zurück
Oben