TIA TIA Portal V19 Wunschliste [Diskussion]

Status
Für weitere Antworten geschlossen.
Zuviel Werbung?
-> Hier kostenlos registrieren
- Massenoperationen, wo mann z.B. im HWCN mehrere Devices markiert und deren Einstellungen die bei es bei allen Devices gibt in einen Rutsch ändern kann (z.B. Author, I&M, usw.) oder auch mehrere Bausteine und Setzen von KnowHow Protection

Das funktioniert bereits, ich nutze dafür immer die Funktion Übersicht und dann oben das Auge aktivieren "Unterlagerte Elemente Anzeigen". Dann kann man mit Strg/Shift Klick oder Strg+A alle gewünschten Bausteine markieren. Dann auf einen Baustein Rechtklick "Knowhowschutz".
Das ganze funktioniert auch Reverse, sofern man nur Bausteine anklickt die mit dem selben Passwort geschützt sind.
 
Hier wurde schon viel richtiges geschrieben, hier noch ein paar Ideen von mir.
  • Wenn eine Variable einen mehrsprachigen Kommentar hat, sollte dieser auch bei Erzeugung des automatischen Netzwerktitels direkt mehrsprachig in die anderen Projektsprachen übernommen werden.
  • Automatische Netzwerktitel werden nur aus Bools erzeugt, hier wäre doch schön, wenn dies auch mit mit allen anderen Datentypen inklusive UDT's funktionieren würde.
  • Schön wäre auch, wenn man einem FC die Fähigkeit mitgeben kann den automatischen Netzwerktitel an der Aufrufstelle zu erzeugen
  • irgendwo hab ich es schonmal gelesen: Farbige Netzwerktitel, die Farbe könnte auch von einem FC vorgewählt werden, siehe oben
  • Einstellflag an Netzwerken "Bei Baustein öffnen immer expandieren" "Bei Baustein öffnen immer reduzieren"
  • Bei Variablentabellen kann man die Reihenfolge der Spalten ändern, Bei DB's funktioniert dies aber nicht
  • Öfter denkt man erst, dass es für Funktionen keine Tastenkombination gibt, da bei Mouseover im Tooltipp keine Tastenkombination angezeigt. (z.B. bei einem DB oben die 2 Schaltflächen für Zeile einfügen, dort ist bei Mouseover nicht zu sehen das dies auch mit Strg+Eingabe bzw Alt+Einf funktioniert)
  • Seitdem es die Funktion Referenzprojekte gibt, besteht ein Bug mit dem Fenster. Wenn Referenzprojekte eingeklappt und Detailansicht ausgeklappt ist, lässt sich das Projektbaumfenster garnicht mehr in der Größe verschieben (vertikal) und die Detailsansicht kann man nur noch kleiner nicht nicht mehr größer schieben. Ich hab dies vor 2 Jahren schonmal dem Support geschrieben, aber so primitive Probleme werden scheinbar belächelt und in eine staubige Ablage gelegt.
 
....
- Nutzung von UDTs als Konstanten, damit man nicht jede einzelne Konstante pro Baustein anlegen muss, damit der Baustein Biliothekskonform bleibt
....
Überhaupt einem FB eine Konstante von außen übergeben zu können, wäre wunderbar. So könnte man den gleichen FB auch mit einer variablen Anzahl von Ein- & Ausgängen aufrufen. Das wären dann zwar "Array_of_irgendwas" EAs, aber mit der Konstante kann man ja auch gleichzeitig ein Datentyp skalieren, der darauf passt. Da Konstanten gerade die einzige Möglichkeit sind, den Speicherbedarf wenigstens "Halbdynamisch" anzupassen.

Das würde die Objektorientierung enorm verbessern. Weil für jeden FB wo sich nur die Konstante ändert, eine Kopie des FBs zu erstellen, kann es ja echt nicht sein. Und dann auch noch in jedem Unter-FB die Konstante mit ändern zu müssen, macht skalierbare Bausteine momentan noch unpraktikabel.

