PDA

View Full Version : توضیحاتی در مورد ارتباط با باسکول در vfp



alirezavafi
چهارشنبه 23 خرداد 1386, 17:18 عصر
این کدها با دو نوع از باسکولهای شرکت توزین الکتریک تست شده است.
این باسکول ها مکرراً 5 بایت به کامپیوتر ارسال می کنند.


برای ارتباط با باسکول باید از mscomm32 برای ارتباط با پورت سریال استفاده کرد.
طریقه وارد کردن اکتیو ایکس Mscomm32 به فرم برای خواندن اطلاعات از باسکول :

از جعبه ابزار گزینه OLE را انتخاب ، سپس گزینه
Microsoft Communication Control,version 6.0
را انتخاب کنید و آنرا مطابق زیر تنظیم کنید.

CommPort = 2<-- اگر از کام دو استفاده می کنید


InBufferSize = 1024
InputLen = 5
InputMode = 0 – text
Name = UseCom1
Rthreshold = 5
Settings = 9600,e,8,2


دقت کنید که در رویداد show فرم باید کام را بصورت زیر باز کنید:


thisform.usecom1.portopen = .t.

و در پایان کار نیز (در رویداد release فرم) ببندید:


thisform.usecom1.portopen = .f.

سپس با وارد کردن کدهای زیر در رویداد oncomm اکتیو ایکس مورد نظر که آنرا usecom1 نامیدیم با هر بار ورود اطلاعات را کنترل می نماییم و وزن حاصله را نمایش می دهیم :

متغیرهای برنامه
B1c وزن فعلی باسکول است.
B13a چک می کند وزن منفی است یا نه.
B15 , B16 , B17 حاوی وزن باسکول به همراه یک رقم اعشار می باشد.

فانکشنهای استفاده شده در برنامه
BitLshift شیفت بیها به چپ
Asc تبدیل به کد اسکی
Substr دریافت یک تکه از رشته مورد نظر


کدهایی که باید در رویداد oncomm اکتیو ایکس usecom1 نوشته شوند.



set talk off
set decimals to 1
set fixed on
b1a = thisform.usecom1.input
*b10a = val(substr(num2bin(asc(substr(b1a,1,1)),8),4,1))
*b10b = val(substr(num2bin(asc(substr(b1a,1,1)),8),2,1))
*b11 = num2bin(asc(substr(b1a,1,1)),8)
b12 = num2bin(asc(substr(b1a,2,1)),8)
b13a = val(substr(b12,5,1))
*b14 = bitlshift(asc(substr(b12,6,3)),21)
b15 = bitlshift(asc(substr(b1a,3,1)),14)
b16 = bitlshift(asc(substr(b1a,4,1)),7)
b17 = asc(substr(b1a,5,1))
b1c = (b15+b16+b17) / 10
if b13a = 1
b1c = b1c * -1
endif
thisform.text2.Value = b1c


********************

ar.vafi@gmail.com

rezamim
پنج شنبه 24 خرداد 1386, 07:04 صبح
نوشدارو بید بعد از مرگ من !
ممنون از اطلاعاتتون

وصال1386
پنج شنبه 24 خرداد 1386, 09:28 صبح
تشکر . عالی بود

kia1349
شنبه 26 خرداد 1386, 11:55 صبح
ممنون . برای خوانائی بهتر کدها میتونید از تگ های مربوطه استفاده کنید
http://www.barnamenevis.org/forum/misc.php?do=bbcode#code

rezamim
یک شنبه 23 تیر 1387, 22:25 عصر
سلام
جديدا يك باسكول پند مدل PU800 به پستم خورده كه توي دفترچه اش نوشته براي تنظيم پارامترهاي مورد نياز مقادير 2400 و n و 8 و 1 رو استفاده كنيد.
و بعد گفته اطلاعات مربوط به وزن با فرمت زير براي كامپيوتر ارسال ميشود:


StartCode - <-- Asci code 6 byte -->
0xbb - MSB - - - - - LSB


حالا من نميدونم چطور اين مقادير رو به مقادير عددي تبديل كنم.
ممنون ميشم اگر راهنمايي بفرماييد.

amso629
شنبه 02 شهریور 1387, 19:27 عصر
سلام
جديدا يك باسكول پند مدل PU800 به پستم خورده كه توي دفترچه اش نوشته براي تنظيم پارامترهاي مورد نياز مقادير 2400 و n و 8 و 1 رو استفاده كنيد.
و بعد گفته اطلاعات مربوط به وزن با فرمت زير براي كامپيوتر ارسال ميشود:


StartCode - <-- Asci code 6 byte -->
0xbb - MSB - - - - - LSB


حالا من نميدونم چطور اين مقادير رو به مقادير عددي تبديل كنم.
ممنون ميشم اگر راهنمايي بفرماييد.

شما با كابل RS232 معمولي با اين باسكول كار كرديد؟ چون من با كابل معمولي جواب نگرفتم.

rezamim
یک شنبه 03 شهریور 1387, 22:07 عصر
كابل معمولي يعني چي؟

daneshmand1354
دوشنبه 22 دی 1393, 10:23 صبح
با تشکر از دوستانی که این مطالب را گذاشته اند
اگر ممکن است تابع num2bin را هم ارسال کنید