اسمحوا لي أن أقدم نفسي - مشروع FLProg



طاب مسائك.

اسمي سيرجي غلوشينكو ، وأنا مؤلف مشروع FLProg . هذه المدونة مخصصة لهذا المشروع ، وهنا سوف أتحدث عن أخبار المشروع ، وإنجازات أعضاء مجتمع مستخدمي البرنامج. هذا المشروع مخصص لخلق بيئة برمجة بصرية لألواح Arduino ، وبالتالي قبل الحديث عن برنامج FLProg ، أود أن أقدم لمحة عامة قصيرة عن البرامج الحالية المصممة لبرمجة هذه اللوحات.

يمكن تقسيم بيئات البرمجة الخاصة بألواح Arduino إلى الأنواع التالية:
  1. دفاتر الضخ
  2. بيئات تطوير النص
  3. البيئات الرسومية تصور هيكل المدونة.
  4. البيئات الرسومية التي تعرض التعليمات البرمجية في شكل رسومات.
  5. بيئات البرمجة المرئية التي لا تستخدم التعليمات البرمجية.


فكر في كل نوع.

ضخ "دفاتر الملاحظات"

هذا النوع يشمل بيئة البرمجة الأصلية Arduino-IDE ، فضلا عن العديد من استنساخها.



يتم تصميم برنامج وحدة التحكم في لغة المعالجة / الأسلاك ، وهي لهجة للغة C (بدلاً من C ++). هذه البيئة ، في الواقع ، محرر نص عادي مع القدرة على تحميل التعليمات البرمجية المكتوبة إلى وحدة التحكم.

بيئات تطوير النص

بديل عن Arduino IDE هو بيئة التطوير من الشركة المصنعة للمتحكم الدقيق Atmel - AVRStudio.



تتم البرمجة بلغة C خالصة ، ولديها بالفعل ميزات أكثر بكثير وهي أشبه بمعرفات IDE الجادة للغات البرمجة "الحقيقية".

تم تصميم هذين النوعين من البرامج للمبرمجين ذوي الخبرة الذين يعرفون اللغة جيدًا ويمكنهم استخدامها لإنشاء مشاريع جادة.

البيئات الرسومية تصور هيكل المدونة.

هذه هي البرامج ، في الواقع ، امتداد تنسيق لمحرر رمز نص عادي. في البرنامج ، تمت كتابة البرنامج أيضًا باللغة C ، ولكن بطريقة أكثر ملاءمة. الآن هناك الكثير من هذه البيئات ، وأبرز الأمثلة: سكراتش ، S4A ، Ardublock. وهي مناسبة جدًا للتعلم الابتدائي في البرمجة C ، لأنها تُظهر بشكل مثالي بنية اللغة ونحوها. ولكن بالنسبة للمشاريع الكبيرة والخطيرة ، فإن البرنامج مرهق.



بيئات رسومية تعرض التعليمات البرمجية في شكل رسومات

هذه هي البرامج التي تخفي الشفرة وتستبدلها بنسخ رسومية. يتكرر أيضًا هيكل اللغة فيها ، وتتشكل الدورات ، والتحولات ، والظروف. كما أنها مناسبة جدًا لتعلم كيفية بناء الخوارزميات ، يتبعها الانتقال إلى البرمجة باللغات الكلاسيكية. كما أنها غير مناسبة لبناء المشاريع الكبيرة بسبب ضغوط العرض الناتج. مثال على مثل هذا البرنامج: MiniBlog ، Algorithm Builder ، Flowcode



تم تصميم أنواع البرامج الموضحة أعلاه للمبرمجين أو لأولئك الذين يقررون دراسة البرمجة الكلاسيكية. ولكن لتصنيع الجهاز النهائي ، بالإضافة إلى البرمجة المباشرة لوحدة التحكم ، فإنه يتطلب عادةً تطوير لوحة دوائر خارجية ، وتطوير وحساب جزء الطاقة ، وتقاطعات الإدخال والمزيد. غالبًا ما يواجه المبرمجون مشاكل في ذلك. لكن الكهربائيين ومهندسي الإلكترونيات يقومون بعمل عظيم في هذا الصدد. ولكن من بينهم عدد قليل من المبرمجين الذين يمكنهم عمل برنامج للتحكم. إن الجمع بين المبرمج والمهندس الإلكتروني هو حالة نادرة إلى حد ما. نتيجة لهذا الوضع ، المشاريع الحقيقية المنجزة على أساس لوحات اردوينو (وفي الواقع وحدات تحكم أخرى). لحل هذه المشكلة ، يتم استخدام برامج من النوع الأخير.

بيئات البرمجة المرئية التي لا تستخدم التعليمات البرمجية.

تنفذ هذه البرامج المبدأ الذي تم استخدامه من قبل جميع الشركات المصنعة لوحدات التحكم الصناعية تقريبًا لسنوات عديدة. وهو يتألف من إنشاء برامج للتحكم بلغات FBD أو LAD. في الواقع ، فهي ليست لغات. بل هي بيئات رسومية لرسم الدوائر التخطيطية أو المنطقية. تذكر أن المعالجات لم تكن دائمًا معالجات دقيقة ، ولكن تم إنشاؤها على أساس الدوائر الدقيقة الرقمية. لذلك ، سيستمتع أولئك الذين اعتادوا على العمل باستخدام التكنولوجيا الرقمية بالعمل عليهم أكثر من كتابة التعليمات البرمجية بلغات البرمجة الكلاسيكية. مثال على هذه البرامج هي المشاريع Horizont و FLProg. البرامج من هذا النوع مناسبة تمامًا لدراسة بناء تكنولوجيا النبض والترحيل ، ولإنشاء مشاريع جادة.


وأخيرًا ، بطل هذه المدونة ، مشروع FLProg .

منذ أن كنت أعمل كمطور لنظام تحكم في العمليات لسنوات عديدة ، حاولت جمع كل ما أحببته في البيئات من الشركات المصنعة الرائدة للمعدات الصناعية (Tia-Portal ، Zelio Soft ، Logo Soft Comfort) في برنامج FLProg.
يتيح لك البرنامج عمل دوائر في شكلين: الدوائر الوظيفية (FBD) ودوائر الترحيل (LAD).



FBD (Function Block Diagram) – 61131-3. , . . () — , (, , , , , , , .). , . , . . .


Ladder Diagram (LD, LAD, ) – () . , . , . , , . - , , . ( — ; — ). , . , — . , .

تبين أن طريقة البرمجة هذه مريحة للغاية لسهولة الدخول في تطوير أنظمة ACS للمهندسين الكهربائيين والمهندسين الإلكترونيين. عند تطوير تصميمات الأجهزة ، يمكنها بسهولة ربط تشغيل هذه التركيبات بخوارزميات تشغيل وحدة التحكم.

بناء على هذه المناظر ، يعمل FLProg مع Arduino. لماذا ا؟
تعتبر اللوحة مريحة للغاية للتطوير السريع وتصحيح أجهزتها ، وهو أمر مهم ليس فقط لهواة الراديو ، ولكن أيضًا مفيد جدًا ، على سبيل المثال ، في الدوائر المدرسية وفي مختبرات التدريب الجامعي. واحدة من المزايا - لا تحتاج إلى مبرمج. تقوم بتوصيل لوحة Arduino بالكمبيوتر وتنزيل البرنامج النهائي من بيئة التطوير. حاليًا ، هناك مجموعة واسعة من وحدات Arduino ، ووحدات إضافية تعمل مع Arduino وأجهزة الاستشعار والأجهزة التنفيذية.

في الوقت الحالي ، يدعم البرنامج الإصدارات التالية من Arduino: Arduino Diecimila و Arduino Duemilanove و Arduino Leonardo و Arduino Lilypad و Arduino Mega 2560 و Arduino Micro و Arduino Mini و Arduino Nano (ATmega168) و Arduino Nano (ATmega328) و Arduino Pro Mini و Arduino Pro Mini و Arduino Pro Mini و Arduino Pro Mini و Arduino Pro Mini و Arduino Pro Mini و Arduino Pro Mini و Arduino Pro Mini ATmega168) ، Arduino Pro (ATmega328) ، Arduino UNO. بالإضافة إلى ذلك ، ظهرت لوحة Intel Galileo gen2 مؤخرًا في قائمة وحدات التحكم المدعومة. في المستقبل ، من المفترض تجديد هذه القائمة ، وربما إضافة لوحات استنادًا إلى وحدات تحكم STM.



المشروع في برنامج FLProg عبارة عن مجموعة من الألواح الفريدة ، يتم تجميع كل وحدة نمطية من الدائرة العامة على كل منها. للراحة ، كل مجلس لديه اسم وتعليقات. أيضا ، يمكن تصغير كل لوحة (لتوفير مساحة في منطقة العمل عند انتهاء العمل عليها) ونشرها.

تكوين مكتبة العناصر للغة FBD في الوقت الحالي.

  • [OR]
  • [AND]
  • [Bounce]
  • [XOR]

  • [Scale]

  • [SR]
  • [TT]
  • [Rtrig]
  • [RS]

  • [Timer]
  • [Generator]

  • [SpeedCounter]
  • [Counter]

  • [SUM(+)]
  • [MUL(*)]
  • [SUB(-)]
  • [DIV(/)]

  • [COS]
  • [ABS]
  • [MAX]
  • [POW]
  • [SQRT]
  • [TAN]
  • [MIN]
  • [SQ]
  • [RANDOM]
  • [SIN]

  • [Comparator]

UART
  • UART
  • UART
  • UART
  • UART

  • [SWITCH]
  • [MUX]
  • [DMS]

  • ServoMotor
  • StepMotor

  • [Alarm]
  • [GetTime]
  • [SetTime]

  • D44780
  • D44780 I2C

  • Char


  • [DS18x2x]
  • [IR Ressive]
  • [Ultrasonic HC-SR04]
  • [DHT11, DHT21, DHT22]
  • [BMP-085]
  • [BH1750LightMeter]

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • RessiveVariableFromCommunication
  • WebServerPage
  • SendVariableFromCommunication
  • WebClient

  • narodmon.ru
  • goplusplatform.com
  • RemoteXY


تكوين مكتبة العناصر للغة LAD في الوقت الحالي.



  • SIN
  • COS
  • TAN
  • ABS
  • MAX
  • MIN
  • SQ
  • SQRT
  • POW
  • RANDOM


UART
  • UART
  • UART
  • UART
  • UART



  • HD44780
  • HD4480 I2C

  • Char


  • HC-SR04
  • DHT11 (DHT21, DHT22)
  • DS18x2x
  • IR Ressive
  • BMP-085
  • BH1750 Light Meter

SD
  • SD
  • SD

  • Float Integer
  • -> Byte
  • -> Char

  • 74HC595
  • MAX7219


  • OneWare

EEPROM
  • EEPROM
  • EEPROM

  • Web
  • Web

  • narodmon.ru
  • RemoteXY



سأخبرك بالمزيد عن المشروع في المشاركات اللاحقة ، وأخيرًا مقطع فيديو قصير يوضح مبادئ العمل في البرنامج والقدرة على التحكم في اللوحة من التطبيق على الهاتف الذكي.

Source: https://habr.com/ru/post/ar387429/


All Articles