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

Тема: Есть ли возможность импортировать переменные

  1. #11

    По умолчанию

    Вовсе нет, я в таком случае могу использовать одномерный массив с расчетом индекса для считывания.

    functional_block Recipe

    // Объявление входных переменных
    VAR_INPUT
    InputHumidity : REAL; // Ввод влажности
    InputTemperature : REAL; // Ввод температуры
    InputTime : INT; // Ввод времени
    CurrentStep : INT; // Текущий шаг
    CurrentRecipe : INT; // Текущий рецепт
    WriteEnable : BOOL; // Переменная для разрешения записи
    END_VAR

    // Объявление внутрипрограммных переменных с использованием retain
    VAR RETAIN
    Humidity : ARRAY[1..100] OF REAL;
    Temperature : ARRAY[1..100] OF REAL;
    Time : ARRAY[1..100] OF INT;
    END_VAR

    VAR
    Index : INT;
    END_VAR

    // Объявление выходных переменных
    VAR_OUTPUT
    OutputHumidity : REAL;
    OutputTemperature : REAL;
    OutputTime : INT;
    END_VAR

    // Вычисление индекса для одномерного массива
    Index := (CurrentRecipe - 1) * 10 + CurrentStep;

    // Пример записи данных во внутрипрограммные переменные при разрешении записи
    IF WriteEnable THEN
    Humidity[Index] := InputHumidity;
    Temperature[Index] := InputTemperature;
    Time[Index] := InputTime;
    END_IF

    // Пример чтения данных из внутрипрограммных переменных и записи в выходные переменные
    OutputHumidity := Humidity[Index];
    OutputTemperature := Temperature[Index];
    OutputTime := Time[Index];
    end_function_block

  2. #12
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,001

    По умолчанию

    Это у вас работает именно в ПР ?

  3. #13

    По умолчанию

    Если бы работал retain, то работало бы. А так - 300 переменных, отрицание, гнев, депрессия.
    Последний раз редактировалось Bananas; 01.09.2024 в 10:23.

  4. #14

    По умолчанию

    Цитата Сообщение от Bananas Посмотреть сообщение
    Если бы работал retain, то работало бы. А так - 300 переменных, отрицание, гнев, депрессия.
    На данный момент, всё можно сделать на панели оператора типа СП3хх. В ней храняться рецепты, а в ПР отправляются данные, например 5 регистров,
    в соответствии с номером рецепта.
    Либо 2 вариант, использовать ПЛК, там есть двумерные массивы, глобальные переменные и RETAIN.
    Последний раз редактировалось kondor3000; 01.09.2024 в 11:34.

  5. #15

    По умолчанию

    Глядя на подобные темы, приходит мысль о неправильном выборе средств автоматизации.
    Ведь есть ПЛК с похожим составом входов и выходов, но более развитыми языковыми средствами программирования прикладной программы.
    Часто у программиста исполнителя заранее спрашивают совета по выбору программируемого прибора.

    ПЛК дороже, но экономия будет за счет сокращения времени разработки - человеко-часы что-то да стоят.
    ПР200 - 12 000 руб
    ПР205 - 20 000 руб
    ПЛК110 - 47 000 руб
    Разработка ПО - дорожает от ручного набора 300 переменных, вместо одной строки объявления массива.

    А будет ещё и последующая доработка по результатам эксплуатации, но программа уже на пределе модернизации и улучшения будут трудновыполнимы (например, добавить к рецептам ещё пару параметров).

    У ПР своя ниша применения, где они и должны применяться.

  6. #16
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,001

    По умолчанию

    Так а кто мешает набрать 300 переменных внутри программы ST на ПР ? а выбирать уже по номеру через ОДНУ переменную ?
    Да, не совсем retain, но ведь можно. И в плане доработки не так много добавлять, либо к каждому массиву по паре переменных, либо еще один массив с новым рецептом и новым номером.

  7. #17

    По умолчанию

    Рецепты где-то должны храниться - или на внешнем устройстве (панель оператора, АРМ оператора) или в ПР.
    Значит в ПР придётся делать мега-мультиплексор с несколькими сотнями входов и парой десятков выходов.

    Я бы ещё уточнил в РЭ на ПР - достаточно ли RETAIN переменных, чтобы уместить эти рецепты (4 байта на переменную, а RETAIN 1024 или около того байт, т.е. 256 переменных, если сетевых переменных по 2 байта, то 512 переменных).

    Можно, всё можно, но неоправданно трудозатратно по причине неправильного выбора средств автоматизации.
    Последний раз редактировалось FPavel; 01.09.2024 в 12:10.

  8. #18

    По умолчанию

    Так проблема не в том, что ПР это не может выполнить, а в том, что изготовитель не добавил возможность это сделать в интерпретатор.
    Т.е. ПЛК это хорошо, если у тебя быстрые и большие процессы, там уже время такта важно, нужна мощность.
    А выделять отдельную линейку искусственно это вообще зачем? Я куплю ПЛК, когда у меня будет сервопривод, например, или линия будет на сотни входов/выходов.

  9. #19

    По умолчанию

    Нет, проблема в том, что на этапе проектирования было выбрано неправильное средство автоматизации. Ведь в ПР RETAIN, массивов не было ни вчера, ни месяц, ни год назад - и это не новость.

    Теперь, когда сложность программы превысила квалификацию программиста, начались укоры в сторону производителя, чтобы снять с себя ответственность.

    Наиболее простое для Вас решение - хранение рецептов в панели оператора - многие из них позволяют это делать.

  10. #20

    По умолчанию

    Фига вы тут воображать любите. Вопрос изначально был к удобству редактирования переменных и возможность импорта из таблицы. Потом уже перешли к retain и возможности уйти от создания переменных.
    Моя квалификация в промышленных устройствах не велика, но опыт работы с микроконтроллерами меня наверное разбаловал - покупаешь контроллер и используешь все его возможности.
    Почему для вычисления экспоненты я не могу написать exp(x), например, а должен париться с апроксимацией? Что, микроконтроллер не может посчитать? 30 лет назад
    на вшивом калькуляторе считал.

    По поводу квалификации - может в ПЛК она у вас выше, но почему коррелирует с хамством?

    Вы не хотели бы функцию retain?
    Я разве не прав в том, что было бы лучше, чтобы она была?

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

Похожие темы

  1. Ответов: 8
    Последнее сообщение: 16.05.2024, 09:55
  2. Ответов: 6
    Последнее сообщение: 26.12.2022, 16:45
  3. Ответов: 4
    Последнее сообщение: 26.09.2022, 14:57
  4. ПР110 Есть ли возможность увеличить количество входов?
    от SaiFeR в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 12.10.2016, 15:11
  5. Ответов: 3
    Последнее сообщение: 21.12.2007, 13:23

Ваши права

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