Navodila TIA Portal

Operacije Premikanja
Prenos & Upravljanje Podatkov

Prenos podatkov je krvni obtok vašega PLC programa. Učinkovito upravljajte kopije spremenljivk, serializacijo struktur in manipulacije pomnilniških blokov.

Kaj so operacije premikanja v TIA Portalu?

Operacije premikanja omogočajo kopiranje podatkov z ene pomnilniške lokacije na drugo. Segajo od preprostega kopiranja spremenljivke (MOVE) do kompleksne manipulacije celotnih struktur za komunikacijo (Serialize/Deserialize) ali upravljanja sosednjih podatkovnih območij (MOVE_BLK).

TIA Portal ponuja sodobna navodila za simbolni dostop, dinamično upravljanje preko tipov Variant in optimizirane funkcije za Array DB, hkrati pa ohranja navodila Legacy za združljivost s starejšimi sistemi S7-300.

Osnovni Prenos

Temeljna navodila za kopiranje in formatiranje

MOVE — Kopiraj vrednost

MOVE

Kaj počne

Kopira vsebino vhoda IN na izhod OUT. Če se podatkovni tip razlikuje, lahko pride do implicitne pretvorbe, če je ta varna.

Kdaj uporabiti

Inicializacija spremenljivk, kopiranje nastavljenih vrednosti HMI ali prenos rezultatov izračunov.

Pro Nasveti

Dodate lahko več izhodov (OUT1, OUT2...), da kopirate vrednost na več ciljev hkrati.

V SCL preprosto uporabite dodelitev: destination := source;

Deluje s skoraj vsemi podatkovnimi tipi (Bool, Int, Real, Struct, String).

Serialize / Deserialize

SER

Kaj počneta

Serialize pretvori kompleksno strukturo v zaporedni tok bajtov (Array of Byte). Deserialize naredi nasprotno.

Kdaj uporabiti

Priprava podatkov za pošiljanje preko komunikacijskih protokolov (TCP/IP, UDP) ali kompaktno shranjevanje.

Pro Nasveti

Uporabite parameter POS za sledenje indeksu polnjenja v ciljnem medpomnilniku.

Bistveno za izmenjavo s sistemi tretjih oseb, ki ne razumejo Siemensovih struktur UDT.

Zagotovite, da je velikost medpomnilnika zadostna, da preprečite napake pri izvajanju.

SWAP — Zamenjaj

SWAP

Kaj počne

Obrne vrstni red bajtov (Endianness) v operandu IN.

Kdaj uporabiti

Komunikacija z napravami, ki uporabljajo format 'Little-Endian', medtem ko PLC uporablja 'Big-Endian'.

Pro Nasveti

Običajno se uporablja na tipih Word ali DWord.

Uporabno za obdelavo podatkov iz določenih senzorjev Modbus.

Lahko se uporabi za reorganizacijo ASCII kod, prejetih v obratnem vrstnem redu.

Premikanje Blokov

Manipulacija masovnih in sosednjih pomnilniških območij

MOVE_BLK / UMOVE_BLK

MOVE_BLK

Kaj počne

Kopira določeno število elementov iz izvornega polja v ciljno polje. UMOVE_BLK je neprekinjena (atomska) različica.

Kdaj uporabiti

Upravljanje medpomnilnikov, arhiviranje zgodovinskih podatkov ali podvajanje proizvodnih receptur.

Pro Nasveti

Začetni indeks (COUNT) določa število elementov za kopiranje.

UMOVE_BLK zagotavlja, da podatkov med kopiranjem ne spremeni alarmni OB.

Izvorni in ciljni podatkovni tipi morajo biti identični.

MOVE_BLK_VARIANT

Kaj počne

Napredna različica MOVE_BLK, ki podpira podatkovne tipe Variant za prilagodljivo naslavljanje.

Kdaj uporabiti

Razvoj večkrat uporabnih knjižničnih blokov, ki delujejo na poljih različnih velikosti ali tipov.

Pro Nasveti

Omogoča kopiranje med polji, katerih tipi se določijo ob izvajanju.

Uporabite CountOfElements za avtomatizacijo parametra COUNT.

Zelo močno v S7-1500 za generično programiranje.

Polnjenje Območja

Hitra inicializacija pomnilniških območij

FILL_BLK / UFILL_BLK

FILL

Kaj počne

Napolni pomnilniško območje (polje) z eno samo vrednostjo, določeno na vhodu IN.

Kdaj uporabiti

Ponastavitev polja meritev na nič ali inicializacija medpomnilnika s privzeto vrednostjo.

Pro Nasveti

UFILL_BLK je boljši za kritična območja, ki se delijo s prekinitvami.

Veliko bolj zmogljivo kot zanka FOR za inicializacijo velikega polja.

COUNT določa število elementov, ki se napolnijo od določenega kazalca naprej.

Scatter / Gather

Razstavljanje in sestavljanje bitov

SCATTER / GATHER

Kaj počneta

SCATTER razstavi besedo (Word, DWord...) na posamezne bite v strukturo ali polje. GATHER naredi nasprotno.

Kdaj uporabiti

Ekstrakcija statusnih bitov iz diagnostične besede ali sestavljanje ukazne besede iz kontrolnih bitov.

Pro Nasveti

Učinkovito nadomesti množico bitnih dostopov (npr. %X0).

Na voljo na S7-1200 in S7-1500.

Zagotavlja čistejšo kodo, ki jo je lažje vzdrževati.

Dostop do Array DB

Branje in pisanje v podatkovne bloke tipa polje

ReadFromArrayDB / WriteToArrayDB

Kaj počneta

Omogočata branje ali pisanje specifičnega elementa v podatkovnem bloku, konfiguriranem kot 'Array DB'.

Kdaj uporabiti

Upravljanje velikih seznamov podatkov, kjer mora biti indeksiranje dinamično in hitro.

Pro Nasveti

Različice 'L' (npr. ReadFromArrayDBL) dostopajo do pomnilnika za nalaganje (Load Memory) za manj pogoste podatke.

Uporaba Array DB je pogosto bolj zmogljiva od klasičnega indeksiranega dostopa.

Preverite, ali je indeks znotraj meja, da preprečite napako pri dostopu.

Manipulacija Variant

Orodja za dinamično programiranje

VariantGet / VariantPut

Kaj počneta

VariantGet izvleče vrednost spremenljivke Variant v tipizirano spremenljivko. VariantPut zapiše tipizirano vrednost v spremenljivko Variant.

Kdaj uporabiti

Obdelava podatkov, katerih natančen tip je znan šele ob klicu bloka.

Pro Nasveti

Uporabite EQ_Type za preverjanje tipa pred ekstrakcijo vrednosti.

Temeljno za ustvarjanje generičnih komunikacijskih funkcij.

CountOfElements vrne število elementov, če Variant kaže na polje (Array).

Meje Polj

Dinamično določanje mej

LOWER_BOUND / UPPER_BOUND

Kaj počne

Vrne spodnjo (LOWER) ali zgornjo (UPPER) mejo polja, podanega kot parameter Variant.

Kdaj uporabiti

Zanka čez polje neznane velikosti (npr. Array[*] of MyUDT).

Pro Nasveti

Nujno za pisanje robustnih zank FOR: FOR i := LOWER_BOUND(...) TO UPPER_BOUND(...) DO

Deluje tako na eno- kot večdimenzionalnih poljih.

Parameter DIM določa želeno dimenzijo (privzeto 1).

Legacy Navodila

Združljivost s starejšimi sistemi S7-300/400

Navodila, kot so BLKMOV, FILL in FieldRead/FieldWrite, so ohranjena zaradi združljivosti. Za nove projekte S7-1200/1500 raje uporabite MOVE_BLK, FILL_BLK in neposredne simbolne dostope.

Primerjava metod kopiranja

Izbira pravega navodila za prenos

Morate...Priporočeno navodiloPrimer
Kopirati enostavno spremenljivkoMOVENastavljena -> Trenutna
Kopirati pomnilniško območjeMOVE_BLKFIFO medpomnilnik
Inicializirati poljeFILL_BLKPonastavitev napak
Pripraviti sporočilo TCPSerializeStruktura -> Tok bajtov
Razbiti besedo na biteSCATTERDiagnostika beseda -> struktura
Dinamični dostopVARIANTUniverzalni knjižnični blok

Pogosta Vprašanja

Kakšna je razlika med MOVE in MOVE_BLK?

MOVE je namenjen kopiranju ene same vrednosti ali celotne strukture naenkrat. MOVE_BLK je optimiziran za kopiranje dela polja (določenega števila zaporednih elementov).

Zakaj uporabiti UMOVE_BLK namesto MOVE_BLK?

'U' pomeni Uninterruptible (neprekinjeno). To navodilo zagotavlja, da operacije kopiranja ne bo prekinil alarmni cikel (prednostni OB), kar zagotavlja popolno konsistenco kopiranih podatkov.

Kdaj uporabiti Serialize in Deserialize?

Ta navodila so ključna, ko morate poslati strukturirane podatke preko 'surovih' protokolov, kot sta TSEND/TRCV, ali napravam tretjih oseb. Upravljajo poravnavo bajtov na standardiziran način.

Ali MOVE_BLK deluje z absolutnimi naslovi?

Da, vendar TIA Portal spodbuja uporabo simbolnih dostopov. Za kompleksno absolutno naslavljanje se še vedno uporablja BLKMOV (Legacy), čeprav je MOVE_BLK_VARIANT priporočena sodobna rešitev.

Avtomatizirajte svoje prenose podatkov

Opišite svojo potrebo po manipulaciji podatkov in T-IA Connect bo ustvaril optimizirane bloke MOVE in Serialize za vašo aplikacijo.