Vai al contenuto
PLC Forum


Protocollo S7200


ciccio12

Messaggi consigliati

:lol:

sarebbe interessante avere questa possibilita' ,che il forum metta a disposizione uno spazzio per questo mio progetto e che qualcuno mi aiuti a realizzarlo.

ricordo atuuti la mia breve esperienza con i plc siemens e con VB6, quindi ritengo questa un grande opportunita'.

importante, quello che ne verra fuori da questo progetto dovra essere primo un esperienza per tuttti ,

secondo l'ocx sara di libero utilizzo compresi i sorgenti VB .

ciao a tutti e grazie aticipatamente.

ps per problemi ci risentiamo lunedi

Link al commento
Condividi su altri siti


  • Risposte 85
  • Created
  • Ultima risposta

Top Posters In This Topic

  • ciccio12

    10

  • Gabriele Corrieri

    8

  • pixel

    8

  • Daniele C.

    8

:huh:

Msg. x rogvp

Ciao.... ho scaricato anche io gli esempi, ma quello che ha fatto il tuo amico è diverso... lui già utilizza delle DLL (cioè componenti o oggetti incorporabili in vb, delphi, etc...) che permettono al programmatore di comunicare col PLC senza CONOSCERE il protocollo SIEMENS.

Le IDComm in poche parole sono delle interfacce sw. a cui passare un minimo di valori (es. indirizzo plc, memoria da leggere o da scrivere, etc.) che hanno all'interno 'incapsulato' righe di codice che assolvono alla comunicazione. Non vorrei blaterare ma credo sia così....

Detto qs. Ciccio12 non cerca delle librerie già pronte, ma vuole realizzarne di sue (freeware) da distribuire a tutti i programmatori che volessero utilizzare degli oggetti (come ha fatto il tuo amico in delphi con idcomm) nelle loro applicazioni SCADA costruite in VB.

Ciccio12 correggimi se sbaglio...

Link al commento
Condividi su altri siti

:huh:

Msg. x rogvp

Ciao.... ho scaricato anche io gli esempi, ma quello che ha fatto il tuo amico è diverso... lui già utilizza delle DLL (cioè componenti o oggetti incorporabili in vb, delphi, etc...) che permettono al programmatore di comunicare col PLC senza CONOSCERE il protocollo SIEMENS.

Le IDComm in poche parole sono delle interfacce sw. a cui passare un minimo di valori (es. indirizzo plc, memoria da leggere o da scrivere, etc.) che hanno all'interno 'incapsulato' righe di codice che assolvono alla comunicazione. Non vorrei blaterare ma credo sia così....

Detto qs. Ciccio12 non cerca delle librerie già pronte, ma vuole realizzarne di sue (freeware) da distribuire a tutti i programmatori che volessero utilizzare degli oggetti (come ha fatto il tuo amico in delphi con idcomm) nelle loro applicazioni SCADA costruite in VB.

Ciccio12 correggimi se sbaglio...

Link al commento
Condividi su altri siti

x Pixel -

Sicuramente hai ragione , il mio era un consiglio da...

Io non sono un' esperto

credo comunque che possa essere un esempio valido da cui prendere qualche spunto .

Inoltre credo che chi fornisce questi protocolli ( IdComm ) , li abbia creati in base a qualche specifica " acquistata a caro prezzo " da chi di dovere !

Io non so se sia possibile decifrare il protocollo PPI come alcuni di voi vorrebbero fare , in ogni caso non è che poi ci sarebbero problemi per la ridistribuzione ? -S- potrebbe chiedere qualcosa ? Insomma , sono i titolari del brevetto oppure no .

Chiedo da ignorante , se qualcuno può illuminarmi ..... grazie .

Saluti Robgvp.

Modificato: da robgvp
Link al commento
Condividi su altri siti

x Pixel -

Sicuramente hai ragione , il mio era un consiglio da...

Io non sono un' esperto

credo comunque che possa essere un esempio valido da cui prendere qualche spunto .

