Vai al contenuto
PLC Forum


sharp 7 Error: TCP : Error sending Data


ildiego

Messaggi consigliati

Buongiorno,

Avrei un problema di comunicazione tra s-1200 e il programma che sto scrivendo in c#.

Sia con gli esempi trovati in rete sia con il programma che sto sviluppando, come valori letti dal plc ho solo zeri.

la riga di codice

byte[] db1Buffer = new byte[18];
int result = client.DBRead(1, 0, 18, db1Buffer);

restituisce il valore 7 corrispondente a Error: TCP : Error sending Data.

la connessione (ConnectTo) avviene senza nessun errore.

Sul plc ho fatto tutte le modifiche richieste dalla libreria (DB non ottimizzato, accesso completo senza protezioni e accesso tramite PUT/GET consentito).

 

qualcuno ha qualche idea a riguardo da consigliarmi?

Grazie mille

 

 

 

 

Link al commento
Condividi su altri siti


Ciao,

premetto che Snap7 finora l'ho usato solo con VC++ e non con net. In ogni caso:

- client deve esistere e deve esserci la connessione aperta per il PLC corretto (mi pare cambiasse un parametro fra 1500 e 1200);

- il DB sul PLC deve avere le proprietà che hai già elencato, compreso il PUT/GET consentito (che è un attributo della CPU, più che del DB);

- leggi 18 byte, quindi devono esistere i 18 byte all'interno del DB oltre all'ovvia esistenza del DB stesso;

- non devono esserci altre operazioni pendenti, altrimenti potrebbe andare in conflitto.

L'errore 7 che restituisce, onestamente non me lo ricordo; hai visto sul manuale ?

Spero possa esserti di aiuto ...

Link al commento
Condividi su altri siti

Grazie mille per la risposta Drugo.

l'errore 7 consiste in:       Error: TCP : Error sending Data.

Potresti spiegarmi meglio il punto1 (gli altri li ho verificati e sono ok),

ho verificato tramite prompt programmi digitando netstat -n ed emerge TCP    192.168.0.2:56116      192.168.0.1:102        ESTABLISHED, quindi la porta sembra essere ok.

quello che non capisco è: se il comando ConnectTo non restituisce errori, esiste comunque la possibilità di un settaggio non ottimale della comunicazione che mi fa apparire l'errore quando provo a leggere i dati dal DB del plc?

 

 

Link al commento
Condividi su altri siti

Il manuale riporta:

 

Quote

Cli_ConnectTo
Description
Connects the client to the hardware at (IP, Rack, Slot) Coordinates.
Declaration
int Cli_ConnectTo(S7Object Client, const char *Address, int Rack, int Slot);
function Cli_ConnectTo(Client : S7Object; Address : PAnsiChar; Rack, Slot : integer) : integer;
Parameters
Type Dir.
Client Native Integer In
The handle as return value of
Cli_Create(), passed by value.
Address Pointer to Ansi String In
PLC/Equipment IPV4 Address ex. “192.168.1.12”
Rack Integer In PLC Rack number (see below)
Slot Integer In PLC Slot number (see below)
Return value
 0 : The Client is successfully connected (or was already connected).
 Other values : see the Errors Code List.
Rack and Slot
In addition to the IP Address, that we all understand, there are two other parameters

that index the unit : Rack (0..7) and Slot (1..31) that you find into the hardware
configuration of your project, for a physical component, or into the Station
Configuration manager for WinAC.
There is however some special cases for which those values are fixed or can work with
a default as you can see in the next table.
Rack Slot
S7 300 CPU 0 2 Always
S7 400 CPU Not fixed Follow the hardware configuration.
WinAC CPU Not fixed Follow the hardware configuration.
S7 1200 CPU 0 0 Or 0, 1
S7 1500 CPU 0 0 Or 0, 1
CP 343 0 0 Or follow Hardware configuration.
CP 443 Not fixed Follow the hardware configuration.
WinAC IE 0 0 Or follow Hardware configuration.
In the worst case, if you know the IP address, run ClientDemo, set 0 as Rack and try to connect with different values of Slot (1..31).

 

Mi ricordo che c'era una differenza fra i parametri per il 1200 ed il 1500, ma al momento mi sfugge: prova a cercare Snap7 sul forum, magari trovi qualcosa ...

 

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...