Python?/Symbole LI4278/generowanie list kody kreskowe

0

Witam,

Opis problemu:
Pracuję przy programowaniu obrabiarek CNC(obecnie - jeśli ktoś chciałbym zerknąć - Felder Profit H22). W firmie mamy system naklejek na płytach, gdzie znajduje się nazwa programu, który trzeba odczytać i wrzucić na maszynę. Obróbka przebiega bardzo sprawnie jednak proces wrzucania programów jest uciążliwy, ponieważ trzeba przerzucać płyty przepisać programy(ręcznie) i wrzucić w listę na obrabiarkę.

Rozwiązanie:
Znalazłem skaner kodów kreskowych: Symbole LI4278. Oprogramowanie od producenta(obrabiarki) umożliwia tworzenie list z programami, chciałbym aby po wczytaniu kodów przez czytnik tworzyły się listy programów, które można wrzucić na obrabiarkę.

Problemy:
Skaner działa, jednak po podłączeniu przez USB funkcjonuje jak emulacja klawiatury - wrzuca kody w plik tekstowy, który został właśnie otworzony. Znalazłem podobny problem tutaj. Skaner musi pracować w tle, jednak dochodzi jeszcze problem generowania plików. Poniżej zamieściłem kod pliku listy,
który wrzucam na obrabiarkę, 11111front_test1111.TCN program, który został wrzucony. Skaner musi uzupełniać nazwy programów, chciałbym aby zapis odbywał się przez podwójne zeskanowanie ostatniego kodu z listy. Dodatkowo chciałbym, aby automatycznie zmieniała się baza w programie, ale to zrealizuje analogicznie do tego.

Zapytanie:
Czy coś takiego jestem w stanie zrealizować w Pytonie? Ktoś miał podobny problem lub zajmował się skanerami kodów kreskowych? A może będzie mi to lepiej zrealizować w innym języku?
Z góry dziękuję za pomoc i sugestie.

<?xml version="1.0" encoding="utf-8"?>
<List>
  <Rows Name="123.xmlst" Repetitions="1" TL="0" TH="0" TS="0" Criterion="">
    <Row Index="1" FileName="C:\WDFlash\Product\drilling_test_1\11111front_test1111.TCN">
      <Cell Name="DRAW" DataType="281">1</Cell>
      <Cell Name="ESEC" DataType="165">1</Cell>
      <Cell Name="NAME" DataType="161">C:\WDFlash\Product\drilling_test_1\11111front_test11111.TCN**</Cell>
      <Cell Name="REPETITIONS" DataType="164">1</Cell>
      <Cell Name="FIELD" DataType="171">102</Cell>
      <Cell Name="ROTATION" DataType="286">1</Cell>
      <Cell Name="MIRROR" DataType="284">0</Cell>
      <Cell Name="HOOKOPTI" DataType="600">0</Cell>
      <Cell Name="LENGTH" DataType="168">786</Cell>
      <Cell Name="HEIGHT" DataType="169">462</Cell>
      <Cell Name="THICKNESS" DataType="170">22</Cell>
      <Cell Name="COMMENT" DataType="162">R33B0015</Cell>
      <Cell Name="HOOK" DataType="282">0</Cell>
      <Cell Name="TIME" DataType="223">00:00:00</Cell>
      <Cell Name="OFFSET X" DataType="277">0</Cell>
      <Cell Name="OFFSET Y" DataType="278">0</Cell>
      <Cell Name="OFFSET Z" DataType="79">0</Cell>
    </Row>
  </Rows>
  <Bench Row="0">
    <Rail Index="1" Encumbrance="174.9" Width="115" Position="28.4" Pods="0" />
    <Rail Index="2" Encumbrance="173.6" Width="115" Position="203.3" Pods="0" />
    <Rail Index="3" Encumbrance="174" Width="115" Position="376.9" Pods="0" />
    <Rail Index="4" Encumbrance="173" Width="115" Position="2570.3" Pods="0" />
    <Rail Index="5" Encumbrance="173.5" Width="115" Position="2743.3" Pods="0" />
    <Rail Index="6" Encumbrance="145" Width="115" Position="2916.8" Pods="0" />
  </Bench>
</List>

Pozdrawiam,
Jacek

1

Co do skanowania kodów krasowych to z reguły masz dwie opcje: po USB emulowany jak keybord. W drugiej opcji możesz zrobić wirtualny por RS232 i obsługiwać kody kreskowe, które się pojawiają na tym porcie. Ustawienie tego, jak działa czytników kodów: czy USB czy wirtualny RS masz z reguły przez przestawienie skanera w odpowiedni tryb (przestawienie skanera odbywa się przez zeskanowanie odpowiedniego kodu z instrukcji). Często masz możliwość ustawienie np znaku końcowego, jaki wyśle skaner (np Enter). Jeśli chodzi o samą koncepcję, to się do końca łapie, o co chodzi. Może przez mój brak znajomości obrabiarek CNC i możliwości ich programowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1