У меня небыло опыта работы СПК по 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=> );
//и т.д