Подниму тему, так как этот вопрос сейчас очень актуален.
Кусок кода по которому пытаюсь запустить модем и GPRS.
Модем запускается, а команда для запуска GPRS не отрабатывает.

Код:
IF NOT GSM_REG THEN
	CASE STATE_MODEM OF
	0: TMR_GSM(IN:=NOT TMR_GSM.Q,PT:=T#1S); (* 1c Выключить модем*)
		SysExecute('killall pppd');		
		IF TMR_GSM.Q THEN
			Active(
				Activ:= FALSE, 
				Stat:= , 
				Ready=> , 
				Power_key=> PwrKey, 
				Power=> Pwr); 
			STATE_MODEM := 1;
		END_IF
	
	1: TMR_GSM(IN:=NOT TMR_GSM.Q,PT:=T#5S); (* 5c Включить модем *)
		IF TMR_GSM.Q THEN
			Active(
				Activ:= TRUE, 
				Stat:= , 
				Ready=> , 
				Power_key=> PwrKey, 
				Power=> Pwr); 
			STATE_MODEM := 2;
		END_IF
	
	2: TMR_GSM(IN:=NOT TMR_GSM.Q,PT:=T#20S); (*20с ЗАДАТЬ РЕЖИМ GPRS*)
		IF TMR_GSM.Q THEN
			SysExecute('/usr/sbin/pppd call mts.gprs');
			STATE_MODEM:= 3;
		END_IF
	
	3: TMR_GSM(IN:=NOT TMR_GSM.Q,PT:=T#10S); (*10с Проверка GPRS*)
		IF TMR_GSM.Q THEN
			SysExecute('/sbin/ifconfig ppp0 > /mnt/ufs/usr/connect.tmp');
			STATE_MODEM:= 4;
		END_IF

	4: TMR_GSM(IN:=NOT TMR_GSM.Q,PT:=T#5S); (* 5с Проверка размера лога *)
		IF TMR_GSM.Q THEN
			
			fb_file_Size(
				xExecute:= log4, 
				xDone=> log1, 
				xBusy=> log2, 
				xError=> log3, 
				sFileName:= FileName, 
				eError=> f_Size_Err, 
				szSize=> f_Size);	
				
			IF f_Size > 30 THEN 
				STATE_MODEM:=6;
			ELSE
				STATE_MODEM:= 0;
			END_IF	
		END_IF
	
	6:  SysExecute('/sbin/ifconfig ppp0 > /mnt/ufs/usr/connect2.tmp');
		GSM_REG := TRUE;
		 				
	END_CASE
END_IF
Через WinSCP команда '/usr/sbin/pppd call mts.gprs' проходит.
Что делаю не так, может есть альтернативные варианты подключения GPRS?