标题:求助,rs232数据发送问题
只看楼主
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
if hCom1 == ""
改为
if empty(hCom1)
试试

坚守VFP最后的阵地
2022-07-31 15:31
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:6 
我也没做过COM数据通讯,我这么猜来着:
1. 协议格式 N,8,1,这样的话就是: 起始位:1 + 数据位:8 + 校验位:0 + 停止位:1 = 10,与要求的11位差一位
2. 起始位和停止位,我猜测是发送时根据协议格式自动加入的,不需要包含在发送数据中
3. 不清楚标志位是应该作为发送数据的一部分,还是停止位的一部分

照说,说明书上应该会有设置用dos命令用法,例如:mode com1: 600,N,9,1 或者 mode com1: 600,N,8,2
如果说明书上没有,又无法联系厂家客服,就只能试试各种可能的组合了

先试试直接发送固定数据:ComWrite(hCom1, chr(0)+chr(0)+chr(1))
不行再试试2个停止位:hCom1 = ComOpen(3,"600,n,8,2")


[此贴子已经被作者于2022-7-31 18:15编辑过]

2022-07-31 17:23
chen27288227
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-6-7
得分:0 
以下是引用sdta在2022-7-31 15:31:48的发言:

if hCom1 == ""
改为
if empty(hCom1)
试试

谢谢!!端口及通讯是没问题的,因为大屏端有指示灯闪烁!

[此贴子已经被作者于2022-8-1 12:16编辑过]

2022-08-01 12:14
chen27288227
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-6-7
得分:0 
以下是引用csyx在2022-7-31 17:23:46的发言:

我也没做过COM数据通讯,我这么猜来着:
1. 协议格式 N,8,1,这样的话就是: 起始位:1 + 数据位:8 + 校验位:0 + 停止位:1 = 10,与要求的11位差一位
2. 起始位和停止位,我猜测是发送时根据协议格式自动加入的,不需要包含在发送数据中
3. 不清楚标志位是应该作为发送数据的一部分,还是停止位的一部分

照说,说明书上应该会有设置用dos命令用法,例如:mode com1: 600,N,9,1 或者 mode com1: 600,N,8,2
如果说明书上没有,又无法联系厂家客服,就只能试试各种可能的组合了

先试试直接发送固定数据:ComWrite(hCom1, chr(0)+chr(0)+chr(1))
不行再试试2个停止位:hCom1 = ComOpen(3,"600,n,8,2")

我会逐一尝试的,谢谢!
2022-08-01 12:15
pjtyzyq
Rank: 4
等 级:业余侠客
威 望:6
帖 子:230
专家分:240
注 册:2016-2-14
得分:0 
xk3118k9仪表通讯协议:


[此贴子已经被作者于2022-8-3 10:29编辑过]

2022-08-03 10:27
chen27288227
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-6-7
得分:0 
回复 25楼 pjtyzyq
这是仪表发送数据到电脑的格式,不是发送到大屏的格式。
2022-08-06 16:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 5楼 chen27288227
大屏设备厂家应该有接口开发资料和示例代码。
sendData的数据格式是否正确?

这个二进制码的“位”是byte还是bit

[此贴子已经被作者于2022-8-7 10:05编辑过]

2022-08-07 10:03
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
得分:0 
你的接线是否正确?是否使用的仪器-LED的那根线,标准的9-9线市售的通常是直连的,但是国内仪器多数引脚定义是2-3,3-2,5-5,地-地(2-3交叉5直连)。
还有RS232C标准的数据,数据位标准的只有5、7、8位三个选项,不可能有超出8bit,ASCII 只能是0-255内的。你说的10位应该是指的数据报文(帧)的长度,10个ASCII字符应该是80bit
2022-08-11 01:30
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
得分:0 
直接发送字符,以chr(2)开头,以chr(3)结束,中间的随便编。
2022-08-11 01:36
chen27288227
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-6-7
得分:0 
回复 29楼 whinda
还可以这样?
2022-08-11 17:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509676-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.154693 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved