Страница 5 из 8 ПерваяПервая ... 34567 ... ПоследняяПоследняя
Показано с 41 по 50 из 74

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

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

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Так-то, есть некоторая разница между CFC и SFC
    Не спорю, просто в SFC не вникал. На CFC погружался в программирование, смотрел уроки, с FBD сталкивался в Owen Logic, а про ST-многие советуют, так как универсальный язык и можно на нем написать что угодно, к тому же можно макросы писать и в Owen Logic на нем.

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

    По умолчанию

    Мужики, может есть у кого готовые старые проекты в Codesys V2.3, написанные только на языке ST? Хочу посмотреть(изучить) оформление, возможные варианты решения различных задач. Кому не жалко, скиньте сюда или через личку, напишу свою электронную почту.

  3. #43

    По умолчанию

    Цитата Сообщение от EVGEN_ Посмотреть сообщение
    Мужики, может есть у кого готовые старые проекты в Codesys V2.3, написанные только на языке ST? Хочу посмотреть(изучить) оформление, возможные варианты решения различных задач. Кому не жалко, скиньте сюда или через личку, напишу свою электронную почту.
    Думаю, что у вас не совсем правильный подход, решать надо конкретную задачу, до конца, вот и спрашивайте.
    Разбирать надо простые примеры, как выложены на сайте.
    От чужих проектов, толку будет ноль, потому, что вы не поймёте, как и что сделано и почему так. По своему опыту пишу.
    Последний раз редактировалось kondor3000; 03.03.2024 в 20:03.

  4. #44

    По умолчанию

    Только на ST не делал - только в связке SFC+ST.

    При помощи SFC разделял задачу на процессы:
    - инициализация переменных при включении питания
    - обработка аналоговых входов (масштабирование, сглаживание)
    - работа с панелью оператора (формирование команд, смена режимов, формирование слов состояний для визуализации и прочее)
    - валидация параметров, введённых с панели или другого источника
    - обработка кнопок и переключателей на щите (формирование команд, смена режимов)
    - последовательность пуска управляемого агрегата (барабанный командоаппарат на ST при помощи CASE)
    - регуляторы
    - сигнализация (включение постоянного, прерывистого звукового сигнала, отключение звуковой сигнализации)
    - защита - проверка выхода параметров процесса за допустимые диапазоны в зависимости от текущего состояния управляемого агрегата - формируются сигналы вхождения в предупредительный диапазон, выхода за допустимый и начало отсчёта задержки, завершение отсчёта задержки и аварийного останова агрегата

    Сейчас бы ещё учитывал совет о именованных константах для номеров состояний агрегата. А тогда просто нумеровал их с шагом 10, чтобы можно было вставить шаги без изменения нумерации.

    Рабочие программы привести не могу, а тестовый пример работы с файлами в ПЛК110[М2] запросто.
    Программа в ПЛК содержит переменные, вводимые с панели оператора и буфер обмена с файлами, содержащий все эти переменные.
    По команде "записать в файл", переменные копируются в буфер и содержимое буфера сохраняется в файле.
    По команде "прочитать из файла", содержимое файла копируются в буфер, но переменные остаются неизменными.
    По команде "установить в буфере настройки по умолчанию", в буфер записываются значения "по умолчанию", но переменные остаются неизменными.
    По команде "скопировать настройки из промежуточного буфера", содержимое буфера копируется в переменные.
    Таким образом, появляется возможность ознакомления с сохранёнными ранее настройками и сравнения их с актуальными.


    Добавлю, что к такой структуре программ в CoDeSys пришёл самостоятельно, до этого работал в другой среде разработки и программа была на LD без возможности структурирования единой "простынёй" в ~500-1000 строк.

    Сейчас перешёл на другую работу, и для программирования в CODESYS 3.5 во всех наших уроках рекомендуется другой подход к структуре программы - создаются задачи и они вызываются не из основной программы, а каждая отдельно с заданным интервалом через штатный планировщик.

    Не могу сказать, какой подход лучше - не встречал анализа.
    Вложения Вложения
    • Тип файла: zip sample.zip (924.3 Кб, Просмотров: 9)
    Последний раз редактировалось FPavel; 03.03.2024 в 21:00.

  5. #45

    По умолчанию

    Вот ещё пример программы SFC+ST+FBD

    Задача была - автоматизация работы бака-накопителя ГВС. Автоматическое или ручное управление одним насосом и несколькими задвижками, поддержание уровня в баке при помощи поплавкового датчика уровня с 4 дискретными сигналами.

    Была экономия на физических кнопках (а значит и модулях ввода), поэтому с панели оператора были "кнопки" пуск/стоп процесса, сброс и проверка сигнализации, ручные и автоматические режимы насоса и задвижек.

    Но структура программы осталась по моему выдуманному принципу

    Сначала хотел при включении питания всё закрывать и выключать, но потом отказался от этой идеи, поэтому стадия Init пустая.

  6. #46

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Вот ещё пример программы SFC+ST+FBD

    Задача была - автоматизация работы бака-накопителя ГВС. Автоматическое или ручное управление одним насосом и несколькими задвижками, поддержание уровня в баке при помощи поплавкового датчика уровня с 4 дискретными сигналами.

    Была экономия на физических кнопках (а значит и модулях ввода), поэтому с панели оператора были "кнопки" пуск/стоп процесса, сброс и проверка сигнализации, ручные и автоматические режимы насоса и задвижек.

    Но структура программы осталась по моему выдуманному принципу

    Сначала хотел при включении питания всё закрывать и выключать, но потом отказался от этой идеи, поэтому стадия Init пустая.
    А зачем вам здесь SFC вообще?
    Можно было накатать всё в одну простыню ST и всё, или сделать несколько программ (сколько там квадратиков, не считал) и запихать их в одну задачу на выполнение.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Думаю, что у вас не совсем правильный подход, решать надо конкретную задачу, до конца, вот и спрашивайте.
    Разбирать надо простые примеры, как выложены на сайте.
    От чужих проектов, толку будет ноль, потому, что вы не поймёте, как и что сделано и почему так. По своему опыту пишу.
    Я, собственно и не собирался бросать начатое тех.задание.
    Посмотрел, стрим Сергея Романова о разборе его программы на ST, что заметил, так он пишет CASE с шагом в 10, то есть 0,10,20,30 и т.д., чтобы в процессе разработки можно было легко внести промеж еще несколько шагов, при надобности. Еще он довольно редко в "IF" использует слово "FALSE" и "TRUE", а вместо этого пишет "NOT" и просто переменную. Например моя запись: IF abc=TRUE AND asd=FALSE THEN bcd:=TRUE;END_IF
    И например Сергея запись: IF abc and NOT asd THEN bcd:=TRUE;END_IF Только мне пока не понятно, что это дает и есть ли в этом "полезная" разница. К тому же "IF" он применяет прямо в CASE, чего я не делал.

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

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Вот ещё пример программы SFC+ST+FBD

    Задача была - автоматизация работы бака-накопителя ГВС. Автоматическое или ручное управление одним насосом и несколькими задвижками, поддержание уровня в баке при помощи поплавкового датчика уровня с 4 дискретными сигналами.

    Была экономия на физических кнопках (а значит и модулях ввода), поэтому с панели оператора были "кнопки" пуск/стоп процесса, сброс и проверка сигнализации, ручные и автоматические режимы насоса и задвижек.

    Но структура программы осталась по моему выдуманному принципу

    Сначала хотел при включении питания всё закрывать и выключать, но потом отказался от этой идеи, поэтому стадия Init пустая.
    Спасибо за программы! Я топлю за ST, так как иногда приходится по мелочи залазить в программы контроллеров на работе и к примеру, что-нибудь откалибровать. Так вот, в какую установку не залезем, везде вся программа написана именно на ST. Будь то, контроллер SIEMENS или Allen Bradley.

  9. #49
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,174

    По умолчанию

    Цитата Сообщение от EVGEN_ Посмотреть сообщение
    Я, собственно и не собирался бросать начатое тех.задание.
    Посмотрел, стрим Сергея Романова о разборе его программы на ST, что заметил, так он пишет CASE с шагом в 10, то есть 0,10,20,30 и т.д., чтобы в процессе разработки можно было легко внести промеж еще несколько шагов, при надобности. Еще он довольно редко в "IF" использует слово "FALSE" и "TRUE", а вместо этого пишет "NOT" и просто переменную. Например моя запись: IF abc=TRUE AND asd=FALSE THEN bcd:=TRUE;END_IF
    И например Сергея запись: IF abc and NOT asd THEN bcd:=TRUE;END_IF Только мне пока не понятно, что это дает и есть ли в этом "полезная" разница. К тому же "IF" он применяет прямо в CASE, чего я не делал.
    Так, на заметку. Запись IF abc=TRUE AND asd=FALSE THEN bcd:=TRUE;END_IF эквивалентна bcd := abc and not asd. Т.е. IF в некоторых случаях можно не использовать.
    А полезная разница - меньше букв набирать
    Последний раз редактировалось Dimensy; 04.03.2024 в 16:45.

  10. #50

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    А зачем вам здесь SFC вообще?
    Можно было накатать всё в одну простыню ST и всё, или сделать несколько программ (сколько там квадратиков, не считал) и запихать их в одну задачу на выполнение.
    На форуме нет примеров структурированных программ, все - на едином листе. Спросить совета было не у кого. А самообразование приводит к причудливым решениям )

    Исходя из предыдущего опыта не желал получать "простыню", а средствами CoDeSys (SFC) можно было упорядочить код, упростить навигацию по нему.
    Работу с периодическими задачами сразу не освоил, а потом за 10 лет было всего четыре проекта в CoDeSys, которые нужно делать срочно - тут не до изысканий новых подходов, когда предыдущая структура устраивает.

    По правде, за всё время у меня не возникало желания менять структуру, которую придумал с самого первого проекта. Не видел недостатков, одни достоинства в простой навигации (в дереве объектов подпрограммы, в SFC процессы), в возможности выбирать язык для каждой задачи, простая реализация инициализации при включении питания.
    К слову, в OwenLogic уже несколько раз менял стиль и пока не могу определиться "со своим".

Страница 5 из 8 ПерваяПервая ... 34567 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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