Показано с 1 по 9 из 9

Тема: какой период программного цикла в режиме эмуляции плк?

  1. #1
    Пользователь Аватар для amkuznecov
    Регистрация
    24.12.2012
    Адрес
    Ковров
    Сообщений
    35

    По умолчанию какой период программного цикла в режиме эмуляции плк?

    У меня почему то получается 1s, судя по таймеру TOF

  2. #2

    По умолчанию

    цикл в эмуляции определяется скоростью ПК.

  3. #3
    Пользователь Аватар для amkuznecov
    Регистрация
    24.12.2012
    Адрес
    Ковров
    Сообщений
    35

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    цикл в эмуляции определяется скоростью ПК.
    i:=i+1;

    IF (i=3) THEN
    var1:=TRUE;
    ELSE
    var1:=FALSE;
    END_IF

    TOFInst(IN := Var1, PT:= T#100ms);
    Var2 :=TOFInst.Q;

    такая конструкция сбрасывает фронт TOF в первом же цикле

    при PT=5000 через 5 циклов


    А вот задача вызываемая циклически тикает четко в соответствии с заданным периодом

  4. #4

    По умолчанию

    Не скажу точно. Лучше этот вопрос у Пролога уточнить.
    С типом контроллера это точно не связано - эмуляция делается ресурсами ПК (выделяется на это время).

  5. #5
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от amkuznecov Посмотреть сообщение
    i:=i+1;

    IF (i=3) THEN
    var1:=TRUE;
    ELSE
    var1:=FALSE;
    END_IF

    TOFInst(IN := Var1, PT:= T#100ms);
    Var2 :=TOFInst.Q;

    такая конструкция сбрасывает фронт TOF в первом же цикле

    при PT=5000 через 5 циклов


    А вот задача вызываемая циклически тикает четко в соответствии с заданным периодом
    попробуйте такую конструкцию
    Код:
    i:=i+1;
    IF tik.Q THEN
    	j:=i;
    	i:=0;
    END_IF;
    tik(IN:=NOT tik.Q,PT:=T#100ms);
    где tik это TON. Смотрите за значением переменной j. В Вашем коде это не явно, но в обоих случаях сумма показывает количество циклов за определенный промежуток времени, причем при изменении времени зависимость не линейная

    ЗЫ интересно какую методику Вы использовали, чтоб понять что ТОФ сбросился в первом же цикле

  6. #6
    Пользователь Аватар для amkuznecov
    Регистрация
    24.12.2012
    Адрес
    Ковров
    Сообщений
    35

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ЗЫ интересно какую методику Вы использовали, чтоб понять что ТОФ сбросился в первом же цикле
    Переменую Var2 смотрю в отладчике, переменная i++ считает количество циклов, на ней точка останова
    Последний раз редактировалось amkuznecov; 21.03.2013 в 12:47.

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от amkuznecov Посмотреть сообщение
    Переменую Var2 смотрю в отладчике, переменная i++ считает количество циклов, на ней точка останова
    из Вашего кода не видно оказывют ли какое действие на эту переменную внешние факторы, до присвоения ей выхода тофа, возможно поэтому при остановах она может иметь не требуемое значение

  8. #8
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Проще.

    Код:
    PROGRAM PLC_PRG
    VAR
    	d, t: TIME;
    END_VAR
    
    d := TIME() - t;
    t := TIME();

  9. #9
    Пользователь Аватар для amkuznecov
    Регистрация
    24.12.2012
    Адрес
    Ковров
    Сообщений
    35

    По умолчанию

    Разобрался, фишка в том что программа хоть и стоит на точке останова, а TOF все равно считает выдержку

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 05.04.2017, 13:20
  2. Ответов: 16
    Последнее сообщение: 26.03.2013, 10:06
  3. Ответов: 0
    Последнее сообщение: 30.06.2009, 00:24
  4. Ответов: 1
    Последнее сообщение: 16.02.2009, 15:09

Ваши права

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