Home

Programmazione IEC 61131-3 (LogicLab)

image

Contents

1. Programmazione IEC 61131 3 LogicLab Type Library 7 7 13 SysFOBfFlush file output buffer flush Function XTarget_07_0 Questa funzione forza l uscita immediata dei caratteri presenti sul flusso dati stream indicato SysFOBfFlush dal parametro File precedentemente aperto dalla funzione Sysfopen sulla risorsa connessa a File La funzione ritorna FALSE in caso di errore Parametri funzione File rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RSS FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9962100 Terminale di I O usato in task fast o slow 9962990 Non implementata nel simulatore Esempi Se attivo l ingresso DI00MO00 tutti i caratteri presenti nel buffer di uscita della porta seriale saranno trasmessi e l uscita Do00MO00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo F Port COMO file pointer Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Tf the input is active the ouput buffer is cleared IF Fp lt gt NULL THEN IF Di00M00 THEN Do00M00 SysFOBfFlush Fp END IF END IF Mnl151c080 Pag 88 270 Programmazione IEC 61131 3 Logic
2. Programmazione IEC 61131 3 LogicLab Library 7 5 6 SysGetCrc get CRC value XTarget_07_0 Questo blocco funzione esegue il calcolo del CRC Cyclic Redundancy Check Controllo Ciclico di m Ridondanza su di un area dati Il calcolo effettuato secondo le specifiche richieste dal protocollo modbus Rtu il LIE ByteMr Occorre passare alla FB l indirizzo del buffer di memoria Buf ed il numero di bytes ByteNr su cui Mo eseguire il calcolo del CRC Buf usint Indirizzo dell area di memoria su cui eseguire il calcolo del CRC ByteNr unt Numero di bytes su cui eseguire il calcolo del CRC a partire dall indirizzo definito in Buf CRCini unt Valore di inizializzazione del CRC da calcolare CRC uinn Valore CRC calcolato Codici di errore In caso di errore con SysGetLastError possibile rilevare il codice di errore 9978050 Errore allocazione blocco funzione 9978070 Errore versione blocco funzione Esempi Viene calcolato il CRC di un frame modbus Rtu per il comando di lettura registri Read holding registers Definizione variabili Mame Type Address Array Init value Attribute Description 1 Frame SINT Auto 0 9 1000 n Frame array 2 RegsAddress LAT Auto No U i Registers address a NrOfRegs USINT Auto Mo Number of registers 4 GetlRe SyvsGetCre Auto Mo U Get CRC 5 CRCVYalue LINT AUTO Mo 0 CRG value Esempio ST P7TP116A100 ST_SysGetCrc a eg a ge a ee ga a RA RA BF A ML RI RAR RR lalla
3. Mode Input Mode Input lt O el D 5 Cc P Reverse Reset Clock Definisce ingresso logico da utilizzare come clock 0 Conta su fronte salita 1 Conta su fronte discesa 2 Conta su entrambi i fronti Definisce ingresso logico da utilizzare come reset 0 Non utilizzato ingresso di reset 1 Reset counter se ingresso attivo 2 Reset conter se ingresso non attivo Definisce ingresso logico da utilizzare come inversione conteggio O Non utilizzato ingresso di reverse 1 Inverte conteggio counter se ingresso attivo 2 Inverte conteggio conter se ingresso non attivo Per calcolare il valore di mode si applica la formula Reverse mode 2097152 Reverse input 65536 Reset mode 8192 Reset input 256 Clock mode 32 Clock input Se viene settato un valore non corretto si interrompe l esecuzione e viene settato il bit di Fault RCount 8001 Reverse counting attivando questo ingresso Value viene decrementato ad ogni variazione di conteggio Reset B001 Attivando questo ingresso si ha il reset del valore di conteggio Value Done 8001 Dato counter acquisito viene attivato per un loop al termine della acquisizione counter Fault B001 Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Value upint Valore contatore Mnl151c080 Pag 127 270 Programmazione IEC 61131 3 Logic
4. 103 Day Valore giorno Range da 1 a 31 104 Month Valore mese Range da 1 a 12 105 Year Valore anno Range da 1900 a 2037 8 1 5 Lettura RTC da modbus Per la lettura dei registri del real time clock si utilizza il comando Read holding registers Codice 0x03 Dovremo leggere 6 registri consecutivi a partire dall indirizzo di allocazione l indirizzamento di modbus prevede un offset di 1 quindi 99 0x0063 Frames modbus RTU Stringa di comando 01 03 00 63 00 06 35 D6 Stringa di risposta 01 03 OC 00 1E 00 30 00 OB 00 1D 00 09 07 DA A2 32 Frames modbus TCP IP Stringa di comando 00 00 00 00 00 06 01 03 00 63 00 06 Stringa di risposta 00 00 00 00 00 OF 01 03 OC 00 1E 00 30 00 OB 00 1D 00 09 07 DA Come si vede dalla risposta il valore Secondi 30 0x001E Minuti 48 0x0030 Ora 11 0x000B Giorno 29 0x001D Mese 9 0x0009 Anno 2010 0x07DA Mnl151c080 Pag 235 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 8 1 6 Scrittura RTC da modbus Per la scrittura dei registri del real time clock si utilizza il comando Preset multiple registers Codice 0x10 Dovremo scrivere 6 registri consecutivi a partire dall indirizzo di allocazione l indirizzamento di modbus prevede un offset di 1 quindi 99 0x0063 Ipotizziamo di dover impostare nel real time clock i valori Secondi 30 0x001E Minuti 48 0x0030 Ora 11 0x000B Giorno 29 0x001D Mese 9 0x0009 Anno 2010 0x07DA
5. Programmazione IEC 61131 3 LogicLab ELSIST S r l Via G Brodolini 15 Z I Internet http www elsist it TEL 39 0142 451987 Sistemi in elettronica E posa abi Email elsist elsist it FAX 39 0142 451988 INDICE l Lodgcelib dleili li aaa 7 2 lt Risorse del SISMA icona ctin patience E tas woe needa A ESEESE 8 2 Architettura FICS ON oes sete cincces iaia nori 9 2 2 Memoria Gi Dack p Reali aaa ea 10 Z9 Abre SSO alle MOMON dsr e aaacasa 11 PCPA ZIONS ipo E NEEE E E A E E E E EE 12 EF CEF MEDON aE E E E eee ene 12 3 2 SYSSERIALMODE modo comunicazione porta seriale 12 3 3 SYSCANMESSAGE messaggio CAN iii 12 NAM MAIO UMMA SISI 13 4 1 Variabili sola lettura System variableS ee 14 4 2 Variabili lettura e scrittura System variableS e 16 Ao SNe UII OOO PIOGO O eeraa e E R A 17 SADENIE A isee ae Ara 18 5 1 Variable types definition definizione tipo variabili i 18 5 2 Task ID definition identificatore di task PLC cece ec eeeececeee cece eeeeneaeaececeeaeaeseeneaeaeaeeeeaeaeanataeeeeaeaenes 18 5 3 TermlO definition definizioni per terminale di I O 19 5 4 FSeek origin definition definizioni per seek SU file e 19 5 5 Serial mode definition definizioni modo seriale ceece cece ee ececeeeeaeaececeaeaecee
6. Destination BYTE ME 0 16 12 BYTE mE 1 16 34 BYTE MB 2 16 56 BYTE mB 3 16478 BYTE 6 Pag 58 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab 3 Here i Type Library 7 4 14 VarToBEArray variable to big endian array conversion Function ePLCUtyLib_C000 Questa funzione trasferisce il valore di una variabile Source in base al tipo Type definito VarToBEArray in un array Destination utilizzando il formato big endian LSB MSB _ a Destination DOUCE Parametri funzione Type usint Tipo di variabile come definito nella tabella Variable types definition Destination usint Indirizzo array di destinazione Source usint Indirizzo variabile sorgente La funzione ritorna PRSE FALSE Errore tipo dati TRUE Conversione eseguita Esempi Il valore presente nella variabile Source viene convertito nell array Destination di tipo big endian LSB MSB Nell esempio riportata anche la finestra di Watch con i valori visualizzati Definizione variabili Name Type Address Alray Init value Attribute Description 1 Source DWORD Auto Mo 16 12345678 M Source variable 2 Destination BYTE Auto 0 3 La Destination array Esempio FBD VarToBEArray ADR UDINT_TYPE Type Destination gt Destination Source Source o Watch DX bo a Symbol Value Type Loc Source 16412345678 DWORD ME Destination BYTE ME 0 16 78 BYTE E 1 16 56
7. END_IF Here check if a CAN message is available and receive it IF SysISCANRxTxAv FALSE THEN IF SysCANRxMsg 16 00000000 16 00000000 ADR CANMsg THEN NrOfChars SysVarfprintf Fp Length 04d r n USINT TYPE ADR CANMsg Length NrOfChars SysVarfprintf Fp MsgID 04d r n UDINT TYPE ADR CANMsg MsgID NrOfChars SysVarfprintf Fp Data 0 302XSr n UDINT TYPE ADR CANMsg Data 0 END_IF END_IF Mnl151c080 Pag 107 270 Programmazione IEC 61131 3 LogicLab Type Library 7 10 3 SysCANRxMsg receives a CAN message Function XTarget_07_0 Questa funzione riceve un messaggio CAN e lo trasferisce nella variabile il cui indirizzo SysCANRxMsq definito in Msg E possibile definire un Mask ed un ID per ricevere i soli messaggi CAN vu desiderati 2 La funzione ricerca nello stack dei messaggi un messaggio il cui ID posto in AND con Mask risg coincide con ID messo in AND con Mask La funzione ritorna TRUE se messaggio ricevuto Parametri funzione Mask upint Codice maschera ID messaggio ID DINT ID check ID messaggio Msg syscanmessace Indirizzo buffer messaggio ricevuto La funzione ritorna a TRUE Messaggio ricevuto Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9955005 Funzione non supportata 9955990 Non implementata nel simulatore Esempi E riportato un semplice programma che
8. Mnl151c080 Pag 10 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 2 3 Accesso alla memoria IX Immagine di processo ingressi logici SlimLine esegue la lettura degli ingressi logici all inizio di ogni loop di esecuzione programma E possibile accedere a quest area utilizzando variabili di tipo BOOL ogni indirizzo rappresenta lo stato booleano del relativo ingresso logico L indirizzo IX0 0 rappresenta lo stato dell ingresso 0 del modulo 0 l indirizzo X5 12 rappresenta lo stato dell ingresso 12 del modulo 5 QX Immagine di processo uscite logiche SlimLine esegue la scrittura delle uscite logiche alla fine di ogni loop di esecuzione programma E possibile accedere a quest area utilizzando variabili di tipo BOOL ogni indirizzo rappresenta lo stato booleano della relativa uscita logica L indirizzo QX0 0 rappresenta lo stato dell uscita 0 del modulo O l indirizzo QX5 12 rappresenta lo stato dell uscita 12 del modulo 5 MX Area di memoria A queste aree possibile accedere utilizzando tutti i tipi di variabili definiti Siccome tutte le variabili utilizzano la stessa area di memoria occorre prestare attenzione alla dimensione in bytes del tipo definito per evitare sovrapposizioni di indirizzo Ad esempio una variabile DWORD allocata ad indirizzo MX100 10 utilizzer anche lo spazio di memoria MX100 11 MX100 12 ed MX100 13 Quindi allocando una variabile BYTE all indirizzo MX100 11 si andrebbe ad occupare uno spazi
9. USINT_TYPE Variabile byte USINT 8 bits senza segno range da 0 a 255 WORD_TYPE Variabile word WORD 16 bits senza segno range da 0 a 65535 INT_TYPE Variabile word INT 16 bits con segno range da 32768 a 32767 UINT_TYPE Variabile word UINT 16 bits senza segno range da 0 a 65535 DWORD_TYPE Variabile double word DWORD 32 bits senza segno range da 0 a 4294967295 DINT_TYPE Variabile double word DINT 32 bits con segno range da 2147483648 a 2147483647 UDINT_TYPE Variabile double word UDINT 32 bits senza segno range da 0 a 4294967295 REAL TYPE Variabile floating REAL 32 bits con segno range da 3 40E 38 a 3 40E 38 STRING_TYPE Variabile stringa STRING 5 2 Task ID definition identificatore di task PLC Le task PLC sono identificate da un un valore il valore indicato con definizioni che si possono trovare nella cartella Task ID definition Define Description ID _TASK_BOOT Identifica la task di boot PLC Questa task viene eseguita solo al primo loop di esecuzione programma utente ID_TASK_BACK Identifica la task di background Questa task eseguita in background alle task slow e fast Il tempo di loop di questa task non fisso ma dipende dal carico di lavoro della CPU nella esecuzione delle altre tasks ID_TASK_SLOW Identifica la task slow Questa task eseguita con un tempo di loop fisso definito con la funzione SysSetTaskLpTime Di default il tem
10. cee cece cece ceeee cece cece cece eeeseeeeseeeceeeseeeseeeeseeeseeseeaeeeeeeeeeseeees 254 10 7 RX TX GA SU SU CAIN esterases aaa 255 10 8 Conversione tipo dali eo er 256 10 9 USer Informations and SEtINGSrrleieiianaii 258 VA TSE MDI di OP OGM ANNA ZI ONC tac alal 259 FET ENO Le Ca Cs OM rE O E su stuaanoateespsaceesabeoeanoed etti 259 11 2 Definizioni I O logici negli esempi 260 li 3 Esempiiomitcon ogielabi reiial aiar 261 11 3 1 Elenco programmi di esempio iii 262 Tean NOC ili n 263 12 1 Tabella istr zioni Eileen 263 WZ QDS Onna Lorin n 264 Mnl151c080 Pag 5 270 Programmazione IEC 61131 3 LogicLab 12 3 Statements linguaggio S T erisera a EE rin ii 265 a OG S i ee acted a E E E E E T E E PE E TA T 266 AZ Or A Cel COGIC ASC oeann EEE E NEE ETE E EENEN 269 12 5 1 Tabela codici ASCI Standard ai ra 269 12 5 2 1abella codicrAstli estesi cn 270 Mnl151c080 Pag 6 270 Programmazione IEC 61131 3 LogicLab 1 LogicLab LogicLab un compilatore PLC IEC61131 3 che supporta tutti i 5 linguaggi dello standard la facilit e l immediatezza d uso degli editor grafici e testuali le funzioni di drag amp drop estese a tutti i contesti del framework le diverse utility integrate ed i debugger grafici e testuali rendono LogicLab un ambiente di sviluppo efficiente e particolarmente gradevole da utilizzare Dit putiss
11. elevato il valore meno veloce la regolazione integrativa a recuperare l errore Il valore espresso in Sec Tempo derivativo si ricorda che pi elevato il valore pi veloce la regolazione derivativa a recuperare l errore Il valore espresso in Sec Regolazione PID abilitata Errore nella esecuzione Valore di correzione in uscita dalla regolazione PID Questo valore deve essere utilizzato per il comando del processo Il valore espresso in Il range compreso tra 100 Codici di errore In caso di errore si attiva l uscita Error con SysGetLastError possibile rilevare il codice di errore 10012050 Non stato definito valore di ST Esempi Nell esempio gestita una regolazione di temperatura su di un termoriscaldatore Viene acquisita la sonda di temperatura da una Pt100 e viene gestita una uscita PWM Do00M00 per il comando Le costanti del loop PID sono allocate in memoria backup e sono mantenute allo spegnimento inoltre sono accessibili da modbus Mnl151c080 Pag 150 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Definizione variabili Mame Type Address Array Init value Attribute Description 1 RdTemp REAL MD100 0 NO 0 Fead temperature Degrees 2 PresetTemp REAL WMD100 2048 Mo O Get point temperature Degrees 3 P Band REAL MD100 2052 NO 0 Proportional band Degrees 4 STSet REAL MD100 2056 No Scansion time mS 5 KPSet REAL MD100 2060 NO 0 Proportional coefficent
12. un peso il pi possibile prossimo al valore di fondo scala Il valore del peso FsReterence applicato va definito in FSReference dopo un tempo di stabilizzazione lettura peso s amp augeFullScale attivare per un loop DoFSCalibration EER In Mode occorre scegliere un guadagno il pi alto possibile ma facendo in modo OfsCalibration che SGaugeRatio x Alim x Mode lt Alim dove Alim la tensione di Fstcalibration alimentazione dello strain gauge Esempio strain gauge alimentato a 5V e con SGaugeRatio 2mV V Scegliendo Mode AD VIN VREF_G 128 si avr 2mV V 5V 128 1280mV quindi ben sotto i 5V e quindi ok In FilterCf possibile definire un coefficente di filtro sulla acquisizione del peso pi il valore grande e pi il valore di peso filtrato Con 0 non c filtro lasciando la possibilit di inserire un proprio filtro personalizzato esterno Enable B001 Abilitazione blocco funzione DoOfsCalibration oo Comando calibrazione offset DoFSCalibration e00 Comando calibrazione fondo scala Address usint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione dello strain gauge Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito Channel usin Occorre specificare l indirizzo del canale sul modulo Range da 0x00 a 0x0F Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Mo
13. 7 4 8 WordToDouble Word to double conversion Library ePLCUtyLib_C000 Questo blocco funzione permette di convertire due variabili WORD in una variabile DWORD ordToDCouble Sul Out Lous MSW woro MSB del valore in uscita Out LSW woro LSB del valore in uscita Out Out oworo Valore in uscita Esempi Le due variabili MSBWord e LSBWord sono uniti nella variabile VarOut in uscita Definizione variabili Name Type Address Array Init value Attribute Description 1 LSBWord WORD Auto Mo 0 Valore word MSE 2 MSBWord WORD Auto Mo O Valore word LSB 3 VarQut DWORD AUTO No U Variable output 4 FAData WordToDouble Auto Mo O FB Yord to double data Esempio LD P7P114A100 LD_WordToDouble FED ata Word ToOouble EN ENO MS Bitar hE Jut LS BWord gt L5 Esempio IL PTP114A100 IL_WordToDouble LD ST LD ST CAL LD ST MSBWord FBData MSW Transfer the MSW variable to input LSBWord FBData LSW Transfer the LSW variable to input FBData Call the WordToDouble function block FBData Out VarOut Transfer output to variable Esempio ST P7P114A100 ST_WordToDouble FBData MSW MSBWord Transfer the MSW variable to input FBData LSW LSBWord Transfer the LSW variable to input FBData Call the WordToDouble function block VarOut FBData Out Transfer output to variable Mnl151c080 Pag 53 270 Programmazione IEC 61131 3
14. 9996100 Nome risorsa FName ha lunghezza errata 9996110 Nome risorsa FName ha lunghezza errata 9996200 2 Impossibile utilizzare porta da programma utente 9996990 Non implementata nel simulatore Mnl151c080 Pag 74 270 Programmazione IEC 61131 3 LogicLab 3 Flich Esempi Viene aperta la porta seriale in read write Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo 7 Port COMO file pointer Esempio LD Sysfopen SysFirstLoop EN ENC COMO FHame hod ina ode Esempio ST P7TP116A100 ST_Sysfopen IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Pag 75 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 7 2 Sysfclose file close Function XTarget_07_0 Questa funzione permette la chiusura del collegamento alla risorsa indicata dal parametro File SIAE precedentemente aperto dalla funzione Sysfopen ae In caso di errore chiusura la funzione ritorna EOF Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna UNI 0 Se esecuzione corretta EOF In caso di errore Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9973100 Terminale di I O usato in task fast o slow 9973200 Errore nella chiusura della risorsa 9973990 Non
15. Alcune funzioni di programma e o blocchi funzione possono essere protetti da un codice che deve essere ordinato separatamente Per abilitare l esecuzione della funzione e o del blocco funzione occorre sbloccarlo definendone il codice con questa funzione La funzione controlla il codice fornito e ritorna TRUE se codice accettato Vedere capitolo Protezione funzioni e blocchi funzione per ulteriori informazioni Parametri funzione Code stRrInc 20 Codice di protezione La funzione ritorna ORA TRUE Codice verificato ID relativo sbloccato FALSE Codice non verificato Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9991100 Valore di Code non corretto 9991990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue il controllo sul codice di sblocco abcdefghijkImnopqrst Se il codice corretto viene attivata la variabile CodeAccepted Definizione variabili Mame Type Address Array Init value Attribute Description 1 CodeAccepted BOOL Auto No FALSE i Protection code accepted Enabled BOOL Auto Mo FALSE n Function enabled Esempio LD PTP116A000 LD_SysPCodeAccept Sys F Code Accept EH ENG Enabled Cod abcdefghijklmno p qgrs es CodeAccepted Esempio ST Check the protection code CodeAccepted SysPCodeAccept abcdefghijklmnopgrst Protection code accepted Mnl151c080 Pag 65 270
16. Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie NMEA 0183 O pi comunemente NMEA uno standard di comunicazione di dati utilizzato soprattutto in nautica e nella comunicazione di dati satellitari GPS L ente che gestisce e sviluppa il protocollo la National Marine Electronics Association Questo protocollo si basa sul principio che la fonte detta talker pu soltanto inviare i dati sentences e la ricevente detta listener pu soltanto riceverli La libreria eNMEALIib fornisce una serie di funzioni e blocchi funzione per gestire le sentenze NMEA in pratica possibile realizzare programmi con l ambiente di sviluppo LogicLab che si comportano come listeners di sentenze NMEA Mnl151c080 Pag 204 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 19 1 NMEASInterface NMEA system interface FB eNMEALib BOOO Questo blocco funzione gestisce l interfaccia verso un dispositivo che invia sentenze NMEA NMEASIntert connesso al dispositivo di I O definito in File questo un blocco funzione protetto per utilizzarlo sia occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E Enable Done comunque possibile utilizzarlo liberamente in modo test per 30 Min File Fault DID HMEAID Rx String L FB riceve le sentenze NMEA dal dispositivo ne controlla il prefisso comparan
17. L uscita Done si attiva se tutti i parametri sono corretti ed il socket stato messo in condizione di listening Quando un client si connette Solo socket TCP si attiva l uscita Connect e nelle F 5 5 variabili ClientIP e ClientPort sono ritornati l indirizzo IP e la porta connessa al socket Txsize Enable 8001 Abilitazione blocco funzione attivandolo si forza socket in condizione di listening File FILEP Flusso dati stream ritornato dalla funzione Sysfopen MyilP stRING 15 Stringa di definizione indirizzo IP interfaccia di rete su cui il socket gestito Lasciandolo non connesso o definendo 255 255 255 255 sara utilizzata interfaccia ethernet MyPort unt Porta su cui sar posto in ascolto il socket LifeTm unt Tempo di vita socket se non sono ricevuti o inviati dati dopo il tempo definito il socket viene automaticamente chiuso Sec Solo per socket TCP FlushTm unt Tempo di flush dati se non sono caricati dati nel socket dopo il tempo definito i dati presenti vengono automaticmente inviati mS Solo per socket TCP RxSize uint Dimensione buffer ricezione dati Solo per socket TCP TxSizZe unt Dimensione buffer trasmissione dati Solo per socket TCP Done 8001 Attivo se socket in condizione di listening Fault B001 Attivo per un loop di programma se errore gestione Connect 8001 Si attiva se un client si connette al socket Solo per socket TCP ClientIP strinci15 Stringa di definizione indirizzo
18. Module usin Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito InfolD usint Occorre specificare l ID della informazione richiesta Value Description 0 Ritorna codice prodotto 1 Ritorna codice programma Info stRING 10 Indirizzo variabile dove trasferire l informazione La funzione ritorna oot FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna con FALSE e con SysGetLastError possibile rilevare il codice di errore 9990100 II modulo indirizzato in Module non presente 9990110 Il valore di InfoID non corretto 9990200 L informazione richiesta non supportata dal modulo 9990210 Errore durante la richiesta della informazione dal modulo 9990990 Non implementata nel simulatore Esempi E riportato un programma che esegue la lettura del codice prodotto dal modulo di estensione con indirizzo 0 Il codice ritornato trasferito nella variabile Info Il ritorno della funzione trasferito sull uscita Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Info STRING Auto 10 Info returned from module Esempio LD Sys Phr Infos DOO Woo Do00hi00 P EN ENO a Module hi InfolD aes Info Do Moo Mnl151c080 Pag 117 270 Programmazione IEC 61131 3 LogicLab
19. ADR TString Per attivare la console di spionaggio occorre accedere al sistema in Telnet Fare riferimento al Manuale riferimento comandi Telnet CPU SlimLine Con il comando SpyData si attiva la console di spionaggio e sono visualizzati i vari records dati CA Toolly by ELSIST Srl ini al File Utilities Devices Window Help Elsist SlimLine SFWl84A8S0O Code MPSO46B200 Serial 1 Login Admin Password Admin gt SpyData Spy data active type Ctrl C to exit 15 10 24 9999 Sp 1 Hello 15 10 254 0000 Sp 2 Hello 0D 0A 15 10 24 0000 Sp 3 48 65 eC oC oF 15 10 251 0999 Sp 1 Hello 15 10 25 0000 Sp 2 Hello OD DA 15 10 25 0000 Sp 3 48 65 eC amp C oF 15 10 26 0999 Sp 1 Hello _ 15 10 26 0000 Sp 2 Hello OD DA 15 10 26 0000 5p 3 48 65 eC oC oF L5210 27 0999 Sp 1 Hello 15210727 0000 Sp 2 Hello 00 0A 15 10 27 0000 Sp 3 48 65 oC amp C oF 21 0D DA 21 OD DA 21 0D DA 21 OD DA Mnl151c080 192 168 0 162 IP 23 21 10 2013 15 11 48 Disconnection 192 168 0 162 23 21 10 2013 15 11 48 Stop 21 10 2013 15 11 55 Connection 192 188 0 182 23 31 10 2013 15 11 55 Start Commands SSS ae se STS Pag 69 270 Programmazione IEC 61131 3 LogicLab 7 6 Funzioni ed FB per gestione Data Ora Type 5 Flea Library 7 6 1 SysETimeToDate epoch time to date conversion Questo blocco funz
20. Destination usint Pointer al buffer di memoria di destinazione Source usINT Pointer al buffer memoria sorgente Size DINT Numero di bytes da trasferire La funzione ritorna RESI Valore definito in Size Esempi Viene eseguita la copia della stringa SString nella stringa DString Al termine la stringa risultante sar HelloHello Definizione variabili Mame Type Address Array Init value Attribute Description 1 RetValue UDINT AUTO Mo Return value 2 DString STRING Auto 32 E Destination string 3 Sotring STRING AUTO 8 Hello Source string Esempio ST The Sstring is copied twice into DString RetValue MemCopy ADR DString ADR SString SIZEOF SString Return value RetValue MemCopy ADR DString LEN DString ADR SString SIZEOF SString Return value Mnl151c080 Pag 113 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_08_0 7 11 5 SysVarsnprintf variable print to string Questa funzione trasferisce in String la stampa formattata di una variabile Il valore re i ina i Sys Varsnprintt stampato ritornato nella variabile stringa non puo superare la lunghezza definita in Size a String La stringa Format specifica il formato con il quale stampare la variabile Mentre in VarType Size indicato il tipo di variabile ed in VarAdd il suo indirizzo Format La funzione ritorna il numero di caratteri trasferiti nella variabile Stri
21. Frames modbus RTU Stringa di comando 01 10 00 63 00 06 08 00 1E 00 30 00 OB 00 1D 00 09 07 DA 5D C8 Stringa di risposta 01 10 00 63 00 06 BO 15 Frames modbus TCP IP Stringa di comando 00 00 00 00 00 13 01 10 00 63 00 06 08 00 1E 00 30 00 0B 00 1D 00 09 07 DA Stringa di risposta 00 00 00 00 00 06 01 10 00 63 00 06 Mnl151c080 Pag 236 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 8 1 7 Accesso Epoch time da modbus E allocato anche un registro a 32 bits per il valore di data ora in Epoch time l acceso a questo registro in lettura e o scrittura v sempre effettuato usando due registri a 16 bits Address Register Note 150 Epoch time Epoch time 8 1 8 Lettura Epoch time da modbus Per la lettura dell epoch time si utilizza il comando Read holding registers Codice 0x03 Dovremo leggere 2 registri consecutivi a partire dall indirizzo di allocazione l indirizzamento di modbus prevede un offset di 1 quindi 149 0x0095 Frames modbus RTU Stringa di comando 01 03 00 95 00 02 D4 27 Stringa di risposta 01 03 04 30 B5 4C A3 90 6C Frames modbus TCP IP Stringa di comando 00 00 00 00 00 06 01 03 00 95 00 02 Stringa di risposta 00 00 00 00 00 07 01 03 04 30 B5 4C A3 Come si vede dalla risposta il valore 0x4CA330B5 1285763253 GMT Wed 29 Sep 2010 12 27 33 UTC 8 1 9 Scrittura Epoch time da modbus Per la scrittura dell epoch time si utilizza il comando Preset multiple registers Codice
22. LD FBData OutBit ST Do00M00 Copy FB output to logic output Esempio ST PTP14A100 ST_BlinkValue FBData BlinkNr 23 Call the BLINK function block FBData Enable D100M00 Transfer the digital input to FB enable Do00M00 FBData 0OutBit Transfer the FB output to digital output Mnl151c080 Pag 141 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 13 4 ModbusMaster modbus master FB ePLCUtyLib_C000 Questo blocco funzione esegue la gestione del protocollo modbus master con Type possibile i La si ee dice ner Modbus Master selezionare il tipo di protocollo RTU Ascii ed over IP Con File possibile definire il terminale di I O su cui effettuare la comunicazione pg n f oo SpyOn Ok Attivando Enable sul terminale di I O viene inviato un frame per eseguire la funzione modbus i f i i File Fault definita in Fcode sul nodo definito in Node Terminata l esecuzione del comando viene attivata Type Errors l uscita Done Se l esecuzione comando ha esito positivo si attiva per un loop di programma l uscita Ok Disattivando Enable si azzera Done e l eventuale Fault per eseguire nuovamente il comando sde occorre riabilitare l ingresso Enable L ingresso SpyOn se attivo permette di spiare il funzionamento Fede della FB Address Se FCode una funzione di lettura il valore delle variabili a partire dall indirizzo definito in Address per
23. Mnl151c080 Pag 256 270 Programmazione IEC 61131 3 LogicLab Esempi 5 Flee Conversione di una variabile di tipo DINT in una variabile di tipo USINT nei diversi linguaggi di programmazione Naturalmente se il valore della variabile VarDINT supera il valore 255 Limite della variabile VarUSINT verra ritornato il resto della divisione per il limite Definizione variabili Mame Type Address Array Init value Attribute Description 1 WarUSINT USINT Auto Mo 0 x USINT variable 2 VarDiNT DINT Auto Mo O n DINT variable Esempio IL LD VarDINT DINT variable TO_USINT ST VarUSINT USINT varlable Esempio FBD TO_USINT VarDINT gt Esempio LD Esempio ST VarUSINT TO USINT VarDINT Mnl151c080 VarUSINT TO_USINT EN ENO VarBINT _ WarUSINT USINT variable Pag 257 270 Programmazione IEC 61131 3 LogicLab 3 Flat 10 9 User Informations and Settings E previsto un interfacciamento tra il programma utente PLC ed il sistema operativo questo permette di visualizzare ed impostare da sistema operativo variabili il cui valore disponibile all interno del programma utente SysUInfoA SysUInfoB SysUInfoC SysUlnfoD 4 variabili stringa da 16 caratteri che possono essere valorizzate da programma utente e visualizzabili da sistema operativo SysUSetA SysUSetB SysUSetC SysUSetD 4 variabili stringa da 16 caratteri che possono essere valorizzate da s
24. Type Library 7 22 2 DataTxferClient Data transfer client FB eMMasterDTxferLib_C000 Questo blocco funzione esegue lo scambio dati con un altro sistema su canale di DataTxfer Client comunicazione Si collega al blocco funzione MMasterDataTxfer di gestione dispositivo di i i Enable Enabled comunicazione occorre passare MMDtTxfID in uscita dal blocco funzione server e MMDtTsf1D Fault Il blocco funzione scambia i dati con il sistema definito in ToNode In pratica il valore di ToWade RxOk ToNode deve coincidere con il valore di MyNode della FB MmasterDataTxfer dell altro sistema RxData PeerOk TxData RxFrames In RxData ed in TxData occorre definire l indirizzo del buffer dati che si vuole scambiare con il DLen TxF rames sistema peer In DLen la dimensione in bytes del buffer dati in scambio buffers RxData e TxData devono avere la stessa dimensione L FB controlla se vi una variazione dei dati nel buffer TxData e ne esegue immediatamente l invio al sistema peer che risponde con i dati del proprio buffer TxData che saranno trasferiti nel buffer RxData L uscita PeerOk attiva se la comunicazione con il sistema peer operativa in caso di errori di comunicazione l uscita si disattiva In RxFrames e TxFrames ritornato il conteggio dei frames dati ricevuti ed inviati dalla FB verso il sistema peer in AckErrors il numero di errori di acknowledge da parte del sistema peer In caso di errore esecuzione viene attivat
25. dotato di tutte le modalit di comunicazione che consentono di ottenere un elevato trasferimento dati ed una sicurezza intrinseca sulla loro validit Questo avviene grazie a tecniche di indirizzamento univoche CRC polinomiali di controllo numerosi comandi di verifica e complessi algoritmi di gestione Sui sistemi SlimLine possibile connettere un convertitore Seriale One Wire su una delle porte seriali COMO o COM1 presenti sul modulo CPU oppure utilizzare una qualunque porta seriale presente su un modulo di estensione per poter disporre di uno o pi bus One Wire Il blocco funzione sOWireMng gestisce il convertitore permettendo la gestione dei dispositivi ad esso connessi Mnl151c080 Pag 182 270 Programmazione IEC 61131 3 LogicLab Flarf i Type Library 7 16 1 sOWireMng One Wire management n FB ePLC1WireLib_C000 Questo blocco funzione gestisce il convertitore Seriale One Wire connesso al dispositivo di I O sOWireMng definito in File l FB gestisce l inizializzazione e la gestione del convertitore Enable Onion L uscita OnWork si attiva se Enable attivo l uscita Fault si attiva in caso di errori di gestione e File Activity rimane attiva fino a quando l errore permane L uscita Activity si attiva durante l attivit sul bus One Fault Wire L FB ritorna un MngID che deve essere passato alle FB collegate hinglD Enable B001 Abilitazione blocco funzione attivandolo viene gestito il converti
26. i a l Value relativo bit di mask attivo a hlask Per gestire le uscite digitali presenti sul modulo CPU occorre definire Address 255 e Mode DO 8 LL Address usint Occorre specificare l indirizzo del modulo su cui eseguire l impostazione delle uscite digitali Range da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo 255 indica il modulo CPU Mode usint Occorre specificare il modo di gestione uscite digitali Digital output mode Value upin Impostare il valore da trasferire sulle uscite digitali Mask upint Maschera outputs da gestire Done 8001 Dato settato Viene attivato per un loop al termine del settaggio delle uscite digitali Fault Boot Errore Viene attivato in caso di errore nella sequenza di settaggio Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9984050 Errore allocazione blocco funzione 9984060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9984070 Errore versione blocco funzione 9984100 II modulo indirizzato in Address non presente 9984110 8 Il modo gestione definito in Mode non corretto 9984200 6 Errore durante l esecuzione gestione uscite digitali sul modulo periferico Mnl151c080 Pag 121 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Esempi Viene trasferito il valore della variabile OutValue sulla uscita Out 0
27. 000 999 SysMAlloc memory allocation 9948 000 999 SysSetTaskLpTime set task loop time 9949 000 999 Funzione embedded 9950 000 999 SysSpyData system spy data 9951 000 999 SysSetPWMOut set PWM output 9952 000 999 SysDirListing directory listing 9953 000 999 SysI2CWrRd writes reads on 12C extension bus 9954 000 999 SysCANTxMsg transmit a CAN message 9955 000 999 SysCANRxMsg receives a CAN message 9956 000 999 SysISCANRxTxAv checks if CAN Rx or Tx is available 9957 000 999 SysCANSetMode set the CAN controller mode 9958 000 999 Sysfseek file seek 9959 000 999 Sysfilelength file lengh 9960 000 999 Sysrename file rename 9961 000 999 Sysremove file remove 9962 000 999 SysFOBfFlush file output buffer flush 9963 000 999 SysFOBfClear file output buffer clear 9964 000 999 SysFIBfClear file input buffer clear 9965 000 999 SysGetI xBSize get file Tx output buffer size 9966 000 999 SysGetRxBSize get file Rx input buffer size 9967 000 999 SysGetOSpace get output available space on file 9968 000 999 SysGetlChars get input available characters from file 9969 000 999 Sysfwrite write data to file 9970 000 999 Sysfread read data from file 9971 000 999 Sysfputc put character to file 9972 000 999 Sysfgetc get character from file 9973 000 999 Sysfclose file close 9974 000 999 SysIPReach IP address is reachable 9975 000 999 SysUDPSk
28. 3 TxData UDINT AUTO Mo O 4 FxDataAdd DBI00AddOffset Auto Mo 0 F TxDataAdd DB100AddOffset Auto Ko E ODataEx lODataExchange Auto Mo 0 Esempio LD Ptp121A000 Dido OO Didi OO DiOO KO 4 Diddi hiid RxDataAdd DE O0Add Of set Mnl151c080 er Enable be leh aster e ee Strobe 0 Offset TxD ata 2 Baten TxDataAdd 15 TrigDelay DE100Add Offset _16__ Offset MOVE ExchDone EH ENO hMD100 0 gt _ TxData gt WMD 4100 16 Attribute Description Data exchange done Received data Transmit data RxData address TxData address FA lODataExchange data lOD ata Ex lO Data Exchange Dodi Moo Enabled Do00h01 OStrobe Dod hiii ExchDone RxD ata Pag 158 270 Programmazione IEC 61131 3 LogicLab Library ePLCUtyLib_C000 7 13 13 Average value average Questo blocco funzione esegue la media su di un valore L azione di media definita da un parametro Coefficient maggiore il valore del parametro e maggiore sar l azione di media sul valore in uscita Average Value Average Average Coefficient Value REAL Valore su cui effettuare l azione di media Coefficient REAL Valore del coefficiente di media Average REAL Valore mediato in uscita Esempi Viene eseguita una acquisizione analogica dall ingresso 0 del modulo con indirizzo 0 in modo 0 10 volt Il valore acquisito viene mediato e poi tr
29. DTRComplement BOOL FALSE DTR normale TRUE DTR complementato EchoFlush BOOL FALSE dati trasmessi sono ritornati in ricezione TRUE l dati trasmessi sono ignorati su comunicazioni in RS485 DTROnTime UINT Tempo di attesa trasmissione caratteri su porta seriale dopo attivazione segnale DTR mS Questo parametro assume significato solo se DTRManagement impostato nel modo DTR_AUTO_W _ TIMES vedi Serial mode definition DTROffTime Tempo di attesa dopo trasmissione ultimo dato e disattivazione segnale DTR mS Questo parametro assume significato solo se DTRManagement impostato nel modo DTR_AUTO_W _ TIMES vedi Serial mode definition 3 3 SYSCANMESSAGE messaggio CAN Questo tipo di dati utilizzato dalle funzioni che gestiscono il controller CAN La struttura definisce il formato di un messaggio CAN Type Description BOOL FALSE Data frame TRUE Remote request USINT Lunghezza record dati da 0 a 8 bytes UDINT Message ID 11 o 29 bit di identificativo messaggio Il bit 31 il bit di FF ARRAY 0 7 OF USINT Array dati messaggio Mnl151c080 Pag 12 270 Programmazione IEC 61131 3 LogicLab 4 Variabili di sistema Con l ambiente di sviluppo LogicLab vengono pubblicate variabili di sistema che possono essere referenziate nel programma per accedere ad informazioni sul sistema Le variabili sono visualizzate da LogicLab nella finestra delle librerie Se la f
30. Fp FILER Auto Mo File pointer 2 Space UDINT Auto No O g Rx buffer space iMr of Chars Esempio LD SysF irstLoop EN ENO Sys GetTx B Size Mnl151c080 Pag 85 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 7 11 SysFIBfClear file input buffer clear Questa funzione elimina tutti i caratteri in lettura presenti sul flusso dati stream indicato dal SysFIBfClear parametro File precedentemente aperto dalla funzione Sysfopen File La funzione ritorna FALSE in caso di errore Parametri funzione File rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RSS FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9964100 Terminale di I O usato in task fast o slow 9964990 Non implementata nel simulatore Esempi Se attivo l ingresso Di00MO00 tutti i caratteri in ingresso dalla porta seriale saranno cancellati e l uscita Do00M00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo F Port COMO file pointer Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Tf the input is active the input buffer is cleared IF Fp lt gt NULL THE
31. I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Attivazione comandi su input D100M00 DiPls 0 CLK D100M00 IF DiPls 0 0 THEN DMXData 0 0 Preset dispositivo con indirizzo 1 DMXData 1 0 Preset dispositivo con indirizzo 2 DMXData 2 0 Preset dispositivo con indirizzo 3 DMXData 3 0 Preset dispositivo con indirizzo 4 DMXData 4 0 Preset dispositivo con indirizzo 5 FBDMX Start TRUE Start END_IF Attivazione comandi su input Di01M00 DiPls 1 CLK D101M00 IF DiPls 1 Q THEN DMXData 0 10 Preset dispositivo con indirizzo 1 DMXData 1 20 Preset dispositivo con indirizzo 2 DMXData 2 30 Preset dispositivo con indirizzo 3 DMXData 3 40 Preset dispositivo con indirizzo 4 DMXData 4 50 Preset dispositivo con indirizzo 5 FBDMX Start TRUE Start END_IF x cessare rr rare Lo ESEGUO GESTIONE PROTOCOLLO DMX I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I
32. IF NOT D100M00 THEN SetTime SysGetSysTime TRUE StartTime END IF END_IF Calcolo timeout Essendo il valore di tempo di sistema ritornato dalla funzione un numero UDINT che si incrementa ogni uS ed al valore massimo esegue overflow a zero non possibile effettuare comparazioni dirette con il tempo di riferimento ma occorre sempre eseguire la differenza Nel seguente esempio viene attivato Timeout se l ingresso DIO0MO00 rimane attivo per pi di un secondo IF NOT D100M00 THEN TimeBf SysGetSysTime TRUE ELSE LE SysGetsysTime TRUE TimeBf gt 1000000 THEN Timeout TRUE END LE END IF Lo stesso esempio scritto in questo modo non funziona correttamente IF NOT D100M00 THEN TimeBf SysGetSysTime TRUE ELSE LE SysGetsysTime TRUE gt TimeBf 1000000 THEN Timeout TRUE END LE END IF Mnl151c080 Pag 60 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Semplice cronometro Questo esempio realizza un semplice cronometro per misurare il tempo che intercorre tra un comando di start ed il comando di stop Utilizzando ad esempio due fotocellule una sulla linea di start ed una sulla linea di stop di un percorso possibile calcolare il tempo di percorrenza espresso in US Attivando l ingresso di start Di0OMO0 viene salvato il tempo di sistema allo start nella variabile StartTime attivando l ingresso di stop DI01M00 viene calcolato il tempo trascorso tra il tempo salvato allo start ed il tempo nel mom
33. LogicLab 3 Faszt Type Library 7 4 9 ToLower Uppercase to lowercase letter conversion Function ePLCUtyLib C000 Questa funzione converte un carattere dal formato maiuscolo nel corrispondente carattere in meg formato minuscolo Char Parametri funzione Char usinty Carattere da convertire La funzione ritorna et Carattere nel formato minuscolo Esempi La variabile Upper viene convertita nel corrispondente valore minuscolo e trasferita in Lower Il valore di inizializzazione 16 41 che corrisponde alla lettera A viene convertito nel valore 16 61 che corrisponde alla lettera a Definizione variabili Mame Type Address Array Init value Attribute Description 1 Upper USINT Auto No 16841 E Uppercase letter 2 Lower USINT Auto Mo O n Lowercase letter Esempio LD To Lower Upper Char Esempio IL LD Upper Uppercase letter ToLower Uppercase to lowercase letter conversion ST Lower Lowercase letter Esempio ST Lower ToLower Upper Uppercase to lowercase letter conversion Mnl151c080 Pag 54 270 Programmazione IEC 61131 3 LogicLab 3 Hey Type Library 7 4 10 ToUpper Lowercase to uppercase letter conversion Function ePLCUtyLib_C000 Questa funzione converte un carattere dal formato minuscolo nel corrispondente carattere in ToUpper formato maiuscolo Char Parametri funzione Char usinty Carattere da convertire La funzione ritorna et Carattere nel form
34. Parametri funzione Cmd oot Indica il numero random ritornato TRUE Viene salvato e ritornato un nuovo numero random FALSE Viene ritornato il numero salvato dalla precedente chiamata con Cmd TRUE La funzione ritorna REAL Un numero random compreso nel range da 0 0 a 1 0 Esempi Attivando l ingresso digitale Di0OMO0 viene inviato sulla porta seriale COMO una sequenza di 10 numeri random Definizione variabili Mame Type Address Array Init value Attribute Description 1 Random WINT AUTO Mo 0 Random number 2 Ji USINT Auto Mo K Auxiliary counter a NrOfchars INT Auto No O Number of printed chars 4 Fp FILEP Auto Mo I S Port COMO file pointer 5 Pulse BOOL Auto No FALSE Pulse flag Esempio ST PTP116A000 ST_SysGetRandom Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Check if input is activated F D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag On input raising edge print out 10 random numbers IF D100M00 THEN FOR 1 0 TO 9 BY 1 DO RandomNr TO UINT SysGetRandom TRUE 1000 0 Random number NrOfChars SysVarfprintf Fp Rn 3503d r n UINT TYPE ADR RandomNr END FOR END IF END IF Collegando un terminale seriale alla porta COMO impostato a 115200 e 8 1 vedremo un elenco del tipo Ri 437 Rn 488 Rn 898 Rn 261 Rn 944 Mnl151c080 Pag 63 270 Programmaz
35. Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 1 3 RS Reset Set flip flop ePLCStdLib B000 Questo blocco funzione su attivazione del comando di set S attiva l uscita Q1 che rimane attiva anche ape quando il comando viene disattivato Per disattivare l uscita occorre attivare il comando di reset R1 a E DI Il comando di reset R1 prioritario sul comando di set S Li S BOOL Set su attivazione del segnale viene attivata l uscita Q1 che rimane attiva anche quando il comando viene disattivato R1 B001 Reset su attivazione del segnale viene disattivata l uscita Q1 prioritario sul comando di set S Q1 8001 Uscita si attiva e disattiva in funzione dei comandi di S set e R1 reset Esempi Sulla attivazione dell ingresso digitale Di00M00 viene attivata l uscita digitale Do00M00 che rimane attiva anche quando l ingresso digitale Di00M00 viene disattivato Per disattivare l uscita digitale DoOOMOO occorre attivare l ingresso digitale Di01M00 Nota L ingresso digitale Di01M00 ha la priorit sull ingresso digitale Di0OMOO Definizione variabili Mame Type Address Array Init value Attribute Description 1 FARES RS AUTO Mo RS Resetset function block Esempio LD PTP115A100 RS_LD FERS GE Doi hoo e e e e y PQ mA mamma eee Esempio IL CAL FBRS Call the RSG function block LD D100M00 ST FBRS S Transfer the digital input to the set command LD D101M00 ST FBRS R1 Transfer the digital inp
36. THEN IF TO BOOL SysGetIChars Fp AND TO BOOL SysGetOSpace Fp THEN Ch Sysfgetc Fp Get input character Ch Sysfputc Ch Fp Put input character END IF END IF Mnl151c080 Pag 82 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 7 8 SysGetOSpace get output available space on file Questa funzione ritorna lo spazio disponibile per la scrittura dati sul flusso dati stream indicato Sys Get Space dal parametro File precedentemente aperto dalla funzione Sysfopen File Se il valore ritornato diverso da 0 i caratteri potranno essere scritti con la funzione Sysfputc Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna UNY Spazio disponibile sul flusso dati per trasferire caratteri Se buffer vuoto viene ritornata la dimensione del buffer di trasmissione Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9967100 Terminale di I O usato in task fast o slow 9967990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue l eco dei caratteri ricevuti dalla porta seriale COMO Viene eseguita apertura porta seriale COMO e controllato se caratteri disponibili dalla porta Se almeno un carattere disponibile ne viene eseguita lettura e successiva ritrasmissione Definizione variabili Mame Type A
37. possibilit di gestire le pagine dinamiche Una pagina web dinamica una pagina il cui contenuto in tutto o in parte generato sul momento dal server potendo dunque essere diversa ogni volta che viene richiamata consentendo quindi un interattivit con l utente Ecco quindi che sar possibile realizzare pagine che riportano valori di variabili PLC e permettono di modificare il valore di variabili PLC Nell esempio seguente riporto il sorgente html di una semplice pagine che visualizza il valore di una variabile PLC di tipo UINT allocata all indirizzo DB100 10 e permette di impostare il valore di una variabile PLC di tipo UINT allocata all indirizzo DB100 12 Sorgente html pagina lt html gt lt head gt lt meta http equiv Content Type content text html charset iso 8859 1 gt lt title gt SlimLine Simple page lt title gt lt head gt lt body gt DB100 10 amp nbsp lt da DINT 10 gt lt br gt lt form id MyForm name MyForm method post action DPage htm gt DB100 12 amp nbsp lt input name UINT 12 type text size 5 maxlength 10 value lt dqd UINT 12 gt gt amp nbsp lt input type submit id MyButton value Save gt lt form gt lt body gt lt html gt Salvando il testo riportato in un file esempio DPage htm e trasferendo il file nella directory Storage di SlimLine sara possibile visualizzare la pagina web risultante semplicemente digitando nel proprio
38. uS E possibile inizializzarne il valore settando il bit SysTimelnit SysTSlowExTm UDINT Tempo di esecuzione attuale della task slow uS SysTSlowExTmMin UDINT Tempo di esecuzione minimo della task slow uS E possibile inizializzarne il valore settando il bit SysTimelnit SysTSlowExTmMax UDINT Tempo di esecuzione massimo della task slow uS E possibile inizializzarne il valore settando il bit SysTimelnit SysTBackExTm UDINT Tempo di esecuzione attuale della task background uS SysTBackExTmMin UDINT Tempo di esecuzione minimo della task background uS E possibile inizializzarne il valore settando il bit SysTimelnit SysTBackExTmMax UDINT Tempo di esecuzione massimo della task background uS E possibile inizializzarne il valore settando il bit SysTimelnit SysStartTime UDINT Data ed ora di start esecuzione programma PLC Epoch time SysTime UDINT Tempo di sistema si incrementa ad ogni 1 mS raggiunto il valore massimo si reinizializza Mnl151c080 Pag 14 270 Programmazione IEC 61131 3 LogicLab Name Type 5 Flee Description SysTFastLpTm UDINT Tempo di loop della task fast PLC Il tempo impostabile tramite la funzione SysSetTaskLpTime SysTSlowLpTm UDINT Tempo di loop della task slow PLC Il tempo impostabile tramite la funzione SysSetTaskLpTime SysAppllD UDINT ID applicazione un numero univoco che identifica il programma utente attualmente in esecuzione sul sistema
39. value Value 1 document getElementByld Cos value Value 2 lt script gt lt head gt lt body onLoad setInterval AJAXSendRequest Values htm 3000 gt lt table border 0 gt lt tr gt lt td gt Angle lt td gt lt td gt lt input type text id Angle size 4 maxlength 4 gt lt td gt lt td gt Sin lt td gt lt td gt lt input type text id Sin size 6 maxlength 6 gt lt td gt lt td gt Cos lt td gt lt td gt lt input type text id Cos size 6 maxlength 6 gt lt td gt lt tr gt lt table gt lt body gt lt html gt Sul caricamento della pagina lt body onLoad setinterval AJAXSendRequest Values htm 3000 gt viene eseguita la richiesta AJAX ogni 3 secondi della pagina Values htm valore di ritorno di questa pagina viene automaticamente passato alla funzione SetupValues che lo parsa e copia i valori negli oggetti di visualizzazione La pagina Values htm ritorna i valori delle 3 variabili separati dal simbolo Ecco il listato di questa pagina Sorgente pagina Values htm aa od gt WINE Vee 1363F REAL 4 gt lt 1 36 3f REAL Seo Mnl151c080 Pag 249 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 10 Tips and tricks 10 1 Swap variabile DWORD Ecco come utilizzare la funzione ROL per eseguire lo swap su variabile DWORD Nell esempio Il valore 16 12345678 viene trasformato nel valore 16 56781234 e trasferito nella variabil
40. 0x10 Dovremo scrivere 2 registri consecutivi a partire dall indirizzo di allocazione l indirizzamento di modbus prevede un offset di 1 quindi 149 0x0095 Ipotizziamo di dover impostare il valore GMT Wed 29 Sep 2010 12 27 33 UTC 1285763253 0x4CA330B5 Frames modbus RTU Stringa di comando 07 10 00 95 00 02 04 30 B5 4C A3 50 A3 Stringa di risposta 01 10 00 95 00 02 51 E4 Frames modbus TCP IP Stringa di comando 00 00 00 00 00 0B 01 10 00 95 00 02 04 30 B5 4C A3 Stringa di risposta 00 00 00 00 00 06 01 10 00 95 00 02 Mnl151c080 Pag 237 270 Programmazione IEC 61131 3 LogicLab 3 Flat 9 Creazione pagine web utente Con il nuovo sistema operativo SFW184 stata implementata la possibilit di creare pagine web direttamente dall utente queste pagine potranno essere trasferite nelle directory del sistema e verranno visualizzate accedendo da browser web Per trasferire le pagine web create dall utente nel file system del sistema SlimLine occorre utilizzare un client Ftp Esempio FileZilla ma possibile usare anche il semplice esplora risorse di Windows Come si vede dalla figura sottostante impostando nella barra indirizzo le credenziali di accesso al sistema ed il suo indirizzo IP ftp Admin Admin 192 168 0 162 possibile connettersi e visualizzare il file system Organizza Propriet del sistema I Download irik igi j la Downloa a Unit disco rigido 2 7 Dropbox L 2 A i Risorse r
41. 3 LogicLab 3 Faszt Library 7 4 5 ByteToWord Byte to word conversion ePLCUtyLib_C000 Questo blocco funzione permette di convertire due variabili BYTE in una variabile WORD EyteTo Word MSE Out a LSB MSB evm MSB del valore in uscita Out LSB eyre LSB del valore in uscita Out Out woro Valore in uscita Esempi Le due variabili MSBByte e LSBByte sono uniti nella variabile VarOut in uscita Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBD ta ByteTowvord Auto Mo 0 FB Byte to word data 2 LSBByte BYTE Auto Mo 0 Valore byte MSB 3 MSBByte BYTE Auto Mo 0 Valore byte LSB 4 VWarQut WORD Auto Mo U Variable output Esempio LD PTP114A100 LD_ByteToWord FAD ata Bute Toward EN ENO MSBEyte gt MSB Out LsBByte LSB Esempio IL PTP114A100 IL_ByteToWord LD MSBByte ST FBData MSB Transfer the MSB variable to input LD LSBByte ST FBData LSB Transfer the LSB variable to input CAL FBData Call the ByteToWord function block LD FBData Out ST VarOut Transfer output to variable Esempio ST PTP114A100 ST_ByteToWord FBData MSB MSBByte Transfer the MSB variable to input FBData LSB LSBByte Transfer the LSB variable to input FBData Call the ByteToWord function block VarOut FBData Out Transfer output to variable Mnl151c080 Pag 50 270 Programmazione IEC 61131 3 LogicLab
42. 4 7 DoubleToWord Double to word conversion ePLCUtyLib_C000 Questo blocco funzione permette di convertire una variabile DWORD in due variabili WORD Double Tov word n Mi SW LEY IN pworp Variabile da convertire MSW woro MSW del valore in ingresso LSW woro LSW del valore in ingresso Esempi Le variabile Varlnp divisa nelle due variabili MSBWord e LSBWord Definizione variabili Mame Type Address Array Init value Attribute Description 1 LSBWord WORD Auto Mo 0 Valore word MS 2 MSBYYord WORD Auto Mo 0 Valore word LSB 3 Varinp DYWORD Auto Mo 0 Variable input 4 FBData DoubleTo Wor Auto Mo O FB Word to byte data Esempio LD P7P114A100 LD_DoubleToWord FAL ata Double To Word EN ENO Varlnp gt In Mi Sui MS Bio rd LS Bord Esempio IL PTP114A100 IL_DoubleToWord LD VariIng ST FBData In Transfer the variable to input CAL FBData Call the DoubleToWord function block LD FBData MSW ST MSBWord Transfer the MSW output to variable LD FBData LSW ST LSBWord Transfer the LSW output to variable Esempio ST P7P114A100 ST_DoubleToWord FBData In VarInp Transfer the variable to input FBData Call the DoubleTowWord function block MSBWord FBData MSW Transfer the MSW output to variable MSBWord FBData LSW Transfer the LSW output to variable Mnl151c080 Pag 52 270 Programmazione IEC 61131 3 LogicLab 3 Faszt
43. 5 Flea Library 7 4 6 WordToByte Word to byte conversion Questo blocco funzione permette di convertire una variabile WORD in due variabili BYTE IN worb Variabile da convertire MSB evm MSB del valore in ingresso LSB evt LSB del valore in ingresso Esempi Le variabile VarInp divisa nelle due variabili MSBByte e LSBByte Definizione variabili Mame Type Address Array Init value Attribute 1 LSBByte BYTE Auto No O Valore byte MSB MSBByte BYTE Auto Mo I Valore byte LSB 3 Varinp WORD Auto Mo O Variable input 4 FAData ordToByte Auto Mo 0 FB Word to byte data Esempio LD PTP114A100 LD_WordToByte FED ata WordTo Byte EN ENO Varlnp gt In MSB Esempio IL PTP114A100 IL_WordToByte LD VarInp ST FBData In Transfer the variable to input CAL FBData Call the WordToByte function block LD FBData MSB ST MSBByte Transfer the MSB output to variable LD FBData LSB ST LSBByte Transfer the LSB output to variable Esempio ST PTP114A100 ST_WordToByte FBData In VarInp Transfer the variable to input FBData Call the WordToByte function block MSBByte FBData MSB Transfer the MSB output to variable LSBByte FBData LSB Transfer the LSB output to variable Mnl151c080 ePLCUtyLib_C000 WordToByte n WSB LSB Description MSBByte Pag 51 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7
44. 6 ITSet REAL hMD100 2064 No 0 Integrative time 5 DTSet REAL MD100 2068 No Derivative time 3 o TempRead SysGetaning Auto Mo O Analog input g PWM PiMOut Auto Mo 0 Pui management 10 PiDOut REAL Auto NO 0 PID output value 11 FID PIDMna Auto Mo O FID management Esempio LD PTP114A100 LD_PIDMng Sys Get Anlnp EN ENO Address Done Channel Fault AD_FT100_DIFFER gt hlode Value RdTemp PID PID DOO Moo Do0 400 ee gru enabler Enabled CO Woo e Enable Error Dio OO e e Enable Out Dios woo c _ Reverse PresetTemp gt SetPoint RdTemp _ Palus PBand gt PBand STSet gt ST KP Set gt _ KF IT Set gt IT DT Set gt DT Do05 WOO Pilo Py hd Out Dios WOO Doi do Pp mM Enable PIbOut gt _ Get 50 TCycle 05 P Thin Mnl151c080 Pag 151 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 13 8 PWMOut PWM output management ePLCUtyLib_C000 Questo blocco funzione esegue la gestione di una uscita PWM FORI Enable Out a Set Cycle hlin Enable B001 Abilitazione gestione uscita PWM attivando l ingresso si abilita la gestione Disattivando l ingresso si azzera l uscita Out SET REAL Valore di set PWM il valore espresso in TCycle ReaL Tempo di di ciclo PWM il valore espresso in S TMin REAL Tempo minimo comando uscita Out il valore espresso in S Out B00
45. ADR StrToFind Mnl151c080 Pag 111 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 11 3 MemSet memory set Function ePLCUtyLib_C000 Questa funzione trasferisce in Buffer il valore definito in Value per il numero di bytes definito in FETO Size M La funzione ritorna il numero definito in Size Value a Size Parametri funzione Buffer usinT Pointer al buffer di memoria dove trasferire Value Value sint Valore da trasferire nel buffer di memoria Size uDINT Numero di volte in cui Value trasferito in Buffer La funzione ritorna UDINT Valore definito in Size Esempi Viene eseguito l azzeramento di tutti i bytes della stringa StrBuffer scrivendo il valore 0 in tutta la sua lunghezza Definizione variabili Mame Type Address Array Init value Attribute Description 1 StrBuffer STRING Auto 32 i String buffer Retvalue WONT Auto Mo DI i Return value Esempio ST The StrBuffer variable is set to O RetValue MemSet ADR StrBuffer 0 32 Return value Mnl151c080 Pag 112 270 Programmazione IEC 61131 3 LogicLab Type Library 7 11 4 MemCopy memory copy Function ePLCUtyLib_C000 Questa funzione copia al massimo il numero di bytes definito in Size a partire dall area di Mer Copy memoria a cui punta Source verso l area che inizia da Destination _ San La funzione ritorna il numero definito in Size Source a SIZE Parametri funzione
46. Attribute Description 1 Pulse BOOL Auto Mo 3 Auxiliary pulse 2 Result BOOL Auto No si Result flag 3 ABT INT AUTO Mo 3 Auxiliary buffer 4 RxD STRING Auto 32 A HTTP Fx data 5 TxD STRING Auto 128 F HTTP Tx data E Mdm ModemCore_v3 Auto Mo i Modem management r HTIP ModemHTTPGet AUTO Mo HTTP Get o Sm SYSSERIALMODE Auto Mo A Serial mode Esempio ST Ptp118b100 EmailWithHTTPGet KKEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK PROGRAM EmailWithHTTPGet KKEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK KKK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK Xx This program sends an Email by contacting a PHP script ee eee eee x I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I x lele INITIALIZATION K A n n n n n nn eee ee eee mm amp IF SysFirstLoop THEN Opening the serial port on wich the modem is connected Mdm File Sysfopen COMO rw COM port file pointer Set the serial communication mode ABf SysGetSerialMode ADR Sm Mdm File Sm Baudrate 115200 Baudrate Si Parity N Parity Sm DataBits 8 Data bits Sm StopBits 1 Stop bits Sm DTRManagement DTR_OFF DTR management Sm DTRComplement FALSE DTR complement Sm EchoFlush TRUE Flush th
47. BOOL SysGetOSpace Fp THEN Ch Sysfgetc Fp Get input character Ch Sysfputc Ch Fp Put input character END_IF END_IF Mnl151c080 Pag 78 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Utilizzando le funzioni di gestione terminale di I O possibile realizzare un semplice programma che esegue l echo del carattere ricevuto dalla porta seriale COMO La porta viene aperta con il modo impostato di default 115200 e 8 1 se ricevuto un carattere dalla porta si attiva RxCmd ed il carattere ricevuto copiato in RxChar La ricezione di un carattere provoca la trasmissione del carattere ricevuto Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo O n File pointer 2 Dummy BOOL Auto Mo FALSE n Dummy variable 3 RxChar INT Auto Mo 0 A Received char 4 R Cmd BOOL Auto Mo FALSE A Rx command Esempio LD PTP19A000 SerialEcho Sysfopen SvysFirstLoop EN ENO COMO FHame n FA Mode Sys Get Chars GT EN ENO SARO RxCmd Systgetc ENO RxChar Syst pute RxCmd EN EN RaxChar E Fp File Mnl151c080 Pag 79 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 7 5 Sysfread read data from file Questa funzione esegue la lettura di un numero definito di stringhe di lunghezza definita dal flusso ESTEE dati stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen w
48. Calculate CRC of a modbus Rtu frame for command Read holding registers Nd 03 Addr NumR CRC bee eo Define the registers address and the number of registers to read RegsAddress 16 0120 Registers address NrOfRegs 8 Number of registers Prepare the command frame Frame 0 1 Node address Frame 1 3 Function code 16 03 Frame 2 i TO USINT RegsAddress 256 7 MSB registers address Frame 3 3 TO USINT RegsAddress 755 7 LoB registers address Frame 4 0 MSB number of registers to read Frame 5 NrOfRegs LSB number of registers to read Calculate the frame CRC GetCRC Buf ADR Frame 0 Buffer address GetCRC ByteNr 6 Byte number GetCRC CrcIni 16 FFFF CRC ini value GetCRC Calculate CRC CRCValue GetCRC Crce CRC value Frame 6 TO USINT CRCValue 256 MSB of CRC value Frame 7 2 TO USINT CRCValue 255 7 LOB Of CRC value Mnl151c080 Pag 66 270 Programmazione IEC 61131 3 LogicLab Type Library 7 5 7 SysMAlloc memory allocation Function XTarget_07_0 Questa funzione esegue l allocazione di uno spazio di memoria della dimensione in byte definita SysMAlloc da parametro Size La funzione ritorna il puntatore allo spazio di memoria allocato Size La memoria allocata nella memoria di sistema e quindi non utilizza la memoria a disposiz
49. DMX Delay AI termine dell invio del comando DMX si attiver per un loop di programma l uscita Done DataPtr Start B001 Comando di invio frame DMX su porta seriale si resetta automaticamente all invio del frame File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Status usint Valore byte di stato inviato nel protocollo DMX prima dei byte di preset dispositivi Devices uINT Numero di dispositivi connessi al bus DMX Delay uint Tempo di pausa trasmissione frames DMX mSec DataPtr usint Pointer all array dati valori di preset dispositivi DMX Done 6001 Attivo per un loop al termine dell invio frame DMX del comando Fault B001 Attivo in caso di errore nella gestione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9979050 Errore allocazione blocco funzione 9979060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9979070 Errore versione blocco funzione 9979085 FB protetta terminato tempo funzionamento in modo demo 9979200 Protocollo DMX non supportato dal dispositivo definito in File 9979990 Non implementata nel simulatore Mnl151c080 Pag 153 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Esempi Dovendo gestire puntatori a memoria preferibile utilizzare il blocco funzione all interno di un programma ST nell esempio viene attivato il protocollo DMX sulla porta seriale COM1
50. Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mao O File pointer Esempio LD Sysfopen SysFirtLoop EW COMO FHame miod FR ode Sus Wart printt SysC lock 000 EN FP E 3 File Format alue PSB WSOP n STRING_TYPE T i far amp dd Ciao al Mnl151c080 Pag 254 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 10 7 Rx Tx dati su stream Come si visto con la funzione Sysfopen possibile definire un collegamento tra una risorsa di I O ed un flusso di dati stream da cui possibile gestire la ricezione e o la trasmissione di dati Per la ricezione dei dati in ingresso dallo stream si utilizza la funzione per controllo se dati presenti SysGet Chars e la funzione per la lettura degli stessi Sysfgetc Definizione variabili Name Type Address Array Init value Attribute Description 1 Rxdtring STRING Auto 32 Rx string 2 File FILEP Auto No File pointer 3 Ptr WUSINT AUTO Mo ii String pointer Esempio ST Rx data from stream Ptr ADR RxString String pointer WHILE TO BOOL SysGetIChars File DO Ptr TO USINT Sysfgetc File Rx String Ptr Ptr 1 String pointer Check if string pointer overflow IF Ptr gt ADR RxString 31 THEN EXIT END IF END WHILE Per la trasmissione dei dati in uscita dallo stream si utilizza la funzione che controlla se spazio disponibile Sy
51. EU O preset definito su PV l uscita Q viene settata ed il conteggio si arresta Solo agendo sull ingresso di reset R cy R si potra resettare il counter e fare ripartire un nuovo conteggio DR CTU L ingresso di reset R prioritario sull ingresso di incremento CU CU B001 Comando incremento counter ad ogni fronte attivazione il valore del counter CV si incrementa R B001 Comando di reset attivando l ingresso il valore del counter CV si resetta PV int Valore di preset quando il valore del counter CV raggiunge questo valore l uscita Q si attiva ed il counter non si incrementa pi Q 8001 Uscita counter attiva se il valore del counter CV raggiunge il valore definito in preset PV CV nt Valore counter valore di conteggio counter quando raggiunge il valore di preset PV l uscita Q si attiva ed il counter non si incrementa pi Esempi Il counter presettato a 10 ed il suo valore in uscita CV copiato nella variabile OutValue Attivando l ingresso digitale Di01M00 il counter viene resettato ed il suo valore in uscita CV posto a 0 resettando anche l uscita Q Sul fronte di attivazione dell ingresso digitale Di00M00 il counter incrementato di 1 quando il valore di conteggio raggiunge il valore di preset il conteggio si arresta e viene attivata l uscita del counter Q che attiva l uscita digitale D000MO00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di01MO00 che resetta il counter Defi
52. I P eTF Timer pulse function block 2 Quivalue UDINT Auto Mo I Ps Output value Esempio LD P7TP115A100 eTP_LD FBeTP eTP D iDO Mog Do00 hot ee e py O S000 FT Qutvalue Esempio IL CAL FBeTP Call the eTP function block LD Di00M00 ST FBeTP IN Transfer the digital input to timer input LD 5000 ST FBeTP PT Set the delay time LD FBeTP Q ST Do00M00 When time is passed the digital output is set LD FBeTP ET ST OutValue The counting time is copied to variable Esempio ST FBeTP PT 5000 Call the eTP function block FBeTP IN D100M00 Transfer the digital input to timer input OutValue FBeTP ET The counting time is copied to variable Do00M00 FBeTP 0 When time is passed the digital output is set Mnl151c080 Pag 39 270 Programmazione IEC 61131 3 LogicLab 3 Flarf 7 3 Funzioni ed FB per gestione counters Type Library FB ePLCStdLib_B000 7 3 1 CTD Counter Down Questo blocco funzione esegue la gestione di un counter in decremento Agendo sull ingresso di load LD possibile in qualsiasi momento trasferire il valore di preset definito su PV nel counter CV Ad ogni fronte di attivazione dell ingresso CD il valore del counter CV viene decrementato quando il valore raggiunge 0 cb Di l uscita Q viene settata ed il conteggio si arresta Solo agendo sull ingresso di load LD possibile Lun cw presettare il counter e fare ripartire un nuovo conte
53. IF Di00M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF Di00M0O0 THEN Counter Counter l Counter NrOfChars SysVarsnprintf StringOut 32 Counter 04dSrsn UDINT TYPE ADR Counter FOR 1 0 TO NrOfChars DO Ch Sysfputc TO INT StringOut Fp Written character StringOut StringOut 1 String output pointer END FOR END IF END IF Mnl151c080 Pag 67 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Type Library 7 5 8 SysSpyData system spy data Funcion XTarget_11_0 Questa funzione permette di inviare dati alla console di spionaggio Accessibile da Telnet con il comando SpyData E possibile definire sia il modo di visualizzazione dei dati spiati Mode che abbinare una etichetta nella stringa spiata Label Sys SpyData Mode TFlags Con il parametro TFlags possibile definire un pattern di 32 bits che viene usato come trigger Label per la visualizzazione dei dati spiati nella console di spionaggio Telnet DPtr Eseguendo la funzione con tutti i parametri a 0 viene eseguito il controllo sullo spazio nella console di spionaggio Telnet La funzione ritorna TRUE se vi spazio per salvare il record spiato e FALSE se la console occupata Parametri funzione Mode sint Definisce il modo di visualizzazione dei dati spiati Spy mode TFlags upint Definisce i bits di trigger per la visualizzazione dei dati spiati Label usinT Etichetta riportata nella str
54. La funzione ritorna il numero di stringhe dati lette Se nello stream non ci sono abbastanza Size stringhe da soddisfare i parametri viene ritornato un numero minore di stringhe lette rispetto al _ Count valore definito File Parametri funzione Buf stRING Indirizzo della stringa dove trasferire le stringhe lette Size int Lunghezza in caratteri delle stringhe da leggere Count int Numero di stringhe da leggere File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna UNT Numero di stringhe lette se il valore ritornato minore di Count significa che non vi erano abbastanza dati nello stream Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9970100 Terminale di I O usato in task fast o slow 9970990 Non implementata nel simulatore Esempi Vengono attesi almeno 5 caratteri ricevuti dalla porta seriale e quando ricevuti viene letta una stringa di 5 caratteri 5 stringhe di 1 carattere la stringa letta trasferita nella variabile RxString La stringa letta viene poi ritrasmessa sulla porta seriale notare come anche nella trasmissione trasmessa una stringa di 5 caratteri 1 stringa di 5 caratteri Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo 0 Port COMO file pointer 2 FxStrina STRING Auto 10 0 Received string 3 RxChars INT Auto Mo 0 Received ch
55. MinFreeTm RF rames verranno poi connessi dei blocchi funzione client che gestiscono lo scambio dati tra i ee eee sistemi L FB ritorna un MMDtTxfiID che deve essere passato alle FB client Esempio hlin hkT m RxErrars DataTxferClient axChkTm In MyNode occorre definire il numero di nodo del sistema in una rete il numero di nodo deve essere univoco Tutti i messaggi che hanno come nodo di destinazione il valore di MyNode saranno ricevuti dalla FB che li passer alle FB clients per la verifica La comunicazione multimaster si basa sul controllo del canale di comunicazione libero e sulla gestione delle collisioni parametri per questa gestione sono impostabili in MinFreeTm e MaxFreeTm In questi parametri occorrer definire tempi piccoli per comunicazioni su linea seriale e tempi pi lunghi nel caso di comunicazione via radiomodem In MinChkTm e MaxChkTm possibile impostare un tempo per l invio di un messaggio di controllo verso gli altri sistemi della rete L FB abiliter a turno sequenzialmente le varie FB clients per uno scambio dati con il peer con cui l FB dialoga controllando la connessione Se uno o entrambi i valori sono impostati a 0 il controllo non viene eseguito In RxErrors ritornato il conteggio degli errori di ricezione l FB monitora continuamente il canale di comunicazione e se i dati ricevuti sono in errore viene incrementato il contatore Errori possono manifestarsi in caso di collisioni sul canale di comunica
56. Next B001 Alla attivazione viene ritornato il nome del file puntato dall indice nella directory indicata L indice si incrementa puntando il successivo file PathName stinc 32 Definizione directory di cui eseguire il listing E possibile definire anche eventuale filtro di ricerca Esempio Storage log Found ool Si attiva per un loop se su comando Init o Next stato trovato un nuovo file da listare Fault B001 Si attiva per un loop se errore esecuzione IsDir B8001 Attiva se il nome di file ritornato appartiene ad una sottodirectory Size DINT Dimensione in bytes del file Time wont Data ultima modifica del file in Epoch time UTC FileName stincri Nome del file comprensivo di eventuale estensione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9952050 Errore allocazione blocco funzione 9952060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9952070 Errore versione blocco funzione 9952100 FB richiamata in task fast o slow 9952200 Errore esecuzione directory listing 9952990 Non implementata nel simulatore Mnl151c080 Pag 95 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene inizializzato il puntatore ai files presenti nella directory Storage Ad ogni attivazione dell ingresso digitale Di01M00 viene ritornato il nome del fil
57. Non implementata nel simulatore Esempi Lo stato dell ingresso DI00M00 viene trasferito sul segnale DTR della porta seriale COMO Definizione variabili Name Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo O 3 File pointer Esempio LD Sysfopen SysFirstLoop EN Sys Set Serial OTR Dido NOD Status ch File D oli bii Mnl151c080 Pag 104 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 10 Funzioni ed FB per gestione CAN bus Il Controller Area Network noto anche come CAN bus uno standard seriale per bus di campo di tipo multicast per collegare diverse unit di controllo elettronico ECU Il CAN stato espressamente progettato per funzionare senza problemi anche in ambienti fortemente disturbati dalla presenza di onde elettromagnetiche e pu utilizzare come mezzo trasmissivo una linea a differenza di potenziale bilanciata come la RS 485 L immunit ai disturbi EMC pu essere ulteriormente aumentata utilizzando cavi di tipo twisted pair doppino intrecciato Sebbene inizialmente applicata in ambito automotive come bus per autoveicoli attualmente usata in molte applicazioni industriali di tipo embedded dove richiesto un alto livello di immunit ai disturbi Il bit rate pu raggiungere 1 Mbit s per reti lunghe meno di 40 m Velocit inferiori consentono di raggiungere distanze maggiori ad es 125 kbit s per 500 m Il protocollo di comunicazione del CAN
58. OUT 8001 Stato uscita lampeggiante Esempi Viene impostato un lampeggio con 100 mS di tempo On e 1000 mS di tempo Off Attivando l ingresso digitale Di00M00 l uscita digitale Do00M00 lampeggia con i tempi definiti Disattivando l ingresso digitale Di0OMO0 l uscita digitale DoOOMOO si azzera immediatamente Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBeBLIMK BLINK Auto Mo O eBLINE Blink out function block Esempio LD PTP14A100 LD_BLINK FB_BLINK BLINK DOONOO _ _ _ ENABLE OUT Dogi MOO 100 TIMEHIGSH Esempio IL PTP14A100 IL_BLINK CAL FB BLINK Call the BLINK function block LD Di0OMOO ST FB BLINK ENABLE Transfer the digital input to enable input LD 1000 ST FB BLINK TIMELOW Set the time low LD 100 ST FB BLINK TIMEHIGH Set che time high LD FB BLINK OUT ST Do00M00 Copy FB output to logic output Esempio ST PTP14A100 ST_BLINK FB BLINK TIMELOW 1000 TIMEHIGH 100 Call the BLINK function block FB BLINK ENABLE Di00M00 Transfer the digital input to FB enable Do00M00 FB BLINK OUT Transfer the FB output to digital output Mnl151c080 Pag 140 270 Programmazione IEC 61131 3 LogicLab 3 Hey Library 7 13 3 BlinkValue blink out value ePLCUtyLib_C000 Questo blocco funzione gestisce una uscita lampeggiante con possibilit di definire il numero di Blink val lamp
59. Questa funzione permette l apertura del collegamento tra la risorsa indicata dal parametro SHIA FName ed un flusso di dati stream da impiegare nelle successive chiamate alle funzioni di i ui l FH I O La funzione ritorna il pointer alla risorsa sile Mode Se la risorsa indicata gi aperta oppure il nome della risorsa errato la funzione ritorna NULL Se si sta aprendo un file su disco per crearlo accertarsi che il disco sia formattato Parametri funzione FName srrincrzo E il nome della risorsa da utilizzare Name Resource COMO Serial port COMO COM1 Serial port COM1 COM2 Serial port COM2 PCOMx y Porta seriale y su modulo periferico con indirizzo x UDPSKT UDP socket TCPSKT TCP socket pathname Percorso completo comprensivo del nome file es Storage myFile txt Mode srRINGI4 Indica il modo in cui la risorsa aperta r read w write a append Per le porte seriali definire rw Per creare un file su disco occorre eseguire l apertura in w o a L apertura in w su un file esistente provoca la cancellazione del contenuto L apertura in r o w posizionano l indicatore di posizione dello stream all inizio del file l apertura in a lo posiziona alla fine La funzione ritorna FILEP Pointer alla risorsa NULL In caso di errore Codici di errore In caso di errore la funzione torna con NULL e con SysGetLastError possibile rilevare il codice di errore
60. RS485 v 0023 PCB131A030 SlimLine ARM7 Compact Relay CPU Board Full CAN v 0024 MPS051A000 Netlog Ill Base Relay 0025 MPS051A001 Netlog III Full Relay Rs485 version 0026 MPS051A011 Netlog III Full Relay and Display Rs485 version 0027 MPS051A002 Netlog III Full Relay CAN version 0028 MPS051A012 Netlog III Full Relay and Display CAN version 0029 MPS051A300 Netlog Ill Base Static 0030 MPS051A301 Netlog III Full Static Rs485 version 0031 MPS051A311 Netlog III Full Static and Display Rs485 version 0032 MPS051A302 Netlog III Full Static CAN version 0033 MPS051A312 Netlog III Full Static and Display CAN version Mnl151c080 Pag 17 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 5 Definizioni dati Oltre alle cartelle delle variabili di sistema sono presenti anche cartelle con identificatori di tipo dati che permettono di identificare in modo unifico un dato di sistema 5 1 Variable types definition definizione tipo variabili Ogni tipo di variabile definito con un valore che lo identifica il valore indicato con definizioni che si possono trovare nella cartella Variable types definition Define Description BOOL_ TYPE Variabile booleana BOOL 1 bit pu assumere solo significato FALSE o TRUE BYTE TYPE Variabile byte BYTE 8 bits senza segno range da 0 a 255 SINT_TYPE Variabile byte SINT 8 bits con segno range da 128 a 127
61. SIN TO_UINT A DELETE LIMIT 1 OR Enh SINH TO USINT aleh Operator and standard blocks Target blacks Ecco alcuni esempi di utilizzo nei vari linguaggi Definizione variabili Name Type Address Array Init value Attribute Description 1 Minuend UINT Auto No O Minuend 2 Subtrahend UINT Auto No O Subtrahend 34 Result UINT Auto No 0 Result Esempio LD SUB ENO Minuend n Result Subtrahend n Esempio IL LD Minuend SUB Subtrahend ST Result Esempio ST Result SUB Minuend Subtrahend Subtraction using SUBB Result Minuend Subtrahend Subtraction as before Mnl151c080 Pag 23 270 Programmazione IEC 61131 3 LogicLab 6 1 Funzioni matematiche e trigonometriche 5 Flee LogicLab supporta tutte le funzioni matematiche richieste dalla norma CEI EN 61131 3 nella Parte 3 Linguaggi di programmazione Riporto di seguito un elenco delle funzioni supportate ed un esempio di utilizzo in linguaggio ST ABS SQRT LN LOG EXP SIN COS TAN ASIN ACOS ATAN ADD MUL SUB Mnl151c080 ANY_NUM ABS ANY_NUM Calcola il valore assoluto di un numero Result ABS 10 5 Result is 10 5 ANY_REAL SQRT ANY_REAL Calcola la radice quadrata di un numero Result SQRT 9 0 Result is 3 0 ANY_REAL LN ANY_REAL Calcola logaritmo naturale Base e 2 71828 di un numero Result LN 10 0 Result is 2 30259 ANY_REAL LOG ANY_REAL Calcola logaritmo Bas
62. SktListen Auto Mo gt FB socket listen 9 SktRoy Sys IDF SkA cw Auto Mo 0 FA socket receive Mnl151c080 Pag 195 270 Programmazione IEC 61131 3 LogicLab Esempio LD PTP119A200 UDPSocketEcho SwsFirstLoop SysFirstLoop RxDone RxD ataAdd RxDone Mnl151c080 Pag 196 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 17 5 UDPDataTxfer UDP data transfer FB ePLCUtyLib_C000 Questo blocco funzione esegue il trasferimento di un blocco di memoria tra due sistemi ne f UDP Osta T ter utilizzando una connessione UDP su rete ethernet Occorre passare alla FB un flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen ed il Enable Done socket deve essere stato posto in condizione di listening dalla FB SysSktListen File Fault ll parametro PeerIP indica l indirizzo IP del sistema con cui avviene il trasferimento dati F 5 LI Port indica la porta tramite la quale il trasferimento avviene Deve assumere lo stesso Fen VAS SIS St valore su entrambi i sistemi Reb Butter Errors su 3 i i Be dpi TxD Butter Il parametro Timeout definisce il tempo massimo per il trasferimento dei dati l invio dei dati NS la El si conclude con la ricezione di un acknowledge da parte dell altro sistema un ciclo di invio dati e ricezione acknowledge richiede 2 loop di esecuzione programma Se dopo l invio non Time cut viene ricev
63. TRUE Se funzione eseguita correttamente FALSE In caso di errore esecuzione esempio parametri errati Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9948990 Non implementata nel simulatore Esempi Attivando l ingresso Di00M00 viene impostato un tempo di esecuzione di 5 ms per la task PlcFast Attenzione Per aumentare i tempi di esecuzione delle tasks dal valore di default occorre eseguire la funzione nella task di boot Definizione variabili Mame Type Address Array Init value Attribute Description 1 Enabled BOOL AUTO Mo FALSE Function enabled 2 ExecutionOk BOOL AUTO Mo FALSE 7 Function execution ok Esempio LD P7TP116A000 LD_SysSetTaskLpTime Sys Set Task LpTi me Didi Mog Enabled EN ENO ID TASK FAST gt _ lt s000 Time Execution Ok Esempio ST Enabled D100M00 Function enabled IF D100M00 THEN kxecutlonok syssetlaskLplume tlaskID LD TASK FAST Time 5000 Function execution ok END IF Mnl151c080 Pag 62 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 5 3 SysGetRandom get random number Questa funzione ritorna un numero random compreso tra 0 0 e 1 0 E possibile definire con il valore di Cmd se si vuole avere un nuovo numero random Cmd TRUE oppure quello memorizzato con la precedente esecuzione della funzione Cmd FALSE Sys Get Random a Cmd
64. Vengono gestiti 5 dispositivi con indirizzi da 1 a 5 Il frame DMX continuamente inviato ai dispositivi Attivando l ingresso digitale D 00M00 viene impostato il valore 0 su tutti i dispositivi Attivando l ingresso digitale Di01M00 su dispositivo 1 viene impostato il valore 10 sul 2 il valore 20 e cos via fino al quinto in cui viene impostato il valore 50 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBDMK cvsDMXMno Auto Mo I 7 FA gestione protocollo Chis 2 DhsData USINT AUTO 0 4 5 0 DM data 3 DiFis R_TRIG Auto 0 1 0 0 Pulse su ingresso Esempio ST ass e 0 0 1 1111RQRpmqq1 l l 0 6 6 1 1 6 6 Q 5 ESEGUO APERTURA PORTA SERIALE ha I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Here the COMI port is opened in read write IF FBDMX File NULL THEN FBDMX File Sysfopen COM1 rw Port COMI file pointer END IF x I I I I I I I I I I I I I I I I I I I I I I I I I I I I I
65. aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell utente Questa tecnica permette di avere un aggiornamento automatico dei dati in una pagina web senza dover ricaricare la pagina permettendo di visualizzare le variabili PLC automaticamente Vediamo come funziona questa tecnica nella pagina web deve essere inserito uno script java che gestisce le richieste AJAX Viene fornito uno script gi pronto all uso Ns codice SFW191 000 Ecco come si presenta una pagina web che visualizza il valore di un angolo ed i rispettivi valori di seno e coseno valori sono gestiti dallo SlimLine che ne cele i http 192 168 0 162 5 O O Ti Tr 93 esegue la variazione a tempo valori sono appoggiati in 3 variabili nella DB 100 Angle UINT DB 100 0 Contiene valore angolo Sin REAL DB 100 4 Contiene valore del seno Cos REAL DB 100 8 Contiene valore del coseno Sorgente html pagina lt DOCTYPE html gt lt html gt lt head gt lt meta charset utf 8 gt lt title gt AJAX Page lt title gt lt script type text javascript gt kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Il SFW191A000 FUNZIONI PER GESTIONE AJAX II kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Il Le seguenti funzioni gestiscono lo standard AJAX Asynchronous Java and XML Il con esse viene gestito lo scambio dinamico di dati con le pagine web var XML
66. block LD FBData Done ST Do00M00 The output is active if data is acquired LD FBData Fault ST Do01M00 The output is active if execution fault LD FBData GQuote ST GateQte Gate quote LD FBData EQuote ST EncoderQte Encoder quote Mnl151c080 Pag 130 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 12 8 SysSetPWMOut set PWM output FB XTarget_07_0 Questo blocco funzione esegue l impostazione del valore di frequenza Frequency e di duty cycle Duty sul generatore PWM indicato Il range dei valori di frequenza e duty cycle dipendono dalla scheda utilizzata Address Done Channel Fault Sys Set PWM Out Impostando il valore di Frequency a 0 viene disabilitato il PWM e l uscita viene forzata in base al valore di Duty Duty lt 50 L uscita viene settata a FALSE Duty gt 50 L uscita viene settata a TRUE Frequency Duty Address sint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione encoder Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito Il valore 255 indica il modulo CPU Se viene settato un indirizzo di modulo non presente si interrompe l esecuzione e viene settato il bit di Fault Channel usin Occorre specificare l indirizzo del canale sul modulo Range da 0 a 15 Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di F
67. caricato il numero di caratteri trasferiti in StringOut ed inviati in uscita sulla porta seriale Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo 0 7 Port COMO file pointer 2 Pulse BOOL Auto Mo FALSE p Pulse flag 3 Courter UDINT AUTO Mo 0 E Counter d MrOfChars INT Auto Mo 0 n Number of printed chars 5 StringQut USINT Auto 0 31 320 String output 6 i INT Auto Mo 0 si Auxiliary counter rT Ch IMT Auto Mo O P Character written Esempio ST PTP116A100 ST_SysVarsnprintf Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Check if the COMO port is open IF Fp lt gt NULL THEN Mnl151c080 Pag 114 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Check if input is activated IF D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag On input raising edge the counter value is printed IF D100M00 THEN Counter Counter l Counter NrOfChars SysVarsnprintf ADR StringOut 32 Counter 04dsSr n UDINT TYPE ADR Counter Copy the printed result to serial port FOR i 0 TO NrOfChars DO Ch Sysfputc TO INT StringOut i Fp END FOR END_IF END_IF END_IF In questo esempio viene eseguito il merge tra le stampe del valore di due variabili Eseguire il merge pu essere molto utile per avere un unica stringa contenente la stampa del
68. conversione della data ora in epoch time Occorre fornire al Sys DateToET me blocco funzione la data e l ora ed in uscita dal blocco funzione avremo un valore in epoch time wea bone Month Fault Day Epoch Time Hour Minute a Second Year uint Definisce il valore di anno Range da 1970 a 2099 Month usin Definisce il valore di mese dell anno Range da 1 a 12 Day sint Definisce il valore di giorno del mese Range da 1 a 31 Hour usn Definisce il valore di ora Range da 0 a 23 Minute qusint Definisce il valore di minuti Range da 0 a 59 Second wsint Definisce il valore di secondi Range da 0 a 59 Done 6001 Attivato al termine della conversione Fault B001 Errore di conversione viene attivato in caso di errore nella conversione EpochTime uot Ritorna data espressa in epoch time Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9987050 Errore allocazione blocco funzione 9987060 Errore versione blocco funzione 9987200 Errore durante l esecuzione del blocco funzione Mnl151c080 Pag 72 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Esempi Viene convertito il valore di data ed ora in epoch time Esempio definendo il valore di data 9 4 2010 e ora 14 20 15 avremo in uscita il valore 1270822815 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FB_SysDateToEtime SysDateToETime Auto M
69. del valore in ingresso da scalare IHigh REAL Limite massimo del valore in ingresso da scalare OLOW REAL Limite minimo del valore in uscita scalato OHigh REAL Limite massimo del valore in uscita scalato REAL Valore scalato in uscita Esempi Viene eseguita una acquisizione analogica di un sensore di temperatura con uscita in corrente 4 20 mA il sensore ha come valore in uscita la corrente di 4 mA a 50 C e la corrente di 20 mA a 150 C Utilizzando la funzione si esegue direttamente la conversione in gradi centigradi del valore acquisito Definizione variabili Name Type Address Array Init value Attribute Description 1 Analnput SysGetAninp Auto No 0 n FB Analog input data 2 Temperature REAL Auto No 0 Temperature value C Esempio FBD P7P114A610 FBD_Scale Analnput SysGetAnlnp D Address Done 0 Channel AD_CURR_4_20_ COMMON gt Mode 4 0 20 0 50 0 150 0 iL Mnl151c080 Pag 163 270 Programmazione IEC 61131 3 LogicLab 3 Faszt I Type Library 7 13 17 GetPolynomialCRC polynomial CRC calculation Function ePLCUtyLib C000 Questa funzione esegue il calcolo del CRC su di un array di dati in accordo allo standard GetPolynomialCRC CCITT Data In Data occorre indicare l indirizzo dell array di dati su cui calcolare il CRC Length indica la Length lunghezza dell array in byte In CRC ritornato il valore del CRC calcolato Data usiNT Indirizzo array
70. di un ciclo On Off con tempi random di DEAS nae l ONOFFCYCLE On e di Off definibili tra valori minimo e massimo l l l Enable Out Attivando il comando di Enable l uscita Out esegue un lampeggio On Off con tempi random ee i compresi tra i valori minimo e massimo definiti Disabilitando l ingresso l uscita Out si OT e si disattiva MaxOfTime MWinOnTime La variabile Delay ritorna il valore di ritardo attualmente attivo hiaxOnTime Enable s001 Comando di abilitazione MinOffTime ont Valore minimo di tempo off comando mS MaxOffTime upint Valore massimo di tempo off comando mS MinOnTime unnt Valore minimo di tempo on comando mS MaxOnTime wont Valore massimo di tempo on comando mS Out 8001 Stato comando On Off in uscita Delay upinT Valore di tempo attualmente in temporizzazione mS Esempi Viene eseguito il lampeggio della uscita Do00MO00 con tempi random variabili tra i 2 ed i 4 secondi Definizione variabili Mame Type Address Array Init value Attribute Description 1 FAData ONOFFOYCLE Auto Mo OMOFFOYCLE FB data 2 WarQut UDINT Auto Mo 0 3 Variable output Esempio LD PTP114A100 LD_ONOFFCYCLE FAL ata ONOFFCYCLE Dida woo Do Woo JQ mam Enable Out 2000 MinOffTime Delay 4000 baxOffTime 2000 MinOnTime 4000 haxOn Time Esempio IL PTP114A100 IL_ONOFFCYCLE CAL FBData Call the ONOFFCYCLE function block LD Di0QOMOO ST FBData Enable Transfer the digit
71. e dal testo del messaggio Nell esempio gestito l invio di un messaggio a pi numeri di telefono Come si pu vedere attivando l ingresso digitale Di00MO0 verranno inviati due messaggi a due diversi numeri di telefono E possibile aggiungere altri rami con il blocco funzione SMSSend ognuno con il proprio messaggio e numero di telefono sempre attivati da Di00M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Rssi LISINT Auto Mao RSS value 2 ModemiD UDINT Auto Mo 7 Modem ID 3 CLIP STRING Auto 15 i GLIP received number 4 Operator STRING Auto 15 al Operator value 5 Fp FILER Auto Mo 3 Serial pointer E Modem WWodemCore_yv3 Auto Mo 3 Modem core FE T GMSTestl ModemSmMSSend v2 Auto Mo i Modem SMS send Fe 0 GMSTestz ModemSmMSSend v2 Auto Mo Modem SMS send Fe g SMode oetsMode Auto Mao 7 serial mode FA Esempio LD Ptp118b100 MultipleSMSSend Sysfopen SysFirstLoop FNar comp _ UNE Fp SMode SysFirstLoop PJ meee ENO Fe Fp Done s600 Baudrate Fault NP Farity _8 _ DataBits _1___ StopBits DTR_ON DTRManagement FALSE DTRComplement FALSE EchoFlush _0 DTROnTime _0 DTRO Time Mnl151c080 Pag 176 270 Programmazione IEC 61131 3 LogicLab Mnl151c080 Pag 177 270 Programmazione IEC 61131 3 LogicLab 5 Flee Library 7 15 5 ModemPhoneCall_v1 executes a phone call Questo blocco funzione ese
72. funzione protetto SysActTaskID USINT Numero di identificazione della task in corso vedi tipi definiti SysErActTaskID USINT Numero di identificazione della task in cui l errore si verificato vedi tipi definiti SysModulesReady UINT Ogni bit della variabile se attivo indica la presenza del modulo connesso al bus SlimLine SysApllVMajor UINT Valore Major della versione dell applicazione SysApllVMinor UINT Valore Minor della versione dell applicazione SysTBackLpTm UDINT Tempo di loop attuale della task di background PLC uS SysTBackLpTmMin UDINT Tempo di loop minimo della task di background PLC uS E possibile inizializzarne il valore settando il bit SysTimelnit Sys TBackLpTmMax UDINT Tempo di loop massimo della task di background PLC uS E possibile inizializzarne il valore settando il bit SysTimelnit SysTBootExTm UDINT Tempo di esecuzione attuale della task di boot PLC uS SysTBootExTmMin UDINT Tempo di esecuzione minimo della task di boot PLC uS E possibile inizializzarne il valore settando il bit SysTimelnit SysTBootExTmMax UDINT Tempo di esecuzione massimo della task di boot PLC uS E possibile inizializzarne il valore settando il bit SysTimelnit SysTFastExTm UDINT Tempo di esecuzione attuale della task fast PLC uS SysTFastExTmMin UDINT Tempo di esecuzione minimo della task fast PLC uS E possibile inizializzarne il valore settando il bit SysTimelnit Sys TFastExTmMax UDINT Tempo di esecuzione massimo della task fast PLC
73. lettura del ROM ID dal dispositivo connesso al bus One Wire Attenzione Bisogna avere un solo dispositivo connesso al bus Al termine della lettura del codice si attiva l uscita Done Se la lettura ha esito positivo si attiva per un loop di programma l uscita Ok Gli 8 bytes del ROM ID sono trasferiti nell array indirizzato da DCode Disattivando Enable si azzera Done e l eventuale Fault per eseguire una nuova lettura occorre riabilitare l ingresso Enable Enable BOOL Abilita il blocco funzione MngiD upin One Wire management ID fornito in uscita dal blocco funzione sOWireMng IDCode usint Puntatore array memorizzazione ROM ID deve essere almeno 8 bytes Done 8001 Si attiva al termine della esecuzione lettura del ROM ID Ok 8001 Attivo per un loop se lettura ROM ID eseguita correttamente Fault B001 Attivo se errore lettura ROM ID Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10009010 MngiD non definito 10009020 MngiD non corretto 10009030 DCode non definito 10009100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10009200 2 Errore gestione sequenze One Wire lettura ID Mnl151c080 Pag 184 270 Programmazione IEC 61131 3 LogicLab Esempi Ecco un semplice esempio di gestione di dispositivi iButton per il riconoscimento personale Inserendo il TAG nel lettore viene eseguita la lettura del ROM identifier il valore
74. lo stream non accetta il File dato la funzione ritorna EOF Per essere certi che vi sia spazio sullo stream per accettare il carattere possibile utilizzare la funzione SysGetOSpace che ritorna lo spazio disponibile Parametri funzione Ch cnt Carattere da inviare sul flusso dati File rier Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna MIO Carattere scritto sul flusso di dati EOF In caso di errore o se lo stream non accetta il dato Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9971100 Terminale di I O usato in task fast o slow 9971990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue l eco dei caratteri ricevuti dalla porta seriale COMO Viene eseguita apertura porta seriale COMO e controllato se caratteri disponibili dalla porta Se almeno un carattere disponibile ne viene eseguita lettura e successiva ritrasmissione Definizione variabili Mame Type Address Array Init value Attribute Description 1 IF FILER Auto Mo U 4 Port COMO file pointer 2 ey INT Auto Mo i Character read Esempio ST PTP116A100 ST_Sysfputc Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here execute the received characters echo IF Fp lt gt NULL THEN IF TO BOOL SysGetIChars Fp AND TO
75. memoria ritentiva a disposizione utente per allocare variabili mnemoniche Le variabili allocate nella memoria utente MX100 da indirizzo 2048 ad indirizzo 4095 sono ritentive mantengono il loro valore anche allo spegnimento del sistema Qualsiasi variabile mnemonica a cui viene attribuito l attributo RETAIN manterr il suo valore anche allo spegnimento del sistema Da quanto detto precedentemente l area totale allocabile per le variabili RETAIN e di 2000 bytes Mame Type Address Group Array Init value Attribute Description 1 Var BOOL Auto Mo FALSE A Sample variable 1 2 Wara REAL Auto Mo 0 RETAIN Sample variable 2 3 Vari REAL Auto Mo 12 5 CONSTANT Sample variable 3 4 Vard BOOL MD100 0 Mo FALSE Sample variable 4 bo War REAL MD100 2048 Mo 0 n Sample variable 5 Come si vede dalla foto la variabile Var2 dichiarata con l attributo RETAIN e manterr il suo valore anche allo spegnimento del sistema La variabile Var5 allocata nella memoria utente MD100 2048 pur essendo ritentiva non necessita dell attributo RETAIN in quanto implicito dalla sua allocazione Nella finestra di navigazione progetto tutte le variabili globali sono suddivise in base i 4 alla loro definizione e come si nota nella cartella delle variabili ritentive figureranno solo le variabili mnemoniche Var2 e non le variabili allocate nella memoria utente Var5 pur essendo anch essa di tipo ritentivo _ Constants e Yara Retain variables e Var
76. messaggio SMS si collega al blocco funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Enable Done hbiodemiD Fault ShdS T ext ModemsMS Receive Alla ricezione di un messaggio SMS si attiva per un loop di programma l uscita Done sull uscita SMSText viene ritornato il messaggio ricevuto all uscita CLIPNumber della FB ModemCore ritornato il numero di telefono da cui il messaggio stato ricevuto Il testo del messaggio ricevuto rimane presente in uscita sino alla ricezione di un altro messaggio Enable BooL Abilita la ricezione dei messaggi SMS ModemiD unint ID modem fornito in uscita dalla ModemCore Done 8001 Attivo per un loop se ricevuto messaggio SMS Fault B001 Attivo per un loop se errore Text sTRING 160 Testo del messaggio SMS ricevuto Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10003010 ModemID non definito 10003020 ModemID non corretto Esempi Nell esempio gestita la ricezione di un messaggio SMS dal modem definito nella variabile ModemID per la definizione delle variabili e per una migliore comprensione del funzionamento si rimanda agli esempi successivi Esempio LD Ptp118a200 ReceiveSMSMessage Receive ModemSMSRecejiye SysFirstLoop Pi IIIiTIE T pI DIW V II LLL N Enable Done ModemiD gt ModemiD Fault Dod Mon SMSText Mnl15
77. occorre riabilitare l ingresso Enable Se sul bus One Wire connesso un unico dispositivo si pu evitare di settare DCode oppure si pu forzare a 0 Se invece sul bus One Wire sono presenti pi dispositivi parallelati in DCode occorre definire l indirizzo dell array di 8 bytes che contiene il ROM ID del dispositivo che si vuole acquisire Enable B00L Abilita il blocco funzione MngiD pin One Wire management ID fornito in uscita dal blocco funzione sOWireMng IDCode usint Puntatore ad array definizione ROM ID dispositivo da acquisire Done 8001 Si attiva al termine della esecuzione lettura umidit e temperatura Ok 8001 Attivo per un loop se lettura umidit e temperatura eseguita correttamente Fault B001 Attivo se errore lettura umidit e temperatura Temperature REAL Valore di temperatura acquisito C Range di lettura da 55 C a 125 C Precisione 0 5 C tra 10 C e 85 C Risoluzione di lettura 0 03125 C Humidity ReaL Valore di umidit acquisito RH Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10015010 MngiD non definito 10015020 MngiD non corretto 10015100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10015200 3 Errore nelle sequenze conversione temperatura 10015300 8 Errore nelle sequenze acquisizione tensione alimentazione sensore 10015400 8 Errore nelle sequenze acquisi
78. per l operatore modulo MOD L aritmetica modulare si applica ai soli numeri interi nel quale i numeri si avvolgono su se stessi ogni volta che raggiungono i multipli di un determinato numero n detto modulo L operazione Result x MOD 10 dar come risultato valori compresi tra 0 e 10 per qualsiasi valore assuma x L operazione Result x MOD 1000 dar come risultato valori compresi tra 0 e 1000 per qualsiasi valore assuma x Mnl151c080 Pag 25 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 6 2 Funzioni stringa LogicLab supporta tutte le funzioni di gestione stringa richieste dalla norma CEI EN 61131 3 nella Parte 3 Linguaggi di programmazione Riporto di seguito un elenco delle funzioni supportate ed un esempio di utilizzo in linguaggio ST CONCAT DELETE FIND INSERT LEFT LEN MID REPLACE RIGHT Mnl151c080 STRING CONCAT STRING S0 STRING S1 Concatena le stringhe S0 ed S1 AString Hello BString World CString CONCAT AString BString CString is Hello World CString CONCAT Astring World CString is Hello World 1 STRING DELETE STRING IN ANY_INT L ANY_INT P Cancella dalla stringa IN L caratteri partendo dalla posizione P a scendere AString Hello World BString DELETE AString 2 3 BString is Heo World UINT FIND STRING SO STRING S1 Cerca la posizione della prima occorrenza di S1 in SO Se non trovata torna 0 AStri
79. sentenza UTCSecond usn Valore di secondi UTC indicato nella sentenza Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10018010 NMEAID non definito 10018020 NMEAID non corretto 10018100 2 Errore nel valore di latitudine 10018200 2 Errore nel valore di longitudine 10018300 2 Errore nel valore ora UTC Mnl151c080 Pag 206 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Esempi E disponibile un programma di esempio Ptp123 000 che gestisce l interfaccia verso un navigatore satellitare con l interpretazione di alcune sentenze NMEA Nell esempio riportato gestita la ricezione di una sentenza GLL Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILEF Auto Mo File pointer 2 GLL GLLSentence Auto Mo 0 GL sentence reception FB data 3 NMEAID LIDINT Auto Mo MMEA interface ID 4 NMEARS MMEASIntetta Auto Mo 0 7 NMEA device interface FB data A RxGPS STRING Auto 32 A Fix data from GPS device 6E Skode Setshode Auto Mo 0 Serial mode FB data Esempio LD Mnl151c080 Pag 207 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 19 3 MWVSentence Wind Speed and Angle sentence FB eNMEALib BOOO Questo blocco funzione esegue la ricezione della sentenza MWV wind speed and angle si collega al blocco funzione NMEASInterface di gestione dispositivo NMEA Occorre passa
80. set del bit Esempi Lo stato dell ingresso digitale Di00MO00 trasferito nel bit 8 della variabile VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 YarQut UDINT Auto Mo I A Variable output Esempio LD Bit Set SysFirstLoop EN ENC e o DOO Mog Value WarClut Variable Bit OO Esempio IL LD D100M00 Variable input VBitSet VarOut 8 Variable bit set ST VarOut Transfer result to variable Esempio ST VarOut VBitSet D100M00 VarOut 8 Variable bit set Mnl151c080 Pag 46 270 Programmazione IEC 61131 3 LogicLab 3 Fee Library 7 4 3 BitToByte Bit to byte conversion ePLCUtyLib_C000 Questo blocco funzione permette di convertire 8 variabili BOOL in una variabile BYTE BitToByte b Out b b b3 Res Di i b7 8001 Bit 7 del byte di Out b5 b b7 b0 B001 Bit O del byte di Out Out eyr Risultato conversione ingressi a bit Esempi Gli 8 ingressi digitali del modulo 0 sono trasferiti nella variabile VarOut Attivando il solo ingresso digitale Di0OMO0 la variabile VarOut assumer valore 1 attivando il solo ingresso digitale Di01M00 la variabile VarOut assumer valore 2 e cos via fino all ingresso Di07MO00 attivando il quale la variabile VarOut assumer valore 128 Attivando pi ingressi contemporaneamente la variabile VarOut assumer valore pari alla somma degli ingressi attivati Per sempli
81. the eTOF function block LD Di00M00 ST FBeTOF IN Transfer the digital input to timer input LD 1000 ST FBeTOF PT Set the delay time LD FBeTOF Q ST Do00M00 When time is passed the digital output is set LD FBeTOF ET ST OutValue The counting time is copied to variable Mnl151c080 Pag 37 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 2 2 eTON Timer On l ePLCStdLib_B000 Questo blocco funzione esegue la temporizzazione sulla attivazione attivando l ingresso N inizia il conteggio e dopo il tempo definito PT espresso in mS si attiva l uscita Q Sulla uscita ET viene ritornato il ae tempo trascorso dalla attivazione dell ingresso espresso in mS Disattivando l ingresso IN l uscita Q si IN DI disattiva istantaneamente ed il valore di tempo su uscita ET si azzera E ET IN B001 Ingresso timer attivandolo inizia il conteggio e dopo il tempo definito in PT si attiva l uscita Q Disattivandolo l uscita Q si disattiva immediatamente ed il tempo in uscita ET si azzera PT upint Preset tempo definisce il tempo di ritardo dalla attivazione dell ingresso IN alla attivazione dell uscita Q espresso in mS Q 8001 Uscita timer si attiva dopo il tempo definito in PT dalla attivazione dell ingresso IN e si disattiva su disattivazione ingresso IN ET upint Tempo timer inizia conteggio da attivazione ingresso IN raggiunto tempo impostato in PT si arresta conteggio Si azz
82. the falling edge of digital input the output is set Mnl151c080 Pag 33 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 1 2 R_TRIG Raising edge trigger ePLCStdLib_B000 Questo blocco funzione attiva l uscita Q per un loop di programma sul fronte di attivazione dell ingresso di clock CLK RETRIG CLE CLK soo Clock sul fronte di attivazione del segnale viene attivata l uscita Q per un loop di programma Q BooL Uscita attiva per un loop di programma sul fronte di attivazione dell ingresso di clock CLK Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene attivata per un loop di programma l uscita digitale Do00MO00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBR_TRIG R_TRIG AUTO Mo U P R_TRIG Raising edge trigger function block Esempio LD PTP1154100 R_TRIG_LD FR _R_TRIG R_TRIG Dido Woo Da00 Woo CLE a Esempio IL CAL FBR TRIG Call the R TRIG function block LD Di00M00 ST FBR TRIG CLK Transfer the digital input to the function block clock LD FBR TRIG Q ST Do00M00 On the raising edge of digital input the output is set Esempio ST FBR _ TRIG Call the R TRIG function block FBR TRIG CLK Di00M00 On the raising edge of digital input the counter count up Do00M00 FBR_TRIG Q On the raising edge of digital input the output is set Mnl151c080 Pag 34 270
83. the serial mode is read IF D100M00 THEN Do00M00 SysGetSerialMode ADR Sm Fp END_IF END_IF END_IF Mnl151c080 Pag 98 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Mettendo in watch la variabile Sm di tipo SYSSERIALMODEpossiamo vedere i valori di tutti i suoi tch membri come riportato nella figura a lato In questo caso be Era visualizzata la configurazione di default 115200 e 8 1 Symbal Value Type i Sm SSSERIALMODE Baudrate 115200 UDINT Parity E STRING DatabBiks di LISINT Stopeits 1 UISINT DTRManagement 2 USINT mm OTR Complement FALSE BL mee EchoFlush FALSE BOL LTRONTIme O LIMIT DTROFFTIime O LIMIT Pag 99 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 9 2 SysSetSerialMode set serial mode Questa funzione imposta il modo di comunicazione definito nella struttura ESET IEE SYSSERIALMODE sulla porta seriale connessa al parametro File precedentemente aperto dalla funzione Sysfopen Nel parametro Mode occorre definire l indirizzo della struttura SYSSERIALMODE in cui definito il modo seriale da impostare sulla porta La funzione ritorna FALSE in caso di errore lode File Parametri funzione Mode asyssERIALMODE Indirizzo struttura SYSSERIALMODE con il modo da impostare File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna 990
84. to Syslog server 10035 000 999 StringToLogrFile store string to a log file 10036 000 999 FileMemoryDump dump memory on file 10037 000 999 ModemPhoneCall_v1 executes a phone call 10038 000 999 ModbusSlave modbus slave 10039 000 999 HIDCIKDtaReader HID RFID clock data reader 10040 000 999 MMasterDataTxfer multimaster data transfer 10041 000 999 DataTxferClient Data transfer client 10042 000 999 ModemHTTPGet executes a HTTP Get request 10043 000 999 SpyDataFile spy data and stores them on a file 10044 000 999 BroadcastDataSend broadcast data send 10045 000 999 StrainGaugeAcgq strain gauge acquisition 10046 000 999 HMIBuiltinMessages HMI built in messages Mnl151c080 5 Fleet Pag 267 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 10047 000 999 HMIBuiltinNetlog Netlog HMI management 10048 000 999 DataStreamExch exchanges data between two I O streams Mnl151c080 Pag 268 270 Programmazione IEC 61131 3 LogicLab 12 5 Tabella codici Ascii 12 5 1 Tabella codici ASCII standard Mnl151c080 mW Oo JI nea DI DI HH HWHHWHNW o do OD e DI Mull Start of heading start of text End of text End of transmit Enquiry Acknowledge Audible bell Backspace Horizontal tab Line feed Vertical tab Form feed Carriage return Shift out Shift in Data link escape Device control 1 Device control 2 Device control 3 Device control 4 Neg ackno
85. valore di piu variabili Mettendo in debug la variabile Result vedremo la stringa Var 0 12 Var 1 34 Avendo bloccato la stampa a 12 caratteri il valore di Var 0 sar stampato correttamente fino ad un massimo di 4 cifre 7 caratteri stringa 4 caratteri valore pi terminatore stringa 0 Per valori di Var 0 superiori a 9999 non saranno pi stampate le cifre meno significative Il valore di Var 1 sar stampato immediatamente dopo il valore di Var 0 Da notare l offset decrementato di 1 per sovrascrivere il terminatore stringa 0 Per garantire la stampa di un massimo di 4 anche per Var 1 stato definito un Size di 13 la stringa di testo inizia infatti con un carattere di space per separarla dalla stampa del valore della variabile precedente Definizione variabili Mame Type Address Array Init value Attribute Description 1 NrOfChars INT Auto Mo 0 Number of printed chars 2 War DINT Auto 0 1 12 34 i Variables 3 Result STRING Auto 32 Esempio ST ee x EXECUTE A VARIABLES PRINT MERGE Print the variable values merging them into a single string NrOofChars SysVarsnprintf ADR Result 12 Var 0 d UDINT TYPE ADR Var 0 NrOfChars SysVarsnprintf ADR Result LEN Result 13 Var 1 d UDINT TYPE ADR Var 1 End of file Mnl151c080 Pag 115 270 Programmazione IEC 61131 3 LogicLab Type Library 7 11 6 SysVarsscanf extracts values from string Fun
86. 0 FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9994010 Valore di File non definito 9994020 Indirizzo struttura SYSSERIALMODE non corretto verificare Mode 9994050 Errore valore di baud rate 9994051 Errore valore di parit 9994052 Errore valore bit di dato 9994053 Errore valore bit di stop 9994100 Errore esecuzione funzione 9994990 Non implementata nel simulatore Esempi Su fronte attivazione ingresso Di0OMO0 viene salvato il modo impostato sulla porta seriale COMO nella variabile Sm Poi vengono modificati alcuni dati e poi impostata la porta seriale Viene attivata l uscita Do00M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILER Auto Mo O E Port COMO file pointer 2 Sm SYSSERIALMODE Auto NO 0 serial mode data struct 3 Pulse BOOL Auto Mo FALSE si Pulse flag Esempio ST P7TP116A300 ST_SysSetSerialMode On input raising edge the serial mode is changed IF Di100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF D100M00 THEN IF Fp NULL THEN Fp Sysfopen COMO rw END IF Do00M00 SysGetSerialMode ADR Sm Fp Sm Baudrate 19200 Sm Parity N sm DTRManagement DTR AUTO WO TIMES Do01M00 SysSetSerialMode ADR Sm Fp END IF END IF Mnl151c080 Pag 100 270 Programmazione
87. 0 e Variable 1 saranno valorizzate con il valore 123 La terza avr esito negativo la variabile Variable 2 sara azzerata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Pulse BODL Auto Mo FALSE Pulse flag 2 Variable UDINT Auto O 2 300 A Variable 3 Inputstring STRING Auto 32 Value 23 n Input string 4 Result BODL Auto 0 2 300 Function result Esempio ST PTP116A200 ST_SysVarsscanf Check if input is activated IF Di00M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF D100M00 THEN Result 0 SysVarsscanf ADR Inputstring Value d UDINT TYPE ADR Variable 0 Result 1 SysVarsscanf ADR Inputstring 6 d UDINT TYPE ADR Variable 1 Result 2 SysVarsscanf ADR InputString d UDINT TYPE ADR Variable 2 END IF END IF Mnl151c080 Pag 116 270 Programmazione IEC 61131 3 LogicLab Flarf 7 12 Funzioni ed FB per gestione moduli periferici Type Library 7 12 1 SysPhrinfos get infos from peripheral modules l Funzione XTarget_07_0 Questa funzione esegue l acquisizione di informazioni dai moduli periferici Viene trasferita nella SysPhrinfos variabile stringa il cui indirizzo passato in Info l informazione indicata da nfoID relativa al module modulo indicato in Module InfolD La funzione ritorna TRUE se correttamente eseguita in caso contrario FALSE nfo Parametri funzione
88. 0 Messaggio con ID richiesto in ViewMID non trovato 10046100 Spazio insufficente per visualizzazione variabile Mnl151c080 Pag 230 270 Programmazione IEC 61131 3 LogicLab T 7 23 2 HMIBuiltinNetlog Netlog HMI management dig 5 Flee Library FB Questo blocco funzione esegue la gestione del terminale Display e tastiera integrato nel sistema Netflogili deve essere eseguito in task Back Si collega al blocco funzione Enabl Enabled HMIBuiltinMessages di gestione messaggi occorre passare HMIBulildinID in uscita dal aa Pa blocco funzione ii uss File Fault Attivando l ingresso Enable si attiva l uscita Enabled e viene gestito il terminale _ uy aii nin keyUP visualizzando i messaggi definiti nel terminale da LogicLab Nell ingresso File occorre passare lo stream del dispositivo di I O utilizzato per la gestione Ritornato dalla funzione Sysfopen Il FB ritorna in uscita lo stato di tutti i tasti del terminale e questo permette di utilizzarli nel proprio programma come comandi L ingresso SpyOn se attivo permette di spiare il funzionamento della FB In caso di errore esecuzione viene attivata per un loop l uscita Fault eHMIBuiltInLib_B000 HRT Builtin Meth og Key Di KeyLEF T KewRIGHT keyF UNH KewENT Enable B001 Comando di abilitazione blocco funzione SpyOn 001 Se attivo permette di spiare il funzionamento della FB TFlags Description 16 00000001 Rx Ricezione dati da
89. 0 ModemID non corretto Esempi Nell esempio gestita la ricezione di un messaggio SMS dal modem definito nella variabile ModemID per la definizione delle variabili e per una migliore comprensione del funzionamento si rimanda agli esempi successivi Esempio LD Ptp118b100 ReceiveSMSCommana Modem SMSRxCmd_w1 Enable Done ADR Switch on Mnl151c080 Dopa MIDD 3 Pag 174 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 15 4 ModemSMSSend_v2 send a SMS message FB eModemLib_E000 Questo blocco funzione esegue l invio di un messaggio SMS si collega al blocco funzione di gestione modem ModemCore occorre passare alla FB il ModemiD in uscita dal blocco funzione di gestione modem Send Done ModemiD Fault ModemSMSSend w2 Su fronte attivazione ingresso di Send viene prenotato l invio del messaggio non appena sar possibile il messaggio definito in Text verr inviato al numero definito in Number Terminato dna l invio verr attivata per un loop di programma l uscita Done 5 Text TLgt definisce il numero di caratteri da inviare del messaggio definito in Text se non definito o definito 0 viene inviato l intero messaggio Text Send B00L Sul fronte di attivazione comanda l invio del messaggio SMS Attenzione messaggio sar inviato non appena il modem libero per l invio ModemiD pnt ID modem fornito in uscita dalla ModemCore Number usinty
90. 001 Attivo per un loop alla ricezione di comando modbus Fault B001 Attivo per un loop su errore ricezione comando modbus Errors uDINT Numero di errori riscontrati Viene incrementato ad ogni nuovo errore raggiunto il valore massimo il conteggio riparte da 0 Mnl151c080 Pag 145 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Comandi supportati Il blocco funzione supporta solo alcuni comandi previsti dal protocollo modbus i comandi supportati sono Descrizione Read coil status Massimo 250 coils Read input status Massimo 250 coils Read holding registers Massimo 125 registri Read input registers Massimo 125 registri Force single coil Preset single register Loopback diagnostic test Force multiple coils Massimo 250 coils Preset multiple registers Massimo 125 registri Read memory bytes User function Massimo 250 bytes Write memory bytes User function Massimo 250 bytes Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore In caso di eccezione su comando modbus viene riportato il codice di errore ma non viene attivata l uscita Fault 10038010 Valore di File non definito 10038050 Errore di timeout esecuzione 10038060 Errore esecuzione 10038080 Errore definizione Type 10038100 10 Errore in ricezione frame Carattere errato lunghezza errata 10038200 2 Errore t
91. 1 Uscita PWM Esempi Nell esempio gestita una uscita PWM definendo un tempo di ciclo di 5 secondi con un tempo minimo di 0 5 secondi Impostando come set point il valore 50 attivando l ingresso Di0OMO00 avremo che l uscita D0o00MO00 sar attivata per 2 5 secondi e disattivata per 2 5 secondi Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData Pui ut Auto Mo 0 7 FA PYYMOut data Esempio LD PTP114A100 LD_PWMOut FBD ata Piwh Dut bioo MOO Do0 Mon Heo Enable 50 0 Set 50 Tyce 05 Thin Mnl151c080 Pag 152 270 Programmazione IEC 61131 3 LogicLab Flarf Type Library 7 13 9 SysDMXMng DMX management FB XTarget_07_0 Questo blocco funzione esegue la gestione del protocollo DMX questo un blocco funzione protetto Do ae j Li SyeDMXMn per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi sa funzione E comunque possibile utilizzarlo liberamente in modo test per 15 Min Start Done File Fault Attivando l ingresso di Start viene inviato sulla porta seriale identificata da File un frame DMX che inizia con il valore di Status e segue con il valore di preset dei dispositivi definiti da Devices Il valore Status di preset dei vari dispositivi deve essere caricato in un array di dati il cui indirizzo passato in Pewices DataPtr Mantenendo sempre attivo l ingresso Start verranno inviati consecutivamente frames
92. 131 3 LogicLab 3 Heysf 9 4 Formato ARGs La principale peculiarit del web dinamico la possibilit di variare i contenuti delle pagine in base alle richieste degli utenti Questa possibilit si materializza attraverso i meccanismi che permettono agli utenti oltre che di richiedere una pagina ad un web server anche di specificare determinati parametri da inviare al server web Per impostare da pagina web valori di variabili PLC viene gestita una richiesta di tipo POST il metodo utilizzato con i moduli quando una pagina Html contiene un tag lt form gt dati impostati nei vari oggetti contenuti nel lt form gt sono inviati in maniera da non essere direttamente visibili per l utente attraverso la richiesta HTTP che il browser invia al server Se ci riferiamo all esempio precedente vediamo che la parte di pagina Html che permette l impostazione della variabile PLC UINT allocata all indirizzo DB 100 12 la seguente Sorgente html pagina lt form id MyForm name MyForm method post action DPage htm gt DB100 12 amp nbsp lt input name UINT 12 type text size 5 maxlength 10 value lt d UINT 12 gt gt amp nbsp lt input type submit id MyButton value Save gt lt form gt In pratica un campo lt form gt con id MyForm contiene una casella di testo con id UINT12 di dimensione 5 caratteri con un massimo impostabile di 10 caratteri Nel form trova posto anche un pulsante di tipo submit la cui press
93. 1c080 Pag 173 270 Programmazione IEC 61131 3 LogicLab T 7 15 3 ModemSMSRxCmd_v1 receive a SMS command a 5 Flea Library FB Questo blocco funzione esegue la ricezione di un comando tramite un messaggio SMS si collega al blocco funzione di gestione modem ModemCore occorre passare il ModemiD in uscita dal blocco funzione di gestione modem Alla ricezione di un messaggio SMS se nel testo del messaggio presente la stringa definita in Command si attiva per un loop di programma l uscita Done all uscita CLIPNumber della FB ModemCore ritornato il numero di telefono da cui il messaggio stato ricevuto Attivando Cin il controllo sulla stringa definita in Command verr fatto non considerando il case Maiuscolo minuscolo dei caratteri Enable BOOL Abilita la ricezione del comando eModemLib_E000 Modem SM SRxCmd vi Enable Done ModemiD Fault Gin Command Modem ID upint Clin B001 Command usint Done B001 Fault Boo ID modem fornito in uscita dalla ModemCore Se attivo controllo di Command non considerando case Maiuscolo minuscolo dei caratteri Pointer al testo del comando da eseguire Attivo per un loop se ricevuto messaggio SMS contenente il testo indicato in Command Attivo per un loop se errore Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10004010 ModemID non definito 1000402
94. 2 Grid Voltage phase s 63 10030010 10030020 10030050 10030070 10030100 10030200 10030251 10030252 10030253 10030254 10030255 10030256 10030257 10030258 Mnl151c080 Grid Voltage phase t Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Valore di File non definito FB protetta terminato tempo funzionamento in modo demo Timeout esecuzione Errore case gestione Errore CRC risposta da inverter Aurora Errore ricezione Transmission state da inverter Aurora Errore da inverter Aurora Command is not implemented Errore da inverter Aurora Variable does not exist Errore da inverter Aurora Variable value is out of range Errore da inverter Aurora EEprom not accessible Errore da inverter Aurora Not Toggled Service Mode Errore da inverter Aurora Can not send the command to internal micro Errore da inverter Aurora Command not Executed Errore da inverter Aurora The variable is not available retry Pag 211 270 Programmazione IEC 61131 3 LogicLab 3 Aa Esempi Viene eseguita la lettura della misura 21 Inverter Temperature dall inverter con indirizzo 4 il valore ritornato trasferito nella variabile Value Di default la porta seriale v impostata a 19200 n 8 1 Definizione variabili Mame Type Address Array Init value Attribute Descrip
95. 3 Flarf 7 12 2 SysGetPhrDI get peripheral digital input ae quat 12 2 SysGetPhrDI get peripheral digital inpu meer Questo blocco funzione esegue l acquisizione degli ingressi digitali dai moduli periferici Il blocco rara o funzione ritorna lo stato degli ingressi digitali dal modulo indicato in Address in base al comando di Mode definito Address Done hiode Fault Per acquisire gli ingressi digitali presenti sul modulo CPU occorre definire Address 255 e Mode Value DI 8 LL Address sint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione degli ingressi digitali Range da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo 255 indica il modulo CPU Mode usin Occorre specificare il modo di acquisizione ingressi digitali Digital input mode Done 8001 Dato acquisito viene attivato se acquisizione ingressi digitali terminata Fault B001 Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Value unin Ritorna lo stato degli ingressi digitali acquisiti Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9985050 Errore allocazione blocco funzione 9985070 Errore versione blocco funzione 9985100 II modulo indirizzato in Address non presente 9985110 24 Il modo acquisizione definito in Mode non corretto 9985200 13 Errore du
96. 5 Syslog SysLogReport Auto No 0 a FB SysLogReport Esempio LD Dummy CPUDiIOO CPUDION CPUDIOO eee Enable CPUDIO1 e Send _o_ Mode 192 168 0 81 SyslogiP 514 SyslogFort 2 Fagllity pmi Severity SlimLine HostName Test message Message Mnl151c080 Pag 218 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 21 2 StringToLogFile salva una stringa in un file di log FB eLogLib_B000 Questo blocco funzione effettua il log della stringa StringToLog nel file su disco di nome Filename Ogni riga viene terminata con CR LF Al raggiungimento di MaxRowslnFile righe nel file se Circular settato si riprende a salvare dall inizio del Enable Enabled file sovrascrivendo le righe gi presenti Se Circular non settato non viene pi Write mere effettuato il log segnalando errore La variabile MaxRowsLen permette di limitare la lunghezza massima di ciascuna riga presente nel file di log StringToLogFile StringToLog Fault Filename Se Circular settato se la lunghezza di StringToLog inferiore a MaxRowsLen Circular vengono aggiunti degli spazi sino ad avere lunghezza definita In RowlndexPtr s vsxRowlen occorre inserire l indirizzo della variabile usata come indice della successiva riga in CUI MaxRowsinFile fare log Normalmente deve essere una variabile tamponata per permettere di scrivere RowlndexPtr nel punto giusto anche dopo uno spegnimento
97. 51B040 10001 000 999 CPUModulelO CPU module I O management 10002 000 999 ModemCore_v3 modem core management 10003 000 999 ModemSMSReceive receive a SMS message 10004 000 999 ModemSMSRxCmd_v1 receive a SMS command 10005 000 999 FolModemSMSSend_v2 send a SMS message 10006 000 999 SetSMode Set serial mode 10007 000 999 ModbusMaster modbus RTU master 10008 000 999 OwireMng One Wire management 10009 000 999 OWRdldentifier One Wire read ROM identifier 10010 000 999 OWRdTemperature One Wire read temperature 10011 000 999 ODataExchange exchange data by using logic I O 10012 000 999 PIDMng PID management 10013 000 999 STESnmpAcqg STE termometer acquisition over SNMP 10014 000 999 UDPDataTxfer UDP data transfer 10015 000 999 OWRdHumidity One Wire read humidity 10016 000 999 IEC62056_21Rd IEC62056 21 protocol read 10017 000 999 NMEASiInterface NMEA system interface 10018 000 999 GLLSentence Geographic Position sentence 10019 000 999 ModbusRTUSlave modbus Rtu slave ePLCUtyLib_B000 MNL151C020 10020 000 999 MWVSentence Wind Speed and Angle sentence 10030 000 999 AuroraDSPMeasure Aurora measure request to DSP 10031 000 999 AuroraCEnergy Aurora cumulated energy reading 10032 000 999 SHWgSProtocol HW group serial protocol 10033 000 999 ModbusAsciiSlave modbus Ascii slave ePLCUtyLib_B000 MNL151C020 10034 000 999 SysLogReport send a report
98. 92 168 0 125 venerd 27 gennaio 2012 09 13 20 853 Messaggio di prova For Help press F1 Service Started 4 5 0 Tot 7 Sel 0 UDP 514 CP 1468 IPv4 IPv6 Ver 4 3 0 Come si vede le varie notifiche sono suddivise con colori in base alla loro importanza e nel testo del messaggio possibile riportare qualsiasi informazione ad esempio il codice operatore che ha avuto accesso all ingresso rilevato da un lettore RFID Mnl151c080 Pag 216 270 5 Fle Programmazione IEC 61131 3 LogicLab 7 21 1 SysLogReport send t to Sys oe 21 1 SysLogReport send a report to Syslog server eLoglib_B000 Questo blocco funzione esegue l invio di messaggi di notifica ad un server Syslog il cui SysLogReport indirizzo IP definito in SyslogiP e la porta in SyslogPort Questo un blocco funzione S SRI protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e Har a blocchi funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min a Mode aul E possibile impostare sia il codice di impianto Facility che di gravit Severity oltre al nome _ sysioglF del sistema host Hostname SyslogPor Attivando l ingresso Send viene inviata la notifica al server Syslog eseguito l invio viene Facility attivata per un loop l uscita Done in caso di errore esecuzione viene attivata per un loop Severity l uscita Fault HosiMarne Message Enable Bool Comando di abilitazi
99. A Esempio LD PTP114A620 LD _ModbusMaster Sysfopen SysFirstLoop EN END POME FHame hod tant ode bidbSn Modbus Master DP oQOhiod DOO Woo P ZtT r nM Ll Enable Done Do hO SpyOn Ok Dolz hoo Fp_ gt File Fault o Type Errors 1 hode 16704 FCode 40000 Address tini 16 P Points Rx oils rm Buter 286 IFTime 500 Timeout _10__ Delay Mnl151c080 Pag 144 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 13 5 ModbusSlave modbus slave FB ePLCUtyLib_C000 Sui sistemi SlimLine il protocollo modbus slave gi implementato dal sistema operativo pertanto non occorre inserire blocchi funzione appositi nel programma utente Questo blocco esegue l override della gestione di sistema operativo e si utilizza in casi particolari dove non possibile utilizzare la Enable Done gestione implementata nel sistema operativo Per esempio quando si vuole consentire l accesso ad File Fault un propria area di memoria diversa dalla DB100 Modbus Slave Type Errors Questo blocco funzione esegue la gestione del protocollo modbus slave con Type possibile e selezionare il tipo di protocollo RTU Ascii ed over IP Con File possibile definire il terminale di I O T su cui effettuare la comunicazione Buffer Lia f i E STE Size Occorre definire il nodo modbus Node e l eventuale offset di indirizzo frame modbus Offset comandi modb
100. A C IF D lt 0 0 THEN NROOTS 0 ELSIF D 0 0 THEN NROOTS 1 X1 B 2 0 A ELSE NROOTS 2 X1 B SORT X2 B SORT END_IF 2 D 2 0 A D 2 0 A CASE TW BCD_TO_INT THUMBWHEEL TW_ERROR 0 CASE TW OF yo DISPLAY OVEN TEMP DISPLAY MOTOR SPEED DISPLAY GROSS TARE 0 10 DISPLAY STATUS TW 4 1 2 3 4 ELSE DISPLAY 0 TW ERROR 1 END_CASE OWLOOs INT TO BCD DISPLAY FOR J 101 FOR I 1 TO 100 BY 2 DO IF WORDS I KEY THEN J I1 EXIT END IF END FOR WHILE J 1 WHILE J lt 100 amp WORDS J lt gt KEY DO J J 2 END WHILE REPEAT J 1 REPEAT J J 2 UNTIL J 101 OR WORDS J KEY END REPEAT EXIT EXIT Empty Statement Mnl151c080 Pag 265 270 Programmazione IEC 61131 3 LogicLab 12 4ID oggetti Tutti gli oggetti Funzioni e o blocchi funzione hanno un identificativo univoco che li contraddistingue L ID ritornato anche nell eventuale codice di errore Riferimento alla funzione SysGetLastError ed alla variabile SysLastError l codice di errore si compone dell ID oggetto seguito da 3 cifre che indicano il codice di errore Di seguito tabella degli ID oggetti Rif MDPO70xx00 il simbolo indica che l oggetto obsoleto Sugli oggetti obsoleti riportato tra parentesi l ultima versione di libreria e di manuale in cui l oggetto era presente ID Oggetto 9947
101. BYTE B 2 16434 BYTE ME 3 16 12 BYTE E Mnl151c080 Pag 59 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 5 Funzioni ed FB di utilit sistema Type Library 7 5 1 SysGetSysTime get system time F riction XTarget_07_0 Questa funzione ritorna il tempo di sistema espresso in US E possibile definire con il valore SES di Cmd se si vuole avere il tempo di sistema attuale Cmd TRUE oppure quello memorizzato con la precedente esecuzione della funzione Cmd FALSE Parametri funzione Cmd eoo Indica il valore di tempo che deve essere ritornato TRUE Viene salvato e ritornato il valore attuale di tempo FALSE Viene ritornato il tempo salvato dalla precedente chiamata con Cmd TRUE La funzione ritorna WBINT Tempo di sistema espresso in US Esempi Viene calcolato il tempo in cui l ingresso digitale DiOOMO00 rimane nella condizione di attivo Definizione variabili Mame Type Address Array Init value Attribute Description 1 StartTirne UDINT Auto Mo O i Input raising time reference us 2 Seflime UDINT Auto Mo O Input set time us 3 Pulse BOOL Auto Mo FALSE A Pulse flag Esempio ST PTP116A000 ST_SysGetSysTime Check if input is activated IF D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag On input raising edge relate time is saved IF Di00M00 THEN StartTime SysGetSysTime TRUE END IF On input falling edge the set time is calculated
102. C 61131 3 LogicLab 5 Flee 4 1 Variabili sola lettura System variables Queste variabili di sola lettura presenti nella cartella System variables ritornano informazioni sul sistema Il programma utente pu utilizzare le variabili a piacere ma non pu modificarne il valore Name Type Description SysClock100 BOOL Clock lampeggiante con duty cycle di 100 mS SysClock1000 BOOL Clock lampeggiante con duty cycle di 1 S SysBackupEnd BOOL Attiva per un loop di programma al termine di un ciclo di backup dati SysRestoreFault BOOL Si attiva alla accensione se i dati di backup sono in errore Tutti i dati sono azzerati SysPLCInRun BOOL Sempre attiva SysFirstLoop BOOL Attiva per un loop alla prima esecuzione di ogni task PLC SysLLabCn BOOL Attiva se l ambiente di sviluppo LogicLab connesso al sistema SyslsDST BOOL Attiva se si nel periodo di Daylight Saving Time SysDT Set BOOL Attiva per un loop esecuzione task background su modifica real time clock da sistema operativo SysUVSet BOOL Attiva per un loop esecuzione task background su modifica impostazioni utente da sistema operativo vedi esempio SysAlwaysOff BOOL Variabile mai attiva SysAlwaysOn BOOL Variabile sempre attiva SysFFBUspt BOOL Il programma esegue almeno una funzione o blocco funzione non supportato SysFFBPrt BOOL Il programma esegue almeno una funzione o blocco
103. CURR_4 20 DIFFER USINT 13 Current from 4 to 20 mA Differential mode AD_NI1000_ DIFFER USINT 12 Ni1000 sensor Celsius degree Differential mode AD_NI1000_DIN_43760 USINT 48 Ni1000 DIN_ 43760 standard Celsius degree AD_PT100 AMERICAN USINT 33 Pt100 American standard Celsius degree AD_PT100_ DIFFER USINT 10 Pt100 sensor Celsius degree Differential mode AD_PT100 DIN 43760 USINT 32 Pt100 DIN_43760 standard Celsius degree AD_PT100_IEC_60751 USINT 35 Pt100 IEC 60751 standard Celsius degree AD_PT100_ITS_90 USINT 34 Pt100 ITS 90 standard Celsius degree AD_PT1000_ AMERICAN USINT 41 Pt1000 American standard Celsius degree AD_PT1000_ DIFFER USINT 11 Pt1000 sensor Celsius degree Differential mode AD_PT1000_DIN_43760 USINT 40 Pt1000 DIN_43760 standard Celsius degree AD_PT1000_IEC_60751 USINT 43 Pt1000 IEC 60751 standard Celsius degree AD_PT1000_ITS_90 USINT 42 Pt1000 ITS 90 standard Celsius degree AD_RESISTOR_300 OHM USINT 110 Resistor up to 300 Ohm AD_RESISTOR_5000 OHM USINT 111 Resistor up to 5000 Ohm AD_THERMOCOUPLE B USINT 64 Thermocouple B type Celsius degree AD_THERMOCOUPLE E USINT 65 Thermocouple E type Celsius degree AD_THERMOCOUPLE J USINT 66 Thermocouple J type Celsius degree AD_THERMOCOUPLE_K USINT 67 Thermocouple K type Celsius degree AD_THERMOCOUPLE_N USINT 68 Thermocouple N type Celsius degree AD_THERMOCOUPLE R USINT 69 Thermocouple R type Celsius degree AD_THERMOCOUPLE_S USINT 70 Thermocouple S type Celsius degree AD_THERMOCOUPLE_T USINT 71 Therm
104. D ii 215 Gestione invio notifiche a server SYSIog e 215 7 21 1 SysLogReport send a report to Syslog Server 217 7 21 2 StringToLogFile salva una stringa in un file di I0Q 219 7 21 3 FileMemoryDump dump memoria SU file cece eeeceeeeseeecaeeeceeeecaeeeseeeeseeeeseeesseeseeseeseeeeeeaeeeeees 221 7 22 Funzioni ed FB comunicazione multimaster eMMasterDTxferLiD 223 7 22 1 MMasterDataTxfer multimaster data transfer 225 Mnl151c080 Pag 4 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 1 22 2 DataTxferClient Data tHansferelieht casio ica into rotta editi 226 7 22 3 BroadcastDataSend broadcast data send 228 7 23 Libreria gestione interfaccia operatore eHMIBuIItInLib ee ccceceeeeeeeeeeeseeeeeeeeeeeeeeeeseaeeeeeeeseeeaeeeeeeaeees 229 7 23 1 HMIBuiltinMessages HMI built in MessageS 230 7 23 2 HMIBuiltinNetlog Netlog HMI managemeEnt ee 231 G PIOIOCOlLOFCOMURNIGAZIONE sella 233 D l PIOIOSOlIO M0dbiS luca 233 8 1 1 Accesso variabili da MOdDbUS iii 233 8 1 2 Lettura variabili da MOODUS ii 233 631 8 Scrittura variabili da MOGBUS cn ine alia 234 8 1 4 Accesso Real time clock da MOdDUS iii 235 8 1 5 Lett ra RTC da MOAD0S iata
105. Done Fault value Errors Attivando l ingresso Start viene eseguita la lettura della misura indicata terminata la lettura viene attivata per un loop l uscita Done in caso di errore esecuzione viene attivata per un loop l uscita Fault ed incrementato il valore in Errors Enable 8001 Comando di abilitazione blocco funzione Start B001 Comando di esecuzione lettura misura File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Address usint Indirizzo inverter Range da 0 a 255 Parameter usint Codice parametro da acquisire da inverter Vedi codici parametro Done 6001 Attivo per un loop al termine della esecuzione del comando Fault B001 Attivo per un loop su errore esecuzione del comando Value upint Valore parametro acquisito da inverter E nella relativa unit di misura Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Codici parametro Nella variabile Parameter occorre definire il codice del parametro da leggere dall inverter secondo la tabella Codice Descrizione 0 Daily energy Weekly Energy Month Energy Energy from the first day of current calendar month Year Energy Energy from the first day of current calendar year Total Energy Total lifetime Partial Energy Cumulated since reset Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il co
106. DoorOpen Apricancello su chiamata telefonica TCPAsciiProtocol Semplice comunicazione ascii su connessione TCP IP CSVFileTimeSwitch Programmatore orario con lettura tempi da file CSV SineWave Generatore onda sinusoidale Mnl151c080 Pag 262 270 Programmazione IEC 61131 3 LogicLab 12 Appendici 12 1 Tabella istruzioni IL 5 Flee Istruzione Operandi Descrizione LD Tutti Carica il valore operando nell accumulatore LDN Tutti Carica il valore negato operando nell accumulatore ST Tutti Trasferisce il valore dell accumulatore nell operando STN Tutti Trasferisce il valore negato dell accumulatore nell operando S BOOL Setta l operando Accetta solo BOOL se l accumulatore TRUE R BOOL Resetta l operando Accetta solo BOOL se l accumulatore TRUE AND Tutti meno REAL AND a bit tra accumulatore e valore operando risultato in accumulatore ANDN Tutti meno REAL AND a bit tra accumulatore e valore negato operando risultato in accumulatore OR Tutti meno REAL OR a bit tra accumulatore e valore operando risultato in accumulatore ORN Tutti meno REAL OR a bit tra accumulatore e valore negato operando risultato in accumulatore XOR Tutti meno REAL XOR a bit tra accumulatore e valore operando risultato in accumulatore XORN Tutti meno REAL XOR a bit tra accumulatore e valore negato operando risultato in accumulatore NOT Esegue l inv
107. E EMAIL x I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I On digital input activation the HTTP page is requested IF D100M00 lt gt Pulse THEN Pulse D100M00 Auxiliary pulse IF Pulse THEN ABFr SySVarsnprintrf ADR TxD 128 To s STRING TYPE ADR I sbertanadelsist it ABf SysVarsnprintf ADR TxD LEN TxD 128 LEN TxD 26Subject s STRING TYPE ADR Subject ABf SysVarsnprintf ADR TxD LEN TxD 128 LEN TxD 26Text s STRING TYPE ADR Text HTTP Send TRUE END_IF END_IF Check the HTTP request answer IF HTTP Done THEN IF FIND RxD Ok 0 THEN Result FALSE ELSE Result TRUE END LE END IF End of file Vediamo di spiegare come funziona il programma sul fronte di attivazione dell ingresso Di0OMOO viene effettuata la connessione al server www MyServer com e richiesta pagina eMailSend php In linea alla chiamata della pagina sono posti i campi GET To sbertana elsist it amp Subject Subject amp Text Text Da notare che il carattere amp stato sostituito da 26 La pagina eMailSend php sul server contiene uno script PHP del tipo lt php SHeaders MIME Version 1 0 n SHeaders Content type text html charset iso 8859 1 n SHeaders To REQUEST To n
108. EAL PValue REAL PBand REAL ST REAL KP REAL IT REAL DT REAL Enabled B001 Error 800L OUT REAL Library ePLCUtyLib_C000 PIObmg PIDEnable Enabled Error DEnable Out Reverse SetPoint a Pifalue PBand ST a KP T a DT Enable Abilitazione regolazione PID attivando l ingresso si abilita la regolazione Disattivando l ingresso si azzera il valore in uscita Out Abilitazione regolazione integrativa attivando l ingresso si abilita la regolazione integrativa Abilitazione regolazione derivativa attivando l ingresso si abilita la regolazione derivativa Inversione segno su valore in uscita Out Set point il valore espresso nell unit di misura del processo da controllare Valore acquisito dal processo il valore espresso nell unit di misura del processo da controllare Banda proporzionale questo valore definisce il valore di errore oltre al quale la regolazione viene disabilitata forzando l uscita Out al massimo 100 valore espresso nell unit di misura del processo da controllare Tempo di scansione occorre impostare il tempo in cui si desidera vengano eseguite le regolazioni integrativa e derivativa se abilitate il valore in mS Costante proporzionale si ricorda che pi elevato il valore pi pronta la regolazione con un conseguente aumento del valore di overshot Il valore un numero Tempo integrativo si ricorda che pi
109. Exch utilizzando una connessione tramite I O logici Sono utilizzati due ingressi e due uscite digitali per aa ogni sistema possibile definire il numero di bytes di dati da scambiarsi Enable Enabled Occorre connettere l uscita digitale OStrobe di un sistema con l ingresso digitale Strobe dell altro cea sistema e l uscita OData con l ingresso digitale Data dell altro Strobe OData Data Done Il trasferimento dati bidirezionale i dati presenti nel buffer TxData di un sistema sono trasferiti _ hp Dr nel buffer RxData dell altro sistema e viceversa per il numero di bytes definito in ByteNr La MI comunicazione verificata mediante l invio di un CRC secondo lo standard ISO 1155 SR T ela Ad ogni fine trasferimento dati si attiva per un loop l uscita Done sulla sua attivazione occorre trigbelay provvedere a trasferire i dati da trasmettere nel buffer di trasmissione e leggere i dati dal buffer di ricezione In caso di errore nella comunicazione si attiva per un loop l uscita Fault ed i due sistemi si risincronizzano per riprendere una nuova trasmissione Enable BOOL Abilitazione gestione comunicazione IsMaster B00L TRUE Modo master FALSE Modo slave IStrobe B00L Occorre appoggiare l ingresso digitale di strobe IData B00L Occorre appoggiare l ingresso digitale di dato RxData UDINT Indirizzo buffer dati ricevuti TxData UDINT Indirizzo buffer dati da trasmettere ByteNr USINT Numero bytes da sca
110. F 00 02 04 56 78 12 34 Stringa di risposta 00 00 00 00 00 06 01 10 9C 5F 00 02 La rappresentazione dei dati in SlimLine nel formato Little Endian la numerazione inizia dal byte meno significativo per finire col pi significativo quindi come si nota dalla stringa di comando il valore da scrivere a 32 bits 0x12345678 viene definito suddiviso in due registri a 16 bits con i valori 0x5678 0x1234 Mnl151c080 Pag 234 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 8 1 4 Accesso Real time clock da modbus E possibile accedere al real time clock utilizzando i comandi modbus di accesso ai registri le funzioni supportate sono Function Tipo oggetto Tipo accesso Range indirizzo Read holding registers Word 16 Bit Read 100 105 150 per l Epoch time 16 Bit Read 100 105 16 Bit Write 100 105 Preset multiple registers Word 16 Bit Write 100 105 150 per l Epoch time Read input registers Word 150 per l Epoch time Preset single register Word 150 per l Epoch time registri 16 Bits del real time clock sono allocati in locazioni consecutive a partire dall indirizzo modbus 100 registri contengono il valore attuale del real time clock e scrivendo un nuovo valore il real time clock verr automaticamente aggiornato Address Register 100 Second Valore secondi Range da 0 a 59 101 Minute Valore minuti Range da 0 a 59 102 Hour Valore ora Range da 0 a 23
111. F Susfopen Function Upen a file TF Susfpute Function Put character to file E Svstread Function block Read data from file E Sushewrite Function block Write data to file E SysGetAnlnp Function block Get analog input F SysGetlChars Function Get available input chars ia Sieh etl Space Function Get available output space 4 a Operator and standard blacks Target variables Target blocks i Agendo con il tasto destro del mouse su ogni singola funzione o blocco funzione possibile visualizzarne la finestra delle Object name SysGetPhrDI propriet in cui sono indicate le variabili in Properties Description Object properties ingresso ed il ritorno delle funzioni mentre per i blocchi funzioni sono Type FUNCTION BLOCK indicate le variabili in ingresso ed in Code type EMBEDDED uscita cosi come nella figura a lato Input vars num 2 Input vars num oe Address USINT Module address Mode USINT Mode Output vars num 3 Done BOOL Function done Fault BOOL Function fault Value WORD Digital input value Cancel Mnl151c080 Pag 27 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 0 2 Librerie In aggiunta alle funzioni ed FB embedded sono fornite delle librerie che contengono una serie di funzioni e blocchi funzioni che possono essere utilizzati nel proprio programma Le librerie fornite con LogicLab si trovano nella directory di installazione programma Progr
112. Http AJAXCreateReqObject function AJAXCreateReqObject var b null var a navigator userAgent toUpperCase if window XMLHttpRequest b new XMLHttpRequest elsefif window ActiveXObject amp amp a indexOf MSIE 4 lt 0 fif a indexOf MSIE 5 lt 0 b new ActiveXObject Msxml2 XMLHTTP elsef b new ActiveXObject Microsoft XMLHTTP return b function AJAXSendRequest b var a Math random if XMLHttp null XMLHttp open GET b Rnd escape a true XMLHttp setRequestHeader connection close XMLHttp onreadystatechange AJAXHandleR sp XMLHttp send null function AJAXHandleRsp switch XMLHttp readyState case 0 break case 1 break case 2 break case 3 break case 4 if XMLHttp status 200 SetupValues XMLHttp responseText break II kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Il FUNZIONE SetupValues PContent kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Il Questa funzione viene eseguita su risposta Ajax nella variabile PContent Il presente tutto il contenuto della pagina richiesta function SetupValues PContent var Value new Array Array valori ricevuti da server Eseguo separazione valori sono separati dal simbolo if PContent indexOf 1 Mnl151c080 Pag 248 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Value PContent split document getElementByld Angle value Value 0 document getElementByld Sin
113. I I I I I I I I I I I I I Gestione protocollo DMX FBDMX Status 0 Status byte FBDMX Devices 5 Number of devices FBDMX Delay 0 Interframe delay mSec FBDMX DataPtr ADR DMXData Data array pointer FBDMX FB gestione protocollo DMX IF FBDMX Done THEN FBDMX Start FALSE END IF End of file Mnl151c080 Pag 154 270 Programmazione IEC 61131 3 LogicLab Library 7 13 10 IOEncoder incremental encoder over I O l ePLCUtyLib_C000 Questo blocco funzione esegue la lettura di un encoder incrementale connesso agli ingressi logici Basta appoggiare sui due ingressi APhase e BPhase del blocco funzione i due ingressi di acquisizione del canale A e del canale B di un encoder incrementale Il blocco funzione esegue la Enable Enabled quadratura dei segnali il controllo della direzione di rotazione e gestisce il valore di Quote in Reset Error uscita Phase Quote l Encoder La quadratura dei segnali esegue la moltiplicazione per 4 delle tacche encoder quindi il valore di FFhase Quote al termine di un giro completo dell encoder pari al numero di tacche encoder moltiplicato per 4 Enable B00L Abilitazione gestione conteggio encoder Reset B001 Comando di reset quota encoder Attivando l ingresso si azzera il valore di Quote APhase 8001 Ingresso canale A encoder BPhase 8001 Ingresso canale B encoder Enabled 8001 Con
114. IEC 61131 3 LogicLab 3 Heysf Type Library 7 9 3 SetSMode Set serial mode FB ePLCUtyLib_C000 Questo blocco funzione esegue impostazione parametri di comunicazione porta Sone ede seriale Occorre passare al blocco funzione il puntatore al file di porta seriale su cui eseguire l impostazione dei parametri di comunicazione cosi come viene ritornato FF Done dalla funzione di apertura file Sysfopen Per ulteriori chiarimenti sui vari parametri Baudrate Fault fare riferimento alla definizione modo comunicazione porta seriale Parity SYSSERIALMODE paar In caso di errore esecuzione Esempio definizione di un parametro fuori range il topBit valore di impostazione della porta seriale non viene modificato e si attiver l uscita DTRhanagement Fault DTRComplement Attivando il modo di funzionamento DTR_AUTO_W_TIMES su DTRManagement FeheFlush possibile con il parametro DTROnTime definire un tempo di attesa dopo attivazione PT RUntTime segnale DTR prima della trasmissione dei dati su seriale Con il parametro ETROfiTime DTROffTime possibile definire un tempo di attesa dopo la trasmissione dell ultimo dato prima della disattivazione del segnale DTR Queste temporizzazioni sula gestione del segnale DTR permettono di gestire in modo automatico apparecchiature radiomodem su cui deve essere attivato il comando di trasmissione prima di eseguire l invio dei dati Fp FILEP Puntatore al file di porta seriale come ritornato da fu
115. IP daemon 12 NTP subsystem Severity codes Emergencies Sistema inutilizzabile Alerts Richiede intervento immediato Critical Condizioni critiche Errors Condizione d errore Warnings Condizioni di warning Notifications Condizioni di anomalia non critici bugs Informational Messaggi informativi N QD dl A W DY O Debugging Messaggi di debug Il messaggio prosegue poi con l indicazione di data e ora del nome del dispositivo che ha inviato il messaggio Hostname ed il testo del messaggio Message Mnl151c080 Pag 215 270 Programmazione IEC 61131 3 LogicLab 3 Hey Server Syslog Un server SYSLOG un punto centrale dove far arrivare tutti i messaggi di errore dei vari apparati hardware e software di una rete quali router switch server stampanti ecc per avere un controllo centralizzato degli errori degli apparati SYSLOG particolarmente diffuso in unix e conseguentemente sotto linux in ambiente windows esistono programmi freeware e o a pagamento per la gestione del server Il server pu selezionare filtrare i messaggi in arrivo in base a diversi criteri ad ogni selezione corrisponde almeno una azione In pratica si tratta di stabilire dei criteri di selezione e l azione da intraprendere in funzione della provenienza e tipo di messaggio II criterio di selezione pu essere ad esempio Priorit Indirizzo IP del mittente del messaggio Nome del Host Testo o parte di esso del messaggio Intervall
116. IP del client connesso al socket Solo per socket TCP ClientPort unt Porta del client attualmente connesso al socket Solo per socket TCP Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9977005 Blocco funzione non supportato 9977050 Errore allocazione blocco funzione 997 060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9977070 Errore versione blocco funzione 9977100 Valore di File non definito 9977110 Tipo di stream definito in File non corretto 9977150 Errore indirizzo IP dispositivo client ClientIP 9977200 Errore indirizzo IP interfaccia di rete MyIP 9977300 Valore dimensione buffer ricezione RxSize fuori range 9977310 Valore dimensione buffer trasmissione TxSize fuori range 9977350 Errore nel set dei parametri TCP 997 400 Errore set socket in listening 9977990 Non implementata nel simulatore Mnl151c080 Pag 192 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Esempi Nell esempio posto in ascolto un socket TCP sulla porta 1000 Se ci si connette con un client telnet Esempio Hyperterminal al sistema SlimLine sulla porta 1000 si attiver la variabile SktConnect Inviando caratteri dalla finestra del terminale telnet si attiver la variabile ChrsAv i caratteri inviati saranno ricevuti dalla funzione Sysfgetc e inviati in echo verso il client telnet dalla funzione Sysfputc Defi
117. Il risultato del calcolo 6 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Length INT Auto Mo O n String length Esempio LD eLEN St Hello _ Mnl151c080 Pag 110 270 Programmazione IEC 61131 3 LogicLab 3 Flarf i i Type Library 7 11 2 eFIND string find Function ePLCStdLib_B000 Questa funzione cerca la posizione del carattere di inizio della prima apparizione di n2 in Inf Se FIND nessuna apparizione viene trovata la funzione ritorna 0 Di Se la stringa n2 trovata nella stringa n1 viene ritornata la posizione dove si trova In Esempio eFIND In1 abcd In2 bc Ha come risultato 2 Parametri funzione In1 usinT Pointer alla stringa dove effettuare la ricerca In1 uSINT Pointer alla stringa da ricercare La funzione ritorna RO Posizione dove la stringa n2 stata trovata 0 se stringa non trovata Esempi Viene eseguita la ricerca della stringa lo nella stringa Hello world La posizione trovata 4 e viene trasferita nella variabile Position Definizione variabili Mame Type Address Array Init value Attribute Description 1 Position INT Auto HO 0 7 StrToFind position 2 Stroource STRING Auto 32 String were looking 3 StrToFind STRING Auto 32 N String to find Esempio ST Find the position where is StrToFind in StrSource StrSource Hello worldt StreroFindi Lo Position eFIND ADR StrSource
118. Lab Elere Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9981050 Errore allocazione blocco funzione 9981060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9981070 Errore versione blocco funzione 9981080 Impossibile inizializzare il modulo 9981100 Il modulo indirizzato in Address non presente 9981110 Il canale definito in Channel non gestito 9981200 4 Il modo di gestione definito in Mode non gestito dal modulo 9981300 2 Errore nella gestione lettura counter dal modulo 9981990 Non implementata nel simulatore Esempi Viene eseguita l acquisizione del contatore dal modulo CPU di SlimLine viene eseguito il conteggio su entrambi i fronti dell ingresso di clock Il valore di conteggio trasferito nella variabile Value Su fine conversione viene attivata l uscita digitale Do01M00 se errore di conversione viene attivata l uscita digitale Do02M00 Attivando l ingresso DI00MO00 viene eseguita l inversione del conteggio ad ogni variazione dell ingresso di clock viene decrementato il valore di Value in uscita Attivando l ingresso Di01M00 viene eseguito il reset del conteggio il valore di Value in uscita resettato Definizione variabili Mame Type Address Array Init value Attribute Description 1 value UDINT AUTO Mo O i Counter value 2 Ctr Sys Getlounter Auto Mo U cysGetCounter FB data Esempio LD Ctr Sys Get C
119. Lab Type Library Function XTarget_07_0 7 7 14 SysVarfprintf variable print to file Questa funzione esegue la stampa formattata di una variabile sullo stream collegato al Sei parametro File precedentemente aperto dalla funzione Sysfopen ae La stringa Format specifica il formato con il quale stampare la variabile Mentre in VarType Format indicato il tipo di variabile ed in VarAdd il suo indirizzo a VarType La funzione ritorna il numero di caratteri trasferiti nello stream EOF in caso di errore Var dd Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Format strinc so Ha due tipi di argomenti i caratteri ordinari che vengono copiati nello stream di uscita e le specifiche di conversione contraddistinte dal simbolo percentuale e da un carattere che specifica il formato con il quale stampare la variabile definita VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd upin Indirizzo variabile La funzione ritorna CNT Numero di caratteri trasferiti nello stream EOF Errore esecuzione Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9998010 Valore di File non definito 9968100 Terminale di I O usato in task fast o slow 9998200 Tipo variabile non gestito controllare VarType 9998990 Non implementata nel simulatore Esempi Su fronte att
120. MT Auto Mo 0 Displayed message ID Esempio ST Here open the terminal communication port IF SysFirstLoop THEN HMI File Sysfopen PCOMO 1 rw END_IF File pointer Here manages the NETLOG III terminal MsgID MyHMI MsgID Displayed message ID HMI HMIBuiltInID MyHMI HMIBuiltInID ID gestione messaggi HMI Enable TRUE Pag 232 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab 3 Faszt 8 Protocolli di comunicazione 8 1 Protocollo modbus Il modbus un protocollo di comunicazione seriale diventato uno standard de facto nella comunicazione di tipo industriale ed ora il protocollo di connessione pi diffuso fra i dispositivi elettronici industriali E un protocollo di tipo richiesta risposta ed offre dei servizi specificati da function codes SlimLine supporta il protocollo modbus Rtu sulle porte seriali e modbus Over IP su connessione ethernet su porta 502 Il protocollo modbus Rtu sulla porta seriale ha come parametri di comunicazione di default 115200 e 8 1 e l indirizzo di nodo sia su porta seriale che su TCP IP 1 8 1 1 Accesso variabili da modbus Le funzioni del protocollo accedono tutte alla memoria utente MX7100 le funzioni supportate sono Function Tipo oggetto Tipo accesso Range indirizzo Read coil status Bit singolo Read 40000 44095 20000 24095 Note 1 Read input status Bit singolo Read 40000 44095 20000 24095 Note 1 Read holding regi
121. N IF Di00M00 THEN D0o00M00 SysFIBfClear Fp END IF END IF Mnl151c080 Pag 86 270 Programmazione IEC 61131 3 LogicLab Type Library 7 7 12 SysFOBfClear file output buffer clear Function XTarget_07_0 Questa funzione elimina tutti i caratteri in uscita presenti sul flusso dati stream indicato dal SysFOEfC parametro File precedentemente aperto dalla funzione Sysfopen a File La funzione ritorna FALSE in caso di errore Parametri funzione File rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RSS FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9963100 Terminale di I O usato in task fast o slow 9963990 Non implementata nel simulatore Esempi Se attivo l ingresso Di0OMO0 tutti i caratteri in uscita dalla porta seriale saranno cancellati e l uscita DOo00MO00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo Port COMO file pointer Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Tf the input is active the ouput buffer is cleared IF Fp lt gt NULL THEN IF Di00M00 THEN D000M00 SysFOBfClear Fp END IF END IF Mnl151c080 Pag 87 270
122. Pag 106 270 Programmazione IEC 61131 3 LogicLab Type Library 7 10 2 SysISCANRxTxAv checks if CAN Rx or Tx is available Function XTarget_07_0 Questa funzione controlla Svels CAN Rx TscAw Select FALSE Se vi almeno un messaggio nel buffer di ricezione CAN Select Select TRUE Se vi spazio per un messaggio nel buffer di trasmissione CAN La funzione ritorna TRUE se la condizione selezionata vera Parametri funzione Select 800 FALSE Se vi almeno un messaggio nel buffer di ricezione CAN TRUE Se vi spazio per un messaggio nel buffer di trasmissione CAN La funzione ritorna ROSE TRUE Condizione selezionata vera Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9956005 Funzione non supportata 9956990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue il controllo se un messaggio CAN stato ricevuto ne esegue la ricezione ed invia in uscita sulla porta seriale COMO la struttura del messaggio ricevuto Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo O Port COMO file pointer 2 CANN Sg SYSCANMESSAGE Auto Mo O i CAN message 3 MrOfchars IMT Auto Mo O Number of printed chars Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer
123. PhCall ModemPhoneCall wt pioomioo Pe a AI hlodemlO Cone Fault 390142451987 Number _15 Time Mnl151c080 Pag 178 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 15 6 ModemHTTPGet executes a HTTP Get request FB eModemLib_E000 Questo blocco funzione esegue una richiesta HTTP inserendo in linea dei parametri GET si E ModemHTTP Get collega al blocco funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Send Done i hodemiD Fault Su fronte attivazione ingresso Send viene eseguita la connessione al Server HTPP sulla porta Denver Port e richiesta la pagina Page La pagina viene richiesta con i parametri GET definiti nel buffer puntato da GETPars La pagina ricevuta dal server viene trasferita nel buffer puntato da RxBuffer Fe i dati ricevuti che superano la dimensione del buffer RxSpace sono scartati Page a i i lt SETParn Terminata la ricezione della pagina richiesta si attiva per un loop l uscita Done se pagina non nee ritornata nel tempo definito in TimeOut l esecuzione termina con errore a a RxSpace TimeOut Send B00L Sul fronte di attivazione comanda richiesta pagina HTTP Attenzione La richiesta verra eseguita non appena il modem libero ModemiD unin ID modem fornito in uscita dalla ModemCore Server usinT Pointer alla stringa di definizione d
124. Pointer al numero di telefono a cui eseguire l invio del messaggio TLgt upint Numero di caratteri del messaggio da inviare Se 0 viene inviato l intero messaggio Text USINT Pointer al testo messaggio da inviare Done 8001 Attivo per un loop al termine dell invio del messaggio SMS Fault B001 Attivo per un loop se errore invio messaggio SMS Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10005010 ModemiD non definito 10005020 ModemiD non corretto 10005080 Errore case gestione 10005100 3 Errore gestione invio SMS Esempi Nell esempio gestito l invio di un messaggio SMS sul modem definito nella variabile ModemID per la definizione delle variabili e per una migliore comprensione del funzionamento si rimanda agli esempi successivi Esempio LD Ptp118b100 SendSMSMessage SMSSend ModemSMSSend_vw2 DIDOMOoO EA Sen Done hlodemlO Fault 39335123450 Number Domina ADR Text This is the message Mnl151c080 Pag 175 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Invio di un messaggio a pi numeri Molte volte succede di dover inviare su un evento Esempio ingresso digitale diversi messaggi SMS ognuno con il proprio testo a diversi numeri telefonici Il blocco funzione SMSSend permette la gestione dell invio sullo stesso evento di pi messaggi ogni messaggio contraddistinto dal numero di telefono
125. Q viene settata ed il conteggio si LE arresta Solo agendo sull ingresso di reset R si potr resettare il counter e fare ripartire un nuovo F conteggio Ad ogni fronte di attivazione dell ingresso CD il valore del counter CV viene decrementato quando il valore raggiunge 0 l uscita Q viene settata ed il conteggio si arresta Solo agendo sull ingresso di load LD possibile presettare il counter e fare ripartire un nuovo conteggio CU 8001 Comando incremento counter ad ogni fronte attivazione il valore del counter CV si incrementa CD 8001 Comando decremento counter ad ogni fronte attivazione il valore del counter CV si decrementa R B00L Comando di reset attivando l ingresso il valore del counter CV si resetta LD Bool Comando di load attivando l ingresso il valore di preset PV viene trasferito nel valore del counter CV PV int Valore di preset quando il valore del counter CV raggiunge questo valore l uscita Q si attiva ed il counter non si incrementa pi QU 8001 Uscita counter up attiva se il valore del counter CV raggiunge il valore definito in preset PV QD B00L Uscita counter down attiva se il valore del counter CV raggiunge il valore 0 CV int Valore counter valore di conteggio counter quando raggiunge il valore di preset PV l uscita Q si attiva ed il counter non si incrementa pi Esempi Il counter presettato a 10 ed il suo valore in uscita CV copiato nella variabile VarOut Attivando l ingre
126. SHeaders From n mail REQUEST To REQUEST Subject REQUEST Text SHeaders echo Ok exit gt Come si vede lo script invia una mail tramite il comando mail i cui campi sono valorizzati dai parametri posti in GET alla richiesta Lo statement _REQUEST To valorizzato con il testo definito in To REQUEST Subject valorizzato con il testo definito in Subject e cos via Come si vede possibille passare allo script tutti i valori che si desiderano Il valore di ritorno dallo script definito con lo statement echo verr trasferito nel buffer RxD del nostro programma e quindi possibile operare su di esso con le istruzioni di gestione stringa Mnl151c080 Pag 181 270 Programmazione IEC 61131 3 LogicLab 3 Hey 7 16Funzioni ed FB gestione One Wire ePLC1WireLib_C000 Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie La rete da campo 1 Wire un protocollo standard basato su di un solo filo di comunicazione come indica lo stesso nome che include numerosi dispositivi e sensori frequentemente utilizzati nel campo dell automazione industriale e domestica dispositivi sono interconnessi da soli due fili uno per la massa ed uno per il segnale e l alimentazione su questi due fili possono essere collegati tutti i dispositivi in rete scegliendo la disposizione fisica necessaria Il protocollo 1 Wire
127. SysMfcCode UDINT Codice manufacturer questo codice v richiesto con il prodotto Se non definito ritornato il codice 0 SysCustomerCode UDINT Codice customer questo codice pu essere impostato dall utente che ha accesso come amministratore al sistema Se non definito ritornato il codice 0 SysErCode UDINT Numero dell errore di esecuzione programma SysErTime UDINT Data ed ora in cui l errore avvenuto Epoch time SysSerialNr UDINT Numero di matricola del prodotto SysApllIBTime UDINT Build time Epoch time della dell applicazione SysUniquelD UDINT ID univoco prodotto vedi note SysCode STRING 10 Codice del prodotto SysFVersion STRING 10 Versione firmware del prodotto SysErlnfos STRING 32 Informazioni aggiuntive sull errore SysApliIName STRING 10 Nome dell applicazione SysUSetA STRING 16 Valore impostato da utente in variabile Set A vedi esempio SysUSetB STRING 16 Valore impostato da utente in variabile Set B vedi esempio SysUSetC STRING 16 Valore impostato da utente in variabile Set C vedi esempio SysUSetD Mnl151c080 STRING 16 Valore impostato da utente in variabile Set D vedi esempio Pag 15 270 Programmazione IEC 61131 3 LogicLab 5 Flee 4 2 Variabili lettura e scrittura System var
128. TUD Counter UpiDown function block Qutput value FB_CTUD CTUD Da00 WOO D 0071 hoo Cut alue ST FB CTUD CU On the raising edge of digital input the counter count up LD Di01M00 ST FB CTUD CD On the raising edge of digital input the counter count down LD Di02M00 ST FB CTUD R IT the digital input is set the counter is reset LD D103M00 ol EB CTUD LD LE the digital input is set the PV value is loaded LD FB CTUD QU ST Do00M00 If the counter value has reached the preset the digital output is set LD FB CTUD QD ST Do01M00 If the counter value is 0 the digital output is set LD FB_CTUD CV ST OutValue The counter value is copied to the variable Esempio ST FB CTUD PV 10 Call the CTD function block and preset counter FB CTUD CU Di00M00 On the raising edge of digital input the counter count up FB CTUD CD D1i01M00 On the raising edge of digital input the counter count down FB CTUD R Di02M00 If the digital input is set the counter is reset FB CTUD LD D103M00 Do00M00 FB CTUD OU Do01M00 FB CTUD QD OutValue FBCTUD CV Mnl151c080 If the digital input If the counter value If the counter value The counter value is is set the PV value is loaded has reached the preset the digital output is set is 0 the digital output is set copied to the variable Pag 44 270 Programmazion
129. T_M5_5 Voltage from 5 to 5 V 5 11 Spy mode definizioni modo spionaggio dati Le definizioni modo di spionaggio dati si possono trovare nella cartella Spy mode definition Define Description SPY_ASCII Ascii mode Example 12 26 52 0000 Tx Messaggio 2 SPY _ASCHEX Extended ascii mode Example 12 28 47 0000 Tx M 000 OD 0A SPY_BINARY Binary mode Example 12 26 52 0003 Tx 00 00 00 00 00 00 00 00 Mnl151c080 Pag 22 270 Programmazione IEC 61131 3 LogicLab 5 Fleet 6 Funzioni definite da LogicLab LogicLab supporta in modo nativo una serie di funzioni che possono essere utilizzata dai vari programmi scritti nei linguaggi supportati Per utilizzare queste funzioni occorre dalla libreria nella sezione Operator and standard blocks attingere la funzione desiderata Nei linguaggi testuali IL ed ST anche possibile scrivere il nome della funzione esattamente cos come definita Library x TABS Dy in LN 3 POW H SIZEOF A KOR ACOS EQ log LOG ER We SORT ADD le EXP lt LT Ine REPLACE SUB ADR ac FIND hl MAX 434 RET TAN a AND i FLOOR ABC MID RED RIGHT nh TANH Le ASIN GE m MIN EROL TO_BOOL 2 AT AN GT MOD ROR TO DINT La ATAN2 eel INSERT MOWE Es TO_INT f CEIL JhAP MUL Z SEL TO REAL ree CONCAT 4 LE EM MU e SHL TO SINT AA COS eq LEFT NE gt SHR TO UDINT csH COSH BBC LEN ZINOT
130. Time ST Systpute IL_Susk T imeT oD ate ST Sustread IL_Sysbet4nlnp ST_SysGetAnlnp IL_SysGetPhrDI ST Sysbetlre IL SyeSet4nQ0 ut ST_SyzGetPhrDI IL_SysSetPhrDO ST_SyzGetHandom ST_SysDateToETime ST_SysGetSeralkWode lt i Spmbol location I Evidenziando gli oggetti e agendo sul tasto Import Object gli oggetti selezionati saranno inclusi nel proprio progetto Oltre ai programmi possibile importare dalla libreria anche le variabili In questo modo si potranno importare tutte le definizioni degli I O logici come indicato nella tabella di definizione ls C z di gm Ti a RI Ik Cancel Project command RA To import a PLC object select the tab with the object type select P the object and press the Import object button Una volta inclusi nel progetto gli esempi sar possibile utilizzarli direttamente oppure con con semplici operazioni di cut and paste incollare parti di codice sorgente dal progetto di esempio Project Xx E IL _SwsETimeT E IL_SysSetAndut Ei Project 2 Definitions Mame Type Address Array Init value Attribute Description g MyProject Project 1 Day USINT Auto Mo 0 Day Sy Programs 2 Month USINT Auto Mo 0 Month H E IL SysETimeToDate 3 Year UINT Auto No 0 Year E IL SpssetAnQu 4 FB_SysETimeToDate SysETimeToC Auto Mo FB SysETimeToDate data Function blocks T Functions 000i Transfer system date e time to FB input variable TTE LD S
131. a 0 a 9 da Aa F e Valore decimale in virgola mobile visualizzato con indicazione dell esponente Esempio d ddde dd E Valore decimale in virgola mobile visualizzato con indicazione dell esponente Esempio d dddE dd f Valore decimale in virgola mobile Esempio d ddd C Singolo carattere S Stringa Mnl151c080 Pag 241 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 9 3 2 Campo Type Il campo Type indica il tipo di variabile che si vuole visualizzare sono gestiti tutti i tipi definiti nella IEC61131 9 3 3 Campo Address Il campo Address indica l indirizzo della variabile ricordo che possibile indicare solo variabili allocate nella DB 100 9 3 4 Esempi di TAGs Per meglio comprendere il formato di visualizzazione delle TAGs riporto alcuni esempi lt d UINT 10 gt Visualizza il valore della variabile UINT allocata all indirizzo DB 100 10 con un numero di cifre intere variabili in base al valore lt 04d UINT 10 gt Visualizza il valore della variabile UINT allocata all indirizzo DB 100 10 sempre espresso con 4 cifre lt 3 0f REAL 32 gt Visualizza il valore della variabile REAL allocata all indirizzo DB 100 32 con 3 cifre intere e nessuna cifra decimale lt 4 2f REAL 50 gt Visualizza il valore della variabile REAL allocata all indirizzo DB 100 50 con 2 cifre intere e 2 cifre decimali Mnl151c080 Pag 242 270 Programmazione IEC 61
132. a per un loop l uscita Fault Enable 8001 Comando di abilitazione blocco funzione MMDtTxflD UDINT ID server multimaster in uscita dalla FB server MmasterDataTxfer ToNode USINT Nodo identificativo del sistema peer con cui scambiare i dati Range da 0 a 250 RxData USINT Puntatore al buffer dove devono essere trasferiti i dati ricevuti TxData USINT Puntatore al buffer dove sono presenti i dati da trasmettere DLen uoint Numero di bytes scambiati Max 32 Enabled 8001 Attivo su abilitazione blocco funzione Fault 8001 Attivo per un loop su errore esecuzione RxOk 001 Attivo per un loop ad ogni ricezione dati da sistema peer PeerOk 8001 Attivo se scambio dati con sistema peer Ok RxFrames uoin Counter frame dati ricevuti TxFrames unr Counter frame dati trasmessi AckErrors UDINT Counter errori acknowledge dati da sistema peer Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10041010 MMDtTxfID non definito 10041020 MMDtTxfID non corretto 10041050 Valore DLen errato 10041200 Frame dati ricevuto da sistema peer ha lunghezza errata Verificare DLen sistema peer Mnl151c080 Pag 226 270 g Programmazione IEC 61131 3 LogicLab 3 Flee Esempi Nell esempio gestito lo scambio di 8 BOOL con il sistema peer nodo 1 MyNode 1 Definizione variabili Name Typ
133. accensione del sistema Se invece non si usa una variabile tamponata ad ogni spegnimento accensione si ripartir a scrivere dall inizio del file Quindi si pu scegliere il comportamento voluto Questo un blocco funzione protetto Per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min Attivando l ingresso Write viene salvata su disco la stringa StringToLog Eseguito il salvataggio viene attivata per un loop l uscita Done In caso di errore esecuzione viene attivata per un loop l uscita Fault Enable Bool Comando di abilitazione blocco funzione Write B001 Comando di scrittura di StringToLog nel file StringToLog sTRING 160 Stringa di cui fare log Filename strinci32 Percorso e nome del file in cui fare log es SDCard MyFile txt Circular 8001 Indica se effettuare il riporto circolare delle righe di log MaxRowLen usin Numero massimo di caratteri costituenti la singola riga del file di log MaxRowsinFile uoint Numero massimo di righe nel file RowlndexPtr upint Pointer alla variabile usata come indice della successiva riga di log Enabled 8001 Attivo su abilitazione blocco funzione Done 8001 Attivo per un loop se la scrittura nel file riuscita Fault B001 Attivo per un loop su errore esecuzione del comando Codici di errore In caso di errore si attiva l uscita Fault e con SysGe
134. acquisito trasferito in un array di 8 bytes ROMID Ciclicamente viene eseguita l acquisizione se un TAG inserito nel lettore viene attivato TAGInserted Per semplicit nel programma non viene eseguito alcun controllo sull ID letto ma in un sistema di controllo accessi ad esempio possibile dall ID letto identificare la persona ed abilitare o no l accesso Definizione variabili Name Type Address Array Init value Attribute Description IDDone BOOL AUTO Mo FALSE n Read ID code done 2 ipok BOOL Auto No FALSE ID code read 3 TAGInserted BOOL Auto No FALSE TAG inserted on reader 4 ROMID BYTE Auto 0 7 8 0 ROM ID code 5 OwlD UDINT Auto No One Wre ID Ce Fp FILEP Auto No 0 File pointer YOY ire sOvVirehing Auto Mo U FB One Wire management 8 RdD sOWRdldenti ier Auto No 0 FB One Wire read ID Esempio LD PTP120A200 LD_TAGReader Open the serial port Sysfopen SvsFirstLoop EN ENO Fia COMO ius Fp Mode si Manage the Serial One Wire converter OWire sOWireMng SysFirstLoop fr ___ A gt Emeble nor Fp_ _ File Activity Fault MnglD i OwlD Execute the TAG reader code Rd ID IDDone IDDone H TT En le IDO PER OwlD ROMID gt IDDone IDOK TAGInserted Ferreri a L IDDone IDOK TAGInserted Mnl151c080 Pag 185 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 16 3 SOWRdTemperature One Wire read temperature _ FB ePLC1W
135. address 0 Input 01 Module address 0 Input 02 Module address 0 Input 03 Module address O Input 04 Module address 0 Input 05 Module address 0 Input 06 Module address 0 Input 07 Module address O Input 08 Module address O Input 09 Module address 0 Input 10 Module address 0 Input 11 Module address 0 Output 00 Module address 0 Quiput 01 Module address 0 Output 02 Module address O Qutput 03 Module address 0 Qutput 04 Module address 0 Quiput 05 Module address 0 Qutput 06 Module address 0 Qutput 07 module address 0 Pag 260 270 Programmazione IEC 61131 3 LogicLab 3 Flere 11 3 Esempi forniti con LogicLab Nella distribuzione del programma LogicLab sono inseriti alcuni programmi di esempio i programmi sono forniti in codice sorgente e possono essere trasferiti sul sistema target e provati Nell finestra principale di LogicLab sotto la voce Example projects vi il link ai vari progetti Per poter utilizzare un esempio sul proprio sistema target occorre definire il sistema con il quale si st operando dal men Project Select target StartStop LogicLab C StartStop StartStop ppjs LDStartStop Ti File Edit View Project On line Debug Scheme Variables Window Tools Help o O Upi 1 RAE PE AME OO OO 6 ST ay Los Ae Ae ber sD o Dex Project EHE StartStop Project Address Array Init value Attribute Programs q Moe Ti LOStartSt DE Object Browser Function
136. aia laine 140 7 13 3 BlinkValue blink out valUe cece ecececeee cece ee eeeaeaeaeaeaeeeaeceseceseeeseeneneneaeaeaeaeaeaeaeaeaeaeaeaenaeaeeaeaenaenneas 141 7 13 4 ModbusMaster modbus Master 142 7 13 5 ModbusSlave modbus slave ii 145 7 13 6 ONOFFCYCLE on off cycle with random tiMes i 148 Mnl151c080 Pag 3 270 Programmazione IEC 61131 3 LogicLab 3 Faszt hS SP OMG FI Milan AGING Macey cenare 150 7 13 8 PWMOut PWM output management iii 152 7 13 9 SysDMXMhg DMX management iii 153 7 13 10 lOEncoder incremental encoder over 1 O ccececcececeeeececeeeeaececeeeeaeceeeeaeaececeeaeaesesueaeaeaeeneeeatanaenes 155 7 13 11 GetlSO1155Crc calculate CRC according 1501155 ceccceseeeeeeeeeeeeeeeeeseeeesaeeeeseeeeeseeeeeseeeeeaeees 156 7 13 12 IODataExchange exchange data by using logic I O cccecceeeeeeeeeeeeeaeeeesseeeesaeeeesseeeeseeeeeseeeesaees 157 7 13 13 Average value average ii 159 7 13 14 HIDCIkDtaReader HID RFID clock data reader eccccece ca ececeeeeeeaececeeaeeeaeaenenaeeenenanaenaeaeas 160 7 13 15 Linearize linearize a NON linear VAN Cos csciccccscnscowecctansacicrmewndedvecisens deenesnedsandesacawnntacdawiaentoadedeceseteadsiladsediae 162 7 13 16 ValueScale scales a VAIUC cowicicaiescessunectvsiennanseneseweunsicacnnsedarscianstba
137. al input to Enable input LD 2000 ST FBData MinOffTime Set the minimum off time LD 4000 ST FBData MaxOffTime Set the maximum off time LD 2000 ST FBData MinOnTime Set the minimum on time LD 4000 Mnl151c080 Pag 148 270 Programmazione IEC 61131 3 LogicLab 3 Flich ST FBData MaxOnTime Set the maximum on time LD FBData Out ST Do00M00 Copy the Out value to logic output LD FBData Delay ST VarOut The Delay time is copied to variable Esempio ST PTP114A100 ST_ONOFFCYCLE FBData s Call the ONOFFCYCLE function block FBData Enable D100M00 Transfer the digital input to Enable input FBData MinOffTime 2000 Set the minimum off time FBData MaxOffTime 4000 Set the maximum off time FBData MinOnTime 2000 Set the minimum on time FBData MaxOnTime 4000 Set the maximum on time Do00M00 FBData 0Out Copy the Out value to logic output VarOut FBData Delay The Delay time is copied to variable Mnl151c080 Pag 149 270 Programmazione IEC 61131 3 LogicLab 7 13 7 PIDMng PID management Questo blocco funzione esegue la regolazione PID E prevista la possibilit di abilitare singolarmente i vari tipi di azione P roporzionale ntegrativa D erivativa Un comando di Reverse permette di invertire il segno del segnale in uscita Out PIDEnable B001 Enable B001 DEnable Bool Reverse 8001 SetPoint R
138. ammi Elsist lEC61131Suite LogicLab2p0 Libraries ma possibile anche utilizzare librerie fornite successivamente o di cui si eseguito il download dal sito Esistono due possibilit per utilizzare le librerie Import libreria In questo modo vengono importati nel proprio programma tutti gli oggetti presenti nella libreria gli oggetti possono cos essere utilizzati nel programma Questa una buona soluzione La controindicazione quella di aumentare la dimensione del file di progetto LogicLab ppjs in quanto deve contenere oltre al proprio programma anche tutti gli oggetti della libreria importata Il programma eseguibile generato conterr comunque solo gli oggetti utilizzati Import oggetti In questo modo possibile importare da una libreria solo gli oggetti Funzioni FB ecc che interessano i quali diverranno parte integrante del proprio progetto 7 0 3 Import libreria Con questa modalit vengono importati tutti gli oggetti presenti nella ISTE libreria Per importare nel proprio programma l intera libreria dal men selezionare la voce Project Library manager si aprir una finestra come quella sotto riportata Debug Communication Tools Help New object d Import object from library Project library list Name Lik Add eplcstdlib c prograrnimvelsistiec61 131 sutela eplcutplib co pragranimselsist iech1 137 suite sto Macros Select target Options Close Agendo sul tasto Add si apr
139. anf ADR SysUsetD d UDINT TYPE ADR Values 3 l SysVarsnprintf ADR SysUlnfoD 16 sd UDINT TYPE ADR Values 3 END IF Mnl151c080 Pag 258 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 11 Esempi di programmazione 11 1 Biblioteca esempi Per permettere all utente di disporre di esempi da utilizzare per lo PACA Debug Communication Tools Help sviluppo dei proprii programmi quasi tutti gli esempi riportati sul manuale sono forniti in programmi dimostrativi programmi dimostrativi sono codificati con il suffisso PTP accanto ad ogni Hd Generate redistributable source module esempio Se si desidera includere nel proprio progetto un file di esempio del manuale occorre dal men Project scegliere la voce Import object from library Si aprir un dialog box che permette di selezionare la libreria da cui estrarre il programma da importare New object Wa Library manager Macros Li Scegliere il file di libreria desiderato 13 Zatgnt EJ Esempio Ptp116 000 pll si aprir la finestra con l elenco degli oggetti Functions Variables User Types Filters presenti all interno da cui sar Programs SIR Fal Meme possibile selezionare gli oggetti desiderati FED SysDateToETime ST_SysETimeToDate ST FED_SysETimeToDate ST_Sysfclose ST_ FED_SysGet nlnp ST Sustgete ST FED SushetPhrD ST_SysFIBfClear ST FED SusSetanUut ST_SysFUBfClear ST FED SyaSetPhrD0O ST Systopen IL_ SyeD ateT oF
140. aphic Position sentence FB eNMEALIb_B000 Questo blocco funzione esegue la ricezione della sentenza GLL Geographic Position si GLLSent collega al blocco funzione NMEASInterface di gestione dispositivo NMEA Occorre H passare NMEAID in uscita dal blocco funzione di gestione dispositivo Enable Done NMEAID Fault La sentenza GLL contiene le informazioni di latitudine longitudine ora e fix esempio di ae sentenza IIGLL 4419 0173 N 00829 6653 E 084550 00 A 2 09 DEA ongitude L FB controlla correttezza dei campi della sentenza e ne estrae le informazioni di latitudine UTCHSUI longitudine e tempo L uscita Done si attiva per un loop ad ogni ricezione di sentenza GLL eR te corretta UTC Second Enable soot Abilitazione blocco funzione NMEAID wont ID interfaccia con sistema NMEA fornito in uscita dal blocco funzione NMEASInterface Done 6001 Attivo per un loop di programma su ricezione sentenza GLL corretta Fault Bool Attivo per un loop di programma se errore sentenza Latitude rea Valore di latitudine indicato nella sentenza il valore espresso in frazione di gradi Valori positivi indicano latitudine nord valori negativi latitudine sud Longitude rea Valore di longitudine indicato nella sentenza il valore espresso in frazione di gradi Valori positivi indicano longitudine est valori negativi longitudine ovest UTCHour wusint Valore di ora UTC indicato nella sentenza UTCMinute usint Valore di minuti UTC indicato nella
141. aracters 4 TxChars INT Auto Mo i Transmitted characters Esempio ST PTP116A100 ST_Sysfread Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here walt until at least 5 chars are received and echoes them IF Fp lt gt NULL THEN IF SysGetIChars Fp gt 5 THEN RxChars Sysfread ADR RxString 1 5 Fp Received characters TxChars Sysfread ADR RxString 5 1 Fp Received characters END IF END IF Mnl151c080 Pag 80 270 Programmazione IEC 61131 3 LogicLab Type Library 7 7 6 Sysfwrite write data to file Function XTarget_07_0 Questa funzione esegue la scrittura di un numero definito di stringhe di lunghezza definita nel Sore flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen n La funzione ritorna il numero di stringhe dati scritte Se nello stream non c abbastanza spazio Size per contenere il numero di stringhe definito viene ritornato un numero minore di stringhe scritte Count rispetto al valore definito File Parametri funzione Buf stRING Indirizzo della stringa da scrivere Size nT Lunghezza in caratteri delle stringhe da scrivere Count int Numero di stringhe da scrivere File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna UNT Numero di stringhe scritte se valore ritornato m
142. ariable from peripheral module Function XTarget_07_0 Questa funzione esegue la lettura di una variabile dal modulo periferico di estensione SysPhrvRd Occorre definire l indirizzo di modulo Module l indirizzo della variabile da leggere sul modulo Madule periferico RdAdd il tipo di variabile VarType e l indirizzo del buffer dove trasferire il valore letto FidAdd VarAdd a VarType VarAdd Parametri funzione Module usin Occorre specificare l indirizzo di modulo da cui eseguire la lettura Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito RdAdd unn Indirizzo variabile da leggere come allocata sul modulo periferico VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd wont Indirizzo variabile La funzione ritorna 0994 FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9989100 II modulo indirizzato in Module non presente 9989110 II tipo variabile definito in VarType non corretto 9989200 Errore durante l esecuzione della lettura della variabile dal modulo periferico 9989990 Non implementata nel simulatore Esempi Attivando l ingresso Di00MO00 viene eseguita la lettura della variabile UDINT da indirizzo 16 dal modulo periferico 0 Il valore della variabile trasferito nella DB100 ad offs
143. asferito nella variabile AnaValue Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData Average Auto Mo I FA average data 2 Analnput SysGetAnlip Auto Mo I FA Analog input data 3 AnaValue REAL Auto Mo 0 n Analog input value Esempio FBD PTP114A500 FBD_Average Analnput Sys GetAninp Address Done FED ata O Channel Fault Average AD_VOLT_O_10_COMMON gt Mode Value value TA sar 100 0 Coefficient Mnl151c080 Pag 159 270 Programmazione IEC 61131 3 LogicLab Type 5 Flee Library 7 13 14 HIDCIkDtaReader HID RFID clock data reader FB ePLCUtyLib_C000 Questo blocco funzione esegue l acquisizione di un lettore HID tipo clock e dato La gestione del lettore deve essere eseguita almeno ogni 400 uSec quindi si consiglia di utilizzarlo in un programma eseguito nella task fast definendo il tempo di esecuzione della task a 400 uS tramite la funzione SysSetTaskLpTime Il blocco funzione pu acquisire tags RFID con codice di lunghezza fino ad 8 bytes il codice letto viene trasferito nel buffer indirizzato da CData occorre definire la lunghezza del codice in CDLength Clock B00L Ingresso di clock del lettore RFID Data BOOL Ingresso di dato del lettore RFID CData BYTE Indirizzo buffer codice letto dal tag RFID CDLength usint Numero bytes codice letto dal tag RFID Done B00L Attivo per un loop al termine della lettura tag RFID Faul
144. ati da dispositivo STE 10013200 1 Errore lettura sensore 1 10013300 1 Errore lettura sensore 2 Mnl151c080 Pag 200 270 Programmazione IEC 61131 3 LogicLab Flarf Esempi Nell esempio gestita l acquisizione dei due valori di temperatura da un termometro STE ogni secondo Il valore di temperatura in gradi centigradi ritornato sulle variabili Temperature 0 e Temperature 1 L uscita logica DoOOMO0O si attiva alla prima esecuzione della acquisizione mentre l uscita logica Do01M00 si attiva in caso di errore di acquisizione Definizione variabili Mame Type Address Array Init value Attribute Description 1 SktlsListening BOOL Auto No FALSE P Socketis listening 2 Temperature REAL Auto 0 1 20 2 Temperature 3 Fp FILEP Auto Mo 0 a UDP socket 4 STEACH STESnmpaAcg Auto No 0 A STE acquisition 5 GktLsn SvsSkiListen Auto No 0 3 FB socket listen data Esempio LD PTP1264000 LD_STESnmpAcq Sysfopen SysFirstLoop EN ENO WDE SET had a ode Sktlsn Sys Sktlisten SysFirstLoop SktlsListening fe e e e ret e L_ Enable Done Fp_ gt File Fault MylP Connect 161 hayP ort ClientlP LifeTm ClientP ort FlushTm Rx Size TSize STEA Gg STESnmpAcgq SktlsListening Copi Moo c_n Done SysClo 1 000 D 001 hod Ai Fault Fp _ File Sensori Temperature 0 49 1635 0 60 PeellP Sensor Temperature 1 161 PeerPort Mnl151c080 Pa
145. ato maiuscolo Esempi La variabile Lower viene convertita nel corrispondente valore maiuscolo e trasferita in Upper Il valore di inizializzazione 16 61 che corrisponde alla lettera a viene convertito nel valore 16 41 che corrisponde alla lettera A Definizione variabili Mame Type Address Array Init value Attribute Description 1 Lower LISIMT Auto Mo 16 61 a Lowercase letter 2 Upper SINT Auto Mo O 7 Uppercase letter Esempio LD ToUpper Lower _ Esempio IL LD Lower Lowercase letter ToUpper Lowercase to uppercase letter conversion ST Upper Lowercase letter Esempio ST Upper ToUpper Lower Lowercase to uppercase letter conversion Mnl151c080 Pag 55 270 Programmazione IEC 61131 3 LogicLab Eleaf f Type Library 7 4 11 LEArrayToVar Little endian array to variable conversion Function ePLCUtyLib C000 Questa funzione acquisisce il valore da un array little endian MSB LSB Source e lo LEArrayTovar trasferisce nella variabile di destinazione Destination in base al tipo Type di variabile _ Type definito Destination Source Parametri funzione Type sint Tipo di variabile destinazione come definito nella tabella Variable types definition Destination usint Indirizzo variabile di destinazione Source usINT Indirizzo array sorgente La funzione ritorna BOOL FALSE Errore tipo dati TRUE Conversione eseguita Esempi Il valore presente n
146. ault Frequency rea Valore di frequenza in uscita Per i limiti fare riferimento al manuale hardware della scheda utilizzata Il valore espresso in Hz Duty REAL Valore di duty cycle del segnale in uscita Per i limiti fare riferimento al manuale hardware della scheda utilizzata Il valore espresso in Done 8001 Generatore PWM correttamente impostato Fault B001 Errore nella esecuzione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9951050 Errore allocazione blocco funzione 9951070 Errore versione blocco funzione 9951100 Il modulo indirizzato in Address non presente 9951110 Numero di canale non presente 9951500 Errore esecuzione 9951990 Non implementata nel simulatore Mnl151c080 Pag 131 270 5 Flee Programmazione IEC 61131 3 LogicLab Esempi Viene impostata l uscita Out 0 del modulo CPU per generare un segnale PWM a 100 Hz con duty cycle 50 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Pw Svs Seth nl Out Auto Mo U FA data 2 Frequency REAL Auto Mo 100 Frequency set Hz 3 Duty REAL Auto Mo 50 DutyCycle set 4 Esempio LD Puy Sys Set PM Out EN ENO 205 Address Done o channel Fault Frequency gt Frequency Duty Duty Pag 132 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab 3 Flarf i i Type Library 7 12 9 SysPhrVRd read v
147. b 10 4 Espandere DWORD in 32 BOOL 5 Flee Ecco un come utilizzando i blocchi funzione DoubleToWord WordToByte ByteToBit sia possibile espandere una variabile DWORD in 32 variabili BOOL Definizione variabili Harme Type Address Array Init value Attribute 1 ByToBtHH ByteTo it Auto Mo 0 4 ByToBtHL ByteTobit Auto Mo 0 3 ByToBtLH ByteTobit Auto Mo 0 4 ByToBtLl AyteT obit Auto Mo 0 5 OW dToByH WordToByte Auto Mo 0 E VdToByl WordToByte Auto Mo O fF DdTowWd DoubleTowWord Auto Mo 0 amp Bit BOOL Auto 0 31 FALSE 31 0 9 Value DWORD Auto Mo 0 Esempio FBD Ptp114a200 FBD_DWExpand ByToBtHH EyteToBit In Wid To ByH Word To Byte In MSE LSB In DAT owd DoubleToWWord Value In MAS LS In Wid To By Word To Byte In MZE LSB ByToBtLL ByteToBit In Mnl151c080 ByToBtHL ByteTo Bit ByToBtLH ByteTo Bit bO bi bz b3 b4 b5 bi by bi bi bi b3 b3 be bei bY b bi be b3 b4 be bE br bi bi bz b3 b4 b5 bei br Description Byte to bits Byte to bits Byte to hits Byte to bits Word to bytes Word to bytes Double to word Hit status Value to convert Pag 252 270 Programmazione IEC 61131 3 LogicLab 10 5 Comprimere 32 BOOL in DWORD Ecco come utilizzando i blocchi funzione BitToByte ByteToWord WordToDouble sia possibile comprimere 32 variabili BOOL in una variabile DWORD Definizione variabili Name BtToByHL B
148. bloc Select target Available Targets i Functions FF Global variabli gi Pic Emulator 1 0 Hga Tasks SlimLine MpsO46 Target 07 0 Wi Generate redistributable source module SlimLine Mps046 XT arget 08 0 SlimLine Mpz046 Target 10 0 SlimLine Mps050 4T arget 10 0 SlimLine Pcb1 23 Target 10 0 SlimLine Pcb131 Target 10 0 Export object to library E Library manager Macros Refresh cument target Cancel Options j_ E definire il modo di comunicazione utilizzato dal menu On line Set up communication Debug Scheme Variables Window Tools Help Fas Tfr 4Ht 4 PAZ APE ANE Device Link Manager Config v10 0 22 0 F I Current selected protocol ModbusT CP Frotocols Active GOB Y Modbus E ModbusT CF Active 4 PCDev This program shows Description The Start and Stop oc You can easily chang Modbus TCF protocol Start T Cx Mnl151c080 Pag 261 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 11 3 1 Elenco programmi di esempio programmi forniti con LogicLab sono StartStop Logica di marcia arresto SMSbyWeb Invio messaggi SMS da pagina web MdbAsciiMaster FB gestione protocollo Modbus Ascii Modo Master MultipleSTE Connessione in SNMP con alcuni dispositivi STE EasyProtocol Sviluppo di un semplice protocollo di comunicazione PowerOneCm Comunicazione con inverter Aurora della Power One TagReader Controllo accessi con TAG I button GSM
149. browser l indirizzo della pagina eo e nen DBIOO 10 Value 0 DB100 12 Value 22 Come si vede nella riga superiore viene visualizzato il valore della variabile PLC DB100 10 mentre impostando un valore nella casella di testo della riga inferiore e agendo sul tasto Save sar possibile impostare il valore della variabile PLC DB100 12 Naturalmente in una pagina web possono essere visualizzate e possono essere impostate tutte le variabili desiderate si consiglia comunque di non esagerare con il numero di variabili preferibile suddividerle in pi pagine Mnl151c080 Pag 240 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 9 3 Formato TAGs Come si visto in una pagina dinamica parte del contenuto viene generato sul momento dal server Http Il modulo CPU SlimLine vediamo quali sono i meccanismi per definire le TAGs da visualizzare All interno del sorgente della pagina Html possibile definire dei campi di commento del tipo lt d UINT 10 gt campi sono interpretati come commenti e quindi sono gestibili da qualsiasi editor Html Esempio Macromedia ma il server Http nel momento in cui invia la pagina al client Il browser che la visualizza sostituisce al campo il valore della variabile indicata Nell TAG sono riportate tutte le informazioni necessarie secondo la sintassi lt Format Type Address gt 9 3 1 Campo Format La stringa di formattazione Format pu contenere elementi di due
150. ca DOOO presente sul modulo CPU DO01 B001 Stato della uscita logica DO01 presente sul modulo CPU Enabled 8001 Blocco funzione abilitato Done 6001 Acquisizione input e gestione output eseguita Fault B001 Errore su acquisizione input e gestione output D100 B001 Stato dell ingresso logico DIOO presente sul modulo CPU DI01 8001 Stato dell ingresso logico DIO1 presente sul modulo CPU Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10001100 Errore su esecuzione funzione lettura ingressi logici da modulo CPU 10001200 Errore su esecuzione funzione di set uscite logiche su modulo CPU Esempi Viene eseguita la lettura dei due ingressi digitali e la gestione delle due uscite digitali presenti sul modulo CPU Lo stato dei due ingressi logici copiato nelle uscite D0o00M00 e Do01M00 Lo delle variabili Di00M00 e Di01MO00 trasferito sulle due uscite logiche Definizione variabili Mame Type Address Array Init value Attribute Description 1 CPU CPUModulelo Auto Mo O 7 CPUMOodulelo function block 2 Dummy BOOL Auto Mo FALSE Dummy variable Esempio LD PTP114A200 LD_CPUModulelO CPUIO CPUModulelO Dummy Enabled Dido woo be DOOO Done Di0 Moo Ce DOO Fault Da00h00 DIOO Dod Moo Mnl151c080 Pag 135 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 12 12 Sysl2CWrRd writes reads on I2C exten
151. cco funzione ByteToBit lo stato degli 8 ingressi bassi Da Inp 0 a Inp 7 del modulo con indirizzo 0 appoggiato su di un array di BOOL Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData aysGetPhrD Auto Mo O FB SysGetPhrDI data 2 InpValue UDINT Auto Mo O 3 Digital input value 3 Dummy BOOL Auto Mo FALSE i Dummy variable 4 FBDone BOOL Auto Mo FALSE 7 FA done 5 FBFault BOOL Auto Mo FALSE F FB fault 6 BYteToBit ByteToBit Auto Ko 5 FB ByteToBbit t Loglnp BOOL Auto 0 7 aiD Di Logic inputs Esempio LD PTP119A000 LogicInputAcquisition FBD ata Sys Get Fhr Ol Dummy EH ENO FBDOone O Address Cone FEFault DIS LL 3 Made B teToBit ByteTo Bit Dummy EN ENO Loginp O TO_USINT In bo Loglnp 1 Inptalue bi Loglinp iz bz Laglnp 3 ba Loglnp 4 be Loginp S b5 Loglnp bE LogInp Mnl151c080 Pag 120 270 Programmazione IEC 61131 3 LogicLab 3 Heysf i Ne Type Library 7 12 3 SysSetPhrDO set peripheral digital output FB XTarget_11_0 Questo blocco funzione esegue impostazione delle uscite digitali sui moduli periferici indirizzati con SvsSetPhrDO Address ed in base al comando di Mode definito Address Done Per non perturbare la gestione delle uscite logiche eseguita dall immagine di processo in Maske __hjade Fault possibile definire su quali output si desidera operare In pratica l FB operer solo sugli output il cui
152. cit negli esempi IL e ST non vengono riportati tutti i bit Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData BitTobyte AUTO Mo O p FA Bitto byte data 2 WarQut WDINT Auto Mo Variable output Esempio LD PTP114A100 LD_BitToByte FED ata BitTo Byte SysF irstLloop fe __ _ _ EN ENO D 00 w n E b Out D 014 woo hi Did woo nn tt D 03 WOO c SS DiO4hMO0 WM _ Am mm Dis Woo cS Uff DOG OO e ll UU Ah Dio OO cS Esempio IL PTP114A100 IL_BitToByte LD Di00M00 ST FBData b0 Transfer digital input to input bit LD Di07M00 ST FBData b7 Transfer digital input to input bit CAL FBData Call the BitToByte function block LD FBData Out ST VarOut Transfer the result to variable Mnl151c080 Pag 47 270 Programmazione IEC 61131 3 LogicLab Esempio ST PTP114A100 ST_BitToByte FBData b0 D100M00 Transfer digital input to input bit FBData b D107 M00 Transfer digital input to input bit FBData Call the BitToByte function block VarOut FBData Out Transfer the result to variable Mnl151c080 5 Flee Pag 48 270 Programmazione IEC 61131 3 LogicLab 3 Fizat Library 7 4 4 ByteToBit Byte to bit conversion ePLCUtyLib_C000 Questo blocco funzione permette di convertire una variabile BYTE in 8 variabili BOOL BytaT
153. comunicazione e o per impostare modalit di stampa su stampanti necessita eseguire l output di caratteri ascii non stampabili cio caratteri con codici inferiori al 16 20 o superiori al 16 7F Per la definizione dei caratteri ascii stampabili basta includere tra apici singoli i caratteri Esempio abcd Per i caratteri non stampabili occorre anteporre al valore esadecimale del carattere il simbolo quindi per il carattere di lt STX gt 16 02 avremo la definizione 02 per lt ETX gt 03 e cos di seguito Ricordo che alcuni caratteri di controllo come il line feed codice 16 0A sia possibile definirli sia come 0A che come l Il carriage return codice 16 0D possibile definirlo sia come 0D che come r Riporto tabella esplicativa Sequenza Significato Esadecimale Esempio Carattere 16 24 paid 5 for this Apostrofo 16 27 Enter Y for YES Line feed 16 0A next I line Carriage return 16 0D Hello r New line 16 0DOA This is a line n New page 16 0C last line p first line Tabulazione 16 09 name tsize tdate 16 hh ABCD 41 42 43 44 Ecco un esempio di utilizzo della funzione SysVarfprintf per definire oltre ai caratteri stampabili anche i caratteri non stampabili ed inviarli verso lo stream di uscita In questo esempio viene inviato verso la porta seriale COMO la stringa Ciao seguita da carriage return e line feed
154. ction XTarget_08_0 Questa funzione legge la stringa String e ne interpreta il contenuto basandosi sul parametro SES Format ST String La stringa Format specifica il formato con il quale interpretare la variabile in VarType Format indicato il tipo di variabile ed in VarAdd il suo indirizzo a VarType La funzione ritorna TRUE se valore variabile trovato in caso contrario FALSE Var Add Parametri funzione String usint Pointer alla stringa da leggere Format strincisoy Ha due tipi di argomenti i caratteri ordinari che vengono controllati nella variabile String da leggere e le specifiche di conversione contraddistinte dal simbolo percentuale e da un carattere che specifica il formato con il quale stampare la variabile definita VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd upin Indirizzo variabile La funzione ritorna IPSE TRUE Valore variabile acquisito Codici di errore In caso di errore la funzione torna con FALSE e con SysGetLastError possibile rilevare il codice di errore 9999100 Tipo variabile non gestito controllare VarType Esempi E riportato un programma che esegue la lettura di una stringa InputString valorizzata con il testo Value 123 Su fronte attivazione ingresso Di00M00 sono eseguite tre diverse funzioni SysVarsscanf tutte sulla stringa InputString ma con diverse definizioni di Format Le prime due hanno esito positivo e le variabili Variable
155. dati su cui eseguire il calcolo del CRC Length usint Lunghezza array in bytes Result worp Valore CRC calcolato Esempi Viene eseguito il calcolo del CRC su di un array di dati Supponendo di avere un array di 8 bytes allocato in DB100 all indirizzo 16 che contiene i valori 16 04 16 3B 16 1B 16 00 16 00 16 00 16 00 16 00 il CRC calcolato sara 16 5AF0 Definizione variabili Name Type Address Array Init value Attribute Description 1 CRCValue WORD Auto No gt CRC calculated value BData BYTE Auta 0 7 E Byte data Esempio LD PTP114A620 ST_GetPolynomialCRC BData 0 16 04 BData 1 16 3B BData 2 16 1B BData 3 16 00 BData 4 16 00 BData 5 16 00 BData 6 16 00 BData 7 16 00 CRCValue GetPolynomialCRC ADR BData 8 Mnl151c080 Pag 164 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 13 18 DataStreamExch exchanges data between two I O streams Function ePLCUtyLib_C000 Questo blocco funzione esegue lo scambio data tra due stream di I O Definendo uno stream Tenera come socket TCP e l altro come seriale possibile realizzare un convertitore Ethernet Seriale on mape l Enable Enabled In FpA ed FpB occorre indicare il file pointer in uscita dalla funzione Sysfopen di apertura dello stream di I O Il FB riceve i dati da uno stream li bufferizza in un buffer di dimensione DBSizee dan oN n I Fp quando non riceve p
156. ddress Array Init value Attribute Description 1 Fp FILEP Auto Mo Port COMO file pointer 2 Ch INT Auto Mo O n Character read Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here execute the received characters echo IF Fp lt gt NULL THEN IF TO BOOL SysGetIChars Fp AND TO BOOL SysGetOSpace Fp THEN Ch Sysfgetc Fp Get input character Ch Sysfputc Ch Fp Put input character END IF END IF Mnl151c080 Pag 83 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 7 9 SysGetRxBSize get file Rx input buffer size Function XTarget_07_0 Questa funzione ritorna la dimensione del buffer di input Ricezione sul flusso dati stream SysGetRxESize indicato dal parametro File precedentemente aperto dalla funzione Sysfopen File Parametri funzione File Fier Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RIDE Dimensione buffer di input espressa in numero di caratteri Bytes Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9966100 Terminale di I O usato in task fast o slow 9966990 Non implementata nel simulatore Esempi E riportato un semplice programma che ritorna la dimensione del buffer di input Ricezione della porta seriale COM2 valore
157. de possibile selezionare le varie librerie e con il tasto UnLink rimuovere il link oppure con il tasto ReLink eseguire un link alla nuova posizione dove si trova la libreria Aprendo il progetto LogicLab controlla LogicLab 2 tutte le librerie importate e nel caso una o pi librerie sorgenti siano pi recenti Found new version of libraries delle versioni importate viene c programmilelsist iec61131suitellogiclab2pO librariesisfr053a 000 eplcstdlib pll uicualizzate h messaggio di avvertimento che chiede conferma se eseguire oppure no l aggiornamento delle librerie Eseguendo l aggiornamento tutti gli oggetti della libreria importata presenti nel proprio progetto vengono sovrascritti con gli oggetti presenti nella libreria sorgente ed eventuali nuovi oggetti sono automaticamente importati Do you wank to update them Mnl151c080 Pag 29 270 Programmazione IEC 61131 3 LogicLab 7 0 5 Importazione oggetti da libreria 5 Flee Per importare nel proprio programma oggetti dalle librerie occorre nel menu Debug Communication Scheme Variables selezionare la voce Project Import object from library Si aprira una finestra di browser del disco Scegliere la directory dove si trova la libreria e selezionare il file di libreria da cui si desidera importare gli oggetti Si aprir la finestra di Object browser che permetter UMES di visualizzare tutti gli oggetti presenti nella libreria Selezionando i
158. de qusinr Occorre specificare il modo di acquisizione analogica Analog to digital mode FilterCf REAL Valore del coefficiente di filtro acquisizione Nr FSReference reat Valore riferimento utilizzato per la taratura del fondo scala dello strain gauge Nr SGaugeFullScale rea Valore di fondo scala dello strain gauge Caratteristica dello strain gauge Nr SGaugeRatio ReaL Valore del rapporto mv V dello strain gauge Caratteristica dello strain gauge Nr OfsCalibration rea Indirizzo variabile di appoggio valore di calibrazione offset Deve essere RETAIN FSCalibration REAL Indirizzo variabile di appoggio valore di calibrazione fondo scala Deve essere RETAIN Enabled 8001 Blocco funzione abilitato Done 8001 Dato acquisito viene attivato al termine della acquisizione strain gauge Fault B001 Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Value REAL Ritorna il valore di acquisizione espresso nella unita utilizzata per definire FSReference e SGaugeFullScale Codici di errore In caso di errore viene attivato per un loop Fault e con SysGetLastError possibile rilevare il codice di errore 10045100 Valore di Mode acquisizione non corretto Mnl151c080 Pag 137 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Esempi Nell esempio viene acquisita una cella di carico con fondo scala da 20 Kg e 1 956 mv V La cella viene tarata con un peso di riferimento da 400 g
159. del modulo con indirizzo 0 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FeData SysSetPhrDo Auto Mo O s FB SysSetPhrD0O data 2 Qutralue LIDINT Auto Mo O n Digital output value 3 Dummy BOOL Auto Mo FALSE Li Dummy variable 4 FBDone BOOL AUTO Ma FALSE id FA done 5 FF ault BOOL Auto Mo FALSE A FE fault Esempio LD PTP116A400 LD_SysSetPhrDO FAL ata Sys Set PhrOoo Dummy EN ENO do Address Done DIS_LL gt Mode Fault Qutvalue gt Value 16 00000001 Max FADone FAF ault Esempio IL P7P116A400 IL_SysSetPhrDO Manage digital outputs Out 0 to Out 7 on module with address 0 LD 0 ST FBData Address LD DO 8 LL ST FBData Mode LD OutValue LD FBData Value LD 16 00000001 LD FBData Mask CAL FBData Esempio ST PTP116A400 ST_SysSetPhrDO Manage digital outputs Out 0 to Out 7 on module with address 0 FBData Address 0 FBData Mode DO 8 LL FBData Value OutValue Digital ouput value FBData Mask 16 00000001 Output mask FBData Execute FB Mnl151c080 Pag 122 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library FB XTarget_07_0 7 12 4 SysGetAninp get analog input Questo blocco funzione esegue l acquisizione dell ingresso analogico dal modulo di acquisizione Il blocco funzione gestisce vari modi di acquisizione in funzione del modulo analogico a cui fa riferimento Address D
160. di Mod c 20 D 01 OO ere 22222200 NW E Y ML cy a Outvalue Mnl151c080 Pag 40 270 Programmazione IEC 61131 3 LogicLab Esempio IL CAL EB CID Call the CID function block LD 10 ST FB CTD PY Preset value LD Di00MO1 ST FB CTD CD On the raising edge of digital input the counter count down LD D101M00 ST FB CTD LD TE the digital input is set the PV value is loaded LD FB CTD Q ST Do00M00 If the counter value is 0 the digital output is set LD FB_CTD CV ST OutValue The counter value is copied to the variable Esempio ST FB CIO PVi 10 7 Call the CID function block and preset counter FB_ FB_ CTD CD D100M00 On the raising edge of digital input the counter count down CTD LD D101M00 If the digital input is set the PV value is loaded Do00MUU EB CTD Q If the counter value is 0 the digital output is set OutValue FB_CTD CV The counter value is copied to the variable Mnl151c080 3A Pag 41 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 3 2 CTU Counter Up ePLCStdLib B000 Questo blocco funzione esegue la gestione di un counter in incremento Agendo sull ingresso di reset R possibile in qualsiasi momento azzerare il valore del counter CV Ad ogni fronte di attivazione dell ingresso CU il valore del counter CV viene incrementato Quando il valore del counter CV raggiunge il valore di
161. dice di errore 10031010 Valore di File non definito 10031020 FB protetta terminato tempo funzionamento in modo demo 10031050 Timeout esecuzione 10031060 Codice parametro errato 10031070 Errore case gestione 10031100 Errore CRC risposta da inverter Aurora Mnl151c080 Pag 213 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Esempi Viene eseguita la lettura del totale energia prodotta dall inverter con indirizzo 1 il valore ritornato trasferito nella variabile Value Di default la porta seriale v impostata a 19200 n 8 1 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF AUTO Mo 0 Terminal KO file pointer 2 SMode cetesMode AUTO Mo 0 FA set serial mode 3 Value DINT AUTO Mo 0 Value read from inveter 4 CEN AuroraC Energy Auto Mo 0 FB Aurora cumulated energy Esempio LD Systopen SysFirstLoop EN e SISS ICOM FHM ame ga Mode Shlode Set SMode Sis irstLoop a KN Fe gt Fe O BDTROfTime CEn Auroral Energy DIOOMOO Do00h00 re Enable Done Di0AMOO Dodd woo Pe _ AR Start Fault Fp_ gt File Value 1 Address Errors 5 Parameter Mnl151c080 Pag 214 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 21 Funzioni ed FB supporto log eLogLib Questa libreria rende disponibili una serie di funzioni e di blocchi funzione per la gestione di logs Gestione invio notifiche a server Syslog SYSLOG System Lo
162. dolo con la stringa definita in DID controlla se la sentenza ricevuta corretta Controllo sul CRC L uscita Done si attiva per un loop ad ogni ricezione di sentenza NMEA corretta L FB ritorna un NMEAID che deve essere passato alle FB collegate FB di gestione sentenze NMEA L uscita RxString riportano la stringa ricevuta dal dispositivo in questo modo possibile visualizzare in debug la comunicazione con il dispositivo permettendo di visualizzare eventuali errori Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen DID string Stringa di definizione prefisso dispositivo Done 6001 Attivo per un loop di programma su ricezione sentenza corretta Fault B001 Attivo per un loop di programma se errore gestione NMEAID unin ID interfaccia con sistema NMEA da passare alle FB collegate RxString stRING 82 Contiene la stringa ricevuta dal dispositivo puo essere utilizzato in debug per verificare le sentenze ricevute Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10017010 Valore di File non definito 10017020 FB protetta terminato tempo funzionamento in modo demo 10017050 Timeout esecuzione 10017070 Errore case gestione 10017100 4 Errore ricezione sentenza NMEA Mnl151c080 Pag 205 270 Programmazione IEC 61131 3 LogicLab 3 Hey Type Library 7 19 2 GLL Sentence Geogr
163. due messaggi Ge Library sources LogicLab R 04159 013 Sfr070 Sfr070a100 ibrary sources Library sources ppjs Re ok File Edit View Project On line Debug Window Tools Developer Help SB ERS Ad i Se I Se Hit A PER LO dia ic a A CILE Resources m x Fal Resources Gi Configuration Mi Netlog III Mps051 XTarget 0 message HMIs Si MHM aE M 0 M1RYar lt 1 gt Message H E Mas Messaggio 2 ID Row 1 Ki 1RVar 1 M 1 RVar 000 Row 2 Var a2 Ivar OO00 Access level Use lt n gt expression to refer to one of the following variables Ex Show variable lt 3 gt Get all access levels to false to reach message only forcing its ID Delete Var PLG Variable Format MumOectStrl Mar 100 200 4 ed Project lt Definitions fa Resources i III Ready DT MODE JONNE Come si vede ad ogni messaggio associato del testo ed eventuali variabili da visualizzare Nel messaggio possono essere visualizzate tutte le variabili globali Nella compilazione del progetto LogicLab crea ed istanzia per ogni HMI un blocco funzione di tipo HM IBuiltlnMessages con il nome assegnato all HMI nell esempio soprariportato MyHMI Questo FB provvede alla gestione dei messaggi e delle variabili ma per la visualizzazione occorre collegare al FB una FB di gestione terminale Mnl151c080 Pag 229 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 23 1 HMIBuiltinMessages HMI built in mes
164. e Address Array Initvalue Attribute 000 Description I i Fp FILEP Auto No D File pointer 2 MMDD UDINT Auto No 0 Multimaster data transfer ID 3 Client DataTxferClient Auto No 0 Data transfer client 4 Server MMasterDataTxfer Auto No 0 a Multimaster data transfer 5 Dummy BOOL Auto No FALSE A Dummy variable 6 PeerOk BOOL Auto No FALSE si Peer system is Ok 7 RxData BOOL Auto 0 7 8 0 Rx data from peer 8 TxData BOOL Auto 0 7 8 0 Tx data to peer Esempio LD SvsFirstLoop Sener oa P Max MMDD MM dg Mnl151c080 Pag 227 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 22 3 BroadcastDataSend broadcast data send FB eMMasterDTxferLib_C000 Questo blocco funzione esegue l invio di dati in modo broadcast Si collega al blocco funzione BroadcastData Send MMasterDataTxfer di gestione dispositivo di comunicazione occorre passare MMDtTxflD in Enable Dione uscita dal blocco funzione server MMDtTxflD Fault Il blocco funzione invia i dati presenti nel buffer puntato da TxData con indirizzo di broadcast TxData TxFrames 16 FF Tutti i sistemi che eseguono la FB DataTxferClient che hanno ToNode uguale al _ plen valore di Node definito nella MMasterDataTxfer riceveranno i dati inviati In TxData occorre definire l indirizzo del buffer ed in DLen la dimensione in bytes del buffer dati che si vuole scambiare con i sistemi peer Ad ogni attivazione d
165. e 10 di un numero Result LOG 10 0 Result is 1 0 ANY_REAL EXP ANY_REAL Calcola numero elevato e 2 71828 Result EXP 1 0 Result is 2 71828 ANY_REAL SIN ANY_REAL Calcola il seno di un angolo in radianti Result SIN 1 57 Angle is 90 Result is 1 0 ANY_REAL COS ANY_REAL Calcola il coseno di un angolo in radianti Result COS 3 1416 Angle is 180 Result is 1 0 ANY_REAL TAN ANY_REAL Calcola la tangente di un angolo in radianti Result TAN 0 7854 Angle is 45 Result is 1 0 ANY_REAL ASIN ANY_REAL Calcola l arcoseno di un angolo in radianti Result ASIN 1 0 Result is 1 5708 ANY_REAL ACOS ANY_REAL Calcola l arcocoseno di un angolo in radianti Result ACOS 1 0 Result is 3 14159 ANY_REAL ATAN ANY_REAL Calcola l arcotangente di un angolo in radianti Result ATAN 1 0 Result is 3 14159 ANY_NUM ADD ANY_NUM ANY_NUM Esegue somma tra due numeri Resultr ADD 1 0 2 0 Result as 3 0 ANY_NUM MUL ANY_NUM ANY_NUM Esegue moltiplicazione tra due numeri Result MUL 1 0 2 0 Result is 2 0 ANY_NUM SUB ANY_NUM ANY_NUM Esegue sottrazione tra due numeri Result SUB 2 0 1 0 Result is 1 0 Pag 24 270 Programmazione IEC 61131 3 LogicLab 3 Faszt DIV ANY_NUM DIV ANY_NUM ANY_NUM Esegue divisione tra due numeri Result DIV 2 0 1 0 Result is 2 0 Considerazione a parte v fatta
166. e funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min Viene utilizzata Start Fault la funzione GetPolynomialCRC per il calcolo del CRC dei frame dati da e verso l inverter File value La connessione con gli inverters in RS485 multidrop occorre definire in Address l indirizzo 49 Stee dell inverter con cui si vuole dialogare In Measure occorre indicare il codice della misura da Measure leggere Vedi codici misura Attivando l ingresso Start viene eseguita la lettura della misura indicata terminata la lettura viene attivata per un loop l uscita Done in caso di errore esecuzione viene attivata per un loop l uscita Fault ed incrementato il valore in Errors Enable 8001 Comando di abilitazione blocco funzione Start 8001 Comando di esecuzione lettura misura File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Address usint Indirizzo inverter Range da 0 a 255 Measure sint Tipo misura da effettuare su inverter Vedi codici misura Done 6001 Attivo per un loop al termine della esecuzione del comando Fault B001 Attivo per un loop su errore esecuzione del comando Value REAL Valore misura acquisito da inverter E nella relativa unit di misura Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Codici misura Nella variabile Measure occorre definire il codice della misura da effettuare dall inverter secondo la tab
167. e IEC 61131 3 LogicLab 3 Faszt 7 4 Funzioni ed FB per conversione dati Type Library 7 4 1 VBitTest Variable bit test Function ePLCUtyLib_C000 Questa funzione esegue il test di un bit in una variabile Bitte a Variable Bit Parametri funzione Variable dont Variabile in cui testare il bit Bit sint Numero del bit da testare Range da 0 a 31 La funzione ritorna P Stato bit indicato Esempi Lo stato del bit 4 della variabile VarInp viene trasferito sull uscita digitale DoOOMOO Definizione variabili Mame Type Address Array Init value Attribute Description 1 Dummy BOOL Auto Mo FALSE 5 Dummy variable 2 Varlnp UDINT AUTO HO O Variable input Esempio LD VBitTest EN ENO SARE Tenn Variable Bit pus ji Dott Mid Esempio IL LD VarInp Variable input VBitTest 4 Variable bit test ST Do00M00 Transfer bit status to digital output Esempio ST Do00M00 VBitTest VarInp 4 Variable bit test Mnl151c080 Pag 45 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 4 2 VBitSet Variable bit set Function ePLCUtyLib C000 Questa funzione esegue il set di un bit in una variabile TERI a Value Variable a Bit Parametri funzione Value Bool Valore bit da settare Variable upint Variabile in cui settare il bit Bit sint Numero del bit da settare Range da 0 a 31 La funzione ritorna AI Valore variabile dopo il
168. e VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarQut DNORO AUTO NO 0 Output variable Esempio LD ROL 6 122345678 i varOut Emi Esempio IL LD 164102345678 ROL 16 ST Var0out Output Variable Esempio ST VarOut R0L 16 12345678 16 Output variable 10 2 Swap variabile WORD Ecco come utilizzare la funzione ROL per eseguire lo swap su variabile WORD Nell esempio Il valore 16 1234 viene trasformato nel valore 16 3412 e trasferito nella variabile VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarQui WORD Auto Mo g A Qutput variable Esempio LD ROL EN 1681234 i EE Esempio IL LD 16 1234 ROL 8 ST VarOut Output variable Esempio ST VarOut ROL 16 1234 8 Output variable Mnl151c080 Pag 250 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 10 3 Swap variabile BYTE Ecco come utilizzare la funzione ROL per eseguire lo swap su variabile BYTE Nell esempio Il valore 16 12 viene trasformato nel valore 16 21 e trasferito nella variabile VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 WarQut BYTE Auto Mo O 2 Output variable Esempio LD Esempio IL LD 16 12 ROL 4 ST VarOut Output variable Esempio ST VarOut ROL 16 12 4 Output variable Pag 251 270 Mnl151c080 Programmazione IEC 61131 3 LogicLa
169. e echo caracters ABf SysSetSerialMode ADR Sm Mdm File Modem parameters Please change them according your requirements Mdm AutoHangUp TRUE Auto hangup Mdm APN ADR M2Mbis vodafone it APN definition Mdm DNS ADR 8 8 8 8 DNS definition HTTP parameters Please change them according your requirements HTTP Server ADR www MyServer com HTTP server HTTP Port 80 HTTP port HTTP Page ADR eMailSend php Page name HTTP TimeOut 5000 Connection timeout mS HTTP GETPars ADR TxD GET parameters pointer HTTP RxBuffer ADR RxD Rx buffer pointer HTTP RxSpace SIZEOF RxD Rx buffer space END_IF _l _r P 0 _1r _ _ _ _ _ _S _ i _ _ z 51 K FBs MANAGEMENT E E E EN E E EEE E a E LE E EEN EN E E EEN EEN E EE EE EE EEN E EE ee E EE N EEN EN E E a EN EEEE EE ee ae EEA x Mnl151c080 Pag 180 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Mdm Enable TRUE Modem core management HTTP ModemID Mdm ModemID Modem ID Manage the HTTP connection HTTP HTTP Send FALSE x a a ee a GGG K GET THE HTTP PAGE AND SEND TH
170. e presente nella directory Se file presente si attiva per un loop Ok se si tratta di una sottodirectory si attiva per un loop Dir Definizione variabili Mame Type Address Array Init value Attribute Description 1 Dir BOOL Auto Mo FALSE Ni Is a directory 2 OK BOOL Auto Mo FALSE P File found on Next command 3 File STRING Auto 16 7 File name 4 DLI SysDirListing Auto HO x FA directory listing Esempio LD DLA SysDirListing Di0 NIDO Pm frit Found bind Mog Next Fault Storage PathMame IsDir Size Time FileName Mnl151c080 Pag 96 270 5 Flee Programmazione IEC 61131 3 LogicLab 7 9 Funzioni ed FB per gestione porta seriale sistemi SlimLine dispongono di piu porte seriali in base alla versione del prodotto Le porte seriali vengono identificate con un nome del tipo COMx dove al posto della x vi il numero di porta seriale Per la corrispondenza tra il numero di porta ed il connettore fisico ad essa connesso si rimanda al manuale hardware del prodotto Mnl151c080 Pag 97 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 9 1 SysGetSerialMode get serial mode Questa funzione ritorna il modo di comunicazione impostato sulla porta seriale connessa SecarssfiziMoge al parametro File precedentemente aperto dalla funzione Sysfopen Ta Nel parametro Mode occorre definire l indirizzo della struttura SYSSERIALMODE in cui File dovr essere tra
171. e rename iii 92 7 8 3 Sysfilelength file Iengh i 93 PO SOY SIS Og MLS SC coset teas ilo di oa 94 120 9 SYSDIMEISHNG directory ISIN GLi ine 95 7 9 Funzioni ed FB per gestione porta seriale cece eeeeeeeseeeeeeeseeeseeseeeseeesseeseeeeeeseeeeeeeseeseeaeegeeeeseeaes 97 7 9 1 SysGetSerialMode get serial MOde e 98 7 9 2 SysSetSerialMode set serial Mode 100 7 9 3 SetSMode Set serial mode rnrn rnrn nren nrn A EAEE PA PARAR EEEE PAPERA RE EERE E REAREA RAEren nnn 101 7 9 4 SysGetSerialCTS get serial CTS signal StatuSs 103 7 9 5 SysSetSerialDTR set DTR Signal StatUS e 104 7 10 Funzioni ed FB per gestione CAN DUS iii 105 7 10 1 SysCANSetMode set the CAN controller Mode 106 7 10 2 SysISCANRxTxAv checks if CAN Rx or Tx is available e 107 7 10 3 SysSCANRxMsg receives a CAN message e 108 7 10 4 SysCANTXMsg transmit a CAN message rreren 109 7 11 Funzioni ed FB per gestione stringhe ii 110 ill OLS UMC SONIC iaia ad ida 110 i 2 CFIND Sidia aiar 111 7 11 3 MemSet memory Set iii 112 1 11 4 MemCopy memory CODY cnr 113 7 11 5 SysVarsnprintf variable print tO Strin e 114 7 11 6 SysVarsscanf extrac
172. ecenti oy Raccolte Documenti Immagini Ecco come si presenta la visualizzazione del file system alla connessione Le cartelle Project e System sono riservate al sistema e si consiglia di non modificarne il contenuto file delle pagine utente possono essere trasferiti nelle cartelle Storage e SDCard Se presente E IR tt a GO gt Internet 192 168 0 162 5 Organizza Project SDCard Cartella di file LL Cartella di file Storage System Cartella di file Cartella di file Quindi l utente pu creare le sue pagine web utilizzando un qualsiasi editor html ma anche semplicemente usando un semplice editor di testo come il blocco note certo deve conoscere la sintassi del linguaggio html Le pagine create saranno trasferite nella directory desiderata ed accedendo da un normale browser alla pagina la pagina sar visualizzata Mnl151c080 Pag 238 270 Programmazione IEC 61131 3 LogicLab 3 Eleaf 9 1 Criteri per realizzazione pagina Naturalmente il web server integrato nello SlimLine ha solo un ridotto set di funzioni e quindi nella creazione delle pagine web occorre sottostare a certe regole vediamole a La pagina non pu contenere inclusione di altre pagine Esempio pagine di stile o di scripts b La pagina non pu contenere inclusione di immagini Esempio file gif o jpg eventuali immagini possono essere embedded nella pagina stessa Vediamo ad esempio una semplice pagi
173. ecsussta paria rai ER arara Eaa aa Eisi 33 Mnl151c080 Pag 1 270 Programmazione IEC 61131 3 LogicLab 3 Heysf TAN R TRIG Raising edge WIG OP esir airinn e EER A e agi 34 eV Rs FRSC UG EMMI MOD oep a nzeeesseeut sacd E T aut pateactanceae EE EE S 35 TiN OR OC WIR SOE IN psc ioni 36 7 2 Funzioni ed FB per gestione tiMers ii 37 E27 SSO TINE OOM i E E A E EE EAEE EARO 37 Pa OI TIMO O ee iaia oi 38 ke oee 15 PON SS e O AAEE 39 7 3 Funzioni ed FB per gestione COUNtErs iii 40 Fole OY De Ge 0 ear DON 0 urca 40 E LLIN EoI a e E eil at E E SE TT 42 ESOS CTUD COUREFUD DOW cia 43 7 4 Funzioni ed FB per conversione daltl iii 45 7 4 1 VBitTest Variable Dit teSt ece cc ee eee eeeeeseeeeeeeeseeaeaeseeeeaeeeseeeeaeaeeeeeeauaeseeeeeaeseseeeeaeneeeeeneaeeeeneenenenes 45 7 4 2 VBitSet Variable bit Set cece ccecc eee eeeeeeeeseeeeseeaeseeaeeseneeeeaeseeaeeeeaeseeaeneeaeneeaeseegeseseeeeeeeeeneneneneataeaees 46 T 4 3 BitloByte BIVIO DVIS CONVESSO i civ cirie ioni Tea eA EEE 47 7 4 4 ByteToBit Byte to Dit CONVEFSION iii 49 7 4 5 ByteToWord Byte to word CONVELSSION ccccccceeeeceeeeceeeeseeeeseeeeeeeeceeeeseeeeseeeesseeesueeseneeseeeeseeeeseeseeseeseeeeeaes 50 7 4 6 WordToByte Word to byte CONversion ie 51 7 4 7 DoubleToWord Double to Word CONVESSION 0ccccececeecececeeeeceeee
174. ed al suo numero di matricola La formula per il calcolo dell UniquelD la seguente UniquelD 131072 PType Serial number Ad esempio un MPS050A030 con matricola 125 avr UniquelD 1310845 Ecco la tabella Ptype PType Code Description 0000 MPS046A000 SlimLine Lite version 0001 MPS046A100 SlimLine Rs485 version 0002 MPS046A200 SlimLine CAN version 0003 MPS048A100 SlimLine ARM9 RS485 Linux Open 0004 MPS048A200 SlimLine ARM9 CAN Linux Open 0005 MPS049A100 SlimLine ARM9 RS485 Linux PLC 0006 MPS049A200 SlimLine ARM9 CAN Linux PLC 0007 MPS050A000 SlimLine Low Cost ARMY Vers Lite 0008 MPS050A010 SlimLine Low Cost ARMY Vers Base 0009 MPS050A020 SlimLine Low Cost ARM Vers Full RS485 0010 MPS050A030 SlimLine Low Cost ARM7 Vers Full CAN 0011 PCB123B000 SlimLine OEM Lite version 0012 PCB123B100 SlimLine OEM Rs485 version 0013 PCB123B200 SlimLine OEM CAN version 0014 MPS046B000 SlimLine Lite version 0015 MPS046B100 SlimLine Rs485 version 0016 MPS046B200 SlimLine CAN version 0017 PCB123D000 SlimLine OEM Lite version 0018 PCB123D100 SlimLine OEM Rs485 version 0019 PCB123D200 SlimLine OEM CAN version 0020 PCB131A000 SlimLine ARM7 Compact Relay CPU Board Lite vers 0021 PCB131A010 SlimLine ARM7 Compact Relay CPU Board Base vers 0022 PCB131A020 SlimLine ARM7 Compact Relay CPU Board Full
175. eeaeseceeeeaeeeseeneavaeneeatanaeees 19 5 6 CAN bit rate definition definizioni bit rate CAN cee eceeceececeeceeeeeeeeeeeseeeeseeaeeaeaeeaeeeseseseeaeeeeaeeeeaeeeeneneees 19 5 7 Digital input mode definizioni modo acquisizione ingressi digitali 20 5 8 Digital output mode definizioni modo gestione uscite digitali 20 5 9 Analog to digital mode definizioni modo acquisizione ingressi analogicCi 21 5 10 Digital to analog mode definizioni modo gestione uscite analogiche 22 5 11 Spy mode definizioni modo spionaggio dati e 22 Ge Funzioni deinite da LogiGlab rccllaa aa an aE a EEE a aa eaa eera 23 6 1 Funzioni matematiche e trigonometriche iii 24 6 2 FURZIOM SHINGO AAA E E E 26 FUNZIONIeO FB 27 a D a Ole TA I A E A E T N A A E ANE NAE E A E E A T T se 27 s FUNCION BIOCKS no allea 27 1 0 1 Funzioni SG ICID C OCG ss sicilia eni 27 Fe DON e en RN 28 F AO OO aar a 28 1 0 A DOM aZ1 one MORO VA Aeniiaie ETEA EEE nei I 29 7 0 5 Importazione oggetti da libreria eee 30 7 0 6 Considerazioni su link a libreria e su import oggetti 31 7 0 7 Protezione funzioni e blocchi fuNZIONE i 32 7 1 Funzioni ed FB per gestione Flip FIOp 33 LiT F_ TRIG Falling COGS WIC OOM evvecnasceeacre
176. eeeececeeeeaeseceeeeaeseeeeeeeeeeeeeaeaetesenaeaeeenenenters 52 7 4 8 WordToDouble Word to double CONVEFSION i 53 7 4 9 ToLower Uppercase to lowercase letter CONVEFSION 54 7 4 10 ToUpper Lowercase to uppercase letter CONvErsion cece eeeeeeeseeeseeeseeeseeeseeeseeeeeeeeaeeaeegeeeeaeees 55 7 4 11 LEArrayToVar Little endian array to variable CONVEFSION 56 7 4 12 BEArrayToVar Big endian array to variable CONVETFSION 57 7 4 13 VarToLEArray variable to little endian array CONVEFSION 58 7 4 14 VarToBEArray variable to big endian array CONVErSION 59 7 5 Funzioni ed FB di utilit SISteMA ii 60 7 5 1 SysGetSysTime get system tiMe i 60 7 5 2 SysSetTaskLpTime set task loop tiMe ii 62 7 5 3 SysGetRandom get random number e 63 7 5 4 SysGetLastError get IASCGITOr ciiiiiiiiiii iii ii iii 64 7 5 5 SysPCodeAccept accepts the protection code i 65 79 06 SYSGCICIC Gel CRC VANUG ivi cicceiccxvccisdesreevassatdatiuanodandcebsstdeandetesav eunactbnevslessnededostecsaerestabdsindatdvdvessenananedates 66 12027 SYSMAIIOG memory allocates nia e iano 67 7 5 8 SysSpyData system spy datta cccccccccssccccsececcseecceeececsueecceeeesueecsegeceseueessegeecsseeessueeessueeeseeseeeseeseeegeees 68 7 6 Funzi
177. efinizione variabili Name Type Address Array Init value Attribute Description 1 FBData aysSetAnQut Auto Mo 0 x FA SysSetAnAout data 2 Dummy BOOL Auto Mo FALSE a Dummy variable 3 AnaQut REAL Auto Mo 0 A Analog value Volts Esempio LD PTP116A100 LD_SysSetAnOut FBD ata Sys Set n Out Dummy EN ENO D odi RADO Oo Address Done Dold woo 0 Channel Fault DA _VOLT_O_ 10 zi ode Analut gt alue Esempio IL PTP116A100 IL_SysSetAnOut Manage analog output 0 on module 0 LD 0 ST FBData Address Set module address LD 0 ST FBData Channel Set channel LD DA VOLT 0 10 ST FBData Mode Set management mode LD AnaOut ST FBData Value Store the output value CAL FBData Call the SysSetAnOut function block LD FBData Done ST Do00M00 The output is active if data is set LD FBData Fault ST Do01M00 The output is active if execution fault Esempio ST PTP116A100 ST_SysSetAnOut Manage analog output 0 on module 0 FBData Value AnaOut Store the ouput value FBData Address 0 Channel 0 Mode DA VOLT 0 10 Call the SyssetAnOut function block Do00M00 FBData Done The output is active if data is set Do01M00 FBData Fault The output is active 1f execution fault Mnl151c080 Pag 126 270 Programmazione IEC 61131 3 LogicLab Library XTarget_07_0 7 12 6 SysGetCounter get counter Questo blocco f
178. eggi Attivando l ingresso Enable e definendo il numero di lampeggi in BlinkNr l uscita OutBit SAGRE inizia a lampeggiare con il numero di lampeggi definito Enable OutBit Il numero di lampeggi definito in decine ed unit il valore delle decine riportato con un lampeggio aii lento 1 Sec mentre il numero delle unit riportato con un lampeggio veloce 250 mS Una pausa di 3 Sec separa le sequenze di lampeggio Enable 8001 Abilitazione blocco funzione attivandolo viene gestita l uscita OutBit lampeggiante Disattivandolo l uscita viene resettata BlinkNr usn Definisce il numero di lampeggi dell uscita OutBit Definendo tempo 0 l uscita si disattiva OutBit 001 Stato uscita lampeggiante Esempi Attivando l ingresso digitale DiI00M00 l uscita digitale D0o00M00 lampeggia con 2 lampeggi lenti 1 Sec 3 lampeggi veloci 250 mS ed una pausa di 3 Sec Disattivando l ingresso digitale Di0OMO0 l uscita digitale DoOOMOO si azzera immediatamente Definizione variabili Mame Type Address Array Init value Attribute Description 1 FHData Blinkvalue Auto NO 0 E FA BlinkYalue data Esempio LD PTP14A100 LD_BlinkValue FBD ata Blink value DOO Moo Doti Moo rr Ena le OutBit 23 BlinkNr Esempio IL PTP14A100 IL_BlinkValue CAL FBData Call the BlinkValue function block LD Di00M00 ST FBData Enable Transfer the digital input to enable input LD 23 ST FBData BlinkNr Set the number of blink
179. el server HTTP Port uT Porta su cui effettuare la connessione Page usint Pointer alla stringa di definizione pagina richiesta GETPars usint Pointer alla stringa parametri GET da inserire nella richiesta Max 512 caratteri RxBuffer usint Pointer al buffer di ricezione pagina richiesta Max 360 caratteri RXSpace int Dimensione in bytes del buffer di ricezione pagina TimeOut unt Tempo massimo attesa ricezione pagina mS Done 6001 Attivo per un loop al termine della ricezione pagina Fault B001 Attivo per un loop se errore ricezione pagina Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10042010 ModemiD non definito 10042020 ModemiD non corretto 10042080 Errore case gestione 10042100 8 Errore gestione richiesta pagina da server HTTP 10042200 Stringa GET parametri troppo lunga Mnl151c080 Pag 179 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Esempi L utilizzo tipico di questa FB di collegarsi ad un server HTTP dove sono eseguite pagine script ASP PHP Phyton ecc richiedendo la pagina fornendo in linea alla chiamata dei parametri in GET Lo script della pagina potr eseguire operazioni con i dati passati in linea e ritornare dei valori come risultato Ecco un semplice esempio che tramite una pagina script PHP sul server permette di inviare una Email Definizione variabili Mame Type Address Array Init value
180. ell array LEArray 1 2 3 4 viene convertito nella variabile Variable eseguita la conversione la variabile avr il valore 16 01020304 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Variable DWORD Auto Mo RI n Variable 2 LEArray SINT AUTO 0 3 1 2 3 4 n Little endian array Esempio LD LEArrayTo War AOR DWORD TYPE gt a Destination Variable I Source LE Array _ Mnl151c080 Pag 56 270 Programmazione IEC 61131 3 LogicLab Type 5 Fle Library 7 4 12 BEArrayToVar Big endian array to variable conversion un uncton Questa funzione acquisisce il valore da un array big endian LSB MSB Source e lo trasferisce nella variabile di destinazione Destination in base al tipo Type di variabile definito Parametri funzione ePLCUtyLib_C000 BESrrayTo Nar lyfe a Destination SOUrce Type sint Destination usint Source usint Tipo di variabile destinazione come definito nella tabella Variable types definition Indirizzo variabile di destinazione Indirizzo array sorgente La funzione ritorna BOOL FALSE Errore tipo dati TRUE Conversione eseguita Esempi Il valore presente nell array BEArray 4 3 2 1 viene convertito nella variabile Variable eseguita la conversione la variabile avr il valore 16 01020304 Definizione variabili Mame Type Address Array Init value Attribute 1 Variable DWORD A
181. ell ingresso Enable viene eseguito l invio dei dati in broadcast terminato l invio si attiva l uscita Done che rimane attiva sino alla disattivazione dell ingresso Enable Per effettuare una nuova trasmissione occorre disattivare e poi riattivare l ingresso Enable Enable B001 Comando di abilitazione blocco funzione MMDtTxflD UDINT ID server multimaster in uscita dalla FB server MmasterDataTxfer TxData USINT Puntatore al buffer dove sono presenti i dati da trasmettere DLen unnt Numero di bytes scambiati Max 32 Done 8001 Attivo al termine dell invio dei dati rimane attivo fino alla disabilitazione di Enable Fault B001 Attivo per un loop su errore esecuzione TxFrames upinr Counter frame dati trasmessi Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10044010 MMDtTxfID non definito 10044020 MMDtTxfID non corretto 10044050 Valore DLen errato Mnl151c080 Pag 228 270 Programmazione IEC 61131 3 LogicLab 7 23 Libreria gestione interfaccia operatore eHMIBuiltInLib Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie Questa libreria permette di gestire l interfaccia operatore direttamente da LogicLab Nel men Resources possibile configurare le interfacce operatore Come si vede nella figura stata definita una interfaccia MyHMI che prevede
182. ella Codice Descrizione Grid Voltage For three phases systems is the mean Grid Current For three phases systems is the mean Grid Power For three phases systems is the mean Frequency For three phases systems is the mean Vbulk For Inverter with more Bulk is the sum Ileak Dc Dc lleak Inverter Inverter Temperature Booster Temperature Input 1 Voltage Input Voltage for single channel module Input 1 Current Input Current for single channel module Input 2 Voltage Input Voltage for single channel module Input 2 Current Input Current for single channel module Grid Voltage Dc Dc Grid Frequency Dc Dc Mnl151c080 Pag 210 270 Codice Programmazione IEC 61131 3 LogicLab Descrizione 30 Isolation Resistance Riso 31 Vbulk Dc Dc 32 Average Grid Voltage VgridAvg 33 VbulkMid 34 Power Peak 35 Power Peak Today 36 Grid Voltage neutral 3 Wind Generator Frequency 38 Grid Voltage neutral phase 39 Grid Current phase r 40 Grid Current phase s 41 Grid Current phase t 42 Frequency phase r 43 Frequency phase s 44 Frequency phase t 45 Vbulk 46 Vbulk 47 Supervisor Temperature 48 Alim Temperature 49 Heat Sink Temperature 61 Grid Voltage phase r 6
183. emLib_E000 Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie Le funzioni ed i blocchi funzione per la gestione del modem utilizzano un modem GSM connesso ad un terminale di I O del sistema Tipicamente utilizzata una porta seriale Nel modem deve essere inserita una tessera SIM non protetta dal codice PIN Nella descrizioni successive si fa riferimento alle seguenti definizioni generali Numero di telefono Il numero di telefono consiste in una stringa lunga da 10 a 16 caratteri numerici conforme al seguente formato Prefisso internazionale senza lo zero davanti es 39 per Italia 49 per Germania 44 per Gran Bretagna ecc Codice dell operatore mobile es 338 320 347 ecc Numero di telefono es 7589951 Esempio 393337589951 3933812345 49172123456 Messaggio SMS Un messaggio SMS pu essere lungo fino a 160 caratteri alfanumerici facenti parte del seguente set A Z a Z 0 9 Spazio bianco sono da evitare tutti gli altri caratteri Mnl151c080 Pag 170 270 Programmazione IEC 61131 3 LogicLab 7 15 1 ModemCore_v3 modem core management Questo blocco funzione gestisce un modem connesso al dispositivo di I O definito in File questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E comunque possibile utilizzarlo Fnable liberamente i
184. ento di stop Il tempo calcolato salvato nella variabile DelayTime Definizione variabili Mame Type Address Array Init value Attribute Description 1 StartTime UDINT Auto Mo O x Start time us 2 DelayTime DIMT Auto Mo Delay time u5 Esempio LD PTP119A000 Sys Get Sys Ti me DICO MOO SA ae ee TRUE a StartTime Sys Get Sys Ti me Dio1 Mo EN ENO e TRUE FR DelayTime StantTime a Mnl151c080 Pag 61 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 5 2 SysSetTaskLpTime set task loop time Questa funzione permette di impostare il tempo di esecuzione delle tasks PLC Esistono due tasks eseguite a tempo la task slow ID TASK_SLOW e la task fast ID _TASK_FAST ad ognuna di queste task pu essere assegnato un tempo di Ta li esecuzione Time SysSetTaskLpTime Se il tempo impostato non compreso nel range definito o se il rapporto tra i tempi di esecuzione della task fast rispetto alla slow non sono coerenti la funzione non modifica i tempi di esecuzione e ritorna FALSE Di seguito sono riportati i range di tempo definibili per le varie tasks ID_TASK_FAST Range da 100 uS a 10 mS ID_TASK_SLOW Range da 1 a 100 mS Parametri funzione TaskID qusinty Identifica la task a cui si vuole definire il tempo di esecuzione secondo le definizioni in Task ID Time DINT Indica il valore di tempo di esecuzione task espresso in US La funzione ritorna SOOL
185. era su disattivazione ingresso IN espresso in mS Esempi Su attivazione dell ingresso digitale Di00M00 dopo 1 S 1000 mS viene attivata l uscita digitale D000MO00 Disattivando l ingresso digitale Di00MO00 l uscita digitale DOo00MO0 si disattiva immediatamente Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBeTON eTON AUTO No O si e TON Timer On function block Outvalue UDINT Auto No O n Qutput value Esempio LD PTP1154100 eTON_LD FBETON eTON piooMoo DODO Mod Pp mmm ty Q 1000 f FT OutValue Esempio IL CAL FBeTON Call the eTON function block LD Di0QOMOO ST FBeTON IN Transfer the digital input to timer input LD 1000 ST FBeTON PT Set the delay time LD FBeTON Q ST Do00M00 When time is passed the digital output is set LD FBeTON ET ST OutValue The counting time is copied to variable Esempio ST FBeTON PT 1000 Call the eTON function block FBeTON IN D100M00 Transfer the digital input to timer input OutValue FBeTON ET The counting time is copied to variable Do00M00 F eTON Q When time is passed the digital output is set Mnl151c080 Pag 38 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 2 3 eTP Timer pulse ePLCStdLib_B000 Questo blocco funzione esegue la temporizzazione su impulso di attivazione attivando l ingresso IN l uscita Q si attiva in uscita ET ritornat
186. ersione a bit del valore in accumulatore ADD Tutti meno BOOL Somma tra accumulatore e valore operando risultato in accumulatore SUB Tutti meno BOOL Sottrazione tra accumulatore e valore operando risultato in accumulatore MUL Tutti meno BOOL Moltiplicazione tra accumulatore e valore operando risultato in accumulatore DIV Tutti meno BOOL Divisione tra accumulatore e valore operando risultato in accumulatore MOD Tutti meno BOOL Ritorna il modulo della divisione nell accumulatore GT Tutti meno BOOL Controlla se accumulatore gt operando risultato BOOL in accumulatore GE Tutti meno BOOL Controlla se accumulatore gt operando risultato BOOL in accumulatore EQ Tutti meno BOOL Controlla se accumulatore operando risultato BOOL in accumulatore NE Tutti meno BOOL Controlla se accumulatore lt gt operando risultato BOOL in accumulatore LE Tutti meno BOOL Controlla se accumulatore lt operando risultato BOOL in accumulatore LT Tutti meno BOOL Controlla se accumulatore lt operando risultato BOOL in accumulatore JMP Etichetta Salta incondizionatamente su etichetta JMPC Etichetta Salta su etichetta se accumulatore diverso da zero JMPCN Etichetta Salta su etichetta se accumulatore uguale a zero CAL FB Esegue incondizionatamente il blocco funzione CALC FB Esegue blocco funzione se accumulatore diverso da zero CALCN FB Esegue blocco funzione se accumulatore uguale a zero RET Ritorna incondizionatamente al programma che ha eseguit
187. esecuzione del comando Codici di errore In caso di errore si attiva l uscita Fault e con SysGetLastError possibile rilevare il codice di errore 10036070 Errore case gestione 10036100 FB usata in task fast o slow 10036200 Errore apertura file su comando di lettura 10036210 Errore posizionamento file su comando di lettura 10036220 Errore lettura da file su comando di lettura 10036230 Errore chiusura file su comando di lettura 10036240 4 Errore dati presenti su file di dump su comando di lettura 10036400 Errore apertura file su comando di scrittura 10036410 Errore posizionamento file su comando di scrittura 10036420 Errore scrittura su file su comando di scrittura 10036430 Errore chiusura file su comando di scrittura Mnl151c080 Pag 221 270 Programmazione IEC 61131 3 LogicLab Esempi 5 Fleet Nel seguente esempio sul fronte di attivazione dell input Di02M00 viene eseguito il dump del buffer di memoria DumpBuffer nel file Storage Dump txt Dopo aver eseguito il dump attivando l input Di01M00 possibile rileggere i dati dal file di dump e ritrasferirli nel buffer di memoria Definizione variabili Name Type Address Array Init value Attribute Description 1 MDump FileMemorn Dump Auto No 0 FB File memory dump DumpBuffer USINT Auto 0 31 3200 Data buffer 3 Enabled BOOL Auto No FALSE FB enabled 4 Done BOOL Auto Mo FALSE FB done 5 Fault BOOL Auto No FALSE FB fault Esempio LD MDump FileMe
188. esecuzione lettura temperatura Ok 8001 Attivo per un loop se lettura temperatura eseguita correttamente Fault B001 Attivo se errore lettura temperatura Temperature REAL Valore di temperatura acquisito C Range di lettura da 55 C a 125 C Precisione 0 5 C tra 10 C e 85 C Risoluzione di lettura 0 0625 C Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10010010 MngiD non definito 10010020 MngiD non corretto 10010100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10010200 5 Errore nelle sequenze acquisizione temperatura Mnl151c080 Pag 186 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Esempi Viene eseguita la lettura della temperatura da un dispositivo One Wire Non essendo definito DCode viene acquisito qualsiasi dispositivo presente sul bus One Wire Attenzione Deve essere presente un solo dispositivo sul bus Se esecuzione corretta viene attivata l uscita D0o00MO00 ed il valore acquisito trasferito nella variabile Temperature Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo File pointer 2 MnolD UDINT Auto NO 0 One Wire management iD 3 Temperature REAL Auto Mo Temperature C 4 RaTemp sOWRdTemperature AUTO NO 0 7 Read temperature FB A TDone BOOL Auto Mo FALSE Read temperature done 6 oire sOWireMno Auto NO 0 n One ire mana
189. esegue la ricezione di qualsiasi messaggio CAN ed esegue l invio in uscita sulla porta seriale COMO della struttura del messaggio ricevuto Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo O Port COMO file pointer 2 CANMSo SYSCANMESSAGE Auto Mo O di CAN message 3 MrOfchars INT Auto Mo 0 7 Number of printed chars Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here receive a CAN message IF SysCANRxMsg 16 3FFFFFFF 16 00000000 ADR CANMsg THEN NrOfChars SysVarfprintf Fp Length 04d r n USINT TYPE ADR CANMsg Length NrOfChars SysVarfprintf Fp MsgID 04d r n UDINT TYPE ADR CANMsg MsgID NrOfChars SysVarfprintf Fp Data 0 302XSr n UDINT TYPE ADR CANMsg Data 0 END_IF Mnl151c080 Pag 108 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 10 4 SysCANTxMsg transmit a CAN message Function XTarget_07_0 Questa funzione trasmette un messaggio CAN occorre creare il messaggio e poi passarne alla Sys CANTxMsg funzione l indirizzo in Msg a hizg La funzione ritorna TRUE se messaggio trasmesso Parametri funzione Msg syscanmessace Indirizzo buffer messaggio da trasmettere La funzione ritorna POUE TRUE Messaggio trasmesso Codici di errore In caso di errore la funzione torna FALSE e con SysGe
190. et 8 Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarAdd DB100Addofset Auto Mo 0 Variable address calculation Esempio LD VarA amp Add OB1A00Add Offset Sys Phr x Rd biog MOO Da00Moo P EN ENO SIA Dadi MOO a Ofset ps RdAdd e UDINT_TYPE a Type VarAdd Mnl151c080 Pag 133 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 12 10 SysPhrVWr write variable to peripheral module Questa funzione esegue la scrittura di una variabile sul modulo periferico di estensione Sys PHrv vit Occorre definire l indirizzo di modulo Module l indirizzo della variabile da scrivere sul modulo Madule periferico WrAdd il tipo di variabile VarType e l indirizzo del buffer dove si trova il valore da imir amp dd scrivere VarAdd a VarType VarAdd Parametri funzione Module usin Occorre specificare l indirizzo di modulo su cui eseguire la scrittura Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito WrAdd wuint Indirizzo variabile da scrivere come allocata sul modulo periferico VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd wont Indirizzo variabile La funzione ritorna 0994 FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastErro
191. ettura del contatore File FILEP Pointer al file della risorsa cos come ritornato dalla funzione Sysfopen SerialNr stRING 16 Numero di serie del contatore viene utilizzato come chiave di accesso Register stRINc 16 Indirizzo registro da leggere secondo la codifica OBIS Done 8001 Viene attivato per un loop al termine della acquisizione Fault B001 Viene attivato per un loop in caso di errore nella sequenza di acquisizione TxString stRING 32 Contiene la stringa di comando inviata al contatore pu essere utilizzato in debug per verificare i comandi inviati RxString stRING 32 Contiene la stringa di risposta ritornata dal contatore pu essere utilizzato in debug per verificare le risposte ricevute MeterCode strinc 32 Contiene stringa con il codice del contatore acquisita durante fase di acceso Sign on Password upint Contiene valore password acquisita dal contatore durante fase di acceso Sign on Value stRING 32 Contiene stringa con valore registro richiesto acquisita dal contatore Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10016010 Valore di File non definito 10016020 FB protetta terminato tempo funzionamento in modo demo 10016050 Timeout esecuzione 10016070 Errore case gestione 10016100 1 Errore ricezione tipo da contatore 10016110 2 Errore ricezione password da contatore 10016120 2 Errore ricezione valore parametr
192. expander PCF9670 su bus 12C Il chip ha indirizzo 16 38 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Dummy BOOL Auto Mo FALSE Dummy variable 2 200k BOOL Auto Mo FALSE l2 Ok 3 RdBuf BYTE AUTO Mo Read data buffer 4 WrBuf BYTE AUTO Mo Write data buffer Esempio LD Sysl2CyrRd EN 1Fi 22 Address 4 Wrbytes Wirt WirButter 4 Rid Bytes FABUf RdButter Mnl151c080 Pag 136 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 12 13 StrainGaugeAcq strain gauge acquisition FB ePLCUtyLib_C000 Questo blocco funzione gestisce l acquisizione da dispositivi strain gauge all interno ear ee Strain Gaugecq viene gestito l FB di acquisizione analogica SysGetAnlnp per acquisire l ingresso analogico di lettura strain gauge In Address e Channel vanno definiti indirizzo ed il Enable Enabled canale del modulo analogico di acquisizione In Mode occorre definire il modo di Dabistalibration Done acquisizione approppriato allo strain gauge da acquisire DoFSCalibration Fault E importante effettuare la taratura della acquisizione I valori di taratura sono 99 85 bia memorizzati nelle variabili OfsCalibration e FSCalibration Per la taratura gt hannel dell offset collegare lo strain gauge e senza nessun peso applicato attivare per un Made loop DoOfsCalibration Per la taratura del fondo scala applicare allo strain gauge Filtert
193. g un protocollo appartenente alla Suite di protocolli Internet utilizzato per trasmettere attraverso una rete semplici informazioni di log Il protocollo stato standardizzato dall IETF Generalmente viene utilizzato via UDP attraverso la porta 514 in particolari applicazioni dove il monitoraggio fondamentale oppure certi eventi possono innescare azioni da parte del server SYSLOG si ricorre ad implementazioni TCP e o a crittografia Il client invia un certo messaggio di testo al massimo 1024 caratteri al server comunemente definito come syslogd syslog daemon o syslog server La semplicit del protocollo fa s che il server possa gestire messaggi provenienti da una variegata tipologia di macchine da computer stampanti dispositivi di rete macchinari ecc Il server pu limitarsi a registrare l evento per avere un archivio centrale degli avvenimenti oppure reagire a particolari livelli di severit chiamando programmi inviando e mail ecc ecc Un messaggio di notifica inviato al server Syslog inizia con un indicatore di impianto Facility e di gravit Severity Di seguito tabelle con indicazione dei codici assegnati Facility codes Kernel messages User level messages Mail system System daemons Security authorization messages Messages generated internally by syslogd Line printer subsystem Network news subsystem UUCP subsystem 9 Clock daemon CON DOO A OO N O 10 Security authorization messages 11 F
194. g 201 270 Programmazione IEC 61131 3 LogicLab 3 Heysf i Type Library 7 18 2 SHWgSProtocol HW group serial protocol FB eHwGSpLib_B000 Questo blocco funzione gestisce la lettura di dispositivi HW group con il protocollo seriale RS485 sHWgSProtecol Occorre passare alla FB il puntatore al file di porta seriale stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen See LIL File Ok Attivando l ingresso Enable viene effettuata la lettura del valore dal dispositivo connesso alla porta seriale definita terminata l esecuzione si attiva l uscita Done Se il comando ha avuto esito positivo si attiva l uscita Ok in caso contrario si attiva l uscita Fault Address Fault Per seguire nuovamente il comando occorre riabilitare l ingresso Enable blocco funzione stato realizzato per permetterne la connessione in cascata In pratica possibile connettere al Done di un FB l Enable di un altro e cos di seguito Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Address stRING 1 Stringa di definizione indirizzo dispositivo Done 6001 Si attiva al termine della esecuzione comando Ok 8001 Si attiva se acquisizione valore riuscita Fault B001 Si attiva su errore gestione Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 TxFrame stringj Contiene il frame inviato a
195. gement FB Esempio LD PTP120A200 LD_SingleTempSkipROM Open the serial port Sysfopen SysFirstLoop EN ENO FN como IS Fp hod tant ode Manage the SerialfOne Wire converter OVvire sOWireMng Enable O nWo rk Fp_ gt File Activity Fault hing ID bingiD Acquires the temperature RdTemp s0W RdTemperature TDone TDone PA Enable Done Dodi MOO winglE hingi Ok D ipcade Fault Temperature Temperature Mnl151c080 Pag 187 270 Programmazione IEC 61131 3 LogicLab 3 Hey o i a Type Library 7 16 4 SOWRdHumidity One Wire read humidity FB ePLC1WireLib_C000 Questo blocco funzione esegue gestione di un sensore One Wire di acquisizione umidit e f f O Rd Humidity temperatura basato Maxim DS2438 Si collega al blocco funzione OWireMng di gestione convertitore Seriale One Wire Occorre passare MngID in uscita dal blocco funzione di Enable Done gestione convertitore binglD Ok l a IDCod Fault Attivando Enable viene eseguita la lettura del valore di umidit e temperatura dal 2 dispositivo connesso al bus One Wire terminata l acquisizione si attiva l uscita Done se Temperature acquisizione corretta si attiva per un loop l uscita Ok e su Humidity e Temperature sar Humidity riportato il valore di temperatura acquisito L uscita Fault si attiva in caso di errori di gestione Disattivando Enable si azzera Done e l eventuale Fault per eseguire una nuova lettura
196. geneo LogicLab inserir automaticamente dei bytes di spaziatura per allineare correttamente le variabili di a 16 bits ed a 32 bits Mnl151c080 Pag 11 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 3 Definizione tipo dati Oltre ai dati standard definiti dalla normativa IEC61131 sono stati definiti altri tipi di dato che possono essere utilizzati nel programma PLC 3 1 FILEP file pointer Questo tipo di dati utilizzato dalle funzioni che eseguono accesso alle risorse di I O del sistema una variabile di tipo FILEP punta ad una risorsa utilizzata per effettuare la lettura e o scrittura di dati Un esempio di file pointer il puntatore ad una porta seriale od un file su disco 3 2 SYSSERIALMODE modo comunicazione porta seriale Questo tipo di dati utilizzato dalle funzioni che eseguono lettura ed impostazione modo di comunicazione su porta seriale Il tipo dati contiene tutte le informazioni per caratterizzare la comunicazione sulla porta seriale Name Type Description Baudrate UDINT Baud rate porta seriale 300 600 1200 2400 4800 9600 19200 38400 57600 115200 Parity STRING 1 Tipo di parit valori possibili E pari O dispari N nessuna DataBits USINT Numero di bit frame dato valori possibili 7 8 StopBits USINT Numero di bit di stop valori possibili 1 2 DTRManagement USINT Modo di gestione del segnale DTR sulla porta seriale vedi Serial mode definition
197. ggio PV CTO L ingresso di load LD prioritario sull ingresso di decremento CD CD ool Comando decremento counter ad ogni fronte attivazione il valore del counter CV si decrementa LD B001 Comando di load attivando l ingresso il valore di preset PV viene trasferito nel valore del counter CV PV int Valore di preset attivando l ingresso di load LD viene trasferito nel valore del counter CV Q B001 Uscita counter attiva se il valore del counter CV raggiunge il valore 0 CV int Valore counter valore di conteggio counter quando raggiunge il valore 0 l uscita Q si attiva ed il counter non si decrementa pi Esempi Il counter presettato a 10 ed il suo valore in uscita CV copiato nella variabile OutValue Attivando l ingresso digitale Di01MO00 il counter viene presettato ed il suo valore in uscita CV posto a 10 resettando anche l uscita Q Sul fronte di attivazione dell ingresso digitale Di00M00 il counter decrementato di 1 quando il valore di conteggio si azzera il conteggio si arresta e viene attivata l uscita del counter Q che attiva l uscita digitale D0o00MO00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di01M00 che presetta il counter Definizione variabili Mame Type Address Array Init value Attribute Description fer CTD CTD Auto Mo O x CID Counter Down function block 2 Qufyalue INT Auto Mo x Qutput value Esempio LD PTP1154100 CTD_LD FR CTD CTO DOO Woo Da
198. ggiornamento di tutti gli oggetti di tipo checkbox presenti SubmitForm Form Eseguita su pressione del tasto Set outputs controlla se i checkbox di attivazione uscite sono settati ed aggiorna il valore dei campi hidden di scrittura variabili Sorgente funzioni javascript di pagina lt script language javascript gt function Check Field Value document MyForm Field checked Value 0 function SetValues Check Inp00 lt d BOOL 0 gt Check Inp01 lt d BOOL 1 gt Check Out00 lt d BOOL 3 gt Check Out01 lt Sd BOOL 4 gt function SubmitForm Form if document getElementById Out00 checked document getHlementById BOOL3 value 1 if document getElementById Out01 checked document getHlementBylId BOOL4 value 1 document forms Form submit lt script gt Mnl151c080 Pag 245 270 Programmazione IEC 61131 3 LogicLab 3 Hey 9 7 COMPort parametri comunicazione seriale Ecco un esempio di come gestire la visualizzazione e l impostazione dei parametri di comunicazione seriale da pagina web Per la selezione della porta baud rate numero bit dato tipo di parit e modo di gestione del segnale DTR si sono utilizzati oggetti select L oggetto select permette di selezionare il valore desiderato tramite una lista di valori Per le definizione dei tempi di ritardo sul segnale DTR si sono utilizzati degli ogge
199. gue una chiamata telefonica al numero indicato si collega al blocco funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Su fronte attivazione ingresso di Call viene prenotata l esecuzione della chiamata non appena sar possibile verr eseguita la chiamata al numero definito in Number Terminato il tempo definito in Time la chiamata verr terminata Se non vi sono problemi verr attivata per un loop di programma l uscita Done eModemLib_E000 ModemPhoneCall wi Call Done ModemiD Fault Number Time Call B00L ModemiD unint Number usint Time uT Done B001 Fault 8001 Sul fronte di attivazione comanda esecuzione della chiamata Attenzione La chiamata verr eseguita non appena il modem libero ID modem fornito in uscita dalla ModemCore Pointer al numero di telefono da chiamare Tempo di durata chiamata Sec Attivo per un loop al termine della esecuzione chiamata Attivo per un loop se errore esecuzione chiamata Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10037010 ModemiD non definito 10037020 ModemiD non corretto 10037080 Errore case gestione 10037100 3 Errore gestione chiamata telefonica Esempi Nell esempio gestita una chiamata al numero indicato Dopo 15 secondi la chiamata viene conclusa Esempio LD Ptp118b100 MakePhoneCall
200. h Ping i SktLsn SysSkiListen Auto No 0 Socket listen 8 FBDTxfer UDPDataTxfer Auto No 0 UDP data transfer Esempio LD P7TP119A300 UDPDataTransfer SysFirstLoop EN FName SkttAvailable Peer PDk Dodd MOD Done Dod 1 MOO Fault Cio zM00 PRxDataDk Dic03M00 TxDataSent Mnl151c080 Pag 198 270 5 Flee Programmazione IEC 61131 3 LogicLab 7 18 Funzioni ed FB supporto prodotti Hw Group eHwGSpLib La ditta della repubblica Ceca Hw Group http Awww hw group com produce dispositivi per Networking e prodotti per telecontrollo monitoraggio e gestione dati Tutti i prodotti Hw Group dispongono di connettivit su rete ethernet con protocolli TCP IP UDP SNMP ed per facilitare la connessione di questi prodotti con l ambiente di sviluppo LogicLab sono fornite funzioni e blocchi funzioni specifici Pag 199 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 18 1 STESnmpAcq STE termometer acquisition over SNMP FB eHwGSpLib_B000 Questo blocco funzione gestisce l acquisizione del valore di temperatura delle due sonde STESnmpAc connesse al termometro IP STE La connessione tra il termometro e lo SlimLine avviene su rete eit ethernet utilizzando il protocollo SNMP Enable Done Occorre passare alla FB un flusso dati stream indicato dal parametro File precedentemente E a e aperto dalla funzione Sysfopen come socket UDP e posto in ascolto con il blocc
201. i amp LogitLab Li Applicazioni Soll Peel Sol Pane or kp i E alj x depends BEEOh E I a Pr A SR OR MH TE SS ET x Pg rest E ra Watch x iz l0 C aioa e es e a D Pulse EAL INT Auto Mo fripriop FFO Auto ho Ea INT Auto Ho IT Aulo Hi INT Auto Hg 3 Fitter TusFitter Auto No Pa aspi EteToBit Auto a aj Xj Graphie view ai BHR BaAB RRI ie Valore iniziale p Dada quadia pu umli r Farado pun s timg agli G004 incr kInilnor g005 wal TO BEAL KkImi 1007 e Valori iniziali 0009 period 100 0 0010 tan DS DOLL caluabet a 1000 oO MPE litraggio onda quadu EE x eat Amka oe O18 IF a HOD 32 gt 16 Tau wake 0035 d i a b M pag op HOLT EMD_IF galgi dall gt igo x Sababit D J o silla den aj Fl 4 T Output A Liar x Loading image file softpanelvork ing completed ecocfteafA0 Utlinp 1 File softpanelwork ing updated C exces tipi LT red Generating psrosetera ile sof tparelvore par conpleted Compiling prograas complet Wi nell Ati ET nod Dakai lies unction blocks ccanlstad Ur rel Ufiinpii ET nol Compiling functions cosplatad Di roit Urlimpi5 ET noli Preorocestina user defined data Li Tapae I EDIT MODE Il compilatore di LogicLab genera direttamente il codice macchina per il processore del sistema target garantendo una alta efficienza prestazionale Il tool stato s
202. i condizione di on DTR_AUTO WO_ TIMES Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR funzionamento automatico senza interposizione di tempi DTR_AUTO W_ TIMES Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR funzionamento automatico con interposizione di tempi 5 6 CAN bit rate definition definizioni bit rate CAN Le definizioni dei valori di bit rate sul controller CAN si possono trovare nella cartella CAN bit rate definition Define Description CAN_5OKBIT Bit rate 50 KBit CAN_100KBIT Bit rate 100 KBit CAN_125KBIT Bit rate 125 KBit CAN_250KBIT Bit rate 250 KBit CAN_500KBIT Bit rate 500 KBit CAN_1MBIT Bit rate 1 MBit Mnl151c080 Pag 19 270 Programmazione IEC 61131 3 LogicLab 5 7 Digital input mode definizioni modo acquisizione ingressi digitali 5 Flee Le definizioni modo di acquisizione dei moduli di ingresso digitali si possono trovare nella cartella Digital input mode Define Description DI 8 LL Read 0 7 input mode Debounced DI 8 L Read 8 15 input mode Debounced DI 8 M Read 16 23 input mode Debounced DI 8 MM Read 24 31 input mode Debounced DI 16 L Read 0 15 input mode Debounced DI_16_M Read 16 31 input mode Debounced DI_32 Read 0 31 input mode Debounced DI 1 8 LL Read 0 7 input mode Immediate DI 18L Read 8 15 inp
203. i paragrafi precedenti per utilizzare funzioni e o blocchi funzione di libreria possibile usare due diversi metodi importare solo l oggetto desiderato oppure tutta la libreria nel proprio progetto In entrambi i casi l oggetto verr incluso nel proprio progetto in questo modo si sicuri che anche nel futuro con versioni successive di libreria sar sempre possibile ricompilare il progetto utilizzando l oggetto con il quale si era sviluppato e testato Nel caso si desideri sostituire l oggetto con una versione pi recente dello stesso si user un diverso approccio in funzione del fatto che l oggetto sia presente in una libreria collegata oppure sia stato importato Libreria collegata Come visto precedentemente le librerie collegate mantengono un riferimento alla libreria di origine nel percorso di memorizzazione nella distribuzione di LogicLab le librerie sono incluse in directories il cui nome rappresenta la versione In questo modo potranno essere distribuite versioni successive di libreria ma il progetto alla sua riapertura far sempre il controllo con la versione originale senza eseguire l aggiornamento automatico Per effettuare l aggiornamento di un oggetto di una libreria collegata occorre eseguire un ReLink alla nuova versione della libreria Attenzione Questa operazione aggiorner tutti gli oggetti presenti nella libreria Oggetto importato Nel caso di oggetto importato per effettuare l aggiornamento baster rimuovere l
204. iables Queste variabili lettura e scrittura presenti nella cartella System variables permettono di leggere e scrivere da programma utente informazioni sul funzionamento del sistema Il programma utente pu utilizzare le variabili a piacere ed anche modificarne il valore Name Type Description SysTimelnit BOOL Attivata da programma utente o da debug permette di inizializzare il calcolo dei tempi di loop e di esecuzione delle task PLC La variabile viene automaticamente resettata dal sistema SysDateTime UDINT Data ed ora di sistema Epoch time Modificando il valore verr automaticamente aggiornato anche il real time clock SysLastError UDINT Last error ritorna il valore dell ultimo errore verificatosi nella esecuzione di una funzione o di un blocco funzione tabella ID oggetti SysUInfoA STRING 16 Valore ritornato ad utente in variabile Info A vedi esempio SysUInfoB Valore ritornato ad utente in variabile Info B vedi esempio SysUInfoC STRING 16 Valore ritornato ad utente in variabile Info C vedi esempio SysUInfoD Mnl151c080 STRING 16 STRING 16 Valore ritornato ad utente in variabile Info D vedi esempio Pag 16 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 4 3 ID univoco prodotto Ogni prodotto ha un ID univoco che ritornato nella variabile UniquelD il valore ottenuto in base al tipo di prodotto
205. ie Enabled 8001 Done B001 Fault B00 PowerOn 8001 CLIPRxd B001 Modem ID unint Operator stRING 16 RSSI USINT CLIPNumber strincrie IPAddress stinci16 Mnl151c080 Abilitazione blocco funzione attivandolo viene gestito il modem Abilita l HangUp automatico alla ricezione di una chiamata telefonica viene comunque ritornato il CLIP Se attivo permette di spiarne il funzionamento Flusso dati stream ritornato dalla funzione Sysfopen Definizione APN per connessione GPRS Definizione indirizzo IP server DNS Blocco funzione abilitato Modem correttamente inizializzato e funzionante Attivo per un loop di programma se errore gestione modem Comando di gestione uscita alimentazione modem Attivo per un loop di programma ad ogni ricezione CLIP Tipicamente ad ogni RING del modem ID modem da passare alle FB collegate Esempio ModemSMSSend ModemSMSReceive ecc Contiene la stringa con il nome dell operatore telefonico Valore potenza segnale radio Contiene la stringa con il numero di CLIP ricevuto Indirizzo IP assegnato dal gestore su connessione GPRS Pag 171 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Trigger di spy Se SpyOn attivo viene eseguita la funzione SysSpyData che permette di spiare il funzionamento della FB Sono previsti vari livelli di triggers TFlags Descrizione 16 00000001 Rx Ricezione stringa da modem 16 00000002 R gt Stringa ricevuta da mode
206. il numero di variabili definito da Points viene letto dal sistema slave e trasferito nelle variabili FUMer indirizzate da Buffer IFTime x ai i Timeout Se FCode e una funzione di scrittura il valore delle variabili presenti nel buffer di memoria ae Delay indirizzato da Buffer per il numero di variabili definito da Points inviato al dispositivo slave che lo trasferir nelle sue variabili a partire dall indirizzo definito in Address In caso di errore esecuzione o tempo di esecuzione comando superiore al tempo definito in Timeout viene attivata per un loop di programma l uscita Fault ed incrementato il valore in Errors Enable s001 Comando abilitazione esecuzione comando modbus Per rieseguire il comando disabilitare e poi riabilitare questo ingresso SpyOn 001 Se attivo permette di spiare il funzionamento della FB File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Type sint Tipo di protocollo modbus O RTU 1 Ascii 2 TCP Node usin Numero di nodo modbus su cui effettuare il comando Range da 0 a 255 FCode usint Codice funzione modbus da eseguire nel comando Range da 0 a 255 Descrizione Read coil status Massimo 250 coils Read input status Massimo 125 inputs Read holding registers Massimo 125 registri Read input registers Massimo 125 registri Preset single register Force multiple coils Massimo 250 coils Preset multiple registers Massimo 32
207. il valore della variabile sia 0x12345678 avremo Frames modbus RTU Stringa di comando 01 03 9C 5F 00 02 DA 49 Stringa di risposta 01 03 04 56 78 12 34 66 D5 Frames modbus TCP IP Stringa di comando 00 00 00 00 00 06 01 03 9C 5F 00 02 Stringa di risposta 00 00 00 00 00 07 01 03 04 56 78 12 34 La rappresentazione dei dati in SlimLine nel formato Little Endian la numerazione inizia dal byte meno significativo per finire col pi significativo quindi come si nota dalla stringa di risposta il valore della variabile a 32 bits 0x12345678 viene ritornato suddiviso in due registri a 16 bits con i valori 0x5678 0x1234 Mnl151c080 Pag 233 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 8 1 3 Scrittura variabili da modbus Per la scrittura delle variabili si utilizza il comando Preset multiple registers Codice 0x10 Ipotizzando di dover accedere in scrittura ad una variabile DWORD allocata in memoria all indirizzo MX100 64 calcoleremo l indirizzo di scrittura nel modo Indirizzo variabile 2 Offset 1 64 2 40000 1 40031 0x9C5F Essendo una variabile DWORD dovremo scrivere 2 registri consecutivi a partire dal suo indirizzo di allocazione ipotizzando di dover scrivere nella variabile il valore 0x12345678 avremo Frames modbus RTU Stringa di comando 01 10 9C 5F 00 02 04 56 78 12 34 D3 33 Stringa di risposta 01 10 9C 5F 00 02 5F 8A Frames modbus TCP IP Stringa di comando 00 00 00 00 00 OB 01 10 9C 5
208. ile FB eLogLib_B000 Questo blocco funzione effettua il dump di una zona di memoria memoria a partire da PE THAT RENON Sp indirizzo definito in MBufferPtr per il numero di bytes definito in MBufferSize su di un file su disco di nome Filename es slide l l E i l Read Done Con un comando impulsivo su ingresso Write viene creato il file ed il contenuto della M B memoria viene scritto nel file Con un comando impulsivo su ingresso Read viene letto il file ed il suo contenuto trasferito in memoria dea MBufferPtr Terminato il comando viene attivata per un loop l uscita Done in caso di errore esecuzione _ WBufferSize viene attivata per un loop l uscita Fault Il file di dump su disco un file ascii quindi possibile editarlo con un qualsiasi text editor ecco un esempio di file 00000000 00 AB 12 34 00 00 00 00 00 00 00 12 00 OF OA CC 00000010 02 00 00 00 00 00 00 00 EF CO DD 00 00 00 01 00 Enable 8001 Comando di abilitazione blocco funzione Read 6001 Comando di lettura da dump file in memoria Write B001 Comando di scrittura memoria su dump file Filename sTRING 32 Percorso e nome del file in cui fare log es Storage Dump txt MBufferPtr usint Pointer a buffer di memoria su cui opera il dump MBufferSize unn Dimensione in bytes del buffer di memoria Enabled 8001 Attivo su abilitazione blocco funzione Done 8001 Attivo per un loop se comando eseguito Fault B001 Attivo per un loop su errore
209. ile pointer 6 Dx DataStreamExch Auto No M FB data stream exchange Esempio LD PTP114A630 LD_DataStreamExch Mnl151c080 Pag 166 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 14Protocollo DLMS o IEC 62056 21 Con il nuovo protocollo standard DLMS Device Language Message Specification la comunicazione con i sistemi di metering viene immensamente semplificata Questo protocollo ha una struttura orientata agli Oggetti che rende possibile leggere con la stessa identica modalit dati applicativi provenienti da contatori di diversi costruttori Lo standard IEC 61107 o IEC 62056 21 uno standard internazionale che descrive il protocollo DLMS per la lettura da parte di un computer dei dati da contatori tariffari di energia elettrica acqua e gas Il protocollo prevede una fase di Sign On con il contatore durante la quale occorre fornire un codice di accesso Solitamente il numero di serie del contatore ed il contatore fornisce una password in uscita che pu essere utilizzata per criptare i dati Terminata questa fase possibile richiedere al contatore il valore dei suoi registri utilizzando i codici di identificazione OBIS a 5 caratteri IEC 62056 61 Per la famiglia SlimLine abbiamo sviluppato un apposito blocco funzione che automatizza tutte le operazioni occorre passare il numero di serie del contatore ed il codice OBIS del registro da leggere Il blocco funzione esegue il Sign On sul contatore e ritorna il va
210. implementata nel simulatore Esempi Viene aperta e successivamente chiusa la porta seriale COMO Se la porta correttamente aperta viene attivata l uscita Do00M00 Se la porta correttamente chiusa viene attivata l uscita Do01MO00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo Port COMO file pointer Esempio ST PTP116A100 ST_Sysfclose Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer Do00M00 Fp lt gt NULL Output is set if port is opened END IF Here the COMO port is closed IF Fp lt gt NULL THEN Do01M00 Sysfclose Fp lt gt EOF Output is set if port is closed END IF Mnl151c080 Pag 76 270 Programmazione IEC 61131 3 LogicLab Type Library 7 7 3 Sysfgetc get character from file Function XTarget_07_0 Questa funzione ritorna un carattere dal flusso dati stream indicato dal parametro File Swsfgeto precedentemente aperto dalla funzione Sysfopen File La funzione ritorna il carattere letto dallo stream In caso di errore o se nessun dato dallo stream la funzione ritorna EOF Per essere certi che vi siano caratteri dallo stream possibile utilizzare la funzione SysGetlChars che ne ritorna il numero Parametri funzione File ep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna CNT Carattere le
211. inestra non visualizzata occorre abilitarne la visualizzazione dalla voce di men Wiew Tool windows Library Attivando il Tab Target variables verr visualizzato un elenco con tutte le variabili pubblicate suddivise in cartelle Un doppio click del mouse sulla cartella System variables si aprir la cartella visualizzando tutte le variabili pubblicate Vedi foto a destra Library Library J Digital to analog mode Report variables g SpaTBackExErr Analog to digital mode System variables ud SpaTBackExTm F Digital output mode SusBackupEnd ud SysTBackExTmMax Digital input mode SysClock100 ud Sys Backes mkin Printh variable definition SysClock1000 ud SysTBackLpTm Serial mode ud SysD ateT ime ud SysTBackLpTmbiax Teml definitions SysFirstLoop ud Swe Back LpT min Task ID SushtodulesFieady ud SyeTBootExTm Digital outputs SysPLCInRun ud SyeTBootExTmMax Digital inputs SysRestoreFault ud SyeTBootExT min User data ud SysStartT ime Swe Paste xe rr Target e Operator and standard blocks Target variables Operator and standard blocks Agendo con il tasto destro del mouse su ogni singola variabile possibile Wiss ui visualizzarne la finestra delle propriet in Object name SysStartT ime cui indicato il tipo e l indirizzo di allocazione cos come nella figura a lato Properties Description WARIABLE Normal UDINT MBO 31E Cancel Mnl151c080 Pag 13 270 Programmazione IE
212. inga spiata DPtr usint Puntatore alla stringa dati da spiare La funzione ritorna ee TRUE Spionaggio possibile FALSE Console di spionaggio occupata Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9950100 Funzione eseguita in task fast o slow 9950200 Errore allocazione memoria funzione 9950990 Non implementata nel simulatore Mnl151c080 Pag 68 270 Programmazione IEC 61131 3 LogicLab Esempi 5 Fleet Ecco un esempio di programma che invia ad ogni secondo tre records alla console di spionaggio Definizione variabili Name Type Address Array Init value Attribute Description 1 TString STRING Auto 32 Text string 2 SpyPulse BOOL Auto Mo FALSE Spy data pulse 3 ABT BOOL Auto Mo FALSE Auxiliary buffer Esempio ST PTP116A400 ST_SysSpyData Init the string to be spied and check if there is space to spy TString Hello srsn IF NOT SysSpyData 0 O Text string Check if is a second pulse IF SysClock1000 SpyPulse SpyPulse SysClock1000 Spy data pulse Send 3 spy data records ABf SysSpyData SPY ASCII 16 00000001 ADR Sp l ABf SysSpyData SPY ASCHEX 16 00000010 ADR Sp 2 ABf SysSpyData SPY BINARY 8 16 00000100 Console di spionaggio THEN RETURN END IF ADR Sp 3 NULL NULL THEN RETURN END IF ADRI TStCring ADRATSE PING
213. inore di Count non vi era abbastanza spazio nello stream Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9969100 Terminale di I O usato in task fast o slow 9969990 Non implementata nel simulatore Esempi Vengono attesi almeno 5 caratteri ricevuti dalla porta seriale e quando ricevuti viene letta una stringa di 5 caratteri 5 stringhe di 1 carattere la stringa letta trasferita nella variabile RxString La stringa letta viene poi ritrasmessa sulla porta seriale notare come anche nella trasmissione trasmessa una stringa di 5 caratteri 1 stringa di 5 caratteri Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo 0 Port COMO file pointer 2 FxStrina STRING Auto 10 0 Received string 3 RxChars INT Auto Mo 0 Received characters 4 TxChars INT Auto Mo i Transmitted characters Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END IF Here wait until at least 5 chars are received and echoes them IF Fp lt gt NULL THEN IF SysGetIChars Fp gt 5 THEN RxChars Sysfread ADR RxString 1 5 Fp Received characters TxChars Sysfwrite ADR RxString 5 1 Fp Transmitted characters END_IF END_IF Mnl151c080 Pag 81 270 Programmazione IEC 61131 3 LogicLab Type Library F
214. ione del programma utente Nel caso in cui non vi sia spazio in memoria per l allocazione del buffer definito la funzione ritorna 0 Parametri funzione Size uont Dimensione in bytes dell area da allocare La funzione ritorna cel Indirizzo allocazione buffer NULL se non vi spazio per allocare il buffer Codici di errore In caso di errore la funzione torna NULL e con SysGetLastError possibile rilevare il codice di errore 9947990 Non implementata nel simulatore Esempi Su fronte attivazione ingresso DI00MO00 viene incrementata la variabile Counter e la stampa del suo valore trasferita nell array StringOut valore presente in StringOut viene poi inviato sulla porta seriale COMO Definizione variabili Mame Type Address Array Init value Attribute Description 1 Pulse BOOL Auto Mo FALSE i Pulse flag 2 Ch INT Auto Mo 0 Written character 3 Ji INT Auto Mo Auxiliary counter 4 NrOfChars INT Auto Mo U Number of printed chars 5 Courter UDINT Auto Mo 0 Counter E Fp FILEP Auto No Port COMO file pointer t StringQut CALISINT Auto Mo U String output pointer Esempio ST PTP116A300 ST_SysMAlloc Here at first program execution loop allocate memory and open COM IF SysFirstLoop THEN StringOut SysMAlloc 16 String output pointer Fp Sysfopen COMO rw Port COMO file pointer END_IF IF StringOut 0 OR Fp 0 THEN RETURN END IF On input raising edge the counter value is printed
215. ione IEC 61131 3 LogicLab 3 Faszt Type Library 7 5 4 SysGetLastError get last error Function XTarget_07_0 Questa funzione ritorna il numero dell ultimo errore rilevato da una funzione e o da un blocco SysGetLastError funzione Occorre eseguire la funzione su abilitazione del bit di fault in uscita dalla funzione e o blocco funzione da controllare E possibile definire con il valore di Cmd se si vuole avere il valore attuale dell ultimo errore Cmd TRUE oppure quello memorizzato con la precedente esecuzione della funzione Cmd FALSE md Parametri funzione Cmd oot Indica il numero di errore ritornato TRUE Viene ritornato l ultimo valore di errore FALSE Viene ritornato il numero salvato dalla precedente chiamata con Cmd TRUE La funzione ritorna eR Il numero dell ultimo errore rilevato Esempi Viene salvato l eventuale errore durante l esecuzione del blocco funzione CPUModulelO In caso di errore il numero di errore trasferito nella variabile ErrorNr Definizione variabili Mame Type Address Array Init value Attribute Description 1 CPUID GPUMOodulelo Auto Mo O D YO on GPU module 2 EtrorMr DIMT Auto Mo U Error number Esempio LD CPUIO CPUModulelO Enable Enabled FALSE cogo Dame Sys GetLastError TRUE boot Mnl151c080 Pag 64 270 Programmazione IEC 61131 3 LogicLab Type Library 7 5 5 SysPCodeAccept accepts the protection code Function XTarget_07_0
216. ione esegue l invio dell intero modulo Definendo nel browser il valore della casella di testo ed agendo sul tasto Save il dato inputato verr inviato al server che visualizzer la pagina DPage htm e contemporaneamente provveder a scrivere il valore definito nella variabile UINT DB100 12 9 4 1 ARG name Il campo name dell argomento molto importante in quanto definisce il tipo di variabile PLC da impostare Sono gestiti tutti i tipi definiti nella IEC61131 ed il suo indirizzo i due campi devono essere separati da uno spazio Un nome del tipo UINT 12 indicher una variabile UINT allocata ad indirizzo DB 100 12 Un nome del tipo REAL 128 indicher una variabile REAL allocata ad indirizzo DB 100 128 Quindi un nome del tipo STRING 1000 16 indicher una variabile STRING di lunghezza 16 caratteri allocata ad indirizzo DB 100 1000 9 4 2 ARG id Il campo id dell argomento serve a referenziare l oggetto all interno del form in modo da poterlo valorizzare con la funzione SetValues La scelta di definirlo come UINT 12 utilizzata nell esempio puramente indicativa meglio sarebbe utilizzare una definizione che ne riprenda il significato Esempio SetPoint Preset ecc Mnl151c080 Pag 243 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 9 5 Alcuni esempi Naturalmente le pagine web vanno create in base alle proprie esigenze inserendo gli oggetti desiderati Per facilitare lo sviluppo delle proprie pagine vie
217. ione esegue la conversione della data espressa in epoch time Occorre Sys ETi meTo Date fornire al blocco funzione la data espressa nel formato epoch ime come presente nella EpochTime T variabile di sistema SysDateTime in uscita dal blocco funzione avremo i valori di data espressi nel formato Giorno Mese Anno ed Ora Minuti Secondi i Ge dl Month Day Wre ekD ay Hour Minute EpochTime uont Occorre specificare la data espressa in epoch time Done 6001 Attivato al termine della conversione Fault B001 Errore di conversione viene attivato in caso di errore nella conversione Year uint Ritorna il valore di anno Range da 1970 a 2099 Month wsint Ritorna il valore di mese dell anno Range da 1 a 12 Day sint Ritorna il valore di giorno del mese Range da 1 a 31 Ritorna il valore di giorno della settimana Range da 0 a 6 0 Domenica 1 Luned 2 Marted 3 Mercoled 4 Gioved 5 Venerd 6 Sabato Ritorna il valore di ora Range da 0 a 23 WeekDay usin Hour usint Minute qusint Ritorna il valore di minuti Range da 0 a 59 Second wsint Ritorna il valore di secondi Range da 0 a 59 Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9986050 Errore allocazione blocco funzione 9986060 Errore versione blocco funzione Mnl151c080 XTarget_07_0 Second Pag 70 270 Programmazione IEC 61131 3 LogicLab 3 Fla
218. ioni hanno numero di variabili in ingresso variabile e sempre una sola variabile in uscita Per utilizzarle basta inserirle nei programmi LD ed FBD e connetterle alle variabili Nei programmi IL devono essere chiamate con l istruzione CAL nei programmi ST basta indicarne il nome per essere eseguite Function Blocks Le FB a differenza delle funzioni allocano nel programma una variabile che contiene tutte le variabili di input e di output gestite dal blocco funzione Per utilizzarle basta inserirle nei programmi LD ed FBD e connetterle alle variabili Nei programmi IL devono essere chiamate con l istruzione CAL nei programmi ST basta indicarne il nome per essere eseguite 7 0 1 Funzioni ed FB embedded Con l ambiente di sviluppo LogicLab vengono fornite funzioni e blocchi funzione FB embedded che permettono di accedere alle risorse hardware e software del sistema Slim line Le funzioni e le FB embedded sono visualizzate da LogicLab nella finestra delle librerie Se la finestra non visualizzata occorre abilitarne la visualizzazione dalla voce di men View Tool windows Library Attivando il Tab Target blocks verr visualizzato un elenco con tutte le funzioni Indicate con F ed i blocchi funzione Indicati con B embedded Library Name Type Description TF Susfgete Function Get character from file a SusFIBfClear Function Clear input buffer Ig SysFOR Clear Function Clear output buffer gf SysFOR Flush Function Flush output buffer T
219. ioni javascript Set Field Value Imposta il campo text di name Field con il valore Value Choose Field Value Seleziona l oggetto select di name Field sull opzione il cui valore corrisponde a Value SetValues Eseguita al caricamento della pagina esegue l aggiornamento di tutti gli oggetti presenti Sorgente funzioni javascript di pagina lt script language javascript gt function Set Field Value document MyForm Field value Value function Choose Field Value for 1 0 i lt document MyForm Field options length i if document MyForm Field options i value Value document MyForm Field selectedIndex 1 function SetValues Choose Port lt s STRING 2048 gt Choose Baudrate lt d UDINT 2056 gt Choose DataBits lt d USINT 2060 gt Choose Parity lt d STRING 2064 gt Choose DTRMng lt d USINT 2068 gt Set DTROn lt d UINT 2070 gt Set DTROff lt d UINT 2072 gt lt script gt Mnl151c080 Pag 247 270 Programmazione IEC 61131 3 LogicLab 3 Eleaf 9 8 Aggiornamento pagine con AJAX AJAX acronimo di Asynchronous JavaScript and XML una tecnica di sviluppo software per la realizzazione di applicazioni web interattive Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server che consente l
220. iorit sull ingresso digitale DiO1MO00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBSR SR AUTO Mo 0 SF SevResetfunction block Esempio LD PTP115A100 SR_LD FESR DIDO MOO Do00MOO BR _ _ _ _ _ _ _ _ _ __________7 Diodi pO CAL FBSR Call the SR function block Esempio IL LD D100M00 ST FBRS S1 Transfer the digital input to the set command LD D101M00 ST FBRS R Transfer the digital input to the reset command LD FBRS Q1 ST Do00M00 The function block output is copied to digital output Esempio ST FBSR Call the SR function block FBSR S1 D100M00 Transfer the digital input to the set command FBSR R D101M00 Transfer the digital input to the reset command Do00M00 FBSR 01 The function block output is copied to digital output Mnl151c080 Pag 36 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 2 Funzioni ed FB per gestione timers Library 7 2 1 eTOF Timer Off ePLCStdLib_B000 Questo blocco funzione esegue la temporizzazione sulla disattivazione attivando l ingresso IN l uscita Q si attiva immediatamente ed il tempo in uscita ET si azzera Disattivando l ingresso IN inizia il conteggio e alia dopo il tempo definito PT espresso in mS si disattiva l uscita Q Sulla uscita ET viene ritornato il tempo IH Pi trascorso dalla disattivazione dell ingresso espresso in mS PT ET IN B
221. ir una finestra di browser del disco Scegliere la directory dove si trova la libreria e selezionare i files di libreria da importare Agendo sul tasto Close nella finestra Library di ts x LogicLab Ctrl L verranno visualizzati dei tabs aggiuntivi uno per ogni libreria importata F CTD F TON Basta trascinare l oggetto desiderato nel proprio progetto per poterlo utilizzare a Tangetvaniables Target blocks eplestdib eplcutylib Mnl151c080 Pag 28 270 Programmazione IEC 61131 3 LogicLab 7 0 4 Importazione libreria Eseguendo l import delle librerie nel proprio progetto come indicato al capitolo precedente tutti gli oggetti della libreria importata vengono trasferiti nel proprio file di progetto ppjs ma viene comunque mantenuto un link alla libreria di origine come si vede dalla finestra a lato Project library list Name Link Add eplcstdlib ci programmielziatece1 131 sutela eplcutylib ci programmi elziatecet 131 sutela Remove all Questo permette nel caso la libreria sorgente venga modificata con una versione piu recente di effettuare l aggiornamento automatico della nuova libreria nel proprio progetto Se la libreria sorgente non pi presente oppure stata spostata dalla posizione da dove stata importata LogicLab non eseguir pi il controllo senza segnalare errori Tramite il men Project Library manager che apre la finestra a lato come si ve
222. ireLib_C000 Questo blocco funzione esegue l acquisizione di un sensore One Wire di temperatura sU0W RdTemperature Maxim DS18B20 si collega al blocco funzione sOWireMng di gestione convertitore Seriale One Wire Occorre passare MngiD in uscita dal blocco funzione di gestione Enable Done convertitore hingID Ok DCode Fault Attivando Enable viene eseguita la lettura del valore di temperatura dal dispositivo connesso al bus One Wire terminata l acquisizione si attiva l uscita Done se acquisizione L APE corretta si attiva per un loop l uscita Ok e su Temperature sar riportato il valore di temperatura acquisito L uscita Fault si attiva in caso di errori di gestione Disattivando Enable si azzera Done e l eventuale Fault per eseguire una nuova lettura occorre riabilitare l ingresso Enable Se sul bus One Wire connesso un unico dispositivo si pu evitare di settare DCode oppure si pu forzare a 0 Se invece sul bus One Wire sono presenti pi dispositivi parallelati in DCode occorre definire l indirizzo dell array di 8 bytes che contiene il ROM ID del dispositivo che si vuole acquisire Enable B00L Abilita il blocco funzione MngiD pin One Wire management ID fornito in uscita dal blocco funzione sOWireMng IDCode usint Puntatore ad array definizione ROM ID dispositivo da acquisire Se 0 viene eseguita lettura con comando Skip ROM Viene acquisito qualsiasi device connesso Done 8001 Si attiva al termine della
223. istema operativo e utilizzate da programma utente E prevista una pagina web Menu User in cui sono visualizzate le variabili SysUInfo x ed possibile impostare le variabili SysUSet x ELSIST SlimLine Home General Setup Time Setup User User informations and settings a N mo iTi Ti m ea ELSIST SlimLine For more information visit our website www elsistit Nell esempio riporto un semplice programma che acquisisce i valori delle variabili SysUSet x e li trasferisce nella rispettiva variabile di visualizzazione SysUInfo x Nella pagina web il valore impostato nella variabile SysUSet x su accettazione con il tasto Write verr ritornato nella variabile SysUInfo x come visibile dallo screenshot riportato sopra Definizione variabili Mame Type Address Array Init value Attribute Description 1 Values UDINT Auto Usa 4 0 Uservariables value 2 INT Auto Mo 0 x Auxiliary variable Esempio ST Read user settings and write user infos IF SysUVSet THEN i SysVarsscanf ADR SysUSetA d UDINT TYPE ADR Values 0 i SysVarsnprintf ADR SysUInfoA 16 d UDINT TYPE ADR Values 0 i SysVarsscanf ADR SysUsetB sd UDINT TYPE ADR Values 1 i SysVarsnprintf ADR SysUInfoB 16 d UDINT TYPE ADR Values 1 i SysVarsscanf ADR SysUSetC d UDINT TYPE ADR Values 2 1 SysVarsnprintf ADR SysUInfoC 16 sd UDINT TYPE ADR Values 2 l SysVarssc
224. ition mode CAL FBData Call the SysGetAnInp function block LD FBData Done ST Do00M00 The output is active if data is acquired LD FBData Fault ST Do01M00 The output is active if execution fault LD FBData Value ST AnaInp Store the acquired value Esempio ST PTP116A100 ST_SysGetAnInp Acguires analog input O from module FBData Address 0 Channel 0 Mode AD VOLT 0 10 COMMON Call the SysGetAnInp FB Do00M00 FBData Done The output is active if data is acquired Do01M00 FBData Fault The output is active if execution fault VarReal FBData Value Store the acquired value Mnl151c080 Pag 124 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Type Library 7 12 5 SysSetAnOut set analog output FB XTarget_07_0 Questo blocco funzione esegue il set del valore sull uscita analogica sul modulo di uscita Il blocco funzione gestisce vari modi di uscita in funzione del modulo analogico a cui fa riferimento PIRENEI Address Done Channel Fault a hiode Value Address usint Occorre specificare l indirizzo del modulo su cui settare il valore analogico Range da 0x00 a 0x0F Il valore 0x00 indica il primo modulo di estensione 0x01 il secondo e cos di seguito Channel usint Occorre specificare l indirizzo del canale sul modulo Range da 0x00 a Ox0F Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato i
225. iu dati per il tempo definito in DDelay li invia sull altro stream E ll Ze Se sono ricevuti pi dati della dimensione definita del buffer i dati sono immediatamente inviati _ ppejsy sull altro stream e viene generato un errore Enable s001 Abilitazione blocco funzione FpA FILEP Flusso dati stream ritornato dalla funzione Sysfopen FpB iter Flusso dati stream ritornato dalla funzione Sysfopen DBSize upint Dimensione buffer dati Bytes DDelay unn Tempo pausa attesa trasmissione dati mS Enabled 8001 Blocco funzione abilitato Fault B001 Attivo per un loop di programma in caso di errore Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10048100 Errore allocazione buffer dati 10048200 Buffer pieno su ricezione dati da stream A 10048250 Buffer pieno su ricezione dati da stream B Mnl151c080 Pag 165 270 g Programmazione IEC 61131 3 LogicLab 3 Flee Esempi Semplice convertitore Ethernet Seriale accetta connessione TCP su porta 1000 e utilizza la porta seriale COMO Definizione variabili o Name Type Address Armay Initvalue Attribute Description 1 SMode SetsMode Auto No n Set serial mode 2 SktLsn SysSktListen Auto No z FB Socket listen 3 SktDone BOOL Auto No A Socket done 4 SktConnect BOOL Auto No M Socket connect 5 Fp FILEP Auto 0 1 F
226. ivazione ingresso Di0OMOO viene incrementata la variabile Counter ed il suo valore inviato sulla porta seriale COMO Nella variabile NrOfChars viene caricato il numero di caratteri inviati in uscita sulla porta seriale Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILEP Auto Mo n Port COMO file pointer 2 Pulse BOOL Auto Mo FALSE n Pulse flag 3 Counter UDINT AUTO Mo 0 5 Counter 4 Nrofthars IMT Auto Mo 0 Esempio ST P7TP116A300 ST_SysVarfprintf Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COM0 rw END IF IF Fp lt gt NULL THEN IF D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF Di00M00 THEN Counter Counter l Counter NrOfChars SysVarfprintf Fp Counter 04ds r n UDINT TYPE ADR Counter END IF END IF END IF Mnl151c080 Pag 89 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 8 File system Le CPU SlimLine ARM7 a partire dal firmware versione SFW167C100 possono gestire il file system In tali CPU esistono due directories predefinite Storage Directory allocata sulla memoria EEPROM presente su SlimLine Tutte le versioni SDCard Directory allocata sul chip SD Card che deve essere inserito nell apposito connettore Per le operazioni di formattazione del file system si rimanda al manuale utente il file system raggiungibile da FTP quindi utilizzando un client FTP pos
227. ize linearize a non linear value Function ePLCUtyLib C000 Questa funzione esegue la linearizzazione di un valore Occorre fornire alla funzione Linearize l indirizzo dell array definizione valore in ingresso da linearizzare VinReference PR l indirizzo dell array definizione del corrispondente valore in uscita linearizzato i i i a VinReference VOutReference ed il numero di valori presenti nell array ReferenceNr E importante VOutReference definire i dati negli array in modo crescente quindi a partire dal valore pi piccolo i l i Referencer La funzione esegue la ricerca nell array VinReference del valore immediatamente superiore a Vin interpolando linearmente tra il valore trovato e quello precedente calcolando il valore in uscita in base ai due valori presenti nelle stesse posizioni dell array VOutReference VIN REAL Valore su cui effettuare la linearizzazione VinReference REAL Puntatore all array definizione valore in ingresso da linearizzare VOutReference REAL Puntatore all array definizione valore in uscita linearizzato ReferenceNr USINT Numero di valori negli arrays di definizione linearizzazione REAL Valore linearizzato in uscita Esempi Viene eseguita tramite una acquisizione analogica la lettura di un livello di un serbatoio di forma irregolare tramite la funzione viene ritornato il valore dei litri presenti nel serbatoio Il valore di livello viene mediato per avere una lettura piu reg
228. l bit di Fault Mode sint Occorre specificare il modo di gestione uscita analogica Digital to analog mode Value REAL Occorre specificare il valore di uscita espresso nella unit definita dal modo di gestione Done 6001 Dato settato Viene attivato per un loop al termine del settaggio dell uscita analogica Fault B001 Errore Viene attivato in caso di errore nella sequenza di settaggio Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9982050 Errore allocazione blocco funzione 9982060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9982070 Errore versione blocco funzione 9982080 Impossibile inizializzare il modulo 9982100 Il modulo indirizzato in Address non presente 9982110 1 Il modulo indirizzato non supporta i comandi uscita analogica 9982150 Il valore da impostare sul modulo analogico non corretto 9982200 Il modo di gestione definito in Mode non gestito dal modulo 9982210 Errore nella gestione uscita analogica sul modulo Mnl151c080 Pag 125 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Esempi Viene eseguita l uscita analogica dal canale 0 del modulo 0 in modo 0 10 Volt Se dato valido viene attivata l uscita digitale Do00M00 se errore di conversione viene attivata l uscita digitale Do01M00 dato analogico da impostare in uscita nel range da 0 000 a 9 999 presente nella variabile AnaOut D
229. l dispositivo pu essere utilizzato in debug RxFrame srRInc 16 Contiene il frame ricevuto dal dispositivo pu essere utilizzato in debug Value REAL Valore acquisito dal dispositivo Codici di errore In caso di errore si attiva l uscita Fault il valore di Errors si incrementa e con SysGetLastError possibile rilevare il codice di errore 10032010 Valore di File non definito 10032050 Timeout esecuzione 10032060 Errore case gestione 10032100 FB usata in task fast o slow 10013200 1 Errore nella gestione del protocollo di comunicazione 10032300 Errore lettura valore Mnl151c080 Pag 202 270 Programmazione IEC 61131 3 LogicLab Esempi Nell esempio gestita l acquisizione del valore di temperatura e di umidit da un HTemp Definizione variabili LAE Name Type Address Aray Initvalue 1 Humidity REAL Auto No 0 2 Temperature REAL Auto No 0 3 Fp FILEP Auto No 0 4 SMode SetsMode Auto No 0 5 HumaAcg SHWoqSProtocol Auto No 0 6 TempaAcg sHWogSProtocol Auto No 0 Esempio LD P7TP126A000 LD_HTBoxRead Saas 3 eh Humidity value Temperature value C File pointer FB set serial mode data FB HTempBox data FB HTempBox data Mnl151c080 Dogo Moo Do01mM00 Pag 203 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 19 Funzioni ed FB supporto protocollo NMEA eNMEALIb
230. la relativa funzione sara sprotetta C Function blocks fino al prossimo riavvio del programma E possibile eseguire pi chiamate alla Functions funzione una per ogni codice di protezione da definire Global variables Il consiglio di inserire le varie chiamate alla funzione in un programma che verr eseguito nella task di boot quindi prima di ogni chiamata ad altri programmi garantendo lo sblocco delle funzioni desiderate A lato si pu vedere come in un progetto il programma di definizione codici di protezione PCodes sia definito nella esecuzione della task di boot Di seguito riportiamo il codice sorgente del programma PCodes realizzato in linguaggio ST Naturalmente i codici riportati sono di fantasia pertanto se eseguito la funzione SysPCodeAccept ritorner sempre FALSE Definizione variabili Name Type Address Array Init value Attribute Description 1 CodesOk BOOL Auto 0 2 aii P Protection codes ok Programma ST Check the protection codes CodesOk 0 SysPCodeAccept abcdefghijklmnopgr Protection code ok Function 1 CodesOk 1 SysPCodeAccept rqponmlkjihgfedcba Protection code ok Function 2 CodesOk 2 SysPCodeAccept abcdefghiihgfedcba Protection code ok Function 3 End of file Normalmente le funzioni ed i blocchi funzioni protetti possono funzionare in modo demo per un certo periodo di tempo dalla loro prima esecuzione dopo l accensione del sistema Terminato il temp
231. le FILEP Flusso dati stream ritornato dalla funzione Sysfopen TxData usint Puntatore al buffer che contiene i dati da trasmettere Size uint Numero di bytes dati da trasmettere PeerlP stRING 15 Stringa di definizione indirizzo IP a cui trasmettere i dati PeerPort unt Porta a cui trasmettere i dati La funzione ritorna UNE Numero bytes trasmessi EOF in caso di errore Codici di errore In caso di errore la funzione torna con EOF con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9976005 Blocco funzione non supportato 9976010 Valore di File non definito 9976050 Tipo di stream definito in File non corretto 9976100 Errore indirizzo IP connessioni accettate PeerlP 9976200 Errore trasmissione dati su socket UDP 9976990 Non implementata nel simulatore Esempi Nell esempio inviando caratteri al sistema SlimLine sulla porta 1000 da una connessione UDP i caratteri inviati saranno ritrasmessi sulla porta UDP del sistema client da cui sono stati ricevuti Definizione variabili Name Type Address Array Init value Attribute Description 1 RxDone BOOL Auto Mo FALSE Rx data done 2 GlientPort LINT Auto Mo 0 Client port 3 Rxoize LINT Auto Mo a Rx bytes received d ClientlP STRING Auto 15 7 Client IP address 5 PriDataAdd DB100AddOffiset Auto Mo O Print data buffer address 6 RxDataAdd DBIOOAddOfset Auto NO 0 F Rx data buffer address t IF FILEF Auto Mo File pointer o SkiLsn Svs
232. llnnae 235 8 1 6 Scrittura RTC da I OGIO S ioc eicertcszycscncicerebaasGarcee a E a inadatto 236 0 1 7 ACCESSO Epoch ume da ModDUS sasirnane E SKENEN 237 8 1 8 Lettura Epoch time da MOODUS ciiiiia ia rari point 237 8 1 9 Scrittura Epoch time da MOdDUS 237 9 Creazione pagine web utente iii 238 9 1 Criteri per realizzazione pagina i 239 ZF ACN NANNY ella aaa 240 Jorma A osa Cn eS me eee eee eee ee eee eee ee 241 9 Scl Campo Formello aria 241 J32 Camp TYPE eee ee ee Rn nn eee E E ne en eee ee eee 242 oo CambeAddlessas eee ne ee ee eee en eee ene eee O eee eee 242 po Ae wr Esemnoid ossee 242 945 ONAL AR 6 es ea ene se aerate coed saci stealer ease ete on een an ga sevens tence de cac E EE 243 OD ARG 243 PN Lai AONT A AAA 243 Pu UMM ESOM eoe aiar 244 D6 LogiCIO Gestione 1O OIC bacco ei AR A I ini 245 9 7 COMPort parametri comunicazione seriale i 246 Sl FUNZIONI I VASCHP lai iii eil ta ee 247 9 8 Aggiornamento pagine con AJAX 248 UMS ondine etti 250 10 1 SWapValiobi DWORD eoiioenii iraniana aaa aaa Eaa Ea 250 10 2 SWap WANN WORD einsenden sae A aiea E EE Da E i aa EEES 250 10 3 Swap variabile BYTE ea a aAa Eaa Aa aaka ai raaa 251 10 4 Espandere DWORD in 32 BOOL srioriieniorararea arredi it 252 10 5 Comprimere 32 BOOL in DWORD ii 253 10 6 Definire caratteri ascii non stampabili
233. locata nella DB100 ad offset 8 ogni secondo ne viene incrementato il valore e su porta seriale COMO viene inviata la stringa Value is xxxx Definizione variabili globali Mame Type Address Group Array Init value Attribute Description 1 ValueToPrint UDINT Soh 00 8 Mo P Value to print Definizione variabili Name Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo 0 File pointer 2 Addofs DB100AddOfset Auto Mo A Address offset calculation Esempio LD Sysfopen SysFirstLoop EN ENC COMO FH ame EE FF bode AOD ol lll i _ ValueToFrint WalueToPrint Sys Yartprintf SysClock1000 ayo F AddOfs Ta gt DE100AddOfset l alue is dBrBn iaa EN END UDINT_TYPE a Yardd Mnl151c080 Pag 139 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 13 2 BLINK blink command ePLCUtyLib_C000 Questo blocco funzione gestisce una uscita lampeggiante con tempo di ciclo definibile Attivando l ingresso ENABLE l uscita OUT inizia a lampeggiare con tempi di ciclo alto e basso sub definiti ENABLE OUT TIMELOW TIMEHIGH ENABLE oot Abilitazione blocco funzione attivandolo viene gestita l uscita OUT lampeggiante Disattivandolo l uscita OUT viene resettata TIMELOW wont Definisce il tempo in cui l uscita OUT rimane nello stato logico low espresso in mS TIMEHIGH wont Definisce il tempo in cui l uscita OUT rimane nello stato logico high espresso in mS
234. lore del registro indicato Interfaccia con il contatore Per interfacciarsi con il contatore possibile utilizzare un apposito accoppiatore ottico che si appoggia alla finestra di lettura del contatore e si is SKRA An connette ad una delle porte seriali dello SlimLine f SONDA 5 Oppure nel caso di contatori predisposti con l uscita RS485 possibile ce connettersi direttamente alla porta RS485 dello SlimLine psi Mnl151c080 Pag 167 270 Programmazione IEC 61131 3 LogicLab Eleaf Type Library 7 14 1 IEC62056_21Rd IEC62056 21 protocol read FB ePLCUtyLib_C000 Questo blocco funzione esegue la gestione della lettura di registri da sistemi di metering n IECE2056_21Rd utilizzando il protocollo IEC62056 21 Questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E Emable Done comunque possibile utilizzarlo liberamente in modo test per 30 Min File Fault i n l SerialN TxStr Occorre in SerialNr definire il numero seriale del contatore Utilizzato come chiave di accesso Sa alla lettura e in Register l indirizzo del registro da leggere secondo la normativa OBIS Se la 9588 di lettura ha esito positivo viene attivata l uscita Done e le variabili MeterCode Password e hetertode Value sono valorizzate con i dati letti dal contatore Password Value Enable 8001 Attivando l ingresso viene gestita la l
235. m troppo lunga 16 00000004 Tx Trasmissione stringa verso modem 16 00000010 Mr Ricezione messaggio SMS 16 01000000 Etichette di segnalazione operazioni modem Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 10002010 Valore di File non definito 10002020 FB protetta terminato tempo funzionamento in modo demo 10002050 Timeout esecuzione 10002080 Errore case gestione 10002100 FB eseguita in task diversa da quella di background 10002200 3 Errore ricezione CLIP 10002300 4 Errore nelle sequenze power on del modem 10002400 10 Errore nelle sequenze di controllo del modem 10002500 7 Errore nella ricezione del messaggio SMS Esempi Nell esempio gestito un modem connesso al terminale di I O definito nella variabile Fp per la definizione delle variabili e per una migliore comprensione del funzionamento si rimanda agli esempi successivi Esempio LD ModermCore ws Enable Enabled FALSE AutoHangUp Done TRUE SpyOn Fault ADR ST Do 1 MOO DoD MOO Dodo hod File FomerOn Dols M00 he hd bis wod atone it APH CLIP Red DNS bodemiD ADR Operator 3 8 5 5 Fissi CLIFNumber IPAddress Mnl151c080 Pag 172 270 Programmazione IEC 61131 3 LogicLab Library 7 15 2 ModemSMSReceive receive a SMS message eModemLib_E000 Questo blocco funzione esegue la ricezione di un
236. mbiare con altro sistema Da 1 a 30 TrigDelay unt Tempo attesa tra uscita dato OData ed uscita strobe OStrobe Da 0 a 30 mS OStrobe B00L Da appoggiare su uscita digitale di strobe OData B00L Da appoggiare su uscita digitale di dato Done B00L Si attiva per un loop al termine dello scambio dati Fault B00L Si attiva per un loop in caso di errore su scambio dati Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10011080 Errore definizione valore ByteNr 10011082 Errore definizione valore TrigDelay 10011100 1 Timeout attesa attivazione segnale Strobe 10011110 1 Timeout attesa disattivazione segnale Strobe 10011200 1 Errore CRC dati ricevuti Mnl151c080 Pag 157 270 Programmazione IEC 61131 3 LogicLab Esempi 5 Flee Utilizzando due sistemi attivando modo master Di01M00 attivo su di un sistema e modo slave Di01M00 disattivo sull altro possibile eseguire lo scambio di 4 bytes di memoria tra i sistemi 4 bytes allocati ad indirizzo MD100 0 di un sistema saranno trasferiti su 4 bytes allocati ad indirizzo MD100 16 dell altro sistema Al termine del trasferimento i dati ricevuti dalla memoria MD100 0 sono trasferiti nella variabile RxData mentre la variabile TxData trasferita in memoria MD100 16 Definizione variabili Mame Type Address Array Init value 1 ExchDone BOL AUTO Mo FALSE 2 FxData UDINT Auto Mo 0
237. modulo 9983100 II modulo indirizzato in Address non presente 9983110 1 Il modulo indirizzato non supporta i comandi acquisizione analogica 9983150 Il valore ritornato dal modulo analogico non corretto 9983200 Il modo di acquisizione definito in Mode non gestito dal modulo 9983210 Errore nella acquisizione analogica dal modulo 9983300 Il canale definito in Channel non gestito dal modulo Mnl151c080 Pag 123 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Esempi Viene eseguita l acquisizione analogica dal canale 0 del modulo 0 in modo 0 10 Volt Se dato valido viene attivata l uscita digitale Do00M00 se errore di conversione viene attivata l uscita digitale Do01M00 dato analogico acquisito nel range da 0 000 a 9 999 trasferito nella variabile Analnp Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData SvsGetAning Auto Mo O p FE SysGetPhrOl data 2 Dummy BOOL Auto No FALSE Dummy variable 3 Analnp REAL Auto Mo I 7 Analog value volts Esempio LD PTP116A100 LD_SysGetAninp FED ata Sys GetAninp Dummy EH ENO Address Done Channel Fault AD VOLT_O 10 COMMON Mode Da00h00 D 001 hoo Esempio IL PTP116A100 IL_SysGetAnInp Acquires analog input 0 from module LD 0 ST FBData Address Set module address LD 0 ST FBData Channel Set channel LD AD VOLT 0 10 COMMON ST FBData Mode Set acquis
238. moryDump DiDOMOO Enabled cooo Ebe Enabled Di0 1 m00 Di0 ZM00 Mnl151c080 FJ AAA cr Done Fault Pag 222 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 22Funzioni ed FB comunicazione multimaster eMMasterDTxferLib Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie Questa libreria rende disponibili una serie di funzioni e di blocchi funzione per la gestione della comunicazione multimaster su linea seriale La possibilit di fare dialogare su una unica linea seriale RS422 485 pi dispositivi master permette di velocizzare il dialogo tra i sistemi ottimizzando l impegno della linea seriale Questa particolarit molto apprezzata nelle connessioni radio dove radiomodems che sfruttano tutti la stessa frequenza possono dialogare tra di loro minimizzando l impegno della banda ed aumentando i tempi di trasferimento delle informazioni Nelle comunicazioni tra diversi sistemi su doppino seriale e o con radiomodems tipicamente si utilizza un protocollo a pacchetto Esempio modbus ed uno dei sistemi che funge da master dialoga ciclicamente con tutti gli altri sistemi della rete scambiando le informazioni tra di loro Come si pu ben capire questa soluzione ha i seguenti difetti a Tutta la comunicazione delegata al sistema master nel caso di guasto di quest ultimo tutta la rete ferma b Il sistema master deve in
239. n modo test per 30 Min AutoHangulp Done i TE a E Ee i SpyOn Fault L FB gestisce il dialogo con il modem ne esegue l inizializzazione e ne controlla lo stato controlla se il modem connesso alla rete GSM e ritorna l operatore di rete Operator ed il cn APN CLIPRxd livello del segnale Rssi Nel caso in cui il modem si sganci dalla rete l FB provvede al suo riaggancio automatico L FB ritorna un ModemID che deve essere passato alle FB PNS collegate Esempio invio SMS ricezione SMS ecc L ingresso SpyOn se attivo permette di spiare il funzionamento della FB Resi L uscita Done si attiva se il modem correttamente inizializzato mentre l uscita Fault si attiva per un loop di programma in caso di errori di gestione Library eModemLib_E000 ModemCore ws Enabled hodemiD Operator CLIFHumber IPAddress E previsto un comando PowerOn per la gestione della alimentazione del modem in questo modo l FB pu spegnere e riaccendere il modem in caso riscontri una non funzionalit dello stesso Su ricezione chiamata telefonica viene rilevato il CLIP del chiamante che ritornato in uscita CLIPNumber contemporaneamente ad ogni squillo del telefono si attiva per un loop di programma l uscita CLIPRxd Su connessione GPRS viene ritornato l indirizzo IP assegnato dal gestore alla connessione IPAddress Enable B001 AutoHangUp 001 SpyOn e001 File FILEP APN stING 32 DNS stinci
240. na che visualizza un messaggio di presentazione Sorgente html pagina lt html gt lt head gt lt meta http equiv Content Type content text html charset iso 8859 1 gt lt title gt SlimLine Simple page lt title gt lt head gt lt body gt This page is served by the lt b gt SlimLine lt b gt lt body gt lt html gt Salvando il testo riportato in un file esempio SPage htm e trasferendo il file nella directory Storage di SlimLine sara possibile visualizzare la pagina web risultante semplicemente digitando nel proprio browser l indirizzo della pagina Naturalmente la pagina pu contenere links ad altre pagine sar cos possibile realizzare una propria navigazione tra diverse pagine Ecco lo stesso esempio di prima con incluso la definizione di uno stile Sorgente html pagina lt html gt lt head gt lt meta http egquiv Content Type content text html charset iso 8859 1 gt lt title gt SlimLine Simple page lt title gt lt style type text css gt Bolded font family Arial Helvetica sans serif font size 20px font style normal font weight bold lt style gt lt head gt lt body gt This page is served by the lt span class Bolded gt SlimLine lt span gt lt body gt lt html gt Mnl151c080 Pag 239 270 Programmazione IEC 61131 3 LogicLab 3 Flarf 9 2 Pagine dinamiche La caratteristica pi importante del server web integrato in SlimLine
241. ne fornito un programma dimostrativo PTP128 000 che contiene una serie di programmi SlimLine e relative pagine web Per testare i vari programmi occorre trasferire sul modulo CPU il programma tramite LogicLab e tramite un client FTP trasferire la pagina htm nella directory Storage Ora da un browser si digita l indirizzo IP del modulo CPU seguito dalla directory e dal nome della pagina Esempio http 192 168 0 122 Storage Page htm Pag 244 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab 3 Flee 9 6 LogiclO gestione I O logici Ecco un esempio di gestione I O logici da pagina web per visualizzare lo stato degli ingressi e delle uscite sono stati utilizzati degli oggetti checkbox Lo stato di attivo indicato dalla presenza del tick per attivare le uscite si pone il tick sulla uscita desiderata e si agisce sul tasto Set outputs call http 192 168 0 162 St CPU Inputs CPU Quiputs Set outputs Per visualizzare lo stato reale degli ingressi la pagina viene automaticamente rinfrescata ogni 10 secondi Per ottenere l aggiornamento della pagina dopo la direttiva lt head gt viene posta la dichiarazione lt meta http equiv refresh content 10 gt Per la gestione della pagina sono utilizzate alcune funzioni javascript Check Field Value Imposta o rimuove il simbolo di tick sull oggetto di tipo checkbox indicato in Field in base a Value SetValues Eseguita al caricamento della pagina esegue l a
242. nerdeenceahivesdedesensredancducdenudiaesesnenenendesesaseds 163 7 13 17 GetPolynomialCRC polynomial CRC calculation 164 7 13 18 DataStreamExch exchanges data between two I O streamS 165 Gae POCO DLM IEC C2006 22 Tissier ina nE E nghades oust eden rile EE edits 167 7 14 1 IEC62056_21Rd IEC62056 21 protocol read 168 7 15 Funzioni ed FB gestione modem eModemLib_E000 170 7 15 1 ModemCore_v3 modem core managemeEnt e 171 7 15 2 ModemSMSReceive receive a SMS message e 173 7 15 3 ModemSMSRxCmd_v1 receive a SMS command 174 7 15 4 ModemSMSSend_v2 send a SMS message ee 175 7 15 5 ModemPhoneCall_v1 executes a phone call 178 7 15 6 ModemHTTPGet executes a HTTP Get requet cece ceccceccceeecseceseceneceeceeceeeceeeeeeeceseeeneeeneeseesaes 179 7 16 Funzioni ed FB gestione One Wire ePLC1WireLib_C000 182 7 16 1 SOWireMng One Wire management ee 183 7 16 2 sOWRdldentifier One Wire read ROM identifier i 184 7 16 3 SOWRdTemperature One Wire read temperature e 186 7 16 4 SOWRdHumidity One Wire read humIdity cece seeceeeeeeeeeeeeeeaeeeeseeeeeeaeeeeseeeeseeeessaeeessaeeeseeseeeeeaeees 188 7 17 Funzioni ed FB gestione networkiNg rr
243. ng Hello World 1 FIND AString World Result is 7 J FIND Hello World World World k FIND World Hello Result is 0 Result is 7 STRING INSERT STRING S0 STRING S1 ANY_INT P Inserisce nella stringa SO la stringa S1 partendo dalla posizione P AString Hello everybody BString World Lt CString INSERT AString BString 6 CString is Hello World 27 STRING LEFT STRING IN ANY_INT L Ritorna gli L caratteri pi a sinistra della stringa IN AString Hello World Bstringi LEFT Astring 7 Bstring is Hello W UINT LEN STRING IN Ritorna la lunghezza Numero di caratteri della stringa IN AString Hello World i LEN ASEring 1 is 13 STRING MID STRING IN ANY_INT L ANY_INT P Ritorna gli L caratteri della stringa IN partendo dal carattere in posizione P AString Hello World BString MID AString 5 7 Botring is World STRING REPLACE STRING S0 STRING S1 ANY_INT L ANY_INT P Rimpiazza L caratteri della stringa SO con la stringa S1 a partire dalla posizione P AString Hello World BString REPLACE AString to you 5 7 STRING RIGHT STRING IN ANY_INT L Ritorna gli L caratteri piu a destra della stringa IN AString Hello World Bstringi RIGHT Astring 7 BString is World 1 Pag 26 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 Funzioni ed FB Funzioni Le funz
244. ng EOF in caso di arlype errore a VarAdd Parametri funzione String usint Pointer all array dove deve essere trasferito il risultato della stampa SIZE INT Numero di caratteri da trasferire nella variabile String numero definito comprensivo del codice di fine stringa 0 Se la lunghezza della stringa di output supera il limite di Size byte viene troncata al numero di byte indicato Format strinerso Ha due tipi di argomenti i caratteri ordinari che vengono copiati nella variabile String di uscita e le specifiche di conversione contraddistinte dal simbolo percentuale e da un carattere che specifica il formato con il quale stampare la variabile definita VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd unin Indirizzo variabile La funzione ritorna ali Numero di caratteri comprensivo codice fine stringa 0 trasferiti in variabile String EOF Errore esecuzione Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9997100 Tipo variabile non gestito controllare VarType 9997200 Il valore di Size limita la formattazione della stringa in uscita Esempi Su fronte attivazione ingresso DI00M00 viene incrementata la variabile Counter e la stampa del suo valore trasferita nell array StringOut valore presente in StringOut viene poi inviato sulla porta seriale COMO Nella variabile NrOfChars viene
245. nizio del file File txt presente nella directory Storage Definizione variabili Mame Type Address Array niealye een Atth bute Description 1 F FILEF Auto Mo File pointer 2 FFosition DINT Auto Mo O E File position Esempio LD Sysfopen bidd Moo EN ENC FN Storage SCFile te MMS UE pg ME FFosition Offset Emi WESECRESEN gt a Mnl151c080 Pag 94 270 Programmazione IEC 61131 3 LogicLab Flarf Type Library 7 8 5 SysDirListing directory listing FB XTarget_10_0 Questo blocco funzione esegue il listing di tutti i files contenuti in una directory occorre nd Ra i SysDirListing passare il nome della directory di cui eseguire il listing in PathName Attivando l ingresso Init si inizializza la lista dei files e viene ritornato il primo file trovato Ad ogni comando Next si ultime esegue la ricerca di un nuovo file nella directory selezionata Next Fault i o i n a PathMame lsDir Se file trovato l uscita Found si attiva per un loop e ne viene rtornato il nome in FileName T Ize Terminato l elenco di tutti i files presenti nella directory su comando Next non viene piu l attivata l uscita Found e FileName abblencato L uscita IsDir si attiva se il nome del file Mimie ritornato quello di una sottodirectory FileName Init B001 Alla attivazione viene inizializzato l indice dei files nella directory indicata e viene ritornato il nome del primo file trovato
246. nizione variabili Mame Type Address Array Init value Attribute Description 1 FB_GIU GIU AUTO Mo O CTU counter Up function block 2 QutValue INT Auto Mo U 3 Qutput value Esempio LD PTP1154100 CTU_LD FB_CTU CTU DiDa hoo Do00h00 oc ll th a DiD 1 MOO ___ r r rrrrrrrrrrrrr____ I cy Outvalue cio Esempio IL CAL FBCTU Call the CTU function block LD 10 ST FBCTU PV Preset counter LD D100M00 ST EB CTU CU On the raising edge of digital input the counter count up LD Di01M00 ST BE CTU R Li the digital input ig Seb the counter Lo resect j LD FBCTU Q ST Do00M00 If the counter value has reached the preset the digital output is set LD FB_CTU CV ST OutValue The counter value is copied to the variable Mnl151c080 Pag 42 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Type Library 7 3 3 CTUD Counter Up Down FB ePLCStdLib_B000 Questo blocco funzione esegue la gestione di un counter in incremento e decremento Agendo sull ingresso di reset R possibile in qualsiasi momento azzerare il valore del counter CV Agendo sull ingresso di load LD possibile in qualsiasi momento trasferire il valore di preset definito su PV nel CU Gu counter CV CD OD R CU CTUD Ad ogni fronte di attivazione dell ingresso CU il valore del counter CV viene incrementato Quando il valore del counter CV raggiunge il valore di preset definito su PV l uscita
247. nizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP AUTO Mo 0 File pointer 2 oktlsn SysSktlisten Auto Mo j 7 Socket listen FA 3 SktDone BOOL Auto Mo FALSE n Socket done 4 SktConnect BOOL Auto Mo FALSE 7 Sacket connect 5o Dummy BOOL AUTO Mo FALSE Dummy variable E ChrsAy BOOL Auto Mo FALSE 4 Characters available Esempio LD PTP119A200 TCPSocketEcho Systopen SysFirstLoop EN END rr iI li VNVIDODOYO i TOPSKT Sar Fp tant hlode SktLsr SysSktListen SysFirstLoop SktDone APP _ N I A O ON LI IN NN ARP Enable Done Fp_ gt File Fault SktConnect hylP Connect 1000 MyPort ClientlP 120 LifeTm ClientPort 100 FlushTm 250 Resize 250 TxSize Sys Getl Chars GE SktConnect EH ENC EN EN Dummy t rp File sau e Syst pute sun li EN ENO Mnl151c080 Pag 193 270 Programmazione IEC 61131 3 LogicLab Faszt i Type Library 7 17 3 SysUDPSktRcv UDP socket receive FB XTarget_07_0 Questo blocco funzione esegue la ricezione dati da un socket UDP occorre passare alla FB un flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione ii Sysfopen ed il socket deve essere stato posto in condizione di listening dalla FB Enable Done SysSktListen File Fault parametri PeerIP e PeerPort indicano l indirizzo IP e la porta da cui sono accettati i dati se 88 Senne non connessi sono accettate connessioni da
248. nvincente nell ambito delle energie alternative non pu prescindere dallo sviluppo di soluzioni per il risparmio energetico La linea di Inverter fotovoltaici Aurora comprende sia modelli per la connessione in rete sia isolati con o senza trasformatore e concepiti per applicazioni da esterno e da interno Tutti i prodotti della gamma si posizionano per soluzioni di progetto e tecnologia costruttiva ai vertici del mercato e sono caratterizzati da elevatissima affidabilit innovazione ed efficienza Inverter Aurora Alta efficienza di conversione e estrema facilit di manutenzione grazie alla possibilit di inserzione e disinserzione rapida dei moduli fotovoltaici La scalabilit del sistema grazie alla architettura Add on consente di coprire un ampia gamma di applicazioni fino a 300kW su singolo armadio Disponibile anche la versione senza trasformatore BT per connessione diretta ad una cella di media tensione con trasf MT Mnl151c080 Pag 209 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 20 1 AuroraDSPMeasure Aurora measure request to DSP FB ePowerOneLib_B000 Questo blocco funzione esegue la lettura delle misure dal DSP di un inverter Aurora della Power i i vi i Aurora DSP Measure One connesso al dispositivo di I O definito in File Questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi Enable Don
249. nzione Sysfopen Baudrate unin Valore di baud rate porta seriale da 300 a 115200 baud Parity stRINC 1 Tipo di parit valori possibili E pari O dispari N nessuna DataBits usin Numero di bit frame dato valori possibili 7 8 StopBits usint Numero di bit di stop valori possibili 1 2 DTRManagement usnm Modo di gestione del segnale DTR sulla porta seriale vedi definizione DTRComplement eoo FALSE DTR normale TRUE DTR complementato EchoFlush 8001 FALSE dati trasmessi sono ritornati in ricezione TRUE dati trasmessi sono ignorati DTROnTime un Tempo di attesa dopo attivazione segnale DTR prima di trasmissione caratteri mS DTROffTime unt Tempo di attesa dopo trasmissione ultimo dato prima e disattivazione segnale DTR mS Done 6001 Impostazione modo eseguito correttamente Fault B001 Errore su esecuzione blocco funzione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10006010 Lettura modo corrente in errore la funzione SysGetSerialMode ritornata con errore probabilmente non stato indicato correttamente il file pointer Fp 10006020 Impostazione modo in errore la funzione SysSetSerialMode ritornata con errore probabilmente uno dei parametri definiti non nel range corretto Mnl151c080 Pag 101 270 Programmazione IEC 61131 3 LogicLab Esempi 5 Flee Al primo loop di esecuzione p
250. nzione Sysfopen definendo il nome della porta da utilizzare Esistono moduli di estensione che sono provvisti di porte seriali l accesso a queste porte esattamente uguale a quello delle porte presenti sul modulo CPU Si utilizza la definizione PCOMx y dove con x si indica l indirizzo del modulo e con y il numero di porta presente sul modulo Esempio PCOMO 0 definisce la porta 0 presente sul modulo 0 PCOMT7 2 definisce la porta 2 presente sul modulo 1 e cos via Per accedere al file system Sia sul disco interno al sistema che su SD Card occorre utilizzare la funzione Sysfopen Nei modelli provvisti di porta Ethernet possibile gestire connessioni sia UDP che TCP IP utilizzando la funzione Sysfopen Mnl151c080 Pag 8 270 Programmazione IEC 61131 3 LogicLab 2 1 Architettura memoria La memoria del sistema cos suddivisa 5 Flea DB Dimensione Descrizione IXO 32 Bytes Ingressi logici modulo 00 R IX1 32 Bytes Ingressi logici modulo 01 R IX2 32 Bytes Ingressi logici modulo 02 R IX3 32 Bytes Ingressi logici modulo 03 R 1X4 32 Bytes Ingressi logici modulo 04 R IX5 32 Bytes Ingressi logici modulo 05 R IX6 32 Bytes Ingressi logici modulo 06 R IX7 32 Bytes Ingressi logici modulo 07 R IX8 32 Bytes Ingressi logici modulo 08 R IX9 32 Bytes Ingressi logici modulo 09 R IX10 32 Bytes Ing
251. o 0 FA SysDateToETime data 2 Hour USINT AUTO No U Day 3 Minute LISINT Auto Mo 0 Month 4 Second LISINT Auto Mo O Year 5o Day USINT Auto Mo O Day 6 Month LISINT Auto Mo 0 Month f Year WINT Auto Mo 0 Year 8 EpochTime UDINT Auto Mo 0 Epoch time Esempio LD PTP116A100 LD_SysDateToETime FA SyeDate ToEtime Sys Date To ET me Enabled ENO Year Yeas Done Month gt Month Fault Day Day EpochTime Hour gt Hour Minute gt _ Minute Second gt Second Dodi MOO Do 1 MOO EpochTime Esempio IL PTP116A100 IL_SysDateToETime Transfer date e time to FB input variable LD Year Sr EB SysDalelortime Year LD Month ST FB SvsDateToBtime Month LD Day ol EB SysDalelortime Day CAL FB SysDateTloEtime Call the SysDateToEtime function block Transfer the FB output variables to program variables LD FB SysDateToEtime EpochTime ST EpochTime Esempio ST PTP116A100 ST_SysDateToETime Here FB SysDateToETime is executed and variables copied FB SvsDbDateTostime Yeari Year FB SysDateloEktime Month Month FB SysDateloktime Day Day FB SysDateloEtime Call the SysDateTortime function block EpochTime FB SysDateToEtime Epochlime Epoch time Mnl151c080 Pag 73 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 7 Funzioni ed FB per gestione terminale di I O Type Library 7 7 1 f fil Sysfopen file open Function XTarget_07_0
252. o CALL RETC Ritorna al programma che ha eseguito CALL se accumulatore diverso da zero Mnl151c080 Pag 263 270 Programmazione IEC 61131 3 LogicLab 12 2 Operatori linguaggio ST 5 Flee Nella tabella seguente sono riportati gli operatori utilizzabili nel linguaggio ST Gli operatori sono riportati in tabella in base alla loro priorit dall alto verso il basso quindi le parentesi hanno priorit maggiore su tutti gli altri operatori Operatore Simbolo Esempio Parenthesization Espressione Function evaluation Funzione Argomenti LN A MAX X Y etc Negation Complement NOT Exponentiation s Multiply Divide Modulo MOD Add Subtract Comparison e Equality Inequality lt gt Boolean AND amp Boolean AND AND Boolean Exclusive OR XOR Boolean OR OR Mnl151c080 Pag 264 270 Programmazione IEC 61131 3 LogicLab 12 3 Statements linguaggio ST 5 Flee Nella tabella seguente sono riportati gli operatori utilizzabili nel linguaggio ST Gli operatori sono riportati in tabella in base alla loro priorit dall alto verso il basso quindi le parentesi hanno priorit maggiore su tutti gli altri operatori Statement Esempio Assignment A B CV CV 1 C SIN X FB Invocation and output usage CMD_TMR IN IX5 PT T 300ms A CMD TMR Q RETURN RETURN IF D B B 4
253. o da contatore 10016200 Overflow ricezione stringa da contatore Mnl151c080 Pag 168 270 Programmazione IEC 61131 3 LogicLab Faszt Esempi E disponibile un programma di esempio Ptp122 000 che esegue la lettura da un contatore di energia di 3 registri A titolo indicativo diamo un esempio di massima per la lettura di un registro Su attivazione dell ingresso digitale Di00M00 viene eseguita la lettura del registro 1 8 0 Potenza in Kw Se la lettura ha esito positivo si attiva per un loop l uscita digitale Di00M00 Le variabili MeterCode Password e Value saranno valorizzate con i valori letti dal contatore Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo U File pointer 2 heterRd IEC62056_21 Auto NO 0 o IEC62056_ 21Rd FB data 3 TString STRING Auto 32 ai Tx data string 4 FxString STRING Auto 32 n Rx data string 5 MeterCode STRING AUTO 32 di Meter code E Password UDINT AUTO Ko 0 ai Meter password 7 Value STRING Auto 32 n Variable read value Esempio LD PTP114A000 LD_IEC62056_21Rd hdeterRd IECE2056_27Rd DOORoO ei Enables Done Fp_ gt File Fault 2346673 SerialMr TxString 4 8 0 Register RxString beterCode Dod Mod D 001 OO TxString RxString hieterCode F asanvord Walue Mnl151c080 Pag 169 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 15Funzioni ed FB gestione modem eMod
254. o di tempo di uno o pi giorni della settimana Le azioni possono essere ad esempio Nessuna ignorare il messaggio Visualizzarlo nel programma di monitoraggio Inviarlo ad un altro Syslog server Emettere un suono di allarme Eseguire un programma Inviare un E mail Memorizzare il messaggio in un Database esempio MySQL Memorizzare il messaggio in un logfile Eseguire uno script ecc Per le mie necessit ho utilizzato Syslog Watcher Sito http www snmpsoft com un ottimo programma gratuito di seguito uno screenshot con la visualizzazione di notifiche inviate da un sistema SlimLine Q Q BERR ig 8 OO ote rt Serve r Stop Server Status Filter Search Import Export Delete Reports Storage Settings Vendor Pack Help Info 1000 messages Update every 10 seconds Updated at 27 01 2012 09 31 35 AutoScroll t Source lP Source Ma Facility Severity Timestamp 27 01 2012 09 10 49 423 192168 0 syslogd Warning Feb2 09 11 08 0xBE421217 Caldaia Messaggio di prowa 23 01 2012 09 13 50 574 192 168 0 mail Warning Feb 27 09 14 08 0xBE421217 Caldaia Messaggio di prova D Lon EL o E T m 27 01 2012 09 28 32 565 192 168 0 secur auth Notice Feb 27 09 28 51 0xBE421217 Supervisore Ingresso operatore Mr 124288 21 01 2012 09 28 54 488 192 168 0 secur auth Notice Feb 27 09 29 12 0xBE42121 Supervisore Ingresso operatore Mr 233567 Message View Warning syslogd 1
255. o di memoria gi utilizzato dalla variabile precedente E comunque possibile allocare variabili sovrapponendone l indirizzo esempio allocare due variabili BYTE sugli stessi indirizzi di una variabile WORD per andarne a considerare la parte MSB od LSB Oppure allocare due variabili WORD sugli stessi indirizzi di una variabile DWORD per andarne a considerare la parte MSW od LSW Riporto una semplice tabella esplicativa MB100 0 MW7100 0 MD100 0 Byte address Byte address Byte address Byte area identifier Word area identifier Double word area identifier MB100 0 MB100 0 LSB MSB MW100 0 MB100 0 MB100 1 LSB MSB MD100 0 MB100 0 MB100 1 MB100 2 MB100 3 Attenzione SlimLine basato su architettura ARM e questo tipo di architettura assume che Le variabili a 16 bits WORD INT UINT siano allocate in memoria ad indirizzi divisibili per 2 Quindi una variabile a 16 bits potr assere allocata ad esempio ad indirizzo MW100 32 ma non ad indirizzo MW100 33 Le variabili a 32 bits DWORD DINT UDINT REAL siano allocate ad indirizzi divisibili per 4 Quindi una variabile a 32 bits potr assere allocata ad esempio ad indirizzo MD100 32 ma non ad indirizzo MD100 33 MD100 34 MD100 35 Questa regola viene applicata automaticamente dal compilatore di LogicLab anche per quanto riguarda le strutture dati quindi nella definizione di una struttura dati composta da variabili di tipo etero
256. o di prova termina il funzionamento e viene generato un errore che rilevabile con la funzione SysGetLastError Mnl151c080 Pag 32 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 1 Funzioni ed FB per gestione Flip Flop Library 7 1 1 F_TRIG Falling edge trigger ePLCStdLib_B000 Questo blocco funzione attiva l uscita Q per un loop di programma sul fronte di disattivazione dell ingresso di clock CLK ELE CLK soot Clock sul fronte di disattivazione del segnale viene attivata l uscita Q per un loop di programma Q 8001 Uscita attiva per un loop di programma sul fronte di disattivazione dell ingresso di clock CLK Esempi Sul fronte di disattivazione dell ingresso digitale Di00M00 viene attivata per un loop di programma l uscita digitale D000M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBF_TRIG F_TRIG Auto Mo n F_TRIG Falling edge trigger function block Esempio LD PTP1154000 F_TRIG_LD FR F_TRIG F_TRIG COO MOO Doti M d CLE O Esempio IL CAL FBF TRIG Call the F TRIG function block LD Di00M00 ST FBF TRIG CLK Transfer the digital input to the function block clock LD FBF TRIGLO ST Do00M00 On the falling edge of digital input the output is set Esempio ST FBF TRIG Call the F TRIG function block FBF TRIG CLK Di00M00 Transfer the digital input to the function block clock Do00M00 FBF_TRIG Q On
257. o funzione ani SysSktListen PeerlP Sensore PeerPort Su fronte attivazione del comando Acquire viene effettuata la lettura SNMP dal termometro sad STE definito da indirizzo IP PeerlP su porta PeerPort Di default la porta SNMP la 161 Se il comando Acquire mantenuto attivo la lettura viene effettuata in modo ciclico L uscita Done si attiva per un loop al termine della acquisizione dei due valori di temperatura Enable 8001 Abilitazione blocco funzione Acquire B001 Comando acquisizione termometro STE Sul fronte di attivazione si esegue la lettura del valore di temperatura Mantenuto attivo la lettura viene effettuata in modo ciclico File FILEP Flusso dati stream ritornato dalla funzione Sysfopen PeerlP stRING 15 Stringa di definizione indirizzo IP del termometro IP PeerPort unt Porta utilizzata per la connessione Di default la porta SNMP la 161 Done 8001 Attivo per un loop di programma su fine lettura dati Fault B001 Attivo per un loop di programma se errore gestione Sensor REAL Valore di temperatura letto dal sensore 1 C Sensor REAL Valore di temperatura letto dal sensore 2 C Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10013010 Valore di File non definito 10013050 Timeout esecuzione 10013060 Errore case gestione lettura 10013100 Errore controllo indirizzo IP del dispositivo STE 10013120 Errore ricezione d
258. o il tempo trascorso in mS dall impulso di attivazione Raggiunto il tempo i impostato PT in mS indipendentemente dallo stato dell ingresso IN l uscita Q si azzera mentre il tempo iN F in uscita su ET si azzera solo se ingresso IN non pi attivo PP RET IN B001 Ingresso timer attivandolo si attiva l uscita Q ed inizia il conteggio dopo il tempo definito in PT indipendentemente dallo stato dell ingresso IN l uscita Q si azzera PT upint Preset tempo definisce il tempo di attivazione dell uscita Q espresso in mS Q B001 Uscita timer si attiva all attivazione dell ingresso IN per il tempo definito in PT ET upint Tempo timer inizia conteggio da attivazione ingresso IN raggiunto tempo impostato in PT si arresta conteggio espresso in mS Esempi Il timer presettato a 5 secondi 5000 mS Attivando l ingresso digitale DI00M00 si attiva immediatamente l uscita digitale DO00MO00 ed il valore di tempo nella variabile VarOut inizia il conteggio Raggiunto il tempo definito 5 secondi l uscita Do00MO00 si azzera mentre il valore di tempo nella variabile VarOut rimane bloccato sul valore di preset 5000 mS sino alla disattivazione dell ingresso DI00MO00 Disattivando l ingresso digitale DiIO0M00 durante la temporizzazione non si hanno ripercussioni ne sullo stato dell uscita Do000M00 n sul valore della variabile VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBeTP eTP Auto Mo
259. o in comunicazione tra di loro Fault B001 Attivo per un loop di programma se errore gestione RxDataOk 001 Attivo per un loop di programma su ricezione buffer dati da altro sistema TxDataSent 8001 Attivo per un loop di programma al termine trasmissione buffer dati verso altro sistema Errors uint Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 10014050 Valore di File non definito 10014100 Terminato spazio memoria rilocabile non possibile eseguire I FB 10014200 2 Errore ricezione frame dati blocco di memoria 10014300 2 Errore ricezione frame acknowledge 10014400 Ricevuto comando non gestito 10014500 1 Errore sequenze di trasmissione 10014600 Timeout invio frame dati blocco di memoria Mnl151c080 Pag 197 270 Programmazione IEC 61131 3 LogicLab 4 Elaz Esempi Nell esempio viene scambiato un blocco di memoria di 16 bytes verso il sistema con IP 192 168 0 126 Definizione variabili Name Type Address Array Init value Attribute Description 1 PeerlPOk BOOL Auto No FALSE Peer IP is reached 2 RxData Auto 0 15 16 0 Rx data buffer 3 SktAvailable BOOL Auto No FALSE Socket available 4 TxData BOOL Auto 0 15 16 0 Tx data buffer 5 Fp FILEP Auto No 0 UDP socket 6 IPReach SyslPReach Auto No 0 IP reac
260. o ingresso si inverte l incremento di quota EQuote in funzione della direzione di rotazione encoder Attivando questo ingresso si ha il reset della quota EQuote al passaggio della tacca di zero encoder Attivando questo ingresso sul fronte di variazione dell ingresso di Gate viene trasferito il valore di EQuote in GQuote Attivando questo ingresso viene gestito il fronte di disattivazione dell ingresso Gate Dato encoder acquisito viene attivato per un loop al termine della acquisizione encoder Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Tacca di zero encoder acquisita viene settata su acquisizione tacca di zero encoder si resetta disattivando l ingresso ZeroEn Segnale di Gate acquisito viene attivato per un loop alla acquisizione del segnale Gate Quota di gate valore di quota encoder EQuote memorizzata sul fronte selezionato del segnale Gate Quota encoder valore di quota encoder al raggiungimento del valore minimo o massimo viene eseguito il roll over Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9980050 9980060 9980070 9980100 9980110 2 9980200 9980210 2 9980990 Mnl151c080 Errore allocazione blocco funzione Terminato spazio memoria rilocabile non possibile eseguire I FB Errore versione blocco funzione Il modulo indirizzato in Address non presente Il modulo indirizzato non su
261. oBit In bo In BYTE Valore byte da convertire b1 bO Bool Bit 0 di In be b7 Bool Bit 7 di In b5 bE by Esempi Lo stato del bit 0 della variabile Varinp viene trasferito sull uscita digitale D000M00 lo stato del bit 1 della variabile Varlnp viene trasferito sull uscita digitale Do01M00 e cos via fino allo stato del bit 7 della variabile Varinp viene trasferito sull uscita digitale Do07M00 Per semplicit negli esempi IL e ST non vengono riportati tutti i bit Definizione variabili Mame Type Address Array Init value Attribute Description 1 Varlnp USINT AUTO No 7 Variable input 2 FBData Byte Tobit Auto Mo A FA Byte to bit data 3 Dummy BOOL Auto Mo FALSE p Dummy variable Esempio LD PTP114A100 LD_ByteToBit FAD ata ByteToBit Dummy EH ENO Varlnp In bo bi Dodo Moo Dodd Woo Dolz hoo bz Pods hoo ba Do03h00 b4 D 005 hoo b5 Do06 Mig bi Do07 Woo by Esempio IL PTP114A100 IL_ByteToBit LD VarInp ST FBData In Transfer the variable to input CAL FBData Call the ByteToBit function block LD FBData b0 ST Di00M00 Transfer output bit to digital output Esempio ST P7P114A100 ST_ByteToBit FBData In VarInp Call the ByteToBit function block Do00M00 FBData b0 Transfer output bit to digital output Do01M00 FBData bl Transfer output bit to digital output Mnl151c080 Pag 49 270 Programmazione IEC 61131
262. ocouple T type Celsius degree AD_VIN_VREF_G_1 USINT 90 Voltage in Voltage reference with gain 1 AD_VIN_VREF_G_128 USINT 97 Voltage in Voltage reference with gain 128 AD_VIN_VREF_G_16 USINT 94 Voltage in Voltage reference with gain 16 AD_VIN_VREF_G_2 USINT 91 Voltage in Voltage reference with gain 2 AD_VIN_VREF_G_32 USINT 95 Voltage in Voltage reference with gain 32 AD_VIN_VREF_G_4 USINT 92 Voltage in Voltage reference with gain 4 AD_VIN_VREF_G_64 USINT 96 Voltage in Voltage reference with gain 64 AD_VIN_VREF_G_8 USINT 93 Voltage in Voltage reference with gain 8 AD_VOLT_0_1 COMMON USINT 5 Voltage from 0 to 1 V Common mode AD_VOLT_0_1 DIFFER USINT 7 Voltage from 0 to 1 V Differential mode AD_VOLT_0_10 COMMON USINT 2 Voltage from 0 to 10 V Common mode AD_VOLT_0_10 DIFFER USINT 9 Voltage from 0 to 10 V Differential mode AD_VOLT_0_ 125 COMMON USINT 1 Voltage from 0 to 1 25 V Common mode AD_VOLT_0 125 DIFFER USINT 8 Voltage from 0 to 1 25 V Differential mode Mnl151c080 Pag 21 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 5 10 Digital to analog mode definizioni modo gestione uscite analogiche Le definizioni modo di gestione uscite analogiche si possono trovare nella cartella Digital to analog mode Define Description DA CURR_0 20 Current from 0 to 20 mA DA CURR _4 20 Current from 4 to 20 mA DA VOLT _0 10 Voltage from 0 to 10 V DA VOLT 0 5 Voltage from 0 to 5 V DA VOLT_M10_10 Voltage from 10 to 10 V DA VOL
263. oggetto attuale dal progetto ed eseguire un import dello stesso oggetto dalla nuova versione della libreria Conclusioni In generale si consiglia di non eseguire il collegamento della libreria ma di includere i singoli oggetti nel proprio progetto questo permette una pi semplice gestione degli aggiornamenti Alcune librerie contengono una serie di oggetti Funzioni e blocchi funzione che sono di vasto impiego in questo caso consigliabile sempre collegare queste librerie Ecco l elenco delle librerie che si consiglia di collegare al progetto Libreria Codice Descrizione ePLCStdLib SFR053 000 Libreria standard 1IEC61131 contiene funzioni e blocchi funzione definiti dalla normativa IEC61131 e non presenti nella libreria embedded del prodotto ePLCAuxLib SFR058 000 Libreria ausiliaria contiene funzioni e blocchi funzione di varia utilit Mnl151c080 Pag 31 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 0 7 Protezione funzioni e blocchi funzione Alcune funzioni e o blocchi funzione di libreria possono essere protetti da un codice che deve essere ordinato separatamente Per abilitarne l esecuzione occorre sbloccarle definendone il codice Stringa alfabetica di 18 caratteri con la funzione Froject a Definitions KyPraject Project SysPCodeAccept Programs La funzione deve essere eseguita una sola volta passando il codice di protezione PLodes se il codice corretto la funzione ritorna TRUE e
264. olare Ad 1 volt corrispondono 1000 litri a 2 volt corrispondono 4000 litri a 3 volt corrispondono 6000 litri Definizione variabili Name Type Address Array Init value Attribute Description 1 Fuel sysGetAninp Auto Mo 0 a Analog acquisition 2 Litres REAL Auto No 0 Fuel quantity Litres 3 VInRef REAL Auto 0 15 1 2 3 13 0 is Level voltage input 4 VOutRef REAL Auto 0 15 1000 4000 6000 13 0 Litres value 5 F v Average Auto No 0 a Level average Esempio FBD P7P114A610 FBD_Linearize Fuel SysGetAnlnp FAW 0 Address Done io Channel Fault Average Linearize AD VOLT_0_10_ COMMON gt hlode Valve Average Vin Litres Coefficient VInReference 1000 0 _ VOutReference ADR a Referencer VinRef _ VOutRef 3 Mnl151c080 Pag 162 270 Programmazione IEC 61131 3 LogicLab 3 Flzazf Type Library 7 13 16 ValueScale scales a value Function ePLCUtyLib C000 Questa funzione esegue la messa in scala di un valore E possibile definire il limite minimo e Value Scale massimo del valore in ingresso da scalare ILow IHigh ed il valore minimo e massimo del input valore in uscita scalato OLow OHigh i L utilizzo di questa funzione particolarmente indicato per convertire valori acquisiti da sensori iKigh in corrente 4 20 mA nella corrispondente unit di misura rilevata dal trasduttore _ Gow High Input REAL Valore in ingresso da scalare ILOW REAL Limite minimo
265. one Channel Fault Sys Get Anlnp Per acquisire gli ingressi digitali presenti sul modulo CPU occorre definire Address 255 e Mode AD_VOLT_0_10 COMMON Mode Value Address qusint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione degli ingressi analogici Range da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo 255 indica il modulo CPU Channel usin Occorre specificare l indirizzo del canale sul modulo Range da 0x00 a OxOF Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Mode usin Occorre specificare il modo di acquisizione analogica Analog to digital mode Done 6001 Dato analogico acquisito viene attivato al termine della acquisizione analogica Fault B001 Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Value REAL Ritorna il valore di acquisizione espresso nella unit definita dal modo di acquisizione Potrebbe essere un valore NaN Not A Number ad indicare un problema nell acquisizione tipicamente sensore rotto Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9983050 Errore allocazione blocco funzione 9983060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9983070 Errore versione blocco funzione 9983080 Impossibile inizializzare il
266. one blocco funzione Send B001 Comando di invio notifica Mode usINT Modo operativo 0 UDP SyslogIP sTRING 16 SyslogPort uint Facility usint Severity sint HostName sTRING 32 Message strinci160 Indirizzo IP server Syslog Porta utilizzata dal server Syslog Codice impianto Codice gravit Nome sistema che invia il messaggio di notifica Testo descrittivo del messaggio di notifica Enabled 8001 Attivo su abilitazione blocco funzione Done 8001 Attivo per un loop al termine dell invio del messaggio di notifica Fault B001 Attivo per un loop su errore esecuzione del comando Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10034020 FB protetta terminato tempo funzionamento in modo demo 10034100 Server Syslog non raggiungibile il server non risponde al ping Mnl151c080 Pag 217 270 Programmazione IEC 61131 3 LogicLab 3 Hey Esempi Nel seguente esempio sono acquisiti gli YO del modulo CPU utilizzando i due ingressi possibile eseguire l invio di un messaggio di notifica al server Syslog con IP 192 168 0 81 sulla porta 514 in UDP Definizione variabili Name Type Address Array Init value Attribute Description 1 Done BOOL Auto No FALSE Li Syslog sent 2 Dummy BOOL Auto No FALSE z Dummy variable 3 Fault BOOL Auto No FALSE 7 Syslog error 4 CPUDIO CPUMOodulelO Auto No 0 Li FB CPU VO management
267. oni ed FB per gestione Data Ora i 70 7 6 1 SysETimeToDate epoch time to date CONVErSION e 70 7 6 2 SysDateToETime date to epoch time cCOnversion rene 72 7 7 Funzioni ed FB per gestione terminale di I O e 74 L 7 1 SVSI0pefi IC 0PEN nale 74 VT 2 EON COSS ME Coeli 76 fal c SYSIGCIC getcharacier WOM lle lla tune TI T SY SIOUNG put character to 16 nn 78 7 7 5 Sysfread read data from file 80 1 1 6 SYSIWNMe Write data to Tile eseisrusessirnsisesenia a ein 81 7 7 1 SysGetlChars get input available characters from file 82 7 7 8 SysGetOSpace get output available space ON file i 83 7 7 9 SysGetRxBSize get file Rx input buffer SIZE e 84 7 7 10 SysGetTxBSize get file Tx output buffer SIZ cece eeeeeceeeeeseeeeeseeeeesaeeesseeesseeeesaeeseeegeeses 85 Mnl151c080 Pag 2 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 7 11 SysFIBfClear file input buffer Clear iiiii 86 7 1 12 SysFOBfClear file output buffer clears uunaiina a aaa a eiai aeeai 87 li AS SysFOBIFush file output DUHEFTUSh L cue ela i 88 1 1 14 SysVarfprintf variable pinto 6 allea 89 GO TPS SY SUC E A E T EA E A E E ETE N A E E E E E T 90 7 8 1 Sysremove file rEMOVE iii 91 7 8 2 Sysrenanme fil
268. ool Ingresso timer attivandolo l uscita Q si attiva immediatamente ed il tempo in uscita ET si azzera Disattivandolo inizia il conteggio e dopo il tempo definito in PT si disattiva l uscita Q PT upint Preset tempo definisce il tempo di ritardo dalla disattivazione dell ingresso IN alla disattivazione dell uscita Q espresso in mS Q B00 Uscita timer si attiva su attivazione ingresso IN e si disattiva dopo il tempo definito in PT dalla disattivazione dell ingresso IN ET upint Tempo timer si azzera su attivazione ingresso IN ed inizia conteggio da disattivazione ingresso IN Raggiunto tempo impostato in PT si arresta conteggio espresso in mS Esempi Il timer presettato a 1 secondo 1000 mS Attivando l ingresso digitale Di00M00 si attiva immediatamente l uscita digitale DoOOMO0 ed il valore di tempo nella variabile VarOut azzerato Disattivando l ingresso digitale DiOOMOO il timer inizia il conteggio del tempo il valore di tempo trascorso dalla disattivazione trasferito nella variabile VarOut Trascorso il tempo l uscita digitale D000MO00 si disattiva Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBeTOF eTOF Auto Mo I eTOF Timer Off function block 2 Qulvalue UDINT Auto Mo Output value Esempio LD P7P115A100 eTOF_LD FBeTOF eTOF DICO Moo DoooMod __________________y_ kkKll N o 1000 FT Outivalue Esempio IL CAL FBeTOF Call
269. ore esadecimale supera 127 il numero sar negativo Tipo INT UINT Le conversioni da qualsiasi tipo verso un UINT tornano il valore dei due bytes meno significativi del valore da convertire espresso in esadecimale Esempio il valore 305419896 16 12345678 torner 22136 16 5678 lo stesso vale per i REAL esempio 90000 0 16 15F90 torner 24464 16 5F90 Per il tipo INT se il valore esadecimale supera 32767 il numero sar negativo Nella programmazione IEC con LogicLab sono previste apposite funzioni di conversione di tipo vediamole Name Input type Output type Function DINT_TO_INT DINT INT Converts a long integer 32 bits signed into an integer 16 bits signed INT_TO DINT INT DINT Converts an integer 16 bits signed into a long integer 32 bits signed TO BOOL Any BOOL Converts any data type into a boolean TO_SINT Any SINT Converts any data type into a short integer 8 bits signed TO_USINT Any USINT Converts any data type into an unsigned short integer 8 bits unsigned TO_INT Any INT Converts any data type into an integer 16 bits signed TO_UINT Any UINT Converts any data type into an unsigned integer 16 bits unsigned TO DINT Any DINT Converts any data type into a long integer 32 bits signed TO_UDINT Any UDINT Converts any data type into an unsigned long integer 32 bits unsigned TO_REAL Any REAL Converts any data type into a floating point 32 bits signed
270. ounter Dodi MOO EN Dot 1 hoo 255 o channel 16 0000040 Mode DICOMOO P _ m ont Cid 1 hoo e ee set Address Dots Woo Mnl151c080 Pag 128 270 Programmazione IEC 61131 3 LogicLab Type 5 Flea Library 7 12 7 SysGetEncoder get encoder input Questo blocco funzione esegue la lettura di un canale encoder Il blocco funzione pu essere XTarget_07_0 utilizzato solo su sistemi che hanno moduli in grado di acquisire encoders incrementali ASSI nce E prevista la gestione della tacca di zero e la possibilit di acquisire valori di quota all interno di un di quia segnale logico di gate Channel Fault RCount ero ZemeEn GateD GateEn oyote Address vusint Channel wsint RCount 8001 ZeroEn B001 GateEn Boot RGate B001 Done 8001 Fault 8001 ZeroD 8001 GateD 8001 GQuote int EQuote unt A Gate EQuote Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione encoder Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito Se viene settato un indirizzo di modulo non presente si interrompe l esecuzione e viene settato il bit di Fault Occorre specificare l indirizzo del canale sul modulo Range da 0 a 15 Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Reverse counting attivando quest
271. po fissato a 10 mS ID_TASK_FAST Identifica la task fast Questa task eseguita con un tempo di loop fisso definito con la funzione SysSetTaskLpTime Di default il tempo fissato a 1 mS Mnl151c080 Pag 18 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 5 3 TermiO definition definizioni per terminale di I O Nella gestione dei terminali di I O sono utilizzate delle definizioni che si possono trovare nella cartella TermlO definition Define Description Identifica un puntatore vuoto Utilizzato come ritorno da alcune funzioni in caso di errore Identifica il fine file Utilizzato come valore di ritorno da alcune funzioni in caso di fine file raggiunto 5 4 FSeek origin definition definizioni per seek su file Nella gestione della ricerca su file sono utilizzate delle definizioni che si possono trovare nella cartella FSeek origin definition Define Description ID_SEEK_SET Inizio del file ID SEEK CUR Posizione corrente file ID_SEEK_END Fine del file 5 5 Serial mode definition definizioni modo seriale Nella gestione dei terminali di I O sono utilizzate delle definizioni che si possono trovare nella cartella Serial mode definition Define Description DTR_OFF Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR sempre i condizione di off DTR_ON Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR sempre
272. pporta i comandi acquisizione encoder Il modo di gestione definito in Mode non gestito dal modulo Errore nella gestione lettura encoder dal modulo Non implementata nel simulatore Pag 129 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Esempi Viene eseguita l acquisizione dell ingresso encoder dal canale 0 del modulo 0 il valore di quota encoder trasferito nella variabile EncoderQte Su fine conversione viene attivata l uscita digitale DoOOMOO se errore di conversione viene attivata l uscita digitale Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData SysGetEncoder Auto Mo 0 ai FB SysGetEncoder data 2 Dummy BOOL AUTO No FALSE n Dummy variable 3 Gateate JINT Auto Mo O a Gate quote 4 Encodertite LINT Auto Mo 0 Encoder quote Esempio LD PTP116A100 LD_SysGetEncoder FBD ata Sys Get Encoder EH ENO 0 Address Done _o_ Channel Fault FALSE RCount Zero FALSE ZeroEn Gate FALSE GateEn Quote FALSE RGate Dodi Midd Dodd Woo Dod MOO Bods MA0 o ate Ute EncoderGte Esempio IL PTP116A100 IL_SysGetEncoder Acquires encoder 0 from module LD 0 ST FBData Address Set module address LD 0 ST FBData Channel Set channel LD FALSE ST FBData RCount Reverse counting ST FBData GateEn Gate enable ST FBData RGate Reverse gate CAL FBData Call the SysGetEncoder function
273. r possibile rilevare il codice di errore 9988100 II modulo indirizzato in Module non presente 9988110 Il tipo variabile definito in VarType non corretto 9988200 Errore durante l esecuzione della scrittura della variabile sul modulo periferico 9988990 Non implementata nel simulatore Esempi Attivando l ingresso Di00MO0 viene eseguita la scrittura della variabile UDINT ad indirizzo 16 sul modulo periferico 0 Il valore da scrivere presente nella DB100 ad offset 8 Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarAdd DB100Addofset Auto NO 0 Variable address calculation Esempio LD VarAdd DEA00Add Offset Pido Mag P c EN ENO E Offset Address Doni hi Dogi Mod Modul O odule 16 irda UDINT_TYPE gt YaType VarAdd Mnl151c080 Pag 134 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Type Library 7 12 11 CPUModulelO CPU module I O management FB ePLCUtyLib_C000 Questo blocco funzione esegue la lettura dei due ingressi digitali e la gestione delle due uscite digitali presenti sul modulo CPU dello SlimLine CPUModuelo Enable Enabled LOD Done DOO Fault ELELE DIO1 Enable goo Abilitazione gestione 1 O attivando l ingresso vengono acquisiti gli ingressi logici e gestite le uscite logiche Disattivando l ingresso vengono disattivate anche le uscite logiche sul modulo CPU DO00 oot Stato della uscita logi
274. r ntEr arrn nrEn renne terrena 190 7 17 1 SysIPReach IP address is reachable iii 191 T l7 2 5Ys9KILisichy Socket ISLC Me onori IT i ERER 192 71A1 0 SYsUDPSKtRev UDP socket receive sanasina iienaa ana ar ia lario aa 194 7 17 4 SysUDPSktSend UDP socket send i 195 7 17 5 UDPDataT xfer UDP data transfer ec cece cece eaeeeceeeeeeaececaeaeaeeneaeaeseceeaeaeeesueneaeaeeneuataeaenetanaenes 197 7 18 Funzioni ed FB supporto prodotti Hw Group CHWGSDPLID ccc cecccceececeeeceeeeeeeeseeeeeeeeseeseeceeeeesseeeeeaeenes 199 7 18 1 STESnmpAca STE termometer acquisition over SNMP i 200 7 18 2 SHWgSProtocol HW group serial protocol 202 7 19 Funzioni ed FB supporto protocollo NMEA eNMEALID 204 7 19 1 NMEASInterface NMEA system interfacCe e 205 7 19 2 GLLSentence Geographic Position sentence 206 7 19 3 MWVSentence Wind Speed and Angle SEntence ccccccccceeeeeeeceeeeeseeeeeseeeeeseeeeeaeeeeeeeeeeseeeaeeeaeeaeees 208 7 20 Funzioni ed FB supporto inverter Power One ePowerORELIb e 209 7 20 1 AuroraDSPMeasure Aurora measure request to DSP eeesneeeeeseeeseeeseeeeeeeeeseeseeeeeneenenees 210 7 20 2 AuroraCEnergy Aurora cumulated energy reading ee 213 7 21 Funzioni ed FB supporto log eLogLib
275. rageBSCFiletd 7S Mnl151c080 Pag 91 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 8 2 Sysrename file rename Function XTarget_07_0 Questa funzione esegue il cambiamento del nome di un file In O dName occorre definire il Sysrename nome del file da rinominare specificando l intero percorso Esempio Storage OldFile txt in NewName occorre definire il nuovo nome del file specificando l intero percorso Esempio Storage NewFile txt UldName a Hewhame Se l operazione di rinomina va a buon fine la funzione ritorna TRUE in caso di errore viene ritornato FALSE Parametri funzione OldName sTRING 32 Nome del file da rinominare NewName strincj32 Nuovo nome da dare al file La funzione ritorna 9900 FALSE Errore esecuzione TRUE Ok esecuzione Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9960100 Funzione richiamata in task fast o slow 9960150 Errore nella dichiarazione OldName 9960160 Directory file OldName non accessibile da utente Admin 9960170 Errore nella dichiarazione NewName 9960180 Directory file NewName non accessibile da utente Admin 9960200 Errore nella rinominazione del file 9960990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene rinominato il file OldFile txt presente nella directory Storage file a
276. raggiunto valore massimo riparte da 0 Trigger di spy Se SpyOn attivo viene eseguita la funzione SysSpyData che permette di spiare il funzionamento della FB Sono previsti vari livelli di triggers TFlags Descrizione 16 00000001 Tx Invio frame comando modbus 16 00000002 Rx Ricezione frame risposta modbus Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10007010 Valore di File non definito 10007050 Timeout esecuzione 10007060 Errore esecuzione 10007080 Errore definizione Type 10007100 Codice funzione definito in Function non gestito 10007120 Valore di Points errato 10007200 2 Errore trasmissione frame comando 10007500 7 Errore in ricezione frame risposta Carattere errato lunghezza errata CRC Mnl151c080 Pag 143 270 Programmazione IEC 61131 3 LogicLab 3 Flarf Esempi Viene presentato un esempio di lettura da un sistema SlimLine slave Viene eseguita la lettura di 16 coils a partire da indirizzo 16 01 dal nodo modbus 1 Il valore dei coils letti trasferito nell array RxCoils Terminata la lettura si attiver per un loop l uscita logica Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 RxeCoils BOOL Auto O 1 5 1600 i Rx coils data buffer 2 Errors UDINT Auto Mo 0 Modbus communication errors 3 F FILEF Auto Mo O n File pointer 4 MdbSn ModbusMaster Auto Mo 0 Modbus master F
277. rammi Attivando Di00MO00 viene abilitata l acquisizione gli ingressi Di01M00 e Di02M00 permettono di calibrare la cella Attenzione le variabili OfsCalibration e FSCalibration devono essere definite RETAIN Nella variabile Weight viene ritornato il peso Avendo definito SGaugeFullScale in Kg anche Value sar espresso in Kg Definizione variabili Mame Type Address Array Init value Attribute Description 1 Weight REAL Auto Mo 0 n Weight Kg 2 SGAcq StrainGaugeAcg Auto Mo Strain gauge acquisition Esempio LD SGACG StrainGaugeAcg Dido MOO J mm Enable Enabled Didi MOO P K ts alibration Done bio2 MOO P po Calibration Fault 0 _ Address Value _o Channel AD_VIN_VREF_ _128 Made 100 0 FilterCt oas FSReference 20 0 SGaugeFullScale 1 956 SGaugeRatio oan Of C alibration OfsCalibration 3 FSC alibration AOR FSC alibration Mnl151c080 Pag 138 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 13 Funzioni ed FB di utilit generale Library 7 13 1 DB100AddOffset returns DB100 address offset ePLCUtyLib_C000 Questa funzione ritorna l indirizzo della locazione di memoria all interno della DB100 il cui offset OOO Add Offset fornito come parametro Offset Address Parametri funzione Offset unt Offset locazione memoria La funzione ritorna DINE Indirizzo della locazione di memoria Esempi La variabile ValueToPrint al
278. rante l esecuzione della lettura ingressi dal modulo periferico Pag 118 270 Mnl151c080 Programmazione IEC 61131 3 LogicLab 3 Faszt Esempi Viene acquisito lo stato degli 8 ingressi bassi Da Inp 0 a Inp 7 del modulo di con indirizzo 0 Se dato valido viene attivata la variabile FBDone se errore di acquisizione viene attivata la variabile FBFault l valore acquisito nel range da 0x00 a OxFF trasferito nella variabile InpValue Definizione variabili Mame Type Address Array Init value Attribute Description 1 FeData SysGetPhrDI Auto Mo O n FB SysGetPhrD data 2 InpYalue WIDINT Auto Mo O n Digital input value 3 Dummy BOOL Auto Mo FALSE Li Dummy variable 4 FBDone BODL AUTO Ma FALSE id FA done 5 FF ault BOOL Auto Mo FALSE E FA fault Esempio LD P7TP116A100 LD_SysGetPhrDI FBD ata Sys Get Phr Ol FBDone FEFault Inp alue Esempio IL PTP116A100 IL_SysGetPhrDI Read Inp 0 to 7 from module with address 0 LD 0 ST FBData Address LD DI 8 LL ST FBData Mode CAL FBData LD FBData Value ST InpValue Esempio ST P7P116A100 ST_SysGetPhrDI Read Inp 0 to 7 from module with address 0 FBData Address 0 FBDate Mode DI 8 LL FBData Execute FB InpValue FBData Value Digital input value Mnl151c080 Pag 119 270 Programmazione IEC 61131 3 LogicLab Eleaf Questo esempio una evoluzione dell esempio precedente Utilizzando il blo
279. rasmissione frame risposta 10038501 Eccezione 01 llegal function comando ricevuto non tra quelli gestiti 10038502 Eccezione 02 Illegal data address comando ricevuto ha indirizzo o numero dati fuori range 10038503 Eccezione 03 Illegal data value comando ricevuto ha campo dati fuori range 10038504 Eccezione 04 Failure in associated device comando ricevuto contiene imprecisioni Mnl151c080 Pag 146 270 Programmazione IEC 61131 3 LogicLab 3 Hey Esempi Viene gestito il protocollo modbus slave su porta seriale COMO si utilizza le impostazioni seriali di default 115200 e 8 1 comandi modbus possono agire sull array di WORD DArray Definizione variabili Name Type Address Array Init value Attribute Description 1 RxDone BOOL Auta No FALSE z Modbus Rx command Ok 2 RxFault BOOL Auto No FALSE 5 Modbus Rx command fault 3 Fp FILEP Auto No 0 3 File pointer 4 MdbSn ModbusSlave Auto No 0 n Modbus RTU slave FB 5 DArray WORD Auto 0 31 32 0 Modbus accessible area Esempio LD PTP114A610 LD_ModbusSlave Sysfopen SysFirstLoop EN MdbSn Modbus Slave RxDone Enable Donel Fe_ gt File D2 me RxFault 1000 DAray _32 Size 2000 __ IFTime Mnl151c080 Pag 147 270 Programmazione IEC 61131 3 LogicLab Library 7 13 6 ONOFFCYCLE on off cycle with random times ePLCUtyLib_C000 Questo blocco funzione esegue la temporizzazione
280. re NMEAID in uscita dal blocco funzione di gestione dispositivo Enable Done e NMEAID Fault Mwy Sentence La sentenza MWV contiene le informazioni di velocita e direzione del vento esempio di sentenza IIMWV 120 09 R 4 53 N A 35 WSpeed WPAngle L FB controlla correttezza dei campi della sentenza e ne estrae le informazioni di velocit e direzione L uscita Done si attiva per un loop ad ogni ricezione di sentenza MWv corretta Enable s001 Abilitazione blocco funzione NMEAID wont ID interfaccia con sistema NMEA fornito in uscita dal blocco funzione NMEASInterface Done 6001 Attivo per un loop di programma su ricezione sentenza MWV corretta Fault B001 Attivo per un loop di programma se errore sentenza WSpeed reaL Valore di velocit del vento Nodi WPAngle reat Valore angolo polare Relative direzione vento Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10020010 NMEAID non definito 10020020 NMEAID non corretto 10020100 Errore nel valore di velocit vento Mnl151c080 Pag 208 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 7 20 Funzioni ed FB supporto inverter Power One ePowerOneLib Power One uno dei principali produttori mondiale di sistemi di alimentazione Power One di diritto anche nel settore delle energie alternative con applicazioni per sistemi eolici ed inverter fotovoltaici Oggi una strategia co
281. registri Read memory bytes User function Massimo 250 bytes Write memory bytes User function Massimo 250 bytes Address uint Indirizzo di allocazione variabili su sistema slave In accordo alle specifiche modbus l indirizzo inviato nel frame dati Address 1 Range da 16 0001 a 16 FFFF Points usint Numero di variabili consecutive su cui opera il comando Buffer usint Indirizzo buffer dati letti o da scrivere Mnl151c080 Pag 142 270 Programmazione IEC 61131 3 LogicLab 3 Faszt IF Time uoint Tempo ricezione caratteri uS se comunicazione su porta seriale il tempo deve essere definito in base al baud rate Nel caso di comunicazione su rete ethernet possibile definire il valore minimo Baud rate Tempo Baud rate 112000 19200 56000 38400 28000 57600 14000 76800 7000 115200 3430 Timeout unt Tempo massimo esecuzione comando espresso in mS Se il comando non termina nel tempo definito viene abortito ed attivata l uscita Fault Delay uint Tempo di pausa dopo l esecuzione del comando modbus espresso in mS Done 6001 Si attiva al termine della esecuzione comando Ok 8001 Attivo per un loop se esecuzione comando corretta Fault B001 Attivo per un loop se errore esecuzione comando SpyTrg unin Trigger per FB SpyDataFile SpyPtr q usint Puntatore a buffer dati da spiare Errors uDINT Numero di errori incrementato ad ogni nuovo errore
282. ressi logici modulo 10 R X11 32 Bytes Ingressi logici modulo 11 R X12 32 Bytes Ingressi logici modulo 12 R IX13 32 Bytes Ingressi logici modulo 13 R X14 32 Bytes Ingressi logici modulo 14 R IX15 32 Bytes Ingressi logici modulo 15 R IX255 32 Bytes Ingressi logici modulo CPU R QXO 32 Bytes Uscite logiche modulo 00 RAV QXI 32 Bytes Uscite logiche modulo 01 R W QX2 32 Bytes Uscite logiche modulo 02 R W QX3 32 Bytes Uscite logiche modulo 03 R W QXA 32 Bytes Uscite logiche modulo 04 RAV QX5 32 Bytes Uscite logiche modulo 05 R W QX6 32 Bytes Uscite logiche modulo 06 R W QX7 32 Bytes Uscite logiche modulo 07 RW QX8 32 Bytes Uscite logiche modulo 08 RAV QX9 32 Bytes Uscite logiche modulo 09 RAV QX10 32 Bytes Uscite logiche modulo 10 R W QX11 32 Bytes Uscite logiche modulo 11 R W QX12 32 Bytes Uscite logiche modulo 12 RAV QX13 32 Bytes Uscite logiche modulo 13 RAV QX14 32 Bytes Uscite logiche modulo 14 RAV QX15 32 Bytes Uscite logiche modulo 15 RAV QX255 32 Bytes Uscite logiche modulo CPU R W MXO 512 Bytes Variabili di sistema sola lettura R MX1 512 Bytes Variabili di sistema lettura scrittura RW MX100 4096 Bytes Memoria utente R W Da indirizzo 2048 a 4095 i dati sono ritentivi Mnl151c080 Pag 9 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 2 2 Memoria di backup Retain SlimLine dispone di 2048 bytes di memoria ritentiva nell area memoria utente MX100 ed ulteriori 2000 bytes di
283. rf Esempi Viene convertito il valore di data ed ora espresso in epoch time dalla variabile SysDateTime e viene ritornato il valore di anno mese e giorno nelle tre variabili definite Definizione variabili Name Type Address Array Init value Attribute Description 1 FB_SysETimeToDate SysETimeToDate Auto Mo O FA SysETimeToDate data 2 Year WINT Auto Mo 0 Year 3 Month USINT Auto Mo 0 Month 4 Day USINT Auto Mo O Day Esempio LD P7P116A100 LD_SysETimeToDate FB_SysETimeToDate Sys ETi me To Date Enabled EN ENO SysD ate Time gt EpochTime Esempio IL PTP116A 100 IL_SysETimeToDate Transfer system date e time to FB input variable LD SysDateTime ST FB SyskTimeToDate EpochTime CAL FB SysETimeToDate Call the SysETimeToDate function block Transfer the FB output variables to program variables LD FB SysETimeToDate Year ST Year LD FB SysB amp timeloDate Month ST Month LD FB SysETimeToDate Day ST Day Esempio ST PTP116A100 ST_SysETimeToDate Here FB SysETimeToDate is executed and variables copied FB sysklimeloDate Rpochlime SysDatelime FB SysETimeToDate Year FB SysETimeToDate Year Year Month FB SysETimeToDate Month Month Day FB SysETimeToDate Day Day Mnl151c080 Pag 71 270 Programmazione IEC 61131 3 LogicLab Library XTarget_07_0 7 6 2 SysDateToETime date to epoch time conversion Questo blocco funzione esegue la
284. ri quindi conviene fare seguire ad una trasmissione in broadcast anche una trasmissione peer to peer Nella figura seguente riportato uno scenario tipico di comunicazione multimaster via radiomodem II PLC nodo 0 scambia dati con i PLC nodo 1 e 2 Il PLC nodo 1 scambia i dati con i PLC nodo 0 2 e 3 II PLC nodo 2 scambia i dati con i PLC nodo 0 1 e 3 Il PLC nodo 3 scambia i dati con i PLC nodo 1 e 2 Nel PLC nodo 0 gestita anche la FB di invio in broadcast attivando la trasmissione i dati saranno ricevuti solo dai PLC nodo 1 e 2 e non dal PLC nodo 3 perch non ha attivo nessun scambio con il PLC del nodo che ha inviato il messaggio di broadcast Mnl151c080 Pag 223 270 Programmazione IEC 61131 3 LogicLab Mnl151c080 Pag 224 270 Programmazione IEC 61131 3 LogicLab 3 Hey i Type Library 7 22 1 MMasterDataTxfer multimaster data transfer FB eMMasterDTxferLib_C000 Questo blocco funzione esegue l interfaccia con il terminale di I O definito in File per Master Data Ter gestire la comunicazione multimaster su rete multidrop Questo un blocco funzione a ai l i Enable Enabled protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni i n e blocchi funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min s a se i htyNode hin DtTsfl D Il blocco funzione agisce da server di comunicazione gestendo il dispositivo di O
285. ritornato espresso in numero di caratteri Bytes trasferito nella variabile Space Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILER Auto Mo File pointer 2 Space UDINT Auto No O g Rx buffer space iMr of Chars Esempio LD SysFirstLoop EN ENO COn FHame wiad tant ode Sys GetRx B Size Mnl151c080 Pag 84 270 Programmazione IEC 61131 3 LogicLab Faszt i Type Library 7 7 10 SysGetTxBSize get file Tx output buffer size Function XTarget_07_0 Questa funzione ritorna la dimensione del buffer di output Trasmissione sul flusso dati stream SysGetTxBSize indicato dal parametro File precedentemente aperto dalla funzione Sysfopen File i Parametri funzione File er Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RI Dimensione buffer di output espressa in numero di caratteri Bytes Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9965100 Terminale di I O usato in task fast o slow 9965990 Non implementata nel simulatore Esempi E riportato un semplice programma che ritorna la dimensione del buffer di output Trasmissione della porta seriale COM2 valore ritornato espresso in numero di caratteri Bytes trasferito nella variabile Space Definizione variabili Mame Type Address Array Init value Attribute Description 1
286. rogramma viene aperta la porta seriale COMO viene impostato il modo di comunicazione 19200 e 8 1 Ogni secondo viene inviato sulla porta seriale il carattere A codice ascii 16 41 Definizione variabili Mame Type Address Array Init value Attribute 1 F FILEP AUTO Mo 0 File pointer 2 Dummy BOOL Auto Ko FALSE Dummy variable 3 SMode setsMode AUTO Mo O Set serial mode 4 SMode0k BOOL Auto Mo FALSE set serial mode ok 5 SModeFault BOOL Auto No FALSE set serial mode fault Esempio LD PTP119A000 SendCharacter Sysfopen SysFirstLoop EN FN como MAM ini Mode Shlode SetShlode SysFirstLoop PJ MAPA ees J s 19200 Baudrate DEI Parity 8 DataBits 1 Stopbits DTR_AUTO MO TIMES gt DTRhanagement FALSE DTRComplement FALSE EchoFlush o pTROnTime O DTROFfTime Syst puto SysCloc1000 Fe TO_INT Ch Fil 16 41 Fp A Mnl151c080 Description ENO Fp Dummy ENO ShiodeOk Done SModeFault Fault ENO Pag 102 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library Function XTarget_07_0 Questa funzione ritorna lo stato del segnale CTS della porta seriale connessa al parametro SysGet Serial CTS File precedentemente aperto dalla funzione Sysfopen e Parametri funzione 7 9 4 SysGetSerialCTS get serial CTS signal status File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna Ora FALSE Segnale CTS non attivo TRUE Segnale CTS at
287. sGetOSpace e se lo spazio sufficiente a contenere la stringa o come nell esempio se il buffer di uscita vuoto possibile trasferire la stringa sullo stream con la funzione SysVarfprintff Definizione variabili Name Type Address Array Init value Attribute Description 1 TString STRING AUTO 32 Rx string 2 File FILEP AUTO HO O i File pointer so ili LINT Auto Mo 0 A Auxiliary counter Esempio ST Tx data to stream IF TO UDINT SysGetOSpace File SysGetTxBSize File THEN i TO UINT SysVarfprintf File s STRING TYPE ADR TzString END IF Mnl151c080 Pag 255 270 Programmazione IEC 61131 3 LogicLab 3 Faszt 10 8 Conversione tipo dati La conversione dei dati Detto anche casting una pratica necessaria nella programmazione naturalmente se il tipo dati di destinazione ha un range inferiore del tipo dati di origine viene effettuato un troncamento del valore Vediamo caso per caso le varie conversioni Tipo BOOL Le conversioni da qualsiasi tipo verso un BOOL tornano FALSE se il valore del dato da convertire 0 Tornano TRUE se il valore del dato da convertire diverso da 0 anche lt 0 Tipo SINT USINT Le conversioni da qualsiasi tipo verso un USINT tornano il valore del byte meno significativo del valore da convertire espresso in esadecimale Esempio il valore 4660 16 1234 torner 52 16 34 lo stesso vale per REAL esempio 300 0 16 012C torner 44 16 2C Per il tipo SINT se il val
288. sages _ FB eHMIBuiltInLib_B000 Questo blocco funzione esegue la gestione dei messaggi cos come definiti da LogicLab HMBuiltiniessages Anche se ne riporto la raffigurazione a differenza degli altri blocchi funzione Cmdbisable DEntryDk automaticamente istanziato da LogicLab e non v quindi inserito dall utente nel ijjeunaip hisgID proprio programma Per l utente importante fare riferimento alle sole variabili di Ca svel Unf Built nic ingresso ed uscita dal FB variabili che possono essere utilizzate nel proprio programma Il parametro ALevel configura il livello di accesso ai messaggi settando i bits della variabile si permette di visualizzare solo i messaggi che hanno lo stesso bit definito in Access Level CmdDisable 8001 Disabilitazione comandi terminale Attivandolo non possibile eseguire operazioni ViewMID uint Visualizza messaggio con ID definito ALevel BYTE Pattern livello accesso utente DEntryOk oo Attivo per un loop al termine della inputazione di una variabile MsgiD unt ID del messaggio attualmente visualizzato HMIBuildiInID upin ID messaggi da passare alle FB collegate Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10046010 Tabella messaggi generata da LogicLab non supportata 10046020 2 Non possibile allocare memoria per l esecuzione 10046100 Blocco funzione non eseguito in task di background Back 1004620
289. sferito il modo seriale attualmente impostato sulla porta La funzione ritorna FALSE in caso di errore Parametri funzione Mode asyssERIALMODE Indirizzo struttura SYSSERIALMODE jin cui trasferire il modo letto File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna BOGE FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9995010 Valore di File non definito 9995020 Indirizzo struttura SYSSERIALMODE non corretto verificare Mode 9995100 1 Errore esecuzione funzione 9995990 Non implementata nel simulatore Esempi Su fronte attivazione ingresso Di0OMOO viene salvato il modo impostato sulla porta seriale COMO nella variabile Sm e viene attivata l uscita DoOOMOO Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILER Auto Mo 0 E Port COMO file pointer 2 Sm SYSSERIALMODE Auto Mo x Serial mode data struct 3 Fulse BOOL Auto Mo FALSE Pulse flag Esempio ST P7TP116A300 ST_SysGetSerialMode Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Check if the COMO port is open IF Fp lt gt NULL THEN Check if input is activated IF Di00M00 lt gt Pulse THEN Pulse D100M00 Pulse flag On input raising edge
290. si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9975005 Blocco funzione non supportato 9975050 Errore allocazione blocco funzione 9975060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9975070 Errore versione blocco funzione 9975100 Valore di File non definito 9975110 Tipo di stream definito in File non corretto 9975200 Errore indirizzo IP connessioni accettate PeerlP 9975300 Errore ricezione dati da socket UDP 9975350 Errore indirizzo IP client ClientiP 9975990 Non implementata nel simulatore Mnl151c080 Pag 194 270 Programmazione IEC 61131 3 LogicLab Type Library Function XTarget_07_0 7 17 4 SysUDPSktSend UDP socket send Questa funzione esegue la trasmissione dati su di un socket UDP occorre passare un SysUDPSktSend flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione _ ije Sysfopen sData Nel parametro TxData bisogna definire l indirizzo del buffer di memoria che contiene i size dati da trasmettere ed in Size occorre definire il numero di bytes di dati da trasmettere PeernlP parametri PeerlP e PeerPort indicano l indirizzo IP e la porta a cui saranno inviati i dati PeerPort Se la trasmissione riuscita verr ritornato il numero di bytes trasmessi Solitamente uguale al valore definito in Size in caso di errore viene ritornato EOF Parametri funzione Fi
291. sibile creare nuovi files cancellare files esistenti rinominare files esistenti leggere e scrivere dati nei files Mnl151c080 Pag 90 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 8 1 Sysremove file remove Function XTarget_07_0 Questa funzione esegue la rimozione cancellazione di un file In Name occorre definire il Sysremowe nome del file da eliminare specificando l intero percorso Esempio Storage File txt M Se l operazione di rimozione va a buon fine la funzione ritorna TRUE in caso di errore viene ritornato FALSE Parametri funzione Name sTRING 32 Nome del file da cancellare La funzione ritorna BOUL FALSE Errore esecuzione TRUE Ok esecuzione Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9961100 Funzione richiamata in task fast o slow 9961150 Errore nella dichiarazione del nome file 9961160 Directory non accessibile da utente Admin 9961200 Errore nella cancellazione del file 9961990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene eliminato il file File txt presente nella directory Storage Definizione variabili Mame Type Address Array Init value Attribute Description 1 Removedk BOOL Auto Mo FALSE i File remove Ok Dummy BOOL Auto Mo FALSE Durmir Esempio LD Sysre mowe cap is EH ENO Dummy Removedk H Sto
292. sion bus Function XTarget_07_0 Questa funzione gestisce la scrittura lettura sul bus I2C di estensione L utilizzo di questa Sys l2Cvvr Fd funzione permette di poter gestire qualsiasi componente I2C connesso al bus di estensione Address Attenzione siccome il bus I2C utilizzato per l accesso ai moduli di estensione per wlithytes non rallentarne l accesso si consiglia di eseguire comandi 2C non pi lunghi di 4 iirButfer bytes in scrittura e lettura Nel caso serva gestire pi bytes si consiglia di spezzare il _ Rabytes comando in pi comandi consecutivi RdBuffer Parametri funzione Address usint Indirizzo dispositivo I2C range da 16 00 a 16 1F da 16 30 a 16 7F WrBytes usin Numero di bytes dati da scrivere 0 se solo lettura WrBuffer usint Indirizzo buffer memoria che contiene i dati da scrivere NULL se solo lettura RdBytes usin Numero di bytes dati da leggere 0 se solo scrittura RdBuffer usinty Indirizzo buffer memorizzazione dati letti NULL se solo scrittura La funzione ritorna 1900 TRUE Comando eseguito correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9953100 Indirizzo I2C fuori range Valore superiore a 16 7F 9953105 Indirizzo I2C utilizzato da un modulo di estensione 9953990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue la lettura e scrittura di un chip I O
293. sso digitale Di02M00 il counter viene resettato ed il suo valore in uscita CV posto a 0 resettando anche l uscita QU Attivando l ingresso digitale Di03M00 il counter viene presettato ed il suo valore in uscita CV posto a 10 resettando anche l uscita QD Sul fronte di attivazione dell ingresso digitale Di00M00 il counter incrementato di 1 quando il valore di conteggio raggiunge il valore di preset il conteggio si arresta e viene attivata l uscita del counter QU che attiva l uscita digitale D000MO00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di02M00 che resetta il counter Sul fronte di attivazione dell ingresso digitale Di01M00 il counter decrementato di 1 quando il valore di conteggio si azzera il conteggio si arresta e viene attivata l uscita del counter QD che attiva l uscita digitale Do01M00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di03MO00 che presetta il counter Mnl151c080 Pag 43 270 Programmazione IEC 61131 3 LogicLab Definizione variabili Mame Type Address Array 1 FA_CTUD CTUD Auto Mo 2 Qutvalue INT Auto Mo Esempio LD PTP1154100 CTUD_LD D 00 MOO Didi MODO Dios Woo DIOS Mod Esempio IL Init value CAL FB CTUD Call the CTUD function block LD 10 ST FB CTUD PV Preset value LD Di00M00 Attribute PJ Mmmm iy QU e sep DD n cy PAAR _ _ _ _ _ _ ip Eo 5 Fleet Description C
294. ssumer il nuovo nome di NewFile txt Definizione variabili Mame Type Address Array Init value Attribute Description 1 Dummy BOOL Auto Ko FALSE n Dummy 2 Rename0k BOOL Auto Mo FALSE A File rename Ok Esempio LD Sysrename dia EN ENC Dummy Renamedk OldN Storage SCOldFile tt 7 ams Metti Storagef5CNewFile td lt Seams Mnl151c080 Pag 92 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 8 3 Sysfilelength file lengh Function XTarget_07_0 Questa funzione ritorna la lunghezza in bytes di un file In Name occorre definire il nome del file Systilelength di cui si vuole conoscere la lunghezza specificando l intero percorso Esempio Storage File txt Hame Se il file indicato non presente la funzione ritorna 7 Parametri funzione Name sTRING 32 Nome del file di cui si vuole conoscere la lunghezza La funzione ritorna ZIE Lunghezza file Bytes EOF se file non presente Codici di errore In caso di errore la funzione torna EOF e con SysGetLastError possibile rilevare il codice di errore 9959100 Funzione richiamata in task fast o slow 9959990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene ritornata la lunghezza del file File txt presente nella directory Storage Definizione variabili Name Type Address Array Init value Attribute Description 1 Filesize DIMT Auto Mo 0 File size Esempio LD Sys
295. standardizzato come ISO 11898 1 2003 Mnl151c080 Pag 105 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 10 1 SysCANSetMode set the CAN controller mode Function XTarget_07_0 Questa funzione imposta il modo sul controller CAN E possibile definire il valore di bit Sys CANSetMode rate il filtro e la maschera di accettazione pacchetti an La funzione ritorna TRUE se eseguita correttamente FALSE se errore Filter a flask Parametri funzione BitRate sint Valore definizione bit rate CAN bus CAN bit rate definition Filter DINT Valore di filtro pacchetti CAN Mask upin Valore di maschera filtro pacchetti CAN La funzione ritorna 10904 TRUE Eseguita correttamente FALSE In caso di errore esecuzione esempio parametri errati Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9957005 Funzione non supportata 9957990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue l impostazione del controller CAN con bit rate a 125 Kbit Tutti pacchetti in arrivo sono ricevuti dal controller Definizione variabili Mame Type Address Array Init value Attribute Description 1 D u rmn ra BHOOL Auto Mo FALSE ig Dummy variable Setok BOOL Auto Fo FALSE Na TAN set mode Ok Esempio LD Sys CAN Set Mode CAN 125KBIT p ues 16 00000000 Filter 1600000000 _ ea Mnl151c080
296. sters Word 16 Bit Read 40000 42047 20000 22047 Note 2 Read input registers Word 16 Bit Read 40000 42047 20000 22047 Note 2 Force single coil Bit singolo Write 40000 44095 20000 24095 Note 1 Preset single register Word 16 Bit Write 40000 42047 20000 22047 Note 2 Preset multiple registers Word 16 Bit Write 40000 42047 20000 22047 Note 2 Da versione SFW167D000 l area indirizzabile anche nel range da 20000 a 2xxxx Note 1 Nelle funzioni che accedono al bit singolo In realt ogni bit equivale ad un byte di memoria si utilizza nel comando l indirizzo della variabile quindi dovendo accedere alla locazione MX100 50 utilizzeremo come indirizzo il valore 40050 Note 2 Nelle funzioni che accedono ai registri 16 Bits occorre considerare l indirizzo della variabile diviso per 2 quindi dovendo raggiungere da modbus la locazione MX100 50 utilizzeremo come indirizzo il valore 40025 8 1 2 Lettura variabili da modbus Per la lettura delle variabili si utilizza il comando Read holding registers Codice 0x03 Ipotizzando di dover accedere in lettura ad una variabile DWORD allocata in memoria all indirizzo MX100 64 calcoleremo l indirizzo di lettura nel modo Indirizzo variabile 2 Offset 1 64 2 40000 1 40031 0x9C5F Essendo una variabile DWORD dovremo leggere 2 registri consecutivi a partire dal suo indirizzo di allocazione ipotizzando che
297. t B00L Attivo per un loop su errore lettura tag RFID Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10039050 Errore definizione valore CDLength 10039060 Errore esecuzione 10039100 2 Errore lettura dati tag RFID Mnl151c080 HIDCIkDtaReader Clock Done Data Fault ClData CDLength Pag 160 270 Programmazione IEC 61131 3 LogicLab 3 Flat Esempi Viene gestita la lettura di un reader della HID clock e dato connesso agli ingressi digitali del modulo CPU Ricordo che il programma deve essere eseguito almeno ogni 400 uS quindi si consiglia di eseguilo nella task Fast impostando il tempo di esecuzione a 400 uS Il valore di codice letto dal TAG RFID trasferito nell array CData Definizione variabili Name Type Address Array Init value Attribute Description 1 Clock BOOL Auto No FALSE 2 Clock input signal 2 Data BOOL Auto No FALSE n Data input signal 3 Dummy BOOL Auto No FALSE P Dummy variable 4 Qut0 BOOL Auto No FALSE i Output 0 on CPU module 5 Outi BOOL Auto No FALSE Output 1 on CPU module 6 CData BYTE Auto 0 7 8 0 7 Card data 7 CPUIO CPUModulelO Auto No 0 a CPUModulelO function block RFID HIDCIKDtaReader Auto No 0 RFID read Esempio LD PTP114A610 LD_HIDCardRead RFID Mnl151c080 Pag 161 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 13 15 Linear
298. tLastError possibile rilevare il codice di errore 10035020 FB protetta Terminato il tempo di funzionamento in modo demo 10035100 Il valore di MaxRowLen troppo grande 10035110 Raggiunto il massimo numero di righe di log 10035120 Errore apertura file 10035130 Errore posizionamento nel file 10035140 Errore scrittura nel file 10035150 Errore chiusura file Mnl151c080 Pag 219 270 Programmazione IEC 61131 3 LogicLab 3 Flat Esempi Nel seguente esempio ad ogni attivazione dell input DiIO00M00 viene salvata la stringa presente in Str nel file di nome SDCard MyLog txt Avendo impostato Circular uguale TRUE al raggiungimento di 10 log l undicesimo sovrascrive il primo La variabile Logindex una variabile mappata nell area delle variabili tamponate Definizione variabili Name Type Address Array Init value Attribute Description 1 Str STRING Auto 32 Log string a String to log StrToLog StringToLogFile Auto No 0 FB String to log file 3 Done BOOL Auto No FALSE FB done 4 Fault BOOL Auto No FALSE FB fault 5 Enabled BOOL Auto No FALSE FB enabled Esempio LD StrToLog StringToLogFile Enable DIOOMOD P A R iri st gt StringToLog SDCard MyLog tet Filename TRUE Circular _20 MaxRowLen SE _i0__ MaxRowslnFile RowlndexPtr Mnl151c080 Pag 220 270 Programmazione IEC 61131 3 LogicLab 3 Heysf i Type Library 7 21 3 FileMemoryDump dump memoria su f
299. tLastError possibile rilevare il codice di errore 9954005 Funzione non supportata 9954990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue la trasmissione di un messaggio CAN Definizione variabili Mame Type Address Array Init value Attribute Description 1 CANN sg SYSCANMESSAGE Auto Mo 0 CAN message 2 TKOK BODL AUTO Mo FALSE i Transmission Ok Esempio ST Here check if there is a space in Tx buffer and send a CAN message IF SysIsCANRxTxAv TRUE THEN CANMsg RmReq FALSE eFALSE Data frame eTRUE Remote request CANMsg Length 2 Data length CANMsg MsgID 16 00000000 Message ID FF Bit 31 11 or 29 Bit CANMsg Data 0 16 01 Message data CANMsg Data 1 16 00 Message data TxOk SysCANTxMsg ADR CANMsg Transmission Ok END IF Mnl151c080 Pag 109 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 11 Funzioni ed FB per gestione stringhe Type Library 7 11 1 eLEN string length Function ePLCStdLib_B000 Questa funzione ritorna la lunghezza Espressa in numero di caratteri della stringa definita in Str SEER _ Parametri funzione Str usint Pointer alla stringa di cui calcolare lunghezza La funzione ritorna eee Numero di caratteri della stringa Esempi Viene calcolata la lunghezza della stringa Hello ed il numero di caratteri che compongono la stringa viene trasferito nella variabile Length
300. tRcv UDP socket receive 9976 000 999 SysUDPSktSend UDP socket send 9977 000 999 SysSktListen socket listen 9978 000 999 SysGetCrc get CRC value 9979 000 999 SysDMXMng DMX management 9980 000 999 SysGetEncoder get encoder input 9981 000 999 SysGetCounter get counter 9982 000 999 SysSetAnOut set analog output 9983 000 999 SysGetAnInp get analog input 9984 000 999 SysSetPhrDO set peripheral digital output 9985 000 999 SysGetPhrDI get peripheral digital input 9986 000 999 SysETimeToDate epoch time to date conversion 9987 000 999 SysDateToETime date to epoch time conversion 9988 000 999 SysPhrVWr write variable to peripheral module Mnl151c080 Pag 266 270 Programmazione IEC 61131 3 LogicLab 9989 000 999 SysPhrVRd read variable from peripheral module 9990 000 999 SysPhrinfos get infos from peripheral modules 9991 000 999 SysPCodeAccept accepts the protection code 9992 000 999 SysSetSerialDTR set DTR signal status 9993 000 999 SysGetSerialCTS get serial CTS signal status 9994 000 999 SysSetSerialMode set serial mode 9995 000 999 SysGetSerialMode get serial mode 9996 000 999 Sysfopen file open 9997 000 999 SysVarsnprintf variable print to string 9998 000 999 SysVarfprintf variable print to file 9999 000 999 SysVarsscanf extracts values from string 10000 000 999 MDBRTUMASTER modbus Rtu master ePLCUtyLib_A400 MNL1
301. tToByLH BtToByLL By Tov dH ByTov dL VidToDb Value Bit cd oo oo cm e od Type Address Array BitTo Byte Auto Mo BitToByte Auto Mo BitTo Byte Auto Mo ByteToWord Auto Mo ByteTov word Auto Mo iNordToDouble Auto Mo DWORD Auto Mo BOOL Auto 0 31 Esempio FBD Ptp114a200 FBD_DWCompress EtT oByHH BitTo Byte Bitz4 gt bo BiS gt bi Bite b2 Bit 27 s bs Bite b4 Bits s bs Bitz0 gt b Bit gt b7 EtToByHL BitTo Byte Bit bo Bit i7 gt bi Bit 18 gt b2 Bit 19 gt b3 Bitzo gt b4 Bitzi gt bs Bitzz gt b Bitz3 b7 Out Out EtToByLH BitTo Byte Bit e gt bo Bit 9 bi Bitto bz Bitti gt b3 Bit iz b4 Bit 13 bs Bit b Bit 15 b7 Out EtToByLL BitToByte Biti bo Bit 1 bi Bit 2 bz Biti b3 Bit 4 bd Bit 5 gt bs Bite b i Bit bi Mnl151c080 Out ByT ow dH EyteToWyord ByToW dL Byte Toward init value 0 0 FALSE 3160 WidTobb WordToOouble Attribute 5 Flea Description Bits to byte Bits to byte Bits to byte Byte to word Byte to word Word to double Value to convert Hit status Pag 253 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 10 6 Definire caratteri ascii non stampabili Nella gestione di protocolli di
302. teggio encoder abilitato Error 8001 Attivo per un loop su errore acquisizione encoder Si attiva se la frequenza di ingresso dei segnali encoder maggiore rispetto al tempo di esecuzione del blocco funzione Quote upinT Valore di quota encoder espresso in impulsi Numero tacche giro encoder moltiplicato per 4 Esempi Nell esempio gestita l acquisizione di un encoder incrementale connesso agli ingressi del modulo CPU Ruotando di un giro l encoder il valore di Quote verr incrementato se la rotazione oraria CW oppure decrementato se la rotazione antioraria CCW del numero di tacche giro moltiplicato per 4 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Encoder IDEncoder Auto Mo 0 7 IDEncoder function block 2 CPUIO GPUMOodulelo Auto Mo 0 CPUMOodulelO function block 3 Quote WDINT Auto Mo O Encoder quote Esempio LD CPUIO Encoder CPUModulelO l0 Encoder SysF irstLoop iH Enable Enabled DODO Done 6007 Mnl151c080 Pag 155 270 Programmazione IEC 61131 3 LogicLab Type Library Function ePLCUtyLib_C000 7 13 11 GetlS01155Crc calculate CRC according ISO1155 Questa funzione esegue il calcolo del CRC Cyclic Redundancy Check Controllo Ciclico di Getl5041155Crc Ridondanza su di un area dati Il calcolo effettuato secondo le specifiche ISO 1155 EE Occorre passare alla funzione l indirizzo del buffer di memoria Buffer ed il n
303. terminale 16 00000002 Tx Trasmissione comandi display 16 00000004 Tx Trasmissione dati display 16 00000008 Tx Trasmissione comando inputazione dati File FILEP Flusso dati stream ritornato dalla funzione Sysfopen ALevel USINT HMIBuiltInID uDINT Livello di accesso ai messaggi ID gestione messaggi in uscita dalla FB HMIBuiltInMessages Enabled 8001 Ready 6001 Fault B001 KeyUP 8001 KeyDW oot KeyLEFT 8001 KeyRIGHT 8001 KeyFUN woor KeyENT 8001 Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Attivo su abilitazione blocco funzione Attivo se l hardware display pronto Attivo per un loop su errore esecuzione Stato tasto UP del terminale Stato tasto DW del terminale Stato tasto LEFT del terminale Stato tasto RIGHT del terminale Stato tasto FUN del terminale Stato tasto ENT del terminale 10047010 HMIBuildiIniD non definito 10047020 HMIBuildiniID non corretto 10047100 Blocco funzione non eseguito in task di background Back Mnl151c080 Pag 231 270 5 Flee Programmazione IEC 61131 3 LogicLab Esempi Nell esempio gestito il terminale di un sistema NetlogllI i messaggi sono stati definiti nel programma LogicLab con il nome MyHMI Definizione variabili Mame Type Address Array Init value Attribute Description 1 Hi HMBuiltinKetlog Auto Mo 0 FA Netlog terminal 2 fisglD I
304. terrogare i vari sistemi slaves per conoscere se hanno dati da inviare al master od agli altri slaves Questo implica un impegno del canale di comunicazione anche quando gli slaves non hanno informazioni utili da scambiare c Lo scambio dati tra due sistemi slaves deve passare dal sistema master e questo rallenta l invio dei dati da un sistema all altro oltre ad un maggiore impegno del canale di comunicazione Utilizzando questa libreria possibile fare dialogare i diversi sistemi direttamente tra di loro in modalit peer to peer In questo modo un sistema invia dati all altro solo quando necessario garantendo un rapido invio dei dati con il minimo impegno del canale di comunicazione Comunicazione in broadcast Nel caso in cui un dispositivo su di un nodo della rete sia in comunicazione con molti altri dispositivi ed i dati in scambio siano gli stessi per tutti i dispositivi possibile utilizzare il blocco funzione BroadcastDataSend che invia il pacchetto dati in broadcast tutti i dispositivi che hanno come nodo di destinazione ToNode nel blocco funzione DataTxferClient l indirizzo del nodo che invia il messaggio in broacast lo riceveranno senza pero inviare l acknowledge Questo significa che la trasmissione in broadcast permette di velocizzare il trasferimento dati da un nodo ad altri nodi permettendo altres la ricezione simultanea dei dati inviati su tutti i nodi Ma non certa l avvenuta ricezione dei dati da parte dei nodi destinata
305. tilelength DIDO MODO F Storage hoc File tet pels FileSize Mnl151c080 Pag 93 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Type Library 7 8 4 Sysfseek file seek Function XTarget_07_0 Questa funzione permette di cambiare l indicatore di posizione dello stream collegato al parametro Sywstseek File precedentemente aperto dalla funzione Sysfopen File Offset specifica il numero di bytes dall origine dove andrebbe posizionato l indicatore di posizione Offset Origin specifica la posizione di origine rispetto alla quale spostare l indicatore di posizione a Origin La funzione ritorna il valore attuale dell indicatore di posizione In caso di errore di posizionamento l indicatore di posizione rimane inalterato e la funzione ritorna EOF Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Offset DINT Numero di bytes dall origine dove posizionare l indicatore di posizione Origin int Occorre specificare la posizione di origine FSeek origin definition La funzione ritorna URI Valore attuale dell indicatore di posizione EOF se errore Codici di errore In caso di errore la funzione torna EOF e con SysGetLastError possibile rilevare il codice di errore 9958100 Funzione richiamata in task fast o slow 9958990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso DI00M00 viene posizionato l indicatore di posizione all i
306. tion 1 Fp FILEP Auto Mo 0 Terminal VO file pointer 2 SMode SetShode Auto No FA set serial mode 3 DSPs AuroraDSPMeasure Auto Mo 0 FA Aurora DSP measure 4 Value REAL Auto No i Value read from inveter Esempio LD Sysfopen SysF irstLoop EH eaS COMO FH ame rr hode Shiode Set SMode SysF irstLoop l Oo Fr O DTROfTIme DSPhds urora DSF Measure DiD nod Do0 Mig e ________________ k Maaae e Emahle Done Did 1 M00 Dogi OO FP tat Fault Fp_ gt File Value 4 Address Errors 21 Measure Mnl151c080 Pag 212 270 Programmazione IEC 61131 3 LogicLab 7 20 2 AuroraCEnergy Aurora cumulated energy reading Questo blocco funzione esegue la lettura della energia generata da un inverter Aurora della Power One connesso al dispositivo di I O definito in File Questo un blocco funzione 5 Flea Type Library FB ePowerOneLib_B000 protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e Enable blocchi funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min Star Viene utilizzata la funzione GetPolynomialCRC per il calcolo del CRC dei frame dati dae Fila verso l inverter Address La connessione con gli inverters in RS485 multidrop occorre definire in Address l indirizzo Parameter dell inverter con cui si vuole dialogare In Parameter occorre indicare il parametro da leggere Vedi codici parametro Auroral Energy
307. tipi il primo consiste in caratteri che vengono ritornati nella pagina inalterati Il secondo consiste in direttive di conversione che descrivono il modo in cui gli argomenti devono essere visualizzati Le direttive di conversione iniziano con il simbolo seguito dalle direttive secondo il formato Flags Width Precision Length Conversion Flags La visualizzazione delle variabili con segno inizier sempre con il segno o space La visualizzazione delle variabili con segno inizier sempre con il segno o con lo spazio X valori diversi da 0 vengono prefissati con Ox 0 AI valore visualizzato vengono aggiunti 0 fino al raggiungimento del numero di cifre desiderato Per variabili di tipo d i 0 u x X e E f g G Width Definisce il numero di cifre che devono essere visualizzate Precision Definisce il numero di cifre decimali da visualizzare Per variabili di tipo e E f Length h Prima di d i u x X 0 denota una variabile short int o unsigned short int elle Prima di d i u x X 0 denota una variabile long int o unsigned long int L Prima di e E f g G denota una variabile long double Conversion d Valore decimale con segno i Valore decimale con segno O Valore ottale senza segno u Valore decimale senza segno X Valore esadecimale viene visualizzato utilizzando lettere minuscole Da 0 a 9 da a a f X Valore esadecimale viene visualizzato utilizzando lettere maiuscole D
308. tivo Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9993010 Valore di File non definito 9993990 Non implementata nel simulatore Esempi Lo stato del segnale CTS della porta seriale COMO appoggiato sull uscita Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description lela FILEP Auto Mo O 7 File pointer Esempio LD Systopen SysFirstLoop EN ENO sss COMO FHame biod mt _ ode Sys Get Serial CTS Doti hoo Dol MOO Mnl151c080 Pag 103 270 Programmazione IEC 61131 3 LogicLab Faszt Type Library 7 9 5 SysSetSerialDTR set DTR signal status Function XTarget_07_0 Questa funzione imposta lo stato del segnale DTR della porta seriale connessa al Sys Set Serial DTR parametro File precedentemente aperto dalla funzione Sysfopen _ Dt Per poter gestire il segnale DTR occorre avere definito sulla porta seriale il valore File DTR_OFF nella variabile DTRManagement nella struttura SYSSERIALMODE Parametri funzione Status 8001 Stato segnale DTR su porta seriale File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna 9900 FALSE Errore esecuzione TRUE Ok esecuzione Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9992010 Valore di File non definito 9992990
309. tore Seriale One Wire File FILEP Flusso dati stream ritornato dalla funzione Sysfopen OnWork 001 Function block attivata ed in lavoro Activity 8001 Attivo se attivita sul bus One Wire Fault B001 Attivo se errore gestione bus One Wire MngiD wont One Wire management ID da passare alle FB collegate Esempio sOWRdldentifier sOWRdTemperature ecc Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10008010 Valore di File non definito 10008200 Timeout invio stringa comando 10008300 9 Errore nelle configurazione convertitore 10008400 1 Errore nella verifica configurazione 10008500 2 Errore nelle sequenze indirizzamento device One Wire 10008600 Errore risposta a comando di reset pulse 10008601 Bus One Wire in cortocircuito 10008602 Errore dispositivi su bus One Wire 10008603 Nessun dispositivo su bus One Wire Mnl151c080 Pag 183 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 16 2 sSOWRdldentifier One Wire read ROM identifier FB ePLC1WireLib_C000 Questo blocco funzione esegue la lettura del codice di identificazione di un dispositivo One Wire si collega al blocco funzione sOWireMng di gestione convertitore Seriale One Wire Occorre passare MngiD in uscita dal blocco funzione di gestione convertitore Enable Done hingIlD Ok Code Fault SOV Rd Identifier Attivando Enable viene eseguita la
310. ts values from String e 116 7 12 Funzioni ed FB per gestione moduli periferiCi ii 117 7 12 1 SysPhrinfos get infos from peripheral MOdUleSs 117 7 12 2 SysGetPhrDI get peripheral digital INput ecccceeeeeeeeeeeseeeeeeeeeeeseeeeeseeeeeseseesseeeesseeeeeeeaeeseeeaeeeees 118 7 12 3 SysSetPhrDO set peripheral digital OUtput ease ceseeeeseeeeseeesaeeessueeseeeeseeeeaes 121 7 12 4 SysGetAnInp get analog INput i 123 1312 0 Sy SoGIANOUL Set analog OQUTOUN tcesichecetectsdcrcdet austoindateyeioendaveventseesadetvaaneeenmvedseacsanus dikea 125 7 12 6 SysGetCounter get counter i 127 7 12 7 SysGetEncoder get encoder INpuUt e 129 7 12 8 SysSetPWMOut set PWM QUtput ii 131 7 12 9 SysPhrVRd read variable from peripheral Module i 133 7 12 10 SysPhrVWr write variable to peripheral Module 134 7 12 11 CPUModulelO CPU module I O management 135 7 12 12 SysI2CWrRd writes reads on I2C extension DUS i 136 7 12 13 StrainGaugeAcq strain gauge acquisition ei 137 7 13 Funzioni ed FB di utilit generale ii 139 7 13 1 DB100AddOffset returns DB100 address offset i 139 T 19 2 BLINK bInkcommand i
311. tti text che permettono di visualizzare ed impostare valori Richiamando la pagina vengono visualizzati i valori corrispondenti alle impostazioni definite nelle variabili dello SlimLine valori sono stati appoggiati su di un area ritentiva per mantenerne il valore impostato anche allo spegnimento del sistema Definendo nuovi valori ed agendo sul tasto Preset COM port i valori saranno trasferiti nelle variabili dello SlimLine e la pagina verr visualizzata con i nuovi valori definiti Ecco come si presenta la pagina web stata visualizzata sulla finestra del programma LogicLab che visualizza in debug i valori delle variabili Tit SerialEcho Global variables Watch Dux Name Type Address Group Array b 1 Port STRING MB100 2048 7 Symbol Value Type 2 Baudrate UDINT MD100 2056 No Port COM STRING 3 DataBits USINT MX100 2060 No Baudrate 19200 UDINT 4 Parity STRING MB100 2064 1 DataBits 8 USINT 5 DTRMng USINT MB100 2068 No Parity N STRING 6 DTROn UINT MW100 2070 No DTRMng 3 USINT 7 DTROff WINT MW100 2072 No DTROn 200 UINT DTROff A A http 192 168 0 162 Storage COMPort htm a rol amp SlimLine COMPort Port selection COM 195200 N DIRTimed DTR On 200 DTR off 100 Mnl151c080 Pag 246 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 9 7 1 Funzioni javascript Per la gestione della pagina sono utilizzate alcune funz
312. tto dal flusso di dati EOF In caso di errore o se nessun dato dallo stream Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9972100 Terminale di I O usato in task fast o slow 9972990 Non implementata nel simulatore Esempi Viene eseguita apertura porta seriale COMO e controllato se caratteri disponibili dalla porta Se almeno un carattere disponibile ne viene eseguita lettura ed il carattere letto trasferito nella variabile Ch Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo Port COMO file pointer 2 Ch INT Auto Mo O Character read Esempio ST PTP116A100 ST_Sysfgetc Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here check if a character is available from port and read it IF Fp lt gt NULL THEN IF TO BOOL SysGetIChars Fp THEN Ch Sysfgetc Fp Get input character END_IF END_IF Mnl151c080 Pag 77 270 Programmazione IEC 61131 3 LogicLab Type Library 7 7 4 Sysfputc put character to file Function XTarget_07_0 Questa funzione invia un carattere sul flusso dati stream indicato dal parametro File Sysfput precedentemente aperto dalla funzione Sysfopen vsfputo RI La funzione ritorna il carattere scritto sullo stream In caso di errore o se
313. tutti gli IP e da tutte le porte PeerPort ClientPort ee ae er in i RixData RxSize Nel parametro RxData bisogna definire l indirizzo del buffer di memoria in cui verranno trasferiti __ i dati ricevuti ed in Size occorre definire la dimensione del buffer Su ricezione dati si attiva l uscita Done e nelle variabili ClientiP e ClientPort sono ritornati l indirizzo IP e la porta da cui sono stati ricevuti i dati mentre in RxSize ritornato il numero di bytes dati ricevuti Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen PeerlP stRING 15 Stringa di definizione indirizzo IP da cui saranno accettate le connessioni Lasciandolo non connesso o definendo 255 255 255 255 saranno accettate connessioni da tutti gli IP PeerPort unt Porta da cui saranno accettate le connessioni Lasciandolo non connesso o definendo 65536 saranno accettate connessioni da tutte le porte RxData usint Puntatore al buffer dove devono essere trasferiti i dati ricevuti Size unt Dimensione buffer ricezione dati Done 8001 Attivo per un loop di programma su ricezione dati Fault B001 Attivo per un loop di programma se errore gestione ClientIP stRING 15 Stringa di definizione indirizzo IP del client da cui sono stati ricevuti i dati ClientPort unt Porta del client da cui sono stati ricevuti i dati RxSize uint Numero di bytes di dato ricevuti Codici di errore In caso di errore
314. umero di bytes ByteMr ByteNr su cui eseguire il calcolo del CRC Buffer usint Indirizzo dell area di memoria su cui eseguire il calcolo del CRC ByteNr unt Numero di bytes su cui eseguire il calcolo del CRC a partire dall indirizzo definito in Buffer Result unt Valore CRC calcolato Esempi Viene calcolato il CRC di una richiesta di lettura del registro 1 8 1 da un contatore di energia elettrica secondo lo standard IEC 62056 2 Il frame di richiesta lt SOH gt R1 lt STX gt 1 8 1 lt ETX gt lt CRC gt Il valore del CRC ritornato in CRCValue 16 5A 90 decimale Definizione variabili Mame Type Address Array Init value Attribute Description 1 DataFrame STRING Auto 16 7 Data frame 2 CRCValue WINT Auto Mo I o CRC Value Esempio ST METTTITTTTTT TTT TTT TTT TT TTT TTT TTT TTT TT TTT TTT TTT TTT TTT TTT TT TTT TTT I I TTT TTT TETRA IEC1155 CRC CALCULATION KKEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK x Register read command lt SOH gt R1I lt STX gt 1 8 1 lt ETX gt lt CRC gt DataFrame 01R1 021 8 1 03 Data frame CRCValue GetIS01155Crc ADR DataFrame 12 CRC Value Mnl151c080 Pag 156 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 13 12 IODataExchange exchange data by using logic I O FB ePLCUtyLib_C000 Questo blocco funzione permette lo scambio di dati tra due sistemi uno master ed uno slave IDData
315. unction XTarget_07_0 7 7 7 SysGetiChars get input available characters from file Questa funzione ritorna il numero di caratteri disponibili per la lettura dal flusso dati stream SysGetlChars indicato dal parametro File precedentemente aperto dalla funzione Sysfopen File Se il valore ritornato diverso da 0 i caratteri potranno essere letti con la funzione Sysfgetc Parametri funzione File rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna VINO Numero di caratteri disponibili dal flusso dati Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9968100 Terminale di I O usato in task fast o slow 9968990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue l eco dei caratteri ricevuti dalla porta seriale COMO Viene eseguita apertura porta seriale COMO e controllato se caratteri disponibili dalla porta Se almeno un carattere disponibile ne viene eseguita lettura e successiva ritrasmissione Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILER AUTO No I Por COMO file pointer 2 Ch INT Auto Mo i Character read Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here execute the received characters echo IF Fp lt gt NULL
316. unzione esegue la lettura di un contatore Il blocco funzione pu essere utilizzato per acquisire il valore del contatore presente sul modulo CPU SlimLine e dai moduli che gestiscono la funzione contatore Address Done Channel Fault hode Value Sys Get Counter E prevista la gestione del reset valore di conteggio e della inversione conteggio In base alla definizione di Mode possibile gestire conteggio su fronte positivo negativo o su entrambi i fronti dell ingresso clock del contatore Se il modulo che gestisce il contatore lo prevede possibile anche amp ount definire comandi hardware Ingressi logici di reset conteggio e di inversione conteggio Reset Address usint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione counter Range da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo 255 indica il modulo CPU Se viene settato un indirizzo di modulo non presente si interrompe l esecuzione e viene settato il bit di Fault Channel usin Occorre specificare l indirizzo del canale sul modulo Range da 0 a 15 Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Mode woint Modo acquisizione espresso su 32 bit secondo lo schema riportato 31 30 29 28 27 26 25 24 23 22 2120191817 1615 14 13 12 11 1009 08 07 06 05 04 03 02 01 00
317. unzioni ed FB gestione networking Da linguaggio IEC sono disponibili funzioni e blocchi funzione per la gestione networking Mnl151c080 Pag 190 270 Programmazione IEC 61131 3 LogicLab 3 Heysf Type Library 7 17 1 SysIPReach IP address is reachable FB XTarget_07_0 Questo blocco funzione esegue controllo se un indirizzo IP raggiungibile viene eseguito l invio del l l SyelP Reach comando Ping al sistema e se si ottiene risposta viene attivato Done ui l l Enable Done La variabile Refresh ritorna la percentuale di tempo trascorsa dall ultima esecuzione del comando AE r egf JU Ping sul sistema Raggiunto il 50 del tempo circa 25 Secondi viene eseguito un nuovo comando Ping Refresh Enable s001 Abilitazione blocco funzione attivandolo viene eseguito un ping ogni 25 Sec PeerlP stRING 15 Stringa di definizione indirizzo IP di cui eseguire la ricerca Done 8001 Attivo se indirizzo IP raggiungibile Risposta da Ping Fault B001 Attivo per un loop di programma se errore gestione Refresh usint Percentuale di tempo da ultima esecuzione Ping Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9974005 Blocco funzione non supportato 9974050 Errore allocazione blocco funzione 9974060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9974070 Errore versione blocco fun
318. us ricevuti operano sul buffer di memoria il cui indirizzo definito in Buffer e la dimensione in bytes definita in Size In IFTime occorre definire il tempo di interframe dei comandi modbus cio il tempo che intercorre tra la ricezione di un comando ed il comando successivo Su linea seriale questo tempo coincide con il tempo di ricezione di 3 caratteri al baud rate definito Alla ricezione di ogni comando modbus corretto si attiva per un loop l uscita Done in caso di errore comando viene attivata per un loop l uscita Fault ed incrementato il valore in Errors Enable soot Comando di abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Type sint Tipo di protocollo modbus O RTU 1 Ascii 2 TCP Node usin Numero di nodo modbus Range da 0 a 255 Offset uint Offset su indirizzo modbus ricevuto nel frame dati Range da 16 0000 a 16 FFFF Buffer usint Indirizzo buffer dati su cul operano i comandi modbus SIZE uint Dimensione in byte del buffer dati su cul operano comandi modbus IF Time unn Tempo ricezione caratteri uS se comunicazione su porta seriale il tempo deve essere definito in base al baud rate Nel caso di comunicazione su rete ethernet possibile definire il valore minimo Baud rate Tempo Baud rate 300 112000 19200 600 56000 38400 1200 28000 57600 2400 14000 76800 4800 7000 115200 9600 3430 Done 6
319. ut mode Immediate DI I 8 M Read 16 23 input mode Immediate DI I 8 MM Read 24 31 input mode Immediate DI I 16 L Read 0 15 input mode Immediate DI I 16 M Read 16 31 input mode Immediate DI I 32 Read 0 31 input mode Immediate 5 8 Digital output mode definizioni modo gestione uscite digitali Le definizioni modo di gestione dei moduli di uscita digitali si possono trovare nella cartella Digital output mode Define Description DO 8 LL Write 0 7 output mode DO 8 L Write 8 15 output mode DO 8 M Write 16 23 output mode DO 8 MM Write 24 31 output mode DO 16 L Write 0 15 output mode DO 16 M Write 16 31 output mode DO 32 Mnl151c080 Write 0 31 output mode Pag 20 270 Programmazione IEC 61131 3 LogicLab 5 Flee 5 9 Analog to digital mode definizioni modo acquisizione ingressi analogici Le definizioni modo di acquisizione degli ingressi analogici si possono trovare nella cartella Analog to digital mode Define Type Value Description AD_IDLE USINT 0 Idle mode AD_CURR_0_20 COMMON USINT 3 Current from 0 to 20 mA Common mode AD_CURR_0_20 DIFFER USINT 6 Current from 0 to 20 MA Differential mode AD_CURR_4_20 COMMON USINT 4 Current from 4 to 20 mA Common mode AD_
320. ut to the reset command LD FBRS Q1 ST Do00M00 The function block output is copied to digital output Esempio ST FBRS Call the RS function block FBRS S D100M00 Transfer the digital input to the set command FBRS R1 Di01M00 Transfer the digital input to the reset command Do00M00 FBRS 01 The function block output is copied to digital output Mnl151c080 Pag 35 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Library 7 1 4 SR Set Reset flip flop ePLCStdLib B000 Questo blocco funzione su attivazione del comando di set S1 attiva l uscita Q1 che rimane attiva anche SR quando il comando di set viene disattivato Per disattivare l uscita occorre attivare il comando di reset R 5i DI Il comando di set S1 prioritario sul comando di reset R 3 S1 B001 Set su attivazione del segnale viene attivata l uscita Q1 che rimane attiva anche quando il comando viene disattivato Il comando prioritario sul comando di reset R R B001 Reset su attivazione del segnale viene disattivata l uscita Q1 Q1 B001 Uscita si attiva e disattiva in funzione dei comandi di S set e R reset Esempi Sulla attivazione dell ingresso digitale Di00M00 viene attivata l uscita digitale Do00M00 che rimane attiva anche quando l ingresso digitale Di00M00 viene disattivato Per disattivare l uscita digitale Do00MO00 occorre attivare l ingresso digitale Di01M00 Nota L ingresso digitale Di00MO00 ha la pr
321. uto Ack entro un tempo pari a Timeout 4 viene effettuato un altro invio e cosi di seguito fino allo scadere del tempo definito Per garantire almeno 3 retries si consiglia di impostare come tempo di timeout un valore pari a 10 volte il tempo massimo di loop Scegliendo quello maggiore tra i due sistemi in comunicazione L invio dei dati automatico sulla variazione di uno qualsiasi dei bytes del buffer di trasmissione per garantire il controllo sul collegamento tra i due sistemi ogni tempo pari a Timeout viene comunque eseguito un invio del buffer di memoria Se i due sistemi sono in comunicazione si attiva l uscita Done RxDataOk si attiva per un loop ad ogni ricezione del buffer dati dall altro sistema mentre TxDataSent si attiva per un loop al termine della trasmissione del buffer dati verso l altro sistema Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen PeerlP stRING 15 Stringa di definizione indirizzo IP del sistema con cui avviene il trasferimento dati Port unt Porta tramite la quale avviene il trasferimento dati Stesso valore su entrambi i sistemi RxDBuffer usint Puntatore al buffer dove devono essere trasferiti i dati ricevuti TxDBuffer usint Puntatore al buffer dove sono presenti i dati da trasmettere ByteNr unt Numero di bytes scambiati Timeout unt Tempo massimo per il trasferimento del buffer dati mS Done 8001 Attivo se i due sistemi son
322. uto Mo Variable 2 BEArray UISINT Auto 0 3 4 3 2 1 Big endian array Esempio LD BEArray To Var AUR DWORD_TYPE a TSE Destination Source BEArray Mnl151c080 Description Pag 57 270 Programmazione IEC 61131 3 LogicLab 3 Flas i Type Library 7 4 13 VarToLEArray variable to little endian array conversion Function ePLCUtyLib_C000 Questa funzione trasferisce il valore di una variabile Source in base al tipo Type definito VUE in un array Destination utilizzando il formato little endian MSB LSB Type Destination a SOUce Parametri funzione Type sint Tipo di variabile come definito nella tabella Variable types definition Destination usint Indirizzo array di destinazione Source usINT Indirizzo variabile sorgente La funzione ritorna ooo FALSE Errore tipo dati TRUE Conversione eseguita Esempi Il valore presente nella variabile Source viene convertito nell array Destination di tipo little endian MSB LSB Nell esempio riportata anche la finestra di Watch con i valori visualizzati Definizione variabili Name Type Address Array Init value Attribute Description 1 Source DWORD Auto Mo 16 12345678 a Source variable 2 Destination BYTE Auto 0 3 5 Destination array Esempio FBD VarloLEArray ADR UDINT_TYPE Type Destination 3 Destination Source ADR ps Watch Tx a Symbol Value Type Loc Source 16 12345678 DWORD B
323. vabateTime 0004 ST FB SysETineTolate EpochTine Ti CAL FB SysETimeToDate Call the SysETimeToDate function block nin Mnl151c080 Pag 259 270 Programmazione IEC 61131 3 LogicLab 11 2 Definizioni I O logici negli esempi 5 Flee Tutti gli esempi riportati in questo manuale sono stati realizzati utilizzando un sistema configurato con un modulo CPU SlimLine tipo MPS046A100 abbinato ad un modulo Mixed I O PCB122 100 Impostato con address 0 Tutti gli I O del modulo sono stati abbinati a variabili mnemoniche Gli ingressi sono denominati Di0xMO00 e le uscite Do0xM00 come evidente nella tabella di definizione Oo Mm N A wdi M aio o E E Co co 0a Mame DIOOMOO Qi01 MOO Did2MO0 DiOSMO0 Digig DIOSMOO DIOGMOO Did MOO DiOeMOO DIOSMOO DiTOMOO Di11 w00 Do00M0o Dood Moo Do0zM00 Do0sM00 Do0AMOO Do05M0o Doti Do7 Moo Mnl151c080 Type BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Address w0 0 LAO Sola0 2 LAOS SOLA 4 Sola0 5 Sol amp 0 6 SOLA Sola Sola0 9 10 10 Sola0 11 GAO MGA SoG GIAO GAO 4 GAS So GAO 6 SoG 0 I Group Mo Mo Mo Mo Mo Mo Mo MO MO Mo Mo Mo Mo Mo Mo Mo Mo Mo Mo Mo Array Init value FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE Description input 00 Module
324. vari tabulatori presenti possibile visualizzare tutti gli oggetti della libreria ordinati per nome Con un click del mouse si evidenzia l oggetto o gli oggetti desiderati Con il tasto Import object gli oggetti selezionati verranno inclusi nel programma Come si nota dalla foto EP Project 0 Definitions a destra alcuni oggetti E ES Mrl153a000 Project appaiono visualizzati Programe con un simbolo di EHE Ton lucchetto questo sta Function blocks ad indicare che sono Sy BLINK oggetti protetti cio non possono essere eTOF i modificati Una volta eTON eTF Functions Global variables originale Mnl151c080 Functore anablez User Types Nes object F Copy Object Generate redktrbutable source module Import object from ibrar Export object ta lbisiy Librari manager Fibers Programs Function blocks Name BLINE sTOF sTON eTP Project command hi Symbol locabon E Libw ary Wars hype All To moot a PLE object select the tab vath the object ype select Impait abyect the object and press the Import object button importati nel proprio programma gli oggetti resteranno inclusi nel programma stesso e sar possibile utilizzarli su qualsiasi PC anche se non si dispone della libreria Pag 30 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 7 0 6 Considerazioni su link a libreria e su import oggetti Come visto ne
325. viluppato da Axel una azienda italiana con pluriennale esperienza nella produzione di software per automazione industriale e personalizzato per l utilizzo con i nostri dispositivi Mnl151c080 Pag 7 270 Programmazione IEC 61131 3 LogicLab 3 Heysf 2 Risorse del sistema Gli I O logici sono automaticamente gestiti in immagine di processo dal sistema operativo che provvede a trasferire lo stato di tutti gli ingressi logici nella immagine degli ingressi in memoria di sistema ed a trasferire il valore presente nella immagine delle uscite dalla memoria di sistema alle uscite logiche Quindi testando lo stato della immagine di memoria degli ingressi logici si testa lo stato del relativo punto di ingresso Esempio X0 0 corrisponde all ingresso 0 del modulo 0 X7 5 corrisponde all ingresso 5 del modulo 1 Scrivendo lo stato nella immagine di memoria delle uscite logiche si setta lo stato del relativo punto di uscita Esempio QX0 0 corrisponde all uscita 0 del modulo 0 QX1 5 corrisponde all uscita 5 del modulo 1 Gli I O logici possono anche essere gestiti tramite le funzioni SysGetPhrDI e SysGetPhrDO Gli I O analogici sono gestiti tramite le funzioni SysGetAninp e SysSetAnOut contatori sono acquisiti dal blocco funzione SysGetCounter Gli ingressi encoder sono acquisiti dal blocco funzione SysGetEncoder Il CAN bus viene gestito dalle funzioni SysCANRxMsg e SysCANTxMsg Per accedere alle porte seriali occorre utilizzare la fu
326. wledge Synchronous idle End trans block Cancel End of medium substitution Escape File separator Group separator Record separator Unit separator mo Ja In bw hw rep Oo e Fi eS gt Oe eS AKAauLuHohgd Fio a Di dio lai 5 Flea A b C d g h i j kK 1 rm Tl DI P qf C u kij W r 2 i i O Pag 269 270 Programmazione IEC 61131 3 LogicLab 3 Fl 12 5 2 Tabella codici ASCII estesi gi D di Me il adi Pin Pio De lo Mi wad Do I I F Al FS a ln A quo S He a TD ga hk yy oO ee Ga i i i L JL E O O Di CES a r FA i Bei H 4 E W b o O O eo as Mnl151c080 Pag 270 270
327. zione 9974100 Blocco funzione eseguito in una task diversa da Back 9974110 Errore indirizzo IP definito PeerlP 9974200 Errore invio richiesta Ping 9974300 Errore risposta a richiesta Ping 9974990 Non implementata nel simulatore Esempi Nell esempio viene controllato se l indirizzo IP 192 168 0 33 raggiungibile in tal caso si attiva l uscita Reached Definizione variabili Mame Type Address Array Init value Attribute Description 1 Reached BOOL Auto Mo FALSE a IP address reached 2 IPRch SyslPReach Auto Mo U FA IP reach Esempio LD IFR ch SyslF Reach Reached Enable Done 192 168 0353 PeellP Fault Refresh Mnl151c080 Pag 191 270 Programmazione IEC 61131 3 LogicLab 3 Faszt f Type Library 7 17 2 SysSktListen Socket listen FB XTarget_07_0 Questo blocco funzione forza il socket nella condizione di listening occorre passare alla FB un flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione n Sysfopen Enable Done parametri MyIP e MyPort indicano l interfaccia di rete e la porta su cui il socket in ascolto da Saul MyIP pu essere lasciato non connesso ed in tal caso viene utilizzata l interfaccia ethernet hiylF Connect parametri LifeTm FlushTm RxSize TxSize devono essere definiti solo se si tratta di socket yFot ClientiP TCP possono essere lasciati non connessi nel caso di socket UDP LifeTm ClientF ort Flush Tm
328. zione In caso di errore esecuzione viene attivata per un loop l uscita Fault Enable 8001 Comando di abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen MyNode usinT Nodo identificativo del sistema Range da 0 a 250 Timeout UDINT Tempo attesa frame di acknowledge dal sistema peer mS MinFreeTm reat Tempo minimo attesa canale di comunicazione libero S MaxFreeTm rea Tempo massimo attesa canale di comunicazione libero S MinChkTm creat Tempo minimo attesa invio frame controllo verso sistema peer S MaxChkTm ea Tempo massimo attesa invio frame controllo verso sistema peer S Enabled 8001 Attivo su abilitazione blocco funzione Fault B001 Attivo per un loop su errore esecuzione MMDtTxflD uDINT ID server multimaster da passare alle FB clients Esempio DataTxferClient RxFrames UDINT Counter frame dati ricevuti Sono conteggiati tutti i frames corretti indipendentemente se diretti a questo nodo TxFrames UDINT Counter frame dati trasmessi RxErrors UDINT Counter errori frame dati ricevuti Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10040010 Valore di File non definito 10040020 FB protetta terminato tempo funzionamento in modo demo 10040050 Timeout esecuzione 10040070 Errore case gestione Mnl151c080 Pag 225 270 Programmazione IEC 61131 3 LogicLab 3 Faszt
329. zione sensore umidit Mnl151c080 Pag 188 270 Programmazione IEC 61131 3 LogicLab 3 Faszt Esempi Viene eseguita la lettura della temperatura ed umidit da un dispositivo One Wire Non essendo definito DCode viene acquisito qualsiasi dispositivo presente sul bus One Wire Attenzione Deve essere presente un solo dispositivo sul bus Se acquisizione corretta viene attivata l uscita Do00M00 ed i valori acquisiti sono trasferiti nelle variabili Temperature e Humidity Definizione variabili Mame Type Address Array Init value Attribute Description 1 RdDone BOOL Auto Mo FALSE 3 Read humidititemperature done 2 MnalD DINT Auto Ko 0 QOne Vire management ID 3 Humidity REAL Auto Mo 0 Humidity RH 4 Temperature REAL Auto Mo I Temperature Ci SF p FILEP AUTO Mo O File pointer E OW ire sOWireling Auto Mo 0 One Vwire management FE T O VWReadHum SOWIFdHumic Auto Mo 0 FA read humidity data Esempio LD PTP120A200 LD_HumiditySkipROM Open the serial port Sysfopen SvsFirstLoop EN ENO FM como j ems Fp Wiad tant ode Manage the SerialfOne Wire converter Ovwire SOVWireMng Enable Onto rk Fp gt File Activity Fault bingiD bingiD Acquires temperature and humidity OwReaddum OWRd Humidity RdDone P Kh Enable Done hing IC Mnalb Ok o ibcode Fault Temperature Doli hoo Temperature Humidity Mnl151c080 Pag 189 270 Programmazione IEC 61131 3 LogicLab 7 17 F

Download Pdf Manuals

image

Related Search

Related Contents

Instruction manual (10MB PDF)  Spreading Wings S900  Caliber MUETA A4M car media receiver  USB2.0対応 外付け3.5インチハードディスクドライブ 取扱説明書  Pour découvrir Vincennes sans accompagnateur Mode d`emploi  Progress Lighting P3608-77 Installation Guide  LevelOne H.323 1FXS w/ 1-port Ethernet VoIP Gateway  IST– Instituto Superior Técnico  

Copyright © All rights reserved.
Failed to retrieve file