Страница 295 из 320 ПерваяПервая ... 195245285293294295296297305 ... ПоследняяПоследняя
Показано с 2,941 по 2,950 из 3198

Тема: Панели оператора СП3xx. Вопросы и ответы

  1. #2941

    По умолчанию

    Цитата Сообщение от BlR Посмотреть сообщение
    Приветствую Уважаемые.

    Вопрос следующего характера - как я правильно понимаю - некого готового таймера или подобной функции в панели нет?
    Смысл в следующем - требуется изменять некую уставку для вторичников с неким интервалом по графику. Поскольку ничего не нашел - пока мысль - функциональная кнопка, которая запускает макрос. При запуске макрос скидывает в некую переменную регистр PSW38 - время от включения панели (ну или его преобразование в минуты) а дальше по банальному if.. else if в от разницы PSW38 и сохраненной переменной присваиваем значение уставки.
    Или есть более изящное решение?
    В панели есть импульсы 100ms, 300ms, 500 ms (системные регистры), секундные (сколько надо секунд) и минутные доступны в ФО (функц. области), можно отсчитать любое время,
    а так же 4 страницы назад выложен таймер отсчёта времени без макросов, с подробным описанием ещё на страницу
    https://owen.ru/forum/showthread.php...&page=291#2910
    Последний раз редактировалось kondor3000; 25.09.2023 в 19:39.

  2. #2942

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Покажите какие элементы, с их адресами в устройствах, хотя бы 2-3 окна.
    Запаковал в зип пример. На основном экране крутится функциональная область, которая считывает регистры с ПЛК и пишет их во внутреннюю память панели (потому что регистры ПЛК области 3х, не могут быть разбиты на на биты в панеле для вывода статусов устройства). При нажатии кнопки во всплывающем окне устройстве, пишем значение бита в регистре и записываем этот внутренний регистр в регистр ПЛК. Всё просто. Немного не понятен синтаксис как это реализовать. Как работать с указателями в этой панельке я не нашёл, вообще по макросам мало инфы.
    Вложения Вложения
    • Тип файла: zip macros.zip (881.1 Кб, Просмотров: 22)

  3. #2943

    По умолчанию

    Цитата Сообщение от Johnystu Посмотреть сообщение
    Запаковал в зип пример. На основном экране крутится функциональная область, которая считывает регистры с ПЛК и пишет их во внутреннюю память панели (потому что регистры ПЛК области 3х, не могут быть разбиты на на биты в панеле для вывода статусов устройства). При нажатии кнопки во всплывающем окне устройстве, пишем значение бита в регистре и записываем этот внутренний регистр в регистр ПЛК. Всё просто. Немного не понятен синтаксис как это реализовать. Как работать с указателями в этой панельке я не нашёл, вообще по макросам мало инфы.
    А почему обязательно 3х, 4х использовать нельзя?

  4. #2944

    По умолчанию

    Да, так уж вышло. 3х читаем статусы, а команды управления пишем в 4х.

  5. #2945

    По умолчанию

    Цитата Сообщение от Johnystu Посмотреть сообщение
    Да, так уж вышло. 3х читаем статусы, а команды управления пишем в 4х.
    У Овена, в ПЛК1хх эти области наложены друг на друга, можно и читать и писать 4х. Какой ПЛК вы используете?
    Последний раз редактировалось kondor3000; 25.09.2023 в 22:07.

  6. #2946

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    У Овена, в ПЛК1хх эти области наложены друг на друга, можно и читать и писать 4х. Какой ПЛК вы используете?
    ПЛК210. Да какая разница куда писать и читать, вопрос не в этом, а как сделать одно окно управления для всех однотипных устройств =)

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

    По умолчанию

    Цитата Сообщение от Johnystu Посмотреть сообщение
    Запаковал в зип пример. На основном экране крутится функциональная область, которая считывает регистры с ПЛК и пишет их во внутреннюю память панели (потому что регистры ПЛК области 3х, не могут быть разбиты на на биты в панеле для вывода статусов устройства). При нажатии кнопки во всплывающем окне устройстве, пишем значение бита в регистре и записываем этот внутренний регистр в регистр ПЛК. Всё просто. Немного не понятен синтаксис как это реализовать. Как работать с указателями в этой панельке я не нашёл, вообще по макросам мало инфы.
    Динамическая адресация
    Захват-01.png
    В ф.кнопке пишешь в индексный регистр номер устройства (0, 1, 2 ..), а затем вызов окна.
    На окне используешь в кнопках динамическую адресацию.
    Последний раз редактировалось petera; 25.09.2023 в 23:41.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #2948

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Динамическая адресация
    Захват-01.png
    В ф.кнопке пишешь в индексный регистр номер устройства (0, 1, 2 ..), а затем вызов окна.
    На окне используешь в кнопках динамическую адресацию.
    Уже сделал по своему
    Добавил два макроса один на запись регистра ПЛК, второй на чтение регистра ПЛК. перед вызовом всплывающего окна присваиваю временному регистру PSW[500] значение адреса ПЛК. далее во всплывающем окне в функциональной области каждую сек. читаю через макрос значение регистра плк (PSW[500]) и пишу значение во временный регистр PSW[600] и дальше все биты этого регистра разбиваю как мне надо:
    WORD Value=0;
    Read(NET_0, 1, MODBUS_TCP_REG_3X, PSW[500], 0, TYPE_WORD, &Value);
    PSW[600]=Value;

    а пишу значение в ПЛК по кнопке через макрос записи:
    Write(NET_0, 1, MODBUS_TCP_REG_4X, PSW[500], 0, TYPE_WORD, PSW[501]);

    В PSW[500] адрес регистра ПЛК. в 501 зачение. Всё оказалось просто.

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

    По умолчанию

    Цитата Сообщение от Johnystu Посмотреть сообщение
    Уже сделал по своему
    Добавил два макроса один на запись регистра ПЛК, второй на чтение регистра ПЛК. перед вызовом всплывающего окна присваиваю временному регистру PSW[500] значение адреса ПЛК. далее во всплывающем окне в функциональной области каждую сек. читаю через макрос значение регистра плк (PSW[500]) и пишу значение во временный регистр PSW[600] и дальше все биты этого регистра разбиваю как мне надо:
    WORD Value=0;
    Read(NET_0, 1, MODBUS_TCP_REG_3X, PSW[500], 0, TYPE_WORD, &Value);
    PSW[600]=Value;

    а пишу значение в ПЛК по кнопке через макрос записи:
    Write(NET_0, 1, MODBUS_TCP_REG_4X, PSW[500], 0, TYPE_WORD, PSW[501]);

    В PSW[500] адрес регистра ПЛК. в 501 зачение. Всё оказалось просто.
    Теперь хоть прояснилось, почему сразу не пишем биты в регистры ПЛК типа 4х739.15. Здесь TCP, а пример то выложили с использованием RS
    Ну и ладно, докажу, что с использованием динамической адресации еще проще будет.

    Но для начала нужно выбросить лишние телодвижения в существующих кнопках управления
    Лишний промежуточный регистр PW1xxx и лишние операции с битами
    Захват-01.png
    это справедливо для всех кнопок
    например
    Захват-03.png

    Если запись отдельных бит в регистре ПЛК, типа 4x739.15, не поддерживается, то можно ведь просто числа записывать в регистр
    Вот так
    Захват-02.png Захват-04.png Захват-05.png
    739.15 == 32768
    739.3 == 8
    739.2 == 4
    739.1 == 2
    739.0 == 1


    А теперь добавим динамическую адресацию, например индекс будет в PSW40,
    Захват-06.png

    а коэффициент(множитель) будет равен 1
    Захват-07.png

    И так для всех кнопок, в регистр управления добавляем динамическую адресацию через регистр PSW40

    Аналогично нужно добавить динамическую адресацию и для индикаторов
    Захват-09.png

    Теперь достаточно в ф.кнопках на экране, перед вызовом Окна #1, добавить запись в PSW40 индекса от 0 до N (номер устройства)
    Захват-08.png

    Все окна кроме 1 можно удалить
    И ни каких макросов не нужно...
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #2950

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    В панели есть импульсы 100ms, 300ms, 500 ms (системные регистры), секундные (сколько надо секунд) и минутные доступны в ФО (функц. области), можно отсчитать любое время,
    а так же 4 страницы назад выложен таймер отсчёта времени без макросов, с подробным описанием ещё на страницу
    https://owen.ru/forum/showthread.php...&page=291#2910
    Благодарствую - попробую разобраться.
    На данный момент пока пошел "дубовым путём"- через условия - надо прогнать оборудование на пробном пуске.
    Но столкнулся со странной штукой - регистр PSW[38] достигает 65535 и обнуляется. То сть логично - если это младшее слово. Но есть еще и старшее - почему оно не подтягивается?

    Конструктив примерно такой
    T_Start = MAKEDWORD(PSW[38],PSW[39]); // стартуем, записываем время старта
    T_tek = MAKEDWORD(PSW[38],PSW[39]); // берем текущее время
    PSW[308] = Ustavka; // пишем текущую уставку в регистр
    switch ((T_tek - T_Start) / 600)) // получаем разницу в минутах от начала старта
    дальше несколько case - по каждой разнице своя уставка присваивается в переменную Ustavka. Когда PSW[38] становится 0 - подставляется первая уставка. Не могу понять что не так.

Страница 295 из 320 ПерваяПервая ... 195245285293294295296297305 ... ПоследняяПоследняя

Похожие темы

  1. Экспорт CSV в панели СП3xx и порядок квитирования событий
    от theoretician в разделе Панели оператора (HMI)
    Ответов: 30
    Последнее сообщение: 24.08.2021, 16:17
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. Сенсорные панели оператора ОВЕН СП3ХХ
    от Боднар Олег Миколайович в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 17.12.2015, 09:09
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1хх
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

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