Załącznik 2 - Write Data Record into the MEMORY_PACK FUN161 P
S :Początkowy adres danych źródłowych
BK:Numer bloku MEMORY_PACK; 0~1
Os:Przesunięcie bloku
Pr:Adres wskaźnika
L:Ilość zapisów; 1~128
WR: Początkowy adres rejestrów roboczych; wymaga 2 rejestrów.
S może łączyć się z V, Z, P0~P9w celu realizacji pośredniego adresowania
Zakres / Argument | HR | ROR | DR | K | XR |
R0 ∣ R3839 | R5000 ∣ R8071 | D0 ∣ D4095 |
| V、Z P0~P9 | |
S | ○ | ○ | ○ |
| ○ |
BK |
|
|
| 0~1 |
|
Os | ○ | ○ | ○ | 0~32510 |
|
Pr | ○ | ○* | ○ |
|
|
L | ○ | ○* | ○ | 1~128 |
|
WR | ○ | ○* | ○ |
|
|
Głównym zadaniem MEMORY_PACK serii FBs jest długoterminowe zapisywanie programu drabinkowego użytkownika. Ponadto, za pomocą instrukcji FUN161/FUN162 MEMORY_PACK może pracować jako MEMORY_PACK do zapisu i ładowania parametrów roboczych.
Jeżeli „EN” zmieni się z 0→1, nastąpi zapis danych, gdzie S jest początkowym adresem danych źródłowych, BK jest numerem bloku MEMORY_PACK do zapisu danych. Os jest przesunięciem określonego bloku, Pr jest wskaźnikiem wskazującym odpowiedni obszar danych, L jest wartością tych danych. Dostęp do ustawień MEMORY_PACK wykorzystuje koncepcję struktury REKORDU danych. Schemat roboczy został przedstawiony poniżej:
● Jeżeli „INC” = 1, znacznik zostanie zwiększony o jeden. Po realizacji zapisu wskaźnik będzie wskazywać następny rekord.
● Jeżeli L = 0 lub L > 128 lub wskazywany obszar danych jest poza zakresem, to „ERR” = 1, a operacja zapisu nie zostanie zrealizowana. Instrukcja wymaga kilku skanów PLC w celu zapisu i weryfikacji danych; podczas realizacji instrukcji „ACT” = 1; w przypadku bezbłędnego zakończenia realizacji i weryfikacji instrukcji „DN” = 1; jeżeli pojawi się błąd, „ERR” = 1.
● MEMORY_PACK może zostać skonfigurowany w celu zapisania programu drabinkowego użytkownika, parametrów roboczych maszynie lub obu tych elementów. Program drabinkowy może zostać zapisany jedynie w bloku 0, a parametry robocze maszyny w bloku 0 lub 1; całkowita pojemność pamięci każdego bloku wynosi 32 ksłów.
Przykładowy program : Zapis rekordu w bloku 1 w MEMORY_PACK o innej długości: