Vai al contenuto
PLC Forum


Funzione Apertura Rs485


Virgo__83

Messaggi consigliati

Salve a tutti

ho un problema con la comunicazione via rs485 tramite adattatore USB.

ho realizzato un programma C e inserito le seguenti righe di codice:


int openPort(void) {

	dictionary * ini;

	ini = iniparser_load("fileIni/setting.ini");

	char *porta = iniparser_getstring(ini, "Setting:porta", NULL);

	char path[1024];

	int i;

	for (i = 0; i < 1024; i++)

		path[i] = 0;

	path[0] = '\0';

	sprintf(path, "/dev/%s", porta);

	int fd = open("/dev/ttyUSB0", O_RDWR);//problema

	printf("fd: %d\n",fd);

	/*if(fd<0){

	  reboot(RB_AUTOBOOT);

	} */

	return fd;

}

appena l'esecuzione arriva ad eseguire la open della porta ttyUSB0 rimane bloccato li' senza proseguire ne stampare errori. (in realta' nella versione originale, come si vede dal codice, leggo la porta da un file ini, ma per escludere ulteriori problemi l'ho forzata a mano). Ovviamente ho controllato la presenza del file /dev/ttyUSB0 che viene creato nel momento in cui inserisco l'adattatore nella USB. La velocita' di comunicazione e' a 19200.

Se metto una porta qualsiasi non connessa a nessun dispositivo mi restituisce, ovviamente, fd=-1.

Quello che mi chiedo e' se possa essere un problema hardware di installazione dell'adattatore o dei collegamenti sul PLC (e' un PowerOne). Dal momento che sto cercando di gestirlo da remoto, prima di dover andare sul posto, vorrei essere sicuro che non sia invece un problema software.

La open non dovrebbe solo aprire un file? se fosse un problema hardware non dovrei riscontrarlo in seguito, in fase di lettura/scrittura?

Qualcuno sa aiutarmi?

grazie

Modificato: da Virgo__83
Link al commento
Condividi su altri siti


Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...