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 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 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
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 Bit di Input Leggi bit di Ingresso READPACKIBIT Bit di Output Leggi bit di Uscita Scrivi bit di Uscita READPACKQBIT WRITEPACKQBIT Byte Byte di Input Leggi byte di Ingresso READPACKIBYTE Byte di Output Leggi byte di Uscita Scrivi byte di Uscita READPACKQBYTE WRITEPACKQBYTE Word 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 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
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) Per poter visualizzare il valore di ogni ingresso, si devono estrarre i singoli bit Funzione di libreria applicom transwordbit() 15 Ingresso n.15 Ingresso n.0
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" void main() { initbus(&status); if (!status) { do { readpackibit(&nchan, &neq, &nb, &adr, tabl, &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 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 #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];