Dein Array[0..0] ist quasi überflüssig, warum brauchst du ein Array, wenn du nur einmal die Struktur brauchst?Mein Problem ist jetzt folgender: Ich habe einen FB, in diesem habe ich sämtliche Eingänge und Ausgänge einzeln angelegt und den FB dann in einen OB reingeschoben, damit wird ja ein großer Block im OB erstellt wo sämtliche Ein und Ausgänge dargestellt werden. An dieser Stelle habe ich es nicht geschafft den Array einzubinden (siehe Bild) der Arraydatentyp ist auch drin aber es wird nur ein Eingang dargestellt obwohl in dem Array ca. 15 Einträge sind. Wie kann ich die einzelnen Einträge einsparen und auf das Array zurückgreifen?
Beste Grüße und vielen Dank
Nate
Was willst du genau erreichen?
Einen "schmalen" Bausteinaufruf, weniger Kopier-/ Anpassarbeit bei mehrmaligem Aufrufen?
Einfach nur einen UDT übergeben macht es nicht zwingend schöner, sieht zwar aufgeräumter aus, ist aber beim beobachten nicht zwingend vorteilhaft.
Grundsätzlich bietet sich ein Array bei wiederholenden Sachen an.
Man kann aber auch den FB mit vordefinierten Dummy-Variablen belegen, bei denen nur noch der Index des Array ausgetauscht werden muss bzw. bereits eine entsprechende Indexvariable enthält, die man eben vor dem Aufruf entsprechend beschaltet.
Noch so nebenbei.
Ich würde versuchen die Variablennamen simpler zu gestalten und ggf. Infos wie deren Einheit in die Kommentare schieben.
Da ich die Frage auch nicht wirklich verstehe ... fang doch noch einmal von vorne an - vielleicht etwas simpler.
Es macht absolut Sinn, wenn mehrere Bausteine dieselben Daten verwenden, eine UDT anzulegen, die irgendwo zu befüllen und die dann den entsprechenden Bausteinen als IN-Parameter oder ggf. als INOUT-Parameter zu übergeben. Soweit bin ich dabei.
Nun hast du in deiner UDT aber ein Array mit der Dimension 0..0 angegeben - was ist hier der Sinn ?
So ... und finally ... was ist deine Frage ?
ok ich verstehe, das Array ist überflüssig und wurde kopiert ohne zu verstehen mit der Hoffnung das mit dem Verständnis sich noch einstellt. Gut, also das UDT wird auf einmal übergeben, dann passe ich das mal an und schaue ob ich es zum laufen kriege. Die Namen werden angepasst und werden momentan nur verwendet da ich eine Tabelle zur Verfügung gestellt bekommen habe und die namen einfach 1zu1 mit bisschen extrainfos übernommen habeDein Array[0..0] ist quasi überflüssig, warum brauchst du ein Array, wenn du nur einmal die Struktur brauchst?
Anhang anzeigen 76941
Meinst du das hier?
Das ist richtig so, da du ja einmal deinen Datentyp "PPM-InputData" aufrufst.. somit wird der Datentyp als ganzes übergeben.
Und bitte schaut euch mal Themen wie Nomenklatur an, die Variablennamen sind ja wirklich nicht schön gewählt. (Sonderzeichen)
Du hast die ja schon für die interne Verwendung.wie kann ich z.B. den 5. Eintrag meines UDT in dem OB mit einer Variable versehen wenn es nur einen Eingang für den UDT gibt? Ich habe erwartet das sämtliche Einträge aus dem UDT als Eingänge angelegt werden. wenn ich die ganzen eingänge löschen würde hätte mein MainOB nur einen einzigen aus und eingang an dem ich meine Variablen nicht anknüpfen kannAnhang anzeigen 76943
ok ich verstehe. ich dachte ich muss beim OB sämtliche Eingänge für die Datenübertragung definieren.Da du einen UDT als IN-Parameter gewählt hast wird dieser auch nur als Ganzes, also quasi als Pointer, angezeigt.
Das UDT hast du ja als Variable irgendwo hinterlegt - im OB selbst ist eher unschön - besser wäre z.B. in einem DB (Datenbaustein).
An irgendeiner Stelle in deinem Programm mußt du nun alle Elemente deines UDT zuweisen - und zwar Einzeln ! Ich denke mal, dass du dir das anders vorgestellt hast (sagt meine Glaskugel).
Ich glaube auch, dass du mit dem Vorhaben, so wie gestartet nicht wirklich in die Richtung kommst wie von dir angedacht. Diese Struktur macht so nur dann Sinn wenn sie, einmal zugewiesen, von unterschiedlichen Bausteinen verwendet wird / werden kann.
Um hier weiterzukommen empfehle ich dir, dass du mal genau dein Vorhaben beschreibst (also auch mit angedachter Funktion) - dann kommen die Vorschläge ggf. etwas gezielter ...
tatsächlich werden bis jetzt keine SPS Ein oder Ausgänge verwendet. Sämtliche Daten kommen von einer Testanlage über CANBus werden dann von einem Konverter in irgendwas anderes umgewandelt und dann von einem weiteren Protokollkonverter in PROFINET an die TIA übergeben. HMI gibts auch keinen. Diese Testanlage die ich verwende ist eine von der Firma entwickelte Steuerung/Controller der momentan eine 4fachAnlage simuliert. Der eine Konverter ist auch von der Firma entwickelt worden und ermöglicht mir über CANBus Befehle zu schicken aber auch über einen Webbrowser auf die Anlage zugreifen zu könnenKommen denn alle diese Daten, die du da zuordnest, aus SPS-Eingängen ?
Wenn ich mir die vergebenen Variablen-Namen so ansehe kann ich mir das nicht so recht vorstellen ... Ist es nicht vielmehr so, dass da Einiges aus der HMI kommt ? Oder als Rückinfo von den anderen Stationen ?
ja die 0 ist sowas wie der master, die anlagenteile 1-5 sind in der funktion identisch, alle tun das gleiche aber zu unterschiedlichen leistungen. wenn ich an der anlage 3 was ändere, wie z.b. das mischverhältnis wird diese das dem Gerät 0 melden und der wird dann den anderen einen neuen anteil zuordnen.Noch eine andere Frage : sind diese Anlagenteile ( 1 bis 5) auch in ihrer Funktion identisch ?
Und : ist deine Station 0 sowas wie der Master / Jobverteiler ?
Es ist wichtig das negative Feedback als auch den Bedarf zu analysieren. Es macht keinen Sinn jetzt alle Fälle die dir einfallen abzudecken, wenn diese nicht mit dem Bedarf eurer Kunden gedeckt sind => leere Arbeitszeit. Das wäre Aufgabe vom Vertrieb, schätze ich mal.Bisher haben ein paar unserer Kunden Schwierigkeiten mit der Anbindung der Anlage, es gab negatives Feedback. Deshalb wurde ich beauftragt, sämtliche Probleme ausfindig zu machen die ein Kunde haben könnte, damit wir unsere "Anleitung" anpassen können.
bis jetzt lief alles über eigen entwickelte steuerungen, allerdings wird immer öfter eine SPS anbindung gewünscht, meine kollegen arbeiten alle in anderen bereichen, ich wurde neu eingestellt um die SPS schnittstelle praktisch aus dem boden zu stampfen. mein chef hat sich jemanden gewünscht der die anlagen die wir verkaufen nicht kennt, jemand der an die anlagen so rangeht wie ein möglicher kunde. da komme ich ins spiel, ich kenne die anlagen nicht und soll mögliche schwierigkeiten erkennen und gleichzeitig lösungen entwickeln. ich hab praktisch freie hand. aufjedenfall kümmert mich das ganze zeug um vertrieb und kunden eher weniger, ich versuche einfach nur eine klasse steuerung zu entwickeln. (ich bin nicht der einzige, es gab einen der hier nicht mehr arbeitet und einen anderen der sich jetzt einer anderen sache annimt, ich bin mittlerweile weiter als er war und somit ist seine hilfe bedingt nützlich)Es ist wichtig das negative Feedback als auch den Bedarf zu analysieren. Es macht keinen Sinn jetzt alle Fälle die dir einfallen abzudecken, wenn diese nicht mit dem Bedarf eurer Kunden gedeckt sind => leere Arbeitszeit. Das wäre Aufgabe vom Vertrieb, schätze ich mal.
Hier sollte erstmal analysiert werden, was denn genau dieses Feedback verursacht hat und wie sich diese Probleme konkret beheben lassen können.
Wieso bist du denn der einzige, der sich damit "auskennt", wenn ihr doch ein Hersteller von Maschinenlösungen seid? Was ist denn mit der Entwicklung und allem drum und dran.. du kannst ja nicht die einzige Person sein, welche sich dem Thema jemals angenommen hat.. oder?
Das hört sich für mich schon ZIEMLICH diffus - um nicht zu sagen plockig - an ...Sämtliche Daten kommen von einer Testanlage über CANBus werden dann von einem Konverter in irgendwas anderes umgewandelt und dann von einem weiteren Protokollkonverter in PROFINET an die TIA übergeben. HMI gibts auch keinen. Diese Testanlage die ich verwende ist eine von der Firma entwickelte Steuerung/Controller der momentan eine 4fachAnlage simuliert. Der eine Konverter ist auch von der Firma entwickelt worden und ermöglicht mir über CANBus Befehle zu schicken aber auch über einen Webbrowser auf die Anlage zugreifen zu können
Gerät 0 ist der Master, Gerät 1-5 steuern jeweils eine Anlage und greifen Messwerte ab. Die gesteuerten Anlagenteile stellen im gesamten eine Mischanlage dar, diese Anlagenteile arbeiten identisch und sind auch identisch. Das einzige was sie unterscheidet ist das sie zu unterschiedlichen Mengen Substanzen fördern, das ganze ergibt ein bestimmtes Mischverhältnis, ein Rezept das am Ende zu einer Masse zusammengeführt wird. Da es sich um ein Rezept handelt müssen die einzelnen Module miteinander kommunizieren und im Falle einer Änderung übernimmt der Master (Gerät0) die Aufgabe das Verhältnis bei den anderen Anlagen so anzupassen wie gewünscht, ansonsten müsste man bei jeder Anlage einzeln diese Änderung vornehmen. Eine einzelne Anlage wird einfach nur eine bestimmte Menge Material pro z.B. Stunde fördern, mit 2 Anlagen (z.B. Gerät1+2) kann man dann zu verschiedenen Verhältnissen oder Mengen mischen. Da alle möglichen Arten von Mischanlagen gebaut und verkauft werden soll meine Lösung modular sein und am besten einfach in der Anwendung.Das hört sich für mich schon ZIEMLICH diffus - um nicht zu sagen plockig - an ...
Dein Projekt verstehe ich also so, dass dein Gerät 0 der Mischer selbst ist und die Geräte 1 bis 5 die Komponenten-Waagen (oder ähnlich).
Von irgendwoher bekommst du den Wunsch mitgeteilt, dass etwas zu mischen ist, das aus bestimmten Bestandteilen, die in den Geräten 1 bis 5 vorbereitet werden, zusammengesetzt ist. Wenn aber eines der Geräte nicht ganz passend dosiert dann müssen die anderen Geräte ggf. nachdosieren.
Habe ich das so in etwas richtig ge-Glaskugel-t ?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?