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

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
EuGrach
Posts: 41
Joined: Mon Dec 01, 2008 2:40 am
Location: Russia

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

Post by EuGrach »

Есть CPU 315-2 DP, на профибусе сидит частотник, подробности на скриншоте:
http://img268.spamm.us/img268/2347/s73152dp.jpg
Подскажите пожалуйста, как найти программный блок, где происходит чтение-запись по адресам input-output этого частотника (288...299); в Cross-references их нет. Могут ли они быть в защищенных блоках и что делать в этом случае?
Спасибо.
dyakov72
Posts: 56
Joined: Tue Feb 28, 2006 3:02 pm
Location: Russia

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

Post by dyakov72 »

Это адреса чтения и записи слов для частотника (слов статуса, ток, скорость и слово управления)...данные адреса используются в дата блоках при использовании функций DP_SEND (например DB1) и DP_RESEIVE (напрмер DB2).
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

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

Post by CHANt »

Ты проект выложи,тогда можно будет точно сказать в каком месте. Возможно используются для приема/передачи функции SFC14&SFC15
komatic
Posts: 79
Joined: Thu Mar 15, 2007 12:59 pm
Location: Ukraine

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

Post by komatic »

Если в кросреференце нет - возможно адреса задаются обычным числом.
В таком случае поможет генерация всей программы в STL исходник и обычный текстовый поиск в нем. В вашем случае по числу 288.
Dfcz
Posts: 878
Joined: Tue Dec 26, 2006 5:21 am
Location: Russia

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

Post 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).
Но, что бы "расковырять" этот блок пришлось попердеть, блин.
EuGrach
Posts: 41
Joined: Mon Dec 01, 2008 2:40 am
Location: Russia

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

Post by EuGrach »

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

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