TIA Variablen in Array

BaumimGarten

Level-1
Beiträge
63
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,

Ich hab mal ne Fragen. Ist es möglich Varibalen in ein Array zugeben so dass diese bei verändern auch den gegeben Wert im Array verändern?
Ich will zum Beispiel ein Sinuswert der sich über eine Taktsteuerung verändert in die 0. Stelle des Arrays unter dem Punkt Variable einfügen. Die nachfolgenden Variablen sollen dann mit anderen Werten gefüllt werden wie zum Beispiel Cosinus oder Tangenswerten.
Das soll aber nicht über ein Programmierweg gehen, also das ein Kunde der das Programm nutzt ganz einfach nur über eine Eingabefläche in einem Overlay zum Beispiel den IO1 der SPS mit einem Anlagen Wert belegt und dieser dann auf ein X-beliebigen Array platz gesetzt wird.
Ich bin bis jetzt nur auf Lösungen gekommen wo der Kunde selber eine Eingabe programmieren muss, oder tausende MOVE oder VariantGet benutzen muss.


Aber wahrscheinlich denk ich einfach zu kompliziert.
 
Meine Glaskugel ahnt, dass Du Folgendes meinen könntest:
Du hast n Ein-/AusgabeFelder und die Werte dieser Felder lassen sich auseinander berechnen.
Z.B.: Radius, Umfang und Fläche eines Kreises.
Gibst Du den Radius ein, so werden daraus Fläche und Umfang berechnet und angezeigt, gibst Du den Umfang ein, so werden daraus Radius und Fläche berechnet und angezeigt u.s.w. ...
D.h. die Formeln sind in Stein gemeisselt und eine Eingabe in ein beliebiges der Felder sorgt dafür, dass die Werte in allen Feldern wieder zusammenpassen und einfach nur einen neuen Gegenstand mit denselben Relationen beschreiben?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... mit einem Anlagen Wert belegt und dieser dann auf ein X-beliebigen Array platz gesetzt wird.
Was meinst Du mit "X-beliebigen ArrayPlatz"?
- Der Kunde darf sich einen X-beliebigen aussuchen und diesen gezielt vorgeben?
- die Steuerung sucht sich einen X-beliebigen Platz aus, wenn ja, nach welchen Kriterien?
- es spielt keine Rolle, auf welchen ArrayPlatz der Wert gesetzt wird, wenn ja, warum ist das egal?
 
Danke für die Antwort aber leider ist das nicht wirklich damit gemeint.
Ich weiß zwar nicht wie ich das genau beschreiben soll, aber es war eigentlich angedacht ein Array zu erstellen, wo der Kunde eine Art Variable in einen sich freiwählbaren Platz einsetzten kann. Also sowas wie eine sich verändernde Temperatur oder ähnliches.
Im Endeffekt so, dass zum Beispiel auf dem Arrayplatz 1 die Motortemperatur des ersten Motors der Anlage oder ähnliches liegt, auf dem zweiten Arrayplatz sollte dann das Drehmoment des Motors befinden oder etwas ähnliches.
Das soll aber für den Kunden selber möglich sein, diese Parameter frei bestimmen zu können. Also, dass der Kunde nur ne Art Zuweisung erstellen soll, dass zum Beispiel die für seine Anlage wichtigen Messdaten nur einmal in EINEM Array eingetragen werden soll und die Messdaten sich nach echten Werten ändert.
 
Mich würde mal interessieren, wo die Daten herkommen sollen.
Denn Du mußt dem Kunden dann ja die Möglichkeit geben, irgendeinen Zugriffspfad oder eine Zugriffsadresse anzugeben und im Programm muß dann diese Information entsprechend verarbeitet werden, um die Daten abzuholen... von der Peripherie, von einer Datenbank, von xxx
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Werde jetzt aber wohl dabei bleiben, dass der Kunde nach Anleitung seine Variablen bzw. SPS Eingangswerte der Datenmessungen über genaue Adressierung der Arrayzeilen eines Array DBs sich selber die Anbindung schaffen muss.
 
Mich würde mal interessieren, wo die Daten herkommen sollen.
Denn Du mußt dem Kunden dann ja die Möglichkeit geben, irgendeinen Zugriffspfad oder eine Zugriffsadresse anzugeben und im Programm muß dann diese Information entsprechend verarbeitet werden, um die Daten abzuholen... von der Peripherie, von einer Datenbank, von xxx
genau da war meine Überlegung mit einer indirekten Adressierung einer Eingabe auf die einzelnen Arrayzeilen.
Quasi, dass er denn IO Eingang an den er zum Beispiel den Messfühler für die Temperatur auf ein Arrayplatz legt.

Und da ich nicht weiß auf welcher IO Schnittstelle sein Messfühler liegt oder welche IO Schnittstellen durch andere Anbindung, sollte die Adressierung auf das Array dem Kunden überlassen sein.

Bin in dem Bereich der Programmierung recht neu und weiß nicht was man dem Kunden alles zutrauen kann, bzw. welche Rechte man ihm geben sollte im Programm rumfummeln zu können.
Sollte es ihm möglich sein eigene Variablen in einem Array anlegen zu können oder müsste man ihm wirklich über ein SCADA oder Overlay System, sowas vereinfachen, damit er nicht direkt ins Programm gehen muss.
 
Zuletzt bearbeitet:
Dann müßtest Du ihm ja einen Struct zur Eingabe pro Wert zur Verfügung stellen: Adresse, Faktor, Offset, Min/Max, Textuelle Beschreibung, Einheit, .... vorausgesetzt, es handelt sich ausschließlich um analoge Werte...
Ansonsten könnt Ihr ja auch ein Array vereinbaren und das dann über Send/Receive austauschen. Da wäre er vermutlich flexibler (sofern er sein Programm verändern kann) und Du hättest weniger Aufwand. Zudem könntest Du noch die Kommunikation überwachen.

Mir ist noch nicht ganz klar: Sollen das zwei SPSen sein, die kommunizieren (zweite Lösung) oder soll er an Reserve-Eingänge von Dir Sensoren beliebig anschließen können (erste Lösung)? Hab ich Deiner Erläuterung noch nicht eindeutig entnehmen können.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es soll sich auf die erste Variante beziehen. Das hab ich jetzt quasi auch schon in der Richtung gemacht, indem ich ein DB Array angelegt habe mit einem selbst erstellten Datentyp, der die benötigten Namen, Values und weitere Sachen angeben kann. In dem soll der Kunde seine benötigten Daten ablegen die dann weiter verarbeitet werden.
Wusste nur nicht, ob man sowas einem Kunden präsentieren kann, oder ob er noch eine einfachere Eingabemethode für seine Messdaten brauch.
Und wie so eine weitere Eingabemethode dann aussehen könnte bzw. sollte und wie weit sowas überhaupt realisierbar ist.
 
Im Prinzip mußt Du ja überlegen, ob er mit Deinen Einstellungen, die Du in der HWconfig vorgenommen hast, leben kann. Ggf. würde sonst nämlich noch eine Umparametrierung der Baugruppe während der Laufzeit anstehen.
Wenn der Kunde solche Reserve-Eingaben wünscht, solltest Du mit ihm reden, ob er mit Deiner Lösung einverstanden ist.
Vor allem: Sollen die Meßwerte nur angezeigt werden oder auch den Prozeß beeinflussen? Dann müßtest Du ja noch angeben, wo/wie der Wert in den Prozeß einfließt.
 
Stand jetzt sollen die Werte nur eingelesen und Ausgegeben werden. Eine Prozessbeeinflussung durch einen veränderbaren Sollwert ist bis jetzt noch nicht geplant.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was mich hier mal interessieren würde :
In einmem beliebigen Arrayfeld kann also eine beliebige Variable stehen - also z.B. mal eine Temperatur und mal eine Drehzahl ?
Wenn dem so sein sollte ... wie sillst du (oder der Kunde) das dann später irgendwie verwerten ?
 
Was mich hier mal interessieren würde :
In einmem beliebigen Arrayfeld kann also eine beliebige Variable stehen - also z.B. mal eine Temperatur und mal eine Drehzahl ?
Wenn dem so sein sollte ... wie sillst du (oder der Kunde) das dann später irgendwie verwerten ?
Deswegen ja die Beiwerte, wie Beschreibung, Skalierung, Einheit.
Ich hatte auch mal einen Kunden, der wollte die freien Eingänge zur Verfügung haben, um im Nachinein informativ Werte anzeigen zu können.
Du mußt halt die komplette Wertebeschreibung erfassen.
 
Was mich hier mal interessieren würde :
In einmem beliebigen Arrayfeld kann also eine beliebige Variable stehen - also z.B. mal eine Temperatur und mal eine Drehzahl ?
Wenn dem so sein sollte ... wie sillst du (oder der Kunde) das dann später irgendwie verwerten ?
Ne damit ist einfach nur gemeint, dass sich der Kunde das selber konfigurieren kann. Also je nach bedarf was ihm für Werte seiner Anlage angezeigt werden soll.
Sry wenn ich mich nicht so klar ausdrücke ;D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ne damit ist einfach nur gemeint, dass sich der Kunde das selber konfigurieren kann. Also je nach bedarf was ihm für Werte seiner Anlage angezeigt werden soll.
Sry wenn ich mich nicht so klar ausdrücke ;D
Doch, Du hattest schon ziemlich klar ausgedrückt, dass das System "flexibel-hoch-10" sein soll. Gerade das macht es für uns recht schwierig, einen Aufhänger/AnsatzPunkt zu finden. ;)
Gibt es einen Umkehrschluss zu dem Murphy-Spruch "alle Konstanten sind variabel"?
Was ich mir bisher vorstellen kann:
Du möchtest ein Bild vorgeben, in dem der Kunde diverse AnalogEingänge (und anderes?) anzeigen lassen kann.
Woher kommen z.B. die "erklärenden Texte" (z.B. die Einheiten zu den MessGrössen)?
Sind die dann im Programm hinterlegt (z.B. abhängig vom angewählten Eingang) oder soll der Kunde die auch "individuell gestalten" können/müssen?
Soll der Kunde auch diverse Gerätschaften wahlweise an den Eingängen anschliessen können?
Wie viele derartige Eingänge sollen denn max. auf einem Bildschirm erscheinen können?
Können wenigstens die Positionen/Längen/AnzeigeFormate/DatenTypen der Felder auf dem Bild fest vorgegeben werden oder muss der Kunde auch diese verschieben/zurechtrücken/ändern können?
U.s.w. etc. p.p. ...
 
Zurück
Oben