Blöcke oberhalb des Prozessabbildes einlesen.

Ralle

Super-Moderator , User des Jahres 2006-2007
Teammitglied
Beiträge
15.414
Reaktionspunkte
4.043
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit BLKMOV (SFC20) kann man Datenblöcke kopieren.
Wenn ich ein PEW einlesen will (>127) so bekomme ich die Fehlermeldung 8122 (Bereichslängenfehler).
Offensichtlich kann mit dem SFC20 kein Block oberhalb des normalen Prozesabbildes verwenden. Welchen SFC kann ich dafür nutzen, oder wie muß der Any-Pointer lauten?

Normal P#E256.0 Byte 64 --> das funtkioniert mit P#E50.0 Byte64.
 
Hallo,
ich hatte auch einmal versucht, einen DP-DP-Koppler per SFC 20 zu lesen/schreiben. Das ging nicht, weil die Adresse oberhalb 128 lag. Ich habe dann SFC 14 und SFC 15 genommen. Ansonsten kenne ich nur die Möglichkeit über Doppelworte, dh. den Bereich aufsplitten.
L DBa.DBDa
T PADa
.
.
.
Gruß Andre
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Andre, habs so gemacht (SFC14/15).
Man muß nur mit der Bereichslänge aufpassen, da bei einer 300-er CPU nur max. 32 Byte mit einem Mal gelesen/geschrieben werden können.
 
Hallo Ralle, hallo @all,

mit der SFC20 kann man definitiv keinen Peripheriebereich übertragen. Aber deine Frage..
...oder wie muß der Any-Pointer lauten?...
..beschäftigt mich allerdings auch schon seit langer Zeit. Bei einem ANY-Pointer gibt es doch folgende Operandenbereiche:

  • 0 0 0 Peripherie
    0 0 1 Eingänge
    0 1 0 Ausgänge
    0 1 1 Merker
    usw.
Was ist eigentlich unter dem Operandenbereich "Peripherie" zu verstehen? Falls man damit PEW/PAW adressieren könnte (auch wenn die SFC20 nichts damit anfangen kann), wie kann die Steuerung dann Eingang und Ausgang unterscheiden? Eine Antwort auf diese Frage habe ich noch nirgendwo gefunden.


Gruß, Onkel
 
Zurück
Oben