工业控制中对等网的运用
一、概述
在分布式控制系统中,控制计算机担任了对过程或运动的直接控制,而监控计算机或工程师站则负责对整个工艺过程的工艺参数进行监视、调整或存储打印。在监控点数目较多或距控制机较远时,我们采用建立工业以太网的方式,完成计算机之间的数据传递。监控机作为服务端,监听控制机发出的信息,并做出回应。这样,就需要在计算机之间制定一套应用层的协议,以完成数据交换。在在分布式控制系统中,控制计算机担任了对过程或运动的直接控制,而监控计算机或工程师站则负责对整个工艺过程的工艺参数进行监视、调整或存储打印。在监控点数目较多或距控制机较远时,我们采用建立工业以太网的方式,完成计算机之间的数据传递。监控机作为服务端,监听控制机发出的信息,并做出回应。这样,就需要在计算机之间制定一套应用层的协议,以完成数据交换。在Delphi中,可采用相应的Socket 控件完成这项工作。
二、软硬件环境
1. 网卡:10M ISA BNC与RJ45双口,NOVELL NE2000兼容,符合Windows95 PnP
准。
2. 网线:RG58AU同轴电缆。其具有价格便宜,网络扩充及维护简单的特点。
3. 网络操作系统:Windows95或WINDOWS NT。
三、网络硬件的安装
1. 网卡的安装:
首先像安装其他任何硬件卡一样,将网卡插入首先像安装其他任何硬件卡一
样,将网卡插入PC机的一个ISA插槽中,固定好即可。
2. 网线的安装:
在网线上安装BNC接头,再接上T型头后,插入网卡,最后联上终端电阻。
四、软件的安装与调试
首先在计算机中安装Windows95,对于PnP网卡,开机时系统会提示发现新设备,要求加载设备驱动程序,这时可直接使用Windows95提供的设备驱动程序,并设置网卡的中断和输入输出地址。网卡的设置完成以后进行网络的设置。
1. 添加“网络客户MICROSOFT客户”。
2. 添加“协议”。选择“网络协议?/FONT>IPX/SPX兼容协议”及“NetBEUI”。
添加“协议”。选择“网络协议?/FONT>IPX/SPX兼容协议”及“NetBEUI”。
3. 设定网络的文件和打印机共享。
4. 在“基本网络登录方式”中选“MICROSOFT网络登录”。
5. 输入计算机名称和工作组名称,每台机器应该有不同的名称。最后按“确定”,这时系统会提示放入Windows95的安装盘,安装好相应的驱动程序后,重新启动系统。
6. 网络资源的共享。设置计算机中可以在网络中被共享的设备。当所有的机器都设置好了以后,就可以像访问自己的一样访问其它计算机的硬盘了。如果经常用某个网络驱动器,也可以把某个网络驱动器映射到自己的计算机上。
至此,一个局域网就设置完毕。在网络上共享资源,网上每一台计算机都可以互相访问,计算机之间也没有主次之分,各自都有绝对的自主权的网络被称为对等式的网络(PEER TO PEER),也叫点对点的网络。这种网络的优点是安装维护方便,不需要专门的服务器,价格也就相应地便宜。
五、网络环境下的数据传递。
1. 客户端
1.1 在Delphi的表单上加入ClientSocket控件,并在某个事件发生时激活此控件。
begin
if SpeedButton5.down then
if inputquery('所需传递数据的计算机','IP地址:',net_sever) then
begin
if length(net_sever)>0 then
begin
ClientSocket1.Active:=true;
ClientSocket1.host:=net_sever;
end;
end
else
begin
SpeedButton5.down:=false;
end;
if not SpeedButton5.down then
ClientSocket1.Active:=false;
end;
1.2 在ClientSocket控件的事件中,加入相应的响应代码。
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;var ErrorCode:Integer);
begin
statusbar1.panels[0].text:=net_sever+': 网络故障';
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.panels[0].text:=net_sever+':网络已连通';
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.panels[0].text:=net_sever+':网络已断开';
end;
1.3 在需要发送数据时,采用Socket的SendText方法即可。
if ClientSocket1.active then ClientSocket1.Socket.SendText(net_string);
2. 服务端
2.1在Delphi的表单上加入ServerSocket控件,并在某个事件发生时激活此控件。
procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.active:=not ServerSocket1.Active;
end;
2.2 在需要接受数据时,采用Socket的receivetext方法即可。
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;Socket: TCustomWinSocket);
begin
button1.Caption:=socket.receivetext;
end;