TomCastagna Inserito: sabato alle 16:52 Segnala Inserito: sabato alle 16:52 Buongiorno, sto tentando di comunicare con uno strumento Gefran 1600 che comunica nel protocollo CENCAL. Dalla Gefran mi è stato detto che è una comunicazione seriale di tipo RS422 ed ho ricevuto una lista di registri appositamente per il CENCAL (diversi da quella in MODBUS). Ho provato ad interrogare lo strumento utilizzando una 1511 con una periferica ET200s che ha a bordo una CM PtP. Ho provato a configurare la scheda sia come fullduplex (RS 422) a quattro fili (punto a punto) che come fullduplex (RS422) funzionamento a quattro fili (Master multipoint, CM PtP (ET 200SP)) Ho creato i blocchi funzionali Modbus_Comm_Load (con impostazione del MODE sia come 16#02 che come 16#01) ed il Modbus Master. Tutto come quando comunico in Modbus RS485, con la differenza dell'impostazione HW (nella scheda) e SW per RS422. Il collegamento è a 4 fili ed ho provato sia a fare la corrispondenza 1 a 1 (TX e RX del master collegati con TX e RX dello slave) che come invertiti (TX master su RX slave). Purtroppo ho sempre errore 80C8. Secondo voi dove potrebbe essere l'errore? Grazie e buona giornata a tutti
ifachsoftware Inserita: 1 ora fa Segnala Inserita: 1 ora fa (modificato) Per creare un programma in TIA Portal V19 per comunicare via RS485, puoi usare un modulo seriale (es. CM PtP RS485) collegato a una CPU S7-1200 o S7-1500. Ti spiego passo passo come strutturare il progetto: il protocollo CENCAL di Gefran non è nativamente supportato da Siemens S7-1500, quindi non esistono blocchi standard o librerie Siemens già pronte per questo protocollo. Tuttavia, posso guidarti su come procedere per leggere e scrivere dati tramite S7-1500, sfruttando la comunicazione seriale (ad esempio tramite modulo CM PtP RS422) e sviluppando il parsing/protocollo in Structured Text (ST). 1. Premesse tecniche CENCAL è un protocollo seriale proprietario Gefran, diverso da Modbus. Serve una lista dei registri/telegrammi fornita da Gefran. Il modulo Siemens CM PtP (RS422) va configurato in modalità trasparente (RAW) per inviare/ricevere byte. 2. Configurazione hardware Collega il modulo CM PtP RS422 tra S7-1500 e il dispositivo Gefran. Configura la porta seriale (baud rate, bit di stop, parità) secondo le specifiche CENCAL. Modificato: 1 ora fa da ifachsoftware
ifachsoftware Inserita: 1 ora fa Segnala Inserita: 1 ora fa Esempio // Definizione dei dati da inviare (esempio: comando di lettura registro) VAR TxBuffer : ARRAY[0..7] OF BYTE := [16#02, 16#30, 16#31, 16#52, 16#30, 16#30, 16#03, 16#XX]; // XX = checksum RxBuffer : ARRAY[0..15] OF BYTE; SendReq : BOOL := FALSE; RecvReq : BOOL := FALSE; Status : INT; END_VAR // Calcolo checksum (esempio LRC) FUNCTION CalcLRC : BYTE VAR_INPUT Data : ARRAY[*] OF BYTE; Len : INT; END_VAR VAR LRC : BYTE := 0; i : INT; END_VAR FOR i := 0 TO Len-1 DO LRC := LRC XOR Data[i]; END_FOR CalcLRC := LRC; END_FUNCTION // Invio comando IF SendReq THEN TxBuffer[7] := CalcLRC(TxBuffer, 7); // Calcola checksum // Chiamata FB di invio seriale (es: FB_SerialSend) Status := FB_SerialSend(Port:=1, Data:=TxBuffer, Length:=8); SendReq := FALSE; END_IF // Ricezione risposta IF RecvReq THEN // Chiamata FB di ricezione seriale (es: FB_SerialRecv) Status := FB_SerialRecv(Port:=1, Data:=RxBuffer, Length:=16); // Parsing risposta secondo protocollo CENCAL // ... RecvReq := FALSE; END_IF 4. Blocco di invio/ricezione Usa i blocchi Siemens per la gestione seriale (es. SFB 52/53 o FB specifici del modulo CM PtP). Implementa il parsing dei telegrammi secondo la documentazione Gefran. 5. Risorse utili Esempi di comunicazione seriale su S7-1500: Siemens FAQ con esempi PUT/GET e seriale 1 . Il protocollo CENCAL deve dartelo la Gefran , se no non ci fai nulla
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