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

Тема: СПК107+ТРМ138+протокол овен

  1. #1

    По умолчанию СПК107+ТРМ138+протокол овен

    В общем в настройках ТРМ который у меня нет возможности выбора протокола передачи, полагаю это значит он умеет только по протоколу ОВЕН
    Нашел описание работы протокола с примером, насколько я понял библиотека siscomlib устарела и ей на смену пришла syscom - библиотеки в проект добавил все равно не компилируется не понимаю что не так и не могу найти примера. Компиятор ругается на Settings:=Settings что на мой взгляд вообще бред. Подскажите правильный пример, мануал или что у меня не так.
    Что эта строчка вообще делает COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK );
    Вложения Вложения

  2. #2

    По умолчанию

    у Вас в COM_service подгружена уже определённая версия библиотеки syscom.
    удалите отдельно добавленную syscom , а две переменные - settings и Com_num измените как тип переменных на :
    Settings: ComSerice.COM_Settings; (* настройки последова-тельного порта*)
    com_num: ComSerice.COM_PORTS:=1; (*0 - RS-485, 1 - RS-232*)

  3. #3

    По умолчанию

    Спасибо за ответ но все равно чего то не хватает, похоже порт не открывается. Светодиод ком порта на СПК не мигает.

    Объявление переменных:
    PROGRAM PLC_PRG
    VAR
    get_fl_owen:OWEN_GET_REAL; (*Чтение параметра типа Real*)
    send_fl_owen:OWEN_SET_REAL; (*Запись параметра типаRe al*)
    COM_SERVICE1: COM_SERVICE; (*открытиеCOM-порта*)
    cmpl: BOOL; (* признак завершения операции*)
    err: INT; (*номер ошибки*)
    port_opened: BYTE := 0; (*состояние порта*)
    com_num: ComSerice.COM_PORTS:=1; (*0 - RS-485, 1 - RS-232*)
    Settings:ComSerice.COM_Settings; (* настройки последова-тельного порта*)
    TimeOut: TIME:=T#50MS; (*таймаут*)
    Enabl: BOOL:=TRUE; (*состояние работы блока*)
    wTime: WORD; (*значение времени для измери-теля*)
    master1: BYTE := 0;
    A: REAL; (*считанное значение из ТРМ201*)
    b: REAL:=30;
    END_VAR



    Программа:
    *Устанавливаем настройкиCOM-порта*)
    IF port_opened=0 THEN
    COM_SERVICE1.Settings.SPort:=com_num; (*номерCOM-порта*)
    COM_SERVICE1.Settings.ulBaudrate:=9600; (*скорость*)
    COM_SERVICE1.Settings.byParity:=0;
    COM_SERVICE1.Settings.ulTimeout:=0;
    COM_SERVICE1.Settings.byStopBits:=1;
    COM_SERVICE1.Settings.ulBufferSize:=0;
    //COM_SERVICE1.Settings.ulScan:=0;
    END_IF
    COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK );
    (*ЕслиCOM-порт открыт, то переходим к приему и передачи данных*)
    IF COM_SERVICE1.ready THEN
    port_opened:=2;
    END_IF

    IF port_opened=2 THEN (*Удачно проинициализировали*)
    (*чтение параметра типаReal из прибора ТРМ201 с адресом8 из параметр с именемPV и индексом0*)
    get_fl_owen(
    Enable:=Enabl , (* разрешение работы блока*)
    Addr:=8 , (*адрес прибора*)
    AddrLen:=A8BIT , (*длина адреса*)
    Name:='pv' , (*имя параметра, значение которого считываем*)
    Index:=65535 , (*индекс параметра*)
    RealType:=FLOAT24 , (*тип параметра, значение которого считываем*)
    ComHandle:= COM_SERVICE1.Settings.SPort, (*номерCOM-порта*)
    TimeOut:=TimeOut , (*ТаймаутT#50ms*)
    Complete=>cmpl , (* скопировать признак готовности результата*)
    Value=>a , (*считанное значение*)
    wTime=>wTime , (*значение времени для измерителя*)
    Error=> err ); (* скопировать регистр ошибок*)
    (*если установлен признак завершения операции, то*)

    IF Enabl = FALSE THEN
    Enabl := TRUE;
    END_IF
    IF err <> 0 THEN
    Enabl := FALSE;
    END_IF
    END_IF
    Вложения Вложения

  4. #4

    По умолчанию

    Тоже не работает с этим кодом. Прибор ТРМ 210, пробовал так же ТРМ 101. Принудительно порт открываю, значение 65535 на выходе Error появляется с периодичностью в пол секунды, а Value не удается увидеть.
    Сделал аналогичный проект на CFC, открытие порта при помощи ComConn, - все работает.
    Изображения Изображения
    • Тип файла: png pic.PNG (13.1 Кб, Просмотров: 33)
    Вложения Вложения

Похожие темы

  1. Протокол ОВЕН ТРМ138
    от Andrewcik в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 20.08.2015, 09:28
  2. ТРМ138 протокол MODBUS
    от zibert15 в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 13.06.2015, 16:08
  3. Протокол ОВЕН, опрос ТРМ138 из линукс, ошибка EDESC
    от Vladimir_N-sk в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 13.08.2013, 12:17
  4. Опрос ТРМ138 по RS-485 ( протокол OWEN )
    от a_sergeevich в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 15.02.2013, 22:27
  5. Протокол ОВЕН
    от IL-28 в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 03.11.2012, 10:42

Ваши права

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