Inoltre credo che chi fornisce questi protocolli ( IdComm ) , li abbia creati in base a qualche specifica " acquistata a caro prezzo " da chi di dovere !

Io non so se sia possibile decifrare il protocollo PPI come alcuni di voi vorrebbero fare , in ogni caso non è che poi ci sarebbero problemi per la ridistribuzione ? -S- potrebbe chiedere qualcosa ? Insomma , sono i titolari del brevetto oppure no .

Chiedo da ignorante , se qualcuno può illuminarmi ..... grazie .

Saluti Robgvp.

Modificato: da robgvp
Link al commento
Condividi su altri siti

Le IDComm in poche parole sono delle interfacce sw. a cui passare un minimo di valori (es. indirizzo plc, memoria da leggere o da scrivere, etc.) che hanno all'interno 'incapsulato' righe di codice che assolvono alla comunicazione.
Il convertiore Sintesi si puo' utilizzare anche senza le DLL fornite.Questo e' un esempio del protocollo che utilizzo

normalmente:

........

    InviaByte(1) = &H2                  'Carattere di start del frame

    InviaByte(2) = &HA                  'Numero caratteri costituenti il frame

    InviaByte(3) = &H52              'Codice comando(&h52=lettura,&h57=scrittura)

    InviaByte(4) = &H8                'Dimensione del dato (&h08=byte  &h10=word,&h20 double word)

    InviaByte(5) = &H5                'Area di memoria del plc (&h05=word)

    InviaByte(6) = FirstBytePubL  'Indirizzo offset lsb

    InviaByte(7) = FirstBytePubM  'Indirizzo offset msb

    InviaByte(8) = &H0                'Numero del bit (solo se lettura singolo bit)       

    InviaByte(9) = DBPub            'Numero db lsb

    InviaByte(10) = 0                  'Numero db msb

    InviaByte(11) = &H2              'Indirizzo nodo PLC

    InviaByte(12) = 64                'Numero variabili da leggere (numero di byte)

......

Ho cominciato ad analizzare anch'io il protocollo MPI e PPI,forse tra un po' di tempo si comincera' a trovare qualcosa in internet senza sapere da che parte arriva :lol:

Link al commento
Condividi su altri siti

Le IDComm in poche parole sono delle interfacce sw. a cui passare un minimo di valori (es. indirizzo plc, memoria da leggere o da scrivere, etc.) che hanno all'interno 'incapsulato' righe di codice che assolvono alla comunicazione.
Il convertiore Sintesi si puo' utilizzare anche senza le DLL fornite.Questo e' un esempio del protocollo che utilizzo

normalmente:

........

    InviaByte(1) = &H2                  'Carattere di start del frame

    InviaByte(2) = &HA                  'Numero caratteri costituenti il frame

    InviaByte(3) = &H52              'Codice comando(&h52=lettura,&h57=scrittura)

    InviaByte(4) = &H8                'Dimensione del dato (&h08=byte  &h10=word,&h20 double word)

    InviaByte(5) = &H5                'Area di memoria del plc (&h05=word)

    InviaByte(6) = FirstBytePubL  'Indirizzo offset lsb

    InviaByte(7) = FirstBytePubM  'Indirizzo offset msb

    InviaByte(8) = &H0                'Numero del bit (solo se lettura singolo bit)       

    InviaByte(9) = DBPub            'Numero db lsb

    InviaByte(10) = 0                  'Numero db msb

    InviaByte(11) = &H2              'Indirizzo nodo PLC

    InviaByte(12) = 64                'Numero variabili da leggere (numero di byte)

......

Ho cominciato ad analizzare anch'io il protocollo MPI e PPI,forse tra un po' di tempo si comincera' a trovare qualcosa in internet senza sapere da che parte arriva :lol:

Link al commento
Condividi su altri siti

Ecco... quello di DAGO è un livello un pò più basso rispetto le librerie IDComm...

C'è un iterfaccia HW. attraverso la quale dialogare col PLC e senza usare le librerie si comanda per stabilire la comunicazione.... ma anche qs. non è la soluzione PURTROPPO.

Per quello che dice robgvp, credo che sia come dice lui! ci saranno problemi relativi all'acquisto del brevetto e ne Sintesi ne Tantomeno Siemens saranno disposti a cedere qualcosa senza la giusta retribuzione. Questo inciderebbe enormemente sul costo del progetto e alla fine.... siamo sicuri che diverrà FREEWARE!? :huh: una risorsa così preziosa e così costosa potrebbe divenire una seria alternativa ai tool di Siemens con la possibilità di guadagni! :rolleyes:

Ciao

Link al commento
Condividi su altri siti

Ecco... quello di DAGO è un livello un pò più basso rispetto le librerie IDComm...

C'è un iterfaccia HW. attraverso la quale dialogare col PLC e senza usare le librerie si comanda per stabilire la comunicazione.... ma anche qs. non è la soluzione PURTROPPO.

Per quello che dice robgvp, credo che sia come dice lui! ci saranno problemi relativi all'acquisto del brevetto e ne Sintesi ne Tantomeno Siemens saranno disposti a cedere qualcosa senza la giusta retribuzione. Questo inciderebbe enormemente sul costo del progetto e alla fine.... siamo sicuri che diverrà FREEWARE!? :huh: una risorsa così preziosa e così costosa potrebbe divenire una seria alternativa ai tool di Siemens con la possibilità di guadagni! :rolleyes:

Ciao

Link al commento
Condividi su altri siti

Secondo me la Sintesi il protocollo se lo e' dedotto spiando la comunicazione (altrimenti in teoria dovrebbe avere un protocollo perfetto cosa che da alcuni post letti e' vero in parte) e so per certo che molti produttori di pannellini fanno o hanno fatto la stessa cosa , perche' la Siemens non da' nulla (forse e' un caso a parte il rapporto con VIPA).

Quanto alla legalita' della cosa faccio presente che c'e' una legge sul software che vieta la decompilazione di codice sorgente e il revenrse engineering , sarebbe bello sentire un legale in proposito.

Ciao a tutti :)

Link al commento
Condividi su altri siti

Secondo me la Sintesi il protocollo se lo e' dedotto spiando la comunicazione (altrimenti in teoria dovrebbe avere un protocollo perfetto cosa che da alcuni post letti e' vero in parte) e so per certo che molti produttori di pannellini fanno o hanno fatto la stessa cosa , perche' la Siemens non da' nulla (forse e' un caso a parte il rapporto con VIPA).

Quanto alla legalita' della cosa faccio presente che c'e' una legge sul software che vieta la decompilazione di codice sorgente e il revenrse engineering , sarebbe bello sentire un legale in proposito.

Ciao a tutti :)

Link al commento
Condividi su altri siti

Io utilizzo a scopo didattico (sono un ITP in un istituto professionale) il protocollo per IZUMI FA2J con QBASIC in cui inviando sulla seriale un' istruzione di questo tipo:

OPEN "COM1:9600,E,7,1" FOR RANDOM AS #1: OUT &H3FB, 27

M$ = "B180" + CHR$(13)

FOR i = 1 TO LEN(M$)

PRINT #1, MID$(M$, i, 1);

