Страница 35 из 320 ПерваяПервая ... 2533343536374585135 ... ПоследняяПоследняя
Показано с 341 по 350 из 3198

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

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

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Можно Reads() и Wtites(), но только кратно 16 шт - 16, 32, 48, и т.д.
    Неужели нет вопросов, как это работает?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #342

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Неужели нет вопросов, как это работает?
    Т.е. вы специально даете ответы, которые не имеют смысла без задавания дополнительных вопросов, и ожидаете знаков внимания? Вот это поворот.

    Я ради интереса попробовал так:

    Код:
    Reads(HMI_LOCAL_MCH, 0, TYPE_PSB, 256, 16, &PSB[356]);
    Предсказуемо не сработало.

    Посмотрел проект по ссылке из #367 - в целом, все ясно, процентов 75 задач по манипуляции с памятью он закрывает, остальное можно самому написать по аналогии.
    SokolovS'у тоже, видимо, этого хватило.

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

    По умолчанию

    На счет Writes() я конечно погорячился, все таки я чайник в Си. Догадки были, что по аналогии с группировкой битов PSB в регистры PSB http://www.owen.ru/forum/showthread....l=1#post113602
    будет возможность группировать биты 0х/1х также в целые регистры
    А вот на счет Reads(), то работает
    Например
    Reads(PLC, 1, MODBUS_RTU_BIT_1X, 16, 2, &PSW[256]);
    биты 1х16..1х47 будут прочитаны в биты регистров PSW256, 257
    1х16-->PSW256.00, 1х47-->PSW257.15

    Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 3, &PSW[256]);
    биты 0х00..0х47 будут прочитаны в биты регистров PSW256, 257, 258
    0х00-->PSW256.00 - 0х15-->PSW256.15
    0х16-->PSW257.00 - 0х17-->PSW257.31
    0х32-->PSW258.00 - 0х47-->PSW258.15
    Причем, опять же по аналогии с группировкой битов PSB
    Reads(PLC, 1, MODBUS_RTU_BIT_0X, {0..15}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 3, &PSW[256])
    Reads(PLC, 1, MODBUS_RTU_BIT_0X, {16..31}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 16, 3, &PSW[256])
    Reads(PLC, 1, MODBUS_RTU_BIT_0X, {32..47}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 32, &PSW[256])
    т.е. адрес бита в команде берется наименьшим, кратным 16
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #344

    По умолчанию

    А снифф обмена делали? Там реально функции 0x01 и 0x02 в запросе? А то кратность 16-ти позволяет предположить, что в данном случае просто запрашиваются регистры (функцией 0x03/0x04). На ПЛК от ОВЕН, где все области памяти наложены друг на друга, такое, конечно, прокатит, но не на контроллерах с отдельной областью под coils.

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

    По умолчанию

    Цитата Сообщение от Rake Runner Посмотреть сообщение
    А снифф обмена делали? Там реально функции 0x01 и 0x02 в запросе? А то кратность 16-ти позволяет предположить, что в данном случае просто запрашиваются регистры (функцией 0x03/0x04). На ПЛК от ОВЕН, где все области памяти наложены друг на друга, такое, конечно, прокатит, но не на контроллерах с отдельной областью под coils.
    Естественно делал.
    Используются именно функции 01 и 02
    ЗЫ.
    Проект
    Захват-1.png Захват-2.png

    Захват-3.png Захват-4.png

    Панель подключена к виртуальному слейву. По коммуникационному монитору видно, что функции именно 01 и 02


    Захват-5.png

    Кроме того в Data мониторе реально меняю биты в областях 0х и 1х и они отображаются на экране панели!
    Вложения Вложения
    Последний раз редактировалось petera; 27.02.2017 в 23:00.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    По поводу группировки отдельных PSB в один регистр
    Вот версия примера для СП300



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

  7. #347

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Можно через свою функцию - посмотрите пример.
    http://www.owen.ru/forum/showthread....l=1#post233959
    Речь идёт о работе по порту PLC/Download и использовании возможности Modbus работать с несколькими дискретными значениями
    Ваш пример не подходит для этого

    Цитата Сообщение от petera Посмотреть сообщение
    Можно Reads() и Wtites(), но только кратно 16 шт - 16, 32, 48, и т.д.
    Ответ и правда малополезный... Будь у меня на руках панель, эти возможности я бы исследовал и самостоятельно.

    Цитата Сообщение от petera Посмотреть сообщение
    На счет Writes() я конечно погорячился, все таки я чайник в Си. Догадки были, что по аналогии с группировкой битов PSB в регистры PSB http://www.owen.ru/forum/showthread....l=1#post113602
    будет возможность группировать биты 0х/1х также в целые регистры
    А вот на счет Reads(), то работает
    Например
    Reads(PLC, 1, MODBUS_RTU_BIT_1X, 16, 2, &PSW[256]);
    биты 1х16..1х47 будут прочитаны в биты регистров PSW256, 257
    1х16-->PSW256.00, 1х47-->PSW257.15

    Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 3, &PSW[256]);
    биты 0х00..0х47 будут прочитаны в биты регистров PSW256, 257, 258
    0х00-->PSW256.00 - 0х15-->PSW256.15
    0х16-->PSW257.00 - 0х17-->PSW257.31
    0х32-->PSW258.00 - 0х47-->PSW258.15
    Причем, опять же по аналогии с группировкой битов PSB
    Reads(PLC, 1, MODBUS_RTU_BIT_0X, {0..15}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 3, &PSW[256])
    Reads(PLC, 1, MODBUS_RTU_BIT_0X, {16..31}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 16, 3, &PSW[256])
    Reads(PLC, 1, MODBUS_RTU_BIT_0X, {32..47}, 3, &PSW[256]) эквивалентно Reads(PLC, 1, MODBUS_RTU_BIT_0X, 0, 32, &PSW[256])
    т.е. адрес бита в команде берется наименьшим, кратным 16
    Если верить википедии, в Modbus нет такого выравнивания. Также если верить ей же, то нет и требования запросить ровно 2 байта, а можно запрашивать любое количество регистров, если надо, слейв добавит байтов в ответе. Так же и запись должна работать.

  8. #348
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,162

    По умолчанию

    Цитата Сообщение от SokolovS Посмотреть сообщение
    Речь идёт о работе по порту PLC/Download и использовании возможности Modbus работать с несколькими дискретными значениями
    В явном виде такая возможность отсутствует. Можно воспользоваться вариантом Petera или использовать Read/Write (там биты поддержаны) через цикл FOR.

  9. #349

    По умолчанию

    Добрый вечер. Помогите разобраться новичку с панелью оператора ОВЕН СП307-Р. Создан проект объемом 9,31 mb. При попытке загрузить проект в панель вылетает сообщение переполнение psw. Уменьшая же проект до объема 8,81 mb проект загружается спокойно. Я так понимаю проблема в слишком большом объеме памяти созданного проекта. Подскажите есть ли возможность загружать более масштабные проекты в панель и как ее реализовать.

  10. #350
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,162

    По умолчанию

    Цитата Сообщение от Алексей КИПОВЕЦ Посмотреть сообщение
    Добрый вечер. Помогите разобраться новичку с панелью оператора ОВЕН СП307-Р. Создан проект объемом 9,31 mb. При попытке загрузить проект в панель вылетает сообщение переполнение psw. Уменьшая же проект до объема 8,81 mb проект загружается спокойно. Я так понимаю проблема в слишком большом объеме памяти созданного проекта. Подскажите есть ли возможность загружать более масштабные проекты в панель и как ее реализовать.
    Для начала можно попробовать п. 1.7 из FAQ:
    http://www.owen.ru/catalog/sensornie...sp3xx/81265010

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

Похожие темы

  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

Ваши права

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