كيفية استخدام بايثون لبناء الاتصالات PC؟

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

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

لغة بيثون كما سخونة الحالية، ليس فقط في جوانب عديدة من منظمة العفو الدولية، والحوسبة السحابية يمكن أن يرى ظله، في التحكم الصناعي وبدون ذلك لا يمكن. وتعتبر هذه المادة سوف أطلعكم على كيفية استخدام بايثون للتواصل البناء بين PC وPLC، وأيضا لإظهار نمط بيثون في القطاع الصناعي.

Snap7 الملف الشخصي

الاتصالات PLC على السوق الرئيسية لشبكة الاتصالات والاتصالات التسلسلية الحالي. قطعة الرئيسي للبروتوكولات شبكة الاتصالات وprofinet، MODBUS-برنامج التعاون الفني، وما إلى ذلك، لأنه يقوم أساسا على المسلسل الاتصالات MODBUS RS232 / 485 في.

هذا التعرض للسيمنز S7 سلسلة المجلس التشريعي الفلسطيني، سواء الاتصالات نوع الشبكة، وSnap7 ( هو مفتوح المصدر، إيثرنت 32/64 بت، منصة متعددة مكتبة نيتكوم:

  • دعم متعددة هندسة الأجهزة (I386 / x86_64، ARM / ARM64، صن سبارك، MIPS)؛
  • دعم متعدد نظام (ويندوز، لينكس، BSD، وسولاريس)؛
  • دعم لغات متعددة (C / C ++، Phyton، نود.جي إس، باسكال، C #، VB).

بيثون التعبئة والتغليف، تشير تحديدا إلى: الشبكي: //github.com/gijzelaerr/python-snap7.

بيئة التطوير لبناء

هنا أساسا من ويندوز ولينكس (أوبونتو) كل المنابر، للحديث عن كيفية بناء بيئة تطوير Snap7 في ظل بيئة بيثون. بيثون التركيب لا أكررها هنا، والبيئة بناء الرئيسية هي لتثبيت بيثون snap7 Snap7 ومكتبتين.

1، وتركيب Snap7

تحت ويندوز، وهيكل من الإصدارات المطلوبة من بيثون (32/64)، وتحميل نسخة من المنشور إلى مستودع تركيب Snap7 بيثون الموافق الدليل الجذر.

كما هو مبين أعلاه، بيثون هو بلدي 32BIT و، فمن الضروري Snap7 نسخ الدليل ملف Win32 إلى الدليل الجذر من بيثون شنت، كما هو مبين أدناه:

و(أوبونتو) تركيب لينكس هو بسيط نسبيا، الأمر التالي:

$ سودو -s

$ الوظيفة الإضافية الرابطة بين مستودع المؤسسة العامة للتقاعد: gijzelaar / snap7

$ تحديث الرابطة بين الحصول على

$ الرابطة بين الحصول على تثبيت libsnap71 libsnap7 ديف

2، وتصاعد بيثون snap7

المكتبات بيثون مثبتة على الكثير Snap7 بسيطة، سواء كان ويندوز أو لينكس، يمكن تثبيت نقطة مباشرة.

$ بيب تثبيت بيثون snap7

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

snap7 استيراد

العميل = snap7.client.Client ()

client.connect ( '192.168.0.1'، 0، 1)

client.disconnect ()

إذا كانت هذه هي النصائح FIG، والبيئة الطبيعية (192.168.0.1 المجلس التشريعي الفلسطيني غير موجود).

إذا كان هذا هو الرسم البياني يشير إلى أن الشذوذ البيئي (المكتبات snap7 مثبتة بشكل غير صحيح).

القراءة والكتابة PLC

بعد إعداد البيئة بشكل صحيح، قبل التأسيس الرسمي للاحتياجات العمل التكوين الاتصالات PLC الذي يتعين القيام به، هو تطوير أذونات القراءة والكتابة الخاصة بها. في اشارة بجانب FIG تكوين معين:

مع التكوين أعلاه، يمكن PLC التواصل أ.

1، بيثون snap7 تحليل القارئ

ملزمة ثائق API بيثون snap7 وتحليل شفرة المصدر، طريقتين الهامة read_area بيثون sna7 وwrite_area، ويمكن قراءة وكتابة عنوان الذاكرة المقابلة لPLC من قبل هاتين الطريقتين.

read_area صفر (النفس أو المنطقة أو dbnumber، بداية، حجم):

 "" "هذه هي الوظيفة الأساسية لقراءة البيانات من PLC.

 مع ذلك يمكنك قراءة DB، المدخلات والمخرجات، Merkers، مؤقتات وعدادات.

 : بارام dbnumber: عدد DB، وتستخدم فقط عند منطقة = S7AreaDB

 : بارام بدء: تعويض لبدء الكتابة

 : بارام حجم: عدد الوحدات لقراءة

 "" "

 منطقة تأكيد في snap7.snap7types.areas.values ()

 wordlen = snap7.snap7types.S7WLByte

 type_ = snap7.snap7types.wordlen_to_ctypes

 logger.debug ( "القراءة المجال: الصورة dbnumber: ق بداية: ق: كمية ق:"

 "Wordlen: ليالي" (منطقة، dbnumber، بداية، حجم، wordlen))

 البيانات = (type_ حجم *) ()

 يؤدي = self.library.Cli_ReadArea (self.pointer أو المنطقة أو dbnumber، بداية،

 حجم، wordlen، الأساسية ByRef (البيانات))

 check_error (النتيجة، والسياق = "العميل")

 العودة bytearray (البيانات)

 error_wrap

 write_area صفر (النفس أو المنطقة أو dbnumber، بداية، البيانات):

 "" "هذه هي المهمة الرئيسية لكتابة البيانات إلى PLC. انها

 وظيفة تكميلية من Cli_ReadArea ()، المعلمات والخاصة

 المعاني هي نفسها، والفرق الوحيد هو أن البيانات

 نقل من المخزن المؤقت وأشار من قبل إلى pUsrData PLC.

 : بارام dbnumber: عدد DB، وتستخدم فقط عند منطقة = S7AreaDB

 : بارام بدء: تعويض لبدء الكتابة

 : بارام البيانات: أ bytearray تحتوي على حمولة

 "" "

 wordlen = snap7.snap7types.S7WLByte

 type_ = snap7.snap7types.wordlen_to_ctypes

 حجم = ليون (البيانات)

 logger.debug ( "كتابة المنطقة: الصورة dbnumber: ق بداية: ق: حجم ق:"

 "اكتب: ليالي" (منطقة، dbnumber، بداية، حجم، type_))

 CDATA = (type_ * ليون (البيانات)). from_buffer_copy (البيانات)

 عودة self.library.Cli_WriteArea (self.pointer أو المنطقة أو dbnumber، بداية،

 حجم، wordlen، الأساسية ByRef (CDATA))

مرئية من الحاجة إلى توفير مساحة عنوان PLC، عنوان البداية، قراءة وكتابة البيانات طول. PLC يمكن تقديم المعلومات التالية:

2، عناوين PLC وتخزين البيانات

الحصول على المعلومات التالية إلى PLC من خلال قراءة دليل:

يتم تخزين البيانات بطاقة PLC بواسطة النموذج قسم التخزين المرتبطة بها، في إدخال (وأنا)، خرج (O)، ذاكرة بت (M) والبيانات كتل (DB). المقابلة لبرنامج سمة الدخول (I / O)، يتم تشغيلها من قبل وحدة المعالجة المركزية للوصول المقابلة عنوان عملية صورة خارج. مراسلات مفصلة على النحو التالي:

هنا يمكنك ان ترى المناطق إلى عنوان بيثون snap7 يعرف ما هو معنى.

المناطق = ADict ({

 'PE': 0x81، #INPUT

 "السلطة الفلسطينية": 0x82، #output

 "MK": 0x83، ذاكرة #bit

 "DB ': 0x84، #DB

 'CT': 0x1C، #counters

 "TM": 0x1D، #Timers

})

PLC أسوأ حالا الآن القراءة والكتابة الخطوة النهائية، وعنوان البداية هو كيفية تحديد ذلك؟

من الظاهر إلى M3.4، هو M المقابلة (0x83)، وعنوان البداية هو 3، بت المقابلة هو 4 بت.

حقيقي

أعدت بعناية أعلاه، وهنا موجة من القتال. M10.1 من قبل PLC القراءة والكتابة، MW201 للنظر على وجه التحديد كيفية القراءة والكتابة PLC.

البنية استيراد

الوقت استيراد

snap7 استيراد

مواطنه plc_connect (الملكية الفكرية، رف = 0، فتحة = 1):

 "" "

 التهيئة اتصال

 : بارام الملكية الفكرية:

 : بارام الرف: عادة 0

 : بارام فتحة: المجلس التشريعي الفلسطيني التثبيت، عادة 0 أو 1

 : العودة:

 "" "

 العميل = snap7.client.Client ()

 client.connect (الملكية الفكرية، رف، فتحة)

 العميل عودة

plc_con_close صفر (العميل):

 "" "

 اتصال مغلقة

 : عميل بارام:

 : العودة:

 "" "

 client.disconnect ()

مواطنه test_mk10_1 (العميل):

 "" "

 اختبار M10.1

 : العودة:

 "" "

 المساحة = snap7.snap7types.areas.MK

 dbnumber = 0

 كمية = 1

 بداية = 10

 طباعة (ش 'القيمة الأولية')

 mk_data = client.read_area (منطقة، dbnumber، بداية، كمية)

 طباعة (struct.unpack ( '! ج "، mk_data))

 طباعة (ش 'مجموعة')

 client.write_area (منطقة، dbnumber، بداية، ب '')

 طباعة (ش 'القيمة الحالية')

 mk_cur = client.read_area (منطقة، dbnumber، بداية، كمية)

 طباعة (struct.unpack ( '! ج "، mk_cur))

مواطنه test_mk_w201 (العميل):

 "" "

 اختبار MW201، نوع البيانات كلمة

 : عميل بارام:

 : العودة:

 "" "

 المساحة = snap7.snap7types.areas.MK

 dbnumber = 0

 كمية = 2

 بداية = 201

 طباعة (ش 'القيمة الأولية')

 mk_data = client.read_area (منطقة، dbnumber، بداية، كمية)

 طباعة (struct.unpack ( '! ح "، mk_data))

 طباعة (ش 'مكافحة 12')

 client.write_area (منطقة، dbnumber، بداية، ب '')

 طباعة (ش 'القيمة الحالية')

 mk_cur = client.read_area (منطقة، dbnumber، بداية، كمية)

 طباعة (struct.unpack ( '! ح "، mk_cur))

 time.sleep (3)

 طباعة (ش 'مكافحة 3')

 client.write_area (منطقة، dbnumber، بداية، ب '')

 طباعة (ش 'القيمة الحالية')

 mk_cur = client.read_area (منطقة، dbnumber، بداية، كمية)

 طباعة (struct.unpack ( '! ح "، mk_cur))

إذا __name__ == "__main__":

 client_fd = plc_connect ( '192.168.0.1')

 test_mk10_1 (client_fd)

 test_mk10_1 (client_fd)

 plc_con_close (client_fd)

يتضح من التعليمات البرمجية، MW201، يتم تحديد M كمنطقة MK، يتحدد وفقا لبيانات من المبلغ W 2Btye، يتم تحديد بداية وفقا إلى 201201، وتلا البيانات مع بنية فك طول البيانات، وكتابة البيانات المقابلة لstrcut حزمة.

هنا PLC نوع المتغير وحجمها، بحيث قراءة وكتابة المبلغ المحدد المقابلة.

وأخيرا، فيديو، عملية بيثون من PLC إلى سرادق.

تنويه: هذا تقديم المادة، على النحو الوارد في الشخصية chafezhou عدد الجمهور، ينتمي إلى المؤلف الإطلاق.

"دعوة لذلك!"

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

إذا كان لديك أفكارا جديدة في المواد عالية الجودة أو صناعة الأحداث الساخنة، ورؤى واتجاهات التكنولوجيا، وتطبيق أو عمق الممارسة، وبرامج المشهد، يرجى الاتصال CSDN المساهمة، يرجى الاتصال ب: مايكرو إلكتروني (guorui_1118، يرجى ملاحظة مساهمة + اسم + موقف الشركة)، وصندوق البريد (guorui@csdn.net).

جوجل بكسل الحصول على كاميرا معززة منخفضة الضوء: هذا هو مشرق حقا

هوانغ بو "، وهو عرض جيد" 150 مليون دولار في شباك التذاكر في اليوم الأول، ما سمعته المتداول "الحب الشقق"

حفظ الرقم المال لشراء سيارة مستعملة؟ هذا الشيء لا يمكن بالضرورة!

مراوح صغيرة يتبارى بول - بعث جورج الأحذية

علي المبرمجين كيفية حل مشكلة معقدة أمثلية الاستعلام البيانات؟ | عناوين تقنية

Baojun نسخة 730 CVT للبيع مفتوح من قبل سعر البيع 8،88-9،98 عشرة آلاف يوان / 7 تخطيط

الدوري الاميركي للمحترفين الثاني الحكم الإناث اليوم كشف النقاب رسميا

مبرمج، لديك 996، قد يكون لعدم قدرة الشركة على إدارة عموم الظهر

لأن هذه المشاريع، كل عام 40 مليون مزارع صينى يستفيد! الناس الثناء على جائزة نقطة!

مطوري تطبيقات الهاتف المتحرك كيف لكسب المال في سلسلة كتلة؟

معظم مكون سيارة لا طائل منه، يستغرق بضع مرات في السنة، والسائقين القديمة: لأنك لا تستخدم

أبناء عمومة يرتدي اللون الأبيض والأسود بوما الاحماء