21
Configurazione & Programmazione di un PC Master DP

Configurazione & Programmazione di un PC Master DP

Embed Size (px)

Citation preview

Page 1: Configurazione & Programmazione di un PC Master DP

Configurazione & Programmazione

di un PC Master DP

Page 2: Configurazione & Programmazione di un PC Master DP

Profibus DP Master

PC connesso a Profibus DP Scheda di interfaccia Profibus DP

Applicom PC1500PFB

Page 3: Configurazione & Programmazione di un PC Master DP

ISA PC board Processor: Intel 80186 - 24 MHz Memory: 512 Kbytes dynamic RAM Electrical Interface: RS485 with galvanic

insulation (500 volts) Baud Rate: from 9.6 to 500 Kbps Length per segment

9.6 - 19.2 - 93.75 Kbps 1200 meters 187.5 Kbps 1000 meters 500 Kbps 400 meters

Caratteristiche Scheda Applicom PC1500PFB

Page 4: Configurazione & Programmazione di un PC Master DP

Offre supporto di comunicazione per più protocolli: Profibus DP, FMS

Sono disponibili più canali “virtuali” di comunicazione, uno per ogni protocollo implementato.

La comunicazione è basata sul Data Exchange

Può essere sfruttata la sincronizzazione, ma solo per il Server OPC offerto dalla scheda

Caratteristiche Scheda Applicom PC1500PFB

Page 5: Configurazione & Programmazione di un PC Master DP

Definizione del bus e delle sue proprietà Bit rate Parametri di Comunicazione

Definizione Slaves (Files GSD)

Configurazione PC Master DP

Page 6: Configurazione & Programmazione di un PC Master DP

Le funzioni di comunicazione appartengono a tre differenti modalità operative:

Wait Mode

Database

Cyclic Mode

Scambio Dati

Page 7: Configurazione & Programmazione di un PC Master DP

Modalità Operativa

Wait Mode

Ciascuna funzione di comunicazione è trasferita al Protocol Task del canale di comunicazione desiderato

Vengono realizzate le dovute preparazioni di telegrammi Profibus DP e viene realizzata la trasmissione

La risposta dell'equipment di destinazione viene ricevuta e processata

Le eventuali variabili ricevute e l'esito della comunicazione sono ritornate all'Applicazione

Page 8: Configurazione & Programmazione di un PC Master DP

Vantaggio: L'Applicazione evolve in modo sincrono con l'esito dello scambio informativo

Svantaggio: L'esecuzione dell'Applicazione potrebbe essere rallentata

Modalità Operativa

Wait Mode

Page 9: Configurazione & Programmazione di un PC Master DP

Modalità Operativa

Data Base

La modalità operativa Data Base viene utilizzata:

per accedere a variabili che sono lette da un equipment

per aggiornare variabili che vengono scritte su un equipment

Page 10: Configurazione & Programmazione di un PC Master DP

Modalità Operativa

Data Base

Il Data Base è suddiviso in due aree: bit (32Kbits)word (32Kwords), che comprende anche byte

Ciascuna variabile ha un indirizzo relativo all'area di appartenenza nel Data Base

l'area viene individuata dal tipo di funzione utilizzata

Page 11: Configurazione & Programmazione di un PC Master DP

E’ possibile definire delle sequenze di scambio informativo di tipo ciclico

Le sequenze cicliche possono essere interrotte e fatte ripartire da programma

Le sequenze cicliche possono essere gestite in modo automatico da Windows

Le sequenze cicliche possono essere relative sia alla lettura sia alla scrittura di variabili da/verso un determinato dispositivo Slave DP

Modalità Operativa

Cyclic Mode

Page 12: Configurazione & Programmazione di un PC Master DP

Ciascuna variabile letta ciclicamente dall'equipment viene memorizzata nell’area Data Base

Ciascuna variabile che deve essere scritta ciclicamente in un equipment viene prelevata dall’area Data Base

La frequenza di esecuzione di ogni sequenza (funzione) è definibile in multipli di 100 msec

Il periodo di ripetizione può essere rispettato solo se lo scambio ciclico avviene in un tempo inferiore

Possono essere definite al massimo 255 sequenze cicliche

Modalità Operativa

Cyclic Mode

Page 13: Configurazione & Programmazione di un PC Master DP

Modalità Operativa

Data Base+Cyclic Mode

Vantaggio: L'Applicazione evolve in modo asincrono con l'esito dello scambio informativo

Svantaggio: Viene persa la freschezza dei dati

Legata al ciclo di aggiornamento del Data Base

Page 14: Configurazione & Programmazione di un PC Master DP

Le funzioni che si riferiscono allo scambio dati tra DP Master e DP Slaves implementano tutte il Data Exchange

Inizializzazione e termine. Esistono le seguenti funzioni di libreria:

Initbus Exitbus

