ما هي اللغات المستخدمة لبرمجة أنظمة الوقت الحقيقي؟[مغلق]

StackOverflow https://stackoverflow.com/questions/697916

  •  22-08-2019
  •  | 
  •  

سؤال

لم أجد أي معلومات مفيدة حول لغات البرمجة لأنظمة الوقت الحقيقي.كل ما وجدته هو أنظمة الزمن الحقيقي ولغات البرمجة:Ada 95، جافا في الوقت الحقيقي وC/POSIX في الوقت الحقيقي (بعض قوات الدفاع الشعبي هنا)، والذي يبدو أنه يتحدث عن امتدادات Java وC لأنظمة الوقت الفعلي (ليس لدي الكتاب لأقرأه).كما أن الكتاب صدر عام 2001، وربما تكون المعلومات قديمة الآن.

لذا، فأنا أشك في ما إذا كانت هذه اللغات تُستخدم في تطبيقات العالم الحقيقي، أو إذا كانت أنظمة الوقت الفعلي في العالم الحقيقي مصنوعة بلغات أخرى، مثل خطوط المشتركين الرقمية (DSL).

إذا كان الخيار الثاني ينطبق عليك، ما هي الخصائص المميزة للغة التي تستخدمها؟

هل كانت مفيدة؟

المحلول

تحتوي مواصفات الوقت الفعلي لـ Java الآن على العديد من التطبيقات التجارية:

تمتد هذه المنتجات عبر السلسلة الممتدة من التجميع إلى الكود الأصلي (Aonix) إلى J2ME (aicas, Apogee)، إلى J2SE الكامل (Sun, IBM).وقد شهدت معظمها، إن لم يكن جميعها، عمليات نشر لأعداد صغيرة من أنظمة السلامة أو الأنظمة ذات المهام الحرجة، ولكن الزخم آخذ في التزايد.الامثله تشمل تحديث رادار المراقبة الفضائية التابع لقاعدة إيجلين الجوية واستخدام البحرية الأمريكية لـ RTSJ في المدمرة DDG-1000/زوموالت.تدعي Sun أيضًا النشر في مجال معالجة المعاملات المالية.

إذا كنت مهتمًا بـ RTSJ، أقترح عليك Peter Dibble برمجة منصة في الوقت الحقيقي, أو البروفيسور ويلنجز البرمجة المتزامنة وفي الوقت الحقيقي في جافا.

في ملاحظة ذات صلة، هناك أيضًا عمل جار لتوفير ملف تعريف خاص بالسلامة الحرجة للغة برمجة Java، والذي تم إنشاؤه كمجموعة فرعية من RTSJ.أيضًا، تم تشكيل مجموعة من الخبراء لاستكشاف RTSJ DRTSJ الموزعة، لكن العمل متوقف.

نصائح أخرى

وأنا مهندس البرمجيات الكترونيات الطيران. وكنت قادرا على المشاركة في العديد من المشروعات التنموية. اللغات كنت في تلك المشاريع هي: C، C ++، وفي الوقت الحقيقي جافا

وC شيء عظيم. C ++ ليست سيئة جدا ولكن C / C ++ تتطلب معايير الترميز صارمة لاعتبارات السلامة مثل DO-178B.

وأعتقد في الوقت الحقيقي جافا هو الطريق للذهاب ولكن لا أرى العديد من التطبيقات الكترونيات الطيران، حتى الان.

وطائرات التدريب الكورية سوف T-50 لديك جهاز كمبيوتر مهمة تشغيل تطبيق RT جافا خدمة HUD وMFD يعرض، وجميع الوظائف الحيوية المهمة.

والكتاب يغطي استخدام آدا 95، في الوقت الحقيقي نظام جافا وملحقات الحقيقي POSIX (المبرمجة في C). أيا من هذه مباشرة للغة النطاق محددة.

