Вход

Просмотр полной версии : Рецепт на Codesys 2.3



Константин81
14.08.2024, 16:26
Доброго времени суток!
Просьба помочь разобрать мои ошибки в написании кода рецепта.
Евгений Кислов https://rutube.ru/video/1d0e4b3e9e141b21edf446083d303dae/ четко разложил оформление рецепта в Codesys 3.5. К сожалению, не нашел подробного аналогичного описания на версии 2.3, а было бы здорово)
Решил реализовать этот код только в Codesys 2.3 на базе ПЛК 110-60
Шаг 1
в "тип данных" создал две структуры аналогично видео:

{attribute 'pack_mode':=2}
TYPE recipe :
STRUCT
sTitle:STRING (9);
wValue:WORD;
rValue:REAL;
END_STRUCT
END_TYPE

{attribute 'pack_mode':=2}
TYPE slave_data :
STRUCT
sTitle:STRING (9);
wValue:WORD;
rValue:REAL;
END_STRUCT
END_TYPE

Шаг 2
В POU обозначил переменные:

PROGRAM PLC_PRG
VAR
dwSize: WORD;
recipe: recipe;
fbRTUslave: MB_RTU_SLAVE;
END_VAR
VAR RETAIN
stSlaveData:slave_data;
END_VAR

шаг 3
Добавил в "менеджер библиотек" библиотеки:
OwenModbusSlave v 2.3.9.2
BufferTolls_v2.3.9.01

шаг 4
В поле программирования добавлен ФБ "fbRTUslave"

По сравнению с Codesys 3.5 в Codesys 2.3 ФБ функционал входов ничем не отличается. Только в описании блока в Codesys 2.3 большее количество подключаемых переменных.
При попытке загрузки в ПЛК появляется ошибка "неразрешенные ссылки на внешние pou" Но это лечится посредством удаления библиотек на которые дана ссылка в окне ошибки.

шаг 5
меняется настройка СП307 только вместо Плк210 указывается PLC порт с указанием сетевого адреса slave то есть ПЛК 110.
Далее все загружается.
И тут возникает проблема в отсутствии связи. СП постоянно опрашивает ПЛК в связи с чем появляется окно "communicating .. PLC port StaNO 1"
я так понимаю что просто отсутствует связь между ПЛК 110 и СП307.
Перепробовал все что знаю:
добавил в конфигураторе slave-устройство, присвоил адрес. Но почему то не идет.
Объясните пожалуйста товарищи специалисты что я сделал не так.
Заранее благодарю.

kondor3000
14.08.2024, 17:42
Вы не зная азов сразу начали с биб-ки и с рецептов. Может начать с конфигурации?
И главное, у вас живые панель и ПЛК или это всё в эмуляции?

Проект панели выложил ниже, Панель мастер, Модбас RTU, ПЛК слейв, Скрин 78004
На скрине передаётся в ПЛК, Рецепт 8, номер в панели 7.
При чём первые 5 регистров - Имя рецепта Rezept AT %QW13.1.0 : STRING(9); где AT %QW13.1.0 - прямой адрес в слейве
Потом 1 регистр Вес (целочисленное) и последние 2 регистра Температура (Float)
Никаких 64 регистров не надо, есть всего 8 регистров, через которые и передаются все рецепты, в зависимости от номера рецепта.
И работа с биб-кой, ПЛК154-UМ, скрин 78011