PDA

Просмотр полной версии : Нет связи между ПЛК150-220А-М и СП307Б



программист_с_паяльником
19.01.2022, 16:39
Здравствуйте.

Только начинаю работать с ПЛК с точки зрения программирования.
Двигаться решил по оборудованию ОВЕН.
Раздела для новичков на форуме не нашел - если что, извините за нарушение субординации.

Для практики приобрел ПЛК150-220А-М, СП307Б.
Само программирование устройств (программа работает внутри девайса) пока особых вопросов не вызывает.
Решил попробовать заставить общаться ПЛК к СП, не выходит каменный цветок. Уже несколько дней пытаюсь.

Прикладываю к этому посту pro- и txp- файлы с программами, конфигурациями.

СП = Master RTU. ПЛК = Slave RTU. Подключение: на СП PLC-порт + на ПЛК RS-232. Кабель между СП и ПЛК: КС2. Язык: ST.

Программа примитивная: четыре переключателя с индикацией на СП, как бы, должны соответствовать четырем битам, передаваемым через RS-232. На ПЛК полученные состояния переключателей с индикацией программа просто транслирует на дискретные выходы 0, 1, 2, 3.

Само отщелкивание выходов ПЛК через Codesys работает. В этот момент ПЛК соединен с ПК, разумеется, кабелем КС1.
Отличие между КС1 и КС2 осознаю - в КС1 жилы 4 и 5 соединены, потому что Debug, в КС2 - нет. Соответственно, после заливки программы в ПЛК, сразу получаю ошибку 200, меняю кабель КС1 от ПК на входе ПЛК RS-232 на кабель КС2, накинутый другим своим концом на выход PLC панели СП307. Т.е. в итоге ПЛК соединен с СП кабелем КС2 через порты RS232 (ПЛК) и PLC (СП).

Запускаю программу на ПЛК, кликаю по переключателям на СП. Слышу beep, дискретные выходы своего состояни не меняют, а на панели идет небольшое зависание, где-то на 3-5 секунд, потом можно опять кликать, выходы ПЛК никак не реагируют, на панели краткое зависание и т.д.

Чего-то не додумываю, а чего, не могу понять.
Все туториалы пересмотрел по 100 раз. Соответствующую документацию тоже читал. Вроде в голове все стройно уложилось.

Конфигурации девайсов, выходов - все в приложенных программах.

Прошу помощи.
Заранее благодарен.

kondor3000
19.01.2022, 18:27
У вас всё правильно, кроме адреса ПЛК в слейве
В панели указан адрес ПЛК 1, а в слейве ПЛК адрес 22,
чего бы у вас панель не подвисала, она тычется в пустое место)))58797

программист_с_паяльником
19.01.2022, 18:55
kondor3000, спасибо за верную подсказку.
Я изменил адрес контроллера с 1 на 22 в СП во всех четырех переключателях (исправленный txp-файл прикладываю).
На ПЛК адрес оставил 22 (не по умолчанию).
Как-то странно, отклика на ПЛК не вижу.
Да и сами переключатели на СП не меняют свое состояние на "зеленое".
Т.е. поведение то же самое, что и было.

kondor3000
19.01.2022, 19:44
kondor3000, спасибо за верную подсказку.
Я изменил адрес контроллера с 1 на 22 в СП во всех четырех переключателях (исправленный txp-файл прикладываю).
На ПЛК адрес оставил 22 (не по умолчанию).
Как-то странно, отклика на ПЛК не вижу.
Да и сами переключатели на СП не меняют свое состояние на "зеленое".
Т.е. поведение то же самое, что и было.

Теперь всё должно работать, вы после заливки программы в ПЛК, старт нажимаете?
Онлайн, подключение, заливка программы (ОК), старт ниже. На ПЛК должен загореться светодиод работа, ну и кабель проверьте. В программе ПЛК смотрите, приходит ли сигнал.
Для сохранения программы в памяти ПЛК нажать Онлайн, подключение (ОК), создание загрузочного проекта, старт.

