Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: плк 150 + тха. детский вопрос.

  1. #1

    По умолчанию плк 150 + тха. детский вопрос.

    Доброго времени суток!
    Существует несложная задача - вычисление температуры посредством указанного девайса и термопары ТХА(к). При этом прописывается следующий код.


    PROGRAM PLC_PRG
    VAR
    C:ARRAY[0..9] OF REAL;
    i: INT;
    Temp:REAL;
    END_VAR

    Temperature:=0;
    Temp := T3/10;
    IF (Temp >= -5.891) AND (Temp < 0) THEN
    C[0] := 0;
    C[1] := 2.5173462E1;
    C[2] := -1.1662878;
    C[3] := -1.0833638;
    C[4] := -8.9773540E-1;
    C[5] := -3.7342377E-1;
    C[6] := -8.6632643E-2;
    C[7] := -1.0450598E-2;
    C[8] := -5.1920577E-4;
    FOR i := 0 TO 8 DO
    Temperature := Temperature + C[i] * EXPT(Temp, i);
    END_FOR;
    END_IF;

    IF (Temp >=0) AND (Temp < 20.644) THEN
    C[0] := 0;
    C[1] := 2.508355E1;
    C[2] := 7.860106E-2;
    C[3] := -2.503131E-1;
    C[4] := 8.315270E-2;
    C[5] := -1.228034E-2;
    C[6] := 9.804036E-4;
    C[7] := -4.413030E-5;
    C[8] := 1.057734E-6;
    C[9] := -1.052755E-8;
    FOR i := 0 TO 9 DO
    Temperature := Temperature + C[i] * EXPT(Temp, i);
    END_FOR;
    END_IF;

    L1 := s1 OR s5;
    L2 := s2 OR (s5 AND s6);
    L3 := s3 OR Pump;
    L4 := Valve OR (s4 AND s5 AND s6);

    Глобальные переменные

    VAR_GLOBAL
    s1 AT %IX0.0:BOOL; (* %IX0.0 - привязка к конкретному канала *)
    s2 AT %IX0.1:BOOL;
    s3 AT %IX0.2:BOOL;
    s4 AT %IX0.3:BOOL;
    s5 AT %IX0.4:BOOL;
    s6 AT %IX0.5:BOOL;
    L1 AT %QX1.0:BOOL;
    L2 AT %QX1.1:BOOL;
    L3 AT %QX1.2:BOOL;
    L4 AT %QX1.3:BOOL;
    Temperature: REAL := 0;
    Pump: BOOL := 0;
    Valve: BOOL := 0;
    END_VAR


    1. Так вот, при этих вычислениях, разумеется цикл работы увеличивается и работа с дискретными входами/выходами замедляется достаточно ощутимо - примерно до 1 с. Так вот вопрос: существуют ли какие-либо методы оптимизации для улучшения быстродействия? В дальнейшем планируется управление процессами посредством данного сочетания устройств.
    2. Также интереснует тот факт, почему необходима строка "Temp := T3/10;". Опытным путем проверено, что без нее не работает Хотя в конфирурации входа прописан мВ.


    П.С. опыта программирования в кодесисе не имею, диска от ПЛК нет (потеряли), а задачу поставленную решать надо!

  2. #2

    По умолчанию

    Дорогой пользователь ПЛК фирмы ОВЕН.
    Специально для Вас в Ваш экземпляр контроллера нами оперативно была добавлена функция вычисления температуры термопары внутри самого прибора автоматически.
    Для её активации войдите в вкладку Конфигурация ПЛК (PLC Configuration), выделите модуль Unifed signal sensor на интересующем Вас канале измерения.
    Нажмите правую кнопку мыши и в выпавшем меню выберите пункт Replace element->Termocouple sensor.
    В настройках появившегося модуля термопар выберите желаемый Вами тип термопары и загрузите программу.

    В качестве бонуса нами также были добавлены другие функции, с полным списком которых Вы можете ознакомится в документе Документация\PLC_Configuration_OWEN.pdf на прилагаемом диске или скачать его http://www.owen.ru/documents/catalog...n_OWEN_2.0.zip
    Увлекательного чтения.

    P.S.
    А замедление у Вас произошло по тому, что Вы пытаетесь 1000 раз в секунду вычислить полином 9 или 10 степени. Это довольно сложная задача, и если её действительно надо выполнять, то это следует делать не каждый цикл ПЛК, а только при изменении значений на входе.
    P.P.S. Существует другой, более производительный метод расчета полинома, при котором возводить в степень не надо.
    P.P.P.S. И Вы забыли компенсацию холодного спая добавить.
    P.P.P.P.S. Temp := T3/10; - такое деление необходимо из-за того, что Вы выставили пределы линейного преобразования не соответствующие физ. величине.
    Последний раз редактировалось Филоненко Владислав; 16.11.2009 в 18:41.

  3. #3

    По умолчанию

    спасибо! вот не потеряли бы диск, тогда наверно вопросов бы и не было только вот файла такого не существует, со страницы плк также по ссылке ошибка 404

  4. #4

    По умолчанию

    да, сервак висит.

  5. #5

    По умолчанию

    последовал вашему совету, плк стал работать явно шустрее, но возник такой момент - показания несколько завышены: комнатная температура примерно 32 с (чего явно много), вода в чайнике закипает при 107 с... нормально ли это?

  6. #6

    По умолчанию

    1. а вы уверены, что правильный тип термопары?
    2. компенсация хс включена?

  7. #7

    По умолчанию

    компенсация включена, термопара тха(к) выбран Tp_k, остальные тоже попробовал, они еще больше дурят. если расчитывать влоб по моей программе, то комнатная порядка 25 с, что похоже на правду.

  8. #8

    По умолчанию

    ну так полиномы то одинаковые...

  9. #9

    По умолчанию

    но если по-заводскому, то оно 32 показывает, а по моему - 25...

  10. #10

    По умолчанию

    оффтоп
    Цитата Сообщение от филоненко владислав Посмотреть сообщение
    P.p.s. существует другой, более производительный метод расчета полинома, при котором возводить в степень не надо.
    а что за метод? интерполяция сплайнами?
    Я знаю то, что я ничего не знаю. Но другие не знают и этого. (Сократ).

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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