symbolische Adressierung in AWL

wiede

Level-1
Beiträge
64
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich hätte mehrere Fragen, möchte aber nicht zu viele neue Themen
erstellen, da meine Fragen für die meißten von Euch wahrscheinlich
sowieso langweilig sind:

a) Ich würde gerne mein gesamtes SPS-Programm in AWL schreiben, da ich aber immer den gesamten Namen der Adresse eingeben muss, benutze ich im Moment noch FUP. Gibt es für AWL auch so etwas ähnliches, wo ich die Variablen oder Adressen die ich symbolisch oder in einem DB hinterlegt habe, einfach auswählen kann?

b) Ich habe heute früh von PLCSIM 5.3 auf 5.4 SP1 gewechselt, seither kann ich das Zielsystem nicht mehr laden. Die kleine Sanduhr erscheint und nach ein paar Minuten kommt eine Fehlermeldung. Leider bekomme ich die Nummer der Fehlermeldung jetzt gerade nicht mehr her, das komplette Programm ist jetzt abgeschmiert.

Grund für das Update ist, dass ich eine Anlage mit meheren Profibus-Stationen habe

c) Setzen eines einzelnen Bit in einem Wort, das einen symbolischen Namen hat. Z.B. ein Wortin einem DB, das alle Fehlermeldungen an die Visu übergibt. Not-Halt = Bit 1, Steuerspannung = Bit 2, .....
Da sich die Startadresse des Worts im DB noch ändert, möchte ich den symbolischen Namen verwenden.
Gibt es dafür noch eine etwas schönere/einfachere Lösung ein einzelnes Bit zu setzen als den Wert des Bits zu laden und in das Wort zu transferieren?
Möglichst ohne Zuhilfenahme eines SFC/SFB, damit auch das Servicepersonal später noch leicht nachvollziehen kann, was da passiert.


Vielen Dank für Eure Antworten


Wiede
 
...
a) Ich würde gerne mein gesamtes SPS-Programm in AWL schreiben, da ich aber immer den gesamten Namen der Adresse eingeben muss, benutze ich im Moment noch FUP. Gibt es für AWL auch so etwas ähnliches, wo ich die Variablen oder Adressen die ich symbolisch oder in einem DB hinterlegt habe, einfach auswählen kann?

...
Ctrl-J oder Strg-J
 
Zuviel Werbung?
-> Hier kostenlos registrieren
c) Setzen eines einzelnen Bit in einem Wort, das einen symbolischen Namen hat. Z.B. ein Wortin einem DB, das alle Fehlermeldungen an die Visu übergibt. Not-Halt = Bit 1, Steuerspannung = Bit 2, .....
Da sich die Startadresse des Worts im DB noch ändert, möchte ich den symbolischen Namen verwenden.
Gibt es dafür noch eine etwas schönere/einfachere Lösung ein einzelnes Bit zu setzen als den Wert des Bits zu laden und in das Wort zu transferieren?
Möglichst ohne Zuhilfenahme eines SFC/SFB, damit auch das Servicepersonal später noch leicht nachvollziehen kann, was da passiert.


Vielen Dank für Eure Antworten


Wiede

Hast du den Symbolischen Namen für das Word vergeben oder für das Bit?
Wenn sich die Adresse deines Word noch verändert und du hast ein Symbol dafür dann kannst du ja Symbolisch Programmieren. Dann ändert sich die Adresse mit und das Symbol bleibt stehen.
 
Ich habe dem Wort einen symbolischen Namen gegeben, da ich das später im WinCCflex wieder benötige, für die Bitmeldung kann ich keine einzelnen Bits übergeben.
Wenn ich jedem Bit einzeln einen symbolischen Namen gebe, dann muss ich aufpassen, dass die alle hintereinander stehen und bei x.0 beginnen. Dann kann ich in der Visu aber wieder nur mit der Adresse arbeiten.

Korrigiere mich bitte, wenn ich einen Denkfehler habe!

Wiede
 
Wie hast du es jetzt genau gelöst oder wie willst du es genau lösen?
Du kannst dir ja die ganzen einzelnen Bits deiner Meldungen in einem Datenbaustein zusammenfangen und diese nachher in ein Array of Word kopieren und dieses Array übergibst du dann deinem HMI.
Aber vergiss nicht das HIGH und LOW Byte von den einzelnen Wörtern auszudrehen! ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
a) Jetzt habe ich die Fehlermeldung wegen des PLCSIM wieder. Und zwar:

Laden (33:16944)

Online: Es kann kein weiterer aktiver Partner gefunden werden


