Home
Programmazione IEC 61131-3
Contents
1. Define Type Value Description AD_IDLE USINT 0 Idle mode AD_CURR_0_20 COMMON USINT 3 Current from 0 to 20 mA Common mode AD_CURR_0_20 DIFFER USINT 6 Current from 0 to 20 MA Differential mode AD_CURR_4_20 COMMON USINT 4 Current from 4 to 20 mA Common mode AD_CURR_4 20 DIFFER USINT 13 Current from 4 to 20 mA Differential mode AD_NI1000_ DIFFER USINT 12 Ni1000 sensor Celsius degree Differential mode AD_NI1000_DIN_43760 USINT 48 Ni1000 DIN_ 43760 standard Celsius degree AD_PT100 AMERICAN USINT 33 Pt100 American standard Celsius degree AD_PT100_ DIFFER USINT 10 Pt100 sensor Celsius degree Differential mode AD_PT100 DIN 43760 USINT 32 Pt100 DIN_43760 standard Celsius degree AD_PT100_IEC_60751 USINT 35 Pt100 IEC 60751 standard Celsius degree AD_PT100_ITS_90 USINT 34 Pt100 ITS 90 standard Celsius degree AD_PT1000_ AMERICAN USINT 41 Pt1000 American standard Celsius degree AD_PT1000_ DIFFER USINT 11 Pt1000 sensor Celsius degree Differential mode AD_PT1000_DIN_43760 USINT 40 Pt1000 DIN_43760 standard Celsius degree AD_PT1000_IEC_60751 USINT 43 Pt1000 IEC 60751 standard Celsius degree AD_PT1000_ITS_90 USINT 42 Pt1000 ITS 90 standard Celsius degree AD_RESISTOR_300 OHM USINT 110 Resistor up to 300 Ohm AD_RESISTOR_5000 OHM USINT 111 Resistor up to 5000 Ohm AD_THERMOCOUPLE B USINT 64 Thermocouple B type Celsius degree A
2. Baud rate Tempo Baud rate 300 112000 19200 600 56000 38400 1200 28000 57600 2400 14000 76800 4800 7000 115200 9600 3430 Done 6001 Attivo per un loop alla ricezione di comando modbus Fault B001 Attivo per un loop su errore ricezione comando modbus Errors uDINT Numero di errori riscontrati Viene incrementato ad ogni nuovo errore raggiunto il valore massimo il conteggio riparte da 0 Mnl151c070 Pag 145 288 Programmazione IEC 61131 3 Eet Comandi supportati Il blocco funzione supporta solo alcuni comandi previsti dal protocollo modbus i comandi supportati sono Descrizione Read coil status Massimo 250 coils Read input status Massimo 250 coils Read holding registers Massimo 125 registri Read input registers Massimo 125 registri Force single coil Preset single register Loopback diagnostic test Force multiple coils Massimo 250 coils Preset multiple registers Massimo 125 registri Read memory bytes User function Massimo 250 bytes Write memory bytes User function Massimo 250 bytes Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore In caso di eccezione su comando modbus viene riportato il codice di errore ma non viene attivata l uscita Fault 10038010 Valore di File non definito 10038050 Errore di timeout esecuzione 10038060 Errore esecuz
3. 0 0 FALSE 3160 WidTobb WordToOouble Attribute 5 Fleet 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 271 288 Programmazione IEC 61131 3 Eet 11 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 l Il carriage return codice 16 0D possibile definirlo sia come 0D che come r Riporto tabella esplicativa Sequenza Significato Esadecimale Esempio Carattere 16 24 paid 5 for this Apostrofo 16 27 Enter Y for YES Line feed 16 0A next I line Carriage return 16 0D Hello r New line 16 0DOA This is a line n New page 16 0C last line p first line Tabulazione 16 09 name tsize tdate
4. Programmazione IEC 61131 3 3 Flich Invio di un messaggio a pi numeri Molte volte succede di dover inviare su un evento Esempio ingresso digitale diversi messaggi SMS ognuno con il proprio testo a diversi numeri telefonici Il blocco funzione SMSSend permette la gestione dell invio sullo stesso evento di pi messaggi ogni messaggio contraddistinto dal numero di telefono e dal testo del messaggio Nell esempio gestito l invio di un messaggio a pi numeri di telefono Come si pu vedere attivando l ingresso digitale Di00MO00 verranno inviati due messaggi a due diversi numeri di telefono E possibile aggiungere altri rami con il blocco funzione SMSSend ognuno con il proprio messaggio e numero di telefono sempre attivati da Di00M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Rssi LISINT Auto Kl S RSS value d ModemiD UDINT Auto Mo Modem ID 3 CLIP STRING Auto 16 i CLIP received number 4 Operator STRING Auto 16 i Operator value 5 En FILEP Auto Mo S Serial pointer E Modem Modomt omg vi Auto Mo P Modem core FA 7 GMSTestl ModemSmMSSend v2 Auto Mo n Modem SMS send FA H GhSTestz ModemSmMSSend v2 Auto Mo S Modem SMS send Fe g SMode setsilode Auto Kl serial mode FA Esempio LD Ptp118b100 MultipleSMSSend Sysfopen SysFirstLoop st como LI Fp SMode SetsMode SysFirstLoop e esr ENO Fe P Done 2600 Baudrate Fault H Parity _8 DataBits _1__ St
5. Programmazione IEC 61131 3 ELSIST S r l Via G Brodolini 15 Z I Internet http www elsist it TEL 39 0142 451987 Sistemi in elettronica E posa abi Email elsist elsist it FAX 39 0142 451988 INDICE EE Ee ie e E e li aaa 7 2 lt Risorse del SISMA EE 8 2 Architettura Memon EE 9 22 Momona di Dack p RETA isesi rangeri aaa EEO Ea 10 Z9 Abre SSO Alda MOMON dsr e aaacasa 11 EECHER A E E E E EE 12 E AIR Te ele EE 12 3 2 SYSSERIALMODE modo comunicazione porta serale 12 3 3 SYSCANMESSAGE messaggio CAN ENEE 12 NAM MAIO UMMA EE DEEN 13 4 1 Variabili sola lettura System variableS ee 14 4 2 Variabili lettura e scrittura System vanables e 16 Ao SNe UII OOO PONO O A 17 SFIZIO NE E 1 ae Ara 18 5 1 Variable types definition definizione tipo variabili i 18 5 2 Task ID definition identificatore di task DC 18 5 3 TermlO definition definizioni per terminale di I O 19 5 4 FSeek origin definition definizioni per seek SU file e 19 5 5 Serial mode definition definizioni modo serale ceece cece ee ececeeeeaeaececeaeaeceeeeaeseceeeeaeeeseeneavaeneeatanaeees 19 5 6 CAN bit rate definition definizioni bit rate CAN 19 5 7 Digital input mode definizioni modo acquisizione ingressi doa 20 5 8 Digital output mode definizioni modo gestione uscite dotal 20 5 9 Analog to digital mode definizioni modo acquisizione ingr
6. 16 hh ABCD 41 42 43 44 Ecco un esempio di utilizzo della funzione SysVarfprintf per definire oltre ai caratteri stampabili anche i caratteri non stampabili ed inviarli verso lo stream di uscita In questo esempio viene inviato verso la porta seriale COMO la stringa Ciao seguita da carriage return e line feed Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo 0 S 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 Mnl151c070 Pag 272 288 Programmazione IEC 61131 3 3 Flich 11 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 RxString STRING Auto 32 n Rx string 2 File FILEP Auto Mo File pointer A Ptr OWI SINT Auto Mo ii String pointer Esempio ST Rx data from stream Ptr ADR RxString String p
7. DTROFfTime Syst puto SysCloc1000 Fe TO_INT Ch Fil 16 41 Fp A Mnl151c070 Description ENO Fp Dummy ENO ShiodeOk Done SModeFault Fault ENO Pag 102 288 Programmazione IEC 61131 3 3 Flich Type Library Version Function Embedded XTarget 07 0 Questa funzione ritorna lo stato del segnale CTS della porta seriale connessa al parametro SysGet Serial CTS File precedentemente aperto dalla funzione Sysfopen e Parametri funzione 7 9 4 SysGetSerialCTS get serial CTS signal status File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna Ora FALSE Segnale CTS non attivo TRUE Segnale CTS 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 definito 9993990 Non implementata nel simulatore Esempi Lo stato del segnale CTS della porta seriale COMO appoggiato sull uscita Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description ela FILEP Auto Mo O 7 File pointer Esempio LD Systopen SysFirstLoop EN ENO ___________ COMO FHame Mod wo ode Sys Get Serial CTS Doti Mij Do MOO Mnl151c070 Pag 103 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 9 5 SysSetSerialDTR set DTR signal status Function Embedded XTarget 07 0 Questa funzione impo
8. Description Byte to bits Byte to bits Byte to bits Byte to bits Word to bytes Word to bytes Double to word Hit status Value to convert Pag 270 288 Programmazione IEC 61131 3 11 5 Comprimere 32 BOOL in DWORD Ecco come utilizzando i blocchi funzione BitToByte ByteToWord WordToDouble sia possibile comprimere 32 variabili BOOL in una variabile DWORD Definizione variabili Name BiToByHL BtToByLH BtToBYLL ByToWdH DT od WidToDb Value Bit cd oo ol Or cm Gi Pi Type BitToByte BitToByte BitToByte ByteToWord ByteTo Word WordToDouble DWORD BOOL Address Array Auto Mo Auto No Auto Mo Auto Mo Auto Mo Auto Mo Auto Mo Auto 0 31 Esempio FBD Ptp114a200 FBD_DWCompress BtT oByHH BitToEyte Bitz4 gt b 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 Mnl151c070 Out ByT oudH EyteToWyord Du T our d Byte Toward init value
9. 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 Di00M00 il counter incrementato di 1 quando il valore di conteggio raggiunge il valore di preset il conteggio si arresta e viene attivata l uscita del counter QU che attiva l uscita digitale D000MO00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di02M00 che resetta il counter Sul fronte di attivazione dell ingresso digitale Di01M00 il counter decrementato di 1 quando il valore di conteggio si azzera il conteggio si arresta e viene attivata l uscita del counter QD che attiva l uscita digitale Do01M00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di03MO00 che presetta il counter Mnl151c070 Pag 44 288 Programmazione IEC 61131 3 Definizione variabili Mame Type Address Array 1 FB_CTUD CTUD Auto Mo 2 OQutvalue INT Auto No Esempio LD PTP1154100 CTUD_LD 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 Attribu
10. Offset Address Parametri funzione Offset unt Offset locazione memoria La funzione ritorna DINE 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 Mame Type Address Group Array init value Attribute Description 1 VYalueToPrint UDINT D100 8 Mo Value to print Definizione variabili Name Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo O E File pointer d AddOts DBT O0Add Offs et Auto Mo 0 A Address offset calculation Esempio LD Sysfopen SysFirstLoop EN ENC SS COMO FH ame Ze en Mode ADD oj iila i e Sec WalueToPrint WalueToPrint Sys Yartprintf SysClock1000 H o F AddOfs SG gt DB A100 Add Offset 8 value is dBrBn LE EN ENO UDINT_TYPE a Yardd Mnl151c070 Pag 139 288 Programmazione IEC 61131 3 Library Version 7 13 2 BLINK blink command PLCUtyLib SFR054A000 Questo blocco funzione gestisce una uscita lampeggiante con tempo di ciclo definibile Attivando l ingresso ENABLE l uscita OUT inizia a lampeggiare con tempi di ciclo alto e basso sub definiti ENABLE OUT TIMELOW TIMEHIGH ENABLE oot Abilitazione blocco funzione attivandolo viene gestita l uscita OUT lampeggiante Disattivandolo l uscita OUT viene resettata
11. COMO Porta seriale RS232 Su modulo CPU COM Porta seriale RS232 Su modulo CPU COM2 Porta seriale RS485 Su modulo CPU PCOMx y Porta seriale y sul modulo di estensione x PCOMO 2 definisce porta 2 sul modulo 0 Mnl151c070 Pag 8 288 Programmazione IEC 61131 3 2 1 Architettura memoria La memoria del sistema cos suddivisa 5 Flee 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 LAN 32 Bytes Ingressi logici modulo 11 R X12 32 Bytes Ingressi logici modulo 12 R IX13 32 Bytes Ingressi logici modulo 13 R X14 32 Bytes Ingressi logici modulo 14 R IX15 32 Bytes Ingressi logici modulo 15 R IX255 32 Bytes Ingressi logici modulo CPU R QXO 32 Bytes Uscite logiche modulo 00 RAV QXI 32 Bytes Uscite logiche modulo 01 R W QX2 32 Bytes Uscite logiche modulo 02 R W QX3 32 Bytes Uscite logiche modulo 03 R W QXA 32 Bytes Uscite log
12. 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 En FILER AUTO No U Por COMO file pointer Bi C h INT Auto Mo U i Character read Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here execute the received characters echo IF Fp lt gt NULL 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 Mnl151c070 Pag 82 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 7 8 SysGetOSpace get output available space on file Questa funzione ritorna lo spazio disponibile per la scrittura dati sul flusso dati stream indicato 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
13. LOG EXP SIN COS TAN ASIN ACOS ATAN ADD MUL SUB Mnl151c070 ANY_NUM ABS ANY_NUM Calcola il valore assoluto di un numero Result ABS 10 5 Result is 10 5 ANY_REAL SQRT ANY_REAL Calcola la radice quadrata di un numero Result SQRT 9 0 Result is 3 0 zi ANY_REAL LN ANY_REAL Calcola logaritmo naturale Base e 2 71828 di un numero Result LN 10 0 Result is 2 30259 ANY_REAL LOG ANY_REAL Calcola logaritmo Base 10 di un numero Result LOG 10 0 Result is 1 0 ANY_REAL EXP ANY_REAL Calcola numero elevato e 2 71828 Result EXP 1 0 Result is 2 71828 ANY_REAL SIN ANY_REAL Calcola il seno di un angolo in radianti Result SIN 1 57 Angle is 90 Result is 1 0 ANY_REAL COS ANY_REAL Calcola il coseno di un angolo in radianti Result COS 3 1416 Angle is 180 Result is 1 0 ANY_REAL TAN ANY_REAL Calcola la tangente di un angolo in radianti Result TAN 0 7854 Angle is 45 Result is 1 0 ANY_REAL ASIN ANY_REAL Calcola l arcoseno di un angolo in radianti Result ASIN 1 0 Result is 1 5708 zi ANY_REAL ACOS ANY_REAL Calcola l arcocoseno di un angolo in radianti Result ACOS 1 0 Result is 3 14159 ANY_REAL ATAN ANY_REAL Calcola l arcotangente di un angolo in radianti Result ATAN 1 0 Result is 3 14159 ANY_NUM ADD ANY_NUM ANY_NUM Esegue somma tra due numeri Resultr A
14. SFR054A000 Byte Toward MSE a LSB Out Pag 51 288 Programmazione IEC 61131 3 Library el Version 7 4 6 WordToByte Word to byte conversion l ePLCUtyLib Questo blocco funzione permette di convertire una variabile WORD in due variabili BYTE IN worb Variabile da convertire MSB evm MSB del valore in ingresso LSB evt LSB del valore in ingresso Esempi Le variabile Varlnp 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 FBData WordToByte Auto Mo U FA Word to byte data Esempio LD PTP114A100 LD_WordToByte FED ata Word To Byte EN ENO Varlnp In Esempio IL PTP114A100 IL_WordToByte LD VarInp ST FBData In Transfer the variable to input CAL FBData Call the WordToByte function block LD FBData MSB ST MSBByte Transfer the MSB output to variable LD FBData LSB ST LSBByte Transfer the LSB output to variable Esempio ST PTP114A100 ST_WordToByte FBData In VarInp Transfer the variable to input FBData Call the WordToByte function block MSBByte FBData MSB Transfer the MSB output to variable LSBByte FBData LSB Transfer the LSB output to variable Mnl151c070 SFR054A000 WordToByte n
15. echo Ok exit gt Come si vede lo script invia una mail tramite il comando mail i cui campi sono valorizzati dai parametri posti in GET alla richiesta Lo statement _REQUEST To valorizzato con il testo definito in To REQUEST Subject valorizzato con il testo definito in Subject e cos via Come si vede possibille passare allo script tutti i valori che si desiderano Il valore di ritorno dallo script definito con lo statement echo verr trasferito nel buffer RxD del nostro programma e quindi possibile operare su di esso con le istruzioni di gestione stringa Mnl151c070 Pag 179 288 Programmazione IEC 61131 3 Get 7 16Funzioni ed FB gestione One Wire ePLC1WireLib Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie La rete da campo 1 Wire un protocollo standard basato su di un solo filo di comunicazione come indica lo stesso nome che include numerosi dispositivi e sensori frequentemente utilizzati nel campo dell automazione industriale e domestica dispositivi sono interconnessi da soli due fili uno per la massa ed uno per il segnale e l alimentazione su questi due fili possono essere collegati tutti i dispositivi in rete scegliendo la disposizione fisica necessaria Il protocollo 1 Wire dotato di tutte le modalit di comunicazione che consentono di ottenere un elevato trasferimento dati ed
16. ie Spmbol location FED SysDateToETime ST_SysETimeToDate ST FED_SysETimeToDate ST_Sysfclose ST_ FED_SysGet nlnp ST Sustgete ST FED SushetPhrD ST_SysFIBfClear ST FED SusSetanUut ST_SysFUBfClear ST FED SyaSetPhrD0O ST Systopen IL SyeD ateT oF Time ST Systpute IL just T imeT oD ate ST Sustread IL_Sysbet4nlnp ST_SysGetAnlnp IL_SysGetPhrDI ST Sysbetlre IL SyeSet4nQ0 ut ST_SyzGetPhrDI IL_SysSetPhrDO ST_SyzGetHandom ST_SysDateToETime ST_SysGetSeralkWode lt Evidenziando gli oggetti e agendo sul tasto Import Object gli oggetti selezionati saranno inclusi nel proprio progetto Oltre ai programmi possibile importare dalla libreria anche le variabili In questo modo si potranno importare tutte le definizioni degli I O logici come indicato nella tabella di definizione Project command eee To import a PLC object select the tab with the object type select P the object and press the Import object button Una volta inclusi nel progetto gli esempi sar possibile utilizzarli direttamente oppure con con semplici operazioni di cut and paste incollare parti di codice sorgente dal progetto di esempio Project xX E IL _SwsETimeT E IL_SvsSetAnOut Ei Project 2 Definitions Mame Type Address Array Init value Attribute Description 3 ES 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 See
17. 10043 10043000 10043999 SpyDataFile spy data and stores them on a file 10044 10044000 10044999 BroadcastDataSend broadcast data send 10045 10045000 10045999 StrainGaugeAcg strain gauge acquisition 10046 10046000 10046999 HMIbuiltinMessages HMI built in messages 10047 10047000 10047999 HMIBuiltinNetlog Netlog HMI management Mnl151c070 Pag 286 288 Programmazione IEC 61131 3 13 5 Tabella codici Ascii 13 5 1 Tabella codici ASCII standard Mnl151c070 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 block Cancel End of medium substitution Escape File separator Group separator Record separator Unit separator D Oo J Oh In BW hw PrP Oo e reo Hee SG CG vi DD Om Oo SB SOP CD H Doum DO D ee 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 287 288 Programmazione IEC 61131 3 3 Eet 13 5 2 Tabella codici ASCII estesi te Ur us Me CC vi E e Be ir fs vi fila E o I F Al FS at 7a 4 H quo a TD ga hk pr ke o i i a n A L E IL dd E 0O O Di
18. 4 Parity STRING MB100 2064 1 DataBits B USINT 5 DTRMng USINT MB100 2068 No Parity MN STRING 6 DTROn WINT AMW 00 2070 No DTRMng 3 USINT 7 DTROff UINT MW100 2072 No DIROn 200 UINT DTROff g 2 S http 192 168 0 162 Storage COMPort htm ge amp SlimLine COMPort Port selection COM 19200 N DIR Timed xs DTR Om 200 DTR of 100 Mnl151c070 Pag 266 288 Programmazione IEC 61131 3 3 Flich 10 7 1 Funzioni javascript Per la gestione della pagina sono utilizzate alcune funzioni javascript Set Field Value Imposta il campo text di name Field con il valore Value Choose Field Value Seleziona l oggetto select di name Field sull opzione il cui valore corrisponde a Value SetValues Eseguita al caricamento della pagina esegue l aggiornamento di tutti gli oggetti presenti Sorgente funzioni javascript di pagina lt script language javascript gt function Set Field Value document MyForm Field value Value function Choose Field Value for 1 0 i lt document MyForm Field options length i if document MyForm Field options i value Value document MyForm Field selectedIndex 1 function SetValues Choose Port lt s STRING 2048 gt Choose Baudrate lt d UDINT 2056 gt Choose DataBits lt d USINT 2060 gt Choose Parity lt d STRING 2064 gt Choose D
19. 7 7 2 Sysfclose file close Function Embedded XTarget 07 0 Questa funzione permette la chiusura del collegamento alla risorsa indicata dal parametro File SIAE precedentemente aperto dalla funzione Sysfopen ae In caso di errore chiusura la funzione ritorna EOF Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna SR 0 Se esecuzione corretta EOF In caso di errore Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9973100 Terminale di I O usato in task fast o slow 9973200 Errore nella chiusura della risorsa 9973990 Non implementata nel simulatore 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 Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo R Port COMO file pointer Esempio ST PTP116A100 ST_Sysfclose Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer Do00M00 Fp lt gt NULL Output is set if port is opened END IF Here the COMO port is closed IF Fp lt gt NULL THEN Do01M00 Sysfclose Fp lt gt EOF Output is set if port is closed zi END IF Mnl151c070 Pag
20. Byte address Byte address Byte area identifier Word area identifier Double word area identifier MB100 0 MB100 0 LSB MSB MW100 0 MB100 0 MB100 1 LSB MSB MD100 0 MB100 0 MB100 1 MB100 2 MB100 3 Attenzione SlimLine basato su architettura ARM e questo tipo di architettura assume che Le variabili a 16 bits WORD INT UINT siano allocate in memoria ad indirizzi divisibili per 2 Quindi una variabile a 16 bits potr assere allocata ad esempio ad indirizzo MW100 32 ma non ad indirizzo MW100 33 Le variabili a 32 bits DWORD DINT UDINT REAL siano allocate ad indirizzi divisibili per 4 Quindi una variabile a 32 bits potr assere allocata ad esempio ad indirizzo MD100 32 ma non ad indirizzo MD100 33 MD100 34 MD100 35 Mnl151c070 Pag 11 288 Programmazione IEC 61131 3 Eet 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 mo
21. 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 Mnl151c070 Pag 77 288 Programmazione IEC 61131 3 Type Library Version 7 7 4 Sysfputc put character to file Function Embedded XTarget 07 0 Questa funzione invia un carattere sul flusso dati stream indicato dal parametro File Sysfput precedentemente aperto dalla funzione Sysfopen vsfputo D La funzione ritorna il carattere scritto sullo stream In caso di errore o se lo stream non accetta il Ee dato la funzione ritorna EOF Per essere certi che vi sia spazio sullo stream per accettare il carattere possibile utilizzare la funzione SysGetOSpace che ritorna lo spazio disponibile Parametri funzione Ch cnt Carattere da inviare sul flusso dati File rier Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna EEN Carattere scritto sul flusso di dati EOF In caso di errore o se lo stream non accetta il dato Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9971100 Terminale di I O usato in task fast o slow 9971990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue l eco dei caratt
22. Transfer output bit to digital output Mnl151c070 Pag 50 288 Programmazione IEC 61131 3 Library 7 4 5 ByteToWord Byte to word conversion el Version ePLCUtyLib Questo blocco funzione permette di convertire due variabili BYTE in una variabile WORD MSB eym MSB del valore in uscita Out LSB eyre LSB del valore in uscita Out Out woro Valore in uscita Esempi Le due variabili MSBByte e LSBByte sono uniti nella variabile VarOut in uscita Definizione variabili Mame Type Address Array Init value Attribute Description 1 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 LD_ByteToWord FAD ata Bute Toward EN ENO MSBByte gt _ MSB L ppwte LSB Out Esempio IL PTP114A100 IL_ByteToWord LD MSBByte ST FBData MSB Transfer the MSB variable to input LD LSBByte ST FBData LSB Transfer the LSB variable to input CAL FBData Call the ByteToWord function block LD FBData Out ST VarOut Transfer output to variable Esempio ST PTP114A100 ST_ByteToWord FBData MSB MSBByte FBData LSB LSBByte FBData VarOut FBData Out Mnl151c070 Transfer the MSB variable to Transfer the LSB variable to Call the ByteToWord function block zi Transfer output to variable input input
23. lt head gt lt body gt DB100 10 amp nbsp lt da DINT 10 gt lt br gt lt form id MyForm name MyForm method post action DPage htm gt DB100 12 amp nbsp lt input name UINT 12 type text size 5 maxlength 10 value lt dqd UINT 12 gt gt amp nbsp lt input type submit id MyButton value Save gt lt form gt lt body gt lt html gt Salvando il testo riportato in un file esempio DPage htm e trasferendo il file nella directory Storage di SlimLine sara possibile visualizzare la pagina web risultante semplicemente digitando nel proprio browser l indirizzo della pagina EN DB100 10 Value 0 DB100 12 Value 22 Come si vede nella riga superiore viene visualizzato il valore della variabile PLC DB100 10 mentre impostando un valore nella casella di testo della riga inferiore e agendo sul tasto Save sar possibile impostare il valore della variabile PLC DB100 12 Naturalmente in una pagina web possono essere visualizzate e possono essere impostate tutte le variabili desiderate si consiglia comunque di non esagerare con il numero di variabili preferibile suddividerle in pi pagine Mnl151c070 Pag 260 288 Programmazione IEC 61131 3 Eet 10 3 Formato TAGs Come si visto in una pagina dinamica parte del contenuto viene generato sul momento dal server Http Il modulo CPU SlimLine vediamo quali sono i meccanismi per definire le TAGs da visualizzar
24. 7 2 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 is impostato PT in mS indipendentemente dallo stato dell ingresso IN l uscita Q si azzera mentre il tempo iN F in uscita su ET si azzera solo se ingresso IN non pi attivo ESP IN B001 Ingresso timer attivandolo si attiva l uscita Q ed inizia il conteggio dopo il tempo definito in PT indipendentemente dallo stato dell ingresso IN l uscita Q si azzera PT DINT 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 Do00M0O0 ed il valore di tempo nella variabile VarOut inizia il conteggio Raggiunto il tempo definito 5 secondi l uscita Do00MO0O0 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 Di0OMO0O durante la temporizzazione non si ha
25. 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 Mnl151c070 Pag 33 288 Programmazione IEC 61131 3 3 Flich 7 1 Funzioni ed FB per gestione Flip Flop Library Version 7 1 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 FTR CLK soot 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 D000M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 EE Thi F_TRIG Auto Mo 8 F_TRIG Falling edge trigger function block Esempio LD P7TP115A000 F_TRIG_LD ER F_TRIG F_TRIG COO MOO Doti M d CLE O Esempio IL CAL FBF TRIG Call the F TRIG function block LD Di00M00 ST FBF TRIG CLK Transfer the dig
26. 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 Print the variable values merging them into a single string NrOfChars sysVvarsoiprince ADR Result 12 Var 0 d UDINT TYPE ADR Var 0 NrOfChars SysVarsnprintf ADR Result LEN Result 13 Var 1 d UDINT TYPE ADR Var 1 End of file Mnl151c070 Pag 115 288 Programmazione IEC 61131 3 Type Library Version 7 11 6 SysVarsscanf extracts values from string Function Embedded XTarget 08 0 Questa funzione legge la stringa String e ne interpreta il contenuto basandosi sul parametro Rees 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 VarAdd Parametri funzione String usint Pointer alla stringa da leggere 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 VarTy
27. Errore tipo dati TRUE Conversione eseguita Esempi Il valore presente nell array LEArray 1 2 3 4 viene convertito nella variabile Variable eseguita la conversione la variabile avr il valore 16 01020304 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Variable DWORCE AUTO Mo U i Variable d LEArray SINT Auto 0 3 1 2 3 4 8 Little endian array Esempio LD LEArrayTo War ADR DWORD TYPE a Destination Variable E Source LE Array Mnl151c070 Pag 57 288 Programmazione IEC 61131 3 Type Library Version Function ePLCUtyLib SFR054B220 7 4 12 BEArrayToVar Big endian array to variable conversion Questa funzione acquisisce il valore da un array big endian Source e lo trasferisce nella BEArrayTo ar variabile di destinazione Destination in base al tipo Type di variabile definito Type Destination a Source Parametri funzione Type sint Tipo di variabile destinazione come definito nella tabella Variable types definition Destination usint Indirizzo variabile di destinazione Source usint Indirizzo array sorgente La funzione ritorna BOOL FALSE Errore tipo dati TRUE Conversione eseguita Esempi Il valore presente nell array BEArray 4 3 2 1 viene convertito nella variabile Variable eseguita la conversione la variabile avr il valore 16 01020304 Definizione variabili Mame Type Address Array Init
28. Massimo 125 registri Read input registers Massimo 125 registri Preset single register Force multiple coils Massimo 250 coils Preset multiple registers Massimo 32 registri Read memory bytes User function Massimo 250 bytes Write memory bytes User function Massimo 250 bytes Address int Indirizzo di allocazione variabili su sistema slave In accordo alle specifiche modbus l indirizzo inviato nel frame dati Address 1 Range da 16 0001 a 16 FFFF Points usin Numero di variabili consecutive su cui opera il comando Range da 1 a 32 Buffer usint Indirizzo buffer dati letti o da scrivere Mnl151c070 Pag 142 288 Programmazione IEC 61131 3 Eet IF Time upint Tempo ricezione caratteri uS se comunicazione su porta seriale il tempo deve essere definito in base al baud rate Nel caso di comunicazione su rete ethernet possibile definire il valore minimo Baud rate Tempo Baud rate 112000 19200 56000 38400 28000 57600 14000 76800 7000 115200 3430 Timeout unt Tempo massimo esecuzione comando espresso in mS Se il comando non termina nel tempo definito viene abortito ed attivata l uscita Fault Delay uint Tempo di pausa dopo l esecuzione del comando modbus espresso in mS Done 6001 Si attiva al termine della esecuzione comando Ok oo Attivo per un loop se esecuzione comando corretta Fault B001 Attivo per un loop se e
29. Mnl151c070 Pag 265 288 Programmazione IEC 61131 3 3 Hey 10 7 COMPort parametri comunicazione seriale Ecco un esempio di come gestire la visualizzazione e l impostazione dei parametri di comunicazione seriale da pagina web Per la selezione della porta baud rate numero bit dato tipo di parit e modo di gestione del segnale DTR si sono utilizzati oggetti select L oggetto select permette di selezionare il valore desiderato tramite una lista di valori Per le definizione dei tempi di ritardo sul segnale DTR si sono utilizzati degli oggetti text che permettono di visualizzare ed impostare valori Richiamando la pagina vengono visualizzati i valori corrispondenti alle impostazioni definite nelle variabili dello SlimLine valori sono stati appoggiati su di un area ritentiva per mantenerne il valore impostato anche allo spegnimento del sistema Definendo nuovi valori ed agendo sul tasto Preset COM port i valori saranno trasferiti nelle variabili dello SlimLine e la pagina verr visualizzata con i nuovi valori definiti Ecco come si presenta la pagina web stata visualizzata sulla finestra del programma LogicLab che visualizza in debug i valori delle variabili Tit SerialEcho gt Global variables Watch hx Name Type Address Group Array GE b 1 Port STRING MB100 2048 7 Symbol Value Type 2 Baudrate UDINT MD100 2056 Mo Port COM STRING 3 DataBits USINT MX100 2060 No Baudrate 19200 UDINT
30. Mo Mo Mo Mo Mo Array Init value FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE Description Input 00 Module address 0 Input 01 Module address 0 Input 02 Module address U Input 03 Module address O Input 04 Module address 0 Input 05 Module address U Input 06 Module address 0 Input 07 Module address O Input 08 Module address O Input 09 Module address 0 Input 10 Module address U Input 11 Module address 0 Output 00 Module address 0 Quiput 01 Module address U Output 02 Module address O Qutput 03 Module address 0 Qutput 04 Module address 0 Quiput 05 Module address 0 Qutput 06 Module address 0 Qutput 07 module address 0 Pag 278 288 Programmazione IEC 61131 3 3 Flee 12 3 Esempi forniti con LogicLab Nella distribuzione del programma LogicLab sono inseriti alcuni programmi di esempio i programmi sono forniti in codice sorgente e possono essere trasferiti sul sistema target e provati Nell finestra principale di LogicLab sotto la voce Example projects vi il link ai vari progetti Per poter utilizzare un esempio sul proprio sistema target occorre definire il sistema con il quale si st operando dal men Project Select target StartStop LogicLab CAStartStop StartStop ppjs LDStartStop Ti File Edit View Project On line Debug Scheme Variables Window Tools Help BEB oo Ne
31. REAL Codici di errore Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione dello strain gauge Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito 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 acquisizione analogica Analog to digital mode Valore del coefficiente di filtro acquisizione Nr Valore riferimento utilizzato per la taratura del fondo scala dello strain gauge Nr Valore di fondo scala dello strain gauge Caratteristica dello strain gauge Nr Valore del rapporto mv V dello strain gauge Caratteristica dello strain gauge Nr Indirizzo variabile di appoggio valore di calibrazione offset Deve essere RETAIN Indirizzo variabile di appoggio valore di calibrazione fondo scala Deve essere RETAIN Blocco funzione abilitato Dato acquisito viene attivato al termine della acquisizione strain gauge Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Ritorna il valore di acquisizione espresso nella unit utilizzata per definire FSReference e SGaugeFullScale In caso di errore viene attivato per un loop Fault e con SysGetLastError possibile rilevare il codice di errore 10045100 Valore di Mode acquisizione non corretto Mnl151c070 Pag 137
32. TIMELOW wont Definisce il tempo in cui l uscita OUT rimane nello stato logico low espresso in mS TIMEHIGH wont Definisce il tempo in cui l uscita OUT rimane nello stato logico high espresso in mS OUT 8001 Stato uscita lampeggiante Esempi Viene impostato un lampeggio con 100 mS di tempo On e 1000 mS di tempo Off Attivando l ingresso digitale Di00M00 l uscita digitale Do00M00 lampeggia con i tempi definiti Disattivando l ingresso digitale Di0OMO0 l uscita digitale DoOOMOO si azzera immediatamente Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBeBLIMK BLINK Auto Mo U S eBLINE Blink out function block Esempio LD PTP14A100 LD_BLINK FB_BLINK BLINK Diddii e ENABLE OUT Do Oh 100 TIMEHIGSH Esempio IL PTP14A100 IL_BLINK CAL FB BLINK Call the BLINK function block LD Di0OMOO ST FB BLINK ENABLE Transfer the digital input to enable input LD 1000 ST FB BLINK TIMELOW Set the time low LD 100 ST FB BLINK TIMEHIGH Set che time high LD FB BLINK OUT ST Do00M00 Copy FB output to logic output Esempio ST PTP14A100 ST_BLINK FB BLINK TIMELOW 1000 TIMEHIGH 100 Call the BLINK function block FB BLINK ENABLE Di00M00 Transfer the digital input to FB enable Do00M00 FB BLINK OUT Transfer the FB output to digital output Mnl151c070 Pag 140 288 Programmazione IEC 61131 3 Library Version
33. a a r FA i Ra E H 4 E k b o O O eo ss zl Mnl151c070 Pag 288 288
34. 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 10019050 Errore di timeout esecuzione 10019060 Errore esecuzione 10019100 19 Errore in ricezione frame Carattere errato lunghezza errata 10019150 Errore in ricezione frame LRC modbus errato 10019200 1 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 03 Illegal data value comando ricevuto ha campo dati fuori range 10019504 Eccezione 04 Failure in associated device comando ricevuto contiene imprecisioni Mnl151c070 Pag 240 288 Programmazione IEC 61131 3 Get Type Library Version FB eObsoleteLib SFRO66A000 8 1 6 ModbusAsciiSlave modbus Ascii slave Questo blocco esegue la gestione del protocollo modbus slave Ascii possibile definire il i e ModbusAsciiSlave terminale di I O su cui effettuare la comunicazione File Enable Done File Fault Node Errors Offset Buffer Occorre definire il nodo modbus Node e l eventuale offset di indirizzo frame modbus Offset comandi modbus ricevuti operano sul buffer di memoria il cui indirizzo definito in Buffer e la dimensione in byt
35. esempio parametri errati Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9957005 Funzione non supportata 9957990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue l impostazione del controller CAN con bit rate a 125 Kbit Tutti pacchetti in arrivo sono ricevuti dal controller Definizione variabili Mame Type Address Array Init value Attribute Description 1 D u rmn ra BHOOL Auto Mo FALSE ig Dummy variable Setok BOOL Auto Fo FALSE Na TAN set mode Ok Esempio LD Sys CAN Set Mode EN CAN 125KBIT p ae 1e 00000000 SH 1e 00000000 _ Mak Mnl151c070 Pag 106 288 Programmazione IEC 61131 3 Type Library Version 7 10 2 SysISCANRxTxAv checks if CAN Rx or Tx is available Function Embedded XTarget 07 0 Questa funzione controlla Svsls CANR Teto Select FALSE Se vi almeno un messaggio nel buffer di ricezione CAN Select Select TRUE Se vi spazio per un messaggio nel buffer di trasmissione CAN La funzione ritorna TRUE se la condizione selezionata vera Parametri funzione Select 800 FALSE Se vi almeno un messaggio nel buffer di ricezione CAN TRUE Se vi spazio per un messaggio nel buffer di trasmissione CAN La funzione ritorna ROSE TRUE Condizione selezionata vera Codici di errore In caso di errore la funzione torna FALSE e con SysGetL
36. f f i x f en ModemiD Fault Alla ricezione di un messaggio SMS se nel testo del messaggio presente la stringa definita in Command si attiva per un loop di programma l uscita Done all uscita CLIPNumber della FB ModemCore ritornato il numero di telefono da cui il messaggio stato ricevuto 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 unnn ID modem fornito in uscita dalla ModemCore Cin Bool 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 Mnl151c070 Pag 247 288 Programmazione IEC 61131 3 3 Get Type Library Version 8 1 10 ModemSMSSend send a SMS message FB eModemLib SFR057A100 Questo blocco funzione esegue l invio di un messaggio SMS si collega al blocco funzione di ee ete tee gestione modem ModemCore occorre passare alla FB il ModemID in uscita dal blocco funzione di gestione modem Send Done bodemiD Fault Su fronte attiva
37. sOWireMng Enable O nWo rk Fp_ gt File Activity Fault hing ID nal Acquires the temperature RdTemp s0W RdTemperature TDone TDone A Enable Done Dodo MOO nal _ ingl Ok D ipcade Fault Temperature Temperature Mnl151c070 Pag 185 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 16 4 SOWRdHumidity One Wire read humidity en FB ePLC1WireLib SFR059B000 Questo blocco funzione esegue gestione di un sensore One Wire di acquisizione umidit e OWRdHumidity temperatura basato Maxim DS2438 Si collega al blocco funzione OWireMng di gestione convertitore Seriale One Wire Occorre passare MngiD in uscita dal blocco funzione di Enable Done gestione convertitore Mnalt Ok Attivando Enable viene eseguita la lettura del valore di umidit e temperatura dal e SE dispositivo connesso al bus One Wire terminata l acquisizione si attiva l uscita Done se VSS PST acquisizione corretta si attiva per un loop l uscita Ok e su Humidity e Temperature sar Humidity riportato il valore di temperatura acquisito L uscita Fault si attiva in caso di errori di gestione Disattivando Enable si azzera Done e l eventuale Fault per eseguire una nuova lettura occorre riabilitare l ingresso Enable Se sul bus One Wire connesso un unico dispositivo si pu evitare di settare DCode oppure si pu forzare a 0 Se invece sul bus One Wire sono presenti pi dispositivi parallelati in DCode occorre definire l indir
38. si inizializza la lista dei files e viene ritornato il primo file trovato Ad ogni comando Next si Imit saune esegue la ricerca di un nuovo file nella directory selezionata Next Fault i o i d a PathMame lsDir Se file trovato l uscita Found si attiva per un loop e ne viene rtornato il nome in FileName 2 IZE Terminato l elenco di tutti i files presenti nella directory su comando Next non viene pi attivata l uscita Found e FileName abblencato L uscita sDir si attiva se il nome del file lut ritornato quello di una sottodirectory FileName Init B001 Alla attivazione viene inizializzato l indice dei files nella directory indicata e viene ritornato il nome del primo file trovato Next B001 Alla attivazione viene ritornato il nome del file puntato dall indice nella directory indicata L indice si incrementa puntando il successivo file PathName stinc 32 Definizione directory di cui eseguire il listing E possibile definire anche eventuale filtro di ricerca Esempio Storage log Found ool Si attiva per un loop se su comando Init o Next stato trovato un nuovo file da listare Fault B001 Si attiva per un loop se errore esecuzione IsDir B8001 Attiva se il nome di file ritornato appartiene ad una sottodirectory Size DINT Dimensione in bytes del file Time wont Data ultima modifica del file in Epoch time UTC FileName stincri Nome del file comprensivo di eventuale estensione Codici di errore In c
39. strinci160 Testo descrittivo del messaggio di notifica Enabled 8001 Attivo su abilitazione blocco funzione Done 8001 Attivo per un loop al termine dell invio del messaggio di notifica Fault B001 Attivo per un loop su errore esecuzione del comando Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10034020 FB protetta terminato tempo funzionamento in modo demo 10034100 Server Syslog non raggiungibile il server non risponde al ping Mnl151c070 Pag 215 288 Programmazione IEC 61131 3 Get Esempi Nel seguente esempio sono acquisiti gli YO del modulo CPU utilizzando i due ingressi possibile eseguire l invio di un messaggio di notifica al server Syslog con IP 192 168 0 81 sulla porta 514 in UDP Definizione variabili Mame Type Address Array Init value Attribute Description 1 Done BOOL Auto No FALSE i Syslog sent 2 Dummy BOOL Auto No FALSE S Dummy variable 3 Fault BOOL Auto No FALSE n Syslog error 4 CPUDIO CPUMOodulelO Auto No 0 K FB CPU VO management 5 Syslog SysLogReport Auto No 0 S FB SysLogReport Esempio LD Dummy CPUDIOO CPUDION CPUDION c Ens ble CPUDIO c _ _ Sen 0 Mode 192 168 0 81 SyslogIP 514 SyslogFort _2 Faollity 4 Severity SlimLine HostName Test message Message Mnl151c070 Pag 216 288 Programmazione IEC 61131 3 3 Flich Type L
40. 06 USINT KE 6 16444 USINT n C 7 16434 USINT f 16400 USINT 9 16400 USINT Programmazione IEC 61131 3 3 Flat visibile ponendo nella finestra di watch la variabile Frame cos come riportato nella figura Mnl151c070 Pag 66 288 Programmazione IEC 61131 3 Type Library Version 7 5 7 SysMAlloc memory allocation Function Embedded XTarget 07 0 Questa funzione esegue l allocazione di uno spazio di memoria della dimensione in byte definita SysMAlloc da parametro Size La funzione ritorna il puntatore allo spazio di memoria allocato Size La memoria allocata nella memoria di sistema e quindi non utilizza la memoria a disposizione del programma utente Nel caso in cui non vi sia spazio in memoria per l allocazione del buffer definito la funzione ritorna 0 Parametri funzione Size uont Dimensione in bytes dell area da allocare La funzione ritorna cel Indirizzo allocazione buffer NULL se non vi spazio per allocare il buffer Codici di errore In caso di errore la funzione torna NULL e con SysGetLastError possibile rilevare il codice di errore 9947990 Non implementata nel simulatore Esempi Su fronte attivazione ingresso DIO00MO00 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 Att
41. 281 13 2 Operatori linguaggio E EE 282 UE Statements MIC GIO SE iaia oi 283 e d E Enrodar SO CUZ e G aee EEE do RE EEE R T 284 E ER Tabella Codi ASCI srian a E E AAA E R a Aa aa Daai 287 13 5 1 Tabella codici ASCII standard 287 13 5 2 Tabella eeler We TR ie east 288 Mnl151c070 Pag 6 288 Programmazione IEC 61131 3 4 Hey 1 LogicLab LogicLab un compilatore PLC IEC61131 3 che supporta tutti i 5 linguaggi dello standard la facilit e l immediatezza d uso degli editor grafici e testuali le funzioni di drag amp drop estese a tutti i contesti del framework le diverse utility integrate ed i debugger grafici e testuali rendono LogicLab un ambiente di sviluppo efficiente e particolarmente gradevole da utilizzare nil paresi amp Loo Lzb Li Applicazioni Soll Peel o kappi i E K l l sl Fe P Wen Prot Deag Conka zeg Vertis Wind Tools Hip OS0R 2 OR 40 ARRE Agr BEE OR oie ee See BIA KA A A ODMH Ee Ele OOo eo Pesci BI og Fast SG Wach x fie Softpanchvork poet Fant Hir ell sl oS ke Sa Lo een WI es mg a es deen Eng Te Aso smia EINES Pulse Auto HM dE id 3 amp eapFiop FF_D Auto H E Wian 3 lee iter TusFilter Aulo Mio ll Fergie Heck a Spin EteToBit Auto No E Schema ra da Stati CO Farzin Val EI wiet b i gie wan E alore iniziale p 5 Bd val Gg ini ze M tten GE Vit val lt TO_REAL KImi sla Eg k h
42. 48 0x0030 Ora 11 0x000B Giorno 29 0x001D Mese 9 0x0009 Anno 2010 0x07DA Mnl151c070 Pag 255 288 Programmazione IEC 61131 3 3 Flich 9 1 6 Scrittura RTC da modbus Per la scrittura dei registri del real time clock si utilizza il comando Preset multiple registers Codice 0x10 Dovremo scrivere 6 registri consecutivi a partire dall indirizzo di allocazione l indirizzamento di modbus prevede un offset di 1 quindi 99 0x0063 potizziamo 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 OB 00 1D 00 09 07 DA Stringa di risposta 00 00 00 00 00 06 01 10 00 63 00 06 Mnl151c070 Pag 256 288 Programmazione IEC 61131 3 Eet 9 1 7 Accesso Epoch time da modbus E allocato anche un registro a 32 bits per il valore di data ora in Epoch time l acceso a questo registro in lettura e o scrittura v sempre effettuato usando due registri a 16 bits Address Register Note 150 Epoch time Epoch time 9 1 8 Lettura Epoch time da modbus Per la lettura dell epoch time si utilizza il comando Read holding registers Codice 0x03 Dovremo leg
43. 7 4 2 VBitSet Variable bit eet 47 T 49 BitloByte BIVIO DVIS CONVENIS OP iscsi naai Eea a eA aE 48 7 4 4 ByteToBit Byte to bit CONVEFSION M iii 50 7 4 5 ByteToWord Byte to word Convereion e 51 7 4 6 WordToByte Word to byte CONversion ie 52 7 4 7 DoubleToWord Double to Word Conversion nrar rnrn rnrn enerne n nrn nn rnnr 53 7 4 8 WordToDouble Word to double CONVESSION 0 ccceceecececeeeecececeeeeceeeeeeeeeeeeeeeaeseseeeeeeseceeeeeeseeeevaeeereeenaenters 54 7 4 9 ToLower Uppercase to lowercase letter Copnversion e 55 7 4 10 ToUpper Lowercase to uppercase letter CONvErsion eeeceeeeeeeeceeeceeeseeeseeeseeeseeeeeseeeeeeeseeeeaeees 56 7 4 11 LEArrayToVar Little endian array to variable CONVEFSION 57 7 4 12 BEArrayToVar Big endian array to variable CONVETFSION i 58 7 5 Funzioni ed FB di utilit SISteMA iii 59 7 5 1 SysGetSysTime get system Dme 59 7 5 2 SysSetTaskLpTime set task loop me 61 7 5 3 SysGetRandom get random number nr nr nn nrn renen nenn 62 7 5 4 SysGetLastError get last error iii 63 7 5 5 SysPCodeAccept accepts the protection code 64 1 0 0 SYSGEICIC Gel ET UE 65 10 1 SYSMAIIOG MEMOLY AO Calloni iii 67 1 5 8 SysSpyData system spy e DE 68 7 6 Funzioni ed FB per gestione Data Ora ii 70 7 6 1 SysETimeToDate
44. 8 LL Read 0 7 input mode Debounced DI 8 L Read 8 15 input mode Debounced DI 8 M Read 16 23 input mode Debounced DI 8 MM Read 24 31 input mode Debounced DI 16 L Read 0 15 input mode Debounced DI_16_M Read 16 31 input mode Debounced DI_32 Read 0 31 input mode Debounced DI 1 8 LL Read 0 7 input mode Immediate DI 18L Read 8 15 input mode Immediate DI I 8 M Read 16 23 input mode Immediate DU I 8 MM Read 24 31 input mode Immediate DI I 16 L Read 0 15 input mode Immediate DI I 16 M Read 16 31 input mode Immediate DI I 32 Read 0 31 input mode Immediate 5 8 Digital output mode definizioni modo gestione uscite digitali Le definizioni modo di gestione dei moduli di uscita digitali si possono trovare nella cartella Digital output mode Define Description DO 8 LL Write 0 7 output mode DO 8 L Write 8 15 output mode DO 8 M Write 16 23 output mode DO 8 MM Write 24 31 output mode DO 16 L Write 0 15 output mode DO 16 M Write 16 31 output mode DO 32 Mnl151c070 Write 0 31 output mode Pag 20 288 Programmazione IEC 61131 3 5 Fleet 5 9 Analog to digital mode definizioni modo acquisizione ingressi analogici Le definizioni modo di acquisizione degli ingressi analogici si possono trovare nella cartella Analog to digital mode
45. 9970100 Terminale di I O usato in task fast o slow 9970990 Non implementata nel simulatore Esempi Vengono attesi almeno 5 caratteri ricevuti dalla porta seriale e quando ricevuti viene letta una stringa di 5 caratteri 5 stringhe di 1 carattere la stringa letta trasferita nella variabile RxString La stringa letta viene poi ritrasmessa sulla porta seriale notare come anche nella trasmissione trasmessa una stringa di 5 caratteri 1 stringa di 5 caratteri Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo 0 Port COMO file pointer d Ruling STRING Auto 10 0 Received string 2 RxChars INT Auto No Recelved characters A TxChars INT Auto No Transmitted characters Esempio ST P7TP116A100 ST_Sysfread Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here walt until at least 5 chars are received and echoes them IF Fp lt gt NULL THEN IF SysGetIChars Fp gt 5 THEN RxChars Sysfread ADR RxString 1 5 Fp Received characters TxChars Sysfread ADR RxString 5 1 Fp Received characters END IF END IF Mnl151c070 Pag 80 288 Programmazione IEC 61131 3 8 Type Library Version 7 7 6 Sysfwrite write data to file Function Embedded XTarget 07 0 Questa funzione esegue la scrittura di un numero definito di stringhe di lunghezza defin
46. 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 8001 Comando incremento counter ad ogni fronte attivazione il valore del counter CV si incrementa CD 8001 Comando decremento counter ad ogni fronte attivazione il valore del counter CV si decrementa R B00L Comando di reset attivando l ingresso il valore del counter CV si resetta LD Bool Comando di load attivando l ingresso il valore di preset PV viene trasferito nel valore del counter CV PV int Valore di preset quando il valore del counter CV raggiunge questo valore l uscita Q si attiva ed il counter non si incrementa pi QU 8001 Uscita counter up attiva se il valore del counter CV raggiunge il valore definito in preset PV QD 8001 Uscita counter down attiva se il valore del counter CV raggiunge il valore 0 CV int Valore counter valore di conteggio counter quando raggiunge il valore di preset PV l uscita Q si attiva ed il counter non si incrementa pi
47. Con un comando impulsivo su ingresso Read viene letto il E file ed il suo contenuto trasferito in memoria Weess MBufferPtr Terminato il comando viene attivata per un loop l uscita Done in caso di errore esecuzione WBuferSize viene attivata per un loop l uscita Fault Il file di dump su disco un file ascii quindi possibile editarlo con un qualsiasi text editor ecco un esempio di file 00000000 00 AB 12 34 00 00 00 00 00 00 00 12 00 OF OA CC 00000010 02 00 00 00 00 00 00 00 EF CO DD 00 00 00 01 00 Enable 8001 Comando di abilitazione blocco funzione Read 6001 Comando di lettura da dump file in memoria Write B001 Comando di scrittura memoria su dump file Filename sTRING 32 Percorso e nome del file in cui fare log es Storage Dump txt MBufferPtr usint Pointer a buffer di memoria su cui opera il dump MBufferSize unn Dimensione in bytes del buffer di memoria Enabled eco Attivo su abilitazione blocco funzione Done 8001 Attivo per un loop se comando eseguito Fault B001 Attivo per un loop su errore esecuzione del comando Codici di errore In caso di errore si attiva l uscita Fault e con SysGetLastError possibile rilevare il codice di errore 10036070 Errore case gestione 10036100 FB usata in task fast o slow 10036200 Errore apertura file su comando di lettura 10036210 Errore posizionamento file su comando di lettura 10036220 Errore lettura da file su comando di lettura 10036230 Er
48. DTRComplement Attivando il modo di funzionamento DTR_AUTO_W_TIMES su DTRManagement FeheFlush possibile con il parametro DTROnTime definire un tempo di attesa dopo attivazione PT RUntTime segnale DTR prima della trasmissione dei dati su seriale Con il parametro ETROfiTime DTROffTime possibile definire un tempo di attesa dopo la trasmissione dell ultimo dato prima della disattivazione del segnale DTR Queste temporizzazioni sula gestione del segnale DTR permettono di gestire in modo automatico apparecchiature radiomodem su cui deve essere attivato il comando di trasmissione prima di eseguire l invio dei dati Fp FILEP Puntatore al file di porta seriale come ritornato da funzione Sysfopen Baudrate unin Valore di baud rate porta seriale da 300 a 115200 baud Parity stRINC 1 Tipo di parit valori possibili E pari O dispari N nessuna DataBits usin Numero di bit frame dato valori possibili 7 8 StopBits usw Numero di bit di stop valori possibili 1 2 DTRManagement usnm Modo di gestione del segnale DTR sulla porta seriale vedi definizione DTRComplement eoo FALSE DTR normale TRUE DTR complementato EchoFlush 8001 FALSE dati trasmessi sono ritornati in ricezione TRUE dati trasmessi sono ignorati DTROnTime ur Tempo di attesa dopo attivazione segnale DTR prima di trasmissione caratteri mS DTROffTime unt Tempo di attesa dopo trasmissione ultimo dato prima e disattivazione segnale DT
49. Description BOOL FALSE Data frame TRUE Remote request USINT Lunghezza record dati da 0 a 8 bytes UDINT Message ID 11 o 29 bit di identificativo messaggio Il bit 31 il bit di FF ARRAY 0 7 OF USINT Array dati messaggio Mnl151c070 Pag 12 288 Programmazione IEC 61131 3 3 Flt 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 varlables g SpaTBackExErr Analog to digital mode System variables ud SpaTBackExTm 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 TermiO definitions SysFirstLoop ud Swe Back LpT min Task ID w i SushtodulesFieady ud SyeTBootExTm Digital output
50. Fier Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RI Dimensione buffer di output espressa in numero di caratteri Bytes Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9965100 Terminale di I O usato in task fast o slow 9965990 Non implementata nel simulatore Esempi E riportato un semplice programma che ritorna la dimensione del buffer di output Trasmissione della porta seriale COM2 valore ritornato espresso in numero di caratteri Bytes trasferito nella variabile Space Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo U n File pointer d Space UDINT Auto Mo U e Rx buffer space Nr of Chars Esempio LD SysFirstLoop EN ENO SysGetTxB Size Mnl151c070 Pag 85 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 7 11 SysFIBfClear file input buffer clear Questa funzione elimina tutti i caratteri in lettura presenti sul flusso dati stream indicato dal Gust IEF Clear parametro File precedentemente aperto dalla funzione Sysfopen File La funzione ritorna FALSE in caso di errore Parametri funzione File Fier Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RSS FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso d
51. Function block attivata ed in lavoro Activity 8001 Attivo se attivita sul bus One Wire Fault B001 Attivo se errore gestione bus One Wire MngiD wont One Wire management ID da passare alle FB collegate Esempio sOWRdldentifier sOWRdTemperature ecc Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10008010 Valore di File non definito 10008200 Timeout invio stringa comando 10008300 9 Errore nelle configurazione convertitore 10008400 1 Errore nella verifica configurazione 10008500 2 Errore nelle sequenze indirizzamento device One Wire 10008600 Errore risposta a comando di reset pulse 10008601 Bus One Wire in cortocircuito 10008602 Errore dispositivi su bus One Wire 10008603 Nessun dispositivo su bus One Wire Mnl151c070 Pag 181 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 16 2 sOWRdldentifier One Wire read ROM identifier FB ePLC1WireLib SFR059B300 Questo blocco funzione esegue la lettura del codice di identificazione di un dispositivo One Wire si collega al blocco funzione sOWireMng di gestione convertitore Seriale One Wire Occorre passare MngID in uscita dal blocco funzione di gestione convertitore Enable Done hingiD Ok Code Fault e OV Rd Identifier Attivando Enable viene eseguita la lettura del ROM ID dal dispositivo connesso al bus One Wire Attenzione Bisogna avere un solo disposi
52. IEC 61131 3 Eet 7 23 1 HMIBuiltinMessages HMI built in messages 228 7 23 2 HMIBuiltinNetlog Netlog HMI management 229 oenn n We le EE 231 8 1 1 MDBRTUMASTER modbus Rtu master nrn nrnrrntn rrara anran rnnr r nrnna nrn n ne 232 8 1 2 ModbusRTUMaster modbus Rtu mastel ccc ii 233 8 1 3 sModbusRTUMaster modbus Rtu master ec ececeeeeeeeeeeeececececeeeceeeceeneeeeeeeaeaeaeaeaeaeaeaeeeaeneeannnnaees 235 8 1 4 ModbusRTUMaster_v1 modbus Rtu master cece eeec eee eeeeeeeeeeeeseeeseeeseeeseeeseeeseessneesseeaeeaeeges 237 8 1 5 ModbusRTUSlave modbus Rtu sl ve eee ccc eceeeececeeeeaececeeaeaececueaeaeaeeeeaeaeseeneaeaeseensnataeaeeatanaenes 239 8 1 6 ModbusAsciiSlave modbus Ascii slave i 241 8 1 7 ModemCore modem core management 243 8 1 8 ModemCore_v1 modem core management 245 8 1 9 ModemSMSRxCmd receive a SMS command 247 8 1 10 ModemSMSSend send a SMS message ei 248 8 1 11 ModemSMSSend_ v1 send a SMS message 249 8 1 12 ModemPhoneCall executes a phone call 250 8 1 13 SpyDataFile spia i dati e li memorizza su ie 251 9 Protocolli di COMUNICAZIONE annali 253 O Fel BM e C0100 le Bun ee e E 253 9 1 1 Accesso variabili da MOODUS ilaele 253 91 2 BIER er Ee CB un ele TEE 253 9 1 3 Scntt ra variabili Rn ue ele EE 204 9 1 4 Accesso Real time clock da modbus i 255 Se Lettura RIC Oa MODUS ipa 255 916 SCM RIC da MOD Sede ico 2
53. Mas Messaggio 2 ID Row 1 Ki 1RVar 1 M 1 RVar 000 Row 2 Var a2 ua OO00 Access level set all access levels to false to reach message SS gece its ID Delete Var PLC Variable Format MumbDecistrl War 100 gal Project Definitions Eal Resources i Ready EDIT MUDE Come si vede ad ogni messaggio associato del testo ed eventuali variabili da visualizzare Nel messaggio possono essere visualizzate tutte le variabili globali Nella compilazione del progetto LogicLab crea ed istanzia per ogni HMI un blocco funzione di tipo HMIBuiltIinMessages con il nome assegnato all HMI nell esempio soprariportato MyHMI Questo FB provvede alla gestione dei messaggi e delle variabili ma per la visualizzazione occorre collegare al FB una FB di gestione terminale Mnl151c070 Pag 227 288 Programmazione IEC 61131 3 3 Flich a Type Library Version 7 23 1 HMIBuiltinMessages HMI built in messages FB eHMIBuiltInLib SFR070A000 Questo blocco funzione esegue la gestione dei messaggi cos come definiti da LogicLab HMIBuiltinMessages Anche se ne riporto la raffigurazione a differenza degli altri blocchi funzione mdbizable DEntryDk automaticamente istanziato da LogicLab e non v quindi inserito dall utente nel iam hsglD proprio programma Per l utente importante fare riferimento alle sole variabili di vu evel Hh Builtinib ingresso ed uscita dal FB variabili che possono essere utilizza
54. Mnl151c070 Pag 217 288 Programmazione IEC 61131 3 Flap Esempi Nel seguente esempio ad ogni attivazione dell input Di0OMOO0 viene salvata la stringa presente in Str nel file di nome SDCard MyLog txt Avendo impostato Circular uguale TRUE al raggiungimento di 10 log l undicesimo sovrascrive il primo La variabile LogIndex una variabile mappata nell area delle variabili tamponate Definizione variabili Name Type Address Array Init value Attribute Description 1 Str STRING Auto 32 Log string otring to log StrToLog StringToLogFile Auto No 0 ke FB String to log file 3 Dong BOOL Auto No FALSE R FB done 4 Fault BOOL Auto No FALSE x FB fault 5 Enabled BOOL Auto No FALSE FB enabled Esempio LD StrToLog StringToLogFile Enable DIOD MOD PE Elte St gt StingToLog SDCard MyLog tet Filename TRUE Circular _z0 MaxRowLen SH un L Masbowslntile RowlndexPtr Mnl151c070 Pag 218 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 21 3 FileMemoryDump dump memoria su file FB eLogLib SFRO65A000 Questo blocco funzione effettua il dump di una zona di memoria memoria a partire da EEN indirizzo definito in MBufferPtr per il numero di bytes definito in MBufferSize su di un file su disco di nome Filename SEO ee l ee ff aes l Read Done Con un comando impulsivo su ingresso Write viene creato il file ed il contenuto della csi memoria viene scritto nel file
55. Name Type Address Array Init value Attribute Description 1 Fuel sysGetAninp Auto No 0 S Analog acquisition 2 Litres REAL Auto No 0 Fuel quantity Litres A VinRef REAL Auto 0 15 1 2 3 13 0 z Level voltage input d VWOutRef REAL Auto 0 15 1000 4000 6000 13 0 Litres value 5 FAW Average Auto No 0 S Level average Esempio FBD P7P114A610 FBD_Linearize Fuel SysGetAnlnp FA D Address Done o Channel Fault Average Linearize Win AD_VOLT_0_10_ COMMON Mode Value Average Coefficient VInReference 1000 0 VOutReference ADR q ReferenceNr VInRef ADR VOutRef Mnl151c070 Pag 162 288 Programmazione IEC 61131 3 3 Flat Type Library Version 7 13 16 ValueScale scales a value Function PLCUtyLib SFR054B100 Questa funzione esegue la messa in scala di un valore E possibile definire il limite minimo e Value Scale massimo del valore in ingresso da scalare ILow IHigh ed il valore minimo e massimo del input valore in uscita scalato OLow OHigh ue L utilizzo di questa funzione particolarmente indicato per convertire valori acquisiti da sensori IHigh in corrente 4 20 mA nella corrispondente unit di misura rilevata dal trasduttore Clow High Input REAL Valore in ingresso da scalare ILOW REAL Limite minimo del valore in ingresso da scalare IHigh REAL Limite massimo del valore in ingresso da scalare OLOW REAL Limite minimo del va
56. NrOfChars SysVarfprintf Fp Counter 204d r n UDINT TYPE ADR Counter END IF END IF END IF Mnl151c070 Pag 89 288 Programmazione IEC 61131 3 Eet 7 8 File system Le CPU SlimLine ARM7 a partire dal firmware versione SFW167C100 possono gestire il file system In tali CPU esistono due directories predefinite Storage Directory allocata sulla memoria EEPROM presente su SlimLine Tutte le versioni SDCard Directory allocata sul chip SD Card che deve essere inserito nell apposito connettore Per le operazioni di formattazione del file system si rimanda al manuale utente il file system raggiungibile da FTP quindi utilizzando un client FTP possibile creare nuovi files cancellare files esistenti rinominare files esistenti leggere e scrivere dati nei files Mnl151c070 Pag 90 288 Programmazione IEC 61131 3 Type Library Version 7 8 1 Sysremove file remove Function Embedded XTarget 07 0 Questa funzione esegue la rimozione cancellazione di un file In Name occorre definire il Sysremowe nome del file da eliminare specificando l intero percorso Esempio Storage File txt lemme Se l operazione di rimozione va a buon fine la funzione ritorna TRUE in caso di errore viene ritornato FALSE Parametri funzione Name sTRING 32 Nome del file da cancellare La funzione ritorna BOUL FALSE Errore esecuzione TRUE Ok esecuzione Codici di errore In caso di err
57. OoubleTo Word n Mi SW L Gu Pag 53 288 Programmazione IEC 61131 3 3 Flich Library Version 7 4 8 WordToDouble Word to double conversion ePLCUtyLib SFRO54A000 Questo blocco funzione permette di convertire due variabili WORD in una variabile DWORD VWord To Double Sul Out Lous MSW woro MSB del valore in uscita Out LSW woro LSB del valore in uscita Out Out oworo Valore in uscita Esempi Le due variabili MSBWord e LSBWord sono uniti nella variabile VarOut in uscita Definizione variabili Name Type Address Array Init value Attribute Description 1 LSPWord WORD Auto Mo 0 Valore word MSH d MSBvYvord 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 P7P114A100 LD_WordToDouble FED ata ordToDouble EN ENO MiS Bio rd Wisi Out LSBiord LS Esempio IL PTP114A100 IL_WordToDouble 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 P7TP114A100 ST_WordToDouble FBData MSW MSBWord Transfer the MSW variable to input FBData LSW LSBWord Transfer the LSW variable to input FBData Call the WordToDouble function block VarOut FBData Ou
58. Pag 114 288 Programmazione IEC 61131 3 Eet 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 Counter 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 Eseguire 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 bloccato la stampa a 12 caratteri il valore di Var 0 sar stampato correttamente fino ad un massimo di 4 cifre 7 caratteri stringa 4 caratteri valore pi terminatore stringa 0 Per valori di Var 0 superiori a 9999 non saranno pi stampate le cifre meno significative Il valore di Var 1 sar stampato immediatamente dopo il valore di Var 0 Da notare l offset decrementato di 1 per sovrascrivere il terminatore stringa 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
59. Programmazione IEC 61131 3 Get Type Library Version 7 17 5 UDPDataTxfer UDP data transfer FB PLCUtyLib SFR054A700 Questo blocco funzione esegue il trasferimento di un blocco di memoria tra due sistemi ne 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 ll parametro PeerlP indica l indirizzo IP del sistema con cui avviene il trasferimento dati SST LI Port indica la porta tramite la quale il trasferimento avviene Deve assumere lo stesso Fen VAS SIS St valore su entrambi i sistemi Reb Butter Errors S su 3 i i SC dpi TxD Butter Il parametro Timeout definisce il tempo massimo per il trasferimento dei dati l invio dei dati Se la El si conclude con la ricezione di un acknowledge da parte dell altro sistema un ciclo di invio dati e ricezione acknowledge richiede 2 loop di esecuzione programma Se dopo l invio non Time cut viene ricevuto Ack entro un tempo pari a Timeout 4 viene effettuato un altro invio e cosi di seguito fino allo scadere del tempo definito Per garantire almeno 3 retries si consiglia di impostare come tempo di timeout un valore pari a 10 volte il tempo massimo di loop Scegliendo quello maggiore tra i due sistemi in comunicazione L i
60. Range da 16 0000 a 16 FFFF Buffer usint Indirizzo buffer dati su cul operano i comandi modbus SIZE uint Dimensione in byte del buffer dati su cui operano i comandi modbus IF Time upint 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 6001 Attivo per un loop alla ricezione di comando modbus Fault B001 Attivo per un loop su errore ricezione comando modbus Errors uDINT Numero di errori riscontrati Viene incrementato ad ogni nuovo errore raggiunto il valore massimo il conteggio riparte da 0 Mnl151c070 Pag 239 288 Programmazione IEC 61131 3 Eet Comandi supportati Il blocco funzione supporta solo alcuni comandi previsti dal protocollo modbus i comandi supportati sono Descrizione Read coil status Massimo 250 coils Read input status Massimo 250 coils Read holding registers Massimo 125 registri Read input registers Massimo 125 registri Force single coil Preset single register Loopback diagnostic test Force multiple coils Massimo 250 coils Preset multiple registers Massimo 125 registri Codici di errore In caso di errore si attiva l uscita Fault
61. S set e R reset Esempi Sulla attivazione dell ingresso digitale Di00M00 viene attivata l uscita digitale Do00M00 che rimane attiva anche quando l ingresso digitale Di00M00 viene disattivato Per disattivare l uscita digitale DoOOMOO occorre attivare l ingresso digitale Di01MO00 Nota L ingresso digitale Di00MO00 ha la priorit sull ingresso digitale DiO1MO0O0 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBSR SR AUTO Mo 0 z SF SevResetfunction block Esempio LD PTP115A100 Sp LO FESR DIDO MOO Do00MOO BR 8 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 Mnl151c070 Pag 37 288 Programmazione IEC 61131 3 3 Flich 7 2 Funzioni ed FB per gestione timers Library Version 7 2 1 eTOF Timer Off ePLCStdLib SFR053A000 Questo blocco funzione esegue la temporizzazione sulla disattivazione attivando l ingresso IN l uscita Q si attiva immediatamente
62. Start B001 Comando di invio frame DMX su porta seriale si resetta automaticamente all invio del frame File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Status usint Valore byte di stato inviato nel protocollo DMX prima dei byte di preset dispositivi Devices uINT Numero di dispositivi connessi al bus DMX Delay uint Tempo di pausa trasmissione frames DMX mSec DataPtr usint Pointer all array dati valori di preset dispositivi DMX Done 6001 Attivo per un loop al termine dell invio frame DMX del comando Fault B001 Attivo in caso di errore nella gestione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9979050 Errore allocazione blocco funzione 9979060 Terminato spazio memoria rilocabile non possibile eseguire IER 9979070 Errore versione blocco funzione 9979085 FB protetta terminato tempo funzionamento in modo demo 9979200 Protocollo DMX non supportato dal dispositivo definito in File 9979990 Non implementata nel simulatore Mnl151c070 Pag 153 288 Programmazione IEC 61131 3 3 Flich 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 d
63. SysDateTloEtime Call the SysDateToEtime function block Transfer the FB output variables to program variables LD FB SysDateToEtime EpochTime ST EpochTime Esempio ST PTP116A100 ST_SysDateToETime Here FB SysDateToETime is executed and variables copied FB SvsDbDateTostime Yeari Year FB SysDateloEktime Month Month FB SysDateloktime Day Day FB SysDateloEtime Call the SysDateTortime function block zi EpochTime FB SysDateToEtime Epochlime Epoch time Mnl151c070 Pag 73 288 Programmazione IEC 61131 3 3 Flich 7 7 Funzioni ed FB per gestione terminale di I O Type Library Version 7 7 1 Sysfopen file open Function Embedded XTarget 07 0 Questa funzione permette l apertura del collegamento tra la risorsa indicata dal parametro et FName ed un flusso di dati stream da impiegare nelle successive chiamate alle funzioni d ui l FH I O La funzione ritorna il pointer alla risorsa SE Mode Se la risorsa indicata gi aperta oppure il nome della risorsa errato la funzione ritorna NULL Se si sta aprendo un file su disco per crearlo accertarsi che il disco sia formattato Parametri funzione FName srrincrzo E il nome della risorsa da utilizzare Name Resource COMO Serial port COMO COM1 Serial port COM1 COM2 Serial port COM2 PCOMx y Porta seriale y su modulo periferico con indirizzo x UDPSKT UDP socket TCPSKT TCP socket
64. WSB LSB MSBByte Pag 52 288 Programmazione IEC 61131 3 Library el Version 7 4 7 DoubleToWord Double to word conversion ePLCUtyLib Questo blocco funzione permette di convertire una variabile DWORD in due variabili WORD IN pworp Variabile da convertire MSW woro MSW del valore in ingresso LSW woro LSW del valore in ingresso Esempi Le variabile Varlnp divisa nelle due variabili MSBWord e LSBWord Definizione variabili Mame Type Address Array Init value Attribute Description 1 LSBWord WORD Auto Mo 0 Valore word MSH A Mord 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 P7P114A100 LD_DoubleToWord FAL ata Double To Word EN ENO Varlnp gt In MG Esempio IL PTP114A100 IL_DoubleToWord LD VariIng ST FBData In Transfer the variable to input CAL FBData Call the DoubleToWord function block LD FBData MSW ST MSBWord Transfer the MSW output to variable LD FBData LSW ST LSBWord Transfer the LSW output to variable Esempio ST P7P114A100 ST_DoubleToWord FBData In VarInp Transfer the variable to input FBData Call the DoubleTowWord function block MSBWord FBData MSW Transfer the MSW output to variable MSBWord FBData LSW Transfer the LSW output to variable Mnl151c070 MS Bio rd LS Bord SFR054A000
65. 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 9 1 2 Lettura variabili da modbus Per la lettura delle variabili si utilizza il comando Read holding registers Codice 0x03 Ipotizzando di dover accedere in lettura ad una variabile DWORD allocata in memoria all indirizzo MX100 64 calcoleremo l indirizzo di lettura nel modo Indirizzo variabile 2 Offset 1 64 2 40000 1 40031 0x9C5F Essendo una variabile DWORD dovremo leggere 2 registri consecutivi a partire dal suo indirizzo di allocazione ipotizzando che 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 Mnl151c070 Pag 253 288 Programmazione IEC 61131 3 Eet 9 1 3 Scrittura variabili da modbus Per la scrittura delle variabili si utilizza
66. 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 Mnl151c070 Pag 284 288 Programmazione IEC 61131 3 5 Flee 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 SysPhrVRd read variable from peripheral module 9990 9990000 9990999 SysPhrInfo
67. cl DW kd SIZEOF is lt ACOS e En log LOG ER Va SORT ADD e EXP Eh W REPLACE SUE ADR e i FIND hl MAD H RET Le TAN amp AND i FLOOR ABC MID REG RIGHT th TANH Lac ASIN SE mi MIN E ROL TO_BOOL JATAN gt GT S MOD ROR TO DINT La ATAN2 ae INSERT MOVE Es TO_INT CEIL IMP gt MUL gt SEL TO REAL Fee CONCAT SUE E ML g i CHL TO SINT Acos fed LEFT NE gt SHR TO _UBINT cesh COSH ABC LEN CH INOT 7 EIN TO UINT AR DELETE lt LIMIT 1 jOR Enh SINH TO _USINT all Operator and standard blocks Target variables Target blocks Ecco alcuni esempi di utilizzo nei vari linguaggi Definizione variabili Name Type Address Array Init value Attribute Description 1 Minuend WINNT Auto No 0 Minuend 2 Subtrahend UINT Auto No O subtrahend 3 Result UINT Auto No 0 Result Esempio LD SUE ENO Minuend KE Result Subtrahend s Esempio IL LD Minuend SUB Subtrahend ST Result Esempio ST Result SUB Minuend Subtrahend Subtraction using SUBB Result Minuend Subtrahend Subtraction as before Mnl151c070 Pag 24 288 Programmazione IEC 61131 3 6 1 Funzioni matematiche e trigonometriche 5 Flee LogicLab supporta tutte le funzioni matematiche richieste dalla norma CEI EN 61131 3 nella Parte 3 Linguaggi di programmazione Riporto di seguito un elenco delle funzioni supportate ed un esempio di utilizzo in linguaggio ST ABS SQRT LN
68. codice di errore Codice 9977005 9977050 9977060 9977070 9977100 9977110 9977150 9977200 9977300 9977310 9977350 9977400 9977990 Mnl151c070 Descrizione Blocco funzione non supportato Errore allocazione blocco funzione Terminato spazio memoria rilocabile non possibile eseguire I FB Errore versione blocco funzione Valore di File non definito Tipo di stream definito in File non corretto Errore indirizzo IP dispositivo client ClientIP Errore indirizzo IP interfaccia di rete MylP Valore dimensione buffer ricezione RxSize fuori range Valore dimensione buffer trasmissione TxSize fuori range Errore nel set dei parametri TCP Errore set socket in listening Non implementata nel simulatore Pag 190 288 Programmazione IEC 61131 3 3 Flat Esempi Nell esempio posto in ascolto un socket TCP sulla porta 1000 Se ci si connette con un client telnet Esempio Hyperterminal al sistema SlimLine sulla porta 1000 si attiver la variabile SktConnect Inviando caratteri dalla finestra del terminale telnet si attiver la variabile ChrsAv i caratteri inviati saranno ricevuti dalla funzione Sysfgetc e inviati in echo verso il client telnet dalla funzione Sysfputc 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 M
69. con tempi random di DEAS nae l ONOFFCYCLE On e di Off definibili tra valori minimo e massimo l l l Enable Out Attivando il comando di Enable l uscita Out esegue un lampeggio On Off con tempi random ee i compresi tra i valori minimo e massimo definiti Disabilitando l ingresso l uscita Out si OT e SN disattiva MaxOfTime MWinOnTime La variabile Delay ritorna il valore di ritardo attualmente attivo hiaxOnTime Enable s001 Comando di abilitazione MinOffTime ont Valore minimo di tempo off comando mS MaxOffTime upint Valore massimo di tempo off comando mS MinOnTime unnt Valore minimo di tempo on comando mS MaxOnTime wont Valore massimo di tempo on comando mS Out 8001 Stato comando On Off in uscita Delay upinT Valore di tempo attualmente in temporizzazione mS Esempi Viene eseguito il lampeggio della uscita Do00MO00 con tempi random variabili tra i 2 ed i 4 secondi Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fata ONOFFOYCLE Auto Mo 0 p ONOFFCYCLE FB data d WarQut UDINT Auto Mo LU A Variable output Esempio LD PTP114A100 LD_ONOFFCYCLE FAC ata ONOFFCYCLE Dido no Dogi Woo e _ 1II Enable Out 2000 MinOffTime Delay 4000 baxOffTime 2000 MinOnTime 4000 haxOn Time Esempio IL PTP114A100 IL_ONOFFCYCLE CAL FBData Call the ONOFFCYCLE function block LD Di0QOMOO ST FBData Enable Transfer the digital input to Enable inpu
70. del dato da spiare SpyTrg SpyFtr Filename Enable Enabled Se il valore di bytes del dato da spiare diverso da 0 viene eseguita la memorizzazione nel file con una riga di log di lunghezza massima RowLen Terminata la scrittura del numero di righe FileRows la scrittura riparte dall inizio sovrascrivendo le vecchie righe di log RI Se la dimensione in bytes dei dati da spiare supera la lunghezza della riga del file i dati vengono Mm troncati Nel calcolo dei bytes di spy disponibili per ogni riga di file occorre ricordare che ogni riga viene preceduta da un timestamp ed un header che in totale usano 22 caratteri Ecco come si presentano le righe salvate nel file VLeS4 OZ 2007 Re OU0TS AEPCEEP SL Oka 113473317 IRZ 000zZ4 AT CNME 0 00 Opa OR La riga inizia con il valore di data ora a cui aggiunta l indicazione dei millisecondi segue il campo che riporta i due caratteri definiti in SpyTrg Se non presenti viene ritornato il campo che riporta la lunghezza in bytes dei dati da spiare ed infine il dato spiato Enable Bool Comando di abilitazione blocco funzione Format usin Definizione formato memorizzazione dati spiati O Ascii dati sono ritornati come caratteri ascii caratteri non stampabili sono sostituiti dal carattere 1 Ascii with unprintable chars dati sono ritornati come caratteri ascii caratteri non stampabili sono ritornati in esadecimale nel formato hh 2 Hexa
71. dell ingresso 12 del modulo 5 QX Immagine di processo uscite logiche SlimLine esegue la scrittura delle uscite logiche alla fine di ogni loop di esecuzione programma E possibile accedere a quest area utilizzando variabili di tipo BOOL ogni indirizzo rappresenta lo stato booleano della relativa uscita logica L indirizzo QX0 0 rappresenta lo stato dell uscita 0 del modulo O l indirizzo QX5 12 rappresenta lo stato dell uscita 12 del modulo 5 MX Area di memoria A queste aree possibile accedere utilizzando tutti i tipi di variabili definiti Siccome tutte le variabili utilizzano la stessa area di memoria occorre prestare attenzione alla dimensione in bytes del tipo definito per evitare sovrapposizioni di indirizzo Ad esempio una variabile DWORD allocata ad indirizzo MX100 10 utilizzer anche lo spazio di memoria MX100 11 MX100 12 ed MX100 13 Quindi allocando una variabile BYTE all indirizzo MX100 11 si andrebbe ad occupare uno 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 MW7100 0 MD100 0 Byte address
72. di temperatura in gradi centigradi ritornato sulle variabili Temperature 0 e Temperature 1 L uscita logica DoOOMO0O si attiva alla prima esecuzione della acquisizione mentre l uscita logica Do01M00 si attiva in caso di errore di acquisizione Definizione variabili Mame Type Address Array Init value Attribute Description 1 SktlsListening BOOL AUTO Mo FALSE 7 Socketis listening d Temperature REAL Auto 0 1 20 n Temperature 3 Fp FILEP Auto Mo O a UDP socket d STEACH STES MmpAcG Auto Mo 0 8 STE acquisition 2 Dk en SvsSkiListen Auto Mo 0 p FB socket listen data Esempio LD PTP1264000 LD_STESnmpAcq Sysfopen SysFirstLoop EN ENO UDP SET 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 Mnl151c070 Pag 199 288 Programmazione IEC 61131 3 3 Flich i Type Library Version 7 18 2 SHWgSProtocol HW group serial protocol l FB eHwGSpLib SFRO60A200 Questo blocco funzione gestisce la lettura di dispositivi HW group con il protocollo seriale RS485 sHWgSProtocol Occorre passare alla FB il p
73. 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 n Counter value d Ctr Sys Getlounter Auto Mo DU E SysGetCounter FB data Esempio LD Ctr Sys Get Counter Dodi MOO EN Do SE pn channel 16 0000040 Mode SA e ROU Cid 1 IDO JQ mmm Rect Address Dot Woo Mnl151c070 Pag 128 288 Programmazione IEC 61131 3 7 12 7 SysGetEncoder get encoder input Questo blocco funzione esegue la lettura di un canale encoder Il blocco funzione pu essere utilizzato solo su sistemi che hanno moduli in grado di acquisire encoders incrementali es E prevista la gestione della tacca di zero e la possibilit di acquisire valori di quota all interno di un di quia segnale logico di gate Channel Fault RCount ero ZemeEn Gate GateEn oyote Address vusint Channel wsint RCount 8001 ZeroEn B001 GateEn 8001 RGate B001 Done B00L Fault s001 ZeroD goot GateD 8001 GQuote
74. di conversione contraddistinte dal simbolo percentuale e da un carattere che specifica il formato con il quale stampare la variabile definita VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd upin Indirizzo variabile La funzione ritorna CNT Numero di caratteri trasferiti nello stream EOF Errore esecuzione Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9998010 Valore di File non definito 9968100 Terminale di I O usato in task fast o slow 9998200 Tipo variabile non gestito controllare VarType 9998990 Non implementata nel simulatore Esempi Su fronte attivazione ingresso DIO00MO00 viene incrementata la variabile Counter ed il suo valore inviato sulla porta seriale COMO Nella variabile NrOfChars viene caricato il numero di caratteri inviati in uscita sulla porta seriale Definizione variabili Mame Type Address Array Init value Attribute Description 1 En FILEP Auto Mo U R Port COMO file pointer d Pulse BOOL Auto Mo FALSE n Pulse flag 3 Counter UDINT Auto Mo 0 S Counter d MrotChars IMT Auto Mo 0 Esempio ST P7TP116A300 ST_SysVarfprintf Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COM0 rw END IF IF Fp lt gt NULL THEN IF D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF Di100M00 THEN Counter Counter l Counter zi
75. ePLCUtyLib SFR054A000 Questo blocco funzione permette di convertire una variabile BYTE in 8 variabili BOOL BytaToBit In bo In BYTE Valore byte da convertire b1 bO Bool Bit O di In be b7 Bool Bit 7 di In b5 bp by Esempi Lo stato del bit 0 della variabile Varinp viene trasferito sull uscita digitale D000M00 lo stato del bit 1 della variabile Varlnp viene trasferito sull uscita digitale Do01M00 e cos via fino allo stato del bit 7 della variabile Varinp viene trasferito sull uscita digitale Do07M00 Per semplicit negli esempi IL e ST non vengono riportati tutti i bit Definizione variabili Mame Type Address Array Init value Attribute Description 1 Varinp USINT Auto No I Variable input d FBData Byte Tobit AUTO No U 5 FA Byte to bit data 3 Dummy BOOL Auto No FALSE S Dummy variable Esempio LD PTP114A100 LD_ByteToBit FBD ata ByteToBit Dummy EN ENO Varlnp In b bi Dodi Moo Dold Woo Dolz M00 L I DoS hoo ba Dot b4 Dou b5 Do06 Mid bp Do MoD by Esempio IL PTP114A100 IL_ByteToBit LD VarInp ST FBData In Transfer the variable to input CAL FBData Call the ByteToBit function block LD FBData b0 ST Di00M00 Transfer output bit to digital output Esempio ST P7P114A100 ST_ByteToBit FBData In VarInp Call the ByteToBit function block zi Do00M00 FBData b0 Transfer output bit to digital output Do01M00 FBData bl
76. effettuare la comunicazione Buffer Occorre definire il nodo modbus Node e l eventuale offset di indirizzo frame modbus Offset comandi modbus ricevuti operano sul buffer di memoria il cui indirizzo definito in Buffer e la Tms dimensione in bytes definita in Size In IFTime occorre definire il tempo di interframe dei comandi modbus cio il tempo che intercorre tra la ricezione di un comando ed il comando successivo Su linea seriale questo tempo coincide con il tempo di ricezione di 3 caratteri al baud rate definito Alla ricezione di ogni comando modbus corretto si attiva per un loop l uscita Done in caso di errore comando viene attivata per un loop l uscita Fault ed incrementato il valore in Errors Enable soot Comando di abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Type sint Tipo di protocollo modbus O RTU 1 Ascii 2 TCP Node usin Numero di nodo modbus Range da 0 a 255 Offset uint Offset su indirizzo modbus ricevuto nel frame dati Range da 16 0000 a 16 FFFF Buffer usint Indirizzo buffer dati su cul operano i comandi modbus SIZE uint Dimensione in byte del buffer dati su cul operano comandi modbus IF Time unn Tempo ricezione caratteri uS se comunicazione su porta seriale il tempo deve essere definito in base al baud rate Nel caso di comunicazione su rete ethernet possibile definire il valore minimo
77. head gt lt meta http egquiv Content Type content text html charset iso 8859 1 gt lt title gt SlimLine Simple page lt title gt lt style type text css gt Bolded font family Arial Helvetica sans serif font size 20px font style normal font weight bold lt style gt lt head gt lt body gt This page is served by the lt span class Bolded gt SlimLine lt span gt lt body gt lt html gt Mnl151c070 Pag 259 288 Programmazione IEC 61131 3 3 Flap 10 2 Pagine dinamiche La caratteristica pi importante del server web integrato in SlimLine possibilit di gestire le pagine dinamiche Una pagina web dinamica una pagina il cui contenuto in tutto o in parte generato sul momento dal server potendo dunque essere diversa ogni volta che viene richiamata consentendo quindi un interattivit con l utente Ecco quindi che sar possibile realizzare pagine che riportano valori di variabili PLC e permettono di modificare il valore di variabili PLC Nell esempio seguente riporto il sorgente html di una semplice pagine che visualizza il valore di una variabile PLC di tipo UINT allocata all indirizzo DB100 10 e permette di impostare il valore di una variabile PLC di tipo UINT allocata all indirizzo DB100 12 Sorgente html pagina lt html gt lt head gt lt meta http equiv Content Type content text html charset iso 8859 1 gt lt title gt SlimLine Simple page lt title gt
78. il comando Preset multiple registers Codice 0x10 Ipotizzando di dover accedere in scrittura ad una variabile DWORD allocata in memoria all indirizzo MX100 64 calcoleremo l indirizzo di scrittura nel modo Indirizzo variabile 2 Offset 1 64 2 40000 1 40031 0x9C5F Essendo una variabile DWORD dovremo scrivere 2 registri consecutivi a partire dal suo indirizzo di allocazione ipotizzando di dover scrivere nella variabile il valore 0x12345678 avremo Frames modbus RTU Stringa di comando 01 10 9C 5F 00 02 04 56 78 12 34 D3 33 Stringa di risposta 01 10 9C 5F 00 02 5F 8A Frames modbus TCP IP Stringa di comando 00 00 00 00 00 OB 01 10 9C 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 Mnl151c070 Pag 254 288 Programmazione IEC 61131 3 Eet 9 1 4 Accesso Real time clock da modbus E possibile accedere al real time clock utilizzando i comandi modbus di accesso ai registri le funzioni supportate sono Function Tipo oggetto Tipo accesso Range indirizzo Read holding registers Word 16 Bit Read 100 105 150 per l Epoch time 16 Bit Read 100 105 16 Bit
79. il numero di bytes di dati da scambiarsi Enable Enabled Occorre connettere l uscita digitale OStrobe di un sistema con l ingresso digitale Strobe dell altro A 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 penata ere nel buffer RxData dell altro sistema e viceversa per il numero di bytes definito in ByteNr La LE comunicazione verificata mediante l invio di un CRC secondo lo standard ISO 1155 ul 1 ela Ad ogni fine trasferimento dati si attiva per un loop l uscita Done sulla sua attivazione occorre trigbelay provvedere a trasferire i dati da trasmettere nel buffer di trasmissione e leggere i dati dal buffer di ricezione In caso di errore nella comunicazione si attiva per un loop l uscita Fault ed i due sistemi si risincronizzano per riprendere una nuova trasmissione Enable BOOL Abilitazione gestione comunicazione IsMaster B00L TRUE Modo master FALSE Modo slave IStrobe B00L Occorre appoggiare l ingresso digitale di strobe IData B00L Occorre appoggiare l ingresso digitale di dato RxData UDINT Indirizzo buffer dati ricevuti TxData UDINT Indirizzo buffer dati da trasmettere ByteNr USINT Numero bytes da 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 OStrobe B
80. input Ricezione sul flusso dati stream SysGetRxESize indicato dal parametro File precedentemente aperto dalla funzione Sysfopen File Parametri funzione File Fier Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RIDE Dimensione buffer di input espressa in numero di caratteri Bytes Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9966100 Terminale di I O usato in task fast o slow 9966990 Non implementata nel simulatore Esempi E riportato un semplice programma che ritorna la dimensione del buffer di input Ricezione della porta seriale COM2 valore ritornato espresso in numero di caratteri Bytes trasferito nella variabile Space Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo U b File pointer 2 Space UDINT Auto Mo U Ps Rx buffer space Nr of Chars Esempio LD SysFirstLoop ENO EN IC DM FHame eg Mode Sys GetRx B Size Mnl151c070 Pag 84 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 7 10 SysGetTxBSize get file Tx output buffer size Function Embedded XTarget 07 0 Questa funzione ritorna la dimensione del buffer di output Trasmissione sul flusso dati stream SysGetTxBSize indicato dal parametro File precedentemente aperto dalla funzione Sysfopen File Parametri funzione File
81. int EQuote unt 5 Flee Version XTarget 07 0 Library Embedded Type FB A Gate EQuote Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione encoder Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito Se viene settato un indirizzo di modulo non presente si interrompe l esecuzione e viene settato il bit di Fault Occorre specificare l indirizzo del canale sul modulo Range da 0 a 15 Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Reverse counting attivando 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 EQuote al passaggio della tacca di zero encoder Attivando questo ingresso sul fronte di variazione dell ingresso di Gate viene trasferito il valore di EQuote in GQuote Attivando questo ingresso viene gestito il fronte di disattivazione dell ingresso Gate Dato encoder acquisito viene attivato per un loop al termine della acquisizione encoder Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Tacca di zero encoder acquisita viene settata su acquisizione tacca di zero encoder si resetta disattivando l ingresso ZeroEn Segnale di Gate acquisito viene attivato per un loop alla acquisizione del segnale Gate Quot
82. intera libreria dal men selezionare la voce Project Library manager si aprir una finestra come quella sotto riportata Debug Communication Tools Help New object d Import object from library Project library list Name Link Add eplcstdlib c prograrnimvelsistiec61 131 sutela eplcutylib GC pragranimselsist iech1 137 suite sto 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 DESS 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 Target blocks eplestdib eplcutylib Mnl151c070 Pag 29 288 Programmazione IEC 61131 3 3 Flich 7 0 4 Link a libreria Eseguendo l import delle librerie nel proprio progetto come indicato al capitolo precedente tutti gli oggetti della libreria importata vengono trasferiti nel proprio file di progetto ppjs ma viene comunque mantenuto un link alla libreria di origine come si vede dalla finestra a lato Project library list Name Link Add eplcstdlib ci programmielziatece1 131 sutela eplcutylib ci programmi elziatecet 131 sutela Remove all Questo permette
83. liberamente in modo test per 30 Min Attivando l ingresso Write viene salvata su disco la stringa StringToLog Eseguito il salvataggio viene attivata per un loop l uscita Done In caso di errore esecuzione viene attivata per un loop l uscita Fault Enable Bool Comando di abilitazione blocco funzione Write B001 Comando di scrittura di StringToLog nel file StringToLog sTRING 160 Stringa di cui fare log Filename strinci32 Percorso e nome del file in cui fare log es SDCard MyFile txt Circular 8001 Indica se effettuare il riporto circolare delle righe di log MaxRowLen usin Numero massimo di caratteri costituenti la singola riga del file di log MaxRowsinFile uoint Numero massimo di righe nel file RowlndexPtr upint Pointer alla variabile usata come indice della successiva riga di log Enabled 8001 Attivo su abilitazione blocco funzione Done 8001 Attivo per un loop se la scrittura nel file riuscita Fault B001 Attivo per un loop su errore esecuzione del comando Codici di errore In caso di errore si attiva l uscita Fault e con SysGetLastError possibile rilevare il codice di errore 10035020 FB protetta Terminato il tempo di funzionamento in modo demo 10035100 Il valore di MaxRowLen troppo grande 10035110 Raggiunto il massimo numero di righe di log 10035120 Errore apertura file 10035130 Errore posizionamento nel file 10035140 Errore scrittura nel file 10035150 Errore chiusura file
84. 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 chiamante 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 AutoHangUp 8001 Enabled 8001 Done B001 Fault B001 PowerOn 001 CLIPRxd B001 ModemiD unint Modem TX stRINGI 256 ModemRx rosen CLIPNumber strincgi16 Operator stRING 16 RSSI USINT Mnl151c070 Abilitazione blocco funzione attivandolo viene gestito il modem Flusso dati stream ritornato dalla funzione Sysfopen Abilita l HangUp automatico alla ricezione di una chiamata telefonica viene comunque ritornato il CLIP 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 verifi
85. pointer d Ruling STRING Auto 10 0 Received string 2 RxChars INT Auto No Recelved characters A TxChars INT Auto No Transmitted characters Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END IF Here wait until at least 5 chars are received and echoes them IF Fp lt gt NULL THEN IF SysGetIChars Fp gt 5 THEN RxChars Sysfread ADR RxString 1 5 Fp Received characters TxChars Sysfwrite ADR RxString 5 1 Fp Transmitted characters END IF END IF Mnl151c070 Pag 81 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 7 7 SysGetiChars get input available characters from file Questa funzione ritorna il numero di caratteri disponibili per la lettura dal flusso dati stream SysGetlChars indicato dal parametro File precedentemente aperto dalla funzione Sysfopen File Se il valore ritornato diverso da 0 i caratteri potranno essere letti con la funzione Sysfgetc Parametri funzione File rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna VINO Numero di caratteri disponibili dal flusso dati Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9968100 Terminale di I O usato in task fast o slow 9968990 Non implementata nel simulatore
86. qusinty Identifica la task a cui si vuole definire il tempo di esecuzione secondo le definizioni in Task ID Time DINT Indica il valore di tempo di esecuzione task espresso in US La funzione ritorna SOOL TRUE Se funzione eseguita correttamente FALSE In caso di errore esecuzione esempio parametri errati Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9948990 Non implementata nel simulatore Esempi Attivando l ingresso Di00M00 viene impostato un tempo di esecuzione di 5 ms per la task PlcFast Attenzione Per aumentare i tempi di esecuzione delle tasks dal valore di default occorre eseguire la funzione nella task di boot Definizione variabili Mame Type Address Array Init value Attribute Description 1 Enabled BOOL Auto Mo FALSE y Function enabled d ExecutionOk BOOL Auto Mo FALSE Function execution ok Esempio LD PTP1164000 LD_SysSetTaskLpTime Sys Set Task LpTi me Didi Mog Enabled EN ENO ID TASK FAST p s000 Time Exe cutianOk Esempio ST Enabled D100M00 Function enabled IF D100M00 THEN kxecutlonok syssetlaskLplume tlaskID LD TASK FAST Time 5000 Function execution ok END IF Mnl151c070 Pag 61 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 5 3 SysGetRandom get random number Questa funzione ritorna un numero random compreso tra 0 0 e 1
87. ritorna 7 Parametri funzione Name sTRING 32 Nome del file di cui si vuole conoscere la lunghezza La funzione ritorna ZIE Lunghezza file Bytes EOF se file non presente Codici di errore In caso di errore la funzione torna EOF e con SysGetLastError possibile rilevare il codice di errore 9959100 Funzione richiamata in task fast o slow 9959990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene ritornata la lunghezza del file File txt presente nella directory Storage Definizione variabili Name Type Address Array Init value Attribute Description 1 Filesize DIMT Auto Mo O File size Esempio LD Systilelength DIDO MODO F StoragePOCFile tet L FileSize Mnl151c070 Pag 93 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 8 4 Sysfseek file seek Questa funzione permette di cambiare l indicatore di posizione dello stream collegato al parametro Svsfseek File precedentemente aperto dalla funzione Sysfopen Eug Offset specifica il numero di bytes dall origine dove andrebbe posizionato l indicatore di posizione Offset Origin specifica la posizione di origine rispetto alla quale spostare l indicatore di posizione a Origin La funzione ritorna il valore attuale dell indicatore di posizione In caso di errore di posizionamento l indicatore di posizione rimane inalterato e la funzione ritorn
88. socket Txslze Enable Boot File FILEP MyilP stRING 15 MyPort unt LifeTm int FlushTm int RxSize unt TxSize uT Done B001 Fault B001 Connect B001 ClientIP strinci15 ClientPort int Abilitazione blocco funzione attivandolo si forza socket in condizione di listening Flusso dati stream ritornato dalla funzione Sysfopen Stringa di definizione indirizzo IP interfaccia di rete su cui il socket gestito Lasciandolo non connesso o definendo 255 255 255 255 sar utilizzata interfaccia ethernet Porta su cui sar posto in ascolto il socket 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 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 Dimensione buffer ricezione dati Solo per socket TCP Dimensione buffer trasmissione dati Solo per socket TCP Attivo se socket in condizione di listening Attivo per un loop di programma se errore gestione Si attiva se un client si connette al socket Solo per socket TCP Stringa di definizione indirizzo IP del client connesso al socket Solo per socket TCP 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
89. uscita del counter Q che attiva l uscita digitale D000MO00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di01MO00 che resetta il counter Definizione variabili Mame 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 PTP1154100 CTU_LD FA_CTU CTU Did Moo Dodo MOO J Am ey a DO MODO gg cy Outalue m Pv 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 FBE ER Li the digital input ig pet the counter ic reset j LD FBCTU Q ST Do00M00 If the counter value has reached the preset the digital output is set LD FB CTU CV ST OutValue The counter value is copied to the variable Mnl151c070 Pag 43 288 Programmazione IEC 61131 3 3 Flich Type Library Version FB ePLCStdLib SFR053A000 7 3 3 CTUD Counter Up Down Questo blocco funzione esegue la gestione di un counter in incremento e decremento Agendo sull ingresso di reset R possibile in qualsiasi momento azzerare il valore del counter CV Agendo sull ingresso di load LD possibile in qualsiasi momento trasferire il valore di preset definito su PV nel CU au counter CV CD Ob Ad ogni fronte di attivazione dell ingresso CU il valore del counter
90. wont Indirizzo variabile La funzione ritorna 0994 FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9989100 II modulo indirizzato in Module non presente 9989110 II tipo variabile definito in VarType non corretto 9989200 Errore durante l esecuzione della lettura della variabile dal modulo periferico 9989990 Non implementata nel simulatore Esempi Attivando l ingresso Di00MO00 viene eseguita la lettura della variabile UDINT da indirizzo 16 dal modulo periferico 0 Il valore della variabile trasferito nella DB100 ad offset 8 Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarAdd DB100Addofset Auto Mo O Y Variable address calculation Esempio LD VarA amp Add DE100AddOffset SysPhrYRd DOO MOO Da00 MOO P c EN ENO Module a Diet ps RdAdd l unt epp a Type VarAdd Dot Mnl151c070 Pag 133 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 12 10 SysPhrVWr write variable to peripheral module Questa funzione esegue la scrittura di una variabile sul modulo periferico di estensione SysPhrWt Occorre definire l indirizzo di modulo Module l indirizzo della variabile da scrivere sul modulo Madule periferico WrAdd il tipo di variabile VarType e l in
91. 0 15 1600 Rx coils data buffer 2 Etrors UDINT Auto Mo 0 Modbus communication errors A Fp FILEF Auto Mo O 2 File pointer d MdbSn Modbusmaster Auto Mo 0 s Modbus master FA Esempio LD PTP114A620 LD _ModbusMaster Sysfopen SysFirstLoop EN ENG COME FHame Mod emm ode bidbSn Modbus Master Do00hi00 DOO MDD P Enable Done Co 1 DO SpyOn Ok Dolz hoo Fp File Fault pn Type Errors 1 hode 16 01 FEode 40000 Address ADR up Paints Rx oils n Butter 286 IF Time 500 Timeout 10 Delay Mnl151c070 Pag 144 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 13 5 ModbusSlave modbus slave FB PLCUtyLib SFRO54B 100 Sui sistemi SlimLine il protocollo modbus slave gi implementato dal sistema operativo pertanto non occorre inserire blocchi funzione appositi nel programma utente Questo blocco esegue l override della gestione di sistema operativo e si utilizza in casi particolari dove non possibile utilizzare la Fnable Done gestione implementata nel sistema operativo Per esempio quando si vuole consentire l accesso ad File Fault un propria area di memoria diversa dalla DB100 Modbus Slave Type Errors Questo blocco funzione esegue la gestione del protocollo modbus slave con Type possibile 995 selezionare il tipo di protocollo RTU Ascii ed over IP Con File possibile definire il terminale di I O su cui
92. 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 emd Parametri funzione Cmd oot Indica il numero random ritornato TRUE Viene salvato e ritornato un nuovo numero random FALSE Viene ritornato il numero salvato dalla precedente chiamata con Cmd TRUE La funzione ritorna REAL Un numero random compreso nel range da 0 0 a 1 0 Esempi Attivando l ingresso digitale Di0OMO0 viene inviato sulla porta seriale COMO una sequenza di 10 numeri random Definizione variabili Mame Type Address Array Init value Attribute Description 1 Random WINT Auto Mo 0 Random number 2 Ji USINT Auto Mo U 2 Auxiliary counter A NrOfchars INT Auto No U Number of printed chars 4 Fp FILEP Auto Mo U S Port COMO file pointer 5 Pulse BOOL Auto No FALSE Pulse flag Esempio ST PTP116A000 ST_SysGetRandom Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END IF Check if input is activated F 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 E
93. 0 Valore di File non definito 9975110 Tipo di stream definito in File non corretto 9975200 Errore indirizzo IP connessioni accettate PeerlP 9975300 Errore ricezione dati da socket UDP 9975350 Errore indirizzo IP client ClientiP 9975990 Non implementata nel simulatore Mnl151c070 Pag 192 288 Programmazione IEC 61131 3 Type Library Version 7 17 4 SysUDPSktSend UDP socket send Function Embedded XTarget 07 0 Questa funzione esegue la trasmissione dati su di un socket UDP occorre passare un SysUDPSktSend flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione Sais Sysfopen ES a Lda Nel parametro TxData bisogna definire l indirizzo del buffer di memoria che contiene i size dati da trasmettere ed in Size occorre definire il numero di bytes di dati da trasmettere Geet parametri PeerlP e PeerPort indicano l indirizzo IP e la porta a cui saranno inviati i dati PeerPort Se la trasmissione riuscita verr ritornato il numero di bytes trasmessi Solitamente uguale al valore definito in Size in caso di errore viene ritornato EOF Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen TxData usint Puntatore al buffer che contiene i dati da trasmettere Size uint Numero di bytes dati da trasmettere PeerlP stRING 15 Stringa di definizione indirizzo IP a cui trasmettere i dati PeerPort unt Porta a cui trasmettere i dati La
94. 0 caratteri alfanumerici facenti parte del seguente set A Z a Z 0 9 Spazio bianco sono da evitare tutti gli altri caratteri Mnl151c070 Pag 168 288 Programmazione IEC 61131 3 Library Version eModemLib SFR057D100 7 15 1 ModemCore_v3 modem core management Questo blocco funzione gestisce un modem connesso al dispositivo di I O definito in File f mi ae i ModermCore wo questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione EI comunque possibile utilizzarlo Enable Enabled liberamente in modo test per 30 Min AutoHangUp Done i e et Z oe E i SpyUn Fault L FB gestisce il dialogo con il modem ne esegue l inizializzazione e ne controlla lo stato er File Oe In controlla se il modem connesso alla rete GSM e ritorna l operatore di rete Operator ed il livello del segnale Rssi Nel caso in cui il modem si sganci dalla rete IER provvede al suo Sf iii riaggancio automatico L FB ritorna un ModemID che deve essere passato alle FB CHS ModemlD collegate Esempio invio SMS ricezione SMS ecc L ingresso SpyOn se attivo permette Operator di spiare il funzionamento della FB Rissi CLIFHumber IPAddress L uscita Done si attiva se il modem correttamente inizializzato mentre l uscita Fault si attiva per un loop di programma in caso di errori di gestione E previsto un comando PowerOn
95. 00L Da appoggiare su uscita digitale di strobe OData B00L Da appoggiare su uscita digitale di dato Done B00L Si attiva per un loop al termine dello scambio dati Fault B00L Si attiva per un loop in caso di errore su scambio dati Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10011080 Errore definizione valore ByteNr 10011082 Errore definizione valore TrigDelay 10011100 1 Timeout attesa attivazione segnale Strobe 10011110 1 Timeout attesa disattivazione segnale Strobe 10011200 1 Errore CRC dati ricevuti Mnl151c070 Pag 157 288 Programmazione IEC 61131 3 Esempi E Utilizzando due sistemi attivando modo master Di01M0O0 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 Didi wo
96. 10 SysPhrVWr write variable to peripheral module i 134 7 12 11 CPUModulelO CPU module I O management 135 7 12 12 Sysl2CWrRd writes reads on 12C extension bus e 136 7 12 13 StrainGaugeAcq strain gauge acquisitiOn ei 137 743 FUNZIONI ed FB diutilita Re EI 139 7 13 1 DB100AddOffset returns DB100 address offset ccc a ececeeeececeeeeeeeeceeueaeeeceeeeaeaeeneeeananeneneas 139 da ER BLINK Dink ei ln En isteria 140 7 13 3 BlinkValue blink out EE 141 7 13 4 ModbusMaster modbus masier nne 142 7 13 5 ModbusSlave modbus sl ve ecececceeeeeeaececeeaeaececeaeaeceeaeaececeeneaeaececeeaeaeseseeaeaeaeeeeaeaeseenetanaenenaes 145 7 13 6 ONOFFCYCLE on off cycle with random mes 148 TAS PIDMNg PID MANAGEMENt E 150 7 13 8 PWMOut PWM output management 152 Mnl151c070 Pag 3 288 Programmazione IEC 61131 3 Eet 7 13 9 SysDMXMhg DMX management 153 7 13 10 lOEncoder incremental encoder over O ia 155 7 13 11 GetlS01155Crc calculate CRC according ISO 156 7 13 12 IODataExchange exchange data by using logic HO 157 7 13 13 Average value average iii 159 7 13 14 HIDCIKDtaReader HID RFID ddockidatareader 160 7 13 15 Linearize linearize a non linear value ee cece cee eceee cece ee eeeaeeeaeeeaeseceeeseeeeeeeeneseneeeaeaeaeaeaeaeaeaeaeaeatanes 162 7 13 16 ValueScale scalesavalue rror nrnrrnranrnr annern arnan r r
97. 10 27 0000 Sp 15 10 27 0000 Sp Mnl151c070 3 46 65 eC eC oF liHelloa Hello 0D DA 3 46 65 6C GL oF liHella 2 Hello OD DA 3 46 65 eC aC oF liHelloa 2 Hello OD DA 3 46 65 eC GL oF 21 0D DA 21 UD DA zL1 OD DA zl OD DA 23 21 10 2013 15 11 48 Disconnection 192 188 0 182 23 21 10 2013 15 11 48 Stop 21 10 2013 15 11 55 Connection 192 188 0 182 23 31 10 2013 15 11 55 Start Commands Timed Commands a EC SpyDate SOD H ki Pag 69 288 Programmazione IEC 61131 3 7 6 Funzioni ed FB per gestione Data Ora Type Library 5 Fleet Version 7 6 1 SysETimeToDate epoch time to date conversion FB Embedded 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 lEpeentime T variabile di sistema SysDateTime in uscita dal blocco funzione avremo i valori di data espressi nel formato Giorno Mese Anno ed Ora Minuti Secondi tn GE dl Month Day Wre ekD ay Hour Minute EpochTime uont Occorre specificare la data espressa in epoch time Done 6001 Attivato al termine della conversione Fault B001 Errore di conversione viene attivato in caso di errore nella conversione Year uint Ritorna il valore di anno Range da 1970 a 2099 Month wsint Ritorna il valore di mese dell anno Ra
98. 151c070 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 243 288 Programmazione IEC 61131 3 Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 10002010 Valore di File non definito 10002020 FB protetta terminato tempo funzionamento in modo demo 10002050 Timeout esecuzione 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 nell
99. 288 Programmazione IEC 61131 3 3 Flat Esempi Nell esempio viene acquisita una cella di carico con fondo scala da 20 Kg e 1 956 mv V La cella viene tarata con un peso di riferimento da 400 grammi Attivando Di00MO00 viene abilitata l acquisizione gli ingressi Di01M00 e Di02M00 permettono di calibrare la cella Attenzione le variabili OfsCalibration e FSCalibration devono essere definite RETAIN Nella variabile Weight viene ritornato il peso Avendo definito SGaugeFullScale in Kg anche Value sar espresso in Kg Definizione variabili Mame Type Address Array Init value Attribute Description 1 Weight REAL Auto Mo 0 Weight Kg d DACH StrainGaugeAcg Auto Mo 0 i Strain gauge acquisition Esempio LD SGACG StrainGaugeAcg Dido MOO Pp_ ma Enable Enabled DO MOO P K ts alibration Done bio2 MOD P K DOE BC albraton Fault pn Address Value o Channel AD_VIN_VREF_ _ 128 Mode 100 0 FilterCt oas FSReference 20 0 SGaugeFullScale 1 956 SGaugeRatio wk OfsCalibration OfsCalibration 3 FSCalibration ADR FSC alibration KE Mnl151c070 Pag 138 288 Programmazione IEC 61131 3 3 Flich 7 13 Funzioni ed FB di utilit generale Library Version 7 13 1 DB100AddOffset returns DB100 address offset ePLCUtyLib SFR054A400 Questa funzione ritorna l indirizzo della locazione di memoria all interno della DB100 il cui offset O00 Add Ozet fornito come parametro
100. 56 9 1 7 ACCesso Epoch time da Be ee 257 9 1 8 Lettura Epoch time da ane elle TC 257 9 1 9 Scrittura Epoch time da modhbus iii 257 10 Creazione pagine web utente nen nr rr nrnrr nenne 258 10 1 Criteri per realizzazione D n 259 102 AC INS AAI Der TE 260 TO OMA Ann 261 WO Gerd en leie e EE 261 A E CAMPO e KT 262 10 3 3 E ln le Lee ele 262 10 34 eS MN sce sc geet ee aloni SE ear 262 E Ee un e E E 263 E e SP MAM cesses eects ce ed Seats eee ese es ese E donk eee deta eects cu pone neat cou ei 263 RO EE ln 263 10 5 AICUNI GSC le eesssiia a E Ea T A a aa 264 10 6 LOGIGIO gestione VO VO ONG EE 265 10 7 COMPort parametri comunicazione ser le i 266 1076 UR ZIOM AV AS CMO EE 267 a WR le En eee earn 268 WEE le RE HE DWORD rai 268 Vile WO vanabile WORD Lila 268 Tha So WI valabile BY Ue eis te eee ti 269 11 4 Espandere DWORD E LE iero iero 270 11 5 Comprimere 32 BOOL in DWORD iii 271 11 6 Definire caratteri ascii non stampabili i 212 NS E AE E TE EEA 273 Mnl151c070 Pag 5 288 Programmazione IEC 61131 3 Eet WAG CONV Ee TC MOO E el ME 274 119 Usor Informations e Eed e EE 276 12 gt ESCM di PFOG lam AZ ONG EE 211 12 1 BiDlioteca COIN le ian 211 12 2 Definizioni I O logici negli eSsemPpi iii 278 12 3 Esempiorii con LogiClab asl 219 12 3 1 Elenco programmi di esempio ii 280 MES EE le Le e EE 281 Ue i EE TSU ZIM Hee EE
101. 7 13 3 BlinkValue blink out value PLCUtyLib SFR054A800 Questo blocco funzione gestisce una uscita lampeggiante con possibilit di definire il numero di Blink val lampeggi Attivando l ingresso Enable e definendo il numero di lampeggi in BlinkNr l uscita OutBit SAGRE inizia a lampeggiare con il numero di lampeggi definito Enable OutBit Il numero di lampeggi definito in decine ed unit il valore delle decine riportato con un lampeggio aii lento 1 Sec mentre il numero delle unit riportato con un lampeggio veloce 250 mS Una pausa di 3 Sec separa le sequenze di lampeggio Enable eco Abilitazione blocco funzione attivandolo viene gestita l uscita OutBit lampeggiante Disattivandolo l uscita viene resettata BlinkNr usn Definisce il numero di lampeggi dell uscita OutBit Definendo tempo 0 l uscita si disattiva OutBit 001 Stato uscita lampeggiante Esempi Attivando l ingresso digitale DiI00M00 l uscita digitale Do00M00 lampeggia con 2 lampeggi lenti 1 Sec 3 lampeggi veloci 250 mS ed una pausa di 3 Sec Disattivando l ingresso digitale Di0OMO0 l uscita digitale DoOOMOO si azzera immediatamente Definizione variabili Mame Type Address Array Init value Attribute Description 1 FHData Blinkvalue Auto Mo O S FA BlinkYalue data Esempio LD PTP14A100 LD_BlinkValue FAD ata BlinkYalue DOO MOO Do OM PAA Enable OutBit 23 BlinkNr Esempio IL PTP14A100 IL_BlinkValue CAL FBData Ca
102. 76 288 Programmazione IEC 61131 3 Type Library Version 7 7 3 Sysfgetc get character from file Function Embedded XTarget 07 0 Questa funzione ritorna un carattere dal flusso dati stream indicato dal parametro File Swsfgeto precedentemente aperto dalla funzione Sysfopen File La funzione ritorna il carattere letto dallo stream In caso di errore o se nessun dato dallo stream la funzione ritorna EOF Per essere certi che vi siano caratteri dallo stream e possibile utilizzare la funzione SysGetlChars che ne ritorna il numero Parametri funzione File ep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna UNI 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 9972990 Non implementata nel simulatore Esempi Viene eseguita apertura porta seriale COMO e controllato se caratteri disponibili dalla porta Se almeno un carattere disponibile ne viene eseguita lettura ed il carattere letto trasferito nella variabile Ch Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo Port COMO file pointer 2 Jh INT Auto Mo O e Character read Esempio ST PTP116A100 ST_Sysfgetc Here the COMO port is opened in read write
103. 8 Programmazione IEC 61131 3 Eet 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 10033010 Valore di File non definito 10033050 Errore di timeout esecuzione 10033060 Errore esecuzione 10033100 19 Errore in ricezione frame Carattere errato lunghezza errata 10033150 Errore in ricezione frame LRC modbus errato 10033200 3 Errore trasmissione frame risposta 10033501 Eccezione 01 llegal function comando ricevuto non tra quelli gestiti 10033502 Eccezione 02 Illegal data address comando ricevuto ha indirizzo o numero dati fuori range 10033503 Eccezione 03 Illegal data value comando ricevuto ha campo dati fuori range 10033504 Eccezione 04 Failure in associated device comando ricevuto contiene imprecisioni Mnl151c070 Pag 242 288 Programmazione IEC 61131 3 8 1 7 ModemCore modem core management Questo blocco funzione gestisce un modem connesso al dispositivo di I O definito in File questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di EE protezione vedi protezione funzioni e blocchi funzione E 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 controll
104. 8300 2 Errore nel valore ora UTC Mnl151c070 Pag 204 288 Programmazione IEC 61131 3 3 Flich 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 6E SMode setShiode Auto No O Serial mode FB data Esempio LD Mnl151c070 Pag 205 288 Programmazione IEC 61131 3 Get s Type Library Version 7 19 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 WSpeed WPAngle L FB controlla correttezza dei campi della sentenza e ne estrae le informazioni di velocit e direzione L us
105. D FBData Done ST Do00M00 The output is active if data is set LD FBData Fault ST Do01M00 The output is active if execution fault Esempio ST PTP116A100 ST_SysSetAnOut Manage analog output 0 on module 0 FBData Value AnaOut Store the ouput value FBData Address 0 Channel 0 Mode DA VOLT 0 10 Call the SyssetAnOut function block Do00M00 FBData Done The output is active if data is set Do01M00 FBData Fault The output is active 1f execution fault Mnl151c070 Pag 126 288 Programmazione IEC 61131 3 Library Version Embedded XTarget 07 0 7 12 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 Channel Fault a Mode Value Sys Get Counter E prevista la gestione del reset valore di conteggio e della inversione conteggio In base alla definizione di Mode possibile gestire conteggio su fronte positivo negativo o su entrambi i fronti dell ingresso clock del contatore Se il modulo che gestisce il contatore lo prevede possibile anche amp eunt definire comandi hardware Ingressi logici di reset conteggio e di inversione conteggio Reset Address usint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione counter Ran
106. DD 1 0 2 0 Result as 3 0 ANY_NUM MUL ANY_NUM ANY_NUM Esegue moltiplicazione tra due numeri Result MUL 1 0 2 0 Result is 2 0 ANY_NUM SUB ANY_NUM ANY_NUM Esegue sottrazione tra due numeri Result SUB 2 0 1 0 Result is 1 0 Pag 25 288 Programmazione IEC 61131 3 Eet DIV ANY_NUM DIV ANY_NUM ANY_NUM Esegue divisione tra due numeri Result DIV 2 0 1 0 Result is 2 0 Considerazione a parte va fatta per l operatore modulo MOD L aritmetica modulare si applica ai soli numeri interi nel quale i numeri si avvolgono su se stessi ogni volta che raggiungono i multipli di un determinato numero n detto modulo L operazione Result x MOD 10 dar come risultato valori compresi tra 0 e 10 per qualsiasi valore assuma x L operazione Result x MOD 1000 dar come risultato valori compresi tra 0 e 1000 per qualsiasi valore assuma x Mnl151c070 Pag 26 288 Programmazione IEC 61131 3 Eet 6 2 Funzioni stringa LogicLab supporta tutte le funzioni di gestione stringa richieste dalla norma CEI EN 61131 3 nella Parte 3 Linguaggi di programmazione Riporto di seguito un elenco delle funzioni supportate ed un esempio di utilizzo in linguaggio ST CONCAT DELETE FIND INSERT LEFT LEN MID REPLACE RIGHT Mnl151c070 STRING CONCAT STRING S0 STRING S1 Concatena le stringhe SO ed S1 AString Hello BString World CString CONCAT AStrin
107. D_THERMOCOUPLE E USINT 65 Thermocouple E type Celsius degree AD_THERMOCOUPLE J USINT 66 Thermocouple J type Celsius degree AD_THERMOCOUPLE_K USINT 67 Thermocouple K type Celsius degree AD_THERMOCOUPLE_N USINT 68 Thermocouple N type Celsius degree AD_THERMOCOUPLE R USINT 69 Thermocouple R type Celsius degree AD_THERMOCOUPLE_S USINT 70 Thermocouple S type Celsius degree AD_THERMOCOUPLE_T USINT 71 Thermocouple T type Celsius degree AD_VIN_VREF_G_1 USINT 90 Voltage in Voltage reference with gaiin 1 AD_VIN_VREF_G_128 USINT 97 Voltage in Voltage reference with gaiin 128 AD_VIN_VREF_G_16 USINT 94 Voltage in Voltage reference with gaiin 16 AD_VIN_VREF_G_2 USINT 91 Voltage in Voltage reference with gaiin 2 AD_VIN_VREF_G_32 USINT 95 Voltage in Voltage reference with gaiin 32 AD_VIN_VREF_G_4 USINT 92 Voltage in Voltage reference with gaiin 4 AD_VIN_VREF_G_64 USINT 96 Voltage in Voltage reference with gaiin 64 AD_VIN_VREF_G_8 USINT 93 Voltage in Voltage reference with gaiin 8 AD_VOLT_0_1 COMMON USINT 5 Voltage from 0 to 1 V Common mode AD_VOLT_0_1 DIFFER USINT 7 Voltage from 0 to 1 V Differential mode AD_VOLT_0_10 COMMON USINT 2 Voltage from 0 to 10 V Common mode AD_VOLT_0_10 DIFFER USINT 9 Voltage from 0 to 10 V Differential mode AD_VOLT_0_ 125 COMMON USINT 1 Voltage from 0 to 1 25 V Common mode AD_VOLT_0 125 DIFFER USINT 8 Voltage from 0 to 1 25 V Differential mode Mnl151c070 Pag 21 288 Programmazione IEC 61131 3 Eet 5 10 Digit
108. E ADR CANMsg MsgID NrOfChars SysVarfprintf Fp Data 0 302XSr n UDINT TYPE ADR CANMsg Data 0 END_IF Mnl151c070 Pag 108 288 Programmazione IEC 61131 3 Type Library Version 7 10 4 SysCANTxMsg transmit a CAN message Function Embedded XTarget 07 0 Questa funzione trasmette un messaggio CAN occorre creare il messaggio e poi passarne alla Sys CANTxMsg funzione l indirizzo in Msg a sg La funzione ritorna TRUE se messaggio trasmesso Parametri funzione Msg syscanmessace Indirizzo buffer messaggio da trasmettere La funzione ritorna POUE TRUE Messaggio trasmesso Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9954005 Funzione non supportata 9954990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue la trasmissione di un messaggio CAN Definizione variabili Mame Type Address Array Init value Attribute Description 1 CAN sg SYSCANMESSAGE Auto Mo 0 CAN message d TKOK DOOL AUTO Mo FALSE i Transmission Ok Esempio ST Here check if there is a space in Tx buffer and send a CAN message IF SysIsCANRxTxAv TRUE THEN CANMsg RmReq FALSE eFALSE Data frame eTRUE Remote request CANMsg Length 2 Data length CANMsg MsgID 16 00000000 Message ID FF Bit 31 11 or 29 Bit CANMsg Data 0 16 01 Message data CANMsg Data 1 16 00 Messag
109. E i E eid cei a CI Constants a Valori iniziali el Fietan vensbler period 100 0 CI Doeec paranstati i Tiii a luskel dE D Viaggi en di quadia di fr pa F oi Tau woke Leila si IF a HOD 32 gt 16 d a b ll Fup IF EEST T roll completed riea Loading image file sottpanelvork 189 File scitpoanelnzrk ikg updated i a leng T an Generating parsneters tile softpanelvork par coca ple bed le otea Mee k T nei Compiling programs completed anpe ang Wi ve Aneel ST ned Cena ling unction Ble2ks canals tgd Sec di sain rgi L t red ET ech UT ee rt soh LT noe H Tupa veritit A Compa Ling functions cosplatad Preorocestina user defined data di eeclrdbtuw Il compilatore di LogicLab genera direttamente il codice macchina per il processore del sistema target garantendo una alta efficienza prestazionale Il tool stato sviluppato da Axel una azienda italiana con pluriennale esperienza nella produzione di software per automazione industriale e personalizzato per l utilizzo con i nostri dispositivi Mnl151c070 Pag 7 288 Programmazione IEC 61131 3 3 Flich 2 Risorse del sistema Gli I O logici sono automaticamente gestiti in immagine di processo dal sistema operativo che provvede a trasferire lo stato di tutti gli ingressi logici nella immagine degli ingressi in memoria di sistema ed a trasferire il valore presente nella immag
110. HEN 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 Di00M00 THEN SetTime SysGetSysTime TRUE StartTime END IF END IF Calcolo timeout Essendo il valore di tempo di sistema ritornato dalla funzione un numero UDINT che si incrementa ogni uS ed al valore massimo esegue overflow a zero non possibile effettuare comparazioni dirette con il tempo di riferimento ma occorre sempre eseguire la differenza Nel seguente esempio viene attivato Timeout se l ingresso DIO0MO00 rimane attivo per pi di un secondo IF NOT D100M00 THEN TimeBf SysGetSysTime TRUE ELSE LE SysGetsysTime TRUE TimeBf gt 1000000 THEN Timeout TRUE END LE END IF Lo stesso esempio scritto in questo modo non funziona correttamente IF NOT D100M00 THEN TimeBf SysGetSysTime TRUE ELSE LE SysGetsysTime TRUE gt TimeBf 1000000 THEN Timeout TRUE END LE END IF Mnl151c070 Pag 59 288 Programmazione IEC 61131 3 3 Flat Semplice cronometro Questo esempio realizza un semplice cronometro per misurare il tempo che intercorre tra un comando di start ed il comando di stop Utilizzando ad esempio due fotocellule una sulla linea di start ed una sulla linea di stop di un percorso possibile calcolare il tempo di percorrenza espresso in US Attivando l ingresso di start Di0OM
111. HMIBuildinID in uscita dal Wo e blocco funzione a eady File Fault Attivando l ingresso Enable si attiva l uscita Enabled e viene gestito il terminale _ umiuitinio keyUP visualizzando i messaggi definiti nel terminale da LogicLab Nell ingresso File occorre passare lo stream del dispositivo di I O utilizzato per la gestione Ritornato dalla funzione Sysfopen Il FB ritorna in uscita lo stato di tutti i tasti del terminale e questo permette di utilizzarli nel proprio programma come comandi L ingresso SpyOn se attivo permette di spiare il funzionamento della FB In caso di errore esecuzione viene attivata per un loop l uscita Fault SFRO70A000 HRT Builtin Meth og Key Di KeyLEF T KeyRIGHT keyF UN KewENT Enable B001 Comando di abilitazione blocco funzione SpyOn soo Se attivo permette di spiare il funzionamento della FB TFlags Description 16 00000001 Rx Ricezione dati da terminale 16 00000002 Tx Trasmissione comandi display 16 00000004 Tx Trasmissione dati display 16 00000008 Tx Trasmissione comando inputazione dati File FILEP Flusso dati stream ritornato dalla funzione Sysfopen ALevel USINT HMIBuiltInID uDINT Enabled 8001 Livello di accesso ai messaggi ID gestione messaggi in uscita dalla FB HMIBuiltInMessages Attivo su abilitazione blocco funzione Ready 6001 Attivo se l hardware display pronto Fault B001 Attivo per un loop su errore esecuzione KeyUP 8001 Stato tast
112. I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Attivazione comandi su input D100M00 DiPls 0 CLK D100M00 IF DiPls 0 0 THEN DMXData 0 0 Preset dispositivo con indirizzo 1 DMXData 1 0 Preset dispositivo con indirizzo 2 DMXData 2 0 Preset dispositivo con indirizzo 3 DMXData 3 0 Preset dispositivo con indirizzo 4 DMXData 4 0 Preset dispositivo con indirizzo 5 FBDMX Start TRUE Start END_IF Attivazione comandi su input Di01M00 DiPls 1 CLK D101M00 IF DiPls 1 Q THEN DMXData 0 10 Preset dispositivo con indirizzo 1 DMXData 1 20 Preset dispositivo con indirizzo 2 DMXData 2 30 Preset dispositivo con indirizzo 3 DMXData 3 40 Preset dispositivo con indirizzo 4 DMXData 4 50 Preset dispositivo con indirizzo 5 FBDMX Start TRUE Start END_IF x cessare rr rare Lo ESEGUO GESTIONE PROTOCOLLO DMX I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Gestione protocollo DMX FBDMX Status 0 Status byte FBDMX Devi
113. I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I On digital input activation the HTTP page is requested IF D100M00 lt gt Pulse THEN Pulse D100M00 Auxiliary pulse IF Pulse THEN ABFr SySVarsnprintrf ADR TxD 128 To s STRING TYPE ADR I sbertanadelsist it ABf SysVarsnprintf ADR TxD LEN TxD 128 LEN TxD 26Subject s STRING TYPE ADR Subject ABf SysVarsnprintf ADR TxD LEN TxD 128 LEN TxD 26Text s STRING TYPE ADR Text HTTP Send TRUE END_IF END_IF Check the HTTP request answer IF HTTP Done THEN IF FIND RxD Ok 0 THEN Result FALSE ELSE Result TRUE END LE END IF End of file Vediamo di spiegare come funziona il programma sul fronte di attivazione dell ingresso Di0OMOO viene effettuata la connessione al server www MyServer com e richiesta pagina eMailSend php In linea alla chiamata della pagina sono posti i campi GET To sbertana elsist it amp Subject Subject amp Text Text Da notare che il carattere amp stato sostituito da 26 La pagina eMailSend php sul server contiene uno script PHP del tipo lt php SHeaders MIME Version 1 0 n SHeaders Content type text html charset iso 8859 1 n SHeaders To REQUEST To n SHeaders From n mail REQUEST To REQUEST Subject REQUEST Text SHeaders
114. INT allocata all indirizzo DB 100 12 la seguente Sorgente html pagina lt form id MyForm name MyForm method post action DPage htm gt DB100 12 amp nbsp lt input name UINT 12 type text size 5 maxlength 10 value lt d UINT 12 gt gt amp nbsp lt input type submit id MyButton value Save gt lt form gt In pratica un campo lt form gt con id MyForm contiene una casella di testo con id UINT12 di dimensione 5 caratteri con un massimo impostabile di 10 caratteri Nel form trova posto anche un pulsante di tipo submit la cui pressione esegue l invio dell intero modulo Definendo nel browser il valore della casella di testo ed agendo sul tasto Save il dato inputato verr inviato al server che visualizzer la pagina DPage htm e contemporaneamente provveder a scrivere il valore definito nella variabile UINT DB100 12 10 4 1 ARG name Il campo name dell argomento molto importante in quanto definisce il tipo di variabile PLC da impostare Sono gestiti tutti i tipi definiti nella IEC61131 ed il suo indirizzo i due campi devono essere separati da uno spazio Un nome del tipo UINT 12 indicher una variabile UINT allocata ad indirizzo DB 100 12 Un nome del tipo REAL 128 indicher una variabile REAL allocata ad indirizzo DB 100 128 Quindi un nome del tipo STRING 1000 16 indicher una variabile STRING di lunghezza 16 caratteri allocata ad indirizzo DB 100 1000 10 4 2 ARG id Il campo id dell
115. IP 192 168 0 33 raggiungibile in tal caso si attiva l uscita Reached Definizione variabili Mame Type Address Array Init value Attribute Description 1 Reached BOOL Auto Mo FALSE A IP address reached d IPRch SyslPReach Auto Mo S FB IP reach Esempio LD IFR ch SyslF Reach Reached Enable Done 192 168 0353 PeellP Fault Refresh Mnl151c070 Pag 189 288 Programmazione IEC 61131 3 5 Fleet Library Version i Type 7 17 2 SysSktListen Socket listen FB Embedded XTarget 07 0 Questo blocco funzione forza il socket nella condizione di listening occorre passare alla FB un flusso dati stream indicato dal parametro File precedentemente aperto dalla funzione See Sysfopen Enable Done parametri MyIP e MyPort indicano l interfaccia di rete e la porta su cui il socket in ascolto ia di MyIP pu essere lasciato non connesso ed in tal caso viene utilizzata l interfaccia ethernet Walt Connect parametri LifeTm FlushTm RxSize TxSize devono essere definiti solo se si tratta di socket yFot ClientiP TCP possono essere lasciati non connessi nel caso di socket UDP LifeTm ClientP ort L uscita Done si attiva se tutti i parametri sono corretti ed il socket stato messo in condizione SORDI di listening Quando un client si connette Solo socket TCP si attiva l uscita Connect e nelle F 5 5 variabili ClientIP e ClientPort sono ritornati l indirizzo IP e la porta connessa al
116. InputString d UDINT TYPE ADR Variable 2 END IF END IF Mnl151c070 Pag 116 288 Programmazione IEC 61131 3 3 Flich 7 12 Funzioni ed FB per gestione moduli periferici Type Library Version 7 12 1 SysPhrinfos get infos from peripheral modules Funzione Embedded XTarget 07 0 Questa funzione esegue l acquisizione di informazioni dai moduli periferici Viene trasferita nella SysPhrinfos variabile stringa il cui indirizzo passato in Info l informazione indicata da nfoID relativa al module modulo indicato in Module InfolD La funzione ritorna TRUE se correttamente eseguita in caso contrario FALSE nfo Parametri funzione Module usin Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito InfolD usint Occorre specificare l ID della informazione richiesta Value Description 0 Ritorna codice prodotto 1 Ritorna codice programma Info stRING 10 Indirizzo variabile dove trasferire l informazione La funzione ritorna SEN FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna con FALSE e con SysGetLastError possibile rilevare il codice di errore 9990100 II modulo indirizzato in Module non presente 9990110 Il valore di InfoID non corretto 9990200 L informazione richiesta n
117. LSE cogo Dame Sys GetLastError TRUE boot Mnl151c070 Pag 63 288 Programmazione IEC 61131 3 Type Library Version 7 5 5 SysPCodeAccept accepts the protection code Function Embedded XTarget 07 0 Alcune funzioni di programma e o blocchi funzione possono essere protetti da un codice che deve essere ordinato separatamente Per abilitare l esecuzione della funzione e o del blocco funzione occorre sbloccarlo definendone il codice con questa funzione La funzione controlla il codice fornito e ritorna TRUE se codice accettato Vedere capitolo Protezione funzioni e blocchi funzione per ulteriori informazioni Parametri funzione Code stRrInc 20 Codice di protezione La funzione ritorna ORA TRUE Codice verificato ID relativo sbloccato FALSE Codice non verificato Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9991100 Valore di Code non corretto 9991990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue il controllo sul codice di sblocco abcdefghijkImnopqrst Se il codice corretto viene attivata la variabile CodeAccepted Definizione variabili Mame Type Address Array Init value Attribute Description 1 CodeAccepted BOOL Auto No FALSE i Protection code accepted d Enabled BOOL Auto Mo FALSE S Function enabled Esempio LD PTP116A000 LD_SysPCodeAccept Says P Code Accept EN EN
118. LSE a Dummy variable A RxChar INT Auto Mo 0 a Received char d R Cmd BOOL Auto Mo FALSE 2 Rx command Esempio LD PTP19A000 SerialEcho 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 Mnl151c070 Pag 79 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 7 5 Sysfread read data from file Questa funzione esegue la lettura di un numero definito di stringhe di lunghezza definita dal flusso 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 FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna WER 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
119. Lo stato dei due ingressi logici copiato nelle uscite D0o00M00 e Do01M00 Lo delle variabili Di00M00 e Di01MO00 trasferito sulle due uscite logiche Definizione variabili Mame Type Address Array Init value Attribute Description 1 CPU CPUModulelo Auto No O n CPUMOodulelO function block d Dummy BOOL Auto Mo FALSE Dummy variable Esempio LD PTP114A200 LD_CPUModulelO CPUIO CPUModulelO Dummy Enabled DOO woo be DOOO Done Di04 MODO be DOO Fault Da00h00 DIOO Dot Moo Mnl151c070 Pag 135 288 Programmazione IEC 61131 3 Heap i Type Library Version 7 12 12 Sysl2CWrRd writes reads on I2C extension bus Function Embedded XTarget 07 0 Questa funzione gestisce la scrittura lettura sul bus DC di estensione L utilizzo di questa Sys l2CwrRd funzione permette di poter gestire qualsiasi componente I2C connesso al bus di estensione Address Attenzione siccome il bus I2C utilizzato per l accesso ai moduli di estensione per rBytes non rallentarne l accesso si consiglia di eseguire comandi I2C non pi lunghi di 4 _ wWitButter bytes in scrittura e lettura Nel caso serva gestire pi bytes si consiglia di spezzare il _ RdBytes comando in pi comandi consecutivi RdBuffer Parametri funzione Address usint Indirizzo dispositivo I2C range da 16 00 a 16 1F da 16 30 a 16 7F WrBytes usin Numero di bytes dati da scrivere 0 se solo lettura WrBuffer usint Indirizzo buffer memor
120. ND IF END IF Collegando un terminale seriale alla porta COMO impostato a 115200 e 8 1 vedremo un elenco del tipo Ri Se Rn 488 Rn 898 Ee Rn 944 Mnl151c070 Pag 62 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 5 4 SysGetLastError get last error Questa funzione ritorna il numero dell ultimo errore rilevato da una funzione e o da un blocco SysGetLastError funzione Errori di esecuzione 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 valore di errore FALSE Viene ritornato il numero salvato dalla precedente chiamata con Cmd TRUE La funzione ritorna AONT 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 No DU x Error number Esempio LD CPUID CPUModulelO Enable Enabled FA
121. NT in bo LogInp 1 Inptalue bi Loglinp i bz Loglnp i b3 Loginp 4 b i Loginp S b5 Loglnp bp LogInp Mnl151c070 Pag 120 288 Programmazione IEC 61131 3 3 Flich SC Type Library Version 7 12 3 SysSetPhrDO set peripheral digital output FB Embedded XTarget 11 0 Questo blocco funzione esegue impostazione delle uscite digitali sui moduli periferici indirizzati con Sys SetPhr oo Address ed in base al comando di Mode definito a Address Done Per non perturbare la gestione delle uscite logiche eseguita dall immagine di processo in Maske __hode Fault possibile definire su quali output si desidera operare In pratica l FB operer solo sugli output il cui Da l Value relativo bit di mask attivo hlask Per gestire le uscite digitali presenti sul modulo CPU occorre definire Address 255 e Mode DO 8 LL Address usint Occorre specificare l indirizzo del modulo su cui eseguire l impostazione delle uscite digitali Range da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo 255 indica il modulo CPU Mode usint Occorre specificare il modo di gestione uscite digitali Digital output mode Value upin Impostare il valore da trasferire sulle uscite digitali Mask upint Maschera outputs da gestire Done 8001 Dato settato Viene attivato per un loop al termine del settaggio delle uscite digitali Fault Boot Errore Viene attiv
122. NY_INT P Rimpiazza L caratteri della stringa SO con la stringa S1 a partire dalla posizione P AString Hello World BString REPLACE AString to you Te 5 7 STRING RIGHT STRING IN ANY_INT L Ritorna gli L caratteri piu a destra della stringa IN AString Hello World Bstringi RIGHT Astring 7 BString is World At Pag 27 288 Programmazione IEC 61131 3 Eet 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 programmi ST basta indicarne il nome per essere eseguite 7 0 1 Funzioni ed FB embedded Con l ambiente di sviluppo LogicLab vengono fornite funzioni e blocchi funzione FB embedded che permettono di accedere alle risorse hardware e software del sistema Slim line Le funzioni e le FB embedded sono visualizzate da LogicLab nella finestra delle librerie Se la finestra non visualizzata occor
123. Nome dell applicazione SysUSetA STRING 16 Valore impostato da utente in variabile Set A vedi esempio SysUSetB STRING 16 Valore impostato da utente in variabile Set B vedi esempio SysUSetC STRING 16 Valore impostato da utente in variabile Set C vedi esempio SysUSetD Mnl151c070 STRING 16 Valore impostato da utente in variabile Set D vedi esempio Pag 15 288 Programmazione IEC 61131 3 Eet 4 2 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 Type Description SysTimelnit BOOL Attivata da programma utente o da debug permette di inizializzare il calcolo dei tempi di loop e di esecuzione delle task PLC La variabile viene automaticamente resettata dal sistema SysDateTime UDINT Data ed ora di sistema Epoch time Modificando il valore verr automaticamente aggiornato anche il real time clock SysLastError UDINT Last error ritorna il valore dell ultimo errore verificatosi nella esecuzione di una funzione o di un blocco funzione elenco errori SysUlnfoA STRING 16 Valore ritornato ad utente in variabile Info A vedi esempio SysUIn
124. O Enabled Cod abecdetghijkimnopaqrst Se CodeAccepted Esempio ST Check the protection code CodeAccepted SysPCodeAccept abcdefghijklmnopgrst Protection code accepted Mnl151c070 Pag 64 288 Programmazione IEC 61131 3 Library Version 7 5 6 SysGetCrc get CRC value Embedded XTarget 07 0 Questa funzione esegue il calcolo del CRC Cyclic Redundancy Check Controllo Ciclico di SysGetCre Ridondanza su di un area dati Il calcolo effettuato secondo le specifiche richieste dal protocollo modbus Rtu ote Biter Occorre passare alla funzione l indirizzo del buffer di memoria Buf ed il numero di bytes ByteNr su cui Lat Crelni eseguire il calcolo del CRC Buf usint Indirizzo dell area di memoria su cui eseguire il calcolo del CRC ByteNr unt Numero di bytes su cui eseguire il calcolo del CRC a partire dall indirizzo definito in Buf CRCini unt Valore di inizializzazione del CRC da calcolare CRC om 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 R
125. O0 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 Mo O 7 Start time UD d DelayTime WONT Auto Mo U n Delay time UD Esempio LD PTP119A000 Sys Get Sys Ti me Fidd MOO EN ENC 2 TRUE StartTime Sys Get Sys Ti me Di0 1 MOO EN ENO e TRUE ML DelayTime StantTime Mnl151c070 Pag 60 288 Programmazione IEC 61131 3 Type Library Version 7 5 2 SysSetTaskLpTime set task loop time Function Embedded XTarget 07 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 Ta li esecuzione Time SysSetTaskLpTime Se il tempo impostato non compreso nel range definito o se il rapporto tra i tempi di esecuzione della task fast rispetto alla slow non sono coerenti la funzione non modifica i tempi di esecuzione e ritorna FALSE Di seguito sono riportati i range di tempo definibili per le varie tasks ID_TASK_FAST Range da 100 uS a 10 mS ID_TASK_SLOW Range da 1 a 100 mS Parametri funzione TaskID
126. R DString LEN DString ADR SString SIZEOF SString Return value Mnl151c070 Pag 113 288 Programmazione IEC 61131 3 Type Library Version 7 11 5 SysVarsnprintf variable print to string Function Embedded XTarget 08 0 Questa funzione trasferisce in String la stampa formattata di una variabile Il valore re i ae i Sys Varsnprintt stampato ritornato nella variabile stringa non puo superare la lunghezza definita in Size a String La stringa Format specifica il formato con il quale stampare la variabile Mentre in VarType Size indicato il tipo di variabile ed in VarAdd il suo indirizzo Format La funzione ritorna il numero di caratteri trasferiti nella variabile String EOF in caso di arlype errore a VarAdd Parametri funzione String usint Pointer all array dove deve essere trasferito il risultato della stampa SIZE INT Numero di caratteri da trasferire nella variabile String numero definito comprensivo del codice di fine stringa 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 sint Tipo variabile come indicato nella tabe
127. R mS Done 6001 Impostazione modo eseguito correttamente Fault B001 Errore su esecuzione blocco funzione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10006010 Lettura modo corrente in errore la funzione SysGetSerialMode ritornata con errore probabilmente non stato indicato correttamente il file pointer Fp 10006020 Impostazione modo in errore la funzione SysSetSerialMode ritornata con errore probabilmente uno dei parametri definiti non nel range corretto Mnl151c070 Pag 101 288 Programmazione IEC 61131 3 Esempi EVA 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 carattere 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 Ko FALSE Dummy variable 3 SMode setsMode AUTO Mo 0 Set serial mode d Shiodeok BOOL Auto Mo FALSE Get serial mode ok 5 SModeFault BOOL Auto Mo FALSE set serial mode fault Esempio LD PTP119A000 SendCharacter Sysfopen SysFirstLoop EN FN como MAM ini Mode Shiode SetShlode SysFirstLoop PJ MAPA EN Ten 19200 Baudrate DEI Parity 8 DataBits 1 Stopbits DIR AUTO WO TIMES gt DTRhanagement FALSE DTRComplement FALSE EchoFlush o pTROnTime np
128. REAL Tempo derivativo si ricorda che pi elevato il valore pi veloce la regolazione derivativa a recuperare l errore Il valore espresso in Sec Enabled eco Regolazione PID abilitata Error soo Errore nella esecuzione OUT REAL 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 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 Mnl151c070 Pag 150 288 Programmazione IEC 61131 3 3 Flap Definizione variabili Mame 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 Derivativ
129. 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 Mnl151c070 Pag 285 288 Programmazione IEC 61131 3 5 Flee 10032 10032000 10032999 sHWgSProtocol HW group serial protocol 10033 10033000 10033999 ModbusAsciiSlave modbus Ascii slave 10034 10034000 10034999 SysLogReport send a report to Syslog server 10035 10035000 10035999 StringIloLogFile store string to a log file 10036 10036000 10036999 FileMemoryDump dump memory on file 10037 10037000 10037999 ModemPhoneCall executes a phone call 10038 10038000 10038999 ModbusSlave modbus slave 10039 10039000 10039999 HIDClkDtaReader HID RFID clock data reader 10040 10040000 10040999 MMasterDataTxfer multimaster data transfer 10041 10041000 10041999 DataTxferClient Data transfer client 10042 10042000 10042999 ModemHTTPGet executes a HTTP Get request
130. SpyData Array FALSE FALSE Init value Attribute Description Text string Spy data pulse Auxiliary buffer Init the string to be spied and check if there 1S space to spy TString Hello srsn IF NOT SysSpyData 0 Check if is a second pulse IF SysClock1000 SpyPulse SpyPulse SysClock1000 Send 3 spy data records ABE SysSpyData SPY ASCII AB SysSpyData SPY ASCHEX ABf SysSpyData SPY BINARY 8 Console di spionaggio THEN RETURN END IF Spy data pulse 16 00000001 16 00000010 16 00000100 Text string 0 NULL NULL THEN RETURN END IF ADR Sp 1 ADR Sp 2 ADR Sp 3 ADR TString ADR TString ADR TString Per attivare la console di spionaggio occorre accedere al sistema in Telnet Fare riferimento al Manuale riferimento comandi Telnet CPU SlimLine Con il comando SpyData si attiva la console di spionaggio e sono visualizzati i vari records dati KS ELE by ELSIS LANG e ad File Utilities Elsist SlimLine SFW1s4A80 Code MPS046B200 Login Admin Password Admin gt SpyData Serial 1 Devices Window Help Maintenance shell Spy data active type Ctrl C to exit liHello 2 Hello OD DA 15 10 24 9999 Sp 15 10 24 0000 Sp 15 10 24 0000 Sp 15 10 25 0999 Sp 15 10 25 0000 Sp 15 10 25 0000 Sp 15 10 26 0999 Sp 15 10 26 0000 Sp 15 10 26 0000 Sp 15 10 27 0999 Sp 15
131. T TYPE ADR Values 1 i SysVarsnprintf ADR SysUInfoB 16 d UDINT TYPE ADR Values 1 i SysVarsscanf ADR SysUSetC d UDINT TYPE ADR Values 2 1 SysVarsnprintf ADR SysUInfoC 16 sd UDINT TYPE ADR Values 2 l SysVarsscanf ADR SysUsetD Sg UDINT TYPE ADR Values 3 l SysVarsnprintf ADR SysUlnfoD 16 sd UDINT TYPE ADR Values 3 END IF Mnl151c070 Pag 276 288 Programmazione IEC 61131 3 3 Flich 12 Esempi di programmazione 12 1 Biblioteca esempi Per permettere all utente di disporre di esempi da utilizzare per lo ACS Debug Communication Tools Help sviluppo dei proprii programmi quasi tutti gli esempi riportati sul manuale sono forniti in programmi dimostrativi programmi dimostrativi sono codificati con il suffisso PTP accanto ad ogni fH Generate redistributable source module esempio Se si desidera includere nel proprio progetto un file di esempio del manuale occorre dal men Project scegliere la voce Import object from library Si aprir un dialog box che permette di selezionare la libreria da cui estrarre il programma da importare New object Li Wa Library manager Macros Scegliere il file di libreria desiderato Te o E EJ Esempio Ptp116 000 pll si aprir la finestra con l elenco degli oggetti Functions Variables User Types Filters presenti all interno da cui sar Programs Saia Fal Meme possibile selezionare gli oggetti desiderati
132. TOF Auto Mo U eTOF Timer Off function block d Qulv alue UDINT Auto Mo U Output value Esempio LD P7P115A100 eTOF_LD FBeTOF eTOF DOO MOO Da00h00 4000 PT OutValue Esempio IL CAL FBeTOF Call the eTOF function block LD Di00M00 ST FBeTOF IN Transfer the digital input to timer input LD 1000 ST FBeTOF PT Set the delay time LD FBeTOF Q ST Do00M00 When time is passed the digital output is set LD FBeTOF ET ST OutValue The counting time is copied to variable Mnl151c070 Pag 38 288 Programmazione IEC 61131 3 Library Version 7 2 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 ae tempo trascorso dalla attivazione dell ingresso espresso in mS Disattivando l ingresso JN l uscita Q si IN a disattiva istantaneamente ed il valore di tempo su uscita ET si azzera E LET IN B001 Ingresso timer attivandolo inizia il conteggio e dopo il tempo definito in PT si attiva l uscita Q Disattivandolo l uscita Q si disattiva immediatamente ed il tempo in uscita ET si azzera PT upint Preset tempo definisce il tempo di ritardo dalla attivazione dell ingresso IN alla attivazione dell uscita Q espresso in mS Q 8001 Uscita timer si attiva dopo il tempo defi
133. TRMng lt d USINT 2068 gt Set DTROn lt d UINT 2070 gt Set DTROff lt d UINT 2072 gt lt script gt Mnl151c070 Pag 267 288 Programmazione IEC 61131 3 3 Flich 11 Tips and tricks 11 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 Var0out Output Variable Esempio ST VarOut ROL 16 12345678 16 Output variable zi 11 2 Swap variabile WORD Ecco come utilizzare la funzione ROL per eseguire lo swap su variabile WORD Nell esempio Il valore 16 1234 viene trasformato nel valore 16 3412 e trasferito nella variabile VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarQui WORD Auto Mo g ai 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 Mnl151c070 Pag 268 288 Programmazione IEC 61131 3 3 Flat 11 3 Swap variabile BYTE Ecco come utilizzare la funzione ROL per eseguire lo swap s
134. UNY Spazio disponibile sul flusso dati per trasferire caratteri Se buffer vuoto viene ritornata la dimensione del buffer di trasmissione Codici di errore In caso di errore la funzione torna con 0 e con SysGetLastError possibile rilevare il codice di errore 9967100 Terminale di I O usato in task fast o slow 9967990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue l eco dei caratteri ricevuti dalla porta seriale COMO Viene eseguita apertura porta seriale COMO e controllato se caratteri disponibili dalla porta Se almeno un carattere disponibile ne viene eseguita lettura e successiva ritrasmissione Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo 8 Port COMO file pointer 2 Jh IMT Auto Mo O n Character read Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here execute the received characters echo IF Fp lt gt NULL THEN IF TO BOOL SysGetIChars Fp AND TO BOOL SysGetOSpace Fp THEN Ch Sysfgetc Fp Get input character Ch Sysfputc Ch Fp Put input character END IF END IF Mnl151c070 Pag 83 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 7 9 SysGetRxBSize get file Rx input buffer size Questa funzione ritorna la dimensione del buffer di
135. Version Function Embedded XTarget 07 0 7 9 2 SysSetSerialMode set serial mode Questa funzione imposta il modo di comunicazione definito nella struttura JETEN SYSSERIALMODE sulla porta seriale connessa al parametro File precedentemente aperto dalla funzione Sysfopen Nel parametro Mode occorre definire l indirizzo della struttura SYSSERIALMODE in cui definito il modo seriale da impostare sulla porta La funzione ritorna FALSE in caso di errore lode a File Parametri funzione Mode asyssERIALMODE Indirizzo struttura SYSSERIALMODE con il modo da impostare File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna 9900 FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9994010 Valore di File non definito 9994020 Indirizzo struttura SYSSERIALMODE non corretto verificare Mode 9994050 Errore valore di baud rate 9994051 Errore valore di parit 9994052 Errore valore bit di dato 9994053 Errore valore bit di stop 9994100 Errore esecuzione funzione 9994990 Non implementata nel simulatore Esempi Su fronte attivazione ingresso Di0OMO0 viene salvato il modo impostato sulla porta seriale COMO nella variabile Sm Poi vengono modificati alcuni dati e poi impostata la porta seriale Viene attivata l uscita Do00M00 Definizione variabi
136. Write 100 105 Preset multiple registers Word 16 Bit Write 100 105 150 per l Epoch time Read input registers Word 150 per l Epoch time Preset single register Word 150 per l Epoch time registri 16 Bits del real time clock sono allocati in locazioni consecutive a partire dall indirizzo modbus 100 registri contengono il valore attuale del real time clock e scrivendo un nuovo valore il real time clock verr automaticamente aggiornato Address Register 100 Second Valore secondi Range da 0 a 59 101 Minute Valore minuti Range da 0 a 59 102 Hour Valore ora Range da 0 a 23 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 9 1 5 Lettura RTC da modbus Per la lettura dei registri del real time clock si utilizza il comando Read holding registers Codice 0x03 Dovremo leggere 6 registri consecutivi a partire dall indirizzo di allocazione l indirizzamento di modbus prevede un offset di 1 quindi 99 0x0063 Frames modbus RTU Stringa di comando 01 03 00 63 00 06 35 D6 Stringa di risposta 01 03 OC 00 1E 00 30 00 OB 00 1D 00 09 07 DA A2 32 Frames modbus TCP IP Stringa di comando 00 00 00 00 00 06 01 03 00 63 00 06 Stringa di risposta 00 00 00 00 00 OF 01 03 OC 00 1E 00 30 00 OB 00 1D 00 09 07 DA Come si vede dalla risposta il valore Secondi 30 0x001E Minuti
137. Z Debus Communication Scheme variables selezionare la voce Project Import object from library Si aprir 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 EI Generate redistributable 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 depe 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 eTP D oggetti desiderati Con il tasto Import object gli oggetti Rei selezionati verranno inclusi nel programma D Come si nota dalla foto Ware ype EA Project o Defintions a destra alcuni oggetti Si appaiono visualizzati ES Mnl1532000 Project con un simbolo di B 49 Programs Rm Ton lucchetto questo sta o E Function blocks ad indicare che sono Mee command E I I IO To moot a PLC object select the tab sth the object ype select BLINK GE IPTOIGUI GIOR EG the object and press the Import object button non possono essere eTOF li ach modificati Una volta TP importati nel proprio programma gli oggetti restera
138. _ k Maaae e Emahle Done Did 1 M00 Dogi hig F _ tat Fault Fp gt Frile Value 4 Address Errors oi Measure Mnl151c070 Pag 210 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 20 2 AuroraCEnergy Aurora cumulated energy reading FB ePowerOneLib SFR062A000 Questo blocco funzione esegue la lettura della energia generata da un inverter Aurora della Power One connesso al dispositivo di I O definito in File Questo un blocco funzione cile 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 Start Fault Viene utilizzata la funzione GetPolynomialCRC per il calcolo del CRC dei frame dati da e Fila Walde verso l inverter CA ae 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 dal
139. _SysGetPhrDI FAD ata Sys Get Phir Ol EN ENO o Address Done DIS LL ode Fault FADone FEFault Inps alue Esempio IL PTP116A100 IL_SysGetPhrDI Read Inp 0 to 7 from module with address 0 LD 0 ST FBData Address LD DI 8 LL ST FBData Mode CAL FBData LD FBData Value ST InpValue Esempio ST PTP116A100 ST_SysGetPhrDI Read Inp 0 to 7 from module with address 0 FBData Address 0 FBData Mode DI 8 LL FBData Execute FB InpValue FBData Value Digital input value Mnl151c070 Pag 119 288 Programmazione IEC 61131 3 3 Flat 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 A 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 Loglnp BOOL Auto 0 7 DO 7 Logic inputs Esempio LD PTP119A000 LogicInputAcquisition 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_USI
140. _TYPE gt YaType VarAdd Mnl151c070 Pag 134 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 12 11 CPUModulelO CPU module UO management FB PLCUtyLib SFR054A400 Questo blocco funzione esegue la lettura dei due ingressi digitali e la gestione delle due uscite eva digitali presenti sul modulo CPU dello SlimLine Enable Enabled DOOO Done DOO Fault IDO DO Enable 8001 Abilitazione gestione 1 O attivando l ingresso vengono acquisiti gli ingressi logici e gestite le uscite logiche Disattivando l ingresso vengono disattivate anche le uscite logiche sul modulo CPU DO00 oot Stato della uscita logica DOOO presente sul modulo CPU DO01 B001 Stato della uscita logica DO01 presente sul modulo CPU Enabled eco Blocco funzione abilitato Done 6001 Acquisizione input e gestione output eseguita Fault B001 Errore su acquisizione input e gestione output D100 B001 Stato dell ingresso logico DIOO presente sul modulo CPU DI01 8001 Stato dell ingresso logico DIO1 presente sul modulo CPU Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10001100 Errore su esecuzione funzione lettura ingressi logici da modulo CPU 10001200 Errore su esecuzione funzione di set uscite logiche su modulo CPU Esempi Viene eseguita la lettura dei due ingressi digitali e la gestione delle due uscite digitali presenti sul modulo CPU
141. a Definizione variabili Mame Type Address Array Init value Attribute Description 1 StrButfer STRING Auto 32 String buffer 2 Retvalue DINT Auto No U n Return value Esempio ST The StrBuffer variable is set to O RetValue MemSet ADR StrBuffer 0 32 Return value Mnl151c070 Pag 112 288 Programmazione IEC 61131 3 Type Library Version 7 11 4 MemCopy memory copy Function ePLCAuxLib SFR058A200 Questa funzione copia al massimo il numero di bytes definito in Size a partire dall area di Mem Copy memoria a cui punta Source verso l area che inizia da Destination _ Son La funzione ritorna il numero definito in Size e Source a Size Parametri funzione Destination usint Pointer al buffer di memoria di destinazione Source usINT Pointer al buffer memoria sorgente Size DINT Numero di bytes da trasferire La funzione ritorna RESI Valore definito in Size Esempi Viene eseguita la copia della stringa SString nella stringa DString Al termine la stringa risultante sar HelloHello Definizione variabili Mame Type Address Array Init value Attribute Description 1 RetValue DINT Auto Mo DU E Return value DString STRING Auto 32 8 Destination string 3 Sotring STRING Auto 8 Hello 8 Source string Esempio ST The Sstring is copied twice into DString RetValue MemCopy ADR DString ADR SString SIZEOF SString Return value RetValue MemCopy AD
142. a BOOL Auto 0 7 BOU Tx data to peer Esempio LD SvsFirstLoop Sener Client Dummy Feertk Mnl151c070 Pag 225 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 22 3 BroadcastDataSend broadcast data send FB eMMasterDTxferLib SFR068B000 Questo blocco funzione esegue l invio di dati in modo broadcast Si collega al blocco funzione BroadcastData Send MMasterDataTxfer di gestione dispositivo di comunicazione occorre passare MMDtTxflD in Enable Dione uscita dal blocco funzione server MMDETS ID Fault Il blocco funzione invia i dati presenti nel buffer puntato da TxData con indirizzo di broadcast TxData 16 FF Tutti i sistemi che eseguono la FB DataTxferClient che hanno ToNode uguale al valore di Node definito nella MMasterDataTxfer riceveranno i dati inviati TxFrames DLen In TxData occorre definire l indirizzo del buffer ed in DLen la dimensione in bytes del buffer dati che si vuole scambiare con i sistemi peer Ad ogni attivazione dell ingresso Enable viene eseguito l invio dei dati in broadcast terminato l invio si attiva l uscita Done che rimane attiva sino alla disattivazione dell ingresso Enable Per effettuare una nuova trasmissione occorre disattivare e poi riattivare l ingresso Enable Enable B001 Comando di abilitazione blocco funzione MMDtTxflD UDINT ID server multimaster in uscita dalla FB server MmasterDataTxfer TxData USINT Punta
143. a EOF Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Offset DINT Numero di bytes dall origine dove posizionare l indicatore di posizione Origin int Occorre specificare la posizione di origine FSeek origin definition La funzione ritorna URI Valore attuale dell indicatore di posizione EOF se errore Codici di errore In caso di errore la funzione torna EOF e con SysGetLastError possibile rilevare il codice di errore 9958100 Funzione richiamata in task fast o slow 9958990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso DI00M00 viene posizionato l indicatore di posizione all inizio del file File txt presente nella directory Storage Definizione variabili Mame Type Address Array niealge een Atti bute Description 1 Fp FILEF Auto Mo O File pointer d FFosition DINT Auto Mo O E File position Esempio LD Sysfopen bidd Moo EN ENC FN Storage SCFile pa Lu Le Systseek EN ENO Fp File Offset LESEERTET s Da FFosition Mnl151c070 Pag 94 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 8 5 SysDirListing directory listing FB Embedded XTarget 10 0 Questo blocco funzione esegue il listing di tutti i files contenuti in una directory occorre Seck eer eect i SysDirListing passare il nome della directory di cui eseguire il listing in PathName Attivando l ingresso Init
144. a acquisizione del livello del segnale 10002300 4 Errore nell invio messaggio SMS 10002350 9 Errore nella ricezione del messaggio SMS Mnl151c070 5 Fleet Pag 244 288 Programmazione IEC 61131 3 Version SFR057C000 Library 8 1 8 ModemCore_v1 modem core management l 7 eModemLib Questo blocco funzione gestisce un modem connesso al dispositivo di I O definito in File a pa n l ModemCore vi questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E comunque possibile utilizzarlo Enable Enabled liberamente in modo test per 30 Min File Done s Z li AutoHanglUp Fault L FB gestisce il dialogo con il modem ne esegue l inizializzazione e ne controlla lo stato controlla se il modem connesso alla rete GSM e ritorna l operatore di rete Operator ed il CH livello del segnale Rssi Nel caso in cui il modem si sganci dalla rete l FB provvede al suo CLIP Rod riaggancio automatico ModemiD L uscita Done si attiva se il modem correttamente inizializzato mentre l uscita Fault si dadi attiva per un loop di programma in caso di errori di gestione RE l l GLIPHumber E previsto un comando PowerOn per la gestione della alimentazione del modem in dl questo modo TER pu spegnere e riaccendere il modem in caso riscontri una non ES Sal funzionalita dello stesso L FB ritorna un ModemID che deve essere
145. a 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 9980990 Mnl151c070 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 acquisizione encoder Il modo di gestione definito in Mode non gestito dal modulo Errore nella gestione lettura encoder dal modulo Non implementata nel simulatore Pag 129 288 Programmazione IEC 61131 3 3 Flt 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 Encoder
146. a lo stato di controlla se il Modem connesso alla rete GSM e ritorna l operatore di rete Operator ed il Ge livello del segnale Rest Nel caso in cui il modem si sganci dalla rete l FB provvede al suo CLIP Red riaggancio automatico ZE le 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 CLIPNumber E previsto un comando PowerOn per la gestione della alimentazione del modem in ei questo modo TER 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 chiamante 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 Boo PowerOn 8001 CLIPRxd 8001 ModemiD unint Modem Tx sTRINGI 256 ModemRx rosen CLIPNumber stRINGI16 Operator stRING 16 RSSI USINT Mnl
147. able Questo blocco funzione esegue controllo se un indirizzo IP raggiungibile viene eseguito l invio del l SyelP Reach comando Ping al sistema e se si ottiene risposta viene attivato Done EN Enable Done La variabile Refresh ritorna la percentuale di tempo trascorsa dall ultima esecuzione del comando AE r egf JU Ping sul sistema Raggiunto il 50 del tempo circa 25 Secondi viene eseguito un nuovo comando Ping Refresh Enable s001 Abilitazione blocco funzione attivandolo viene eseguito un ping ogni 25 Sec PeerlP stRING 15 Stringa di definizione indirizzo IP di cui eseguire la ricerca Done 8001 Attivo se indirizzo IP raggiungibile Risposta da Ping Fault B001 Attivo per un loop di programma se errore gestione Refresh usint Percentuale di tempo da ultima esecuzione Ping Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9974005 Blocco funzione non supportato 9974050 Errore allocazione blocco funzione 9974060 Terminato spazio memoria rilocabile non possibile eseguire ER 9974070 Errore versione blocco funzione 9974100 Blocco funzione eseguito in una task diversa da Back 9974110 Errore indirizzo IP definito PeerlP 9974200 Errore invio richiesta Ping 9974300 Errore risposta a richiesta Ping 9974990 Non implementata nel simulatore Esempi Nell esempio viene controllato se l indirizzo
148. al 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 Mnl151c070 Pag 35 288 Programmazione IEC 61131 3 Library Version 7 1 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 Li S BOOL Set su attivazione del segnale viene attivata l uscita Q1 che rimane attiva anche quando il comando viene disattivato R1 B001 Reset su attivazione del segnale viene disattivata l uscita Q1 prioritario sul comando di set S Q1 B001 Uscita si attiva e disattiva in funzione dei comandi di S set e R1 reset Esempi Sulla attivazione dell ingresso digitale Di00M00 viene attivata l uscita digitale Do00M00 che rimane attiva anche quando l ingresso digitale Di00M00 viene disattivato Per disattivare l uscita digitale Do00MO00 occorre attivare l ingresso digitale Di01MO00 Nota L ingresso digitale Di01M00 ha la priorit sull ingresso digitale Di0OMOO Definizione variabili Attribute Description RS ResetSet function block Mame Type Address Array In
149. al to analog mode definizioni modo gestione uscite analogiche Le definizioni modo di gestione uscite analogiche si possono trovare nella cartella Digital to analog mode Define Description DA CURR_0_20 Current from 0 to 20 mA DA CURR _4 20 Current from 4 to 20 MA DA VOLT_0_10 Voltage from 0 to 10 V DA VOLT_0_ 5 Voltage from 0 to 5 V DA VOLT_M10_10 Voltage from 10 to 10 V DA VOLT_M5_5 Voltage from 5 to 5 V Mnl151c070 Pag 22 288 Programmazione IEC 61131 3 3 Flich 5 11 Spy mode definizioni modo spionaggio dati Le definizioni modo di spionaggio dati si possono trovare nella cartella Spy mode definition Define Description Ascii mode Example 12 26 52 0000 Tx Messaggio 2 Extended ascii mode Example 12 28 47 0000 Tx M 000 OD 0A Binary mode Example 12 26 52 0003 Tx 00 00 00 00 00 00 00 00 SPY_ASCII SPY_ASCHEX SPY BINARY Mnl151c070 Pag 23 288 Programmazione IEC 61131 3 5 Fleet 6 Funzioni definite da LogicLab LogicLab supporta in modo nativo una serie di funzioni che possono essere utilizzata dai vari programmi scritti nei linguaggi supportati Per utilizzare queste funzioni occorre dalla libreria nella sezione Operator and standard blocks attingere la funzione desiderata Nei linguaggi testuali IL ed ST anche possibile scrivere il nome della funzione esattamente cos come definita Library d IH ABS Dv hi LN
150. ali encoder maggiore rispetto al tempo di esecuzione del blocco funzione Quote vum Valore di quota encoder espresso in impulsi Numero tacche giro encoder moltiplicato per 4 Esempi Nell esempio gestita l acquisizione di un encoder incrementale connesso agli ingressi del modulo CPU Ruotando di un giro l encoder il valore di Quote verr incrementato se la rotazione oraria CW oppure decrementato se la rotazione antioraria CCW del numero di tacche giro moltiplicato per 4 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Encoder IDEncoder Auto Mo i S IDEncoder function block 2 CPUID CPUModuleld Auto Mo 0 CPUModulelO function block 3 Quote WONT Auto Mo O i Encoder quote Esempio LD CPUIO Encoder CPUMOoduel0 lO Encoder Gust irstloop Enable Enabled DODO Done 6007 Mnl151c070 Pag 155 288 Programmazione IEC 61131 3 Type Library Version Function PLCUtyLib SFR054A400 7 13 11 GetlS01155Crc calculate CRC according ISO1155 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 ByteMr ByteNr su cui eseguire il calcolo del CRC Buffer usint Indirizzo dell area di memoria su cui eseguire il calcolo de
151. ar Parametri funzione Char usa Carattere da convertire La funzione ritorna et Carattere nel formato maiuscolo Esempi La variabile Lower viene convertita nel corrispondente valore maiuscolo e trasferita in Upper Il valore di inizializzazione 16 61 che corrisponde alla lettera a viene convertito nel valore 16 41 che corrisponde alla lettera A Definizione variabili Mame Type Address Array Init value Attribute Description 1 Lower SINT Auto Mo 1 661 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 Mnl151c070 Pag 56 288 Programmazione IEC 61131 3 Type Library Version Function ePLCUtyLib SFR054B220 7 4 11 LEArrayToVar Little endian array to variable conversion Questa funzione acquisisce il valore da un array little endian Source e lo trasferisce nella LEArrayTovar variabile di destinazione Destination in base al tipo Type di variabile definito E Destination a Source Parametri funzione Type usin Tipo di variabile destinazione come definito nella tabella Variable types definition Destination usnT Indirizzo variabile di destinazione Source usint Indirizzo array sorgente La funzione ritorna BOOL FALSE
152. ar possibile il messaggio definito in Text verr inviato al numero definito in Number Terminato l invio 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 usinty Pointer al numero di telefono a cui eseguire l invio del messaggio Text USINT Pointer al testo messaggio da inviare Done 8001 Attivo per un loop al termine dell invio del messaggio SMS Fault B001 Attivo per un loop se errore invio messaggio SMS Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10005010 ModemiD non definito 10005020 ModemiD non corretto 10005080 Errore case gestione 10005100 3 Errore gestione invio SMS Mnl151c070 Pag 249 288 Programmazione IEC 61131 3 Library Version eModemLib SFR057C000 8 1 12 ModemPhoneCall executes a phone call Questo blocco funzione esegue una chiamata telefonica al numero indicato si collega al blocco f f ModemPhoneCall funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Call Done n i ModemiD Fault Su fronte attivazione ingresso di Call viene prenotata l esecuzione della chiamata non appena Number sa
153. argomento serve a referenziare l oggetto all interno del form in modo da poterlo valorizzare con la funzione SetValues La scelta di definirlo come UINT 12 utilizzata nell esempio puramente indicativa meglio sarebbe utilizzare una definizione che ne riprenda il significato Esempio SetPoint Preset ecc Mnl151c070 Pag 263 288 el Programmazione IEC 61131 3 10 5Alcuni esempi Naturalmente le pagine web vanno create in base alle proprie esigenze inserendo gli oggetti desiderati Per facilitare lo sviluppo delle proprie pagine viene fornito un programma dimostrativo PTP128 000 che contiene una serie di programmi SlimLine e relative pagine web Per testare i vari programmi occorre trasferire sul modulo CPU il programma tramite LogicLab e tramite un client FTP trasferire la pagina htm nella directory Storage Ora da un browser si digita l indirizzo IP del modulo CPU seguito dalla directory e dal nome della pagina Esempio http 192 168 0 122 Storage Page htm Pag 264 288 Mnl151c070 Programmazione IEC 61131 3 3 Flee 10 6 LogiciO gestione I O logici Ecco un esempio di gestione I O logici da pagina web per visualizzare lo stato degli ingressi e delle uscite sono stati utilizzati degli oggetti checkbox Lo stato di attivo indicato dalla presenza del tick per attivare le uscite si pone il tick sulla uscita desiderata e si agisce sul tasto Set outputs soa E http 192 168 0 162 Storage L
154. ask CAL FBData Esempio ST PTP116A400 ST_SysSetPhrDO Manage digital outputs Out 0 to Out 7 on module with address 0 FBData Address 0 FBData Mode DO 8 LL FBData Value OutValue Digital ouput value zi FBData Mask 16 00000001 Output mask FBData Execute FB Mnl151c070 Pag 122 288 Programmazione IEC 61131 3 3 Flich Type Library Version FB Embedded XTarget 07 0 7 12 4 SysGetAninp get analog input Questo blocco funzione esegue l acquisizione dell ingresso analogico dal modulo di acquisizione Il blocco funzione gestisce vari modi di acquisizione in funzione del modulo analogico a cui fa riferimento Address Done Channel Fault Gs Get Anlnp Per acquisire gli ingressi digitali presenti sul modulo CPU occorre definire Address 255 e Mode AD_VOLT_0_10 COMMON Mode Walue Address qusint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione degli ingressi analogici Range da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo 255 indica il modulo CPU Channel usin Occorre specificare l indirizzo del canale sul modulo Range da 0x00 a OxOF Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Mode usin Occorre specificare il modo di acquisizione analogica Analog to digital mode Done 6001 Dato analogico acquisito viene attiv
155. aso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9952050 Errore allocazione blocco funzione 9952060 Terminato spazio memoria rilocabile non possibile eseguire IER 9952070 Errore versione blocco funzione 9952100 FB richiamata in task fast o slow 9952200 Errore esecuzione directory listing 9952990 Non implementata nel simulatore Mnl151c070 Pag 95 288 Programmazione IEC 61131 3 3 Flich Esempi Sul fronte di attivazione dell ingresso digitale Di0OMO0 viene inizializzato il puntatore ai files presenti nella directory Storage Ad ogni attivazione dell ingresso digitale Di01M00 viene ritornato il nome del file presente nella directory Se file presente si attiva per un loop Ok se si tratta di una sottodirectory si attiva per un loop Dir Definizione variabili Mame Type Address Array Init value Attribute Description 1 Dir BOOL Auto Mo FALSE d Is a directory 2 OK BOOL Auto Mo FALSE S File found on Next command 3 File STRING Auto 16 8 File name 4 DI SvsDirListing Auto HO U S FA directory listing Esempio LD DLI Sys Dir Listing bidd rioa Ok cec frit Found Did 1 WoO e HE Fault Dir Storage PathName Ltr Size Time FileName Mnl151c070 Pag 96 288 el Programmazione IEC 61131 3 7 9 Funzioni ed FB per gestione porta seriale sistemi SlimLine dispongono di piu porte seriali in base alla versione del prodotto Le porte serial
156. astError possibile rilevare il codice di errore 9956005 Funzione non supportata 9956990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue il controllo se un messaggio CAN stato ricevuto ne esegue la ricezione ed invia in uscita sulla porta seriale COMO la struttura del messaggio ricevuto Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FIER Auto Mo O Port COMO file pointer d CANN Sy SYSCANMESSAGE Auto Mo O i 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 check if a CAN message is available and receive it IF SysISCANRxTxAv FALSE THEN IF SysCANRxMsg 16 00000000 16 00000000 ADR CANMsg THEN NrOfChars SysVarfprintf Fp Length 04d r n USINT TYPE ADR CANMsg Length NrOfChars SysVarfprintf Fp MsgID 04d r n UDINT TYPE ADR CANMsg MsgID NrOfChars SysVarfprintf Fp Data 0 302XSr n UDINT TYPE ADR CANMsg Data 0 END_IF END_IF Mnl151c070 Pag 107 288 Programmazione IEC 61131 3 Type Library Version 7 10 3 SysCANRxMsg receives a CAN message Function Embedded XTarget 07 0 Questa funzione riceve un messaggio CAN e lo trasferisce nella variabile il cui indirizzo SysCANRxMsq definito in Msg E possibile definire un Mas
157. ato al termine della acquisizione analogica Fault B001 Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Value REAL Ritorna il valore di acquisizione espresso nella unit definita dal modo di acquisizione Potrebbe essere un valore NaN Not A Number ad indicare un problema nell acquisizione tipicamente sensore rotto Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9983050 Errore allocazione blocco funzione 9983060 Terminato spazio memoria rilocabile non possibile eseguire IER 9983070 Errore versione blocco funzione 9983080 Impossibile inizializzare il modulo 9983100 II modulo indirizzato in Address non presente 9983110 1 Il modulo indirizzato non supporta i comandi acquisizione analogica 9983150 Il valore ritornato dal modulo analogico non corretto 9983200 Il modo di acquisizione definito in Mode non gestito dal modulo 9983210 Errore nella acquisizione analogica dal modulo 9983300 Il canale definito in Channel non gestito dal modulo Mnl151c070 Pag 123 288 5 Fleet Programmazione IEC 61131 3 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 va
158. ato in caso di errore nella sequenza di settaggio Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9984050 Errore allocazione blocco funzione 9984060 Terminato spazio memoria rilocabile non possibile eseguire IER 9984070 Errore versione blocco funzione 9984100 II modulo indirizzato in Address non presente 9984110 8 Il modo gestione definito in Mode non corretto 9984200 6 Errore durante l esecuzione gestione uscite digitali sul modulo periferico Mnl151c070 Pag 121 288 Programmazione IEC 61131 3 3 Eet Esempi Viene trasferito il valore della variabile OutValue sulla uscita Out 0 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 7 FA fault Esempio LD P7TP116A400 LD_SysSetPhrDO HU ata Sys Set bb D Dummy EN ENO pn Address Done DIS_LL gt Mode Fault Qutvalue _M alue 16 00000001 Max FADone FEFault Esempio IL P7P116A400 IL_SysSetPhrDO Manage digital outputs Out 0 to Out 7 on module with address 0 LD 0 ST FBData Address LD DO 8 LL ST FBData Mode LD OutValue LD FBData Value LD 16 00000001 LD FBData M
159. atore 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 Mnl151c070 Pag 281 288 Programmazione IEC 61131 3 13 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 Operatore Simbolo Esempio Parenthesization Espressione Function evaluation Funzione Argomenti LN A MAX X Y etc Negation Complement NOT Exponentiation SS Multiply R Divide Modulo MOD Add Subtract Comparison e Equality Inequality lt gt Boolean AND amp Boolean AND AND Boolean Exclusive OR XOR Boolean OR OR Mnl151c070 Pag 282 288 Programmazione IEC 61131 3 13 3 Statements linguaggio ST el Nella tabella seguente sono riportati gli operatori utilizzabili nel linguaggio ST Gli operatori sono riportati in tabella in base alla loro priorit dall alto verso il basso quindi le parentesi hanno priorit maggiore su tutti gli altri operatori Statement Esempio Assignment A B CV CV 1 C SIN X FB Invocati
160. attivo permette di spiare il funzionamento FCode della FB Address Se FCode una funzione di lettura il valore delle variabili a partire dall indirizzo definito in Address 27 per il numero di variabili definito da Points viene letto dal sistema slave e trasferito nelle variabili FUfer indirizzate da Buffer IFTime x f f f suore f Timeout Se FCode e una funzione di scrittura il valore delle variabili presenti nel buffer di memoria ae Delay indirizzato da Buffer per il numero di variabili definito da Points inviato al dispositivo slave che lo trasferir nelle sue variabili a partire dall indirizzo definito in Address In caso di errore esecuzione o tempo di esecuzione comando superiore al tempo definito in Timeout viene attivata per un loop di programma l uscita Fault ed incrementato il valore in Errors Enable eco Comando abilitazione esecuzione comando modbus Per rieseguire il comando disabilitare e poi riabilitare questo ingresso SpyOn soo Se attivo permette di spiare il funzionamento della FB File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Type sint Tipo di protocollo modbus O RTU 1 Ascii 2 TCP Node vusint Numero di nodo modbus su cui effettuare il comando Range da 0 a 255 FCode usint Codice funzione modbus da eseguire nel comando Range da 0 a 255 Descrizione Read coil status Massimo 250 coils Read input status Massimo 125 inputs Read holding registers
161. care 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 245 288 Programmazione IEC 61131 3 Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 10002010 Valore di File non definito 10002020 FB protetta terminato tempo funzionamento in modo demo 10002050 Timeout esecuzione 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 9 Errore nella ricezione del messaggio SMS Mnl151c070 5 Fleet Pag 246 288 Programmazione IEC 61131 3 3 Flich Type Library Version 8 1 9 ModemSMSRxCmd receive a SMS command FB eModemLib SFR057A100 Questo blocco funzione esegue la ricezione di un comando tramite un messaggio SMS si collega Node mn ShSRxCmd al blocco funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Enable Done
162. ces 5 Number of devices FBDMX Delay 0 Interframe delay mSec FBDMX DataPtr ADR DMXData Data array pointer FBDMX FB gestione protocollo DMX IF FBDMX Done THEN FBDMX Start FALSE END IF End of file Mnl151c070 Pag 154 288 Programmazione IEC 61131 3 Library Version 7 13 10 IOEncoder incremental encoder over UO l 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 4 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 B00L Abilitazione gestione conteggio encoder Reset B001 Comando di reset quota encoder Attivando l ingresso si azzera il valore di Quote APhase 8001 Ingresso canale A encoder BPhase 8001 Ingresso canale B encoder Enabled eco Conteggio encoder abilitato Error 8001 Attivo per un loop su errore acquisizione encoder Si attiva se la frequenza di ingresso dei segn
163. cita Done si attiva per un loop ad ogni ricezione di sentenza MWv corretta Enable s001 Abilitazione blocco funzione NMEAID wont ID interfaccia con sistema NMEA fornito in uscita dal blocco funzione NMEASInterface Done 6001 Attivo per un loop di programma su ricezione sentenza MWV corretta Fault B001 Attivo per un loop di programma se errore sentenza WSpeed reaL Valore di velocit del vento Nodi WPAngle reat Valore angolo polare Relative direzione vento Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10020010 NMEAID non definito 10020020 NMEAID non corretto 10020100 Errore nel valore di velocit vento Mnl151c070 Pag 206 288 Programmazione IEC 61131 3 Eet 7 20Funzioni 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
164. decimal dati sono scritti in formato esadecimale SpyTrg unin Comando trigger spy dati Nei due bytes pi alti possibile definire due caratteri ascii che saranno ritornati nella riga sul file Nei due bytes bassi possibile definire la dimensione in bytes del dato da spiare SpyPtr usint Puntatore al buffer che contiene i dati da spiare Filename stRING 32 Percorso e nome del file in cui fare log es Storage Spy csv RowLen unint Numero massimo di caratteri costituenti la singola riga del file FileROWS upin Numero massimo di righe nel file Enabled 8001 Attivo su abilitazione blocco funzione Fault B001 Attivo per un loop su errore esecuzione Codici di errore In caso di errore si attiva l uscita Fault e con SysGetLastError possibile rilevare il codice di errore 10043100 FB usata in task fast o slow 10043020 Non stato definito il valore di SpyPtr 10043100 1 Errore cancellazione file 10043200 3 Errore scrittura file Mnl151c070 Pag 251 288 EVA Programmazione IEC 61131 3 Esempi Nel seguente esempio sul fronte di attivazione dell input Di00M00 viene eseguito lo spy della stringa Test message nel file Storage Spy csv Nel comando di trigger SpyTrg sono definiti come caratteri ascii il valore Rx definito il codice ascii del carattere R 16 52 e del carattere x 16 78 Dopo aver attivato alcune volte l input Di00M00 troveremo nel file Spy csv qualcosa di simile a ques
165. di errore 9963100 Terminale di I O usato in task fast o slow 9963990 Non implementata nel simulatore Esempi Se attivo l ingresso Di0OMO0 tutti i caratteri in uscita dalla porta seriale saranno cancellati e l uscita DOo00MO00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo DU S Port COMO file pointer Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END IF Tf the input is active the ouput buffer is cleared IF Fp lt gt NULL THEN IF Di00M00 THEN D000M00 SysFOBfClear Fp END IF END IF Mnl151c070 Pag 87 288 Programmazione IEC 61131 3 Type Library Version 7 7 13 SysFOBfFlush file output buffer flush Function Embedded XTarget 07 0 Questa funzione forza l uscita immediata dei caratteri presenti sul flusso dati stream indicato SysFOBFFlush dal parametro File precedentemente aperto dalla funzione Sysfopen sulla risorsa connessa a File La funzione ritorna FALSE in caso di errore Parametri funzione File rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RSS FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9962100 Terminale di I O usato in task fast o slo
166. dirizzo del buffer dove si trova il valore da wadd scrivere VarAdd a VarType VarAdd Parametri funzione Module usin Occorre specificare l indirizzo di modulo su cui eseguire la scrittura Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito WrAdd un Indirizzo variabile da scrivere come allocata sul modulo periferico VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd wont Indirizzo variabile La funzione ritorna 0994 FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con 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 scrittura della variabile sul modulo periferico 9988990 Non implementata nel simulatore Esempi Attivando l ingresso Di00MO0 viene eseguita la scrittura della variabile UDINT ad indirizzo 16 sul modulo periferico 0 Il valore da scrivere presente nella DB100 ad offset 8 Definizione variabili Mame Type Address Array Init value Attribute Description 1 VarAdd DB100Addofset Auto Mo O Y Variable address calculation Esempio LD VarAdd DBA00Add Offset Pido Mag P c EN ENO pn Offset Address Doni do Do Mod Modul o odule 16 Wed UDINT
167. do di comunicazione su porta seriale Il tipo dati contiene tutte le informazioni per caratterizzare la comunicazione sulla porta seriale Name Type Description Baudrate UDINT Baud rate porta seriale 300 600 1200 2400 4800 9600 19200 38400 57600 115200 Parity STRING 1 Tipo di parit valori possibili E pari O dispari N nessuna DataBits USINT Numero di bit frame dato valori possibili 7 8 StopBits USINT Numero di bit di stop valori possibili 1 2 DTRManagement USINT Modo di gestione del segnale DTR sulla porta seriale vedi Serial mode definition DTRComplement BOOL FALSE DTR normale TRUE DTR complementato EchoFlush BOOL FALSE dati trasmessi sono ritornati in ricezione TRUE l dati trasmessi sono ignorati su comunicazioni in RS485 DTROnTime UINT Tempo di attesa trasmissione caratteri su porta seriale dopo attivazione segnale DTR mS Questo parametro assume significato solo se DTRManagement impostato nel modo 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 DTRManagement 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
168. do impostato sulla porta seriale COMO nella variabile Sm e viene attivata l uscita Do00M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 En FILEP Auto Mo O S Port COMO file pointer 2 Sm SYSSERIALMODE Auto NO 0 n serial mode data struct 3 Fulse BOOL Auto Mo FALSE i Pulse flag Esempio ST PTP116A300 ST_SysGetSerialMode Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Check if the COMO port is open IF Fp lt gt NULL THEN Check if input is activated IF Di00M00 lt gt Pulse THEN Pulse D100M00 Pulse flag On input raising edge the serial mode is read IF D100M00 THEN Do00M00 SysGetSerialMode ADR Sm Fp END_IF END_IF END_IF Mnl151c070 Pag 98 288 Programmazione IEC 61131 3 3 Flich Mettendo in watch la variabile 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 BL mm EchoFlush FALSE BOL DTRONTIme UINT OTROFFTine UINT Pag 99 288 Mnl151c070 Programmazione IEC 61131 3 Type Library
169. e 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 Mnl151c070 Pag 232 288 5 Flee Programmazione IEC 61131 3 Type Library Version 8 1 2 ModbusRTUMaster modbus Rtu master FB eObsoleteLib SFRO66A000 Questo blocco funzione esegue la gestione del protocollo modbus master possibile definire il jing ce 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 i l su 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 FCode una funzione di lettura il valore delle variabili a partire dall indirizzo definito in _prode Address per il
170. e All interno del sorgente della pagina Html possibile definire dei campi di commento del tipo lt d UINT 10 gt campi sono interpretati come commenti e quindi sono gestibili da qualsiasi editor Html Esempio Macromedia ma il server Http nel momento in cui invia la pagina al client Il browser che la visualizza sostituisce al campo il valore della variabile indicata Nell TAG sono riportate tutte le informazioni necessarie secondo la sintassi lt Format Type Address gt 10 3 1 Campo Format La stringa di formattazione Format pu contenere elementi di due tipi il primo consiste in caratteri che vengono ritornati nella pagina inalterati Il secondo consiste in direttive di conversione che descrivono il modo in cui gli argomenti devono essere visualizzati Le direttive di conversione iniziano con il simbolo seguito dalle direttive secondo il formato Flags Width Precision Length Conversion Flags La visualizzazione delle variabili con segno inizier sempre con il segno o space La visualizzazione delle variabili con segno inizier sempre con il segno o con lo spazio X valori diversi da 0 vengono prefissati con Ox 0 Al valore visualizzato vengono aggiunti O fino al raggiungimento del numero di cifre desiderato Per variabili di tipo d i 0 u x X e E f g G Width Definisce il numero di cifre che devono essere visualizzate Precision Definisce il numero di cifre decimal
171. e Attribute Description 1 FBData Average Auto Mo I S FA average data d Analnput SysGetAnlip Auto Mo I FA Analog input data 3 AnaValue REAL Auto Mo 0 S Analog Input value Esempio FBD PTP114A500 FBD_Average 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 Mnl151c070 Pag 159 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 13 14 HIDCIKDtaReader HID RFID clock data reader FB PLCUtyLib SFR054B100 Questo blocco funzione esegue l acquisizione di un lettore HID tipo clock e dato La gestione del lettore deve essere eseguita almeno ogni 400 uSec quindi si consiglia di utilizzarlo in un HIDCIkDtaReader programma eseguito nella task fast definendo il tempo di esecuzione della task a 400 uS tramite la Sloc Done funzione SysSetTaskLpTime Data Fault Il blocco funzione pu acquisire tags RFID con codice di lunghezza fino ad 8 bytes il codice letto a viene trasferito nel buffer indirizzato da CData occorre definire la lunghezza del codice in mg CDLength Clock B00L Ingresso di clock del lettore RFID Data BOOL Ingresso di dato del lettore RFID CData BYTE Indirizzo buffer codice letto dal tag RFID CDLength usint Numero bytes codice letto dal tag RFID Done B00L Attivo per un loop al termine della lettura tag RFID Fault B00L Attivo per un loop su errore lettu
172. e data TxOk SysCANTxMsg ADR CANMsg Transmission Ok END IF Mnl151c070 Pag 109 288 Programmazione IEC 61131 3 3 Flich 7 11 Funzioni ed FB per gestione stringhe Type Library Version 7 11 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 e Parametri funzione Str usint Pointer alla stringa di cui calcolare lunghezza La funzione ritorna EEN Numero d 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 n String length Esempio LD eLEN Hello __ Str Length Mnl151c070 Pag 110 288 Programmazione IEC 61131 3 i i Type Library Version 7 11 2 eFIND string find Function ePLCStdLib SFR053A200 Questa funzione cerca la posizione del carattere di inizio della prima apparizione di In2 in In1 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 e
173. e dei servizi specificati da function codes SlimLine supporta il protocollo modbus Rtu sulle porte seriali e modbus Over IP su connessione ethernet su porta 502 Il protocollo modbus Rtu sulla porta seriale ha come parametri di comunicazione di default 115200 e 8 1 e l indirizzo di nodo sia su porta seriale che su TCP IP 1 9 1 1 Accesso variabili da modbus Le funzioni del protocollo accedono tutte alla memoria utente MX7100 le funzioni supportate sono Function Tipo oggetto Tipo accesso Range indirizzo Read coil status Bit singolo Read 40000 44095 20000 24095 Note 1 Read input status Bit singolo Read 40000 44095 20000 24095 Note 1 Read holding registers Word 16 Bit Read 40000 42047 20000 22047 Note 2 Read input registers Word 16 Bit Read 40000 42047 20000 22047 Note 2 Force single coil Bit singolo Write 40000 44095 20000 24095 Note 1 Preset single register Word 16 Bit Write 40000 42047 20000 22047 Note 2 Preset multiple registers Word 16 Bit Write 40000 42047 20000 22047 Note 2 Da versione SFW167D000 l area indirizzabile anche nel range da 20000 a 2xxxx Note 1 Nelle funzioni che accedono al bit singolo In 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
174. e ii 100 7 9 3 SetSMode Set Serial mode 101 7 9 4 SysGetSerialCTS get serial CTS agonaletats e 103 7 9 5 SysSetSerialDTR set DTR signal StatUS 104 7 10 Funzioni ed FB per gestione CAN bus iii 105 7 10 1 SysCANSetMode set the CAN controller mode 106 7 10 2 SysISCANRxTxAv checks if CAN Rx or Tx is available 107 7 10 3 SysSCANRxMsg receives a CAN message e 108 7 10 4 SysCANTxMsg transmit a CAN message e 109 7 11 Funzioni ed FB per gestione sirtndche uk 110 bili EN SOA HONIG lata iaia E 110 eZ FOI Sigillo 111 1 11 3 MemSet memory E EE 112 ENN MemCOpy Memory CODY EE 113 7 11 5 SysVarsnprintf variable print tO StriNg e 114 7 11 6 SysVarsscanf extracts values from StriNg renen enne 116 7 12 Funzioni ed FB per gestione moduli perterc i 117 7 12 1 SysPhrInfos get infos from peripheral modules 117 7 12 2 SysGetPhrDI get peripheral digital INput e 118 7 12 3 SysSetPhrDO set peripheral digital output ii 121 7 12 4 SysGetAnInp get analog INPpuUt eee 123 7 12 5 SysSetAnOut set analog Output iii 125 7 12 6 SysGetCounter get Counmter ii 127 7 12 7 SysGetEncoder get encoder InpuUt 129 7 12 8 SysSetPWMOut set PWM output se eeeeeeeeaeeeseeeeseeeeseeeeseeeeseeesseeeaeeseeseegeeseeeeeeeeeaees 131 7 12 9 SysPhrVRd read variable from peripheral module i 133 7 12
175. 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 Mnl151c070 Pag 207 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 20 1 AuroraDSPMeasure Aurora measure request to DSP FB ePowerOneLib SFR062A000 Questo blocco funzione esegue la lettura delle misure dal DSP di un inverter Aurora della Power i i vi i Aurora DSP Measure One connesso al dispositivo di I O definito in File Questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi Enable Done funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min Viene utilizzata Start Fault la funzione GetPolynomialCRC per il calcolo del CRC dei frame dati da e verso l inverter File value La connessione con gli inverters in RS485 multidrop occorre definire in Address l indirizzo 49 SE dell inverter con cui si vuole dialogare In Measure occo
176. e time 3 H TempRead SysGetaning Auto Mo O Analog input g PWM HMC ut Auto Mo O WI management 10 FiDOut REAL Auto NO 0 PID output value D 11 FID PIDMna Auto Mo O FID management Esempio LD PTP114A100 LD_PIDMng Sys Get n lp EN ENO Address Done Channel Fault AD_FT100_DIFFER gt hlode Value RdTemp PID PID DOO Moo Do0 400 ee gru enabler Enabled CO Woo e Enable Error Dio OO e e Enable Out Dios woo Pp mmm Reverse PresetT emp gt 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 Mnl151c070 Pag 151 288 Programmazione IEC 61131 3 Library Version PLCUtyLib SFR054A000 7 13 8 PWMOut PWM output management Questo blocco funzione esegue la gestione di una uscita PWM aie Enable Out a Set Cycle hlin Enable B001 Abilitazione gestione uscita PWM attivando l ingresso si abilita la gestione Disattivando l ingresso si azzera l uscita Out SET REAL Valore di set PWM il valore espresso in TCycle ReaL Tempo di di ciclo PWM il valore espresso in S TMin REAL Tempo minimo comando uscita Out il valore espresso in S Out B001 Uscita PWM Esempi Nell esempio gestita una uscita PWM definendo un tempo di ciclo di 5 secondi con un tem
177. e variabili ClientiP e ClientPort sono ritornati l indirizzo IP e la porta da cui sono stati ricevuti i dati mentre in RxSize ritornato il numero di bytes dati ricevuti Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen PeerlP stRING 15 Stringa di definizione indirizzo IP da cui saranno accettate le connessioni Lasciandolo non connesso o definendo 255 255 255 255 saranno accettate connessioni da tutti gli IP PeerPort unt Porta da cui saranno accettate le connessioni Lasciandolo non connesso o definendo 65536 saranno accettate connessioni da tutte le porte RxData usint Puntatore al buffer dove devono essere trasferiti i dati ricevuti Size unt Dimensione buffer ricezione dati Done 8001 Attivo per un loop di programma su ricezione dati Fault B001 Attivo per un loop di programma se errore gestione ClientIP stRING 15 Stringa di definizione indirizzo IP del client da cui sono stati ricevuti i dati ClientPort unt Porta del client da cui sono stati ricevuti i dati RxSize uint Numero di bytes di dato ricevuti Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9975005 Blocco funzione non supportato 9975050 Errore allocazione blocco funzione 9975060 Terminato spazio memoria rilocabile non possibile eseguire I FB 9975070 Errore versione blocco funzione 997510
178. ed il tempo in uscita ET si azzera Disattivando l ingresso IN inizia il conteggio e alia dopo il tempo definito PT espresso in mS si disattiva l uscita Q Sulla uscita ET viene ritornato il tempo IH Pi trascorso dalla disattivazione dell ingresso espresso in mS PT ET IN Bool Ingresso timer attivandolo l uscita Q si attiva immediatamente ed il tempo in uscita ET si azzera Disattivandolo inizia il conteggio e dopo il tempo definito in PT si disattiva l uscita Q PT upint Preset tempo definisce il tempo di ritardo dalla disattivazione dell ingresso IN alla disattivazione dell uscita Q espresso in mS Q B00 Uscita timer si attiva su attivazione ingresso IN e si disattiva dopo il tempo definito in PT dalla disattivazione dell ingresso IN ET upint Tempo timer si azzera su attivazione ingresso IN ed inizia conteggio da disattivazione ingresso IN Raggiunto tempo impostato in PT si arresta conteggio espresso in mS Esempi Il timer presettato a 1 secondo 1000 mS Attivando l ingresso digitale Di00M00 si attiva immediatamente l uscita digitale DoOOMO0 ed il valore di tempo nella variabile VarOut azzerato Disattivando l ingresso digitale DiOOMOO il timer inizia il conteggio del tempo il valore di tempo trascorso dalla disattivazione trasferito nella variabile VarOut Trascorso il tempo l uscita digitale D000MO00 si disattiva Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBeTOF e
179. egisters address A NrOfRegs USINT Auto No Number of registers A GetCRC SyvsGetCre Auto Mo DU Get CRC 5h CRCYalue WINT Auto Mo O CRE value Esempio ST PTP116A100 ST_SysGetCrc db lin ll e nello leto x Calculate CRC of a modbus Rtu frame for command Read holding registers Si Nd 03 Addr NumR CRC zi Define the registers address and the number of registers to read RegsAddress 16 0120 Registers address NrOfRegs 8 Number of registers Prepare the command frame Frame 0 1 Node address Frame 1 3 Function code 16 03 Frame 2 TO USINT RegsAddress 256 7 MSB registers address Frame 3 3 TO USINT RegsAddress 755 7 LoB registers address Frame 4 0 MSB number of registers to read Frame 5 NrOfRegs LSB number of registers to read Calculate the frame CRC GetCRC Buf ADR Frame 0 Buffer address GetCRC ByteNr 6 Byte number Frame S USINT GetCRC CrcIni 16 FFFF CRC ini value 0 16 01 USINT GetCRC Calculate CRC CRCValue GetCRC Crc CRC value 1 LGS USINT Frame 6 TO USINT CRCValue 256 MSB of CRC value 2 16201 LISIMT Frame 7 TO_USINT CRCValue amp 255 LSB of CRC value 3 16 20 USINT Il valore del CRC del frame modbus Rtu 16 443A l intero frame 4 16 00 USINT 5 16
180. el file 5 5 Serial mode definition definizioni modo seriale Nella gestione dei terminali di I O sono utilizzate delle definizioni che si possono trovare nella cartella Serial mode definition Define Description DTR_OFF Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR sempre i condizione di off DTR_ON Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR sempre i condizione di on DIR AUTO WO TIMES Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR funzionamento automatico senza interposizione di tempi DTR_AUTO W_ TIMES Valore membro DTRManagement del dato SYSSERIALMODE indica segnale DTR funzionamento automatico con interposizione di tempi 5 6 CAN bit rate definition definizioni bit rate CAN Le definizioni dei valori di bit rate sul controller CAN si possono trovare nella cartella CAN bit rate definition Define Description CAN_5OKBIT Bit rate 50 KBit CAN_100KBIT Bit rate 100 KBit CAN_125KBIT Bit rate 125 KBit CAN_250KBIT Bit rate 250 KBit CAN_500KBIT Bit rate 500 KBit CAN_1MBIT Bit rate 1 MBit Mnl151c070 Pag 19 288 Programmazione IEC 61131 3 Eet 5 7 Digital input mode definizioni modo acquisizione ingressi digitali Le definizioni modo di acquisizione dei moduli di ingresso digitali si possono trovare nella cartella Digital input mode Define Description DI
181. ene attivato in caso di errore nella conversione EpochTime uot Ritorna data espressa in epoch time Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9987050 Errore allocazione blocco funzione 9987060 Errore versione blocco funzione 9987200 Errore durante l esecuzione del blocco funzione Mnl151c070 Pag 72 288 Programmazione IEC 61131 3 3 Flat Esempi Viene convertito il valore di data ed ora in epoch time Esempio definendo il valore di data 9 4 2010 e ora 14 20 15 avremo in uscita il valore 1270822815 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FB_SysDateToEtime SysDateToETime Auto 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 UDINT Auto Mo 0 Epoch time Esempio LD PTP116A100 LD_SysDateToETime 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 IL_SysDateToETime Transfer date e time to FB input variable LD Year ST EB SysDalelortime Year LD Month ST FB SvsDateToBtime Month LD Day ol EB SysDalelortime Day CAL FB
182. epoch time to date Conmversion 70 7 6 2 SysDateToETime date to epoch time conversion 72 7 7 Funzioni ed FB per gestione terminale di UC 74 lala DYSIODEN ee DEE 74 Dah 2 DY SICIO Se TING CO Serene 76 Tf SYSIGEIC Gel Character TOM TG ia TI Vf A SYSIDUIG put character 0 AT 78 L t Ee le Re EC rei un EE 80 7 7 6 Sysfwrite write data to file i 81 7 7 1 SysGetlChars get input available characters from ne 82 7 7 8 SysGetOSpace get output available space onnie 83 7 7 9 SysGetRxBSize get file Rx input buffer eze ceeceeeeeeeeeeeseeeeeseeeeeaeeeesaeeeeeeseeesaeeeeseeeaeeaeeeaeeneeses 84 7 7 10 SysGetTxBSize get file Tx output buffer SIZE 85 7 7 11 SysFIBfClear file input buffer clear 86 7 7 12 SysFOBfClear file output buffer dear 87 Mnl151c070 Pag 2 288 Programmazione IEC 61131 3 Eet 1 13 SysFOBfFlush file output DUHEFrTUSh LLu u ea ia 88 721 14 Sys Varipriftl variable print to A UE 89 PG SPS SY StS I alri 90 10 1 SYSFEMOVE file TOMO EE 91 7 8 2 Sysrename file rename i 92 EEN Let ON ONT e Lt EE 93 8A Sysfseek fil Seek EE 94 7 8 5 SysDirListing directory listin iii 95 7 9 Funzioni ed FB per gestione porta sertale iii 97 7 9 1 SysGetSerialMode get serial MOde 98 7 9 2 SysSetSerialMode set serial mod
183. er alla pagina la pagina sar visualizzata Mnl151c070 Pag 258 288 Programmazione IEC 61131 3 3 Flap 10 1 Criteri per realizzazione pagina Naturalmente il web server integrato nello SlimLine ha solo un ridotto set di funzioni e quindi nella creazione delle pagine web occorre sottostare a certe regole vediamole a La pagina non pu contenere inclusione di altre pagine Esempio pagine di stile o di scripts b La pagina non pu contenere inclusione di immagini Esempio file gif o jpg eventuali immagini possono essere embedded nella pagina stessa Vediamo ad esempio una semplice pagina che visualizza un messaggio di presentazione Sorgente html pagina lt html gt lt head gt lt meta http equiv Content Type content text html charset iso 8859 1 gt lt title gt SlimLine Simple page lt title gt lt head gt lt body gt This page is served by the lt b gt SlimLine lt b gt lt body gt lt html gt Salvando il testo riportato in un file esempio SPage htm e trasferendo il file nella directory Storage di SlimLine sara possibile visualizzare la pagina web risultante semplicemente digitando nel proprio browser l indirizzo della pagina Naturalmente la pagina pu contenere links ad altre pagine sar cos possibile realizzare una propria navigazione tra diverse pagine Ecco lo stesso esempio di prima con incluso la definizione di uno stile Sorgente html pagina lt html gt lt
184. eri 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 En FILER Auto Mo U 4 Port COMO file pointer 2 Ch INT Auto Mo i Character read Esempio ST PTP116A100 ST_Sysfputc Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Here execute the received characters echo IF Fp lt gt NULL THEN IF TO BOOL SysGetIChars Fp AND TO BOOL SysGetOSpace Fp THEN Ch Sysfgetc Fp Get input character Ch Sysfputc Ch Fp Put input character END_IF END_IF Mnl151c070 Pag 78 288 Programmazione IEC 61131 3 3 Flap 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 F FILEP Auto Mo U S File pointer d Dummy BOOL Auto Mo FA
185. erial communication mode ABf SysGetSerialMode ADR Sm Mdm File Sm Baudrate 115200 Baudrate Si Parity N Parity Sm DataBits 8 Data bits Sm StopBits 1 Stop bits Sm DTRManagement DTR_OFF DTR management Sm DTRComplement FALSE DTR complement Sm EchoFlush TRUE Flush the echo caracters ABf SysSetSerialMode ADR Sm Mdm File Modem parameters Please change them according your requirements Mdm AutoHangUp TRUE Auto hangup Mdm APN ADR M2Mbis vodafone it APN definition Si Mdm DNS ADR 8 8 8 8 DNS definition Si HTTP parameters Please change them according your requirements HTTP Server ADR www MyServer com HTTP server HTTP Port 80 HTTP port HTTP Page ADR eMailSend php Page name HTTP TimeOut 5000 Connection timeout mS HTTP GETPars ADR TxD GET parameters pointer HTTP RxBuffer ADR RxD Rx buffer pointer HTTP RxSpace SIZEOF RxD Rx buffer space END_IF CS EE K FBs MANAGEMENT KS SE SH Mnl151c070 Pag 178 288 Programmazione IEC 61131 3 3 Flich Mdm Enable TRUE Modem core management HTTP ModemID Mdm ModemID Modem ID Manage the HTTP connection HTTP HTTP Send FALSE x a a ee EE K GET THE HTTP PAGE AND SEND THE EMAIL E 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
186. ersion 0013 PCB123B200 SlimLine OEM CAN version 0014 MPS046B000 SlimLine Lite version 0015 MPS046B100 SlimLine Rs485 version 0016 MPS046B200 SlimLine CAN version 0017 PCB123D000 SlimLine OEM Lite version 0018 PCB123D100 SlimLine OEM Rs485 version 0019 PCB123D200 SlimLine OEM CAN version 0020 PCB131A000 SlimLine ARM7 Compact Relay CPU Board Lite vers 0021 PCB131A010 SlimLine ARM7 Compact Relay CPU Board Base vers 0022 PCB131A020 SlimLine ARM7 Compact Relay CPU Board Full RS485 v 0023 PCB131A030 SlimLine ARM7 Compact Relay CPU Board Full CAN v 0024 MPS051A000 Netlog Ill Base Relay 0025 MPS051A001 Netlog III Full Relay Rs485 version 0026 MPS051A011 Netlog III Full Relay and Display Rs485 version 0027 MPS051A002 Netlog III Full Relay CAN version 0028 MPS051A012 Netlog III Full Relay and Display CAN version 0029 MPS051A300 Netlog Ill Base Static 0030 MPS051A301 Netlog III Full Static Rs485 version 0031 MPS051A311 Netlog III Full Static and Display Rs485 version 0032 MPS051A302 Netlog III Full Static CAN version 0033 MPS051A312 Netlog III Full Static and Display CAN version Mnl151c070 Pag 17 288 Programmazione IEC 61131 3 Eet 5 Definizioni dati Oltre alle cartelle delle variabili di sistema sono presenti anche cartelle con identificatori di tipo dati che permettono di identificare in modo unifico un dato di sistema 5 1 Variable types definition definizione tipo variab
187. erso da 0 anche lt 0 Tipo SINT USINT Le conversioni da qualsiasi tipo verso un USINT tornano il valore del byte meno significativo del valore da convertire espresso in esadecimale Esempio il valore 4660 16 1234 torner 52 16 34 lo stesso vale per REAL esempio 300 0 16 012C torner 44 16 2C Per il tipo SINT se il valore esadecimale supera 127 il numero sar negativo Tipo INT UINT Le conversioni da qualsiasi tipo verso un UINT tornano il valore dei due bytes meno significativi del valore da convertire espresso in esadecimale Esempio il valore 305419896 16 12345678 torner 22136 16 5678 lo stesso vale per i REAL esempio 90000 0 16 15F90 torner 24464 16 5F90 Per il tipo INT se il valore esadecimale supera 32767 il numero sar negativo Nella programmazione IEC con LogicLab sono previste apposite funzioni di conversione di tipo vediamole Name Input type Output type Function DINT_TO_INT DINT INT Converts a long integer 32 bits signed into an integer 16 bits signed INT_TO DINT INT DINT Converts an integer 16 bits signed into a long integer 32 bits signed TO BOOL Any BOOL Converts any data type into a boolean TO_SINT Any SINT Converts any data type into a short integer 8 bits signed TO_USINT Any USINT Converts any data type into an unsigned short integer 8 bits unsigned TO_INT Any INT Converts any data type into an integer 16 bits signed TO_UINT Any UINT Convert
188. es definita in Size 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 Size Enable 8001 Comando di abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Node usin Numero di nodo modbus Range da 0 a 255 Offset uint Offset su indirizzo modbus ricevuto nel frame dati Range da 16 0000 a 16 FFFF Buffer usint Indirizzo buffer dati su cul operano i comandi modbus SIZE uint Dimensione in byte del buffer dati su cui operano i comandi modbus Done 6001 Attivo per un loop alla ricezione di comando modbus Fault B001 Attivo per un loop su errore ricezione comando modbus Errors upint Numero di errori riscontrati Viene incrementato ad ogni nuovo errore raggiunto il valore massimo il conteggio riparte da 0 Comandi supportati Il blocco funzione supporta solo alcuni comandi previsti dal protocollo modbus i comandi supportati sono Descrizione Read coil status Massimo 250 coils Read input status Massimo 250 coils Read holding registers Massimo 125 registri Read input registers Massimo 125 registri Force single coil Preset single register Loopback diagnostic test Force multiple coils Massimo 250 coils Preset multiple registers Massimo 125 registri Mnl151c070 Pag 241 28
189. essi analogicCi 21 5 10 Digital to analog mode definizioni modo gestione uscite analogoche 22 5 11 Spy mode definizioni modo spionaggio dati 23 6 Funziohi delinite da LOGICLAb a aa laica 24 6 1 Funzioni matematiche e trigonometriche ii 25 OLAF On ee EE 2 FUNZIONIeO PB 28 e dl E BEE 28 e FUNCION BIOCKS EE 28 1 0 1 Funzioni 0 FB EMDEAGEO EE 28 Pe ei 29 PO NOON EE 29 E EE EEE E e EEN 30 109 MPOM a ZIONS ee e EE 31 7 0 6 Considerazioni su link a libreria e su import oggetti 32 7 0 7 Protezione funzioni e blocchi fuNZIONE ei 33 7 1 Funzioni ed FB per gestione Flip FIOp i 34 ENN ey AIG COGS WIC OC EE 34 Mnl151c070 Pag 1 288 Programmazione IEC 61131 3 Eet TAN R TRIG RAISING edge gl et 35 e Res FRSC UG EMMI E ee EE 36 TiN OR OC WIR SOE IN E e ME 37 7 2 Funzioni ed FB per gestione tiMmers REENEN 38 AECH Ke CS TINE E EE 38 OI esate apc acres ae deere ce anc ones iii rara 39 Te e Bun gei 40 7 3 Funzioni ed FB per gestione COUNtErs ii 41 E Pg leg De Go 0 gic gp DON E 41 E ER e ON e E cerns ele at E AE SE TTT 43 ESOS CUD COUREFUD OWI EE 44 7 4 Funzioni ed FB per conversione datt 46 7 4 1 VBitTest Variable Dit test rnern rnnr nnn Anr E DAREA EE REE EA REREAD EEDA Enna nennen 46
190. et mode 8192 Reset input 256 Clock mode 32 Clock input Se viene settato un valore non corretto si interrompe l esecuzione e viene settato il bit di Fault RCount 8001 Reverse counting attivando questo ingresso Value viene decrementato ad ogni variazione di conteggio Reset B001 Attivando questo ingresso si ha il reset del valore di conteggio Value Done 8001 Dato counter acquisito viene attivato per un loop al termine della acquisizione counter Fault B001 Errore di acquisizione viene attivato in caso di errore nella sequenza di acquisizione Value upint Valore contatore Mnl151c070 Pag 127 288 Programmazione IEC 61131 3 3 Flich 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 9981990 Non implementata nel simulatore Esempi Viene eseguita l acquisizione del contatore dal modulo CPU di SlimLine viene eseguito il conteggio su entrambi i fronti dell ingresso di clock Il valore
191. ffettuare la ricerca In1 uSINT Pointer alla stringa da ricercare La funzione ritorna dl 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 Stroource STRING Auto ER 5 String were looking 3 otrToFind STRING Auto ER i String to find Esempio ST Find the position where is StrToFind in StrSource StrSource Hello worldt StreroFindi Lo Position eFIND ADR StrSource ADR StrToFind Mnl151c070 Pag 111 288 Programmazione IEC 61131 3 Type Library Version 7 11 3 MemSet memory set Function ePLCAuxLib SFRO58A000 Questa funzione trasferisce in Buffer il valore definito in Value per il numero di bytes definito in Sa Size Buffer La funzione ritorna il numero definito in Size Value a Size Parametri funzione Buffer usinT Pointer al buffer di memoria dove trasferire Value Value sint Valore da trasferire nel buffer di memoria Size uDINT Numero di volte in cui Value trasferito in Buffer La funzione ritorna UDINT Valore definito in Size Esempi Viene eseguito l azzeramento di tutti i bytes della stringa StrBuffer scrivendo il valore 0 in tutta la sua lunghezz
192. flD uDINT RxFrames UDINT TxFrames UDINT RxErrors UDINT Codici di errore Tempo attesa frame di acknowledge dal sistema peer mS Tempo minimo attesa canale di comunicazione libero S Tempo massimo attesa canale di comunicazione libero S Tempo minimo attesa invio frame controllo verso sistema peer S Tempo massimo attesa invio frame controllo verso sistema peer S Attivo su abilitazione blocco funzione Attivo per un loop su errore esecuzione ID server multimaster da passare alle FB clients Esempio DataTxferClient Counter frame dati ricevuti Sono conteggiati tutti i frames corretti indipendentemente se diretti a questo nodo Counter frame dati trasmessi Counter errori frame dati ricevuti In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10040010 Valore di File non definito 10040020 FB protetta terminato tempo funzionamento in modo demo 10040050 Timeout esecuzione 10040070 Errore case gestione Mnl151c070 Pag 223 288 Programmazione IEC 61131 3 3 Flich i Type Library Version 7 22 2 DataTxferClient Data transfer client FB eMMasterDTxferLib SFR068B000 Questo blocco funzione esegue lo scambio dati con un altro sistema su canale di Data Tfer Client comunicazione Si collega al blocco funzione MMasterDataTxfer di gestione dispositivo di f Enable Enabled comunicazione occorre passare MMDtTxfID i
193. foB STRING 16 Valore ritornato ad utente in variabile Info B vedi esempio SysUInfoC G 16 Valore ritornato ad utente in variabile Info C vedi esempio SysUInfoD STRING 16 Valore ritornato ad utente in variabile Info D vedi esempio Mnl151c070 Pag 16 288 Programmazione IEC 61131 3 4 3 ID univoco prodotto 5 Fleet Ogni prodotto ha un ID univoco che ritornato nella variabile UniquelD il valore ottenuto in base al tipo di prodotto ed al suo numero di matricola La formula per il calcolo dell UniquelD la seguente UniquelD 131072 PType Serial number Ad esempio un MPS050A030 con matricola 125 avr UniquelD 1310845 Ecco la tabella Ptype PType Code Description 0000 MPS046A000 SlimLine Lite version 0001 MPS046A100 SlimLine Rs485 version 0002 MPS046A200 SlimLine CAN version 0003 MPS048A100 SlimLine ARMY RS485 Linux Open 0004 MPS048A200 SlimLine ARM9 CAN Linux Open 0005 MPS049A100 SlimLine ARMY RS485 Linux PLC 0006 MPS049A200 SlimLine ARM9 CAN Linux PLC 0007 MPS050A000 SlimLine Low Cost ARM7 Vers Lite 0008 MPS050A010 SlimLine Low Cost ARM7 Vers Base 0009 MPS050A020 SlimLine Low Cost ARM7 Vers Full RS485 0010 MPS050A030 SlimLine Low Cost ARM7 Vers Full CAN 0011 PCB123B000 SlimLine OEM Lite version 0012 PCB123B100 SlimLine OEM Rs485 v
194. funzione ritorna UNE Numero bytes trasmessi EOF in caso di errore Codici di errore In caso di errore la funzione torna con EOF con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 9976005 Blocco funzione non supportato 9976010 Valore di File non definito 9976050 Tipo di stream definito in File non corretto 9976100 Errore indirizzo IP connessioni accettate PeerlP 9976200 Errore trasmissione dati su socket UDP 9976990 Non implementata nel simulatore Esempi Nell esempio inviando caratteri al sistema SlimLine sulla porta 1000 da una connessione UDP i caratteri inviati saranno ritrasmessi sulla porta UDP del sistema client da cui sono stati ricevuti Definizione variabili Mame Type Address Array Init value Attribute Description 1 RxDone BOOL Auto No FALSE E Rx data done d GlientPort LMT Auto Mo i Client port 3 FxGize LINT Auto Mo 0 E Rx bytes received d ClientlP STRING Auto 15 P Client IF address 5 PrnDataAdd DBI00Add0offiset Auto NO 0 7 Print data buffer address bh RxDataAdd DB1I00AddOffiset Auto No O Rx data buffer address Z Fp FILEP Auto Mo S File pointer H Dk on Sys SkiListen Auto Mo 0 i FB socket listen 9 SktRcyv Sys Dk Cu Auto Mo 0 a FA socket receive Mnl151c070 Pag 193 288 Programmazione IEC 61131 3 Esempio LD PTP119A200 UDPSocketEcho SwsFirstLoop SysFirstLoop RxDone RxD ataAdd RxDone Mnl151c070 Pag 194 288
195. g BString CString is Hello World CString CONCAT Astring World CString is Hello World 1 zi STRING DELETE STRING IN ANY_INT L ANY_INT P Cancella dalla stringa IN L caratteri partendo dalla posizione P a scendere AString Hello World BString DELETE AString 2 3 BString is Heo World UINT FIND STRING SO STRING S1 Cerca la posizione della prima occorrenza di S1 in SO Se non trovata torna 0 AString Hello World 1 FIND AString World Result is 7 J FIND Hello World World World k FIND World Hello Result is D Result is 7 STRING INSERT STRING S0 STRING S1 ANY_INT P Inserisce nella stringa SO la stringa S1 partendo dalla posizione P AString Hello everybody BString World CString INSERT AString BString 6 CString is Hello World STRING LEFT STRING IN ANY_INT L Ritorna gli L caratteri piu a sinistra della stringa IN AString Hello World Bstringi LEFT Astring 7 Bstring is Hello wi UINT LEN STRING IN Ritorna la lunghezza Numero di caratteri della stringa IN AString Hello World i LEN ASEring 1 is 13 STRING MID STRING IN ANY_INT L ANY_INT P Ritorna gli L caratteri della stringa IN partendo dal carattere in posizione P AString Hello World BString MID AString 5 7 Botring is World STRING REPLACE STRING SO STRING S1 ANY_INT L A
196. ge da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo 255 indica il modulo CPU Se viene settato un indirizzo di modulo non presente si interrompe l esecuzione e viene settato il bit di Fault Channel usin Occorre specificare l indirizzo del canale sul modulo Range da 0 a 15 Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Mode woint Modo acquisizione espresso su 32 bit secondo lo schema riportato 31 30 29 28 27 26 25 24 23 22 2120191817 1615 1413 12 11 1009 08 07 06 05 04 03 02 01 00 Mode Input Mode Input lt O el D 5 Cc P Reverse Reset Clock Definisce ingresso logico da utilizzare come clock 0 Conta su fronte salita 1 Conta su fronte discesa 2 Conta su entrambi i fronti Definisce ingresso logico da utilizzare come reset 0 Non utilizzato ingresso di reset 1 Reset counter se ingresso attivo 2 Reset conter se ingresso non attivo Definisce ingresso logico da utilizzare come inversione conteggio O Non utilizzato ingresso di reverse 1 Inverte conteggio counter se ingresso attivo 2 Inverte conteggio conter se ingresso non attivo Per calcolare il valore di mode si applica la formula Reverse mode 2097152 Reverse input 65536 Res
197. gere 2 registri consecutivi a partire dall indirizzo di allocazione l indirizzamento di modbus prevede un offset di 1 quindi 149 0x0095 Frames modbus RTU Stringa di comando 01 03 00 95 00 02 D4 27 Stringa di risposta 01 03 04 30 B5 4C A3 90 6C Frames modbus TCP IP Stringa di comando 00 00 00 00 00 06 01 03 00 95 00 02 Stringa di risposta 00 00 00 00 00 07 01 03 04 30 B5 4C A3 Come si vede dalla risposta il valore 0x4CA330B5 1285763253 GMT Wed 29 Sep 2010 12 27 33 UTC 9 1 9 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 07 10 00 95 00 02 04 30 B5 4C A3 50 A3 Stringa di risposta 01 10 00 95 00 02 51 E4 Frames modbus TCP IP Stringa di comando 00 00 00 00 00 0B 01 10 00 95 00 02 04 30 B5 4C A3 Stringa di risposta 00 00 00 00 00 06 01 10 00 95 00 02 Mnl151c070 Pag 257 288 Programmazione IEC 61131 3 3 Eet 10 Creazione pagine web utente Con il nuovo sistema operativo SFW184 e stata implementata la possibilita di creare pagine web direttamente dall utente queste pagine potranno essere trasferite nelle directory del si
198. gina non ee ritornata nel tempo definito in TimeOut l esecuzione termina con errore pani a RxSpace TimeOut Send B00L Sul fronte di attivazione comanda richiesta pagina HTTP Attenzione La richiesta verra eseguita non appena il modem libero ModemiD unin ID modem fornito in uscita dalla ModemCore Server usinT Pointer alla stringa di definizione del server HTTP Port uT Porta su cui effettuare la connessione Page usint Pointer alla stringa di definizione pagina richiesta GETPars usint Pointer alla stringa parametri GET da inserire nella richiesta Max 512 caratteri RxBuffer usint Pointer al buffer di ricezione pagina richiesta Max 360 caratteri RXSpace int Dimensione in bytes del buffer di ricezione pagina TimeOut unt Tempo massimo attesa ricezione pagina mS Done 6001 Attivo per un loop al termine della ricezione pagina Fault B001 Attivo per un loop se errore ricezione pagina Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10042010 ModemiD non definito 10042020 ModemiD non corretto 10042080 Errore case gestione 10042100 8 Errore gestione richiesta pagina da server HTTP 10042200 Stringa GET parametri troppo lunga Mnl151c070 Pag 177 288 Programmazione IEC 61131 3 3 Flich Esempi L utilizzo tipico di questa FB di collegarsi ad un server HTTP dove sono eseguite pagine script ASP PHP P
199. gramma 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 Per esempio quando si vuole consentire File Fault l accesso ad un propria area di memoria diversa dalla DB100 NiodbusfTUSlave Node Errors Questo blocco funzione esegue la gestione del protocollo modbus slave possibile definire il terminale di I O su cui effettuare la comunicazione File Buffer Occorre definire il nodo modbus Node e l eventuale offset di indirizzo frame modbus Offset di comandi modbus ricevuti operano sul buffer di memoria il cui indirizzo definito in Buffer e la dimensione in bytes definita in Size In IFTime occorre definire il tempo di interframe dei comandi modbus cio il tempo che intercorre tra la ricezione di un comando ed il comando successivo Su linea seriale questo tempo coincide con il tempo di ricezione di 3 caratteri al baud rate definito Alla ricezione di ogni comando modbus corretto si attiva per un loop l uscita Done in caso di errore comando viene attivata per un loop l uscita Fault ed incrementato il valore in Errors Enable 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 uint Offset su indirizzo modbus ricevuto nel frame dati
200. hTime CAL FB SysETimeToDate Call the SysETimeToDate function block Transfer the FB output variables to program variables LD FB SysETimeToDate Year ST Year LD FB SysB amp timeloDate Month ST Month LD FB SysETimeToDate Day ST Day Esempio ST PTP116A100 ST_SysETimeToDate Here FB SysETimeToDate is executed and variables copied FB sysklimeloDate Rpochlime SysDatelime FB SysETimeToDate Year FB SysETimeToDate Year Year Month FB SysETimeToDate Month Month Day FB SysETimeToDate Day Day Mnl151c070 Pag 71 288 Programmazione IEC 61131 3 i Library Version 7 6 2 SysDateToETime date to epoch time conversion Embedded XTarget 07 0 Questo blocco funzione esegue la conversione della data ora in epoch time Occorre fornire al Sys DateToET me blocco funzione la data e l ora ed in uscita dal blocco funzione avremo un valore in epoch time wea Cana Month Fault Day EpochTime Hour Minute Second Year uint Definisce il valore di anno Range da 1970 a 2099 Month usin Definisce il valore di mese dell anno Range da 1 a 12 Day sint Definisce il valore di giorno del mese Range da 1 a 31 Hour usn Definisce il valore di ora Range da 0 a 23 Minute qusint Definisce il valore di minuti Range da 0 a 59 Second wsint Definisce il valore di secondi Range da 0 a 59 Done 8001 Attivato al termine della conversione Fault B001 Errore di conversione vi
201. hi funzione EI Emable Done comunque possibile utilizzarlo liberamente in modo test per 30 Min File Fault e n l SerialN Top Occorre in SerialNr definire il numero seriale del contatore Utilizzato come chiave di accesso gt dna alla lettura e in Register l indirizzo del registro da leggere secondo la normativa OBIS Se la Pr si ell lettura ha esito positivo viene attivata l uscita Done e le variabili MeterCode Password e hetertode Value sono valorizzate con i dati letti dal contatore Password Value Enable 8001 Attivando l ingresso viene gestita la lettura del contatore File FILEP Pointer al file della risorsa cos come ritornato dalla funzione Sysfopen SerialNr stRING 16 Numero di serie del contatore viene utilizzato come chiave di accesso Register stRINc 16 Indirizzo registro da leggere secondo la codifica OBIS Done 8001 Viene attivato per un loop al termine della acquisizione Fault B001 Viene attivato per un loop in caso di errore nella sequenza di acquisizione TxString stRING 32 Contiene la stringa di comando inviata al contatore pu essere utilizzato in debug per verificare i comandi inviati RxString stRING 32 Contiene la stringa di risposta ritornata dal contatore pu essere utilizzato in debug per verificare le risposte ricevute MeterCode strinc 32 Contiene stringa con il codice del contatore acquisita durante fase di acceso Sign on Password upint Contiene valore pas
202. hyton ecc richiedendo la pagina fornendo in linea alla chiamata dei parametri in GET Lo script della pagina potr eseguire operazioni con i dati passati in linea e ritornare dei valori come risultato Ecco un semplice esempio che tramite una pagina script PHP sul server permette di inviare una Email Definizione variabili Mame Type Address Array Init value Attribute Description 1 Pulse BOOL Auto Mo S Auxiliary pulse 2 Result BOOL Auto No Di Result flag 3 ABT INT Auto No Auxiliary buffer d RxD STRING Auto 32 HTTP Rx data 5 TxD STRING Auto 1 28 HTTP Tx data bh dm ModemCore_v3 Auto Mo S Modem management r HTTF ModemHTTPGet Auto Mo S HTTP Get H Gm SyYSSERIALMODE Auto Kl Serial mode Esempio ST Ptp118b100 EmailWithHTTPGet kk kk kk kk kk Ek kk Ek kk kk kk kk Ek kk Ek kk kk kk kk Ek kk Ek PROGRAM EmailWithHTTPGet kk kk kk kk Ek kk Ek kk kk Ek kk Ek kk Ek kk kk kk kk Ek kk Ek Xx Xx This program sends an Email by contacting a PHP script e e ee eee x I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I x lele INITIALIZATION Zi A n n n n n nn 110 mm amp IF SysFirstLoop THEN Opening the serial port on wich the modem is connected Mdm File Sysfopen COMO rw COM port file pointer Set the s
203. i 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 bit Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData BitToByte Auto Mo O a FA Bitto byte data d WarQut DIMT Auto No DU ni Variable output Esempio LD PTP114A100 LD_BitToByte FED ata BitTo Byte SvysFirstLoop P ____ __ _ EN ENO D 00 hd bn b Out D 01 woo c HH bios woo D D 03 MOO ec SS DUU _ _ ee Dios Woo e e D I DOG Oo ile D I Did OO br Esempio IL PTP114A100 IL_BitToByte LD Di0OMOO ST FBData bO Transfer digital input to input bit LD Di07MO00 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 Mnl151c070 Pag 48 288 Programmazione IEC 61131 3 3 Flat Esempio ST PTP114A100 ST_BitToByte FBData b0 D100M00 Transfer digital input to input bit FBData b D107 M00 Transfer digital input to input bit FBData Call the BitToByte function block VarOut FBData Out Transfer the result to variable Mnl151c070 Pag 49 288 Programmazione IEC 61131 3 3 Flat Library Version 7 4 4 ByteToBit Byte to bit conversion
204. i accesso Solitamente il numero di serie del contatore ed il contatore fornisce una password in uscita che pu essere utilizzata per criptare i dati Terminata questa fase possibile richiedere al contatore il valore dei suoi registri utilizzando i codici di identificazione OBIS a 5 caratteri IEC 62056 61 Per la famiglia SlimLine abbiamo sviluppato un apposito blocco funzione che automatizza tutte le operazioni occorre passare il numero di serie del contatore ed il codice OBIS del registro da leggere Il blocco funzione esegue il Sign On sul contatore e ritorna il 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 is SKRA An 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 psi Mnl151c070 Pag 165 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 14 1 IEC62056_21Rd IEC62056 21 protocol read FB PLCUtyLib SFR054A700 Questo blocco funzione esegue la gestione della lettura di registri da sistemi di metering n IECE2056_21Rd utilizzando il protocollo IEC62056 21 Questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocc
205. i da visualizzare Per variabili di tipo e E f Length h Prima di d i u x X 0 denota una variabile short int o unsigned short int elle Prima di d i u x X 0 denota una variabile long int o unsigned long int L Prima di e E f g G denota una variabile long double Conversion d Valore decimale con segno i Valore decimale con segno O Valore ottale senza segno u Valore decimale senza segno X Valore esadecimale viene visualizzato utilizzando lettere minuscole Da 0 a 9 da a a f A Valore esadecimale viene visualizzato utilizzando lettere maiuscole Da 0 a 9 da A a F e Valore decimale in virgola mobile visualizzato con indicazione dell esponente Esempio d ddde dd E Valore decimale in virgola mobile visualizzato con indicazione dell esponente Esempio d dddE dd f Valore decimale in virgola mobile Esempio d ddd C Singolo carattere S Stringa Mnl151c070 Pag 261 288 Programmazione IEC 61131 3 Eet 10 3 2 Campo Type Il campo Type indica il tipo di variabile che si vuole visualizzare sono gestiti tutti i tipi definiti nella IEC61131 10 3 3 Campo Address Il campo Address indica l indirizzo della variabile ricordo che possibile indicare solo variabili allocate nella DB 100 10 3 4 Esempi di TAGs Per meglio comprendere il formato di visualizzazione delle TAGs riporto alcuni esempi lt Yod UINT 10 gt Visualizza il valore della variabile UINT a
206. i errore 10003010 ModemID non definito 10003020 ModemID non corretto Esempi Nell esempio gestita la ricezione di un messaggio SMS dal modem definito nella variabile ModemID per la definizione delle variabili e per una migliore comprensione del funzionamento si rimanda agli esempi successivi Esempio LD Ptp118a200 ReceiveSMSMessage Receive ModemSMSRecejye SysFirstLoop Pi _11LJ0AdIiiNiEyEO80 ee e N Enable Done ModemiD odemiD Dod Min Mnl151c070 Pag 171 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 15 3 ModemSMSRxCmd_ vi receive a SMS command FB eModemLib SFR057D100 Questo blocco funzione esegue la ricezione di un comando tramite un messaggio SMS si collega al blocco funzione di gestione modem ModemCore occorre passare il ModemiD in uscita dal blocco funzione di gestione modem Enable Done ModemiD Fault Cin Modem Sh SRxCmd_wi Alla ricezione di un messaggio SMS se nel testo del messaggio presente la stringa definita in Command si attiva per un loop di programma l uscita Done all uscita CLIPNumber della FB ModemCore ritornato il numero di telefono da cui il messaggio stato ricevuto RARI 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 unnn ID modem fornito in uscita dalla ModemCore Cin B
207. i errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9964100 Terminale di I O usato in task fast o slow 9964990 Non implementata nel simulatore Esempi Se attivo l ingresso Di00MO00 tutti i caratteri in ingresso dalla porta seriale saranno cancellati e l uscita Do00M00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo S Port COMO file pointer Esempio ST Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END IF Tf the input is active the input buffer is cleared IF Fp lt gt NULL THEN IF Di00M00 THEN DoQOM00 SysFIBfClear Fp END IF END IF Mnl151c070 Pag 86 288 Programmazione IEC 61131 3 Type Library Version 7 7 12 SysFOBfClear file output buffer clear Function Embedded XTarget 07 0 Questa funzione elimina tutti i caratteri in uscita presenti sul flusso dati stream indicato dal Sys FOB parametro File precedentemente aperto dalla funzione Sysfopen a File La funzione ritorna FALSE in caso di errore Parametri funzione File rep Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna RSS FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice
208. i nel buffer di memoria 4 indirizzato da Buffer per il numero di variabili definito da Points inviato al dispositivo slave V loe che lo trasferir nelle sue variabili a partire dall indirizzo definito in Address In caso di errore esecuzione o tempo di esecuzione comando superiore al tempo definito in Timeout viene attivata per un loop di programma l uscita Fault ed incrementato il valore in Errors Enable s001 Comando abilitazione esecuzione comando modbus Per rieseguire il comando disabilitare e poi riabilitare questo ingresso File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Node usin Numero di nodo modbus su cui effettuare il comando Range da 0 a 255 FCode vusint Codice funzione modbus da eseguire nel comando Range da 0 a 255 Descrizione Read coil status Massimo 255 coils Read input status Massimo 255 inputs Read holding registers Massimo 32 registri Read input registers Massimo 32 registri Preset single register Force multiple coils Massimo 255 coils Preset multiple registers Massimo 32 registri Address unt Points sint Buffer usint Timeout int Done B001 Ok 8001 Fault s001 Errors uDINT Delay int Mnl151c070 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 co
209. i 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 Mnl151c070 Pag 97 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 9 1 SysGetSerialMode get serial mode Questa funzione ritorna il modo di comunicazione impostato sulla porta seriale connessa SecarssfiziMoge al parametro File precedentemente aperto dalla funzione Sysfopen Ta Nel parametro Mode occorre definire l indirizzo della struttura SYSSERIALMODE in cui File dovr essere trasferito il modo seriale attualmente impostato sulla porta La funzione ritorna FALSE in caso di errore Parametri funzione Mode asyssERIALMODE Indirizzo struttura SYSSERIALMODE jin cui trasferire il modo letto File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna BOGE FALSE Errore esecuzione TRUE Funzione eseguita correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9995010 Valore di File non definito 9995020 Indirizzo struttura SYSSERIALMODE non corretto verificare Mode 9995100 1 Errore esecuzione funzione 9995990 Non implementata nel simulatore Esempi Su fronte attivazione ingresso Di0OMOO viene salvato il mo
210. ia che contiene i dati da scrivere NULL se solo lettura RdBytes usw Numero di bytes dati da leggere 0 se solo scrittura RdBuffer usinty Indirizzo buffer memorizzazione dati letti NULL se solo scrittura La funzione ritorna 1900 TRUE Comando eseguito correttamente Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9953100 Indirizzo I2C nel range di allocazione moduli di estensione 9953105 Indirizzo I2C fuori range Valore superiore a 16 7F 9953990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue la lettura e scrittura di un chip I O expander PCF9670 su bus 12C Il chip ha indirizzo 16 38 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Dummy BOOL Auto Mo FALSE A Dummy variable 2 200k BOOL Auto Mo FALSE E 20 Ok 3 RdBuf BYTE AUTO Mo DU a Read data buffer 4 WrBuf BYTE AUTO Mo i Write data buffer Esempio LD Sysl2CyyrRd EN Aen Address 4 Wrbytes WrBuf x WrButter 4 Rid Bytes Pd But RdButter Mnl151c070 Pag 136 288 Programmazione IEC 61131 3 5 Flee Type Library Version 7 12 13 StrainGaugeAcq strain gauge acquisition FB PLCUtyLib SFR054B220 Questo blocco funzione gestisce l acquisizione da dispositivi strain gauge all interno SIE ER viene gestito IER di acquisizione analogica SysGetAnlnp per acquisire l ingresso analogico di lettura st
211. iation 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 eNMEALib 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 Mnl151c070 Pag 202 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 19 1 NMEASInterface NMEA system interface FB eNMEALib SFR061A000 Questo blocco funzione gestisce l interfaccia verso un dispositivo che invia sentenze NMEA ee a S i DE NMEASInterface connesso al dispositivo di I O definito in File questo un blocco funzione protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E 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 mod
212. ibrary Version 7 21 2 StringToLogFile salva una stringa in un file di log Ben SFR065A000 Questo blocco funzione effettua il log della stringa StringToLog nel file su disco di nome Filename Ogni riga viene terminata con CR LF Al raggiungimento di MaxRowslnFile righe nel file se Circular settato si riprende a salvare dall inizio del Enable Enabled file sovrascrivendo le righe gi presenti Se Circular non settato non viene pi Write Hone effettuato il log segnalando errore La variabile MaxRowsLen permette di limitare la lunghezza massima di ciascuna riga presente nel file di log StringToLogFile StringToLog Fault Filename Se Circular settato se la lunghezza di StringToLog inferiore a MaxRowsLen Circular vengono aggiunti degli spazi sino ad avere lunghezza definita In RowlndexPtr vaxRowlen occorre inserire l indirizzo della variabile usata come indice della successiva riga in CUI MaxRowsinfile fare log Normalmente deve essere una variabile tamponata per permettere di scrivere RowlndexPtr nel punto giusto anche dopo uno spegnimento accensione del sistema Se invece non si usa una variabile tamponata ad ogni spegnimento accensione si ripartir a scrivere dall inizio del file Quindi si pu scegliere il comportamento voluto Questo un blocco funzione protetto Per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E comunque possibile utilizzarlo
213. ice operatore che ha avuto accesso all ingresso rilevato da un lettore RFID Mnl151c070 Pag 214 288 Programmazione IEC 61131 3 Get Type Library Version 7 21 1 SysLogReport send a report to Syslog server FB eLogLib SFRO65A000 Questo blocco funzione esegue l invio di messaggi di notifica ad un server Syslog il cui SysLogReport indirizzo IP definito in SyslogiP e la porta in SyslogPort Questo un blocco funzione on Ge ee i i i i i Lic Enable Enabled protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e Sg SS blocchi funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min ie Mode au E possibile impostare sia il codice di impianto Facility che di gravit Severity oltre al nome oa del sistema host Hostname SlegPeri Attivando l ingresso Send viene inviata la notifica al server Syslog eseguito l invio viene Facility attivata per un loop l uscita Done in caso di errore esecuzione viene attivata per un loop Severity l uscita Fault esa Message Enable B001 Comando di abilitazione blocco funzione Send oot Comando di invio notifica Mode usINT Modo operativo 0 UDP SyslogIP sTRING 16 Indirizzo IP server Syslog SyslogPort uint Porta utilizzata dal server Syslog Facility sint Codice impianto Severity usint Codice gravita HostName srrinc 32 Nome sistema che invia il messaggio di notifica Message
214. iche modulo 04 RAV QX5 32 Bytes Uscite logiche modulo 05 R W QX6 32 Bytes Uscite logiche modulo 06 R W QX7 32 Bytes Uscite logiche modulo 07 RW QX8 32 Bytes Uscite logiche modulo 08 RAV QX9 32 Bytes Uscite logiche modulo 09 RAV QX10 32 Bytes Uscite logiche modulo 10 R W QX11 32 Bytes Uscite logiche modulo 11 R W QX12 32 Bytes Uscite logiche modulo 12 RAV QX13 32 Bytes Uscite logiche modulo 13 RAV QX14 32 Bytes Uscite logiche modulo 14 RAV QX15 32 Bytes Uscite logiche modulo 15 RAV QX255 32 Bytes Uscite logiche modulo CPU R W MXO 512 Bytes Variabili di sistema sola lettura R Mai 512 Bytes Variabili di sistema lettura scrittura R W MX100 4096 Bytes Memoria utente R W Da indirizzo 2048 a 4095 i dati sono ritentivi Mnl151c070 Pag 9 288 Programmazione IEC 61131 3 3 Flich 2 2 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 MX100 da indirizzo 2048 ad indirizzo 4095 sono ritentive mantengono il loro valore anche allo spegnimento del sistema Qualsiasi variabile mnemonica a cui viene attribuito l attributo RETAIN manterr il suo valore anche allo spegnimento del sistema Da quanto detto precedentemente l area totale allocabile per le variabili RETAIN di 2000 bytes Mame Type Address Group Ar
215. igitale D 00M00 viene impostato il valore 0 su tutti i dispositivi Attivando l ingresso digitale Di01M00 su dispositivo 1 viene impostato il valore 10 sul 2 il valore 20 e cos via fino al quinto in cui viene impostato il valore 50 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBDMK cvsDMXMno Auto Mo I 7 FA gestione protocollo Chix d DhsData SINT Auto ID A 5 0 DMX data 3 DiFis R_TRIG Auto 0 1 UU Pulse su ingresso Esempio ST ass e 0 0 1 1111RQRpmqq1 l l 0 6 6 1 1 6 6 Q 5 s ESEGUO APERTURA PORTA SERIALE ha I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Here the COMI port is opened in read write IF FBDMX File NULL THEN FBDMX File Sysfopen COM1 rw Port COMI file pointer END IF x I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I
216. ili Ogni tipo di variabile definito con un valore che lo identifica il valore indicato con definizioni che si possono trovare nella cartella Variable types definition Define Description BOOL_ TYPE Variabile booleana BOOL 1 bit pu assumere solo significato FALSE o TRUE BYTE TYPE Variabile byte BYTE 8 bits senza segno range da 0 a 255 SINT_TYPE Variabile byte SINT 8 bits con segno range da 128 a 127 USINT_TYPE Variabile byte USINT 8 bits senza segno range da 0 a 255 WORD_TYPE Variabile word WORD 16 bits senza segno range da 0 a 65535 INT_TYPE Variabile word INT 16 bits con segno range da 32768 a 32767 UINT_TYPE Variabile word UINT 16 bits senza segno range da 0 a 65535 DWORD_TYPE Variabile double word DWORD 32 bits senza segno range da 0 a 4294967295 DINT_TYPE Variabile double word DINT 32 bits con segno range da 2147483648 a 2147483647 UDINT_TYPE Variabile double word UDINT 32 bits senza segno range da 0 a 4294967295 REAL TYPE Variabile floating REAL 32 bits con segno range da 3 40E 38 a 3 40E 38 STRING_TYPE Variabile stringa STRING 5 2 Task ID definition identificatore di task PLC Le task PLC sono identificate da un un valore il valore indicato con definizioni che si possono trovare nella cartella Task ID definition Define Description ID _TASK_BOOT Identifica la task di boot PLC Questa task viene esegu
217. im Bout Mnl151c070 Pag 196 288 el Programmazione IEC 61131 3 7 18 Funzioni ed FB supporto prodotti Hw Group eHwGSpLib La ditta della repubblica Ceca Hw Group htitp www hw group com produce dispositivi per Networking e prodotti per telecontrollo monitoraggio e gestione dati Tutti i prodotti Hw Group dispongono di connettivit su rete ethernet con protocolli TCP IP UDP SNMP ed per facilitare la connessione di questi prodotti con l ambiente di sviluppo LogicLab sono fornite funzioni e blocchi funzioni specifici Pag 197 288 Mnl151c070 Programmazione IEC 61131 3 Get Type Library Version 7 18 1 STESnmpAcaqa 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 E day aperto dalla funzione Sysfopen come socket UDP e posto in ascolto con il blocco funzione Sch SysSktListen PeerlP Sensore PeerPort Su fronte attivazione del comando Acquire viene effettuata la lettura SNMP dal termometro sad STE definito da indirizzo IP PeerlP su porta PeerPort Di default la porta SNMP la 161 Se il comando Acquire mantenuto attivo la le
218. imo programma gratuito di SARE uno screenshot con la visualizzazione di notifiche inviate da un sistema SlimLine A i Start Server i Find Search Import Export Delete Reports eee Settings VendorPack Help Info Show AnySeverity from Al Sources last 1000 messages Update every 10 seconds Updated at 27 01 2012 09 31 35 AutoScroll E S Last 1000 Syslogs Syslogs for Period Import Search Results 0 Sources GO Server Log Backups A Received Source IP Source Na Facility Severity Timestamp Tag Origin Message 27 01 2012 09 10 49 423 192 168 0 syslogd Warning Feb 27 09 11 08 0xBE421217 Caldaia Messaggio di prova es 01 2012 09 13 50 574 192 168 0 mail Warning Feb 27 09 14 08 0xBE421217 Caldaia Messaggio di prowa DD CH Ko A a Ei I E fasi CD Si 127 01 2012 09 28 32 565 192 168 0 secur auth Notice Feb 27 09 28 51 0xBE42121 Supervisore Ingresso operatore Nr 124288 27 01 2012 09 28 54 488 192 168 0 secur auth Notice Feb 27 09 29 12 0xBE42121 Supervisore Ingresso operatore Nr 233567 Message View Warning syslogd 192 168 0 125 venerdi 27 gennaio 2012 09 13 20 852 Messaggio di prova For Help press F1 Service Started 4 5 0 Tot 7 2 i Sel D UDP 514 CP 1468 IPv4 IPub Ver 4 3 0 Come si vede le varie notifiche sono suddivise con colori in base alla loro importanza e nel testo del messaggio possibile riportare qualsiasi informazione ad esempio il cod
219. in base al geen valore di Duty Duty lt 50 L uscita viene settata a FALSE Duty gt 50 L uscita viene settata a TRUE Frequency Duty Address sint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione encoder Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito Il valore 255 indica il modulo CPU Se viene settato un indirizzo di modulo non presente si interrompe l esecuzione e viene settato il bit di Fault Channel usin Occorre specificare l indirizzo del canale sul modulo Range da 0 a 15 Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Frequency rea Valore di frequenza in uscita Per i limiti fare riferimento al manuale hardware della scheda utilizzata Il valore espresso in Hz Duty REAL Valore di duty cycle del segnale in uscita Per i limiti fare riferimento al manuale hardware della scheda utilizzata Il valore espresso in Done 8001 Generatore PWM correttamente impostato Fault B001 Errore nella esecuzione Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9951050 Errore allocazione blocco funzione 9951070 Errore versione blocco funzione 9951100 Il modulo indirizzato in Address non presente 9951110 Numero di canale non presente 9951500 Errore esecuzione 9951990 Non impleme
220. ine delle uscite dalla memoria di sistema alle uscite logiche Quindi testando lo stato della immagine di memoria degli ingressi logici si testa lo stato del relativo punto di ingresso Esempio X0 0 corrisponde all ingresso 0 del modulo 0 X7 5 corrisponde all ingresso 5 del modulo 1 Scrivendo lo stato nella immagine di memoria delle uscite logiche si setta lo stato del relativo punto di uscita Esempio QX0 0 corrisponde all uscita 0 del modulo 0 QX7 5 corrisponde all uscita 5 del modulo 1 Gli I O logici possono anche essere gestiti tramite le funzioni SysGetPhrDI e SysGetPhrDO Gli I O analogici sono gestiti tramite le funzioni SysGetAninp e SysSetAnOut contatori sono acquisiti dal blocco funzione SysGetCounter Gli ingressi encoder sono acquisiti dal blocco funzione SysGetEncoder II CAN bus viene gestito dalle funzioni SysCANRxMsg e SysCANTxMsg Per accedere alle porte seriali 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
221. inserito nel lettore viene attivato TAGInserted Per semplicit nel programma non viene eseguito alcun controllo sull ID letto ma in un sistema di controllo accessi ad esempio possibile dall ID letto identificare la persona ed abilitare o no l accesso Definizione variabili pil Name Type Address Array Init value Attribute Description 1 IDDone BOOL AUTO Mo FALSE A Read ID code done 2 Dok BOOL Auto No FALSE ID code read ta TAGInserted BOOL Auto Mo FALSE TAG inserted on reader 4 ROMID BYTE Auto m 3 8 0 ROM ID code E Owl UDINT Auto No 0 One Wire ID 6 Fp FILEP Auto No 0 File pointer H Owire sOvVirehing Auto Mo FB One Wire management o pap sOWRdldentifier Auto No 0 FB One Wire read ID Esempio LD PTP120A200 LD_TAGReader Open the serial port Sysfopen SysFirstLoop EN ENO Fia COM Gier FP Mode D Manage the Serial One Wire converter OWire sOWireMng SysFirstLoop Hs Enbe nor Ep A File Activity Fault MnglD OwlD Execute the TAG reader code HOI IDDone IDDone IDO ROMID Kg IDDone IDO TAGInserted Ae aaa R IDDone IDO TAGInserted cl E Mnl151c070 Pag 183 288 Programmazione IEC 61131 3 3 Flich f Type Library Version 7 16 3 SOWRdTemperature One Wire read temperature n FB ePLC1WireLib SFRO59B000 Questo blocco funzione esegue l acquisizione di un sensore One Wire di temperatura RIEN Maxim DS18B20 si collega al blocco funzione sOWireMng di gestione convertito
222. io CLIPNumber strinciie Contiene la stringa con il numero di CLIP ricevuto IPAddress stinc 16 Indirizzo IP assegnato dal gestore su connessione GPRS Mnl151c070 Pag 169 288 Programmazione IEC 61131 3 3 Flich Trigger di spy Se SpyOn attivo viene eseguita la funzione SysSpyData che permette di spiare il funzionamento della FB Sono previsti vari livelli di triggers TFlags Descrizione 16 00000001 Rx Ricezione stringa da modem 16 00000002 R gt Stringa ricevuta da modem troppo lunga 16 00000004 Tx Trasmissione stringa verso modem 16 00000010 Mr Ricezione messaggio SMS 16 01000000 Etichette di segnalazione operazioni modem Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 10002010 Valore di File non definito 10002020 FB protetta terminato tempo funzionamento in modo demo 10002050 Timeout esecuzione 10002080 Errore case gestione 10002100 FB eseguita in task diversa da quella di background 10002200 3 Errore ricezione CLIP 10002300 4 Errore nelle sequenze power on del modem 10002400 10 Errore nelle sequenze di controllo del modem 10002500 7 Errore nella ricezione del messaggio SMS Esempi Nell esempio gestito un modem connesso al terminale di I O definito nella variabile Fp per la definizione delle variabili e per una migliore comprensione del funzionamento si rimanda agli esempi successi
223. ione 10007100 Codice funzione definito in Function non gestito 10007120 Valore di Points errato 10007200 1 Errore trasmissione frame comando 10007500 Errore in ricezione frame Codice comando errato 10007520 Errore in ricezione frame CRC frame errato 10007540 Errore in ricezione frame Dati errati Mnl151c070 Pag 236 288 Programmazione IEC 61131 3 5 Fleet Type Library Version 8 1 4 ModbusRTUMaster_v1 modbus Rtu master FB PLCUtyLib SFRO54B 100 Questo blocco funzione esegue la gestione del protocollo modbus master possibile definire il i g i ModbusRTUMaster vi terminale di I O su cui effettuare la comunicazione File Attivando Enable sul terminale di I O n viene inviato un frame per eseguire la funzione modbus definita in FCode Terminata Enable Lone l esecuzione del comando viene attivata l uscita Done Se l esecuzione comando ha esito File Ok positivo si attiva per un loop di programma l uscita Ok Disattivando Enable si azzera Done e Mode Fault l eventuale Fault per eseguire nuovamente il comando occorre riabilitare l ingresso Enable Fade Sarr Se FCode una funzione di lettura il valore delle variabili a partire dall indirizzo definito in 99res Address per il numero di variabili definito da Points viene letto dal sistema slave e trasferito Paints nelle variabili indirizzate da Buffer Buffer Se FCode una funzione di scrittura il valore delle variabili present
224. ione 10038080 Errore definizione Type 10038100 10 Errore in ricezione frame Carattere errato lunghezza errata 10038200 2 Errore trasmissione frame risposta 10038501 Eccezione 01 llegal function comando ricevuto non tra quelli gestiti 10038502 Eccezione 02 Illegal data address comando ricevuto ha indirizzo o numero dati fuori range 10038503 Eccezione 03 Illegal data value comando ricevuto ha campo dati fuori range 10038504 Eccezione 04 Failure in associated device comando ricevuto contiene imprecisioni Mnl151c070 Pag 146 288 Programmazione IEC 61131 3 Get Esempi Viene gestito il protocollo modbus slave su porta seriale COMO si utilizza le impostazioni seriali di default 115200 e 8 1 comandi modbus possono agire sull array di WORD DArray Definizione variabili Name Type Address Array Init value Attribute Description 1 RxDone BOOL Auta No FALSE A Modbus Rx command Ok 2 RxFault BOOL Auto No FALSE Modbus Rx command fault A Fp FILEP Auto No 0 S File pointer 4 MdbSn Modbusslave Auto No 0 A Modbus RTU slave FB 5 DArray WORD Auto 0 31 32 0 5 Modbus accessible area Esempio LD PTP114A610 LD_ModbusSlave SysFirstLoop EN ENO RxFault Mnl151c070 Pag 147 288 Programmazione IEC 61131 3 Library Version 7 13 6 ONOFFCYCLE on off cycle with random times PLCUtyLib SFR054A000 Questo blocco funzione esegue la temporizzazione di un ciclo On Off
225. ione esegue la gestione del protocollo modbus master possibile definire il terminale di I O su cui effettuare la comunicazione File RE Enabl b Attivando il comando di read RdCmd sul terminale di I O viene inviato un frame modbus con il Sa de comando di Read Holding Registers 0x03 ed il valore ritornato dei registri viene trasferito nella variabile indirizzata da Buffer a Mrt md Attivando il comando di write WrCmd sul terminale di I O viene inviato un frame modbus con il Kee comando di Preset Multiple Registers 0x10 con il valore dei registri acquisito dalla variabile SEET indirizzata da Buffer NrOtRegs Terminato il comando viene attivato per un loop l uscita Done in caso di errore esecuzione _ Buffer comando viene attivata per un loop l uscita Fault Enable B001 Comando di abilitazione blocco funzione File FILEP Pointer al file della risorsa come ritornato dalla funzione Sysfopen RdCmd esoo 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 upint 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 usnm Numero di registri consecutivi da leggere o scrivere Range da 1 a 32 Buffer uint Indirizzo buffer dati letti o da scriver
226. isturbati dalla presenza di onde elettromagnetiche e pu utilizzare come mezzo trasmissivo una linea a differenza di potenziale bilanciata come la RS 485 L immunit ai disturbi EMC pu essere ulteriormente aumentata utilizzando cavi di tipo twisted pair doppino intrecciato Sebbene inizialmente applicata in ambito automotive come bus per autoveicoli attualmente usata in molte applicazioni industriali di tipo embedded dove richiesto un alto livello di immunit ai disturbi Il bit rate pu raggiungere 1 Mbit s per reti lunghe meno di 40 m Velocit inferiori consentono di raggiungere distanze maggiori ad es 125 kbit s per 500 m Il protocollo di comunicazione del CAN standardizzato come ISO 11898 1 2003 Mnl151c070 Pag 105 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 10 1 SysCANSetMode set the CAN controller mode Function Embedded XTarget 07 0 Questa funzione imposta il modo sul controller CAN E possibile definire il valore di bit Sys CANSetMode rate il filtro e la maschera di accettazione pacchetti rn La funzione ritorna TRUE se eseguita correttamente FALSE se errore Filter a flask Parametri funzione BitRate sint Valore definizione bit rate CAN bus CAN bit rate definition Filter DINT Valore di filtro pacchetti CAN Mask upin Valore di maschera filtro pacchetti CAN La funzione ritorna GE TRUE Eseguita correttamente FALSE In caso di errore esecuzione
227. it value 1 FBRS RS Auto Mo O Esempio LD PTP115A100 Ge LD FERS pido qu o ou o a oo a _uoae _ m Doti Mion DiD E 4 cS BI CAL FBRS Call the RSG function block Esempio IL 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 FBRS4RL D101M00 Do00M00 FBRS 01 Mnl151c070 Transfer the digital input to the set command Transfer the digital input to the reset command The function block output is copied to digital output Pag 36 288 Programmazione IEC 61131 3 Library Version 7 1 4 SR Set Reset flip flop ePLCStdLib SFR053A000 Questo blocco funzione su attivazione del comando di set S1 attiva l uscita Q1 che rimane attiva anche SR quando il comando di set viene disattivato Per disattivare l uscita occorre attivare il comando di reset R 51 D Il comando di set S1 prioritario sul comando di reset R S1 B001 Set su attivazione del segnale viene attivata l uscita Q1 che rimane attiva anche quando il comando viene disattivato Il comando prioritario sul comando di reset R R B001 Reset su attivazione del segnale viene disattivata l uscita Q1 Q1 B001 Uscita si attiva e disattiva in funzione dei comandi di
228. ita nel HE 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 File Parametri funzione Buf stRING Indirizzo della stringa da scrivere Size nT Lunghezza in caratteri delle stringhe da scrivere Count int Numero di stringhe da scrivere File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna UNT Numero di stringhe scritte se valore ritornato 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 9969990 Non implementata nel simulatore Esempi Vengono attesi almeno 5 caratteri ricevuti dalla porta seriale e quando ricevuti viene letta una stringa di 5 caratteri 5 stringhe di 1 carattere la stringa letta trasferita nella variabile RxString La stringa letta viene poi ritrasmessa sulla porta seriale notare come anche nella trasmissione trasmessa una stringa di 5 caratteri 1 stringa di 5 caratteri Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEF Auto Mo 0 Port COMO file
229. ita 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 Mnl151c070 Pag 18 288 Programmazione IEC 61131 3 Eet 5 3 TermlO definition definizioni per terminale di I O Nella gestione dei terminali di I O sono utilizzate delle definizioni che si possono trovare nella cartella TermlO definition Define Description identifica un puntatore vuoto Utilizzato come ritorno da alcune funzioni in caso di errore Identifica il fine file Utilizzato come valore di ritorno da alcune funzioni in caso di fine file raggiunto 5 4 FSeek origin definition definizioni per seek su file Nella gestione della ricerca su file sono utilizzate delle definizioni che si possono trovare nella cartella FSeek origin definition Define Description ID_SEEK_SET Inizio del file ID SEEK CUR Posizione corrente file ID_SEEK_END Fine d
230. ital input to the function block clock LD FBF TRIGLO ST Do00M00 On the falling edge of digital input the output is set Esempio ST FBF TRIG Call the F TRIG function block FBF TRIG CLK Di00M00 Transfer the digital input to the function block clock Do00M00 FBF_TRIG Q On the falling edge of digital input the output is set Mnl151c070 Pag 34 288 Programmazione IEC 61131 3 3 Flich Library Version 7 1 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 Ia e Lk CLK 001 Clock sul fronte di attivazione del segnale viene attivata l uscita Q per un loop di programma Q 001 Uscita attiva per un loop di programma sul fronte di attivazione dell ingresso di clock CLK Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene attivata per un loop di programma l uscita digitale Do00MO00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBR_TRIG R_TRIG AUTO Mo U R_TRIG Raising edge trigger function block Esempio LD PTP1154100 R_TRIG_LD FB_R_TRIS R_TRIG Dido Woo Da00 WOO CLE L Esempio IL CAL FBR TRIG Call the R TRIG function block LD Di00M00 ST FBR TRIG CLK Transfer the digital input to the function block clock LD FBR TRIG Q ST Do00M00 On the raising edge of digit
231. iva se l ambiente di sviluppo LogicLab connesso al sistema SyslsDST BOOL Attiva se si nel periodo di Daylight Saving Time SysDT Set BOOL Attiva per un loop esecuzione task background su modifica real time clock da sistema operativo SysUVSet BOOL Attiva per un loop esecuzione task background su modifica impostazioni utente da sistema operativo vedi esempio SysAlwaysOff BOOL Variabile mai attiva SysAlwaysOn BOOL Variabile sempre attiva SysFFBUspt BOOL Il programma esegue almeno una funzione o blocco funzione non supportato SysFFBPrt BOOL Il programma esegue almeno una funzione o blocco funzione protetto SysActTaskID USINT Numero di identificazione della task in corso vedi tipi definiti SysErActTaskID USINT Numero di identificazione della task in cui l errore si verificato vedi tipi definiti SysModulesReady UINT Ogni bit della variabile se attivo indica la presenza del modulo connesso al bus SlimLine SysApllVMajor UINT Valore Major della versione dell applicazione SysApllVMinor UINT Valore Minor della versione dell applicazione SysTBackLpTm UDINT Tempo di loop attuale della task di background PLC uS SysTBackLpTmMin UDINT Tempo di loop minimo della task di background PLC uS E possibile inizializzarne il valore settando il bit SysTimelnit 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
232. izzo dell array di 8 bytes che contiene il ROM ID del dispositivo che si vuole acquisire Enable B00L Abilita il blocco funzione MngiD pin One Wire management ID fornito in uscita dal blocco funzione sOWireMng IDCode usint Puntatore ad array definizione ROM ID dispositivo da acquisire Done 8001 Si attiva al termine della esecuzione lettura umidit e temperatura Ok 8001 Attivo per un loop se lettura umidit e temperatura eseguita correttamente Fault B001 Attivo se errore lettura umidit e temperatura Temperature REAL Valore di temperatura acquisito C Range di lettura da 55 C a 125 C Precisione 0 5 C tra 10 C e 85 C Risoluzione di lettura 0 03125 C Humidity ReaL Valore di umidit acquisito RH Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10015010 MngiD non definito 10015020 MngiD non corretto 10015100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10015200 3 Errore nelle sequenze conversione temperatura 10015300 8 Errore nelle sequenze acquisizione tensione alimentazione sensore 10015400 8 Errore nelle sequenze acquisizione sensore umidit Mnl151c070 Pag 186 288 Programmazione IEC 61131 3 3 Flich Esempi Viene eseguita la lettura della temperatura ed umidit da un dispositivo One Wire Non essendo definito DCode viene acquisito qualsiasi dispositiv
233. k 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 upint Codice maschera ID messaggio ID DINT ID check ID messaggio Msg syscanmessace Indirizzo buffer messaggio ricevuto La funzione ritorna a TRUE Messaggio ricevuto Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9955005 Funzione non supportata 9955990 Non implementata nel simulatore Esempi E riportato un semplice programma che esegue la ricezione di qualsiasi messaggio CAN ed esegue l invio in uscita sulla porta seriale COMO della struttura del messaggio ricevuto Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FIER Auto NO 0 i Port COMO file pointer d CANN Sy SYSCANMESSAGE Auto Mo O P CAN message A MrOfchars INT Auto Mo O i 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 TYP
234. l CRC ByteNr unt Numero di bytes su cui eseguire il calcolo del CRC a partire dall indirizzo definito in Buffer Result unt Valore CRC calcolato Esempi Viene calcolato il CRC di una richiesta di lettura del registro 1 8 1 da un contatore di energia elettrica secondo lo standard IEC 62056 2 Il frame di richiesta lt SOH gt R1 lt STX gt 1 8 1 lt ETX gt lt CRC gt Il valore del CRC ritornato in CRCValue 16 5A 90 decimale Definizione variabili Mame Type Address Array Init value Attribute Description 1 DataFrame STRING Auto 16 7 Data frame 2 CRCValue WINT Auto Mo I o CRC Value Esempio ST METTTITTTTTT TTT TTT TTT TT TTT TTT TTT TTT TT TTT TTT TTT TTT TTT TTT TT TTT TTT I I TTT TTT TETRA IEC1155 CRC CALCULATION KKEKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK x Register read command lt SOH gt R1I lt STX gt 1 8 1 lt ETX gt lt CRC gt DataFrame 01R1 021 8 1 03 Data frame zi CRCValue GetIS01155Crc ADR DataFrame 12 CRC Value zi Mnl151c070 Pag 156 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 13 12 IODataExchange exchange data by using logic I O FB PLCUtyLib SFRO54A500 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 CRC ogni sistema possibile definire
235. l interno del programma utente SysUInfoA SysUInfoB SysUInfoC SysUInfoD 4 variabili stringa da 16 caratteri che possono essere valorizzate da programma utente e visualizzabili da sistema operativo SysUSetA SysUSetB SysUSetC SysUSetD 4 variabili stringa da 16 caratteri che possono essere valorizzate da sistema operativo e utilizzate da programma utente E prevista una pagina web Men User in cui sono visualizzate le variabili SysUInfo x ed possibile impostare le variabili SysUSet x ELSIST SlimLine User informations and settings RE NN N N CH iTi Ti ELSIST SlimLine For more information visit our website www elsistit Nell esempio riporto un semplice programma che acquisisce i valori delle variabili SysUSet x e li trasferisce nella rispettiva variabile di visualizzazione SysUInfo x Nella pagina web il valore impostato nella variabile SysUSet x su accettazione con il tasto Write verr ritornato nella variabile SysUInfo x come visibile dallo screenshot riportato sopra Definizione variabili Mame Type Address Array Init value Attribute Description 1 Values UDINT Auto Usa 4 0 Uservariables value 2 Ji INT Auto Mo 0 x Auxiliary variable Esempio ST Read user settings and write user infos IF SysUVSet THEN i SysVarsscanf ADR SysUSetA d UDINT TYPE ADR Values 0 i SysVarsnprintf ADR SysUInfoA 16 d UDINT TYPE ADR Values 0 i SysVarsscanf ADR SysUsetB sd UDIN
236. l ultimo errore riscontrato nella esecuzione ID Range errore Funzione o FB 9947 9947000 9947999 SysMAlloc memory allocation 9948 9948000 9948999 SysSetTaskLpTime set task loop time 9949 9949000 9949999 Funzione embedded 9950 9950000 9950999 SysSpyData system spy data 9951 9951000 9951999 SysSetPWMOut set PWM output 9952 9952000 9952999 SysDirListing directory listing 9953 9953000 9953999 Sysl2CWrRd writes reads on I2C extension bus 9954 9954000 9954999 SysCANTxMsg transmit a CAN message 9955 9955000 9955999 SysCANRxMsg receives a CAN message 9956 9956000 9956999 SysISCANRxTxAv checks if CAN Rx or Tx is available 9957 9957000 9957999 SysCANSetMode set the CAN controller mode 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 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
237. la funzione Sysfopen Address usint Indirizzo inverter Range da 0 a 255 Parameter usint Codice parametro da acquisire da inverter Vedi codici parametro Done 6001 Attivo per un loop al termine della esecuzione del comando Fault B001 Attivo per un loop su errore esecuzione del comando Value upint Valore parametro acquisito da inverter E nella relativa unit di misura Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Codici parametro Nella variabile Parameter occorre definire il codice del parametro da leggere dall inverter secondo la tabella Codice Descrizione 0 Daily energy Weekly Energy Month Energy Energy from the first day of current calendar month Year Energy Energy from the first day of current calendar year Total Energy Total lifetime Partial Energy Cumulated since reset Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il 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 Mnl151c070 Pag 211 288 Programmazione IEC 61131 3 3 Flat Esempi Viene eseguita la lettura del totale energia prodotta dall inverter con indi
238. latitudine longitudine ora e fix esempio di Ha 9 eng sentenza IGLL 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 8001 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 indicano latitudine nord valori negativi latitudine sud Longitude rea Valore di longitudine indicato nella sentenza il valore espresso in frazione di gradi Valori positivi indicano longitudine est valori negativi longitudine ovest UTCHour usin Valore di ora UTC indicato nella sentenza UTCMinute usint 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 1001
239. li Mame Type Address Array Init value Attribute Description 1 En FILER Auto Mo O 5 Port COMO file pointer 2 Dm SYSSERIALMODE Auto Mo 0 Serial mode data struct 3 Pulse BOOL Auto Mo FALSE A Pulse flag Esempio ST P7TP116A300 ST_SysSetSerialMode On input raising edge the serial mode is changed IF Di100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF D100M00 THEN IF Fp NULL THEN Fp Sysfopen COMO rw END IF Do00M00 SysGetSerialMode ADR Sm Fp Sm Baudrate 19200 Sm Parity N sm DTRManagement DTR AUTO WO TIMES Do01M00 SysSetSerialMode ADR Sm Fp END IF END IF Mnl151c070 Pag 100 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 9 3 SetSMode Set serial mode FB PLCUtyLib SFR054A000 Questo blocco funzione esegue impostazione parametri di comunicazione porta seriale Occorre passare al blocco funzione il puntatore al file di porta seriale su cui ce eseguire l impostazione dei parametri di comunicazione cos 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
240. li 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 233 288 Programmazione IEC 61131 3 3 Flich Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10007010 Valore di File non definito 10007050 Timeout esecuzione 10007060 Errore esecuzione 10007100 Codice funzione definito in Function non gestito 10007120 Valore di Points errato 10007500 Errore in ricezione frame Codice comando errato 10007520 Errore in ricezione frame CRC frame errato 10007540 Errore in ricezione frame Dati errati Mnl151c070 Pag 234 288 Programmazione IEC 61131 3 5 Flee Type Library Version 8 1 3 sModbusRTUMaster modbus Rtu master FB eObsoleteLib SFRO66A000 Questo blocco funzione esegue la gestione del protocollo modbus master possibile definire il rn terminale di I O su cui effettuare la com
241. ll 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 PTP14A100 ST_BlinkValue FBData BlinkNr 23 Call the BLINK function block FBData Enable D100M00 Transfer the digital input to FB enable Do00M00 FBData 0OutBit Transfer the FB output to digital output Mnl151c070 Pag 141 288 Programmazione IEC 61131 3 3 Flich Type Library Version FB PLCUtyLib SFR054B220 7 13 4 ModbusMaster modbus master Questo blocco funzione esegue la gestione del protocollo modbus master con Type possibile e Zeg a SE sia Lal a i Modbus Master selezionare il tipo di protocollo RTU Ascii ed over IP Con File possibile definire il terminale di I O su cui effettuare la comunicazione Enable Done f oo i SpyOn Ok Attivando Enable sul terminale di I O viene inviato un frame per eseguire la funzione modbus i e a o 5 i i i e File Fault definita in Fcode sul nodo definito in Node Terminata l esecuzione del comando viene attivata Type Errors l uscita Done Se l esecuzione comando ha esito positivo si attiva per un loop di programma l uscita Ok Disattivando Enable si azzera Done e l eventuale Fault per eseguire nuovamente il comando Made occorre riabilitare l ingresso Enable L ingresso SpyOn se
242. lla Variable types definition VarAdd unin Indirizzo variabile La funzione ritorna KR Numero d caratteri comprensivo codice fine stringa 0 trasferiti in variabile String EOF Errore esecuzione Codici di errore In caso di errore la funzione torna con EOF e con SysGetLastError possibile rilevare il codice di errore 9997100 Tipo variabile non gestito controllare VarType 9997200 Il valore di Size limita la formattazione della stringa in uscita Esempi Su fronte attivazione ingresso DI00M00 viene incrementata la variabile Counter e la stampa del suo valore trasferita nell array StringOut valore presente in StringOut viene poi inviato sulla porta seriale COMO Nella variabile NrOfChars viene caricato il numero di caratteri trasferiti in StringOut ed inviati in uscita sulla porta seriale Definizione variabili Mame Type Address Array Init value Attribute Description 1 F 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 R Character written Esempio ST PTP116A100 ST_SysVarsnprintf Here the COMO port is opened in read write IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END_IF Check if the COMO port is open IF Fp lt gt NULL THEN Mnl151c070
243. llocata all indirizzo DB 100 10 con un numero di cifre intere variabili in base al valore lt 04d UINT 10 gt Visualizza il valore della variabile UINT allocata all indirizzo DB 100 10 sempre espresso con 4 cifre lt 3 0f REAL 32 gt Visualizza il valore della variabile REAL allocata all indirizzo DB 100 32 con 3 cifre intere e nessuna cifra decimale lt 4 2f REAL 50 gt Visualizza il valore della variabile REAL allocata all indirizzo DB 100 50 con 2 cifre intere e 2 cifre decimali Mnl151c070 Pag 262 288 Programmazione IEC 61131 3 Eet 10 4Formato ARGs La principale peculiarit del web dinamico la possibilit di variare i contenuti delle pagine in base alle richieste degli utenti Questa possibilit si materializza attraverso i meccanismi che permettono agli utenti oltre che di richiedere una pagina ad un web server anche di specificare determinati parametri da inviare al server web Per impostare da pagina web valori di variabili PLC viene gestita una richiesta di tipo POST il metodo utilizzato con i moduli quando una pagina Html contiene un tag lt form gt dati impostati nei vari oggetti contenuti nel lt form gt sono inviati in maniera da non essere direttamente visibili per l utente attraverso la richiesta HTTP che il browser invia al server Se ci riferiamo all esempio precedente vediamo che la parte di pagina Html che permette l impostazione della variabile PLC U
244. log output FB Embedded XTarget 07 0 Questo blocco funzione esegue il set del valore sull uscita analogica sul modulo di uscita Il blocco funzione gestisce vari modi di uscita in funzione del modulo analogico a cui fa riferimento Gelee Address Done Channel Fault a Mode Value Address usint Occorre specificare l indirizzo del modulo su cui settare il valore analogico Range da 0x00 a 0x0F Il valore 0x00 indica il primo modulo di estensione 0x01 il secondo e cos di seguito Channel usint Occorre specificare l indirizzo del canale sul modulo Range da 0x00 a Ox0F Se viene settato un indirizzo di canale non presente si interrompe l esecuzione e viene settato il bit di Fault Mode sint Occorre specificare il modo di gestione uscita analogica Digital to analog mode Value REAL Occorre specificare il valore di uscita espresso nella unit definita dal modo di gestione Done 6001 Dato settato Viene attivato per un loop al termine del settaggio dell uscita analogica Fault B001 Errore Viene attivato in caso di errore nella sequenza di settaggio Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9982050 Errore allocazione blocco funzione 9982060 Terminato spazio memoria rilocabile non possibile eseguire IER 9982070 Errore versione blocco funzione 9982080 Impossibile inizializzare il modulo 9982100 Il modulo indirizzato in Address non prese
245. lore in uscita scalato OHigh REAL Limite massimo del valore in uscita scalato REAL Valore scalato in uscita Esempi Viene eseguita una acquisizione analogica di un sensore di temperatura con uscita in corrente 4 20 mA il sensore ha come valore in uscita la corrente di 4 mA a 50 C e la corrente di 20 mA a 150 C Utilizzando la funzione si esegue direttamente la conversione in gradi centigradi del valore acquisito Definizione variabili Name Type Address Array Init value Aftribute Description 1 Analnput SysGetAninp Auto No 0 n FB Analog input data 2 Temperature REAL Auto No 0 n Temperature value C Esempio FBD P7P114A610 FBD_Scale Analnput SysGetAnlnp D Address Done g Channel Fault Value Scale AD CURR_4 20 COMMON Mode Input 40 Low 50 0 High 50 0 OLow 1500 OHigh Mnl151c070 Pag 163 288 Programmazione IEC 61131 3 3 Get i Type Library Version 7 13 17 GetPolynomialCRC polynomial CRC calculation Function PLCUtyLib SFR054B220 Questa funzione esegue il calcolo del CRC su di un array di dati in accordo allo standard GetPolynomialCRC CCITT Data In Data occorre indicare l indirizzo dell array di dati su cui calcolare il CRC Length indica la Length lunghezza dell array in byte In CRC ritornato il valore del CRC calcolato Data usiNT Indirizzo array dati su cui eseguire il calcolo del CRC Length usint Lunghezza array in byte
246. lt BOOL Function fault Value WORD D Digital input value Cancel Mnl151c070 Pag 28 288 Programmazione IEC 61131 3 Eet 7 0 2 Librerie In aggiunta alle funzioni ed FB embedded sono fornite delle librerie che contengono una serie di funzioni e blocchi funzioni che possono essere utilizzati nel proprio programma Le librerie fornite con LogicLab si trovano nella directory di installazione programma 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 una buona soluzione La controindicazione quella di aumentare la dimensione del file di progetto LogicLab ppjs in quanto deve contenere oltre al proprio programma anche tutti gli oggetti della libreria importata Il programma eseguibile generato conterr comunque solo gli oggetti utilizzati Import oggetti In questo modo possibile importare da una libreria solo gli oggetti Funzioni FB ecc che interessano i quali diverranno parte integrante del proprio progetto 7 0 3 Import libreria Con questa modalit vengono importati tutti gli oggetti presenti nella ISTE libreria Per importare nel proprio programma l
247. mbia i dati con i PLC nodo 1 e 2 Nel PLC nodo 0 gestita anche la FB di invio in broadcast attivando la trasmissione i dati saranno ricevuti solo dai PLC nodo 1 e 2 e non dal PLC nodo 3 perch non ha attivo nessun scambio con il PLC del nodo che ha inviato il messaggio di broadcast Mnl151c070 Pag 221 288 Programmazione IEC 61131 3 Mnl151c070 Pag 222 288 Programmazione IEC 61131 3 Library Version 7 22 1 MMasterDataTxfer multimaster data transfer eMMasterDT xferLib SFR068B000 Questo blocco funzione esegue l interfaccia con il terminale di I O definito in File per Master Data Ter gestire la comunicazione multimaster su rete multidrop Questo un blocco funzione EE Se aji A z A e e chaie nabie protetto per utilizzarlo occorre richiedere il codice di protezione vedi protezione funzioni e blocchi funzione E comunque possibile utilizzarlo liberamente in modo test per 30 Min F li o ue N hyMode hihi DtTsflD Il blocco funzione agisce da server di comunicazione gestendo il dispositivo di I O Mi RyF rames verranno poi connessi dei blocchi funzione client che gestiscono lo scambio dati tra i ASSE SEO sistemi L FB ritorna un MMDtTxfID che deve essere passato alle FB client Esempio re ES al In In E Os DataTxferClient In MyNode occorre definire il numero di nodo del sistema in una rete il numero di nodo deve essere univoco Tutti i messaggi che hanno come nodo di destina
248. mentato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore Codice Descrizione 10014050 Valore di File non definito 10014100 Terminato spazio memoria rilocabile non possibile eseguire I FB 10014200 2 Errore ricezione frame dati blocco di memoria 10014300 2 Errore ricezione frame acknowledge 10014400 Ricevuto comando non gestito 10014500 1 Errore sequenze di trasmissione 10014600 Timeout invio frame dati blocco di memoria Mnl151c070 Pag 195 288 a oe Programmazione IEC 61131 3 4 Alaz Esempi Nell esempio viene scambiato un blocco di memoria di 16 bytes verso il sistema con IP 192 168 0 126 Definizione variabili Te Address Amay Initvalue Attribute Description BOOL Auto No FALSE Peer IP is reached BOOL Auto 0 15 16 0 n Rx data buffer BOOL Auto No FALSE S Socket available BOOL Auto 0 15 16 0 P Tx data buffer FILEP Auto No 0 A UDP socket SyslPReach Auto No 0 IP reach Ping SvssktListen Auto No 0 Socket listen UDPDataTxfer Auto No 0 UDP data transfer Esempio LD P7TP119A300 UDPDataTransfer SysFirtloop EN FMame UDPSKT SktAvailable Connect ClientiP Peerl PDE Do00Moo Dod MIDD Fault Do0ZMoo PRexDatalDk Dio03MOoo Port TxDataSent RxDBuffer TxDBuffer Byter T
249. mpegno del canale di comunicazione Utilizzando questa libreria possibile fare dialogare i diversi sistemi direttamente tra di loro in modalit peer to peer In questo modo un sistema invia dati all altro solo quando necessario garantendo un rapido invio dei dati con il minimo impegno del canale di comunicazione Comunicazione in broadcast Nel caso in cui un dispositivo su di un nodo della rete sia in comunicazione con molti altri dispositivi ed i dati in scambio siano gli stessi per tutti i dispositivi possibile utilizzare il blocco funzione BroadcastDataSend che invia il pacchetto dati in broadcast tutti i dispositivi che hanno come nodo di destinazione ToNode nel blocco funzione DataTxferClient l indirizzo del nodo che invia il messaggio in broacast lo riceveranno senza pero inviare l acknowledge Questo significa che la trasmissione in broadcast permette di velocizzare il trasferimento dati da un nodo ad altri nodi permettendo altres la ricezione simultanea dei dati inviati su tutti i nodi Ma non certa l avvenuta ricezione dei dati da parte dei nodi destinatari quindi conviene fare seguire ad una trasmissione in broadcast anche una trasmissione peer to peer Nella figura seguente riportato uno scenario tipico di comunicazione multimaster via radiomodem II PLC nodo 0 scambia dati con i PLC nodo 1 e 2 Il PLC nodo 1 scambia i dati con i PLC nodo 0 2 e 3 II PLC nodo 2 scambia i dati con i PLC nodo 0 1 e 3 Il PLC nodo 3 sca
250. mpo di sistema si incrementa ad ogni 1 mS raggiunto il valore massimo si reinizializza Mnl151c070 Pag 14 288 Programmazione IEC 61131 3 Name Type el Description SysTFastLpTm UDINT Tempo di loop della task fast PLC Il tempo impostabile tramite la funzione SysSetTaskLpTime SysTSlowLpTm UDINT Tempo di loop della task slow PLC Il tempo impostabile tramite la funzione SysSetTaskLpTime SysAppllD UDINT ID applicazione un numero univoco che identifica il programma utente attualmente in esecuzione sul sistema SysMfcCode UDINT Codice manufacturer questo codice v richiesto con il prodotto Se non definito ritornato il codice 0 SysCustomerCode UDINT Codice customer questo codice pu essere impostato dall utente che ha accesso come amministratore al sistema Se non definito ritornato il codice 0 SysErCode UDINT Numero dell errore di esecuzione programma SysErTime UDINT Data ed ora in cui l errore avvenuto Epoch time SysSerialNr UDINT Numero di matricola del prodotto SysApllIBTime UDINT Build time Epoch time della dell applicazione SysUniquelD UDINT ID univoco prodotto vedi note SysCode STRING 10 Codice del prodotto SysFVersion STRING 10 Versione firmware del prodotto SysErlnfos STRING 32 Informazioni aggiuntive sull errore SysApliIName STRING 10
251. n 4 FB_SysETimeToDate SysETimeToL Auto No 0 FB SysETimeToDate data Function blocks 1 Functions Global variables e KS 000i e Transfer system date e time to FB input variable si SE Tasks 0002 0003 LD SyaDateTime 0004 ST FB SysETineTolDate EpochTime 0005 000e CAL FB SysETimeToDate e Call the SysETimeToDate function block si nnn Mnl151c070 Pag 277 288 Programmazione IEC 61131 3 12 2 Definizioni I O logici negli esempi 5 Flee Tutti gli esempi riportati in questo manuale sono stati realizzati utilizzando un sistema configurato con un modulo CPU SlimLine tipo MPS046A100 abbinato ad un modulo Mixed I O PCB122 100 Impostato con address 0 Tutti gli I O del modulo sono stati abbinati a variabili mnemoniche Gli ingressi sono denominati Di0xMO00 e le uscite Do0xM00 come evidente nella tabella di definizione Oo JN RER ep Sy SS S S S SI te Co co co oo Oo ee oo Mame DIOOMOO Qi01 MOO Did2MO0 DiOSMO0 Diog DIOSMOO DIOGMOO Did MOO DiOeMOO DIOSMOO DiTOMOO Di11 w00 Do00M0o Dood Moo Do0zM00 Do0sM00 Do0AMOO Do05M0o Doti Do7 Moo Mnl151c070 Type BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Address Salt S ll S ll LAO 3 w0 4 Sal Sall SAS Sola Sal 10 10 S ll GAO MGA SoG GIAO GAO 4 GAS So GAO P DON Group Mo Mo Mo Mo Mo Mo Mo MO MO Mo Mo Mo Mo Mo Mo
252. n SysGetLastError possibile rilevare il codice di errore 10037010 ModemiD non definito 10037020 ModemiD non corretto 10037080 Errore case gestione 10037100 3 Errore gestione chiamata telefonica Esempi Nell esempio gestita una chiamata al numero indicato Dopo 15 secondi la chiamata viene conclusa Esempio LD Ptp118b100 MakePhoneCall PhCall WodemPhoneCall_w DIDOMOD BP _ AAA Call Done ADR hlodeml O Fault 390142451987 Number 15 L Time Mnl151c070 Pag 176 288 Programmazione IEC 61131 3 3 Heap Type Library Version 7 15 6 ModemHTTPGet executes a HTTP Get request FB eModemLib SFR057D100 Questo blocco funzione esegue una richiesta HTTP inserendo in linea dei parametri GET si E ModemHTTP Get collega al blocco funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Send Done f f hodemiD Fault Su fronte attivazione ingresso Send viene eseguita la connessione al Server HTPP sulla porta jeme Port e richiesta la pagina Page La pagina viene richiesta con i parametri GET definiti nel buffer puntato da GETPars La pagina ricevuta dal server viene trasferita nel buffer puntato da RxBuffer PS i dati ricevuti che superano la dimensione del buffer RxSpace sono scartati Page i d SE e l GETPars Terminata la ricezione della pagina richiesta si attiva per un loop l uscita Done se pa
253. n uscita dal blocco funzione server e hh Dt Tel Fault Il blocco funzione scambia i dati con il sistema definito in ToNode In pratica il valore di TaNade FeCl ToNode deve coincidere con il valore di MyNode della FB MmasterDataTxfer dell altro punata Deet sistema TxData RxFrames In RxData ed in TxData occorre definire l indirizzo del buffer dati che si vuole scambiare con il DLen TxFrames sistema peer In DLen la dimensione in bytes del buffer dati in scambio buffers RxData e TxData devono avere la stessa dimensione L FB controlla se vi una variazione dei dati nel buffer TxData e ne esegue immediatamente l invio al sistema peer che risponde con i dati del proprio buffer TxData che saranno trasferiti nel buffer RxData L uscita PeerOk attiva se la comunicazione con il sistema peer operativa in caso di errori di comunicazione l uscita si disattiva In RxFrames e TxFrames ritornato il conteggio dei frames dati ricevuti ed inviati dalla FB verso il sistema peer in AckErrors il numero di errori di acknowledge da parte del sistema peer In caso di errore esecuzione viene attivata per un loop l uscita Fault Enable 8001 Comando di abilitazione blocco funzione MMDtTxflD UDINT ID server multimaster in uscita dalla FB server MmasterDataTxfer ToNode USINT Nodo identificativo del sistema peer con cui scambiare i dati Range da 0 a 250 RxData USINT Puntatore al buffer dove devono essere trasferiti i dati ricevuti TxDa
254. na 9900 FALSE Errore esecuzione TRUE Ok esecuzione Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9960100 Funzione richiamata in task fast o slow 9960150 Errore nella dichiarazione OldName 9960160 Directory file OldName non accessibile da utente Admin 9960170 Errore nella dichiarazione NewName 9960180 Directory file NewName non accessibile da utente Admin 9960200 Errore nella rinominazione del file 9960990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso digitale Di00M00 viene rinominato il file OldFile txt presente nella directory Storage file assumer il nuovo nome di NewFile txt Definizione variabili Name Type Address Array Init value Attribute Description 1 Dummy BOOL Auto Mo FALSE x rumm d Renameok BOOL Auto Mo FALSE S File rename Ok Esempio LD Sysrename n EN ENC Dummy Renamedk OldN Storage SCOldFile tt OTO Newh StorageS5CNewFiletg Lu Mnl151c070 Pag 92 288 Programmazione IEC 61131 3 Type Library Version 7 8 3 Sysfilelength file lengh Function Embedded XTarget 07 0 Questa funzione ritorna la lunghezza in bytes di un file In Name occorre definire il nome del file Systilelength di cui si vuole conoscere la lunghezza specificando l intero percorso Esempio Storage File txt a Mame Se il file indicato non presente la funzione
255. name ed il testo del messaggio Message Mnl151c070 Pag 213 288 Programmazione IEC 61131 3 3 Hey Server Syslog Un server SYSLOG un punto centrale dove far arrivare tutti i messaggi di errore dei vari apparati hardware e software di una rete quali router switch server stampanti ecc per avere un controllo centralizzato degli errori degli apparati SYSLOG particolarmente diffuso in unix e conseguentemente sotto linux in ambiente windows esistono programmi freeware e o a pagamento per la gestione del server Il server pu selezionare filtrare i messaggi in arrivo in base a diversi criteri ad ogni selezione corrisponde almeno una azione In pratica si tratta di stabilire dei criteri di selezione e l azione da intraprendere in funzione della provenienza e tipo di messaggio II criterio di selezione pu essere ad esempio Priorit Indirizzo IP del mittente del messaggio Nome del Host Testo o parte di esso del messaggio Intervallo di tempo di uno o pi giorni della settimana Le azioni possono essere ad esempio Nessuna ignorare il messaggio Visualizzarlo nel programma di monitoraggio Inviarlo ad un altro Syslog server Emettere un suono di allarme Eseguire un programma Inviare un E mail Memorizzare il messaggio in un Database esempio MySQL Memorizzare il messaggio in un logfile Eseguire uno script ecc Per le mie necessit ho utilizzato Syslog Watcher Sito http www snmpsoft com un ott
256. ne di nuove funzionalita che le modificano graficamente e o funzionalmente devono essere sostituite In alcuni casi ne viene modificato completamente il nome in altri casi viene mantenuto lo stesso nome ma cambiata la versione Esempio Nome_ vi diventa Nome_v2 Per mantenere la compatibilit con i programmi gi realizzate tutte le funzioni ed i blocchi funzioni sostituiti da nuove versioni vengono salvati in una libreria apposita eObsoleteLib Ecco l elenco degli oggetti presenti in questa libreria Funzione o FB obsoleta Sostituita da Descrizione MDBRTUMASTER ModbusRTUMaster Gestione protocollo modbus RTU master ModbusRTUMaster sModbusRTUMaster sModbusRTUMaster ModbusRTUMaster_v1 ModbusRTUMaster_v1 ModbusMaster Gestione protocollo modbus master ModbusRTUSlave ModbusSlave Gestione protocollo modbus RTU slave ModbusAsciiSlave Gestione protocollo modbus Ascii slave ModemCore ModemCore_v1 Gestione modem ModemCore_v1 ModemCore_v2 ModemSMSRxCmd ModemSMSRxCmd_ vi Ricezione comando da messaggio SMS ModemSMSSend ModemSMSSend_ vi Invio messaggio SMS ModemSMSSend_v1 ModemSMSSend_v2 ModemPhoneCall ModemPhoneCall_ v1 Esecuzione chiamata telefonica SpyDataFile SysSpyData Spionaggio dati Mnl151c070 Pag 231 288 Programmazione IEC 61131 3 Heap Type Library Version 8 1 1 MDBRTUMASTER modbus Rtu master FB eObsoleteLib SFRO66A000 Questo blocco funz
257. nel caso la libreria sorgente venga modificata con una versione pi recente di effettuare l aggiornamento automatico della nuova libreria nel proprio progetto Se la libreria sorgente non pi presente oppure stata spostata dalla posizione da dove stata importata LogicLab non eseguir pi il controllo senza segnalare errori Tramite il men Project Library manager che apre la finestra a lato come si 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 Aprendo il progetto LogicLab controlla LogicLab LI tutte le librerie importate e nel caso una o pi librerie sorgenti siano pi recenti Found new version of libraries delle versioni importate viene ci programmi elsistiiec 1131suitellogiclab2pO librariesisfr053a000 eplcstdlib pil visualizzato uf messaggio di avvertimento che chiede conferma se eseguire oppure no l aggiornamento delle librerie Eseguendo l aggiornamento tutti gli oggetti della libreria importata presenti nel proprio progetto vengono sovrascritti con gli oggetti presenti nella libreria sorgente ed eventuali nuovi oggetti sono automaticamente importati Do you want to update them Mnl151c070 Pag 30 288 Programmazione IEC 61131 3 3 Flap 7 0 5 Importazione oggetti Per importare nel proprio programma oggetti dalle librerie occorre nel men D
258. nga spiata Label Sys SpyData Mode TFlags Con il parametro TFlags possibile definire un pattern di 32 bits che viene usato come trigger Label per la visualizzazione dei dati spiati nella console di spionaggio Telnet DPtr Eseguendo la funzione con tutti i parametri a 0 viene eseguito il controllo sullo spazio nella console di spionaggio Telnet La funzione ritorna TRUE se vi spazio per salvare il record spiato e FALSE se la console occupata Parametri funzione Mode wsint Definisce il modo di visualizzazione dei dati spiati Spy mode TFlags upint Definisce i bits di trigger per la visualizzazione dei dati spiati Label usinT Etichetta riportata nella stringa spiata DPtr usint Puntatore alla stringa dati da spiare La funzione ritorna e TRUE Spionaggio possibile FALSE Console di spionaggio occupata Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9950100 Funzione eseguita in task fast o slow 9950200 Errore allocazione memoria funzione 9950990 Non implementata nel simulatore Mnl151c070 Pag 68 288 Programmazione IEC 61131 3 Esempi 3 et Ecco un esempio di programma che invia ad ogni secondo tre records alla console di spionaggio Definizione variabili Name Type Address 1 TString STRING Auto EI 2 SpyPulse BOOL Auto No 3 ABT BOOL Auto No Esempio ST P7TP116A400 ST_Sys
259. nge da 1 a 12 Day sint Ritorna il valore di giorno del mese Range da 1 a 31 Ritorna il valore di giorno della settimana Range da 0 a 6 0 Domenica 1 Luned 2 Marted 3 Mercoled 4 Gioved 5 Venerd 6 Sabato Ritorna il valore di ora Range da 0 a 23 WeekDay usin Hour usint Minute qusint Ritorna il valore di minuti Range da 0 a 59 Second wsint Ritorna il valore di secondi Range da 0 a 59 Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9986050 Errore allocazione blocco funzione 9986060 Errore versione blocco funzione Mnl151c070 XTarget 07 0 Second Pag 70 288 Programmazione IEC 61131 3 3 Flat 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 Mame Type Address Array Init value Attribute Description 1 FB_SysETimeToDate SysETimeToDate Auto Mo O FA SysETimeToDate data 2 ear WINT Auto Mo 0 Year A Month USINT Auto Mo 0 Month d Day USINT Auto Mo O Day Esempio LD P7P116A100 LD_SysETimeToDate FB_SysETimeToDate Sys ETi me To Date Enabled EN ENO SysD ate Time gt EpochTime Esempio IL PTP116A 100 IL_SysETimeToDate Transfer system date e time to FB input variable LD SysDateTime ST FB SyskTimeToDate Epoc
260. nito 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 S 1000 mS viene attivata l uscita digitale D000M00 Disattivando l ingresso digitale Di0OMO0 l uscita digitale DoOOMO0 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 PTP1154100 eTON_LD FBETON eTON D onMOp DODO won e iy Q 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 eTON function block FBeTON IN D100M00 Transfer the digital input to timer input OutValue FBeTON ET The counting time is copied to variable Do00M00 F eTON Q When time is passed the digital output is set Mnl151c070 Pag 39 288 Programmazione IEC 61131 3 Library Version
261. nno inclusi nel programma stesso e sar possibile utilizzarli su qualsiasi PC anche se non si dispone della libreria originale Global variables Mnl151c070 Pag 31 288 Programmazione IEC 61131 3 3 Flich 7 0 6 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 collegata oppure sia stato importato Libreria collegata Come visto precedentemente le librerie collegate mantengono un riferimento alla libreria di origine nel percorso di memorizzazione nella distribuzione di LogicLab le librerie sono incluse in directories il cui nome rappresenta la versione In questo modo potranno essere distribuite versioni successive di libreria ma il progetto alla sua riapertura far sempre il controllo con la versione originale senza eseguire l aggiornamento automatico Per effett
262. nno ripercussioni n sullo stato dell uscita Do00M00 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 eTP_LD FBeTP eTP D OOhCOO Dot WOO Pp m IN F S000 FT Qutvalue Esempio IL CAL FBeTP Call the eTP function block LD Di00M00 ST FBeTP IN Transfer the digital input to timer input LD 5000 ST FBeTP PT Set the delay time LD FBeTP Q ST Do00M00 When time is passed the digital output is set 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 Mnl151c070 Pag 40 288 Programmazione IEC 61131 3 3 Get 7 3 Funzioni ed FB per gestione counters Type Library Version 7 3 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
263. nnr r nnn nnnh 163 7 13 17 GetPolynomialCRC polynomial CRC calculation 164 7 14 Protocollo DLMS 0 EC 62050 2 D 165 7 14 1 IEC62056_21Rd IEC62056 21 protocol read 166 7 15 Funzioni ed FB gestione modem eModemMLID 168 7 15 1 ModemCore_v3 modem core management 169 7 15 2 ModemSMSReceive receive a SMS message 171 7 15 3 ModemSMSRxCmd_ vi receive a SMS command 172 7 15 4 ModemSMSSend_ v2 send a SMS message ii 173 7 15 5 ModemPhoneCall_v1 executes a phone call 176 7 15 6 ModemHTTPGet executes aHIIbGeireouest e 177 7 16 Funzioni ed FB gestione One Wire ePLC1WIFEeLIb e 180 7 16 1 SOWireMng One Wire management 181 7 16 2 SOWRdldentifier One Wire read ROM identifier ec cece eee eaececeeeeaeceseseaeeeaeaeneeaeeenenaeaeneeaeas 182 7 16 3 SOWRdTemperature One Wire read temperature 184 7 16 4 SOWRdHumidity One Wire read bumditv cece cseeceeeeeeeceeeeeeeeeeeseeeeeseeeeeseeeeeseeeeeseeeesaeeeesaeeeeeeeaeees 186 7 17 Funzioni ed FB gestione networkiNg ii 188 7 17 1 SysIPReach IP address sreachable 189 1 17 22 SYSSKILISICH ele d TE DEE 190 7 17 3 SysUDPSktRcv UDP socket recenve iii 192 7 17 4 SysUDPSktSend UDP socket send 193 7 17 5 UDPDataT xfer UDP data transfer cceceeceeeeceeneceeeeeeeeeeeeaeeeeneneeneseeaeeeseeeeseaeeaeneeeeeeeeeenennenenes 195 7 18 Funzioni ed FB su
264. nsecutive 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 Si attiva al termine della esecuzione comando Attivo per un loop se esecuzione comando corretta Attivo per un loop se errore esecuzione comando Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Tempo di pausa dopo l esecuzione del comando modbus espresso in mS Pag 237 288 Programmazione IEC 61131 3 3 Flich Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10007010 Valore di File non definito 10007050 Timeout esecuzione 10007060 Errore esecuzione 10007100 Codice funzione definito in Function non gestito 10007120 Valore di Points errato 10007200 1 Errore trasmissione frame comando 10007500 Errore in ricezione frame Codice comando errato 10007520 Errore in ricezione frame CRC frame errato 10007540 1 Errore in ricezione frame Dati errati Mnl151c070 Pag 238 288 Programmazione IEC 61131 3 3 Flich Type Library Version 8 1 5 ModbusRTUSlave modbus Rtu slave FB eObsoleteLib SFRO66A000 Sui sistemi SlimLine il protocollo modbus slave gia implementato dal sistema operativo pertanto non occorre inserire blocchi funzione appositi nel pro
265. ntata nel simulatore Mnl151c070 Pag 131 288 EVA Programmazione IEC 61131 3 Esempi Viene impostata l uscita Out 0 del modulo CPU per generare un segnale PWM a 100 Hz con duty cycle 50 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Pw Svs SetryyM Out Auto Mo O FA data d Frequency REAL Auto Mo 100 Frequency set Hz 3 Duty REAL Auto Mo 50 DutyCycle set 4 Esempio LD Puy Sys Set PMi Out EN ENO 2065 Address Done o channel Fault Frequency gt Frequency Duty Duty Pag 132 288 Mnl151c070 Programmazione IEC 61131 3 Get i Type Library Version 7 12 9 SysPhrVRd read variable from peripheral module Function Embedded XTarget 07 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 FidAdd VarAdd a Varlype VarAdd Parametri funzione Module usin Occorre specificare l indirizzo di modulo da cui eseguire la lettura Range da 0 a 15 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito RdAdd unn Indirizzo variabile da leggere come allocata sul modulo periferico VarType sint Tipo variabile come indicato nella tabella Variable types definition VarAdd
266. nte 9982110 1 Il modulo indirizzato non supporta i comandi uscita analogica 9982150 Il valore da impostare sul modulo analogico non corretto 9982200 Il modo di gestione definito in Mode non gestito dal modulo 9982210 Errore nella gestione uscita analogica sul modulo Mnl151c070 Pag 125 288 Programmazione IEC 61131 3 3 Flat Esempi Viene eseguita l uscita analogica dal canale 0 del modulo 0 in modo 0 10 Volt Se dato valido viene attivata l uscita digitale Do00M00 se errore di conversione viene attivata l uscita digitale Do01M00 dato analogico da impostare in uscita nel range da 0 000 a 9 999 presente nella variabile AnaOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData Sys SetanOut Auto Mo 0 n FA SysSetAnAout data d Dummy BOOL Auto Mo FALSE x Dummy variable 3 AnaQut REAL Auto Mo 0 5 Analog value vote Esempio LD PTP116A100 LD_SysSetAnOut 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 PTP116A100 IL_SysSetAnOut Manage analog output 0 on module 0 LD 0 ST FBData Address Set module address LD 0 ST FBData Channel Set channel LD DA VOLT 0 10 ST FBData Mode Set management mode LD AnaOut ST FBData Value Store the output value CAL FBData Call the SysSetAnOut function block L
267. numero di variabili definito da Points viene letto dal sistema slave e trasferito nor ne Address nelle variabili indirizzate da Buffer Points Se Fcode 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 B001 Comando di abilitazione blocco funzione Start B001 Comando di esecuzione comando modbus File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Node qusint Numero di nodo modbus su cui effettuare il comando Range da 0 a 255 FCode usint Codice funzione modbus da eseguire nel comando Range da 0 a 255 Address unt Points sint Buffer usint Timeout int Done B001 Fault s001 Errors uDINT Mnl151c070 Descrizione 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 variabi
268. nvio dei dati automatico sulla variazione di uno qualsiasi dei bytes del buffer di trasmissione per garantire il controllo sul collegamento tra i due sistemi ogni tempo pari a Timeout viene comunque eseguito un invio del buffer di memoria Se i due sistemi sono in comunicazione si attiva l uscita Done RxDataOk si attiva per un loop ad ogni ricezione del buffer dati dall altro sistema mentre TxDataSent si attiva per un loop al termine della trasmissione del buffer dati verso l altro sistema Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen PeerlP stRING 15 Stringa di definizione indirizzo IP del sistema con cui avviene il trasferimento dati Port unt Porta tramite la quale avviene il trasferimento dati Stesso valore su entrambi i sistemi RxDBuffer usint Puntatore al buffer dove devono essere trasferiti i dati ricevuti TxDBuffer usint Puntatore al buffer dove sono presenti i dati da trasmettere ByteNr unt Numero di bytes scambiati Timeout unt Tempo massimo per il trasferimento del buffer dati mS Done 8001 Attivo se i due sistemi 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 uint Numero di errori incre
269. o Didi Moo DOO KAO Diddi hiid RxD ataAdd DE1AD0Add Of set 0 Otist TxDataAdd D0E100Add Ofset _16__ Offset MOVE ExchDone EN hd 100 0 Kg ENO Mnl151c070 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 ExchDone Done RxD ata TxData _A_ _ Byte Ip TrigDelay hD100 16 TxData KE Pag 158 288 Programmazione IEC 61131 3 Library Version PLCUtyLib SFR054A800 7 13 13 Average value average Questo blocco funzione esegue la media su di un valore L azione di media definita da un parametro Coefficient maggiore il valore del parametro e maggiore sar l azione di media sul valore in uscita Average Value Average Average Coefficient Value REAL Valore su cui effettuare l azione di media Coefficient REAL Valore del coefficiente di media Average REAL Valore mediato in uscita Esempi Viene eseguita una acquisizione analogica dall ingresso 0 del modulo con indirizzo 0 in modo 0 10 volt Il valore acquisito viene mediato e poi trasferito nella variabile AnaValue Definizione variabili Mame Type Address Array Init valu
270. o possibile visualizzare in debug la comunicazione con il dispositivo permettendo di visualizzare eventuali errori Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen DID string Stringa di definizione prefisso dispositivo Done 6001 Attivo per un loop di programma su ricezione sentenza corretta Fault B001 Attivo per un loop di programma se errore gestione NMEAID unin ID interfaccia con sistema NMEA da passare alle FB collegate RxString stRING 82 Contiene la stringa ricevuta dal dispositivo puo essere utilizzato in debug per verificare le sentenze ricevute Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10017010 Valore di File non definito 10017020 FB protetta terminato tempo funzionamento in modo demo 10017050 Timeout esecuzione 10017070 Errore case gestione 10017100 4 Errore ricezione sentenza NMEA Mnl151c070 Pag 203 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 19 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
271. o 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 accumulatore JMP Etichetta Salta incondizionatamente su etichetta JMPC Etichetta Salta su etichetta se accumulatore diverso da zero JMPCN Etichetta Salta su etichetta se accumulatore uguale a zero CAL FB Esegue incondizionatamente il blocco funzione CALC FB Esegue blocco funzione se accumul
272. o FALSE 7 Sacket connect 5 Dummy HOOL Auto Mo FALSE S Dummy variable E ChrsaAy BOOL Auto Mo FALSE S Characters available Esempio LD PTP119A200 TCPSocketEcho Systopen SysFirstLoop EN END FH meene a Fp hod tant ode Gkt cn Sys Skt listen SysFirstLoop SktDone APP VON YYO aiiNV OOOO Enable Done Fp_ gt File Fault SktConnect lb 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 Mnl151c070 Pag 191 288 Programmazione IEC 61131 3 3 Get i Type Library Version 7 17 3 SysUDPSktRcv UDP socket receive FB Embedded XTarget 07 0 Questo blocco funzione esegue la ricezione dati da un socket UDP occorre passare alla FB un Sys UDP S 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 F SEN non connessi sono accettate connessioni da tutti gli IP e da tutte le porte Win nt f na a Ln _ RxData 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 nell
273. o UP del terminale KeyDW oot Stato tasto DW del terminale KeyLEFT 8001 KeyRIGHT 8001 KeyFUN woor Stato tasto LEFT del terminale Stato tasto RIGHT del terminale Stato tasto FUN del terminale KeyENT 8001 Stato tasto ENT del terminale Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10047010 HMIBuildiInID non definito 10047020 HMIBuildinID non corretto 10047100 Blocco funzione non eseguito in task di background Back Mnl151c070 Pag 229 288 el Programmazione IEC 61131 3 Esempi Nell esempio gestito il terminale di un sistema NetloglliI i messaggi sono stati definiti nel programma LogicLab con il nome MyHMI Definizione variabili Mame Type Address Array Init value Attribute Description 1 HM HMBuiltInKetlog AUTO Mo 0 FA Netlog terminal d MsglD IMT Auto Mo 0 Displayed message ID Esempio ST Here open the terminal communication port IF SysFirstLoop THEN HMI File Sysfopen PCOMO 1 rw END_IF File pointer Here manages the NETLOG III terminal MsgID MyHMI MsgID Displayed message ID HMI HMIBuiltInID MyHMI HMIBuiltInID ID gestione messaggi HMI Enable TRUE Pag 230 288 Mnl151c070 Programmazione IEC 61131 3 8 Funzioni ed FB obsolete 5 Flee Alcune funzioni e o blocchi funzione presenti nelle librerie a causa della implementazio
274. o presente sul bus One Wire Attenzione Deve essere presente un solo dispositivo sul bus Se acquisizione corretta viene attivata l uscita Do00M00 ed i valori acquisiti sono trasferiti nelle variabili Temperature e Humidity Definizione variabili Mame Type Address Array Init value Attribute Description 1 RdDone BOOL Auto Mo FALSE S Read humiditvternperature done d fnglD DINT Auto Ko 0 QOne Vire management ID 3 Humidity REAL Auto Mo 0 Humidity RH A Temperature REAL Auto Mo U Temperature CL Str FILEP AUTO Mo O File pointer bh OW ire sOWireling Auto Mo 0 One Vwire management FE d O VWReadHum SOWIFRdHumic Auto Mo 0 FA read humidity data Esempio LD PTP120A200 LD_HumiditySkipROM Open the serial port Sysfopen SysFirstLoop EN ENO FM como j ems Fp Mod tant ode Manage the SerialfOne Wire converter Ovire SOVWireMng Enable Onto rk Fp 3 File Activity Fault nol nol Acquires temperature and humidity OwReaddum OWRd Humidity RdDone P Enable Done Doli hoo hing IC Mnalb Ok o Ibcode Fault Temperature Temperature Humidity Mnl151c070 Pag 187 288 Programmazione IEC 61131 3 3 Flich 7 17 Funzioni ed FB gestione networking Da linguaggio IEC sono disponibili funzioni e blocchi funzione per la gestione networking Mnl151c070 Pag 188 288 Programmazione IEC 61131 3 3 Flich Type Library Version FB Embedded XTarget 07 0 7 17 1 SysIPReach IP address is reach
275. ogiclO htm CPU Inputs CPU Outputs Set outputs Per visualizzare lo stato reale degli ingressi la pagina viene automaticamente rinfrescata ogni 10 secondi Per ottenere l aggiornamento della pagina dopo la direttiva lt head gt viene posta la dichiarazione lt meta http equiv refresh content 10 gt Per la gestione della pagina sono utilizzate alcune funzioni javascript Check Field Value Imposta o rimuove il simbolo di tick sull oggetto di tipo checkbox indicato in Field in base a Value SetValues Eseguita al caricamento della pagina esegue l aggiornamento di tutti gli oggetti di tipo checkbox presenti SubmitForm Form Eseguita su pressione del tasto Set outputs controlla se i checkbox di attivazione uscite sono settati ed aggiorna il valore dei campi hidden di scrittura variabili Sorgente funzioni javascript di pagina lt script language javascript gt function Check Field Value document MyForm Field checked Value 0 function SetValues Check Inp00 lt d BOOL 0 gt Check Inp01 lt d BOOL 1 gt Check Out00 lt d BOOL 3 gt Check Out01 lt Sd BOOL 4 gt function SubmitForm Form if document getElementById Out00 checked document getHlementById BOOL3 value 1 if document getElementById Out01 checked document getHlementBylId BOOL4 value 1 document forms Form submit lt script gt
276. ointer WHILE TO BOOL SysGetIChars File DO Ptr TO USINT Sysfgetc File Rx String Ptr Ptr 1 String pointer Check if string pointer overflow IF Ptr gt ADR RxString 31 THEN EXIT END IF END WHILE Per la trasmissione dei dati in uscita dallo stream si utilizza la funzione che controlla se spazio disponibile 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 ER Rx string 2 File FILEP Auto HO O i File pointer 3 Ji LINT Auto Mo 0 S Auxiliary counter Esempio ST Tx data to stream IF TO UDINT SysGetOSpace File SysGetTxBSize File THEN i TO UINT SysVarfprintf File s STRING TYPE ADR TzString END IF Mnl151c070 Pag 273 288 Programmazione IEC 61131 3 Eet 11 8 Conversione tipo dati La conversione dei dati Detto anche casting una pratica necessaria nella programmazione naturalmente se il tipo dati di destinazione ha un range inferiore del tipo dati di origine viene effettuato un troncamento del valore Vediamo caso per caso le varie conversioni Tipo BOOL Le conversioni da qualsiasi tipo verso un BOOL tornano FALSE se il valore del dato da convertire 0 Tornano TRUE se il valore del dato da convertire div
277. on supportata dal modulo 9990210 Errore durante la richiesta della informazione dal modulo 9990990 Non implementata nel simulatore Esempi E riportato un programma che esegue la lettura del codice prodotto dal modulo di estensione con indirizzo 0 Il codice ritornato trasferito nella variabile Info Il ritorno della funzione trasferito sull uscita Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 Info STRING Auto 10 Info returned from module Esempio LD Sys bb Infos sbi apr 3 Do00h0o Segn Dod hoo posi o InfolD Info Info Mnl151c070 Pag 117 288 Type Library Programmazione IEC 61131 3 3 Flich Version 7 12 2 SysGetPhrDI get peripheral digital input FB Embedded Questo blocco funzione esegue l acquisizione degli ingressi digitali dai moduli periferici Il blocco funzione ritorna lo stato degli ingressi digitali dal modulo indicato in Address in base al comando di Mode definito Per acquisire gli ingressi digitali presenti sul modulo CPU occorre definire Address 255 e Mode DI_8 LL 255 indica il modulo CPU Mode qusinr Occorre specificare il modo di acquisizione ingressi digitali Digital 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 unin Ritorna lo stato degli ingressi digitali acq
278. on 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 OF yo DISPLAY OVEN TEMP DISPLAY MOTOR SPEED DISPLAY GROSS TARE 0 10 DISPLAY STATUS TW 4 1 2 3 4 ELSE DISPLAY 0 TW _ERROR 1 END CASE OWLOOs INT TO BCD DISPLAY FOR J 101 FOR I 1 TO 100 BY 2 DO IF WORDS I KEY THEN J I1 EXIT END IF END FOR WHILE J 1 WHILE J lt 100 amp WORDS J lt gt KEY DO J J 2 END WHILE REPEAT J 1 REPEAT J J 2 UNTIL J 101 OR WORDS J KEY END REPEAT EXIT EXIT Empty Statement Mnl151c070 Pag 283 288 Programmazione IEC 61131 3 13 4Errori di esecuzione 5 Fleet Alcune funzioni 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 ritorner il valore del
279. ool Se attivo controllo di Command non considerando case Maiuscolo minuscolo dei caratteri Command weus Pointer al testo del 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 successivi Esempio LD Ptp118b100 ReceiveSMSCommana Do0OMoo Switch on Mnl151c070 Pag 172 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 15 4 ModemSMSSend_v2 send a SMS message FB eModemLib SFR057D100 Questo blocco funzione esegue l invio di un messaggio SMS si collega al blocco funzione di ModemSM 5 Send_w2 gestione modem ModemCore occorre passare alla FB il ModemID in uscita dal blocco funzione di gestione modem Send Done e ModemiD 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 go o l invio verr attivata per un l
280. oop di programma l uscita Done TLgt Text TLgt definisce il numero di caratteri da inviare del messaggio definito in Text se non definito o definito 0 viene inviato l intero messaggio Text Send B00L Sul fronte di attivazione comanda l invio del messaggio SMS Attenzione messaggio sar inviato non appena il modem libero per l invio ModemiD uon ID modem fornito in uscita dalla ModemCore Number usinty Pointer al numero di telefono a cui eseguire l invio del messaggio TLgt upint Numero di caratteri del messaggio da inviare Se 0 viene inviato l intero messaggio Text USINT Pointer al testo messaggio da inviare Done 8001 Attivo per un loop al termine dell invio del messaggio SMS Fault B001 Attivo per un loop se errore invio messaggio SMS Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10005010 ModemiD non definito 10005020 ModemiD non corretto 10005080 Errore case gestione 10005100 3 Errore gestione invio SMS Esempi Nell esempio gestito l invio di un messaggio SMS sul modem definito nella variabile ModemID per la definizione delle variabili e per una migliore comprensione del funzionamento si rimanda agli esempi successivi Esempio LD Ptp118b100 SendSMSMessage SMSSend ModemShMSSend_v2 Di0 MOD Model Fault 39335123466 This is the message Mnl151c070 Pag 173 288
281. opBits DIR DN DTRManagement FALSE DTRComplement FALSE EchoFlush o DTROnTime _0 DTRO HTime Mnl151c070 Pag 174 288 Programmazione IEC 61131 3 Mnl151c070 Pag 175 288 Programmazione IEC 61131 3 3 Get Library Version 7 15 5 ModemPhoneCall_v1 executes a phone call eModemLib SFR057D100 Questo blocco funzione esegue una chiamata telefonica al numero indicato si collega al blocco funzione di gestione modem ModemCore occorre passare il ModemID in uscita dal blocco funzione di gestione modem Call Done ModemiD Fault Number ModemPhoneCall wi Su fronte attivazione ingresso di Call viene prenotata l esecuzione della chiamata non appena sar possibile verr eseguita la chiamata al numero definito in Number Terminato il tempo definito in Time la chiamata verr terminata Se non vi sono problemi verr attivata per un loop Time di programma l uscita Done Call B00L Sul fronte di attivazione comanda esecuzione della chiamata Attenzione La chiamata verr eseguita non appena il modem libero ModemiD unin ID modem fornito in uscita dalla ModemCore Number usint Pointer al numero di telefono da chiamare Time un Tempo di durata chiamata Sec Done 6001 Attivo per un loop al termine della esecuzione chiamata Fault B001 Attivo per un loop se errore esecuzione chiamata Codici di errore In caso di errore si attiva l uscita Fault co
282. ore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9961100 Funzione richiamata in task fast o slow 9961150 Errore nella dichiarazione del nome file 9961160 Directory non accessibile da utente Admin 9961200 Errore nella cancellazione del file 9961990 Non implementata nel simulatore Esempi Sul fronte di attivazione dell ingresso digitale Di0OMO0 viene eliminato il file File txt presente nella directory Storage Definizione variabili Mame Type Address Array Init value Attribute Description 1 Remove k BOOL Auto Mo FALSE Y File remove Ok d Dummy BOOL Auto Mo FALSE n Durmir Esempio LD Sysre mowe dini EN ENO Dummy RemovweOk H StorageSSCFile td TTS Mnl151c070 Pag 91 288 Programmazione IEC 61131 3 3 Get i Type Library Version 7 8 2 Sysrename file rename Function Embedded XTarget 07 0 Questa funzione esegue il cambiamento del nome di un file In OldName occorre definire il Sysrename nome del file da rinominare specificando l intero percorso Esempio Storage OldFile txt in NewName occorre definire il nuovo nome del file specificando l intero percorso Esempio Storage NewFile txt UldName a Hewhame Se l operazione di rinomina va a buon fine la funzione ritorna TRUE in caso di errore viene ritornato FALSE Parametri funzione OldName sTRING 32 Nome del file da rinominare NewName strincj32 Nuovo nome da dare al file La funzione ritor
283. ort delle librerie Questa libreria rende disponibili una serie di funzioni e di blocchi funzione per la gestione della comunicazione multimaster su linea seriale La possibilit di fare dialogare su una unica linea seriale RS422 485 pi dispositivi master permette di velocizzare il dialogo tra i sistemi ottimizzando l impegno della linea seriale Questa particolarit molto apprezzata nelle connessioni radio dove radiomodems che sfruttano tutti la stessa frequenza possono dialogare tra di loro minimizzando l impegno della banda ed aumentando i tempi di trasferimento delle informazioni Nelle comunicazioni tra diversi sistemi su doppino seriale e o con radiomodems tipicamente si utilizza un protocollo a pacchetto Esempio modbus ed uno dei sistemi che funge da master dialoga ciclicamente con tutti gli altri sistemi della rete scambiando le informazioni tra di loro Come si pu ben capire questa soluzione ha i seguenti difetti a Tutta la comunicazione delegata al sistema master nel caso di guasto di quest ultimo tutta la rete ferma b Il sistema master deve interrogare i vari sistemi slaves per conoscere se hanno dati da inviare al master od agli altri slaves Questo implica un impegno del canale di comunicazione anche quando gli slaves non hanno informazioni utili da scambiare c Lo scambio dati tra due sistemi slaves deve passare dal sistema master e questo rallenta l invio dei dati da un sistema all altro oltre ad un maggiore i
284. pathname Percorso completo comprensivo del nome file es Storage myFile txt Mode srRINGI4 Indica il modo in cui la risorsa aperta r read w write a append Per le porte seriali definire rw Per creare un file su disco occorre eseguire l apertura in w o a L apertura in w su un file esistente provoca la cancellazione del contenuto L apertura in r o w posizionano l indicatore di posizione dello stream all inizio del file l apertura in a lo posiziona alla fine La funzione ritorna FILEP Pointer alla risorsa NULL In caso di errore Codici di errore In caso di errore la funzione torna con NULL e con SysGetLastError possibile rilevare il codice di errore 9996100 Nome risorsa FName ha lunghezza errata 9996110 Nome risorsa FName ha lunghezza errata 9996200 2 Impossibile utilizzare porta da programma utente 9996990 Non implementata nel simulatore Mnl151c070 Pag 74 288 Programmazione IEC 61131 3 3 Eet Esempi Viene aperta la porta seriale in read write Definizione variabili Mame Type Address Array Init value Attribute Description 1 En FILEP Auto Mo 8 Port COMO file pointer Esempio LD Sysfopen SysFirstLoop EN COMO FHame Mod og ode Esempio ST P7TP116A100 ST_Sysfopen IF Fp NULL THEN Fp Sysfopen COMO rw Port COMO file pointer END IF Pag 75 288 Mnl151c070 Programmazione IEC 61131 3 Type Library Version
285. pe sint Tipo variabile come indicato nella tabella Variable types definition VarAdd wont Indirizzo variabile La funzione ritorna IPSE TRUE Valore variabile acquisito Codici di errore In caso di errore la funzione torna con FALSE e con SysGetLastError possibile rilevare il codice di errore 9999100 Tipo variabile non gestito controllare VarType Esempi E riportato un programma che esegue la lettura di una stringa InputString valorizzata con il testo Value 123 Su fronte attivazione ingresso Di00M00 sono eseguite tre diverse funzioni SysVarsscanf tutte sulla stringa InputString ma con diverse definizioni di Format Le prime due hanno esito positivo e le variabili Variable 0 e Variable 1 saranno valorizzate con il valore 123 La terza avr esito negativo la variabile Variable 2 sar azzerata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Pulse DOOL 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 ST_SysVarsscanf Check if input is activated IF Di00M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF D100M00 THEN Result 0 SysVarsscanf ADR Inputstring Value d UDINT TYPE ADR Variable 0 Result 1 SysVarsscanf ADR Inputstring 6 d UDINT TYPE ADR Variable 1 Result 2 SysVarsscanf ADR
286. per la gestione della alimentazione del modem in questo modo l FB pu spegnere e riaccendere il modem in caso riscontri una non funzionalit dello stesso Su ricezione chiamata telefonica viene rilevato il CLIP del chiamante che ritornato in uscita CLIPNumber contemporaneamente ad ogni squillo del telefono si attiva per un loop di programma l uscita CLIPRxd Su connessione GPRS viene ritornato l indirizzo IP assegnato dal gestore alla connessione IPAddress Enable B001 Abilitazione blocco funzione attivandolo viene gestito il modem AutoHangUp 001 Abilita l HangUp automatico alla ricezione di una chiamata telefonica viene comunque ritornato il CLIP SpyOn e001 Se attivo permette di spiarne il funzionamento File FLEP Flusso dati stream ritornato dalla funzione Sysfopen APN stINc 32 Definizione APN per connessione GPRS DNS stINc 16 Definizione indirizzo IP server DNS Enabled 6001 Blocco funzione abilitato Done 6001 Modem correttamente inizializzato e funzionante Fault B001 Attivo per un loop di programma se errore gestione modem PowerOn oo Comando di gestione uscita alimentazione modem CLIPRxd Boo Attivo per un loop di programma ad ogni ricezione CLIP Tipicamente ad ogni RING del modem ModemiD pin ID modem da passare alle FB collegate Esempio ModemSMSSend ModemSMSReceive ecc Operator stRING 16 Contiene la stringa con il nome dell operatore telefonico Rssi usiNT Valore potenza segnale rad
287. po di un semplice protocollo di comunicazione PowerOneCm Comunicazione con inverter Aurora della Power One TagReader Controllo accessi con TAG I button GSMDoorOpen Apricancello su chiamata telefonica TCPAsciiProtocol Semplice comunicazione ascii su connessione TCP IP CSVFileTimeSwitch Programmatore orario con lettura tempi da file CSV SineWave Generatore onda sinusoidale Mnl151c070 Pag 280 288 Programmazione IEC 61131 3 13 Appendici 13 1Tabella 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 negato operando risultato in accumulatore OR Tutti meno REAL OR a bit tra accumulatore e valore operando risultato in accumulatore ORN Tutti meno REAL OR a bit tra accumulatore e valore negato operando risultato in accumulatore XOR Tutti meno REAL XOR a bit tra accumulatore e valore operand
288. po minimo di 0 5 secondi Impostando come set point il valore 50 attivando l ingresso Di0OMO00 avremo che l uscita D0o00MO00 sar attivata per 2 5 secondi e disattivata per 2 5 secondi Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData Pui ut Auto Mo 0 FA PMOut data Esempio LD PTP114A100 LD_PWMOut FBD ata Pitt Qut dE E Do00 Mion bn Enable 50 0 Set 50 Tyce 05 Thin Mnl151c070 Pag 152 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 13 9 SysDMXMng DMX management FB Embedd 3 0 Questo blocco funzione esegue la gestione del protocollo DMX questo un blocco funzione protetto ae j Li S 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 Dewices DataPtr Mantenendo sempre attivo l ingresso Start verranno inviati consecutivamente frames DMX Delay Al termine dell invio del comando DMX si attiver per un loop di programma l uscita Done DataPtr
289. pporto prodotti Hw Group ewou 197 7 18 1 STESnmpAca STE termometer acquisition over SNMP 198 7 18 2 SHWgSProtocol HW group serial protocol 200 7 19 Funzioni ed FB supporto protocollo NMEA eNMEALID i 202 7 19 1 NMEASInterface NMEA system mtertace 203 7 19 2 GLLSentence Geographic Position sentence 204 7 19 3 MWVSentence Wind Speed and Angle sentence 206 7 20 Funzioni ed FB supporto inverter Power One ePowerOnRELIb ee 207 7 20 1 AuroraDSPMeasure Aurora measure request to Dh 208 7 20 2 AuroraCEnergy Aurora cumulated energy reading 211 7 21 Funzioni ed FB supporto log el og bh i 213 Gestione invio notifiche a server Gvslog i 213 7 21 1 SysLogReport send a report to Syslog server 215 7 21 2 StringToLogFile salva una stringa in un file di log 217 7 21 3 FileMemoryDump dump memoria su Te eeceecec eee ceeeeaeeeceeeeseueeseeeeseeeeseetaueeeeseeseeeeeeeeeeees 219 7 22 Funzioni ed FB comunicazione multimaster eMMasterDTxferLiD i 221 7 22 1 MMasterDataTxfer multimaster data transfer 223 1 22 2 gt DataTxterClient Data transfer CHEN riore iii ita 224 7 22 3 BroadcastDataSend broadcast data SEend nrnna n arnan r neran rnrn nerne nne 226 7 23 Libreria gestione interfaccia operatore eHMIBuIItInLib e 227 Mnl151c070 Pag 4 288 Programmazione
290. quando il valore raggiunge 0 cb Di l uscita Q viene settata ed il conteggio si arresta Solo agendo sull ingresso di load LD possibile mm presettare il counter e fare ripartire un nuovo conteggio PV CTO L ingresso di load LD prioritario sull ingresso di decremento CD CD 8001 Comando decremento counter ad ogni fronte attivazione il valore del counter CV si decrementa LD B001 Comando di load attivando l ingresso il valore di preset PV viene trasferito nel valore del counter CV PV int Valore di preset attivando l ingresso di load LD viene trasferito nel valore del counter CV Q B001 Uscita counter attiva se il valore del counter CV raggiunge il valore 0 CV int Valore counter valore di conteggio counter quando raggiunge il valore 0 l uscita Q si attiva ed il counter non si decrementa pi Esempi Il counter presettato a 10 ed il suo valore in uscita CV copiato nella variabile OutValue Attivando l ingresso digitale Di01M00 il counter viene presettato ed il suo valore in uscita CV posto a 10 resettando anche l uscita Q Sul fronte di attivazione dell ingresso digitale 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 D0o00M00 Per fare ripartire il conteggio occorre attivare l ingresso digitale Di01M00 che presetta il counter Definizione variabili Mame Type Address Array Ini
291. ra possibile verra eseguita la chiamata al numero definito in Number Terminato il tempo definito in Time la chiamata verr terminata Se non vi sono problemi verr attivata per un loop di Time programma l uscita Done Call B00L Sul fronte di attivazione comanda esecuzione della chiamata Attenzione La chiamata verr eseguita non appena il modem libero ModemiD unin ID modem fornito in uscita dalla ModemCore Number stRING 16 Numero di telefono da chiamare Time un Tempo di durata chiamata Sec Done 6001 Attivo per un loop al termine della esecuzione chiamata Fault B001 Attivo per un loop se errore esecuzione chiamata Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10037010 ModemID non definito 10037020 ModemID non corretto Mnl151c070 Pag 250 288 Programmazione IEC 61131 3 3 Flich SC NM i Type Library Version 8 1 13 SpyDataFile spia i dati e li memorizza su file FB eLogLib SFRO65A200 Questo blocco funzione spia i dati puntati da SpyPtr e li salva nel file Filename il file viene SpylataFile inizializzato sulla abilitazione del blocco funzione Il comando di memorizzazione viene dato dal valore in SpyTrg La variabile SpyTrg un UDINT di cui i 2 bytes alti sono trasferiti sul file come caratteri e servono ad identificare i dati spiati mentre i 2 bytes bassi indicano la dimensione in Fermat Fault bytes
292. ra tag RFID Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10039050 Errore definizione valore CDLength 10039060 Errore esecuzione 10039100 2 Errore lettura dati tag RFID Mnl151c070 Pag 160 288 Programmazione IEC 61131 3 3 Hey Esempi Viene gestita la lettura di un reader della HID clock e dato connesso agli ingressi digitali del modulo CPU Ricordo che il programma deve essere eseguito almeno ogni 400 uS quindi si consiglia di eseguilo nella task Fast impostando il tempo di esecuzione a 400 uS Il valore di codice letto dal TAG RFID trasferito nell array CData Definizione variabili Name Type Address Array Init value Attribute Description 1 Clock BOOL Auto No FALSE n Clock input signal 2 Data BOOL Auto No FALSE S Data input signal A Dummy BOOL Auto No FALSE S Dummy variable d Qul0 BOOL Auto No FALSE n Output 0 on CPU module 5 Out BOOL Auto No FALSE e Output 1 on CPU module 6 CData BYTE Auto 0 7 DUU 7 Card data 7 CPUIO CPUModulelO Auto No 0 S CPUModulelO function block RFID HIDCIKDtaReader Auto Mo 0 i RFID read Esempio LD PTP114A610 LD_HIDCardRead _4 coLength Mnl151c070 Pag 161 288 Programmazione IEC 61131 3 3 Flat Type Library Version 7 13 15 Linearize linearize a non linear value Function PLCUtyLib SFR054B100 Questa funzione esegue la linearizzazione di un valore Occor
293. rain gauge In Address e Channel vanno definiti indirizzo ed il Enable Enabled canale del modulo analogico di acquisizione In Mode occorre definire il modo di PeOtsCalibration Done acquisizione approppriato allo strain gauge da acquisire DoFSCalibration Fault Address Value E importante effettuare la taratura della acquisizione I valori di taratura sono memorizzati nelle variabili OfsCalibration e FSCalibration Per la taratura dell offset collegare lo strain gauge e senza nessun peso applicato attivare per un loop DoOfsCalibration Per la taratura del fondo scala applicare allo strain gauge un peso il pi possibile prossimo al valore di fondo scala Il valore del peso apllicato va definito in FSReference dopo un tempo di stabilizzazione lettura peso attivare per un loop DoFSCalibration In FilterCf possibile definire un coefficente di filtro sulla acquisizione del peso pi il valore grande pi il valore di peso filtrato Enable B001 Abilitazione blocco funzione DoOfsCalibration BocoL Comando calibrazione offset DoFSCalibration e00 Comando calibrazione fondo scala Address sint Channel hlode Eiter FSReference SGaugeFu IlScale SGaugeRatio OfsC alibration FSC alibration Channel wsint Mode sint FilterCf REAL FSReference REAL SGaugeFullScale reat SGaugeRatio ReaL OfsCalibration era FSCalibration REAL Enabled 8001 Done B001 Fault s001 Value
294. ray Init value Attribute Description 1 Van BOOL Auto Mo FALSE sample variable 1 A Var REAL Auto Mo 0 RETAIN Sample variable 2 3 Vari REAL Auto Mo 12 5 CONSTANT Sample variable 3 d vard BOOL MD100 0 Mo FALSE S Sample variable 4 bo War REAL MD100 2048 Mo 0 P 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 Retain variables e Var Mnl151c070 Pag 10 288 Programmazione IEC 61131 3 Eet 2 3 Accesso alla memoria IX Immagine di processo ingressi logici SlimLine esegue la lettura degli ingressi logici all inizio di ogni loop di esecuzione programma E possibile accedere a quest area utilizzando variabili di tipo BOOL ogni indirizzo rappresenta lo stato booleano del relativo ingresso logico L indirizzo IX0 0 rappresenta lo stato dell ingresso 0 del modulo 0 l indirizzo X5 12 rappresenta lo stato
295. re Seriale One Wire Occorre passare MngiD in uscita dal blocco funzione di gestione Enable Done convertitore hingID Ok Attivando Enable viene eseguita la lettura del valore di temperatura dal dispositivo E Fa connesso al bus One Wire terminata l acquisizione si attiva l uscita Done se acquisizione L APE corretta si attiva per un loop l uscita Ok e su Temperature sar riportato il valore di temperatura acquisito L uscita Fault si attiva in caso di errori di gestione Disattivando Enable si azzera Done e l eventuale Fault per eseguire una nuova lettura occorre riabilitare l ingresso Enable Se sul bus One Wire connesso un unico dispositivo si pu evitare di settare DCode oppure si pu forzare a 0 Se invece sul bus One Wire sono presenti pi dispositivi parallelati in DCode occorre definire l indirizzo dell array di 8 bytes che contiene il ROM ID del dispositivo che si vuole acquisire Enable B00L Abilita il blocco funzione MngiD pin One Wire management ID fornito in uscita dal blocco funzione sOWireMng IDCode usint Puntatore ad array definizione ROM ID dispositivo da acquisire Se 0 viene eseguita lettura con comando Skip ROM Viene acquisito qualsiasi device connesso Done 8001 Si attiva al termine della esecuzione lettura temperatura Ok 8001 Attivo per un loop se lettura temperatura eseguita correttamente Fault B001 Attivo se errore lettura temperatura Temperature REAL Valore di temperatura acqui
296. re abilitarne la visualizzazione dalla voce di men View Tool windows Library Attivando il Tab Target blocks verr visualizzato un elenco con tutte le funzioni Indicate con F ed i blocchi funzione Indicati con B embedded Library Name Type Description TF Susfgete Function Get character from file a SusFIBfClear Function Clear input buffer Ig SysFOR Clear Function Clear output buffer gf SysFOR Flush Function Flush output buffer TF Susfopen Function Upen a file TF Susfpute Function Put character to file E Svstread Function block Head data from file dt Sysfwrite Function block Write data to file dt SysGetAnlnp Function block Get analog input F SysGetlChars Function Get available input chars ia Sieh etl Space Function Get available output space 4 a Operator and standard blacks Target variables Target blocks i Agendo con il tasto destro del mouse su ogni singola funzione o blocco funzione possibile visualizzarne la finestra delle Object name SysGetPhrDI propriet in cui sono indicate le variabili in Properties Description Object properties ingresso ed il ritorno delle funzioni mentre per i blocchi funzioni sono Type FUNCTION BLOCK indicate le variabili in ingresso ed in Code type EMBEDDED uscita cosi come nella figura a lato Input vars num 2 Input vars num oe Address USINT Module address Mode USINT Mode Output vars num 3 Done BOOL Function done Fau
297. re fornire alla funzione l indirizzo dell array definizione valore in ingresso da linearizzare VinReference l indirizzo dell array definizione del corrispondente valore in uscita linearizzato VOutReference ed il numero di valori presenti nell array ReferenceNr E importante definire i dati negli array in modo crescente quindi a partire dal valore pi piccolo Linearize a Min VinReference VOutReference l Referencer La funzione esegue la ricerca nell array VinReference del valore immediatamente superiore a Vin interpolando linearmente tra il valore trovato e quello precedente calcolando il valore in uscita in base ai due valori presenti nelle stesse posizioni dell array VOutReference VIN REAL Valore su cui effettuare la linearizzazione VinReference REAL Puntatore all array definizione valore in ingresso da linearizzare VOutReference REAL Puntatore all array definizione valore in uscita linearizzato ReferenceNr USINT Numero di valori negli arrays di definizione linearizzazione REAL Valore linearizzato in uscita Esempi Viene eseguita tramite una acquisizione analogica la lettura di un livello di un serbatoio di forma irregolare tramite la funzione viene ritornato il valore dei litri presenti nel serbatoio Il valore di livello viene mediato per avere una lettura piu regolare Ad 1 volt corrispondono 1000 litri a 2 volt corrispondono 4000 litri a 3 volt corrispondono 6000 litri Definizione variabili
298. riabile Analnp Definizione variabili Mame Type Address Array Init value Attribute Description 1 FBData SvsGetaninp Auto Mo FB SysGetPhrD data d Dummy BOOL Auto Mo FALSE Dummy variable 3 Analnp REAL Auto Mo U Analog value wollte Esempio LD PTP116A100 LD_SysGetAninp FAData Sys GetAninp Dummy EH ENO Dot MO pn P Address Done Dot MO pn Channel Fault AD_VOLT_O0 10 COMMON gt Mode Value Analnp Esempio IL PTP116A100 IL_SysGetAnInp Acquires analog input 0 from module LD 0 ST FBData Address Set module address LD 0 ST FBData Channel Set channel LD AD VOLT 0 10 COMMON ST FBData Mode Set acquisition mode CAL FBData Call the SysGetAnInp function block LD FBData Done ST Do00M00 The output is active if data is acquired LD FBData Fault ST Do01M00 The output is active if execution fault LD FBData Value ST AnaInp Store the acquired value Esempio ST P7P116A100 ST_SysGetAninp Acquires analog input 0 from module FBData Address 0 Channel 0 Mode AD VOLT 0 10 COMMON Call the SysGetAnInp FB Do00M00 FBData Done The output is active if data is acquired Do01M00 FBData Fault The output is active if execution fault VarReal FBData Value Store the acquired value Mnl151c070 Pag 124 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 12 5 SysSetAnOut set ana
299. ribute Description 1 Pulse BOOL Auto Mo FALSE S Pulse flag 2 Ch INT Auto Mo 0 Written character 3 jJi INT Auto No U Auxiliary counter d NrOfChars INT AUTO Mo U Number of printed chars D Counter UDINT Auto No O Counter E En FILEP Auto Mo U Port COMO file pointer d StringQut CALISINT Auto Mo U String output pointer Esempio ST PTP116A300 ST_SysMAlloc Here at first program execution loop allocate memory and open COM IF SysFirstLoop THEN StringOut SysMAlloc 16 String output pointer Fp Sysfopen COMO rw Port COMO file pointer zi END_IF IF StringOut 0 OR Fp 0 THEN RETURN END IF On input raising edge the counter value is printed IF D100M00 lt gt Pulse THEN Pulse D100M00 Pulse flag IF Di00M0O0 THEN Counter Counter l Counter zi NrOfChars SysVarsnprintf StringOut 32 Counter 04dSrsn UDINT TYPE ADR Counter FOR 1 0 TO NrOfChars DO Ch Sysfputc TO INT StringOut Fp Written character StringOut StringOut 1 String output pointer END FOR END IF END IF Mnl151c070 Pag 67 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 5 8 SysSpyData system spy data Funcion Embedded XTarget 11 0 Questa funzione permette di inviare dati alla console di spionaggio Accessibile da Telnet con il comando SpyData E possibile definire sia il modo di visualizzazione dei dati spiati Mode che abbinare una etichetta nella stri
300. rizzo 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 Errors cani Parameter Mnl151c070 Pag 212 288 Programmazione IEC 61131 3 Eet 7 21 Funzioni ed FB supporto log eLogLib Questa libreria rende disponibili una serie di funzioni e di blocchi funzione per la gestione di logs Gestione invio notifiche a server Syslog SYSLOG System Log un protocollo appartenente alla Suite di protocolli Internet utilizzato per trasmettere attraverso una rete semplici informazioni di log Il protocollo stato standardizzato dall IETF Generalmente viene utilizzato via UDP attraverso la porta 514 in particolari applicazioni dove il monitoraggio fondamentale oppure certi eventi possono innescare azioni da parte del server SYSLOG si ricorre ad implementazioni TCP e o a crittografia Il client invia un certo me
301. rle definendone il codice Stringa alfabetica di 18 caratteri con la funzione Project a Definitions KyPraject Project SysPCodeAccept Sy Programs La funzione deve essere eseguita una sola volta passando il codice di protezione P PLodes se il codice corretto la funzione ritorna TRUE e la relativa funzione sara sprotetta C Function blocks fino al prossimo riavvio del programma E possibile eseguire pi chiamate alla Functions funzione una per ogni codice di protezione da definire Global variables Il consiglio di inserire le varie chiamate alla funzione in un programma che verr eseguito nella task di boot quindi prima di ogni chiamata ad altri programmi garantendo lo sblocco delle funzioni desiderate A lato si pu vedere come in un progetto il programma di definizione codici di protezione PCodes sia definito nella esecuzione della task di boot Di seguito riportiamo il codice sorgente del programma PCodes realizzato in linguaggio ST Naturalmente i codici riportati sono di fantasia pertanto se eseguito la funzione SysPCodeAccept ritorner sempre FALSE Definizione variabili Name Type Address Array Init value Attribute Description 1 Codesok BOOL Auto 0 2 aii gt 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
302. rmette di invertire il segno del segnale in uscita Out PIDEnable soo Abilitazione regolazione PID attivando l ingresso si abilita la regolazione Disattivando l ingresso si azzera il valore in uscita Out IEnable 8001 Abilitazione regolazione integrativa attivando l ingresso si abilita la regolazione integrativa DEnable 8001 Abilitazione regolazione derivativa attivando l ingresso si abilita la regolazione derivativa Reverse 8001 Inversione segno su valore in uscita Out SetPoint REAL Set point il valore espresso nell unit di misura del processo da controllare PValue REAL Valore acquisito dal processo il valore espresso nell unit di misura del processo da controllare PBand reat 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 ST REAL Tempo di scansione occorre impostare il tempo in cui si desidera vengano eseguite le regolazioni integrativa e derivativa se abilitate il valore in mS KP REAL 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 IT REAL Tempo integrativo si ricorda che pi elevato il valore meno veloce la regolazione integrativa a recuperare l errore Il valore espresso in Sec DT
303. rore chiusura file su comando di lettura 10036240 4 Errore dati presenti su file di dump su comando di lettura 10036400 Errore apertura file su comando di scrittura 10036410 Errore posizionamento file su comando di scrittura 10036420 Errore scrittura su file su comando di scrittura 10036430 Errore chiusura file su comando di scrittura Mnl151c070 Pag 219 288 Programmazione IEC 61131 3 Esempi 5 Fleet Nel seguente esempio sul fronte di attivazione dell input Di02M00 viene eseguito il dump del buffer di memoria DumpBuffer nel file Storage Dump txt Dopo aver eseguito il dump attivando l input Di01M00 possibile rileggere i dati dal file di dump e ritrasferirli nel buffer di memoria Definizione variabili Name Type Address Array Init value Attribute Description 1 MDump FilellemorDump Auto No 0 FB File memory dump DumpBuffer USINT Auto 0 31 3200 Data buffer 3 Enabled BOOL Auto No FALSE FB enabled 4 Done BOOL Auto No FALSE FB done 5 Fault BOOL Auto No FALSE FB fault Esempio LD MDump FileMemoryDump LO MOD ii Ee Di01M00 P_i DIOZMOO P c ISOS Write ADR Storage Dump tt Filename Mnl151c070 DumpBuffer MBufferFtr 22 MBufferSize Pag 220 288 Programmazione IEC 61131 3 3 Flich 7 22 Funzioni ed FB comunicazione multimaster eMMasterDTxferLib Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all imp
304. rre indicare il codice della misura da Measure leggere Vedi codici misura Attivando l ingresso Start viene eseguita la lettura della misura indicata terminata la lettura viene attivata per un loop l uscita Done in caso di errore esecuzione viene attivata per un loop l uscita Fault ed incrementato il valore in Errors Enable 8001 Comando di abilitazione blocco funzione Start 8001 Comando di esecuzione lettura misura File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Address usint Indirizzo inverter Range da 0 a 255 Measure sint Tipo misura da effettuare su inverter Vedi codici misura Done 6001 Attivo per un loop al termine della esecuzione del comando Fault B001 Attivo per un loop su errore esecuzione del comando Value REAL Valore misura acquisito da inverter E nella relativa unit di misura Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Codici misura Nella variabile Measure occorre definire il codice della misura da effettuare dall inverter secondo la 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 Boos
305. rrore esecuzione comando SpyTrg unin Trigger per FB SpyDataFile SpyPtr q usint Puntatore a buffer dati da spiare Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Trigger di spy Se SpyOn attivo viene eseguita la funzione SysSpyData che permette di spiare il funzionamento della FB Sono previsti vari livelli di triggers TFlags Descrizione 16 00000001 Tx Invio frame comando modbus 16 00000002 Rx Ricezione frame risposta modbus Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10007010 Valore di File non definito 10007050 Timeout esecuzione 10007060 Errore esecuzione 10007080 Errore definizione Type 10007100 Codice funzione definito in Function non gestito 10007120 Valore di Points errato 10007200 2 Errore trasmissione frame comando 10007500 7 Errore in ricezione frame risposta Carattere errato lunghezza errata CRC Mnl151c070 Pag 143 288 Programmazione IEC 61131 3 3 Eet Esempi Viene presentato un esempio di lettura da un sistema SlimLine slave Viene eseguita la lettura di 16 coils a partire da indirizzo 16 01 dal nodo modbus 1 Il valore dei coils letti trasferito nell array RxCoils Terminata la lettura si attiver per un loop l uscita logica Do01M00 Definizione variabili Mame Type Address Array Init value Attribute Description 1 RxecCoils BOOL AUTO
306. s Result worp Valore CRC calcolato Esempi Viene eseguito il calcolo del CRC su di un array di dati Supponendo di avere un array di 8 bytes allocato in DB100 all indirizzo 16 che contiene i valori 16 04 16 3B 16 1B 16 00 16 00 16 00 16 00 16 00 il CRC calcolato sar 16 5AF0 Definizione variabili Name Type Address Array Init value Attribute Description 1 CRCValue WORD Auto No 0 2 CRC calculated value 2 Data BYTE Auto 0 7 DUU n Byte data Esempio ST PTP114A620 ST_GetPolynomialCRC BData 0 16 04 BData 1 16 3B BData 2 16 1B BData 3 16 00 BData 4 16 00 BData 5 16 00 BData 6 16 00 BData 7 16 00 CRCValue GetPolynomialCRC ADR BData 8 Mnl151c070 Pag 164 288 Programmazione IEC 61131 3 Eet 7 14Protocollo DLMS o IEC 62056 21 Con il nuovo protocollo standard DLMS Device Language Message Specification la comunicazione con i sistemi di metering viene immensamente semplificata Questo protocollo ha una struttura orientata agli Oggetti che rende possibile leggere con la stessa identica modalita 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 d
307. s get infos from peripheral modules 9991 9991000 9991999 SysPCodeAccept accepts the protection code 9992 9992000 9992999 SysSetSerialDTR set DTR signal status 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 SysVarsnoprintf 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_v1 modem core management 10003 10003000 10003999 ModemSMSReceive receive a SMS message 10004 10004000 10004999 ModemSMSRxCmd_v1 receive a SMS command 10005 10005000 10005999 ModemSMSSend_vi send a SMS message 10006 10006000 10006999 SetSMode Set serial mode 10007 10007000 10007999 ModbusRTUMaster_ vi modbus RTU master 10008 10008000 10008999 OwireMng One Wire management 10009 10009000 10009999 OWRdldentifier One Wire read ROM identifier 10010 10010000 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 STESnmpAcqg STE termometer acquisition over
308. s SysPLCInRun ud SyeTBootExTmMax Digital inputs SysRestoreFault ud SyeTBootExT min User data ud SysStartT ime Swe 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 Wiad tu visualizzarne la finestra delle propriet in Object name SysStartT ime cui indicato il tipo e l indirizzo di allocazione cos come nella figura a lato Properties Description WARIABLE Normal UDINT MBO 31E Cancel Mnl151c070 Pag 13 288 Programmazione IEC 61131 3 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 100 mS SysClock1000 BOOL Clock lampeggiante con duty cycle di 1 S SysBackupEnd BOOL Attiva per un loop di programma al termine di un ciclo di backup dati SysRestoreFault BOOL Si attiva alla accensione se i dati di backup sono in errore Tutti i dati sono azzerati SysPLCInRun BOOL Sempre attiva SysFirstLoop BOOL Attiva per un loop alla prima esecuzione di ogni task PLC SysLLabCn BOOL Att
309. s 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 Mnl151c070 Pag 274 288 Programmazione IEC 61131 3 Esempi 5 Fleet 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 Description 1 WarUSINT LIOINT Auto Mo 0 x USINT variable d VarDiNT DINT Auto Mo O A DINT variable Esempio IL LD VarDINT DINT variable TO_USINT ST VarUSINT USINT varlable Esempio FBD TO_USINT VarDINT gt Esempio LD Esempio ST VarUSINT TO USINT VarDINT Mnl151c070 VarUSINT TO_USINT EN ENO VarBINT _ WarUSINT USINT variable Pag 275 288 Programmazione IEC 61131 3 3 Eet 11 9 User Informations and Settings E previsto un interfacciamento tra il programma utente PLC ed il sistema operativo questo permette di visualizzare ed impostare da sistema operativo variabili il cui valore disponibile al
310. sGetLastError possibile rilevare il codice di errore 10032010 Valore di File non definito 10032050 Timeout esecuzione 10032060 Errore case gestione 10032100 FB usata in task fast o slow 10013200 1 Errore nella gestione del protocollo di comunicazione 10032300 Errore lettura valore Mnl151c070 Pag 200 288 LA Programmazione IEC 61131 3 4 Alaz Esempi Nell esempio gestita l acquisizione del valore di temperatura e di umidit da un HTemp Definizione variabili f Name Type Address Array Initvalue Attribute j Description 1 Humidity REAL Auto No 0 Humidity value Ge 2 Temperature REAL Auto No 0 Temperature value C 3 Fp FILEP Auto No 0 File pointer 4 SMode SetSMode Auto No 0 FB set serial mode data 5 HumAcg SH WaqSProtocol Auto No 0 FB HTempBox data 6 TempaAcg SHWogSProtocol Auto No 0 FB HTempBox data Esempio LD P7TP126A000 LD_HTBoxRead SysFirstLoop SysFirstLoop Dod 1M00 Mnl151c070 Pag 201 288 Programmazione IEC 61131 3 3 Flich 7 19 Funzioni ed FB supporto protocollo NMEA eNMEALib Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie NMEA 0183 O pi comunemente NMEA uno standard di comunicazione di dati utilizzato soprattutto in nautica e nella comunicazione di dati satellitari GPS L ente che gestisce e sviluppa il protocollo la National Marine Electronics Assoc
311. sito C Range di lettura da 55 C a 125 C Precisione 0 5 C tra 10 C e 85 C Risoluzione di lettura 0 0625 C Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10010010 MngiD non definito 10010020 MngiD non corretto 10010100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10010200 5 Errore nelle sequenze acquisizione temperatura Mnl151c070 Pag 184 288 Programmazione IEC 61131 3 3 Flat Esempi Viene eseguita la lettura della temperatura da un dispositivo One Wire Non essendo definito DCode viene acquisito qualsiasi dispositivo presente sul bus One Wire Attenzione Deve essere presente un solo dispositivo sul bus Se esecuzione corretta viene attivata l uscita D0o00MO00 ed il valore acquisito trasferito nella variabile Temperature Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo File pointer d MnolD UDINT Auto NO 0 One Wire management iD 3 Temperature REAL Auto Mo 0 Temperature C d RaTemp sOWRdTemperature AUTO NO 0 7 Read temperature FB A TDone BOOL Auto Mo FALSE S Read temperature done bh Oire sOWireMmno Auto NO 0 n One Wire management FB Esempio LD PTP120A200 LD_SingleTempSkipROM Open the serial port Sysfopen SysFirstLoop EN ENO FN como IS Fp Mod tant ode Manage the SerialfOne Wire converter OVvire
312. ssaggio di testo al massimo 1024 caratteri al server comunemente definito come syslogd syslog daemon o syslog server La semplicit del protocollo fa s che il server possa gestire messaggi provenienti da una variegata tipologia di macchine da computer stampanti dispositivi di rete macchinari ecc Il server pu limitarsi a registrare l evento per avere un archivio centrale degli avvenimenti oppure reagire a particolari livelli di severit chiamando programmi inviando e mail ecc ecc Un messaggio di notifica inviato al server Syslog inizia con un indicatore di impianto Facility e di gravit Severity Di seguito tabelle con indicazione dei codici assegnati Facility codes Kernel messages User level messages Mail system System daemons Security authorization messages Messages generated internally by syslogd Line printer subsystem Network news subsystem UUCP subsystem 9 Clock daemon CON DOO A OO N O 10 Security authorization messages 11 FIP daemon 12 NTP subsystem Severity codes Emergencies Sistema inutilizzabile Alerts Richiede intervento immediato Critical Condizioni critiche Errors Condizione d errore Warnings Condizioni di warning Notifications Condizioni di anomalia non critici bugs Informational Messaggi informativi N QD dl A W DY O Debugging Messaggi di debug Il messaggio prosegue poi con l indicazione di data e ora del nome del dispositivo che ha inviato il messaggio Host
313. sta lo stato del segnale DTR della porta seriale connessa al Sys Set Serial DTR parametro File precedentemente aperto dalla funzione Sysfopen Status Per poter gestire il segnale DTR occorre avere definito sulla porta seriale il valore File DTR_OFF nella variabile DTRManagement nella struttura SYSSERIALMODE Parametri funzione Status 8001 Stato segnale DTR su porta seriale File FILEP Flusso dati stream ritornato dalla funzione Sysfopen La funzione ritorna 9900 FALSE Errore esecuzione TRUE Ok esecuzione Codici di errore In caso di errore la funzione torna FALSE e con SysGetLastError possibile rilevare il codice di errore 9992010 Valore di File non definito 9992990 Non implementata nel simulatore Esempi Lo stato dell ingresso DI00M00 viene trasferito sul segnale DTR della porta seriale COMO Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo O A File pointer Esempio LD Sysfopen SysFirstLoop EN Sys Set Serial OTR GiOO NOD Status Fp File D oli bii Mnl151c070 Pag 104 288 Programmazione IEC 61131 3 Eet 7 10 Funzioni ed FB per gestione CAN bus Il Controller Area Network noto anche come CAN bus uno standard seriale per bus di campo di tipo multicast per collegare diverse unit di controllo elettronico ECU Il CAN stato espressamente progettato per funzionare senza problemi anche in ambienti fortemente d
314. stema e verranno visualizzate accedendo da browser web Per trasferire le pagine web create dall utente nel file system del sistema SlimLine occorre utilizzare un client Ftp Esempio FileZillla ma possibile usare anche il semplice esplora risorse di Windows Come si vede dalla figura sottostante impostando nella barra indirizzo le credenziali di accesso al sistema ed il suo indirizzo IP ftp Admin Admin 192 168 0 162 possibile connettersi e visualizzare il file system Organizza e Propriet del sistema MN e la Download 4 Unita disco rigido 2 7 Dropbox L D S i Risorse recenti cay Raccolte Es Documenti E a r Fal Immagini Acer TC Volume Ds Ecco come si presenta la visualizzazione del file system alla connessione Le cartelle Project e System sono riservate al sistema e si consiglia di non modificarne il contenuto file delle pagine utente possono essere trasferiti nelle cartelle Storage e SDCard Se presente E IR tt a GO gt Internet 192 168 0 162 5 Organizza Project SDCard Cartella di file LL Cartella di file Storage System Cartella di file Cartella di file Quindi l utente pu creare le sue pagine web utilizzando un qualsiasi editor html ma anche semplicemente usando un semplice editor di testo come il blocco note certo deve conoscere la sintassi del linguaggio html Le pagine create saranno trasferite nella directory desiderata ed accedendo da un normale brows
315. sword acquisita dal contatore durante fase di acceso Sign on Value stRING 32 Contiene stringa con valore registro richiesto acquisita dal contatore Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10016010 Valore di File non definito 10016020 FB protetta terminato tempo funzionamento in modo demo 10016050 Timeout esecuzione 10016070 Errore case gestione 10016100 1 Errore ricezione tipo da contatore 10016110 2 Errore ricezione password da contatore 10016120 2 Errore ricezione valore parametro da contatore 10016200 Overflow ricezione stringa da contatore Mnl151c070 Pag 166 288 Programmazione IEC 61131 3 3 Flich 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 Di0OMO0 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 2 File pointer A heterRd IEC62056_21 Auto Mo 0 S IEC62056_ 21RdF8 data 3 TString STRING Auto 332 Tx data string d Rating STRING Auto ER 7 R
316. t LD 2000 ST FBData MinOffTime Set the minimum off time LD 4000 ST FBData MaxOffTime Set the maximum off time LD 2000 ST FBData MinOnTime Set the minimum on time LD 4000 Mnl151c070 Pag 148 288 Programmazione IEC 61131 3 3 Flat ST FBData MaxOnTime Set the maximum on time LD FBData Out ST Do00M00 Copy the Out value to logic output LD FBData Delay ST VarOut The Delay time is copied to variable Esempio ST PTP114A100 ST_ONOFFCYCLE FBData s Call the ONOFFCYCLE function block FBData Enable D100M00 Transfer the digital input to Enable input FBData MinOffTime 2000 Set the minimum off time FBData MaxOffTime 4000 Set the maximum off time FBData MinOnTime 2000 Set the minimum on time FBData MaxOnTime 4000 Set the maximum on time Do00M00 FBData 0Out Copy the Out value to logic output VarOut FBData Delay The Delay time is copied to variable Mnl151c070 Pag 149 288 Programmazione IEC 61131 3 Library Version 7 13 7 PIDMng PID management PLCUtyLib SFR054A000 Questo blocco funzione esegue la regolazione PID E prevista la possibilit di abilitare singolarmente i vari tipi di azione P roporzionale ntegrativa D erivativa SE PiDEnable Enabled Enable Error DEnable Out Reverse SetPoint a PValue PBand ST a KP T DT Un comando di Reverse pe
317. t Transfer output to variable Mnl151c070 Pag 54 288 Programmazione IEC 61131 3 3 Get Type Library Version 7 4 9 ToLower Uppercase to lowercase letter conversion Function ePLCAuxLib SFRO58A000 Questa funzione converte un carattere dal formato maiuscolo nel corrispondente carattere in TSE formato minuscolo a Char Parametri funzione Char usa Carattere da convertire La funzione ritorna et Carattere nel formato minuscolo Esempi La variabile Upper viene convertita nel corrispondente valore minuscolo e trasferita in Lower Il valore di inizializzazione 16 41 che corrisponde alla lettera A viene convertito nel valore 16 61 che corrisponde alla lettera a Definizione variabili Mame Type Address Array Init value Attribute Description 1 Upper SINT Auto Mo 16 4 n Uppercase letter d Lower SINT Auto No O n Lowercase letter Esempio LD To Lower Upper Char Esempio IL LD Upper Uppercase letter ToLower Uppercase to lowercase letter conversion ST Lower Lowercase letter Esempio ST Lower ToLower Upper Uppercase to lowercase letter conversion Mnl151c070 Pag 55 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 4 10 ToUpper Lowercase to uppercase letter conversion Function ePLCAuxLib SFRO58A000 Questa funzione converte un carattere dal formato minuscolo nel corrispondente carattere in ToUpper formato maiuscolo Ch
318. t value Attribute Description 1 FB_CTD CTD Auto Mo O bk CID counter Down function block d QOuUtYValue INT Auto Mo Output value Esempio LD PTP1154100 CTD_LD ER CTE CTO DOO Woo Dadi Mod c CH D 01 OO ere L I cy eeng Kl Outvalue Mnl151c070 Pag 41 288 Programmazione IEC 61131 3 3 Flat Esempio IL CAL FB CTD Call the CTD function block LD 10 ST FB CTD PV Preset value LD Di00M01 ST FB CTD CD On the raising edge of digital input the counter count down LD Di01M00 ST FB CTD LD Tr the digital input is set the PV value is loaded zi 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 CID function block and preset counter FB CTD CD Di00M00 On the raising edge of digital input the counter count down EB CTD LD DLO1M007 LE 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 counter value is copied to the variable Mnl151c070 Pag 42 288 Programmazione IEC 61131 3 Library Version 7 3 2 CTU Counter Up ePLCStdLib SFRO53A000 Questo blocco funzione esegue la gestione di un counter in incremento Agendo sull ingresso di reset R possibile in qualsiasi momento azzerare il
319. ta USINT Puntatore al buffer dove sono presenti i dati da trasmettere DLen uoint Numero di bytes scambiati Max 32 Enabled eco Attivo su abilitazione blocco funzione Fault 8001 Attivo per un loop su errore esecuzione RxOk e001 Attivo per un loop ad ogni ricezione dati da sistema peer PeerOk 8001 Attivo se scambio dati con sistema peer Ok RxFrames uoin Counter frame dati ricevuti TxFrames unr Counter frame dati trasmessi AckErrors UDINT Counter errori acknowledge dati da sistema peer Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10041010 MMDtTxfID non definito 10041020 MMDtTxfID non corretto 10041050 Valore DLen errato 10041200 Frame dati ricevuto da sistema peer ha lunghezza errata Verificare DLen sistema peer Mnl151c070 Pag 224 288 j Ei Programmazione IEC 61131 3 Alaz Esempi Nell esempio gestito lo scambio di 8 BOOL con il sistema peer nodo 1 MyNode 1 Definizione variabili Name Type Address Armay Initvalue Attribute Description 1 Fp FILEP Auto No 0 File pointer 2 MMDITxflD UDINT Auto No 0 Multimaster data transfer ID 3 Client DataTxferClient Auto No 0 Data transfer client 4 Server MMasterDataTxfer Auto No 0 S Multimaster data transfer 5 Dummy BOOL Auto No FALSE Z Dummy variable 6 PeerOk BOOL Auto No FALSE Ae Peer system is Ok 7 RxData BOOL Auto D S 0 o Rx data from peer 8 TxDat
320. tare il bit Bit sint Numero del bit da settare Range da 0 a 31 La funzione ritorna AI 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 Mnl151c070 Pag 47 288 Programmazione IEC 61131 3 3 Flap Library Version 7 4 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 D Sch D b7 Bool Bit 7 del byte di Out b5 be b7 b0 B001 Bit O del byte di Out Out eyr Risultato conversione ingressi a bit Esempi Gli 8 ingressi digitali del modulo 0 sono trasferiti nella variabile VarOut Attivando il solo ingresso digitale Di0OMO0 la variabile VarOut assumer valore 1 attivando il solo ingresso digitale Di01M00 la variabile VarOut assumer valore 2 e cos via fino all ingresso Di07MO00 attivando il quale la variabile VarOut assumer valore 128 Attivando p
321. 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 Sys TBootExTmMax 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 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 Te
322. te e ey QU _ _ _ _ _ CE Op e eee CM e _ _ _ LI eng 5 Fleet Description CTUD Counter UpiDown function block Qutput value FB_CTUD CTUD Doli WOO Dot MOO Cut alue ST FB CTUD CU On the raising edge of digital input the counter count up LD Di01M00 ST FB CTUD CD On the raising edge of digital input the counter count down LD Di02M00 ST FB CTUD R IT the digital input is set the counter is reset LD D103M00 SE EB CTUD LD LE the digital input is set the PV value is loaded LD FB CTUD QU ST Do00M00 If the counter value has reached the preset the digital output is set LD FB CTUD QD ST Do01M00 If the counter value is 0 the digital output is set LD FB_CTUD CV ST OutValue The counter value is copied to the variable Esempio ST FB CTUD PV 10 Call the CTD function block and preset counter FB CTUD CU Di00M00 On the raising edge of digital input the counter count up FB CTUD CD D1i01M00 On the raising edge of digital input the counter count down FB CTUD R Di02M00 If the digital input is set the counter is reset FB CTUD LD D103M00 Do00M00 FB CTUD OU Do01M00 FB CTUD QD OutValue FBCTUD CV Mnl151c070 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 o
323. te nel proprio programma Il parametro ALevel configura il livello di accesso ai messaggi settando i bits della variabile si permette di visualizzare solo i messaggi che hanno lo stesso bit definito in Access Level CmdDisable 001 Disabilitazione comandi terminale Attivandolo non possibile eseguire operazioni ViewMID uint Visualizza messaggio con ID definito ALevel BYTE Pattern livello accesso utente DEntryOk oo Attivo per un loop al termine della inputazione di una variabile MsgiD unt ID del messaggio attualmente visualizzato HMIBuildiInID upin ID messaggi da passare alle FB collegate Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10046010 Tabella messaggi generata da LogicLab non supportata 10046020 2 Non possibile allocare memoria per l esecuzione 10046100 Blocco funzione non eseguito in task di background Back 10046200 Messaggio con ID richiesto in ViewMID non trovato 10046100 Spazio insufficente per visualizzazione variabile Mnl151c070 Pag 228 288 Programmazione IEC 61131 3 Type Library 7 23 2 HMIBuiltinNetlog Netlog HMI management 5 Fleet Version FB eHMIBuiltlnLib Questo blocco funzione esegue la gestione del terminale Display e tastiera integrato nel sistema Netflogili deve essere eseguito in task Back Si collega al blocco funzione HMIBuiltinMessages di gestione messaggi occorre passare
324. ter 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 Mnl151c070 Pag 208 288 Codice Programmazione IEC 61131 3 Descrizione 30 Isolation Resistance Riso 31 Vbulk Dc Dc 32 Average Grid Voltage VgridAvg 33 VbulkMid 34 Power Peak 35 Power Peak Today 36 Grid Voltage neutral 3 Wind Generator Frequency 38 Grid Voltage neutral phase 39 Grid Current phase r 40 Grid Current phase s 41 Grid Current phase t 42 Frequency phase r 43 Frequency phase s 44 Frequency phase t 45 Vbulk 46 Vbulk 47 Supervisor Temperature 48 Alim Temperature 49 Heat Sink Temperature 61 Grid Voltage phase r 62 Grid Voltage phase s 63 10030010 10030020 10030050 10030070 10030100 10030200 10030251 10030252 10030253 10030254 10030255 10030256 10030257 10030258 Mnl151c070 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 prote
325. tite LINT Auto Mo 0 Encoder quote Esempio LD PTP116A100 LD_SysGetEncoder FBD ata Sys Get Encoder EH ENO 0 Address Done _o_ channel Fault FALSE RCount Zero FALSE ZeroEn Gate FALSE GateEn Quote FALSE RGate Dodi Midd Dodd Woo Dod MOO Bods MA0 Gate Ute Encodertte Esempio IL PTP116A100 IL_SysGetEncoder Acquires encoder 0 from module LD 0 ST FBData Address Set module address LD 0 ST FBData Channel Set channel LD FALSE ST FBData RCount Reverse counting ST FBData GateEn Gate enable ST FBData RGate Reverse gate CAL FBData Call the SysGetEncoder function 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 Mnl151c070 Pag 130 288 Programmazione IEC 61131 3 3 Flich Type Library Version 7 12 8 SysSetPWMOut set PWM output FB Embedded XTarget 07 0 Questo blocco funzione esegue l impostazione del valore di frequenza Frequency e di duty cycle Duty sul generatore PWM indicato Il range dei valori di frequenza e duty cycle dipendono dalla scheda utilizzata Address Done Sys Set PWM Out Channel Fault Impostando il valore di Frequency a 0 viene disabilitato il PWM e l uscita viene forzata
326. tivo connesso al bus Al termine della lettura del codice si attiva l uscita Done Se la lettura ha esito positivo si attiva per un loop di programma l uscita Ok Gli 8 bytes del ROM ID sono trasferiti nell array indirizzato da DCode Disattivando Enable si azzera Done e l eventuale Fault per eseguire una nuova lettura occorre riabilitare l ingresso Enable Enable BOOL Abilita il blocco funzione MngiD upin One Wire management ID fornito in uscita dal blocco funzione sOWireMng IDCode usint Puntatore array memorizzazione ROM ID deve essere almeno 8 bytes Done 8001 Si attiva al termine della esecuzione lettura del ROM ID Ok 8001 Attivo per un loop se lettura ROM ID eseguita correttamente Fault B001 Attivo se errore lettura ROM ID Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10009010 MngiD non definito 10009020 MngiD non corretto 10009030 DCode non definito 10009100 FB OWireMng gestione convertitore Seriale One Wire impegnata 10009200 2 Errore gestione sequenze One Wire lettura ID Mnl151c070 Pag 182 288 Programmazione IEC 61131 3 Esempi Ecco un semplice esempio di gestione di dispositivi iButton per il riconoscimento personale Inserendo il TAG nel lettore viene eseguita la lettura del ROM identifier il valore acquisito trasferito in un array di 8 bytes ROMID Ciclicamente viene eseguita l acquisizione se un TAG
327. to 17 52 14 931 Rx 00013 Test message 17 52 15 231 Rx 00013 Test message Definizione variabili Name Type Address Array Init value Attribute Description 1 Spy SpyDataFile Auto No 0 R FB instance 2 Pulse BOOL Auto 0 1 0 0 n One shot Esempio ST Kaeo ee ee iii edel el ini i ee iii nin i i ini d leid i nin ni n n d nni nni ent DATA SPY x EE SS SS SS SS SS SSS SS SS SS SS SS SS SS SS SS SS SS SS SS SS ES SS SS SS SS SS SS SS SS SS SS SS SS SS SS E SS SS SS SS SS SS SS SSS Set FB parameters Spy Filename Storage Spy csv File name Spy Formati 0 Spy format Spy RowLen 80 File row length Spy FileRows 100 File rows number Spy Enable TRUE FB calling SpVsopyYlrgr O0F Spy trigger Rx Spy SpyPtr ADR Test messageSr Data to spy pointer By activating the logic input the spy is done IF D100M00 lt gt Pulse 0 THEN Pulse 0 D100M00 One shot zi IF D100M00 THEN Spy SpyTrg 16 52780000 eLEN Spy SpyPtr Spy trigger Rx END IF END IF Mnl151c070 Pag 252 288 Programmazione IEC 61131 3 Eet 9 Protocolli di comunicazione 9 1 Protocollo modbus Il modbus un protocollo di comunicazione seriale diventato uno standard de facto nella comunicazione di tipo industriale ed ora il protocollo di connessione pi diffuso fra i dispositivi elettronici industriali E un protocollo di tipo richiesta risposta ed offr
328. tore al buffer dove sono presenti i dati da trasmettere DLen unnt Numero di bytes scambiati Max 32 Done 8001 Attivo al termine dell invio dei dati rimane attivo fino alla disabilitazione di Enable Fault B001 Attivo per un loop su errore esecuzione TxFrames upinr Counter frame dati trasmessi Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10044010 MMDtTxfID non definito 10044020 MMDtTxfID non corretto 10044050 Valore DLen errato Mnl151c070 Pag 226 288 Programmazione IEC 61131 3 3 Flat 7 23 Libreria gestione interfaccia operatore eHMIBuiltInLib Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie Questa libreria permette di gestire l interfaccia operatore direttamente da LogicLab Nel men Resources possibile configurare le interfacce operatore Come si vede nella figura stata definita una interfaccia MyHMI che prevede due messaggi Ge Library sources LogicLab R 04159 013 Sfr0 7O Sfr0 0a100 Library sources Library sources ppjs Re Sle File Edit View Project On line Debug Window Tools Developer Help Bap oc the Oe MAD IERI ue HA PO ai e a i AA Ts 6 Bs dm gt LEA Resources m x Fal Resources E Configuration Mi Netlog III Mps051 XTarget 0 message Tia HMIs 72 ee Matt aE M 0 M1RYar lt 1 gt Message a E
329. tta 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 209 288 Programmazione IEC 61131 3 3 Eet 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 Name Type Address Array Init value Attribute Description 1 Fp FIER Auto Mo 0 Terminal VO file pointer 2 ohlode SetShode Auto Mo 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 _______________
330. ttura viene effettuata in modo ciclico L uscita Done si attiva per un loop al termine della acquisizione dei due valori di temperatura Enable 8001 Abilitazione blocco funzione Acquire B001 Comando acquisizione termometro STE Sul fronte di attivazione si esegue la lettura del valore di temperatura Mantenuto attivo la lettura viene effettuata in modo ciclico File FILEP Flusso dati stream ritornato dalla funzione Sysfopen PeerlP stRING 15 Stringa di definizione indirizzo IP del termometro IP PeerPort unt Porta utilizzata per la connessione Di default la porta SNMP la 161 Done 8001 Attivo per un loop di programma su fine lettura dati Fault B001 Attivo per un loop di programma se errore gestione Sensor REAL Valore di temperatura letto dal sensore 1 C Sensor REAL Valore di temperatura letto dal sensore 2 C Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10013010 Valore di File non definito 10013050 Timeout esecuzione 10013060 Errore case gestione lettura 10013100 Errore controllo indirizzo IP del dispositivo STE 10013120 Errore ricezione dati da dispositivo STE 10013200 1 Errore lettura sensore 1 10013300 1 Errore lettura sensore 2 Mnl151c070 Pag 198 288 Programmazione IEC 61131 3 3 Flat Esempi Nell esempio gestita l acquisizione dei due valori di temperatura da un termometro STE ogni secondo Il valore
331. u variabile BYTE Nell esempio Il valore 16 12 viene trasformato nel valore 16 21 e trasferito nella variabile VarOut Definizione variabili Mame Type Address Array Init value Attribute Description 1 WarQut BYTE Auto Mo O R Output variable Esempio LD Esempio IL LD 16 12 ROL 4 ST VarOut Output variable Esempio ST VarOut ROL 16 12 4 Output variable Pag 269 288 Mnl151c070 Programmazione IEC 61131 3 11 4 Espandere DWORD in 32 BOOL el Ecco un come utilizzando i blocchi funzione DoubleToWord WordToByte ByteToBit sia possibile espandere una variabile DWORD in 32 variabili BOOL Definizione variabili Name Type Address Array Init value Attribute 1 ByToBtHH Byte Tobit Auto Mo O d ByToBtHL Die Toi Auto Mo O A ByToBtLH ByteTo it Auto Mo O d ByToBtLL AyteT obit Auto Mo O D WaToByH WordToByte Auto Mo 0 bh WdToByL WordToByte Auto Mo 0 d Dog DoubleTovord Auto Mo 0 D Bit BOOL Auto IO 21 FALSE 210 2 Value DWORD Auto Mo 0 Esempio FBD Ptp114a200 FBD_DWExpand 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 ByToBtLL ByteTo Bit In Mnl151c070 ByToBtHL ByteTo Bit ByToBtLH ByteToBit bh bi bz bh b4 b i bp by b bi bz b3 b i be bp by bh bi bz bh b4 b i bp by b bi be b3 b i be bE br
332. uare l aggiornamento di un oggetto di una libreria collegata occorre eseguire un ReLink alla nuova versione della libreria Attenzione Questa operazione aggiorner tutti gli oggetti presenti nella libreria Oggetto importato Nel caso di oggetto importato per effettuare l aggiornamento baster rimuovere l oggetto attuale dal progetto ed eseguire un import dello stesso oggetto dalla nuova versione della libreria Conclusioni In generale si consiglia di non eseguire il collegamento della libreria ma di includere i singoli oggetti nel proprio progetto questo permette una pi semplice gestione degli aggiornamenti Alcune librerie contengono una serie di oggetti Funzioni e blocchi funzione che sono di vasto impiego in questo caso consigliabile sempre collegare queste librerie Ecco l elenco delle librerie che si consiglia di collegare al progetto Libreria Codice Descrizione ePLCStdLib SFR053 000 Libreria standard IEC61131 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 Mnl151c070 Pag 32 288 Programmazione IEC 61131 3 3 Flich 7 0 7 Protezione funzioni e blocchi funzione Alcune funzioni e o blocchi funzione di libreria possono essere protetti da un codice che deve essere ordinato separatamente Per abilitarne l esecuzione occorre sblocca
333. uire il comando disabilitare e poi riabilitare questo ingresso Flusso dati stream ritornato dalla funzione Sysfopen Numero di nodo modbus su cui effettuare il comando Range da 0 a 255 Codice funzione modbus da eseguire nel comando Range da 0 a 255 Descrizione 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 Si attiva al termine della esecuzione comando Attivo per un loop se esecuzione comando corretta Attivo per un loop se errore esecuzione comando Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 Pag 235 288 Programmazione IEC 61131 3 Eet Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10007010 Valore di File non definito 10007050 Timeout esecuzione 10007060 Errore esecuz
334. uisiti Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 9985050 Errore allocazione blocco funzione 9985070 Errore versione blocco funzione 9985100 II modulo indirizzato in Address non presente 9985110 24 Il modo acquisizione definito in Mode non corretto 9985200 13 Errore durante l esecuzione della lettura ingressi dal modulo periferico Mnl151c070 Address Done Mode Fault Address sint Occorre specificare l indirizzo di modulo da cui eseguire l acquisizione degli ingressi digitali Range da 0 a 255 Il valore 0 indica il primo modulo di estensione 1 il secondo e cos di seguito L indirizzo XTarget 07 0 sys Get PhrDI Walue Pag 118 288 Programmazione IEC 61131 3 3 Flich 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 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 8 FB fault Esempio LD PTP116A100 LD
335. una sicurezza intrinseca sulla loro validit Questo avviene grazie a tecniche di indirizzamento univoche CRC polinomiali di controllo numerosi comandi di verifica e complessi algoritmi di gestione Sui sistemi SlimLine possibile connettere un convertitore Seriale One Wire su una delle porte seriali COMO o COM1 presenti sul modulo CPU oppure utilizzare una qualunque porta seriale presente su un modulo di estensione per poter disporre di uno o pi bus One Wire Il blocco funzione sOWireMng gestisce il convertitore permettendo la gestione dei dispositivi ad esso connessi Mnl151c070 Pag 180 288 Programmazione IEC 61131 3 3 Get i Type Library Version 7 16 1 sOWireMng One Wire management n FB ePLC1WireLib SFR059B000 Questo blocco funzione gestisce il convertitore Seriale One Wire connesso al dispositivo di I O sOWireMng definito in File l FB gestisce l inizializzazione e la gestione del convertitore Enable On ot L uscita OnWork si attiva se Enable attivo l uscita Fault si attiva in caso di errori di gestione e File Activity rimane attiva fino a quando l errore permane L uscita Activity si attiva durante l attivit sul bus One Fault Wire L FB ritorna un MngID che deve essere passato alle FB collegate hinglD Enable B001 Abilitazione blocco funzione attivandolo viene gestito il convertitore Seriale One Wire File FILEP Flusso dati stream ritornato dalla funzione Sysfopen OnWork 001
336. unicazione File Attivando Enable sul terminale di I O viene inviato un frame per eseguire la funzione modbus definita in FCode Terminata l esecuzione del Enable Done comando viene attivata l uscita Done Se l esecuzione comando ha esito positivo si attiva per un File Ok loop di programma l uscita Ok Disattivando Enable si azzera Done e l eventuale Fault per Node Fauli eseguire nuovamente il comando occorre riabilitare l ingresso Enable Flode Eat Se FCode una funzione di lettura il valore delle variabili a partire dall indirizzo definito in Address Address per il numero di variabili definito da Points viene letto dal sistema slave e trasferito nelle Paints variabili indirizzate da Buffer Buffer Se FCode una funzione di scrittura il valore delle variabili presenti nel buffer di memoria Timeout indirizzato da Buffer per il numero di variabili definito da Points inviato al dispositivo slave che lo trasferir nelle sue variabili a partire dall indirizzo definito in Address In caso di errore esecuzione o tempo di esecuzione comando superiore al tempo definito in Timeout viene attivata per un loop di programma l uscita Fault ed incrementato il valore in Errors Enable B001 File FILEP Node sint FCode sint Address unt Points sint Buffer usint Timeout int Done B001 Ok 001 Fault 8001 Errors uDINT Mnl151c070 Comando abilitazione esecuzione comando modbus Per rieseg
337. untatore al file di porta seriale stream indicato dal parametro File precedentemente aperto dalla funzione Sysfopen r HE SETS File Dk Attivando l ingresso Enable viene effettuata la lettura del valore dal dispositivo connesso alla porta seriale definita terminata l esecuzione si attiva l uscita Done Se il comando ha avuto esito positivo si attiva l uscita Ok in caso contrario si attiva l uscita Fault Address Fault Per seguire nuovamente il comando occorre riabilitare l ingresso Enable blocco funzione stato realizzato per permetterne la connessione in cascata In pratica possibile connettere al Done di un FB l Enable di un altro e cos di seguito Enable 8001 Abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Address stRING 1 Stringa di definizione indirizzo dispositivo Done 6001 Si attiva al termine della esecuzione comando Ok B001 Si attiva se acquisizione valore riuscita Fault B001 Si attiva su errore gestione Errors uDINT Numero di errori incrementato ad ogni nuovo errore raggiunto valore massimo riparte da 0 TxFrame stringj Contiene il frame inviato al dispositivo pu essere utilizzato in debug RxFrame srRInc 16 Contiene il frame ricevuto dal dispositivo pu essere utilizzato in debug Value REAL Valore acquisito dal dispositivo Codici di errore In caso di errore si attiva l uscita Fault il valore di Errors si incrementa e con Sy
338. utput is set is 0 the digital output is set copied to the variable Pag 45 288 Programmazione IEC 61131 3 7 4 Funzioni ed FB per conversione dati 7 4 1 VBitTest Variable bit test Questa funzione esegue il test di un bit in una variabile Parametri funzione Variable dont Variabile in cui testare il bit Bit sint Numero del bit da testare Range da 0 a 31 La funzione ritorna BOOL Stato bit indicato Esempi Type el 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 Mnl151c070 Library Version ePLCAuxLib SFR058A000 VEitTest a Variable a Bit Description Dummy Dott Mid Pag 46 288 Programmazione IEC 61131 3 3 Flat Type Library Version 7 4 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 Bool Valore bit da settare Variable unn Variabile in cui set
339. 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 EU O preset definito su PV l uscita Q viene settata ed il conteggio si arresta Solo agendo sull ingresso di reset R cy R si potra resettare il counter e fare ripartire un nuovo conteggio WW CTU L ingresso di reset R prioritario sull ingresso di incremento CU CU B001 Comando incremento counter ad ogni fronte attivazione il valore del counter CV si incrementa R B001 Comando di reset attivando l ingresso il valore del counter CV si resetta PV int Valore di preset quando il valore del counter CV raggiunge questo valore l uscita Q si attiva ed il counter non si incrementa pi Q B00 Uscita counter attiva se il valore del counter CV raggiunge il valore definito in preset PV CV nt Valore counter valore di conteggio counter quando raggiunge il valore di preset PV l uscita Q si attiva ed il counter non si incrementa pi Esempi Il counter presettato a 10 ed il suo valore in uscita CV copiato nella variabile OutValue Attivando l ingresso digitale Di01M00 il counter viene resettato ed il suo valore in uscita CV posto a 0 resettando anche l uscita Q Sul fronte di attivazione dell ingresso digitale Di00M00 il counter incrementato di 1 quando il valore di conteggio raggiunge il valore di preset il conteggio si arresta e viene attivata l
340. value Attribute Description 1 Variable DWORD Auto Mo 0 Variable d BEArray SINT Auto 0 3 4 3 2 1 8 Big endian array Esempio LD BEArray Tovar ADR DWORD TYPE gt Mi Destination Wariable KE Source BEArray Mnl151c070 Pag 58 288 Programmazione IEC 61131 3 3 Flich 7 5 Funzioni ed FB di utilit sistema Type Library Version 7 5 1 SysGetSysTime get system time Function Embedded XTarget 07 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 Cmd FALSE a Cmd Parametri funzione Cmd eoo Indica il valore di tempo che deve essere ritornato TRUE Viene salvato e ritornato il valore attuale di tempo FALSE Viene ritornato il tempo salvato dalla precedente chiamata con Cmd TRUE La funzione ritorna RIE Tempo di sistema espresso in pS 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 Seflime UDINT Auto Mo O Input set time us 3 Pulse BOOL Auto Mo FALSE S Pulse flag Esempio ST PTP116A000 ST_SysGetSysTime Check if input is activated IF D100M00 lt gt Pulse T
341. vi Esempio LD Modem Core 3 Enable Enabled FALSE AutoHangUp Done TRUE SpyOn Fault ADR E Do 1 MOO Do MOO Dato hod File FomerOn Dolz M00 AW hid bis wod afone it APH CLIFRxd DNS bodemiD ADR Operator 3 5 5 5 Fissi CLIFNumber IPAddress Mnl151c070 Pag 170 288 Programmazione IEC 61131 3 Library Version 7 15 2 ModemSMSReceive receive a SMS message eModemLib SFR057D100 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 hbiodemiD Fault ShdS T ext ModemsMS Receive Alla ricezione di un messaggio SMS si attiva per un loop di programma l uscita Done sull uscita SMSText viene ritornato il messaggio ricevuto all uscita CLIPNumber della FB ModemCore ritornato il numero di telefono da cui il messaggio stato ricevuto Il testo del messaggio ricevuto rimane presente in uscita sino alla ricezione di un altro messaggio Enable BooL Abilita la ricezione dei messaggi SMS ModemiD unint ID modem fornito in uscita dalla ModemCore Done 8001 Attivo per un loop se ricevuto messaggio SMS Fault B001 Attivo per un loop se errore Text sTRING 160 Testo del messaggio SMS ricevuto Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice d
342. w 9962990 Non implementata nel simulatore Esempi Se attivo l ingresso DI00MO00 tutti i caratteri presenti nel buffer di uscita della porta seriale saranno trasmessi e l uscita Do00MO00 attivata Definizione variabili Mame Type Address Array Init value Attribute Description 1 Fp FILEP Auto Mo S 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 DoQOM00 SysFOBfFlush Fp END IF END IF Mnl151c070 Pag 88 288 Programmazione IEC 61131 3 Type Library Version Function Embedded XTarget 07 0 7 7 14 SysVarfprintf variable print to file Questa funzione esegue la stampa formattata di una variabile sullo stream collegato al EH parametro File precedentemente aperto dalla funzione Sysfopen ae La stringa Format specifica il formato con il quale stampare la variabile Mentre in VarType Format indicato il tipo di variabile ed in VarAdd il suo indirizzo a VarType La funzione ritorna il numero di caratteri trasferiti nello stream EOF in caso di errore Var dd Parametri funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen Format strinc so Ha due tipi di argomenti i caratteri ordinari che vengono copiati nello stream di uscita e le specifiche
343. wobjet DE Ubi TE VEE OO 80 e Cmd ui Se EE Gl brr FDO Dis Project EN StartStop Project J Programs Duplicate object Delete object Address Array Init value Aftribute PLC Object properties Object Browser Compile i Recompile all Pic Emulator 1 0 SlimLine Mps046 Target 07 0 Generate redistributable source module SlimLine Mps046 XT arget 08 0 i SlimLine MpsQ46 T arget 10 0 Import object from library SlimLine Mps050 XT arget 10 0 Export object to library SlimLine Pcb123 Target 10 0 dra 5 SlimLine ch 31 amp Target 10 0 Library manager landi kp Available Targets Macros Cancel E definire il modo di comunicazione utilizzato dal menu On line Set up communication On line Debug Scheme Variables Window Tools Help Aa Tfr Hed FAZE APE ANE 3 i x H Device Link Manager Config v10 0 22 0 Current selected protocol ModbusTCP Protocols Active y GOB Modbus E HodbusTCF Active This program shows Description The Start and Stop o You can easily chang Modbus TCF protocol Start rt nie Mnl151c070 Pag 279 288 Programmazione IEC 61131 3 Eet 12 3 1 Elenco programm di esempio programmi forniti con LogicLab sono StartStop Logica di marcia arresto SMSbyWeb Invio messaggi SMS da pagina web MdbAsciiMaster FB gestione protocollo Modbus Ascii Modo Master MultipleSTE Connessione in SNMP con alcuni dispositivi STE EasyProtocol Svilup
344. x data string 5 MeterCode STRING Auto ER Meter code E Password DINT Auto Ko 0 n Meter password 7 Value STRING Auto ER S Variable read value Esempio LD P7TP114A000 LD_IEC62056_21Rd hdeterRd IECE2056_27Rd Diddii cc Enable Done Fp_ gt File Fault 2346673 SerialMr TxString 4 8 0 Register RxString beterCode Dogi Mod D 001 OO TxString RxString hieterCode F asanvord Walue Mnl151c070 Pag 167 288 Programmazione IEC 61131 3 3 Get 7 15Funzioni ed FB gestione modem eModemLib Attenzione Per utilizzare la libreria occorre importarla nel proprio progetto Vedere capitolo relativo all import delle librerie Le funzioni ed i blocchi funzione per la gestione del modem utilizzano un modem GSM connesso ad un terminale di I O del sistema Tipicamente utilizzata una porta seriale Nel modem deve essere inserita una tessera SIM non protetta dal codice PIN Nella descrizioni successive si fa riferimento alle seguenti definizioni generali Numero di telefono Il numero di telefono consiste in una stringa lunga da 10 a 16 caratteri numerici conforme al seguente formato Prefisso internazionale senza lo zero davanti es 39 per Italia 49 per Germania 44 per Gran Bretagna ecc Codice dell operatore mobile es 338 320 347 ecc Numero di telefono es 7589951 Esempio 393337589951 3933812345 49172123456 Messaggio SMS Un messaggio SMS pu essere lungo fino a 16
345. zione il valore di MyNode saranno ricevuti dalla FB che li passer alle FB clients per la verifica hiaxChkT m La comunicazione multimaster si basa sul controllo del canale di comunicazione libero e sulla gestione delle collisioni parametri per questa gestione sono impostabili in MinFreeTm e MaxFreeTm In questi parametri occorrer definire tempi piccoli per comunicazioni su linea seriale e tempi pi lunghi nel caso di comunicazione via radiomodem In MinChkTm e MaxChkTm possibile impostare un tempo per l invio di un messaggio di controllo verso gli altri sistemi della rete L FB abiliter a turno sequenzialmente le varie FB clients per uno scambio dati con il peer con cui l FB dialoga controllando la connessione Se uno o entrambi i valori sono impostati a 0 il controllo non viene eseguito In RxErrors ritornato il conteggio degli errori di ricezione l FB monitora continuamente il canale di comunicazione e se i dati ricevuti sono in errore viene incrementato il contatore Errori possono manifestarsi in caso di collisioni sul canale di comunicazione In caso di errore esecuzione viene attivata per un loop l uscita Fault Enable Boot Comando di abilitazione blocco funzione File FILEP Flusso dati stream ritornato dalla funzione Sysfopen MyNode usinT Nodo identificativo del sistema Range da 0 a 250 Timeout UDINT MinFreeTm reat MaxFreeTm REAL MinChkTm reat MaxChkTm eat Enabled s001 Fault s001 MMDtTx
346. zione 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 verr attivata per un loop di programma l uscita Done Humber Text Send B00L Sul fronte di attivazione comanda l invio del messaggio SMS Attenzione messaggio sar inviato non appena il modem libero per l invio ModemiD upint ID modem fornito in uscita dalla ModemCore Number strinci16 Numero di telefono a cui eseguire l invio del messaggio Text stTRING 160 Testo messaggio da inviare Done 8001 Attivo per un loop al termine dell invio del messaggio SMS Fault B001 Attivo per un loop se errore invio messaggio SMS Codici di errore In caso di errore si attiva l uscita Fault con SysGetLastError possibile rilevare il codice di errore 10005010 ModemID non definito 10005020 ModemID non corretto Mnl151c070 Pag 248 288 Programmazione IEC 61131 3 3 Flich Type Library Version 8 1 11 ModemSMSSend_v1 send a SMS message FB eModemLib SFR057D000 Questo blocco funzione esegue l invio di un messaggio SMS si collega al blocco funzione di gestione modem ModemCore occorre passare alla FB il ModemID in uscita dal blocco funzione di gestione modem Send Done LiodemiD Fault Humber Text ModemSsMSsSend_ vi Su fronte attivazione ingresso di Send viene prenotato l invio del messaggio non appena s
Download Pdf Manuals
Related Search
Related Contents
ORCHID - Stefan Matyba Wagner 0518050 Installation Guide Dans les pages qui suivent, vous trouverez la fiche NetFirm CS User Bulletin - CS Professional Suite Betriebsanleitung Capitolato Speciale di appalto User Manual il propose Copyright © All rights reserved.
Failed to retrieve file