Vai al contenuto
PLC Forum


S5 - comunicazione con CPU 115


Felix79

Messaggi consigliati

Ciao a tutti

sono uno sviluppatore di scada per una ditta che opera nel campo alimentare nella provincia di Cuneo.

Sino ad ora ho sviluppato supervisioni nuove partendo da PLC S7 (300 - 400) e come scada ho utilizzato Intouch.

Ora si è presentato un controllo con S5. L'impanto è esistensìte ormai da circa 15 - 20 anni e come survisione utilizza il COROS; visto che il questo sistema di supervisione sta andando a morire pensavo di renderlo un pò più sicuro affiancandolo con una surevisione sviluppata sempre su intouch che dialoghi in seriale via porta di programmazione con il PLC115.

I problemi che mi si sono presentati sono diversi:

1- Non conosco molto bene S5 perchè le mie conoscenze partono sa S7

2- sembrerebbe che non sia possibile uyilizzare direttamente la porta di programmazione ma sono obbligato a utilizzare un'eventuale sencoda porta TTY o inserire una nuova scheda dedicata alla comunicazione.

3- Occorre parametrizzare le porte di comunicazione o comunque limitare le aree da trasferire tra plc e pc

Io ho pensato di utlizzare direttamente la porta di programmazione xchè dovrebbe mettre tuttomil programma a disposizione (lo fa x S5) e lo fa in tramite porta seriale. Utilizzerei il cavo che la Siemens da in dotazione con le valigette di programmazione xchè al loro interno è già presente il convertitore da porta TTY (loop di corrente) a seriale.

Voi avete delle dritte da darmi?

Grazie 1000.

Link al commento
Condividi su altri siti


Personalmente io ho sempre utilizzato una scheda dedicata alla comunicazione con il HMI, la porta TTY l'ho sempre utilizzata x la comunicazione con pannelli. Di solito quando si deve impostare una comunicazione tramite porta TTY per S5 si devono inserire degli FB standart della Siemens, dove vado a indicare l'area di scrittura e di lettura (SE NON RICORDO MALE).

Il consiglio che ti posso dare dal mio pulto di vista è di inserire una scheda CP1413 TF, è una cheda ethernet , abbastanza semplice da avviare. Comunque anche in questa scheda devono essere dichiarate le aree di lettura e scrittura tramite programma PLC.

Link al commento
Condividi su altri siti

Sono daccordo con superd. Ho fatto alcune applicazioni del genere. Sul plc s5 puoi inserire una cp143 e comunicare col pc tramite questa scheda oppure far dialogare l's5 con un s7 e poi crei la comunicazione tra s7 e pc. Gli fb dell's5 per la scheda cp143 sono abbastanza semplici.

Ciao

Link al commento
Condividi su altri siti

Che modello di S5 è presente?Io ho realizzato una supervisione con InTouch con 3 S5-95U, 4 S5-100 ,un S7-300 e un S7-400...

Fammi sapere

Ciao

Link al commento
Condividi su altri siti

Grazie per i consigli che mi avete dato; per la domanda che mi ha fatto riccardo il mio plc è un s5 115 con CPU 943B. Tale cpu dispone solo di una porta di programmazione, ma ho visto su un'altro impianto esistente che esiste una versione anche con 2 porte TTY.

Il fatto di voler utilizzare è anche per un fatto economico visto che questa variante non è vitale meno riesco a spendere meglio è.

Link al commento
Condividi su altri siti

La CPU 943B indica che è predisposta per una seconda porta. Questa porta si deve acquistare a parte.

Modificato: da SuperD
Link al commento
Condividi su altri siti

stefano.gallo

Non vorrei sbagliarmi ma mi sembra che la 943B abbia due porte frontali. Comunque io quando usavo l'S5 con le supervisoni (es. Automa), mi collegavo tra la porta seriale del pc e la porta di programmazione del plc tramite il cavo 6ES5734-1BD20 della Siemens. Certo è che devi avere comunque una predisposizione del protocollo nel programma di supervisione (Intouch nel tuo caso) impostabile nella parte dedicata al partner di comunicazione. Bene o male ormai tutte le supervisioni hanno il protocollo per l'S5.

Ciao Stefano B)

Link al commento
Condividi su altri siti

Su una supervisione esistente che utilizza come comunicazione la porta seriale ho visto che Intouch mette a disposizione come I/O server un driver che si chiama S3946R la cui configurazione va ad agire sulla porta seriale.

Dalla parte del PLC occorre fare delle impostazioni sulla parte "COM DB1" dove ho visto viene identificata l'area dedicata allo scambio dei dati tra il PLC ed un altro partener?

Terminata questa procedura occorre ancora utilizzare le funzione di scambio FB220 o FB244 e FB245 ?

Link al commento
Condividi su altri siti

Premetto di non aver mai usato Intouch.

Se tra i driver disponibili e' presente anche il protocollo seriale 3964R non ci dovrebbero essere problemi.Io lo utilizzo normalmente senza nessuna parametrizzazione del db1 , collegato alla porta di programmazione con il solito cavo usato per programmare il plc.

Link al commento
Condividi su altri siti

  • 4 weeks later...

Ciao Felix

Io sono un poco più vecchio di te e purtroppo ho dovuto fare diverse supervisioni con PLC S5-115

e in alcune ho dovuto implementare il protocollo di comunicazione AS511 (quello sulla porta di programmazione)

se ti può servire qui di seguito ti invio la documentazione per leggere e scrivere le DB.

