kevin_me 发表于 2014-8-24 20:41:11

不知道IP地址的情况下,连接控制器的实现方案

做了个控制器有两个网口,现在需要做个简单的上位机,实现对控制器的配置。包括一些基本的通信和采集参数。

使用VB6.0做上位机,现在通过winsock控件实现上位机与控制器之间的了基于TCP/IP的modbus通信,以及通过上位机对控制器进行数据写入,修改IP地址、量程之类的。

但是前提是,在不知道控制器两个网口IP地址的情况下,如何“扫描”到控制器,实现IP地址的获取,这样之后,才能进行下一步的配置操作。

硬件使用的是ENC28J60,移植的微芯的MCHP协议栈。

有思路是使用UDP广播,但是目前我并没有在下位机里面实现UPD,只有TCP/IP/ARP/ICMP/MODBUS。

因为时间比较紧,希望能以最快的周期实现这个功能。

所以,另一个思路是,用VB调用第三方控件,这个控件需要支持从windows平台上往下位机发送“裸数据”,比如命令0xaa,0xbb。

而我下面的硬件能够接收“裸数据”0xaa,0xbb。

这样之后,控制器把两个网卡的IP地址主动上报给上位机,这样就OK了。

第二个思路是我拍脑袋想的,不知道能否实现。不知道大家有没有更好的方案?

zyx_avr 发表于 2014-8-24 21:23:01

使用UDP广播实现获取IP地址是最方便的。

shijianzhou 发表于 2014-8-24 22:17:15

一直使用UDP广播的方式飘过.....市面上的产品也基本都是UDP广播吧,上位机向固定port口A发数据,同时监听port口B。下位机监听port口A,返回信息给port口B。就这么简单....

qinxg 发表于 2014-8-25 12:38:27

固定PC的ip, 下位机主动发TCP链接.最好还是移植UDP协议, 这个协议很简单, 填充端口号,IP,校验, 之后发送即可. 有效代码不到30行
页: [1]
查看完整版本: 不知道IP地址的情况下,连接控制器的实现方案