Здравствуйте.
Нужна ваша помощь.
Так уж сложилось что на моём предприятии с Modbus не работали и опыта особо нет.
Вводные данные:
контроллер MicroLogix 1100, частотные преобразователи ABB ACS310.
Нужно получать данные с частотников на монитор(с RSView 32) и управлять частотниками(старт, стоп, изменение частоты- два задания).
Контроллер установлен, все необходимые настройки сделаны.
Установил и подключил один частотник. Настроил необходимые параметры, перемычку установил как последнее устройство на шине.
Из контроллера через MSG считал некоторые данные с регистра 4ххх.
Общем то тут пока вроде всё нормально.
Далее на шину завёл все остальные частотники(25 шт), они пока не подключены(питание не подано). На частотнике с которого ранее получал данные перемычку установил в другое положение, а на последнем частотнике на шине установил её как последнее устройство на шине. Данные с частотника перестали идти.
Методом "научного тыка" выяснил что данные получаю только в двух случаях: это если перемычка с последнего частотника вообще снята или на запитанном частотнике установлена как последний.
Что я не так сделал?
2. какое количество слов можно получать через одно MSG? Если я укажу например 100 элементов, то тормозов не будет?
3. Управление старт / стопом можно как-то по другому организовать через modbus, но не через MSG?
только по Modbus
пробовал ставить на последний, но пока не запитывал, результат отрицательный.
Конечно же это наверное пока не показатель, запитаем все частотники, потом будет видно, как оно себя поведёт.
В RS485 полезный сигнал ищется в зоне от максимального уровня сигнала (амплитуды) до зоны помех (примерно 20% в середине диапазона). Поэтому если у одного устройства уровень сигнала высокий, то устройства с низким уровнем сигнала попадут в зону помех и отвечать не будут. Все устройства в RS485 необходимо привести примерно к одному уровню сигнала (амплитуде) с помощью резисторов.
У меня 5 разных ЧРП подключены к ML1400 через AIC+:
- у первого ЧРП стоит резистор 300 Ом. Был высокий уровень сигнала 4V ;
- у второго 120 Ом встроенный;
- у третьего 0 Ом (120 Ом выпаян с платы). Был низкий уровень сигнала 0.1V;
- у четвертого 0 Ом;
- у пятого 200 Ом. Подобрали последним.
По уму нужно у AIC+ резистор на 120-150 Ом, но с ним не заработало.
Если устройства однотипные, то все должно быть проще.
Потом нужно смотреть наличие помех в вашей сети осцилографом. Если уровень помехи выйдет за зону помех (примерно 20% от амплитуды полезного сигнала), то работать не будет.
Советую поставить какойнибудь барьер RS485 между контроллером и полем (я использую AIC+, но в ML1100 нет порта RS232 или есть - непомню).
Размер запроса не должен превышать допустимый размер MSG и допустимый размер запроса ModBus - 256 байт.
ModBus RTU - протокол последовательных запросов c разделением пакетов по времени, поэтому одновременно запрашивать с нескольких Node нельзя (пакеты не будут разделены по времени и воспримутся мастером как один пакет, в итоге будут потери). Незнаю как реализован опрос ModBus в ML, но я после выполнения MSG (DN или ERR) делаю задержку и потом опрашиваю следующую Node.
Нужно учитывать, что опрос отсутствующих устройств выполняется с ERR по истечении времени TimeOut (не менее одной сек, по умолчанию по-моему стоит 2 сек). Соответственно при 25 устройствах в сети, где 24 из них отсутствуют, опрос будет через 24 секунды минимум. Нужно предусматривать механизм исключения из опроса отсутствующих устройств.
Огромное спасибо за помощь.
Всё доходчиво пояснили.
Помаленьку осиливаю сеть. на данный момент в сети два подключенных(подано питание) частотника.
Данные с них не шли пока на последнем не снял стандартную перемычку и поставил резюк на 120Ом. Данные стали поступать.
Сейчас пытаюсь разобраться с самим частотником, есть проблема: после записи командного слова(именно когда команда старта дана) MSG начинают "виснуть" похоже помеха идёт, нужно разбираться.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна. Открытие страницы: 0.133 секунды