Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (3) Ich möchte mit Pandas so etwas wie Excel machen

Motivation

-Siehe (1)

Umgebung

Ziel

――Die Automatisierungsmethode wird am Beispiel der Automatisierung des manuellen Betriebs in meiner Umgebung gezeigt.

Methode

Es gibt ein Paket namens pandas, das in Python verwendet werden kann und für Tabellenoperationen wie Excel geeignet ist. Wir werden ein Beispiel für die "grafische Darstellung des automatisch erfassten Spannungswerts" mit diesem und einem Paket namens matplotlib präsentieren, mit dem sich einfach und sauber ein Diagramm zeichnen lässt.

Beispiel

Angenommen, wenn ein Strom in einem weiten Bereich im Raum in eine Richtung fließt, wird der Strom mit einer Matte gemessen, die kleiner als der Raum ist. Wenn die Matte nach und nach senkrecht zum Strom gekreuzt wird und der Strom Schritt für Schritt aufgezeichnet wird, werden die "Bewegungssteuerung" und die "Strommessung" vom Pyserial aus gesteuert. Die Bewegung wird von Sigma Kouki SHOT102 gesteuert und der Strom wird mit der R6441-Serie von ADVANTEST gemessen. Ich werde. 2019-12-09_19.57.13.png

Cell1

import serial
import time
import pandas as pd
import matplotlib.pyplot as plt

serial verwendet pyserial, time erstellt die Intervallzeit für die serielle Kommunikation, pandas verwendet den Datenrahmen und matplotlib.pyplot wird zum Zeichnen von Diagrammen verwendet.

Cell2

##Konstante Spezifikation
MAX = 42000
COMpulse = "COM9"
COMampere = "COM10"
bitRate = 9600

Geben Sie die in "pyserial" verwendete Konstante an. Cell3

##Variable Initialisierung
pulse = 0
ampere_list = []
pulse_list = []
ampere_average_list =[]

Initialisieren Sie die zu verwendenden Variablen.

Cell4 (optional)

##Bewegung des hinteren Ursprungs(Initialisieren)
ser = serial.Serial(COMpulse, bitRate, timeout=0.1)
ser.write(b"H:2-\r\n")
time.sleep(0.1)
print(ser.read_all())
ser.close()

Gehen Sie zur Funktionsprüfung und zum Messursprung.

Cell5 "Puls" nimmt einen Wert von 0-42000 an und bewegt sich 3 μm pro Puls. (Eigentlich bewegt es sich 6 μm pro 2 Impulse, aber der Befehl scheint so geschrieben zu sein). Der aktuelle Wert an jeder Position wird fünfmal abgetastet und auf den Wert an diesem Punkt gemittelt. Die durchschnittliche Häufigkeit ist beliebig. Fügen Sie nach dem Verschieben der optischen Tabelle die Liste der aktuellen und Positionswerte als Datenrahmen hinzu, konvertieren Sie den Impulswert in die tatsächliche Länge und zeichnen Sie mit matplotlib. Es ist ein Fluss geworden. (Übrigens habe ich den Datenrahmen in csv gelöscht.)

##Starten Sie den Test
while 1:
    if pulse >= MAX:
        ##Beenden Sie die while-Anweisung, wenn die Position MAX erreicht
        break
    ##Aktuelle Standortinformationen aufzeichnen
    pulse_list.append(pulse/2) #Aus irgendeinem Grund wird der Impuls durch 2 angegeben und geordnet, sodass er durch 2 geteilt wird.
    ##Den Strom messen(Der Wert an dieser Position ist der Durchschnitt von 5 mal.)
    for i in range(5):
        ser = serial.Serial(COMampere,bitRate,timeout=0.1)
        time.sleep(0.5)
        ser.write(b"MD?\r\n")
        time.sleep(0.5)
        tmp = ser.read_all()
        ampere = float(tmp.split()[1])
        ampere_average_list.append(ampere)
        ser.close()
    ##Strom und Puls(Position)Auflisten
    ampere_list.append(sum(ampere_average_list)/len(ampere_average_list))
    ampere_average_list = [] #Liste initialisieren
    
    ##Bewegen Sie den optischen Tisch
    pulse += 1000
    position = "A:2+P"+str(pulse)+"\r\n" #Erstellen Sie einen Befehl, indem Sie Zeichenfolgen kombinieren
    ser = serial.Serial(COMpulse,bitRate,timeout=0.1)
    ser.write(bytes(position, 'UTF-8'))
    time.sleep(0.5)
    ser.write(b"G:\r\n")
    ser.close()
    

