Jump to content

Protocollo Gefran 1600 CENCAL


Recommended Posts

TomCastagna
Posted

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
Posted (edited)

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.
Edited by ifachsoftware
ifachsoftware
Posted

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

Il protocollo CENCAL deve dartelo la Gefran , se no non ci fai nulla

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...