MICHELESAMM Inserito: 18 marzo 2004 Segnala Share Inserito: 18 marzo 2004 SALVE A TUTTI , SONO NUOVO IN QUESTO CAMPO; POTETE DARMI DEI CONSIGLI SU COME METTERE IN COMUNICAZIONE UN PLC DELLA SIEMENS S5 CON UN PC USANDO IL VISUAL BASIC?.LA PARTE PLC NON è UN PROBLEMA STO IMPROVVISANDO CON IL VB , NEI DETTAGLI NON SAPREI COME RICEVERE I DATI DAL PLC TRAMITE LA SERIALE. SO CHE ESISTE IL CONTROLLO MSCOMM , MI SERVIREBBE UN PICCOLO ESEMPIO DI PROGRAMMA IN VB IN MODO TALE DA FARMI CAPIRE COME RIPORTARMI UN BYTE SUL PCGRAZIE Link al commento Condividi su altri siti More sharing options...
ciccio12 Inserita: 18 marzo 2004 Segnala Share Inserita: 18 marzo 2004 ciao nelle mia piccola esperienza posso dirti e spero di non sbagliarmi e se mi sbaglio qualcuno mi corregga ma per leggere i dati da un S5 Siemens devi conoscere il protocollo di comunicazione, o comprare delle Dll o OCXdalla siemens o altre societa' se cerchi nel forum trovi dei link , non e sufficente secondo me il solo MSComm.Spero di non avere detto qualche stupidata Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 18 marzo 2004 Segnala Share Inserita: 18 marzo 2004 Non sbagliCiao Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 18 marzo 2004 Segnala Share Inserita: 18 marzo 2004 Prova con questo esempio:AS511 Link al commento Condividi su altri siti More sharing options...
cdc Inserita: 18 marzo 2004 Segnala Share Inserita: 18 marzo 2004 Prova con questo esempio:AS511perche' non riesco a scaricarlo??? E' forse perchè sono dietro ad un firewall??? Link al commento Condividi su altri siti More sharing options...
Bruno Inserita: 23 marzo 2004 Segnala Share Inserita: 23 marzo 2004 CiaoIo, anni fa, mi ero fatto un protocollino in C che comunicava con la porta di comunicazione della CPU(utilizzando in protocollo AS511) e funzionava molto bene (ero in ambiente UNIX) ultimamenteho fatto il porting in visual basic e continua a funzionare (anche se però non è MultiThread ).Quello che ti serve è l'oggetto mscomm, una interfaccia current loop e le specifiche del protocollo...qui di seguito ti appoggio quello che ti serve per leggere e scrivere le DB, ma mi raccomando stai attentoche se ti sbagli nell'indirizzamento puoi leggere e SCRIVERE qualsiasi cosa anche il programma e poi PARTICOLARE ATTENZIONE ALLA PULIZIA DEI CARATTERI DLE.In bocca al lupo !!!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 cancall 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 1INTEL: 15..............0 BYTE 1 BYTE 0To 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 More sharing options...
antowery Inserita: 23 gennaio 2006 Segnala Share Inserita: 23 gennaio 2006 prova a scaricare questa demo all'indirizzohttp://www.automasoft.com/software_it.php?lang=ite cerca plcs5sha132.exe è un activex per s5 che funziona anche con VB Link al commento Condividi su altri siti More sharing options...
MrC Inserita: 26 gennaio 2006 Segnala Share Inserita: 26 gennaio 2006 (modificato) si puo scroccare ad automa solo l'ocx dell's5 o anche altri ? Modificato: 26 gennaio 2006 da MrC Link al commento Condividi su altri siti More sharing options...
antowery Inserita: 27 gennaio 2006 Segnala Share Inserita: 27 gennaio 2006 (modificato) c'e un sito che mette a disposizione una libreria di base IdComm20.dll e una librerie per ogni PLC ad esempio per s5 è ID_RK512.dll o Idc_PPI per s7200 etcQueste sono delle demo quindi la comunicazione dura 5min e poi si interrompeio le ho usate con VB6 funzionano perfettamente e non costano moltoPS:se scarichi la demo ricordati di scaricare IdComm® 2.0 - Utilities c'e il software per l'attivazione delle librerie che naturalmente vanno nella cartella C:\WINDOWS\SYSTEM32LINK DEL SITO : http://www.sintesi.com/italiano/index.htmVAI SUL MENU PRODOTTIPOI NEL MENU AUTOMAZIONE A SINISTRA CLICCA SU IDCOMM Modificato: 27 gennaio 2006 da antowery Link al commento Condividi su altri siti More sharing options...
MrC Inserita: 27 gennaio 2006 Segnala Share Inserita: 27 gennaio 2006 Io uso queste librerie per s7200 e per s7300 e confermo la bontà del prodotto Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora