Показано с 1 по 10 из 22

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

  2. #2

    По умолчанию

    Здравствуйте, не хочу новую тему открывать.
    По нестандартному протоколу приходит(буфер) массив байт, его хочу преобразовать в массив типа 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] --компилятор ругается,а я не знаю как правильно..

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

    По умолчанию

    Цитата Сообщение от 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" без использования каких-то промежуточных двумерных и одномерных байтовых массивов.

  4. #4

    По умолчанию

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

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

    По умолчанию

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

  6. #6

    По умолчанию

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

Похожие темы

  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

Ваши права

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