День добрый!
Есть функция инициализации портов:
Код:
FUNCTION XferPortCheck : BOOL
VAR_INPUT
isadc: BOOL:=FALSE;
END_VAR
VAR
END_VAR
IF isadc THEN
IF adc_com.Ready = FALSE THEN
adc_p.settings.Port := 1;
adc_p.settings.dwBaudRate := 57600;
adc_p.settings.byParity := 0;
adc_p.settings.dwTimeout := 0;
adc_p.settings.byStopBits := 0;
adc_p.settings.dwBufferSize := 0;
adc_p.settings.dwScan := 0;
adc_com(Enable:=TRUE, Settings:=adc_p.settings, Task:=OPEN_TSK);
aport := 0;
ELSE
aport := 1;
adc_com.Enable := FALSE;
END_IF
XferPortCheck := aport = 1;
ELSE
IF host_com.Ready = FALSE THEN
host_p.settings.Port := 0;
host_p.settings.dwBaudRate := 115200;
host_p.settings.byParity := 0;
host_p.settings.dwTimeout := 0;
host_p.settings.byStopBits := 0;
host_p.settings.dwBufferSize := 0;
host_p.settings.dwScan := 0;
host_com(Enable:=TRUE, Settings:=host_p.settings, Task:=OPEN_TSK);
hport := 0;
ELSE
hport := 1;
host_com.Enable := FALSE;
END_IF
XferPortCheck := hport = 1;
END_IF
При этом на порт 0 ничего не отсылается:
c := DWORD_TO_INT(SysComWrite(adc_com.Settings.Port, ADR(adc_p.txbuf), 4, 0));
в отладчике с всегда = 4, все ок, но в линии тишина. Порт 1 нормально работает и на прием и на передачу.
Проверялось на трех контроллерах.
Что можете посоветовать?