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 "); }