Вход

Просмотр полной версии : отладка программы с внешними устройствами



drvlas
13.12.2010, 21:00
не претендую на общность (как звучит в названии темы), но из этой оперы...

работают плк100 и ип320 (мастер). у плк есть некая область обмена, в которой определены переменные, пусть а, в, с.
возникают моменты с непонятками по поводу поведения программы - зависящего от а, в, с. эти переменные как-то модифицируются оператором и сразу после изменения какой-то из них программа "выделывается".

подключаемся и пробуем "по шажкам". и тут вопрос: как правильно останавливать процессор, чтобы просмотреть выполнение программы непосредственно после изменения переменных?

то есть, что и в каком порядке: установка точки останова, перевод программы в стоп и выполнение по одному циклу, а потом по шагу, собственно нажатие кнопки Ent на ип320... или еще чего, неизвестное мне.

спасибо!

Николаев Андрей
14.12.2010, 11:33
1. думаю дело в программе.
2. есть такая штука - трассировка для отслеживания значения переменных при изменении значения какой то одной из переменных.
3. есть визуализация, и на ней можно проверить многие вещи.
4. есть точки останова и пошаговая отладка. точку останова ставите в начале программы.

drvlas
14.12.2010, 14:28
1. думаю дело в программе.

конечно! я же ее и отлаживаю. реально мне очень помог совет уважаемого валенка. я делаю ввод переменной с ип320 в режиме стоп. после этого вижу ее новое значение в области обмена с ип320, становлюсь точкой останова в нужное место и дальше все предсказуемо, в смысле обычная пошаговая отладка.

трассировку еще не научился делать. не прижало :)

так что с топиком у меня прояснилось. еще раз спасибо.

Crusash
17.12.2010, 13:45
Начни с проверки самих прилетаемых данных. Просто в стопе.
Если ок. то c глонасом по алгоритму .. :)
(главное - не утонуть)

Если панель в режиме мастер то в стопе она будет говорить о "потере связи", соответственно никакие регистры мы поменять не сможем...
проще в ПЛК прописать простенькие условие отслеживающее изменение регистров и там ставить точки останова, а дальше шагать по программе.... условие размещать нужно соответственно там где это необходимо отладиться и добавить переменную помнящую старое значение, можно загнать в отдельную процедурку(ФБ) и размещать её в контрольных точках...

drvlas
17.12.2010, 13:57
Если панель в режиме мастер то в стопе она будет говорить о "потере связи", соответственно никакие регистры мы поменять не сможем...

Когда светлейший Волк позволит, осмелюсь я донесть ему...

Как раз после совета Валенка я попробовал и увидел - в стопе ПЛК все равно отрабатывает обмен с панелью! Мне когда-то об этом и товарищ Gans говорил, в другом контексте ("конфигуратор живет своей жизнью").

То есть, никаких жалоб на потерю связи в стопе нет! Более того, взведенные панелью битики я вижу в отладчике. Довольно удобно, если конечно знаешь об этом.

Crusash
17.12.2010, 17:19
попробовал, действительно, при остановке плк связь по модбасу не теряется... бум знать..
связь рубится тока по остановке на точке останова... и я в общем то не жалуюсь, просто поделился своим способом отладки...

а созерцать битики - это оочень хорошо и полезно)))