Esistono PLC disponibili in commercio in grado di compilare / scaricare programmi tramite un'API?


9

Il mio team ha deciso di utilizzare un PLC per controllare un processo industriale che richiede un IO semplice e in tempo reale su dispositivi esterni con elaborazione minima. Tuttavia, ci aspettiamo che le uscite esatte necessarie variano tra le serie (in effetti, una determinata serie verrà raramente ripetuta) e l'operatore non avrà alcuna esperienza di programmazione PLC / software.

Anche se non posso rivelare il prodotto reale, la migliore analogia sarebbe che stiamo progettando un frullatore industriale, con PLC che controlla precisamente l'apertura e la chiusura di diverse valvole in tempo reale. L'operatore utilizzerà il nostro software per progettare una sequenza personalizzata di aggiunte di reagenti diversi e l'accensione / spegnimento di macchinari pesanti pertinenti (ad es. Un miscelatore industriale).

Ecco la sfida: il nostro approccio attuale è quello di scrivere il nostro compilatore che traduca le istruzioni fornite dall'operatore (aprire la valvola A per 10 ms, aprire la valvola B per 20 ms) in logica ladder e codice macchina PLC. Scaricheremo quindi direttamente il nostro programma autocompilato sul PLC tramite seriale. Tutto ciò dovrebbe essere automatizzato in modo tale che l'operatore debba fare clic su un pulsante solo dopo aver elaborato la sequenza di passaggi.

Tuttavia, nonostante la mia ricerca, non ho trovato un singolo fornitore di PLC che entrambi 1) abbia un compilatore con API o pubblichi abbastanza informazioni sul loro codice macchina PLC per consentire di scrivere un compilatore, 2) supporta il download diretto di programmi sul PLC senza l'uso del software di programmazione del fornitore (programmatore CX, Atmel studio, ecc.).

Sono portato a credere che potremmo avere un approccio sbagliato, o almeno non sapere quale prodotto cercare. L'I / O è abbastanza semplice da non giustificare la costruzione della nostra scheda, ma la funzionalità che stiamo cercando, vale a dire l'interazione del PLC con un software per PC di alto livello, non sembra essere disponibile.

Idealmente, vorremmo scaricare l'intero programma sul PLC contemporaneamente e non inviare istruzioni una alla volta. L'esecuzione di tutte le istruzioni sul PLC (o qualunque dispositivo utilizziamo) deve essere in tempo reale.

Esistono PLC disponibili in commercio che supportano la compilazione e il download di codice macchina, in modo tale che l'intero processo possa essere automatizzato da un programma più ampio? Esiste un altro modo per scaricare un programma in tempo reale su un PLC scritto da software PC scritto in un linguaggio di alto livello?


Che ne dite di usare un sistema operativo e consentire all'utente di modificare il codice del programma tramite una GUI personalizzata e compilarlo, ad esempio con GCC e quindi scaricare il programma compilato sul "PLC".
Eggi,

Potresti suggerire materiali o tutorial che introducono la programmazione e i principi di RTOS? Conosco molto bene lo sviluppo integrato non RT e la logica ladder tradizionale, quindi mentre sono molto interessato a questa soluzione, non sono sicuro da dove cominciare.
Dragonsheep,

@ Che cos'è un'API? Se si tratta di "interfaccia del programma applicativo", come si compila / si scarica attraverso di esso?
Dmitry Grigoryev,

1
@Dragonsheep Meglio ignorare questa idea. Ci sono troppi aspetti che non sono a prova di industria come affermato da Henry Cun. 1 °: come si modifica il codice prima della compilazione? Metterlo da qualche parte in chiaro? 2 °: supporto per decenni con il sistema operativo
Eggi,

Risposte:


11

Per questo puoi sicuramente usare un PLC. Tranne, non si desidera modificare il codice PLC per ogni "ricetta per frullati".
Dovresti scrivere un'applicazione PLC che legge ricette da qualsiasi fonte, come schede SD, memoria di rete, memoria interna o persino codici QR se ti senti di fantasia.

