Ciao! Sei pronto per un’avventura entusiasmante nel mondo dell’automazione industriale? In questo articolo, ti guiderò passo dopo passo nella rivoluzionaria connessione di un PLC Siemens S7-1500 a un programma JavaScript, sfruttando il potente protocollo OPC UA. Ma non finisce qui! Ti mostrerò anche come catturare e salvare dati essenziali, come BOOL, INT, REAL e ARRAY, direttamente in un file Excel. Segui con attenzione ogni fase, e in men che non si dica, avrai un’applicazione perfettamente funzionante per interagire con il tuo PLC Siemens S7-1500. Iniziamo!
In particolar modo vedremo:
Prerequisiti
Per seguire questo tutorial, è necessario avere familiarità con i concetti di base della programmazione JavaScript e PLC Siemens. Assicurati di avere installato Node.js sul tuo computer e di avere accesso a un PLC Siemens S7-1500 con un server OPC UA integrato.
Passaggio 1: Configurare il PLC Siemens S7-1500
Per prima cosa, è necessario configurare il server OPC UA sul PLC Siemens S7-1500. Per farlo, segui questi passaggi:
- Avvia TIA Portal e apri il tuo progetto.
- Nella finestra “Device view”, seleziona il tuo PLC e fai clic destro su “Properties”.
- Vai alla scheda “General” e attiva “OPC UA Server”.
- Nella scheda “Endpoint”, imposta un indirizzo IP appropriato e porta (es. 4840) per il server OPC UA.
- Salva le modifiche e carica il progetto sul tuo PLC.
Passaggio 2: Installare i pacchetti Node.js
Per collegare il nostro programma JavaScript al PLC tramite OPC UA, utilizzeremo la libreria “node-opcua”, mentre per salvare i dati su un file Excel impiegheremo “exceljs”. Per installare entrambi i pacchetti, apri il prompt dei comandi o il terminale e inserisci il seguente comando:
npm install node-opcua exceljs
Passaggio 3: Creare il file JavaScript
Ora creiamo un nuovo file JavaScript (ad esempio, plc-connection.js
) e importiamo le librerie appena installate:
const opcua = require("node-opcua");
const ExcelJS = require("exceljs");
Passaggio 4: Connettersi al PLC Siemens
Per connetterci al PLC, creiamo una funzione asincrona connectToPLC
:
async function connectToPLC() {
const endpointUrl = "opc.tcp://192.168.1.100:4840"; // Sostituisci con l'indirizzo IP del tuo PLC
const client = opcua.OPCUAClient.create({ endpoint_must_exist: false });
await client.connect(endpointUrl);
console.log("Connected to the PLC");
const session = await client.createSession();
console.log("Session created");
// Inserisci qui il codice per leggere e scrivere i dati
await session.close();
console.log("Session closed");
await client.disconnect();
console.log("Disconnected from the PLC");
}
connectToPLC();
Passaggio 5: Leggere e scrivere i dati PLC Siemens
All’interno della funzione connectToPLC
, possiamo ora leggere e scrivere i dati dal PLC:
// Leggere dati
const readData = async (nodeId) => {
const dataValue = await session.readVariableValue(nodeId);
return dataValue.value.value;
};
// Scrivere dati
const writeData = async (nodeId, dataType, value) => {
const writeValue = {
nodeId: nodeId,
attributeId: opcua.AttributeIds.Value,
value: {
value: { dataType: dataType, value: value },
},
};
const statusCodes = await session.write([writeValue]);
return statusCodes[0];
};
// Esempio di lettura e scrittura di dati
const main = async () => {
const boolValue = await readData("ns=1;s=MyBOOL");
const intValue = await readData("ns=1;s=MyINT");
const realValue = await readData("ns=1;s=MyREAL");
const arrayValue = await readData("ns=1;s=MyARRAY");
console.log("BOOL:", boolValue);
console.log("INT:", intValue);
console.log("REAL:", realValue);
console.log("ARRAY:", arrayValue);
const statusCode = await writeData("ns=1;s=MyINT", opcua.DataType.Int16, 42);
console.log("Write status:", statusCode.toString());
};
main();
Nota: Ricorda di sostituire i nodi ID (es. “ns=1;s=MyBOOL”) con i corrispondenti nodi ID del tuo PLC.
Passaggio 6: Salvare i dati su un file Excel
Per salvare i dati su un file Excel, creiamo una funzione saveToExcel
:
const saveToExcel = async (data) => {
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet("Dati PLC");
worksheet.columns = [
{ header: "Tipo", key: "type", width: 10 },
{ header: "Valore", key: "value", width: 20 },
];
for (const item of data) {
worksheet.addRow(item);
}
await workbook.xlsx.writeFile("DatiPLC.xlsx");
console.log("Dati salvati su DatiPLC.xlsx");
};
Infine, chiamiamo la funzione saveToExcel
nella funzione main
:
const main = async () => {
// ... (codice precedente)
const data = [
{ type: "BOOL", value: boolValue },
{ type: "INT", value: intValue },
{ type: "REAL", value: realValue },
];
for (let i = 0; i < arrayValue.length; i++) {
data.push({ type: `ARRAY[${i}]`, value: arrayValue[i] });
}
await saveToExcel(data);
};
main();
Ora il tuo programma JavaScript dovrebbe essere in grado di connettersi al PLC Siemens S7-1500, leggere e scrivere i dati e salvarli su un file Excel.
Conclusione
In questo articolo, ti ho mostrato come connettere un PLC Siemens S7-1500 a un programma JavaScript utilizzando il protocollo OPC UA e come salvare i dati su un file Excel. Ora dovresti essere in grado di utilizzare queste informazioni per creare applicazioni personalizzate per monitorare e controllare i tuoi sistemi di automazione basati su PLC.
Potresti anche estendere ulteriormente il tuo progetto integrando funzionalità aggiuntive, come la visualizzazione dei dati in tempo reale tramite un’interfaccia web o l’invio di notifiche in caso di anomalie. Inoltre, potresti esplorare altre librerie e strumenti per lavorare con diversi tipi di PLC e protocolli di comunicazione.
Buona fortuna con i tuoi progetti di automazione e non esitare a condividere i tuoi successi e le tue sfide con la comunità. Spero che queste informazioni ti siano state utili e ti auguro un’esperienza gratificante nel mondo dell’automazione industriale!
Se in questo preciso momento stai desiderando di mettere le mani per la prima volta su qualche PLC, allora…
Clicca Qui e Guarda questo Video Tutorial passo passo >>>
Desideri elevare le tue competenze tecniche e diventare un esperto nel campo dei PLC con la formazione Siemens?
Mi presento, sono il Dott. Strongoli Alessandro, e ti invito a scoprire il nostro percorso di formazione avanzato, ideale sia per tecnici individuali sia per team aziendali. Offriamo una formazione flessibile e completa, disponibile online per un apprendimento autonomo, da remoto per interazioni dirette o direttamente in loco nella tua azienda.
Sei un tecnico alla ricerca di crescita professionale o un’azienda che vuole potenziare le abilità del suo team?
La nostra formazione Siemens è la soluzione che fa per te. Clicca qui per accedere alla formazione online o richiedere interventi personalizzati presso la tua azienda. Cresci professionalmente con noi, inizia oggi il tuo percorso formativo Siemens.
Accedi Ora alla Piattaforma e Scopri le Nostre Offerte Formative >>>
—
Dott. Strongoli Alessandro
CEO IO PROGRAMMO srl