b) Zu der Lösung mit dem Array:

So etwas habe ich noch nie gemacht, müsste ich da dann einen eigenen DB anlegen, der nur das Wort beinhaltet?
 
a) Jetzt habe ich die Fehlermeldung wegen des PLCSIM wieder. Und zwar:

Laden (33:16944)

Online: Es kann kein weiterer aktiver Partner gefunden werden


b) Zu der Lösung mit dem Array:

So etwas habe ich noch nie gemacht, müsste ich da dann einen eigenen DB anlegen, der nur das Wort beinhaltet?

a) gehe bei PLCSIM auf Simulation und wähle Zielsystem neu

b) nein brauchst du keinen eigenen DB
 
Zuviel Werbung?
-> Hier kostenlos registrieren

Vielen Dank Marlob, ich musste PLCSIM wie in der Anleitung beschrieben reparieren (Neuinstallation). Das scheint wohl öfters mal vorzukommen, wenn Siemens das sogar in die Hilfe aufnimmt, zumal ich diese Version von PLCSIM erst heute früh installiert habe und noch gar nie funktioniert hat.

Wiede
 
Hallo

Zu dem Array, das habe ich jetzt angelegt. Und zwar ein Array[1..16] of bool. Jetzt stellt sich mir die Frage, wie ich das komplette Array in ein Wort verschieben kann?

Weshalb möchte WINCCflexible für die Bitmeldungen immer gleich Variablen, die ein ganzes Wort groß sind, es heißt doch Bitmeldungen. Gibt es dafür einen guten Grund?
 
Hallo

Zu dem Array, das habe ich jetzt angelegt. Und zwar ein Array[1..16] of bool. Jetzt stellt sich mir die Frage, wie ich das komplette Array in ein Wort verschieben kann?

Weshalb möchte WINCCflexible für die Bitmeldungen immer gleich Variablen, die ein ganzes Wort groß sind, es heißt doch Bitmeldungen. Gibt es dafür einen guten Grund?

Ehm, zu dem Array:
Ich habe das anders gemeint. Do sollst dir ein Array of Word anlegen das du dann in deine HMI überträgst. Damit kannst du mit einer Variable beliebig viele Störmeldungen in dein HMI übertragen.
Für die Störmelungen selber kannst du dir ja einen DB anlegen mit den einzelnen Bits drinnen. somit hast du auch zu jeder Störmeldung in der SPS eine Symbolik. Am Besten du legst dir in deinem DB ein Struct an und in diesem Struct nachher die einzelnen Bits. Dann kannst du ganz einfach mit der SFC 20 den Bereich von deinen einzelnen Bits in das Array kopieren.

Aja und warum WinCC flex da ein Word dafür haben will weiß ich auch nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Störmeldungen

Also ich lege in der SPS die Störmeldungen schon in der richtigen Reihenfolge bitweise per UDT an und nutze in der Visu in dem Fall keine symbolische Anbindung. Dann hat man in der SPS wenigstens alle Meldungen symbolisch.

Kannst dir auf der HP die UDT für Schnittstellenbereiche runterladen.

André
 
Langsam wirds aber echt kompliziert, egal was man so kurz anfangen möchte wird bei dem Simaticzeug zum Chaos!

Wenn ich jetzt ein Array of Word erstelle, wie kann ich die einzelnen Wörter im WINCCflex dann wieder ansprechen? Oder kann man dann das komplette Array als Variable angeben?

Das selbe gilt für das UDT, wie kann man das dann in der HMI auswerten?
 
Meldungen

Hallo,

S7
Meldungen bitweise angelegt im DB

siehe auch UDT für Schnittstellenbereiche auf der HP


WinCC flex
Array of Word als Variable
Zugriff der Meldungen auf dieses Array

siehe auch Bibliotheken für Meldungen auf der HP - da musst du nur die Startadresse der schon vorhandenen Variable ändern.

André
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Langsam wirds aber echt kompliziert, egal was man so kurz anfangen möchte wird bei dem Simaticzeug zum Chaos!

Wenn ich jetzt ein Array of Word erstelle, wie kann ich die einzelnen Wörter im WINCCflex dann wieder ansprechen? Oder kann man dann das komplette Array als Variable angeben?

Das selbe gilt für das UDT, wie kann man das dann in der HMI auswerten?

Das Array kann man als komplette Variable Anlegen. Somit brauchst du nur eine Variable und bei jeder Meldung musst du dann sowieso das Bit von deiner Variable angeben.
 
Zurück
Oben