##Verwandeln Sie die Liste in einen Datenrahmen
print(ampere_list)
print(pulse_list)
df = pd.DataFrame({'ampere(A)':ampere_list,'pulse':pulse_list})
##Pulswert auf Länge ändern
def pulseToMilliMeter(pulse):
    return pulse*0.006
df["position(mm)"] = df["pulse"].map(pulseToMilliMeter) #Sie können beispielsweise Stapelfunktionen in Excel anwenden
df.to_csv('./csv/hoge/result.csv',index=False)
##Zeichnen Sie mit matplotlib ein Diagramm
plt.figure()
df.plot(x='position(mm)',y='ampere(A)')
plt.savefig('./img/sample.png')
plt.close('all')

abschließend

Angenommen, die Effizienz wurde verbessert. Alles, was Sie tun müssen, ist die Eingabetaste zu drücken, was viel einfacher und reproduzierbarer ist. Wenn es andere Quellen gibt, die effizienter gestaltet werden können, werde ich mehr schreiben.

Recommended Posts

Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (3) Ich möchte mit Pandas so etwas wie Excel machen
Ich möchte die Effizienz mit Python auch in experimentellen Systemen verbessern (2) RS232C und pySerial
Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (1) Installieren Sie Anaconda mit Chocolatey
Ich möchte die Effizienz mit Python auch im experimentellen System verbessern. (4) Verwenden Sie ser.close (), wenn ein Fehler mithilfe der try-Syntax ausgegeben wird.
Ich möchte so etwas wie Uniq in Python sortieren
Ich möchte die Effizienz mit Python auch im experimentellen System verbessern. (5) Ich möchte am Ende des Experiments eine Benachrichtigung mit der Slack-API senden
Ich wollte so etwas wie Elixirs Pipe in Python machen
Ich möchte am Ende etwas mit Python machen
Ich möchte ○○ mit Pandas machen
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Ich möchte Dunnetts Test in Python machen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte Strings in Kotlin wie Python manipulieren!
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
Ich möchte mit Python debuggen
Erweitern Sie ein in Python verschachteltes Wörterbuch, um etwas wie Pandas MultiIndex zu tun
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ich möchte Rails mit Rails auch in einer vagabundierenden Umgebung betreiben
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
[Maschinelles Lernen] Ich habe versucht, so etwas wie Bilder weiterzugeben
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich möchte mit aws mit Python spielen
Führen Sie so etwas wie Redis-Transaktionen in Python aus
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten
Ich möchte Affenpatches nur teilweise sicher mit Python machen
Ich möchte MATLAB feval mit Python verwenden
[Verbessern Sie die Arbeitseffizienz mit Python] Anforderung: Erstellen Sie alle Excel-PDFs in diesem Ordner.
Ich möchte mit Python ein Fenster erstellen
Ich möchte Google Mail mit Python senden, kann dies jedoch aufgrund eines Fehlers nicht
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte ein Spiel mit Python machen
[Python] Wie man Excel-Dateien mit Pandas liest
Ich möchte OREMO mit setParam sein!
Ich möchte verschachtelte Dicts in Python zusammenführen
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte so etwas wie AutoHotkey mit AutoKey unter Ubuntu (Kali Linux) erreichen.
Ich möchte mit Python in eine Datei schreiben
Senden Sie eine E-Mail mit Excel in Python
Ich möchte den Fortschritt in Python anzeigen!
[Python] Ich möchte mit Flask ein statisches Verzeichnis hinzufügen. [Ich möchte etwas anderes als statisch verwenden.]
Ich möchte eine Fehlermeldung auf Japanisch mit dem Django-Passwortänderungsformular ausgeben
Was tun, wenn Sie Python auf IntelliJ ausführen und mit einem Fehler beenden?
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte ein Bild mit Lollipop in WebP konvertieren
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte mit einem Knopf am Kolben übergehen
So führen Sie eine Hash-Berechnung mit Salt in Python durch
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte eine Datei mit Python zufällig testen
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich möchte in Python schreiben! (3) Verwenden Sie Mock