Агуулгын хүснэгт:

EAL - Industriel Internet - Фабрикшал: 7 алхам
EAL - Industriel Internet - Фабрикшал: 7 алхам

Видео: EAL - Industriel Internet - Фабрикшал: 7 алхам

Видео: EAL - Industriel Internet - Фабрикшал: 7 алхам
Видео: Erfindungen aus Fulda - der erste Kleinwagen | Pioniere in Fulda | erlebnis hessen | doku 2024, Долдугаар сарын
Anonim
EAL - Industriel Internet - Fabrikshal
EAL - Industriel Internet - Fabrikshal
EAL - Industriel Internet - Fabrikshal
EAL - Industriel Internet - Fabrikshal
EAL - Industriel Internet - Fabrikshal
EAL - Industriel Internet - Fabrikshal

Үйлдвэрлэлийг автоматжуулах систем нь үйлдвэрлэх 4.0 технологийг ашиглах боломжийг олгодог. Би маш их дуртай байсан, ер нь лавет, лилл симуляци. Би хөдөлгүүрийн хөдөлгүүрийг ажиллуулах боломжтой. Udevendig, sidder der en RFID kortlæser, skulle bruges til at lukke de хамааралтай ind i fabrikshallen. Alt өгөгдөл, мэдээллийн сан ба Wampserver.

Алхам 1: RFID Kortlæser

RFID холбогч
RFID холбогч
RFID дамжуулагч
RFID дамжуулагч

Энэ нь RFID -ийг ашиглах боломжийг олгодог. Hensigten er at ud fra fra de id numre der er på det kort, og den brik der er med er skrevet ind i vores Arduino kode. Дэлгэрэнгүй үзлэг, мэдээлэл, ойлголт, өгөгдөл, өгөгдлүүд, тоо баримтууд, өгөгдөл дамжуулах төхөөрөмжүүд байдаг.

Хариуцлага тооцохоос өөр аргагүй болно. Лисетийн тодорхойлолт, мэдээлэл, мэдээллийн эх сурвалж, мэдээллийн товчлуурууд.

Хөтөлбөрийг боловсруулж, олон нийтийн сүлжээг ашиглах боломжтой болно. Дэлгэрэнгүй мэдээллийг үзэхийн тулд Arduino Uno -ийг ашиглах боломжтой болно. Нэмэлт мэдээлэл, програмууд нь Arduinoens захиалгат, Windows Forms аппликейшн дээр дарж болно. Би чамайг харж байна.

Алхам 2: Сервомотор (Ангил)

Сервотор мотор (ачаалал)
Сервотор мотор (ачаалал)
Сервотор мотор (ачаалал)
Сервотор мотор (ачаалал)
Сервотор мотор (ачаалал)
Сервотор мотор (ачаалал)

Би үйлчилгээ үзүүлэгчийг ажиллуулж, Arduino Uno руу шилжүүлэв. Эндээс үзвэл, үйлдвэрлэгч нь тусгай бүтээгдэхүүн үйлдвэрлэдэг. Захиалга хийх, ашиглахад бэлэн бүтээгдэхүүн, MySQL мэдээллийн баазыг ашиглах боломжтой. Автомашины байршил тогтоох боломжтой. Hver байр суурь symboliserer treskskele produkter. Энд ямар ч бүтээгдэхүүн үйлдвэрлэхгүй, машинаа байрлуулахгүй, байрлалыг нь тохируулах боломжгүй болно. Det er meningen at man, WPF applikationen kan afgive nye ordrer til motoren -ээр дамжуулан. MySQL мэдээллийн баазыг ашиглах боломжтой.

Алхам 3: MySQL мэдээллийн сан - Indhold

MySQL мэдээллийн сан - Indhold
MySQL мэдээллийн сан - Indhold
MySQL мэдээллийн сан - Indhold
MySQL мэдээллийн сан - Indhold
MySQL мэдээллийн сан - Indhold
MySQL мэдээллийн сан - Indhold

Би MySQL өгөгдлийн сангийн таблерын мэдээллийн санд ажилладаг. Нэвтрүүлэгчийн эзэмшигч нь эрүүл мэндийн үйлчилгээ үзүүлдэг. Энд хамгийн их хүснэгтийг олж авах боломжтой. Den tredje, OG sidste tabel indenholder en oversigt over hvor mange produkter der er prodetter, OG hvor mange der mangler. Эдгээр бүтээгдэхүүнүүд нь үйлдвэрлэгчид, үйлдвэрлэгчид, үйлдвэрлэгчид байдаг. Энэ нь Windows Forms програмыг ашиглах боломжийг олгодог бөгөөд энэ нь өгөгдөл, мэдээллийн системийг ашиглах боломжийг олгодог. Мэдээлэл хүлээн авахаас татгалзаж, Arduinoen, efterfølgende, виллүүд холбогдох өгөгдлүүдийг бүртгэх, мэдээллийн санд оруулах. Өгөгдлийн сангийн өгөгдөл дамжуулахын тулд та мэдээлэл илгээж болно. En бүхэл тоо, String, SOM bliver kaldt en VarChar, би мэдээллийн сан. Цаашид TimeStamp, Мэдээлэл, өгөгдлийн сангийн өгөгдлийг хайж олох боломжтой.

Алхам 4: Arduino Kode

#оруулах

Servo myServo;

int servoPos; char produkt = '0'; void setup () {myServo.attach (3); // Цуваа харилцаа холбоо Serial.begin (9600) эхэлнэ; } void loop () {// Læsning fra цуваа порт produkt = Serial.read (); // Godkendelse af ingående ordrer switch (produkt) {// Бүтээгдэхүүн A (1) "1" тохиолдлын жишээ: myServo.write (50); саатал (1000); myServo.write (0); саатал (1000); Serial.println ("Дууссан"); завсарлага; // Бүтээгдэхүүн В (2) "2" тохиолдлын жишээ: myServo.write (100); саатал (1000); myServo.write (0); саатал (1000); Serial.println ("Дууссан"); завсарлага; // Бүтээгдэхүүн C (3) "3" тохиолдолд: myServo.write (150); саатал (1000); myServo.write (0); саатал (1000); Serial.println ("Дууссан"); завсарлага; }}

Алхам 5: Windows Forms Applikation

System. Collections. Generic ашиглан; System. ComponentModel ашиглах; System. Data ашиглах; System. Drawing ашиглах; System. Linq ашиглах; System. Text ашиглах; System. Threading. Tasks ашиглах; System. Windows. Forms ашиглах; System. Collections ашиглах; System. IO. Ports ашиглах; MySql ашиглах; MySql. Data. MySqlClient ашиглах;

нэрийн орон зай WindowsFormsApp2

{public partial class Form1: Form { /* I denne class bliver alle public variabler oprettet. Ангилал (MySqlConnection) -ийн ангилалд хамрагдах ёстой бөгөөд энэ нь MySQL сервер дээр ажиллахад зориулагдсан болно. Ydermere er der oprettet en String (connectionString) нь нууц үгийн нууц үг, нууц үгийн нууц үг, өгөгдлийн сангийн түүхийн тухай өгөгдлийг өгдөг. Бүхэл бүтэн тоо, i et 2d массив (orde). Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу хөрвүүлэх. Түүнийг нь тодорхой болгохын тулд холбоо бариарай. Ангилал (BackgroundWorker) дээр дарна уу. Хөтөлбөр нь хамгийн сайн програм хангамжийн програм хангамжийн програм хангамж юм. Би dette tilfælde er det brugbart, да дер кан blive oprettet nye ordrer, med korte mellemrum. */ MySqlConnection холболт; мөр холболт String;

хувийн байгууллага захиалагч;

private int [,] order = new int [100, 100]; private int SendOrder = new int [100]; хувийн мөр prodType;

SerialPort sp = шинэ SerialPort ();

хувийн BackgroundWorker myWorker = шинэ BackgroundWorker ();

нийтийн маягт1 ()

{InitializeComponent (); // Түүний bliver нь String (connectionString) тодорхойлолтыг ашигладаг. connectionString = "server = 192.168.1.100; userid = root; pwd = langeland; database = arduino;"; /* Түүний "myWorker" нь олон янзын хувилбаруудыг боловсруулж өгдөг. */ myWorker. DoWork += шинэ DoWorkEventHandler (myWorker_DoWork); myWorker. WorkerReportsProgress = үнэн; myWorker. WorkerSupportsCancellation = үнэн; // Түүний бливер сэлвэгэн багтрундсгеннемлёбэт дутуу байна. myWorker. RunWorkerAsync (); // Түүний тодорхойлолт нь тодорхой форматтай байдаг. Түүний формат нь MySQL мэдээллийн санд хамгийн тохиромжтой байдаг. dateTimePicker1. CustomFormat = "yyyy-MM-dd"; dateTimePicker1. Format = DateTimePickerFormat. Custom; }

хувийн хоосон орон зай Afiv_Ordre_Click (объект илгээгч, EventArgs e)

{ /* Энэ нь Google -ийн янз бүрийн хувилбаруудыг өөрчилсөн бөгөөд энэ нь хүчин төгөлдөр бус байна. Бүхэл бүтэн тоо томъёо нь тодорхой өгөгдөл юм. Хэзээ нэгэн цагт маш сайн тайлбарлаж өгвөл, энэ програмыг ашиглах боломжтой болно. Хязгаарлагдмал цагийг энд дарна уу. */ int produktA = 1; int produktB = 2; int produktC = 3; int prodA = int. Parse (prodAOrder. Text); int prodB = int. Parse (prodBOrder. Text); int prodC = int. Parse (prodCOrder. Text); int orderLength = prodA + prodB + prodC; /* Би давталт хийхээс татгалздаг, үйлдвэрлэгч, үйлдвэрлэгч, ажилтнууд, би хамгийн шилдэг нь. */ for (int prod1A = 0; prod1A <prodA; prod1A ++) {order [ordrenummer, prod1A] = produktA; }

for (int prod1B = (prodA); prod1B <(prodB+prodA); prod1B ++) {order [ordrenummer, prod1B] = produktB; }

for (int prod1C = (prodA + prodB); prod1C 99)

{ordrenummer = 0; } // Түүний өгөгдлийн сангийн хамгийн шилдэг нь. DBQuery ("INSERT INTO` bestilteprod` ("Produkt A`,` Produkt B`, `Produkt C`) VALUES (" + prodA + "," + prodB + "," + prodC + ")"); // Түүний overføres en oversigt гаруй hvilke produkter der mangler at blive productionert, өгөгдлийн сан. DBQuery ("UPDATE` total` SET` manglende produkter` = (`manglende produkter` +(" +(prodA +prodB +prodC) +")) WHERE 1"); }

// Би хүчин төгөлдөр бус хүчин төгөлдөр бус байна.

private void myWorker_DoWork (объектыг илгээгч, EventArgs e) {while (үнэн) { /* Тэмцээний дараалал нь 0 -ээс хэтрэхгүй байх болно. */ Байдал (); while (SendOrder. Sum ()! = 0) { /* Би давталтын фунжерыг хайж олохын тулд, бүхэл бүтэн цагийн турш бүхэл бүтэн (i) эх сурвалжийг дуусгах ёстой. Variablen (i) kigger på den pågældende rkkke i arrayet, nuværende tidspunkt arbejdes i. Ден киггер би колоннен, сер хвилкет тал дер стор и колоннен. Tallet bliver eksikveret, OG inden at variablen rykker videre til næste kolonne, bliver den pågældende kolonne sat til 0. Мэдээллийн өгөгдлийн бүрдүүлэлт хийх боломжтой. Хэрэв та Arduinoen -ийг ашиглахыг хүсэхгүй байгаа бол энэ нь Arduinoen -ээс илүү их захиалга өгөх болно. */ for (int i = 0; i <SendOrder. Length; i ++) {Статус (); sp. BaudRate = 9600; sp. PortName = "COM4"; Нээлттэй (); sp. Write (SendOrder . ToString ()); // Programmet der er i en af disse if statement, vil blive eksikveret, afhængig af hvilket tal fra et til tre der er i variablen (i). if (SendOrder == 1) {prodType = "Бүтээгдэхүүн А"; } if if (SendOrder == 2) {prodType = "Produkt B"; } if if (SendOrder == 3) {prodType = "Produkt C"; }

SendOrder = 0;

// Хязгааргүй тохиолдолд бид өгөгдөл дамжуулах 0, өгөгдөл дамжуулах, өгөгдөл дамжуулах, мэдээлэл солилцох, компьютер ашиглах гэх мэт олон тооны мэдээллийг өгдөг. if (SendOrder. Sum () == 0) {DBQuery ("INSERT INTO` udforte` ("Бүтээгдэхүүний төрөл`) VALUES ('" + prodType + "')"));

DBQuery ("UPDATE` total` SET` продюсер "= (" продюсер үйлдвэрлэгч " + 1)," manglende produkter` = ("сайн бүтээгдэхүүн үйлдвэрлэгч" - 1) ");

sp. Close ();

завсарлага; } /* Түүний санаа зовж буй зүйл бол Ардуиноэн фэрдиг мед ордрен юм. Дэв kvitteres med et "хийсэн". Мэдээлэл өгөгдөл дамжуулахаас өмнө мэдээллийн бүлгэмийн мэдээллийн сүлжээг байршуулахын тулд та мэдээллийн баазыг нээсэн бөгөөд энэ нь өгөгдлийн сангаас олж авсан өгөгдлүүдээс илүү чухал юм. */ sp. ReadTo ("Дууссан");

DBQuery ("INSERT INTO` udforte` ("Бүтээгдэхүүний төрөл`) VALUES ('" + prodType + "')");

DBQuery ("UPDATE` total` SET` продюсер produkter` = ("үйлдвэрлэгч produkter` + 1)," manglende produkter` = ("мангленд бүтээгч` - 1)"));

sp. Close (); Статус (); }} // Би давталт хийх ёстой гэж бодож байна. for (int i = 0; i <order. GetLength (0); i ++) {int test = захиалга [i, 0]; if (test! = 0) {for (int j = 0; j <100; j ++) {SendOrder [j] = order [i, j];

захиалга [i, j] = 0;

}

завсарлага; }}

}

} /* "Статус" гэсэн нэр томъёог хүчингүй болгосон. Дэлгэрэнгүй үзэхийн тулд skulle undgå at skrive de samme linjer kode flere steder. Би "статус" -ыг зааж өгсөн бөгөөд энэ нь хүчин төгөлдөр бус байх болно. * / хувийн хүчин төгөлдөр бус байдал () { /* Энэ нь MySQL -ийг ашиглахаас өөр аргагүй зүйл юм. */ MySqlConnection con = шинэ MySqlConnection (connectionString); нээлттэй Нээлттэй (); string str = "нийтээс * сонгох"; MySqlCommand com = шинэ MySqlCommand (str, con); MySqlDataReader уншигч = com. ExecuteReader (); // Denne funktion er med for at dele Baggrundskoden på en tråd i CPU'en, og en anden tråd til resten af koden. уншигч. Read (); MissingProd. Invoke ((MethodInvoker) -н төлөөлөгч {// Түүний боловсруулсан бүтээгдэхүүнүүд, програм хангамжууд, програмууд. MissingProd. Text = "manglende produkter:" + (уншигч ["manglende produkter"]. ToString ()); OrdereProd. Text = "produkter lavet:" + (уншигч ["продюсер үйлдвэрлэгч"]. ToString ());}); // Түүний хэрэгжүүлж буй програмууд нь маш сайн ажилладаг. ProcenteDone. Invoke ((MethodInvoker) төлөөлөгч {// Hvis lsseren i My SQL нь "үйлдвэрлэгчийн бүтээгдэхүүн үйлдвэрлэх хоёр дахь хувилбар", "хэрэв мэдэгдэл дутуу байгаа бол" дээр дарна уу. Hvis det er lig med 0, bliver der udskrevet "0%" skrevet til шошго. if (int. Parse (уншигч ["продюсер үйлдвэрлэгч"]. ToString ())! = 0) {// Түүний тэмдэглэгээ үйлдвэрлэгч, үйлдвэрлэгч, үйлдвэрлэгч, мэргэжилтэн, мэргэжилтэн. Resultatet af dette ganger man med зуун, for at ProcenteDone. Text = Math. Round ((float. Parse (уншигч ["продюсер үйлдвэрлэгч"]. ToString ()) /(float. Parse(reader["produceret produkter "]. ToString ()) + float. Parse (уншигч ["manglende produkter"]. ToString ()))) * 100). ToString (););} өөр {ProcenteDone. Text = "0%";}}); // Түүний MySQL -ийг уншихыг хориглоно. өгөгдөл, цаг хугацааны хувьд санал болгож байна. хувийн хоосон Vis_Produkter_Click_1 (объект илгээгч, EventArgs e) {string date = dateTimePicker1. Value. ToString (). Устгах (10);

огноо = dateTimePicker1. Text;

string query = "SELECT` Produkt type`, `Tid` FROM udforte WHERE Tid> = '" + date + "00:00:00' AND Tid <= '" + date + "23:59:59'"; ашиглан (холболт = шинэ MySqlConnection (connectionString)) ашиглан (MySqlCommand тушаал = шинэ MySqlCommand (асуулга, холболт)) ашиглан (MySqlDataAdapter адаптер = шинэ MySqlDataAdapter (тушаал)) {DataTable prodTable = шинэ DataTable (); адаптер Дүүргэх (prodTable);

dataGridView1. DataSource = prodTable;

}

} // Би MySQL -ийг хүчингүй болгохын тулд хүчингүй болгосон. Мөөгөнцөр нь тодорхой бус цаг хугацаа, бүрэн бус байдал, тасалдал зэрэг болно. хувийн хоосон DBQuery (string cmd) {string query = cmd; ашиглан (connection = new MySqlConnection (connectionString))) ашиглан (MySqlCommand command = new MySqlCommand (query, connection)) {connection. Open ();

command. ExecuteScalar ();

холбох. Close ();

} } } }

Алхам 6: Материалын жагсаалт

1 стк Ардуино Уно

1 стк Бичил servo SG90 9g

Алхам 7: Fobindelsesdiagram / I / O Lliste

Fobindelsesdiagram / I / O Lliste
Fobindelsesdiagram / I / O Lliste

Хөдөлгүүр:

+ = Род

- = Эрэмбэлэх

Дохио = Грён

Зөвлөмж болгож буй: