Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 22 из 22

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

  1. #21

    По умолчанию

    Я так изначально делал, увидел кашу внутри и понял, что нужно менять порядок байтов. Сейчас собрался использовать массив из объединения.

    Наверное, просто нужно написать фб, заменяющий значения в массиве, а его отправлять в массив INT
    Последний раз редактировалось Zerling; 23.06.2022 в 08:09.

  2. #22

    По умолчанию

    Код:
    FUNCTION_BLOCK buff2int
    VAR_INPUT
    	Pt_of_buff: POINTER TO ARRAY [1..255] OF BYTE;//
    	Pt_of_int: POINTER TO ARRAY [1..125] OF INT;//
    END_VAR
    VAR_INPUT
    	x_START: BOOL;// Старт пересборки буфера
    END_VAR
    VAR	
    	i: byte;// шаг FOR/ номер ячейки буфера байт
    	m: BYTE;// Номер ячейки выходного массива
    	dut_var: W2ab;// объединение, массив 2 байта + инт
    END_VAR
    
    
    IF x_START THEN i := 0; END_IF
    			FOR i := 1 TO 20 DO 	///20 условно, нужно смотреть или 3 или 7 ячейку для определения размера пакета
    		        m:=i/2;   // номер ячейки конечного массива 
       	IF 	i.0 THEN			//смотрим бит. тру значит число нечетное	
    // присваиваем значение из нечетной ячейки массива в [0] подъячейку объединения
    	MEM.MemMove(ADR(Pt_of_buff^[i]), ADR(dut_var.ab_digit[0]), SIZEOF(Pt_of_buff^[i]) );
    					ELSE 						
    //присваиваем значение из четной ячейки массива в [1] подъячейку объединения
    MEM.MemMove(ADR(Pt_of_buff^[i]), ADR(dut_var.ab_digit[1]), SIZEOF(Pt_of_buff^[i]) );
    //по идее - ИНТ число уже сформировано, его можно записать в массив инт
    MEM.MemMove(ADR(dut_var), ADR(Pt_of_int^[m]), SIZEOF(dut_var) );
    
    				END_IF END_FOR
    получилось как-то так...

Страница 3 из 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

Ваши права

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