Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Обмен битовыми (BOOL) переменными с ПР Slave

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

    По умолчанию Обмен битовыми (BOOL) переменными с ПР Slave

    Попробую систематизировать способы обмена битовыми переменными между Мастером, например HMI, и ПР в режиме слейва.
    Явного задания BOOL сетевых переменных для слейва в ОЛ нет
    Однако ПР поддерживает все функции ModBus для работы с битами - 01, 02, 05, 0F
    Захват-1.png
    При этом адреса бит находятся в той же памяти что и регистры. Т.е. каждому биту от 8192 до 9215 соответствует какой-либо разряд регистра 512...575.

    В качестве мастера в примерах будет выступать панель СП3хх или конфигуратор в режиме онлайн эмуляции, тем боле что в последних версиях ОЛ можно подключать онлайн эмулятор СП300 к ПР через тот же USB кабель, который используем для программирования ПР.

    Варианты обмена.

    1. Мастер пишет и читает биты в ПРку
    Мастер, например, будет читать и писать биты 0х9200, 0х9202, 0х9204, 0х9206. Это биты регистра 575.
    Захват-2.png Захват-3.png

    Здесь, для демонстрации, используются переключатели с подсветкой, т.е. битовая кнопка + лампа в "одном флаконе".
    Нажимая этот элемент производим однократную запись в бит управления, в остальное время имеем непрерывное отображение сотояния этого бита.

    В ПР для перехода к битовым переменным нужно извлечь из регистра, в нашем случае 575, нужные разряды - 0, 2, 4 и 6.
    Извлекаем биты функцией EXTRACT, или для компактности можно применить макрос из этих функций.
    Захват-4.png

    2. Мастер одни биты в регистре пишет и читает (например команды), остальные биты этого регистра- только читает (статус или состояние объектов в ПР)
    Здесь, для демонстрации, используются переключатели с подсветкой, и обычные битовые лампы
    Захват-5.png

    В ПР
    Захват-6.png
    для перехода к битовым переменным нужно извлечь из регистра, в нашем случае 512, нужные разряды - 0, 2, 4 и 6 (в мастере это переключатели с подсветкой).
    Остальные разряды этого регистра можно использовать для сообщения мастеру (на лампы) состояния, например блинков.
    Для этого пакуем соответствующие биты функциями PUTBIT прямо в сетевой регистр, в нашем случае 512

    3. Запись и чтения одних и тех же бит из двух мест.
    Например будем писать/читать в регистре 513 разряды 0, 2, 4 с экрана ПР или с экрана панели.
    Здесь, для демонстрации, используются переключатели с подсветкой,
    Захват-7.png

    В ПР эти же биты будем писать/читать с экрана
    Захват-9.png
    и используем макрос SelChgI
    Захват-8.png

    ЗЫ.
    Внимательно смотрим на свойство - Запись в конце цикла
    Захват-01.png
    Вложения Вложения
    Последний раз редактировалось petera; 23.03.2023 в 11:36.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #2

    По умолчанию

    С битами, кста, наэкспериментировался вчера. Зашил в регистр 524 ПР200 имитацию состояния насосов и клапанов ЦТП и попытался почитать всё это в мнемосхему на эмуляторе, биты начиная с 8384. Всё получилось. А вот про возможность связываться с ПР по USB -- спасибо за подсказку! Только следует помнить, что адрес ПР в этом случае всегда 16, а не то, что мы в Лоджике назадавали.

  3. #3
    Пользователь
    Регистрация
    30.12.2017
    Адрес
    г.Вязьма,смоленская обл.
    Сообщений
    41

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Попробую систематизировать способы обмена битовыми переменными между Мастером, например HMI, и ПР в режиме слейва.
    Явного задания BOOL сетевых переменных для слейва в ОЛ нет
    Однако ПР поддерживает все функции ModBus для работы с битами - 01, 02, 05, 0F
    Захват-1.png
    При этом адреса бит находятся в той же памяти что и регистры. Т.е. каждому биту от 8192 до 9215 соответствует какой-либо разряд регистра 512...575.

    В качестве мастера в примерах будет выступать панель СП3хх или конфигуратор в режиме онлайн эмуляции, тем боле что в последних версиях ОЛ можно подключать онлайн эмулятор СП300 к ПР через тот же USB кабель, который используем для программирования ПР.

    Варианты обмена.

    1. Мастер пишет и читает биты в ПРку
    Мастер, например, будет читать и писать биты 0х9200, 0х9202, 0х9204, 0х9206. Это биты регистра 575.
    Захват-2.png Захват-3.png

    Здесь, для демонстрации, используются переключатели с подсветкой, т.е. битовая кнопка + лампа в "одном флаконе".
    Нажимая этот элемент производим однократную запись в бит управления, в остальное время имеем непрерывное отображение сотояния этого бита.

    В ПР для перехода к битовым переменным нужно извлечь из регистра, в нашем случае 575, нужные разряды - 0, 2, 4 и 6.
    Извлекаем биты функцией EXTRACT, или для компактности можно применить макрос из этих функций.
    Захват-4.png

    2. Мастер одни биты в регистре пишет и читает (например команды), остальные биты этого регистра- только читает (статус или состояние объектов в ПР)
    Здесь, для демонстрации, используются переключатели с подсветкой, и обычные битовые лампы
    Захват-5.png

    В ПР
    Захват-6.png
    для перехода к битовым переменным нужно извлечь из регистра, в нашем случае 512, нужные разряды - 0, 2, 4 и 6 (в мастере это переключатели с подсветкой).
    Остальные разряды этого регистра можно использовать для сообщения мастеру (на лампы) состояния, например блинков.
    Для этого пакуем соответствующие биты функциями PUTBIT прямо в сетевой регистр, в нашем случае 512

    3. Запись и чтения одних и тех же бит из двух мест.
    Например будем писать/читать в регистре 513 разряды 0, 2, 4 с экрана ПР или с экрана панели.
    Здесь, для демонстрации, используются переключатели с подсветкой,
    Захват-7.png

    В ПР эти же биты будем писать/читать с экрана
    Захват-9.png
    и используем макрос SelChgI
    Захват-8.png
    СПАСИБО ОГРОМНОЕ!Вы ,как всегда ,очень помогаете!Распечатал:буду пробовать.

  4. #4

    По умолчанию

    Привет всем! Подскажите, есть ли возможность обращаться к разным битам одного регистра, например 512, из панели оператора? Вот к первому биту я научился обращаться с панели, а как сделать так что бы например при обращении к регистру 512, по биту например 8209 записывалась в переменную 1 или 0. Вообще такое возможно, или из-за того что в ПР200 только целые и вещественные сетевые переменные этого сделать нельзя?

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

    По умолчанию

    Цитата Сообщение от Артем Петров Посмотреть сообщение
    Привет всем! Подскажите, есть ли возможность обращаться к разным битам одного регистра, например 512, из панели оператора? Вот к первому биту я научился обращаться с панели, а как сделать так что бы например при обращении к регистру 512, по биту например 8209 записывалась в переменную 1 или 0. Вообще такое возможно, или из-за того что в ПР200 только целые и вещественные сетевые переменные этого сделать нельзя?
    Смотреть внимательно первый пост - в ПР есть сетевые битовые переменные
    И в тестовом примере показано как читать/ писать отдельные биты одного регистра.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Смотреть внимательно первый пост - в ПР есть сетевые битовые переменные
    И в тестовом примере показано как читать/ писать отдельные биты одного регистра.
    Что я не так делаю?

    Screenshot_1.jpg
    Последний раз редактировалось Артем Петров; 26.03.2021 в 13:14.

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

    По умолчанию

    Цитата Сообщение от Артем Петров Посмотреть сообщение
    Что я не так делаю?

    Screenshot_1.jpg
    Если в эмуляции задаете 3 для TEST и все работает, значит по сети приходит не 3, а другое значение
    Как в панели вы записываете биты в сетевую переменную?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Если в эмуляции задаете 3 для TEST и все работает, значит по сети приходит не 3, а другое значение
    Как в панели вы записываете биты в сетевую переменную?
    Screenshot_2.jpg

    Вот так

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

    По умолчанию

    Цитата Сообщение от Артем Петров Посмотреть сообщение
    Screenshot_2.jpg

    Вот так
    Судя по постам про панель Kinko адреса регистров значит и бит у нее сдвинуты на +1, т.е начинаются не с 0 а с 1
    значит нужно попробовать вместо 8208 использовать 8209 и будет 0 бит 513 регистра
    Я так думаю
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #10

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Судя по постам про панель Kinko адреса регистров значит и бит у нее сдвинуты на +1, т.е начинаются не с 0 а с 1
    значит нужно попробовать вместо 8208 использовать 8209 и будет 0 бит 513 регистра
    Я так думаю
    я пробовал и 8208 и 8209 не сработало а может нельзя так делать как я и 0 и на 1 бит задействовать, или нет разницы?

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Сетевой обмен с ПР 200 по modbus SLAVE настройка
    от Ritwuld в разделе Среда программирования OWEN Logic
    Ответов: 21
    Последнее сообщение: 06.07.2018, 18:23
  2. Работа с переменными Modbus Slave
    от rwg в разделе СПК1хх
    Ответов: 1
    Последнее сообщение: 21.09.2016, 07:45
  3. WORD <-> BOOL
    от ASo в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 08.09.2013, 16:12
  4. Тормозит обмен сетевыми переменными
    от Mangust в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 10.10.2011, 17:06
  5. ПЛК(Slave) < СП270(Master) > ПЛК(Slave). Хождение по экранам при потере связи.
    от masterfloMaster в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 12.04.2011, 18:41

Ваши права

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