Просто заменить регистр в настройках
Вложение 88781
или
Вложение 88780
Т.к. в одном регистре 16 бит, значит первый бит регистра 575 соответствует 575 х 16 + 1= 9200 + 1= 9201
Вид для печати
Просто заменить регистр в настройках
Вложение 88781
или
Вложение 88780
Т.к. в одном регистре 16 бит, значит первый бит регистра 575 соответствует 575 х 16 + 1= 9200 + 1= 9201
Доброе утро. А почему может тупить открытие окна? Открывается через секунды две после нажатия на кнопку.
Если я буду опрашивать регистры подключенной к панели (СП310) ПР-ки (102), писать их значения во внутренние регистры панели, и в элементах интерфейса использовать внутренние регистры панели, а не регистры ПР-ки, как сейчас - это может ускорить быстродействие, или наоборот, только усугубит ситуацию?
Тормоза скорей всего вызваны тем, что на текущем экране или окне есть элементы привязанные к несуществующим регистрам ПРки. Число попыток повторного чтения по умолчанию 3, тайм-аут на каждую попытку по умолчанию 1500 мс. Вот и три секунды на реакцию
Раньше в шаблоне проектов было системное окно "Потеря связи с .." которое автоматически появлялось в таком случае. НО ОВЕН зачем-то прибил, такое окно. Теперь - только тормоза косвенно сигнализируют о такой ситуации.
4 панели вышли из строя в промежутке месяц. Слетает железо. Одна пока проекты теряет после повторного включения. Поставили для проверки другую панель, другой фирмы, стабильно. В чем проблема данной серии??? Сп307
шкаф не по феншую стоит, карму надо почиститьЦитата:
Слетает железо.....В чем проблема данной серии???
Пилю первый проект, панель СП3 (мастер) + контроллер ПЛК110:
Правильно ли я делаю, что в программе PLC_PRG объявляю переменные, а уже их привязываю в регистры для Modbus slave, ведь по сути они не являются глобальными?
Или правильно в регистрах Modbus Slave устройства объявлять свои переменные, при этом удалить их в PLC_PRG, и уже их напрямую использовать в программе?
Всю дорогу мне эти мысли не давали покоя .. и не зря. Обычно делал проект для контроллера, потом отдельно разбирался с панелями, а тут надо в комплексе сразу разрабатывать.
Ну по сути мне же теперь надо объявлять переменные в modbus slave с такими же именами и параллельно удалять их в PLC_PRG, тогда малой кровью обойдусь?
А что делать с моими Retain переменными с предустановленным значением?.. при первом пуске забивать всё руками ?
p.s. Или весь массив переменных PLC_PRG скопировать в глобальные и уже их использовать и в программе и для Modbus slave?
Можете сделать инициализацию из массива (или просто переменных) однократно при включении.
Ещё совет, в слейве добавляйте все битовые, потом все целые и в конце все Float (все 32 битные должны быть с чётными адресами), тогда не будете путаться с адресами и выравниванием.
Ещё лучше все битовые сразу упаковать в маски бит.
Можете ПЕРЕНЕСТИ все переменные (что такое у вас массив переменных?), предназначенные для Modbus slave в глобальные, указав для каждой из них прямой адрес в Modbus slave (через AT...) и там-же, для нужных переменных, написать начальное значение (оно будет записано по команде "Сброс")
По поводу адресации всё понятно, про это довольно подробно в руководствах описано, а вот по переменным не нашёл.
Только что попробовал присвоить для регистра Modbus slave переменную, которая уже объявлена в Modbus master при чтении модулей расширения - ругается на дублирование, хотя если объявить переменную в глобальных и присвоить в Modbus slave то всё в порядке. Вопрос скорее риторический ...
Вот так?
Вложение 89121
Тогда у меня возникает вопрос, надо ли эту переменную объявлять в GLOBAL RETAIN или можно в просто в GLOBAL т.к. Адрес, куда переменная привязана в области памяти Modbus Slave, которая априори retain?
Не увлекайтесь прямыми адресами, это плохой совет.
Вы можете в программе присвоить значение однократно (сделать инициализацию) или из того же RETAIN присвоить однократно, только с другим именем.
Это нужно только для уставок, остальное в слейве запомнится при работе, мастер не должен при включении перезаписывать уставки, а только читать.
Единственный случай оправданный для прямого адреса, это считанные куча модулей (или все переменные для передачи), упакованные в структуру или массив структур, положить в слейв по одному прямому адресу.
Илья Потолицын Я накину свою статью: https://cs-cs.net/codesys-modbus-kar...trov-struktury
У меня там есть готовый пример (в конце статьи можно скачать) того, как адресовать ИП320 через структуры на ПЛК110.
Если аккуратно подсчитать все биты и адреса - ИМХО самый удобный пример.
И ещё загрузка настроек по умолчанию есть. Я с 2023-2024 выдумал и пользуюсь в каждом проекте.
Да, просто GLOBAL.
По поводу опасений насчёт прямых адресов - если переменных немного и нужно переделать существующий проект это вполне нормальный вариант, на мой взгляд - и точно лучше, чем забивание переменных непосредственно в конфигурацию.
Использование структур для слейва удобная штука, но тоже необходим контроль за выравниванием внутри структуры.
И в любом варианте, используйте для создания слейв переменных ПЛК эксель или подобное - это облегчает их правку и далее работу с панелью (особенно такой как СП)