Добрый день. Такого режима не предусмотрено.
Вид для печати
Жаль. А если писать программу в конфигураторе СП200 с использованием "Пользовательского режима" зальётся ли она в СП307 без проблем?
Здравствуйте, продолжу вопрос по таблицам... Такое дело: нужно выводить показания каждый час с выводом времени фиксации - Все это свести в 1 таблицу. Если ставлю 1 столб данных, то все замечательно, как добавляю второй с временем - в таблице время не отображается и показания снова оказываются только на верхней строке. Я так понимаю, что нужно использовать формат 32 Bit, но как?
Вот раскладка регистров по столбцам таблицы на вашем примере.
Пусть начальный регистр таблицы - PSW300. Тогда:
Float DateTime (год-месяц-день часы:минуты:секунды) PSW300-301 PSW302-307 PSW308-309 PSW310-PSW315 PSW316-317 PSW318-PSW323
Если ПЛК - мастер, то просто записываете из него в эти регистры разряды времени, упакованные в HEX:
PSW302<-----16#2017
PSW303<-----16#04
PSW304<-----16#25
и т.д.
Если ПЛК - слэйв, то считываете с него разряды времени в HEX (например, через функциональную область с действием Копировать группу регистров) и кладете их в регистры PSW302-307.
Т.е. вопрос только в настройке чтения системного времени в ПЛК (для этого обычно используются системные библиотеки) и настройке обмена между ПЛК и панелью.
Ок, с этим понятно, теперь вопрос, таблица 16 строк, начало с 0... Пропускает чтение с 5, 6, 7 и 15 строки - пишет 0, хотя в контроллере в эти регистры значение записыватся. По перекрестным ссылкам никак ложных записей в них нет...
Напишите нам на support@owen.ru
К письму приложите проекты для обоих устройств.
Здравствуйте,
прошу помочь решить проблему передачи DWORD из контроллера в панель через Modbus.
При передаче через RS-485 с параметрами по умолчанию при передаче DWORD из ПЛК панель при приёме в цифровой дисплей типа DWORD переворачивает слова (при передаче 16#FFFF1111 на панели отображается 1111FFFF).
Попробовал в контроллере в параметрах RS485 заменить Frame Oriented: RTU на ASCII - числа на панели вообще перестали отображаться. Мне нужно передать 4-х байтное число без искажения, как изменить порядок вывода слов DWORD в панели, или каким-то другим способом решить проблему?
Программно менять местами слова в контроллере пока не хочу, мне кажется что должен быть более простой метод решения. :)
Добрый день. Попробуйте в ПЛК для параметра Byte Sequence выбрать значение Native.
Вложение 30910
!!! А где расположено место настройки этого !!! параметра?
В модуле Universal Modbus Device:
Вложение 30911
Проект разрабатывался без панели, в эмуляторе всё хорошо
Но на месте выяснилось, что проект заставляет панель только показывать микросхему
Удалось найти элемент, который вызывает такое поведение, и обойтись без него
Пустой проект с одним элементом, вызывающий такое поведение, в приложении. Самому экспериментировать возможности не было.
Таблица используется только как графический элемент, поэтому тип данных стоит ТЕХТ и длина 0
Справедливо, нулевая длина текста - некорректное и необрабатываемое значение. По идее, конечно, здесь должно было бы появиться окно с предупреждением "Значение не может быть нулевым!" или что-то подобное.
Но в вашем случае достаточно указать любую длину текста (например, 1) - все равно по умолчанию будет отображаться пустая строка, и ваша концепция ("Таблица используется только как графический элемент") будет соблюдена.
как произвести масштабирование исторического графика по оси времени или значений? как вывести подписи оси значений на историческом графике?
как сделать отображение времени линии данных в историческом графике помимо отображения данных?
Добрый день, petera, добрый день, коллеги!
Petera, сделал все по Вашему предложению http://www.owen.ru/forum/showthread....l=1#post247211
Вот теперь все работает как надо. Только показалось, что работать стало медленнее. Вычисление динамического адреса требует бОльшего времени? А ведь в примере элементов всего 3. А если их будет 30?
Далее осталась проблема с отображением битовых элементов, как у mick213: http://www.owen.ru/forum/showthread....l=1#post222133
При отключении битового элемента он отображается в состоянии "1" - включено - что не есть хорошо.Цитата:
Сообщение от mick213
Добрый день petera ! Сделал в своем проекте для панели СП310-Б(Master) и 6-ти ПЛК110-60(Slave) ModBus RTU отключение с опроса временно выключенных контроллеров как в примере ”Управление обменом или как ОТКЛ/ВКЛ связь по Modbus”. Сначала не заработало. Выяснилось, что функциональная область, почему-то не записывает в PFW130 значение 400. Пришлось заменить условие запуска “После загрузки проекта” на “Переход на экран элемента”. Получилось включать и отключать опрос контроллера, но возникла другая проблема. На другом экране в исторической таблице все записи, относящиеся к отключенному контроллеру, много раз в минуту формируют сообщения по переднему фронту. Также на экране с индикаторами отключенного контроллера все индикаторы находятся в значении “1” и периодически кратковременно (доли секунды) переходят в “0”. Что может приводить к такому эффекту и как от этого избавиться?
Ваше решение:
решило проблему, но! (в который раз но!) - существенно увеличилось время реакции на отображение состояния элемента. Аж до нескольких секунд. И на время переключения экранов тоже. Функц. обл. с пересылкой байтов тоже требует время? И это только один битовый элемент в примере!Цитата:
2. А вот, что касается остального, то действительно здесь наблюдается описанный "глюк". Причем только для битовых сигналов.
Предлагаю для решения этой проблемы использовать промежуточные регистры PSW.
Т.е. поставить в соответствие битам регистров 4х в ПЛК биты промежуточных регистров PSW панели.
Например
4х0 --> PSW256
4х1 --> PSW257
4х2 --> PSW258
.........
4х9 --> PSW265
и т.д.
Если Вы использовали для ламп, переключателей с индикацией или в исторической таблице биты 0х ПЛК, то их номера всегда можно представить в виде отдельных разрядов регистров 4х. Например 0х1 соответствует 4х0.01, а 0х31 соответствует 4х1.15.
Резюмируя все эксперименты, мое мнение - функция управления обменом - полезная, актуальная. В данной реализации вполне работоспособна с особенностями, описанными в теме. Недостатки - обязательная динамическая адресация всех отображаемых элементов, для битовых каналов - доп. функц. область с дополнительной пересылкой байтов - и все это лишь для корректного отображения информации. А это время. Ну а остальное покажет работа. Интересно узнать мнение других пользователей, а так же инженеров ОВЕН. Функция то не документирована, о PFW130 в официальных документах - ни слова.
Спасибо всем, кто откликнулся.
Вся тема тут: http://www.owen.ru/forum/showthread.php?t=23024
1. Во всех Ваших примерах используется скорость обмена 9600, почему? Делайте 115200.
2.Надеюсь, что в качестве индексного регистра Вы не используете регистры слейва? Нужно всегда использовать регистр PSW, а не 4х.Цитата:
Только показалось, что работать стало медленнее. Вычисление динамического адреса требует бОльшего времени? А ведь в примере элементов всего 3. А если их будет 30?
По поводу если их будет не 3, а тридцать нужно использовать копирование всех регистров слейва в промежуточные PSW, как здесь http://www.owen.ru/forum/showthread....l=1#post222908
Для каждого слейва отдельной функцией копировать весь блок регистров 4х и сразу задействовать дин.адресацию.
Вложение 31082
3. Тормоза с битовыми элементами.
А Вы точно используете дин.адрес для регистра, а не для бита?
Вложение 31083
Выкладывайте проект с "тормозами", хочу посмотреть в чем дело.
Решил проверить как повлияет на скорость обмена использование дин.адресации в функции копирования блока регистров.
За основу взял этот пример http://www.owen.ru/forum/showthread....l=1#post222908
Изменения в проекте
1. Из кнопки управления обменом убрал ф. открытия/закрытия окна №60006
Вложение 31087
2. В ф. копирования блока из 10 регистров включил дин. адресацию
Вложение 31088
3. Добавил функцию, которая непрерывно отсылает в ПЛК время работы панели(PSW38) которое увеличивается каждые 0,1 сек.
Вложение 31089
Теперь время работы панели посылается в рег.4х4, считывается обратно в другой ф.области в составе блока из 10 регистров и отображается на этом дисплее
Вложение 31090
3. Сделал маленькую программу для ПЛК
Вложение 31091
в которой тоже есть счетчик, который инкрементируется каждые 0,1 сек. Результат отображается на этом дисплее
Вложение 31092
Кроме того на экране есть битовые элементы привязанные к отдельным битам рег.4х на запись и битам промежуточных PSW на чтение
Это шесть переключателей с подсветкой
Вложение 31093
Используются три различных 4х регистров
Все просто летает, ни каких тормозов не наблюдаю
Никаких тормозов связанных с заменой прямого управления битами 4х, на биты промежуточных нет.
Никаких тормозов из-за использования дин.адресации в ф.копирования блока регистров 4х в регистры PSW тоже не наблюдаю.
Проекты для панели и ПЛК во вложении
Теперь попробую увеличить количество слейвов до трех
Со скоростью согласен. Уже поменял.
Однако на тормозах не отразилось. Битовый канал реагирует на вкл/откл несколько секунд. И с переключением экранов стал подтормаживать. Насчет не 3 а 30 - я имел ввиду именно скорость отображения, не будет она в 10 раз медленнее?
Скрины не делаю, вот файл
Вложение 31095
Дин. адресацию для битовых элементов нужно делать не здесь
Вложение 31096
а в функции копирования 4х в промежуточные PSW
Вложение 31097
т.е. так
Вложение 31098
Зы
Загрузил в панель, с указанными изменениям. Тормозов нет, экраны переключаются мгновенно.
Для теста быстродействия в Ваш проект добавил элементы ввода.
Вложение 31102
И т.к. слейвы у меня в ПЛК,
Вложение 31103
то адреса регистров изменил, а то набирать в конфигураторе по 100 и по 2900 регистров как-то не по себе:rolleyes:
В пример из поста #481 добавил два слейва
Вложение 31104
Вложение 31106
Вложение 31105
Короче три слейва, из каждого читаются по десять регистров, которые отображаются на одном экране в том или ином виде.
На глаз тормозов не вижу
Что то я не совсем понял смысл эл. ввода: с них записать в слэйв и сразу считать в панель? Так у меня так не получится, у меня везде входные регистры, только чтение.Цитата:
Для теста быстродействия в Ваш проект добавил элементы ввода.
А вот здесь -
Ошибку исправил. Стало работать быстрее, ноЦитата:
Дин. адресацию для битовых элементов нужно делать не здесь, а в функции копирования 4х в промежуточные PSW
Мгновенно - это как? у меня экран переключается около сек., время от включения тумблера (у меня макет) на входе МВ110-32 (битовый канал) до включения лампочки на панели - примерно тоже секунда. Время немножко рознится - 1-2 сек. Это нормально? Просто честно, не знаю. Может это мгновенно?Цитата:
Загрузил в панель, с указанными изменениям. Тормозов нет, экраны переключаются мгновенно.
Как и на писано - тыц на кнопку и мгновенно другой экран:) Ни каких секунд.Цитата:
Мгновенно - это как? у меня экран переключается около сек., время от включения тумблера (у меня макет) на входе МВ110-32 (битовый канал) до включения лампочки на панели - примерно тоже секунда. Время немножко рознится - 1-2 сек. Это нормально? Просто честно, не знаю. Может это мгновенно?
Только чтение - это у Вас, а у меня все слейвы в ПЛК, могу читать и писать.Цитата:
Что то я не совсем понял смысл эл. ввода: с них записать в слэйв и сразу считать в панель? Так у меня так не получится, у меня везде входные регистры, только чтение.
А элементы ввода мне нужны, чтобы оценить время реакции панели. Нажал на ввод, ввел значения, нажал Enter и тут же на соседнем дисплее получил ответ от слейва, тоже мгновенно:)
ЗЫ
У меня время задержки ответа у слейвов - 0
Вложение 31109
Если я здесь укажу 5000,
Вложение 31110
то мгновенно превратится в 5 сек:rolleyes: Причем это относится и к времени перехода между экранами.
Короче, ищите в настройках слейвов параметр "задержка ответа" и ставьте ее в ноль.
Petera, я так быстро, как Вы, работать с примерами еще не умею, с панелями только начинаю работать, да и опыта маловато. Учусь только.
Вот загружен у меня сейчас в панель мой последний пример,
Вложение 31108
исправленный после всех Ваших замечаний. К ней три слейва - два мв110 и один ПР200, от каждого по каналу в панель, и я вижу: переключение экранов - около сек, реакция от тумблера до индикатора на панели - 1-2-3 сек. Всего три элемента индикации. Все в живую, никаких эмуляторов. Если это нормально - вопрос снят.
Поместите на экран, дисплеи с PSW70, 71, 72 и 73
Вложение 31111
и понаблюдайте за обменом
дисплеи можно сделать глобальными.
может у Вас постоянные ошибки, например по CRC.
Ведь при наличии ошибок панель пытается делать это количество повторных попыток
Вложение 31112
Например, три попытки. После чего будет окно о потери связи.
Тайм-аут по умолчанию -1 сек. Так, что повторные запросы при ошибках тайм-аута будут не чаще чем через 1 сек.
ЗЫ.
В дополнение к выше сказанному.
Может Ваши слейвы, те же МВ110 не успевают выполнять команды и еще не готовы к приему следующей посылки от панели, из-за этого тоже будут ошибки связи.
Ведь если здесь стоит 0
Вложение 31113
то панель "пуляет" запросы к слейвам с максимально возможной частотой, может для МВ110 или ПР нужно не менее, например, 10мс между запросами? А они, к примеру, приходят от панели каждые 5 мс. Цифры условные, но такое может быть.
Это или не последний или не все рекомендации выполнены потому, что
Дин.адресация осталась здесь
Вложение 31115
А должна быть в ф.копирования
Вложение 31116
Точно, это не последний. Ошибся с вложением.
Что ж, я понял, буду искать дальше. Спасибо.
Добрый день, petera!
Вопрос с "тормозами" решен! Все оказалось так, ка Вы описали в последнем посте.
Вложение 31135Цитата:
Может Ваши слейвы, те же МВ110 не успевают выполнять команды и еще не готовы к приему следующей посылки от панели, из-за этого тоже будут ошибки связи.
Ведь если здесь стоит 0
PSW72 показал определенное число обрывов по тайм-ауту при работе МВ110. Поставил 10мсек - и все полетело!Цитата:
то панель "пуляет" запросы к слейвам с максимально возможной частотой, может для МВ110 или ПР нужно не менее, например, 10мс между запросами? А они, к примеру, приходят от панели каждые 5 мс. Цифры условные, но такое может быть.
Вопрос с "тормозами" решен! Вопрос с управлением обменом решен!
Большое спасибо за помощь!
Добрый день.
Кто-нибудь сталкивался, что "кнопка вкл, пока нажата" в некоторых случаях возвращает TRUE пока она НЕ нажата? И начинает возвращать FALSE после того как ее нажмешь еще раз. Это баг или у меня руки кривые? )
Добрый день!
Стоит задача - есть СП307 и частотный преобразователь (ЧП). ЧП является ведомым устройством на сети Modbus RTU.
Необходимо получить из ЧП некоторые параметры, отобразить их элементами "цифровой дисплей".
Параметры из ЧП передаются в виде unsigned (WORD). Отображать параметры следует как float, при этом младший разряд исходного значения
имеет "вес" (где-то 0.01, где-то 0.1).
Корректно ли будеть пользоваться функцией масштабирования для этой задачи, или надо пользоваться макросами?
Предполагаю, что при использовании элемента "Цифровой дисплей", при настройке "Значение - WORD" на вкладке "Регистр Элемента", и на вкладке "Дисплей" "Float" + "Линейное масштабирование" возможно некорректное преобразование типов (т.е непонятно когда и каким способом произойдет преобразование WORD во float).
Если возможно, распишите, как реально будет идти преобразование?
Если
1) Читается WORD;
2) Преобразуется WORD во float преобразованием типа, а не добавлением следующих двух байтов памяти;
3) Выполняется масштабирование
То задача решается самым удобным способом. Так ли это?
Скорей всего речь идет не о Float, т.к. "Параметры из ЧП передаются в виде unsigned (WORD)", а о числах с фиксированной точкой
Ни каких преобразований во Float ненужно.
Читается WORD;
Вложение 31218
Для числа с фиксированной точкой нужны настройки или Dec, если числа имеют знак
Вложение 31216
получим (-)123.45 или 123.45
или Unsigned
Вложение 31217
получим 123.45