PDA

Просмотр полной версии : ИП320 + ПЛК100



Talotim
30.01.2012, 13:22
В общем, жизнь заставила, и первый проект с контроллером ОВЕН оказался довольно серьёзным. В сети 5 устройств: ПЛК100, МВ110-2А, ПЧ HITACHI, ИП320, МСД100. Так как МСД100 всегда мастер, а протокол ОВЕН не могу использовать (ПЧ HITACHI его не понимает), то МСД100 прицепил через АС-3М на 232-й порт ПЛК.
В общем, всё заработало, вопросов нет. Но одна вещь привела меня в ступор. Занимаясь программированием ИП320, заметил непрятный глюк. Появился буквально час назад.
Если включить установку, экран ИП320 подсвечивается, но ничего не появляется. Если нажать кнопку "ВНИЗ", появляется главный экран и всё работает нормально. До следующего выключения. Потом опять...
Как-то некрасиво получается. Есть ли решение?

capzap
30.01.2012, 16:36
Скорее всего надо выложить свой проект, чтоб ктото мог чтото конкретное сказать как поступить. Как вариант попробуйте создать проект с нуля

lara197a
30.01.2012, 17:06
У Вас похоже главный экран пустой.
Придется заполнить этот экран хотя-бы какой-нибудь заставкой или эмблемой.
Ну или переписать проект начиная с первого выданного конфигуратором экрана.

Talotim
30.01.2012, 17:13
Уже так сделал. Создал новый проект, создал экраны, элементы управления, прописал регистры. Эффект исчез. Что это было - без понятия.
Буду дальше наблюдать за поведением железки.
Но вообще, ОВЕНовцам пока что комплимент. Устройства связались легко, регистры читаются без проблем.
Но один выход на ПЛК100K уже сжёг по недосмотру. Не беда, их 12. Но защита бы не помешала...

З.Ы. В том то и дело, что главный не пустой...

lara197a
30.01.2012, 17:58
Галочка в настройках на каком экране стояла?
Можно перепаять- тр-р G1.

Talotim
30.01.2012, 18:02
Галочка стояла на экране 1. При этом, когда щёлкать экранами, пустой экран уже не появлялся, до следующего выключения. Только что включил - всё в порядке. Наверно что-то с проектом было...

Перепаять тр-р можно, но не нужно. Некритично, используются только 4 выхода.

Talotim
31.01.2012, 17:46
Приветствую всех ещё раз.
Тут появилась задачка. Так как я предвижу, что операторам лень будет каждый раз выставлять параметры, использовал RETAIN. Но тут и появилась проблема.
Суть в следующем. Читаю регистр с ИП320. Если обнаруживаю нули, читаю RETAIN и отсылаю на панель. Вроде всё здорово, но операции чтения и записи в один и тот же регистр в ИП320 вступают в конфликт. Я не заметил, как можно не постоянно слать значение в регистр. В итоге я пытаюсь изменить регистр уже на панели, а предыдущее значение всё равно засылается и изменить не даёт...:mad:
Вышел из положения тем, что текущее значение RETAIN отображает один регистр, а изменять можно другой. Тут где-то пример был, где было "Старое значение" и "Новое значение". Как по мне - довольно неуклюже.
Есть ли возможность отсылать значение регистра в панель не постоянно, а по команде, чтобы не конфликтовали?
В идеале - чтобы панель помнила значения регистров, но это пока фантастика...

capzap
31.01.2012, 18:26
сделать панель слейвом и не использовать конфигуратор ПЛК

lara197a
31.01.2012, 19:17
На ИП320 Вы ничего не сделаете. На СП270 можно делать переадресацию.
Но наверное Вам это и не нужно. После отключения питания все данные сохраняются как на ПЛК так и в панеле.

Talotim
31.01.2012, 22:11
сделать панель слейвом и не использовать конфигуратор ПЛК
Панель слейв изначально. Я пока не представляю, как переслать данные в регистр по RS-485, не используя конфигуратор. Натолкните, пожалуйста, на нужное направление, а дальше я уж сам...

На ИП320 Вы ничего не сделаете. На СП270 можно делать переадресацию.
Но наверное Вам это и не нужно. После отключения питания все данные сохраняются как на ПЛК так и в панеле.
Жаль, что ничего не сделаю. А насчёт сохранения данных на ИП320 и ПЛК после выключения питания - такого не заметил. Всё в нулях. Специальной процедурой регистры не обнулял. Ну да ладно. Так даже проще.
Я так понял, что СП270 поумнее будет, осилю этот проект, примемся и за сенсорную.

lara197a
31.01.2012, 22:40
У Вас переменные, пересылаемые в регистры должны быть сохраняемыми.
Ну и ещё я стараюсь панель мастером делать.

Talotim
31.01.2012, 23:01
В сети 4 устройства. Как-то нелогично, чтобы панель дирижировала всеми остальными...

lara197a
01.02.2012, 00:56
Вы с контроллером её соедините по отдельному порту(232)
Панель не дирижирует сетью, а передает-читает данные обращаясь строго к указанному адресу и регистру.
Хоть 100 устройств в сети.

capzap
01.02.2012, 06:29
Я пока не представляю, как переслать данные в регистр по RS-485, не используя конфигуратор. Натолкните, пожалуйста, на нужное направление, а дальше я уж сам...
http://www.owen.ru/forum/showthread.php?t=11275
все где используется modbus.lib

Talotim
01.02.2012, 13:09
Благодарю, будем грызть сей гранит.

Вы с контроллером её соедините по отдельному порту(232)
Панель не дирижирует сетью, а передает-читает данные обращаясь строго к указанному адресу и регистру.
Хоть 100 устройств в сети.
На 232-порту уже сидит АС-3М для связи с МСД100...
То есть, если я правильно понял, панель может инициировать передачу данных, допустим, от МВ110-2А к ПЛК100? Ей то ведь эти данные не нужны.

lara197a
01.02.2012, 14:18
Я имел ввиду, что на ПЛК100 2 порта RS232 и 1 RS 485. ИП 320 можно подключить к любому из них.
Инициировать передачу данных от МВ к ПЛК через панель нельзя.

Talotim
01.02.2012, 14:41
Увы, как-то не хочется Debug порт занимать. Мне нужно в реале видеть, что в ПЛК творится.

lara197a
01.02.2012, 14:49
Со средой программирования удобнее работать через порт изернет. И устойчивее.

capzap
01.02.2012, 15:26
операции чтения и записи в один и тот же регистр в ИП320 вступают в конфликт. Я не заметил, как можно не постоянно слать значение в регистр. В итоге я пытаюсь изменить регистр уже на панели, а предыдущее значение всё равно засылается и изменить не даётА можно не пытаться записывать регистр, которые выдается от ПЛК, поставте рядом со значением две кнопочки, для положительного и отрицательного смещения. Вот пускай ими оператор и управляет, а в ПЛК к Вашему значению уставки, при поступлении сигнала от кнопки приращиваете определенное значение, после устанавливаете бит от кнопки противоположный поступившему с панели, чтоб оператор совершил следующее приращение. Это в случае когда ПЛК мастер а панель слейв

Talotim
01.02.2012, 20:38
А можно не пытаться записывать регистр, которые выдается от ПЛК, поставте рядом со значением две кнопочки, для положительного и отрицательного смещения.
Отличная идея! Но в данном проекте долго придётся оператору "дергать". Дискретность 0,1 градуса, диапазон - 50 градусов. 500 нажатий в худшем случае.
Но всё равно спасибо, где грубее нужно будет - применю.


Со средой программирования удобнее работать через порт изернет. И устойчивее.
Уже налажена устойчивая связь по Debug, экспериментировать уже нет времени, нужно дописывать алгоритм. Но в будущем попробую, 3 порта свободных - это сильно развязывает руки.

capzap
01.02.2012, 21:08
у меня стоял контроль длительности нажатия кнопки, и при продолжительном удержании шаг приращения увеличивался в геом.прогрессии. Вообщем всё как в лучших образцах программных продуктов :)
Нет времени ИК-приемник подключить, чтоб с дистанционки управлять ПЛК

Talotim
02.02.2012, 10:44
Да, это хорошее дело. Только нужно будет ставить ограничение роста величины приращения. А то в терморегуляторах типа ТРМ нужно очень точно "угадывать" момент отпускания кнопки. Слишком быстро начинает меняться величина. Но идея понятна.

capzap
02.02.2012, 18:58
одно дополнение, это всё мною делалось с использованием библиотек, а не конфигуратора

Talotim
03.02.2012, 15:16
Всё-таки натолкнулся я на грабли, уже полдня маюсь. Суть в чём, я частотник OMRON-HITACHI оставил на закуску. Но не тут то было. Всё время 81-я ошибка с него. Частотник настроил под сеть, задал адрес, скорость, прочие параметры. Переключил джампер на RS485. Задал его в проекте. А фиг там... Не отвечает гад. Есть ли какие хитрости? Голова уже кипит...

lara197a
03.02.2012, 15:28
Вы попробуйте сначала только с Пч и только опрос или только запись.
Вообще опрос и запись нужно разносить.
Запись -по изменению.
Опрос -по времени, но раз в 100мс-слишком часто. У вас много др. устройств в сети. В Вашем случае достаточно и раз в 1000мс.

Talotim
03.02.2012, 15:45
Я когда ставлю 1000 мс, то система вообще тормозом становится. С панели есть ручное управление двумя реле. Так вот, при 100 мс проходит с пару секунд до реакции. Ещё терпимо. С 1000 мс проходит секунд 10. Не подходит.

capzap
03.02.2012, 15:50
:) значит настало время осваивать работу по протоколу модбас с помощью библиотек

lara197a
03.02.2012, 16:08
:) значит настало время осваивать работу по протоколу модбас с помощью библиотек
Да нет это сеть так настроена. У меня достаточно большие проекты с 8ПЧ и др устройствами летают на шаблонах.

