Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eldiablo: 30 év után szakítottunk, de azért még beszélünk...
- eBay-es kütyük kis pénzért
- sziku69: Fűzzük össze a szavakat :)
- mefistofeles: Érdekes történések a hardveraprón...2.
- Meggyi001: Amire figyelned kell Párizsban is...
- Brogyi: CTEK akkumulátor töltő és másolatai
- joghurt: Megtarthatod a jogsid?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Luck Dragon: Asszociációs játék. :)
Ú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
Hirdetés
- TCL LCD és LED TV-k
- A CannonKeys felkavarja a slim profilos billentyűzetek állóvizét
- Teljesen szürreális, ami az RTX 5070 Ti kapcsán történik…
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Rezsicsökkentés, spórolás (fűtés, szigetelés, stb.)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Linux Mint
- Okos Otthon / Smart Home
- Napelem
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- BESZÁMÍTÁS! Sapphire B650M R7 8700F 32GB DDR5 1TB SSD RX 9070 XT 16GB CM MasterBox 5 fehér 750W
- BESZÁMÍTÁS! Sapphire B650M R5 7500F 32GB DDR5 1TB SSD RTX 3080 10GB Lian LI LANCOOL 207 FSP 750W
- ZTE MF289D nagysebességű 4G / 4G+ LTE Cat12/13 Sim kártyás WIFI router hotspot modem - FÜGGETLEN
- BESZÁMÍTÁS! Asus ROG Z790 i9 13900K 32GB DDR5 1TB SSD RX 7900 XTX 24GB Lian LI LANCOOL 207 ROG 750W
- BESZÁMÍTÁS! Gigabyte Z390 i7 9700K 16GB DDR4 512GB SSD RX 7600 8GB Kolink VOID ADATA 600W
- REFURBISHED - Lenovo ThinkPad 40A9 USB-C Dock (ELKELTEK) - CSAK RENDELÉSRE
- magyar billentyűzet - 151 - Lenovo LOQ (15IAX9) - Intel Core i5-12450HX, RTX 4060
- PS4 Pro 1TB + DualShock 4 Controller Játékkonzol
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B450M R5 5600X 16GB DDR4 1TB SSD RX 6800 16GB Zalman S2 TG GIGABYTE 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


