TIA TIA Portal V20 Wunschliste [Diskussion]

Status
Für weitere Antworten geschlossen.
Zuviel Werbung?
-> Hier kostenlos registrieren
Vorsicht! Off topic!
Genau ... Kupplung Links, Bremse in der Mitte und Gaspedal Rechts ist auch schon ziemlich Oldschool.
So weit die Theorie. Hatte einen SchulKameraden, dessen Vater hatte wegen seiner BeinProthese ein Auto mit 2 Gaspedalen (links und rechts des BremsPedals) und ohne KupplungsPedal (stattdessen "Saxomat"). Eines Tages stand das Auto zur Inspektion in der Werkstatt.
Motor lief, RückwärtsGang war (noch) eingelegt und ein Mitarbeiter der Werkstatt will das Auto bewegen, tritt mit Schwung auf das vermeintliche KupplungsPedal und donnert mit Vollgas gegen die nächste Wand.
Genauso die Lenkung ...
Gab es nicht vor vielen Jahren mal Autos, bei denen man zum links abbiegen das Lenkrad nach rechts drehen musste und umgekehrt?
Oder bin ich da auf FakeNews hereingefallen?

So viel zum Thema "intuitive Bedienung".

Eine Vereinheitlichung in der Bedienung kann sicherlich so manche FehlBedienung vermeiden. Oder wollen wir jedesmal, wenn wir auf ein anderes als das gewohnte Auto umsteigen, eine AutoModell-spezifische FahrPrüfung ablegen müssen bzw. eine entsprechende FahrErlaubnis vorweisen können?
Edit: Gab's da nicht schon mal was wegen SchaltGetriebe vs. AutomatikGetriebe?

Klar wird es dadurch langwieriger, Neuerungen einzuführen. Aber unmöglich ist das nicht. Das hat uns VW/Audi doch gezeigt. Was tut man, wenn die KontrollLeuchte für's Fernlicht blau sein muss und blaue bzw. weisse LEDs noch nicht lieferbar bzw. noch viel zu teuer sind? Man lässt die StVZO ändern bzw. erwirkt eine AusnahmeGenehmigung und darf gelbe LEDs einsetzen.
ich weiß nur nicht ob ich da dann noch mit dabei bin ... :unsure:
Bei manchen Dingen bin ich auch nicht so wahnsinnig darauf versessen, sie unbedingt noch miterleben zu wollen. ;)
 
Zuletzt bearbeitet:
Mir stellt sich vor allem die Frage, warum man für solche Anwendungen nicht die 1518 MFP nimmt, die kann C/C++ Applikationen ablaufen lassen.
Klar, die kostet ordentlich Geld...
Das ist gar nicht mehr so tragisch, gibt mittlerweile die TM MFP Baugruppe, welche an jede S7-1500 in Bauform MP angebaut werden kann.

Das Thema ist eher, dass die meisten Leute, die mit SPSen arbeiten (müssen) mit C/C++ schlicht nicht umgehen können. Ich selber hab zwar recht intensiv C gelernt und eingesetzt, mit C++ bin ich aber nicht affin. Mit Java ginge wieder was.
Außerdem will man ja oftmals den Vorteil nutzen, diese Aufgaben "inline" in der selben Umgebung wie die Steuerung zu realisieren. Ob das parsen von xml-Dateien oder das Absetzen von SQL-Abfragen auf einer SPS generell sinnvoll und zielführend ist darf jeder für sich selbst entscheiden.
Es ist eine Industriesteuerung ;)
Da kommt wahrscheinlich auch her, dass man Blöcke nur per BOOL verknüpfen kann. FUP/KOP eignet sich eben in allererster Linie für BOOLsche Logik, für Berechnungen usw. nehme selbst ich, als ein glühender Verfechter von FUP, inzwischen meist SCL. Da brauche ich kein INT oder REAL zwischen Bausteinen mit ner Linie zu verknüpfen.
Prinzipiell nachvollziehbar, Berechnungen in KOP durchzuführen finde auchich ab einem gewissen Punkt unnötig, aber die technischen Voraussetzungen sind ja da. Das Verschalten von "Analogwerten" für Berechnungen wäre eine Anwendung, mein Ansatzpunkt ist eher das Verschalten von Bausteinen (3 Ausgänge da raus und sofort in den nächsten Baustein rein).

Da würde auch sehr schnell die Übersichtlichkeit leiden und die Meckerei wäre wieder groß. Man stelle sich vor in einen FB gehen per "Linie" BOOL, REAL, INT, die wiederum erst berechnet werden... steigt kein Mensch mehr durch.
Doch doch, das ist gut nachvollziehbar, CFC ist das beste Beispiel dafür.

Interessieren würde es mich aber schon, ob schonmal jemand eine MFP eingesetzt hat, und für welchen Zweck.
Ich selber hab sie nicht eingesetzt, ich hab sie schon im Einsatz gesehen bei einem asiatischen FTS-Hersteller, dessen Flottenleitsystem als C++ Programm im MFP-Teil der 1518 MFP lief, und der PLC-Teil hat halt die ganze Sicherheitstechnik und Peripherie angebunden. Ich denke die wollten dem Kunden vorgaukeln, dass ihr Gesamtsystem auf einer SPS läuft.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
MFP? Nutzen wir für Simulink.
Würde die nicht laufen wie geschnitten Brot, gäbe es sie schon nicht mehr und Target 1500S nicht mittlerweile in Version 6 SP1 ;)

Jetzt hätte ich fast was gehabt... Variablennamen in der Sprache umschaltbar. Aber wenn man länger drüber nachdenkt. Programmiersprache nach Styleguide ist ohnehin Englisch, das versteht weltweit jeder Programmierer. Insofern passt das schon so.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@vollmi Ich denke gemeint ist dieses Gerät: 6ES7558-1AA00-0AB0

Link zum Handbuch

Kannte ich auch noch nicht, hört sich interessant an.

Das TM MFP (Technologiemodul Multifunktionale Plattform) ist ein Modul für
IT-Anwendungen in der Automatisierungstechnik, d.h. für Applikationen, die direkt Daten
und Informationen aus der CPU auswerten und weiterverarbeiten, in die eigentliche
Steuerungsaufgabe aber nicht direkt eingebunden sind.
Das Technologiemodul ermöglicht die Verarbeitung von Daten angeschlossener Sensoren, z.
B. von Kameras und Robotersystemen, und Daten aus dem Anwenderprogramm der CPU. Auf
dem TM MFP ist das Linux- basierte Betriebssystem SIMATIC Industrial OS (IndOS)
vorinstalliert.
Die Graphics Processing Unit (GPU) des verbauten Prozessors ist in der Lage KI-Routinen
auszuführen und zu beschleunigen. Dies ermöglicht die schnelle und effiziente Verarbeitung
von großen Datenmengen und die Optimierung von Prozessen.
Das Technologiemodul unterstützt die Software Docker (standardmäßig nicht vorinstalliert),
um z. B. Software oder Algorithmen in Form von Containern auf das TM MFP zu laden.
•Für die Projektierung des Technologiemoduls verwenden Sie:
TIA Portal ab V19
•Hardware Support Package HSP TM MFP
Das TM MFP unterstützt Anwendungen in den Hochsprachen C, C++ und Python für
Protokollkonverter, Datenbankanbindungen, komplexe Algorithmen und die Integration
optischer Systeme.
 
Ich selber hab sie nicht eingesetzt, ich hab sie schon im Einsatz gesehen bei einem asiatischen FTS-Hersteller, dessen Flottenleitsystem als C++ Programm im MFP-Teil der 1518 MFP lief, und der PLC-Teil hat halt die ganze Sicherheitstechnik und Peripherie angebunden. Ich denke die wollten dem Kunden vorgaukeln, dass ihr Gesamtsystem auf einer SPS läuft.
Heute ist es eh schwer zu sagen wann ein System eine SPS ist und wann ein IPC. Ich mein in einer 1500er werkelt auch irgendein Betriebssystem, man bekommt es nur nicht zu Gesicht.

