PDA

View Full Version : سوال: اتصال ترازوی دیجیتال به پورت سریال کامپیوتر و گرفتن اطلاعات از ان



babak padede88
دوشنبه 21 دی 1388, 16:52 عصر
می خواهم برای یک شرکت تولید کننده بتن برنامه ای بنویسم. این شرکت از یک باسکول 60 تنی که به یک ترازوی دیجیتال متصل است استفاده می کند و این ترازو به پورت سریال کامپیوتر متصل است .برنامه باید اطلاعاتی شامل وزن بتن، نام راننده ، متراژ و عیار بتن را از ترازو دریافت کرده و فاکتور را محاسبه و صادر کند .
سوال من این است چگونه این اطلاعات را از ترازو دریافت کنم ؟:متفکر:

babak padede88
سه شنبه 22 دی 1388, 08:26 صبح
مدل ترازو pu800
و مقدار پارامترهای آن به این صوت است
-baud rate =2400bps - data bits = 8bits- stop bits = 1bits - parity = no
و دارای بایت header برای مشخص کردن هر یک از بندهای اطلاعاتی که به کامپیوتر ارسال می کند.:لبخندساده:

FastCode
سه شنبه 22 دی 1388, 08:37 صبح
میتونی یکم از اون بایتهارو بفرستی؟
اگر 3 4 کیلو بایت بدی برنامشو میفرستم.

babak padede88
سه شنبه 22 دی 1388, 10:44 صبح
به عنوان مثال
اطلاعات مربوط به وزن و کد اغازین(header) به این صورت است که 6 بایت کد اسکی برای اطلاعات وزن و یک بایت اطلاعات به صورت bb*0 به عنوان header به پورت سریال ارسال می شود. البته اطلاعات دیگری مثل نام راننده ، شماره ماشین ، نام کالا و... که در ترازو وجود دارد نیز به پورت سریال ارسال می شود که که header و تعداد بایتهای هر کدام از این اطلاعات ارسالی متفاوت می باشد .

FastCode
سه شنبه 22 دی 1388, 11:16 صبح
کاتالوگی چیزی داره بخونیم.
اگر 3 4 کیلوبایت به شکل هگزادسیمال بفرستی ممنون میشم.

ASKaffash
سه شنبه 22 دی 1388, 11:28 صبح
به عنوان مثال
اطلاعات مربوط به وزن و کد اغازین(header) به این صورت است که 6 بایت کد اسکی برای اطلاعات وزن و یک بایت اطلاعات به صورت bb*0 به عنوان header به پورت سریال ارسال می شود. البته اطلاعات دیگری مثل نام راننده ، شماره ماشین ، نام کالا و... که در ترازو وجود دارد نیز به پورت سریال ارسال می شود که که header و تعداد بایتهای هر کدام از این اطلاعات ارسالی متفاوت می باشد .

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

saed2006
سه شنبه 22 دی 1388, 11:50 صبح
سلام
با حدس و خطا فایده ندارد شما با تولید کننده باسکول تماس بگیرید و درایور ودر بدترین شرایط پروتوکل نرم افزاری ارتباط را بخواهید عموما همه درایور صحبت با دستگاه را دارند
میشه بگین منظورتون از درایور چیه و چجوری میشه توی این کار خاص ازش بهره گرفت؟

ASKaffash
سه شنبه 22 دی 1388, 12:24 عصر
سلام
من قبلا برای یک باسکول اینکار را انجام داده ام (یک سازمان دولتی) خود تولید کننده در این موارد یک DLL با مستندات فنی ارائه میدهد که شما از طریق این متدها میتوانید ارتباط با دستگاه را انجام دهید و حتی نیازی نیست که پروتکل را بدانید

ennovation
سه شنبه 22 دی 1388, 13:51 عصر
میشه مشخصات دقیق دستگاه رو بدی
روی این مدلی که دادی من چیزی پیدا نکردم.

