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

Тема: запись значений по маске

  1. #1

    По умолчанию запись значений по маске

    открыл пример 100RL_MU110_8R.pro с диска мх110, дописал одно слово, скомпилировал, получил предупреждение. так и должно быть?
    если нет, то каким образом в дворд записывать биты?
    http://img21.imageshack.us/i/pictu.png/
    Последний раз редактировалось swerder; 18.04.2011 в 17:56.

  2. #2

    По умолчанию

    1. Уберите пожалуйста картинки в файл.
    2. Используйте блок Pack из библиотеки Util.lib

    И к стати - Вы записываете в WORD а не в DWORD

  3. #3

    По умолчанию

    так ведь как в примере сделано, что в конфигурации плк переменная определена как word, так и делал, присвоил только значение одному биту.
    и, кстати, блок pack упаковывает в байт, а вы говорите, что вроде бы надо дворд использовать...

    p.s. и еще - в рэ к му110-вр написано, что биты с 0 по 7 несут значения выходов, а биты с 8 по 15 всегда = 0. за этим равенством 0 нужно особо следить или не обязательно?

    p.p.s. совсем запутали, блоком pack упаковываем в байт, его объявляем как байт в глобальных с адресом регистра в universal modbus device вида
    perem AT %QW10.1.0.0 : BYTE;
    так?
    Последний раз редактировалось swerder; 18.04.2011 в 18:26.

  4. #4

    По умолчанию

    Распутываю.
    У Вас на картинках компилятор не ругается, а предупреждает.
    Все нормально, в конфигурации ПЛК оставляете регистр (с ним все гарантированно работает).
    Далее блок Pack и далее "значение_в_сеть":=byte_to_word("значение_из_pack) ;
    В графическом языке - просто добавьте еще один блок с именем Byte_to_word. На вход подаем выход блока Pack, на выходе - то, что посылаем в сеть.

    0-7 это как раз Ваши 8 выходов. Остальные прибор просто не будет воспринимать. Почему Word - по тому, что у приборов есть браться, 16-ти канальные. Для них, как Вы понимаете воспринимаются все биты с 0-го по 15.

  5. #5

    По умолчанию

    спасибо, превращу байт в ворд

  6. #6

    По умолчанию считывание мв110-8ас "по маске"

    начал вникать в это дело, нашел пример считывания всех регистров с мва8 на основе библиотеки unm...
    Николаев Андрей, подскажите, вы имели ввиду такую реализацию считывания 8ас по маске?
    если да, то как это можно превратить в считывание флоатов и кодов ошибок с модуля 8ас тому, кто ничего не понимает в массивах/указателях?

  7. #7

    По умолчанию

    Здравствуйте. Пример с МВА8 и библиотекой UNM вообще не из данной оперы. Часть разговора на форуме видимо отсутствует. Зачем вам маска для модуля 8АС. Можно делать поканальный опрос.

  8. #8

    По умолчанию

    Александр Приходько, часть разговора находится тут.
    маска необходима, по словам Николаева Андрея, для значительного уменьшения времени опроса модулей, для повышения быстродействия реагирования.
    у меня 3 модуля 8АС, если опрашивать поканально (нужны только ошибки и реал):
    (2шт*8каналов + 5каналов)*2 параметра=42параметра
    42*20мс(время опроса 1 канала)=почти секунда. это очень медленно.

  9. #9

    По умолчанию

    Валенок, а ваш пост кому адресован?

  10. #10

    Exclamation Modbus.lib в помощь

    Цитата Сообщение от swerder Посмотреть сообщение
    Александр Приходько, часть разговора находится тут.
    маска необходима, по словам Николаева Андрея, для значительного уменьшения времени опроса модулей, для повышения быстродействия реагирования.
    у меня 3 модуля 8АС, если опрашивать поканально (нужны только ошибки и реал):
    (2шт*8каналов + 5каналов)*2 параметра=42параметра
    42*20мс(время опроса 1 канала)=почти секунда. это очень медленно.
    Пример с UNM это похоже на то о чем вы говорите. Но в вашем случае все проще намного. Используйте библиотеку SysLibCom + ComService + ModbusLib.

    Первая необходима для работы с портом напрямую, вторая - это библиотека построенная на базе первой, для удобства управления портом.

    С помощью первых двух библиотек вы открываете порт с заданными настройками(скорость, стоп-биты и др...). Третья библиотека - это функции протокола модбас. Вам необходимы функции либо 03, либо 04 для чтения регистров с модулей. В отличии от конфигурации ПЛК вы можете указать номер регистра с которого необходимо начать читать данные и число регистров для чтения. В итоге вы вместо 42 запросов можете реализовать один запрос и один "большой" ответ. Но т.к. вы сокращаете время на всяких таймаутах данная комбинация сработает значительнее быстрей.
    Последний раз редактировалось Александр Приходько; 25.04.2011 в 09:52.

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

Ваши права

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