Страница 258 из 699 ПерваяПервая ... 158208248256257258259260268308358 ... ПоследняяПоследняя
Показано с 2,571 по 2,580 из 6982

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

  1. #2571

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Есть таблица в которой отображаются данные с массивов ФБ
    ...
    Но возможно ли создать такой массив структур, в котором нужные элементы будут ссылаться на существующие?
    То есть несколько разрозненных массивов одинакового размера отобразить в обобщенном виде, но не копируя данные.
    VladGC, а почему не сделать проще:
    Выделить из 30-ти данных с массивов ФБ и определить отдельную структуру из элементов (столбцов), которые будут в таблице. Т.е. будет "табличная" структура из 3-х элементов, и "остальная" структура из 27 элементов. Далее определить массив "табличной" структуры и массив "остальной" структуры. Тогда останется привязать массив "табличной" структуры к таблице. В "табличную" структуру можно включить данные, не являющиеся переменными ФБ.
    *Указанное справедливо (без дублирования данных), если определять переменные массива ФБ не во входных/выходных переменных ФБ, а в глобальных массивах структур как здесь: https://owen.ru/forum/showthread.php...l=1#post328683
    **"Остальную" структуру из 27 элементов можно не определять, а оставить определение этих переменных во входных/выходных переменных ФБ. Это как удобнее программисту.

    Дополнительно, можно любой столбец таблицы из массива "табличной" структуры переопределить (в самой таблице) любым элементом из массива "остальной" структуры или из любого другого массива структур того же размера. Примечание: сами массивы структур остаются неизменными, изменяется отображаемый столбец в таблице.
    Последний раз редактировалось vniko; 17.05.2020 в 11:25.

  2. #2572

    По умолчанию

    Цитата Сообщение от vniko Посмотреть сообщение
    VladGC, а почему не сделать проще:
    Выделить из 30-ти данных с массивов ФБ и определить отдельную структуру из элементов (столбцов), которые будут в таблице. Т.е. будет "табличная" структура из 3-х элементов, и "остальная" структура из 27 элементов. Далее определить массив "табличной" структуры и массив "остальной" структуры. Тогда останется привязать массив "табличной" структуры к таблице. В "табличную" структуру можно включить данные, не являющиеся переменными ФБ.
    *Указанное справедливо (без дублирования данных), если определять переменные массива ФБ не во входных/выходных переменных ФБ, а в глобальных массивах структур как здесь: https://owen.ru/forum/showthread.php...l=1#post328683
    **"Остальную" структуру из 27 элементов можно не определять, а оставить определение этих переменных во входных/выходных переменных ФБ. Это как удобнее программисту.

    Дополнительно, можно любой столбец таблицы из массива "табличной" структуры переопределить (в самой таблице) любым элементом из массива "остальной" структуры или из любого другого массива структур того же размера. Примечание: сами массивы структур остаются неизменными, изменяется отображаемый столбец в таблице.
    Если я правильно понял, то вы предлагаете вычленить нужные данные и запихнуть в отдельную структуру, то тогда получается нарушится ход мысли в программе , как мне кажется.
    То что я показал, это был Массив ФБ с регуляторами и обвязкой, далее для настроек регулятора есть отдельная структура структур в которой хранятся все настройки
    По этому попробую получить данные с помощью структуры указателей на нужные данные и объединить в нужный массив указателей
    На картинке выделил только часть данных, а там будет еще с других массивов
    Screenshot_12.png
    Изображения Изображения

  3. #2573

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Если я правильно понял, то вы предлагаете вычленить нужные данные и запихнуть в отдельную структуру, то тогда получается нарушится ход мысли в программе , как мне кажется.
    То что я показал, это был Массив ФБ с регуляторами и обвязкой, далее для настроек регулятора есть отдельная структура структур в которой хранятся все настройки
    По этому попробую получить данные с помощью структуры указателей на нужные данные и объединить в нужный массив указателей
    На картинке выделил только часть данных, а там будет еще с других массивов
    Screenshot_12.png
    Да, Вы меня поняли правильно, это как компромиссный вариант. И ещё я предлагал полностью избавиться от входных/выходных переменных ФБ. В Вашем случае входные переменные я бы вычленил.
    По той информации, которую Вы представили, отдельно определять массив структур всех входов aAImodule не нужно. Предполагаю, у Вас 2 входных модуля по 8 AI, всего рабочих каналов 10. Номер модуля и номер входа - это избыточные значения. Оператору, который мониторит 10 температурных зон это не нужно. Ему нужен только номер канала, который будет совпадать с порядковым номером ФБ ПИД-регулятора. В таблице номер строки = номер канала можно отобразить автоматом.
    Как я понимаю, для каждого канала - одно значение температуры, следовательно "ход мысли в программе" должен опираться на одну входную переменную - температуру, которая далее будет "размножена" (массивом) на каждый экземпляр ФБ ПИД-регулятора.
    Отсюда можно определить вполне логичную структуру входов/состояний ФБ ПИД-регуляторов:
    Код:
    TYPE ZoneInputs_Сonditions :
    STRUCT
    	rTemperature			: REAL;
    	rUstavka			: REAL;
    	rUstavkaTekushchaya		: REAL;
    	rPower				: REAL;
    	xReady				: BOOL;
    END_STRUCT
    END_TYPE
    "Ход мысли в программе" может принять, что указанные переменные описывают состояние каждого канала, и важно, чтобы они находились рядом (в одной структуре).
    Далее размножаем "важные переменные" на все каналы:
    Код:
    VAR
    	a_ZoneInputs_Сonditions			: ARRAY [1..10] OF ZoneInputs_Сonditions;
    END_VAR
    Переменные фильтра, ПИД, нарастания уставки можно определить в одной структуре "настроек" и также размножить на все каналы. Итого можно обойтись двумя массивами структур. Первый массив привязываем к таблице.
    Обращаю внимание, в таблице можно добавлять столбцы (копировать) и переопределять любой другой переменной того-же размера.
    VladGC, используя указатели, которые являются адресами переменных, Вы в любом случае добавляете ещё переменные - эти самые адреса. Я не пробовал привязывать в таблице массивы через указатели, если у Вас получится, напишите, будет интересно.

  4. #2574

    По умолчанию

    Добрый день!
    Что то не заладилось с шаблоном mx210, а конкретно с чтением статуса ошибки AO
    Код:
    	
    codeEr:ARRAY [1..8] OF  Mx210Assistant.ANALOG_OUTPUT_ERRORS;
    codeEr1: Mx210Assistant.ANALOG_OUTPUT_ERRORS;
    Код:
                   
                 
    [ERROR]         196: AO_D2_3001 [Device: Ethernet: Modbus_TCP_Master]: Типы канала и соотнесённой переменной Application.PLC_PRG.codeEr[1] не совпадают
    Если ко статусу выхода назначить одиночную переменную, все нормально, если из массива то не работает.

    Screenshot_17.png


    vniko, еще не добрался, но обязательно выложу

  5. #2575
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    codeEr:ARRAY [1..8] OF USINT;
    срабатывает?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #2576

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    codeEr:ARRAY [1..8] OF USINT;
    срабатывает?
    Так да, но его потом не подать в ANALOG_OUTPUT_ERROR_TO_WSTRING, потому что там ожидается ENUM

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

    По умолчанию

    Добрый день.
    Ошибка воспроизвелась, есть предположение, что она исправлена в свежей версии CODESYS (в баг-трекере есть описание похожего бага) - я позже проверю и отпишусь.

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

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Так да, но его потом не подать в ANALOG_OUTPUT_ERROR_TO_WSTRING, потому что там ожидается ENUM
    дополнительно костылем через кейсы, просто ENUM не может использоваться в массивах, он сам как подобие неопределенного массива
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #2579

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    Ошибка воспроизвелась, есть предположение, что она исправлена в свежей версии CODESYS (в баг-трекере есть описание похожего бага) - я позже проверю и отпишусь.
    Спасибо!
    Цитата Сообщение от capzap Посмотреть сообщение
    дополнительно костылем через кейсы, просто ENUM не может использоваться в массивах, он сам как подобие неопределенного массива
    Странно, ведь тут тоже вроде как ENUM
    Mx210Assistant.ANALOG_SENSOR_VALUE.eStatus , все работает

    Для меня в данном случае проще через список текстов, сразу отобразить в таблице

  10. #2580
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Странно, ведь тут тоже вроде как ENUM
    Mx210Assistant.ANALOG_SENSOR_VALUE.eStatus , все работает
    массив то где? Ни в одном языке не найдете простого способа, погуглите на предмет массив из перечислений enum
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 258 из 699 ПерваяПервая ... 158208248256257258259260268308358 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3177
    Последнее сообщение: Вчера, 12:47
  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

Ваши права

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