Опрос Moxa 1242

Просмотр 15 сообщений - с 16 по 30 (из 49 всего)
  • Автор
    Сообщения
  • #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 в таблице постоянно.

    • Этот ответ был изменен 1 год, 6 месяцев назад от fergus2022.
    #25513
    fergus2022
    Участник

    Пробовал без группы чисто один тег AI-00 опрашивать с сигналом 25, так же создавал для него новый входной канал и добавлял в интерфейс в таблицу — всё равно 0.

    #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

    #25515
    fergus2022
    Участник

    Пытаюсь в свеже созданный канал AI00 отправить значение AI-01 (которое в своем канале отображается нормально) — всё равно 0

    #25516
    manjey73
    Участник

    А еще больше, так у вас это значение равно ПЯТИ в Float — Big Endian (ABCD)

    # Raw Float
    0 40 A0 00 00 5

    #25517
    manjey73
    Участник

    @fergus2022 вы получаете 5 во float формате

    00 00 40 A0 Register value 0x0000 (0), 0x40A0 (16544) — два регистра первым идет младший регистр, вторым старший.

    Разберитесь немного со своими ответами и вам станет все ясно.
    То, что arOPC считывает группой два регистра, еще не означает, что в одном регистре будет явная 5-ка….
    Настройки OPC еще смотрите, и документацию на оборудование…

    #25518
    fergus2022
    Участник

    запрос:

    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.

    #25519
    manjey73
    Участник

    https://www.scadacore.com/tools/programming-calculators/online-hex-converter/

    Вот вам ссылочка на хороший калькулятор для анализа. Меня часто выручает разобраться, что же мне шлют 🙂

    #25520
    manjey73
    Участник

    00 00 00 00 Значение регистра 0x0000 (0), 0x0000 (0)

    По значениям регистров тут нули, они и в Африке нули…

    #25521
    fergus2022
    Участник

    Если запихиваю в канал AI-01 то в таблице значение правильное (11). Входные каналы AI-01 и AI00 отличаются только сигналами. Почему так ?

    #25522
    fergus2022
    Участник

    «00 00 00 00 Значение регистра 0x0000 (0), 0x0000 (0)

    По значениям регистров тут нули, они и в Африке нули… »

    По факту в Моксе стоит значение 11, arOPC видит это значение. А в скаде то почему 0 ?

    #25523
    manjey73
    Участник

    И вероятно опять невнимательность, посмотрите запросы arOPC, хоть один начинается с нечетного адреса?

    Physical: 0x020B (523) — по вашим запросам из arOPC все запросы с четных физических адресов

    • Этот ответ был изменен 1 год, 6 месяцев назад от manjey73.
    #25524
    fergus2022
    Участник

    Т.е чтобы я не пытался отправить в канал AI00 — всегда получаю 0, не зависимо от запроса.

    #25526
    fergus2022
    Участник

    «И вероятно опять невнимательность, посмотрите запросы arOPC, хоть один начинается с нечетного адреса? »
    В arOPC адрес например 520, в скаде приходится писать 521 (т.е на +1), иначе скада не читает значение.

    #25527
    manjey73
    Участник

    Возможно вы видите не 0, а 0,000000000354 -E и так далее, зависит от отображения.

    Смотрите опять же логи Коммуникатора а не таблицу интерфейса…

    Так поставьте в Scada начинать с 0 и в десятичном виде адресацию.
    Это зависит от производителя, как он предоставил документацию, не более того.
    Одни логические адреса указывают в карте регистров, другие физические…

    • Этот ответ был изменен 1 год, 6 месяцев назад от manjey73.
Просмотр 15 сообщений - с 16 по 30 (из 49 всего)
  • Вы должны авторизироваться для ответа в этой теме.