Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › Опрос Moxa 1242
- В этой теме 48 ответов, 3 участника, последнее обновление 1 год, 6 месяцев назад сделано Mikhail.
-
АвторСообщения
-
18.10.2022 в 11:45 #25511fergus2022Участник
В ответ вставляю Receive (7/7): 64 4F 00 00 00 07 01 (без Receive (7/7):) или Receive (6/6): 04 04 00 00 40 A0, ставлю галку на «Response» и получаю ошибки вместо парсинга. Должно приходить число 5.
Пробовал отдельно входной канал с сигналом 21 (для AI-00) создавать, добавлять в интерфейс в таблицу, всё равно 0 в таблице постоянно.- Этот ответ был изменен 1 год, 6 месяцев назад от fergus2022.
18.10.2022 в 11:47 #25513fergus2022УчастникПробовал без группы чисто один тег AI-00 опрашивать с сигналом 25, так же создавал для него новый входной канал и добавлял в интерфейс в таблицу — всё равно 0.
18.10.2022 в 11:54 #25514manjey73Участник61 64 Transaction identifier 0x6164 (24932)
00 00 Protocol identifier 0 = MODBUS protocol
00 07 Length 0x0007 (7)
01 Unit identifier 0x01 (1)
04 Function code 0x04 (4) — Read Input Registers
04 Byte count 0x04 (4)
00 00 40 A0 Register value 0x0000 (0), 0x40A0 (16544)Почему у вас Инпут регистр отвкечает двумя регистрами ?
Хотя вы и запрашиваете два регистра
61 64 00 00 00 06 01 04 02 08 00 02
Part of Data Package Description Value
61 64 Transaction identifier 0x6164 (24932)
00 00 Protocol identifier 0 = MODBUS protocol
00 06 Length 0x0006 (6)
01 Unit identifier 0x01 (1)
04 Function code 0x04 (4) — Read Input Registers
02 08 Starting address Physical: 0x0208 (520)
Logical: 0x0209 (521)
00 02 Quantity 0x0002 (2)Открою вам тайну о невнимательности — Драйвер Modbus выполняя запрос в логе выдает две строки, так как она сперва опрашивает пакет заголовка для определения длины пакета и потом запрашивает тело пакета
Receive (7/7): 61 64 00 00 00 07 01
Receive (6/6): 04 04 00 00 40 A0Это ответ 61 64 00 00 00 07 01 04 04 00 00 40 A0
18.10.2022 в 11:57 #25515fergus2022УчастникПытаюсь в свеже созданный канал AI00 отправить значение AI-01 (которое в своем канале отображается нормально) — всё равно 0
18.10.2022 в 11:58 #25516manjey73УчастникА еще больше, так у вас это значение равно ПЯТИ в Float — Big Endian (ABCD)
# Raw Float
0 40 A0 00 00 518.10.2022 в 12:00 #25517manjey73Участник@fergus2022 вы получаете 5 во float формате
00 00 40 A0 Register value 0x0000 (0), 0x40A0 (16544) — два регистра первым идет младший регистр, вторым старший.
Разберитесь немного со своими ответами и вам станет все ясно.
То, что arOPC считывает группой два регистра, еще не означает, что в одном регистре будет явная 5-ка….
Настройки OPC еще смотрите, и документацию на оборудование…18.10.2022 в 12:01 #25518fergus2022Участникзапрос:
02 51 Transaction identifier 0x0251 (593) 00 00 Protocol identifier 0 = MODBUS protocol 00 06 Length 0x0006 (6) 01 Unit identifier 0x01 (1) 04 Function code 0x04 (4) - Read Input Registers 02 0B Starting address Physical: 0x020B (523) Logical: 0x020C (524) 00 02 Quantity 0x0002 (2)
Ответ:
02 51 Идентификатор транзакции 0x0251 (593) 00 00 Идентификатор протокола 0 = протокол MODBUS 00 07 Длина 0x0007 (7) 01 Идентификатор объекта 0x01 (1) 04 Код функции 0x04 (4) — чтение входных регистров 04 Количество байтов 0x04 (4) 00 00 00 00 Значение регистра 0x0000 (0), 0x0000 (0)
Тут я опрашиваю AI-01 (значение 11 должно приходить), и запихиваю в свежий канал AI00 — получаю в таблице в скаде 0.
18.10.2022 в 12:02 #25519manjey73Участникhttps://www.scadacore.com/tools/programming-calculators/online-hex-converter/
Вот вам ссылочка на хороший калькулятор для анализа. Меня часто выручает разобраться, что же мне шлют 🙂
18.10.2022 в 12:03 #25520manjey73Участник00 00 00 00 Значение регистра 0x0000 (0), 0x0000 (0)
По значениям регистров тут нули, они и в Африке нули…
18.10.2022 в 12:03 #25521fergus2022УчастникЕсли запихиваю в канал AI-01 то в таблице значение правильное (11). Входные каналы AI-01 и AI00 отличаются только сигналами. Почему так ?
18.10.2022 в 12:04 #25522fergus2022Участник«00 00 00 00 Значение регистра 0x0000 (0), 0x0000 (0)
По значениям регистров тут нули, они и в Африке нули… »
По факту в Моксе стоит значение 11, arOPC видит это значение. А в скаде то почему 0 ?
18.10.2022 в 12:05 #25523manjey73УчастникИ вероятно опять невнимательность, посмотрите запросы arOPC, хоть один начинается с нечетного адреса?
Physical: 0x020B (523) — по вашим запросам из arOPC все запросы с четных физических адресов
- Этот ответ был изменен 1 год, 6 месяцев назад от manjey73.
18.10.2022 в 12:05 #25524fergus2022УчастникТ.е чтобы я не пытался отправить в канал AI00 — всегда получаю 0, не зависимо от запроса.
18.10.2022 в 12:07 #25526fergus2022Участник«И вероятно опять невнимательность, посмотрите запросы arOPC, хоть один начинается с нечетного адреса? »
В arOPC адрес например 520, в скаде приходится писать 521 (т.е на +1), иначе скада не читает значение.18.10.2022 в 12:08 #25527manjey73УчастникВозможно вы видите не 0, а 0,000000000354 -E и так далее, зависит от отображения.
Смотрите опять же логи Коммуникатора а не таблицу интерфейса…
Так поставьте в Scada начинать с 0 и в десятичном виде адресацию.
Это зависит от производителя, как он предоставил документацию, не более того.
Одни логические адреса указывают в карте регистров, другие физические…- Этот ответ был изменен 1 год, 6 месяцев назад от manjey73.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.