petera
19.01.2022, 19:49
Само отщелкивание выходов ПЛК через Codesys работает. В этот момент ПЛК соединен с ПК, разумеется, кабелем КС1.
Отличие между КС1 и КС2 осознаю - в КС1 жилы 4 и 5 соединены, потому что Debug, в КС2 - нет. Соответственно, после заливки программы в ПЛК, сразу получаю ошибку 200, меняю кабель КС1 от ПК на входе ПЛК RS-232 на кабель КС2, накинутый другим своим концом на выход PLC панели СП307. Т.е. в итоге ПЛК соединен с СП кабелем КС2 через порты RS232 (ПЛК) и PLC (СП).

Нельзя просто поменять КС1 на КС2 после заливки программы, т.к. режим работы порта Debug определяется В МОМЕНТ ВКЛЮЧЕНИЯ ПИТАНИЯ ПЛК по наличию/отсутствии перемычки между 4 и 5 конт.
И если в момент включения питания был подключен кабель КС1, то порт Debug так и останется в режиме связи с кодесис и никакая панель не сможет подключится к ПЛК через Debug

kondor3000
19.01.2022, 19:56
Тогда лучше подключиться по изернету, а соединить через КС 2 по дебаг.
Или соединить панель и ПЛК по RS 485, а управлять по Изернету или Дебаг.

За несколько дней, уже бы давно спаяли кабель для RS 485, я помню с этого и начал))) И соединил с компом сразу по изернету

Можно так.
Для сохранения программы в памяти ПЛК нажать Онлайн, подключение (ОК), создание загрузочного проекта, старт. Снять питание с ПЛК, подключить панель и ПЛК через КС 2, подать питание. Только смотреть на работу в программе не сможете.

программист_с_паяльником
19.01.2022, 23:30
Тогда лучше подключиться по изернету, а соединить через КС 2 по дебаг.
Или соединить панель и ПЛК по RS 485, а управлять по Изернету или Дебаг.
За несколько дней уже бы давно спаяли кабель для RS 485, я помню с этого и начал))) И соединил с компом сразу по изернету

RS-485 хотел использовать для подключения внешних устройств, чтобы отработать и эту сторону обмена.
Наверное, все же попробую "подружить" их хотя-бы через 485-ый, но все же, хотелось бы добить эту тему с портом ПЛК RS-232.



Можно так.
Для сохранения программы в памяти ПЛК нажать Онлайн, подключение (ОК), создание загрузочного проекта, старт. Снять питание с ПЛК, подключить панель и ПЛК через КС 2, подать питание. Только смотреть на работу в программе не сможете.

Так и делаю для сброса предыдущего режима соединения.
После закачки проектов и в ПЛК, и в СП выключаю их, соединяю как положено, даю питание.


P.S. Кстати, есть такая странность. При подаче питания на ПЛК, при загрузке, если он мигнул всеми индикаторами и подал звучок, значит он с Codesys соединится, если не мигнул - будет "Ошибка связи (#0): произошло отключение". А мигает ПЛК при возобновлении питания не всегда.
Плюс, если я открыл в Codesys новую сессию соединения с ПЛК, несмотря на то, что ранее программа в него загружалась, Codesys пишет что в ПЛК программы нет и предлагает закачать в него текущий проект. Это штатная ситуация?

программист_с_паяльником
19.01.2022, 23:32
Нельзя просто поменять КС1 на КС2 после заливки программы, т.к. режим работы порта Debug определяется В МОМЕНТ ВКЛЮЧЕНИЯ ПИТАНИЯ ПЛК по наличию/отсутствии перемычки между 4 и 5 конт.
И если в момент включения питания был подключен кабель КС1, то порт Debug так и останется в режиме связи с кодесис и никакая панель не сможет подключится к ПЛК через Debug

Да, эту фишку понял. Между сменами КС1/КС2 всегда обесточиваю ПЛК. Равно как и СП.

