Jump to content

PCM arbeiten mit Listen


---
 Share

Recommended Posts

Hallo Kollegen.

Ich würde gerne mein Datenfeld Kostenstelle anhand der Maschinennummer setzen.

Also ich habe in einem Ordner 4 Dateien die heißen wie unsere Kostenstellen. in diesen Dateien stehen Maschinen die in dieser Kostenstelle vorhanden sind. 

 Aber ich bekomme es nicht zu prüfen ob etwas in einer Liste vorhanden ist. Also etwa so:

maschAktuell = getRecordHead("u_5_masch_nr")

dirAbteilungen = "x:\Wellenfertigung\00_Kostenstellen"

file20000 = dirAbteilung + "\" + "20000.txt"
file21000 = dirAbteilung + "\" + "21000.txt"
file22000 = dirAbteilung + "\" + "22000.txt"
file23000 = dirAbteilung + "\" + "23000.txt"

if maschAktuell in file20000 then
	setRecordHead("u_abt", "20000")
else
	if maschAktuell in file21000 then
		setRecordHead("u_abt", "21000")
	else
		if maschAktuell in file22000 then
			setRecordHead("u_abt", "22000")
		else
			if maschAktuell in file23000 then
				setRecordHead("u_abt", "23000")
			else
				setRecordHead("u_abt, "00000")
			endif
		endif
	endif
endif

Hat jemand eine Tip wie ich das machen könnte?

Wollte dies dann in die inspection_start_pcm.txt einfügen damit die Kostenstelle immer richtig ausgefüllt ist.

 

Vielen Dank für die Unterstützung

Link to comment
Share on other sites

Hallo Thomas,

in pcm gibt es kein if  ...  in ....

du musst die Datei erst händisch einlesen:

maschAktuell =getRecordHead("u_5_masch_nr")
dirAbteilungen = "x:\Wellenfertigung\00_Kostenstellen"
AbtList=list("20000", "21000", "22000","23000")

defineFunctionStart("maschMatch")
	list1=readListFile(file1)
	maschCheck=false
	for i=1 to list1.size
		if getParameterNamed(list1,i) == maschAktuell
			maschCheck=true
		endif
	next i
	// oder kurz und knapp
	//maschCheck=executeCode(list1.asArray + "  includes: '" + maschAktuell + "'")
defineFunctionEnd("maschCheck")


for i=1 to AbtList.size
	listFile=getParameterNamed(AbtList,i)
	file1=dirAbteilungen + "\file" + listFile + ".txt"
	if executeFunctionNamed("maschMatch") == true
		setRecordHead("u_abt", listFile)
	endif
next i

 

Edited
  • Thank you! 2
Link to comment
Share on other sites

Please sign in to view this username.

 Vielen Dank für die Hilfe

Die Schleife 

for i=1 to list1.size
		if getParameterNamed(list1,i) == maschAktuell
			maschCheck=true
		endif
	next i

hat zwar nicht funktioniert, aber die Kurzform mit executeCode funktioniert tadellos. Diese Funktion hab ich übrigens in der PCM-Doku nicht gefunden. Interessant dass es noch mehr gibt, als in der Doku gelistet ist.

Falls es jemanden interessiert, ich habe es jetzt inkl. Überprüfung ob die Kostenstellendateien vorhanden sind und kleinen Anpassungen so gestaltet:

 

// Pfad zu Kostenstellen-Dateien
dirAbteilungen = "x:\wellenfertigung\00_Kostenstellen"

// Auflistung Kostenstellen (Dateien mit .txt Endung müssen in Verzeichnis vorhanden sein)
AbtList=list("20000", "21000", "22000","23000")

// Abteilung defnieren falls eingegebene Maschine nicht in den Listen vorhanden ist.
setRecordHead("u_abt", "0000000")

// Bei CNC-Start auslesen der eingebenen Maschinennummer (über inspection_start_pcm.txt)
maschAktuell = getRecordHead("u_5_masch_nr")

// Definition der Funktion zum prüfen Kostenstelle anhand von Dateien
defineFunctionStart("maschMatch")
	list1=readListFile(file1)  // einlesen der Listendatei
	maschCheck=false       // laufvariable als false definieren
	maschCheck=executeCode(list1.asArray + "  includes: '" + maschAktuell + "'")
defineFunctionEnd("maschCheck")

// Variable für fileCheck
abort = false

// testen ob files vorhanden
for i_FileCheck=1 to AbtList.size
	listCheck=getParameterNamed(AbtList,i_FileCheck)
	fileCheck=dirAbteilungen + "\" + listCheck + ".txt"
	if fileExists(fileCheck) == false then
		abort = true
	endif
next i_FileCheck

// Wenn alle Files vorhanden gehts weiter
if abort == true then
	message("Mindestens eine Kostenstellen-Prüfdatei ist nicht vorhanden" +cr()+cr() + "Kostenstelle wird auf 000000 gesetzt")
else	
	// Schleife durch Abteilungslisten
	for i=1 to AbtList.size
		listFile=getParameterNamed(AbtList,i)
		file1=dirAbteilungen + "\" + listFile + ".txt"
		if executeFunctionNamed("maschMatch") == true
			setRecordHead("u_abt", listFile)
		endif
	next i
endif

 

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...