以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 菜鸟求称重串口接收代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28984) |
||||
-- 作者:lsf5138 -- 发布时间:2013/2/25 10:07:00 -- [求助] 菜鸟求称重串口接收代码 只要能在项目窗口的重量输入框自动取电子称的重量值就可以!
[此贴子已经被作者于2013-3-1 10:23:25编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2013/2/25 11:48:00 -- 你看看这一章吧。连接设备以后,读取设备的值。 http://www.foxtable.com/help/topics/1966.htm |
||||
-- 作者:lsf5138 -- 发布时间:2013/3/1 8:35:00 -- 我用 (青苹果称重管理软件标准版) 电子称仪表采用:上海彩信XK315A系列2反序 测试正常 台称技术参数: 串行通讯接口RS— 232 连续发送,波特率 2400 通讯数据格式(RS-232C 输出) 通信地址Adr = 00 , 连续发送格式, 先低后高, 发送格式为 =,X1,X2,X3,X4,X5,X6,=,发送的X1,X2,X3,X4,X5,X6 为显示数据,= 为分隔符。 例如显示重量:100.00kg, 则发送格式为= 00.001 =00.001= 在论坛找了这个代码用起来又没反映:(摘不懂求帮助) DataReceived事件在串口接收到数据的时候触发。 With Ports("COM1") Dim cnt As Integer = .BytesToRead If cnt >= 17 Then \'缓冲区是否有数据 Dim Val(cnt - 1) As Byte .Read(val,0,cnt) Dim ss As String = BitConverter.ToString(val) ss = ss.Replace("-","") ss = ss.Trim("") Dim k As Integer Dim s(cnt - 1) As String For j As Integer = 0 To cnt - 1 k = j * 2 s(j) = ss.substring(k,2) Next For i As Integer = 0 To cnt -2 Dim st As String = s(i) & s(i+1) If st = "FFAA" Then If (12+i) <= cnt -1 Then If s(12+i) = "00" Then forms("电子称重").controls("textbox1").value = HexToDec(s(i+8) & s(i+9) & s(i+10) & s(i+11))/100 End If End If End If Next End If End With
[此贴子已经被作者于2013-3-1 10:22:52编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/3/1 8:38:00 -- 在DataReceived事件用用Messagebox判断事件有没有触发,如果触发了,接受的数据是什么,代码执行到什么位置。 这些只能逐步调试的。 |
||||
-- 作者:lsf5138 -- 发布时间:2013/3/1 8:52:00 -- 改用这个代码测试,窗口文本框可以接收到信号,但不是显示数据,可能还要换算? Forms("电子称重").Controls("textbox1").value = e.Port.ReadExisting()
[此贴子已经被作者于2013-3-1 10:26:52编辑过]
|
||||
-- 作者:lsf5138 -- 发布时间:2013/3/1 8:56:00 -- baoxyang兄看到此贴帮下忙好吗 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/3/1 9:04:00 -- 既然可以读出数据,那你的问题是什么,事件没有触法? 还是代码没有执行? 用这个方法分析一下你的事件代码吧:
http://www.foxtable.com/help/topics/1485.htm
|
||||
-- 作者:lsf5138 -- 发布时间:2013/3/1 10:53:00 -- 在论坛里找了句 baoxyang 的发言: Post By:2012-10-24 10:22:00 [只看该作者]
[此贴子已经被作者于2013-3-1 10:54:14编辑过]
|
||||
-- 作者:lsf5138 -- 发布时间:2013/3/2 12:58:00 --
我上传台称说明书,帮忙看下还要什么资料吗?我再去找下。。。。 Forms("电子称重").Controls("textbox1").value = e.Port.ReadExisting() 上面的代码只能收到电子称信号(一些看不懂的字符),可能还要进行分析换算,谁能帮忙完整下代码好吗?
[此贴子已经被作者于2013-3-2 13:19:32编辑过]
|
||||
-- 作者:lsf5138 -- 发布时间:2013/3/2 15:22:00 -- 波特率 2400 通信地址Adr = 00 , 连续发送格式, 先低后高, 发送格式为 =,X1,X2,X3,X4,X5,X6,=,发送的X1,X2,X3,X4,X5,X6 为显示数据,= 为分隔符。 例如显示重量:100.00kg, 则发送格式为= 00.001 =00.001= 有知道对这些格式字符进行分析解码的吗?
|