Új hozzászólás Aktív témák
-
Szirty
őstag
Hali norcee!
Példaképp írtam egy rövid kódot, ami hasonlót művel. Próbálj meg ebből kiindulni ha amegfelel:
L #Kezdet // A a kért elem száma (ha ez 0, akkor az első elemet adja vissza)
L 4
*I // A kezdőcím előállítása (*4, mivel REAL duplaszó, ami 4 byte)
L 50
+I // 50 hozzádása (50-es címen van az első real típusú elem, amit ki kell olvasni)
SLD 3 // Léptetés a bit címek miatt, a pointer előállításához
T #Ptr // #Ptr a kért elem címére mutat az instance DB-n belül
L DID [#Ptr] // A kért elem betöltése
T #Eredmeny // A kért elem másolása a kimeneti duplaszóbaEz egy FB-ben van, ahol az interface rész így fest:
FUNCTION_BLOCK FB 2
TITLE =
VERSION : 0.1
VAR_INPUT
Kezdet : INT ;
Hossz : INT ;
END_VAR
VAR_OUTPUT
Eredmeny : REAL ;
END_VAR
VAR
Dummy1 : ARRAY [1 .. 42 ] OF BYTE ;
Real_1 : ARRAY [1 .. 100 ] OF REAL ;
END_VAR
VAR_TEMP
Ptr : DWORD ; //Pointer
END_VARA #Hossz-nak itt nincs szerepe, a #Dummy1 tömb pedig csak azért van, hogy az 50-es címen kezdődjön az a 100 valós típusú változó.
A blokk #Eredmény kimeneten visszaadja a #Kezdet-ben megadott számú elemet Real_1 tömbből.
Ha egyszerre több elemet kell másolni, akkor a célnál annyi elem fog landolni ahányat másolsz, ez gondolom nem vitás. Emiatt (a változó adathossz miatt) ez vagy ANY típus lehet (mármint a cél paramétere) vagy egy DB, amiben előre el van készítve annyi elem, amennyinél többet soha nem másolsz.
Ez a része nem volt világos annak hogy hogyan akarod. De az BLKMOV-val megoldható, ha összeállítasz neki egy (vagy ha a célnak is kell, akkor kettő ANY pointert, éppen úgy, ahogy w3dzz-nek szóló üzenetben is szó van róla.
Új hozzászólás Aktív témák
- Samsung Galaxy S21 FE 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Note 11 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 12 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Okosóra felvásárlás!! Samsung Galaxy Watch 5 Pro, Samsung Galaxy Watch 6 Classic
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3881
- 186 - Lenovo Legion 5 (15IRX10) - Intel Core i7-13650HX, RTX 5070
- Targus DOCK423A - USB-C Dual HDMI 4K HUB - 2 x HDMI (120Hz)
- Telefon felvásárlás!! Apple Watch Series 9/Apple Watch Ultra/Apple Watch Ultra 2
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest

