تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف يمكن إستقبال البيانات وإرسالها عن طريق ال Serial Port RS232
#1
السلام عليكم ورحمة الله
اخوانى الأعزاء
كيف يمكن إستقبال البيانات وإرسالها عن طريق ال Serial Port RS232
عندى ماكينة بها Serial Port db9 واريد إستقبال وإرسال البيانات منها
الرد }}}
تم الشكر بواسطة:
#2
أرجو المساعدة
ملحوظة استخدم VB.Net
الرد }}}
تم الشكر بواسطة:
#3
matrixmas كتب :أرجو المساعدة
ملحوظة استخدم VB.Net

ما هذه الماكينة ؟ " أرجوا التوضيح "
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم ورحمة الله وبركاته....
ممكن وبكل سهولة بشرط سأعتبر ان لديك معرفة عن نظام الارسال والاستقبال المتوالي في أستخدامك للدوائر الاليكترونية.
فبل كتابة المشروع يجب ان نضع المكتبة input32.dll في الامتداد c:\widows\system32 او في فهرس البرنامج الخاص بمشروعك لكي يعمل على الحاسبات الاخرى.

1- افتح مشروع جديد في VB.net واختر نافذة جديدة Form1
2- نعمل import بالصيغة التالية :
Import System . Runtime .InteropServices

3- نعمل نافذة model جديدة ونكتب فيها الكود التالي – انتبه اذا لا تعرف معنى الشارحة الموجدة في الكود فمن الافضل قم بعملية النسخ :

Public Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

4- في النافذة Form1 اختر اداة امر Button عدد اثنان
5- ايضاً في نفس النافذة اختر اداة عرض Text Box عدد اثنان
6- نختار اداة Serial port واحدة ونضعها على النافذة Form1 ستظهر اسفل النافذة
7- لأرسال البيانات الى المنفذ اكتب في اداة الامر Button1 الكود التالي :

Dim x As Byte
x = ByVal( TextBox1.text)
SerialPort1. Open()
Out(1016, x )
SerialPort1. Close()

8- لقراءة البيانات من المنفذ اكتب في اداة الامر Button2 الكود التالي :

Dim y As Byte
SerialPort1. Open()
y = Inp(1016)
SerialPort1. Close()
TextBox2.Text = y

انتهى المشروع والان جاهز للتجربة

ملاحظات هامة فبل تجربة البرنامج:
1- يجب التأكد من عنوان المنفذ التسلسلي على حاسبتك فالعنوان كان على حاسبتي هو 3F8 بالنظام السادس عشر وقمت بتحويله الى النظام العشري 1016 وعلى ما أعتقد هو نفسه في حاسبتك.
2- عند الضغط على Button1 سيقوم البرنامج بأرسال القيمة المدخلة في الـ TextBox1 الى المنفذ SerialPort وشرط ان لا يكون TextBox1 فارغ من الارقام لان ستظهر رسالة خطأ.
3- شرط القيمة المرسلة هي من 0 الى 255 ويجب ملاحظة نوع المتغيران x,y في المثال السابق فأذا استخدمتهما في عمليات حسابية يجب ان يكون من النوع integer وليس Byte بشرط ان لا يكون الناتج اكبر من 255 او اصغر من الصفر.
4- عند الضغط على Button2 سيقوم البرنامج بقراءة البيانات التي تم ادخالها الى المنفذ من مصدر خارجي وعرضها في الاداة TextBox2
5- عند ادخال البيانات الى المنفذ من مصدر خارجي يجب الانتباه الى ان البيانات سوف تكون محفوظة في ذاكرة مؤقتة يمكن قراءتها عدة مرات وعند ادخال بيانات جديدة ستحل محل البيانات السابقة وهكذا.
6- يتم ارسال البيانات TX من المنفذ الى الخارج عند البن رقم 3 ويكون استلام البيانات RXمن الخارج الى المنفذ عند البن رقم 2 ويكون البن رقم 5 هو ارضي مشترك ويجب توصيله مع الجهاز الخارجي.
7- لكي تتأكد من صحة عمل مشروعك بشكل صحيح قم بتوصيل سلك من البن رقم 2 الى البن رقم 3 وشغل البرنامج ومن ثم ادخل قيمة معينة في الـ TextBox1 وأضغط Button1 سيتم ارسال القيمة الى البن رقم 3 وعبر السلك الى البن رقم 2 وتثبيتها في الذاكرة المؤقتة ، الان أضغط على الـ Button2 ستلاحظ القيمة ظهرت في الـ TextBox2 وهي نفسها في TextBox1 اذا لم تظهر تأكد من صحة كتابة البرنامج او من صحة توصيل السلك بين الرقمين 3 و 2

انتهى الموضوع.. تمنياتي لك بالتوفيق
الرد }}}
تم الشكر بواسطة: jackalof
#5
من بغداد كتب :السلام عليكم ورحمة الله وبركاته....
ممكن وبكل سهولة بشرط سأعتبر ان لديك معرفة عن نظام الارسال والاستقبال المتوالي في أستخدامك للدوائر الاليكترونية.
فبل كتابة المشروع يجب ان نضع المكتبة input32.dll في الامتداد c:\widows\system32 او في فهرس البرنامج الخاص بمشروعك لكي يعمل على الحاسبات الاخرى.

1- افتح مشروع جديد في VB.net واختر نافذة جديدة Form1
2- نعمل import بالصيغة التالية :
Import System . Runtime .InteropServices

3- نعمل نافذة model جديدة ونكتب فيها الكود التالي – انتبه اذا لا تعرف معنى الشارحة الموجدة في الكود فمن الافضل قم بعملية النسخ :

Public Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

4- في النافذة Form1 اختر اداة امر Button عدد اثنان
5- ايضاً في نفس النافذة اختر اداة عرض Text Box عدد اثنان
6- نختار اداة Serial port واحدة ونضعها على النافذة Form1 ستظهر اسفل النافذة
7- لأرسال البيانات الى المنفذ اكتب في اداة الامر Button1 الكود التالي :

Dim x As Byte
x = ByVal( TextBox1.text)
SerialPort1. Open()
Out(1016, x )
SerialPort1. Close()

8- لقراءة البيانات من المنفذ اكتب في اداة الامر Button2 الكود التالي :

Dim y As Byte
SerialPort1. Open()
y = Inp(1016)
SerialPort1. Close()
TextBox2.Text = y

انتهى المشروع والان جاهز للتجربة

ملاحظات هامة فبل تجربة البرنامج:
1- يجب التأكد من عنوان المنفذ التسلسلي على حاسبتك فالعنوان كان على حاسبتي هو 3F8 بالنظام السادس عشر وقمت بتحويله الى النظام العشري 1016 وعلى ما أعتقد هو نفسه في حاسبتك.
2- عند الضغط على Button1 سيقوم البرنامج بأرسال القيمة المدخلة في الـ TextBox1 الى المنفذ SerialPort وشرط ان لا يكون TextBox1 فارغ من الارقام لان ستظهر رسالة خطأ.
3- شرط القيمة المرسلة هي من 0 الى 255 ويجب ملاحظة نوع المتغيران x,y في المثال السابق فأذا استخدمتهما في عمليات حسابية يجب ان يكون من النوع integer وليس Byte بشرط ان لا يكون الناتج اكبر من 255 او اصغر من الصفر.
4- عند الضغط على Button2 سيقوم البرنامج بقراءة البيانات التي تم ادخالها الى المنفذ من مصدر خارجي وعرضها في الاداة TextBox2
5- عند ادخال البيانات الى المنفذ من مصدر خارجي يجب الانتباه الى ان البيانات سوف تكون محفوظة في ذاكرة مؤقتة يمكن قراءتها عدة مرات وعند ادخال بيانات جديدة ستحل محل البيانات السابقة وهكذا.
6- يتم ارسال البيانات TX من المنفذ الى الخارج عند البن رقم 3 ويكون استلام البيانات RXمن الخارج الى المنفذ عند البن رقم 2 ويكون البن رقم 5 هو ارضي مشترك ويجب توصيله مع الجهاز الخارجي.
7- لكي تتأكد من صحة عمل مشروعك بشكل صحيح قم بتوصيل سلك من البن رقم 2 الى البن رقم 3 وشغل البرنامج ومن ثم ادخل قيمة معينة في الـ TextBox1 وأضغط Button1 سيتم ارسال القيمة الى البن رقم 3 وعبر السلك الى البن رقم 2 وتثبيتها في الذاكرة المؤقتة ، الان أضغط على الـ Button2 ستلاحظ القيمة ظهرت في الـ TextBox2 وهي نفسها في TextBox1 اذا لم تظهر تأكد من صحة كتابة البرنامج او من صحة توصيل السلك بين الرقمين 3 و 2

انتهى الموضوع.. تمنياتي لك بالتوفيق

بارك الله فيك شرح في منتهى الروعة Big Grin
وأيضاً يمكنك ان تستخدم اداة serial port وهي موجودة بصندوق الأدوات Smile

وهي سهلة للغاية
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم