Lesen vom Spezialmodul
Daten werden vom Speicher eines intelligenten Moduls gelesen.
Eingang
Spezifiziert die Speicherbank-/Steckplatznummer im gemeinsamen Speicher des Spezialmoduls
Spezifiziert die Anfangsadresse im gemeinsamen Speicher des Spezialmoduls (Quelldatenadresse)
Spezifiziert die Anzahl der zu lesenden Worte
Anfangsadresse in der CPU, ab der Daten gespeichert werden (Ziel)
Die n_Number Worte der im gemeinsamen Speicher des Spezialmoduls/der Spezialbaugruppe an s1_BankSlot gespeicherten Daten werden von dem Bereich, der in s2_Start spezifiziert wurde, gelesen und im Speicherbereich der CPU, der in d_Start spezifiziert wurde, gespeichert.
Die Anzahl der Variablenargumenten an den Eingängen hängt von den verfügbaren Indexregistern der SPS ab.
s1_BankSlot spezifizieren
Intelligentes Modul ohne Speicherbank
Legen Sie der Steckplatznummer des Ziel-Intelligent-Moduls fest.
Intelligentes Modul mit Speicherbank
Legen Sie die Steckplatznummer und die Speicherbanknummer (hex. Konstante) des Ziel-Intelligent-Moduls fest.
Name |
Bestellnummer |
|
FP3-Speichererweiterungsmodul |
AFP32091 AFP32092 |
|
FPS-Speichererweiterungsmodul |
AFPG201 |
wenn s1_BankSlot die Grenze des festgelegten Bereichs überschreitet
wenn die gelesenen Daten den Bereich von d_Start überschreiten
wenn s1_BankSlot die Grenze des festgelegten Bereichs überschreitet
wenn die gelesenen Daten den Bereich von d_Start überschreiten
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
Start: BOOL:=FALSE;
(*activates the function*)
SlotNo: WORD:=16#03;
(*if start is TRUE, this value
gets 2 words from the address
1 from the unit-slot 0*)
AddrDataToRead: INT:=19;
NoWordsToRead: INT:=4;
DestAddrCPU: ARRAY [0..3] OF INT:=[4(0)];
(*Starting address in CPU to store data read*)
END_VAR
4 Worte werden ab Adresse 19, die in AddrDataToRead festgelegt ist, im Speicherbereich des intelligenten Moduls (im Steckplatz 3) gelesen. Dann werden sie im Array DestAddrCPU; wenn Start AN ist.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_F,F150_READ!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
B(B_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,NoWordsToRead,11,4,13,6,);
B(B_VARIN,,NoWordsToRead,11,5,13,7,);
B(B_VARIN,,DestAddrCPU[0],11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
L(9,3,13,3);
L(1,3,7,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF start then
F150_READ( s1_BankSlot:= SlotNo,
s2_Start:= AddrDataToRead,
n_Number:= NoWordsToRead,
d_Start:= DestAddrCPU[0]);
END_IF;