babak padede88
سه شنبه 22 دی 1388, 16:12 عصر
در واقع نمایشگر مدل pu800 (ساخت شرکت صنایع پند) به پورت سریال کامپیوتر متصل است .این نمایشگر نیز از طریق پورت لودسل به باسکول 60 تنی متصل است.
تنها برگ راهنمای موجود به صورت شکل زیر می باشد

babak padede88
چهارشنبه 23 دی 1388, 09:48 صبح
با جستجو در اینترنت متوجه شدم بعضی نرم افزارهای مدیریت باسکول (مثل کانتار) اکثر نمایشگر ها به خصوص نمایشگر pu800 ساخت شرکت پند(که مورد نظر اینجاب نیز می باشد) را پشتیبانی می کند. و توانایی گرفتن انواع اطلاعات از این نمایشگرها را دار می باشد.

سوال من این است روش کار این نرم افزارها چگونه است ؟ لطفا اگر کسی در این زمینه تجربه یا اطلاعاتی دارد در اختیار بنده و کلیه کسان علاقه مند قرار دهد.:بوس:

ennovation
چهارشنبه 23 دی 1388, 15:28 عصر
سلام
من برای 2 باسکول چنین برنامه ای طراحی کردم ولی متاسفانه با باسکول مورد نظر تو کار نکردم ولی میدونم که روش کار یکی است .
این برنامه ها از چهار مرحله تشکیل میشن .
- معرفی پورت
- فرستادن اطلاعات
- انتظار برای گرفتن اطلاعات از باسکول
- گرفتن اطلاعات و نمایش آنها

من برای هر کدوم از این مرحله ها یک Method نوشتم کهامیدوارم بتونه کمی موضوع رو برات روشن کنه و بهت ایده بده .

- معرفی پورت

/// <summary>
/// Initializes the scale.
/// </summary>
private SerialPort InitializeSerialPort(string portName)
{
SerialPort serialPort = new System.IO.Ports.SerialPort();
serialPort.PortName = portName;
serialPort.BaudRate = 9600;
serialPort.DataBits = 8;
serialPort.Parity = System.IO.Ports.Parity.None;
serialPort.Handshake = System.IO.Ports.Handshake.None;
serialPort.RtsEnable = true;
serialPort.Encoding = Encoding.ASCII;
return serialPort;
}- فرستادن اطلاعات
توی این مرحله مهمترین چیز پیغام یا دستوری است که باید بصورت هگزادسیمال به باسکول بفرستی . مثلا برای اینکه من به باسکول دستور بدم که وزن را برایم بفرست بایداز این پیغام استفاده میکردم: #DR#0#1
تو هم باید توی کاتولگهای باسکول بگردی و پیغام رو پیدا کنی یا با شرکت تولید کننده تماس بگیر و ازشون بخواه که برات بفرستن .
بهرحال بعد از بدست آوردن پیغامی که لازم داری باید اونو تبدیل به هگزادسیمال کنی و به پورت بفرستی. معمولا یک پیغام از سه قست تشکیل میشه که پشت سر هم به پورت میفرستی .
- بایت اول واسه شروع دستورو فراخوانی باسکول
- بایتهای بعدی بستگی به باسکول داره و دستور مورد نظر است .
- بایت آخر برای خاتمه دستور.
مثلا بایت اول 0x02 , بایت آخر 0x03
من این پیغام رو بعد از تبدیل به هگزادسیمال به پورت میفرستم :

/// <summary>
/// Sends the message to port.
/// </summary>
/// <param name="serialPort">The serial port.</param>
private void SendMessageToPort(SerialPort serialPort)
{
if (!serialPort.IsOpen)
{
serialPort.Open();
}
string message = string.Format("0{0}#DR#0#");
String unicodeString = message;
Encoding ascii = Encoding.ASCII;
Byte[] encodedBytes = ascii.GetBytes(unicodeString);
serialPort.Write(new byte[] { 0x02 }, 0, 1);
serialPort.Write(encodedBytes, 0, encodedBytes.Length);
serialPort.Write(new byte[] { 0x03 }, 0, 1);
}
انتظار برای جواب باسکول
متدی که من برای انتظار جواب نوشتم ضمیمه کردم . ولی میتونی راحت کد رو متوجه بشی

