Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 21

Тема: Время обновления графиков СП270

  1. #11

    По умолчанию

    Petera, снова на поклон

    Задача. Цифровой ввод, есть возможность проверки вводимых значений. Задается только в процессе разработки проекта, в ходе выполнения программы на живой панели документированной возможности их изменений нет. А хотелось бы.

    Понятно, что минимальное значение хранится в регистрах PSW120...127, а максимальное PSW112...119.

    Естественно, если просто записать число в psw112/120 ничего работать не будет.

    Запись через элемент WRITE записывает корректно во все восемь регистров в кодах символа в ASCII. Но как объединить WRITE с элементов ввод в панели не могу дойти своим умом.

    Но почему та же запись с теми же настройками через символьный ввод (nregister, 8 регистров) не проходит и число записывается только в первый регистр PSW112/PSW120.

    Пробовал подменять в цифровом вводе, через усовершенствование, write на read, а записывать в нужную область через цифровой ввод. Но идея так же не прошла.

    Сейчас ещё возникла мысль, вот допустим создам я три цифровых ввода, каждый со своими параметрами (ограничивающими). И сможем корректно записывать в регистры PSW112...PSW127. Но как дать понять панели, что при клике на конкретный элемент подставлялись именно нужные значения?
    Отсюда вытекает вопрос, в каких регистрах панель хранит заранее прописанные значения max и min, если элементов больше одного? Ведь при вызове нужного элемента ввода она просто подставляет заранее заданные значения в PSW112...PSW127. Очень хочется разобраться.

    Или проще идти через блок lin_TRAFO и подставлять туда 400... 20000?

  2. #12
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от IIeroniux Посмотреть сообщение
    Petera, снова на поклон

    Задача. Цифровой ввод, есть возможность проверки вводимых значений. Задается только в процессе разработки проекта, в ходе выполнения программы на живой панели документированной возможности их изменений нет. А хотелось бы.

    Понятно, что минимальное значение хранится в регистрах PSW120...127, а максимальное PSW112...119.

    Естественно, если просто записать число в psw112/120 ничего работать не будет.

    Запись через элемент WRITE записывает корректно во все восемь регистров в кодах символа в ASCII. Но как объединить WRITE с элементов ввод в панели не могу дойти своим умом.

    Но почему та же запись с теми же настройками через символьный ввод (nregister, 8 регистров) не проходит и число записывается только в первый регистр PSW112/PSW120.

    Пробовал подменять в цифровом вводе, через усовершенствование, write на read, а записывать в нужную область через цифровой ввод. Но идея так же не прошла.

    Сейчас ещё возникла мысль, вот допустим создам я три цифровых ввода, каждый со своими параметрами (ограничивающими). И сможем корректно записывать в регистры PSW112...PSW127. Но как дать понять панели, что при клике на конкретный элемент подставлялись именно нужные значения?
    Отсюда вытекает вопрос, в каких регистрах панель хранит заранее прописанные значения max и min, если элементов больше одного? Ведь при вызове нужного элемента ввода она просто подставляет заранее заданные значения в PSW112...PSW127. Очень хочется разобраться.

    Или проще идти через блок lin_TRAFO и подставлять туда 400... 20000?
    Максимальное и минимальное значение для ввода не хранится в регистрах PSW112...119 и PSW120...127, а хранится в самом цифровом вводе.
    Регистры PSW112...119 и PSW120...127 служат для передачи заданных пределов в текстовые строки Max и Min клавиатуры_1 (KeyBoard_II).
    Захват-1.png

    Это только индикация заданных пределов. Информация в этих регистрах ни как не влияет на ограничения вводимых значений. Новые значения (для каждого цифрового ввода) записываются туда при клике на каком-либо цифровом вводе, информация всякий раз будет новая, прописанная в настройках Проверка максимум и Проверка минимум конкретного цифрового ввода.
    вопрос, в каких регистрах панель хранит заранее прописанные значения max и min, если элементов больше одного? Ведь при вызове нужного элемента ввода она просто подставляет заранее заданные значения в PSW112...PSW127. Очень хочется разобраться
    Проверка введенного числа производится непосредственно в элементом Input Value с помощью Range Check
    Захват-2.png
    Вот именно в Range Check каждого цифрового ввода и хранятся заданные мин и макс значения.
    А что бы хранить эти значения в регистрах панели для для последующего изменения нужно с помощью действия Property Contain задать нужные регистры для свойств элемента Range Check "максимальное значение" и "минимальное значение", например PFW256 и PFW257
    Пределы для ввода можно будет менять, только строки Max и Min на клавиатуре будут оставаться всегда старыми.
    Захват-3.png----->Захват-4.png

    Или проще идти через блок lin_TRAFO и подставлять туда 400... 20000?
    А это Вы о чем?
    Вложения Вложения
    Последний раз редактировалось petera; 17.09.2014 в 09:16.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #13

    По умолчанию

    Petera, сегодня удалось позаниматься на объекте. Все получилось так, как и задумывалось. Время сохранения данных в панели на самом деле около 40 - 60 секунд. Если отключаешь сразу, то могут не сохранится.
    Выяснил одну не очевидную для меня вещь.

    Мы имеем два исторических данных, один из них считаем реальным (он пишет в PSW), а второй историческим (в него копируются по событию данные из области PSW первого графика в область PFW второго графика).
    Так вот, сколько мы имеем выборок (т.е. кривых) на графике реального времени, столько же должно быть 'обманок' в графике-получателе, т.е. историческом графике. На этом я застопорился, ибо на графике реального времени я меня было две выборки, а на графике историческом изначально я поставил одну. И ничего не копировалось. После добавления второй обманной выборки на второй графике все заработало так, как и должно было быть!

    Ещё раз спасибо!

    p.s.
    Цитата Сообщение от petera Посмотреть сообщение
    Пределы для ввода можно будет менять, только строки Max и Min на клавиатуре будут оставаться всегда старыми.
    У меня получалось менять строки Min и Max. В ближайшее время займусь этим и выложу результат, если будет конечно же

  4. #14
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от IIeroniux Посмотреть сообщение
    У меня получалось менять строки Min и Max. В ближайшее время займусь этим и выложу результат, если будет конечно же
    У меня тоже есть решение, сейчас делаю описание.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #15
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию Мастер класс. Часть 1

    И так в предыдущем посте я показал самое простое решение динамического изменения пределов для цифрового ввода.
    Недостаток этого решения в том, что значения Макс и Мин на клавиатуре будут "левые". Можно ли это исправить?
    Сами значения Мин и Макс у нас теперь хранятся в двух выделенных регистрах, но они в цифровом виде, а для клавиатуры нужны строки.
    Т.е. придется перевести цифровые значения в коды ASCII. Возможно ли это сделать средствами панели? Да и очень просто, причем без всякой математики.
    Сделаем ГМ с таким хитрым цифровым вводом. Зададим некоторые исходные данные для него.
    Пусть требуется цифровой ввод в регистр PSW256.
    -формат -десятичный;
    -длина всего 5 знаков, 2 из них после запятой;
    -верхний предел будет храниться в энергонезависимом регистре PFW256;
    -нижний предел будет храниться в энергонезависимом регистре PFW257;
    В дальнейшем заданные параметры можно будет менять уже в готовом ГМ.
    Нам потребуются
    Захват-1.png
    -три стандартных цифровых ввода в регистр PSW256 для ввода в заданный регистр, PFW256 для ввода Макс предела, PFW257 для ввода Мин предела. У всех одинаковый формат, десятичное число, всего 5 знаков, 2 знака после запятой. Для перврого цифрового ввода в настройках разрешена проверка Макс и Мин значений;
    -два элемента READ для чтения регистров PWF256(макс) и PFW257(мин);
    -два элемента "Базовый текст". Для текста настройки совпадают с настройками дисплеев -десятичное число, всего 5 знаков, 2 знака после запятой. Размер шрифта как можно меньший.
    Захват-2.png

    Создание ГМ начнем с того, что сделаем у цифрового ввода внешними(Property Float) свойства:
    -Input Value элементов WRITE(PSW112) и WRITE(PSW120).
    -Максимальное значение и Минимальное значение элемента Range Check.
    Захват-3.png
    Анимация:

    Для удобства последующего редактирования часть получившихся Float Property я переименовал.
    Назовем данный этап Шаг 1.
    Вложения Вложения
    Последний раз редактировалось petera; 17.09.2014 в 21:16.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #16

    По умолчанию

    Может быть лучше выложить в маленькие хитрости?

  7. #17
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от IIeroniux Посмотреть сообщение
    Может быть лучше выложить в маленькие хитрости?
    Поздно
    Уже часть выложил тут, но позже ссылку на создание этого ГМ дам в теме "Как делать графические макросы" http://www.owen.ru/forum/showthread.php?t=14406
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #18
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию Мастер класс. Часть 2

    Теперь выровняем по вертикали и по горизонтали два элемента текст и цифровой дисплей, затем сгруппируем их.
    Анимация:

    Теперь у получившейся группы
    -сделаем внешним свойство "Дисплей содержимого" (Нужно было бы перевести его как Контент дисплея" для обоих элементов Text.
    -для удобства последующего редактирования я переименуем получившиеся Float Property в Макс и Мин.
    -свяжем с помощью действия Property Float новое свойство Float Property "Range Check0_(16)ofМаксимальное значение" цифрового дисплея со свойством Макс, а новое свойство Float Property "Range Check0_(16)ofМинимальное значение" цифрового дисплея со свойством Мин.
    Анимация:

    Этими действиями мы добавили к группе новые входы Макс и Мин, причем поданная на вход Макс информация будет попадать и в первый Текст и в Максимальное значение Range Check. Аналогично поданная на вход Мин информация будет попадать и во второй Текст и в Минимальное значение Range Check.
    Теперь зададим источники информации для входов Макс и Мин. Этими источниками будут оставшиеся элементы READ
    Анимация:

    Здесь для связи входов Макс и Мин использовалось действие Property Contain.
    Назовем это состояние Шаг 2.
    Остался последний шаг.
    Вложения Вложения
    Последний раз редактировалось petera; 19.09.2014 в 10:51.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #19
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию Мастер класс. Чась 3

    Теперь осталось показать обещанное преобразование цифровых значений в коды ASCII. Это в данном примере, как ни странно, самое простое.
    Не зря же я использовал элементы "Базовый текст". Хотя благодаря переводу трудно догадаться.
    Захват-1.png

    И так свойство Текста "Дисплей содержимого" нужно читать как "Контент дисплея" сюда, например с помощью READ подается цифровое значение, а вот свойство "Характеристики экрана" совсем ни какие не характеристики, а "Display Character", т. е "Отображаемые символы".
    Теперь понятно от куда я возьму значения верхнего и нижнего предела в символьном представлении (коды ASCII). Просто цифровое значение нужно пропустить через элемент "Базовый текст" на выходе получится строка символов. И все ни какой математики не потребуется.
    В нашем случае нужно для Float Property цифрового ввода "Строка Макс" и "Строка Мин" подать значения "Характеристики экрана" соответствующих элементов Текст.
    Для этого все эти свойства делаем внешними свойствами (Float Property) главной группы, а затем действием Property Link приравниваем "Строка Макс" и "Строка Мин" свойствам "Характеристики экрана" соответствующих элементов Текст.
    Анимация:


    Назовем это состояние Шаг 3. Хотя это уже полноценный макрос, но можно немного облагородить его содержимое.
    Вложения Вложения
    Последний раз редактировалось petera; 19.09.2014 в 10:52.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #20

    По умолчанию

    А на картинке тоже артефакт? В реальной панели его не будет?
    1.jpg

    P.s. Petera, не могу найти на форуме упоминание о том, как сделать выпадающий список выбора значений. Делать его с помощью скрытия элементов (через if и усовершенствование) кажется мне громоздким, а так было какое-то изящное решение. Не могли бы дать ссылку, если помните сами?
    Последний раз редактировалось IIeroniux; 21.09.2014 в 13:53.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. СП270 и время
    от Malyshevsergey в разделе Панели оператора (HMI)
    Ответов: 5
    Последнее сообщение: 09.09.2013, 16:46
  2. MasterScada 3.5 SP1 - обновления
    от evg3798 в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 17.06.2013, 09:37
  3. СП270. Время.
    от yanwchar в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 17.05.2012, 16:36
  4. установить время на плк через сп270
    от vlkv в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 27.04.2011, 13:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •