Problem mit Lokaldaten

Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

mach doch aus dem Baustein bitte mal eine AWL-Quelle und stelle diese hier rein.
Im Editor "Datei -> Quelle generieren" Objektnamen vergeben, Baustein im darauf folgenden Fenster von links nach rechts schieben "-->".
Im Simatic Manager im Projekt, Ordner "Quellen" die erzeugte Quelle bitte hier rein stellen.
Aber vielleicht schreibst Du auch nur mit einem anderen Antrieb auf die selbe DB Adresse.

Gruss Daniel
 
Da haste´ den Salat...


VAR_TEMP
STATUSW_IST_BA_1 : BOOL ; //INDRAMAT-Statuswort Ist-Betriebsart
STATUSW_IST_BA_2 : BOOL ; //INDRAMAT-Statuswort Ist-Betriebsart
STATUSW_RESERVIERT_1 : BOOL ; //INDRAMAT-Statuswort RESERVIERT
STATUSW_MELDUNG_ZUSTKL_3 : BOOL ; //INDRAMAT-Statuswort Meldung Zustandsklasse 3
STATUSW_WARNUNG_ZUSTKL_2 : BOOL ; //INDRAMAT-Statuswort Warnung Zustandsklasse 2
STATUSW_ANTRFEH_ZUSTKL_1 : BOOL ; //INDRAMAT-Statuswort Antriebsfehler Zustandsklasse 1
STATUSW_BETRIEBSB_BB : BOOL ; //INDRAMAT-Statuswort Betriebsbereit (bb)
STATUSW_BETRIEBSB_AB : BOOL ; //INDRAMAT-Statuswort Betriebsbereit (Ab)
STATUSW_BETRMODUS_QUITT1 : BOOL ; //INDRAMAT-Statuswort Betriebsmodus-Quittung
STATUSW_BETRMODUS_QUITT2 : BOOL ; //INDRAMAT-Statuswort Betriebsmodus-Quittung
STATUSW_IN_REFERENZ : BOOL ; //INDRAMAT-Statuswort In-Referenz
STATUSW_IN_STILLSTAND : BOOL ; //INDRAMAT-Statuswort In-Stillstand
STATUSW_IN_POSITION : BOOL ; //INDRAMAT-Statuswort In-Position
STATUSW_KOMMANDOAENDER : BOOL ; //INDRAMAT-Statuswort Kommandoänderungsbit
STATUSW_BETRIEBSM_FEHLER : BOOL ; //INDRAMAT-Statuswort Betriebsmodus-Fehler
STATUSW_ANTRIEB_HALT : BOOL ; //INDRAMAT-Statuswort Antrieb Halt
STEUERW_SOLL_BA_1 : BOOL ; //INDRAMAT-Steuerwort Soll-Betriebsart
STEUERW_SOLL_BA_2 : BOOL ; //INDRAMAT-Steuerwort Soll-Betriebsart
STEUERW_RESERVIERT_1 : BOOL ; //INDRAMAT-Steuerwort RESERVIERT
STEUERW_RESERVIERT_2 : BOOL ; //INDRAMAT-Steuerwort RESERVIERT
STEUERW_IPOSYNC : BOOL ; //INDRAMAT-Steuerwort IPOSYNC
STEUERW_ANTRIEB_HALT : BOOL ; //INDRAMAT-Steuerwort Antrieb-Halt
STEUERW_ANTRIEB_FREIGABE : BOOL ; //INDRAMAT-Steuerwort Antrieb-Freigabe
STEUERW_ANTRIEB_EIN : BOOL ; //INDRAMAT-Steuerwort Antrieb-EIN
STEUERW_SOLLWERTUEBERNAH : BOOL ; //INDRAMAT-Steuerwort Sollwertübernahme
STEUERW_BETR_MODUS_VORG : BOOL ; //INDRAMAT-Steuerwort Betriebsmodus-Vorgabe
STEUERW_NULLFAHREN : BOOL ; //INDRAMAT-Steuerwort Nullfahren
STEUERW_RESERVIERT3 : BOOL ; //INDRAMAT-Steuerwort RESERVIERT
STEUERW_RESERVIERT4 : BOOL ; //INDRAMAT-Steuerwort RESERVIERT
STEUERW_RESET : BOOL ; //INDRAMAT-Steuerwort Fehler Löschen
STEUERW_TIPPEN_VOR : BOOL ; //INDRAMAT-Steuerwort Tippen vorwärts
STEUERW_TIPPEN_RUECK : BOOL ; //INDRAMAT-Steuerwort Tippen rückwärts
return_SFC14 : INT ;
return_SFC15 : INT ;
ECODRIVE_in_AH : BOOL ;
ECODRIVE_HAUPT_BA : BOOL ;
ECODRIVE_1_NEBEN_BA : BOOL ;
SOLLPOSITION : DINT ;
SOLLGESCHWINDIGKEIT : DINT ;
SOLLBESCHLEUNIGUNG : DINT ;
END_VAR
BEGIN
NETWORK
TITLE =
CALL "DPRD_DAT" (
LADDR := W#16#148,
RET_VAL := #return_SFC14,
RECORD := P#DB96.DBX 0.0 BYTE 28);
NOP 0;
NETWORK
TITLE =
L 0;
T LW 2;

NETWORK
TITLE =
U "EINS";
SPBNB _001;
L #SOLLPOSITION;
T DB96.DBD 42;
_001: NOP 0;
NETWORK
TITLE =
L LW 2;

T DB96.DBW 40;
NETWORK
TITLE =
CALL "DPWR_DAT" (
LADDR := W#16#148,
RECORD := P#DB9.DBX28.0 BYTE 28,
RET_VAL := #return_SFC15);
NOP 0;
END_FUNCTION
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hä ?..............

Was ist den jetzt der Unterschied ?

#Sollposition ist ein Teil des kompletten FC´s.

Lade ich einen belibigen Wert (ohne weitere NW´s im Baustein) bleibt mein Problem das gleiche.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, nichts für ungut.

Dan reicht mein Wissen wohl leider nicht aus um eure Anregungen und
Fragen zu verstehen.

Das unterscheidet sicherlich auch einen Profi vom Amateur.

Bin mir aber auch nicht sicher ob ihr mich versteht. Könnte
ja an meiner unprofissionellen Ausdrucksweise liegen.

Wenn ich den FC neu Poste steht da anstelle von #Sollposition
L300.


Ich habe den ganzen Baustein auf die paar kleinen Zeilen zusammengestrichen. Das Ding schreibt eigentlich nur noch einen Wert in
den DB. Und das Problem bleibt das gleiche.

Was fehlt den da jetzt noch oder ist nicht zu verstehen ?
 
hallo Carsten,
dein FC macht doch irgendwie Problemme, deshalb hast du doch deinen
Thread gestartet. Die Kollegen wollen dir helfen und sagen das du mal den
ganzen Code einstellen sollst. Mach das doch einfach und jammer nicht
herum. Oft ist es so das mann selber irgendetwas übersieht und stunden-
lang hinterher sucht, ein andere wirft einen Blick drauf und hat den fehler
sofort gefunden. Da reicht es oft nicht aus nur einen Ausschnitt zu posten,
nutze die möglichkeiten des Editors, betätige die klammer über den Textfeld,
dazwischen schreibst du dann den Code.
 
Hi,

ok, letzter Versuch.

Schreib mal in Deinen FC nur noch folgendes rein, ohne irgendeinen anderen Müll.

Code:
      CALL  "DPRD_DAT"
       LADDR  :=W#16#148
       RET_VAL:=#tRetVal
       RECORD :=P#DB96.DBX 0.0 BYTE 28


      CALL  "DPWR_DAT"
       LADDR  :=W#16#148
       RECORD :=P#DB96.DBX 28.0 BYTE 28
       RET_VAL:=#tRetVal

Mehr soll da jetzt nicht mehr drinstehen. Danach machst Du dir eine schicke VAT-Tabelle und probierst den Antrieb mal so zu steuern, also direkt über den DB.

Du wirst sehen der macht genau das was Du willst.

Das Problem liegt in deinen restlichen Code aber ohne den Rest zu kennen kann dir keiner Helfen.

Gruss Daniel
 
Zurück
Oben