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

Тема: Проблема с пересохранением переменной

  1. #1

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

    Здравствуйте!

    Помогите, пожалуйста, решить проблему. Написал блок в Codesys 2.3 для ПЛК. В нем какая то загвоздка с присвоением "Temp_Prev := Temp_Curr;"
    При выполнении этого присвоения у Temp_Prev сохраняется прошлое значение. Переменные Temp_Prev и Temp_Curr обе глобальные. Подскажите в какую сторону копать?

    Код:
    (*Данный блок выполняется 1 раз при завершении времени таймера отсчета ступени.
    Далее он может повторно выполняться при условии, что разница температур была больше 45 градусов. 
    Условием для повторного выполнения будет сигнал с дополнительного таймера включения с отсчетом 1 час*)
    
    IF Exec_trig THEN
    
    		delT := Temp_Curr - Temp_Prev;
    
    		IF delT < ust_delT THEN
    
    			(*Если разница температур меньше 45 градусов, то подаем сигнал на увеличение ступени на 1 и сбрасываем таймер отсчета ступени*)
    			StepUp := TRUE;
    			ResetTimer := TRUE;
    			ExtraTimer_On := FALSE;
    
    
    		ELSE
    			(*В противном случае присваиваем текущее значение температуры предыдущему и запускаем таймер повторного выполнения блока спустя 1 час*)
    
    			Temp_Prev := Temp_Curr;
    			StepUp := FALSE;
    			ResetTimer := FALSE;
    			ExtraTimer_On := TRUE;
    
    		END_IF
    
    ELSE
    
    		(*Если нет сигнала на выполнение, то обнуляем подъем ступени и сброс таймеров*)
    		StepUp := FALSE;
    		ResetTimer := FALSE;
    
    END_IF

  2. #2
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    В нем какая то загвоздка с присвоением "Temp_Prev := Temp_Curr;"
    При выполнении этого присвоения у Temp_Prev сохраняется прошлое значение.
    После этого присвоения точка останова на строке "StepUp := FALSE" и смотрим что в Temp_Prev

  3. #3

    По умолчанию

    Цитата Сообщение от Junoka Посмотреть сообщение
    Здравствуйте!

    Помогите, пожалуйста, решить проблему. Написал блок в Codesys 2.3 для ПЛК. В нем какая то загвоздка с присвоением "Temp_Prev := Temp_Curr;"
    При выполнении этого присвоения у Temp_Prev сохраняется прошлое значение. Переменные Temp_Prev и Temp_Curr обе глобальные. Подскажите в какую сторону копать?
    У меня никакой загвоздки нет. До достижения Temp_Curr=45 градусов присвоения нет.
    При достижении и срабатывании таймера Exec_trig, идёт присвоение "Temp_Prev := Temp_Curr;" См. скрин 1 Присвоение.jpg

    Пока только одна идея. Возможно у вас переменная Temp_Prev есть глобальная и локальная. Тогда в блоке локальная присвоится, а глобальная нет. Достаточно открыть экземпляр блока при работе и посмотреть.
    Если нет то выкладывайте проект целиком.
    Последний раз редактировалось kondor3000; 02.11.2022 в 19:49.

Похожие темы

  1. Проблема с записью переменной при отладке
    от ВладимирВ в разделе СПК1хх
    Ответов: 2
    Последнее сообщение: 06.03.2020, 13:45
  2. Проблема с переменной retein
    от LamSer в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 11.02.2014, 16:01
  3. Ответов: 2
    Последнее сообщение: 02.08.2011, 08:18
  4. Ответов: 3
    Последнее сообщение: 14.07.2010, 22:11
  5. проблема с конфиг. переменной плк63
    от Доренский Алексей в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 22.01.2010, 11:03

Ваши права

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