Показано с 1 по 10 из 23

Тема: Библиотека OwenNet.lib

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6
    Пользователь
    Регистрация
    01.12.2007
    Адрес
    Воронеж
    Сообщений
    234

    По умолчанию

    Хочу получать данные с ТРМов. ПЛК63
    Код:
    VAR
    	Settings:COMSETTINGS;				(* настройки последовательного порта *)
    	COM_SERVICE1: COM_SERVICE;
        OWPool : OwenPoolMaster;
    
    	ww: int16;
    
    	ScanParams: ARRAY[0..3] OF OwenPool :=
          ( every := T#1s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 30, AddrLen := A8BIT, Name := 'PV', Index := 16#FFFF, TimeOut := T#100ms),
          ( every := T#1s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 31, AddrLen := A8BIT, Name := 'PV', Index := 16#FFFF, TimeOut := T#100ms),
          ( every := T#5s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 30, AddrLen := A8BIT, Name := 'SP', Index := 16#FFFF, TimeOut := T#100ms),
          ( every := T#5s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 31, AddrLen := A8BIT, Name := 'SP', Index := 16#FFFF, TimeOut := T#100ms);
    END_VAR
    
    
    (*Если COM-порт открыт, то переходим к приему и передачи данных *)
    IF( NOT COM_SERVICE1.ready)THEN
    (*Устанавливаем настройки COM-порта*)
    		Settings.Port:= 0;               (*COM0 – RS485, COM1 – RS232, COM2 – ?? ???., COM3 - ?? ???., COM4 – RS232-Debug*)
    		Settings.dwBaudRate:=115200;    (*скорость*)
    		Settings.byParity:=0;
    		Settings.dwTimeout:=0;
    		Settings.byStopBits:=0;
    		Settings.dwBufferSize:=0;
    		Settings.dwScan:=0;
    
           COM_SERVICE1(Enable:= TRUE, Settings:=Settings , Task:=OPEN_TSK );
           RETURN;
    END_IF
    (**********************************************************************************************************************************************)
    OWPool(
      ENABLE := TRUE,
      Count := ( SIZEOF( ScanParams)/SIZEOF( ScanParams[ 0])),
      Pool := ADR(ScanParams[ 0]),
      IsListen := FALSE,
      ComHandle := Settings.Port);
    IF( ScanParams[ 0].Complete)THEN
          tank2.Temperature( ENABLE := TRUE, _val := REAL_TO_INT( ScanParams[ 0].ValReal));
    ww:=ScanParams[ 0].error;
    END_IF;
    Получаю ошибки по таймауту.
    ТРМ настроил вроде правильно, вкрайнем случае RS моргают, правда чегото значительно реже 1 раза в секунду.
    МСД-100 сидящей на этой же шине в режиме шпиона( адр = 30, хеш = B8DF, индекс = 255), очень редко показывает( промаргивает) правильную температуру, в остальное время Ошибка(1)

    P.S. Почему такое разнообразие( тут имена параметров и какойто индекс(16bit), в МСД-100 какойто хеш и какойто индекс(8 bit)да еще и формат регистра F24 не наблюдается )
    Последний раз редактировалось pt200; 19.09.2010 в 12:44.

Ваши права

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