Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: Массив регистров ModBus

  1. #1

    По умолчанию Массив регистров ModBus

    как можно получить все регистры ModBus одним массивом ?

  2. #2

    По умолчанию

    как к нему обратиться, в этом и есть вопрос

  3. #3

    По умолчанию

    Цитата Сообщение от Seyran Посмотреть сообщение
    как к нему обратиться, в этом и есть вопрос
    Вот тут гляньте, есть пример
    https://www.youtube.com/watch?v=OxC8...doIzVR&index=3

  4. #4

    По умолчанию

    ссылка интересная, но немного не то, либо я все таки не понимаю. У меня контроллер slave устройство, и у него в конфигурации описан массив регистров. Так вот именно как получить ссылку на адрес первого байта этого массива.

  5. #5

    По умолчанию

    Цитата Сообщение от Seyran Посмотреть сообщение
    ссылка интересная, но немного не то, либо я все таки не понимаю. У меня контроллер slave устройство, и у него в конфигурации описан массив регистров. Так вот именно как получить ссылку на адрес первого байта этого массива.
    https://youtu.be/OxC8_HwU8Dw?list=PL...dTdoIzVR&t=500
    Под рукой CDS2.3 нет, но логика такая:
    В месте где создается переменная слейва, создаете переменную типа string с нужной длинной, это и есть размер массива, далее ковыряете как надо этот string.

    В видео пример для случаев если вы хотите опросить диапазон адресов с разными типами данных

    Есть описание девайса, того места где описан этот массив ?

  6. #6

    По умолчанию

    в видео описан случай для мастера, и строка создается в конфигурации, и в нее как раз читается массив данных сразу из слейв устройства. В моем случае как раз то же хочу сделать, но походу туплю. Вот начинаются регистры
    FAIL_REG1 AT %QW7.1.0:WORD; (*adrr 001 ;*)
    FAIL_REG2 AT %QW7.2.0:WORD; (*adrr 002*)
    FAIL_REG3 AT %QW7.3.0:WORD; (*adrr 003 *)
    STATE_REG1 AT %QW7.4.0:WORD; (*adrr 004 *)
    STATE_REG2 AT %QW7.5.0:WORD; (*adrr*)
    STATE_REG3 AT %QW7.6.0:WORD; (*adrr *)

    они идут подряд 38 штук разных типов WORD и DWORD(Real), как мне их завернуть в строку для отправки

  7. #7

    По умолчанию

    Цитата Сообщение от Seyran Посмотреть сообщение
    в видео описан случай для мастера, и строка создается в конфигурации, и в нее как раз читается массив данных сразу из слейв устройства. В моем случае как раз то же хочу сделать, но походу туплю. Вот начинаются регистры
    FAIL_REG1 AT %QW7.1.0:WORD; (*adrr 001 ;*)
    FAIL_REG2 AT %QW7.2.0:WORD; (*adrr 002*)
    FAIL_REG3 AT %QW7.3.0:WORD; (*adrr 003 *)
    STATE_REG1 AT %QW7.4.0:WORD; (*adrr 004 *)
    STATE_REG2 AT %QW7.5.0:WORD; (*adrr*)
    STATE_REG3 AT %QW7.6.0:WORD; (*adrr *)

    они идут подряд 38 штук разных типов WORD и DWORD(Real), как мне их завернуть в строку для отправки
    Я понял ваш вопрос
    По сути, ничего делать не надо,
    пусть ваши 38 word, dword так ими и остаются, ведь что массив, что строка, для вашего слейва ничего делать не надо.
    Мастер и так опросит весь диапазон сразу, как в видео.
    Если вам хочется массив который уже собран в программе представить как массив для опроса, что бы вручную не писать, то пока без среды разработки не подскажу

  8. #8

    По умолчанию

    немного не так, мне надо все эти регистры завернуть в строку чтобы записать в лог. Не хочу перечислять по отдельности каждый регистр, ибо при добавлении нового регистра есть шанс забыть добавить его в логгирование

  9. #9

    По умолчанию

    сделал так
    VAR
    mbBuff: POINTER TO ARRAY[1..68] OF WORD;
    Massiv: ARRAY[0..68] OF BYTE;
    END_VAR

    mbBuff := ADR(FAIL_REG1);
    Massiv := mbBuff^;

    вот теперь как Massiv или mbBuff преобразовать в строку ???

  10. #10

    По умолчанию

    в тоге преобразование сделал так
    FOR i:=0 TO 68 DO
    aMyStringArray[i] := WORD_TO_STRING(Massiv[i]);
    str := CONCAT(str,aMyStringArray[i]);
    str := CONCAT(str, ';');
    END_FOR
    но в строке одни нули (((

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Конфликт Modbus RTU регистров
    от Evdoc в разделе Среда программирования OWEN Logic
    Ответов: 6
    Последнее сообщение: 25.06.2019, 10:29
  2. modbus и массив структур
    от lttn в разделе Master SCADA 3
    Ответов: 6
    Последнее сообщение: 20.06.2019, 12:39
  3. Подключение регистров Modbus TCP
    от andrej_s.v в разделе СПК2хх
    Ответов: 5
    Последнее сообщение: 28.11.2017, 21:16
  4. Массив в регистры Modbus
    от Boris_K в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 28.04.2014, 22:42
  5. ПЛК 323. Опрос по Modbus регистров ТРМ 202
    от rescom в разделе ПЛК3хх
    Ответов: 5
    Последнее сообщение: 21.03.2014, 19:07

Ваши права

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