وآدا 95 هي لغة البرمجة المستخدمة عادة في أواخر 90s و (AFAIK) لا تزال تستخدم على نطاق واسع للبرمجة الحقيقي في الصناعات الدفاعية والفضائية. هناك واحد على الأقل DSL بنيت على رأس ادا - SparkAda - وهو نظام ل الشروح التي تصف خصائص النظام إلى أداة التحقق من البرنامج.

هذه المقابلة من 6 أبريل 2006 يشير بعض الطبقات والتغيرات الجهاز الظاهري التي تشكل النظام في الوقت الحقيقي جافا. أنه لا يذكر أي ملحقات لغة محددة المجال. أنا لم تأتي عبر استخدام جافا في أنظمة الوقت الحقيقي، لكنني لم تبحث في أنواع النظم التي أتوقع للعثور عليه (أنا أعمل في محاكاة الطيران، حيث انها C ++، فورتران، وأحيانا آدا في الوقت الحقيقي للأنظمة في حلقة).

الحقيقي POSIX : عبارة عن مجموعة من الملحقات إلى المرافق نظام POSIX العاملة . كامتداد OS، أنها لا تحتاج إلى أي شيء محدد في اللغة. قال ذلك، أستطيع أن أفكر في DSL واحدة على أساس C لوصف الأنظمة المدمجة - SystemC - ولكن أنا 'هاء أي فكرة إذا انها تستخدم أيضا لتوليد أنظمة المدمجة.

ولم يرد ذكرها في الكتاب هو مطلب ، الذي استمر في السنوات القليلة الماضية من أداة المحاكاة لنظام تطوير نموذج يحركها لأنظمة الوقت الحقيقي. ماتلاب / SIMULINK هو، في الواقع، DSL للبرمجة الخطية، أجهزة الدولة والخوارزميات. ماتلاب يمكن أن تولد C أو <وأ href = "http://www.mathworks.com / منتجات / slhdlcoder /؟ s_cid = HP_FP_SL_HDLCoder "يختلط =" نوفولو noreferrer "> HDL للحصول على الحقيقي والنظم المضمنة. ومن النادر جدا أن نرى الكترونيات الطيران، EW أو صناعة الدفاع آخرين في الوقت الحقيقي الإعلان عن الوظائف التي لا تتطلب بعض الخبرة ماتلاب. (أنا لا أعمل لمطلب، ولكن من الصعب أن الإفراط في التركيز كيف كل مكان هو حقا في الصناعة)

ويمكن إجراء التطبيقات في الوقت الحقيقي في اللغة أي تقريبا. ولكن يجب البيئة (نظام التشغيل، ووقت التشغيل مكتبات وقت التشغيل) تكون متوافقة لضيق الوقت الحقيقي. في معظم الحالات في الوقت الحقيقي يعني أن هناك دائما وقتا القطعية التي يحدث شيء. الوقت حتمية يجري Ussually لقيمة الوقت منخفضة جدا في حدود ميكروثانية / ميلي ثانية.

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

وكنت أعمل على نظام الملاحة في السيارة والمواد الترفيهية وضعت معظمها في C / C ++ مع نظام التشغيل تكوين خصيصا لتلبية ضيق الوقت الحقيقي لتوفير الملاحة في الوقت الحقيقي وتشغيل وسائل الاعلام.

ولكن هذا ليس كل شيء لأنظمة الوقت الحقيقي: عادة اختيار الخوارزميات في النظام بأكمله يتكون لديهم أوقات التشغيل القطعية وفقا لتدوين كبير-O، معظمها باستخدام الزمن الخطي أو ثابت. ويعتبر كل شيء آخر غير القطعية وبالتالي لا صالحة للاستعمال لأنظمة الوقت الحقيقي.

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

لغة موجهة في الوقت الحقيقي؟

ما هو الوقت الحقيقي

أولا علينا أن نحدد ماذا في الوقت الحالى يقصد.

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

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

تقسيمات

يعتمد هذا على ما تقوم بقياسه، إذا كنت تعمل مع:

  • درجات حرارة الطقس, ، قراءة واحدة كل 10 دقائق يمكن أن تكون كافية
  • طول الناس أو وزنهم, ، قراءة واحدة أو ربما أربعة في اليوم
  • حالة الملقم, ، ما بين ثانية واحدة للتصحيح الدقيق إلى حوالي ساعة واحدة للخادم الثانوي الهادئ غير المهم.
  • عدد الاصطدامات الذرية:شيء أرقى...

القراءة المبنية على الأحداث

تعتمد الطريقة الصحيحة (الأفضل) لجمع البيانات على حدث تغيير القيمة...عندما يسمح الجهاز بذلك.

أداتك لا يجب أن تفعل ذلك تصويت القيم من الجهاز، ولكن يجب على الجهاز إرسال القيم إلى أداتك عند تغييرها.

يمكن القيام بذلك باستخدام مقاطعة الأجهزة الزناد أو باستخدام بروتوكول المنفذ مثل آر إس-232 البقاء الاستماع على بعض المنفذ التسلسلي، على سبيل المثال.

بيئة المراقبة

آخر شيء يجب تحذيره هو كيف سيتفاعل المستخدم الشرعي مع.

إذا كنت تقوم بإنشاء جهاز مستقل، مثل إنسان آلي, ، يمكنك استخدام المكتبات الرسومية للتفاعل مع شاشة اللمس.

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

أي لغة برمجة؟

من هنا، يكون اختيار اللغة واسعًا ويعتمد بشكل واضح على ذلك

  • معرفتك.
  • التفاصيل المطلوبة (باستخدام المستندة إلى الأحداث أيضًا بالطبع)
  • مقدار الوقت المتاح لك لبناء الأداة (المال؛)
  • تأخروا أيها الزملاء..
  • نوع الجهاز
  • نوع من المراقبة
  • وبعض الأسباب السياسية الأخرى

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

وأنا لا أستطيع أن أصدق أن أحدا لم يذكر لغة البرمجة ابفيف الذي يستخدم على نطاق واسع لأنظمة السلامة الحرجة في الوقت الحقيقي. لديها مكتبات واسعة وتصميم أنماط معروفة لarchitecturing وتنفيذ نظم RT.

وأيضا الصكوك الوطنية يجعل مختلف الأجهزة (CRIO، PXI وغيرها) والتي تم تصميمها لتقديم الطلبات في الوقت الحقيقي.

ونحن نستخدم ابفيف لالتكسير (هيدروليكية التكسير) والذي يستخدم في بيئات آمنة الحرجة.

وبالمناسبة، يتم استخدام ابفيف أيضا للتطبيقات غير RT-أيضا.

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

وتطبيق هادف حقا للغة C في البرمجة في الوقت الحقيقي - والتي تقدمها بي كيك ستارتر - وجميع القضايا ذات الصلة (مثل البرمجة المتوازية) http://www.kickstarter.com/projects/767046121/crawl -space-الحوسبة مع connel ويطلق عليه "برمجة واسعة" ولقد تم القيام به معظم حياتي. وتشمل المكافآت مكتبة البرامج وكتاب - مصممة لتكون مفيدة

والشركة لقد تم العمل به منذ 2003 تم تطوير ونشر منصة سكادا / مس. بدأ تنفيذ الأصلي في عام 1993، وتستخدم Modula2 على OS / 2. في وقت لاحق (1998) واستدار لAda95 ويندوز. حاليا (2019) التي نستخدمها مترجم آدا التي كتبها AdaCore. وقد استدار نظامنا وتم نشرهم في 32/64 ويندوز، HPUX، نظام الذاكرة الافتراضية المفتوح (ومؤخرا حتى التوت). لدينا تركيب عدة في وسط أوروبا (صناعة الغاز والمصافي والمصانع ومحطات توليد الطاقة). ونحن نرى ملامح آدا تعطي نظامنا على درجة عالية من الموثوقية ويمنع الكثير من الأخطاء التي من شأنها أن occour بسهولة إذا كنا لغات مثل C. انظر أيضا بلدي بلوق https://www.ipesoft.com/en/ بلوق / ما اللغة هو، ومكتوبة بخط D2000-

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top