TIA LB Lokaldatenbyte

Zuviel Werbung?
-> Hier kostenlos registrieren
Waldemar,

Es ist natürlich super das du dich mit dem AWL Code beschäftigst und die versuchst aus zu werten und um zu setzen in FUP.
In dein Fall würde ich eher die Hauptfunktion des Programmteils auswerten und neu Aufsetzen. Nicht in die typische AWL Schnipsel hängen bleiben.

Also, Was mach dein Programm?
Ist dein Programm real?
Ubnungsaufgabe?
Echte Anlage?
 
Hallo,
da ich muss nur zwei Byte trennen bzw auslesen, habe ich so was vorgestellt.
DB_TEST // DB_ANY // in FC als Input schreiben
mit MOVE in Temp als DB_TEST_HILFE // Word // überschreiben
mit kombination AT Überlagerung unter gleiche Adresse als bits0 als Word erstellen, und unter bits1 als Byte erstellen.
Dann entprechen aus Word ( Word entsteht aus zwei Byte, Byte 1 und Byte 0 ):
- mit bits 0 als Word lese ich Byte 0
- und mit bits1 als Byte lese Byte 1 aus Word DB_TEST_HILFE // Word // in Temp .
Laut simulation PLC, es funktioniert,
in AB0 wird Byte 0 geschrieben, in AB1 wird Byte 1 geschrieben.

Gruß

P.S. FC Baustein muss NICHT optimiert sein.
 

Anhänge

  • FUP.PNG
    FUP.PNG
    19,2 KB · Aufrufe: 55
  • Sim.PNG
    Sim.PNG
    19,5 KB · Aufrufe: 54
  • Temp_LB0.PNG
    Temp_LB0.PNG
    22,4 KB · Aufrufe: 47
Zuletzt bearbeitet:
Damit kannst du doch das Wort in 2 Byte trennen.
Der FC ist komplett überflüssig.
und was habe ich gemacht?

Daten in Wort geschrieben, und aus Wort jede Byte ( Byte 1 und Byte 0 ) gelesen.
Erst mal in FC das muss alles drin bleiben.


Eigentlich ich möchte von dir auch deine Lösung schauen, kannst du bitte deine Lösung vorstellen?
Gruß
 
Zuletzt bearbeitet:
Lösungsvorschläge gab es doch schon.
Es macht keinen Sinn das in FUP umzusetzen bzw. zu versuchen AWL Programme stumpf 1:1 nach TIA umzuschreiben.
Entweder man passt die ganze Software an oder man lasst es eben so wie es ist.

Meine Meinung.
 
Furchtbar obwohl es funktioniert.
AT-Sicht, aber es ist ein Word von ein Word der mit den AT addressiert wird. Völlig überflüssig.
Die erste Byte wird von ein Word in ein Byte kopiert, und somit durch abschneiden von die zweite Byte 'getrennt'.
Die zweite Byte wird mittels Slice Zugriff kopiert.
Wenn es handelt um wie man den Sinn von sein Code durch Verschleiern vestecken kann, dann ist es gut gelungen.
 
Furchtbar obwohl es funktioniert.
AT-Sicht, aber es ist ein Word von ein Word der mit den AT addressiert wird. Völlig überflüssig.
Die erste Byte wird von ein Word in ein Byte kopiert, und somit durch abschneiden von die zweite Byte 'getrennt'.
Die zweite Byte wird mittels Slice Zugriff kopiert.
Wenn es handelt um wie man den Sinn von sein Code durch Verschleiern vestecken kann, dann ist es gut gelungen.
Jesper er übergibt vorher noch mit einem DB_Any-Zeiger.
Daher (wahrscheinlich) das AT.
Das Verschleiern ist wirklich gut gelungen.
Ist ein Bespiel für „Stell dir vor, es funktioniert und keiner weiß warum“
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Waldemar, was dir hier die meisten versuchen zu sagen ist:

Setze den Code nicht auf Teufel komm raus von AWL auf FUP um sondern schaue dir an was der Code macht und schreibe
die Funktion neu, auf dem Stand der Technik. Und das wäre symbolisch ohne irgendwelche Pointerleichen, Lokaldatenleichen usw. usw...
 
Hallo,
da kann man bis 8 Byte auslesen.


Gruß
 

Anhänge

  • Tempor Tabelle.PNG
    Tempor Tabelle.PNG
    27,5 KB · Aufrufe: 45
  • Netzwerk 1_4.PNG
    Netzwerk 1_4.PNG
    30,5 KB · Aufrufe: 45
  • Netzwerk 5_9.PNG
    Netzwerk 5_9.PNG
    29,2 KB · Aufrufe: 46
  • Sim_Tabelle.PNG
    Sim_Tabelle.PNG
    31,7 KB · Aufrufe: 41
  • Sim_Tab 2.PNG
    Sim_Tab 2.PNG
    34,5 KB · Aufrufe: 44
Zuviel Werbung?
-> Hier kostenlos registrieren
zeig bitte deine alternative von Programm?
Schreibe Du mal eine ordentliche Aufgabenstellung, dann findet sich auch eine schöne Lösung.
Aus nur 5 Zeilen AWL läßt sich noch nicht viel Sinn und Verbesserungspotential erkennen. Der Code geht da sicher noch weiter, und vielleicht ist auch die AWL-Lösung schon ziemlich unsauber/unvollständig, z.B. was passiert da mit %LB1 ?

Harald
 
Schreibe Du mal eine ordentliche Aufgabenstellung, dann findet sich auch eine schöne Lösung.
Hallo zusammen,


für TIA CPU 1200 und CPU 1500 brauche ich Lösung ein paar Zelle von AWL nach FUP umwandeln.

In FUP // Input // DB_TEST // Datentyp als DB_ANY // eingelesen.

Davon Byte B0 und Byte 1 auslesen und in gleiche FC in Temp unter ( zum Beispiel ) Byte_Hilfe_0 und Byte_Hilfe_1 // als Datentype Byte // speichern.




AUF #DB_TEST // Input // Datentyp als DB_ANY //


L %DBB0
T #LB0

L %DBB1
T #LB2



Gruß
 
Zurück
Oben