以串口通讯实现封闭内网与外界通讯的方法
2018-12-08孙吉平
摘 要:通过串口通讯的方式,研究一个封闭内网与危险外网连接的方法,利用现有条件实现了封闭内网与外界通讯的需求,保证了封闭内网计算机及网络的安全。
关键词:串口通讯;封闭内网;安全
DOI:10.16640/j.cnki.37-1222/t.2018.22.107
本钢二冷轧厂酸轧生产线,生产操作使用的计算机及网络称为一级系统,一级系统并没有配备远程查看生产画面、PLC程序等功能,计算机是win2000操作系统,虽然满足生产要求,但是整个系统非常脆弱,极易受到病毒感染,因此一级系统禁止插入USB存储设备、禁止连接其他内部网络,更是禁止连接外部网络。在这样一个全封闭的网络下很难与外界联系。
在夜晚和节假日期间设备发生故障时,负责设备维护工作的点检员要快速和尽可能多的掌握生产现场的相关信息,以利于故障响应、排查和处理,而系统本身的脆弱和制度又决定了要放弃通过外网远程协助这样直接的方式来。有没有既能保证内部系统安全,又能使封闭内网与外界进行联系的方法呢?这就是本文将要描述的一种方式:以串口通讯实现封闭内网与外界通讯的方法。
1 系统的构成和安全的实现
系统由三个部分组成:服务端、中转端和客户端。服务端是指:运行在封闭内网某一台计算机上的一个程序,用来采集数据并通过串口向中转端发送。中转端是指:运行在可以联网的计算机上的一个程序,用来将服务端发送的数据通过网络转发到客户端,同时也可以将客户端发送的指令转发到服务端,由于我厂局域网限制,对外网访问仅限于收发电子邮件,因此中转端与客户端的通信是通过电子邮箱中转。客户端是指:在手机或者家用计算机中运行的程序,用来查看数据或者发送指令,服务端和中转端是要通过编程实现,而客户端仅需要下载安装邮箱管理软件即可。
由于封闭内网与存在风险局域网的两台计算机是通过串口通讯,它们之间发送的仅仅是字符數据,这就实现了两个网络物理上的隔离,从而保证了安全,同时也实现了数据的交换。
2 串口协议与编程环境
由于RS-232是计算机上普遍存在的串行接口,因此本系统采用的就是RS-232串口通讯,用一条串口数据线将服务端和中转端的两个计算机连接起来。在串口通讯之前要设置好相同的参数,因为本系统全部用来传送字符数据,传输速度越快越好,受限于计算机硬件,本系统串口设置的波特率是115200bps,数据位是8位,奇偶校验无,停止位为1。本系统中的两个程序都是运行在Windows环境中,而基于Windows的开发工具也很多,比如VB、VC、Delphi等,因为Delphi简单、高效,同时其包含可视组件类库VCL,方便程序的开发,本系统采用的是Turbo Delphi。
3 串口通讯程序的编程实现
Delphi的优势在于其包含的众多控件,使得用Delphi编制一个串口通讯和邮件收发的程序非常容易,这里串口通讯使用一个第三方控件,串口通讯用到的主要代码如下:
ComPort1:=TComPort.Create(self);//创建一个ComPort1对象
ComPort1.Port:='COM1';//设定COM端口名称
ComPort1.BaudRate:=br115200;//设置波特率
ComPort1.DataBits:=dbEight;//设置数据位
Comport1.StopBits:=cport.sbOneStopBit;//设置停止位
Comport1.Parity.Bits:=prNone;//设置奇偶校验
ComPort1.Open;//打开端口
//现在就可以向串口发送数据
ComPort1.WriteStr('数据');
//在ComPort1RxChar事件读取字符数据
ComPort1.ReadStr(st,Count);
//在使用完端口后关闭端口
ComPort1.Close;
//程序退出时释放资源
ComPort1.Free
服务端程序不停的读取串口数据以及现场数据,收到特定指令字符时或者现场数据满足特定条件后,收集信息并向中转端发送,中转端接收到完整信息后将信息以一封电子邮件的方式发送到特定邮箱。客户端就是一个邮件客户端,在手机上就可以查看或发送指令。
4 应用实例
两种用法,一种是服务端监测关键数据,当条件满足时触发主动发送数据。另一种是客户端发送特定指令,服务端收到指令后收集并发送数据。例如:故障停机是我最关心的事件,因此我编制的程序将轧机停机作为触发条件,当服务端监测到轧机停机超过10分钟,就会将关键的数据转发出来。当我觉得有必要查看一下报警信息时,我再发送一条含有特定指令的邮件,等待一分钟左右,我在手机中就可以查看到最新的报警信息,以此做下一步分析。
5 结论
使用本文所描述的使用串口通讯的方式连接一个封闭内网与危险外网的方法,既满足了封闭内网与外界通讯的需求,又保证了内网计算机及网络的安全,同时这也是一个几乎零成本的方法,可以用在很多特殊的地方。
参考文献:
[1]郑彪,汪秉文.串口通信在工业控制中的应用[J].自动化仪表,
2002,23(04):58-59.
[2]罗小平.Delphi精要[M].北京:电子工业出版社,2004.
[3]黄军.Delphi串口通信编程[M].北京:人民邮电出版社,2001.
作者简介:孙吉平(1983-),男,辽宁本溪人,本科,助理工程师,研究方向:自动化。