А если во время опроса ТРМ32 физически отключить на некоторое время RS485, а потом восстановить соединение? Опрос будет дальше в нормальном режиме продолжаться или потребуется перезагрузка ПЛК ? Не пробовали?
А если во время опроса ТРМ32 физически отключить на некоторое время RS485, а потом восстановить соединение? Опрос будет дальше в нормальном режиме продолжаться или потребуется перезагрузка ПЛК ? Не пробовали?
Последний раз редактировалось super100; 21.10.2013 в 10:57.
Еще вопрос - как грамотно сделать запись в ТРМ? Мне надо писать 8 регистров, делаю запись By Command. По каждой команде ПЛК записывает 1 регистр. Как мне узнать, что регистр уже записался, и подать команду на запись следующего? И вообще, как узнать, что запись прошла успешно? Смотреть ошибку в ModbusMaster не получится, т.к. одновременно из ТРМ читаются датчики By poll time, и естественно, при этом затирается ошибка, т.к. адрес устройства один и тот же.
Да, организовал я это как два Universal Modbus Device с адресом 16, одно читает датчики, другое пишет регистры настроек.
Проверил. Опрос сам восстанавливается нормально. Но при этом я теряю опрос значений датчиков, которые у меня постоянно пишутся в архив в скаде - а это не хорошо, получаются провалы на графиках.
Я на этой неделе тоже начинаю заниматься наладкой. Наконец получил новые ТРМ32Щ7ТС.RS. Если что, готов к общению. У меня Master Scada и Modbus Master OPC сервер. Буду пробовать подключать через локалку по Ethernet.
Последний раз редактировалось super100; 21.10.2013 в 14:23.
У меня вариант TRM32-Щ7.ТС.RS -> ПЛК100 -> Lectus OPC/DDE Server -> MasterScada работает нормально в режиме чтения датчиков, связь между ПЛК и ПК по Ethernet, даже можно и через интернет, если провайдер выделит ПЛК статический IP. Это уже работает на многих объектах. Просто раньше не было задачи из скады менять настройки в ТРМ.
Не буду плодить темы, мой вопрос в чем-то схож...
Задача:
С ПЛК необходимо считывать параметры различных типов (bool, int, real).
Каждый тип требует различного кол-ва байт.
Создаем Modbus slave и в нем создаем отдельные переменные с соответствующими типами. Понял, что могу встретиться с проблемой выравнивания адресного пространства.
Вопрос:
Что если под каждый тип данных (bool, int, real) я создам отдельный modbus slave? В этом случае несколько проще будет с адресацией.
При этом сделать 3 слейва на чтение и 3 на запись.
Можно ли так сделать? Или это будет "нехорошим тоном"?
Сколько можно!!!
К ПЛК идет диск с документацией , и там есть документ - "Решение проблемы выравнивания".Что ? для России чтение документации совсем неактуально???
Модбас изначально работает с регистрами 16 бит !!! 16 бит это INT,WORD .
Адресация регистров в модбасе с 0 . Поэтому для бит и 16 бит переменных создается 2байт слово , 4 х байтные (Реал , Дабл ворд) помещаются в КОНЕЦ блока 2х байтных регистров ПОСЛЕ ЧЕТНОГО!!!!!!! ворда .
Командой чтение-запись бита можно прочитать - записать ЛЮБОЙ БИТ в ЛЮБОМ слове модбас слэйва , при записи , естественно изменится значение соотв.регистра.
То есть ПЛК будет играть роль 6 слейвов одновременно?Имхо это не то, что нехороший тон, это не заработает
![]()
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg