Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 22

Тема: СЧИТЫВАНИЕ ДАННЫХ ПО MODBUS RTU В МНОГОМЕРНЫЙ МАССИВ ДАННЫХ

  1. #11

  2. #12
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,069

    По умолчанию

    Цитата Сообщение от Maria Посмотреть сообщение
    Проверил проект - обмен идет. Не обращайте внимания на надпись NoBP в компоненте Modbus - смотрите на значения переменных в программе.

    На скриншоте - считал из слэйва число 10 в один из элементов массива.

    112233.png

  3. #13

    По умолчанию

    Спасибо за ответ!

  4. #14

    По умолчанию

    Здравствуйте, не хочу новую тему открывать.
    По нестандартному протоколу приходит(буфер) массив байт, его хочу преобразовать в массив типа INT.

    решил через цикл FOR записывать из буфера в двумерный массив
    Как присвоить значения из одномерного массива в двумерный?

    -------------------
    a_a_byte: ARRAY [1..10] OF ARRAY [1..2] OF byte;
    a_byte: OF ARRAY [1..20] OF byte;
    i, w :int;// i - номер массива байт; w- номер байта массива
    -------------
    a_a_byte[i,w]:=a_byte[i+5],a_byte[i+4] --компилятор ругается,а я не знаю как правильно..

  5. #15
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,069

    По умолчанию

    Цитата Сообщение от Zerling Посмотреть сообщение
    Здравствуйте, не хочу новую тему открывать.
    По нестандартному протоколу приходит(буфер) массив байт, его хочу преобразовать в массив типа INT.

    решил через цикл FOR записывать из буфера в двумерный массив
    Как присвоить значения из одномерного массива в двумерный?


    -------------------
    a_a_byte: ARRAY [1..10] OF ARRAY [1..2] OF byte;
    a_byte: OF ARRAY [1..20] OF byte;
    i, w :int;// i - номер массива байт; w- номер байта массива
    -------------
    a_a_byte[i,w]:=a_byte[i+5],a_byte[i+4] --компилятор ругается,а я не знаю как правильно..
    Добрый день.

    Отвечая на конкретный вопрос - проще всего добавить в проект библиотеку CAA Memory и сделать так:

    Код:
    MEM.MemMove(ADR(a_byte), ADR(a_a_byte), SIZEOF(a_a_byte) );
    Но если "по нестандартному протоколу приходит(буфер) массив байт", то можно сразу разместить эти байты в "массиве типа INT" без использования каких-то промежуточных двумерных и одномерных байтовых массивов.

  6. #16

    По умолчанию

    не понимаю, как собрать из байт int без промежуточных вариантов. Я сделал объединение, чтоб указывать объединение.массивбайт[3]:=байт_буфера[4]; объединение.массивбайт[4]:=байт_буфера[3];

  7. #17
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,069

    По умолчанию

    Цитата Сообщение от Zerling Посмотреть сообщение
    не понимаю, как собрать из байт int без промежуточных вариантов. Я сделал объединение, чтоб указывать объединение.массивбайт[3]:=байт_буфера[4]; объединение.массивбайт[4]:=байт_буфера[3];
    Покажите скриншотом фрагмент кода, в котором у вас "по нестандартному протоколу приходит(буфер) массив байт".
    А лучше - вырежите этот фрагмент и выложите в виде небольшого демонстрационного проекта.

  8. #18
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,586

    По умолчанию

    Zerling
    BitConverter.ToInt(массив байт, позиция). более правильнее посмотрите в справке. возможно предварительно надо будет переставлять байты. в зависимости в куда, функция возьмет требуемое количество байт с указанной позиции.

    ой, тут по ПЛК, извиняюсь

  9. #19

    По умолчанию

    Код пока не написан, только разбираюсь, что к чему.
    Принимаю посылку через CAA COM.Read / OCL.UNM_SerialRequest, дальше - фб в котором отделяю и собираю адрес и значение переменной(сейчас использую одну, а потом нужно будет с десяток). Собственно, поэтому и использовал юнион - не знаю других способов собрать из двух байт тип инт.
    Изображения Изображения
    • Тип файла: png 222.png (17.1 Кб, Просмотров: 5)

  10. #20

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 19.09.2015, 18:36
  2. Как сохранить массив данных в ST
    от Malyshevsergey в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 08.10.2014, 15:14
  3. МСД100 самостоятельное считывание данных
    от Machter в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 03.05.2012, 11:42
  4. МВ110-8АС. Считывание из ячеек данных Float_32
    от Солнечный заяц в разделе Мх110
    Ответов: 4
    Последнее сообщение: 11.05.2011, 20:52
  5. считывание данных с плк
    от Mikewolf в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 04.12.2008, 11:07

Ваши права

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