Configurazione & Programmazione
di un PC Master DP
Profibus DP Master
PC connesso a Profibus DP
Scheda di interfaccia Profibus DP
Applicom PC1500PFB
Caratteristiche Scheda Applicom PC1500PFB
ISA PC board
Processor: Intel 80186 - 24 MHz
Memory: 512 Kbytes dynamic RAM
Electrical Interface: RS485 with
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
galvanic
Caratteristiche Scheda Applicom PC1500PFB
Offre supporto di comunicazione
protocolli: Profibus DP, FMS
per
più
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
Configurazione PC Master DP
Definizione del bus e delle sue proprietà
Bit rate
Parametri di Comunicazione
Definizione Slaves (Files GSD)
Scambio Dati
Le funzioni di comunicazione appartengono a tre
differenti modalità operative:
Wait Mode
Database
Cyclic Mode
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
Modalità Operativa
Wait Mode
Vantaggio: L'Applicazione evolve in modo sincrono con
l'esito dello scambio informativo
Svantaggio: L'esecuzione dell'Applicazione potrebbe
essere rallentata
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
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
Modalità Operativa
Cyclic Mode
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
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
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
Funzioni Supportate dalla libreria Applicom
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
Wait Mode:
Bit
Byte
Word
Bit di Input
Leggi bit di Ingresso
READPACKIBIT
Bit di Output
Leggi bit di Uscita
Scrivi bit di Uscita
READPACKQBIT
WRITEPACKQBIT
Byte di Input
Leggi byte di Ingresso
READPACKIBYTE
Byte di Output
Leggi byte di Uscita
Scrivi byte di Uscita
READPACKQBYTE
WRITEPACKQBYTE
Word di Input
Leggi word di Ingresso
READIWORD
Word di Output
Leggi word di Uscita
Scrivi word di Uscita
READQWORD
WRITEQWORD
Funzioni Supportate dalla libreria Applicom
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
Data Base Mode:
Bit
Byte
Word
DWord
FWord
Leggi bit da Data Base
GETPACKBIT
Scrivi bit nel Data Base
SETPACKBIT
Leggi byte da Data Base
GETPACKBYTE
Scrivi byte nel Data Base
SETPACKBYTE
Leggi word dal Data Base
GETWORD
Scrivi word nel Data Base
SETWORD
Leggi Dword dal Data Base
GETDWORD
Scrivi Dword nel Data Base
SETDWORD
Leggi Fword dal Data Base
GETFWORD
Scrivi Fword nel Data Base
SETFWORD
Esempio di Funzionamento Wait Mode
ReadPackIBit
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)
0
15
Ingresso n.15
Ingresso n.0
Per poter visualizzare il valore di ogni ingresso, si devono estrarre i singoli
bit
Funzione di libreria applicom transwordbit()
Esempio di Funzionamento Wait Mode
short i;
#include <windows.h>
ReadPackIBit
short nchan=0;
#include <stdio.h>
short neq=20;
#include "applicom.h"
short nb=16;
void main()
short status;
{
long adr=0;
initbus(&status);
short tabl[1];
if (!status) {
short tablbit[16];
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
WritePackQByte
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 0255) 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
#include <windows.h>
WritePackQByte
#include <stdio.h>
short i;
short nchan=0;
short neq=30;
short nb=1;
short status;
long adr;
char tabl[1];
#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 ");
}