на вскидку как то так:
(************************************************* ******
Открываем порт
************************************************** *****)
(*Открываем первый порт - для чтения*)
(*
Номер порта (com_number):
0 - RS-485
1 - RS-232
4 - RS-232 DEBUG
*)
com_num1:=0;
(*
Настройки порта (com_settings):
byParity - Режим проверки четности 0 = нет, 1 = нечет, 2 = чет
byStopBits - Кол-во стоповых бит 0 =один, 1=полтора , 2=два
dwBaudRate - Скорость обмена 4800, 9600, 19200, 38400, 57600, 115200 бит/с.
dwBufferSize - Не используется должно быть =0
dwScan - Не используется должно быть =0
dwTimeout - Не используется должно быть =0
Port - Номер порта в формате перечисления PORTS (com_number)
*)
Settings1.Port:=com_num1;
Settings1.dwBaudRate:=19200;
Settings1.byParity:=0;
Settings1.dwTimeout:=1;
Settings1.byStopBits:=0;
Settings1.dwBufferSize:=0;
Settings1.dwScan:=0;
(*
Настройка и открытие порта (COM_SERVICE)
Пока на выходе Ready не будет сигнал TRUE, стучимся в порт
Порт открывается с настройками, указанными в com_settings,
а на вход Task подаются следующие значения:
0 - Открытие и настройка порта в соответствии с настройками в структуре Settings
1 - Изменение настроек уже открытого порта на настройки указанные в Settings
2 - Закрытие порта, номер порта берется из Settings.Port
*)
COM_SERVICE1(Enable:= NOT COM_SERVICE1.ready, Settings:=Settings1 , Task:=OPEN_TSK );
com_ready1 := COM_SERVICE1.ready; (* думаю это лишнее *)
(*Открываем второй порт - для записи*)
IF COM_SERVICE1.ready THEN
(*
Номер порта (com_number):
0 - RS-485
1 - RS-232
4 - RS-232 DEBUG
*)
com_num2:=1;
(*
Настройки порта (com_settings):
byParity - Режим проверки четности 0 = нет, 1 = нечет, 2 = чет
byStopBits - Кол-во стоповых бит 0 =один, 1=полтора , 2=два
dwBaudRate - Скорость обмена 4800, 9600, 19200, 38400, 57600, 115200 бит/с.
dwBufferSize - Не используется должно быть =0
dwScan - Не используется должно быть =0
dwTimeout - Не используется должно быть =0
Port - Номер порта в формате перечисления PORTS (com_number)
*)
Settings2.Port:=com_num2;
Settings2.dwBaudRate:=19200;
Settings2.byParity:=0;
Settings2.dwTimeout:=1;
Settings2.byStopBits:=0;
Settings2.dwBufferSize:=0;
Settings2.dwScan:=0;
(*
Настройка и открытие порта (COM_SERVICE)
Пока на выходе Ready не будет сигнал TRUE, стучимся в порт
Порт открывается с настройками, указанными в com_settings,
а на вход Task подаются следующие значения:
0 - Открытие и настройка порта в соответствии с настройками в структуре Settings
1 - Изменение настроек уже открытого порта на настройки указанные в Settings
2 - Закрытие порта, номер порта берется из Settings.Port
*)
COM_SERVICE2(Enable:= NOT COM_SERVICE2.ready , Settings:=Settings2 , Task:=OPEN_TSK );
com_ready2 := COM_SERVICE2.ready; (* думаю это лишнее *)
END_IF
Trans1 := COM_SERVICE1.ready AND COM_SERVICE2.ready;




Ответить с цитированием
