DINT Maximalwert

Wolfi_L

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

Ich habe folgendes Problem:

Ich soll von einem Leitrechner eine Teile-ID empfangen und weiterverarbeiten, die Teile-ID ist allerdings 10-stellig (JJMMTT0001), da ein DINT nur bis max. +/-2147483648 geht würde die SW nur bis zum Jahr 2021 verwendbar sein.

das vorzeichen würd ich nicht brauchen weil die zahl immer positiv ist, gibt es ein Möglichkeit das vorzeichen abzuschneiden und statt dessen den Wertebereich zu erhöhen, in einem Anwender lesbaren Format?
oder gibt es ein anderes Format das ich noch nicht kenne?

REAL oder DWORD sind auch begrenzt bzw. nicht lesbar...

Am besten wäre 9999999999 (10-st) aber auch mit 9912319999 wäre mir schon geholfen.

Bitte um Hilfe wenn jemand eine Idee hat?

Danke im Vorraus

Wolfgang
 
Was bedeutet Weiterverarbeiten?

Wie wäre es mit einem String?

Denn Zerteilen und die einzelenen Komponenten JJ MM TT 0001 zu verarbeiten?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich soll von einem Leitrechner eine Teile-ID empfangen und weiterverarbeiten, die Teile-ID ist allerdings 10-stellig (JJMMTT0001), da ein DINT nur bis max. +/-2147483648 geht würde die SW nur bis zum Jahr 2021 verwendbar sein.

Da stellt sich mir die Frage wie Du die Daten empfängst?
Projektierst Du das selber? Was ist mit splitten?
 
Danke erstmal fürs melden,

Mit verarbeiten meine ich, intern weiterschleifen bzw. Teile-ID mit Zeitstempel und weiteren Daten in einen Ringpuffer (DB) eintragen sprich die Teile ID wird Teil eines UDT.
An einen String hätte ich auch schon gedacht, möchte dies aber wenns geht vermeiden da das die Schnittstelle zum PC zusätzlich aufblasen würde bzw. ich intern beim durchsuchen des DB bzw. beim kopieren der Daten in andere DB`s komplexerer Operationen brauchen würde.
wenns nicht anders geht bleibt mir wahrscheinlich nichts anderes über.

Hättest du eine Idee um es anders zu realisieren?

Danke nochmal

mfg wolfgang
 
Bietet sich da nicht der Datentyp DATE an?

uupps- gerade gesehen, dass da ja noch ne 4-stellige Int daran hängt.

Dann geht's mit einfachen Datentypen nicht.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Da stellt sich mir die Frage wie Du die Daten empfängst?
Projektierst Du das selber? Was ist mit splitten?


Ich habe das vorhin falsch formuliert, entschuldige...

Ich empfange die Daten als erstes über Profibus von einer anderen Maschine und muss diese dann einem Leitrechner mit anderen Daten wie Zeitstempel,etc... über MPI in einem DB bereitstellen.

Deshalb ist zerteilen zwar möglich würde das ganze aber ein bisschen komplexer machen...

danke mfg wolfgang
 
Bietet sich da nicht der Datentyp DATE an?

uupps- gerade gesehen, dass da ja noch ne 4-stellige Int daran hängt.

Dann geht's mit einfachen Datentypen nicht.



Aber beim Datentype DATE sind Zeichen wie (-) enthalten bzw. kann ich keine fortlaufende Nummer hinten anhängen was teil der ID wäre...

mfg wolfgang
 
Wie wäre es denn, aus der ID eine UNIX-Zeit zu bauen?
Hat den Vorteil, dass die in ein DINT reinpasst (bis 2037).
Rechnen kann man auch prima damit, es lässt sich nachvollziehen,
wann das Teil gefertigt wurde etc.


PS: nach 2037 sind die DINTs größer oder Du vielleicht pensioniert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
REAL oder DWORD sind auch begrenzt bzw. nicht lesbar...

Am besten wäre 9999999999 (10-st) aber auch mit 9912319999 wäre mir schon geholfen.

begrenzt: ist halt als DWORD zwanzig Jahre später Schluss - 2042

nicht lesbar: muss das im DB für Menschen mit PG lesbar vorliegen? oder reichts, wenn die Visualisierung aus dem Unlesbaren wieder was
verständliches macht (falls Visu vorhanden)?

Deine Daten liegen ja als 9912319999 vor - das lässt sich ja prinzipiell in DINT bzw. DWORD abbilden - natürlich nicht lesbar.
 
Ich würde das auf jeden Fall aufteilen und in der UDT eine Struct anlegen, die die aufgeteilten Daten enthält. Dann kannst du einmal bei Bedarf die Struct "durchreichen" (geht auch noch eine weitere UDT) und andererseits mit den Einzeldaten als normale INT/DINT arbeiten, ohne daß es irgendwelche Beschränkungen gibt. Zum Umkopieren könnte man dann auch einfach mit dem SFC20 arbeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke an alle für die Tips bzw. Ideen!!!

Werd mal ein wenig damit experimentiern...

Als Notlösung hab ich mit dem Entwickler der PC-SW gesprochen und es besteht derzeit noch die Möglichkeit in der 10-stelligen ID nicht das Jahr sondern das Monat an die linken 2 Positionen zu rücken somit würde ich mit einem DINT auskommen, aber mal schaun vielleicht gehts mit euren Tips auch.

Danke nochmal

MFG Wolfgang
 
Zurück
Oben