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

Тема: Непонятная ошибка чтения параметра rEAd ТРМ148

  1. #1

    По умолчанию Непонятная ошибка чтения параметра rEAd ТРМ148

    Здравствуйте. СПК110+ТРМ148. Протокол овен. Читаю с помощью owenlib. Прицепленны термопары на первые 2 входа. Owen_get_Real читает их, а потом затык. Что делать?

    Кусок кода :

    TRM1_GetReal_1 //Опрос текущих температур
    (
    Enable:=COM_SERVICE_COM2.Ready,
    Addr:=16+iChannel,
    AddrLen:=8,
    Name:='rEAd',
    Index:=16#FFFF,
    RealType:=FLOAT32T,
    ComHandle:=COM_SERVICE_COM2.handle,
    TimeOut:=T#50MS,
    Complete=> ,
    Value=> ,
    wTime=> ,
    Error=>
    );
    // [3.0.2] если ФБ чтения завершил работу...
    IF TRM1_GetReal_1.Complete THEN
    // ...и ошибки отсутствуют, то забираем считанное значение
    IF TRM1_GetReal_1.Error=0 THEN
    CH[iChannel]:=TRM1_GetReal_1.Value;
    counter2:=counter2+1;

    END_IF
    // завершаемработублока
    TRM1_GetReal_1(Enable:=FALSE);
    // переходим к следующему шагу
    iChannel:=iChannel+1;
    IF iChannel>7 THEN iChannel:=0; iStep:=1; END_IF
    END_IF


    т.е. TRM1_GetReal_1.Complete зависает в состояние FALSE и программа встает. а ошибка TRM1_GetReal_1.Error пишет 64768 (0xFD00). Что это за ошибка?. И как понять, что это действительно обрыв термопары??

    Могу ли я завершить принудительно работу блока TRM1_GetReal_1(Enable:=FALSE) и перейти к опросу следующего канала не дожидаясь TRM1_GetReal_1.Complete ???

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от msagent Посмотреть сообщение
    Здравствуйте. СПК110+ТРМ148. Протокол овен. Читаю с помощью owenlib. Прицепленны термопары на первые 2 входа. Owen_get_Real читает их, а потом затык. Что делать?

    Кусок кода :

    <...>
    // [3.0.2] если ФБ чтения завершил работу...
    IF TRM1_GetReal_1.Complete THEN
    // ...и ошибки отсутствуют, то забираем считанное значение
    IF TRM1_GetReal_1.Error=0 THEN
    CH[iChannel]:=TRM1_GetReal_1.Value;
    counter2:=counter2+1;

    END_IF
    // завершаемработублока
    TRM1_GetReal_1(Enable:=FALSE);



    т.е. TRM1_GetReal_1.Complete зависает в состояние FALSE и программа встает. а ошибка TRM1_GetReal_1.Error пишет 64768 (0xFD00). Что это за ошибка?. И как понять, что это действительно обрыв термопары??

    Могу ли я завершить принудительно работу блока TRM1_GetReal_1(Enable:=FALSE) и перейти к опросу следующего канала не дожидаясь TRM1_GetReal_1.Complete ???
    Вам надо завершение работы блока делать только по флагу Complete (т.е. внести это внутрь условия iF). См. пример:
    http://ftp.owen.ru/index.html/CoDeSy...owen_v.1.1.pdf

  3. #3

    По умолчанию

    Все бы хорошо, но флаг Complete не случается. Поэтому и работа ФБ не завершается. Цитата из вашей ссылки (листинг в конце документа):

    IF
    TRM212_GetReal.Complete
    THEN
    // ...и ошибки отсутствуют, то забираем считанное значение
    IF
    TRM212_GetReal.Error=0
    THEN
    TRM212_PV1:=TRM212_GetReal.Value;
    END_IF
    //
    завершаем
    работу
    блока
    TRM212_GetReal(Enable:=FALSE);
    // переходим к следующему шагу
    iStep:=1;
    END_ IF

  4. #4

  5. #5

    По умолчанию

    да.
    Вначале поставил одну термопару на первый канал. контроллер затыкался на чтение второго канала.
    Потом поставил вторую термопару. Контроллер стал затыкаться на третьем канале.
    Это по протоколу овен.
    По модбасу все читает. Но не дает читать текущую уставку (с применением графика коррекции - своего рода программный задатчик реализует)

  6. #6
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Я посмотрел исходники библиотеки - вы правы, флаг Complete не ставится, если в канале ошибка.

    Соответственно, надо делать как-то так:

    Код:
    IF TRM212_GetReal.Complete OR TRM212_GetReal.Error<>0 THEN
    
       // забираем значение и код ошибки
    
       TRM212_GetReal(Enable:=FALSE);
    
       iStep:=... // переходим к следующему шагу
    
    END_IF
    Документацию поправим в ближайшем будущем.

  7. #7

    По умолчанию

    Тогда что обозначает ошибка *TRM1_GetReal_1.Error пишет 64768 (0xFD00)?

  8. #8

    По умолчанию

    Ну и в догонку тогда вопрос. Как запустить/остановить работу объекта в ТРМ148 по сети? Параметров я таких не нашел в описании.

  9. #9

  10. #10
    Пользователь
    Регистрация
    08.12.2014
    Адрес
    г.Тейково Ивановской обл.
    Сообщений
    236

    По умолчанию

    Ну и в догонку тогда вопрос. Как запустить/остановить работу объекта в ТРМ148 по сети?
    Для электрических печей сопротивления можно выполнить изменением УСТАВКИ. Включение - УСТАВКА рабочая по технологии.
    Выключение - УСТАВКА ниже температуры помещения.
    С уважением

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

Похожие темы

  1. Непонятная ошибка C1042
    от gs_62 в разделе СПК2хх
    Ответов: 4
    Последнее сообщение: 22.02.2017, 18:18
  2. ПЛК 110-32M slave, libmodbus TCP, ошибка чтения регистров: Bad file descriptor
    от SerJK в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 22.04.2014, 12:12
  3. Непонятная проблема с ТРМ148
    от Иван П в разделе Эксплуатация
    Ответов: 8
    Последнее сообщение: 27.12.2012, 12:02
  4. непонятная ошибка после загрузки программы в плк63
    от Алексей Дмитриев в разделе ПЛК63/73
    Ответов: 16
    Последнее сообщение: 12.11.2010, 16:51
  5. ошибка чтения температуры с помощью Dll
    от незарегистрированный в разделе OWEN Proces Manager
    Ответов: 3
    Последнее сообщение: 16.04.2007, 19:58

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

Ваши права

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