Показано с 1 по 10 из 12

Тема: 8- битные регистры типа Byte

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Да это я понял. Говорю что сама форма посылки для пользователя условно неизвестна. Этот 0000/FF00 не имеет никакого отношения к 8-битному формату данных на концах. Поэтому и спросил автора : WTF 8-битный формат ? В модбасе нет такого понятия. Есть 1 бит, много бит, регистр и много регистров. Всё. Если он скажет что только 5 и 15-ая, тогда понятно. А если бит за ради бита - то на кой ?
    Ну и причем тут биты в панели если на девайс отправляет плк ? (его слова ж)
    ПЛК , прежде чем отправить что то в девайс, должен получить это из панели.
    Разьясняю - есть девайс, который управляется по Modbus RTU с ПК, есть номера его регистров, в которые записываются команды и данные. Команды передаются битами, данные, естественно, Word и Dword. Все было бы нормально, но команды - не однобитовые, обозначаются номерами, которые в двоичном виде могут занимать несколько бит, и передаются восьмибитовыми регистрами , указано - типа Byte. Получается :
    1. Для каждой команды необходимо использовать один восьмибитовый регистр полностью, а не побитно.
    2. У ПЛК есть восьмибитовые регистры как раз типа Byte, которые обычно используются для передачи переменных типа BOOL в каждом бите, однако здесь нужно делать запись именно в целый 8 битный регистр - данные имеют вид числа от 0 до 100.
    При этом в описании написано, что используются функции 0х03, 0х06 и 0х10.
    Поэтому и возникает вопрос не о битах, много битах, а о регистре из 8 бит и как его считать в памяти панели и ПЛК.
    Видимо, нужно будет просто поэкспериментировать, и если не получиться напрямую , писать макрос.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,649

    По умолчанию

    Цитата Сообщение от Р.Александр Посмотреть сообщение
    ПЛК , прежде чем отправить что то в девайс, должен получить это из панели.
    Разьясняю - есть девайс, который управляется по Modbus RTU с ПК, есть номера его регистров, в которые записываются команды и данные. Команды передаются битами, данные, естественно, Word и Dword. Все было бы нормально, но команды - не однобитовые, обозначаются номерами, которые в двоичном виде могут занимать несколько бит, и передаются восьмибитовыми регистрами , указано - типа Byte. Получается :
    1. Для каждой команды необходимо использовать один восьмибитовый регистр полностью, а не побитно.
    2. У ПЛК есть восьмибитовые регистры как раз типа Byte, которые обычно используются для передачи переменных типа BOOL в каждом бите, однако здесь нужно делать запись именно в целый 8 битный регистр - данные имеют вид числа от 0 до 100.
    При этом в описании написано, что используются функции 0х03, 0х06 и 0х10.
    Поэтому и возникает вопрос не о битах, много битах, а о регистре из 8 бит и как его считать в памяти панели и ПЛК.
    Видимо, нужно будет просто поэкспериментировать, и если не получиться напрямую , писать макрос.
    как то Вы странно понимаете протокол модбас. Регистр это двухбайтовое слово, других типов данных у него быть не может
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 03.08.2021, 22:27
  2. Собрать 5 BYTE в один REAL
    от ZPavel в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 06.01.2018, 19:46
  3. Склейка byte в int с редактированием
    от Атаман в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 09.12.2015, 17:11
  4. регистры
    от кубанец в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 13.05.2010, 14:17
  5. Ответов: 4
    Последнее сообщение: 25.12.2007, 10:56

Ваши права

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