Мазмұны:
- 1 -қадам: RFID Kortlæser
- 2 -қадам: сервомотор (жүктеме)
- 3 -қадам: MySQL дерекқоры - Indhold
- 4 -қадам: Arduino Kode
- 5 -қадам: Windows Forms қосымшасы
- 6 -қадам: Материалдық тізім
- 7 -қадам: Fobindelsesdiagram / I / O Lliste
Бейне: EAL - Industriel Internet - Фабрикшал: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Өнеркәсіптің 4.0 жүйесінде автоматтандырылған жүйені іске қосу әлі де мүмкін емес. Мен сенемін, бұл дерлік фабрикалдың симуляциясы. Мен сервомоторды басқарамын, сонымен қатар параллель. Қауіпсіздік, RFID деректері бойынша, скульптуралық бумалар жұмыс істей бастайды. Wampserver қосымша деректері, деректер базасы.
1 -қадам: RFID Kortlæser
Қосымша RFID қосылымын қосады. Қарапайым деректерді табуға болады, бұл сіздің жеке ақпаратыңызға сәйкес келеді. Тіркелгеннен кейін сіз өзіңіздің жеке ақпаратыңызды таба алмайсыз, сонымен қатар сіздің жеке мәліметтеріңіз де жоқ.
Тапсырыс берушілердің сұранысын қанағаттандыра алмайтын боласыз. Тіркелгеннен кейін, ең бастысы, ең бастысы, біртіндеп басу керек.
Қарап шығыңыз, бұл жобаның бір бөлігі. Ардуино Uno бағдарламасын іске қосқанда, сіз портты орната аласыз. Ақпараттық құралдар Windows жүйесінде Forms қолданбасы арқылы орнатылады. Мен бір нәрсені түсінемін.
2 -қадам: сервомотор (жүктеме)
Мен сервистік қозғалтқышты, сонымен қатар Arduino Uno -ды басқарамын. Түсіндірмелер мен ұсыныстар, өндірушілердің ақылды өндірушілері. Орналастыру, сонымен қатар MySQL мәліметтер базасын жаңартуға мүмкіндік береді. Автокөлікті анықтауға арналған позициялау қызметі. Hver позициясы символисті өндіруші үшін. Өндірістік қызмет көрсетілмегенде, жұмыс орнында жұмыс істемейді, жұмыс орнын ауыстыруға болады. Деректер ерлерге арналған, WPF қосымшасы арқылы бұл мүмкін емес. MySQL мәліметтер базасын жаңартудан бас тартуға болады.
3 -қадам: MySQL дерекқоры - Indhold
Мен MySQL деректер қорын табуға болады. Ұстағышты ұстаушы - бұл ең жақсы құрал. Тіркелу үшін барлық ақпаратты табыңыз. Ақпараттық ресурстар табылғаннан кейін табысты сатып алушыларды сатып алуға мүмкіндік береді. Өндіруші мен өндіруші жаңа өнімдерді шығарады. Windows Forms бағдарламасының деректері мен деректерді жоюға арналған нұсқалары. Тапсырыстарды жіберуге рұқсат етілмегендіктен, дерекқорға кіруге болады, сонымен қатар деректерді сақтауға болады. Деректер қоры деректерді сақтауға мүмкіндік береді. Integer, String, VarChar және мәліметтер базасы бойынша есептік жазбалар. Уақыт белгісі және уақыт белгісі, деректерді өшіруге мүмкіндік береді.
4 -қадам: Arduino Kode
#қосу
Сервис myServo;
int servoPos; char produkt = '0'; void setup () {myServo.attach (3); // Сериялық байланыс Serial.begin басталады (9600); } void loop () {// Læsning fra сериялық порты produkt = Serial.read (); // Тапсырысты ауыстыру (өнімді шығару) {// Өнім A (1) «1» жағдайында: myServo.write (50); кешіктіру (1000); myServo.write (0); кешіктіру (1000); Serial.println («Орындалды»); үзіліс; // Өнім B (2) «2» регистрінің жағдайы: myServo.write (100); кешіктіру (1000); myServo.write (0); кешіктіру (1000); Serial.println («Орындалды»); үзіліс; // Produkt C (3) «3» регистрінің жағдайы: myServo.write (150); кешіктіру (1000); myServo.write (0); кешіктіру (1000); Serial.println («Орындалды»); үзіліс; }}
5 -қадам: Windows Forms қосымшасы
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 аттар кеңістігі
{жалпыға ортақ сынып Form1: Пішін { /* I class class bliver allle public variabler oprettet. Бұл MySQL -серверге кіруге мүмкіндік беретін сыныптардағы (MySqlConnection) анықтамалық есептерді шығаруға мүмкіндік береді. String (ConnectionString) құпия сөзді анықтаған кезде құпия сөзді және дерекқорды сақтауға болады. Бүкіл сан бойынша, мен және 2d массив (orde). Өнімдерді сатып алуды аяқтаған кезде, олар өнімді шығарады. Ақпараттық коммуникациялар оны анықтауға мүмкіндік береді. Class (BackgroundWorker) бағдарламасы бойынша жұмыс жасаңыз. Бағдарламаның ең жақсы бағдарламасы бағдарламалық қамтамасыз етуді жоюға мүмкіндік береді. Мен дрю -брюгбартты анықтаймын, сонымен қатар сіз де біле аласыз. */ MySqlConnection қосылымы; жолды қосуString;
жеке тапсырыс;
private int [,] order = new int [100, 100]; жеке int SendOrder = new int [100]; жеке жол prodType;
SerialPort sp = жаңа SerialPort ();
жеке BackgroundWorker myWorker = жаңа BackgroundWorker ();
қоғамдық форма1 ()
{InitializeComponent (); // Оның бливері String (connectionString) анықтамасын қолданады. connectionString = «server = 192.168.1.100; userid = root; pwd = langeland; database = arduino;»; /* Оның «myWorker» әр түрлі нұсқалармен жұмыс істей алатын уақытты өзгертті. */ myWorker. DoWork += жаңа DoWorkEventHandler (myWorker_DoWork); myWorker. WorkerReportsProgress = ақиқат; myWorker. WorkerSupportsCancellation = true; // Оның қатерлі ісігі. myWorker. RunWorkerAsync (); // Оның анықтамалық формуласы анықталған форматта. Ол MySQL мәліметтер базасының ең жақсы форматы болып табылады. dateTimePicker1. CustomFormat = «yyyy-MM-dd»; dateTimePicker1. Format = DateTimePickerFormat. Custom; }
жеке бос орын Afiv_Ordre_Click (объект жіберуші, EventArgs e)
{ /* Ол жаңартылмаған, бірақ ол жарамсыз. Толық сандар анықталуы мүмкін, себебі бұл барлық оқиғалар. Тапсырыс берушілердің сұранысына сәйкес, сіз бұл бағдарламаны орындауға болады. Орналастыру ережелері бойынша. */ 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; }
үшін (int prod1C = (prodA + prodB); prod1C 99)
{ordrenummer = 0; } // Деректер базасы бойынша оның артықшылықтары бар. DBQuery («INSERT INTO` bestilteprod` »(` Produkt A`, `Produkt B`,` Produkt C`) VALUES (« + prodA +», « + prodB +», « + prodC +») «); // Оның артықшылықтары өндірушілердің мәліметтері бойынша, олар базалық ақпарат базасында. DBQuery («UPDATE` total` SET `manglende produkter` = (` manglende produkter` +(» +(prodA +prodB +prodC) +«)) WHERE 1 »); }
// Мен жарамсыз деп есептеймін, бұл жерде барлық мәселелер шешіледі.
myWorker_DoWork (объект жіберуші, EventArgs e) жеке жарамсыздығы {while (true) { /* Қосымша ақпарат 0 -ге тең болса, олар бір уақытта қосылады. */ Күйі (); while (SendOrder. Sum ()! = 0) { /* Мен анықтаған кезде цифрлар анықталады, бұл олардың толық мәнін анықтауға мүмкіндік береді. Өзгертулер (i) біркелкі емес, әр түрлі жағдайда болады. Денсаулық сақтау және қызмет көрсету бойынша кеңестер. Таллет жоқ, егер ол үлкен болса, онда олар 0 -ге дейін жұмыс істей алады. Егер сіз байланыс орнатпайтын болсаңыз, онда бұл сіздің хабарламаңызды қабылдамайды. */ for (int i = 0; i <SendOrder. Length; i ++) {Status (); sp. BaudRate = 9600; sp. PortName = «COM4»; sp. Open (); sp. Write (SendOrder . ToString ()); // Бағдарламалық жасақтама егер мәлімдемелер, анықтамалар мен басқа да мәліметтер болса, оларды өзгертуге болады. if (SendOrder == 1) {prodType = «Produkt A»; } else if (SendOrder == 2) {prodType = «Produkt B»; } if if (SendOrder == 3) {prodType = «Produkt C»; }
SendOrder = 0;
// Ақпараттық ресурстардың толық берілмеуі немесе жойылуы мүмкін емес, деректердің жүктелуі де, сақталуы да, деректердің жүктелуі де, байланыстыру үшін де. if (SendOrder. Sum () == 0) {DBQuery («INFERT INTO` udforte` (»Produkt type`) VALUES ('« + prodType + »')«));
DBQuery («UPDATE` total` SET `продюсері =» өндірушісінің өндірушісі` = (`продюсердің өндірушісі ' + 1),` мангленді өндіруші` = (`мангленді өндіруші` - 1)«);
sp. Close ();
үзіліс; } /* Оның пікірі: Дәрі -дәрмектер «жасалды». Деректер қоржынына деректерді жүктеудің соңғы нұсқасы жоқ, олар сіздің дерекқорларыңызда, сонымен қатар дерекқорларыңызда да бар. */ sp. ReadTo («Орындалды»);
DBQuery («INSERT INTO` udforte` (» Produkt type`) VALUES ('« + prodType +»') «);
DBQuery («UPDATE` total` SET `продюсері =» өндіруші « + 1),» мангленді өндіруші` = («керемет өнім» - 1) «);
sp. Close (); Күй (); }} // Мен анықтаманы толық жоғалтудан бас тартуды шешемін, бірақ олар бір -бірімен байланыс орнатпағаннан кейін (біз оларды 0 -ден жоғары деңгейге жеткіземіз). for (int i = 0; i <order. GetLength (0); i ++) {int test = order [i, 0]; if (test! = 0) {for (int j = 0; j <100; j ++) {SendOrder [j] = order [i, j];
тапсырыс [i, j] = 0;
}
үзіліс; }}
}
} /* «Мәртебе» жарамсыз. Толығырақ ақпарат алу үшін, ең бастысы, бас тарту керек. Мен «Мәртебе» туралы ақпаратты анықтай аламын, бірақ мен оның жарамсыздығын, сондай -ақ, бұл мәселенің шешілмейтінін білемін. * / private void Status () { /* Ол MySQL -ді өшіруге мүмкіндік береді, ол үшін қорғаныс кестесі толық емес болады, сонымен қатар олар толық емес. */ MySqlConnection con = жаңа MySqlConnection (connectionString); con. Open (); string str = «жиынтығынан * таңдау»; MySqlCommand com = жаңа MySqlCommand (str, con); MySqlDataReader оқу құралы = com. ExecuteReader (); // Денсаулық сақтау орталық процессоры CPU процессінде, сондай -ақ сіздің компьютеріңізде де бар. reader. Read (); MissingProd. Invoke ((MethodInvoker) делегаты {// Оның өнегелі өндірушілері, өндірушілер мен оқырмандар, бағдарламалар. MissingProd. Text = «әмбебап өндіруші:» + (оқырман [«мангленді өндіруші»]. ToString ()); OrdereProd. Text = «produkter lavet:» + (оқырман [«продюсерлік өнім»]. ToString ());}); // Оның іске асырудағы негізгі міндеттері - бұл. ProcenteDone. Invoke ((MethodInvoker) делегаты {// Hvis lsseren and my SQL for the following for the server for «» produkter produkter of the one of the one of the product, «if 0», «a» немесе «a» сілтемесі. этикетка. if (int. Parse (оқырман [«продюсері»]. ToString ())! = 0) {// Өнім өндіруші және өндіруші, сонымен қатар, жақсы нәтиже береді. ProcenteDone. Text = Math. Round ((float. Parse (оқырман [«продюсер»]. ToString ()) /(float. Parse(reader["produceret produkter «]. ToString ()) + жүзу);} басқа {ProcenteDone. Text = «0%»;}}); // MySQL -тың оқырмандарға жүктелуі. Read. Close (); con. Close ();} // Мен өндірушілердің барлық күшін жойдым деректерді анықтау, уақытты жоғалту ұнады. жеке жарамсыздық Vis_Produkter_Click_1 (объект жіберуші, EventArgs e) {string date = dateTimePicker1. Value. ToString (). Жою (10);
date = 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 = new DataTable (); адаптер. Толтыру (prodTable);
dataGridView1. DataSource = prodTable;
}
} // Мен MySQL -дің жарамсыз екенін білемін. Саңырауқұлақтар бір күнде, бірде -бір рет, бірде -бір рет оқуға болмайды. private void DBQuery (string cmd) {жол сұранысы = cmd; (байланыс = жаңа MySqlConnection (connectionString)) пайдалану арқылы (MySqlCommand пәрмені = жаңа MySqlCommand (сұрау, байланыс)) {connection. Open ();
command. ExecuteScalar ();
қосылу. Close ();
} } } }
6 -қадам: Материалдық тізім
1 стк. Ардуино Уно
1 стк. SG90 9g микросерво
7 -қадам: Fobindelsesdiagram / I / O Lliste
Сервомотор:
+ = Род
- = Сұрыптау
Сигнал = Грон
Ұсынылған:
EAL - Industry 4.0 Rc Car -да GPS деректерін жинау: 4 қадам
EAL - Industry 4.0 Rc Car -да GPS деректерін жинау: Бұл нұсқаулықта біз RC автокөлігіне GPS модулін қалай орнататынымыз және жиналған деректерді оңай бақылау үшін веб -бетке қалай орналастырғанымыз туралы айтатын боламыз. Біз алдын ала RC автокөлігін қалай жасағаны туралы нұсқаулық жасадық, оны мына жерден табуға болады. Бұл мынаны қолданады
EAL - Ендірілген - Комбинациялық құлып: 4 қадам
EAL- Ендірілген- аралас құлып: Бұл жоба мен мектеп бағдарламасында 2.1 СБЖ бағдарламалау пәнін таңдауға мүмкіндік берді. Бұл мен Arduino мен C-бағдарламалау жобасын жасаған кезде бірінші рет. Бұл біріктірілген құлыпты ұсынатын жоба. Біріктірілген құлып
EAL- Ішкі климат: 5 қадам
EAL- Кіріктірілген жабық климат: Біздің мектеп жобасы үшін бізге ардуиноны автоматтандырылған жүйеге біріктіру міндеті қойылды. Біз үй ішіндегі температураны, ылғалдылықты және децибел деңгейін анықтай алатын ішкі климат сенсорын жасауды таңдадық. Біз шкафта бірнеше тесік бұрғыладық
EAL - SmartStorage: 3 қадам
EAL - SmartStorage: Бұл Каспер Боргер Тулиниустың SmartStorage жобасы
EAL - Өнеркәсіптік 4.0 жылу мен ылғалдылық: 9 қадам
EAL - Өнеркәсіптік 4.0 Жылу мен Ылғалдылық: Мен жобалауды реттеуге арналған құралдарды қолданамын, олар мен деректерді өшіруге болады. Бұл 4 бағдарламалық жасақтаманың бағдарламалық жасақтамасы