-Siehe (1)
Conda install
pySerial in (2)――Die Automatisierungsmethode wird am Beispiel der Automatisierung des manuellen Betriebs in meiner Umgebung gezeigt.
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.
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.
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.
##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')
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