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

Тема: Связь ПЛК200 и панели Weintek MODBUS TCP

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

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    переставляются для 32 битных переменных DWORD и Float (два регистра).
    А их считывать функцией читать писать их функциями 4хdouble, 3хdouble. Или теми же 4х, 3х, просто меняя тип данных на float?
    И вопрос для функции 4xbit, вот такой запрос 4хbit1.0 ?

  2. #2

    По умолчанию

    Цитата Сообщение от max-paiine Посмотреть сообщение
    А их считывать функцией читать писать их функциями 4хdouble, 3хdouble. Или теми же 4х, 3х, просто меняя тип данных на float?
    И вопрос для функции 4xbit, вот такой запрос 4хbit1.0 ?
    1) 4хdouble, 3хdouble, (2 регистра) и флоат
    2) 4xbit 1011- читать, писать 11 бит 10 регистра
    Последний раз редактировалось kondor3000; 24.06.2022 в 13:29.

  3. #3

    По умолчанию

    То есть получается, если в 3х или 4х указать тип инт, то он считывает один регистр, а если float, то два регистра насколько я понял. Правильно понял?
    То есть если я хочу обратить через 4хbit, к 100 регистру 1 биту, запрос такой 4xbit10001

  4. #4

    По умолчанию

    Цитата Сообщение от max-paiine Посмотреть сообщение
    То есть получается, если в 3х или 4х указать тип инт, то он считывает один регистр, а если float, то два регистра насколько я понял. Правильно понял?
    То есть если я хочу обратить через 4хbit, к 100 регистру 1 биту, запрос такой 4xbit10001
    1) Нет, INT 4х, 16-bit Signed , а Float 4хdouble, 32-bit Float.
    2) Правильно, кстати для масок бит, надо ставить тип WORD ( предел 0- 65535) 16-bit Unsigned и 5 знаков до запятой, например для проверки срабатывания бит.
    Последний раз редактировалось kondor3000; 24.06.2022 в 13:35.

  5. #5
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    917

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    1) В общем правильно, у меня INT называется 16-bit Signed, а Float называется 32-bit Float, ошибиться невозможно.
    int = word - 1 sign bit, для 16 бит. На знак можно не обращать внимание.
    uint = word.

    ЗЫ. Для масок - не обязательно word. Просто int и uint - зависят от платформы (4, 8, 16, 32 или 64 бит), а word - всегда 16 бит. Но маски int AND/OR int - работают вне зависимости от платформы.
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  6. #6
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    917

    По умолчанию

    Цитата Сообщение от max-paiine Посмотреть сообщение
    То есть получается, если в 3х или 4х указать тип инт, то он считывает один регистр, а если float, то два регистра насколько я понял. Правильно понял?
    То есть если я хочу обратить через 4хbit, к 100 регистру 1 биту, запрос такой 4xbit10001
    1. Не bit (1 bit) а byte (8 bit).
    2. Стандартно Modbus читает word (регистр, 2 byte). Стандартный float занимает 2 word (регистра, 4 byte). Есть float повышенной точности. Применяется достаточно часто, читайте.
    3. 0х4 функция - это input registers. Конечно, можно переопределить, но обычно это упакованное значение группы битовых входных сигналов. Для внутренних переменных - используют 0х3 функцию (holding registers - внутренняя память).
    4. Нумерация осуществляется по битам в битовых функциях, по регистрам в регистровых.
    5. Считать float удобнее функцией 0x10. Она возвращает несколько регистров подряд (столько, сколько запросили). Т.е. можно запросить сразу несколько переменных и получить их быстрее, избежав накладных расходов на заголовки команд
    В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик

  7. #7
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,222

    По умолчанию

    Цитата Сообщение от max-paiine Посмотреть сообщение
    То есть получается, если в 3х или 4х указать тип инт, то он считывает один регистр, а если float, то два регистра насколько я понял. Правильно понял?
    То есть если я хочу обратить через 4хbit, к 100 регистру 1 биту, запрос такой 4xbit10001
    нет, с float надо работать через 3xdouble и 4xdouble

  8. #8

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    нет, с float надо работать через 3xdouble и 4xdouble
    Это точно? Думаю даблы добавили позже, для 64 битных типа LREAL

    ЗЫ Посмотрел старый проект, точно для флоат стоит 4xdouble
    Последний раз редактировалось kondor3000; 24.06.2022 в 13:41.

  9. #9
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,222

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Это точно? Уменя старая версия конфигуратора, там даблов нет и в помине, а флоат передаёт. Думаю даблы добавили позже, для 64 битных типа LREAL
    Да, для 16 бит 3х и 4х, для 32 бит 3х_double и 4х_double, для 64 бит 3х_qword и 4x_qword

Похожие темы

  1. Связь ПЛК200 и ПР103 по Modbus TCP
    от Shera_Best в разделе Подбор Оборудования
    Ответов: 4
    Последнее сообщение: 06.03.2022, 06:10
  2. Ответов: 0
    Последнее сообщение: 04.12.2019, 05:08
  3. Ответов: 2
    Последнее сообщение: 04.06.2019, 16:55
  4. Ответов: 10
    Последнее сообщение: 10.11.2016, 19:35
  5. Связь ПЛК 150 и панели Weintek MT8070iH
    от Magistr05 в разделе Панели оператора (HMI)
    Ответов: 16
    Последнее сообщение: 21.11.2012, 18:45

Ваши права

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