Page 1 of 1

[?]: Как найти в программе обращение к адресам

Posted: Mon May 18, 2009 12:16 am
by EuGrach
Есть CPU 315-2 DP, на профибусе сидит частотник, подробности на скриншоте:
http://img268.spamm.us/img268/2347/s73152dp.jpg
Подскажите пожалуйста, как найти программный блок, где происходит чтение-запись по адресам input-output этого частотника (288...299); в Cross-references их нет. Могут ли они быть в защищенных блоках и что делать в этом случае?
Спасибо.

RE:[?]: Как найти в программе обращение к адресам

Posted: Mon May 18, 2009 4:26 am
by dyakov72
Это адреса чтения и записи слов для частотника (слов статуса, ток, скорость и слово управления)...данные адреса используются в дата блоках при использовании функций DP_SEND (например DB1) и DP_RESEIVE (напрмер DB2).

RE:[?]: Как найти в программе обращение к адресам

Posted: Mon May 18, 2009 6:06 am
by CHANt
Ты проект выложи,тогда можно будет точно сказать в каком месте. Возможно используются для приема/передачи функции SFC14&SFC15

RE:[?]: Как найти в программе обращение к адресам

Posted: Mon May 18, 2009 6:44 am
by komatic
Если в кросреференце нет - возможно адреса задаются обычным числом.
В таком случае поможет генерация всей программы в STL исходник и обычный текстовый поиск в нем. В вашем случае по числу 288.

Re: [?]Как найти в программе обращение к адресам

Posted: Mon May 18, 2009 1:38 pm
by Dfcz
EuGrach wrote:Есть CPU 315-2 DP, на профибусе сидит частотник, подробности на скриншоте:
http://img268.spamm.us/img268/2347/s73152dp.jpg
Подскажите пожалуйста, как найти программный блок, где происходит чтение-запись по адресам input-output этого частотника (288...299); в Cross-references их нет. Могут ли они быть в защищенных блоках и что делать в этом случае?
Спасибо.
Если в защищенных блоках, то кроссреференс все равно покажет, только блок открыть нельзя будет.
Обычно обращение по профибасу сначала обязательно обращается к начальному слову (в твоем случае 288), а затем идет обращение к различным адресам (в заданном диапазоне) в различном формате.
Но я видел немецкий проект, где написан специально блок (FC) для управления устройством, и явного обращения не было вовсе.
Тогда мне пришлось искать обращение (вызов) к незнакомым блокам и в обращении уже искал адрес (в твоем случае 288).
Но, что бы "расковырять" этот блок пришлось попердеть, блин.

RE:[?]: Как найти в программе обращение к адресам

Posted: Tue Jul 14, 2009 10:53 pm
by EuGrach
CHANt wrote:Возможно используются для приема/передачи функции SFC14&SFC15
Да верно, так и оказалось.
CHANt wrote:Ты проект выложи,тогда можно будет точно сказать в каком месте.
Да я бы и рад выложить, но не знаю, дозволено ли это у нас, просто начальство может неправильно понять.
komatic wrote:Если в кросреференце нет - возможно адреса задаются обычным числом.
В таком случае поможет генерация всей программы в STL исходник и обычный текстовый поиск в нем. В вашем случае по числу 288.
Да это действительно помогло.

Всем спасибо за отклик.