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

Тема: СПК207: RS-232 мастер

  1. #1
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию СПК207: RS-232 мастер

    У меня небыло опыта работы СПК по RS-232. Но вот, появилась необходимость чтения регистров из теплосчетчика Взлет, по этому интерфейсу.
    У меня уже была работающая программа опроса этого счетчика, использующая библиотеку ModulsOwenLib, но для RS-485-го порта.
    Решил пойти простым путем:
    1. Переключить 2-й порт СПК в режим работы RS-232 через его меню. Применил, перезагрузился.
    2. Заменил переменные ComConn.Port_Mode:=2->0 и ComConn.Port_ModeOn:=false->true
    3. Блоки UniRead не трогал. Вроде все должно остаться как есть.

    Вроде ничего не изменил, кроме типа интерфейса, а не работает. Индикатор порта 2 мигает. Может я что-то упустил?

    И еще. Вроде как можно подключиться через гипертерминал и послушать порт СПК. Подключался, вводил настройки частоты, а в окне пусто... Может снова что-то не так делаю?

    Ниже привожу кусок кода опроса. Надеюсь все будет понятно.
    Код:
    	// Открытие порта 1
    	Opn_port_1: ComConn;
    	// режим работы порта 1
    	mode_com1: BYTE;
    	// Блок чтения расхода со взлета 1
    	Read_Vzlet_1: UniRead_Input_Regs; // UniRead_Input_Regs это то же UniRead, только использует команду чтения входных регистров (0x04 вместо 0x03) (особенности размещения данных в вычислителе Взлет)
    
    
    
    //!!! Для теста, в самом деле, я использовал порт 2 !!!
    
    //Работаем с портом 1 
    //открываем порт 1
    IF NOT Opn_port_1.Done THEN 
    Opn_port_1(
    	enable:=TRUE , 
    	PortNum:=3 , 
    	PortBaudrate:=9600 , 
    	PortParity:=0 , 
    	PortStopBits:=1 , 
    	PortByteSize:=8 , 
    	Port_Mode:=0 , 
    	Port_ModeOn:=TRUE , 
    	Port_CloseOn:= , 
    	Handle=> , 
    	Done=> , 
    	ErrCode=> );
    END_IF
    CASE mode_com1 OF
    	0:
    	IF  Opn_port_1.Done THEN
    		mode_com1:=mode_com1+1;
    		Read_Vzlet_1.Enabl:=TRUE;
    	END_IF
    	1:
    	IF Read_Vzlet_1.done THEN
    		Read_Vzlet_1.Enabl:=FALSE;
    		Read_Vzlet_2.Enabl:=TRUE;
    		mode_com1:=mode_com1+1;
    	END_IF
    	2:
    	IF Read_Vzlet_2.done THEN
    		Read_Vzlet_2.Enabl:=FALSE;
    		Read_Sum_Vzlet_1.Enabl:=TRUE;
    		mode_com1:=mode_com1+1;
    	END_IF
    	3:
    	IF Read_Sum_Vzlet_1.done THEN
    		Read_Sum_Vzlet_1.Enabl:=FALSE;
    		Read_Sum_Vzlet_2.Enabl:=TRUE;
    		mode_com1:=mode_com1+1;
    	END_IF
    	4:
    	IF Read_Sum_Vzlet_2.done THEN
    		Read_Sum_Vzlet_2.Enabl:=FALSE;
    		mode_com1:=mode_com1+1;
    	END_IF
    ELSE
    	mode_com1:=0;	
    END_CASE
    
    Read_Vzlet_1(
    	Handle:=Opn_port_1.Handle , 
    	Enabl:= , 
    	Modd:= , 
    	Addr:=33(**) , 
    	RegAddr:=49242 , 
    	TimeOut:=T#300MS , 
    	ErCL:= , 
    	VarAdr:=ADR(Tube_Discharge[1].Value) , 
    	VarType:=2 , //если не пойдет - поставить тип 2
    	wErrCode=>Tube_Discharge[1].Error , 
    	done=> );
    	
    Read_Vzlet_2(
    	Handle:=Opn_port_1.Handle , 
    	Enabl:= , 
    	Modd:= , 
    	Addr:=33(**) , 
    	RegAddr:=49244 , 
    	TimeOut:=T#300MS , 
    	ErCL:= , 
    	VarAdr:=ADR(Tube_Discharge[2].Value) , 
    	VarType:=2 , 
    	wErrCode=>Tube_Discharge[2].Error , 
    	done=> );
    //и т.д

  2. #2
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    Может не проходит переключение? Прослушайте и 485 и 232 - станет ясно

  3. #3
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Да, похоже что не происходит переключения. Через меню СПК настроил оба порта на 232, думал может перепутаны местами. Ничего не изменилось: гипертерминал фиксирует запросы только по 485-му порту (через АС3-М), подключаю кабель (КС-1) к 232-му - там тишина.
    При этом, не важны настройки ComConn.Port_Mode и ComConn.Port_ModeOn, все равно запросы идут по RS-485.

  4. #4

    По умолчанию

    Заяц, добрый день.
    Для решения вашей проблемы зайдите в реализацию функционального блока ComConn.
    Добавьте перед условием:
    Код:
    (*Если COM-порт открыт, то переходим к приему и передачи данных *)
    	IF (handle <> 16#FFFFFFFF ) THEN //если условие не выполняется то порт занят
    		done:=TRUE;
    		trig(RESET1:=true);
    		ELSE
    		done:=FALSE;
    	END_IF 
    Следующую строчку:

    Код:
    res:=RS_mode_Setup(handle,RS_485);


    Указав тип. RS_232. Есть описание на этот блок. Рекомендую прочитать.

  5. #5
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    a.tkachenko, здравствуйте.
    Решил воспользоваться Вашим советом, и во время подключения ПК к СПК, с помощью кабеля КС1, понял, что СОМ2 СПК имеет разъем под RJ45, а КС1 - RJ25! Вот это промах! Хотя, если не присматриваться, он хорошо защелкивается и отлично держится. Хм, нет защиты от дурака, учитывая, что каждый СПК комплектуется подробным кабелем...

  6. #6

    По умолчанию

    RJ25 от RJ45 отличается одной перемычкой. В РЭ это все указано.

  7. #7
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Не соглашусь: RJ25(RJ12) - 6-и контактный коннектор; RJ45 - 8-и контактный коннектор.
    Но даже если считать что 1-й контакт RJ25 попадает на 2-й контакт RJ45, то получаются соединения: RTS<->RxD, GND<->TxD, CTS<->GND. Это явно не то, что нам нужно.
    Изображения Изображения

Похожие темы

  1. Зависание СПК207
    от Солнечный заяц в разделе СПК2хх
    Ответов: 8
    Последнее сообщение: 22.05.2014, 14:27
  2. Быстродействие СПК207
    от Amko в разделе СПК2хх
    Ответов: 42
    Последнее сообщение: 17.02.2014, 17:49
  3. СПК207 USB
    от ОАО"Органика" в разделе СПК2хх
    Ответов: 6
    Последнее сообщение: 31.08.2012, 16:04
  4. Ответов: 5
    Последнее сообщение: 07.09.2011, 09:36

Ваши права

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