ECHO$ = INPUT$(1, #1)

NEXT i

INPUT #1, RSP$

CLOSE #1

PRINT RSP$

INVIO il messaggio "B180" al plc e lui mi da in risposta (RSP$) una stringa tipo "XYZ" dove:

Z è un carattere da 0 a ? (cod. ascii da 48 a 53) che rappresenta in esadecimale lo stato logico delle prime 4 uscite - esempio se il plc risponde "XY7" sono attive le uscite 200,201 e 202 ed è inattiva la 203

Riesco a fare la stessa cosa con VB e sono interessato anch'io ad ottenere lo stesso risultato utilizzando un altro PLC, il Siemens S7 200 sia con QBASIC che con VB

Ho scaricato e provato la libreria della IdComm in versione demo ma non sono riuscito a farla funzionare (forse mi è sfuggito qualcosa)

Sarei molto grato a chiunque potesse darmi indicazione su dove trovare le stringhe da inviare al S7 in modo da ottenere una risposta indicante lo stato delle uscite.

GRAZIE. DEGIAC

Link al commento
Condividi su altri siti

Io utilizzo a scopo didattico (sono un ITP in un istituto professionale) il protocollo per IZUMI FA2J con QBASIC in cui inviando sulla seriale un' istruzione di questo tipo:

OPEN "COM1:9600,E,7,1" FOR RANDOM AS #1: OUT &H3FB, 27

M$ = "B180" + CHR$(13)

FOR i = 1 TO LEN(M$)

PRINT #1, MID$(M$, i, 1);

ECHO$ = INPUT$(1, #1)

NEXT i

INPUT #1, RSP$

CLOSE #1

PRINT RSP$

INVIO il messaggio "B180" al plc e lui mi da in risposta (RSP$) una stringa tipo "XYZ" dove:

Z è un carattere da 0 a ? (cod. ascii da 48 a 53) che rappresenta in esadecimale lo stato logico delle prime 4 uscite - esempio se il plc risponde "XY7" sono attive le uscite 200,201 e 202 ed è inattiva la 203

Riesco a fare la stessa cosa con VB e sono interessato anch'io ad ottenere lo stesso risultato utilizzando un altro PLC, il Siemens S7 200 sia con QBASIC che con VB

Ho scaricato e provato la libreria della IdComm in versione demo ma non sono riuscito a farla funzionare (forse mi è sfuggito qualcosa)

Sarei molto grato a chiunque potesse darmi indicazione su dove trovare le stringhe da inviare al S7 in modo da ottenere una risposta indicante lo stato delle uscite.

GRAZIE. DEGIAC

Link al commento
Condividi su altri siti

.... siamo sicuri che diverrà FREEWARE!?
Da parte mia mi sbilancio a dire "matematico" :lol:

...una risorsa così preziosa e così costosa potrebbe divenire una seria alternativa ai tool di Siemens con la possibilità di guadagni!

Guadagnato abbastanza...lavoro per passione...quale miglior condizione per fare le cose gratis ? :lol:

Link al commento
Condividi su altri siti

.... siamo sicuri che diverrà FREEWARE!?
Da parte mia mi sbilancio a dire "matematico" :lol:

...una risorsa così preziosa e così costosa potrebbe divenire una seria alternativa ai tool di Siemens con la possibilità di guadagni!

Guadagnato abbastanza...lavoro per passione...quale miglior condizione per fare le cose gratis ? :lol:

Link al commento
Condividi su altri siti

Ciao Dago,

vuoi dire che se il protocollo da Siemens ti costasse XX.000,00 Euro tu saresti così gentile da pubblicarlo (insieme all'ipotetico OCX) in maniera da renderlo totalmente FREE... :blink:

Ora capisco perchè Siemens si tiene stretta la sua roba.... ma a parte i soldi come faresti a recuperare l'investimento.... con il grazie di tutti... ;)

A questo punto sarebbe più sensato che più persone si uniscano e vadano alla disperata ricerca di SPONSOR per finanziare il progetto.

Ciao :)

Link al commento
Condividi su altri siti

Ciao Dago,

vuoi dire che se il protocollo da Siemens ti costasse XX.000,00 Euro tu saresti così gentile da pubblicarlo (insieme all'ipotetico OCX) in maniera da renderlo totalmente FREE... :blink:

Ora capisco perchè Siemens si tiene stretta la sua roba.... ma a parte i soldi come faresti a recuperare l'investimento.... con il grazie di tutti... ;)

A questo punto sarebbe più sensato che più persone si uniscano e vadano alla disperata ricerca di SPONSOR per finanziare il progetto.

Ciao :)

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