Spesso i PLC hanno già una funzione per questo , in cui una ricetta è un insieme di parametri che è possibile caricare (e modificare con l'HMI).

IO in tempo reale su dispositivi esterni con elaborazione minima

Qualunque cosa tu scelga di usare, non inventare il tuo PLC . Probabilmente non vale la pena. E non pensare che il software o il modulo aggiuntivo siano costosi, non puoi scriverlo a quel prezzo.


5

Presumo che questo sia un compito abbastanza semplice per un PLC minimo, piuttosto che qualcosa che utilizza PLC industriali avanzati

Presumo anche che ciò sia utile a livello industriale, vale a dire che la ricetta dovrebbe essere in grado di essere cambiata in 10 anni dal cliente. Inoltre, la sua utilità dovrebbe sopravvivere alla chiusura dell'attività o al passaggio a nuovi prodotti.

Molti sistemi richiedono alcuni software speciali da scaricare e / o compilare, come dici tu. A lungo termine, i tuoi clienti scopriranno che Windows 11,12,13 non eseguirà più il software. Per evitare ciò, si desidera che il programma sia semplicemente ascii, inviato su una porta seriale di qualche tipo. Questo è andato avanti per circa 50 anni e non mostra alcun segno di scomparsa.

Forth è in grado di essere "compilato" sull'obiettivo, quindi il cliente deve solo inviargli ASCII da un terminale. Non sarà mai obsoleto.

Parte dell'etica Forth è che scrivi primitive specifiche di dominio ("AddBanana", "Blend", "Pour") che i tuoi clienti trattano come un linguaggio specifico per il prodotto. Mentre Forth è considerato arcano dalle persone dei computer, è concettualmente molto facile da usare per gli utenti finali: sarebbe un programma valido.

10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle

Ad esempio, è possibile utilizzare un piccolo PLC basato su Arduino e caricare FlashForth Esistono molte altre opzioni, ad esempio MPEForth e un PLC basato su ARM -cortex

Il tuo software ora è un editor qualsiasi e alcuni programmi per l'invio seriale. Ci sono strumenti standard per questo, e molto dopo che te ne sei andato, il cliente può farlo funzionare da zero, in quanto è così semplice.

Un fallimento con la tua intera idea, è che il cliente sta programmando il prodotto e, naturalmente, può riempirlo facendo la cosa sbagliata, qualunque approccio tu abbia.

Poiché si tratta solo di file ASCII, è abbastanza facile creare una shell sofisticata per il cliente, ma il prodotto funzionerà ancora senza di essa.


Grazie per la risposta! Qualcosa come il Controllino che hai suggerito è esattamente quello che stiamo cercando! Un PLC minimalista in cui abbiamo il controllo diretto sul software e possiamo scaricare programmi via seriale. Quando dici che abbiamo "molte altre scelte", quali sarebbero i termini di ricerca pertinenti / quali altri prodotti suggerisci? Il mio team conosce molto bene l'industria pesante, quindi abbiamo finito le idee dopo aver sfogliato i soliti cataloghi Siemens / Mitsubishi / Omron e non aver trovato quello che stavamo cercando.
Dragonsheep,

@Dragonsheep: ti consigliamo di attendere un giorno o due prima di accettare una risposta. Questo incoraggia gli altri a scrivere e otterrai più risposte e diversi punti di vista.
Transistor

Se questo è un approccio interessante per te e sei una persona che paga soldi per strumenti, competenze e supporto, allora potresti voler parlare con Stephen Pelc a MPEForth. Fa questo genere di cose commercialmente. D'altra parte, se sei un esperto di software per birra libera, cerca i moduli basati su arduino o i plc e FlashForth.
Henry Crun,

1
Concordo anche con le risposte di @Transistor e Jeroen: se ciò di cui hai bisogno è un PLC industriale, allora sono ciò di cui hai bisogno. (e i moduli casuali di Arduino plc non sono abbastanza robusti da essere controller di fabbrica, più un controller all'interno di una scatola benigna). Tenderei a non essere d'accordo con le soluzioni di tipo "ottenere qualcosa con un sistema operativo e utilizzare GCC" come probabilmente portando al peggio di tutti i mondi possibili.
Henry Crun,

Questa è davvero un'applicazione industriale che speriamo di vendere a un cliente. Speriamo di avere l'affidabilità di oltre 20 anni che i grandi produttori industriali (Mitsubishi, ecc.) Hanno dimostrato con i loro prodotti, quindi c'è qualche preoccupazione nell'andare a uno di questi nuovi fornitori di hardware open source. Allo stesso tempo, il software saggio e open source sembra darci il controllo che stiamo cercando. Stephen sembra essere una brava persona a cui rivolgersi. Grazie per il vantaggio.
Dragonsheep,

2

Non scherzare con Arduino, ecc., Per un'applicazione industriale. I PLC sono progettati pensando a affidabilità, robustezza, standard e supporto a lungo termine. La società per cui lavoro gestisce almeno un PLC Texas Instruments dal 1987 e molti altri dall'inizio degli anni '90. I ricambi sono ancora disponibili da fonti industriali su eBay, ecc.

Utilizzare un PLC e un pannello operatore industriale con potenza sufficiente per fare ciò che è necessario. Di recente ho completato un lavoro di miscelazione in cui desideravamo la flessibilità delle ricette con passaggi automatici e manuali. La sequenza viene controllata passando attraverso un array programmato tramite l'HMI.

  • Numero del passo. ad es. '5'.
  • Descrizione. ad es. "Pesatura automatica della banana", "Caricamento manuale delle ciliegie", "Raschiare giù".
  • Velocità di miscelazione (RPM). ad es. "25".
  • Tempo (i) di miscelazione. ad es. '120'.
  • Raschiare giù alla fine del passaggio? (S / N) ad es. "S".
  • Calore richiesto? (S / N) ad es. 'N'.
  • Temperatura (° C). ad es. '0'.

Abbiamo progettato il sistema con una serie di venti passaggi che è sufficiente per il prossimo futuro ma che potrebbe essere facilmente ampliato, se necessario. Tutte le impostazioni hanno valori min e max impostati nell'applicazione HMI.

Questo lascia il sistema molto flessibile e modificabile. Abbiamo un sistema robusto con un PLC e un HMI familiari e supportabili da una qualsiasi delle moltissime aziende.


Grazie per la risposta. La particolare applicazione che abbiamo è per la biochimica automatizzata, quindi con centinaia di reagenti e potenzialmente centinaia di passaggi coinvolti nel processo che stiamo automatizzando, sono attualmente convinto che qualsiasi tipo di programmazione del pannello operatore sarebbe irrimediabilmente complicato.
Dragonsheep,

1

Non hai specificato un budget per lo sviluppo di hardware e software o per il costo unitario dell'hardware distribuito, ma se puoi permetterlo il tuo requisito potrebbe sicuramente essere soddisfatto utilizzando l' hardware CompactRIO di National Instruments e il software LabVIEW Real-Time .

Il controller CompactRIO è un controller integrato robusto, affidabile, ad alte prestazioni, di livello industriale con certificazioni standard del settore.

È disponibile una gamma di moduli I / O che si collegano allo chassis del controller o se il design è fisso e si desidera ridurre il costo unitario, controller e I / O sono disponibili come schede singole per l'integrazione con il proprio hardware . Scriveresti software in LabVIEW Real-Time per eseguirlo sul controller ed eseguire il controllo del processo, e questo potrebbe anche servire un'interfaccia utente basata sul web per modificare le fasi del processo o comunicare con un programma UI, scritto in LabVIEW o in un'altra lingua , in esecuzione su un PC host. Ho un'esperienza limitata con i PLC ma penso sia giusto affermare che questa soluzione sarebbe un ordine di grandezza più potente e flessibile, sebbene probabilmente a costi più elevati.

Si noti che sebbene il controller cRIO sia dotato di un FPGA integrato, non è necessario acquistare il modulo LabGA FPGA a meno che non sia effettivamente necessario scrivere il codice FPGA; sembra che il Real-Time dovrebbe andare bene per le tue esigenze.


0

Il mio suggerimento è dare un'occhiata a LabVIEW. Penso che soddisferebbe le esigenze elencate nel tuo post. Evita di scrivere il tuo compilatore. Questo è molto più lavoro di quello che devi fare. Sono molti PLC commerciali adatti al conto. Penso che NI sia uno dei più facili con cui lavorare. Per quanto riguarda il download dei programmi utente, è necessario creare un'applicazione per farlo.

http://www.ni.com/en-us/shop/labview.html

NI ha una vasta gamma di moduli tra cui AtoD, uscite digitali, uscite analogiche, interfaccia CAN, ecc. Il software è molto utile per creare interfacce utente dall'aspetto gradevole. Il rovescio della medaglia è che non è economico. Se è anche molto diverso dalla programmazione testuale. Un po 'di addestramento sarebbe richiesto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.