Pniodiag

HS-Mannheim

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich versuche ein FB zu entwickeln, dafür solte ich die Möglichkeit auf Baustein DB200 und DB126 zuzugreifen.

Alle Slave in einer Gruppe zu betrachten geht ohne probleme (DB126.DBW1576 für Mastersystem 1):

L 1576
SLW 3
T MW 14
LAR1
AUF DB 126
L DBW [AR1,P#0.0] //Zustandswort des DP´s
CLR
U DBX [AR1,P#0.0]
= M 999.0
Jetzt möchte ich die Slaves einzeln zu betrachten aber leider konnte ich auf DB200 nicht zugreifen, da die Adressierung doppelt ist

DB200 DBW[DB126.i_Offset_DB_Overview_HMI]

Hat jmd hier eine Idee wie mann macht !


Hab mit Ponter und Any Pointer versucht aber leider ohne Erfolg !
 
Hallo,

Ich versuche ein FB zu entwickeln, dafür solte ich die Möglichkeit auf Baustein DB200 und DB126 zuzugreifen.

Alle Slave in einer Gruppe zu betrachten geht ohne probleme (DB126.DBW1576 für Mastersystem 1):

L 1576
SLW 3
T MW 14
LAR1
AUF DB 126
L DBW [AR1,P#0.0] //Zustandswort des DP´s
CLR
U DBX [AR1,P#0.0]
= M 999.0
Jetzt möchte ich die Slaves einzeln zu betrachten aber leider konnte ich auf DB200 nicht zugreifen, da die Adressierung doppelt ist

DB200 DBW[DB126.i_Offset_DB_Overview_HMI]

Hat jmd hier eine Idee wie mann macht !


Hab mit Ponter und Any Pointer versucht aber leider ohne Erfolg !

Mit deiner Beschreibung ist wenig anzufangen, mach es mal bitte ein wenig ausführlicher. Was ist bei dir DB 200, was steht darin?
 
im DB200 stehen die IN Variablen vom FB126 (Instanz DB von FB126)
Ich benötige die variablen die im DB200 sind, aber konnte ich nicht mir dazu kein Zugriff ermöglichen.
es steht im WINCC zb. DB200 DBW[DB126.i_Offset_DB_Overview_HMI] als Adresse.
 
Danke aber muss eine Methode geben wie man auf solchen DBs zugreifen kann, die Zustandswörte einzelne Slaves konnt ich im MP angezeigt bekomment aber sonst nix.
 
Ich bin kein erfahrene Ingenieur (Absolvent)
Danke für den Hinweis werde ich probieren.
Willst du damit sagen auf diese Art wie ich es möchte geht nicht ?
 
Jetzt möchte ich die Slaves einzeln zu betrachten aber leider konnte ich auf DB200 nicht zugreifen, da die Adressierung doppelt ist

DB200 DBW[DB126.i_Offset_DB_Overview_HMI]
Hier ein Beispiel mit Speicherindirekter Adressierung:
Code:
      L     "DB126".i_Offset_DB_Overview_HMI
      SLD   3
      T     #d_temp_offset
      AUF   DB   200
      L     DBW [#d_temp_offset]
//jetzt steht im Akku1 der Wert aus DB200.DBW[DB126.i_Offset_DB_Overview_HMI]
#d_temp_offset ist ein DWORD in TEMP

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke, es wäre sehr gut wenn das funktionieren würde.
Ich hab es einfach probiert aber ein Fehler ist da, i_Offset_DB_Overview_HMI ist keine Komponente von DB

L DB126.i_Offset_DB_Overview_HMI
// L DB126.DBW 1674
SLD 3
T #d_temp_offset
AUF DB 200
L DBW [#d_temp_offset]

Im WINCC steht für den Namen DB126.i_Offset_DB_Overview_HMI die Adresse DB126.DBW 1674

vielen Dank im Voraus.
 
Danke, es wäre sehr gut wenn das funktionieren würde.
Ich hab es einfach probiert aber ein Fehler ist da, i_Offset_DB_Overview_HMI ist keine Komponente von DB

L DB126.i_Offset_DB_Overview_HMI
// L DB126.DBW 1674
SLD 3
T #d_temp_offset
AUF DB 200
L DBW [#d_temp_offset]

Im WINCC steht für den Namen DB126.i_Offset_DB_Overview_HMI die Adresse DB126.DBW 1674

vielen Dank im Voraus.

Du hast diesen Variablennamen doch aus der HMI. Möglich, dass die Variable dort anders heißt, mach einmal den DB auf und schau nach, wie die Variable dort heißt. Andererseits, kannst du ja nun direkt absolut zugreifen indem du

L DB126.DBW1674 schreibst.

Möglicherweise setzt du den falschen FB126 und damit auch den falschen DB126 ein! (Andere Version)
 
In WINCC steht noch über die Adresse DB 126 DBW 1674 (Adresse von DB126.i_Offset_DB_Overview_HMI) :

Die Adresse der Variablen ist nur bei externen Variablen verfügbar. Die Adresse ist jedoch nicht verfügbar bei indirekte Adressierung und einem Array-Element
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also im DB 126 und DB200 sieht man nix, laut :

STAT0[-32768] BYTE B#16#0 B#16#0
STAT0[-32767] BYTE B#16#0 B#16#0
STAT0[-32766] BYTE B#16#0 B#16#0
STAT0[-32765] BYTE B#16#0 B#16#0
STAT0[-32764] BYTE B#16#0 B#16#0
....

Wusste ich nicht das noch eine Version von FB126 gibt !!!!!!!!!
 
Also im DB 126 und DB200 sieht man nix, laut :

STAT0[-32768] BYTE B#16#0 B#16#0
STAT0[-32767] BYTE B#16#0 B#16#0
STAT0[-32766] BYTE B#16#0 B#16#0
STAT0[-32765] BYTE B#16#0 B#16#0
STAT0[-32764] BYTE B#16#0 B#16#0
....

Wusste ich nicht das noch eine Version von FB126 gibt !!!!!!!!!

Dein DB 126 schein doch nicht mehr ganz in Ordnung zu sein.
Benenne Ihn mal bitte um, z.Bsp. IN DB1126 (im Baustein-Ordner!!!). Dann den FB/FC auf, in welchem dein FB126 aufgerufen wird. Markiere den FB126 komplett, schneide ihn aus und füge ihn wieder ein. Dabei wirst du darauf hingewiesen, dass dein Db126 nicht mehr existiert und gefragt, ob er neu erzeugt werden soll. Mit ja beantworten und abspeichern, dann sollte der DB 126 wieder im Bausteinordner stehen und die richtigen Variableneinträge aufweisen.
 
Hallo,
Ich hab es probiert aber leider bekomme ich immer noch das gleiche :

DB200:
STAT0[-32768] BYTE B#16#0 B#16#0
STAT0[-32767] BYTE B#16#0 B#16#0
STAT0[-32766] BYTE B#16#0 B#16#0
STAT0[-32765] BYTE B#16#0 B#16#0
STAT0[-32764] BYTE B#16#0 B#16#0

DB126 : (siehe Anhang)
 

Anhänge

  • DB126 (1).pdf
    15,1 KB · Aufrufe: 16
Zuviel Werbung?
-> Hier kostenlos registrieren
In Zwischen hab ich mitbekomen das man die Störung (Slave x ist gestört)ausprobiert hat und dann dabei den DB200 angeschaut...
aber es ist auswendig in dem fall wenn mann alle andere arten der Zustande alle Slaves wissen will(Zb. existiert aber deaktiviert, ok aber war gestört, ....)
 
Hallo,
Ich hab es probiert aber leider bekomme ich immer noch das gleiche :

DB200:
STAT0[-32768] BYTE B#16#0 B#16#0
STAT0[-32767] BYTE B#16#0 B#16#0
STAT0[-32766] BYTE B#16#0 B#16#0
STAT0[-32765] BYTE B#16#0 B#16#0
STAT0[-32764] BYTE B#16#0 B#16#0

DB126 : (siehe Anhang)

Kann ich nicht nachvollziehen, wenn der neue Db angelegt ist, sollten die Stat durch die Variablennamen ersetzt sein. Oder fehlt da noch eine UDT?
 
Wie ich gesagt hab, in der Abteilung arbeiten die so :-D

Im ganzen Programm steht nur ein UDT und zwar für was anders (Steuerung kram=

Was für UDT muss noch rein ? kann möglich sein
 
Zuviel Werbung?
-> Hier kostenlos registrieren
DB126 : (siehe Anhang)
Laut dem Anhang ist der DB126 ein Instanz-DB (vom FB126?) und höchstens teilweise von einem UDT abgeleitet.
Wenn in dem neu generierten DB126 nur "IN0" und "OUT1" drinstehen, dann sind die Symbolinformationen des zugehörigen FB schon nicht in Ordnung. Wo hast Du denn den FB her? Versuche mal eine Konsistenzprüfung.

Harald
 
so wird FB 126 aufgerufen:

CALL "PNIODiag" , DB126
IN0 :=200
OUT1:=MD550

U DB200.DBX 39.3
= M 80.0


//hier man mit Probieren festgestellt dass DB200.DBX 39.3 ein Bit für Slave Adresse 20 gestört.
 
Zurück
Oben