Vai al contenuto
PLC Forum


Diagnostica S7-300 E Rete Profibus - non so da che parte cominciare..


TRC

Messaggi consigliati

Buon giorno, la domanda è la seguente...

Devo sviluppare il software di una macchina dove il cliente vuole la diagnostica dettagliata di tutto quello che succede nel plc e creare uno storico su un sistema SCADA, quindi devo implementare la

diagnostica PLC, ingressi e uscite locali e moduli remoti in profibus + varie di varie marche...

Caratteristiche :

CPU S7-319 + 2 rack di ingressi e uscite locali

Encoder TR assoluti in profibus e LIKA incrementali in profibus

Robottino a 2 assi di dosatura di una resina in profibus

moduli remoti Siemens et200s con ingressi e uscite digitali e analogici

moduli remoti Festo CPX con valvole e sensoristica remota

stampante termica di etichette in profibus

lettori di codici a barre in profibus

forse qualche inverter danfos o Controlltecnique

SCADA da definire...

Potreste mandarmi qualche esempio di come gestite voi la diagnostica sia per il controllo delle schede locali che per i moduli remoti in profibus, in particolare se avete qualche

consiglio per gestire la diagnostica di circa 1200-1500 ingressi/uscite senza dover scrivere la divina commedia in awl, grazie.

Link al commento
Condividi su altri siti


Grazie del Link, ho già il blocco FB125 e la funzione FC125, inoltre ho guardato la SFC13 e la SFC51 però non ho capito quale sia il metodo miglire di utilizzo di questi blocchi, alcuni sono specifici per hardware siemens, io vorrei fare un qualcosa di standard per tutti i componenti presenti (siemens e non siemens) nella rete, se possibile mi piacerebbe ricevere righe di codice di esempio, a volte mi capita di leggere manuali, trovare un qualcosa che sembra fare al caso mio e poi mi accorgo che sono fuori strada e magari c'è un metodo più semplice... grazie...

...per completare le caratteristiche.. ho dimenticato di dire che gli encoder incrementali sono su moduli di posizionamento dell'ET200S e quindi in profibus.

Link al commento
Condividi su altri siti

Ciao,

ho aperto uno degli ultimi progetti realizzati con CP317-2DP per vedere come gestivo

la diagnostica dei moduli profibus remotati e ti posso dire questo:

in OB86 gestico gli stati di #OB86_RACKS_FLDT e #OB86_EV_CLASS questo per

identificare se il partecipante è semplicemente in errore, non leggo naturalmente il

tipo di errore, ma comunque segnalo in diagnostica che il partecipante ha problemi.

Inoltre avevo scricato, dal link che ti ha indicato cagliostro, la sezione di diagnostica che

comprende anche le pagine di WinCC flex, il blocco che faccio ciclare è FB125 con DB125 sia

in OB86 che in OB1 ( sensa inserire nessun dato nei parametri formali ).

Le pagine per Wincc le ho riportate come nell'esempio con solo alcune modifiche solo grafiche.

La variabili delle pagine WinCC probabilmente puntano direttamante al DB125, io attualmente

non posso vederle perchè ho una versione di WinCC più recente del progetto che ho aperto.

Link al commento
Condividi su altri siti

Qualche tempo fa ho preso spunto da una discussione a riguardo e devo dire che ho sempre utilizzato il sistema della SFC51 al posto della versione FB125 sicuramente completa ma molto pesante (come tutte le cose sviluppate da Siemens)

Adesso non mi ricordo chi era stato all'epoca a suggerire tale soluzione, io ti allego questa che funziona, mi evidenzia il componente guasto o non presente e lo deposita in una bitmap. A livello di supervisione è facile farlo vedere....

pigroplc

TYPE UDT 998

VERSION : 0.1

STRUCT

PROGRAMMAZIONE : ARRAY [1 .. 128 ] OF //PROGRAMMAZIONE PROFIBUS NODO

BOOL ;

PRESENZA : ARRAY [1 .. 128 ] OF //PRESENZA PROFIBUS NODO

BOOL ;

ERRORE : ARRAY [1 .. 128 ] OF //ERRORE PROFIBUS NODO

BOOL ;

END_STRUCT ;

END_TYPE

FUNCTION_BLOCK FB 3

TITLE =DIAGNOSTICA RETI PROFIBUS

AUTHOR : pigroplc

VERSION : 0.1

VAR

ProfibusDP_01 : STRUCT

ReqStazioniPronte : BOOL ;

BusyStazioniPronte : BOOL ;

ReqStazioniProgettate : BOOL ;

BusyStazioniProgettate : BOOL ;

FineAggiornamento : BOOL ;

Nodo : UDT 998;

END_STRUCT ;

END_VAR

VAR_TEMP

ERROR : INT ;

header : STRUCT

lunghezza : WORD ;

n_dr : WORD ;

END_STRUCT ;

END_VAR

BEGIN

NETWORK

TITLE =Trigger per elaborazione ciclica

UN #ProfibusDP_01.ReqStazioniProgettate;

UN #ProfibusDP_01.BusyStazioniProgettate;

UN #ProfibusDP_01.ReqStazioniPronte;

UN #ProfibusDP_01.BusyStazioniPronte;

UN #ProfibusDP_01.FineAggiornamento;

L S5T#1S;

SE T 70;

U T 70;

S #ProfibusDP_01.ReqStazioniPronte;

UN #ProfibusDP_01.ReqStazioniPronte;

UN #ProfibusDP_01.BusyStazioniPronte;

U #ProfibusDP_01.FineAggiornamento;

L S5T#1S;

SE T 71;

U T 71;

S #ProfibusDP_01.BusyStazioniProgettate;

R #ProfibusDP_01.FineAggiornamento;

NETWORK

TITLE =SCANSIONE RETE PROFIBUS DP 01

//

// Lettura Stazioni Presenti Profibus DP 01

CALL SFC 51 (

REQ := #ProfibusDP_01.ReqStazioniPronte,

SZL_ID := W#16#292,

INDEX := W#16#1,

RET_VAL := #ERROR,

BUSY := #ProfibusDP_01.BusyStazioniPronte,

SZL_HEADER := #header,

DR := DB3.ProfibusDP_01.Nodo.PRESENZA);

// Lettura Stazioni Progettate Profibus DP 01

CALL SFC 51 (

REQ := #ProfibusDP_01.ReqStazioniProgettate,

SZL_ID := W#16#92,

INDEX := W#16#1,

RET_VAL := #ERROR,

BUSY := #ProfibusDP_01.BusyStazioniProgettate,

SZL_HEADER := #header,

DR := DB3.ProfibusDP_01.Nodo.PROGRAMMAZIONE);

// Bit Controllo Stazioni Progettate

U #ProfibusDP_01.ReqStazioniProgettate;

UN #ProfibusDP_01.BusyStazioniProgettate;

R #ProfibusDP_01.ReqStazioniProgettate;

S #ProfibusDP_01.FineAggiornamento;

//;

// Bit Controllo Stazioni Presenti

//;

U #ProfibusDP_01.ReqStazioniPronte;

UN #ProfibusDP_01.BusyStazioniPronte;

R #ProfibusDP_01.ReqStazioniPronte;

S #ProfibusDP_01.ReqStazioniProgettate;

//;

// Confronto tra stazioni Presenti e Progettate (Genazione Allarmi)

//;

// Stazioni 0001 - 0032

//;

L DID 18;

L DID 2;

XOD ;

T DID 34;

//;

// Stazioni 0033 - 0064

//;

L DID 22;

L DID 6;

XOD ;

T DID 38;

//;

// Stazioni 0065 - 0096

//;

L DID 26;

L DID 10;

XOD ;

T DID 42;

//;

// Stazioni 0097 - 0128

//;

L DID 30;

L DID 14;

XOD ;

T DID 46;

END_FUNCTION_BLOCK

Link al commento
Condividi su altri siti

Grazie delle risposte, per pigroplc, io la sfc51 l'ho trovata nel libro edito da siemens decentrare con profibus, volevo fare come scritto ma poi mi sono incartato con SFB125 e varie OB...

comunque penso che prendero' sia in considerazione la SFC51 che i dati Faulted della OB 86, grazie....

... rimane aperto l'argomento per sapere come poter entrare nello specifico della diagnostica del tipo

--- nodo 10 - ET200S ingresso posto 20 cortocircuito

--- nodo 27 - Encoder TR manca il 24 Volt

--- ecc. ecc.

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