Это первое что я сделал. Все глаза стер, где то что то я глобальное упустил.Screenshot_131.jpg Screenshot_132.jpg Screenshot_133.jpg Screenshot_134.jpg все локальное.
Это первое что я сделал. Все глаза стер, где то что то я глобальное упустил.Screenshot_131.jpg Screenshot_132.jpg Screenshot_133.jpg Screenshot_134.jpg все локальное.
Там немного логика другая, насосы включаются как с кнопки так и автоматически с ПР. Анимация просто статус насоса. Да и на странице настроек все работает корректно.
Здравствуйте! На "операционном столе" два "пациента": СП-307 и Контроллер серии Optimus Drive AC. Обмен организован по сети ethernet. Проект СП-307 состоит из 3-х экранов и одного окна. Хотелось больше, но... При вызове не главного экрана или окна, при изменении переменных или при возврате на главное окно сеть (обмен) пропадает. Происходит это рандомно, и восстанавливается также без какой либо зависимости. Прочитал про глобальные и локальные переменные:
"Особенности работы по протоколу Modbus: 1. Панель опрашивает другие устройства только с помощью элементов, расположенных на открытом в данный момент экране. В значительном количестве случаев представляется удобным организовать опрос через глобальную функциональную область и привязывать к графическим элементам соответствующие внутренние регистры панели."
Появилось мнение, что все проблемы связаны с этим, но как реализовать "опрос через глобальную функциональную область..." ни в одном примере не нашел, в руководстве также не нашел.
Прошу Вас оказать помощь в данном вопросе. И вообще там ли я "копаю".
Делаете ФО глобальной, ей копируете все регистры из 4х0 в PSW300. 1 Копирование 32 регистров.jpg
Далее используете в проекте. Желательно сделать группой, если они по порядку.
Нас скрине копирование группы из 32 регистров подряд
Последний раз редактировалось kondor3000; 09.07.2025 в 19:47.
Спасибо за ответ.
Нам удалось немного оптимизировать проект (сейчас время обновления информации на панели составляет примерно 1-1.5 секунды).
Функциональные области c копированием нужных областей регистров modbus во внутреннюю память панели мы не используем, а привязки к элементам на графике осуществляются непосредственно к считываемым регистрам Modbus.
Из мануалов узнали, что "панель производит опрос только с помощью элементов, расположенных на открытом в данный момент экране".
Итак, что помогло оптимизировать проект:
1. Со всех мнемосхем удалили так называемые быстрые журналы возникающих событий. В конфигураторе они называются "Таблицы событий реального времени"
2. Уменьшили количество возможных сообщений в элементе "Историческая таблица" с примерно 600 сообщений до примерно 100 сообщений.
3. Убрали с проекта "Архивирование на USB".
После этих действий скорость отображения стала приемлемой.
Скажите, как правильно настраивать журналы событий\исторические таблицы\архивирование на USB, чтобы не грузить панель ? У нас получилось так, что дело было в этих функциях.
Есть несколько предложений.
1. Если данные нужны только на определенном экране, передавайте и принимайте их в локальном виде только на этом экране.
2. журналы событий\исторические таблицы - привязывайте к битам слова, скажем PSW. В слова информацию формируйте в контроллере и передавайте отдельным общим запросом. Получается, что каждая таблица отдельно ведет опрос по протоколу с контроллером. Так вы будете запрашивать из одного места.
3. Когда в функциональной области формируете запрос, делайте не постоянный опрос а с интервалом, скажем 1 секунда.
4. Возможно поможет галочка групповые запросы.
5. Архивирование на USB нужно делать в параллельном режиме.
6. Попробовать заменить Modbus на Modbus TCP.
7.
Такое решение - самообман.
Любые функции чтения регистров или группы регистров в ф.области вызывают операции чтения всех соответствующих регистров "источника" непрерывно и безусловно, даже если "Условие запуска" ф.области не выполняется.
И лишь реальное обновление регистров "приемника" выполняются в момент наступления "условия запуска" ф. области.
Т.е. эсли Вы попытаетесь делать опрос(копирование в регистры панели) 100 регистров из слейва с интервалом, скажем 1 секунда, то панель будет непрерывно, делать запросы на чтение 100 регистров из слейва и только один раз в секунду обновлять значения в регистрах панели.
ЗЫ.
В общем случае
Регистры 3х и 4х. Чтение
Все регистры, используемые в качестве источника данных для элементов активного экрана, постоянно и безусловно читаются из слейва с периодичностью заданной в настройках "Коммуникационный интервал" порта панели.
Чтение будет осуществляться группой если адреса регистров отличаются не более чем на 5, например
- для двух дисплеев с регистрами Wrd 4х00 и 4х5 будет одна команда чтения шести регистров 0,1,2,3,4,5. А для двух дисплеев с регистрами Wrd 4х00 и 4х6 будут две отдельные команды чтения по одному регистру.
- для двух дисплеев с регистрами DWrd 4х00 и 4х6 будет одна команда чтения восьми регистров 0,1,2,3,4,5,6,7. А для двух дисплеев с регистрами DWrd 4х00 и 4х8 будут две отдельные команды чтения по два регистра.
Соответственно к вышеописанной цепочки из двух регистров могут добавляться последующие регистры, если их адрес отличаются не более чем на 5 от предыдущего. Например
- для трех дисплеев с регистрами Wrd 4х00, 4х5 и 4х8 будет одна команда чтения девяти регистров 0,1,2,3,4,5,6,7,8.
и т.д.
Но максимальное число регистров в групповой команде чтения не может превышать 16.
Запись регистров 3х и 4х, используемых в полях ввода - однократная, в момент нажатия ENTER.
Запись регистров из ф. областей тоже по возможности группами из 16 рег.
Если на экране есть регистры на чтение и на запись, то чтение запись чередуются
-чтение 1 группы
- запись 1 группы
-чтение 2 группы
- запись 2 группы
и т.д
Таблицы в группировке с другими элементами экрана не участвуют. Для таблиц всегда будут свои групповые(если столбцов несколько) или одиночные(если только один столбец) запросы к слейву.
Таблица представлена массивом структур.
Формат структуры и количество регистров в ней определяется количество столбцов и типом данных в каждом столбце.
Таблицы читаются построчно. Причем второе правило "максимальное число регистров в групповой команде чтения не может превышать 16" на таблицы не распространяется, в одной группе будет столько регистров, сколько нужно для одной строки, хоть 125!
Запросы на чтение строк разнесены по разным циклам выполнения программы.
В каждом цикле читаются все регистры только одной строки
Например на экране есть ДИСПЛЕЙ и ТАБЛИЦА 1 столбец 3 строки
1. чтение 4х0 (дисплей)
2. чтение 4х2 (первая строка таблицы)
3. чтение 4х0 (дисплей)
4. чтение 4х3 (вторая строка таблицы)
5. чтение 4х0 (дисплей)
6. чтение 4х4 (третья строка таблицы)
и т.д.
Если ДИСПЛЕЙ и ТАБЛИЦА 10 столбцов 3 строки
1. чтение 4х0 (дисплей)
2. чтение группы 4х2, 4х3...4х19 (первая строка таблицы)
3. чтение 4х0 (дисплей)
4. чтение группы 4х20, 4х21...4х29 (вторая строка таблицы)
5. чтение 4х0 (дисплей)
6. чтение группы 4х30, 4х31...4х39 (третья строка таблицы)
и т.д.
Надо различать элементы экрана
- обычные, глобальные, на системных экранах
Например, на экране есть
дисплей с регистром 4х0
Функциональная область в которой
- читать один рег. 4х3
- читать группу из 5 рег. с адреса 4х5
Если дисплей и ф. область обычные, то будет один групповой запрос
читать группу из десяти регистров - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Если и дисплей и ф. область будут глобальными, то также будет один групповой запрос
читать группу из десяти регистров - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Но если только дисплей или только ф. область будут глобальными, то будет два отдельных запроса
1. читать рег. 4х0
2. читать группу из семи регистров - 3, 4, 5, 6, 7, 8, 9
Следует иметь ввиду, что кроме обычных экранов у панели есть еще системные (невидимые) экраны, их несколько.
И выполнение(обслуживание) экранов происходит как и в ПЛК - циклически
- системный экран 1
- системный экран 2
........
- системный экран N
- пользовательский активный экран
Считайте, что элементы со свойством глобальный находятся на невидимом системном экране
Группировка с правилом "разница между стартовыми адресами не более 5" на активном экране своя, на системных (не видимых) экранах своя
Последний раз редактировалось petera; 07.08.2025 в 12:08.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg