PDA

View Full Version : سوال: نوشتن برنامه برای باسکول دیجیتال



علی فتحی
دوشنبه 10 خرداد 1395, 00:17 صبح
سلام چگ.نه میتوان برای باسکول رو ی رایانه پورت تعریف کرد با سی شارپ

reza_ali202000
دوشنبه 10 خرداد 1395, 00:32 صبح
سلام دوست عزیز
از سریال پورت استفاده کنید. عموما روی هر باسکول بیت ریت و دیتا ریت رو نوشته.
بعد نوع اطلاعاتی رو که ارسال میکنه رو نیز نوشته. مثلا 10 کاراکتری. که بعد از خوندن اون اطلاعات میتونید با کم و زیاد کردن نمایش بیت ها عدد باسکول رو بدست بیارید.

علی فتحی
چهارشنبه 13 مرداد 1395, 02:18 صبح
مرسی از جوابتون من عکس زیر پورت باسکول رو کشیدم آیا سریال پورت همین است؟
اگر درسته ممنون میشم نحوه کد نویسی رو ارائه فرمایید.
141828

reza_ali202000
چهارشنبه 13 مرداد 1395, 18:16 عصر
سلام دوست عزیز.
RS232 هست ولی باید دید خروجی هست یا ورودی.
با هایپرترمینال تستش کنید ببینید اطلاعات میفرسته یا خیر. اگه میفرستاد بعد دیتاشو حالتهای استاندارد بزارید و تست کنید تا عددی رو که نشون میده توی هایپر ترمینال هم بهتون نشون بده.

علی فتحی
چهارشنبه 13 مرداد 1395, 18:42 عصر
اصلا متوجه منظورتون نشدم . هایبرترمینال اصلا چی هست؟

علی فتحی
جمعه 15 مرداد 1395, 22:34 عصر
http://s2.picofile.com/file/8262622126/RS232.zip.htmlلطفا یک نمونه اتصال به پورت و نحوه شناسایی رو اینجا قرار بدین

reza_ali202000
یک شنبه 17 مرداد 1395, 01:13 صبح
http://s2.picofile.com/file/8262622126/RS232.zip.htmlلطفا یک نمونه اتصال به پورت و نحوه شناسایی رو اینجا قرار بدین
این فایلی رو که فرستادید درسته و به راحتی به باسکول وصل میشه.
BaoudRate:1200
ReadBufferSize:2048
و توی ایونت serialPort1_DataReceived:

try
{
//lblvazn.Text = "0";
string s = serialPort1.ReadExisting();
int j = 0;
int k = 0;
for (int i = 0; i < s.Length; i++)
{
try
{
if (Convert.ToInt32(s.Substring(i, 1)) >= 0)
{
j = i;
i = s.Length;
}
}
catch { }
}
string s2 = s.Substring(j);
string w = "";
for (int i = 0; i < s2.Length; i++)
{
try
{
if (Convert.ToInt32(s2.Substring(i, 1)) >= 0)
{
w += s2.Substring(i, 1);
}
}
catch
{
k = i;
i = s2.Length;
}
}
//string s2 = s.Substring(0, 10).Replace("P","").Replace("p","").Replace("+","").Replace("\r","").Replace("t","").Replace("T","").Replace("-","");
// if (w.Length > 5)
lblvazn.Text = w;//(Convert.ToDecimal(w)).ToString();//Convert.ToDecimal( s.Substring(j, k)).ToString("000000");//(Convert.ToDecimal( s.Substring(j,k))).ToString("00000");// Convert.ToDecimal(s).ToString("00000");

}
catch
{

}

فقط یادتون باشه lblvan لیبلی هست که مقدار باسکول رو توش نمایش میدم.

reza_ali202000
یک شنبه 17 مرداد 1395, 01:15 صبح
بعد از اینکه دکمه اتصال رو زدید و پورت رو باز کردید دستورات بالا شروع به کار میکنن.

علی فتحی
یک شنبه 17 مرداد 1395, 19:12 عصر
با عرض سلام مجدد و تشکر از جواب دوستان من تنظیمات پورت رو پیدا کردم روی باسکول :
1-فرمت ارسال = Alpha
2-تنظیمات سرعت =1 8 n 1200

تنظیمات سرعت معلومه:
stop bit=1
data=8
parity=n
baud rate=1200

فرمت ارسال چی است و کجا استفاده میشه ؟ Alpha

علی فتحی
یک شنبه 17 مرداد 1395, 21:10 عصر
اینم نمونه که خودم ساختم لطفا در نحوه کد نویسی و بهینه کردن کمک کنید. با تشکر

http://s1.picofile.com/file/8262883884/Baskol.zip.html

علی فتحی
یک شنبه 17 مرداد 1395, 21:39 عصر
اینم یک سری کد که نتونستم استفاده کنم .

WeighingForm.MySetting.ComPortNo = this.d.Text; WeighingForm.MySetting.BaudRate = Convert.ToInt32(this.j.Text);
WeighingForm.MySetting.DataBits = Convert.ToInt32(this.k.Text);
WeighingForm.MySetting.parity = this.l.Text;
WeighingForm.MySetting.StopBoit = Convert.ToInt32(this.m.Text);
WeighingForm.MySetting.OutdoorType = this.o.Text;
WeighingForm.MySetting.SaveSetting();
WeighingForm.Closeflag = true;
int num1 = (int) MessageBox.Show("تنظیم پورت سریال تغییر کرد");








WeighingForm.MySetting.LoadSetting();
this.d.Text = WeighingForm.MySetting.ComPortNo;
this.j.Text = WeighingForm.MySetting.BaudRate.ToString();
this.k.Text = WeighingForm.MySetting.DataBits.ToString();
this.l.Text = WeighingForm.MySetting.parity;
this.m.Text = WeighingForm.MySetting.StopBoit.ToString();
this.o.Text = ((object) WeighingForm.MySetting.OutdoorType).ToString();
this.q.Text = WeighingForm.MySetting.MahakIdCode.ToString();

علی فتحی
سه شنبه 19 مرداد 1395, 01:31 صبح
دوستان حرفه ای ممنون میشم نمونه سورس ارسالی رو اصلاح بفرمایید .پست 10
پست 9 .alpتفاده بشهh هست و کجا باید اسa. چی

علی فتحی
چهارشنبه 20 مرداد 1395, 23:42 عصر
خود دستگاه باسکول یک پورت ورودی و یک پورت خروجی داره کامپیوتر باید به کدوم وصل بشه؟

reza_ali202000
پنج شنبه 21 مرداد 1395, 10:02 صبح
سلام دوست عزیز.
باید به پورت خروجی وصل بشه.
برید توی تنظیمات خود دستگاه باسکول قسمت کانکشن رو چک کنید.
زمانی که پورت رو اپن میکنید تکس دریافت میکنید. حالا ایا این تکسی رو که دریافت میکنید اعدادی مفهوم هم داخل هست یا خیر؟ ایا تمام کاراکترها نامفهوم هستن؟ اگهنامفهوم هستن بیت ریتشو تغییر بدین

esagraphic
چهارشنبه 28 مهر 1395, 12:56 عصر
سلام اگه به نتیجه نرسیدی به من پیام بزار کارم کلا همین باسکوله و برنامه نویسی اش میتوتم تا حدی کمکت کنم شماره تلگرامم اینه
۰۰۹۳۷۹۴۰۴۰۲۹۸

rezaeyan
شنبه 06 آذر 1395, 22:11 عصر
سلام دوست عزیز.
باید به پورت خروجی وصل بشه.
برید توی تنظیمات خود دستگاه باسکول قسمت کانکشن رو چک کنید.
زمانی که پورت رو اپن میکنید تکس دریافت میکنید. حالا ایا این تکسی رو که دریافت میکنید اعدادی مفهوم هم داخل هست یا خیر؟ ایا تمام کاراکترها نامفهوم هستن؟ اگهنامفهوم هستن بیت ریتشو تغییر بدین
سلام
یت ریتشو تغییر دادم بازم مامفهومه
چیکار کنم؟؟؟
باسکول پند مدل px6000

esagraphic
یک شنبه 07 آذر 1395, 14:38 عصر
کابل خروجی اش ر ا چک کنید

rezaeyan
یک شنبه 07 آذر 1395, 20:40 عصر
کابل خروجی اش ر ا چک کنید
کابل درسته
اطلاعات دریافتی نامفهومه

علی فتحی
جمعه 16 خرداد 1399, 22:30 عصر
اینم اطلاعات باسکول یک سری کد هم داده ممنون میشم راهنمایی کنید مشکل بنده فقط در نمایش عدد می باشد

Outdoor 3000 Samples:
P+ 01994
@+ 01990
@+ 01993
p+ 00000
I>>>>>>>
@- 01994
@-01,994
p+00,000
P+01,994
all packets ended with Enter character with ascii code=0x0d


Line2: stable weight no decimal point {P+ 01994}
Line3 and Line4: varying weight(motion) {@+ 01990} and {@+ 01993}
Line5: zero stable weight {p+ 00000}
Line6: Error {I>>>>>>>}
Line7: negative weight {@- 01994}
Line8: negative weight + decimal point=3 {@-01,994}
Line9: zero stable weight + decimal point=3 {p+00,000}
Line10: stable weight + decimal point=3 {P+01,994}


default RS232 serial port Settings : 9600,8,E,2
outdoor 3000 RS232 serial port Settings: 2400,7,E,1