预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Nport在系统集成及软件项目开发中的应用 摘要:在系统集成及软件项目开发中会经常使用串口或串口设备获取相关设备信息进行数据的读取和显示,有时串口设备的接口类型可能是通过rs-232或rs-485方式进行连接,这对于有限个串口设备接入一台计算机是可行的。但是如果用户想通过一个设备来实现这些设备的联网,nport无疑是最好的选择。只要根据需求进行相关配置,用户就可以方便地实现对硬件设备的远程监控。 关键词:nport系统集成串口设备 本文以我在一个系统集成软件项目中通过nport设备对4个大楼的28部电梯的上、下行状态及电梯运行楼层的状态监控为例对nport实现多串口设备监控进行简单介绍。 1nport概述 nport又称为串口设备联网服务器,它可以在串口和以太网界面间轻易地执行双向数据的传输,从而使我们达到同时集中管理串口设备的目的。 2软件项目需求 连接方式:ba通讯盒(485)-〉moxa485转tcp/ip(tcp/ip)-〉管理网交换机-〉集成服务器。 电梯分布: 一号楼:十部电梯,编号为3#-13#。其中3#-8#电梯所接nport地址为:10.4.1.152。9#-13#电梯所接nport地址为:10.4.1.153。 二号楼:十部电梯,编号为15#-24#。其中15#-19#电梯所接nport地址为:10.4.1.156。20#-24#电梯所接nport地址为:10.4.1.157。 三号楼:六部电梯,编号为25#-30#。其中25#电梯所接nport地址为:10.4.1.158。26#-30#电梯所接nport地址为:10.4.1.159。 四号楼:两部电梯,编号为1#-2#。电梯所接nport地址为:10.4.1.151。 读取数据:上下行状态、桥箱所在楼层。 3nport配置 首先,在本机电脑保证能够正常ping通每个连接nport设备的计算机;然后,进行nport配置。我们以其中一台nport设备为例:打开ie浏览器,在地址栏中输入http://10.4.1.151,出现如下图1.1所示的界面: 我们将串口设备的波特率统一设置为9600,将serialporttype设置为realcom(如图1.2)。) 点击submit按钮,完成一台nport设备的设置,然后按照同样的方式设置其他6台设备。 我们下载nportwindowdrivermanager软件进行串口和ip地址的设置。 设置完成后如下图所示: 通过以上设置我们可以看出:10.4.1.151对应的串口为com9;10.4.1.152对应的串口为com10;10.4.1.153对应的串口为com11;10.4.1.156对应的串口为com14;10.4.1.157对应的串口为com15;10.4.1.158对应的串口为com12;10.4.1.159对应的串口为com13。至此,完成了nport配置。 4相关串口通信协议及软件实现 本协议共有两条命令,全部是字节流形式,主机发送控制命令、ba板采用被动接收并以应答的方式发回电梯状态信息,分别介绍如下: 4.1发送命令格式 4.2 接收命令格式 4.3软件实现 巡查地址请求函数: //发送巡查地址请求命令(a1h+地址编号) privatevoidsendrequest(intindex) {byte[]data=newbyte; //开始标志a1h data[0]=0xa1; //获得十六进制地址编号 bytehexnum=gethexnum(index); data=hexnum; if(serialport1.isopen) { serialport1.write(data,0,2);//向串口写入数据 } } 由于电梯地址和串口的对应关系为:com9:1#、2#;com10:3#-13#;com11:9#-13#;com14:15#-19#;com15:20#-24#;com12:25#;com13:26#-30#。 我们要轮流对这几个com口进行打开关闭操作,即先打开com9然后关闭再打开com10,依次类推,所以封装一个com口操作的函数: privatevoidsetnextaddressrequest(intindex) {//切换com端口,首先关闭串口 if(this.serialport1.isopen) { this.serialport1.close(); } try {stringother_init=“initialize”; stringbaud_rate=“baudrate”; stringport_name=“add”+index.tostring()+“portn