VB写485通讯 点击:2543 | 回复:10



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-06-22 14:11:00
楼主
用VB写RS485通讯,与几台单片机联机传输数据,单片机系统给出的通讯协议为11位数据格式: 1位停止位+8位数据+1位标志位+1位停止,用VB怎么定义啊??没搞过,如何实现,望大侠指点。



gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-04-19 22:56:00
1楼
可以邮箱联系:generalj@263.net

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-04-21 10:02:00
2楼
你要一个RS-232到485的转换器如:i-7520 www.icpdas.com products 7520。 直接把串口定义为你要的格式。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-04-21 10:02:00
3楼
你要一个RS-232到485的转换器如:i-7520 www.icpdas.com products 7520。 直接把串口定义为你要的格式。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-04-21 12:52:00
4楼
1、那PC与I-7520的格式定义成什么样呢,还有地址的发送就字符方式发送吗?我现在的设想是与单片机用字节处理,两个字节为一个数,7520是不是可以把单片机的字节数据直接转成了字符啊?不太明白,望指点! 2、我查了些资料,有讲到VB处理第九字节的问题,即用校验位的mask值和sapce值区分地址侦和数据侦。 3、7250转换器跟一般的转换器有什么不同吗?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-04-21 18:58:00
5楼
您要考虑的仅是...您要如何用 VB 实作 PC RS-232 与单片机 之间协议. (您可以将 7520 当作透明的一个通道.) 泓格 7520 仅就 RS-232 与 RS-485 的电路信息作转换, 它不涉及上层软体的通讯协议, 更不涉及其定址模式. 因此可运用于各种场合, 不论是处理 ASCII or Binary 皆可. 7520 http://www.icpdas.com/products/7000/i-7520.htm . 采用 Self-Tuner 专利技术, 全自动调适支持各种 baud rate, data format, 不需调 jumper. . 全自动调适 RS-485 的收送方向, user 不需为此烦心.

generalj

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 2回
  • 年度积分:0
  • 历史总积分:17
  • 注册:2002年11月26日
发表于:2003-04-21 23:01:00
6楼
谢谢garylin的答复,还有一个问题是,单片机给出的数据,我在PC端需不需要判断第九字节的状态,或者单片机就直接给我数据帧的数据?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-04-22 09:56:00
7楼
您说的第九字节, 指的是 parity check 吗?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-04-22 11:30:00
8楼
网路上查到的资料... 当 Mark 时, parity always 1; 当 Space 时, parity always 0 印象中, PC 端的软体层是无法处理 parity 的. 您只能依您的需求, 在一开始就设为 Mark 或 Space. 猜测您的用法如下.... PC 端, 设为 Mark, 表示送出指令. Device 端, 设为 Space, 表示送出回应的 data. 如此, 您的 VB 程式应该是不需要去判断该 parity 才是 (在 PC 上...可能也没有方法可用来判断 parity!). 若您的 device 会送出指令与 data, 而需要依此 parity 来判断的话.... 在 PC 上可能会是很大的问题. (parity 应该在 PC 的 UART 上就被处理掉了! ) 注 : 7520 (或其它的 232/485 转换器), 只处理信息的转换, 不涉及软体协议, 所以传回来的 data (8 bits or ...) 各表示什么意义, 只有软体才知道, 转换器不知. 例: 某个协议中, bit0-3 为 address, bit4-7 为 command. User 必需自行去分析内容才行.

generalj

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 2回
  • 年度积分:0
  • 历史总积分:17
  • 注册:2002年11月26日
发表于:2003-04-22 13:17:00
9楼
GaryLin: 您的答复对我有很大的帮助,看样子我是不需要在PC端判断parity,再说就象你所说,我也无法判断,等我读出来的值已经不包含parity了,只有8位数据。我先按你的方法去调试,还有什么新问题再来请教,再次感谢您耐心的答复。

二蛋

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 73回
  • 年度积分:0
  • 历史总积分:234
  • 注册:2003年2月02日
发表于:2003-06-22 14:11:00
10楼
VB的MSCOMM控件通信格式要定义

热门招聘
相关主题

官方公众号

智造工程师