PDA

Просмотр полной версии : СПК207 не открывает порт



PavelGO
25.09.2021, 21:48
Просьба подсказать, что делаю не так. Хэндл=0; Ошибка открытия порта fb_COMopen.xError.

0: fb_COMopen (xExecute:=FALSE);
fb_COMclose (xExecute:=FALSE);
PrevState:=State;State:=1;

1: Close();

2: (*Открываем порт*)
Settings();
Open();


------------------------------------------------
Код ComClose:

IF com_handle>0 AND com_handle<16#FFFFFFFF THEN
fb_COMclose.hCom := com_handle;
fb_COMclose.xExecute := TRUE;
fb_COMclose();
ELSE
PrevState:=State;State:=2;

END_IF

IF fb_COMclose.xDone THEN
fb_COMclose(xExecute := FALSE);
AddLog('Closed com');
PrevState:=State;State:=2;
END_IF;

------------------------------------------------
Код ComOpen:
fb_COMopen.usiListLength := UINT_TO_USINT(SIZEOF(aComParams) / SIZEOF(COM.PARAMETER));
fb_COMopen.pParameterList := ADR(aComParams);
fb_COMopen.xExecute := TRUE;
fb_COMopen();

IF fb_COMopen.xDone AND fb_COMopen.xExecute THEN
fb_COMopen(xExecute:=FALSE);
com_handle := fb_COMopen.hCom;

IF com_handle<>0 AND com_handle<>16#FFFFFFFF THEN
AddLog(concat('Opened com h=',UDINT_TO_STRING(com_handle)));
PrevState:=State;State:=2;
ELSE
PrevState:=State;State:=0;
END_IF

END_IF

IF fb_COMopen.xError AND fb_COMopen.xExecute THEN
fb_COMopen(xExecute:=FALSE);
PrevState:=State;State:=0;
AddLog('Error open com');

END_IF

----------------------------------
settings:
aComParams[1].udiParameterId := COM.CAA_Parameter_Constants.udiPort;
aComParams[1].udiValue := 2;
aComParams[2].udiParameterId := COM.CAA_Parameter_Constants.udiBaudrate;
aComParams[2].udiValue := 9600;
aComParams[3].udiParameterId := COM.CAA_Parameter_Constants.udiParity;
aComParams[3].udiValue := ANY_TO_UDINT(COM.PARITY.NONE);
aComParams[4].udiParameterId := COM.CAA_Parameter_Constants.udiByteSize;
aComParams[4].udiValue := 8;
aComParams[5].udiParameterId := COM.CAA_Parameter_Constants.udiStopBits;
aComParams[5].udiValue := ANY_TO_UDINT(COM.STOPBIT.ONESTOPBIT);

PavelGO
27.09.2021, 21:56
Узрел. Рановато сбрасывал блок открытия.