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

Тема: ПЛК304. ComService. Приём данных по RS232.

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию ПЛК304. ComService. Приём данных по RS232.

    Всем привет!
    Пытаюсь принять данные в порт по RS232. Данные шлю с ПК средствами терминала. Лампочка порта моргает. Пробовал разные настройки и варианты кода, но хоть бы байт в буфере
    Передача работает чётко.
    Буду благодарен если поделитесь опытом.
    Вот код одной попытки.

    Код:
    IF port_opened=0 THEN
    	Settings.sPort:=3; (* номер COM-порта 2 – Порт1, 3 - Порт2, 4 - Порт3, 5 - Порт4 *)
    	Settings.ulBaudrate:=9600;
    	Settings.byParity:=0; 
    	Settings.ulTimeout:=0;
    	Settings.byStopBits:=0;
    	Settings.ulBufferSize:=256;
    END_IF
    (*Открываем COM-порт*)
    COM_SERVICE1(Enable:=(port_opened=0), Settings:=Settings ,
    Task:=OPEN_TSK );
    (*Если COM-порт открыт, то переходим к приему и передаче
    данных *)
    IF COM_SERVICE1.ready THEN
    	port_opened:=2;
    //------------------Приём--------------------------------
     	readByte:=ComSerice.SysComRead(COM_SERVICE1.handle,ADR(readBuffer[0]),8,250,0);
     	IF readByte>0 THEN
    		i:=0;
    		WHILE readByte>0 DO
    			receivedData[i]:=readBuffer[i];
    			readByte:=readByte-1;
    			i:=i+1;
    		END_WHILE
    	END_IF
    //--------------Отправка----------------------------------
     	IF b_SendCommand=TRUE THEN 	 	
    		sendBuffer[0]:=48;
    		sendBuffer[1]:=49;
    		sendBuffer[2]:=50;
    		sendBuffer[3]:=51;
    		sendBuffer[4]:=52;
    		sendBuffer[5]:=53;
    		sendBuffer[6]:=54;
    		sendBuffer[7]:=55;
    		sendByte:=ComSerice.SysComWrite(COM_SERVICE1.handle,ADR(sendBuffer[0]),8,50,0);
    //-------------------------------------------------------	 
    	 	b_SendCommand:=FALSE;
    	END_IF 
    END_IF
    //------------------таймер 1с на отправку----------------
    SendPeriod(IN:=b_timerIN , PT:=T#1S , Q=>b_timerOUT , ET=>estTime );
    IF b_timerIN=FALSE THEN
    	b_timerIN:=TRUE;
    END_IF
    IF b_timerOUT=TRUE THEN
    	b_timerIN:=FALSE;
    	b_SendCommand:=TRUE;
    END_IF
    Последний раз редактировалось arsenius; 25.01.2016 в 11:03.

Похожие темы

  1. Вопрос по биб-ке ComService
    от Boris_K в разделе ПЛК1хх
    Ответов: 51
    Последнее сообщение: 04.01.2020, 21:27
  2. ПЛК304 + RS232
    от Константинов Сергей в разделе ПЛК3хх
    Ответов: 6
    Последнее сообщение: 31.05.2013, 12:53
  3. Непонятный глюк при работе rs232 ПЛК304
    от nestor в разделе ПЛК3хх
    Ответов: 16
    Последнее сообщение: 09.09.2012, 19:42
  4. ПЛК100 + RS232 = Передача данных
    от DrKillJoy в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 10.03.2011, 20:51

Ваши права

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