Страница 8 из 8 ПерваяПервая ... 678
Показано с 71 по 74 из 74

Тема: Первый проект на ST

  1. #71
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    498

    По умолчанию

    Цитата Сообщение от SlavikP Посмотреть сообщение
    Для себя я вывел, что писать и отлаживать удобнее в CFC, а после, уже отлаженое и отработаное - переписать на ST, и уже в виде ST отдавать "в работу".
    Т.е. по сути у меня почти для всего есть 2 проекта: "отладочный" на CFC и "рабочий" на ST.
    Для примера процедура управлени насосм.
    В принципе нормальное решение. Спасибо за совет

  2. #72
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    498

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Вы действительно думаете, что кто-то будет вникать в этот код без единого комментария, выискивая соответствия между обозначениями в программе и ТЗ?
    Да вы сами через месяц не вспомните что делаете в той или иной строке.
    Используйте тип перечисление с осмысленными названиями для нумерации шагов.
    По поводу комментарий согласен. Как писал ранее, за комментарий знаю, просто в этой итоговой программе опустил их. Программу начинал с самого начала несколько раз и по началу все комментировал. Ну и как не странно, порой из-за нехватки времени или энергии, после трудового дня, забрасывал все на 1-1,5 недели и потом возвращаясь к ней буквально за 5-10 минут понимал, что куда и откуда без комментов.
    По поводу названий шагов можете пример привести? Просто тот же Сергей Романов так же называет шаги 0,1,10,20 и т.д.
    Цитата Сообщение от 1exan Посмотреть сообщение
    Зачем сделаны присваивания выходов ФБ промежуточным переменным вроде
    TP1(IN:=TP1_IN , PT:=T#5s , Q=>TP1_Q , ET=>TP1_ET );

    чтобы потом написать
    ZOOMER:=TP1_Q; ?

    так можно сразу написать:
    ZOOMER:=TP1.Q;

    Аналогично вместо TP1_IN := FALSE; можно сразу писать TP1.IN := FALSE; , опуская потом IN при вызове ФБ TP1
    Спасибо, попробую

  3. #73

    По умолчанию

    Цитата Сообщение от EVGEN_ Посмотреть сообщение
    ...
    По поводу названий шагов можете пример привести? Просто тот же Сергей Романов так же называет шаги 0,1,10,20 и т.д.
    ...
    Создаёте новый тип данных enStep (на вкладке типы данных) с примерно таким содержимым (имена и числа произвольно):
    Код:
    TYPE enStep : (
        gciStopped    :=    0, (*    Остановлен    *)
        gciRun        :=    1, (*    Запущен    *)
        gciPause        :=    10, (*    Пауза    *)
        gciDelay        :=    30, (*    Задержка    *)
        gciAvar        :=    31 (*    Авария    *)
    );
    END_TYPE
    В программе используете например так:
    Код:
    Step: enStep; (* Объявление *)
    ...
    
    IF ALARM THEN Step:=gciAvar; END_IF
    ...
    
    IF Step=gciPause AND ...
    ...
    
    CASE Step OF
        gciRun: RED:=TRUE; GREEN:=FALSE; YELLOW:=FALSE; ZOOMER:=FALSE;
    ...
    С типом данных "перечисление" можно работать, как с типом данных "INT"

  4. #74
    Пользователь Аватар для EVGEN_
    Регистрация
    04.07.2015
    Адрес
    Казахстан, город Петропавловск
    Сообщений
    498

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Создаёте новый тип данных enStep (на вкладке типы данных) с примерно таким содержимым (имена и числа произвольно):
    Код:
    TYPE enStep : (
        gciStopped    :=    0, (*    Остановлен    *)
        gciRun        :=    1, (*    Запущен    *)
        gciPause        :=    10, (*    Пауза    *)
        gciDelay        :=    30, (*    Задержка    *)
        gciAvar        :=    31 (*    Авария    *)
    );
    END_TYPE
    В программе используете например так:
    Код:
    Step: enStep; (* Объявление *)
    ...
    
    IF ALARM THEN Step:=gciAvar; END_IF
    ...
    
    IF Step=gciPause AND ...
    ...
    
    CASE Step OF
        gciRun: RED:=TRUE; GREEN:=FALSE; YELLOW:=FALSE; ZOOMER:=FALSE;
    ...
    С типом данных "перечисление" можно работать, как с типом данных "INT"
    1exan , спасибо! Вроде понял.

Страница 8 из 8 ПерваяПервая ... 678

Похожие темы

  1. Первый проект для практики
    от Густаво в разделе Программируемые реле
    Ответов: 4
    Последнее сообщение: 05.03.2023, 18:02
  2. Мой первый проект Мастерскада
    от Dimooon в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 29.09.2017, 13:17
  3. Первый проект
    от wunschkind в разделе Программируемые реле
    Ответов: 5
    Последнее сообщение: 20.07.2017, 18:22
  4. Ответов: 3
    Последнее сообщение: 16.04.2015, 18:40
  5. Первый пришел первый вышел...
    от kanava в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 01.12.2008, 14:00

Ваши права

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