Я ж писал Вы отдельно с ПЧ пробуйте разобраться.

Talotim
03.02.2012, 17:59
Пытаюсь. Присоединил ПЛК к частотнику, остальные устройства отцепил, написал простенькую тестовую программку, попытался связать. Имею 81-ю ошибку. Роем дальше...:confused:

capzap
03.02.2012, 18:11
настройки СОМ-портов одинаковы, время опроса увеличивали в тестовом проекте?

Talotim
03.02.2012, 18:14
Вот, выкладываю. Может вы увидите косяк... На ПЧ настройки идентичные. Голова уже вообще не соображает. Может ПЧ убитый, что-ли... Но в ручном режиме работает нормально. Но по сети - тишина.

capzap
03.02.2012, 18:24
а чего тут увидишь, надо же сравнить с настройками в ПЧ, с Ваших слов что все идентично, ошибки не заметишь, на видео снимите как настраиваете ПЧ :)

lara197a
03.02.2012, 19:12
Вы у переменной номер регистра и команду правильно пишите?

Talotim
03.02.2012, 20:16
Да до регистров ещё дойти надо, если постоянно ошибка 81, то никакие регистры не прочитаешь.
Фух, осилил. Оказалось, что в ПЧ есть малозаметный параметр, который регламентирует режим работы порта. В отчаянии переключил его - всё, обмен возвращает "0", ошибок нет, устройство определено.
Включил остальные приборы - ну вот тебе, сеть наглухо повисла, везде "81". Выдергнул разъём из частотника - пошёл обмен. Значит косяк в разводке. Я заметил, что и без частотника очень часто проскакивает ошибка "81". Что-то накосячил, буду исправлять, но свет в конце тоннеля виден. А потом не было времени, домой пора. Завтра продолжу.
Ну и вопрос. Для запуска частотника мне нужно установить бит (в переводной литературе - "катушка", блин, режет ухо) с адресом 01h в TRUE. Вроде всё понятно. Но в CoDeSys не совсем ясно. Я так понимаю, выбрать нужно "8 bit output module" и установить "Bit 0" в TRUE. А какой регистр задавать? Куря форум, видел таблицу расположения регистров. По идее должен быть нулевой? А если адрес бита 09h, то это бит 0, а регистр 1? Правильно ли я размышляю, или ошибаюсь?

lara197a
03.02.2012, 21:20
01h-это 1 бит , а не 0.
Вы прочтите какой командой происходит запись, какой чтение.
К примеру у Данфосов не помню как называются. но катушки объединены в группы по 32бита.
для записи-чтения используются модули 32bit output module.
если нужно будет я скину пример.Пишите в личку с указанием емайла.

lara197a
03.02.2012, 21:26
01h-это 1 бит , а не 0.
Вы прочтите какой командой происходит запись, какой чтение.
К примеру у Данфосов не помню как называются. но катушки объединены в группы по 32бита.
для записи-чтения используются модули 32bit output module.
если нужно будет я скину пример.Пишите в личку с указанием емайла.

Talotim
03.02.2012, 22:06
У Хитачи описание Модбаса очень мутное, неясно, как объединены ячейки. Команда обычная, 0Fh...

capzap
03.02.2012, 22:19
вполне адекватное описание модбаса, даже пример приведен как обращаться с помощью 15 функции (запись нескольких коилсов,флагов,битов)

lara197a
03.02.2012, 22:19
По битно не знаю получится ли. Нужно проверять.
Попробуйте побитно или регистрами по 16 байт.
Нумерация обычная 0бит-1 катушка
1бит -2катушка и т.д.

Talotim
04.02.2012, 19:41
В общем, удалось заставить работать все устройства. Но крови они попили мне немеряно. Переделал сеть, включаю - блин, частотник гасит весь обмен по сети. Начал по интуиции играться с таймаутами и периодами опроса. И о чудо, сеть начала подавать признаки жизни. Выяснилось, что сеть для скорости 9600 (ограничение частотника) - медлительная, и настройки по умолчанию слишком быстрые. Итого периоды опроса в 500 мс, таймаут - секунда. Что интересно - таймаут в 1 секунду пришлось выставлять именно на частотнике, уж больно тормоз он... У остальных устройств по умолчанию.
Текущую частоту прочитать с частотника мне удалось. А вот заставить его слушаться команд на запуск по сети - нет. Если только один модуль чтения регистров - всё ОК. Как только добавляю ещё один - всё, тишина. Сделал обходное решение - запуск с клемм, благо реле есть. Тяжело HITACHI поддаются...
Думал сделать по примеру ModBus, да время поджимает, сложновато пока.
В общем, что имеем? Все устройства отвечают, показания снимаются, ошибок 81 не наблюдается. PID регулятор тоже запустил, вроде работает, твердотельное реле при приближении к точке начинает мигать. Но как будет на реальном объекте - пока неясно. Может коэффициенты придётся поправить.
Спасибо всем, кто принял участие в решении проблем!