TIA Wie sind eure Erfahrungen mit den Softunit's

NBerger

Level-3
Beiträge
1.680
Reaktionspunkte
513
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Wer nutzt von euch die Softunits,Aufg was sollte man achten, machen die Sinn, welche Vorteile stellen sich ein?

Stehe gerade vor einem neuen Projekt und habe etwas Zeit zum spielen...

Mein Gedanke:
Ich habe öfters Anlagen die in einzelne Anlagenbereiche unterteilt werden können.
Die Querkommunikation zwischen den Bereichen wäre minimal (HMI und etwas Teilestatus).

Wie schauts aus?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Wer nutzt von euch die Softunits,Aufg was sollte man achten, machen die Sinn, welche Vorteile stellen sich ein?

Stehe gerade vor einem neuen Projekt und habe etwas Zeit zum spielen...

Mein Gedanke:
Ich habe öfters Anlagen die in einzelne Anlagenbereiche unterteilt werden können.
Die Querkommunikation zwischen den Bereichen wäre minimal (HMI und etwas Teilestatus).

Wie schauts aus?

Nachdem die AG-Stopps und das Reinitialisieren mittlerweile auf ein für mich erträgliches Mass gesunken sind, brauche ich die Software-Units nicht.
Nur um ein SPS-Programm zu strukturieren, machen sie für mich keinen Sinn.
Aber:
Wenn es zu einer Anlage funktionell passt, machen die Software-Units durchaus Sinn.
Ist auf jedenfall schon eine Sache, die man im Auge behalten kann.
 
Vielleicht hilft dir das wenn du dich mal einließt:
Units

Ich finde das unabhängige Lade ganz interessant, habe Units aber noch nicht genutzt.
Auch das die Querkommunikation nicht möglich ist finde ich gut.
 
Ich nutze die Softwareunits, vor allem für Aufgaben die völlig für sich alleine Stehen. z.B. wenn die CPU ein NTP Server werden soll. Dann kopiere ich einfach eine vorgefertigte Softwareunit rein und fertig. muss da dann keine Aufrufe oder dergleichen ins Programm einbauen.
Aber Softwareunits die untereinander Daten austauschen, setze ich nicht ein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sehe für Softwareunits aktuell 3 Anwendungen
1. Wenn mehrere Leute gleichzeitig in Betrieb nehmen und entsprechend vollständig getrennt laden können müssen (was in meiner aktuellen Firma nie der Fall ist, in der vorherigen Firma war das an der Tagesordnung)
2. Wenn ich Dienste in meine CPU laden will, welche von Kunden-Standardprüfroutinen nicht erfasst werden sollen
3. Wenn ich Programmteile so modular gestalte, sodass das Entfernen eines solchen Programmteils durch einfaches Löschen der Softwareunit möglich ist.

Mein Hauptproblem aktuell ist, dass versiondog nicht mit Softwareunits umgehen kann, also keine Vergleiche durchführt was recht lästig ist, deswegen verwende ich das kaum.

Ein Beispiel, wo ich die Softwareunits aktuell verwende sind Kleinststeuerungen (151xSP), welche EAs einfangen und per OPC oder TCP bereitstellen. Die EA-Mapper für OPC oder TCP sind 2 Softwareunits. Jene die ich nicht benötige wird einfach gelöscht. Normalerweise ist in der TIA-Hardwarekonfiguration ein Maximalausbau hinterlegt. Der tatsächliche Ausbau steht in einer csv-Datei auf der Speicherkarte und wird per Software geladen. Will der Kunde das nicht wird die zugehörige Software-Unit gelöscht und die Hardware-Module in TIA ebenfalls.

Ein Nachteil speziell bei Kommunikationsdiensten ist, dass man in Software-Units keinen Zugriff auf die Systemkonstenten der Hardware hat, sondern dass man diese per Schnittstellen-DB mitgeben muss (diese Schnittstellen-DBs liegen dann im globalen Programm). Sehr schade ist, dass Softwareunits keine eigenen Namespaces erzeugen, so wie das z.B. Rockwell mit den "programs" macht, aber da erkennt man einfach dass Rockwell zumindest 10 Jahre früher dran und mutiger war.
 
Zuletzt bearbeitet:
Ein Beispiel, wo ich die Softwareunits aktuell verwende sind Kleinststeuerungen (151xSP), welche EAs einfangen und per OPC oder TCP bereitstellen. Die EA-Mapper für OPC oder TCP sind 2 Softwareunits. Jene die ich nicht benötige wird einfach gelöscht. Normalerweise ist in der TIA-Hardwarekonfiguration ein Maximalausbau hinterlegt. Der tatsächliche Ausbau steht in einer csv-Datei auf der Speicherkarte und wird per Software geladen. Will der Kunde das nicht wird die zugehörige Software-Unit gelöscht und die Hardware-Module in TIA ebenfalls.
Das Konzept mit dem Software-Units löschen, führt dann auch zu dem paradoxen Zustand, dass Bibliotheken, welche ich in mehreren Software-Units nutze, auch zweimal auf der Steuerung liegen, mit unterschiedlichem Präfix in den Typ- und Bausteinnamen.

Und man muss bei der Idee auch etwas Zeit investieren in die Vorbelegung von Startwerten in Schnittstellen und ggf. bei der Reihenfolge, in der die MAIN- und Startup-Bausteine dran kommen. Hier hat jede Software-Unit ihre eigenen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da fällt zum Beispiel schon mal die gewöhnliche ModBus-TCP Kommunikation raus, weil da braucht es komplett adressierte Datenbausteine.
Das stimmt so nicht mehr. Es steht zwar so in der Doku aber aktuelle Modbus Bausteine können auch optimierte DBs als Halteregister verwenden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meint Ihr die Standard MB_CLIENT/MB_SERVER?
Da benötigt man schon länger keinen Pointer mehr sondern nur noch einen DB als Pointer.


Naja, das geht wenn man die Daten dann aus dem Server Buffer DB umkopiert.
Ich allerdings habe eine feste Struktur von einem Roboter in dem
READ
R/W
WRITE
Bereiche sind.

Ich will das nicht noch eine weitere STRUCT Ebene tiefer schachteln.

1732139053131.png
1732139113069.png
 
Naja, ich erstelle einen Datenbaustein aus einem UDT

DB:
1732140614506.png
1732140755717.png

UDT:
1732140649816.png

Aufruf:
1732140697778.png



Wäre das eine Lösung um nicht mit Pointer arbeiten zu müssen?
 
Hast Du da einen Grund für? Ich nutze sie äußerst häufig weil mir das enorm viel Strukturkomfort bietet.

Ich entwickle gerade Teilprojekte in V16 um diese dann in ein großes Projekt zu integrieren.
Ohne UDTs muss ich nur wenige Programmordner umkopieren. Ich schau mir das nochmal an.
Vielleicht ändere ich das nachdem ich alles zusammengeführt habe.
 
Verständlich, jedoch liegt das wohl daran wie man arbeiten mag.
Ich ziehe meine Bausteine grundsätzlich in die Projektbibliothek. Dabei werden die UDTs automatisch mit übernommen und ich muss mir keine Sorgen machen das die Struktur verschwindet.
Die Projektbibliothek nutze ich um Versionen speichern zu können innerhalb des Projekts, auch zu Testzwecken.
 
Zurück
Oben