So muss man wieder den alten Weg gehen und legt immer den Maximalausbau mit Sicherheitsreserve an Speicher und Ein- & Ausgängen an, welcher meistens nie benötigt wird und im Fall der Fälle doch begrenzt.

Die Arraygröße über eine Konstante zu definieren könnte so schön sein, wenn man sie auch von Außen parametrieren könnte.

Und globale Konstanten sind eh sinnlos, da hier die Bibliotheksfähigkeit wieder mit Füßen getreten wird.
 
  • Danke
Reaktionen: sbn
Eine Bibliotheksabhänge Konstante wäre sinnvoll, dann müsste man nicht in x eigenen Bibliotheksbausteinen Konstanten pflegen. Siemens selber schafft es auch, für die gleiche Funktion in Bausteinen unterschiedliche Werte zu hinterlegen
 
Das würde die Objektorientierung enorm verbessern. Weil für jeden FB wo sich nur die Konstante ändert, eine Kopie des FBs zu erstellen, kann es ja echt nicht sein.
ist eine Konstante die sich ändert eine konstante ?
Ich denke, es geht um die Mehrfachnutzung von FBs
und z.B. bei einer Instanz soll die Konstante k=x und bei der nächsten Instanz die Konstante k=y und bei der nächsten Instanz die Konstante k=z sein.

Momentan müssen mehrere FBs erzeugt werden, die sich jedoch nur in der Größe der Konstante k unterscheiden.
Mit der Möglichkeit einer Konstantenangabe an der Bausteinschnittstelle ist dagegen nur ein einziger FB notwendig.
Und für z.B. Arraygrößen muss es ja unbedingt eine Konstante sein.
 
Zuletzt bearbeitet:
Ich denke, es geht um die Mehrfachnutzung von FBs
und z.B. bei einer Instanz soll die Konstante k=x und bei der nächsten Instanz die Konstante k=y und bei der nächsten Instanz die Konstante k=z sein.

Momentan müssen mehrere FBs erzeugt werden, die sich jedoch nur in der Größe der Konstante k unterscheiden.
Mit der Möglichkeit einer Konstantenangabe an der Bausteinschnittstelle ist dagegen nur ein einziger FB notwendig.
Und für z.B. Arraygrößen muss es ja unbedingt eine Konstante sein.
Wenn die "Konstante" in den Instanzen eines FB unterschiedliche Werte haben soll ,
könnte man die "Konstante" über die Bausteinschnittstelle übergeben wo ist das Problem ?
Ich würde es aber Variable nennen
 
ist eine Konstante die sich ändert eine konstante ?
Diese ändert sich natürlich nicht im Betrieb. Aber vor dem Übersetzen kann man einer konstante ja einen Wert zuweisen.
Hucki hat es gut erklärt was ich gemeint habe.
Und mir ging es eben um eine Schnittstelle für eine Konstante. Das sollte relativ leicht umzusetzen sein, da es nicht an den Grundfesten der S7 Struktur rüttelt. Aber Vorteile bei der Skalierung von Bausteinen bringt und es wird kein Speicher mehr verplempert. Und man könnte dann wirklich wiederverwendbare Bausteine mit Konstanten programmieren.

Es gibt Programmiersprachen wo man sich überhaupt nicht mehr um die Speicherhaltung kümmern muss. Da wird zur Laufzeit so viel angelegt wie das Programm fordert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn die "Konstante" in den Instanzen eines FB unterschiedliche Werte haben soll ,
könnte man die "Konstante" über die Bausteinschnittstelle übergeben wo ist das Problem ?
Ich würde es aber Variable nennen
Und das ist das Problem. Abhängig von einer Variablen kann man keine Arraygrößen definieren. Von einer Konstanten aber schon.
 
Und mir ging es eben um eine Schnittstelle für eine Konstante. Das sollte relativ leicht umzusetzen sein, da es nicht an den Grundfesten der S7 Struktur rüttelt. Aber Vorteile bei der Skalierung von Bausteinen bringt und es wird kein Speicher mehr verplempert. Und man könnte dann wirklich wiederverwendbare Bausteine mit Konstanten programmieren.
Auch kann man dann globale Konstanten, die in mehreren Bausteinen verwendet werden sollen, trotzdem aus diesen Bausteinen heraushalten und stattdessen deren Wert über die Bausteinschnittstelle an die interne Konstante übergeben.

Genauso wie man es mit globalen Variablen ja auch macht.


Man könnte z.B. bei Wert der Konstanten ein "IN" angeben (ähnlich zur Sicht "AT" bei Variablen) und erhält dann für diese interne Konstante einen Eingangspin am Baustein, wo der Wert der Konstanten von außen übergeben wird, welcher dann beim Übersetzen verwendet wird.
 
Und mir ging es eben um eine Schnittstelle für eine Konstante. Das sollte relativ leicht umzusetzen sein, da es nicht an den Grundfesten der S7 Struktur rüttelt. Aber Vorteile bei der Skalierung von Bausteinen bringt und es wird kein Speicher mehr verplempert. Und man könnte dann wirklich wiederverwendbare Bausteine mit Konstanten programmieren.

Ich würde sagen, so einfach ist das nun doch nicht.
Der Datentype einer Konstanten kann ja alles sein.
Wie deklarieren wir das in der Schnittstelle?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dafür braucht es einen neuen Bereich. Nach IN, OUT, INOUT kommt dann z. B. CONSTIN. Von mir aus könnten sie auch die lokalen Konstanten durch die Schnittstelle ersetzen. Dann gibt man den Wert der Konstanten einfach wie ein Startwert an, wenn er nicht von außen beschalten ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das funktioniert bereits, ich nutze dafür immer die Funktion Übersicht und dann oben das Auge aktivieren "Unterlagerte Elemente Anzeigen". Dann kann man mit Strg/Shift Klick oder Strg+A alle gewünschten Bausteine markieren. Dann auf einen Baustein Rechtklick "Knowhowschutz".
Das ganze funktioniert auch Reverse, sofern man nur Bausteine anklickt die mit dem selben Passwort geschützt sind.
Mehrere Bausteine mit KnowHow Schutz zu versehen scheint seit V17 zu gehen. Es wurde für KnowHow Protection auch mal eine TIA AddIn dafür angeboten. Was aus meiner Sicht aber nicht die Lösung sein kann, dass man fehlende Funktionen mit AddIns nachrüsten muss. Irgendwann hat man dann 1GB in dem Addin Ordner drin ;-)

Leider kann man immer noch nur innerhalb einer Ebene mehrere Bausteine selektieren. So dass Bausteine in verschiedenen Ordnerstrukturen wieder manuell oder über den Umweg, Programm Ordner selektieren, dann "Übersicht->Details Ansicht->Subordinate aktivieren" und dann die Bausteine selektieren, geht.

Dafür braucht es einen neuen Bereich. Nach IN, OUT, INOUT kommt dann z. B. CONSTIN. Von mir aus könnten sie auch die lokalen Konstanten durch die Schnittstelle ersetzen. Dann gibt man den Wert der Konstanten einfach wie ein Startwert an, wenn er nicht von außen beschalten ist.
Das ist nicht so einfach, da es auch mit der Norm harmonieren muss. Bin mir nicht sicher, ob man da einfach ein neuen Bereich definieren kann.
 
:unsure:
Aber doch nur beim Übersetzen und nicht zur Laufzeit.
Beim Übersetzen des Bausteins kann er nicht wissen, wie er außen beschaltet sein wird. Und zur Laufzeit muß geprüft werden, ob der übergebene Parameter (z.B. Array) zu der übergebenen "Konstante" passt.


Es gibt Programmiersprachen wo man sich überhaupt nicht mehr um die Speicherhaltung kümmern muss. Da wird zur Laufzeit so viel angelegt wie das Programm fordert.
Ja, so etwa 1 Megabyte pro benötigtem Bit ;)
Und da wird von Zeit zu Zeit bzw. eher zur Unzeit ein GarbageCollector zum Speicher aufräumen angeworfen. Müsste aber alles kein Problem für SPS sein ;) ;)

Harald
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben