TIA AWL Programm mit SCL Realisieren

Muhi4ever

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

gerade mache ich einen Praktikum als SPS Programmierer und ich bin gleich an der erste Aufgabe gescheitert.
Und zwar sollte ich ein bestehenden AWL Programm mit SCL Realisieren :-(
Bitte um Hilfe.
Anbei das Programm in AWL

A "DB10 Daten".Masch.Antrieb_2
JCN NM22


OPN #DB_FUs //Öffnen DB90 oder DB91 - Parameter von FUs
L "mwHydrFunktionNr" //Lade Funktionsnummer
L 0 //Lade 0
<=I //Wenn Funktionsnummer kleine als 0 ist
JCN M020 //Wenn Funktionsnummer grosser als 0 ist->Sprung M020
L 0 //Lade 0
T #Warnstatus //in DBW 76
JU M021 //und Sprung auf Ende
M020: L 5 //Versatz im DB
L "mwHydrFunktionNr" //Lade Funktionsnummer
+I //Addition
SLW 4 //Schiebe links Wort (* 16 Bit)
LAR1 //Lade in Adressregister AR1
L DBW [ AR1 , P#0.0 ] //Lade Funktionsdrehzahl
T #Warnstatus //Transferiere in DBW 76
// L -10 //Drehzahl negieren (Linkslauf)
// *I //Drehzahl negieren (Linkslauf)
T #"PA.Solldrehzahl" //Transfer in Solldrehzahl


M021: NOP 0 //Ende
NM22: NOP 0
 
Tip: Code wird besser lesbar, wenn man ihn in [CODE]-Tags postet (der #-Button im Beitrags-Editor)
Code:
      A     "DB10 Daten".Masch.Antrieb_2
      JCN   NM22


      OPN   #DB_FUs                               //Öffnen DB90 oder DB91 - Parameter von FUs
      L     "mwHydrFunktionNr"                //Lade Funktionsnummer
      L     0                                            //Lade 0
      <=I                                              //Wenn Funktionsnummer kleine als 0 ist
      JCN   M020                                  //Wenn Funktionsnummer grosser als 0 ist->Sprung M020
      L     0                                        //Lade 0
      T     #Warnstatus                      //in DBW 76
      JU    M021                              //und Sprung auf Ende
M020: L     5                                //Versatz im DB
      L     "mwHydrFunktionNr"        //Lade Funktionsnummer
      +I                                       //Addition
      SLW   4                                //Schiebe links Wort (* 16 Bit)
      LAR1                                  //Lade in Adressregister AR1
      L DBW [ AR1 , P#0.0 ]      //Lade Funktionsdrehzahl
      T     #Warnstatus          //Transferiere in DBW 76
//      L     -10                          //Drehzahl negieren (Linkslauf)
//      *I                                 //Drehzahl negieren (Linkslauf)
      T     #"PA.Solldrehzahl"   //Transfer in Solldrehzahl


M021: NOP 0                      //Ende
NM22: NOP 0

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo @Muhi4ever. Schön dich im Forum begrüßen zu können :)

Kleiner Hinweis:

1. Bei solchen Sachen immer dazu schreiben, welche Steuerung verwendet wird (300-er, 1200-er, 1500-er ??)
2. Code in Codetags einrahmen. Das findest du, wenn du unten im Editor auf "Erweitert" gehst in der Buttonleiste des Editierfensters. Deinen Code markieren und dann auf den Button Code (#).

Code:
Dann ist der Code
besser lesbar!
 
Interessant wäre noch, wie der DB aussieht.
Leider haben deine Aufgabensteller ein 300-er Konzept auf die 1500-er portiert. Deswegen werden viele Dinge umständlich oder funktional ungünstig umzusetzen sein.
Hier wäre es sicher angebracht, irgendwann das Konzept neu aufzusetzen, aber das solltest du nicht so laut sagen, hört keiner so gerne ;-)
In deinem Falle solltest du dir mal die Hilfe zu den Befehlen peek und poke ansehen.
 
Zurück
Oben