گرفتن اطلاعات و نمایش آنها
باسکول یک پیغام کد شده رو برات میفرسته که میتونی اونو تفسیر کنی و از متغیرهای اون استفاده کنی . مثلا باسکول من این جواب رو میداد :
11#DR#0#01#DR#0#0#81#2009-10-14#08:17# 623#
و من اینجوری اونو تفسیر میکردم:


string reg = @"([0-9]\d )(.{15})(?<PrinterID>.{1})(.{1})(?<SaveState>.{1})
(.{1})(?<ScaleState>.{2})(.{1})(?<Date>.{10})(.{1})(?<WeighTime>.{5})(.{1})(?<WeighID>.{5})(.{1})
(?<Weight>.{7})(?<Unit>.{4})(?<WeighKind>.{4})";
parser = new Regex(reg, RegexOptions.IgnorePatternWhitespace);
Match match = parser.Match(received);
weight = decimal.Parse(match.Result("${Weight}"), CultureInfo.InvariantCulture);
string dateWeightStr = match.Result("${Date}").Trim();
date = Convert.ToDateTime(dateWeightStr);
unit = match.Result("${Unit}").Trim();
match.Result("${PrinterID}").Trim());
weighTime = match.Result("${WeighTime}").Trim();
weighID = Convert.ToInt32( match.Result("${WeighID}").Trim());
weighKind = match.Result("${WeighKind}").Trim().Equals("B") ? WeighKind.Gross : WeighKind.Net;

امیدوارم تونسته باشم کمی کمکت کرده باشم

babak padede88
چهارشنبه 23 دی 1388, 18:17 عصر
با تشکر از جواب خیلی خوب شما(ennovation)
یک نکته را باید بگوییم که نمایشگر pu800 یک ترازوی دیجیتال نیست بلکه یک نمایش دهنده وزن است که واسط بین باسکول و سیستم است وهمین جا اصلاح می کنم که ترازوی دیجیتال به پورت سریال کامپیوتر وصل نیست بلکه نمایشگر وزن به پورت سریال کامپیوتر وصل است البته فکر نمی کنم از نظر برنامه نویسی زیاد فرقی داشته باشد.
در رابطه با جواب شما (ennovation) چند نکته مطرح است که
1- با توجه به برگ راهنمای نمایشگر که در یک از تایپیکها موجود است اطلاعات مربوط به وزن به صورت پیوسته به سیستم ارسال می شود و در هنگام چاپ فاکتور توسط پرینتری که با پورت پارالل به نمایشگر pu800 متصل است کلیه اطلاعات مربوط به وزن شامل وزن ، نام راننده، شماره ماشین و... به کامپیوتر ارسال می شود ایا باز برای گرفتن اطلاعات از نمایشگر باید دستوراتی را از طریق برنامه send کنیم؟
2- در هنگام دریافت اطلاعات از ترازو (یا نمایشگر وزن) اگر بیش از یک نوع اطلاعات مثلاً 2 نوع اطلاعات شامل وزن و نام راننده ارسال شود و ما بخواهیم در دو text box نمایش دهیم روش کار چگونه است و کلاً چگونه بین اطلاعات ارسالی توسط برنامه فرق ایجاد می شود؟
3- ایا قبل از مشخص کردن پورت سریال در برنامه ، ایا باید ترازو یا نمایشگر را روی یکی از پورت های سریال تنظیم کرد . یا فرقی نمی کند که کدام پورت سریال را در برنامه مشخص کنیم؟:متفکر:

ennovation
پنج شنبه 24 دی 1388, 23:38 عصر
سلام و معذرت از جواب دیر من !

ایا باز برای گرفتن اطلاعات از نمایشگر باید دستوراتی را از طریق برنامه send کنیم؟

من فکر نکنم که نمایشگر تمام مدت سیگنالی به خروجی بفرسته تا اطلاعات به روز باشه بلکه منتظر این میشه که شما از نمایشگر درخواست اطلاعات بکنید .

و کلاً چگونه بین اطلاعات ارسالی توسط برنامه فرق ایجاد می شود؟
به جوابی که باسکول به من فرستاده دقت کن
1#DR#0#01#DR#0#0#81#2009-10-14#08:17# 623
توی این کد شماره باسکول تاریخ کشیدن وزن و ساعت و شماره قبض رو میتونی ببینی که با علامت # از هم جدا شدن .حالا این وظیفه تو است که این کد رو قطعه قطعه کنی و اطلاعات مورد نظرتو در بیاری . اگه یه نگاهی به کد من بیندازی میبینی که من هم همینکار رو کردم

3- ایا قبل از مشخص کردن پورت سریال در برنامه ، ایا باید ترازو یا نمایشگر را روی یکی از پورت های سریال تنظیم کرد . یا فرقی نمی کند که کدام پورت سریال را در برنامه مشخص کنیم؟:متفکر:
حتما همینطوری هست . توی تنظیمات نمایشگر حتما این موضوع گفته شده .

poorhasan
دوشنبه 03 خرداد 1389, 10:48 صبح
سلام دوست عزیز
منم خیلی با این موضوع سروکله زدم و تونستم مشکل رو حل کنم
روشی که من استفاده کردم اینه که با توجه به همون فریم اطلاعات که توی کاتالوگ داده باید یه برنامه ساده بنویسی و به صورت نجربی بدست بیاری که ضرایب وزن با تغییرات وزن چه جوری تغییر می کنه یعنی اون 6 بایت رو که زده ضرایب وزن باید ببینی تو وزن 0 مقدار اولیه شون چنده و با اضافه شدن وزن چه تغییری می کنه بعد که یک رابطه بدست اوردی یعنی صدگان و دهگان و .... می تونی با یه فرمول ساده وزن رو بدست بیاری
با هایپر ترمینال ویندوز هم میتونی وزن رو ببینی ولی من که هنوز نتونستم ارتباطی با هایپر و یکی از زبانهای برنامه نویسی پیدا کنم
در هر صورت اگر اطلاعات بیشتری خواستی می تونم کمکت کنم

Searcher90
شنبه 06 اسفند 1390, 16:02 عصر
سلام
حالا اگه با مبدل ترازو را به پورت usb وصل کنیم چی؟من با پورت سریال مشکلی ندارم ولی سر این پورت usb حسابی حالم گرفته شده،کسی نمیتونه کمکم کنه؟

Esmail Solhkhah
شنبه 06 اسفند 1390, 16:40 عصر
حالا اگه با مبدل ترازو را به پورت usb وصل کنیم چی؟من با پورت سریال مشکلی ندارم ولی سر این پورت usb حسابی حالم گرفته شده،کسی نمیتونه کمکم کنه؟
این تیپ اینترفیسها معمولا با پورت سریال طراحی میشن یه دلیلش اینه که تو قسمت سخت افزاری معمولا یه میکروکنترلر استفاده میشه که اکثر میکروها پورت سریال دارن ولی پورت

USB تو بیشتر میکروها نیست (نگفتم همه ها ! بعضی از میکروهای جدید USB هم دارن) و دلیل دوم کدنویسی راحت پورت سریال نسبت به USB

احتمال قریب به یقین ترازوی شما هم از این تیپه پس از یه مبدل USB به Serial استفاده کنید

برا تست دیتا هم ازHyper Terminal استفاده کنید (پارامترهای پورت رو تنظیم کنید)

موفق باشید.