In_Da_Cher_A
20.01.2022, 08:30
Плюс, если я открыл в Codesys новую сессию соединения с ПЛК, несмотря на то, что ранее программа в него загружалась, Codesys пишет что в ПЛК программы нет и предлагает закачать в него текущий проект. Это штатная ситуация?потому что, когда вы грузите проект "сходу", вы грубо говоря, грузите его в оперативку, а не в постоянку. И при выключении ПЛК, оперативка банальным образом обестачивается со всеми банальными последствиями.
Чтобы ПЛК при рестарте питания загрузился проектом - он должен найти в "постоянке" что ему грузить. Для этого вам надо засунуть в плк проект в онлайне командой "создание загрузочного проекта". Почитайте мануал

kondor3000
20.01.2022, 08:38
P.S. Кстати, есть такая странность. При подаче питания на ПЛК, при загрузке, если он мигнул всеми индикаторами и подал звучок, значит он с Codesys соединится, если не мигнул - будет "Ошибка связи (#0): произошло отключение". А мигает ПЛК при возобновлении питания не всегда.
Плюс, если я открыл в Codesys новую сессию соединения с ПЛК, несмотря на то, что ранее программа в него загружалась, Codesys пишет что в ПЛК программы нет и предлагает закачать в него текущий проект. Это штатная ситуация?

Если программы нет, значит залили неправильно или произошёл сбой при заливке или не создали загрузочный проект. Если вы программу изменили, то опять предложит загрузить проект. Даже если просто компилировать проект, не меняя его, будет предложение перезалить программу.
ПЛК не сразу выключается, он ждёт около 30 сек., если питание не восстановилось, он записывает в память все переменные слейва и RETAIN и потом выключается. Вам надо давать ему около 40 с-1 мин.
А лучше вообще не использовать Дебаг для заливки, он глючный. И ненужные выключения для перестановки кабеля.

Если хотите панель подключите по Дебаг, ПЛК к компу по изернету, а 485 для других устройств.
Хотя по 485 можно и панель прицепить и другие устройства одновременно, если сделать мастером ПЛК.

программист_с_паяльником
20.01.2022, 18:30
Для сохранения программы в памяти ПЛК нажать Онлайн, подключение (ОК), создание загрузочного проекта, старт. Снять питание с ПЛК, подключить панель и ПЛК через КС 2, подать питание. Только смотреть на работу в программе не сможете.


Чтобы ПЛК при рестарте питания загрузился проектом - он должен найти в "постоянке" что ему грузить. Для этого вам надо засунуть в плк проект в онлайне командой "создание загрузочного проекта". Почитайте мануал

Ключевой фактор моей ошибки - я не заливал программу в ПЛК Созданием загрузочного проекта, а просто оставлял его в ОЗУ. Разумеется при выключении он терялся.
Мануал по Codesys читал "по диагонали".
Большое спасибо за науку.


ПЛК не сразу выключается, он ждёт около 30 сек., если питание не восстановилось, он записывает в память все переменные слейва и RETAIN и потом выключается. Вам надо давать ему около 40 с-1 мин.
Разумеется. Про 30 сек работы при снятии питания помню, читал. Но если честно, такой паузы не всегда давал ПЛК.


А лучше вообще не использовать Дебаг для заливки, он глючный. И ненужные выключения для перестановки кабеля.
Если хотите панель подключите по Дебаг, ПЛК к компу по изернету, а 485 для других устройств.
Хотя по 485 можно и панель прицепить и другие устройства одновременно, если сделать мастером ПЛК.
Теперь надо перейти на Ethernet )) Необходимые данные ПЛК в ПЛК-Браузере "подсмотрел".
По логике вещей, наверное, все же придется делать ПЛК Мастером, хотя бы для возможного управления, например, ПЧ-приводами.
В принципе, тогда можно и СП слейвом делать. Тогда можно и СП на RS-485 повесить. Попробую все варианты ))

Большое спасибо за подсказки!!!

Инцидент, как бы, можно считать исчерпанным. ))