TIA Eindeutige ID im SPS Programm generieren?

shgbass

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

gibt es eine Möglichkeit im SPS Programm (TIA V18) eine SPS-weit eindeutige ID generieren zu lassen?
z.B. ich habe einen Standard-Baustein der mehrfach im SPS Programm instanziiert wird.
Jeder Baustein soll nun eine eindeutige ID generieren...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine erste Idee wäre so etwas Nummer der Instanz + aktuelle Uhrzeit. Eventuell könnte es auch reichen, in jeder Instanz die Systemzeit neu abzufragen, es sollten schon Unterschiede in den Nanosekunden sichtbar sein. Kommt eben auf den Verwendungszweck an.
 
Darf man fragen, wozu das ganze gut sein soll?
Während der Programmlaufzeit neue FB-Instanzen generieren (geht das überhaupt???)
Reicht es nicht, wenn das TIA den Aufrufpfad kennt? Edit: Oder den InstanceName?
Die Instanzen im TIA einfach durchnummerieren ist zu viel Arbeit?
Erzähl mal etwas mehr, vermutlich gibt es schon bewährte Lösungen für das was Du vorhast.

PS: Zufallsgeneratoren und Uhrzeit und ähnliches können auch mehrmals gleiche Zahlen erzeugen.

Harald
 
Zuletzt bearbeitet:
Darf man fragen, wozu das ganze gut sein soll?
Während der Programmlaufzeit neue FB-Instanzen generieren (geht das überhaupt???)
Reicht es nicht, wenn das TIA den Aufrufpfad kennt? Edit: Oder den InstanceName?
Die Instanzen im TIA einfach durchnummerieren ist zu viel Arbeit?
Erzähl mal etwas mehr, vermutlich gibt es schon bewährte Lösungen für das was Du vorhast.

PS: Zufallsgeneratoren und Uhrzeit und ähnliches können auch mehrmals gleiche Zahlen erzeugen.

Harald
Bei der Funktion der LGF Library besteht eine 0.00000002% Chance eine doppelte Zahl zu erwischen, zudem wird sie ja nur einmal initial ausgeführt und nicht in jedem Zyklus, man kann es in dem Fall schon als eindeutig beziffern
 
Darf man fragen, wozu das ganze gut sein soll?
Während der Programmlaufzeit neue FB-Instanzen generieren (geht das überhaupt???)
Reicht es nicht, wenn das TIA den Aufrufpfad kennt? Edit: Oder den InstanceName?
Die Instanzen im TIA einfach durchnummerieren ist zu viel Arbeit?
Erzähl mal etwas mehr, vermutlich gibt es schon bewährte Lösungen für das was Du vorhast.

PS: Zufallsgeneratoren und Uhrzeit und ähnliches können auch mehrmals gleiche Zahlen erzeugen.

Harald
das würde mich nun auch interessieren was er damit vorhat :D kann mir gerade auch keine Sinnvollen Verwendung dafür vorstellen, lasse mich aber gerne vom gegenteil überzeugen :cool:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der Funktion der LGF Library besteht eine 0.00000002% Chance eine doppelte Zahl zu erwischen, zudem wird sie ja nur einmal initial ausgeführt und nicht in jedem Zyklus, man kann es in dem Fall schon als eindeutig beziffern
... und Du garantierst, daß die Chance nicht gleich im nächsten Wurf eintritt, sondern erst nach 4 Mrd Versuchen? ;)
1) Sag niemals "Nie"
2) wenn für ein Ereignis eine Chance > 0 besteht, da wird das Ereignis auch irgendwann eintreffen. Die Chance für einen Sechser im Lotto ist nur ca. 260 mal höher, und trotzdem behauptet niemand daß der Gewinn praktisch ausgeschlossen ist ;)
3) eine SPS darf Maschinen nicht mit Chancen steuern, sondern da muß die "Chance" 100% oder 0% sein.

Harald
 
Ich habe das Problem falsch beschrieben eigentlich benötige ich eher eine Art Systemkonstante die bei jedem instanziieren des Bausteins angelegt wird. Damit z.B. ein Leitrechner aus dieser eindeutigen ID eine Fehlermeldung generieren kann...D.h. der Programmierer der eine neue Instanz erzeugt muss sehen welche ID diese Instanz hat damit daraus eine Eindeutige Fehlermeldung erstellt werden kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mir erschließt sich immer noch nicht der Sinn und Zweck dahinter und wie bereits PN/DP geschrieben hat wissen wir nicht welche SPS genutzt wird.
wenn es eine 1500er ist könntest du über
die DB Nr auslesen und diese ist logischerweiße eindeutig
 
Eine DB-Nummer ist eine interne teknischen Wert der nicht wirklich informativ ist.
Die Instanzname ist mehr informativ, wenn Sinnvoll gewählt. Z.B "Ventil_M104".
Wenn es um eine Multiinstanz handelt, dann kann man die gesammte Strukturname rauskriegen mit 'GetInstancePath'.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... und Du garantierst, daß die Chance nicht gleich im nächsten Wurf eintritt, sondern erst nach 4 Mrd Versuchen? ;)
1) Sag niemals "Nie"
2) wenn für ein Ereignis eine Chance > 0 besteht, da wird das Ereignis auch irgendwann eintreffen. Die Chance für einen Sechser im Lotto ist nur ca. 260 mal höher, und trotzdem behauptet niemand daß der Gewinn praktisch ausgeschlossen ist ;)
3) eine SPS darf Maschinen nicht mit Chancen steuern, sondern da muß die "Chance" 100% oder 0% sein.

Harald
Ich hab nicht nie gesagt und natürlich sollte man damit nichts steuern.. für die beschriebene Aufgabe wäre es besser jede Instanz mit einer vorher festgelegten ID zu befüllen, muss man zwar händisch nachziehen, aber ist immerhin eindeutig auf beiden Seiten definiert
 
Eine Variable im ersten Netzwerk von OB1 auf 1 setzen, auf jede Instanz des Bausteins auf einen InOut geben und innerhalb des Bausteins eins hochzählen?
In dem Fall darf dann natürlich nicht zur Laufzeit eine weitere Instanz eingefügt werden ohne das System durcheinander zu bringen.
 
.. der Programmierer der eine neue Instanz erzeugt muss sehen welche ID diese Instanz hat ...
Und er macht sich anschließend eine Excel-Tabelle mit den von der SPS generierten IDs und Fehlermeldungen? Warum legt der Programmierer nicht von vorn herein fortlaufende Nummern fest? Dann könnte man diese IDs u.a. auch gleich zur Datenablage in Arrays verwenden.
 
Zurück
Oben