主要的功能要求如下:
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等等
现在的结构就是
delphi<--->串口<-(VSPM)->网口<----------------------(公网)------------------------->ADSL猫<--->路由<--->串口服务器<--->MCU
因为串口服务器中设定的为TCPClient,保存了他要寻找的TCPServer端的IP,因此它的工作起始为
串口服务器--->路由--->ADSL猫--->公网
这个请求连接的数据包发到公网上后,监控PC机的VSPM会收到信号,并且建立虚拟串口与这个信号的连接
VSPM监控到信号--->建立
串口<---(VSPM,公网,ADSL,路由)--->串口服务器
的连接。
这样delphi控制串口即可控制远端的MCU了
忽略掉中间的转换结构,最终的结构就是
delphi<--->串口<--->MCU