Funzioni Supportate dalla libreria Applicom

Page 15: Configurazione & Programmazione di un PC Master DP

Wait Mode:Bit Bit di Input Leggi bit di Ingresso READPACKIBIT

Bit di Output Leggi bit di UscitaScrivi bit di Uscita

READPACKQBITWRITEPACKQBIT

Byte Byte di Input Leggi byte di Ingresso READPACKIBYTE

Byte di Output Leggi byte di UscitaScrivi byte di Uscita

READPACKQBYTEWRITEPACKQBYTE

Word Word di Input Leggi word di Ingresso READIWORD

Word di Output Leggi word di UscitaScrivi word di Uscita

READQWORDWRITEQWORD

Funzioni Supportate dalla libreria Applicom

Page 16: Configurazione & Programmazione di un PC Master DP

Cyclic Mode:Creazione di Cicli CREATECYC

Partenza/Attivazione Ciclo STARTCYC

Arresto Ciclo STOPCYC

Una sola Esecuzione di un Ciclo ACTCYC

La gestione dei cicli può essere anche demandata ad un applicativo sotto Windows PCCYC

Funzioni Supportate dalla libreria Applicom

Page 17: Configurazione & Programmazione di un PC Master DP

Data Base Mode:Bit Leggi bit da Data Base GETPACKBIT

Scrivi bit nel Data Base SETPACKBIT

Byte Leggi byte da Data Base GETPACKBYTE

Scrivi byte nel Data Base SETPACKBYTE

Word Leggi word dal Data Base GETWORD

Scrivi word nel Data Base SETWORD

DWord Leggi Dword dal Data Base GETDWORD

Scrivi Dword nel Data Base SETDWORD

FWord Leggi Fword dal Data Base GETFWORD

Scrivi Fword nel Data Base SETFWORD

Funzioni Supportate dalla libreria Applicom

Page 18: Configurazione & Programmazione di un PC Master DP

Si supponga di voler leggere 16 bits (i bits 0 fino a 15) dell'equipment numero 20 (SAIA RIO 16I), dal canale 0 (Profibus DP)

I bit si possono simulare in laboratorio utilizzando un filo e facendo un ponticello

I 16 bit letti vengono compattati in uno short (16 bit)

Per poter visualizzare il valore di ogni ingresso, si devono estrarre i singoli bit

Funzione di libreria applicom transwordbit()

Esempio di Funzionamento Wait Mode

ReadPackIBit

15 0

Ingresso n.15 Ingresso n.0

Page 19: Configurazione & Programmazione di un PC Master DP

 void main(){ initbus(&status); if (!status) {

do {  readpackibit(&nchan, &neq, &nb, &adr, tabl, &status);

if (!status) { transwordbit(&nb, tabl, tablbit, &status); for (i=0; i<nb; i++)

printf(" %hd", tablbit[i]); } else printf("Problemi con lo Slave numero %hd \n ", neq);} while (!status);

  exitbus(&status); }else printf("\n Il Software di Comunicazione Applicom® non è Stato Eseguito ");}

Esempio di Funzionamento Wait Mode

ReadPackIBit short i;short nchan=0; short neq=20; short nb=16; short status; long adr=0; short tabl[1]; short tablbit[16];

#include <windows.h>#include <stdio.h>#include "applicom.h"

Page 20: Configurazione & Programmazione di un PC Master DP

Si supponga di voler scrivere 1 byte nelle uscite dell'equipment di indirizzo 30, dall'interfaccia Applicom relativa al canale 0 (Profibus DP)

Si supponga che l'equipment di indirizzo 30 sia un SAIA RIO 16O, ossia abbia 16 uscite (2 byte)

I due byte vengono individuati con gli indirizzi relativi 0 e 1 Il programma permette di inserire il byte da scrivere (valori 0-

255) e l'indirizzo di byte (0 o 1) Al fine di facilitare l’inserimento del byte, ogni byte è trattato

come char (intero senza segno): L’utente deve digitare un numero compreso tra 0-255

Esempio di Funzionamento Wait Mode

WritePackQByte

Page 21: Configurazione & Programmazione di un PC Master DP

Esempio di Funzionamento Wait Mode

WritePackQByte #include <windows.h>#include <stdio.h>#include "applicom.h"void main(){ initbus(&status); if (!status) {

do { printf("\n Valore del byte da scrivere (0-255) = ");

scanf(" %hd", &tabl[0]); printf("\n Valore dell'address byte (0-1) = ");

scanf(" %ld", &adr); writepackqbyte(&nchan, &neq, &nb, &adr, tabl, &status); if (status) printf("Problem on Equipment no. %hd \n ", neq);

} while (!status);  exitbus(&status); }else printf(" non-resident applicom® communication software ");}

 short i;short nchan=0;short neq=30;short nb=1;short status;long adr;char tabl[1];