PDA

Просмотр полной версии : ПЛК63+2МВ110-16Д+МУ110-16Р



lectorleo
25.01.2022, 11:34
Добрый день
Необходимо чтобы ПЛК63 опрашивал два модуля МВ110-16Д и управлял одним модулем МУ110-16Р

Реализовал блочек, но почему-то часто код ошибки (255). Соответственно считывание параметров с МВ16Д идет с большим лагом, хотя на МУ тоже ошибка но запись управляющих сигналов идет отлично. Помогите найти ошибку, пожалуйста.

Cs-Cs
25.01.2022, 13:13
Мне стало интересно, я поглядел чуток. Я с ПЛК63 не работал, могу ошибаться.
Из того, что я не понял:
а) Почему в каждом FB для опроса модуля IO есть команды на открытие порта и его настройку?
Ведь порт надо открыть один раз, и дальше его и использовать всегда открытым.
То есть по идее должен быть некий FB вида "Rs485Port", который мы при старте программы (на Init) открываем, и дальше во все FBшки опросов передаём его дескриптор (у тебя это Settings.Port).
б) Нет проверок на то, открылся ли вообще этот порт и всё ли хорошо с ним. У блока "COM_SERVICE" есть выход ".Opened" - и вот когда он TRUE - то тогда порт открылся успешно, и можно начинать опрос. А не когда ты дал команду на открытие порта и поставил в коде "com_ready := TRUE".
Но тут я могу ошибаться, возможно не так понял код.
в) И самое ИМХО важное - у тебя в конфигурации задач ничего не указано про время задачи. Если там пусто - то по умолчанию выполняется PLC_PRG как попало. А вот если руками туда её добавить, и задать время выполнения, например, 10-20 мсек - то тогда она будет работать быстрее.

В общем, итого моё ИМХО - это что первым делом в каждом FB опроса межу собой дерутся порты. На втором месте - скорость выполнения задачи.

lectorleo
25.01.2022, 13:35
a) в опросе участвует только один FB, остальные это варианты экспериментов чтобы работать конкретно с отдельными устройствами. В данном случае задействован только один(MU_2MV). Прошу прощения что не удалил остальные
б) ну да, возможно. я первый раз с этой библиотекой разбираюсь, результат это совмещение разных проектов что находил в примерах и форуме. Но учитывая что на МУ задание идет, и раз в несколько запросов с МВ иногда считывается чтото, думаю порт всётаки открылся
в) ну в PLC_PRG у меня будет еще и основное тело добавлено, сейчас только отдельно обработка работы модбас, в параллели будет основная программа

завел в отдельный PRG работу с модбасом, и в конфигурацию задач. Вроде заработало как надо. спасибо. Но почему-то всё равно немного костыли напоминает)

kondor3000
25.01.2022, 13:50
Добрый день
Необходимо чтобы ПЛК63 опрашивал два модуля МВ110-16Д и управлял одним модулем МУ110-16Р

Реализовал блочек, но почему-то часто код ошибки (255). Соответственно считывание параметров с МВ16Д идет с большим лагом, хотя на МУ тоже ошибка но запись управляющих сигналов идет отлично. Помогите найти ошибку, пожалуйста.

Где объявление функц. блока MV_16D в PLC_PRG ?


завел в отдельный PRG работу с модбасом, и в конфигурацию задач. Вроде заработало как надо. спасибо. Но почему-то всё равно немного костыли напоминает)

С таким же успехом можно было цикл ПЛК увеличить с 1 мс до 10-20 мс. Программа PLC_PRG исполняется каждый цикл ПЛК.

Cs-Cs
25.01.2022, 14:46
Нет, как раз-таки правильное указание задач руками - это хорошо. Работу PLC_PRG сделали для тех, кто начинает и кто не знает про задачи.

lectorleo
26.01.2022, 08:15
Где объявление функц. блока MV_16D в PLC_PRG ?

Нету, писал выше, что мой косяк что лишнее не удалил. Там только один FB используется который работает с одним МУ и двумя МВ

Spawn
26.01.2022, 12:48
Нет, как раз-таки правильное указание задач руками - это хорошо. Работу PLC_PRG сделали для тех, кто начинает и кто не знает про задачи.

Во всех проектах ПЛК63 и ПЛК73 работаю с PLC_PRG (который находится в "свободном плавании", хотя с ПЛК работаю не первый год и в курсе, что такое задачи), проекты, конечно, имеют структуру, но все вызовы осуществляются из PLC_PRG, всё отлично работает.

Cs-Cs
26.01.2022, 13:11
Spawn Понял, спасибо!
Я учился от обратного: хотел уйти от PLC_PRG к своим именам типа TaskIO, TaskLight - и поэтому сразу полез в конфигурацию задач, и к ней привык: что можно сразу и жёстко задать нужное время цикла.

Spawn
26.01.2022, 14:10
:)
Да не за что, просто поделился своим опытом...