Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 30

Тема: Связь СП270 и ПЛК100

  1. #21

    По умолчанию

    Панель в слэйве, на ней есть несколько полей цифрового ввода, данные в которых нужны в сохраненном виде. Оттуда эти данные в программе загружаются для дальней шей обработки по нажатию кнопки. Когда регистр PSW все проходит нормально, но при вкл/выкл панели данные теряются, а когда регистр PFW данные не теряются, но из регистра я их вытащить не могу

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

    По умолчанию

    Цитата Сообщение от Vladimir_tat Посмотреть сообщение
    Панель в слэйве, на ней есть несколько полей цифрового ввода, данные в которых нужны в сохраненном виде. Оттуда эти данные в программе загружаются для дальней шей обработки по нажатию кнопки. Когда регистр PSW все проходит нормально, но при вкл/выкл панели данные теряются, а когда регистр PFW данные не теряются, но из регистра я их вытащить не могу
    Если коротко, то нужно для одной пары регистров PFWxxx=>PSWxxx
    добавить связку из двух элементов из расширенного режима READ и WRITE
    Идея такая то, что нужно вводить и должно храниться без питания сразу вводим например в PFW300, элемент REAR сам без всяких функций читает содержимое PFW300 и передает его элементу WRITE в качестве входного параметра. WRITE сам запишет например в регистр PSW256. PSW256 должен читать ПЛК (когда захочет или по команде от кнопки).
    Если экранов больше одного, и ввод значений происходит не на стартовом экране, то связку (READ => WRITE) сделать глобальным элементом. В противном случае при включении питания операция PFWxxx=>PSWxxx не будет выполнена пока не будет переход на этот экран.
    Попробую сделать пример с картинками и выложить в теме СП270 Tips & Tricks. Маленькие хитрости. http://www.owen.ru/forum/showthread.php?t=14132
    ЗЫ. Уже сделал http://www.owen.ru/forum/showpost.ph...4&postcount=35
    Последний раз редактировалось petera; 21.01.2013 в 19:53.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #23
    Пользователь
    Регистрация
    05.11.2011
    Адрес
    Томск
    Сообщений
    192

    По умолчанию

    Как вариант, написать скриптик в три строчки, вызывать его функциональной областью, которую можно сделать глобальной.
    Код:
    WORD wValue; // вспомогательная переменная
    READ(HMI_LOCAL_MCH, 0, TYPE_PFW, 256, 1, &wValue); // откуда читать. PFW256
    WRITE(HMI_LOCAL_MCH, 0, TYPE_PSW, 256, 1, wValue); // куда записывать PSW256
    Если нужно добавить регистры переноса, скриптик корректировать. Переменную можно использовать только одну.

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

    По умолчанию

    Цитата Сообщение от Amko Посмотреть сообщение
    Как вариант, написать скриптик в три строчки, вызывать его функциональной областью, которую можно сделать глобальной.
    Код:
    WORD wValue; // вспомогательная переменная
    READ(HMI_LOCAL_MCH, 0, TYPE_PFW, 256, 1, &wValue); // откуда читать. PFW256
    WRITE(HMI_LOCAL_MCH, 0, TYPE_PSW, 256, 1, wValue); // куда записывать PSW256
    Если нужно добавить регистры переноса, скриптик корректировать. Переменную можно использовать только одну.
    Переменную одну нельзя использовать.
    Vladimir_tat, посмотрите мое решение в картинках здесь http://www.owen.ru/forum/showpost.ph...4&postcount=35
    Шесть простых действий, четыре из которых выполняются мышкой.

    ЗЫ. Ошибся в подсчетах. Следует читать Семь простых действий, пять из которых выполняются мышкой.
    Последний раз редактировалось petera; 21.01.2013 в 19:36.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #25
    Пользователь
    Регистрация
    05.11.2011
    Адрес
    Томск
    Сообщений
    192

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Переменную одну нельзя использовать.
    Ну как.
    К примеру, нужно добавить еще 1 регистр для копирования.
    Просто к данному коду добавляем еще 2 строчки.
    Код:
    WORD wValue; // вспомогательная переменная
    READ(HMI_LOCAL_MCH, 0, TYPE_PFW, 256, 1, &wValue); // откуда читать. PFW256
    WRITE(HMI_LOCAL_MCH, 0, TYPE_PSW, 256, 1, wValue); // куда записывать PSW256
    READ(HMI_LOCAL_MCH, 0, TYPE_PFW, 257, 1, &wValue); // откуда читать. PFW257
    WRITE(HMI_LOCAL_MCH, 0, TYPE_PSW, 257, 1, wValue); // куда записывать PSW257
    Итого: одна переменная.
    Почему вы считаете, что так не получится?
    Мое решение быстро масштабируемое, из одного места. При добавлении еще одного регистра нужно провести:
    1. Выделить 2 строчки кода.
    2. CTRL + C.
    3. CTRL + V.
    4. Исправить адрес регистра.
    5. F7
    Итого 5 действий, если уж начинать мериться простотой

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

    По умолчанию

    Цитата Сообщение от Amko Посмотреть сообщение
    Ну как.
    К примеру, нужно добавить еще 1 регистр для копирования.
    Просто к данному коду добавляем еще 2 строчки.
    Код:
    WORD wValue; // вспомогательная переменная
    READ(HMI_LOCAL_MCH, 0, TYPE_PFW, 256, 1, &wValue); // откуда читать. PFW256
    WRITE(HMI_LOCAL_MCH, 0, TYPE_PSW, 256, 1, wValue); // куда записывать PSW256
    READ(HMI_LOCAL_MCH, 0, TYPE_PFW, 257, 1, &wValue); // откуда читать. PFW257
    WRITE(HMI_LOCAL_MCH, 0, TYPE_PSW, 257, 1, wValue); // куда записывать PSW257
    Итого: одна переменная.
    Почему вы считаете, что так не получится?
    Мое решение быстро масштабируемое, из одного места. При добавлении еще одного регистра нужно провести:
    1. Выделить 2 строчки кода.
    2. CTRL + C.
    3. CTRL + V.
    4. Исправить адрес регистра.
    5. F7
    Итого 5 действий, если уж начинать мериться простотой
    На счет одной временной переменной, ИЗВИНИТЕ, я не прав . Что-то немного затупил.
    А на счет остального не согласен.
    Я у себя считал элементарные действия и они выполняются в основном мышкой!. А у Вас, если их учитывать? Давайте посмотрим



    А еще сколько нужно и саму функцию создать в дереве проекта -не один щелчок мышки. И символов еще сколько нужно вводить (комментарии можно не вводить)
    Код:
    WORD wValue;
    READ(HMI_LOCAL_MCH, 0, TYPE_PFW, 256, 1, &wValue); 
    WRITE(HMI_LOCAL_MCH, 0, TYPE_PSW, 256, 1, wValue);
    И еще F7 для компиляции нужно нажимать.
    И кто быстрее сделает? Я или Вы?
    А самое главное зачем?
    Эти функции и так доступны в ф. области.


    Так ЗАЧЕМ еще и код на Си???
    И самое интересное. Без загрузки в панель работу вашей функции не проверить и не отладить.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #27
    Пользователь
    Регистрация
    05.11.2011
    Адрес
    Томск
    Сообщений
    192

    По умолчанию

    То, что код не проверить - косяк, согласен. Не удобно.
    То, что код на Си повторяет действие кнопок на поле, согласен.
    Я не оспариваю Ваше решение, оно доступней.

    С другой стороны, можно поспорить, что быстрее, мышкой тыкать, или строчки исправлять, тут вопрос скорости набора и умения пользоваться ПК

    Ну, и лично мне удобно, когда все неявные действия с регистрами (копирование туда-сюда, фильтрация, ограничения) - в одном месте, на одном поле, и перед глазами. Я не тыкаю мышкой потом, не ищу, в каком же окне какой WRITE меняет мои поля.
    Повторюсь, дело вкуса)

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

    По умолчанию

    Цитата Сообщение от Amko Посмотреть сообщение
    То, что код не проверить - косяк, согласен. Не удобно.
    То, что код на Си повторяет действие кнопок на поле, согласен.
    Я не оспариваю Ваше решение, оно доступней.

    С другой стороны, можно поспорить, что быстрее, мышкой тыкать, или строчки исправлять, тут вопрос скорости набора и умения пользоваться ПК

    Ну, и лично мне удобно, когда все неявные действия с регистрами (копирование туда-сюда, фильтрация, ограничения) - в одном месте, на одном поле, и перед глазами. Я не тыкаю мышкой потом, не ищу, в каком же окне какой WRITE меняет мои поля.
    Повторюсь, дело вкуса)
    К одной цели можно идти разными путями.
    Я же не сказал, что у Вас работать не будет.
    ЗЫ. Здесь даже не в Си дело, а в том что эти функции в ф. области уже и так есть.
    И потом все равно придется мышкой тыкать по неявным ф. областям и искать в которой из них нужная функция на Си. Они тоже имен не имеют.
    Последний раз редактировалось petera; 21.01.2013 в 21:42.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #29

    По умолчанию

    Большое спасибо!
    В итоге запилили функциональную область с функцией передачи данных из PFW регистров в PSW, вроде работает.

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

    Lightbulb "А знаете ли вы..."?

    Ответ из серии "А знаете ли вы..."
    Если в Вашем проекте нужно копировать блок(массив последовательно идущих регистров) из области PFW в блок(массив последовательно идущих регистров) в области PSW, то это можно сделать всего одной связкой (READ => WRITE). Не важно 2 регистра, или 10, или 100. Нужен всего ОДИН макрос из ДВУХ элементов!
    Эта связка (READ => WRITE) полностью эквивалентна варианту с выбором функции "Копировать блок данных" в ф. области, показанной здесь. При условии выполнения "Непрерывно"

    Только без лишних элементов расширенного режима, которые находятся внутри стандартного элемента "Функциональная область".
    Нужно будет выложить на всеобщее обозрение препарированный элемент "Функциональная область". И будет видно сколько там остается лишнего, не используемого кода, если нужно выполнить элементарные действия.
    Даже если Вы используете ф. область для вызова скрипта на Си. На экране (внутри самого элемента "Функциональная область") остается масса элементов, которые по сути не используются, а память панели(экрана) съедают.
    Последний раз редактировалось petera; 25.01.2013 в 09:05.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. Связь СП270 с Pixel2511
    от aswserg в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 26.12.2012, 09:58
  2. связь ПЛК100 и СП270
    от mapav в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 18.06.2012, 14:19
  3. связь си8 и сп270
    от кубанец в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 22.12.2009, 14:57
  4. связь сп270 и Plc100
    от ava.ricious в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 04.12.2009, 10:28

Ваши права

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