Подключить подключил а программно не могу разобраться, первый раз команда вроде возвращает нормальный ответ, а дальше идет ересь помогите разобраться
Код:
IF Enable THEN
//Если порт не открыт - открываем
IF NOT(Connect_Com) THEN
//Формируем настройки порта
PortSetting.sPort:=2; //номер порта
PortSetting.ulBaudrate:=9600; //Скорость работы
PortSetting.byStopBits:=0; //Кол-во стоповых бит 0 =один, 1=полтора , 2=два
PortSetting.byParity:=0; //Режим проверки четности 0 = нет, 1 = нечет, 2 = чет
PortSetting.ulTimeout:=0;
PortSetting.ulBufferSize:=0;
//Дополнительные параметры
PortSettingEX.byByteSize:=8;
PortSettingEX.bBinary := TRUE;
PortSettingEX.bDtrControl := FALSE;
PortSettingEX.bRtsControl := TRUE;
PortSettingEX.bOutxCtsFlow := FALSE;
PortSettingEX.bOutxDsrFlow := FALSE;
PortSettingEX.bDsrSensitivity := FALSE;
//PortSettingEX.bInX:=FALSE;
//PortSettingEX.bOutX:=FALSE;
//PortSettingEX.bTXContinueOnXoff:=FALSE;
//PortSettingEX.byXoffChar:=FALSE;
//PortSettingEX.byXonChar:=FALSE;
//Открываем порт
Handle:=SysCom.SysComOpen2(ADR(PortSetting),ADR(PortSettingEx),ADR(res));
IF handle=16#FFFFFFFF THEN
ErrCode:=1;
Enable:=FALSE;
RETURN;
ELSE
Connect_Com:=TRUE;
END_IF
IF res<>0 THEN
ErrCode:=2;
SysCom.SysComClose(Handle);
Enable:=FALSE;
RETURN;
ELSE
Connect_Com:=TRUE;
END_IF *)
END_IF
//Если порт открыт - передаем AT-команды модему
IF Connect_Com THEN
//Получение ответа
IF OnAnswer THEN
LenRead:=SysCom.SysComRead(Handle,ADR(BufOtvet),LenOtvet,0,res);
IF LenRead>0 THEN
Otvet:=CONCAT(otvet,LEFT(BufOtvet, UDINT_TO_INT(LenRead)));
END_IF
IF Len(Otvet)>=LenOtvet THEN
OnAnswer:=FALSE;
ErrCode:=0;
Enable:=FALSE;
SysCom.SysComClose(Handle);
Connect_Com:=FALSE;
RETURN;
END_IF
END_IF
//Передача AT-команды
IF NOT(OnAnswer) THEN
Otvet:='';
LenBuf:=Len(command1);
LenWrite:=SysCom.SysComWrite(Handle,ADR(command1),LenBuf,0,res);
IF LenBuf = LenWrite THEN
OnAnswer:=TRUE;
ELSE
ErrCode:=3;
SysCom.SysComClose(Handle);
Enable:=FALSE;
RETURN;
END_IF
END_IF
END_IF
END_IF