Hirdetés
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Mobil flották
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Xiaomi 17 - még mindig tart
- Tesztkört futott a OnePlus Nord CE6
- Mától Huawei okosórákkal is lehet érintésmentesen fizetni
- Milyen okostelefont vegyek?
- One mobilszolgáltatások
- iPhone topik
Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
horvathcsaba
#252
üzenetére
Helló Csaba!
A kódhoz lenne hozzáfűzni valóm ha nem gond. Kizárólag építő jelleggel, nehogy cseszegetésnek vagy okoskodásnak vedd!
- A ciklusmagon belül, vagy a blokkon belül használt átmeneti értékeket szerintem lokális változókban tárold, de globálisban. (A merkerek és a shared DB minden eleme globálisak). Ennek töb előnye van:
1. Másik blokk, a program egyéb részei nem tudnak véletlenül se belenyúlni, nehezebben rontod el a programot (pl. nem emlékszel, hogy az MW10-et már felhasználtad az egyik blokkban ciklusváltozó ként és egy másik blokkban is fel akarod használni).
2. Miután a blokk lefut, a változóra nincs szükség.
Az ilyen változókat tehát lokálisként érdemes deklarálni (TEMP).És az az érdekes dolog állt elő, hogy csak az utolsó megcímzett elem utáni elem tartalmazott értéket. Na de rájöttem!
Hát igen, ha alacsony (2 byte-on is ábrázolható) értékeket duplaszavakba pakolsz és azokat 2 byte-os átfedéssel rakod le, akkor a következő dupla szó felső 2 byte-ján lévő 00 mindig felülírja az előzőleg lerakott duplaszó alsó két byte-jén lévő nem nulla értéket.
VAn-e arra lehetőség, hogy dinamikusan foglaljak le memóriaterültet? Pl 'x' elemű tömb kellene, de az 'x' a program betöltésekor még nem ismert. Vmilyen felhasználói interakció lévén derül ki.
Tanulmányozd a "STEP 7 - System and Standard Functions for S7-300 and S7-400" címűPDF-et (a Step7 alapból feltelepíti).
Abban is a következő rendszerhívásokat:
- Creating a Data Block with SFC 22 "CREAT_DB"
- Deleting a Data Block with SFC 23 "DEL_DB"
- Generating Data Blocks in Load Memory with SFC 82 "CREA_DBL"
- Reading from a Data Block In Load Memory with SFC 83 "READ_DBL"
- Writing a Data Block in Load Memory with SFC 84 "WRIT_DBL".
- Creating a Data Block with SFC 85 "CREA_DB"Szerintem ezekkel meg tudod oldani. De arra számítani kell, hogy egy csomó folyománya lesz az ügynek. Pl. ellenőrizni kell, hogy a létrehozandó adatblokk egyáltalán elfér-e a szabad memóriában, stb.
vagy ezt úgy érdemes csinálni, hogy jó nagy területet foglalok le és csak bizonyos részét használom?
Igen, sokszor ez az egyszerűbb, és nem utolsó sorban biztonságosabb.
Azonban ez pazarlásnak tűnik.
Bizonyos értelemben igen. De gondolj arra, hogy a PLC memóriája adott. Ha ennek a memóriaterületnek egy részét takarékosságból szabadon hagyod, az ugyanolyan pazarlás, mint az, hogy lefoglalod az egészet, de értelmes adatot valószínűleg nem töltesz bele.

Új hozzászólás Aktív témák
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Nyomtató topik
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Milyen routert?
- Kitolhatja az LGA1700 élettartamát az Intel
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Jófogás tapasztalatok
- Milyen billentyűzetet vegyek?
- Mobil flották
- BMW topik
- További aktív témák...
- Új Redmi Note 15 Pro 5G 256/8GB Blue
- Új Redmi Note 15 5G 128/6GB Black
- RYZEN 5 9600x - XFX RX 9060XT 16GB - 2x16GB DDR5 6000MHz CL32(A-Die) - 1,25TB SSD - NZXT KRAKEN
- Apple iPad Pro 12.9 2nd gen 2017 wifi + cellular 256GB eladó! 0 ciklus! Karcmentes!
- i5-9400F / 16GB DDR4 / RX480 8GB / 240GB SSD + 500GB HDD
- www.stylebolt.hu - Apple eszközök és tartozékok!
- AKCIÓ! Intel Core i9 9900K 8 mag 16 szál processzor garanciával hibátlan működéssel
- Lenovo T495 Ryzen 5 pro 3500U, 16GB RAM, 512GB SSD, jó akku, újszerű állapot, számla, garancia
- 58.5 mm full fém tamper
- Dell UltraSharp 24 USB-C Hub Monitor - U2422HE - 27% ÁFÁs
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


