Accesso variabili progetto da Visual Basic
Home › Forum › Controllori SlimLine e Netsyst (LogicLab) › Accesso variabili progetto da Visual Basic
- Questo topic ha 8 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 11 mesi fa da
Sergio Bertana.
-
AutorePost
-
Marzo 31, 2014 alle 9:55 am #35550
Anonimo
InattivoSalve a tutti, avrei bisogno di un aiuto, vorrei sapere se è possibile esportare il valore delle variabili di un progetto ladder per poterle riutilizzare nella costruzione di un’interfaccia in Visual Basic.
Inoltre vorrei sapere se c’è un modo per poter programmare i PLC tramite programmazione ad oggetti. Grazie per la vostra disponibilità.
Marzo 31, 2014 alle 9:58 am #38180Sergio Bertana
Amministratore del forumTutte le variabili globali mappate nella DB 100 sono accessibili da Modbus, SlimLine gestisce nativamente il protocollo Modbus Ascii, RTU ed OverIP. Le variabili della DB 100 sono accessibili con indirizzo Modbus 40000, quindi basterà che tu allochi le variabili che vuoi gestire dal tuo applicativo in Visual Basic nella DB 100 per poterle gestire tramite Modbus (Vedi topic, topic, topic), effettuando una ricerca nel forum troverai molte altre informazioni sul protocollo Modbus.
Tutto quanto detto prima naturalmente impone che tu sviluppi od utilizzi un driver di comunicazione Modbus, ma se non vuoi fare questo puoi trovare altri topics che spiegano come realizzare un semplice protocollo di comunicazione proprietario. In questo caso scegli tu che protocollo di comunicazione utilizzare per fare dialogare il PC con lo SlimLine e quali variabili scambiare (Vedi topic, topic,
topic)Marzo 31, 2014 alle 10:37 am #38181Sergio Bertana
Amministratore del forumLo standard attuale prevede la definizione di oggetti quali funzioni e FB (Function block) che possono essere manipolati graficamente utilizzando la programmazione ladder o FBD.
Se per programmazione ad oggetti intendi anche la possibilità di definire classi, utilizzarne l’ereditarietà, il polimorfismo, ecc, è una via che lo standard IEC 61131 stà implementando nella sua terza edizione.
Aprile 11, 2014 alle 9:22 am #38192Anonimo
InattivoSalve a tutti, ho realizzato una interfaccia in Visual Basic per comunicare tramite TCP/IP con la CPU SlimLine. L’applicazione in Visual Basicsvolge la funzione di client e la CPU fa da server, riesco a stabile la connessione tra i due dispositivi ma ho il problema che non riesco a capire come fare ad inviare dei comandi alla CPU.
Qualcuno di voi potrrebbe dirmi come fare, grazie per la vostra disponibilità.
Aprile 11, 2014 alle 9:48 am #38193Sergio Bertana
Amministratore del forumDici che apri la connessione TCP/IP ma verso che porta ? immagino tu desideri utilizzare il Modbus TCP quindi credo utilizzi la porta 502. Se è così ti ho già spiegato nei post precedenti come poter fare, ti rimando comunque alla lettura della Modbus Protocol Reference Guide e della Modbus messaging on TCP/IP implementation guide.
Per aiutarti posso ancora riproporti delle semplici stringhe modbus per leggere e scrivere un registro a 16 bits nella memoria dello SlimLine. Ipotizzando di dover accedere ad una variabile allocata nella DB 100.16 (Indirizzo modbus 40008). Ricorda che l’indirizzo Modbus ha offset 1 pertanto nel comando devi inviare indirizzo -1 (40007 -> 0x9C47) per meglio capire ti allego l’estratto del manuale.
Per leggere il valore devi usare il comando modbus Code 03: Read holding registers, che in esadecimale è 00 00 00 00 00 06 01 03 9C 47 00 01.
Per scrivere 0x1234 devi usare il comando modbus Code 10: Preset multiple registers, che in esadecimale è 00 00 00 00 00 09 01 10 9C 47 00 01 02 12 34.
Per scrivere 0x5678 devi usare il comando modbus Code 10: Preset multiple registers, che in esadecimale è 00 00 00 00 00 09 01 10 9C 47 00 01 02 56 78.
Ecco lo screenshot dell’invio dei comandi verso uno SlimLine effettuato con Toolly. Come vedi in rosso sono evidenziate le stringhe di risposta ai comandi di scrittura (Preset) ed in blu quelle di risposta ai comandi di lettura (Read). Attenzione alla configurazione di Toolly nel Config devi definire modalità HEX.
Aprile 14, 2014 alle 12:10 pm #38200Anonimo
InattivoCiao scusa se continuo a scrivere, io sono uno studente di ingegneria che ha deciso di fare la tesi sui PLC, facendo delle ricerche in rete ho trovato il vostro simulatore e insieme al professore abbiamo deciso di utilizzarlo, l’obietto che ho è quello di costruire un client in Visual Basic in cui inviare i comandi al PLC simulato in Logiclab, seguendo i tuoi post ho cercato di costruire un protocollo di comunicazione TCP tra PC e PLC (la comunicazione avviene in localhost).
Purtroppo non riesco ad inviare i comandi al PLC, come alternativa potrei salvare i valore delle variabili del mio progetto ladder in un file, il problema e che non riesco a far nemmeno ciò nonostante abbia scaricato tutti manuali necessari. Grazie per le eventuali risposte.
Aprile 14, 2014 alle 4:33 pm #38203Sergio Bertana
Amministratore del forumOra è tutto molto più chiaro, il problema è che il simulatore non gestisce ne le comunicazioni (Seriale e TCP) né gestisce i files, ecco perché non riesci a fare quello che desideri. Per poter dialogare in Modbus ti serve proprio il target hardware (Un sistema SlimLine o Netlog).
Andando più approfonditamente nell’argomento ti posso dire che SimuLab (Cioè l’ambiente di simulazione) dà disponibili aperture di comunicazione via TCP/IP su localhost ma non con il protocollo Modbus. Queste informazioni le puoi avere direttamente dalla ditta che realizza LogicLab e SimuLab che è la ditta Axel. Ti mando un email al tuo indirizzo privato in cui ti allego tutti i riferimenti.
Aprile 29, 2014 alle 6:22 pm #38233Anonimo
InattivoSalve avrei bisogno di una informazione usando l’ambiente di lavoro LogicLab è possibile programmare in SFC senza passare tramite conversione in ladder.
Maggio 5, 2014 alle 7:11 am #38234Sergio Bertana
Amministratore del forumNon capisco la tua domanda, il linguaggio SFC è un linguaggio grafico, si compone di Azioni e Transizioni. Ad ogni Azione o Transizione puoi abbinare l’esecuzione di un programma che può a sua volta essere scritto negli altri 4 linguaggi della normativa IEC61131.
In questi topics (1), (2), (
3) trovi ulteriori informazioni. -
AutorePost
- Devi essere connesso per rispondere a questo topic.