Εμφάνιση αποτελεσμάτων : 1 έως 8 από 8

Θέμα: FireFlow - Πρόγραμμα ελέγχου/καταγραφής θερμοκρασίας με PID

  1. #1
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή FireFlow - Πρόγραμμα ελέγχου/καταγραφής θερμοκρασίας με PID

    Το παρακάτω πρόγραμμα αποτελεί κομμάτι μιας μεγαλύτερης κατασκευής και μιας και το τελείωσα είπα να το ανεβάσω μαζί με ένα παράδειγμα στο arduino για να μου πείτε την γνώμη σας και αν υπάρξει κάποιο bug να το διορθώσω τώρα που έχω τον κώδικα φρέσκο στο μυαλό μου.
    Το πρόγραμμα είναι γραμμένο σε C# (τώρα αν τρέχει σε XP θα σας γελάσω, δεν έψαξα compatibility, σε 7άρια το έστησα και λογικά τρέχει και στα επόμενα)
    Τα αρχεία (πηγαίος και εκτελέσιμο) βρίσκονται εδώ https://github.com/FireFlowController/FireFlow-Oven

    Είναι με άδεια GPL που σημαίνει το παίρνετε όλο ή όποιο κομμάτι σας αρέσει και το κάνετε ότι θέλετε αρκεί να είναι ανοιχτού κώδικα το τελικό πρόγραμμα.
    Η σύνδεση με μικρο-ελεγκτή γίνεται μέσω εικονικής σειριακής (Com) και υπάρχει ένα απλό instruction set που μπορεί να τοποθετηθεί σε μικρο-ελεγκτή της αρεσκείας σας.

    Σαν πρόγραμμα παρέχει φιλικά ονόματα (USB-FTDIBUS κλπ) κατά την διασύνδεση όπως στο device manager (αυτός είναι και ο μόνος λόγος που θέλει δικαιώματα admin γιατί δεν ήθελα να παίζει με το registry και το κάνω με WMI


    Εμφανίζει διάγραμμα θερμοκρασίας (ταυτόχρονα τα αποθηκεύει σε Temp αρχείο έτσι ώστε να μην χάνεται τίποτα αν αλλάξει ο χρονικός ορίζοντας)
    Διάγραμμα εξόδου του PID
    Μπορεί ο χρήστης να αλλάξει τα κέρδη κατά την λειτουργία (+ επιλογή απενεργοποίησης Bumpless αλλαγής την οποία προσφέρει η βιβλιοθήκη PID)
    Χρονόμετρο βασισμένο στον υπολογιστή
    Και τέλος εξαγωγή είτε σε txt/csv ότι έχει λάβει είτε png/jpg/... ότι απεικονίζει το γράφημα.
    Προσπάθησα να το κάνω όσο ποιο πολύ user friendly μπορούσα, πιστεύω σε 2-3 λεπτά μπορεί να το δουλέψει κάποιος.
    Έβαλα και help και ένα μικρό manual.



    Ότι πρόβλημα βρείτε ή κάτι που δεν σας αρέσει γράψτε το παρακάτω να το κοιτάξω.
    Ευχαριστώ

    *Το παράδειγμα στο arduino πολύ πιθανό να έχει κάποια λαθάκια, στο πόδι το έγραψα, αν κάποιος θέλει να το δοκιμάσει και μπορεί να διορθώσει προβλήματα τύπου phantom interrupt κλπ θα μπει στις ευχαριστίες, περισσότερο το έγραψα για να δείξω την επεξεργασία εντολών και τις απαντήσεις. (Σύντομα θα υπάρξει μια αλλαγή και σε αυτά γιατί δεν μ' αρέσει που χρησιμοποιεί string σε κάποια στιγμή)

    6 Not allowed! Not allowed!

  2. Ένα μέλος ευχαρίστησε τον Fire Doger για αυτό το χρήσιμο μήνυμα:

    selectronic (02-08-17)

  3. #2
    Συντονιστής Το avatar του χρήστη nestoras
    Όνομα
    Παναγιώτης
    Εγγραφή
    Feb 2006
    Περιοχή
    Ξάνθη
    Μηνύματα
    4.614

    Προεπιλογή

    Received...

    0 Not allowed! Not allowed!
    FreeBsD For Ever

  4. #3
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από nestoras Εμφάνιση μηνυμάτων
    Received...
    Όπως νάνε το έγραψα? Που είναι?

    0 Not allowed! Not allowed!

  5. #4
    Συντονιστής Το avatar του χρήστη nestoras
    Όνομα
    Παναγιώτης
    Εγγραφή
    Feb 2006
    Περιοχή
    Ξάνθη
    Μηνύματα
    4.614

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fire Doger Εμφάνιση μηνυμάτων
    Όπως νάνε το έγραψα? Που είναι?
    Clear Recieved Data

    1 Not allowed! Not allowed!
    FreeBsD For Ever

  6. Ένα μέλος ευχαρίστησε τον nestoras για αυτό το χρήσιμο μήνυμα:

    Fire Doger (02-08-17)

  7. #5
    Μέλος
    Όνομα
    Μάρκος
    Εγγραφή
    Mar 2012
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.940

    Προεπιλογή

    Στέφανε αν θέλεις δώσε μια περιγραφή τι ακριβώς θα κάνει η κατασκευή σου.

    Παρατηρήσεις προς το παρόν κυρίως εικαστικές:

    1. Τα κουτάκια δεξιά καλό θα ήταν να είναι ίδιου πλάτους.
    2. Στο πρώτο κουτάκι σβήσε το temperature και γράψε την μονάδα oC όπως το έχεις παρακάτω.
    3. Αν η κατασκευή προσβλέπει σε διεθνή καριέρα πρέπει να προβλέψεις και μετατροπή σε Φαρενάιτ.
    4. Στο κουτάκι oven feedback εγώ δεν θα έβαζα την λέξη feedback. Η θα το άφηνα σκέτο Oven ή Oven status.
    5. Το time στο ίδιο κουτάκι θέλει λίγο παραπάνω εξήγηση. time remain, time elapsed ?
    6. Στο ίδιο κουτάκι στο status η λέξη oven είναι περιττή. (Είσαι στο κουτάκι oven άρα το status αναφέρεται στο oven)
    7. Στο time control μια καλύτερη περιγραφή π.χ. SET TIME και από κάτω η λέξη time είναι περιττή.
    8. Στο ίδιο κουτάκι ένα πλήκτρο [default] για γρήγορη επάνοδο σε κάποια default ρύθμιση.
    9. Στο κουτάκι graph control (αν μπορείς να προσθέσεις τη δυνατότητα) βάλε ένα κουτάκι checkbox [Auto] οπότε με αυτό το κουτάκι επιλεγμένο να αναπροσαρμόζει αυτόματα τις μέγιστες τιμές (με κάποιους κανόνες) σε κάθε ν refresh.
    10. Επίσης κουμπάκι auto στο χρόνο ώστε να μεταβάλετε σε κάθε ν refresh με δύο επιλογές είτε να "μαζεύει" το διάγραμμα αυξάνοντας διαρκώς την τιμή του χρόνου, είτε να "τσουλάει" αριστερά δείχνοντας ένα παράθυρο του χρόνου.
    11. Στο ίδιο κουτάκι από Clear Recieved Data μπορεί να γίνει απλώς Clear.

    1 Not allowed! Not allowed!
    Όταν όλα τα άλλα έχουν αποτύχει..... RTFM.
    Short instructions: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Good Luck!
    https://diyelectronics-gr.blogspot.gr https://www.facebook.com/groups/872041030200567

  8. #6
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Καλημέρα,
    Το πρόγραμμα προέκυψε από μια μεγαλύτερη κατασκευή, το είχα σαν demo για να λύνω 1-1 τα προβλήματα και για να μην πέσουν όλα τα bug μαζί και χαθώ και το συμμάζεψα μήπως φανεί χρήσιμο σε κάποιον.
    Ο τρόπος που σχεδιάζει από αριστερά προς τα δεξιά, η "βιβλιοθήκη" που επιτρέπει να στέλνεις/λαμβάνεις δεδομένα στην σειριακή από το PC και άλλα trick που περιέχει έχουν ενδιαφέρον.

    Ο βασικός κορμός του είναι να ελέγχει τα κέρδη ενός PID που τρέχει σε μΕ και να καταγράφει την έξοδο του ελεγκτή και το αποτέλεσμα της εξόδου.

    Επειδή το μεγάλο project έχει σχέση με θερμοκρασία κατέληξε και αυτό να έχει σχέση με θερμοκρασία για να κολλήσει. Παρ' όλα αυτά αν εσύ θέλεις να παρακολουθείς/ελέγχεις φωτεινότητα ή στροφές κινητήρα ή οτιδήποτε άλλο ακόμα και χωρίς PID μπορείς να το κάνεις. Δεν "τρέχει" κάποια διεργασία ελέγχου στο πρόγραμμα, απλώς προσφέρει μια διασύνδεση με τον ελεγκτή.
    Ανάλογα με το refresh rate στέλνει 2 εντολές και τις απαντήσεις τις βάζει στο γράφημα, όταν αλλάζει κατάσταση το checkbox στέλνει 1 εντολή (ανάλογα on-off) και μόλις πατήσεις το update Gains and Temp στέλνει 3 double και έναν int. Και το start-stop επίσης από 1 εντολή.
    Το χρονόμετρο είναι απλώς για την διαδικασία του φούρνου, όταν μηδενίσει στέλνει την εντολή stop.
    Οποιαδήποτε αλλαγή στα παραπάνω είναι πολύ εύκολο να γίνει αν κάποιος θέλει να το φέρει στα μέτρα του, το πολύ 5 γραμμές η κάθε μια να παίρνει.

    Σε ευχαριστώ για τις προτάσεις σου, και εμένα δεν μου άρεσε ιδιαίτερα το πως φαίνονται αλλά ήθελα να είναι όσο ποιο κατανοητά γίνεται. Θα προσπαθήσω να τα φέρω στο ίδιο μέγεθος.

    0 Not allowed! Not allowed!

  9. #7
    Μέλος
    Όνομα
    Μάρκος
    Εγγραφή
    Mar 2012
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.940

    Προεπιλογή

    Μετά την επεξήγηση ότι είναι βοηθητικό πρόγραμμα και όχι μέρος κατασκευής πιθανόν οι εικαστικές παρεμβάσεις περιττεύουν. (τσάμπα έγραφα )

    0 Not allowed! Not allowed!
    Όταν όλα τα άλλα έχουν αποτύχει..... RTFM.
    Short instructions: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Good Luck!
    https://diyelectronics-gr.blogspot.gr https://www.facebook.com/groups/872041030200567

  10. #8
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Είναι μέρος αλλά όχι το βασικό, απλώς προέκυψε.
    Εμφανισιακά μοιάζει αρκετά και με το βασικό, ήδη τα έκοψα/έραψα για να φέρω τα κουτάκια στο ίδιο μέγεθος και δείχνει καλύτερο. (βρήκα και διόρθωσα και ένα bug στα γραφικά)

    0 Not allowed! Not allowed!

Παρόμοια Θέματα

  1. Απαντήσεις: 7
    Τελευταίο Μήνυμα: 18-05-11, 13:31
  2. συνδεσμολογία PID ελέχου θερμοκρασίας
    By dmitspan in forum Ηλεκτρονικά
    Απαντήσεις: 7
    Τελευταίο Μήνυμα: 08-03-11, 23:15
  3. Απαντήσεις: 8
    Τελευταίο Μήνυμα: 25-06-10, 19:20
  4. Απαντήσεις: 14
    Τελευταίο Μήνυμα: 17-10-07, 11:42
  5. Πρόγραμμα καταγραφής video
    By Georges in forum Λογισμικά Σχεδίασης
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 23-11-05, 02:41

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας