Стартовая страница › Форумы › Взаимодействие с устройствами › Измерения Pt100
- В этой теме 78 ответов, 4 участника, последнее обновление 4 года, 4 месяца назад сделано
manjey73.
-
АвторЗаписи
-
17.03.2022 в 11:02 #22425
OakimУчастникВозможно проблема в перестановке битов и еще в чем не знаю, для этого и хочу вывести промежуточные данные что бы разобрать что к чему.
Вывод в файл меня тоже вполне устроит. Буду пробовать.
17.03.2022 в 11:10 #22426
manjey73УчастникТак у вас есть лог Коммуникатора, легко же проверить Калькулятором в Винде
Приём (28/28): F2 7B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3F 80 00 00 42 48 4C CE 96 BFТипа берете байты на примере лога, вносите в Калькулятор в HEX и смотрите биты, оно или не оно…
Еще корячиться формулы писать 🙂
Есть еще калькуляторы типа такого Online HEX Calc
-
Ответ изменён 4 года, 4 месяца назад пользователем
manjey73.
17.03.2022 в 15:09 #22430
MikhailМодераторВывести из формул в текстовый файл можно, на форуме где-то был пример. Но совет выше самый правильный для данной ситуации. Ещё полезен парсер https://rapidscada.net/modbus/ModbusParser.aspx
17.03.2022 в 15:25 #22435
a80808УчастникТам увы не ModBus…
18.03.2022 в 08:26 #22463
OakimУчастникЗапрос к Контроллеру
Формат short перестановка бит 10325476 (такая же была в InSAT OPC)
Запрос значений группы элементов "Diskret Inputs" Отправка (8): 01 04 01 00 00 01 30 36 Приём (5/5): 01 04 02 00 00 Приём (2/2): B9 30 OK!Modbus Parser
Part of Data Package Description Value 01 Slave address 0x01 (1) 04 Function code 0x04 (4) - Read Input Registers 02 Byte count 0x02 (2) 00 00 Register value 0x0000 (0) B9 30 CRC 0xB930 (47408)То есть приходит 00 00 два байта равных нулю
но после GetBit(Вх.канал,0-7) я получаю — 10101001
18.03.2022 в 09:19 #22464
manjey73УчастникБиты тут не переставляются, переставляются БАЙТЫ. и если у вас short то переставлять надо только 2 байта. Для short обычно не требуется. но если надо то 10 указать
Это вам не здесь 🙂 в смысле не Insat
18.03.2022 в 09:42 #22466
OakimУчастникПонял попробую
18.03.2022 в 09:53 #22467
manjey73УчастникИнтересно, а что, работает GetBit(Вх.канал, 0-7)
Или вы это для примера, вроде только один номер бита можно получить…
18.03.2022 в 10:04 #22468
OakimУчастникЭто для примера, с номерами бита от 0 до 7.
я тут в другой ветке нашел инструкцию по настройке канала под мой случай
Считывание битовой маски с Овен МВ110А может ли Тип входного Канала влиять на GetBit?
18.03.2022 в 10:41 #22470
manjey73УчастникВ 5-й версии нет, канал всегда double. биты всегда на месте.
Только если нет где-то формулы, которая в ASCII код что-то не перевела.Вы учитывайте, что в Modbus драйвере есть адресация с 0 или с 1 возможно вы просто читаете соседний регистр а не тот, что требуется.
В парсере смотрите физикал/логикал адреса.
18.03.2022 в 12:48 #22472
OakimУчастникАдрес МодБас правильный, тип short тоже, так как если меняю хоть один параметр на что то другое, то сразу получаю ошибку «02 Неправильный адрес данных»
18.03.2022 в 12:50 #22473
OakimУчастникТак что то не то после коммуникатора, а это может быть только формула GetBit
18.03.2022 в 13:03 #22476
manjey73УчастникЕсли прочитать при помощи ModPoll значение вы получаете то же самое?
18.03.2022 в 13:22 #22478
OakimУчастникЕсли через Modbus Pool отправляю строку
01 04 01 00 00 01 30 36
то получаю такой же ответ01 04 02 00 00 B9 3018.03.2022 в 13:37 #22479
manjey73Участник00 00 Register value 0x0000 (0)
И у вас значение регистра по нулям, как вы хотите убедиться в правильности работы GetBit ?
Вы в каком канале GetBit используете?
Если сразу в ТИ то GetBit(Cnl, 1)
если в дорасчетном ДТИ или ДТС то GetBit(Val(10), 1) значение бита 1 канала 10 -
Ответ изменён 4 года, 4 месяца назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.