Страница 361 из 708 ПерваяПервая ... 261311351359360361362363371411461 ... ПоследняяПоследняя
Показано с 3,601 по 3,610 из 7074

Тема: CODESYS V3.5. Вопросы и ответы

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

    По умолчанию

    Мне кажется, вариант RV9WFJ с функцией (или просто фрагментом кода, конвертирующим номер столбца в обращение к нужному полю структуры) - самый простой и понятный.
    Код:
    PROGRAM PLC_PRG
    VAR
    	aprGas_Air_Table: 	        ARRAY [0..255] OF point_real;
    	
    	usiSelectedRow:	  	        USINT := 10; // номер выбранной строки
    	usiSelectedColumn: 	        USINT(0..1);  // номер выбранного столбца
    	
    	rSelectedValue:	                REAL;            // значение в выбранной ячейке
    END_VAR
    
    CASE usiSelectedColumn OF
    	0: 
    		rSelectedValue := aprGas_Air_Table[usiSelectedRow].X;
    	1:
    		rSelectedValue := aprGas_Air_Table[usiSelectedRow].Y;
    END_CASE
    Если обязательно хочется использовать указатели - то можно. Но если структура изменится, то код придется переделывать (и учитывать выравнивание данных в структуре).

    Код:
    PROGRAM PLC_PRG
    VAR
    	aprGas_Air_Table: 	        ARRAY [0..255] OF point_real;
    	
    	usiSelectedRow:	  	        USINT := 10; // номер выбранной строки
    	usiSelectedColumn: 	        USINT(0..1);  // номер выбранного столбца
    	
    	rSelectedValue:	                REAL;            // значение в выбранной ячейке
            prSelectedValue:	        POINTER TO REAL;
    END_VAR
    
    prSelectedValue   := ADR(aprGas_Air_Table[usiSelectedRow] );
    rSelectedValue    := prSelectedValue[usiSelectedColumn];
    // индексный доступ к указателю
    // см. здесь: https://help.codesys.com/webapp/_cds_datatype_pointer;product=codesys;version=3.5.13.0
    Если наличие структуры не принципиально - то можно перейти к двухмерному массиву:

    Код:
    aprGas_Air_Table: 	       ARRAY [0..255] OF ARRAY [0..1] OF REAL;
    Соответственно, можно будет просто обращаться к его элементам с помощью usiSelectedRow и usiSelectedColumn в качестве индексов.

  2. #3602
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    Вложение 57798
    А в каком месте у вас сложность? Просто указываю в таблице массив из структур и все само выводится.
    Сложность с редактированием. Что бы пользователь выделил ячейку, и рядом в окошке ввел новое значение.

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

    По умолчанию

    Цитата Сообщение от Солнечный заяц Посмотреть сообщение
    Сложность с редактированием. Что бы пользователь выделил ячейку, и рядом в окошке ввел новое значение.
    А почему бы сразу в ячейку не вводить значение?
    Или требуется какое-то подтверждение ввода? (типа "вы точно хотите изменить...")

  4. #3604
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Спасибо за подробный ответ.

  5. #3605
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    А почему бы сразу в ячейку не вводить значение?
    Или требуется какое-то подтверждение ввода? (типа "вы точно хотите изменить...")
    Не нашел, как это делается

  6. #3606

  7. #3607
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Спасибо! Это все упрощает.

  8. #3608
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    А как можно выполнить ввод в переменную типа Time?

  9. #3609

  10. #3610

    По умолчанию

    Написал TCP server, который является слейвом к ПЛК-210. В принципе, все работает нормально, но со стороны ПЛК раз в 3-20 минут идет разрыв TCP соединения. В логах это выглядит так (я заменил IP-адреса на название устойства). ПЛК и сервер связаны прямым проводом без коммутаторов/маршрутизаторов.

    07:29:51.036177 IP_PLC > IP_SERVER: Flags [FP.], seq 3341925890:3341925998, ack 217531772, win 913, options [nop,nop,TS val 1266839810 ecr 330477084], length 108
    07:29:51.042539 IP_SERVER > IP_PLC: Flags [F.], seq 12, ack 109, win 508, options [nop,nop,TS val 330478987 ecr 1266839811], length 0
    07:29:51.042765 IP_PLC > IP_SERVER: Flags [R], seq 3341925999, win 0, length 0

    Что это может быть? В каких случаях идет разрыв TCP-соединения? Обмен идет раз в 200 мс, поэтому таймаута неактивности там не бывает. Чтение идет одного регистра, fc=4. IP_PLC - Modbus master, IP_SERVER - Modbus slave.

    За одну сессию устройства обмениваются от 300 до 3500 транзакций с шагом 200 мс.

    Заранее спасибо!

Страница 361 из 708 ПерваяПервая ... 261311351359360361362363371411461 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3193
    Последнее сообщение: 15.04.2024, 12:51
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 822
    Последнее сообщение: 20.11.2023, 17:48
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 245
    Последнее сообщение: 02.10.2022, 11:34
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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