Chao cac bac! Em dang viet chuong trinh nhan du lieu lieu truyen ve tu dau can bang VB6. Nhung dang gap chut van de mong cac bac ra tay giup do. Khi truyen ve indicator weight truyen 10 bít vi du : -0.000kgCrLF . Nho cac bac ra tay chi giup em lam sao lay duoc chuoi du lieu : 0.000kg. Vi vao thoi diem nhan connect ta co the nhan duoc ky tu thu nhat hoac ky tu thu 6.
Thông báo
Collapse
No announcement yet.
Lay du lieu tu bo chi thi so can?
Collapse
X
-
Nguyên văn bởi phamhoangdunChao cac bac! Em dang viet chuong trinh nhan du lieu lieu truyen ve tu dau can bang VB6. Nhung dang gap chut van de mong cac bac ra tay giup do. Khi truyen ve indicator weight truyen 10 bít vi du : -0.000kgCrLF . Nho cac bac ra tay chi giup em lam sao lay duoc chuoi du lieu : 0.000kg. Vi vao thoi diem nhan connect ta co the nhan duoc ky tu thu nhat hoac ky tu thu 6.
dùng so sánh ký tự tìm ra đầu chuỗi và cuối chuỗi
sau đó dùng
Trim(), Left(), Right() của vb mà cắt bỏ những phần lôi thôi--------------------------------------------------------------
Bán các loại UPS Online công suất từ 1KVA đến 800 KVA và Accu cho UPS + Ôtô
--------------------------------------------------------------
-
Nếu sử dụng Timer , bạn nên nhận chuỗi dữ liệu và lưu vào bộ đệm , sau đó kiểm tra và lọc lấy dữ liệu đúng để hiển thị.
Giả sử bạn nhận khung dữ liệu : 1 byte bắt đầu+4 byte data + 1 byte kết thúc
VD :
Buffer$=Buffer$ + MSComm1.Input
sau đó kiểm tra byte bắt đầu và kết thúc (dùng lệnh Instr ), nếu đúng thì lọc 4 byte data ra hiển thị.
Comment
-
Minh da su dung timer nhung do du lieu truyen lien tuc nen khi minh nhan Connect thi co khi hien thi dung va co khi hien thi sai. Vi du minh co mot chuoi sau --0.000kgCr
minh viet doan code nhu sau :
im str As String
Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
MSComm1.InputLen = 10
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
if MSComm1.PortOpen = True then mscomm1.portOpen = False
End
End Sub
Private Sub Timer1_Timer()( interval=10)
If MSComm1.InBufferCount = 10 Then
str = MSComm1.Input
lblnhan.Caption = Mid(str, 3, 5)
End If
End Sub
Ket qua neu nhu dung thoi diem thi no hien thi = 0.000
Neu khong dung thoi diem thi no hien thi = .000 hoac .00 hoac 0 hoac khogn co gi het
Mong cac bac chi dum.
Comment
-
Ban thu dung su kien oncom xem !Tuy nhien de 1 du lieu chac chan hon le thi so byte nan ve phai lon hon so byte trong chuoi format.Thi du 1 chuoi format la 18 byte thi nen lay ve 38 byte va dung ham Instr de tim ra ma dau (vit du NET+chr$(10)+chr$(13)) .chuoi can lay la 7 byte ke tiep.
If MSComm1.CommEvent = comEvReceive Then
sss = MSComm1.Input
chuoidau=NET+chr$(10)+chr$(13)
pos = InStr(sss, chuoidau)
KL=Val(Mid$(sss, pos + 1, 4))
txtKl=Mid$(sss, pos + 1, 7)Thiết bị định vị ,hộp đen :
Comment
-
Như mình đã nói ở trên, không nên chỉ nhận một lần bằng lệnh str=MSComm1.Input , vì như vậy dễ bị sai dữ liệu.
Bạn nên nhận liên tục cả một chuỗi dài : str=str+MSComm1.Input
Sau đó kiểm tra , lọc lấy dữ liệu cần cho đến khi chắc chắn nhận đúng dữ liệu.
Comment
-
Minh da lam nhu the nay ma van ko duoc.
Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
MSComm1.InputLen = 20
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
if MSComm1.PortOpen = True then mscomm1.portOpen = False
End
End Sub
Private Sub Timer1_Timer()( interval=10)
If MSComm1.InBufferCount =0 Then
str = MSComm1.Input + mscomm1.Input
chuoicuoi = chr(Cr)
pos = InStr(str, chuoicuoi)
lblnhan.Caption = Mid$(str, pos - 2, 5)
End If
End Sub
Mong cac bac chi dum em.
Comment
-
Nguyên văn bởi phamhoangdunMinh da lam nhu the nay ma van ko duoc.
Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
MSComm1.InputLen = 20
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
if MSComm1.PortOpen = True then mscomm1.portOpen = False
End
End Sub
Private Sub Timer1_Timer()( interval=10)
If MSComm1.InBufferCount =0 Then
str = MSComm1.Input + mscomm1.Input
chuoicuoi = chr(Cr)
pos = InStr(str, chuoicuoi)
lblnhan.Caption = Mid$(str, pos - 2, 5)
End If
End Sub
Mong cac bac chi dum em.
MSComm1.InputLen = 20
thành MSComm1.InputLen=0 ' xóa bộ đệm nhận
và :
If MSComm1.InBufferCount >=1 Then
str = str + MSComm1.Input ' chú ý biến str khai báo global
....
end if
Comment
-
mình nghĩ bạn nên làm theo phương án của trung, nhớ điều chỉnh timer sao cho có thể đồng bộ với tốc độ baud, thường mình để 10ms với 9600, có những lần đã đau đầu vì timer và baud rate rồi.
bạn hãy chọn một baudrate cụ thể sau đó điều chỉnh interval của timer sao cho phù hợp.
chúc thành công.--------------------------------------------------------------
Bán các loại UPS Online công suất từ 1KVA đến 800 KVA và Accu cho UPS + Ôtô
--------------------------------------------------------------
Comment
-
minh da chinh timer voi interval = 10 voi baud la 9600 nhung neu su dung su kien OnCom thi no chi lay duoc chuoi minh can lan dau tien. Lan thu hai thi khong the duoc no khong lien tuc nhan. Neu dat vao trong timer thi chay duoc nhung van lay chuoi sai. Mong cac bac giup em voi.
Neu minh ko dung su kien Oncom ma de su kien kien nhan dât ve tu com trong timer thi van chay duoc nhung nhu phan tren minh da noi no van ko the lay du lieu chinh xac theo minh mong muon. Doan code sau minh viet tren timer nho cac ban chi giup :
Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
MSComm1.InputLen = 10
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
if MSComm1.PortOpen = True then mscomm1.portOpen = False
End
End Sub
Private Sub Timer1_Timer()( interval=10)
If MSComm1.InBufferCount = 10 Then
str = MSComm1.Input
lblnhan.Caption = Mid(str, 3, 5)
End If
End Sub
Neu su dung mscomm1.iputlen = 20 nhu bac trung thi du lieu lay ve van bi sai .Last edited by phamhoangdun; 30-11-2005, 13:37.
Comment
-
Thế thì tốt nhất là nên nhận vào một mảng string
rồi xử lý kiểm tra cắt xén string đó thôi
rồi mới đưa ra hiển thị
bạn dùng win Terminal kiểm tra coi thử xem dữ liệu nhận về fomat có chuẩn không.
khi dùng nó thì mỗi gói sẽ được hiển thị trên một dòng
ví dụ :
-00000kg
-00001kg
............
-00009kg
phương án là bạn tóm được ký tự gửi về là LF - Line Feed rồi dò theo độ dài của gói tin đó ( ví dụ này là 8 ký tự ) và gán vào một string. theo tôi cách này sẽ chíhn xác hơn.
chúc thành công--------------------------------------------------------------
Bán các loại UPS Online công suất từ 1KVA đến 800 KVA và Accu cho UPS + Ôtô
--------------------------------------------------------------
Comment
-
Đây là đoạn code trích ra trong chương trình mình làm để đọc số liệu từ bộ Indicator MettLer-Toledo :
Private Sub Form_Load()
On Error Resume Next
With MSComm1
If .PortOpen = True Then .PortOpen = False
.CommPort = 2
.Settings = "9600,N,8,1"
.InBufferSize = 2000
.InputLen = 0
.OutBufferSize = 64
.PortOpen = True
End With
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
MSComm1_OnComm
Timer1.Enabled = True
End Sub
Private Sub MSComm1_OnComm()
With MSComm1
If .InBufferCount >= 1 Then
Dulieu = Dulieu + .Input
txtDulieu.Text=Dulieu ' TextBox kiểm tra xem dữ liệu truyền lên như thế nào
End If
End With
End Sub
*Bạn thử kiểm tra xem phần dữ liệu truyền lên hộp Text txtDulieu có liên tục không ?
Nếu đúng thì lọc lấy dữ liệu cần để hiển thị.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Kiểm tra biến ápbởi vi van phamA di phò phò ( tôi theo đạo Công giáo) mấy hôm rày ảnh hưởng xem youtuber nhiếu quá, nói nhiều quá là khẩu nghiệo. Các em út không bám đuôi đâu ...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 22:40 -
-
Trả lời cho Kiểm tra biến ápbởi nhathung1101Chẳng có gì là khó cả. Nhà máy người ta sản xuất tính bằng đơn vị triệu sản phẩm. Nếu đầu óc nghĩ theo cách thủ công thì họ phá sản sớm.
Mà chẳng nói đâu xa, chứng kiến cái máy đút cái xúc xích vào là đầu kia có một lũ bò là hiểu ngay ...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 22:20 -
-
Trả lời cho Kiểm tra biến ápbởi nhathung1101Lão lại lồng thị lộn lên rồi!
Tôi nói "từng làm với thằng Hàn" là vì dây chuyền nó lỗi, tôi phải xử lý khi nó xin xỏ. Chứ cả đời tôi chưa làm thuê cho thằng nào sất.
Có va chạm mới biết, rồi tiện thì...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 22:11 -
-
Trả lời cho Kiểm tra biến ápbởi mèomướpDạ cháu đọc bài của các chú viết đau hết cả mắt. Chú đo cảm kháng của cuộn dây là ra số vòng ạ. Chú cũng có thể làm 1 cái máy đo nhanh có đế nhìu chân để cắm hết chân của cuộn dây vào đấy, máy sẽ phát xung từ trường ( kiểu...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 20:08 -
-
Trả lời cho Kiểm tra biến ápbởi nguyendinhvanVề kỹ thuật, hiện nya ĐTVN cũng rất mơ hồ về phân cấp kỹ thuật.
Đơn vị nhỏ nhất trong kỹ thuật là linh kiện, vật tư.
Nhiều LINH KIỆN kết hợp thành cái MẠCH
Cần nhiều cái MẠCH kết hợp thành cái MÁY
Nhiều cái...-
Channel: Điện tử dành cho người mới bắt đầu
10-06-2024, 02:53 -
-
Trả lời cho Kiểm tra biến ápbởi nguyendinhvanCái chuyện này thì những gì hay của " thằng hàn" không áp dụng được. Vì ngững người ở bên ... "chúng ta" không có những hợp đồng dài hạn hàng đến 3 hay 6 tháng hay một năm. Vì thế không đủ sản lượng để đầu tư vào...
-
Channel: Điện tử dành cho người mới bắt đầu
10-06-2024, 02:05 -
-
Trả lời cho Kiểm tra biến ápbởi nguyendinhvanBạn Hùng nói có quá nhiều vấn đề.
..."Tôi từng làm với thằng Hàn..."
Thứ nhất là cần phải loại bỏ tính "thành tích" và "hình thức". Một căn bệnh khá là nặng của đtvn. Không được và cần trốn tránh...-
Channel: Điện tử dành cho người mới bắt đầu
10-06-2024, 01:55 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamKhông thể đổ lỗi cho không biết nhạc lý. Nhắm mắt lại gõ vào chương trình viết nhạc, phần mềm vẫn tạo ra giai điệu.
Phần mềm chia nốt đen cho trường canh không sai. Cái sai ở đây là cháu không phân biệt phách mạnh, yếu để tạo nhịp thuận....-
Channel: Tâm tình dân kỹ thuật
05-06-2024, 10:35 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ là vì tác giả không có căn bản nhạc lí nên cái sheet đó chắc hẳn sẽ sai về qui cách biểu thị, và đó chỉ là thể hiện các nốt nhạc như trên piano vậy, phần mền nó vẫn chạy ra am thanh giai điệu được....
-
Channel: Tâm tình dân kỹ thuật
05-06-2024, 08:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamTôi không hiểu ý tác giả thế nào, khi shhet nhac không đúng làm sao có giai điệu?
Khi hát, hay chơi đàn, ca sĩ hoặc nhạc công giẫm chân để giữ nhịp, cap cấp hơn trong organ có cả máy metronom để giữ nhịp. Tác giả sáng tác toàn nhịp chỏi, rất khó hát và khó giữ nhịp....-
Channel: Tâm tình dân kỹ thuật
04-06-2024, 16:28 -
Comment