Hirdetés

2024. május 17., péntek

Gyorskeresés

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás

Hozzászólások

(#4134) Szirty válasza KB.Pifu (#4133) üzenetére


Szirty
őstag

Szevasz Pifu!

"Keresztbecímzésben lesz a hiba, innen legalább már erre is figyelek."

Arra bizony nagyon oda kell figyelni, mert nagyon durván lehet szívni ilyen hibával!
Segít ezt elkerülni a keresztreferencia táblázat. De nem árt érteni amit mutat. Nem bonyolult, csak elsőre riasztó :)

Valamivel barátságosabb (kevesebb fölösleges infót ad ha csak egy cím érdekel) a Go To Location funkció.
A lényege az, hogy megmondja hol fordul még elő az a cím a programban. Csak azzal a címmel foglalkozik (míg a keresztreferenciában az összes benne van).
Egy listát kapsz az előfordulásokról amiből ha választasz, akkor oda ugrik.
Az ablakban van egy opció, aminek a neve "Overlapping access to memory areas".
Ha azt is bekapcsolod, akkor minden olyan címet is beletesz a listába, ami átfedésben van a keresett címmel.
Ez rendkívül hasznos!

A probléma akkor fokozódik, ha DB címekről van szó. Azokat ugyanis el lehet érni teljes címzés nélkül is. Pl. így:
OPN DB6
L DBW4

Mivel a fordító nem végez kód elemzést (nem is nagyon tehetne ilyet), nem tudja, hogy ha van egy L DBW4 az a DBW4 melyik DB blokkra vonatkozhat.
Azonban a GoTo Location ezeknek a megkeresésére is ad támogatást.
Ha csak a rövid címet adod meg, akkor felsorol minden olyan programsort, amiben az adott bit, byte word, dword címzése szerepel bármelyik DB-ben.
Hogy melyikben szerepel azt pedig megmutatja (ha tudja) ha kiválasztod az adott sort:

A probléma tovább fokozódik ha a keresett címet a program valahol indirekt módon is írja.
Az indirekt címzéssel e a keresztreferencia és így a GoTo Location sem tud semmit kezdeni, hiszen annak jellegéből adódóan a cím csak futás közben derül ki. Futás közben egy címet pedig számtalan körülmény befolyásolhat a kódtól függően, a fordító nem tudja előre hogy a lefordított kód milyen körülmények között milyen címet fog majd kiszámítani.

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás
Copyright © 2000-2024 PROHARDVER Informatikai Kft.