PDA

Просмотр полной версии : прошу помощи! плк100км+мдвв+ип320



heinz
26.05.2010, 20:40
Проблема у меня следующая. Связка ПЛК100К-М + 2 МДВВ + ИП320 через RS-232Debug. У одного из МДВВ на входах висят обычные кнопки, коммутирующие общий провод. При соединении с компом и установленной связи по Ethernet один из МДВВ начинает вести себя, как будто кто-то беспорядочно жмёт на одну из кнопок. Нигде больше в программе этот вход не используется. При отключении от компа всё прекращается. Голову сломал, не могу понять, в чём дело! Пожалуйста, откликнитесь, если у кого были сходные проблемы!!

lunyov_i
27.05.2010, 13:24
Проблема у меня следующая. Связка ПЛК100К-М + 2 МДВВ + ИП320 через RS-232Debug. У одного из МДВВ на входах висят обычные кнопки, коммутирующие общий провод. При соединении с компом и установленной связи по Ethernet один из МДВВ начинает вести себя, как будто кто-то беспорядочно жмёт на одну из кнопок. Нигде больше в программе этот вход не используется. При отключении от компа всё прекращается. Голову сломал, не могу понять, в чём дело! Пожалуйста, откликнитесь, если у кого были сходные проблемы!!
А нельзя более подробно описать проблемы. ПЛК-100K-M подсоединен
к компу по Ethernet, МДВВ - подсоединен к ПЛК по RS-485, а ИП-320 подсоединен к ПЛК через RS-232 DEBUG? Я правильно понял? Может быть
данные засылаюся с компа (через ПЛК) на выхода МДВВ, то есть засылаются какие то переменные с компа - потом из-за ошибки программы ПЛК перенаправляются на МДВВ выхода?

heinz
27.05.2010, 19:59
Может быть
данные засылаюся с компа (через ПЛК) на выхода МДВВ, то есть засылаются какие то переменные с компа - потом из-за ошибки программы ПЛК перенаправляются на МДВВ выхода?

Да, подсоединено именно так.
Подробнее: значения входов МДВВ при этом тоже меняются. То есть на указанный вход будто бы подаётся сигнал, а остальные его входа, включая те, на которых в этот момент есть сигнал, обнуляются. Второй МДВВ при этом ведёт себя нормально, т.е никаких спонтанных изменений нет. Переменные с компа... все отправленные переменные, вроде бы, приходят туда, куда положено... Не может ли возникнуть конфликт между устройствами при таком способе соединения? Приоритеты: ИП 320 (master) - ПЛК (slave) и ПЛК (master) - МДВВ (slave). Или несоответствие типа переменной? Переполнение, или ещё что?

Николаев Андрей
27.05.2010, 23:58
проверьте адреса мдвв. выкладывайте программу.

heinz
28.05.2010, 20:46
проверьте адреса мдвв. выкладывайте программу.

программа в прикреплённом файле. ошибка возникает при работе режима Manual, который вызывается из основной программы. большая часть основного текста - это программа статистики, которая, как мне кажется, и вызывает конфликт.
p.s. если обнаружится явно дурацкая ошибка, сильно не ругайтесь - ну не программист я, электрик...

Николаев Андрей
29.05.2010, 17:53
Не плохо Вы на st для электрика строчите...
Что рекомендую сделать:
Работу с часами вынести в отдельный блок (возможно и из мануала и из PLC_PRG).
Все переменные, которые Вы получаете\отправляете по сети объявите отдельно в глобальных переменных. И уже во всех подпрограммах работайте с нормальными именами - оно и код сократит и нагляднее будет где Вы с переменной действия производите:
В конфигурации ПЛК \ раздел Глобальные переменные
var_global
a1:=in_mdvv1.0;
a2:=in.mdvv1.1;
a3:=...
...
b1:=out_mdvv2.5;
...
end_var

Ну и уж на всякий случай увеличьте время timeouta в настройках МДВВ и поставьте повторов несколько.
Так же нужно будет добавить модуль статистика и глянуть сколько времени цикла ПЛК свободного остается...

heinz
31.05.2010, 06:52
спасибо, сейчас буду пробовать.

heinz
31.05.2010, 17:58
отчитываюсь.
сперва объявил все переменные мдвв глобальными (из сетевых только их не было). запустил - вообще крах, всё защёлкало, как пулемёт. начал тыкать в программу статистики, которая составляла основной объём Plc_prg. странные дела: убираю несколько строчек, казалось бы, совсем не причастных к этой хрени - щёлканье входами уменьшается до 1..2 раз в минуту; возвращаю их на место и убираю основной кусок алгоритма, который пишет/считывает данные с панели - практически ничего не меняется. ничего не понял, плюнул на статистику с горя, упал духом, лежу. не надеясь, увеличил тайм-аут на мдвв со 150 до 250 - щёлкать почти перестало. не дыша на комп, убрал всю статистику в отдельный блок - совсем пропало. завтра буду тестить в максимально экстремальных режимах - вдруг опять вылезет... но объясните мне, господа шаманы, какое отношение может иметь размещение текста программы в том или ином месте? так и так этот блок работает постоянно!