您的位置:首页 > 编程语言 > Delphi

2013-12-17 与外网串口服务器的delphi程序设计 随笔说说

2013-12-18 16:07 495 查看
主要的功能要求如下:

PC机作为主控在学校,MCU控制单元在市区商场。MCU部分是个类似智能电表的东西。

要使用PC机实时的查看MCU的电量等信息,并且可以控制MCU的继电器。

因为为远距离传输信号,因此要使用到Internet互联网,所以商场部分的MCU端通过485串口与串口服务器连接,实现数据由串口发向网络。

校园PC机通过网络接收数据,并可以发控制命令。

买的串口服务器是一个网口转8个485串口的NCS6008-8.

本来的想法是delphi直接编写网络的程序,直接参与网络数据传输。

但是好多协议不太懂,并且delphi的网络控件不会用。

所以就改变了方法。

说说现在的整个架构:

校园网内的IP应该是可以固定下来的了,即使是动态的,也可以使用花生壳来固定下域名,变向的固定了IP。

商场的MCU端的网络结构可能会很复杂,并且接入了公网,IP是动态的,不好固定,因此在TCP/IP结构中,MCU端最好是作为TCPClient端。

因此,串口服务器设为TCPClient工作模式。

确定了工作模式,就要设置好串口服务器的参数。设置时每一个串口为一个单位,为其分配独一无二的端口号,比如串口1为8080,串口2为8081……这样子

设置好串口的波特率等参数,选择串口的工作模式为TCPClinet,并且写入这个端口要将数据发送到哪个IP上。它要配置的东西都在下面。

串口1自己为一个单位

串口方面:

1.波特率

2.工作方式:RS485_Half

网口方面:

1.自己的独立端口号

2.自己的TCP/IP位置,是TCPClient还是TCPServer

3.进行数据通信的IP目的地址和IP地址的端口号





这样,对于每一个串口的单元,他的两边,即网口和串口,都设置好了。

接着,这个串口服务器之所以能上网,那么他是要设置好他的网络参数的,这相当于一个8口串口的全局参数

即他的网关,子网掩码,DNS等等



好,现在串口服务器端的东西全都设置好了。

下面就是这边接收的问题了

为了减小复杂性,使用了VSPM虚拟串口,也就是当串口服务器连接PC这个IP的时候,不需要delphi来管理,而是使用VSPM来监控。

delphi只要控制VSPM映射的串口就行了

现在的结构就是

delphi<--->串口<-(VSPM)->网口<----------------------(公网)------------------------->ADSL猫<--->路由<--->串口服务器<--->MCU

因为串口服务器中设定的为TCPClient,保存了他要寻找的TCPServer端的IP,因此它的工作起始为

串口服务器--->路由--->ADSL猫--->公网

这个请求连接的数据包发到公网上后,监控PC机的VSPM会收到信号,并且建立虚拟串口与这个信号的连接

VSPM监控到信号--->建立

串口<---(VSPM,公网,ADSL,路由)--->串口服务器

的连接。

这样delphi控制串口即可控制远端的MCU了

忽略掉中间的转换结构,最终的结构就是

delphi<--->串口<--->MCU

袁坤 写于石家庄铁道大学 2013年12月18日

yorkWorldDream
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息