mahdipc
جمعه 10 مهر 1394, 16:52 عصر
سلام دوستان. زیر خاکی بالا اوردم چون مشکل منم شبیه به این سواله. ولی من از صفحه نمایش اطلاعات گرفتم ولی متاسفانه به این صورت میاد
D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
بصورت نامفهوم. خوشحال میشم کسی توضیح بده چیکار کنم؟

esagraphic
جمعه 10 مهر 1394, 17:34 عصر
سلام دوستان. زیر خاکی بالا اوردم چون مشکل منم شبیه به این سواله. ولی من از صفحه نمایش اطلاعات گرفتم ولی متاسفانه به این صورت میاد
D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
?K?*?D?????6
بصورت نامفهوم. خوشحال میشم کسی توضیح بده چیکار کنم؟


سلام کد کامل که استفاده کردی برای دریافت وزن را بزار و از .trim استفاده کن که فاصله ها را حذف کنه و توسط replace همه حروف علامات اظافه را حذف کن وزن مورد نظرت حالا 6 کیلو است که فرستاد چرا صفر نداره یا همینجوری است

mahdipc
جمعه 10 مهر 1394, 19:25 عصر
سلام کد کامل که استفاده کردی برای دریافت وزن را بزار و از .trim استفاده کن که فاصله ها را حذف کنه و توسط replace همه حروف علامات اظافه را حذف کن وزن مورد نظرت حالا 6 کیلو است که فرستاد چرا صفر نداره یا همینجوری است
باید وزن رو بصورت شیش رقمی بیاره که رقم سمت راستش یا منفی هست یا صفر...کد ها هم از کدهای نمونه استفاده کردم/





private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{


strRecieve = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}

private void DisplayText(object sender, EventArgs e)
{

textBox2.AppendText(strRecieve+"\t");

}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = listBox1.Text;


strbaud = comboBox2.Text;
serialPort1.Close();


try
{
serialPort1.DataBits = 8;
serialPort1.Parity = Parity.None;
serialPort1.StopBits = StopBits.One;
serialPort1.BaudRate = int.Parse(strbaud);
serialPort1.PortName = comboBox1.Text;
serialPort1.Open();
serialPort1.DtrEnable = true;
//serialPort1.Encoding = Encoding.GetEncoding("utf-8");
serialPort1.DiscardInBuffer();
label1.Text = "( " + comboBox1.Text + " )" + " CONNECTED ";
label1.BackColor = System.Drawing.Color.Green;
label1.ForeColor = System.Drawing.Color.White;


}


catch
{
label1.Text = "Disconnected";
label1.BackColor = System.Drawing.Color.Red;
label1.ForeColor = System.Drawing.Color.White;
MessageBox.Show("Can't Access " + "(" + comboBox1.Text + ")", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
}


}

esagraphic
جمعه 10 مهر 1394, 20:26 عصر
سلام دوست عزیز ببینم از این روش استفاده کن ببین کار میده من خودم تو برنامه ام از این روش استفاده میکنم از باسکول وزن را میخونم
ببین تو رویداد Data recived اینطوری بنویس


StrRecieve = serialPort1.ReadExisting();


try
{
if (StrRecieve.Length > 5)
{
buf = StrRecieve;
buf = buf.Trim();
buf = buf.Substring(1, 7);
buf = buf.Replace("+", "");
buf = buf.Replace("", "");
finalweight = buf;


}
}
catch (Exception ex)
{


MessageBox.Show(ex.Message);
}




this.BeginInvoke(new EventHandler(DisplayText));

ببین اول یه string ساختم که تو کل برنامه بتونم ازش استفاده کنم به نام buf بعدش buf را مساوی به StrRecieve قرار دادم بعد با trim تمام استرنگ های خالی را حذف کردم
buf = buf.Trim();
بعد تمامی دیتا های که از پورت سریال میامد توی همون buf بود بعدش از شماره اول تا7 را نظر به نیازم جدا کردم شش رقم بود یک علامت مننفی است که زمانی وزن منفی بشه میاد

