Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,226 a 3,240 (di 4,374 totali)
  • Autore
    Post
  • in risposta a: Interfacciarsi con SlimLine da Visual Studio #37860
    Sergio Bertana
    Amministratore del forum

    SlimLine accetta comandi Modbus con indirizzamento compreso tra 40000 e 44095 accesso a bit e 40000 e 42047 accesso a registi, questi indirizzi agiscono sulla DB 100. E’ previsto un alias a 20000 stesso range di indirizzamento. Gli indirizzi da 100 a 105 accedono al real time clock. Altri indirizzi al di fuori di quelli previsti ritornano un codice di eccezione.

    Non ho capito la tua domanda sulla lettura del termostato, cosa centra SlimLine con il termostato. Se il termostato è in Modbus dovrai tu dal PC leggerlo. Oppure potrai leggerlo da SlimLine utilizzando il FB ModbusMaster, ed a questo punto avendo fatto tu il programma sullo SlimLine sarai tu a decidere dove appoggiare il valore di temperatura nella DB 100 in modo da poterla poi acquisire.

    Per la rete di SlimLine che parlano in Modbus con il campo vale il discorso fatto prima, vari FB ModbusMaster messe in cascata acquisiranno i valori dai dispositivi sul campo che poi saranno allocati nella DB 100 dove il PC li andrà ad acquisire in Modbus TCP (Topic con esempio simile). Se i dispositivi hanno baud rate diversi devi usare porte seriali diverse, tutti i dispositivi modbus in una rete RS485 devono avere lo stesso modo di comunicazione. Eventualmente puoi utilizzare le porte RS232 con dei convertitori di interfaccia.

    in risposta a: Programmazione multitasking o sequenziale su SlimLine #37858
    Sergio Bertana
    Amministratore del forum

    La soluzione di creare delle librerie di base per la gestione delle logiche di gestione e di lasciare ad un programma custom il controllo degli I/O di campo è proprio l’approccio corretto alla programmazione dei PLC. La possibilità di creare funzioni e/o blocchi funzioni che gestiscono operazioni complesse e poi il poterli richiamare da semplici programmi ladder, permette anche all’installatore di modificare la parte di programma che si occupa dell’interfaccia di campo adeguandola alle necessità che si trovano di volta in volta sui vari impianti.

    Nello SlimLine ci sono 3 livelli di priorità di escuzione (3 Tasks), Back che può essere interrotta dalla Slow che può essere interrotta dalla Fast. Naturalmente come richiesto dalla normativa l’esecuzione del programma deve concludersi in un tempo predefinito e non modificabile (ca 1 Sec) se questo non avviene, l’esecuzione viene automaticamente riavviata (Topic).

    L’esecuzione del programma è ciclica, quindi per effettuare programmazioni concorrenti occorre (Come viene fatto nelle nostre FB) realizzare programmi a stati, in modo da mai arrestarne l’esecuzione. In questo topic è riportato il programma sorgente per realizzare una FB di gestione modbus ascii master in cui si vede bene la programmazione a stati, nel forum troverai moltissimi altri esempi simili.

    Aggiungo un riferimento a questo topic in cui si tratta della sincronizzazione tra tasks.

    in risposta a: Sicurezza per l’accesso ai sistemi SlimLine #37857
    Sergio Bertana
    Amministratore del forum

    Imoduli CPU ARM7 della famiglia SlimLinesupportano in totale 10 sockets TCP/IP (Topic), i servizi disponibili sono:

    Telnet su porta 23, vi si accede con autenticazione.
    FTP su porta 21, vi si accede con autenticazione.
    HTTP su porta 80, vi si accede con autenticazione.
    Modbus su porta 502 (Fino a 3 connessioni contemporanee)

    Sono gestiti 4 livelli di accesso Guest, User, Admin, Maintenance (Accesso riservato Elsist per taratura). In pratica tutta la sicurezza è gestita da Telnet, vi si accede con nome utente e password e si accede all’interprete comandi che permette di configurare le varie opzioni di security.

    Il comando UserConfig, permette di impostare nome utente e password per i 3 utenti disponibili (Maintenance è riservato).Il comando SysConfig, permette di abilitare/disabilitare i servers HTTP e Modbus.

    in risposta a: Funzionamento dell’orario in un panello MT8050i #37856
    Sergio Bertana
    Amministratore del forum

    Come puoi vedere dalle caratteristiche i pannelli MT6050i e MT8050i, sono gli unici della gamma Weintek a non avere il real time clock con il funzionamento in backup. La soluzione che  si adotta con questi pannelli è quella di utilizzare il real time clock dal PLC al quale il pannello è connesso (Topic). Di solito si consiglia di utilizzare sempre un unica sorgente di clock tra il PLC ed il terminale per avere sempre il valore di data/ora sincronizzato tra PLC e pannello.
     
    Se vuoi il real time clock con funzionamento in backup devi passare come minimo alla versione da 7″ (MT8070i), oppure passare alla nuova serie MT8000iE dove è disponibile su tutta la gamma. Per il momento però il modello da 4.3″ non è ancora disponibile.

    in risposta a: Visualizzazione grafica del livello acqua in un serbatoio #37855
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione CPUModuleIO era stato realizzato per i moduli CPU ARM7 versione A, con l’uscita della serie compact e con il firmware SFW184**00 si è deciso di mappare in memoria tutti gli I/O del modulo CPU sia sulla CPU compact che su quelle ARM7, in questo modo la FB CPUModuleIO è diventata obsoleta. Quindi per utilizzare gli I/O del modulo CPU devi indirizzarli come IX 255.x e QX 255.x.

    In merito al Modbus ti ricordo che non è possibile da Modbus accedere direttamente agli I/O, ma si può accedere soltanto alla memoria DB100, quindi se vuoi leggere da Modbus gli ingressi e/o gestire le uscite devi appoggiarle su variabili BOOL allocate nella DB100. Ti rimando q questi due topics per ulteriori informazioni Progetto di startup per connessione HMI a SlimLine, Accesso variabili word da terminale Weintek.

    in risposta a: Interfacciarsi con SlimLine da Visual Studio #37853
    Sergio Bertana
    Amministratore del forum

    Ti consiglio la lettura di questi due documenti che sono la bibbia del Modbus, Modicon Modbus Protocol Reference Guide, e MODBUS Messaging on TCP/IP Implementation Guide.

    Per quanto riguarda Toolly certo puoi usarlo per testare la comunicazione modbus sia in seriale che in TCP, ecco nel mio esempio ho ripreso quanto riportato nel manuale di programmazione SlimLine ed ho acquisito il valore dei 6 registri del RTC.

    Ho definito il frame di comando 00 00 00 00 00 06 01 03 00 63 00 06 nella finestra command, ho aperto la connessione con lo SlimLine sulla porta 502 ed inviando comandi consecutivi ecco nella finestra principale la ricezione dei frames di risposta del tipo 00 00 00 00 00 0F 01 03 0C 00 08 00 09 00 09 00 1A 00 0A 07 DD (Screenshot).

    in risposta a: Interfacciarsi con SlimLine da Visual Studio #37852
    Sergio Bertana
    Amministratore del forum

    Il protocollo Modbus gestisce l’accesso sia a variabili BOOL (Inputs e coils)  che WORD (Input e holding registers), il frame modbus può essere al massimo 256 bytes di lunghezza. Il supporto al Modbus è nativo nel firmware dello SlimLine quindi basta inviare da un server i frame di interrogazione ed il sistema risponde. I comandi gestiti sono:

    16#01 Read coil status (Massimo 250 coils)
    16#02 Read input status (Massimo 250 inputs)
    16#03 Read holding registers (Massimo 125 registri)
    16#04 Read input registers (Massimo 125 registri)
    16#06 Preset single register
    16#0F Force multiple coils (Massimo 250 coils)
    16#10 Preset multiple registers (Massimo 125 registri)

    Da notare che tutti i comandi operano sulla stessa area di memoria la DB 100, che come indirizzo Modbus viene ofsettata di 40000, per comprendere come sono allocate in memoria le variabili ecco un estratto del manuale. Se si accede a variabili BOOL una o più consecutive si deve indicare l’indirizzo quindi variabile BOOL %MX100.50 ha indirizzo Modbus 40050, mentre per le variabili WORD occorre dividere l’indirizzo per 2, %MW100.100 ha indirizzo Modbus 40050 (Questo topic può interessarti).

    Nota! Il protocollo Modbus prevede un offset di 1, se l’indirizzo è 40050 i gestori del protocollo (Credo anche la DLL) inviano nel frame l’indirizzo 40049 ed ecco perché SlimLine somma 1 all’indirizzo ricevuto.

    Riguardo al CRC, Modbus prevede un LRC nel Modbus Ascii, un CRC nel Modbus RTU, mentre nel Modbus TCP il controllo del frame è delegato al protocollo TCP. Molto utile nel debug della comunicazione TCP e Wireshark.

    in risposta a: Various questions about SlimLine and RNDIS #37850
    Sergio Bertana
    Amministratore del forum

    I have forgot to highlight in the previous post that the USB RNDIS driver works only on devices equipped with the firmware SFW184**00. All the compact CPUs and the CPU ARM7 release B are equipped with this firmware. The RNDIS doesn’t work on ARM7 CPU release A.

    All CPU modules can be programmed with LogicLab by using a serial connection, so you can programming them even if the RNDIS doesn’t work. It’s obvious that to operate with FTP and to access to the web server it’s necessary to have a TCP/IP connection, so it’s possible only if you use a CPU module with ethernet or if you install the RNDIS driver on USB connection.

    in risposta a: Various questions about SlimLine and RNDIS #37849
    Sergio Bertana
    Amministratore del forum

    The Force I/O bar it’s not managed it’s always disabled, the real I/Os can be forced by copying them to the watch bar. To force them, they must not be managed by the program. This suggestion is valid for all the variables, is not possible to force a variable that is managed by the program. You force it but the program set it’s value according to the logic, overwriting your forcing (View screenshot).

    The PLC run time status bar, is enabled on the devices starting from Device ID “Mps046_XTarget_10_0”. All the compact modules are of this type. You probably use a CPU ARM7 module version A, Device ID “Mps046_XTarget_8_0”, on these devices the bar is not enabled. Anyway this bar is not so useful, it allows only to stop and start the PLC running and display the tasks loop times. The tasks loop times is visible by inserting in the watch window the related variables, you can load them from the SystemVariables.wls watch list file. (View screenshot).

    It seems that you connect to a CPU ARM7 module by using Ethernet and try to access to it by FTP is it true ? By reading your report it seems that you are able to operate on the SlimLine files only in reading. The problem could be in the file name, it must be long up to 16 characters (Name plus extension).So filenames like MyFile.txt is ok, but ThisIsMyFile.report is not accepted. Another problem could be in the SDCard formatting, when you format the SDCard you define how many files can be stored on it, if you reach the number of defined files, no more files can be stored.

    About the RNDIS we have a lot of installations of it on a Windows 7 (32 and 64 bits) and no customer complain problems. I cannot understand why you report problem on it. Have your Windows system up to date ? Have you tried to change the USB cable ? Can you try to connect it on another PC ?

    in risposta a: Visualizzazione grafica del livello acqua in un serbatoio #37848
    Sergio Bertana
    Amministratore del forum

    Seguendo le tue richieste ho realizzato un semplice programma sullo SlimLine che gestisce una variabile UINT in base allo stato dei 3 ingressi digitali. Non capisco perché hai fissato solo 4 stati quando con 3 ingressi avresti potuto gestire 8 stati (Da 0 a 7). Gestire più stati sarebbe stato utile per avere il bar graph di visualizzazione molto più dettagliato. Il programma sullo SlimLine è questo.

      IF NOT(Di00M00) AND NOT(Di01M00) AND NOT(Di02M00) THEN TankStatus:=0; END_IF; (* 000:serbatoio vuoto *)
      IF Di00M00 AND NOT(Di01M00) AND NOT(Di02M00) THEN TankStatus:=1; END_IF; (* 001:livello di avaria *)
      IF Di00M00 AND Di01M00 AND NOT(Di02M00) THEN TankStatus:=2; END_IF; (* 011:livello minimo *)
      IF Di00M00 AND Di01M00 AND Di02M00 THEN TankStatus:=3; END_IF; (* 111:serbatoio pieno *)

    Mentre sul pannello operatore ho utilizzato un oggetto Word lamp, a cui ho abbinato 3 stati (0, 1, 2, 3) e per ogni stato ho definito una label di visualizzazione dello stato del serbatoio. Sopra alla word lamp ho messo anche un bar graph che visualizza il livello nel serbatoio.

    Naturalmente uso gli stessi stati della word lamp, ma se puoi ti consiglio di gestire dal programma SlimLine due variabili UINT, una da 0 a 3 per gli stati ed una da 0 a 7 per il livello. Dal sito della Weintek puoi scaricare tante immagini di serbatoio per dare un impatto grafico più bello alla tua applicazione (Screenshot). Ti allego il programma SlimLine ed il programma del pannello operatore (Download programmi).

    in risposta a: Interfacciarsi con SlimLine da Visual Studio #37847
    Sergio Bertana
    Amministratore del forum

    Se usi una DLL Modbus non dovresti avere problemi, Modbus è un protocollo standard, non capisco cosa intendi per file di configurazione. Quello che occorre sapere è la porta TCP a cui connetterti (Standard è la 502) e l’indirizzo di nodo Modbus (Di default è 1). Poi devi fare riferimento al Manuale programmazione IEC61131-3, al capitolo che riguarda i Protocolli di comunicazione.

    in risposta a: Notizie, informazioni, programmi protocollo Modbus #37846
    Sergio Bertana
    Amministratore del forum

    I nostri sistemi SlimLine e Netlog III hanno il protocollo Modbus slave nativo, su tutte le porte seriali  (RS232 o RS485) è disponibile di default il protocollo Modbus RTU sulla porta 502 della connessione TCP è disponibile il Modbus TCP. Da pagina web di configurazione (Screenshot) è possibile impostare il tipo di protocollo gestito.

    A questo punto se vuoi fare dei test puoi utilizzare Toolly ed inviare le stringhe di test come indicato nel post precedente. Come vedi l’indirizzo di nodo delle stringhe è 255 che è l’indirizzo di default e quindi il sistema risponde qualsiasi sia il suo indirizzo di nodo definito. La porta Ethernet dei sistemi è autosensing, per la connessione puoi utilizzare sia cavo diritto che cross-over.

    Come vedi dallo screenshot, è possibile selezionare il protocollo Over IP anche sulle porte seriali, questo permette di connettere alle porte un convertitore Ethernet-Seriale e accedervi da Ethernet.

    in risposta a: Virtual COM per ATC-2000 compatibilità con Windows 8 #37843
    Sergio Bertana
    Amministratore del forum

    Ho chiesto al nostro fornitore che mi conferma la compatibilità del VirtualCOM Tool 4.1 (Scaricabile dal nostro sito) con i sistemi Windows 8. Ho provato a fare una installazione su di un PC con Windows 8 Pro a 64 bits e come si vede dallo screenshot il programma funziona regolarmente. E come si vede dallo screenshot utilizza la  virtual serial port technology della Eltima che è uno dei più utilizzati software di virtualizzazione.

    Puoi verificare se la versione del programma da te installata è la stessa che ho utilizzato io ? Eventualmente esegui il download della versione 4.1 dal nostro sito.

    in risposta a: Monitoraggio da remoto del valore di temperatura #37841
    Sergio Bertana
    Amministratore del forum

    La soluzione al tuo problema può essere trovata in molti modi, vediamoli.
     
    HWg-Ares Sistema monitoraggio GSM/GPRS
    Sistema di monitoraggio con modem GSM/GPRS integrato in grado di acquisire dati da sensori 1-wire (temperatura, umidità, tensione, corrente, allagamento ecc.) e da ingressi digitali, e di renderli disponibili su portale web SensDesk utilizzando la rete GSM/GPRS.
     
    SlimLine e modem GSM/GPRS
    A differenza degli altri questo è un sistema programmabile PLC, tramite blocchi funzione può gestire ricezione/invio di SMS (Vedi post). Il sistema può anche connettersi ad un server ed inviare i dati via TCP/IP (Vedi post).
     
    HWg-STE Plus
    Termometro/igrometro Ethernet dotato di due ingressi digitali protocollo SNMP, interfaccia web ed accesso al portale web gratuito SensDesk di HWg. Per utilizzare questa soluzione occorre disporre di una connessione Internet locale (ADSL o Router).

    in risposta a: Interfaccia web su terminali touch screen Weintek #37840
    Sergio Bertana
    Amministratore del forum

    L’accesso da client al server VNC del pannello Weintek può avvenire utilizzando due diverse porte, i client VNC (Esempio UltraVNC) utilizzano la porta 5900, mentre il VNC da Java utilizza la porta 5800 (Topic).

    Quindi per accedere da IP pubblico con un client VNC devi eseguire un forwarding della porta pubblica xxxx sul IP del terminale porta 5900. Nel tuo programma dovrai definire l’IP pubblico e la porta xxxx, se hai un solo terminale a cui accedere consiglio di eseguire il forwarding della porta pubblica 5900 su IP privato pannello sempre porta 5900, in questo modo utilizzi la porta standard del VNC.

    Ma da come hai posto la domanda mi sembra tu voglia utilizzare l’accesso da browser (Quindi VNC Java), in questo caso le porte da ridirigere sono 2. La porta 80 del pannello su cui si appoggia il server web e la porta 5800 utilizzata dal client VNC Java. Quindi ad esempio la porta pubblica 8080 và ridiretta sul pannello porta 80, la porta pubblica 5800 và ridiretta sul pannello porta 5800. Ora da browser basterà digitare l’inidirizzo pubblico seguito dalla porta xxx.xxx.xxx.xxx:8080.

    Naturalmente è ovvio che il tuo gestore del servizio Internet deve fornirti un indirizzo IP che può anche essere dinamico (Si risolve con il DynDNS se il router lo supporta) ma deve essere sicuramente un IP pubblico. Alcuni gestori forniscono IP NATtati e quindi non raggiungibili da Internet. Per una verifica prova ad eseguire un ping sull’indirizzo IP pubblico. Altra verifica è che le porte pubbliche che tu utilizzi non siano bloccate dal gestore.

Stai visualizzando 15 post - dal 3,226 a 3,240 (di 4,374 totali)