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

Тема: МСД-100 + ПЛК63(мастер)/OwenPoolMaster

Комбинированный просмотр

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

    По умолчанию

    Цитата Сообщение от pt200 Посмотреть сообщение
    Ну штож поднимем вопрос( оставленный без ответа) еще раз.
    1) почему OwenPoolMaster на скорости 115200 глючит круто( обновляет выходные переменные сразу во всех каналах, и ошибок связи примерно 50%, из них 39х примерно половина, остальные таймаут. Модбас на этих же проводах и скорости летает без вопросов, да еще и со сканом = 30 мс.)

    2)Как МСД заставить в лог писать числа в целочисленном формате без запятой и степени( ставил тип регистра int, ULong)

    3) как мсд заставить в режиме спая "опрашивать" 4 канала, но писать их(
    все 4 канала) на карту только по событию( изменение) в первом канале.

    4) Посылаю в МСД во таким вот "кодом"
    Код:
    	ScanParams: ARRAY[0..8] OF OwenPool :=
          ( every := T#500ms, IsRead := TRUE, EncodeType := OW_FL24, Addr := 40, AddrLen := A8BIT, Name := 'SP', Index := 0, TimeOut := T#100ms),       (*MB110: PIPE*)
          ( every := T#5s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 30, AddrLen := A8BIT, Name := 'PV', Index := 16#FFFF, TimeOut := T#100ms),  (*TRM: TANK2*)
          ( every := T#5s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 31, AddrLen := A8BIT, Name := 'PV', Index := 16#FFFF, TimeOut := T#100ms),  (*TRM: TANK3*)
          ( every := T#5s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 30, AddrLen := A8BIT, Name := 'SP', Index := 0, TimeOut := T#100ms),                (*TRM: TANK2*)
          ( every := T#5s, IsRead := TRUE, EncodeType := OW_FL24, Addr := 31, AddrLen := A8BIT, Name := 'SP', Index := 0, TimeOut := T#100ms),                (*TRM: TANK3*)
    
          ( every := T#500ms, IsRead := FALSE, EncodeType := OW_SINT2, Addr := 99, AddrLen := A8BIT, Name := 'T2', Index := 0, TimeOut := T#50ms),        (*MSD-100: T2 = 0x436C*)
          ( every := T#500ms, IsRead := FALSE, EncodeType := OW_SINT2, Addr := 99, AddrLen := A8BIT, Name := 'T3', Index := 0, TimeOut := T#50ms),        (*MSD-100: T3 = 0x679B*)
          ( every := T#500ms, IsRead := FALSE, EncodeType := OW_SINT2, Addr := 99, AddrLen := A8BIT, Name := 'C', Index := 0, TimeOut := T#50ms),          (*MSD-100: C = 0xE4EE*)
          ( every := T#100ms, IsRead := FALSE, EncodeType := OW_SINT2, Addr := 99, AddrLen := A8BIT, Name := 'Type', Index := 0, TimeOut := T#50ms);    (*MSD-100: Type = 0xC777*) 
    
    IF( EVENT <> EVENT_NONE)THEN
      ScanParams[ 5].ValDInt := tank2.Temperature.val.val;       (*MSD-100: T2 = 0x436C*)
      ScanParams[ 6].ValDInt := tank3.Temperature.val.val;       (*MSD-100: T3 = 0x679B*)
      ScanParams[ 7].ValDInt := 111;                                               (*MSD-100: C = 0xE4EE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)
      ScanParams[ 8].ValDInt := EVENT;                                         (*MSD-100: Type = 0xC777*)
      PoolType := 8;
      EVENT := EVENT_NONE;
      RETURN;
    END_IF
    
    (*Если COM-порт открыт, то переходим к приему и передачи данных *)
    IF( NOT COM_SERVICE1.ready)THEN
    (*Устанавливаем настройки COM-порта*)
    		Settings.Port:= 0;               (*COM0 – RS485, COM1 – RS232, COM2 – ?? ???., COM3 - ?? ???., COM4 – RS232-Debug*)
    		Settings.dwBaudRate:=9600;    (*скорость*)
    		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
    (**********************************************************************************************************************************************)
    CASE( PoolType)OF
      0:
        OWPool(
          ENABLE := TRUE,
          Count :=  5,(*( SIZEOF( ScanParams)/SIZEOF( ScanParams[ 0])),*)
          Pool := ADR( ScanParams[ 0]),
          IsListen := FALSE,
          ComHandle := Settings.Port);
    
      8..14:
        OWPool(
          ENABLE := TRUE,
          Count :=  3,
          Pool := ADR( ScanParams[ 5]),
          IsListen := FALSE,
          ComHandle := Settings.Port);
        IF( ScanParams[ 5].Complete)THEN PoolType := PoolType OR 1;END_IF
        IF( ScanParams[ 6].Complete)THEN PoolType := PoolType OR 2;END_IF
        IF( ScanParams[ 7].Complete)THEN PoolType := PoolType OR 4;END_IF
        RETURN;
    
      15:
        OWPool(
          ENABLE := TRUE,
          Count :=  1,
          Pool := ADR( ScanParams[ 8]),
          IsListen := FALSE,
          ComHandle := Settings.Port);
        IF( ScanParams[ 8].Complete)THEN PoolType := 0;END_IF
        RETURN;
    
    ELSE
        task_Main_ERROR( info := 'упс...task_Comm_RS_485_1');
        RETURN;
    
    END_CASE;
    Почему частично нормальным( запятая никчему) принимается только ScanParams[ 8]. А 5,6,7 - какаято галиматья( раз принимается , значит и передается )

    5) И какого конфигуратор МСД-100 вечно орет( когда на горячую работаешь) что не удалось записать регистр, но настройку вроде применяет, а вроде и нет.
    Если конфигуриш в оффлайнее, а потом подключаешся, много раз орет что не удалось записать регистр.


    6) Если я передаю тип OW_SINT2, какой должен стоять в МСД-100
    недурственно былобы вообщето табличку соответствия
    Короче, из вот ентого списка вскользь "пробежались" только по части 4го пункта, да и то я могу пойти на принцип, поставить реальное устройство, засыпать его уставками и проверить что будет ловить МСД( есть подозрение, что тоже самое) !

    P.S. Впринципе у меня задача сделать устройство с требуемыми функциями, а не у вас ошибки искать( тем более зарплату тестера от ОВЕНА не получаю), так что готов выслушать и какие нибудь нестандартные методы решения поставленных задач
    Последний раз редактировалось pt200; 28.09.2010 в 09:50.

Ваши права

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