buf = buf.Substring(1, 7);
بعد با replace همزای وزن من تنها علامت مثبت دریافت میکردم تمامی مثبت ها را حذف کردم شما میتونی علامت سوالیه و حروف d را حذف کنی بعدش یک استرنگ دگه من طبق نیازم داشتم به نام finalweigt که از buf میگره شما همین کارو بکن ببین چی نتیجه میگیری بعدش هم به جای


private void DisplayText(object sender, EventArgs e)
{

textBox2.AppendText(strRecieve+"\t");

}


اینطوری بنویس


private void DisplayText(object sender, EventArgs e)
{

textBox2.Text = buf;




}

mahdipc
جمعه 10 مهر 1394, 20:42 عصر
عزیز دل مشکل من بازی با رشته ها نیس. من اون چیزایی که میگیرم بصورت نامفهم میاد. با برنامه ترمینال هم گرفتم ولی باز ناخوانا بود.
ورودی ها رو اگه من ؟؟؟؟؟؟؟؟؟؟؟؟ اینطوری نگیرم میتونم خودم تبدیل کنم. از این کد هم serialPort1.Encoding = Encoding.GetEncoding("utf-8"); استفاده کردم ولی جواب نمیده:|:گریه:

hamishe15
یک شنبه 13 تیر 1395, 11:55 صبح
سلام من هم خیلی استفاده کردم و کاملاً مشکلم با دریافت وزن از ترازو حل شده! اما یک مشکل دارم و اونم اینه که « چطوری میتونم مبلغ رو از ترازو بگیرم؟؟؟؟؟:متفکر:
دوستان در صورتیکه بتونن راهنمایی کنند ممنون میشم؟

RamezanBeik
دوشنبه 14 تیر 1395, 15:45 عصر
سلام ببنید
دوستان بر حسب تجربه عرض می کنم
معمولا شما باید دیتا شیت اینجور دستگاه ها رو داشته باشید تا بتونید با فرمت های خاص اون میکرو کار کنید
در غیر این صورت امکان نداره شما بتونید همینجوری اطلاعات رو بفرستید یا بخونید
چون فقط کافیه یه بیت شیفت داشته باشید تا همه چه بهم بخوره
موفق باشید

jamshid2008
پنج شنبه 14 مرداد 1395, 23:59 عصر
می خواهم برای یک شرکت تولید کننده بتن برنامه ای بنویسم. این شرکت از یک باسکول 60 تنی که به یک ترازوی دیجیتال متصل است استفاده می کند و این ترازو به پورت سریال کامپیوتر متصل است .برنامه باید اطلاعاتی شامل وزن بتن، نام راننده ، متراژ و عیار بتن را از ترازو دریافت کرده و فاکتور را محاسبه و صادر کند .
سوال من این است چگونه این اطلاعات را از ترازو دریافت کنم ؟:متفکر:

سلام
من یک dll دارم واسه ترازوی محک فقط تو هر برنامه ای کافیه لود بشه وزن رو که نشون داد دابل کلیک کنی مقدار وزن میوفته توی تکست باکس
141858

jamshid2008
جمعه 15 مرداد 1395, 00:12 صبح
ReadSalePacket (index)
index : 0=Vazni,1=DateStr,2=TimeStr,3=Memory,4=FactorNo,5= Price,6=Weight,7=IP,8=ISRepeat

alfa0282
دوشنبه 23 بهمن 1396, 16:28 عصر
سلام من هم خیلی استفاده کردم و کاملاً مشکلم با دریافت وزن از ترازو حل شده! اما یک مشکل دارم و اونم اینه که « چطوری میتونم مبلغ رو از ترازو بگیرم؟؟؟؟؟:متفکر:
دوستان در صورتیکه بتونن راهنمایی کنند ممنون میشم؟



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