Buona fortuna e occhio ai DLE...

Bruno

--------------------------------

SIEMENS SIMATIC S5 AS511 (Programming port) protocol description

------------------------------------------------------------------

Siemens data frame is not usual, open your port with:

speed 9600 baud

data 8 bits

stop 1 bit

parity EVEN

DLE (10hex) is a control character, used to inform the receiver that the

following char is to be considered a control character and not a data byte.

In other words, DLE is a software switch within the AS511 protocol to divide

control and data bytes.

Whenever a DATA byte containing the value 10hex is to be sent, the sender must

DOUBLE the char. This means that to send a data byte 10hex, the sender must

send 10hex 10hex (DLE DLE).

The receiver must consider the thing, so a single DLE will mean a protocol

signal, while two consecutive DLE are to be interpreted as a SINGLE data byte

containing the 10hex value. This is a little tricky, since the receiver NEVER

knows exactly how many bytes to expect.

Take also note that the AG can answer DLE NAK instead of DLE ACK if the

requested operation can not be carried out.

In this case, the PG must abort the communication and wait for 500ms before

attempting a new communication.

The value of 500mS is also applied as timeout value in case of missing response

from the partner.This also means that no "holes" of 500mS (or more) are allowed

during a communication (e.g. within a DB_READ function)

To read or write a datablock value, you need to know its address in PLC memory.

Therefore you must invoke B_INFO function to know the address, then you can

call DB_READ or DB_WRITE by giving the initial and final address of the area to

be read or written.

Be aware that in SIMATIC the LSB/MSB bytes order is reversed:

SIMATIC:

15..............0

BYTE 0 BYTE 1

INTEL:

15..............0

BYTE 1 BYTE 0

To obtain the correct integer value of a dataword, the user

must therefore:

- swap the received bytes

and

- swap the bytes before sending them to the PLC

//////////////////////////////////////////////////////////////////////////////

B_INFO

input: block number

output: initial address of DW0 in AG

PG AS

(hex) (hex)

---------------------- function start --------

02 ----> STX

<---- 10 DLE

<---- 06 ACK

1A ----> B_INFO function code = 1Ah

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 16 AG answer=16h

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

---------------------- header info --------

01 ----> ID=01h for Datablock

XX ----> DB number (0..255)

10 ----> DLE

04 ----> EOT

<---- 10 DLE

<---- 06 ACK

---------------------- data --------

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 00 NUL

<---- XX DB initial address

<---- XX

<---- 70 synchronization code: 70 70

<---- 70

<---- 41 block ID and DB number : 41 XX

<---- XX

<---- XX PG ID code: XX XX

<---- XX

<---- XX library number: XX XX

<---- XX

<---- XX block length (words): XX XX

<---- XX

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

---------------------- terminate --------

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 12 AG "end of transmission" code: 12h

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

//////////////////////////////////////////////////////////////////////////////

DB_READ

input: initial address in AG

final address in AG

output: contents of datawords

PG AS

(hex) (hex)

---------------------- function start --------

02 ----> STX

<---- 10 DLE

<---- 06 ACK

04 ----> DB_READ function code = 04h

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 16 AG answer=16h

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

---------------------- header info --------

XX ----> initial address in AG: XX XX

XX ---->

XX ----> final address in AG: XX XX

XX ---->

10 ----> DLE

04 ----> EOT

<---- 10 DLE

<---- 06 ACK

---------------------- data --------

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 00 NUL

<---- 00 NUL

<---- 00 NUL

<---- 00 NUL

<---- 00 NUL

<---- XX first byte of data

<---- XX

<---- XX

. . .

. . .

<---- XX

<---- XX

<---- XX last byte of data

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

---------------------- terminate --------

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 12 AG "end of transmission" code: 12h

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

//////////////////////////////////////////////////////////////////////////////

DB_WRITE

input: - initial address in AG

- contents of datawords

output: - none

PG AS

(hex) (hex)

---------------------- function start --------

02 ----> STX

<---- 10 DLE

<---- 06 ACK

03 ----> DB_WRITE function code = 03h

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 16 AG answer=16h

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

---------------------- header info --------

XX ----> initial address in AG: XX XX

XX ---->

---------------------- data --------

XX ----> first byte of data

XX ---->

XX ---->

. . .

. . .

XX ---->

XX ---->

XX ----> last byte of data

10 ----> DLE

04 ----> EOT

----> 10 DLE

----> 06 ACK

---------------------- terminate --------

<---- 02 STX

10 ----> DLE

06 ----> ACK

<---- 12 AG "end of transmission" code: 12h

<---- 10 DLE

<---- 03 ETX

10 ----> DLE

06 ----> ACK

//////////////////////////////////////////////////////////////////////////////

Link al commento
Condividi su altri siti

  • 1 year later...

Salve

conoscete, per utilizzo fatto, la differenza tra la CP143 e la CP1430...mi sembra di aver letto di una differenza in termini di connessioni solo AUI per la CP143 e anche twisted pair per la CP1430, cioè dal connettore 15 poli è possibile tirare fuori un cavo tipo UTP per la connesisone con Rj45 ad uno switch.Giusto?

inoltre volendo fare una connessione ethernet TRA:

una CPU S5 944B con a bordo la CP1430TF e un PC con installato WinCC 6.0.......sul PC è necessaria una scheda aggiuntiva? o semplicemente la scheda di rete classica.

Saluti

Imma

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