Страница 6 из 17 ПерваяПервая ... 4567816 ... ПоследняяПоследняя
Показано с 51 по 60 из 167

Тема: ПР200 и ST

  1. #51
    Пользователь
    Регистрация
    08.04.2015
    Адрес
    Воронежская область
    Сообщений
    1,249

    По умолчанию

    Цитата Сообщение от rovki Посмотреть сообщение
    А для меня желтый цвет- напоминание ,что есть обратные связи . Если не лень поставь задержку на такт...
    Не совсем понял про отличия переменных ??? Внутренние переменные формируются внутри(по тактам) ,а сетевые приходят из вне ,асинхронно .
    Речь не про "здравомыслие" ,а про то что может пострадать работоспособность ОЛ (наличие багов) для тех кто не использует этот функционал. И о том ,что программист один и если он занят новым функционалом , то остальные хотелки ,которые пользователи высказали за много лет будут не реализованы в ближайшем будущем. Кроме того возможности самого МК не ограничены и на другие задачи может не хватить .
    Как это можно объяснить Запись_2021_04_19_07_25_10_644.gif ?????????????
    С точки зрение программиста , это должно работать стабильно (не зависимо от типа переменной). Запись_2021_04_19_07_31_43_3.gif .
    , а оно дергается или с сетевой переменной Запись_2021_04_19_08_25_36_175.gif
    Изображения Изображения
    Вложения Вложения
    Последний раз редактировалось Алексеев; 19.04.2021 в 08:27.

  2. #52

    По умолчанию

    Маленький пример, поясняющий почему ST удобнее FBD

    Код:
    var
    	// Т наружнего воздуха
    	t_extern:array [1..3] of real:=[-25.0,0.0,15.0];
    	// Т прямой - в сеть
    	t_direct:array [1..3] of real:=[80.0,55.0,30.0];
    
    // Вычисление по графику Тпрям(Тнар)
    function get_t_dir:REAL;
    var_input
    //Вход Тнаружн
    	t_ext:REAL;
    	max_points:UDINT;
    end_var
    var
    // Итератор
    	iter:UDINT;
    end_var
    // Если Меньше = Нижней точки
    	if t_ext<=t_extern[1] then
    		get_t_dir:=t_direct[1];
    	ELSE
    		if t_ext>=t_extern[max_points] then
    			get_t_dir:=t_direct[max_points];
    		ELSE
    			iter:=1;
    		    // Вычисляем в цикле
    			while iter<max_points do
    				if t_ext>=t_extern[iter] then // Нашли 
    					// вычисление по формуле Y(x)=Y1+(Y2-Y1)*( (x-x1) / (x2-x1))
    					get_t_dir:=t_direct[iter]+(t_direct[iter+1]-t_direct[iter])*(t_ext-t_extern[iter])/(t_extern[iter+1]-t_extern[iter]);
    					iter:=100;
    				end_if
    				iter:=iter+1;
    			end_while
    		end_if
    	end_if
    	
    // Если больше = верхней точке	
    
    	
    end_function
    Последний раз редактировалось Евгений Кислов; 29.04.2021 в 09:14.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  3. #53
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,167

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Маленький пример, поясняющий почему ST удобнее FBD

    var
    // Т наружнего воздуха
    t_extern:array [1..3] of real:=[-25.0,0.0,15.0];
    // Т прямой - в сеть
    t_direct:array [1..3] of real:=[80.0,55.0,30.0];

    // Вычисление по графику Тпрям(Тнар)
    function get_t_dir:REAL;
    var_input
    //Вход Тнаружн
    t_ext:REAL;
    max_points:UDINT;
    end_var
    var
    // Итератор
    iter:UDINT;
    end_var
    // Если Меньше = Нижней точки
    if t_ext<=t_extern[1] then
    get_t_dir:=t_direct[1];
    ELSE
    if t_ext>=t_extern[max_points] then
    get_t_dir:=t_direct[max_points];
    ELSE
    iter:=1;
    // Вычисляем в цикле
    while iter<max_points do
    if t_ext>=t_extern[iter] then // Нашли
    // вычисление по формуле Y(x)=Y1+(Y2-Y1)*( (x-x1) / (x2-x1))
    get_t_dir:=t_direct[iter]+(t_direct[iter+1]-t_direct[iter])*(t_ext-t_extern[iter])/(t_extern[iter+1]-t_extern[iter]);
    iter:=100;
    end_if
    iter:=iter+1;
    end_while
    end_if
    end_if

    // Если больше = верхней точке


    end_function
    Совсем недавно в одной из тем приводили пример когда на LD проще выполнить алгоритм и думаю каждый может найти пример в пользу предпочтительного для него языка!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  4. #54
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,115

    По умолчанию

    А если убрать пол страницы комментариев , то очень понятно , проще будет ?
    электронщик до мозга костей и не только

  5. #55

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Маленький пример, поясняющий почему ST удобнее FBD
    Подозреваю, что не всем это будет удобнее Главное чтобы был выбор.
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    e-mail: yu.revaka@owen.ru

    Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
    Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
    Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ

  6. #56

    По умолчанию

    Цитата Сообщение от Ревака Юрий Посмотреть сообщение
    Главное чтобы был выбор.
    Золотые слова.

  7. #57

    По умолчанию

    Возможность описать логику на простом и понятном языке - это здорово и круто!
    Понятно, что с помощью FB можно описать условно любую логику, только ведь сам потом не разберёшься
    Только зачем было выбирать такую дурную семантику? Есть же язык Си - простой и понятный всем, зачем усложнять на пустом месте?

  8. #58
    Андрей Посохов
    Гость

    По умолчанию

    Цитата Сообщение от Dron/9K Посмотреть сообщение
    Возможность описать логику на простом и понятном языке - это здорово и круто!
    Понятно, что с помощью FB можно описать условно любую логику, только ведь сам потом не разберёшься
    Только зачем было выбирать такую дурную семантику? Есть же язык Си - простой и понятный всем, зачем усложнять на пустом месте?
    Затем, что это заблуждение, что язык "С" всем понятный и простой
    Он требует, как минимум, хорошего обучения. А языку FBD я в свое время научился сам, работая просто в симуляторе OwenLogic.
    И многим проще работать с готовыми блоками, чем писать условия и текст. Но безусловно все будет зависеть от задачи.

  9. #59
    Пользователь
    Регистрация
    15.03.2018
    Адрес
    Ижевск
    Сообщений
    823

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Золотые слова.
    В рамку: "C or FBD"

  10. #60

    По умолчанию

    Цитата Сообщение от Dron/9K Посмотреть сообщение
    Есть же язык Си - простой и понятный всем, зачем усложнять на пустом месте?
    Ну-ну...
    Язык С - очень сложный язык. Если писать на нем в стиле С. Если писать на нем в стиле Паскаля (ST в промавтоматике) - теряется смысл языка С.

Страница 6 из 17 ПерваяПервая ... 4567816 ... ПоследняяПоследняя

Похожие темы

  1. Проект на ПР200. Значение переменной с панели ПР200 не заменяет значение по умолчанию
    от Сергей Потапенко в разделе Среда программирования OWEN Logic
    Ответов: 7
    Последнее сообщение: 03.09.2020, 09:15
  2. ПР200 + ПР200 вместо пр200 + ПРМ
    от 301 в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 22.06.2019, 10:14
  3. ПР200 + ПР200 (или МВ110, МУ110)
    от antonlis в разделе Программируемые реле
    Ответов: 32
    Последнее сообщение: 27.06.2017, 12:07
  4. ПР200 Пропадание связи USB - ПР200. Решено
    от PGK в разделе Программируемые реле
    Ответов: 0
    Последнее сообщение: 18.01.2017, 11:37
  5. ПР200+НПТ1 Пределы измерения ПР200 в режиме 4-20ma
    от Алексей Геннадьевич в разделе Программируемые реле
    Ответов: 13
    Последнее сообщение: 06.04.2016, 20:19

Метки этой темы

Ваши права

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