Ich hab mir das Teil (MFP Baugruppe) jetzt auch mal für Versuche auf den Tisch gelegt. Schon n Cooles Teil um Aufgaben zu lösen die eigentlich einen PC erfordern. Und trotzdem läuft der Kern der Applikation auf der SPS. Vor allem gibt es mir ein besseres Gefühl als ein OpenController die SPS und PC teil einfach nicht sauber trennen lassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
- Enumeration
- SCL durch ST-Code ersetzen mit 61131-3 Standard (OOP). Simatic AX finde nicht schlecht, aber irgendwie doppelt gemoppelt...Code-Maintanance über TIA Portal auch nicht möglich.
- PLCopen Import/Export
- C/C++ soll abwählbar sein.
- TIA-Portal IDE schneller und einfacher umsetzen. Sehr langsam, Immer noch Problemen mit "Crash". Microservices wird ideal hier passen um alle Produkte trennen, aber auch unter einem Hut halten.
- Tabellen(ob es DB, oder Tag-List oder Textlist in Unified) bearbeiten ähnlich wie in Excel...Ziehen, Filtern usw...
- Unified. Responsive design. Einfacher Handling mit SVG. Global Design(Suite). Figma Design Tocken Import.
- Unified. Faceplate beim Größe Änderung soll wie SVG sich verhalten. Aktuell muss man 3-5 Faceplates bauen für jede TIA HMI Panel Größe.
- Unified. JavaScript Syntax Prüfung funktioniert immer noch nicht!
 
Ich würde mir #define wie in ANSI C wünschen - außer es gibt doch einen Umweg?
 
Bedingt mehr Lesbarkeit des Codes. Ich arbeite gerade mit Schrittketten in SCL und da wäre es für mich einfach super.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
#define next Schrittnummer += 10;
Statt: Schritnummer += 10; schreibe ich einfach: next

#define weiter THEN Schritnummer += 10; END_IF;

Statt: IF Bedingung THEN Schrittnummer += 10; END_IF; schreibe ich einfach: IF Bedingung weiter

Sowas halt.
 
#define next Schrittnummer += 10;
Statt: Schritnummer += 10; schreibe ich einfach: next

#define weiter THEN Schritnummer += 10; END_IF;

Statt: IF Bedingung THEN Schrittnummer += 10; END_IF; schreibe ich einfach: IF Bedingung weiter

Sowas halt.
find ich jetzt weniger schlimm.
In den meisten Fällen kopiert man doch eh die IF-Anweisung und passt nur die Bedingung an.

Alternativ kannst du eine Funktion machen, die dir genau die Variable hochzählt. Musst dann in dem FC absolut auf die Variable zugreifen. Wirklich schön ist das dann aber nicht.
Wenn ich ehrlich bin, finde ich die define-Variante aber auch nicht schön
 
#define next Schrittnummer += 10;
Statt: Schritnummer += 10; schreibe ich einfach: next

#define weiter THEN Schritnummer += 10; END_IF;

Statt: IF Bedingung THEN Schrittnummer += 10; END_IF; schreibe ich einfach: IF Bedingung weiter

Sowas halt.
Ich verstehe worauf du hinaus willst, finde das aber nicht schön im Sinne des debuggens. Ich sehe nicht direkt was passiert. Zudem muss das ja irgendwie in den Standard rein und dann müssen es alle umsetzen die diesen Standard anwenden, das ist nicht nur Siemens.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hat schon gewisse Vorteile. Das oben sind nur zwei Beispiele, da kann man viel mehr machen.
#define bewegung(x) #MC_MoveRelative_DB(Axis := #Achse, Distance := (x), Velocity := #StrokeVelocity); #MC_MoveRelative_DB.Execute := TRUE;
und der Aufruf bewegung(12.3)

oder so: #define identifier #Achse.Sensor[1].Interface.AddressIn.RID

Finde ich irgendwie geschickt. Inline-Funktion ist einfach schön und einfach. 🤩
 
Hat schon gewisse Vorteile. Das oben sind nur zwei Beispiele, da kann man viel mehr machen.
#define bewegung(x) #MC_MoveRelative_DB(Axis := #Achse, Distance := (x), Velocity := #StrokeVelocity); #MC_MoveRelative_DB.Execute := TRUE;
und der Aufruf bewegung(12.3)

oder so: #define identifier #Achse.Sensor[1].Interface.AddressIn.RID

Finde ich irgendwie geschickt. Inline-Funktion ist einfach schön und einfach.
An der Stelle würde ich mir eher anständiges OOP wünschen, wie es die IEC 61131 auch vorschreibt...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben