PDA

View Full Version : ارتباط دلفی و سخت افزار



hamed_mp
سه شنبه 14 اسفند 1386, 14:34 عصر
سلام دو ستان
یکی از دوستان لطف کرده مشکل من رو قبلا به صورت خلاصه مطرح کرده ولی چون یه مقدار عجله دارم با اجازتون مشکلم رو با توضیحات بیشتر مطرح می کنم لطفا راهنماییم کنید

داستان اینه :

یه کیتی طراحی شده و AVR اون پروگرام شده و توسط پورت سریال 9 پین ( همون پورت های قدیمی ماوس) به کامپیوتر وصل کردم و کامپیوتر طبق روال پورت AVR رو شنا خته
که این صحبت رو بچه های رشته برق و الکترونیک بهتر متوجه می شن

حالا سوال اصلی من اینه :
من باید از طریق دلفی با این پورت و به عبارتی با این کیت ارتباط برقرار کنم و یه سری دستور بدم که برای من انجام بده اگر قسمت دستور ها رو بزاریم کنار که خودش یه مسئله برنامه نویسی جدا هست

من چه جوری می تونم با دلفی با این پورت و به عبارت دیگر با این کیتی که طراحی شده ارتباط برقرار کنم ؟

آیا باید دنبال کامپوننت خاصی بگردم ؟
یا اینکه آیا باید خودم پروتکول مربوط به این قضیه رو با دلفی بنویسم ؟
یا اینکه آیا با خوندن کتاب دلفی قسمت ارتباطات سریال ها مشکل من حل می شه؟
یا اینکه آیا باید با خود برنامه bascom (مربوط به برق و الکنرونیک ) و چگونگی ارتباط اون با دلفی مشکل رو حل کنم ؟

ممنون می شم من رو راهنمایی کنید تا 20 ام فرصت دارم که این پرو سه رو انجام بدم.

اگر راحتتر بودید می تونید از طریق یا هو مسنجر من رو راهنمایی کنید
آیدی یا هو مسنجر من اینه : once.4ever@yahoo.com

hamed_mp
سه شنبه 14 اسفند 1386, 16:50 عصر
5 نفر دیدن ولی دریغ از یه راهنمایی کوچیک ، خواهشا کمک کنید فرصت زیادی ندارم

Touska
سه شنبه 14 اسفند 1386, 18:14 عصر
خوب شما باید با Com Port به Port مورد نظر وصل شوید و بصورت پرس جو از کیت خود جواب

بگیرید.

برای مثال شما 7 بایت سئوال می فرستید :

$ 01 t C K CR

برای مثال $ : کد ارسال
01 : آدرس پورت
t : فاصله گذار
CK : چک کن CRC
CR : کد Enter

و در جواب :

$ 01 000000000 t C K CR

این هم درجوابی که می گیرید ولی 0000000 جواب شما می باشد.

ولی چطور این CRC رو چک می کنن و یا می سازن ، اگر منظورتون من فهمیده باشم .

در ادامه خواهم گفت.

البته این در صورتی است که شما AVR خود را با Bascom طوری Program کرده باشید که برای سئوال و جواب طراحی شده باشه.

موفق باشید :)

hamed_mp
سه شنبه 14 اسفند 1386, 21:18 عصر
من متا سفانه دقیقا متوجه نشدم می تونید بیشتر توضیح بدید

البته استاد من جزئیاتی در مورد پرو‍‍سه برای من نوشتن که در اینجا اضافه می کنم


protocoli ke bayad tarif beshe :
MASTER:
1. 02 HEX(byte shoro)
2.bit (status) vazeiat ke bayad READ /WRITE bashad
3.shomareye port ya PORT ID
4.va agar dar ghasmate vazeiat WRITE bashe,meghdare ham bayad dar nazar begirim


SLAVE:
IF READ_
1. 02 HEX
2. port ID morede nazar (ke mikhahim meghdaresh khande shavad!)
3.meghdar(value)

IF WRITE_
1. 02 HEX
2.PORT ID

yashar666
سه شنبه 14 اسفند 1386, 23:53 عصر
نیاز به component هم نیست از خود ocx ویندوز استفاده کن MSComm.ocx
در system32 میتونی پیداش کنی و نصب کنیش

MSComm1.CommPort:=1;
MSComm1.PortOpen:=true;
MSComm1.Output:='yashar666';
مثلا این کار رشته yashar 666 رو به usart micro avr می فرسته از سی هم برای ارتباط با میکرو استفاده کن از Basic بهتر اول هم با نرم افزار کد ویژن اول در قسمت پور مجازی چکش کن بعد با دلفی ارتباط بگیر

yashar666
سه شنبه 14 اسفند 1386, 23:55 عصر
حواست باشه برای فرستادن اطلاعات از طریق avr باید برای هماهنگ کردن ولتاژ com و micro از آسی max232 استفاده کنی

Touska
چهارشنبه 15 اسفند 1386, 10:27 صبح
من متا سفانه دقیقا متوجه نشدم می تونید بیشتر توضیح بدید

البته استاد من جزئیاتی در مورد پرو‍‍سه برای من نوشتن که در اینجا اضافه می کنم


protocoli ke bayad tarif beshe :
MASTER:
1. 02 HEX(byte shoro)
2.bit (status) vazeiat ke bayad READ /WRITE bashad
3.shomareye port ya PORT ID
4.va agar dar ghasmate vazeiat WRITE bashe,meghdare ham bayad dar nazar begirim


SLAVE:
IF READ_
1. 02 HEX
2. port ID morede nazar (ke mikhahim meghdaresh khande shavad!)
3.meghdar(value)

IF WRITE_
1. 02 HEX
2.PORT ID


با سلام ، خوب من پرتوکلی که ه با CRC هم کار میکنه و در سیستم های اوتوماسیون

صنعتی ابزار دقیق گفتم

اگر استاد شما چنین پرتوکلی رو گفتن خوب از همین استفاده نمایید همین خوبه.

تا حدودی به هم شباهت دارن ولی CRC نداره.

در ادامه صحبت قبلی :

البته این در صورتی است که شما AVR خود را با Bascom طوری Program کرده باشید که برای سئوال و جواب طراحی شده باشه.

شما باید AVR خود رو طوری طراحی کنید که در صورت رسیدن سئوال و انجام اعمالی به شما

پاسخی بر اساس همان پرتوکل خروجی بدهد و شما بر اساس خروجی از صحت انجام کار خود

می توانید مطلع شوید.

البته این نوع طراحی میتونه به دو شکل باشه بصورت :

- Real Time
- پرسش و پاسخ

که در حالت معمول اکثر طراحی های سیستم به نوع اول می انجامند.

و نوع دوم بصورت حرفه ایی تر استفاده می شه. که در صورتی که شما یک سئوال داشته باشید.

به آن پاسخ داده می شود.

موفق باشید :)

N_D
پنج شنبه 16 اسفند 1386, 22:41 عصر
از دوستان کسی تونسته با دلفی از طریق USB با سخت افزار ارتباط برقرار کنه؟

hamed_mp
جمعه 17 اسفند 1386, 00:08 صبح
فکر کنم این هم مثل داستان من کامپوننت خاصی داشته باشه باید دنبال کامپوننتش بگردی

hesamy2004
شنبه 07 اردیبهشت 1387, 12:55 عصر
نیاز به component هم نیست از خود ocx ویندوز استفاده کن MSComm.ocx
در system32 میتونی پیداش کنی و نصب کنیش

MSComm1.CommPort:=1;
MSComm1.PortOpen:=true;
MSComm1.Output:='yashar666';
مثلا این کار رشته yashar 666 رو به usart micro avr می فرسته از سی هم برای ارتباط با میکرو استفاده کن از Basic بهتر اول هم با نرم افزار کد ویژن اول در قسمت پور مجازی چکش کن بعد با دلفی ارتباط بگیر

ببخشید من خیلی دلفی کار نیستم و فقط با اون آشنایی دارم.
اگه ممکنه به من بگید که چطور میتونم فایل OCX رو نصب کنم. ضمناً من تو System32 رو گشتم ولی MSComm.ocx رو پیدا نکردم ولی MSCOMCTL.OCX رو پیدا کردم. درصورت امکان راهنماییم کنید.

Valadi
شنبه 07 اردیبهشت 1387, 13:16 عصر
این اکتیو ایکس MSCOMM32.OCX به همراه فایل لایسنس

nouri2015
شنبه 07 اردیبهشت 1387, 13:29 عصر
اولا شما باید یکی از زبانهای برنامه نویسی ماکرو سافت رو نصب کنید تا اون اکتیو ایکس اونجا کپی بشه.
دوما برای کار با پورت سریال شما baud rate دستگاهتون را باید بدونید.
بعد از اون اگر ولتاز کارتون 12 (+ -)ولت باشه نیاز به max232 هم ندارید.
پس از اون نیاز به سیم بندی از پورت به دستگاهتون است با توجه به ورودی و خروجی های دستگاهتون.
پس از اون باید فرمت بایت های ارسال و دریافت دیتا رو بدونید مثلا چه اطلاعاتی باید بدی که اون به شما جواب بده و بر عکس و همچنین تعداد بیت ، StopBit دادهاتون که به صورت معمول 8 بیت در یک ارسال و stopbit یک است رو باید بدونید.
سپس از اکتیو ایکس mscom32 استفاده کنید .
اگر کمک بیشتر می خواهید ما هستیم.

hesamy2004
شنبه 07 اردیبهشت 1387, 22:58 عصر
این اکتیو ایکس MSCOMM32.OCX به همراه فایل لایسنس

دوست خوبم بابت راهنماییت ازت ممنونم ولی یه مشکلی هست که پیغام میده من اون فایل رو ندارم. تویه یه Tab جدید به اسم package dclusr; از خط آخرش ایراد میگیره


contains
uCiaComport in 'C:\Downloads\uCiaComPort.pas',
COMPORT,
MSCommLib_TLB in '..\Imports\MSCommLib_TLB.pas';

end.

File Error : dclusr.dpk[40]: File not found: 'uCiaComPort.dcu'

hesamy2004
یک شنبه 08 اردیبهشت 1387, 12:40 عصر
لطفاً منو یه راهنمایی کوچیک بکنید.

Valadi
یک شنبه 08 اردیبهشت 1387, 12:40 عصر
این پیغام خطا براینکه شما در لایبری دلفی تون uCiaComPort.dcu نیست
شما بایستی این فایل احتمالا برای یک کامپونت است که قبلا نصب کردید کپی کنید در لایبری دلفی

nouri2015
یک شنبه 08 اردیبهشت 1387, 14:46 عصر
uCiaComport in 'C:\Downloads\uCiaComPort.pas',
توی این مسیر وجود داره ؟ اگه نیست مسیرش رو مشخص کنید.

diplomat
سه شنبه 17 اردیبهشت 1387, 11:55 صبح
شما میتوانید از کامپوننت Comport استفاده کنید.

Procedure TransferData;
Var
A,B:Byte;
Begin
A:=1;
Comport1.port:='Com1';
Comport1.Open;
Comport1.Write(A,1);
Sleep(10);
Comport1.Read(B,1);
End;
در این پروسه عدد A عدد ارسالی شما برای AVR
و عدد B عدد دریافتی از AVR میباشد