INT Zahl mit voranstehender Null

win98

Level-2
Beiträge
109
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich hab mithilfe der sufu mir diesen code zum auslesen der uhrzeit aus dem sfc1 rausgefunden:

L LB 0
BTI
T "Jahr"

"Jahr" ist ein MB147 Byte.

das wir 2009 habe gibt er leider nur "9" aus statt "09"

kann ich das irgendwie umstellen das die null davor steht?
natürlich dynamisch, ich will ja 2010 nicht "010" sondern nur "10" stehn haben.

oder kann ich sogar das komplette jahr ausgeben lassen statt nur die beiden letzten zahlen?

bin für jede hilfe dankbar
 
<<das wir 2009 habe gibt er leider nur "9" aus statt "09">>

Wo gibt "er" 9 aus?
Wenn du z.B. MB147 in einer Variablentabelle ansiehst?
Ob führende Nullen angezeigt werden liegt am Programm, welches die Darstellung übernimmt. Sei es eine Visualisierung dort einstellen (keine Sache des OPC-Servers). Oder bei einem OP dort in der Projektierungssoftware.
Und natürlich kannst du 2000 dazu addieren, geht halt spätestens in 91 Jahren schief...

Gruß Andy
 
ja, die "9" ist so in der vat zu finden und erstmal auf auf meinen OP7 (programmiert mit protool)

das jahr mit 2000 zu addieren ist eig ne gute idee ( das ich da nich selber drauf gekommen bin) denk ma nich das mein projekt 91 jahre hält^^

die monate hab ich jetzt auf hexadezimal gestellt (danke für den hinweis das auf protool zu machen). für die minuten und sekunden ist das schlecht da dann irgendwann buchstaben dazukommen....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
gut frage....


...aber mir is grad was komisches passiert. ich muss ja den FC7 indem meine uhrzeit auslesen funktion steht in den ob1 einbinden. wenn ich das mache, verändert sich komischerweise meine analogmessung.... statt 23 bekomm ich 71 angezeigt. wenn ich den FC7 aus netzwerk 25 wieder lösche steht normal 23 da. was isn da passiert?
 
Ohne Code weiß das niemand genau, aber ich tippe mal auf nicht initialisierte oder falsch verwendete Temp-Daten, die bei der Ananlogmessung, bzw. dem FC/FB dazu verwendet werden. Temp-Daten gelten nur einen Zyklus lang und nur nachdem sie vorher in diesem Zyklus auch beschrieben wirden. Man kann sie also nicht nutzen, um über mehrere Zyklen irgendwelche Daten darin zu halten. Dazu muß man DB-Daten, Statische Variablen (FB) oder Merker nutzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok..

hab das mal jetzt angehängt.

an meinerm AI hängt ein pt100.

in der form wie es jetzt im anhang ist, gibt er um die 23 aus (23° stimmt auch). sobald ich jetzt im OB1 in netzwerk 25 den FC 7 einbinde, und das programm lade gibt er 71 aus...

hab schon in der symboltabelle geschaut ob sich vllt irgendwelche bytes oder so überschneide, aber ich denke nicht
 
Zuletzt bearbeitet:
@ralle:
so sieht meine analogmessung aus:
http://s2.imgimg.de/uploads/Unbenanntb173269bJPG.jpg

rohwert ist der eingang meiner ai karte und endwert ist mein merkerwort.

ich weiß nich ob da der fehler ist, weil das ja so funktioniert, nur verändert sich das wenn ich den FC7 in den OB1 einbinde...

Schreib mal noch vor allen Netzwerken:

CLR
= #bipolar

oder, wenn du es in KOP/FUP darstellbar haben willst und einen Nullmerker definiert hast:

U "Nullmerker"
= #bipolar
 
Hab ich doch schon geschrieben.
Eine temp gilt nur in dem einen Zyklus. Will man die verwenden, muß man vorher einen Wert hineinschreiben, sonst hat sie irgend einen beliebigen Wert. Den Temp-Bereich nutzen alle FC/FB, also kann es darin Änderungen geben, wenn du den FC7 einfügst und dieser auch Temp-Var nutzt. Da dein #bipolar nirgends einen Wert zugewiesen bekam war er halt beliebig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn sich die Variable #bipolar ändert, nimmt der FC105 andere Werte zum Berechnen deines Ausgangs. Bei BIPOLAR skaliert er zwischen -27648 und +27648 (hier kommt 71 raus) und bei UNIPOLAR zwischen 0 und +27648 (da kommt 23 raus)
Warum sich #bipolar ändert hat Ralle dir ja schon erklärt
 
Was zeigt er dann aber 2010 an, wenn er den BCD-Code direkt als Hexadezimal in ProTool anzeigt?????

@Ralle:
Wenn er die 2010 als BCD Zahl hat is das ja völlig richtig.
Will er die Jahreszahl durch addieren von 2000 generieren muss er halt

L ....(Jahr aus dem SFC)...
BTI
L 2000
+I
ITB
T MW1234

machen und MW1234 dann in protool als HEX darstellen
 
@Ralle:
Wenn er die 2010 als BCD Zahl hat is das ja völlig richtig.
Will er die Jahreszahl durch addieren von 2000 generieren muss er halt

L ....(Jahr aus dem SFC)...
BTI
L 2000
+I
ITB
T MW1234

machen und MW1234 dann in protool als HEX darstellen

Es geht um die Darstellung in ProTool dachte ich und da sollte es schon einen Unterschied machen, ob er in seinem Byte BCD drinstehen hat und als hex anzeigt. Das wird er dann 2010 u.U. überrascht sein. Das muß er auch für die Anzeige umrechnen mit BTI, damit das 2010 auch noch paßt. Oder Kann ProTool BCD direkt darstellen?
 
Zurück
Oben