Home

Programmazione IEC 61131 su SlimLine

image

Contents

1. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Mode Input Mode Input lt ai D 5 C 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 0 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 001 Dato counter acquisito viene attivato per un loop al termine della acquisizione counter Fault B001 Errore di acquisizione viene attivato in caso
2. 71 7 10 8 SysGetOSpace get output available space ON file 72 7 10 9 SysGetRxBSize get file Rx input buffer setze 73 7 10 10 SysGetTxBSize get file Tx output buffer eze e 74 7 10 11 SysFIBfClear file input buffer cear i 75 7 10 12 SysFOBfClear file output buffer dear 76 Mnl151b080 Pag 2 210 Programmazione IEC 61131 su SlimLine 3 Hey 1 10 13 SysFOBfFlush file output buffer cune TT 7 10 14 SysVarfprintf variable print to ile ice ea 78 le RE EE 79 EN Ee TE EE 80 7 11 2 Sysrename file rename i 81 7 11 3 Sysfilelength file IeN h iii 82 1 11 4 Sysfseek E EE 83 111 4 Ke gien DT UE Bee BEE 85 7 12 Funzioni ed FB per gestione porta seriale iii 86 7 12 1 SysGetSerialMode get serial mode e 87 7 12 2 SysSetSerialMode set serial mode ii 89 7 12 3 SetSMode Set serial mode 90 7 12 4 SysGetSerialCTS get serial CTS signal status 92 7 12 5 SysSetSerialDTR set DTR Signal StatUS nnn nrnrenn 93 7 3 Funzioni ed ee dee e Re TC 94 7 13 1 SysISCANRxTxAv checks if CAN Rx or TX is available cece cc eeeceeceeeeeaeeeeeeeeeesaeeeesaeeeeseaeeeseeeeseeeees 94 7 13 2 SysCANRXMsg receives a CAN message nenne 95 7 13 3 SysSCANTxMsg transmit a CAN message e 96 7 14 Funzioni ed FB per gestione stringhe ii 97 t RLEN SHINO ENGU seiren di 97
3. Mode Define Acquisition 1 DA _VOLT_0_10 Voltage from 0 to 10 V 2 DA_VOLT_0_5 Voltage from 0 to 5 V 3 DA_VOLT_M10_10 Voltage from 10 to 10 V 4 DA_VOLT_M5_5 Voltage from 5 to 5 V 5 DA _CURR_0_20 Current from 0 to 20 MA 6 DA_CURR_4 20 Current from 4 to 20 mA Occorre specificare il valore di uscita espresso nella unita definita dal modo di gestione Dato analogico acquisito viene attivato per un loop al termine della acquisizione analogica Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9982050 9982060 9982070 9982080 9982100 9982110 1 9982150 9982200 9982210 Mnl151b080 Errore allocazione blocco funzione Terminato spazio memoria rilocabile non possibile eseguire I FB Errore versione blocco funzione Impossibile inizializzare il modulo Il modulo indirizzato in Address non presente Il modulo indirizzato non supporta i comandi uscita analogica Il valore da impostare sul modulo analogico non corretto Il modo di gestione definito in Mode non gestito dal modulo Errore nella gestione uscita analogica sul modulo Pag 113 210 Programmazione IEC 61131 su SlimLine Hey Esempi Viene eseguita l uscita analogica dal canale 0 del modulo 0 in modo 0 10 Volt Se dato valido viene attivata l uscita digital
4. Questo blocco funzione esegue gestione di un sensore One Wire di acquisizione umidit e temperatura basato su convertitore Maxim DS2438 Si collega al blocco funzione OWireMng di gestione convertitore Seriale One Wire Occorre passare OWirelD in uscita Enable Enabled dal blocco funzione di gestione convertitore Start Done Chil ire D Fault OWRdHumidity Attivando il comando di Start viene eseguita la lettura del valore di temperatura dal dispositivo connesso al bus One Wire Se la lettura ha esito positivo si attiva per un loop di Lade Temperature programma l uscita Done su Temperature e Humidity saranno ritornati i valori di Humidity temperatura e umidit acquisito L uscita Fault si attiva per un loop di programma in caso di errori di gestione Se sul bus One Wire connesso un unico dispositivo possibile forzare a 0 la definizione in IDCode del ROM ID se invece sul bus One Wire sono presenti pi dispositivi parallelati occorre definire in DCode l indirizzo dell array di 8 bytes che contiene il ROM ID del dispositivo che si vuole acquisire Enable B00L Abilita il blocco funzione Start BOOL Attivando l ingresso viene eseguita la lettura del ROM ID OWirelD upin ID One Wire fornito in uscita dal blocco funzione OWireMng IDCode usinT Puntatore ad array definizione ROM ID dispositivo da acquisire Enabled B00L Blocco funzione abilitato Done 001 Attivo per un loop al termine della lettura temperatur
5. 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 62 Grid Voltage phase s 63 10030010 10030020 10030050 10030070 10030100 10030200 10030251 10030252 10030253 10030254 10030255 10030256 10030257 10030258 Mnl151b080 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 182 210 Programmazione IEC 61131
6. 7 7 10 ToUpper Lowercase to uppercase letter conversion Function ePLCAuxLib SFR058A000 Questa funzione converte un carattere dal formato minuscolo nel corrispondente carattere in ToUpper formato maiuscolo a Char Parametri funzione Char usw Carattere da convertire La funzione ritorna PSNT Carattere nel formato uppercase Esempi La variabile Lower viene convertita nel corrispondente valore uppercase 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 SINT Auto Mo 1 661 S Lowercase letter d Upper SINT Auto Mo O Uppercase letter Esempio LD ToUpper Lower E 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 Mnl151b080 Pag 49 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 8 Funzioni ed FB di utilit sistema Type Library Version 7 8 1 SysGetSysTime get system time Function Embedded 3 0 Questa funzione ritorna il tempo di sistema espresso in uS E possibile definire con il valore SENSE di Cmd se si vuole avere il tempo di sistema attuale Cmd TRUE oppure quello memorizzato con la precedente esecuzione della funzione
7. Programmazione IEC 61131 su SlimLine ELSIST S r l Via G Brodolini 15 Z I Internet http www elsist it TEL 39 0142 451987 Sistemi in elettronica sio pasa sab Email elsist elsist it FAX 39 0142 451988 INDICE Rini 6 ll RI SOS CG GI SLOW E T 2 Archtetu ura Memole 8 2 1 Memoria di backup Retain ii 9 ZZ ICCC SSO ANCL MeMa eei a a ai a E E a EEan Eaa aE a D aiai Eaa 10 HS MM IZA TOO dalia 11 E AR e ee lait 11 3 2 SYSSERIALMODE modo comunicazione porta sertale ii 11 3 3 SYSCANMESSAGE messaggio CAN i 11 ENER TE nre 12 4 1 Variabili sola lettura System variableS nnne 13 4 2 Variabili sola lettura Report variaDIeS e 14 4 3 Variabili lettura e scrittura System variabIes iii 15 HEEN eegenen eege 16 5 1 Variable types definizione Dpovarabilt e 16 5 2 Task ID definition identificatore di task DC 16 5 3 TermlO definizioni per terminale di O 16 5 4 Serial mode definition definizioni modo serale eceeeeceeeeeeeneceeeeceeeeceeneeeeneceeneseeaeseeeeeeeneneaeeneneneees 17 1 Procol null 18 6 1 iCCCSSO vanabii da MO GDS EE 18 ZC DNK EE Ee UR e une eet EE 18 6 1 2 pertura variabili da IMO GUS nsiro aa scaueeueweswcdesousecscanatesessidsesddseasesanesaonenaees 18 6 2 ACGESSO Real time clock da ue e Te EE 19 02 a demoliti 19 e le IEN RTO da OS aps ae cg estes cts secede ns lai 20 6 3 Acc
8. Programmazione IEC 61131 su SlimLine 3 Hey 7 23Funzioni 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 convincente 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 Mnl151b080 Pag 180 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 23 1 AuroraDSPMeasure Aurora measure request to DSP FB ePow
9. 7 10 4 Sysfputc put character to file Function Embedded 3 0 Questa funzione invia un carattere sul flusso dati stream indicato dal parametro File Sysfput precedentemente aperto dalla funzione Sysfopen yet pute D La funzione ritorna il carattere scritto sullo stream In caso di errore o se 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 rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna SEN 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 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 Ptp116a100 Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo Port COMO file pointer 2 Ch INT Auto Mo O S Character read Esempio ST H
10. Esempio LD Esempio IL LD 16 12 ROL 4 ST VarOut Output variable Esempio ST VarOut ROL 16 12 4 Output variable Mnl151b080 Pag 188 210 Programmazione IEC 61131 su SlimLine 5 Flat 8 4 Espandere DWORD in 32 BOOL Ecco un come utilizzando i blocchi funzione DoubleToWord WordToByte ByteToBit sia possibile espandere una variabile DWORD in 32 variabili BOOL Definizione variabili Mame Type Address Array Init value Attribute Description 1 ByToBtHH Byte Tobit Auto Mo O Byte to bits d ByToBtHL Die Toi Auto Mo O Byte to bits 3 ByToBtLH ByteTo it Auto Mo O Byte to bits d ByToBilL AyteT obit Auto Mo O Byte to bits D WdaToByH WordToByte Auto Mo 0 Word to bytes bh WdaToByL WordToByte Auto Mo 0 Word to bytes d Dog DoubleTovord Auto Mo 0 Double to word D Bit BOOL Auto IO 21 FALSE 210 Bit status 4 Value DWORD Auto Mo 0 Value to convert Esempio FBD Ptp114a200 ByToBtHH EyteToBit In Wd To BH word To Byte In MSp LSB In DAT oiid DoubleToWWord Value In MS L Gu In Vid To By WardToByte In MSE LSB bh bi bz bh b4 b i bp by ByToBtHL ByteTo Bit b b1 b2 b3 ba b5 L b7 ByToBtLH ByteToBit bh bi bz bh b4 b i bp by ByToBtLL ByteTo Bit In Mnl151b080 b b1 b2 b3 ba b5 L b7 Pag 189 210 Programmazione IEC 61131 su SlimLine 8 5 Comprimere 32 BOOL in DWORD 5 Fl
11. Otist TxDataAdd D0E100Add Ofset _16__ Offset MOVE ExchDone EN hd 100 0 Kg ENO Mnl151b080 D Oc OO CH e ER Able be leh aster PJ A m g ma pm ee Strobe Init value FALSE Attribute Description Data exchange done Received data Transmit data RxData address TxData address FA lODataExchange data INDataEx lO Data Exchange Dodi MOO Enabled Do00 Midd OStrobe Do OData ExchDoane Done RxD ata TxData _A_ _ Byte Ip TrigDelay hD100 16 TxData KE Pag 142 210 Programmazione IEC 61131 su SlimLine 3 Flat Library Version 7 16 14 Average value average PLCUtyLib SFR054A800 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 trasferito nella variabile AnaValue Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData Average Auto Mo I S FA aver
12. ingresso ed il ritorno delle funzioni Petes Description mentre per i blocchi funzioni sono Tppe FUNCTION BLOCK indicate le variabili in ingresso ed in Code type EMBEDDED uscita cosi come nella figura a lato Input vars num E Input vars num ae 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 Mnl151b080 Pag 21 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 2 Librerie Le 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 Programmi 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 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 cont
13. 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 parametro da contatore 10016200 Overflow ricezione stringa da contatore Mnl151b080 Pag 145 210 Programmazione IEC 61131 su SlimLine Leek 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 F FILEP Auto Mo n File pointer 2 heterRd IEC62056_21 Auto Mo 0 S IECR2056_21Rd FB data 3 TString STRING Auto 332 x Tx data string d Rating STRING Auto ER hi Rx data string 5 MeterCode STRING Auto 32 Meter code E Password DINT Auto Ko 0 x Meter password 7 Value STRING Auto ER n Variable read value Esempio LD Ptp114A000 hdeterRd IECE2056_27Rd Diddii PQ mA Enables Done Fp_ gt File Fault 2346673 SerialMr TxString 4 8 0 Register RxString beterCode Dogi Mod D 001 OO TxSt
14. Ch lt 16 30 OR Ch gt 16 39 AND Ch lt 16 41 OR Ch gt 16 46 THEN CaseNr 0 Case number RETURN END_IF Convert the received character to a number IF Ch gt 16 30 AND Ch lt 16 39 THEN RxHexData TO USINT Ch 16 30 END IF IF Ch gt 16 41 AND Ch lt 16 46 THEN RxHexData TO USINT Ch 16 37 END IF Transfer data received in RxValue CASE Digit OF 16 00 RxValue RxHexData Received value 16 01 RxValue RxValue 16 RxHexData Received value 16 02 RxValue RxValue 16 RxHexData Received value 16 03 RxValue RxValue 16 RxHexData Received value ELSE CaseNr RETURN END_CASE 0 Case number Digit Digit 1 Digits counter END WHILE END CASE End of file 10 3 1 Utilizzo FB Lettura Scrittura registri Per utilizzare il blocco funzione possibile realizzare un semplice programma in ST che lo richiama Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo U S File pointer 2 FBData FWFegisters Auto Mo U A FA data 3 RdRegs IAT Auto 0 3 AO gt Read registers A VWrRegs JINT Auto 0 3 AO E Write registers D i USINT Auto Mo O AUX counter Esempio ST III III III III III IOI EE Ae READ WRITE REGISTERS FUNCTION BLOCK USE KS KEKKKKKKKKKKKKKKKKKKK KKK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK x Here the COMO port is opened in read write IF FBData Fp
15. 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 errore Mnl151b080 Pag 16 210 Programmazione IEC 61131 su SlimLine Leek 5 4 Serial mode definition definizioni modo seriale Nella gestione dei terminali di I O sono utilizate 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 in condizione di off DTR_ON Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR sempre in condizione di on DIR AUTO WO TIMES Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR in funzionamento automatico senza interposizione di tempi DTR_AUTO W_ TIMES Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR in funzionamento automatico con interposizione di tempi Mnl151b080 Pag 17 210 Programmazione IEC 61131 su SlimLine 3 Hey 6 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
16. S1 B00L 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 DiI0OMOO viene attivata l uscita digitale DoOOMO0 che rimane attiva anche quando l ingresso digitale Di00M00 viene disattivato Per disattivare l uscita digitale DoOOMO0 occorre attivare l ingresso digitale Di01M00 Nota L ingresso digitale Di0OMO0 ha la priorit sull ingresso digitale Di01M0O0 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBSR SR Auto Mo 0 8 SF SevResetfunction block Esempio LD Ptp115a100 FESR DIDO MOO Dog Reg D ee 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 Mnl151b080 Pag
17. 132 7 16 6 PIDMng PID nn Ela Le EE EE 134 7 16 9 PWMOut PWM output management 136 7 16 10 SysdbMXMng DMX management 137 7 16 11 IOEncoder incremental encoder over OO 139 7 16 12 GetlS01155Crc calculate CRC according IO 140 7 16 13 IODataExchange exchange data by using logic WO 141 Mnl151b080 Pag 3 210 Programmazione IEC 61131 su SlimLine Leek 7 16 14 Average value AVEl AGC sivies ui serves rinite aa 143 TAT Protocolo DCMS O 1EC 620390 2 E 144 7 17 1 IEG62056 21Rd IEC62056 21 protocol read 22 deeccaccsndcoccn sacwuswtwasiwoswsvcieastadedndeesddsnidiceadavesnipandesewncecnencscins 145 7 18 Funzioni ed FB gestione modem eModemMLib e 147 7 18 1 ModemCore modem core manadement 148 7 18 2 ModemSMSReceive receive a SMS message 150 7 18 3 ModemSMSRxCmd receive a SMS command 151 7 18 4 ModemSMSSend send a SMS message 152 7 19 Funzioni ed FB gestione One Wire ePLC1WIreLib e 153 7 19 1 OWireMng One Wire management 154 7 19 2 OWRdldentifier One Wire read ROM identifier eee c cee eceecececeeeeaeseseeaeeeceeeaeeeeueeaeaeneeaeeeeeneeas 155 7 19 3 OWRdTemperature One Wire read temperature 157 7 19 4 OWRdHumidity One Wire read bumdty eee 159 7 20 Funzioni ed FB gestione networkiNg i 161 7 20 1 SysIPReach IP address sreachable AAA 162 7 20 2 SysSktListen Sock
18. 32 bits senza segno range da 0x00000000 a OxFFFFFFFF REAL TYPE Variabile floating REAL 32 bits con segno range da 0x00000000 a OxFFFFFFFF STRING_TYPE Variabile stringa STRING 5 2 Task ID definition identificatore di task PLC Le task PLC sono identificate da un identificativo di tipo USINT il valore della task corrente in esecuzione pu essere letto dal programma utente dalla variabile SysActTaskID L ID di task indicato anche con definizioni che si possono trovare nella cartella Task ID 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 tempo 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 5 3 TermiO 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 Description
19. 7 6 1 CTD Counter Down FB ePLCStdLib SFR053A000 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 cp O l uscita Q viene settata ed il conteggio si arresta Solo agendo sull ingresso di load LD possibile mm presettare il counter e fare ripartire un nuovo conteggio Py CTO L ingresso di load LD prioritario sull ingresso di decremento CD CD Bool Comando decremento counter ad ogni fronte attivazione il valore del counter CV si decrementa LD 8001 Comando di load attivando l ingresso il valore di preset PV viene trasferito nel valore del counter CV PV nT 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 cnt 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 digita
20. Definizione variabili Mame Type Address Array Init value Attribute Description Dummy BOOL Auto Mo FALSE n Dummy variable 2 Fp FIER Auto Mo 0 A File pointer 3 owD UDINT Auto No 0 One Wire ID d Cuir OvWirehing Auto Mo 0 One Wire management FA 5 TAGID DAI O0Add Offset Auto Mo D DB100 address TAG ID 6 TAGRd OWRdldentifier Auto No 0 One Wire read identifier Esempio LD Ptp120A000 Open the serial port Systopen SysFirstLoop EN ENO bn COMO FHame Fp mme Mode Manage the SeralfOne Wire converter Lire OVireking Enable Enabled ic File Done Fault OvWirelD Dul D TAGRA OWRdldentifier SysFirstLoop Dummy DEO Add Off set Dodi Mdg o Offset Address IDCode Mnl151b080 Pag 156 210 Programmazione IEC 61131 su SlimLine a Ze Type Library Version 7 19 3 OWRdTemperature One Wire read temperature FB ePLC1WireLib SFRO59A000 Questo blocco funzione esegue gestione di un sensore One Wire di acquisizione temperatura Codice Maxim DS18B20 si collega al blocco funzione OWireMng di i eee gestione convertitore Seriale One Wire Occorre passare OWireID in uscita dal blocco Enable Enabled funzione di gestione convertitore Start Done Attivando il comando di Start viene eseguita la lettura del valore di temperatura dal OM relP Fault dispositivo connesso al bus One Wire Se la lettura ha esito positivo si attiva per un loop di BUade Temperature
21. Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo 0 Port COMO file pointer d FxString STRING Auto 10 0 Received string 2 Rschars INT Auto No Received characters A 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 Sysfread ADR RxString 5 1 Fp Received characters END IF END IF Mnl151b080 Pag 69 210 Programmazione IEC 61131 su SlimLine 3 Flat Type Library Version 7 10 6 Sysfwrite write data to file Function Embedded 3 0 Questa funzione esegue la scrittura di un numero definito di stringhe di lunghezza definita nel AEE 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 Fount rispetto al valore definito Ce Parametri funzione Buf stRING Indirizzo della stringa da scrivere Size INT Lunghezza in caratteri delle stringhe da s
22. 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 Starts 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 Zei END_IF SSS EE SSS lS SS ee EE EE SS rr E EE EE Se EE EE SS SCH 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 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
23. NrOfChars SysVarsnprintf StringOut 32 Counter 04d r n 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 End of file Mnl151b080 Pag 58 210 Programmazione IEC 61131 su SlimLine a Leek 7 9 Funzioni ed FB per gestione Data Ora i f Type Library Version 7 9 1 SysETimeToDate epoch time to date conversion FB Embedded 3 0 Questo blocco funzione esegue la conversione della data espressa in epoch time Occorre Sys Ef meTo Date fornire al blocco funzione la data espressa nel formato epoch ime come presente nella variabile di sistema SysDateTime in uscita dal blocco funzione avremo i valori di data espressi nel formato Giorno Mese Anno ed Ora Minuti Secondi EpochTime Done Fault Year Month Day Wre ekD ay Hour Minute Second 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 usn Ritorna il valore di mese dell anno Range da 1 a 12 Day usin Ritorna il valore di giorno del mese Range da 1 a 31 WeekDay wsint Ritorna il valore di giorno della settimana Range da 0 a 6 0 Domenica 1 Luned 2 Marted 3 Merco
24. PBand REAL ST REAL KP REAL IT REAL DT REAL Enabled eco Error oo OUT REAL Reverse SetPoint a PValue PBand ST a KP T DT 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 Il 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 elevato il valore meno veloce la regolazione integrativa a recuperare l errore Il valore espresso in Sec Tempo derivativ
25. 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 wint 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 unt Dimensione buffer ricezione dati Solo per socket TCP TxSize unt Dimensione buffer trasmissione dati Solo per socket TCP Done 001 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 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 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 rice
26. bk DMADataPtr GAUSINT Auto Mo l DMX data pointer r Add5Red USINT Auto Mo 0 WInIDM con Address 6 Rosso H Addo Green SINT Auto No 0 WIniDMs con Address D Verde 4 Add5Blue USINT Auto Mo 0 MiniDhfX con Address D Blu 10 Add5Dimmer USINT Auto Mo 0 MiniDhf con Address 5 Dimmer Definizione variabili Name Type Address Array Init value Attribute Description 1 FROME SysDhbXMna Auto Mo O n FB gestione protocollo OM Codice sorgente ST Ptp117a100 ptotetotrtelrtuteictoclstel trt tet lutitetiteleret ecstoeletetetterel re lies ESEGUO APERTURA PORTA SERIALE ep SE 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 Valorizzo pointer dati DMX per passarlo alle FB gestione DMX DMXDataPtr ADR DMXData DMX data pointer I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Gestione protocollo DMX FBDMX Start TRUEs Start FBDMX Status 0 Status byte FBDMX Devices 10 Number of devices FBDMX Delay 100 Interframe delay mSec FBDMX DataPtr DMXDataPtr Data array pointer FBDMX FB gestione protocollo DMX End of file Mnl151b080 Pag 209 210 Programmazione IE
27. progetto vengono sovrascritti con gli oggetti presenti nella libreria sorgente ed eventuali nuovi oggetti sono automaticamente importati Do you want to update them Mnl151b080 Pag 23 210 Programmazione IEC 61131 su SlimLine 3 Flap 7 2 3 Import oggetti Per importare nel proprio programma oggetti dalle librerie occorre nel men ERJ otu Communication Scheme Wariables selezionare la voce Project Import object from library Si aprira una finestra New object di browser del disco Scegliere la directory dove si trova la libreria e selezionare Copy Objact il file di libreria da cui si desidera importare gli oggetti Generate redistrbutable source module Import object from ibrar Export object ta lbisiy He Library manages Si aprir la finestra di Object browser che permetter UTES di visualizzare tutti gli oggetti presenti nella libreria selezionando i vari tabulatori presenti possibile ere vaes I Le aes visualizzare tutti gli oggetti della libreria ordinati per TR 3 i nome aT0F TOM Symbol location Con un click del mouse si evidenzia l oggetto o gli en D oggetti desiderati Con il tasto Import object gli oggetti Rei selezionati verranno inclusi nel programma D y Come si nota dalla foto Ware ype EH Project o Definitions a destra alcuni oggetti a a Mnl153a000 Project appaiono visualizzati GEN Programs con un simbolo di Rm Ton lucchetto questo st S E Funct
28. programma l uscita Done e su Temperature sar riportato il valore di temperatura acquisito L uscita Fault si attiva per un loop di programma in caso di errori di gestione Se sul bus One Wire connesso un unico dispositivo possibile forzare a 0 la definizione in DCode del ROM ID se invece sul bus One Wire sono presenti pi dispositivi parallelati occorre definire in DCode l indirizzo dell array di 8 bytes che contiene il ROM ID del dispositivo che si vuole acquisire Enable B00L Abilita il blocco funzione Start B00L Attivando l ingresso viene eseguita la lettura del ROM ID OWirelD upin ID One Wire fornito in uscita dal blocco funzione OWireMng IDCode usinT Puntatore ad array definizione ROM ID dispositivo da acquisire Enabled B00L Blocco funzione abilitato Done 001 Attivo per un loop al termine della lettura temperatura Fault B001 Attivo per un loop se errore 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 OWirelD non definito 10010020 OWirelD non corretto 10010100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10010200 5 Errore nelle sequenze acquisizione temperatura Mnl151b080 Pag 157 210 Programmaz
29. s DTRManagement FALSE DTRComplement FALSE EchoFlush pn errontime pn DTRO Time HTBox HTemp Box D OO MO Da00 Mig PARA Enable Done SysClo d1000 D 001 MOD pr _ ___ Stat Fault Fp e File Errors Th Address TxFrame Temperature Temperature Humidity Mnl151b080 Pag 174 210 Programmazione IEC 61131 su SlimLine Leek 7 22 Funzioni ed FB supporto protocollo NMEA eNMEALIb NMEA 0183 O piu 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 Mnl151b080 Pag 175 210 Programmazione IEC 61131 su SlimLine a Ze Type Library Version 7 22 1 NMEASInterface NMEA system interface FB eNMEALib SFR061A000 Questo blocco funzione gestisce l interfaccia verso un dispositivo che invia sentenze NMEA x re z 9 eg NMEASInterface connesso al dispositivo di I O definito in File questo un
30. 1 Fp Transmitted characters END IF END IF Mnl151b080 Pag 70 210 Programmazione IEC 61131 su SlimLine Elec Type Library Version 7 10 7 SysGetiChars get input available characters from file Function Embedded 3 0 Questa funzione ritorna il numero di caratteri disponibili per la lettura dal flusso dati stream Sys Get Chars 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 Fier Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna URTI 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 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 Mo U S Por COMO file pointer 2 JCh INT Auto Mo i Character read Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen C
31. 30 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 5 Funzioni ed FB per gestione timers Library Version 7 5 1 eTOF Timer Off ePLCStdLib SFR053A000 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 SE dopo il tempo definito PT espresso in mS si disattiva l uscita Q Sulla uscita ET viene ritornato il tempo iN O trascorso dalla disattivazione dell ingresso espresso in mS PT ET IN 8001 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 Bool 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 DiOOMO0O si attiva immediatamente l uscita digitale DoOOMO0 ed il valore di tempo nella variabile VarOut azzerato Disattiva
32. A Ware REAL Auto Mo 0 RETAIN Sample variable 2 3 Vari REAL Auto Mo 12 5 CONSTANT Sample variable 3 d Van BOOL MD100 0 Mo FALSE S Sample variable 4 bo War REAL MD100 2048 Mo 0 S 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 Zu E alla loro definizione e come si nota nella cartella delle variabili ritentive figureranno G solo le variabili mnemoniche Var2 e non le variabili allocate nella memoria utente Var5 pur essendo anch essa di tipo ritentivo Il Constants e Yara 21 1 Retain variables e Var Mnl151b080 Pag 9 210 Programmazione IEC 61131 su SlimLine Leek 2 2 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 logich
33. Address Array init value Attribute Description 1 Fp FILEF Auto Mo 0 A Port COMO file pointer d CANN Sg SYSCANMESSAGE Auto Mo O CAN message A MrOfchars INT Auto Mo O S 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 Mnl151b080 Pag 95 210 Programmazione IEC 61131 su SlimLine 3 Hey Type Library Version 7 13 3 SysCANTxMsg transmit a CAN message Function Embedded 3 0 Questa funzione trasmette un messaggio CAN occorre creare il messaggio e poi passarne alla Sys CANTxMsg funzione l indirizzo in Msg a sg La funzione ritorna TRUE se messaggio trasmesso Parametri funzione Msg svscanmessace Indirizzo buffer messaggio da trasmettere La funzione ritorna BOOL TRUE Messaggio trasmesso 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 CAN sg SYSCANMESSAGE Auto Mo O i CAN message d TKOK BODL AUTO Mo FA
34. Buffer uint Indirizzo buffer dati letti o da scrivere Done 8001 Attivo per un loop al termine della esecuzione del comando 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 10000010 Valore di File non definito 10000050 Timeout esecuzione 20000060 Errore sequenze gestione comando 10000100 Valore di Register errato 10000102 10000200 Frame risposta a comando read in errore 10000300 Frame risposta a comando write in errore 10000400 Errore in ricezione frame Codice comando errato 10000410 Errore in ricezione frame CRC frame errato Mnl151b080 Pag 127 210 Programmazione IEC 61131 su SlimLine Leek Esempi Viene eseguita la lettura ogni 100 mS di 6 registri a partire da indirizzo 16 100 dal nodo modbus 1 Il valore dei registri letti trasferito nell array Registers Spiando la porta seriale COM2 con un programma di emulazione terminale in grado di visualizzare i caratteri esadecimali vedremo ogni 100 mS la stringa con il comando modbus di Read Holding Register 01 03 01 00 00 06 C4 34 Definizione variabili Name Type Address Array Init value Attribute Description 1 En FILEP Auto Mo S Terminal LO pointer 2 Registers WINNT Auto 0 9 1000 Registers area 3 Mdk MDBRTUMASTER Auto Mo Il 3 Modbus Riu master FA d Counter UDINT Auto Mo 0 P Messages counter 5 Erro
35. COSC CUA ONC iii 197 0 Tabela Codi ASCII ui 199 9 6 1 Tabella codici ASCII EE Le e BEE 199 9 6 2 Tabella codici ASCII EE 200 10 ESEIMID Be eieiei Kai en EE 201 10 1 Biblioteca ESEMPI ciale aio 201 10 2 Definizioni I O logici negli esemPpi ii 202 Mnl151b080 Pag 4 210 Programmazione IEC 61131 su SlimLine hlaz 10 3 FB gestione lettura scrittura registri iii 203 e ER Utili zo FB Lett ra Scrttura regist DEEN 205 10 4 FB gestione ciclo On Off con tempi random 206 10 4 1 Utilizzo FB ciclo On Off con tempi random 207 10 5 ee ee KEE el ln UR KEEN 208 105 1 PFProgamma RO AE 209 Mnl151b080 Pag 5 210 Programmazione IEC 61131 su SlimLine et 1 SlimLine Il modulo CPU ARM7 SlimLine l unit centrale base di questa famiglia di controllori programmabili PLC Il dispositivo consente la gestione dei moduli di espansione I O SlimLine attraverso il bus d espansione I2C High Speed ed incorpora altres un alimentatore ad alta efficienza dimensionato per il collegamento di fino a 16 moduli di espansione Il modulo ingegnerizzato in un compatto contenitore in PC ABS autoestinguente UL94 V O e riciclabile esso direttamente innestabile su guide DIN secondo gli standard EN50022 IEC60715 ed accetta tensioni di alimentazione nel range 10 30Vdc A livello hardware questa CPU dotata di 1 Porta Ethernet 10 100 BaseT RJ45 Solo version
36. Cmd FALSE a Cmd Parametri funzione Cmd o0 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 Cee 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 S Input raising time reference UG d Geflime UDINT Auto Mo O Input set time us 3 Pulse BOOL Auto Mo FALSE S Pulse flag Esempio ST Pto116a100 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 IF NOT D100M00 THEN SetTime SysGetSysTime TRUE StartTime END IF END_IF 7 8 1 1 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 Di0OMO00 rimane attivo per pi di un secondo IF NOT D100M00 THEN Tim
37. D100M00 THEN Do00M00 SysGetSerialMode ADR Sm Fp END_IF END_IF END_IF Mnl151b080 Pag 87 210 Programmazione IEC 61131 su SlimLine 3 Flat Mettendo in watch la variabie Sm di tipo SYSSERIALMODE possiamo vedere i valori di tutti i suoi membri come riportato Watch nella figura a lato In questo caso visualizzata la ka Ee configurazione di default 115200 e 8 1 Symbol Value Type ei Sm SYSSERIALMODE Baudrate 115200 UDINT Parity E STRING Databits S SINT Stopbits l SINT DTRManagement 2 USINT mm OTR Complement FALSE BOL mm EchoFlush FALSE BOL DTRONTIme UINT OTROFFTine UINT Pag 88 210 Mnl151b080 Programmazione IEC 61131 su SlimLine Type Library Version Function Embedded 3 0 7 12 2 SysSetSerialMode set serial mode Questa funzione imposta il modo di comunicazione definito nella struttura 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 Sys Set Serial Mode a Mode File Parametri funzione Mode asyssERIALMODE Indirizzo struttura SYSSERIALMODE con il modo da impostare File FLEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna 5905 FALSE Errore esec
38. Description 1 WarUSINT USINT Auto Mo O x USINT variable d VarDINT DINT Auto No O S DINT variable Esempio IL LD VarDINT DINT variable TO USINT ST VarUSINT USINT variable Esempio FBD TO_USINT VarDINT gt VarUSINT Esempio LD TO_USINT EN ENO varbiNT MarUSINT Esempio ST VarUSINT TO USINT VarDINI USINT variable Mnl151b080 Pag 196 210 Programmazione IEC 61131 su SlimLine 9 5 Errori di esecuzione 5 Fleet Alcune funzione e o blocchi funzione possono avere errori di esecuzione tipicamente ritornata una flag di fault che indica l errore Per acquisire il codice di errore utilizzare la funzione SysGetLastError ritorna il codice dell ultimo errore v eseguita immediatamente dopo la funzione di cui si vuole controllare l errore Da debug possibile controllare il valore della variabile SysLastError che sar 0 se nessun errore oppure valore dell ultimo errore riscontrato nella esecuzione del programma ID Range errore Funzione o FB 9958 9958000 9958999 Sysfseek file seek 9959 9959000 9959999 Sysfilelength file lengh 9960 9960000 9960999 Sysrename file rename 9961 9961000 9961999 Sysremove file remove 9962 9962000 9962999 SysFOBfFlush file output buffer flush 9963 9963000 9963999 SysFOBfClear file output buffer clear 9964 9964000 9964999 SysFlIBfClear
39. FE_R_TRIG R_TRIG Dido Woo Da00 Woo CLE L Esempio IL CAL FBR TRIG Call the R TRIG function block LD Di00M00 ST EBR 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 Si 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 Mnl151b080 Pag 28 210 Programmazione IEC 61131 su SlimLine Library Version 7 4 3 RS Reset Set flip flop ePLCStdLib SFR053A000 Questo blocco funzione su attivazione del comando di set S attiva l uscita Q1 che rimane attiva anche quando il comando viene disattivato Per disattivare l uscita occorre attivare il comando di reset R1 Il comando di reset R1 prioritario sul comando di set S SS S 6001 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 B001 Uscita si attiva e disattiva in funzione dei comandi di S set e R1 reset Esempi Sulla attivazione dell ingresso digitale Di00MO00 viene attivata l uscita digitale Do00M0O0 che rimane attiva anche quando l ingresso digitale Di00M00 viene disattivato Pe
40. Li File pointer Esempio LD Sysfopen SysFirstLoop EN Sys Set Serial OTR GiOO NOD Status Fp File D oli hii Mnl151b080 Pag 93 210 Programmazione IEC 61131 su SlimLine 3 Flt 7 13 Funzioni ed FB per gestione CAN bus Type Library Version 7 13 1 SysISCANRxTxAv checks if CAN Rx or Tx is available Function Embedded 3 0 Questa funzione controlla Svsls 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 oo 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 8996 TRUE Condizione selezionata vera 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 Name Type Address Array Init value Attribute Description 1 En FILEF Auto Mo O Port COMO file pointer d CANN Sy SYSCANMESSAGE Auto Mo O 3 CAN message A MrOfCchars INT Auto Mo O n 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 fi
41. NULL THEN FBData Fp Sysfopen COMO rw Port COMO file pointer zi END IF If the COMO port is opened the function block is executed IF FBData Fp lt gt NULL THEN FBData END IF Copy the read write registers FOR i 0 TO 3 BY 1 DO FBData RdRegs i RdRegs i WrRegs 1 FBData WrRegs 1 END FOR End of file Mnl151b080 5 Flat Pag 205 210 Programmazione IEC 61131 su SlimLine hlaz 10 4FB gestione ciclo On Off con tempi random Esempio di blocco funzione che utilizzando le funzioni SysGetSysTime e SysGetRandom permette di realizzare la gestione di una uscita lampeggiante con tempi di On Off variabili in modo random entro tempi minimo e massimo definiti Il programma in codice sorgente FBOnOffCycle si trova nel Ptp116 000 Definizione variabili Class E Mame Type Array Init value Attribute Description 1 MA DelayTm UDINT Mo 0 Delay time us d VAR Timebf UDINT Mo Time buffer up 3 VAR TimePsd LIDINT Kl O i Time passed UD d VAR_INPUT 1 MinOfTime UDINT Mo 0 X Minimum of time ims 5 VAR INPUT MaxOfTime UDINT Mo 0 Maximum off time ims bh VAR INPUT 3 MinOnTime UDINT Mo D Minimum op time ms Z VAR_INMNPUT 4 MaxOnTime UDINT Mo 0 Maximum on time ms D VAR OUTPUT 0 ut BOOL Mo FALSE 3 Output status 9 VAR_OQUTPUT Delay UDINT Mo D Current delay time moi 10 VAR_INPUT 0 Enable BOOL Mo FALSE 9 FB enable Codice sorgente blocco funzione in ST I I I I I I
42. Pag 164 210 Programmazione IEC 61131 su SlimLine Ze Type Library Version 7 20 3 SysUDPSktRcv UDP socket receive FB Embedded 6 0 Questo blocco funzione esegue la ricezione dati da un socket UDP occorre passare alla FB un SysUIDESKtRev flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen ed il socket deve essere stato posto in condizione di listening dalla funzione Enable Done SysSktListen File Fault parametri PeerIP e PeerPort indicano l indirizzo IP e la porta da cui sono accettati i dati se Sit SEE non connessi sono accettate connessioni da tutti gli IP e da tutte le porte Win Sensor a ei i _ BxData Resize Nel parametro RxData bisogna definire l indirizzo del buffer di memoria in cui verranno trasferiti DS 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 001 Abilitazione blocco funzione File FLEP 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 uint Porta da cui saranno accettate le connessi
43. Paste xe rr Target ki Operator and standard blocks Target variables Operator and standard blocks Agendo con il tasto destro del mouse su ogni singola variabile possibile MISE visualizzarne la finestra delle proprieta in Object name SysStartT ime cui indicato il tipo e l indirizzo di allocazione cosi come nella figura a lato Properties Description WARIABLE Normal UDINT MBO 31E Cancel Mnl151b080 Pag 12 210 Programmazione IEC 61131 su SlimLine 5 Fleet 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 100mS SysClock1000 BOOL Clock lampeggiante con duty cycle di 100mS 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 SysActTaskID USINT Numero di identificazione della task in
44. Programmazione IEC 61131 su SlimLine Elec Type Library Version 7 10 13 SysFOBfFlush file output buffer flush Function Embedded 3 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 eer Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RESA 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 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 F FILEP Auto Mo U n 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 Mnl151b080 Pag 77 210 Programmazione IEC 61131 su SlimLine Type Library Version Function
45. Programmazione IEC 61131 su SlimLine Definizione variabili Mame Type Address Array 1 FB_CTUD CTUD Auto Mo d Outvalue INT Auto Mo Esempio LD Ptp115a100 D 00 MOO Didi MODO Dios Woo DIOS MOO Esempio IL Init value CAL FB CTUD Call the CTUD function block LD 10 ST FB CTUD PV Preset value LD Di00M00 Attribute e ey QU _ _ _ _ _ CE Op e eee CM e _ _ _ LI eng 5 Flat Description CTUD Counter UpiDown function block Qutput value FB_CTUD CTUD Doli WOO Dot MOO Cutt 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 D102M00 ST EB CTUD R IT the digital input is set the counter is ese LD D103M00 SE EB CTUD LD LE the digital input is set the PY 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 Di01M00 On the raising edge of digital input the counter count down F
46. Set the maximum off time LD 2000 ST FBData MinOnTime Set the minimum on time Si LD 4000 Mnl151b080 Pag 132 210 Programmazione IEC 61131 su SlimLine 3 Flap 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 Pto114a100 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 Mnl151b080 Pag 133 210 Programmazione IEC 61131 su SlimLine Library Version 7 16 8 PIDMng PID management PLCUtyLib Questo blocco funzione esegue la regolazione PID E prevista la possibilita 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 SFR054A000 PIObmng FIDEnable Enable DEnable Enabled Error Out PIDEnable B001 Enable B001 DEnable oot Reverse 8001 SetPoint REAL PValue REAL
47. SlimLine a Elec Type Library Version 7 20 2 SysSktListen Socket listen FB Embedded 6 0 Questo blocco funzione forza il socket nella condizione di listening occorre passare alla FB un i na 3 i SysSktListen flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen Enable Done ER f oa di File Fault parametri MyIP e MyPort indicano l interfaccia di rete e la porta su cui il socket in ascolto MyIP pu essere lasciato non connesso ed in tal caso viene utilizzata l interfaccia ethernet i Sanese ae i _ MyPort ClientlP parametri LifeTm FlushTm RxSize TxSize devono essere definiti solo se si tratta di _ WS SE socket TCP possono essere lasciati non connessi nel caso di socket UDP e z US In L uscita Done si attiva se tutti i parametri sono corretti ed il socket stato messo in condizione RSize di listening Quando un client si connette Solo socket TCP si attiva l uscita Connect e nelle variabili ClientIP e ClientPort sono ritornati l indirizzo IP e la porta connessa al socket a TxSize Enable 8001 Abilitazione blocco funzione attivandolo si forza socket in condizione di listening File FLEP 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
48. SysETimeToDate Day ST Day Esempio ST Pto116a100 Here FB SysETimeToDate is executed and variables copied FB sysklimel oDate Epochlime SysDatelime FB SysETimeToDate Year FB SysETimeToDate Year Year Month FB SysETimeToDate Month Month Day FB SysETimeToDate Day Day Mnl151b080 Pag 60 210 Programmazione IEC 61131 su SlimLine a Elec Library Version 7 9 2 SysDateToETime date to epoch time conversion Embedded 3 0 Questo blocco funzione esegue la conversione della data espressa in epoch time Occorre Sys DateToETi me fornire al blocco funzione la data espressa nel formato epoch ime come presente nella variabile di sistema SysDateTime in uscita dal blocco funzione avremo i valori di data espressi nel 1 o formato Giorno Mese Anno ed Ora Minuti Secondi Day EpochTime Hour Minute a Second Year uint Definisce il valore di anno Range da 1970 a 2099 Month usn Definisce il valore di mese dell anno Range da 1 a 12 Day usin Definisce il valore di goiorno del mese Range da 1 a 31 Hour usint Definisce il valore di ora Range da 0 a 23 Minute usin Definisce il valore di minuti Range da 0 a 59 Second usint Definisce il valore di secondi Range da 0 a 59 Done 6001 Attivato al termine della conversione Fault 8001 Errore di conversione viene attivato in caso di errore nella conversione EpochTime wont Ritorna data espressa in epoch time Cod
49. Tips and tricks 8 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 variabile VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarQut DWORD Auto Mo I x Output variable Esempio LD ROL 16 12345678_ Li mu Esempio IL LD 16 12345678 ROL 16 ST VarOut Output Variable Esempio ST VarOut ROL 16 12345678 16 Output variable zi 8 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 VWarQut WORD Auto Mo O si Qutput variable Esempio LD ROL EN 1681234 sui Esempio IL LD 16 1234 ROL 8 ST VarOut Output variable zi Esempio ST VarOut ROL 16 1234 8 Output variable zi Mnl151b080 Pag 187 210 5 Flat Programmazione IEC 61131 su SlimLine 8 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 1 VarQut BYTE Auto Mo 0 Description Output variable
50. 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 Mnl151b080 Pag 176 210 Programmazione IEC 61131 su SlimLine hlaz Type Library Version 7 22 2 GLLSentence Geographic Position sentence FB eNMEALib SFR061A000 Questo blocco funzione esegue la ricezione della sentenza GLL Geographic Position si GLL Sent collega al blocco funzione NMEASInterface di gestione dispositivo NMEA Occorre TESERO passare NMEAID in uscita dal blocco funzione di gestione dispositivo Enable Done La sentenza GLL contiene le informazioni di latitudine longitudine ora e fix esempio di Ke 9 eng sentenza IIGLL 4419 0173 N 00829 6653 E 084550 00 A 2 09 9 ua 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 UTChiinute corretta UTCSecond Enable 001 Abilitazione blocco funzione NMEAID upin 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 B001 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 in
51. a partire dal suo indirizzo di allocazione ipotizzando di dover scrivere nella variabile il valore 0x12345678 avremo Mnl151b080 Pag 18 210 Programmazione IEC 61131 su SlimLine 3 Hey 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 0B 01 10 9C 5F 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 6 2 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 Epoch time Read 100 105 150 Epoch time Preset single register Word Read input registers Word 16 Bit 16 Bit Write 100 105 150 Epoch time Write 100 105 150 Epoch time Preset multiple registers Word 16 Bit registri 16 Bits del real time clock sono allocati in locazioni consecutive a partire dall indirizzo modbus 100 registri c
52. bloccato la stampa a 12 caratteri il valore di Varf0 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 Varf0 Da notare l offset decrementato di 1 per sovrascrivere il terminatore stringa WU 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 WrOfChars INT Auto Mo DU Number of printed chars d War DINT Auto 0 1 12 34 i Variables 3 Result STRING Auto 32 Esempio ST EE x EXECUTE A VARIABLES PRINT MERGE ES 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 NrOfChars 1 13 20Var 1 d UDINT TYPE ADR Var 1 End of file Mnl151b080 Pag 101 210 Programmazione IEC 61131 su SlimLine i Type Library Version 7 14 5 SysVarsscanf extracts values from string Function Embedded 4 0 Questa funzione legge la stringa String e ne interpreta il contenuto basandosi sul par
53. blocco funzione protetto per utilizzarlo 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 a DID HME alt RxString L FB riceve le sentenze NMEA dal dispositivo ne controlla il prefisso comparandolo 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 001 Abilitazione blocco funzione File FLEP 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 unn ID interfaccia con sistema NMEA da passare alle FB collegate RxString stRING 82 Contiene la stringa ricevuta dal dispositivo pu 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
54. corso vedi tipi definiti SysModulesReady UINT Ogni bit della variabile se attivo indica la presenza del modulo connesso al bus SlimLine 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 SysTBackLpTmMax 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 SysTBootExTm 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 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
55. 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 Mnl151b080 Pag 141 210 Programmazione IEC 61131 su SlimLine Esempi 5 Flat 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 1 ExchDone BOL AUTO Kl 2 FxData UDINT Auto Mo A TxData UDINT Auto Mo d FxDataAdd DBI00AddOffset Auto Mo bh TxDataAdd DBI00AddOffset Auto Ko bh ODataEx lODataExchange Auto Mo Esempio LD Ptp121A000 Dido woo Didi Mod DOO KAO Diddi hiid RxD ataAdd DE1AD0Add Of set 0
56. di input Ricezione 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 eta FILER Auto Mo U A File pointer d Space UDINT Auto Mo U n Rx buffer space Nr of Chars Esempio LD SysFirstLoop EN ENO 1 DM FHame wiad Se ode Sys GetRx B Size Mnl151b080 Pag 73 210 Programmazione IEC 61131 su SlimLine Type Library 5 Fleet Version 7 10 10 SysGetTxBSize get file Tx output buffer size Function Embedded Questa funzione ritorna la dimensione del buffer di output Trasmissione sul flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen 5 0 Sys GetTxB Size File Parametri funzione File Fee Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna eI 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 Esempi E riportato un semplice programma che ritorna la dimensione del buffer di output Trasmissione della porta seriale COM2 Il valore ritornato espresso in numero di caratteri Bytes trasferito nella variabile Space Definizione variabili Mame Type Address Arr
57. dispositivo di I O definito in File questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di nee eae protezione vedi protezione funzioni e blocchi funzione EI comunque possibile utilizzarlo Fhnable Enabled liberamente in modo test per 30 Min File Done L FB gestisce il dialogo con il modem ne esegue l inizializzazione e ne controlla lo stato paul controlla se il modem connesso alla rete GSM e ritorna l operatore di rete Operator ed il SOI livello del segnale Rssi Nel caso in cui il modem si sganci dalla rete l FB provvede al suo CLIP Red riaggancio automatico aderito L uscita Done si attiva se il modem correttamente inizializzato mentre l uscita Fault si VSS attiva per un loop di programma in caso di errori di gestione ModemRx CLIPHumber E previsto un comando PowerOn per la gestione della alimentazione del modem in ei questo modo l FB pu spegnere e riaccendere il modem in caso riscontri una non funzionalit dello stesso Library Version eModemLib SFR057A100 Resi L FB ritorna un ModemID che deve essere passato alle FB collegate Esempio invio SMS ricezione SMS ecc Le uscite ModemTx e ModemRx riportano i comandi inviati e ricevuti dal modem in questo modo possibile visualizzare in debug la comunicazione con il modem permettendo di visualizzare eventuali errori nell interfaccia con il modem Su ricezione chiamata telefonica viene rilevato il CLIP del chia
58. encoder moltiplicato per 4 Esempi Nell esempio gestita l acquisizione di un encoder incrementale connesso agli ingressi del modulo CPU Ruotando l encoder il valore di Quote verr incrementato se rotazione CW oppure decrementato se rotazione CCW del numero di tacche giro moltiplicato per 4 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Encoder IDEncoder Auto Mo i S IDEncoder function block 2 CPUID CPUModuleld Auto Mo 0 CPUMOodulelO function block 3 Quote WDINT Auto Mo 0 Encoder quote Esempio LD Ptp114a200 CPUIO Encoder CPUMOoduel0 lO Encoder SvysFirstLoop Enable Enabled DODO Done 6007 Mnl151b080 Pag 139 210 Programmazione IEC 61131 su SlimLine 3 Hey Type Library Version 7 16 12 GetlS01155Crc calculate CRC according ISO1155 Function PLCUtyLib SFR054A400 Questa funzione esegue il calcolo del CRC Cyclic Redundancy Check Controllo Ciclico di Getl5041155Cr0 Ridondanza su di un area dati Il calcolo effettuato secondo le specifiche ISO 1155 ec Occorre passare alla funzione l indirizzo del buffer di memoria Buffer ed il numero di bytes EyteMr ByteNr su cui eseguire il calcolo del CRC Buffer usinty 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 CRC int Valore CRC calcolato Esempi V
59. 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 FILEF Auto Mo U Port COMO file pointer d Pulse BOOL Auto Mo FALSE S Pulse flag 3 Counter UDINT Auto Mo 0 7 Counter d MrotChars IMT Auto Mo 0 Esempio ST Here the COMO port is opened in read write TE Fp NULL THEN Fpt Systopen COM0 rw END IF IF Fp lt gt NULL THEN IF D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF Di00M00 THEN Counter Countert l Counter zi NrOfChars SysVarfprintf Fp Counter 04d r n UDINT TYPE ADR Counter END IF END IF END IF Mnl151b080 Pag 78 210 Programmazione IEC 61131 su SlimLine hlaz 7 11 File system Le CPU SlimLine ARM 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 possibile creare nuovi files cancellare files esistenti rinominare files esistenti leggere e scrivere
60. in cui File dovr essere trasferito il modo seriale attualmente impostato sulla porta La funzione ritorna FALSE in caso di errore Parametri funzione Mode asyssERIALMODE Indirizzo struttura SYSSERIALMODE in cui trasferire il modo letto File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna 3990 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 Esempi Su fronte attivazione ingresso Di00MO00 viene salvato il modo impostato sulla porta seriale COMO nella variabile Sm e viene attivata l uscita DOo00MO0O0 Definizione variabili Mame Type Address Array Init value Attribute Description 1 En FILER Auto Mo LU Port COMO file pointer 2 Sm SYSSERIALMODE Auto Mo LU T Serial mode data struct A Fulge BOOL Auto Mo FALSE Pulse flag 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 Check if the COMO port is open IF Fp lt gt NULL THEN Check if input is activated IF Di100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag On input raising edge the serial mode is read IF
61. in uscita dallo stream si utilizza la funzione che controlla se spazio disponibile SysGetOSpace 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 SysVarfprintf Definizione variabili Name Type Address Array Init value Attribute Description 1 TString STRING Auto 332 Rx string 2 File FILER AUTO Mo O x File pointer A 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 TxString END IF Mnl151b080 Pag 192 210 Programmazione IEC 61131 su SlimLine H Appendici 9 1 Tabella istruzioni IL 5 Fleet 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 ne
62. 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 Do00MO00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di01M00 che resetta il counter Definizione variabili Name Type Address Array Init value Attribute Description 1 ER CTIU GIU AUTO Mo O di CTU counter Up function block d QOutvalue INT Auto Mo DU E Output value Esempio LD Ptp115a100 FB_CTU CTU DiDa hoo Do00h00 oc EH a DOC RS I cy Outvalue cio Esempio IL CAL FBCTU Call the CTU function block LD 10 ST FBCTU PV Preset counter Si LD D100M00 ST FB CTU CU On the raising edge of digital input the counter count up LD Di01M00 ST BE CIR Li the digital input ig pet the counter ic reset 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 Mnl151b080 Pag 36 210 Programmazione IEC 61131 su SlimLine 3 Flat Type Library Version FB ePLCStdLib SFR053A000 7 6 3 CTUD Counter Up Down Questo blocco funzione esegue la gestion
63. pointer 5 Pulse BOOL Auto No FALSE Pulse flag Esempio ST Pto116a100 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 Di00M00 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 rt Rn 488 Rn 898 Ee Rn 944 Mnl151b080 Pag 53 210 Programmazione IEC 61131 su SlimLine Elec Type Library Version 7 8 4 SysGetLastError get last error Function Embedded 5 0 Questa funzione ritorna il numero dell ultimo errore rilevato da una funzione e o da un blocco SysGetLastError funzione Elenco errori 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 Cmd Parametri funzione Cmd oot Indica il numero di errore ritornato TRUE Viene ritornato l ultimo
64. 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 suo contenuto L apertura ma salvaguarda il suo contenuto 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 9996100 Nome risorsa FName ha lunghezza errata 9996110 Nome risorsa FName ha lunghezza errata 9996200 2 Impossibile utilizzare porta da programma utente Esempi Viene aperta la porta seriale in read write Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo DU Port COMO file pointer Esempio LD Sysfopen SysFirstLoop EN ENC U COMO FHame od mn ode Esempio ST Pto116a100 IF Fp NULL THEN Mnl151b080 Pag 63 210 Programmazione IEC 61131 su SlimLine 3 Flap Fp Sysfopen COMO rw Port COMO file pointer END IF Mnl151b080 Pag 64 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 10 2 Sysfclose file close Function Embedded 3 0 Questa funzione permette la chiusura del collegamento alla risorsa indicata dal parametro File SIOE precedentemente aperto dalla funzione Sysfopen ae In caso di errore chiusura la funzione ritorna EOF Parametri funzione Fi
65. presenti nella cartella Report variables ritornano informazioni di report sul funzionamento del sistema Il programma utente pu utilizzare le variabili a piacere ma non pu modificarne il valore Name Type 5 Fleet Description ErCode UDINT Numero dell errore di esecuzione programma SysErTime UDINT Data ed ora in cui l errore avvenuto Epoch time ErActTaskID USINT Numero di identificazione della task in cui l errore si verificato Erlnfos STRING 32 Mnl151b080 Stringa ascii con informazioni aggiuntive sull errore Pag 14 210 Programmazione IEC 61131 su SlimLine 3 Hey 4 3 Variabili lettura e scrittura System variables 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 Description SysTimelnit 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 Data ed ora di sistema Epoch time Modificando il valore verr automaticamente aggiornato anche il real time clock SysLastError Last error ritorna il valore dell ultimo errore verificatosi nella esecuzione di una funzione o di un blocco funzione elenc
66. 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 D StringQut USINT Auto 0 31 320 String output 6 i INT Auto Mo 0 si Auxiliary counter T Ch IMT Auto Mo O P Character written Esempio ST Pto116a100 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 Mnl151b080 Pag 100 210 Programmazione IEC 61131 su SlimLine 3 Flt 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 Di00M00 THEN Counter Countert l Counter NrOfChars SysVarsnprintf ADR StringOut 32 Counter 04d r 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 Eeguire il merge pu essere molto utile per avere un unica stringa contenente la stampa del valore di piu variabili Mettendo in debug la variabile Result vedremo la stringa Var 0 12 Var 1 34 Avendo
67. su SlimLine lam 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 Description 1 Fp FIER Auto Mo 0 Terminal VO file pointer 2 ohlode Setohlode Auto No DU FA set serial mode A DSPhs AuroraDSPMeasure Auto Mo 0 FA Aurora DSP measure 4 Value REAL Auto No DU Value read from inveter Esempio LD Sysfopen SysF irstLoop EH eaS COMO FH ame rr Mode CMode Set CG Mode SysF irstloop l Oo Fr pn DTROfTIme DSPhds urora DSF Measure DiD nod Dok e ________________ k Maaae e Emahle Done Did 1 M00 Dogi hig F _ tat Fault Fp gt Frile Value 4 Address Errors oi Measure Mnl151b080 Pag 183 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version FB ePowerOneLib SFR062A000 7 23 2 AuroraCEnergy Aurora cumulated energy reading Questo blocco funzione esegue la lettura della energia generata da un inverter Aurora della gt a He 6 i Auroral Energy Power 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 Enable Done blocchi funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min S
68. 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 Operazione 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 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 OE yo DISPLAY OVEN TEMP DISPLAY MOTOR_ SPEED DISPLAY GROSS TARE 0 10 DISPLAY STATUS TW 4 1 2 ES 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 Mnl151b080 Pag 195 210 Programmazione IEC 61131 su SlimLine 3 Hey 9 4 Conversione tipo dati Nella stesura di programmi capita frequentemente di dover eseguire una conversione di tipo Detto anche casting in pratica
69. uscite logiche Quindi testando lo stato della immagine di memoria degli ingressi logici si testa lo stato del relativo punto di ingresso Esempio IX0 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 WO analogici presenti sui moduli di estensione sono gestiti tramite le funzioni SysGetAniInp e SysSetAnOut contatori sul modulo CPU e sui moduli di estensione sono acquisiti dal blocco funzione SysGetCounter Gli ingressi encoder presenti sui moduli di estensione sono acquisiti dal blocco funzione SysGetEncoder Per accedere alle porte seriali presenti sul modulo CPU occorre utilizzare la funzione 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 occorre utilizzare la funzione Sysfopen definendo il nome della porta da utilizzare 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 PCOM1 2 definisce la porta 2 presente sul modulo 1 COMO Porta seriale RS232 Su modulo CPU COM Porta seriale RS2
70. variabile Refresh ritorna la percentuale di tempo trascorsa dall ultimo aggiornamento della tabella ARP del sistema con l indirizzo IP definito 6 0 Refresh Enable B001 PeerlP strinci15 Done B001 Fault B00 Refresh usint Abilitazione blocco funzione attivandolo si forza socket in condizione di listening Stringa di definizione indirizzo IP di cui eseguire la ricerca Attivo se indirizzo IP raggiungibile Voce presente in tabella ARP Attivo per un loop di programma se errore gestione Percentuale di tempo da ultimo aggiornamento tabella ARP Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9974050 Errore allocazione blocco funzione 9974060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9974070 Errore versione blocco funzione 9974100 Errore indirizzo IP definito PeerlP 9974200 Errore invio richiesta ARP 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 IP address reached d IPRch SyslPReach Auto Mo FA IP reach Esempio LD IPReh SyslF Reach Reached Enable 192 168 033 PeellP Done Fault Refresh Mnl151b080 Pag 162 210 Programmazione IEC 61131 su
71. 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 Mnl151b080 SFR054A000 Word To Byte n WSB LSB MSBByte Pag 45 210 Programmazione IEC 61131 su SlimLine Library 5 Fleet Version 7 7 1 DoubleToWord Double to word conversion ePLCUtyLib Questo blocco funzione permette di convertire una variabile DWORD in due variabili WORD IN oworp Variabile da convertire MSW woro MSW del valore in ingresso LSW worn LSW del valore in ingresso Esempi Le variabile VarInp 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 MSH A MSBWord WORD Auto Mo 0 Valore word LSB 3 Varinp COM Auto Mo U Variable input 4 FAData DoubleTovvor Auto Mo U FA Word to byte data Esempio LD Ptp114a100 FHL ata CoubleTo Word EN ENO Varlnp gt In MG Esempio IL Ptp114a100 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 Pto114a100 FBData In VarInp Transfer the variable to input FBData Cal
72. 0 5 Di04M00 BOOL w0 Mo FALSE Input 04 Module address O 6 Di0SMOO BOOL 0 5 Mo FALSE Input 05 Module address 0 7 DIOEMOO BOOL DIV P No FALSE n Input 06 Module address 0 H DIO MOO BOOL DVD No FALSE S Input 07 Module address 0 H Di08MO0O BOOL X0 8 Mo FALSE 7 Input 08 Module address O 10 Di09M00 BOOL DVD 0 No FALSE z Input 09 Module address 0 11 Di OMO0 BOOL x0 10 Mo FALSE 7 Input 10 Module address 0 12 Dit1M00 BOOL 6080 11 No FALSE 7 Input 11 Module address 0 13 Do00MO00 BOOL C00 No FALSE 7 Output 00 Module address 0 14 Do01M00 BOOL WO0X0 1 Mo FALSE n Output 01 Module address 0 15 Do02M00 BOOL DCD Mo FALSE Output 02 kodule address 0 16 Do03M00 BOOL DND Mo FALSE Output 03 module address 0 17 Do04MO00 BOOL KOXO 4d No FALSE Output 04 module address 0 18 Do05MO00 BOOL G05 Mo FALSE Output 05 Module address 0 19 DodeMod BOOL DND P Mo FALSE Output 06 Module address O 40 Do07MO00 BOOL DCD Mo FALSE i Output 07 Module address 0 Mnl151b080 Pag 202 210 Programmazione IEC 61131 su SlimLine Leek 10 3FB gestione lettura scrittura registri Per meglio comprendere il funzionamento delle funzioni di gestione I O su dispositivo ecco l implementazione di un blocco funzione per la lettura e scrittura di registri da porta seriale Il programma in codice sorgente FBRdWrRegisters si trova nel Ptp116 000 Definizione variabili Class ae Mame Type Array Init value Attribute Desc
73. 000 3h TG Pe p_ ii Wo AddOfs a E DE100AddOff st alue is d rn a EN ENO UDINT_TYPE SY Vate VarAdd Mnl151b080 Pag 122 210 Programmazione IEC 61131 su SlimLine Library 7 16 2 BLINK blink command 5 Fleet Version PLCUtyLib 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 definiti ENABLE B001 l uscita OUT viene resettata SFR054A000 BLINK a ENABLE TIMELOWI TIMEHIGH OUT Abilitazione blocco funzione attivandolo viene gestita l uscita OUT lampeggiante Disattivandolo TIMELOW wont TIMELOW wont OUT oo Definisce il tempo in cui l uscita OUT rimane nello stato logico low espresso in mS Definisce il tempo in cui l uscita OUT rimane nello stato logico high espresso in mS 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 l uscita digitale Do00M00 lampeggia con i tempi definiti Disattivando l ingresso digitale Di00MO00 l uscita digitale DOo00MO00 si azzera immediatamente Definizione variabili Address Auto Mame Init value Attribute 1 FBeBLNK Type BLINE Array Mo U Esempio LD Ptp114a100 FB_BLINK BLINK Diddii J _Mm ENABLE OUT 100 TIMEHIGSH Esempio IL Ptp114a100 Description eBLIN
74. 010000 10010999 OWRdTemperature One Wire read temperature 10011 10011000 10011999 IODataExchange exchange data by using logic I O 10012 10012000 10012999 PIDMng PID management 10013 10013000 10013999 STESnmpAcg STE termometer acquisition over SNMP 10014 10014000 10014999 UDPDataTxfer UDP data transfer 10015 10015000 10015999 OWRdHumidity One Wire read humidity 10016 10016000 10016999 IEC62056_21Rd IEC62056 21 protocol read 10017 10017000 10017999 NMEASInterface NMEA system interface 10018 10018000 10018999 GLLSentence Geographic Position sentence 10019 10019000 10019999 ModbusRTUSlave modbus Rtu slave 10020 10020000 10020999 MWVSentence Wind Speed and Angle sentence 10030 10030000 10030999 AuroraDSPMeasure Aurora measure request to DSP 10031 10031000 10031999 AuroraCEnergy Aurora cumulated energy reading 10032 10032000 10032999 HTempBox HTemp Box2 485 acquisition Mnl151b080 Pag 198 210 Programmazione IEC 61131 su SlimLine 9 6 Tabella codici Ascii 9 6 1 Tabella codici ASCII standard Mnl151b080 LU Oo OI nea SI DI A ki H HA ki ew PA e CO 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 acknowledge Synchronous idle End trans bloc
75. 0200 Set the case number to receive value Print out the register address and value 16 0112 IF Address lt 3 THEN Chi SysVarftprintt Fp Address 304x UINT TYPE ADR Address tz Ch SysVarfprintf Fp Value 304XSr n UINT TYPE ADR RxValue RdRegs Address RxValue END IF CaseNr 0 Case number MANAGE THE DATA RECEPTION Ettel x In the tollowing cases the data is received reception ends when a SI or r is been received or if the maximum of an integer 4 zi x digits is received I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 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 nn en SEA e CA x x Initialize the data reception 16 0200 Digit 0 Digits counter RxValue 0 Received value CaseNr CaseNr 1 Case number Data reception 16 0201 WHILE TO BOOL SysGetIChars Fp DO Ch Sysfgetc Fp Character Skips the characters before the number IF Digit 0 AND Ch 32 THEN RETURN END IF CS If or e is been received continue IF Ch 13 THEN CaseNr CaseBack RETURN END IF IF Ch 32 THEN CaseNr CaseBack RETURN END IF Mnl151b080 5 Flat Pag 204 210 Programmazione IEC 61131 su SlimLine Check if is an hexadecimal character if not is an error IF
76. 03 Illegal data value comando ricevuto ha campo dati fuori range 10019504 Eccezione 04 Failure in associated device comando ricevuto contiene imprecisioni Mnl151b080 Pag 130 210 Programmazione IEC 61131 su SlimLine Esempi 5 Flat Viene gestito il protocollo modbus slave su porta seriale COMI si utilizza le impostazioni seriali di default 115200 e 8 1 comandi modbus possono agire su tutta l area della DB100 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FxDone BOOL Auto Mo FALSE S Modbus Rx command Ok 2 RxFault BOOL Auto NO FALSE Modbus Rx command fault 3 AddSni DB1OUAdd Offs et Auto Mo O E DB address FB 4 Fp FIER Auto Mo 0 3 File pointer D MdbSn ModbusRTUSlave Auto No O Modbus RTU slave FB 6 SMode GetsMode Auto NO 0 Set serial mode FB Esempio LD Sysfopen SysF irstLoop EH COMA FM ame Mod mm ode hidbSn Modbus ETUS awe Enable Fp_ gt File AddSn _i__ Node DE 100 Add Offset 40000 Offset _o_ _ Diet Butter 4096 Size IF Time Mnl151b080 ENO RxDone Done Rack ault Fault Errore Pag 131 210 Programmazione IEC 61131 su SlimLine 3 Flt Library Version 7 16 7 ONOFFCYCLE on off cycle with random times l PLCUtyLib SFR054A000 Questo blocco funzione esegue la temporizzazione di un ciclo On Off con tempi random di Lily a ONOFFCYCLE On e di Off definibili tra v
77. 10 Programmazione IEC 61131 su SlimLine hlaz 7 3 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 Project Definitions KyPraject Project SysPCodeAccept O B Programs La funzione v eseguita una sola volta passando il codice di protezione se il codice ES PCodes corretto la funzione ritorna TRUE e la relativa funzione sar sprotetta fino al C Function blocks prossimo riavvio del programma E possibile eseguire piu chiamate alla funzione 1 Functions 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 Codeso
78. 1285763253 GMT Wed 29 Sep 2010 12 27 33 UTC 6 3 2 Scrittura Epoch time da modbus Per la scrittura dell epoch time si utilizza il comando Preset multiple registers Codice 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 01 10 00 95 00 02 04 30 B5 4C A3 50 A3 Stringa di risposta 07 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 Mnl151b080 Pag 20 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 Funzioni ed FB Funzioni Le funzioni 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 p
79. 32 Su modulo CPU COM2 Porta seriale RS485 Su modulo CPU PCOMx y Porta seriale x sul modulo di estensione y PCOMO 2 definisce porta 0 sul modulo 2 II CAN bus viene gestito dalle funzioni SysCANRxMsg e SysCANTxMsg Mnl151b080 Pag 7 210 Programmazione IEC 61131 su SlimLine 2 Architettura memoria La memoria del sistema cos suddivisa 5 Fleet DB Dimensione Descrizione IXO 32 Bytes Ingressi logici modulo 00 R IX1 32 Bytes Ingressi logici modulo 01 R LS 32 Bytes Ingressi logici modulo 02 R L 32 Bytes Ingressi logici modulo 03 R LA 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 Liz 32 Bytes Ingressi logici modulo 08 R IX9 32 Bytes Ingressi logici modulo 09 R IX10 32 Bytes Ingressi 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 QXO 32 Bytes Uscite logiche modulo 00 R W QXI 32 Bytes Uscite logiche modulo 01 RW 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 R W QX5 32 Bytes Uscite log
80. AL Auto No Temperature C 4 En FILEP Auto Mo O File pointer D OW Yire OV Vireling Auto Ho O One Wijre management FB bh OWFReadHum CONE dHumidi Auto Mo O FA read humidity data Esempio LD Ptp120A100 Sysfopen SysFirstLoop EN ENO FH tomo ine Fp Mod N ode Manage the SerialfOne Wire converter OwWwire Owire Ming Enable Enabled Fp gt File Done Fault DwiirelD Cat Reset the outputs Lidd Woo Dogi WOO P R Dogz hoo R Acquires temperature and humidity OwWwReadHum Oww Rd Humidity Dido MOD Doni Mog re Enable Enabled DIO1 MOO Do01 M00 A Done Orl D Uu trei Fault D ibcode Temperature Humidity Dolz MOO Temperature Mnl151b080 Pag 160 210 Programmazione IEC 61131 su SlimLine 3 Flt 7 20 Funzioni ed FB gestione networking Da linguaggio IEC sono disponibili funzioni e blocchi funzione per la gestione networking Mnl151b080 Pag 161 210 Programmazione IEC 61131 su SlimLine Library 5 Fleet Version 7 20 1 SysIPReach IP address is reachable Embedded Questo blocco funzione esegue controllo se un indirizzo IP raggiungibile se indirizzo gia SySlP Reach presente nella tabella ARP del sistema viene ritornato Done a si i a ali a Enable Done In caso contrario viene eseguita una richiesta ARP sulla rete e se il dispositivo con l indirizzo IP EE Peel AU definito viene trovato attivata l uscita Done e aggiornata la tabella ARP La
81. American standard 42 AD_PT1000_ITS_90 Pt1000 ITS 90 standard 43 AD_PT1000_IEC_60751 Pt1000 IEC 60751 standard 48 AD_NI1000_DIN_43760 Ni1000 DIN_43760 standard 64 AD_THERMOCOUPLE B Thermocouple B type 65 AD_THERMOCOUPLE E Thermocouple E type 66 AD_THERMOCOUPLE_J Thermocouple J type 67 AD THERMOCOUPLE_K Thermocouple K type 68 AD_THERMOCOUPLE_N Thermocouple N type 69 AD_THERMOCOUPLE_R Thermocouple R type 70 AD_THERMOCOUPLE_S Thermocouple S type 71 AD_THERMOCOUPLE_T Thermocouple T type Done 001 Dato analogico acquisito viene attivato al termine della acquisizione analogica Fault 8001 Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Value REAL Ritorna il valore di acquisizione espresso nella unita definita dal modo di acquisizione Potrebbe essere un valore NaN Not A Number ad indicare un problema nell acquisizione tipicamente sensore rotto Mnl151b080 Pag 110 210 Programmazione IEC 61131 su SlimLine 3 Flt 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 FB 9983070 Errore versione blocco funzione 9983080 Impossibile inizializzare il modulo 9983100 Il modulo indirizzato in Address non presente 9983110 1 Il modulo indirizzato non supporta i comandi acquisizione analogica 9983150 I
82. B 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 Mnl151b080 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 38 210 Programmazione IEC 61131 su SlimLine 7 7 Funzioni ed FB per conversione dati 7 7 1 VBitTest Variable bit test Questa funzione esegue il test di un bit in una variabile Parametri funzione Variable upint Variabile in cui testare il bit Bit sint Numero del bit da testare Range da 0 a 31 La funzione ritorna BOOL Stato bit indicato Esempi Type 5 Fleet Function Lo stato del bit 4 della variabile VarInp viene trasferito sull uscita digitale DoOOMOO Definizione variabili Mame Type Address Array Init value Attribute 1 Dummy BOOL Auto Mo FALSE Dummy variable d Varlnp UDINT Auto HO O Variable input Esempio LD VBitTest EN ENO Tenn Variable o Bit Esempio IL LD VarInp Variable input VBitTest 4 Variable bit test ST Do00M00 Transfer bit status to digital output zi Esempio ST Do00M00 VBitTest VarInp 4 Variable bit test Mnl151b080 Library Version ePLCAuxLib SFR058A000 VEitTest a Variable a Bit Descripti
83. C 61131 su SlimLine lam Questo programma utilizza due blocchi funzione MiniDMX a cui viene passata la variabile globale DMXDataPtr che contiene l indirizzo dell array dati DMX Impostando i valori desiderati nelle variabili globali di preset essi verranno trasferiti nei relativi apparecchi MiniDMX con l indirizzo definito Definizione variabili Mame Type Address Array Init value Attribute Description 1 Drv blini E his Auto Mo O d Orme Mini MN Auto Mo O Codice sorgente LD Ptp117a100 Dm Mini Dh E EN ENO 1 Address Dix DataFtr DataPtr AddARed gt _ Red Add i sreen gt Green Add1Blue Blue AddiDimmer gt Dimmer m Mini DINI X EN ENO 2 Address Dx DataFtr gt _ __ DataFti Add2Red Red Add Green orreen Add2Blue Blue Add2Dimmer gt Dimmer Mnl151b080 Pag 210 210
84. C 61131 su SlimLine Library Version Embedded 5 0 7 15 6 SysGetCounter get counter Questo blocco funzione 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 Addres Done f f f i Channel Fault E prevista la gestione del reset valore di conteggio e della inversione conteggio In base alla Fa a _ oge diye 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 eunt definire comandi hardware Ingressi logici di reset conteggio e di inversione conteggio Reset Sys Get Counter Address qusint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione encoder Range da 0 a 255 Il valore 0 indica 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 upint Modo acquisizione espresso su 32 bits secondo lo schema riportato
85. Description 1 CPU CPUModulelo Auto No O n CPUMOodulelO function block d Dummy BOOL Auto Mo FALSE Dummy variable Esempio LD Ptp114a200 CPUIO CPUModulelO Dummy Enabled DOO woo be DOOO Done Di04 MODO be DOO Fault Da00h00 DIOO Dot Moo Mnl151b080 Pag 121 210 Programmazione IEC 61131 su SlimLine hlaz 7 16 Funzioni ed FB di utilit generale Library Version 7 16 1 DB100AddOffset returns DB100 address offset ePLCUtyLib SFR054A400 Questa funzione ritorna l indirizzo della locazione di memoria all interno della DB100 il cui offset opuppaddDgaet fornito come parametro Offset Address Parametri funzione Offset unt Offset locazione memoria La funzione ritorna FRS Indirizzo della locazione di memoria Esempi La variabile ValueToPrint allocata 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 Name Type Address Group Array Init value Attribute Description 1 VYalueToPrint UDINT D100 8 Mo s Value to print Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo 0 A File pointer d AddOfs DB1O0Add Offs at Auto Mo 0 Address offset calculation Esempio LD Sysfopen SyeF irstloop EN ENC SS COMO FHame ER tant Mode ADD EE a 1 WalueToPrint WalueToPrint KE Sysarfprintf SyeClock1
86. Digital input value Mnl151b080 Pag 105 210 Programmazione IEC 61131 su SlimLine 3 Flap Questo esempio una evoluzione dell esempio precedente Utilizzando il blocco 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 SvsGetPhrDl Auto Mo O i FA SysGetPhrDI data d InpValue DINT Auto Mo O A Digital input value 3 Dummy BOOL Auto Mo FALSE Dummy variable d Fong BOOL Auto No FALSE S FA done bh FBFault BOOL Auto Mo FALSE g FB fault 6 BYteToBit ByteToBit Auto Mo D E FA ByteToBit t Loginp BOOL Auto 0 7 DO 7 Logic inputs Esempio LD Ptp119a000 FED ata Sys Get Fhr Ol Dummy EH ENO FBDOone pn Address Done F AF ault DIS LL gt Made Byte T oBit ByteTo Bit Dummy EN ENO Loginp 0 TO_USINT in bo LogInp 1 Inptalue bi Loglinp i bz Loglnp i b3 Loginp 4 b i Loginp S b5 Loglnp bp Logolnpld Mnl151b080 Pag 106 210 Programmazione IEC 61131 su SlimLine hlaz Library Version 7 15 i igi 5 3 SysSetPhrDO set peripheral digital output Embedded 3 0 Questo blocco funzione esegue impostazione uscite digitali sui moduli periferici indirizzati in base al comando di Mode definito SysSetPhrDO Address Done a Mode Fault Value Per gestire le uscite digitali present
87. E Blink out function block Do Oh CAL FB BLINK Call the BLINK function block zi LD Di00M00 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 the time high LD FB BLINK OUT ST Do00M00 Copy FB output to logic output Esempio ST Ptp114a100 FB BLINK TIMELOW 1000 FB BLINK ENABLE Di00M00 DoOOM00 FB BLINK OUT Mnl151b080 TIMEHIGH 100 Call the BLINK function block Transfer the digital input to FB enable Transfer the FB output to digital output Pag 123 210 Programmazione IEC 61131 su SlimLine 3 Flat Library Version 7 16 3 BlinkValue blink out value PLCUtyLib SFR054A800 Questo blocco funzione gestisce una uscita lampeggiante con possibilit di definire il numero di Blinkal lampeggi Attivando l ingresso Enable e definendo il numero di lampeggi in BlinkNr l uscita OutBit Kee 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 SI 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 rese
88. E ogni secondo Il valore di temperatura in gradi centigradi ritornato sulle variabili Temperature 0 e Temperature 1 L uscita logica Do00M00 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 BOL Auto Mo FALSE Socketis listening d Temperature REAL Auto 0 1 20 n Temperature 3 Fp FILEP Auto Mo O a UDP socket 4 STEACH STES MmpAcG Auto Mo O 8 STE acquisition 2 Dk en SvsSkiListen Auto Mo 0 n FB socket listen data Esempio LD Sysfopen SysFirstLoop EN ENC UDPSKT ees Mod emm ode SktLsn Sys Sktlisten SysFirstLoop SktlsListening APP I IE II Il O Enable Done Fp_ gt File Fault hiviP Connect 161 hiy F ort ClientlP a LifeTm ClientP ort FlushTm Rx Size TxSize STEAcg STESnmpAcg SktlsListening Do00 KOO rr i Enable Done SysClo 1000 Dodd MOOD i Fault Fp file Sensori Temperature 0 492 1638 0 60 FeellF Sensore Temperature 1 161 PeerPort Mnl151b080 Pag 172 210 Programmazione IEC 61131 su SlimLine hlaz are Type Library Version 7 21 2 HTempBox HTemp Box2 485 acquisition FB eHwGSpLib SFRO60A100 Questo blocco funzione gestisce l acquisizione del valore di temperatura e di umidit da un HTemp Box2 485 connesso con lo SlimLine in porta
89. Embedded 3 0 7 10 14 SysVarfprintf variable print to file Questa funzione esegue la stampa formattata di una variabile sullo stream collegato al ennai 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 FLEP Flusso dati stream ritornato dalla funzione Sysfopen Format strinciso 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 usint Tipo variabile come indicato nella tabella Variable types definition VarAdd upint Indirizzo variabile La funzione ritorna UNI 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 Esempi Su fronte attivazione ingresso DI00MO00 viene incrementata la variabile Counter ed
90. I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I GESTIONE ABILITAZIONE xN Eseguo gestione abilitazione blocco funzione IF NOT Enable THEN Out FALSE Output status TimeBf SysGetSysTime TRUE Time buffer uS Delay MinOffTime Current delay time mS DelayTm Delay 1000 Delay time uS RETURN END IF Eseguo controllo se variazione stato uscita ed eseguo salvataggio tempo e calcolo del relativo tempo di attesa in TimePsd SysGetSysTime TRUE TimeBf Time passed uS TimeBf SysGetSysTime FALSE Time buffer uS IF DelayTm gt TimePsd THEN DelayTm DelayTm TimePsd Delay time uS ELSE Eseguo inversione uscita e calcolo il relativo tempo di ritardo Out 0ut XOR TRUE Output status IF NOT Out THEN Calcolo tempo di off viene utilizzata la formula TOff MinOffTime MaxOffTime MinOffTime Numero Random DelayTm MinOffTime 1000 MaxOffTime MinOffTime TO UDINT SysGetRandom TRUE 1000 ELSE Calcolo tempo di on viene u
91. I 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 Mnl151b080 Pag 111 210 Programmazione IEC 61131 su SlimLine Hey 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 SvsGetaninp Auto Mo P FA SysGetPhrDl data d Dummy BOOL Auto Mo FALSE S Dummy variable 3 Analnp REAL Auto Mo U 2 Analog value volts Esempio LD Ptp116a100 FAD ata Sys GetAninp Dummy EH ENO o P Address Done pn Channel Fault AD_VOLT_O_10_COMMON Mode Value Da00h00 Do hoo Analnp Esempio IL Acquires analog input 0 from module LD 3 ST FB svsGerAaninp Address Set module address LD 0 ST FB SysGetAnInp Channel Set channel LD AD VOLT 0 10 COMMON ST FB SysGetAnInp Mode Set acquisition mode CAL FBData Call the SysGetAnInp function block LD FB SysGetAnInp Done ST Do00M00 The output is active if data is acquired LD FB SysGetAnInp Fault ST Do01M00 The output is active if execution
92. LSE 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 Mnl151b080 Pag 96 210 Programmazione IEC 61131 su SlimLine hlaz 7 14Funzioni ed FB per gestione stringhe Type Library Version 7 14 1 eLEN string length Function ePLCStdLib SFR053A200 Questa funzione ritorna la lunghezza Espressa in numero di caratteri della stringa definita in Str SZ D s ez Parametri funzione Str usint Pointer alla stringa di cui calcolare lunghezza La funzione ritorna KEN 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 Il risultato del calcolo 6 Definizione variabili Name Type Address Array Init value Attribute Description 1 Length INT Auto Mo O a String length Esempio LD eLEN Hello __ Str Length Mnl151b080 Pag 97 210 Programmazione IEC 61131 su SlimLine 3 Flt i Type Library Version 7 14 2 eFIND string find Functi
93. Line 3 Flt Type Library Version 7 8 2 SysSetTaskLpTime set task loop time Function Embedded 3 0 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 e ladl 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 usnm Identifica la task a cui si vuole definire il tempo di esecuzione secondo le definizioni in Task ID TIME uDINT Indica il valore di tempo di esecuzione task espresso in uS La funzione ritorna E TRUE Se funzione eseguita correttamente FALSE In caso di errore esecuzione esempio parametri errati 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 N Function enabled d Exe
94. M00 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 Mnl151b080 Pag 42 210 Programmazione IEC 61131 su SlimLine 5 Flt Version SFR054A000 Library 7 7 4 ByteToBit Byte to bit conversion ePLCUtyLib Questo blocco funzione permette di convertire una variabile BYTE in 8 variabili BOOL BytaToBit In bo Valore byte da convertire b1 Bit 0 di In De b3 ba Bit 7 di In b i be b7 N BYTE D Bool b7 goot Esempi Lo stato del bit 0 della variabile Varinp viene trasferito sull uscita digitale DoOOMOO 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 Varlnp viene trasferito sull uscita digitale Do07M00 Per semplicit negli esempi IL e ST non vengono riportati tutti i bits Definizione variabili Mame Type Address Array Init value Attribute Description 1 Varinp USINT Auto No I Variable input d FAData Byte Tobit Auto No U FA Byte to bit data 3 Dummy BOOL Auto No FALSE Dummy variable Esempio LD Ptp114a100 FBD ata EyteToBit Dummy EN ENO Doth Varlnp In b Dold Woo bi Dolz M00 L I DoS hoo ba Dot b4 Dou b5 Do06 Mid bp Do MoD by Esempio IL Ptp114a100 LD Mal ST FBData In Transfer the
95. 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 codice 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 Mnl151b080 Pag 184 210 Programmazione IEC 61131 su SlimLine Eleaf 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 O Terminal WO file pointer 2 SMode cetsMode AUTO Mo 0 FA set serial mode 3 Value DINT Auto Mo 0 Value read from inveter 4 CEN Aurora Energy Auto Mo 0 FB Aurora cumulated energy Esempio LD Systopen SysFirstLoop EN Pp EDM FHame Ee Mode CMode Set S Mode ais irstLoop PAB EN Fp Are pn DTROffTime CEN Aurora C Energy DIOOMOO Dodo noo be ee Enable Done bio4 Moo Dodd Moo Fe _ AR tart Fault Fp_ gt File Value 1 Address Error
96. O BOOL SysGetIChars Fp DO Ch Sysfgetc Fp Character The read command starts with character IF Ch 63 THEN CaseNr 16 0100 RETURN END IF The write command starts with character IF Ch 33 THEN CaseNr 16 0110 RETURN END IF END WHILE The read command proceed with R character and with the register adress KEE EE EE EE 16 0100 WHILE TO BOOL SysGetIChars Fp DO IF Sysfgetc Fp 82 THEN CaseBack CaseNr t1 Case back zi CaseNr 16 0200 Set the case number to receive address RETURN END_IF Mnl151b080 Pag 203 210 Programmazione IEC 61131 su SlimLine END WHILE Print out the register address and value 16 0101 Address RxValue Register address IF Address lt 3 THEN Che SysVariprintt Pp Address 04X UINT TYPE ADR Address A3 Ch SysVarfprintf Fp Value 04X r n UINT TYPE ADR RdRegs Address END IF CaseNr 0 Case number The write command proceed with W character the register address and the value to be written he e 16 0110 WHILE TO BOOL SysGetIChars Fp DO IF Sysfgetc Fp 87 THEN CaseBack CaseNr t1 Case back CaseNr 16 0200 Set the case number to receive address RETURN END_IF END WHILE Receive the value 16 0111 Address RxValue Register address CaseBack CaseNr 1 Case back CaseNr 16
97. OF Il valore 0x00 indica indica il primo modulo di estensione 0x01 il secondo e cos di seguito Channel sint 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 Mode usin Occorre specificare il modo di acquisizione analogica secondo la tabella sottoriportata Mode Define Acquisition 0 AD_IDLE ldle mode 1 AD_VOLT_0_125 COMMON Voltage from 0 to 1 25 V Common mode 2 AD_VOLT_0_10 COMMON Voltage from 0 to 10 V Common mode 3 AD_CURR_0_20 COMMON Current from 0 to 20 mA Common mode 4 AD_CURR_4_20 COMMON Current from 4 to 20 mA Common mode 5 AD_VOLT_0_1 COMMON Voltage from 0 to 1 V Common mode 7 AD_VOLT_0_1_DIFFER Voltage from 0 to 1 V Differential mode 8 AD_VOLT_0_125_DIFFER Voltage from 0 to 1 25 V Differential mode 9 AD_VOLT_0_10_DIFFER Voltage from 0 to 10 V Differential mode 10 AD_PT100_DIFFER Pt100 sensor Differential mode 11 AD_PT1000_DIFFER Pt1000 sensor Differential mode 12 AD_NI1000 DIFFER Ni1000 sensor Differential mode 32 AD_PT100_DIN_ 43760 Pt100 DIN_43760 standard 33 AD_PT100 AMERICAN Pt100 American standard 34 AD_PT100_ITS_90 Pt100 ITS 90 standard 35 AD_PT100_IEC_60751 Pt100 IEC 60751 standard 40 AD_PT1000_DIN_43760 Pt1000 DIN_43760 standard 41 AD_PT1000_AMERICAN Pt1000
98. OMO 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 Mnl151b080 Pag 71 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 10 8 SysGetOSpace get output available space on file Function Embedded 3 0 Questa funzione ritorna lo spazio disponibile per la scrittura dati sul flusso dati stream indicato Su 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 VII 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 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 disponibil
99. Pag 178 210 Programmazione IEC 61131 su SlimLine Elec s Type Library Version 7 22 3 MWVSentence Wind Speed and Angle sentence FB eNMEALib SFR061A000 Questo blocco funzione esegue la ricezione della sentenza MWV wind speed and angle si collega al blocco funzione NMEASInterface di gestione dispositivo NMEA Occorre passare NMEAID in uscita dal blocco funzione di gestione dispositivo Enable Done e NMEAID Fault bW Sentence La sentenza MWV contiene le informazioni di velocit e direzione del vento esempio di sentenza IIMWV 120 09 R 4 53 N A 35 W peed 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 B001 Abilitazione blocco funzione NMEAID upin 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 rea Valore di velocit del vento Nodi WPAngle reaL 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 Mnl151b080 Pag 179 210
100. TON function block FBeTON IN D100M00 Transfer the digital input to timer input OutValue FBeTON ET The counting time is copied to variable Do00M00 F TONO When time is passed the digital output is set Mnl151b080 Pag 32 210 Programmazione IEC 61131 su SlimLine 3 Flt Library Version 7 5 3 eTP Timer pulse ePLCStdLib SFR053A000 Questo blocco funzione esegue la temporizzazione su impulso di attivazione attivando l ingresso IN l uscita Q si attiva in uscita ET ritornato il tempo trascorso in mS dall impulso di attivazione Raggiunto il tempo ih impostato PT in mS indipendentemente dallo stato dell ingresso IN l uscita Q si azzera mentre il tempo IH F in uscita su ET si azzera solo se ingresso IN non pi attivo ESRI IN Bool 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
101. a Fault B001 Attivo per un loop se errore 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 OWirelD non definito 10015020 OWirelD 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 acquisizione sensore umidit Mnl151b080 Pag 159 210 Programmazione IEC 61131 su SlimLine 3 Flap 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 Ad ogni attivazione ingresso Di01M00 viene eseguita l acquisizione se esecuzione corretta viene attivata l uscita Do01M00 ed i valori acquisiti sono trasferiti nelle variabili Temperature ed Humidity Definizione variabili Mame Type Address Array Init value Attribute Description 1 OwlD UDINT Auto Mo Qne Wi re ID 2 Humidity REAL Auto No 0 Humidity RH 4 3 Temperature RE
102. a 0 a 15 Il valore 0 indica indica il primo modulo di estensione 1 il secondo e cos di seguito WrAdd wint Indirizzo variabile da scrivere come allocata sul modulo periferico VarType usint Tipo variabile come indicato nella tabella Variable types definition VarAdd upint Indirizzo variabile La funzione ritorna PE 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 9988100 II modulo indirizzato in Module non presente 9988110 Il tipo variabile definito in VarType non corretto 9988200 Errore durante l esecuzione della lettura della variabile dal modulo periferico Esempi Attivando l ingresso Di00MO00 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 DBT O0Add Offset Auto NO 0 A Variable address calculation Esempio LD VarAdd DBA00Add Offset Pido Mag P c EN ENO pn Offset Address Doni hd Do MO Modul o ocdule 16 Wed UDINT_TYPE gt YaType VarAdd Mnl151b080 Pag 120 210 Programmazione IEC 61131 su SlimLine 3 Hey Type Library Version 7 15 10 CPUModulelO CPU module I O management FB PLCUtyLib SFR054A400 Questo blocco funzione eseg
103. a FALSE e con SysGetLastError possibile rilevare il codice di errore 9989100 II modulo indirizzato in Module non presente 9989110 Il tipo variabile definito in VarType non corretto 9989200 Errore durante l esecuzione della lettura della variabile dal modulo periferico 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 offset 8 Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarAdd DBI00Addofset Auto NO 0 A Variable address calculation Esempio LD Var dd DE100AddOffset SysPhrYRd DOO Moo Da00 Mod PE EN ENO Module RSC pia RdAdd l UDINT_TYPE a Type VarAdd Dot Mnl151b080 Pag 119 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 15 9 SysPhrVWr write variable to peripheral module Function Embedded 5 0 Questa funzione esegue la scrittura di una variabile sul modulo periferico di estensione Sys bt Occorre definire l indirizzo di modulo Module l indirizzo della variabile da scrivere sul modulo Module periferico WrAdd il tipo di variabile VarType e l indirizzo del buffer dove si trova il valore da wadd scrivere VarAdd a VarType VarAdd Parametri funzione Module usn Occorre specificare l indirizzo di modulo su cui eseguire la scrittura Range d
104. a 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 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 6 1 2 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
105. age data d Analnput SysGetAnlip Auto Mo I FA Analog input data 3 AnaValue REAL Auto Mo 0 S Analog Input value Esempio LD Ptp114A500 Analnput Sys GetAninp CI Address Done FED ata O Channel Fault Average AD_VOLT_O_10_COMMON gt Mode Value value BEE cur 100 0 Coefficient Mnl151b080 Pag 143 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 17 Protocollo 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
106. alori minimo e massimo l l Enable Out Attivando il comando di Enable l uscita Out esegue un lampeggio On Off con tempi random GE SH compresi tra i valori minimo e massimo definiti Disabilitando l ingresso l uscita Out si OT e Sl disattiva MaxOfTime a WinOnTime La variabile Delay ritorna il valore di ritardo attualmente attivo hiaxOnTime Enable 8001 Comando di abilitazione MinOffTime wont Valore minimo di tempo off comando mS MaxOffTime upint Valore massimo di tempo off comando mS MinOnTime wont Valore minimo di tempo on comando mS MaxOnTime wont Valore massimo di tempo on comando mS Out B001 Stato comando On Off in uscita Delay int Valore di tempo attualmente in temporizzazione mS Esempi Viene eseguito il lampeggio della uscita Do00M00 con tempi random variabili tra i 2 ed i 4 secondi Definizione variabili Name Type Address Array Init value Attribute Description 1 Fata ONOFFOYCLE Auto Mo 0 p ONOFFCYCLE FB data d WarQut UDINT Auto Mo LU Variable output Esempio LD Ptp114a100 FAD ata ONOFFCYCLE Dido no Da00 Woo e _ 1II Enable Out 2000 MinOffTime Delay 4000 baxOffTime 2000 MinOnTime 4000 haxOn Time Esempio IL Ptp114a100 CAL FBData Call the ONOFFCYCLE function block LD Di0QOMOO ST FBData Enable Transfer the digital input to Enable input LD 2000 ST FBData MinOffTime Set the minimum off time LD 4000 ST FBData MaxOffTime
107. altro pie sistema e l uscita OData con l ingresso digitale Data dell altro Strobe OData a Data Done Il trasferimento dati bidirezionale i dati presenti nel buffer TxData di un sistema sono trasferiti _ hp er nel buffer RxData dell altro sistema e viceversa per il numero di bytes definito in ByteNr La Mr comunicazione verificata mediante l invio di un CRC secondo lo standard ISO 1155 ul 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 B00L Abilitazione gestione comunicazione IsMaster B800L TRUE Modo master FALSE Modo slave IStrobe BOOL 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 scambiare con altro sistema Da 1 a 30 TrigDelay unt Tempo attesa tra uscita dato OData ed uscita strobe OStrobe Da 0 a 30 mS ByteNr USINT Numero bytes da scambiare con altro sistema OStrobe B00L Da appoggiare su uscita digitale di strobe OData B00L Da appoggiare su uscita digitale
108. ametro TE 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 MarAdd Parametri funzione String usint Pointer alla stringa da leggere Format strincisoy 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 usint Tipo variabile come indicato nella tabella Variable types definition VarAdd upint Indirizzo variabile La funzione ritorna om 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 0 e Variable 1 saranno valorizzate con il valore 123 La terza avr esito negativo la variabile Variable 2
109. at Ecco come utilizzando i blocchi funzione BitToByte ByteToWord WordToDouble sia possibile comprimere 32 variabili BOOL in una variabile DWORD Definizione variabili Mame Eier BtToByLH BtToByLL ByToWdH DT od WdToDb Value Bit mo oo ol oo cm fe Gi Pi Type BitToByte BitToByte BitToByte ByteToWord ByteTov word WordToDouble DWORD BOOL Esempio FBD Ptp114a200 EtT oByHH BitTo Byte Bitz4 gt bo Butze gt bi Bite o bi Bit 27 bi Bite b4 Bits bs Dan gt b Bit gt b7 Out tT oByHL BitTo Byte Bit bo Dt gt bi Bit 18 gt b2 Bit 19 gt b3 Bitzo gt b4 Bitzi gt bs Daat gt b Daa o b7 Out EtToByLH BitTo Byte Bit e gt bo D E Bitto gt bz Bit 11 gt b3 But gt bd Bit 13 o bs Dt o b Bit 15 b7 Out EtToByLL BitToByte Biti bo Bit 1 bi Bit 2 bz Biti b3 Bit 4 bd IO gt bs Bite P Bit bk bi Mnl151b080 Out Address Auto Mo Auto No Auto Mo Auto Mo Auto Mo Auto Mo Auto Mo Auto 0 31 ByT owdH EyteToWiord Du T our d Byte Toward Array init value 0 0 0 FALSE 3160 iWdToDh WordToOouble 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 190 210 Programmazione IEC 61131 su S
110. 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 valore 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 ae SKRA on connette ad una delle porte seriali dello SlimLine f SONDA E Oppure nel caso di contatori predisposti con l uscita RS485 possibile ce connettersi direttamente alla porta RS485 dello SlimLine ra Mnl151b080 Pag 144 210 Programmazione IEC 61131 su SlimLine Ze Type Library Version 7 17 1 IEC62056_21Rd IEC62056 21 protocol read FB PLCUtyLib SFR054A700 Questo blocco funzione esegue la gestione della lettura di registri da sistemi di metering l e IECR2056_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 EI Enable Done comunque possibile utilizzarlo liberamente in modo test per 30 Min File Fault SSC vu SerialN Top Occorre in SerialNr definire il numero seriale del contatore Utilizzato come chiave di accesso gt una alla lettura e in Register l indirizzo del registro da leggere secondo la normativa OBIS Se la 3 t Ts IU lettura ha esito posi
111. ay Init value Attribute Description eta FILER Auto Mo File pointer d opace UDINT Auto Mo Rx buffer space Nr of Chars Esempio LD SysF irstLoop EN ENO SysGetTxB Size Mnl151b080 Pag 74 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 10 11 SysFIBfClear file input buffer clear Function Embedded 3 0 Questa funzione elimina tutti i caratteri in lettura presenti sul flusso dati stream indicato dal Gust IE Clear parametro File precedentemente aperto dalla funzione Sysfopen File La funzione ritorna FALSE in caso di errore Parametri funzione File Fee Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RESA 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 Esempi Se attivo l ingresso Di00MO00 tutti i caratteri in ingresso dalla porta seriale saranno cancellati e l uscita D0o00M00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILEP Auto Mo U n 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 If the input is active the input buffer is cleared IF Fp lt
112. ca indica il primo modulo di estensione 1 il secondo e cos di seguito InfolD usint Occorre specificare l ID della informazione richiesta Value Acquisition 0 Ritorna codice prodotto 1 Ritorna codice programma Info stRING 10 Indirizzo variabile dove trasferire l informazione La funzione ritorna BREE 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 II valore di InfolD non corretto 9990200 L informazione richiesta non supportata dal modulo 9990210 Errore durante la richiesta della informazione dal modulo 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 S Info returned from module Esempio LD Sys Pr Infos DOO Woo P EN ENO o Module o InfolD ps Info Dodi Midd Do Mnl151b080 Pag 103 210 Programmazione IEC 61131 su SlimLine Leek Library Version 7 15 2 SysGetPhrDI get peripheral digital input Embedded 30 Questo blocco funzione esegue l acquisizione degli ingressi d
113. ci si riferisce all operazione di passaggio di una variabile da un tipo di dato ad un altro 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 Esempi 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 verr ritornato il resto della divisione per il limite Definizione variabili Mame Type Address Array Init value Attribute
114. crivere Count nr Numero di stringhe da scrivere File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna VO Numero di stringhe scritte se valore ritornato minore 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 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 FILEP Auto Mo 0 Port COMO file pointer d FxString STRING Auto 10 0 Received string 2 Rschars INT Auto No Received characters A 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
115. cutionOk BOOL Auto Mo FALSE 8 Function execution ok Esempio LD Ptp116a100 Sys Set Task LpTi me Didi MOD Enabled EN ENO ID Task FAST p i s000 Time Exe cutianOk Esempio ST Enabled D100M00 Function enabled zi IF D100M00 THEN ExecutionOk SysSetTaskLpTime TaskID ID TASK FAST Time 5000 Function execution ok END IF Mnl151b080 Pag 52 210 Programmazione IEC 61131 su SlimLine 3 Flat Type Library Version 7 8 3 SysGetRandom get random number Function Embedded 3 0 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 Cmd 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 INT Auto Mo 0 Random number 2 Ji USINT Auto Mo U 2 Auxiliary counter A NrOfchars INT Auto No U n Number of printed chars 4 Fp FILEP Auto Mo U S Port COMO file
116. d read variable from peripheral module 9990 9990000 9990999 SysPhrInfos get infos from peripheral modules 9991 9991000 9991999 SysPCodeAccept accepts the protection code 9992 9992000 9992999 SysSetSerialDTR set DTR signal status Mnl151b080 Pag 197 210 Programmazione IEC 61131 su SlimLine 5 Fleet 9993 9993000 9993999 SysGetSerialCTS get serial CTS signal status 9994 9994000 9994999 SysSetSerialMode set serial mode 9995 9995000 9995999 SysGetSerialMode get serial mode 9996 9996000 9996999 Sysfopen file open 9997 9997000 9997999 SysVarsnprintf variable print to string 9998 9998000 9998999 SysVarfprintf variable print to file 9999 9999000 9999999 SysVarsscanf extracts values from string 10000 10000000 10000999 MDBRTUMASTER modbus Rtu master 10001 10001000 10001999 CPUModulelO CPU module I O management 10002 10002000 10002999 ModemCore modem core management 10003 10003000 10003999 ModemSMSReceive receive a SMS message 10004 10004000 10004999 ModemSMSRxCmd receive a SMS command 10005 10005000 10005999 ModemSMSSend send a SMS message 10006 10006000 10006999 SetSMode Set serial mode 10007 10007000 10007999 ModbusRTUMaster modbus RTU master 10008 10008000 10008999 OwireMng One Wire management 10009 10009000 10009999 OWRdldentifier One Wire read ROM identifier 10010 10
117. 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 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 6 3 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 6 3 1 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
118. dati nei files Mnl151b080 Pag 79 210 Programmazione IEC 61131 su SlimLine a Ze Type Library Version 7 11 1 Sysremove file remove Function Embedded 7 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 lemme Se l operazione di rimozione va a buon fine la funzione ritorna TRUE in caso di errore viene ritornato FALSE Parametri funzione Name strRinc32 Nome del file da cancellare La funzione ritorna SES 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 Esempi Sul fronte di attivazione dell ingresso digitale Di00MO00 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 S File remove Ok d Dummy BOOL Auto Mo FALSE i Dummiy Esempio LD Sysremove o EH ENO Dummy Removedk H StorageBSCFiletd 0 Mnl151b080 Pag 80 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 11 2 Sysrename file rename Function Embedded 7 0 Questa funzione esegue la cambiamento del nome di un file In OldName occorre definire il Sysrename nom
119. 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 tabella 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 Mnl151b080 Pag 181 210 Codice Programmazione IEC 61131 su SlimLine 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
120. dente 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 pi recente di effettuare l update 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 vede 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 H Aprendo il progetto LogicLab controlla LogicLab I tutte le librerie importate e nel caso una o pi librerie sorgenti siano pi recenti Found new version of libraries delle versioni importate viene A ciiprogrammilelsistliec6 1131 suite logiclab2po libraries shrO53a000eplcstd lib pl TE EES i messaggio di avvertimento che chiede conferma se eseguire oppure no l update delle librerie Eseguendo l update tutti gli oggetti della libreria importata presenti nel proprio
121. di errore nella sequenza di acquisizione Value upint Valore contatore Mnl151b080 Pag 115 210 Programmazione IEC 61131 su SlimLine hlaz 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 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 1 Il modo di gestione definito in Mode non gestito dal modulo 9981210 Errore nella gestione lettura counter dal modulo 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 S C
122. dicano latitudine nord valori negativi latitudine sud Longitude reaL Valore di longitudine indicato nella sentenza il valore espresso in frazione di gradi Valori positivi indicano latitudine est valori negativi latitudine ovest UTCHour usn Valore di ora UTC indicato nella sentenza UTCMinute usn Valore di minuti UTC indicato nella sentenza UTCSecond wsint 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 Mnl151b080 Pag 177 210 Programmazione IEC 61131 su SlimLine Leek 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 Fp FILEF Auto Mo DU File pointer d LL GLLSentence Auto Mo GL sentence reception FA data 2 NMEAID LIDINT Auto Mo 0 MMEA interface ID d MEARS NMEASIntera Auto Mo O MMEA device interface FA data D RxGPS STRING Auto ER S Fix data from GPS device 6 Skode SetShode AUTO No O Serial mode FB data Esempio LD Mnl151b080
123. do tramite un messaggio SMS si collega 3 l Moden ShMSRxCmd al blocco funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Enable Done f EES _ ModemiD Fault Alla ricezione di un messaggio SMS se nel testo del messaggio e 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 Command Attivando Cin il controllo sulla stringa definita in Command verr fatto non considerando il case Maiuscolo minuscolo dei caratteri Enable B00L Abilita la ricezione del comando ModemiD unin ID modem fornito in uscita dalla ModemCore Cln B001 Se attivo controllo di Command non considerando case Maiuscolo minuscolo dei caratteri Command sTRING 32 Testo comando da eseguire Done 6001 Attivo per un loop se ricevuto messaggio SMS contenente il testo indicato in Command Fault B001 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 10004020 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
124. e 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 spazio 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 MW100 0 MD100 0 _ Byte address Byte address Byte address Byte area identifier Word area identifie
125. e 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 Definizione variabili Name Type Address Array Init value Attribute Description 1 FBData Sys SetanOut Auto Mo 0 n FA SysSetAnAout data d Dummy BOOL Auto Mo FALSE p Dummy variable 3 AnaQut REAL Auto Mo 0 5 Analog value vote Esempio LD Ptp116a100 FBD ata Sys Set n Out Dummy EN ENO D odi RADO D Address Done Dold woo 0 Channel Fault D VOLT_O_10 zi ode Analut gt alue Esempio IL 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 Manage analog output 0 on module 0 FBData Value AnaOut Store the ouput value zi FBDatalAddress 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 if execution fault Mnl151b080 Pag 114 210 Programmazione IE
126. e 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 srRING 32 Nuovo nome da dare al file La funzione ritorna BOOL 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 Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene rinominato il file OldFile txt presente nella directory Storage l file assumer il nuovo nome di NewFile txt Definizione variabili Name Type Address Array Init value Attribute Description 1 Dummy BOOL Auto Mo FALSE 7 Dury d Renameok BOOL Auto Mo FALSE n File rename Ok Esempio LD Sysrename DOO MoO Dummy EN ENO 2 OldN StorageBSCOldFilett Lu Menti Storage 5CNewFile te Lu Renamedk Mnl151b080 Pag 81 210 Programmazione IEC 61131 su SlimLine Elec Type Library Version 7 11 3 Sysfilelength file lengh Function Embedded 7 0 Questa funzione ritorna la lunghezza in bytes di un file In Name occorre definire il nome del
127. e 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 au counter CV e CD Ob Ad ogni fronte di attivazione dell ingresso CU il valore del counter CV viene incrementato Quando il P EN valore del counter CV raggiunge il valore di preset definito su PV l uscita 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 CTUD CU Bool Comando incremento counter ad ogni fronte attivazione il valore del counter CV si incrementa CD Bool Comando decremento counter ad ogni fronte attivazione il valore del counter CV si decrementa R BooL Comando di reset attivando l ingresso il valore del counter CV si resetta LD Boo Comando di load attivando l ingresso il valore di preset PV viene trasferito nel valore del counter CV PV nT Valore di preset quando il valore del counter CV raggiunge questo valore l uscita Q si attiva ed il counter non si increm
128. e informazioni per caratterizzare la comunicazione sulla porta seriale Name Type Description Baudrate UDINT Valore di baud rate porta seriale da 300 a 115200 baud Parity STRING 1 Tipo di parita 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 DTRComplement BOOL FALSE DTR normale TRUE DTR complementato EchoFlush BOOL FALSE dati trasmessi sono ritornati in ricezione TRUE dati trasmessi sono ignorati DTROnTime UINT Tempo di attesa trasmissione caratteri su porta seriale dopo attivazione segnale DTR mS Questo parametro assume significato solo se DTR management impostato nel modo DIR AUTO WW TIMES vedi Serial mode definition DTROffTime Tempo di attesa dopo trasmissione ultimo dato e disattivazione segnale DTR mS Questo parametro assume significato solo se DTR management impostato nel modo DIR 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 Mes
129. e ne viene eseguita lettura e successiva ritrasmissione Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILER AUTO Mo U S Por COMO file pointer 2 JCh INT Auto Mo S 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 Mnl151b080 Pag 72 210 Programmazione IEC 61131 su SlimLine 3 Flat Type Library Version 7 10 9 SysGetRxBSize get file Rx input buffer size Function Embedded 5 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 Fee Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna ene 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 Esempi E riportato un semplice programma che ritorna la dimensione del buffer
130. eBf SysGetSysTime TRUE ELSE IF SysGetsyslime TRUR TimeBf gt 1000000 THEN Timeouti TRUE END LE END IF Lo stesso esempio scritto in questo modo non funziona correttamente IF NOT D100M00 THEN TimeBf SysGetSysTime TRUE ELSE IF SysGetSysTime TRUE gt TimeBf 1000000 THEN Timeout TRUE END IF END IF Mnl151b080 Pag 50 210 Programmazione IEC 61131 su SlimLine 3 Flap 1 8 1 2 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 uSec Attivando l ingresso di start Di00M00 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 momento di stop Il tempo calcolato salvato nella variabile DelayTime Definizione variabili Mame Type Address Array Init value Attribute Description 1 StartTime UDINT Auto HO O i Start time US d DelayTime DIMT Auto Mo Delay time UD Esempio LD Ptp119a000 Sys Get Sys Ti me Fidd MOO EN ENC 2 TRUE ja StatTime Sys Get Sys Ti me Didi woo EN ENO r TRUE E DelayTime StantTime Mnl151b080 Pag 51 210 Programmazione IEC 61131 su Slim
131. eToEtime EpochTime ST EpochTime Esempio ST Pto116a100 Here FB SysDateToETime is executed and variables copied FB SvsDateTostime Yeari Year FB SysDateloktime Month Month FB SysDateloEktime Day Day FB SysDatelroEtime Call the SysDateTortime function block zi EpochTime FB SysDateToEtime Epochlime Epoch time Mnl151b080 Pag 62 210 Programmazione IEC 61131 su SlimLine 3 Flt 7 10 Funzioni ed FB per gestione terminale di I O Type Library Version 7 10 1 Sysfopen file open Function Embedded 3 0 Questa funzione permette l apertura del collegamento tra la risorsa indicata dal parametro FName ed un flusso di dati stream da impiegare nelle successive chiamate alle funzioni di I O La funzione ritorna il pointer alla risorsa Systopen FHame a 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 accertarsi che il disco sia formattato Parametri funzione Namen 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 strinci4 Indica il modo in cui la risorsa aperta r read w write a append Per le
132. eee 44 7 7 6 WordToByte Word to byte Convereion KEEN 45 7 1 7 Double ToWord Double to Word Conversion ii 46 7 7 8 WordToDouble Word to double conmversion 47 7 1 9 ToLower Uppercase to lowercase letter CONVEFSION 48 7 1 10 ToUpper Lowercase to uppercase letter COnversion cece eeeeeeeeeeceseeeseeeseeeseeeeeeeeeeeaeeeeeeeneaeegs 49 7 8 Funzioni ed FB di utilit sistema iii 50 7 8 1 SysGetSysTime get system me 50 Me SAIC ee MEU iii iii 50 7 8 1 ZSESMPIIC cronome MO DEE 51 7 8 2 SysSetTaskLpTime set task loop tiMe 52 7 8 3 SysGetRandom get random number 53 104 O VSGC tas lel Ol ga last e 54 7 8 5 SysPCodeAccept accepts the protection code i 55 9 0 7 ms C211 comme EE TE 56 7 8 7 SysMAlloc Memory allocaton ii 58 7 9 Funzioni ed FB per gestione Data OF Lupi iii 59 7 9 1 SysETimeToDate epoch time to date CONVEFSION i 59 7 9 2 SysDateToETime date to epoch time cConversion i 61 7 10 Funzioni ed FB per gestione terminale di IC 63 TAO SY SIOD EN Me OD CP sae elena 63 10 2 5 gt yslclos6 1eC 056 n aaa 65 7 10 3 Sysigete get character ite RUE 66 1104 SYSIDUIC PUL character to UE 67 el gt oysitead read data elen EE 69 7 10 6 Sysfwrite write data to file iii 70 7 10 7 SysGetlChars get input available characters from file
133. ene il trasferimento SST i dati Port indica la porta tramite la quale il trasferimento avviene Deve assumere lo stesso 9 VEGGIE 20 valore su entrambi i sistemi RxDBuffer Errors i e f e i Be TxDBuffer Il parametro Timeout definisce il tempo massimo per il trasferimento dei dati l invio dei dati Se 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 eau viene ricevuto Ack in 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 L invio dei dati automatico sulla variazione di uno qualsiasi dei bytes del buffer di trasmissione per garantire il controllo sul link 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 FLEP Flusso dati stream ritornato dalla funzione Sysfopen PeerlP stRING 15 Stri
134. enta pi QU 8001 Uscita counter up attiva se il valore del counter CV raggiunge il valore definito in preset PV QD s001 Uscita counter down attiva se il valore del counter CV raggiunge il valore 0 CV cnt 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 ingresso 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 DiOOMOO 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 Do00MO00 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 Di03M00 che presetta il counter Mnl151b080 Pag 37 210
135. erOneLib SFR062A000 Questo blocco funzione esegue la lettura delle misure dal DSP di un inverter Aurora della Power AuroraDSPM One connesso al dispositivo di I O definito in File Questo un blocco funzione protetto per fg e utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi_ Enable Done funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min Viene utilizzato il Start Fault FB CRCPolinomial 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 47 Errors 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 usin 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
136. ere A codice ascii 16 41 Definizione variabili Mame Type Address Array Init value Attribute 1 F FILEP Auto Mo 0 File pointer d Dummy BOOL Auto Mo FALSE Dummy variable 3 SMode setsMode Auto Mo 0 Set serial mode d Shiodeok BOOL Auto Mo FALSE Set serial mode ak 5 SModeFault BOOL Auto Mo FALSE set serial mode fault Esempio LD Ptp119a000 Sysfopen SysFirstLoop EN FN como MAM ini Mode Shiode SetShlode SysFirstLoop PJ MAPA EN Pm 19200 Baudrate DEI Parity 8 DataBits 1 Stopbits DIR AUTO WO TIMES gt DTRhanagement FALSE DTRComplement FALSE EchoFlush o pTROnTime np DTROFfTime Syst puto SysCloc1000 Fe TO_INT Ch Fil 16 41 Fp A Mnl151b080 Description ENO Fp Dummy ENO ShiodeOk Done SModeFault Fault ENO Pag 91 210 Programmazione IEC 61131 su SlimLine 3 Hey Type Library Version Function Embedded 5 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 12 4 SysGetSerialCTS get serial CTS signal status File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna aiuta FALSE Segnale CTS non attivo TRUE Segnale CTS attivo 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 defini
137. ere 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 Mnl151b080 Pag 67 210 Programmazione IEC 61131 su SlimLine lam 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 U S File pointer d Dummy BOOL Auto Mo FALSE o Dummy variable A RxChar INT Auto Mo 0 a Received char d R Cmd BOOL Auto Mo FALSE 2 Rx command Esempio LD Ptp119a000 Sysfopen SvysFirstLoop EN ENO COMO Name n Lo Mode Sys Get Chars GT EN ENO MI RxCmid Systgetc ENO RxChar Syst pute Ret md EN ENC RxChar __ a i File Mnl151b080 Pag 68 210 Programmazione IEC 61131 su SlimLine 3 Flat Type Library Version 7 10 5 Sys
138. err 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 2 1 Import libreria Con questa modalit vengono importati tutti gli oggetti presenti nella Sf libreria Per importare nel proprio programma l intera libreria dal men selezionare la voce Project Library manager si aprir una finestra come quella sottoriportata Debug Communication Tools Help New object d Import object from library Project library list Name Link A eplcstdlib c prograrnimvelsist iec61 17 sutela eplcutylib GC pragranimnselsist iech1 137 suite so Macros Select target Options Close Agendo sul tasto Add si aprir 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 eer 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 Targetvarables Targetblocks eplcstdib eplcutylib Mnl151b080 Pag 22 210 Programmazione IEC 61131 su SlimLine 3 Flat 7 2 2 Link a libreria Eseguendo l import delle librerie nel proprio progetto come indicato al capitolo prece
139. 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 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 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 Mnl151b080 Pag 13 210 Programmazione IEC 61131 su SlimLine 4 2 Variabili sola lettura Report variables Queste variabili di sola lettura
140. esso Epoch time da MOdDUS iii 20 6 3 1 Lettura Epoch time damodhbus iii 20 SE Scrittura Epoch ime da ModDUS E 20 eFON EE eege 21 Ali PR TI 21 Si leen Ee ei EE 21 l t FUNZIONI CG FB embedded useissakin a D aaa Toa A E DE EE 21 2 e 22 PZ NOON MOC EE 22 EE ui ee DOT E 23 T2 Ee lee ue Le 0 BEE 24 7 2 4 Considerazioni su link a libreria e su import oggettt 25 7 3 Protezione funzioni e blocchi fUNZIONE ii 26 7 4 Funzioni ed FB per gestione Eiitlonp i 27 Mnl151b080 Pag 1 210 Programmazione IEC 61131 su SlimLine 3 Hey L Su KH TRIG Falling COGS 1G E EE 27 L ER ag GIE Raising edge TIGGei cai ro 28 TAR RE SV SCION E 29 TAA R SURES MP MOO EE 30 7 5 Funzioni ed FB per gestione tiMers i 31 EASA COR Terror EE 31 ges Wea AR BS TMo OM caio 32 ossei Timer pulse rii ee ee 33 7 6 Funzioni ed FB per gestione COUNtErs iii 34 F e EH GD Counter DOW 0 illo ia ein 34 Gow aoe ERR 0 5 9 1a e EEN 36 L RER CUD Counter U0 DOW EE 37 7 f FUNZIONI ed FB per conversione dali ear arredi 39 7 7 1 VBitTest Variable bit test rnnt nrar r nne A RADARRA EA REE EE REREAD AEn E Enna nennen 39 7 7 2 VBitSet Variable bit eet 40 7 7 3 BitToByte Bit to byte CONVETFSION i 41 7 7 4 ByteToBit Byte to Dit CONVEFSION iii 43 7 7 5 ByteToWord Byte to word conversion
141. et D TR E ebe EE 98 e E Mem ei leie EE OO 7 14 4 SysVarsnprintf variable print tO eimg eee 100 7 14 5 SysVarsscanf extracts values from stmng rreren 102 7 15 Funzioni ed FB per gestione moduli poerterc i 103 7 15 1 SysPhrinfos get infos from peripheral modules 103 7 15 2 SysGetPhrDI get peripheral digital INput ccecceseeeeeseeeeeeeeeeeeeeeeeeeeeeeeeeeeseeeesseeeeesaeeeseeeeseeeeeaeees 104 7 15 3 SysSetPhrDO set peripheral digital oummut cccccececeeeeseeeeeeeeeaeeeeaeceseeeeseeesseeeeaeeessuseseeeeaeeeeaes 107 7 15 4 SysGetAnInp get analog mput iii 110 NEE RT Ee Ce Le Eer E 113 15 6 SYSGEICOUNTEN get COUNTED eegeieegeggetsaseg uiggeg eege Zedeege ENEE dE ege aa naaa a eh 115 7 15 7 SysGetEncoder get encoder iNpuUt i 117 7 15 8 SysPhrVRd read variable from peripheral module 119 7 15 9 SysPhrVWr write variable to peripheral module 120 7 15 10 CPUModulelO CPU module I O management 121 7 16 Funzioni ed FB di utilit generale i 122 7 16 1 DB100AddOffset returns DB100 address offset 122 1 16 2 BLINK blink COMMA G alain 123 7 16 3 BlinkValue blink out vali aa nai 124 7 16 4 ModbusRTUMaster modbus Rtu master rnrn rner rnnr r rnnr rnrn 125 7 16 5 MDBRTUMASTER modbus Rtu Master iii iii 127 7 16 6 Mo odb usR I USlave modbus Rtu slave rr cri e 129 7 16 7 ONOFFCYCLE on off cycle with random mes
142. et leien kA 163 7 20 3 SySUDPSktRev UDP socket receive i 165 7 20 4 SysUDPSktSend UDP socket send 166 7 20 5 UDPDataTxfer UDP data transier rrer nr nrn n AoA r nrnna annann aranne nnn 168 7 21 Funzioni ed FB supporto prodotti Hw Group ewou 170 7 21 1 STESnmpAcq STE termometer acquisition Over SNMP 171 7 21 2 HTempBox HTemp Box2 485 acquisitioN i 173 7 22 Funzioni ed FB supporto protocollo NMEA eNMEAL bh 175 7 22 1 NMEASInterface NMEA system interface rreren 176 7 22 2 GLLSentence Geographic Position sentence ii 177 7 22 3 MWVSentence Wind Speed and Angle sentence 179 7 23 Funzioni ed FB supporto inverter Power One ePowerORELIb e 180 7 23 1 AuroraDSPMeasure Aurora measure request to DSP 181 7 23 2 AuroraCEnergy Aurora cumulated energy reading 184 7 23 3 CRCPolinomial CRC polinomial calculation 186 O ieri 187 8 1 Swap variabile RA RE 187 6 2 OWap Vanabile e RE 187 8 3 GWap Vanabile BYT RE 188 6 4 Espandere DWORD in 32 BOO le oa reeicnsauecesstmensiiednnieetundawed dactonlseodeusseadednenneddecsnniedeieh EEE Ea EEE SEKENE 189 8 5 Comprimere 32 BOOL in DORAN 190 8 6 Definire caratteri ascii non stampabili i 191 E AE EE EE 192 EE EE 193 Sil Tabela Ee NEE 193 92 Operator Tue Ee elle EE 194 GE Sale Metals Hee tele Sicilia 195 EE EE 196 EO
143. fault LD FB SysGetAnInp Value ST AnaInp Store the acquired value Esempio ST Acquires analog input 0 from module FB SysGetAnInp Addresst 0 Channel 0 Mode AD VOLT 0 10 COMMON Call the SysGetAninp FB Do00M00 FB SysGetAnInp Done The output is active if data is acquired Do01M00 FB SysGetAnInp Fault The output is active if execution fault VarReal FB SysGetAnInp Value Store the acquired value Mnl151b080 Pag 112 210 Programmazione IEC 61131 su SlimLine 3 Flat 7 15 5 SysSetAnOut set analog output Questo blocco funzione esegue il set del valore sull uscita analogica sul modulo di uscita Il Library Version Embedded 3 0 blocco funzione gestisce vari modi di uscita in funzione del modulo analogico a cui fa riferimento ee ees Address Done Channel Fault a Mode a Value Address usin Channel sint Mode sint Value REAL Done B001 Fault 8001 Occorre specificare l indirizzo del modulo da cui eseguire l acquisizione analogica Range da 0x00 a Ox0F Il valore 0x00 indica indica il primo modulo di estensione 0x01 il secondo e cos di seguito 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 Occorre specificare il modo di gestione uscita analogica secondo la tabella sottoriportata
144. file Systilelength di cui si vuole conoscere la lunghezza specificando l intero percorso Esempio Storage File txt a Mame Se il file indicato non presente la funzione ritorna 1 Parametri funzione Name STRINGI32 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 Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene ritornata la lunghezza del file File txt presente nella directory Storage Definizione variabili Mame Type Address Array Init value Attribute Description 1 FileSize DINT Auto Mo O i File size Esempio LD Sysfilelength DIDO MODO n F Storage SCFilet name FileSize Mnl151b080 Pag 82 210 Programmazione IEC 61131 su SlimLine Type Library 5 Fleet Version 7 11 4 Sysfseek file seek Function Embedded Questa funzione permette di cambiare l indicatore di posizione dello stream collegato al parametro File precedentemente aperto dalla funzione Sysfopen 7 0 Sysfseek 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 La funzione ri
145. file input buffer clear 9965 9965000 9965999 SysGetTxBSize get file Tx output buffer size 9966 9966000 9966999 SysGetRxBSize get file Rx input buffer size 9967 9967000 9967999 SysGetOSpace get output available space on file 9968 9968000 9968999 SysGetlChars get input available characters from file 9969 9969000 9969999 Sysfwrite write data to file 9970 9970000 9970999 Sysfread read data from file 9971 9971000 9971999 Sysfputc put character to file 9972 9972000 9972999 Sysfgetc get character from file 9973 9973000 9973999 Sysfclose file close 9974 9974000 9974999 SysIPReach IP address is reachable 9975 9975000 9975999 SysUDPSktRcv UDP socket receive 9976 9976000 9976999 SysUDPSktSend UDP socket send 9977 9977000 9977999 SysSktListen socket listen 9978 9978000 9978999 SysGetCrc get CRC value 9979 9979000 9979999 SysDMXMng DMX management 9980 9980000 9980999 SysGetEncoder get encoder input 9981 9981000 9981999 SysGetCounter get counter 9982 9982000 9982999 SysSetAnOut set analog output 9983 9983000 9983999 SysGetAnInp get analog input 9984 9984000 9984999 SysSetPhrDO set peripheral digital output 9985 9985000 9985999 SysGetPhrDI get peripheral digital input 9986 9986000 9986999 SysETimeToDate epoch time to date conversion 9987 9987000 9987999 SysDateToETime date to epoch time conversion 9988 9988000 9988999 SysPhrVWr write variable to peripheral module 9989 9989000 9989999 SysPhrVR
146. fread read data from file Function Embedded 3 0 Questa funzione esegue la lettura di un numero definito di stringhe di lunghezza definita dal flusso JENERE dati stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen S 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 FLEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna VO 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 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
147. g Auto Mo O Analog input g PWM HMC ut Auto Mo O WI management 10 FIDQUI REAL Auto No 0 PID output value D 11 FID PIDMhna Auto Mo O FID management Esempio LD Ptp114a100 Sys Get n lp EN ENO Address Done Channel Fault AD_FT100_DIFFER hlode Value RdTemp PID PID DOO Moo Do0 400 e enabler Enabled Did Woo e Enable Error Dio OO ee e Enable Out Dio woo Pp mmm Reverse PresetT emp SetPoint RdTemp _ Palus PBand gt PBand STSet A 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 Mnl151b080 Pag 135 210 Programmazione IEC 61131 su SlimLine Hey Library Version 7 16 9 PWMOut PWM output management PLCUtyLib SFR054A000 Questo blocco funzione esegue la gestione di una uscita PWM ate Enable Out a Set Cycle Thin Enable 8001 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 reat Tempo di di ciclo PWM il valore espresso in S TMin REAL Tempo minimo comando uscita Out il valore espresso in S Out B001 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 Impos
148. gato 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 inversione 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 accu
149. gt NULL THEN IF Di00M00 THEN Do00M00 SysFIBfClear Fp END IF END IF Mnl151b080 Pag 75 210 Programmazione IEC 61131 su SlimLine Ze Type Library Version 7 10 12 SysFOBfClear file output buffer clear Function Embedded 3 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 Fee Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RESA 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 Esempi Se attivo l ingresso Di00MO0 tutti i caratteri in uscita dalla porta seriale saranno cancellati e l uscita DOo00M00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILEP Auto Mo I n 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 If 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 Mnl151b080 Pag 76 210
150. guire 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 own 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 S Frame array d RegsAddress LAT AUTO Mo U n Registers address A NrOfRegs USINT Auto No Number of registers A Gol SyvsGetCre Auto Mo DU Get CRC 5h ChRCyalug INT Auto Mo DU CRG value Esempio ST Pto116a100 ee Eeer E Calculate CRC of a modbus Rtu frame for command Read holding registers Si Nd 03 Addr NumR CRC zi eee ee 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 Q 1 Node address Frame 1 3 Function code 16 03 Frame 2 TO USINT RegsAddrvess 256 7 MSB registers address Frame 3 TO USINT RegsAddress 755 7 LoB registers address Frame 4 0 MSB number of register
151. i SysVarsnprintf ADR LogRecord 6 4 02d USINT_TYPE ADR DateTime Minute i SysVarsnprintf ADR LogRecord 9 4 02d USINT TYPE ADR DateTime Second i SysVarsnprintf ADR LogRecord 12 12 08ld r n UDINT_ TYPE ADR SysTBackExTm OR LN Ce Set the file pointer on right position i Sysfseek Fp TO_DINT NrOfLog 23 ID_SEEK_SET NrOfLog NrOfLog 1 Number of log stored IF NrOfLog gt 50 THEN NrOfLog 0 END_IF i Sysfwrite ADR LogRecord 23 1 Fp Write to file i Sysfclose Fp Close file Mnl151b080 Pag 85 210 5 Fleet Programmazione IEC 61131 su SlimLine 7 12 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 Mnl151b080 Pag 86 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 12 1 SysGetSerialMode get serial mode Function Embedded 3 0 Questa funzione ritorna il modo di comunicazione impostato sulla porta seriale connessa ae eee al parametro File precedentemente aperto dalla funzione Sysfopen Ta Nel parametro Mode occorre definire l indirizzo della struttura SYSSERIALMODE
152. i Full 2 Porte COM RS232 1 porta MiniUSB 1 Bus di campo RS485 ModBus o CAN bus Solo versioni Full 2 Input digitali isolati 2 Output digitali isolati 1 slot micro SD card Solo versioni Full 1 bus di espansione I2C High speed Grazie all utilizzo di memorie non volatili in tecnologia FRAM RAM ferroelettriche stato possibile una riduzione sensibile del size della batteria al litio minimizzando l impatto ambientale a fine vita del prodotto La tecnologia FRAM garantisce inoltre un numero di cicli di scrittura praticamente illimitati migliorando quindi l affidabilit del sistema ed un bassissimo consumo di energia anche nelle fasi di scrittura SlimLine programmabile nei 5 linguaggi previsti dalla norma 1EC61131 3 attraverso il tool di sviluppo LogicLab scaricabile ed utilizzabile gratuitamente e senza limitazioni Mnl151b080 Pag 6 210 Programmazione IEC 61131 su SlimLine 3 Flt 1 1 Risorse del sistema Esistono modi diversi per accedere alle risorse del sistema Gli O logici presenti sul modulo CPU e sui moduli di estensione sono gestiti tramite le funzioni SysGetPhrDI e SysGetPhrDO Gli I O logici dei moduli di estensione 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
153. i caratteri inviati saranno ritrasmessi sulla porta UDP del sistema client da cui sono stati ricevuti Definizione variabili Mame Type Address Array Init value Attribute Description 1 RxDone BOOL Auto No FALSE A Rx data done d ClientPort LINT Auto Mo N Client port 3 RxSize LINT Auto Mo 0 Rx bytes received d ClientlP STRING Auto 15 i Client IP address 5 PrnDataAdd DBI00Add0offiset Auto NO 0 Print data buffer address bh RxDataAdd DB100AddOffiset Auto No O E Rx data buffer address Z Fp FILEP Auto Mo i File pointer H Dk on Sys SkIListen Auto Mo 0 E FA socket listen 9 SktRoy Sys Dk Cu Auto Mo 0 g FA socket receive Mnl151b080 Pag 166 210 Programmazione IEC 61131 su SlimLine Esempio LD Ptp119a200 SvsFirstLoop SysFirstLoop RxDone RxD ataAdd RxDone Mnl151b080 Pag 167 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 20 5 UDPDataTxfer UDP data transfer FB PLCUtyLib SFR054A700 Questo blocco funzione esegue il trasferimento di un blocco di memoria tra due sistemi Ge f UDPOstaTxfer 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 funzione SysSktListen File Fault Il parametro PeerlP indica l indirizzo IP del sistema con cui con cui avvi
154. i sul modulo CPU occorre definire Address 255 e Mode DO_8 LL Si raccomanda di utilizzare in alternativa il blocco funzione CPUModulelO 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 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 gestione uscite digitali secondo la tabella sottoriportata Mode Define Acquisition 1 DO_8_LL Write 0 7 output mode 2 DO 8 L Write 8 15 output mode 3 DO 8 M Write 16 23 output mode 4 DO_8 MM Write 24 31 output mode 5 DO_16_L Write 0 15 output mode 6 DO_16_M Write 16 31 output mode 7 DO_32 Write 0 31 output mode Value upinT Impostare il valore da trasferire sulle uscite digitali Done 001 Dato acquisito viene attivato per un loop al termine della acquisizione ingressi digitali Fault Boot Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione 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 Il modulo indirizzato in Address non presente 9984110 8 Il modo gestione definito in Mode non co
155. iche modulo 05 R W QX6 32 Bytes Uscite logiche modulo 06 R W QX7 32 Bytes Uscite logiche modulo 07 R W QX8 32 Bytes Uscite logiche modulo 08 R W QX9 32 Bytes Uscite logiche modulo 09 R W QX10 32 Bytes Uscite logiche modulo 10 RAV QX11 32 Bytes Uscite logiche modulo 11 RAV 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 R W Masi 512 Bytes Variabili di sistema sola lettura R Masi 512 Bytes Variabili di sistema lettura scrittura R W MX100 4096 Bytes Memoria utente R W Da indirizzo 2048 a 4098 i dati sono ritentivi Mnl151b080 Pag 8 210 Programmazione IEC 61131 su SlimLine 3 Hey 2 1 Memoria di backup Retain SlimLine dispone di 2048 bytes di memoria ritentiva nell area memoria utente MX100 ed ulteriori 2000 bytes di memoria ritentiva a disposizione utente per allocare variabili mnemoniche Le variabili allocate nella memoria utente MX7100 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 Van BOOL Auto Mo FALSE sample variable 1
156. ici 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 Mnl151b080 Pag 61 210 Programmazione IEC 61131 su SlimLine Hey 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 ER SysDateToEtime SysDateToETime Auto Mo 0 FA SysDateToETime data d Hour USINT AUTO No Day 3 Minute LISINT Auto Mo 0 Month 4 Second LISINT Auto Mo 0 Year D Day USINT Auto Mo O Day 6 Month LISINT Auto Mo O Month d Year WINT Auto Mo O Year H EpochTime WIDINT Auto Mo 0 Epoch time Esempio LD Ptp116a100 FA SyeDate ToEtime Sys Date ToET me Enabled Dodi MOO Do 1 MOO Month gt Month Fault Day Day EpochTime Hour gt Hour Minute gt _ Minute Second gt Second Epoch Time Esempio IL Ptp116a100 Transfer date e time to FB input variable LD Year ST FB SysDalelrortime Year LD Month ST EB SvsDateToBtime Month LD Day ol EB SysDateloEtLime Day CAL FB SysDateloEtime Call the SysDateToztime function block zi Transfer the FB output variables to program variables LD FB SysDat
157. iene 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 METTTTTTTTTT TTT TTT TT TTT TTT TTT TTT TTT TT TTT TTT TTT TTT TTT TTT TT TTT TTT TTT TTT TTT TETRA IEC1155 CRC CALCULATION LS KKEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK x Register read command lt SOH gt R1 lt STX gt 1 8 1 lt ETX gt lt CRC gt DataFrame 01R1 021 8 1 03 Data frame zi CRCValue GetISO1155Crc ADR DataFrame 12 CRC Value zi Mnl151b080 Pag 140 210 Programmazione IEC 61131 su SlimLine hlaz Type Library Version 7 16 13 IODataExchange exchange data by using logic I O FB PLCUtyLib SFR054A500 Questo blocco funzione permette lo scambio di dati tra due sistemi uno master ed uno slave InDataExch utilizzando una connessione tramite I O logici Sono utilizzati due ingressi e due uscite digitali per a 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
158. iere il file di libreria desiderato ue a EE EJ Esempio Ptp116 000 pll si aprir la finestra con l elenco degli oggetti Functions TESS User Types Filters presenti all interno da cui sar Programs air i ere possibile selezionare gli oggetti desiderati FED SusDateToETime ST SysETimeToDate ST FED_SysETmeToDate ST Systclose ST FED_SysGetAnlnp ST_Sysfgeto Srk Symbol location Evidenziando gli oggetti e agendo FaD SysGetPhDI ST_SysFIBfClear ST d al J sul tasto Import Object gli oggetti FED_SysSet4nQut ST_SysFOBfClear ST_ selezionati saranno inclusi nel FED_Sps5etPhrbO ST_Sysfopen Library IL_SysDateloETime ST Systpute IL Sus Time oD ate ST_Sysfread IL_SyzGet nlnp ST_SysGet nlnp IL_SysGetPhrDI GT use IL_SysSetAnUut ST_SysGetPhrDI IL_SysSetPhrDO ST_SysgGetHandom ST_SysDateToETime ST_SysGetSerlalkode lt i proprio progetto a du Kai LD A 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 d definizione All w Cancel Project command ir pini To import a PLC object select the tab with the object type select E the object and press the Import object button Una volta inclusi nel progetto sara possibile utilizzarli direttamente oppure con con semplici operazioni di cut and paste incollare parti di codice sorge
159. igitali dai moduli periferici Il blocco l A Lr ea l Sys GetPhrOl funzione ritorna lo stato degli ingressi digitali dal modulo indicato in Address in base al comando di Mode definito Address Done ode Fault Per acquisire gli ingressi digitali presenti sul modulo CPU occorre definire Address 255 e Mode DI_8 LL Si raccomanda di utilizzare in alternativa il blocco funzione CPUModulelO Ele Address us Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione degli ingressi digitali Range da 0 a 255 Il valore 0 indica 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 secondo la tabella sottoriportata Value Mode Acquisition 1 DI_8 LL Read 0 7 input mode 2 DI 8 L Read 8 15 input mode 3 DI_8_M Read 16 23 input mode 4 DI_8 MM Read 24 31 input mode 5 DI_16_L Read 0 15 input mode 6 DI_16_M Read 16 31 input mode 7 DI_ 32 Read 0 31 input mode Done oo 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 upinT 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 f
160. io frame DMX su porta seriale si resetta automaticamente all invio del frame File FLEP Flusso dati stream ritornato dalla funzione Sysfopen Status usint Valore byte di stato inviato nel protocollo DMX prima dei byte di preset dispositivi Devices uT 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 Mnl151b080 Pag 137 210 Programmazione IEC 61131 su SlimLine Leek 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 Vengono gestiti 5 dispositivi con indirizzi da 1 a 5 Il frame DMX continuamente inviato ai dispositivi Attivando l ingresso digitale DiI00M00 viene impostato il valore 0 su tutti i dispo
161. ion blocks ad indicare che sono Fisici command oggetti protetti cio Import abject eem To moot a PLC object select the tab vath the object type select the object and press the Import object button non possono essere modificati Una volta 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 originale Functions Global variables Mnl151b080 Pag 24 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 2 4 Considerazioni su link a libreria e su import oggetti Come visto nei 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 linkata oppure sia stato importato Libreria linkata Come visto precedentemente le librerie linkate mantengono un riferimento alla libreria di origine nel percorso di memorizzazione nella distrib
162. ione IEC 61131 su SlimLine Hey 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 Ad ogni attivazione ingresso Di01M00 viene eseguita l acquisizione se esecuzione corretta viene attivata l uscita Do01M00 ed il valore acquisito trasferito nella variabile Temperature Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo O File pointer A OwlD UDINT Auto Mo 0 One Vyire ID 3 Oire OVvirehing Auto Mo U Une Wijre management FB d OVWWRdTemp OWROTempel Auto Mo U One vvire read temperature FA 5 Temperature REAL Auto Mo U Temperature CC Esempio LD Ptp120A000 Open the serial port Sysfopen SysFirstLoop EN ENO FH os dere Fp Mod Se ode Manage the SerialfOne Wire converter OWWire OVE re Ming Enable Enabled Fp_3 File Done Fault UittrelD Qual D Reset the outputs Di01 MOO Do 1 KAO F R Doz hoo R Acquires the temperature OWRd Temp OW Rd Te mperature DOMM Dogi ki i eZ Enable Enabled Di0 Moo Dog 1 RAO A Done E Dogz MOO Owl DI gt OWirelb Fault 5 DCode Temperature Temperature Mnl151b080 Pag 158 210 Programmazione IEC 61131 su SlimLine Elec Se Sg Type Library Version 7 19 4 OWRdHumidity One Wire read humidity FB ePLC1WireLib SFR059B000
163. ione IEC 61131 su SlimLine Hey Type Library Version 7 19 1 OWireMng One Wire management See FB ePLC1WireLib SFRO59A000 Questo blocco funzione gestisce il convertitore Seriale One Wire connesso al dispositivo di I O dii Lia i Owire Mng definito in File l FB gestisce l inizializzazione e la gestione del convertitore Enable Enabled File Done Fault OivvirelD L uscita Done si attiva se il convertitore correttamente inizializzato l uscita Fault si attiva per un loop di programma in caso di errori di gestione L FB ritorna un OWirelD che deve essere passato alle FB collegate Esempio lettura ROM code acquisizione temperatura ecc Enable 001 Abilitazione blocco funzione attivandolo viene gestito il convertitore Seriale One Wire File FLEP Flusso dati stream ritornato dalla funzione Sysfopen Enabled e001 Blocco funzione abilitato Done oo Convertitore Seriale One Wire correttamente inizializzato e funzionante Fault B001 Attivo per un loop di programma se errore gestione convertitore OWirelD pint ID da passare alle FB collegate Esempio OWRdldentifier OWRdTemperature 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 E
164. ire I FB Errore versione blocco funzione Impossibile inizializzare il modulo Il modulo indirizzato in Address non presente Il modulo indirizzato non supporta i comandi acquisizione encoder Il modo di gestione definito in Mode non gestito dal modulo Errore nella gestione lettura encoder dal modulo Pag 117 210 Programmazione IEC 61131 su SlimLine 3 Flap 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 FA SysGetEncoder data 2 Dummy BOOL Auto Mo FALSE Dummy variable 3 Gatelte LINT Auto Mo 0 n Gate quote d Encodertite LINT Auto Mo 0 Encoder quote Esempio LD Ptp116a100 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 Gate Ute Encodertte Esempio IL Ptp116a100 Acquires encoder Q 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 e
165. irizzo 0 Definizione variabili Mame Type Address Array Init value Attribute Description Faits aysSetPhrlo Auto Mo DU FA SysSetPhrOo data 2 OutValue DINT Auto Mo O S Digital output value 3 Dummy BOOL Auto No FALSE Dummy variable 4 Fong BOOL Auto Mo FALSE FB done 5 FBFault BOOL Auto Mo FALSE FB fault 6 BitToByte BitToByte Auto Ko x FA BitToByte t LogQut BOOL Auto 0 7 a 0 Logic inputs Esempio LD Ptp119a000 BitToByte BitTo Byte SysF irstLoop eR xj EN ENO Logout e E Out LogQut 1 li LogQut po LogOut 3 be LogOut 4 e 0 eipV TI _ b i Logout age l 4 z b I Logout nn bE LogOut ______ D Dummy Outvalue FED ata Sys Gett D Dummy EH ENO FADane o Address Done FEF ault TO UDINT DOG LL ode Fault Out alue Value Mnl151b080 Pag 109 210 Programmazione IEC 61131 su SlimLine 7 15 4 SysGetAninp get analog input Library 5 Fleet Version Embedded 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 usin 3 0 Gs Get Anlnp Address Done Channel Fault Mode Value Occorre specificare l indirizzo del modulo da cui eseguire l acquisizione analogica Range da 0x00 a Ox
166. izzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Reverse counting attivando questo ingresso si inverte l incremento di quota EQuote in funzione della direzione di rotazione encoder Attivando questo ingresso si ha il reset della quota EQuofe 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 9980080 9980100 9980110 2 9980200 9980210 2 Mnl151b080 Errore allocazione blocco funzione Terminato spazio memoria rilocabile non possibile esegu
167. k Cancel End of medium substitution Escape File separator Group separator Record separator Unit separator D Oo J Oh In BW hw PrP Oo e Si oO Hee SG OAM Om Oo a GD CD H Doum DO D fai 5 Flee A H C d E H i j k 1 JL Tl D P qf E LU NM UI 7 e d i O Pag 199 210 Programmazione IEC 61131 su SlimLine 3 Flich 9 6 2 Tabella codici ASCII estesi gi Ur us Me CC vi E e o De ID Mi wad Vin E o I F Al FS at ln H quia e HH a TD gh pr ke Ga i i A Tr A L IL dd E 0O O Di a a r FA i Rae EF H 4 P wn o Co O eo ss Mnl151b080 Pag 200 210 Programmazione IEC 61131 su SlimLine Hey 10 Esempi di programmazione 10 1 Biblioteca esempi Per permettere all utente di disporre di esempi da utilizzare per lo 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 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 Debug Communication Tools Help Project New object ae Generate redistributable source module e Library manager Macros Scegl
168. k BOOL Auto 0 2 EI 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 tempo di prova termina il funzionamento e viene generato un errore che rilevabile con la funzione SysGetLastError Mnl151b080 Pag 26 210 Programmazione IEC 61131 su SlimLine hlaz 7 4 Funzioni ed FB per gestione Flip Flop Library Version 7 4 1 F_TRIG Falling edge trigger ePLCStdLib SFR053A000 Questo blocco funzione attiva l uscita Q per un loop di programma sul fronte di disattivazione dell ingresso di clock CLK rue CLE Q CLK oot Clock sul fronte di disattivazione del segnale viene attivata l uscita Q per un loop di programma Q BooL 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 Do00M00 Definizione variabili Mame Type Address Array Init value Attribute De
169. k kk kk Ek kk Ek kk kk Ek kk Ek kk Ek kk kk kk kk Ek kk Ek Il driver MiniDMX gestisce 3 uscite RGB Il driver utilizza 4 canali DMX l Comando segnale rosso 2 Comando segnale verde 3 Comando segnale blu 4 Comando dimmer su tutti 1 segnali Xx Xx F Xx Xx Xx F NN nn nee eNO Preset pointer su array comandi DMX Ptr TO UDINT DataPtr tAddress l Pointer array comandi DMX Ptr Red Preset colore rosso Ptr Ptr l Pointer array comandi DMX Ptr Green Preset colore verde Ptr Ptr l Pointer array comandi DMX Ptr Blue Preset colore blu Ptr Ptr l Pointer array comandi DMX Ptr Dimmer Preset dimmer End of file Mnl151b080 Pag 208 210 Programmazione IEC 61131 su SlimLine 3 Hey 10 5 1 Programma DMXUse Questo programma istanzia e gestisce il blocco funzione SysDMXMng Viene valorizzata la variabile globale DMXDataPtr che contiene l indirizzo dell array dati DMX che dovr essere passato al blocco funzione di gestione MiniDMX Definizione variabili globali Mame Type Address Group Array Init value Attribute Description 1 DMXData USINT Auto O 9 1000 E OMS data array d AddiRed USINT Auto No 0 WIniDM con Address 1 Rosso 3 Add Green USINT Auto No 0 WIniDMs con Address 1 Verde d Addi Blue USINT Auto Mo 0 MiniDhfX con Address 1 Blu 5 AddiDimmer USINT Auto Mo MiniDhf amp con Address 1 Dimmer
170. l the DoubleToWord function block MSBWord FBData MSW Transfer the MSW output to variable MSBWord FBData LSW Transfer the LSW output to variable Mnl151b080 MS Bio rd LS Bord SFR054A000 DOoubleTo word n Mi SW L Gu Pag 46 210 Programmazione IEC 61131 su SlimLine 5 Fleet Version SFR054A000 Library 7 7 8 WordToDouble Word to double conversion ePLCUtyLib Questo blocco funzione permette di convertire due variabili WORD in una variabile DWORD WordToDouble Sul Lous Out 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 LSPWord WORD Auto Mo 0 Valore word MSH d MSBWord WORD Auto No O Valore word LSB 3 Maut DWORD Auto Mo O Variable output 4 FAData WordToDouble Auto Mo 0 FA Wordto double data Esempio LD Ptp114a100 FED ata ordToDouble EN MiS Bio rd MSI LSBiord LS Esempio IL Ptp114a100 LD MSBWord ST FBData MSW Transfer the MSW variable to input LD LSBWord ST FBData LSW Transfer the LSW variable to input CAL FBData Call the WordToDouble function block LD FBData Out ST VarOut Transfer output to variable Esempio ST Ptp114a100 FBData MSW MSBWo
171. la 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 oo Attivo per un loop se ricevuto messaggio SMS Fault 8001 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 Receive ModemSMSRecejiye SvysFirstLoop Pi _____ _ _ _ Y rtf OLO Enable Done ModemiD gt ModemiD Fault Dod Min SMSText Mnl151b080 Pag 150 210 Programmazione IEC 61131 su SlimLine Leek Library Version 7 18 3 ModemSMSRxCmd receive a SMS command eModemLib SFR057A100 Questo blocco funzione esegue la ricezione di un coman
172. le B00L Abilita il blocco funzione Start BOOL Attivando l ingresso viene eseguita la lettura del ROM ID OWirelD upin ID One Wire fornito in uscita dal blocco funzione OWireMng IDCode usinT Puntatore ad array di memorizzazione ROM ID letto l array deve essere almeno 8 bytes Enabled B00L Blocco funzione abilitato Done 6001 Attivo per un loop al termine della lettura del ROM ID Fault 8001 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 10009010 OWirelD non definito 10009020 OWirelD non corretto 10009100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10009200 2 Errore gestione sequenze One Wire lettura ID Mnl151b080 Pag 155 210 Programmazione IEC 61131 su SlimLine 3 Flap Esempi Ecco un semplice esempio di un programma per la gestione di dispositivi iButton per il riconoscimento personale Inserendo il TAG nel lettore viene eseguita la lettura del ROM identifier il valore acquisito trasferito in un array di 8 bytes allocato ad indirizzo MD100 0 Ogni 100 mS viene eseguita l acquisizione se un TAG inserito nel lettore viene attivata l uscita DoOOMOO 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
173. le FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna WER 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 Esempi Viene aperta e successivamente chiusa la porta seriale COMO Se la porta correttamente aperta viene attivata l uscita Do000M00 Se la porta correttamente chiusa viene attivata l uscita Do01MO00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo S Port COMO file pointer Esempio ST Pto116a100 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 zi END IF Mnl151b080 Pag 65 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 10 3 Sysfgetc get character from file Function Embedded 3 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 caratte
174. le Di00MO00 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 1 FB_CTD CTD Auto Mo O bk CID counter Down function block d Qufvalue INT Auto Mo Output value Esempio LD Ptp115a100 ER CTE CTO DOO Woo Dadi Mod n Didi Moo J M mr cy eeng Kl Outvalue Mnl151b080 Pag 34 210 Programmazione IEC 61131 su SlimLine Esempio IL Chl EB CID Call the CID function block LD 10 ST FB CTD PV 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 Tr 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 EI EM Sat Dt Call the CTD 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 Do00M00 FB CTD Q If the counter value is 0 the digital output is set OutValue FB_CTD CV The cou
175. le pointer 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 02XSr n UDINT TYPE ADR CANMsg Data 0 END_IF END_IF Mnl151b080 Pag 94 210 Programmazione IEC 61131 su SlimLine Eet Type Library Version 7 13 2 SysCANRxMsg receives a CAN message Function Embedded 3 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 a 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 up Codice maschera ID messaggio ID DINT ID check ID messaggio Msg svscanmessace Indirizzo buffer messaggio ricevuto La funzione ritorna BOOL TRUE Messaggio ricevuto Esempi E riportato un semplice programma che esegue la ricezione di qualsiasi messaggio CAN ed esegue l invio in uscita sulla porta seriale COMO della struttura del messaggio ricevuto Definizione variabili Name Type
176. led 4 Gioved 5 Venerd 6 Sabato Hour usint Ritorna il valore di ora Range da 0 a 23 Minute usin Ritorna il valore di minuti Range da 0 a 59 Second usn Ritorna il valore di secondi Range da 0 a 59 Done 6001 Attivato al termine della conversione 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 Mnl151b080 Pag 59 210 Programmazione IEC 61131 su SlimLine 3 Flap 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 EH SysETimeToDate SysETimeToDate Auto Mo 0 FA SysETimeToDate data 2 Year WINT Auto Mo 0 Year A Month USINT Auto Mo 0 Month d Day USINT Auto Mo 0 Day Esempio LD Ptp116a100 FB_SysETimeToDate Sys ETi me To Date Enabled EN ENO SysD ate Time gt EpochTime Esempio IL Ptp116a100 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
177. limLine 3 Hey 8 6 Definire caratteri ascii non stampabili Nella gestione di protocolli di 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 I Il carriage return codice 16 0D sia 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 in
178. mante che ritornato in uscita CLIPNumber contemporaneamente ad ogni squillo del telefono si attiva per un loop di programma l uscita CLIPRxd Enable B001 File FILEP Enabled 8001 Done B001 Fault B00 PowerOn 8001 CLIPRxd oc Modem ID unint Modem TX stRINGI 256 ModemRx srRING 256 CLIPNumber stRING 16 Operator stRING 16 RSSI USINT Mnl151b080 Abilitazione blocco funzione attivandolo viene gestito il modem Flusso dati stream ritornato dalla funzione Sysfopen 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 di comando inviata al modem pu essere utilizzato in debug per verificare i comandi inviati al modem Contiene la stringa di risposta ritornata dal modem pu essere utilizzato in debug per verificare le risposte ricevute dal modem Contiene la stringa con il numero di CLIP ricevuto Contiene la stringa con il nome dell operatore telefonico Valore potenza segnale radio Pag 148 210 Programmazione IEC 61131 su SlimLine 3 Flt Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il c
179. mo il conteggio riparte da 0 Mnl151b080 Pag 129 210 Programmazione IEC 61131 su SlimLine hlaz Comandi supportati Il blocco funzione supporta solo alcuni comandi previsti dal protocollo modbus i comandi supportati sono Comando 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 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 10019010 Valore di File non definito 10019060 Errore esecuzione 10019100 Errore in ricezione frame Lunghezza frame modbus troppo lunga 10019110 Errore in ricezione frame Lunghezza frame modbus troppo corta 10019120 Errore in ricezione frame CRC modbus errato 10019130 Errore in ricezione frame Lunghezza frame modbus errata 10019200 Errore trasmissione frame risposta 10019501 Eccezione 01 llegal function comando ricevuto non tra quelli gestiti 10019502 Eccezione 02 Illegal data address comando ricevuto ha indirizzo o numero dati fuori range 10019503 Eccezione
180. mulatore 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 eseguito CALL RETC Ritorna al programma che ha eseguito CALL se accumulatore diverso da zero Mnl151b080 Pag 193 210 Programmazione IEC 61131 su SlimLine 9 2 Operatori linguaggio ST 5 Fleet 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 Operazione Simbolo Esempio Parenthesization Espressione Function evaluation Funzione Argomenti LN A MAX X Y etc Negation Complement NOT Exponentiation Multiply Divide Modulo MOD Add Subtract Comparison lt gt lt 22 Equality Inequality lt gt Boolean AND amp Boolean AND AND Boolean Exclusive OR XOR Boolean OR OR Mnl151b080 Pag 194 210 Programmazione IEC 61131 su SlimLine 9 3 Statements linguaggio ST 5 Fleet Nella
181. nable ST FBData RGate Reverse gate CAL FBData Call the SysGetEncoder function block LD FEData Dons ST Do00M00 The output is active if data is acquired LD FBData Fault ST Do01M00 The output is active if execution fault zi LD FBData GQuote ST GateQte Gate quote LD FBData EKQuote ST EncoderQte Encoder quote Mnl151b080 Pag 118 210 Programmazione IEC 61131 su SlimLine a hlaz Type Library Version 7 15 8 SysPhrVRd read variable from peripheral module Function Embedded 5 0 Questa funzione esegue la lettura di una variabile dal modulo periferico di estensione Sys Phr Rd 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 RdAdd VarAdd a VarType VarAdd Parametri funzione Module usint Occorre specificare l indirizzo di modulo da cui eseguire la lettura Range da 0 a 15 Il valore 0 indica indica il primo modulo di estensione 1 il secondo e cos di seguito RdAdd int Indirizzo variabile da leggere come allocata sul modulo periferico VarType usint Tipo variabile come indicato nella tabella Variable types definition VarAdd upint Indirizzo variabile La funzione ritorna PE FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torn
182. ndo 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 U eTOF Timer Off function block d QOuftvalue DINT Auto Mo U Output value Esempio LD Ptp115a100 FBETOF eTOF DOO MOO Da00h00 4000 PT OutValue Esempio IL CAL FBeTOF Call the eTOF function block LD Di0QOMOO ST FBeTOF IN Transfer the digital input to timer input LD 1000 ST FBeTOF PT Set the delay time zi 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 Mnl151b080 Pag 31 210 Programmazione IEC 61131 su SlimLine 3 Flat Library Version 7 5 2 eTON Timer On ePLCStdLib SFR053A000 Questo blocco funzione esegue la temporizzazione sulla attivazione attivando l ingresso IN inizia il conteggio e dopo il tempo definito PT espresso in mS si attiva l uscita Q Sulla uscita ET viene ritornato il pa tempo trascorso dalla attivazione dell ingresso espresso in mS Disattivando l ingresso JN l uscita Q si IN F disattiva istantaneamente ed il valore di tempo su uscita ET si azzera FRET IN B001 Ingresso timer attivandolo inizia il conteggio e dopo il temp
183. nga 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 int Numero di bytes scambiati Timeout unt Tempo massimo per il trasferimento del buffer dati mS Done 001 Attivo se i due sistemi sono 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 unt 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 1 Errore ricezione frame dati blocco di memoria 10014300 2 Errore ricezione frame acknowledge 10014400 Ricevuto comando non gestito 10014500 Timeout invio frame dati blocco di memoria 10014600 Errore sequenze di trasmissione Mnl151b080 Pag 168 210 Programmazione IEC 61131
184. nte dal progetto di esempio Project xX E IL_SwsETimeT IL_SysSetAndut Ea Project Definitions Name Type Address Array Init value Attribute Description EE MyProject Project 1 Da USINT AUTO No 0 Day 2 CH Programs d Month USINT Auto Mo 0 Month H E IL SysETimeToDate 3 Year UINT Auto No 0 Year eeu 4 FE_SysETimeToDate SysETimeToC Auto No 0 FB SysETimeToDate data Function blocks Functions 11 Global variables E agii Transfer system date e time to FB input variable si zl Tasks 0002 0003 LD SyslateTine 0004 ST FB SysETineToDate EpochTime 0005 O006 CAL FE SysETimneToDate e Call the SysETimeToDate function block si nan Mnl151b080 Pag 201 210 Programmazione IEC 61131 su SlimLine 3 Heft 10 2 Definizioni I O logici negli esempi Tutti gli esempi riportati in questo manuale sono stati realizzati utilizzando una configurazione con un modulo CPU Slim line tipo MPS046A100 abbinato ad un modulo Mixed I O PCB122 100 Tutti i 20 I O del modulo con indirizzo 0 sono stati abbinati a variabili mnemoniche Gli ingressi sono denominati Di0xM00 e le uscite Do0xM00 come evidente nella tabella di definizione Mame Type Address Group Array Init value Attribute Description 1 DiCOMOO BOOL DND 0 Mo FALSE A Input 00 Module address 0 2 Di01MO0 BOOL X0 1 No FALSE Input 01 Module address 0 2 DIOZMO00 BOOL DVD No FALSE Input 02 Module address 0 4 Di03M00 BOOL X0 3 Mo FALSE Input 03 Module address
185. nter value is copied to the variable Mnl151b080 5 Flat Pag 35 210 Programmazione IEC 61131 su SlimLine 3 Flt Library Version 7 6 2 CTU Counter Up ePLCStdLib SFR053A000 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 CU 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 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 nT 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 BooL Uscita counter attiva se il valore del counter CV raggiunge il valore definito in preset PV CV cnt 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
186. o 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 0 e 100 Dn 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 Mnl151b080 Pag 134 210 Programmazione IEC 61131 su SlimLine lam Definizione variabili Name Type Address Array Init value Attribute Description 1 RdvTermp REAL MD100 0 NO 0 Fead temperature Degrees d PresetTemp REAL WMD100 2048 Mo O Get point temperature Degrees 3 Hand REAL So MOT 00 2052 NO 0 Proportional band Degrees 4 STSet REAL MD100 2056 No Scansion time mS 5 KPSet REAL MD100 2060 NO 0 Proportional coefficent 6 ITSet REAL hMD100 2064 No 0 Integrative time 5 DTSet REAL MD100 2068 No Derivative time 3 H TempRead SysGetanin
187. o 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 B00 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 azzera su disattivazione ingresso IN espresso in mS Esempi Su attivazione dell ingresso digitale Di00M00 dopo 1 Sec 1000 mS viene attivata l uscita digitale DoOOMOO Disattivando l ingresso digitale Di00M00 l uscita digitale DoOOMOO si disattiva immediatamente Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBeTON eTON Auto Mo U A e TON Timer On function block d Quivalue UDINT Auto Mo U A Output value Esempio LD Ptp115a100 FBeTOM sTON DICONO Do0OMOO PJ M mir a 1000 PPT 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 zi LD FBeTON Q ST Do00M00 When time is passed the digital output is set Si LD FBeTON ET ST OutValue The counting time is copied to variable Esempio ST FBeTON PT 1000 Call the e
188. o errori Mnl151b080 Pag 15 210 Programmazione IEC 61131 su SlimLine Leek 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 definizione tipo variabili La definizione del tipo di variabili utilizzata nella funzione di stampa formattata SysVarfprintf Per ogni tipo di variabile definito un valore USINT che lo identifica il valore indicato anche 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 0x00 a OxFF SINT_TYPE Variabile byte SINT 8 bits con segno range da 0x00 a OxFF USINT_TYPE Variabile byte USINT 8 bits senza segno range da 0x00 a OxFF WORD_TYPE Variabile word WORD 16 bits senza segno range da 0x0000 a OxFFFF INT_TYPE Variabile word INT 16 bits con segno range da 0x0000 a OxFFFF UINT_TYPE Variabile word UINT 16 bits senza segno range da 0x0000 a OxFFFF DWORD_TYPE Variabile double word DWORD 32 bits senza segno range da 0x00000000 a OxFFFFFFFF DINT_TYPE Variabile double word DINT 32 bits con segno range da 0x00000000 a OxFFFFFFFF UDINT_TYPE Variabile double word UDINT
189. odbus Rtu master FB PLCUtyLib SFR054A000 Blocco funzione obsoleto si consiglia di utilizzare ModbusRTUMaster ae a Questo blocco funzione esegue la gestione del protocollo modbus master possibile definire il i Enable Done terminale di I O su cui effettuare la comunicazione File File Fault Attivando il comando di read RdCmd sul terminale di I O viene inviato un frame modbus con il Rarma comando di Read Holding Registers 0x03 ed il valore ritornato dei registri viene trasferito nella weg variabile indirizzata da Buffer Node Attivando il comando di write WrCmd sul terminale di I O viene inviato un frame modbus con il Register comando di Preset Multiple Registers 0x10 con il valore dei registri acquisito dalla variabile yrofmegs indirizzata da Buffer BISI Terminato il comando viene attivato per un loop l uscita Done Enable soo Comando di abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen RdCmd eoo Comando di esecuzione lettura registri WrCmd oot Comando di esecuzione scrittura registri Node usin Numero di nodo modbus su cui effettuare il comando Range da 0 a 255 Register up Indirizzo di inizio lettura o scrittura registri su nodo modbus In accordo alle specifiche modbus l indirizzo inviato nel frame dati Register 1 Range da 16 0001 a 16 FFFF NrOfRegs usnt Numero di registri consecutivi da leggere o scrivere Range da 1 a 32
190. odice di errore Codice Descrizione 10002010 Valore di File non definito 10002020 FB protetta terminato tempo funzionamento in modo demo 10002050 Timeout esecuzione 10002100 9 Errore ricezione CLIP 10002150 9 Errore nelle sequenze power on del modem 10002200 1 Errore nelle sequenze di controllo del modem 10002210 7 Errore nella acquisizione dell operatore telefonico 10002220 2 Errore nella acquisizione del livello del segnale 10002300 4 Errore nell invio messaggio SMS 10002350 8 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 hidm ModemCore Dida hiig Doli KOO be Enable Enabled Dot 4 MOO Pn File Done Dot MOO Fault Doa Mig FowerOn Do04h00 CLIPRxd E bodemiD bodemiD ModemTx bodemTx Modem Ra hlodemRx CLIFNumber CLIFHumber Operator Operator Rssi Fissi Mnl151b080 Pag 149 210 Programmazione IEC 61131 su SlimLine a Ze Library Version 7 18 2 ModemSMSReceive receive a SMS message eModemLib SFR057A100 Questo blocco funzione esegue la ricezione di un 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 hiodemlo Fault ShdS T ext ModemsSMS Receive Al
191. odo modbus su cui effettuare il comando Range da 0 a 255 FCode usn Codice funzione modbus da eseguire nel comando Range da 0 a 255 Address int Points usint Buffer usint Timeout unt Done B00L Fault B00 Errors uDINT Mnl151b080 Comando Read coil status Massimo 255 coils Read holding registers Massimo 32 registri Read input registers Massimo 32 registri Force multiple coils Massimo 255 coils Preset multiple registers Massimo 32 registri 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 Numero di variabili consecutive su cui opera il comando Range da 1 a 32 Indirizzo buffer dati letti o da scrivere Tempo massimo esecuzione comando espresso in mS Se il comando non termina nel tempo definito viene abortito ed attivata l uscita Fault Attivo per un loop al termine della esecuzione del comando Attivo per un loop su errore esecuzione del comando Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Pag 125 210 Programmazione IEC 61131 su SlimLine 3 Flt Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10007010 10007050 10007060 10007100 10007120 10007500 10007520 10007540 Valore di File non definito Timeout e
192. ogrammazione IEC 61131 su SlimLine 3 Hey 7 11 4 1 Scrittura file di log Ecco un semplice programma che scrive nel file Log txt presente nella directory Storage un record di log ad ogni secondo Il record scritto nel formato CSV e quindi facilmente importabile in Excel Vengono scritti 50 records di log consecutivi terminato il ciclo di scrittura si riprende dall inizio del file sovrascrivendo i records gi scritti Il file di log creato sar del tipo 00 15 00 15 00000015 01 15 00 16 00000005 02 15 00 17 00000004 03 15 00 18 00000004 04 15 00 19 00000005 Definizione variabili Name Type Address Array Init value Attribute Description 1 Pulse BUOL Auto Mo FALSE i Time base pulse d Nr op USINT Auto Mo 0 n Mumber of log stored ni INT Auto Mo O Auxiliary counter 4 LogRecord STRING Auto 32 i Log record 5 En FILEP Auto Mo 0 File pointer 6 DateTime SysETimeloDate Auto Mo O i Date Time conversion Esempio ST Check if a second is passed IF SysClock1000 Pulse THEN RETURN END_IF Pulse SysClock1000 Time base pulse Open the file in append mode Fp Sysfopen Storage Log txt a File pointer IF Fp NULL THEN RETURN END IF Create the log record DateTime EpochTime SysDateTime Date time conversion i SysVarsnprintf ADR LogRecord 4 02d USINT_ TYPE ADR NrOfLog i SysVarsnprintf ADR LogRecord 3 4 02d USINT_ TYPE ADR DateTime Hour
193. olore verde DataPtr 3 Preset uscita comando colore bl Red 4 Preset valore dimmer su tutte le uscite Mi Il blocco funzione viene chiamato MiniDMX sulla destra possibile vedere come verr visualizzato il Blue blocco funzione nel proprio programma LD Il programma in codice sorgente del blocco funzione e del Dimmer programma di esempio si trova nel Ptp117 000 Sull ingresso Address occorre definire l indirizzo del dimmer cio l indirizzo DMX a cui corrisponde il preset del colore rosso gli altri valori saranno mappati sui 3 indirizzi successivi Sull ingresso DataPtr occorre trasferire l indirizzo dell array dati DMX Red definisce il valore dell uscita di colore rosso Green definisce il valore dell uscita di colore verde Blue definisce il valore dell uscita di colore bl Dimmer definisce il valore di dimmering delle uscite Definizione variabili Class H Name Type Alray nit value Attribute Description 1 VAR Ptr GOUSINT No I Pointer array comandi DMA d VAR_INPUT 0 Address JINT No U Indirizzo modulo MiniDMx 3 VAR_INPUT 1 DataPtr GOUSINT No I Address array comandi DMs 4 VAR INPUT 2 Red SINT o I Presetcolore rosso 2 VAR INPUT 3 Green SINT o I Preset colore verde bk VAR INPUT 4 Hue SINT No I Preset colore blu f MARL INPUT D Dimmer SINT No I Preset dimmer Codice sorgente ST Ptp117a100 Lk kk kk kk kk Ek kk Ek kk kk kk kk kk kk kk kk kk kk kk kk kk kk kk kk kk kk kk FB GESTIONE DIMMER DMX MiniDMX kk kk k
194. on Dummy Dott Mid Pag 39 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 7 2 VBItSet Variable bit set Function ePLCAuxLib SFR058A000 Questa funzione esegue il set di un bit in una variabile TERI a Value a Variable Bit Parametri funzione Value B001 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 pea Valore variabile dopo il 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 Wardut Variable Bit ER 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 zi Mnl151b080 Pag 40 210 Programmazione IEC 61131 su SlimLine Get Library Version 7 7 3 BitToByte Bit to byte conversion ePLCUtyLib SFR054A000 Questo blocco funzione permette di convertire 8 variabili BOOL in una variabile BYTE BitTobyte b Out bi b b3 Di D D b7 8001 Bit 7 del byte di Out b5 b b7 b0 Bool Bit 0 del byte di Out Out evre Risul
195. on ePLCStdLib SFR053A200 Questa funzione cerca la posizione del carattere di inizio della prima apparizione di In2 in Inf Se aFIND nessuna apparizione viene trovata la funzione ritorna 0 ne Se la stringa n2 trovata nella stringa n1 viene ritornata la posizione dove si trova Esempio eFIND In1 abcd In2 bc Ha come risultato 2 Parametri funzione In1 usinT Pointer alla stringa dove efettuare la ricerca In1 usint Pointer alla stringa da ricercare La funzione ritorna ER 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 StrToFind position d Gtroource STRING Auto ER 5 String were looking 3 StrToFind STRING Auto ER n String to find Esempio ST Find the position where is StrToFind in StrSource StrSource Hello worldt StreroFindi Lo Position eFIND ADR StrSource ADR StrToFind Mnl151b080 Pag 98 210 Programmazione IEC 61131 su SlimLine 3 Flat Type Library Version 7 14 3 MemSet memory set Function ePLCAuxLib SFR058A000 Questa funzione trasferisce in Buffer il valore definito in Value per il numero di bytes definito in HENGE Size Buffer La funzione ritorna il numero defini
196. oni 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 001 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 unt Numero di bytes di dato ricevuti Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 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 Mnl151b080 Pag 165 210 Programmazione IEC 61131 su SlimLine Type Library Version Function Embedded 6 0 7 20 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 fun
197. ontengono il valore attuale del real time clock e scrivendo un nuovo valore il real time clock verra 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 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 6 2 1 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 07 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 Mnl151b080 Pag 19 210 Programmazione IEC 61131 su SlimLine 3 Hey 6 2 2 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
198. ounter value d Ctr Sys Geil ounter Auto Mo S SysGetCounter FB data Esempio LD Ctr Sys Get Counter Do 00 MOO EN Dot 1 MoO 255 Address o channel 16 0000040 Mode SA re ROU DO Mod KL Rect Dot Woo Mnl151b080 Pag 116 210 Programmazione IEC 61131 su SlimLine 5 Fleet Type Library Version 7 15 7 SysGetEncoder get encoder input FB Embedded 3 0 Questo blocco funzione esegue la lettura di un canale encoder Il blocco funzione pu essere 3 N i i Sys Get Encoder utilizzato solo su sistemi che hanno moduli in grado di acquisire encoders incrementali f i i i EEN Address Done E prevista la gestione della tacca di zero e la possibilit di acquisire valori di quota all interno di un segnale logico di gate n an RCount ZeroD ZeroEn GateD GateEn Quote Address usin Channel sint RCount 8001 ZeroEn oo GateEn Bool RGate B001 Done B001 Fault B8001 ZeroD 8001 GateD B001 GQuote unt 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 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 indir
199. pari O dispari N nessuna DataBits sint Numero di bit frame dato valori possibili 7 8 StopBits usint Numero di bit di stop valori possibili 1 2 DTRManagement vuan Modo di gestione del segnale DTR sulla porta seriale vedi definizione DTRComplement eoo FALSE DTR normale TRUE DTR complementato EchoFlush 001 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 quin Tempo di attesa dopo trasmissione ultimo dato prima e disattivazione segnale DTR mS Done 6001 Impostazione modo eseguito correttamente Fault 8001 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 Mnl151b080 Pag 90 210 Programmazione IEC 61131 su SlimLine Esempi 5 Flat Al primo loop di esecuzione programma viene aperta la porta seriale COMO viene impostato il modo di comunicazione 19200 e 8 1 Ogni secondo viene inviato sulla porta seriale il caratt
200. peratura C Humidity ReaL Valore di umidita 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 lettura 10032100 Errore controllo indirizzo del dispositivo H Temp 10032120 Errore lettura valore di temperatura 10032150 Errore lettura valore di umidit 10013200 1 Errore nella gestione del protocollo di comunicazione Mnl151b080 Pag 173 210 Programmazione IEC 61131 su SlimLine 3 Flap Esempi Nell esempio gestita l acquisizione del valore di temperatura e di umidit da un HTemp ogni secondo Il valore di temperatura in gradi centigradi ritornato nella variabile Temperature ed il valore di umidit in ritornato nella variabile Humidity Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto No File pointer A SMode setShtode Auto No O FA set serial mode data 3 HTBax HTempBox Auto No FA HTempBor data 4 Temperature REAL Auto No Temperature value CC 5 Humidity REAL Auto No Humidity value i Esempio LD Sysfopen SysFirstLoop En aye il ui i FN eps o Fp Mad em ode Shiode Set S Mode SvsFirstLoop Pp mse ENO Fe ER Done DOLL Baudrate Fault H Parity pn DataBits 1 StopBits DTR_AUTO_WO_TIMES
201. possibile rilevare il codice di errore 10005010 ModemID non definito 10005020 ModemIlD non corretto 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 Send ModemShMSSend DUU PE Dend Done Mogdemlt Ac ModemiD Fault 303 35 Number Message text Text DoQS OO Mnl151b080 Pag 152 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 19Funzioni ed FB gestione One Wire ePLC1WireLib 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 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 Mnl151b080 Pag 153 210 Programmaz
202. protocollo DMX IF FBDMX Done THEN FBDMX Start FALSE END IF End of file Mnl151b080 Pag 138 210 Programmazione IEC 61131 su SlimLine Library Version 7 16 11 IOEncoder incremental encoder over UO PLCUtyLib SFR054A400 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 APhase Quote l Encoder La quadratura dei segnali esegue la moltiplicazione per A delle tacche encoder quindi il valore di BFhase Quote al termine di un giro completo dell encoder pari al numero di tacche encoder moltiplicato per 4 Enable BooL Abilitazione gestione conteggio encoder Reset oo Comando di reset quota encoder Attivando l ingresso si azzera il valore di Quote APhase 8001 Ingesso canale A encoder BPhase 8001 Ingesso canale B encoder Enabled e001 Conteggio encoder abilitato Error B001 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 pur Valore di quota encoder espresso in impulsi Numero tacche giro
203. put to variable Esempio ST Pto114a100 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 Quts Transfer output to variable Mnl151b080 SFR054A000 Byte Toward MSE Out a LSB Pag 44 210 Programmazione IEC 61131 su SlimLine Library 5 Fleet Version 7 7 6 WordToByte Word to byte conversion ePLCUtyLib Questo blocco funzione permette di convertire una variabile WORD in due variabili BYTE IN worb Variabile da convertire MSB evr 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 Description 1 LSBByte BYTE Auto No U Valore byte MSB d Woo BYTE Auto Mo U Valore byte LSB A Varinp WORD Auto Mo U Variable input 4 FAData WordToByte Auto Mo U FA Word to byte data Esempio LD Ptp114a100 FED ata Word To Byte EN ENO Varlnp In Esempio IL Ptp114a100 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 Pto114a100 FBData In VarInp Transfer the
204. r 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 Mnl151b080 Pag 10 210 Programmazione IEC 61131 su SlimLine hlaz 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 l
205. r disattivare l uscita digitale D0o00M00 occorre attivare l ingresso digitale Di01M00 Nota L ingresso digitale Di01M00 ha la priorit sull ingresso digitale Di0OMOO Definizione variabili Address Auto Init value Attribute Description RS ResetSet function block FERS Dogi MOO Mame Array Mo 0 Type 1 FEBRS RS Esempio LD Ptp115a100 DOO pero uo o o o o o oy y mauaoy yo u ee e BI 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 input 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 Do00M00 FBRS Q1 Mnl151b080 Transfer the digital input to the reset command The function block output is copied to digital output Pag 29 210 Programmazione IEC 61131 su SlimLine hlaz Library Version 7 4 4 SR Set Reset flip flop ePLCStdLib SFR053A000 Questo blocco funzione su attivazione del comando di set SI 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 e BI DI Il comando di set S1 prioritario sul comando di reset R
206. rd FBData LSW LSBWord FBData Call th VarOut FBData Out Mnl151b080 Transfer the MSW variable to input Transfer the LSW variable to input e WordToDouble function block Transfer output to variable Pag 47 210 Programmazione IEC 61131 su SlimLine hlaz Type Library Version 7 7 9 ToLower Uppercase to lowercase letter conversion Function ePLCAuxLib SFR058A000 Questa funzione converte un carattere dal formato maiuscolo nel corrispondente carattere in TSE formato minuscolo a Char Parametri funzione Char usw Carattere da convertire La funzione ritorna MAINT Carattere nel formato lowercase Esempi La variabile Upper viene convertita nel corrispondente valore lowercase 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 UISINT Auto Mo 163441 n Uppercase letter d Lower LISINT Auto No 0 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 Mnl151b080 Pag 48 210 Programmazione IEC 61131 su SlimLine hlaz Type Library Version
207. re 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 e possibile utilizzare la funzione SysGetlChars che ne ritorna il numero Parametri funzione File eer Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna CNT Carattere letto 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 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 FILER AUTO Mo U S Por COMO file pointer 2 JCh INT Auto Mo S Character read Esempio ST Pto116a100 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 Mnl151b080 Pag 66 210 Programmazione IEC 61131 su SlimLine Lee Type Library Version
208. ria per l allocazione del buffer definito la funzione ritorna 0 Parametri funzione Size uont Dimensione in bytes dell area da allocare La funzione ritorna eyo Indirizzo allocazione buffer NULL se non vi spazio per allocare il buffer Esempi Su fronte attivazione ingresso Di0OMO0 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 Pulse flag d Ch INT Auto No O Written character 3 Ji INT AUTO Mo Auxiliary counter A NrOfChars INT Auto Mo 0 Number of printed chars D Courter UDINT Auto Mo LU Counter E En FILEP Auto No Port COMO file pointer d StringQut OW SINT Auto Mo U String output pointer Esempio ST Pto116a300 A E n n i i i i i i i n i i e ue i i i i i i i i ii i i i i i ii i ii ii i i ii ii iii i i i x SysMAlloc example 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 zi END IF IF StringOut 0 OR Ep Hit THEN RETURN END IF On input raising edge the counter value is printed IF D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF D100M00 THEN Counter Counter l Counter
209. ring RxString hieterCode F asanvord Walue Mnl151b080 Pag 146 210 Programmazione IEC 61131 su SlimLine hlaz 7 18 Funzioni ed FB gestione modem eModemLib 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 Per utilizzare la gestione del modem occorre importare la libreria SFR057 00 nel proprio progetto si rimanda al capitolo relativo all import delle librerie per ulteriori informazioni in merito 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 Mnl151b080 Pag 147 210 Programmazione IEC 61131 su SlimLine 7 18 1 ModemCore modem core management Questo blocco funzione gestisce un modem connesso al
210. ription 1 VAR caser LINT Mo 0 i Case number 2 VAR Ch INT Mo 0 i Character A VAR_INPUT U F FILEF Mo U E Terminal VO pointer A VAR_INPUT 1 RdRegs LIT IO 2 40 7 Fead registers D VAR OUTPUT 0 WrRegs LNT 0 3 4 0 A Write registers E VAR Revalue LIMIT Mo 0 Received value d WAR FxHexData SINT Mo 0 Received hexadecimal data H WAR CaseBack LIMIT Mo T Case back 9 VAR Digit SINT Mo 0 Digits counter 10 VAR Address UINT Mo U Register address 11 VAR_ EXTERMAL Sys Time UDINT Mo U System time 12 VAR TImButt UDINT Mo T Time buffer Codice sorgente blocco funzione in ST kk kk kk kk kk Ek kk Ek kk kk kk kk Ek kk Ek kk kk kk kk Ek kk Ek READ WRITE REGISTERS FUNCTION BLOCK gt KKEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK KS EE SS TIMEOUT MANAGEMENT 5 x crash craalclaliila amp lccaircic aelclcrla gt sciilicuiilicosola ilociiuti Ka IF CaseNr 0 THEN TimBuff SysTime END IF IF SysTime gt TimBuff 1000 THEN CaseNr 0 END IF gt EHEH HHHHH HAHA HH HAHA HH EHH MANAGEMENT CASES FHHFHHFHPEEPEPPEPEEPEEEEPEEEPEPHAPHEPR HHH CASE CaseNr OF WAITING READ WRITE COMMAND 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 The read command is Rxx followed by lt CR gt 16 0000 WHILE T
211. rogrammi ST basta indicarne il nome per essere eseguite 7 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 Wiew 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 TF SusFIBfClear Function Clear input buffer Ja Su FOBfClear Function Clear output butter af SysFOR Flush Function Flush output buffer TF Sysfopen Function Upen a file TF Susfpute Function Put character to file E Spsfread Function block Read data from file E Sysfwrite Function block Write data to file E Sieh et4ninp Function block Get analog input gf SysGetlChars Function Get available input chars i Sieh etl S pace Function Get avallable output space a amp l Operator and standard blocks Target variables Target blacks Agendo con Il tasto destro del mouse su dbicrliabonsbhine ogni singola funzione o blocco funzione possibile visualizzarne la finestra delle Object name SysGetPhrDI propriet in cui sono indicate le variabili in
212. rretto 9984200 6 Errore durante l esecuzione gestione uscite digitali sul modulo periferico Mnl151b080 Pag 107 210 Programmazione IEC 61131 su SlimLine 3 Flap Esempi Viene trasferito il valore della variabile OutValue sulle 8 uscite basse Da Out 0 a Out 7 del modulo con indirizzo 0 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FeData SysSetPhrDo Auto Ho O e FB SysSetPhrD0O data A Qutralue LIDINT Auto Ho O n Digital output value A Dummy BOOL Auto Mo FALSE n Dummy variable 4 Fong BODL AUTO Mo FALSE S FA done 5 FF ault BOOL Auto Ho FALSE FA fault Esempio LD Ptp116a100 FAD ata Sys Set br D Dummy EN ENO o Address Done DI_S_LL Mode Fault Outvalue value Esempio IL Ptp116a100 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 CAL FBData Esempio ST Pto116a100 Manage digital outputs Out 0 to Out 7 on module with address 0 FBData Address 0 FBData Mode DO 8 LL FBData Value 0utValue Digital ouput value FBData Execute FB Mnl151b080 Pag 108 210 Programmazione IEC 61131 su SlimLine 3 Flap Questo esempio una evoluzione dell esempio precedente Utilizzando il blocco funzione BitToByte un array di 8 BOOL trasferito in uscita sulle 8 uscite basse Da Out 0 a Out 7 del modulo con ind
213. rrore 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 Esempi Nell esempio gestito un convertitore Seriale One Wire 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 Uu Ire OWirehng Dog Woo Enable Enabled FE File Done Dod WOO Dogz MOO Mnl151b080 Pag 154 210 Programmazione IEC 61131 su SlimLine 5 Fleet Type Library Version 7 19 2 OWRdidentifier One Wire read ROM identifier FB ePLC1WireLib SFR059A000 Questo blocco funzione esegue la lettura del codice di identificazione di un dispositivo One Wire si collega al blocco funzione OWireMng di gestione convertitore Seriale One Wire Occorre passare OWirelID in uscita dal blocco funzione di gestione convertitore Attivando il comando di Start viene eseguita la lettura del ROM ID dal dispositivo connesso al bus One Wire Attenzione Bisogna avere un solo dispositivo connesso al bus Se la lettura ha esito positivo si attiva per un loop di programma l uscita Done e gli 8 bytes del codice letto sono trasferiti nell array indirizzato Ov Rd Identiti er a Enable Enabled Start Done e OQuvirelD Fault DCode Enab
214. rs UDINT Auto MO l Errors counter Born SYSSERIALMODE Auto MO l S Serial mode 7 AFlag BOOL Auto Mo FALSE 3 Auxiliary flag H Trigger R_TRIG Auto Mo 0 S Raising trigger FB Esempio ST Pto114a200 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I ES EE X OPEN THE COMMUNICATION PORT S Here open the COM2 port in read write IF Fp NULL THEN Pot Systopen COM2 rw Terminal I O pointer Zi END_IF CS a a a a a a a __l 1L _l1 _ gt x INITIALIZATION IF SysFirstLoop THEN AFlag SysGetSerialMode ADR Sm Fp Get serial mode Sm Baudrate 57600 sm Parity E sm DTRManagement DTR AUTO WO TIMES AFlag SysSetSerialMode ADR Sm Fp Set serial mode END IF LS EE K MODBUS MASTER ARTT E LT ee PP lt P 6 6 _ _ 6 6 6 6 6 6 m64_ _m6_ _6m_ m m6_m6m0 _6 _ _m m _ 6m _ _ Mdb Enable TRUE Function enable zi Mdb File Fp Terminal I O pointer Mdb Node 1 Node number Mdb Register 257 Start register address Mdb NrOfRegs 6 Number of registers Mdb Buffer ADR Registers Address of data buffer Call the modbus master FB an exec
215. s cani Parameter Mnl151b080 Pag 185 210 Programmazione IEC 61131 su SlimLine 3 Flt Library Version 7 23 3 CRCPolinomial CRC polinomial calculation ePowerOneLib SFR062A000 Questo blocco funzione esegue il calcolo del CRC su di un array di dati in accordo allo standard CCITT Questo tipo di CRC utilizzato come controllo sul frame dati da e verso l inverter Aurora SE In Data occorre indicare l indirizzo dell array di dati su cui calcolare il CRC Length indica la ae SE Leng lunghezza dell array in byte In CRC ritornato il valore del CRC calcolato Data usinT Indirizzo array dati su cui eseguire il calcolo del CRC Length usin Lunhezza array in bytes CRC UINT 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 sar 16 5AF0 Definizione variabili Mame Type Address Array init value Attribute Description 1 Adr DBI O0Add Offset Auto Mo Il n FB DB100 address 2 CRCValue WORD Auto Mo 0 E CRE calculated 3 GRGCale CRCPalinomial Auto Mo 0 S FA CRE calculation Esempio LD CRCCale CREPolinomial SwsClock1000 Adr EN EHO DOBA00 Add UHT Set Data CRC CRCWalue up P Offset Address _s_ Length Mnl151b080 Pag 186 210 Programmazione IEC 61131 su SlimLine hlaz 8
216. s 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 zi Frame 7 2 TO USINT CRCValue 255 7 5 LOB Of CRC value Mnl151b080 Pag 56 210 Programmazione IEC 61131 su SlimLine Il valore del CRC del frame modbus Rtu 16 443A l intero frame visibile ponendo nella finestra di watch la variabile Frame cos come riportato nella figura Mnl151b080 Frame 0 i 2 3 4 5 6 7 i 9 5 Fleet 16401 16403 16401 1620 16400 16406 16444 et 16400 16400 USINTI USINT USINT USINT USINT USINT USINT USINT USINT USINT USINT Pag 57 210 Programmazione IEC 61131 su SlimLine 3 Flat i Type Library Version 7 8 7 SysMAlloc Memory allocation Function Embedded 6 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 disposizione del programma utente Nel caso in cui non vi sia spazio in memo
217. sage ID 11 o 29 bit di identificativo messaggio Il bit 31 il bit di FF ARRAY 0 7 OF USINT Array dati messaggio Mnl151b080 Pag 11 210 Programmazione IEC 61131 su SlimLine Hey 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 finestra 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 i 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 w i SushtodulesRieady ud SyeTBootExTm Digital outputs SysPLCInRun ud SyeTBootExTmMax Digital inputs SysRestoreFault ud SyeTBootExT min User data ud SysStartT ime Swe
218. sar azzerata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Pulse BODL Auto Mo FALSE F Pulse flag d Variable UDINT Auto II A 300 Variable A Inputstring STRING Auto 32 Value 23 E Input string 4 Result BOOL Auto II A 300 Function result Esempio ST Ptp116a200 Check if input is activated IF Di0OOMOO 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 Mnl151b080 Pag 102 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 15Funzioni ed FB per gestione moduli periferici Type Library Version 7 15 1 SysPhrinfos get infos from peripheral modules Funzione Embedded 5 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 InfolD relativa al module modulo indicato in Module InfolD La funzione ritorna TRUE se correttamente eseguita in caso contrario FALSE Info Parametri funzione Module usint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione Range da 0 a 15 Il valore 0 indi
219. scription 1 EE Thi F_TRIG Auto Mo n F_TRIG Falling edge trigger function block Esempio LD Ptp115a100 FE_F_TFIG F_TRIG COO MOO Do00h0o CLE L 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 TRIG Q 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 the falling edge of digital input the output is set Mnl151b080 Pag 27 210 Programmazione IEC 61131 su SlimLine Elec Library Version 7 4 2 R_TRIG Raising edge trigger ePLCStdLib SFR053A000 Questo blocco funzione attiva l uscita Q per un loop di programma sul fronte di attivazione dell ingresso di clock CLK E CLE CLK oot 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 Di0OMOO viene attivata per un loop di programma l uscita digitale Do00M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBR_TRIG R_TRIG AUTO Mo U 5 R_TRIG Raising edge trigger function block Esempio LD Ptp115a100
220. secuzione Errore esecuzione Codice funzione definito in Function non gestito Valore di Points errato Errore in ricezione frame Codice comando errato Errore in ricezione frame CRC frame errato Errore in ricezione frame Dati errati Esempi Attivando l ingresso digitale Di00M00 viene eseguita ogni secondo la lettura di 16 coils a partire da indirizzo 16 01 dal nodo modbus 1 Il valore dei coils letti trasferito nella DB100 a partire da indirizzo 16 Terminata la lettura si attiver per un loop l uscita logica D0o00M00 Nella variabile BOOL ad indirizzo MX100 16 verr trasferita la variabile BOOL MX100 0 del sistema slave ad indirizzo MX100 17 la variabile MX100 1 ad indirizzo MX100 18 la variabile MX100 2 e cos via Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FIER Auto Mo 0 File pointer A MdbSn ModbusRTUMaster Auto Mo i Modbus RTU master 3 AddSh DB100AddOoffiset Auto Mo 0 Address offset Esempio LD Ptp114a300 Sysfopen SvysFirstLoop EN Mod E ode Don Dapp Pp mamma able Done SysClock1000 Dod M00 PF __ S Statt Fault Fp gt File i Node AddSn 16 01 L Function DE100Add Offset 40000 Address EN ENG up P Points Butter Timeout Mnl151b080 COM FHame hidb Sn Modbus ETU Master ENO Pag 126 210 Programmazione IEC 61131 su SlimLine Ze Type Library Version 7 16 5 MDBRTUMASTER m
221. seriale RS485 HTempBox Occorre passare alla FB il puntatore al file di porta seriale stream indicato dal parametro STADIE SONE File precedentemente aperto dalla funzione Sysfopen Start Fault Fil E Su fronte attivazione del comando Start viene effettuata la lettura del valore di du temperatura e umidit dal convertitore HTemp connesso alla porta seriale definita Se il comando Start mantenuto attivo la lettura viene effettuata in modo ciclico Address TxFrame RxFrame Temperature L uscita Done si attiva per un loop al termine della acquisizione dei valori di temperatura e Humidity di umidit Enable 001 Abilitazione blocco funzione Start B001 Comando acquisizione da HTemp Sul fronte di attivazione si esegue la lettura del valore di temperatura e umidit Mantenuto attivo la lettura viene effettuata in modo ciclico File FLEP Flusso dati stream ritornato dalla funzione Sysfopen Address strinci1 Stringa di definizione indirizzo dispositivo Done 6001 Attivo per un loop di programma su fine lettura dati Fault B001 Attivo per un loop di programma se errore gestione Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 TxFrame strincj Contiene il frame inviato al dispositivo pu essere utilizzato in debug RxFrame strinci16 Contiene il frame ricevuto dal dispositivo pu essere utilizzato in debug Temperature REAL Valore di tem
222. sint Pointer all array dove deve essere trasferito il risultato della stampa Size un Numero di caratteri da trasferire nella variabile String numero definito comprensivo del codice di fine stringa WU 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 usint Tipo variabile come indicato nella tabella Variable types definition VarAdd upint Indirizzo variabile La funzione ritorna KEN Numero di caratteri comprensivo codice fine stringa WO 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 Di0OMO0 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 caricato il numero di caratteri trasferiti in StringOut ed inviati in uscita sulla porta
223. sitivi 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 d DhsData WSINT Auto ID A 5 0 DM data 3 DiFis R_TRIG Auto 0 1 UU Pulse su ingresso Esempio ST xi Ls ER _ _ _ 0 6 06 6 0 6 1 c 5 ESEGUO APERTURA PORTA SERIALE bal I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 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 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I
224. su SlimLine Hey Esempi Nell esempio viene trasferito un blocco di memoria di 16 bytes allocati su MX7100 16 verso il sistema con IP 192 168 0 126 i dati ricevuti sono trasferiti a MX100 32 Per testarne il funzionamento occorre trasferire lo stesso programma sul sistema con IP 192 168 0 126 definendo opportunamente la variabile PeerIP L uscita DOo00MO00 attiva se i due sistemi sono sincronizzati tra di loro Definizione variabili Mame Type Address Array Init value Attribute Description 1 SktAvailable BOOL Auto Mo FALSE Socket available 2 UPDORxData DBIO0AddOfset Auto Mo O Address of Rx data 2 UPDTxData DBI100AddOofset Auto Mo O Address of Tx data 4 En FILEP Auto Mo DU UDP socket 5 Skilsn Svs SktListen Auto Mo Socket listen 6 FAD Txfer UDPDataTxfer Auto NO 0 UDP data transfer Esempio LD Ptp119a300 Sysfopen SysFirtLoop EN EN J gt Az 8 ONOI UDESRT james Fp TE Mode SktLsn SysSktListen SktfAwailable Enable Done Fp_ gt File Fault ae hiyl F Connect 128 biyPort ClientlP LifeTm ClientFort FlushTm RxSize TxSize FEDT xfer UDP DastaT xsfer Skt amp wailable D a 00 MOO e Eats Done UF CRD ata D 001 Woo Fp_ gt File Fault 5 DEA00AddOffset Dole MOO 9 4163 0 126 PeerlP R D ata Ok 5 Dos MOO mp Offset Address 128 Port TxDataSent S RxD Butter UPDTxData TxD Butter DEBA00 Add Offset iE puten a Offset Address 100 Timeo
225. successivi Esempio LD Receives et ModemShM SRC md SysFirstLoop fe _ NEI1ITL lt L gt lO 0 Enable Done hodemiD gt _ ModemlD Fault FALSE Cin Get output Command Do MOO Mnl151b080 Pag 151 210 Programmazione IEC 61131 su SlimLine a Ze Library Version 7 18 4 ModemSMSSend send a SMS message eModemLib SFR057A100 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 EE di gestione modem Send Done e ERE l ModemlB Fault 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 l invio SE a L verr attivata per un loop di programma l uscita Done 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 upint ID modem fornito in uscita dalla ModemCore Number strinci16 Numero di telefono a cui eseguire l invio del messaggio Text sTRING 160 Testo messaggio da inviare Done oo 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
226. 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 8 e e l indirizzo di nodo sia su porta seriale che su TCP IP 1 6 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 Note 1 Read input status Bit singolo Read 40000 44095 Note 1 Read holding registers Word 16 Bit Read 40000 42047 Note 2 Read input registers Word 16 Bit Read 40000 42047 Note 2 Force single coil Bit singolo Write 40000 44095 Note 1 Preset single register Word 16 Bit Write 40000 42047 Note 2 Preset multiple registers Word 16 Bit Write 40000 42047 Note 2 Note 1 Nelle funzioni che accedono al bit singolo In realta 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 6 1 1 Lettura variabili da modbus Per la lettura delle variabili si utilizz
227. tando come set point il valore 50 attivando l ingresso DiI00M00 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 D FA Pv data Esempio LD Ptp114a100 FED ata Pit Dut dE E Do0 Mion Heo Enable 50 0 Set 50 TCycle D TMin Mnl151b080 Pag 136 210 Programmazione IEC 61131 su SlimLine hlaz Type Library Version 7 16 10 SysDMXMng DMX management FB Embedd 3 0 Questo blocco funzione esegue la gestione del protocollo DMX questo un blocco funzione protetto di ai i l l ii e Sus D hin per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi_ gg 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 DMX Delay AI termine dell invio del comando DMX si attiver per un loop di programma l uscita Done DataFtr Start B001 Comando di inv
228. tart Fault Viene utilizzato il FB CRCPolinomial per il calcolo del CRC dei frame dati da e verso file value g inverter Address Errors 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 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 usn 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 upint 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
229. tato conversione ingressi a bit Esempi Gli 8 ingressi digitali del modulo 0 sono trasferiti nella variabile VarOut Attivando il solo ingresso digitale Di00MO00 la variabile VarOut assumer valore 1 attivando il solo ingresso digitale Di01M00 la variabile VarOut assumer valore 2 e cos via fino all ingresso Di01MO00 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 semplicit negli esempi IL e ST non vengono riportati tutti i bits Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData BitToByte Auto Mo O a FA Bitto byte data d ManU LIDINT Auto No DU di Variable output Esempio LD Ptp114a100 FEL ata BitTo Byte SvysFirstLoop fe __ __ _y_y _ EN ENO D 00 hd le b Out D 014 woo e I Did woo D D 03 MOO E iz DUU ec bel Dios Woo Pp Mmmm ee bf DOG MOO e IH Did OO rr se Esempio IL Ptp114a100 LD Di0OMOO ST FBData b0 Transfer digital input to input bit LD D107M00 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 Mnl151b080 Pag 41 210 Programmazione IEC 61131 su SlimLine 3 Flap Esempio ST FBData b0 D100
230. tempo nella variabile VarOut inizia il conteggio Raggiunto il tempo definito 5 secondi l uscita D0o00MO00 si azzera mentre il valore di tempo nella variabile VarOut rimane bloccato sul valore di preset 5000 mS sino alla disattivazione dell ingresso Di0OMOO Disattivando l ingresso digitale DiIO0M00 durante la temporizzazione non si hanno ripercussioni n 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 O A eTF Timer pulse function block d Quivalue UDINT Auto No I Output value Esempio LD Ptp115a100 FBeTP eTP D OOhCOO Dot WOO Pp m IN L S000 FT Qutvalue Esempio IL CAL FBeTP Call the eTP function block LD Di0QOMOO 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 Si 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 Mnl151b080 Pag 33 210 Programmazione IEC 61131 su SlimLine 3 Hey 7 6 Funzioni ed FB per gestione counters Type Library Version
231. terminale di I O su cui effettuare la comunicazione File Attivando il comando di Start sul terminale di I O viene inviato un frame per eseguire la funzione modbus definita in Function Enable Done l l i i Start Fault Il comando Start se attivato in modo impulsivo permette l esecuzione del comando definito una gt 5 Tile ror sola volta Se sempre attivo permette l esecuzione ciclica del comando definito Node Se la funzione una funzione di lettura il valore delle variabili a partire dall indirizzo definito in prode Address per il numero di variabili definito da Points viene letto dal sistema slave e trasferito ve e Address nelle variabili indirizzate da Buffer Points Se la funzione una funzione di scrittura il valore delle variabili presenti nel buffer di memoria _ Buffer 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 Timeout Terminato il comando viene attivata per un loop l uscita Done in caso di errore esecuzione comando o tempo di esecuzione comando superiore al tempo definito in Timeout viene attivata per un loop l uscita Fault ed incrementato il valore in Errors Enable soo Comando di abilitazione blocco funzione Start 8001 Comando di esecuzione comando modbus File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Node usin Numero di n
232. tilizzata la formula TOn MinOnTime MaxOnTime MinOnTime Numero Random DelayTm MinOnTime 1000 MaxOnTime MinOnTime TO UDINT SysGetRandom TRUE 1000 END IF Eseguo calcolo valore tempo attuale in temporizzazione Delay DelayTm 1000 Current delay time mS END_IF End of file Mnl151b080 Pag 206 210 Programmazione IEC 61131 su SlimLine Hey 10 4 1 Utilizzo FB ciclo On Off con tempi random Per utilizzare il blocco funzione possibile realizzare un semplice programma in LD che lo richiama Nell esempio che riporto avremo il lampeggio della uscita Do00MO00 con tempi di Off variabile tra 1 e 2 secondi mentre il tempo di On variabile tra 300 e 500 mS Definizione variabili Mame Type Address Array Init value Attribute Description 1 CurrentDelay UDINT Auto Mo O d FBONOfficycle OnoOffcycle Auto HO O Esempio LD FROnOfCyecle On OF Cycle DOUM J mmm Enbe Out 1000 Min0ffTime Delay 2000 MaxOffT ime 200 MinOnTime Dogi Mid CurentDelay 500 hiaxOn Time Mnl151b080 Pag 207 210 Programmazione IEC 61131 su SlimLine 3 Flach 10 5 Blocco funzione MiniDMX Ecco un esempio su come realizzare un blocco funzione per la gestione di un mini dimmer a 3 canali RGB utilizzando il linguaggio ST Il prodotto in questione utilizza 4 indirizzi DMX Mini Dii 1 Preset uscita comando colore rosso Address 2 Preset uscita comando c
233. tivo viene attivata l uscita Done e le variabili MeterCode Password e heterLode Value sono valorizzate con i dati letti dal contatore Password Value Enable 8001 Attivando l ingresso viene gestita la lettura del contatore File FLEP 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 001 Viene attivato per un loop al termine della acquisizione Fault 001 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 stRrinc 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
234. to Esempi Lo stato del segnale CTS della porta seriale COMO appoggiato sull uscita Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 F FILEP Auto Mo O 5 File pointer Esempio LD Systopen SysFirstLoop EN ENO COMO FHame wiad pani ode Sys Get Serial CTS Doti Moo Do MOO Mnl151b080 Pag 92 210 Programmazione IEC 61131 su SlimLine a Elec i i Type Library Version 7 12 5 SysSetSerialDTR set DTR signal status Function Embedded 5 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 M 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 FLEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna BOOL 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 Esempi Su lo stato dell ingresso Di0OMO0 viene trasferito sul segnale DTR della porta seriale COMO Definizione variabili Mame Type Address Array Init value Attribute Description ela FILEP Auto Mo O
235. to in Size Value a Size Parametri funzione Buffer usint Pointer al buffer di memoria dove trasferire Value Value usint Valore da trasferire nel buffer di memoria Size uin Numero di volte in cui Value trasferito in Buffer La funzione ritorna SINT 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 Strbutfer STRING Auto ER String buffer d Retvalue LINT Auto Mo O 7 Return value Esempio ST Pto116a100 The StrBuffer variable is set to 0 RetValue MemSet ADR StrBuffer 0 32 Return value Mnl151b080 Pag 99 210 Programmazione IEC 61131 su SlimLine Type Library Version Function Embedded 4 0 7 14 4 SysVarsnprintf variable print to string Questa funzione trasferisce in String la stampa formattata di una variabile Il valore g mg i Sys Varsnprintt stampato ritornato nella variabile stringa non pu 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 String EOF in caso di Marlype errore a VarAdd Parametri funzione String u
236. to 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 8001 Comando di abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Node vusint Numero di nodo modbus Range da 0 a 255 Offset vum Offset su indirizzo modbus ricevuto nel frame dati Range da 16 0000 a 16 FFFF Address wint 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 Buffer usinT Indirizzo buffer dati su cui operano i comandi modbus Size un Dimensione in byte del buffer dati su cui operano i comandi modbus IF Time unn Tempo che intercorre tra la ricezione di un comando ed il comando successivo US Se comunicazione su porta seriale il tempo deve essere definito in base al baud rate Baud rate Tempo Baud rate 300 112000 19200 600 56000 38400 1200 28000 57600 2400 14000 76800 4800 7000 115200 9600 3430 Done 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 massi
237. torna 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 Origin File FLEP 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 secondo la tabella sottoriportata Value Mode Acquisition 0 ID_SEEK_SET Inizio del file 1 ID SEEK_ CUR Posizione corrente file 2 ID SEEK END Fine del file La funzione ritorna DIRI 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 Mnl151b080 Pag 83 210 Programmazione IEC 61131 su SlimLine Esempi 5 Flat Sul fronte di attivazione dell ingresso DiOOMOO viene posizionato l indicatore di posizione all inizio del file File txt presente nella directory Storage Definizione variabili Name Type Address Array Inittfaloesflelencttiibute En FILEP Auto Mo a File pointer 2 FPosition DINT Auto Mo O 7 File position Esempio LD Sysfopen Di0OMOO 5 EN Storage SCFile ta Mame Let Systseek EN ZS File o Offset IL_SEEK_SET gt a Mnl151b080 Description FFosition Pag 84 210 Pr
238. tri di comunicazione porta seriale Occorre passare al blocco funzione il puntatore al file di porta seriale su cui Si eseguire l impostazione dei parametri di comunicazione cosi come viene ritornato FP 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 Databite 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 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 funzione Sysfopen Baudrate unn Valore di baud rate porta seriale da 300 a 115200 baud Parity stRINC 1 Tipo di parit valori possibili E
239. ttata BlinkNr usint Definisce il numero di lampeggi dell uscita OutBit Definendo tempo 0 l uscita si disattiva OutBit 8001 Stato uscita lampeggiante Esempi Attivando l ingresso digitale DiI00MO00 l uscita 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 Di00MO00 l uscita digitale DOo00MO00 si azzera immediatamente Definizione variabili Mame Type Address Array Init value Attribute Description 1 FHData Blinkvalue Auto NO 0 3 FA BlinkYalue data Esempio LD Ptp114a500 FAD ata BlinkYalue DOO MOO Do OM PY Enable OutBit 23 BlinkNr Esempio IL Ptp114a500 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 LD FBData OutBit ST Do00M00 Copy FB output to logic output Esempio ST Ptp114a100 FBData BlinkNr 23 Call the BLINK function block FBData Enable D100M00 Transfer the digital input to FB enable DoQOM00 FBData OutBit Transfer the FB output to digital output Mnl151b080 Pag 124 210 5 Fleet Programmazione IEC 61131 su SlimLine Type Library Version 7 16 4 ModbusRTUMaster modbus Rtu master FB PLCUtyLib SFR054A500 Questo blocco funzione esegue la gestione del protocollo modbus master possibile definire il jjng se
240. ue la lettura dei due ingressi digitali e la gestione delle due uscite NSA digitali presenti sul modulo CPU dello SlimLine Enable Enabled DOOO Done DOO Fault IDO DO Enable B001 Abilitazione gestione I 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 s001 Stato della uscita logica DOOO presente sul modulo CPU DO01 8001 Stato della uscita logica DO01 presente sul modulo CPU Enabled 6001 Blocco funzione abilitato Done 6001 Acquisizione input e gestione output eseguita Fault B001 Errore su acquisizione input e gestione output D100 8001 Stato dell ingresso logico DIOO presente sul modulo CPU D101 B001 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 Do00M00 e Do01M00 Lo delle variabili Di00M00 e Di01MO00 trasferito sulle due uscite logiche Definizione variabili Mame Type Address Array Init value Attribute
241. unzione 9985070 Errore versione blocco funzione 9985100 Il modulo indirizzato in Address non presente 9985110 8 Il modo acquisizione definito in Mode non corretto 9985200 6 Errore durante l esecuzione della lettura ingressi dal modulo periferico Mnl151b080 Pag 104 210 Programmazione IEC 61131 su SlimLine Leek 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 Il 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 Ho O S FB SysGetPhrD data A InpYalue LIDINT Auto Ho O vi Digital input value A Dummy HOOL Auto Mo FALSE n Dummy variable 4 Fong BOOL Auto Ma FALSE 2 FA done D FBFault BOOL Auto Ho FALSE S FB fault Esempio LD Ptp116a100 FBD ata Sys Get Phir Ol EN ENO o Address Done DIS LL ode Fault FADone FEFault Inps alue Esempio IL Ptp116a100 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 Pto116a100 Read Inp 0 to 7 from module with address 0 FBData Address 0 FBData Mode DI 8 LL FBData Execute FB InpValue FBData Value
242. unzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9991100 Lunghezza Code non corretta 9991110 5 Codice definito in Code non corretto 9991200 Non vi pi spazio per eseguire ulteriori funzioni protette 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 n Protection code accepted d Enabled BOOL Auto Mo FALSE Function enabled Esempio LD Ptp116a100 Sys F Code Accept EN ENC Enabled Cod abedetghijklmnoporet Weg dea CodeAccepted Esempio ST Check the protection code CodeAccepted SysPCodeAccept abcdefghijklmnopgrst Protection code accepted Mnl151b080 Pag 55 210 Programmazione IEC 61131 su SlimLine 3 Flat Library Version 7 8 6 SysGetCrc get CRC value Embedded 3 0 Questa 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 funzione l indirizzo del buffer di memoria Buf ed il numero di bytes ByteNr su cui See eseguire il calcolo del CRC Buf usint Indirizzo dell area di memoria su cui ese
243. ut Mnl151b080 Pag 169 210 5 Fleet Programmazione IEC 61131 su SlimLine 7 21 Funzioni ed FB supporto prodotti Hw Group eHwGSpLib La ditta della repubblica Ceca Hw Group http www hw group com produce dispositivi per Networking e prodotti per telecontrollo monitoraggio e gestione dati Tutti prodotti Hw Group dispongono di connettivita 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 170 210 Mnl151b080 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 21 1 STESnmpAcq STE termometer acquisition over SNMP FB eHwGSpLib SFRO60A000 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 ASSE ane aperto dalla funzione Sysfopen come socket UDP e posto in ascolto con il blocco funzione ae SysSktListen PeerlP Sensore PeerPort Su fronte attivazione del comando Acquire viene effettuata la lettura SNMP dal termometro as STE definito da indirizzo IP PeerlP su porta PeerPort Di default la porta SNMP la 161 Se il comando Acquire manten
244. ute read command every 100 mS Trigger CLK SysClock100 Mdb RdCmd Trigger Q Check if done or error and count them IF Mdb Done THEN Counter Counter t1 END IF IF Mdb Fault THEN Errors Errorst t1 END LE End of file Mnl151b080 Pag 128 210 Programmazione IEC 61131 su SlimLine 3 Flach Type Library Version 7 16 6 ModbusRTUSlave modbus Rtu slave FB PLCUtyLib SFR054A700 Sui sistemi SlimLine il protocollo modbus slave gi implementato dal sistema operativo pertanto e e sg ModbusRTU Slave 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 Enable Done utilizzare la gestione implementata nel sistema operativo File Fault Questo blocco funzione esegue la gestione del protocollo modbus slave possibile definire il DIRT terminale di I O su cui effettuare la comunicazione File pi i Buf Occorre definire il nodo modbus Node e l eventuale offset di indirizzo frame modbus Offset Si i a dala S ui Size comandi modbus ricevuti operano sul buffer di memoria il cui indirizzo definito in Buffer e la Ma dimensione in bytes definita in Size i 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 ques
245. uto 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 001 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 FLEP 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 001 Attivo per un loop di programma su fine lettura dati Fault B001 Attivo per un loop di programma se errore gestione Sensor1 REAL Valore di temperatura letto dal sensore 1 C Sensor2 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 dati da dispositivo STE 10013200 1 Errore lettura sensore 1 10013300 1 Errore lettura sensore 2 Mnl151b080 Pag 171 210 Programmazione IEC 61131 su SlimLine 3 Flap Esempi Nell esempio gestita l acquisizione dei due valori di temperatura da un termometro ST
246. uzione 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 9995100 Errore esecuzione funzione Esempi Su fronte attivazione ingresso Di00MO00 viene salvato il modo impostato sulla porta seriale COMO nella variabile Sm e viene attivata l uscita DoOOMO0 Definizione variabili Mame Type Address Array Init value Attribute Description 1 En FILEP Auto Mo O e Port COMO file pointer 2 Sm SYSSERIALMODE Auto Mo LU Serial mode data struct 3 Pulse BOOL Auto Mo FALSE S Pulse flag Esempio ST On input raising edge the serial mode is changed IF Di0OOMOO lt gt Pulse THEN Pulse D100M00 Pulse flag IF D100M00 THEN IF Fp NULL THEN Fp Sysfopen COM0 rw END IF DoQOM00 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 Mnl151b080 Pag 89 210 Programmazione IEC 61131 su SlimLine a Leek Type Library Version 7 12 3 SetSMode Set serial mode FB PLCUtyLib SFR054A000 Questo blocco funzione esegue impostazione parame
247. uzione 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 upgrade automatico Per effettuare l upgrade di un oggetto di una libreria linkata 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 upgrade baster rimuovere l 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 link della libreria ma di includere i singoli oggetti nel proprio progetto questo permette una pi semplice gestione degli upgrades Alcune librerie contengono una serie di oggetti Funzioni e blocchi funzione che sono di vasto impiego in questo caso consigliabile sempre linkare queste librerie Ecco l elenco delle librerie che si consiglia di linkare al progetto Libreria Codice Descrizione ePLCStdLib SFR053 000 Libreria standard 1EC61131 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 Mnl151b080 Pag 25 2
248. valore di errore FALSE Viene ritornato il numero salvato dalla precedente chiamata con Cmd TRUE La funzione ritorna UENIT 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 CPUModulelO Auto Mo O x YO on GPU module d EtrorMr DIMT Auto Mo i Error number Esempio LD CPUID CPUModulelO Enable Enabled FALSE cogo Dame Sys GetLastError TRUE boot Mnl151b080 Pag 54 210 Programmazione IEC 61131 su SlimLine a Elec Type Library Version 7 8 5 SysPCodeAccept accepts the protection code Function Embedded 4 0 Alcune funzioni di programma e o blocchi funzione possono essere protetti da un codice che SysP CodeAccept deve essere ordinato separatamente Per abilitare l esecuzione della funzione e o del blocco funzione occorre sbloccarlo definendone il codice con questa funzione Code 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 Pao TRUE Codice verificato ID relativo sbloccato FALSE Codice non verificato Codici di errore In caso di errore la f
249. variable to input CAL FBData Call the ByteToBit function block LD FBData b0 ST Di00M00 Transfer output bit to digital output Esempio ST Pto114a100 FBData In VarInp Do00M00 FBData b0 Do01M00 FBData b1 Mnl151b080 Call the ByteToBit function block Transfer output bit to digital output Transfer output bit to digital output Pag 43 210 Programmazione IEC 61131 su SlimLine Library 5 Fleet Version 7 7 5 ByteToWord Byte to word conversion ePLCUtyLib Questo blocco funzione permette di convertire due variabili BYTE in una variabile WORD MSB eyte MSB del valore in uscita Out LSB evr 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 FBData ByteTowword Auto Mo O FA Byte to word data d LSBByte BYTE Auto Mo 0 Valore byte MSB A MSBByte BYTE Auto Mo Valore byte LSB A Manu WORD Auto Mo U Variable output Esempio LD Ptp114a100 FAD ata Bute Toward EN ENO MSBEyte gt MSB Out LSBByte LsB Esempio IL Ptp114a100 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 EBData QUt ST VarOut Transfer out
250. viato verso la porta seriale COMO la stringa Ciao seguita da carriage return e line feed Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo O 7 File pointer Esempio LD Sysfopen SysFirstLoop EN COMO FHame Mod mg ode Sus Wart ori ott Gust lock O00 EN F Fp File Format Walue POR SshoO bran STRING TYPE s far amp dd Ciao si Mnl151b080 Pag 191 210 Programmazione IEC 61131 su SlimLine 3 Hey 8 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 S Rx string 2 File FILEP Auto Mo p File pointer A Hir GOLIOINT Auto Mo S String pointer Esempio ST Rx data from stream Ptr ADR RxString String pointer WHILE TO BOOL SysGetIChars File DO Ptr TO USINI 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
251. zione Fil Sysfopen ed il socket deve essere stato posto in condizione di listening dalla funzione Gs SysSktListen a n ata a 2 ZE Nel parametro TxData bisogna definire l indirizzo del buffer di memoria che contiene i _ peer dati da trasmettere ed in Size occorre definire il numero di bytes di dati da trasmettere PserPort parametri PeerlP e PeerPort indicano l indirizzo IP e la porta a cui saranno inviati i dati 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 File FILEP Flusso dati stream ritornato dalla funzione Sysfopen TxData usint Puntatore al buffer che contiene i dati da trasmettere Size unt Numero di bytes dati da trasmettere PeerlP stRING 15 Stringa di definizione indirizzo IP a cui trasmettere i dati PeerPort uint Porta a cui trasmettere i dati La funzione ritorna VINTO 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 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 Esempi Nell esempio inviando caratteri al sistema SlimLine sulla porta 1000 da una connessione UDP
252. zione 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 Mnl151b080 Pag 163 210 Programmazione IEC 61131 su SlimLine 3 Flap 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 sul cliente telnet dalla funzione Sysfputc Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP AUTO Mo U File pointer d oktlsn SysSktlisten Auto Mo U F Socket listen FA 3 SktDone BOOL Auto Mo FALSE E Socket done 4 SktConnect BOOL Auto Mo FALSE 7 Sacket connect 2 Dummy HOOL Auto Mo FALSE S Dummy variable E ChrsaAy BOOL Auto Mo FALSE 4 Characters available Esempio LD Ptp119a200 Sysfopen SysFirstLoop EN END FH menee a Fp hod tant ode SktLen Sys Skt listen SysFirstLoop SktDone P VIOV VQVO OG l OR0R0R0R00 Enable Done Fp_ gt File Fault SktConnect hylF Connect 1000 MyPort ClientlP 120 Lite Tm ClientF ort 100 FlushTm 250 RxSize 250 TxSize Sys GetlChars GE SktConnect EN Dummy ChrsAv Sysfputo aril EM ENO Mnl151b080

Download Pdf Manuals

image

Related Search

Related Contents

Philips HU4801/00 humidifier  ASSMANN Electronic AK-SAS-02 Serial Attached SCSI (SAS) cable  BENDIX PNU-101 User's Manual  PC56 User Manual - ProSoft Technology  User`s Manual Cinema Ribbon Bipole Loudspeaker  power_unit_vs3  Manuel d`utilisation  テーブル取扱説明書 テーブル組立説明書 - Garage  Artisan Technology Group is your source for quality new and  Télécharger le manuel  

Copyright © All rights reserved.
Failed to retrieve file