Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › Опрос Moxa 1242
- В этой теме 48 ответов, 3 участника, последнее обновление 3 года, 7 месяцев назад сделано
Mikhail.
-
АвторСообщения
-
18.10.2022 в 11:45 #25511
fergus2022
УчастникВ ответ вставляю 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 в таблице постоянно.-
Ответ изменён 3 года, 7 месяцев назад пользователем
fergus2022.
18.10.2022 в 11:47 #25513fergus2022
УчастникПробовал без группы чисто один тег AI-00 опрашивать с сигналом 25, так же создавал для него новый входной канал и добавлял в интерфейс в таблицу — всё равно 0.
18.10.2022 в 11:54 #25514
manjey73Участник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 #25516
manjey73УчастникА еще больше, так у вас это значение равно ПЯТИ в Float — Big Endian (ABCD)
# Raw Float
0 40 A0 00 00 518.10.2022 в 12:00 #25517
manjey73Участник@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 #25519
manjey73Участникhttps://www.scadacore.com/tools/programming-calculators/online-hex-converter/
Вот вам ссылочка на хороший калькулятор для анализа. Меня часто выручает разобраться, что же мне шлют 🙂
18.10.2022 в 12:03 #25520
manjey73Участник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 #25523
manjey73УчастникИ вероятно опять невнимательность, посмотрите запросы arOPC, хоть один начинается с нечетного адреса?
Physical: 0x020B (523) — по вашим запросам из arOPC все запросы с четных физических адресов
-
Ответ изменён 3 года, 7 месяцев назад пользователем
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 #25527
manjey73УчастникВозможно вы видите не 0, а 0,000000000354 -E и так далее, зависит от отображения.
Смотрите опять же логи Коммуникатора а не таблицу интерфейса…
Так поставьте в Scada начинать с 0 и в десятичном виде адресацию.
Это зависит от производителя, как он предоставил документацию, не более того.
Одни логические адреса указывают в карте регистров, другие физические…-
Ответ изменён 3 года, 7 месяцев назад пользователем
manjey73.
-
Ответ изменён 3 года, 7 месяцев назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.