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

Тема: помогите разобратса с программой

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию помогите разобратса с программой

    Проблема такова написал программку оформил её в функциональный блок в этом блоке я использую два таймера ton они у меня срабатывают если сигнал управляющий механизмом (магнитный пускатель) включен более 5 секунд (это время для нормального переключения механизма из положения А в положе не В, если не уложились в это время авария) в случае аварии таймер срабатывает и его выход tim1.Q меняет состояние с FALSE на TRUE, вы результате переменная отвечающая за аварию переводит выходы управления механизмом в FALSE следовательно сигнал на входе таймера меняться с TRUE на FALSE а выход tim1.Q таймера TON все равно остаться TRUE как его взвести заново тоесть перевести в FALSE
    привожу код и программу в архиве просьба сильно не ржать я киповец а не программист учусь помаленьку лучше укажите на места где можно сделать лучше и как
    FUNCTION_BLOCK PER_KLAPANA
    VAR_INPUT (*входные переменые датчики кнопки и тп*)
    A:BOOL; (*Экранная кнопка положение A*)
    B:BOOL; (*Экранная кнопка положение B*)
    SENSOR_A:BOOL; (*Вход датчика положение A*)
    SENSOR_B:BOOL; (*Вход датчика положение B*)
    (*PK_AVTO_MAN:BOOL; (*Переключатель Автомат / Ручное*)*)
    ALARM_RES:BOOL; (*Вход гашения аварии перкидного клапана*)
    END_VAR
    VAR_OUTPUT (*выходные переменые пускатели аварии и тп*)
    OUT_A:BOOL; (*Выход на пускатель положение A*)
    OUT_B:BOOL; (*Выход на пускатель положение B*)
    ALARM_OUT:BOOL; (*Выход авария перкидного клапана*)
    END_VAR
    VAR (*локальные переменые для внутрених нужд*)
    tim1:TON;
    tim2:TON;
    END_VAR
    -------------------------------------------------------------------------
    IF A=TRUE AND B=FALSE THEN
    OUT_A:=TRUE;
    END_IF;
    IF OUT_A=TRUE THEN
    tim1(IN := OUT_A, PT := T#5s);
    ALARM_OUT:=tim1.Q;
    END_IF;
    IF SENSOR_A=TRUE THEN
    OUT_A:=FALSE;
    END_IF;
    IF B=TRUE AND A=FALSE THEN
    OUT_B:=TRUE;
    END_IF;
    IF OUT_B=TRUE THEN
    tim2(IN := OUT_B, PT := T#5s);
    ALARM_OUT:=tim2.Q;
    END_IF;
    IF SENSOR_B=TRUE THEN
    OUT_B:=FALSE;
    END_IF;
    IF ALARM_OUT=TRUE THEN
    OUT_A:=FALSE;
    OUT_B:=FALSE;
    END_IF;
    IF ALARM_RES=TRUE THEN
    ALARM_OUT:=FALSE;
    END_IF;
    Вложения Вложения
    • Тип файла: zip test.zip (332.6 Кб, Просмотров: 27)

Ваши права

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