علی فتحی
پنج شنبه 04 مهر 1398, 18:08 عصر
سلام من این اطلاعات را از کاتال.گ گرفتم ولی 2 مشکل وجود دارد.
1- نمایش بصورت لرزشی است
2- 6 صفر نمایش داده میشه در اول وزن

مدل 3000 outdoor .2-6-16
به صورت outdoor با انتخاب این گزینه وزن ارسالی به پورت سریال جهت نمایشگر
به شکل زیر خواهد بود: ASCII
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

علی فتحی
پنج شنبه 04 مهر 1398, 18:09 عصر
اینم کدی که نوشتم

private void button3_Click(object sender, EventArgs e) {
try
{
serialPort1.Open();
serialPort1.PortName = Properties.Settings.Default.PortName.ToString();
serialPort1.BaudRate = int.Parse(Properties.Settings.Default.BaudRate.ToS tring());
serialPort1.DataBits = int.Parse(Properties.Settings.Default.DataBits.ToS tring());
if (Properties.Settings.Default.Parity == "None")
serialPort1.Parity = Parity.None;
if (Properties.Settings.Default.Parity == "Odd")
serialPort1.Parity = Parity.Odd;
if (Properties.Settings.Default.Parity == "Even")
serialPort1.Parity = Parity.Even;
if (Properties.Settings.Default.StopBits == "One")
serialPort1.StopBits = StopBits.One;
if (Properties.Settings.Default.StopBits == "Two")
serialPort1.StopBits = StopBits.Two;
}
catch
{
}
}
private void DisplayText(object sender, EventArgs e)
{
//textvazn.AppendText(StrRecieve);
textvazn.Text = StrRecieve.Replace("p+","").Trim();
}
string StrRecieve;
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
StrRecieve = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));

}

علی فتحی
شنبه 06 مهر 1398, 21:42 عصر
با سلام مجدد وزن درست نمایش داده میشه ولی هنگام ثبت کد زیر ثبت میشه در ضمن اصل وزن 1997 می باشد

60000p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
p+ 00000
p+ 00000
p+ 0 0000
p+ 00 000
p+ 000 00
p+ 000 00
p+ 0000 0
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p+ 00000
p + 00000
P + 00000
P+ 00020
@+ 00050
@+ 0 0080
@+ 00 080
@+ 001 20
@+ 0017 0
@+ 00220
@+ 00320
@+ 00320
@+ 00370
@+ 00410
@+ 00530
@+ 00610
@+ 00690
@+ 00690
@+ 00780
@ + 00990
@+ 00990
@+ 01090
@+ 0 1190
@+ 01 360
@+ 01 450
@+ 015 20
@+ 0158 0
@+ 01580
@+ 01640
@+ 01750
@+ 01800
@+ 01860
@+ 01910
@+ 01960
@+ 02000
@+ 02020
@ + 02050
@ + 02060
@+ 02060
@+ 02060
@+ 0 2060
@+ 02 060
@+ 020 60
@+ 0206 0
@+ 0197 0
@ + 01970
@+ 01970
@+ 01970
@+ 01 970
@+ 01970
@+ 01970
@+ 01970
@+ 01970
P+ 01 970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 0 1970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 0 1970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 019 70
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P + 01970
P+ 01970
P+ 01970
P+ 01970
P+ 0 1970
P+ 01 970
P+ 019 70
P+ 0197 0
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970
P+ 01970

علی فتحی
پنج شنبه 11 مهر 1398, 21:05 عصر
سلام کسی نیست جواب بده لطفا

علی فتحی
چهارشنبه 20 آذر 1398, 00:46 صبح
سلام لطفا جواب بدین

علی فتحی
سه شنبه 22 بهمن 1398, 01:08 صبح
جوابببببببببببببببببببببب بببب لطفا"

saeedreza20
پنج شنبه 27 شهریور 1399, 13:33 عصر
سلام ببخشید این dll رو میشه بگذارید برای دانلود؟ گرچه ملطب برای سال پیشه:متعجب:

این کدها برای اکسس هم هست؟