Hirdetés
- GoodSpeed: Mutasd magad topic!
- Andras-G: Az internet veszélyei [2. rész] - Facebook Marketpalce
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: Mi ez a pici videókártya? AMD E9173 teszt
- Gurulunk, WAZE?!
- Klaus Duran: RCS
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Yutani: 20 év a Prohardveren
- mefistofeles: Az elhízás nem akaratgyengeség!
Új hozzászólás Aktív témák
-
Rigor Mortis
csendes újonc
Sziasztok!
Egy SIEMENS S7 300 CPU/STEP7 V5.5 problémám adódott a napokban. Kérlek Titeket, aki tud, segítsen nekem ennek a feldolgozásában. Megpróbálom az alábbiakban érthetően felvázolni a helyzetet. Lehet, kicsit hosszú lesz.
Adott egy FB (nevezzük a továbbiakban FB1-nek, a példa kedvéért), amiben van egy pl. #ABC szimbolikus című array (elemeinek típusa, nagysága szerintem most nem releváns), a STAT deklarációs területen. Az FB-ben az alábbi módszerrel kinyerem a tömb kezdőcímét:LAR1 P##ABC //Legyen #ABC kezdőcíme pl. a 20. byte-on
TAR1
L DW#16#FFFF
AD
SRD 3
T #TempAddr1 //Temporary területen deklarált Dint. Ennek az értéke lesz így 20.#TempAddr1-re írt adattal aztán később, kisebb mértékű matekozás után és any pointer alkalmazásával a tömb elemeit címezgetem, („teszek-veszek”
). Működik is a dolog, kipróbáltam. Pöpec, de…Nos, addig minden szuperül klappol, amíg az FB1 egy saját iDB-vel van összeeresztve. Abban az esetben, amikor az FB1-et meghívom egy másik FB-ben (esetemben, ami már egy harmadikban szintén meg lett hívva) és az én FB1-em így bekerül egy multiinstance DB definiált memóriaterületére, az emiatt bekövetkező események hatásai határozottan a nem szuper skálázási tartományba csapnak át.

Elemezve a problémát azt tapasztaltam, hogy a „LAR1 P##ABC” utasítás továbbra is a #ABC tömb relatív kezdőcímét (a példa szerinti 20-at, nyilván a helyes rutin szerint) tölti be AR1 címregiszterbe, holott a multiinstance DB-ben a #ABC tömb abszolút kezdőcíme lehet, teszem azt 314.0 (vagy akármi). Így viszont nem ketyeg megfelelően a matek a későbbiekben (pontosabban nem oda címzek, ahová szándékozok). Nyilván nem kell részleteznem azt a – helyes programműködéssel merőben összeegyeztethetetlen – pánikra okot adó, kellemetlen impressziót, amikor azt láttam, hogy az én utólag bebiggyesztett FB1-em a multiinstance blokk 20-as címtartománya körül „tesz-vesz”, a 314 körüli helyett!
Szerencsére szimulátorral próbáltam, nem élesben.Az a kérdésem lenne, hogy ezt a részletproblémát hogyan lehet elegánsan kezelni? Magyarán az én FB1-em, bárhova kerüljön is egy multiinstance DB-ben, a #ABC tömb kezdőcímének meghatározása helyesen történjen. Bocsesz, tiszta ciki, de nem jöttem rá a megoldásra magamtól. Nem nagyon szoktam adatterület címtartományokkal matekozni, nincs benne kellő praxisom, de most kellene.
Arra gondoltam, hogy az FB1-nek kívülről, IN paraméteren keresztül megadom a multiinstance DB-n belüli kezdőcímét és ezt bekalkulálom a #ABC tömb elemeinek címzéséhez szükséges számításokba, de szerintem közületek valakinek biztosan van erre jobb megoldása. Legyetek szívesek segítsetek, ha tudtok. Csak, hogy ne haljak meg hülyén.
Előre is köszönöm! 
RM
Új hozzászólás Aktív témák
- Honor Magic6 Pro - kör közepén számok
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- BestBuy topik
- GoodSpeed: Mutasd magad topic!
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Hardcore café
- A legjobb INGYENES programok Windowsra!
- Samsung Galaxy Felhasználók OFF topicja
- Tőzsde és gazdaság
- További aktív témák...
- Lenovo 13w Yoga 2in1 Gen 2 AMD Ryzen 3 7330U 8 GB RAM 256 GB SSD Premium garancia FHD IPS TOUCH
- Legolcsóbb!! Brutál erős Lenovo E16 g2 (Core Ultra 7 155H 16Gb DDR5 512Gb SSD) 2 hónap gyári gari!
- Asus VivoBook S14 - 14,1 "FULL HD IPS - i5 1135G7 - 16GB - 512GB SSD - Win11 PRO - MAGYAR
- I9 10900+B460-F
- DLSS3 Gamer PC / Intel i5 12400 / 16GB DDR4 / RTX 4060 / 1TB NVME SSD
- AKCIÓ! LENOVO ThinkPad P15 Gen 2 munkaállomás - i7 11850H 16GB DDR4 1TB SSD RTX A2000 4GB W11
- Acer LED monitor (B247Y)
- szinteÚJ Nubia REDMAGIC 11 Air (NX799J) 1év gar
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5060Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
). Működik is a dolog, kipróbáltam. Pöpec, de…

Előre is köszönöm! 
