4.5.2 RFID设备与软件应用系统控制设计
RFID设备需要与业务系统软件进行对接后,把设备采集的数据应用到业务中。
RFID设备控制分为两类内容,一是命令控制,就是我们所说的对RFID设备的参数进行配置;另一个是数据传输,就是读取RFID设备采集的数据。
命令控制方法我们一般使用供应商的配置软件进行设置,一般不对RFID设备的参数进行频繁的命令修改,以减少设备的控制操作。
数据传输方式取决于RFID设备在业务的需要。下面给出一种以监听端口的形式采集RFID设备数据的源代码,代码效果已经在业务系统上有正式使用。
基于udp和tcp/ip 网络通讯协议的java语言开发
1、原理:
TCP和UDP服务通常有一个客户/服务端的关系,一个服务进程开始处于空闲状态,等待着连接,使用客户端程序与服务端建立一个连接,客户端向服务端写入消息,服务器读取信息并响应。
以下都是以服务器和RFID设备之间的数据交换为例。(对于UDP和TCP的传输方式这里不作介绍,请各自查找资料学习)
Udp网络通讯协议
在RFID设备和服务器的数据交换中,两者之间主要根据的是彼此的ip地址和端口号进行数据定向传输,比如在服务器接收RFID设备传输过来的数据时,java程序只需要监听指定的端口来获取数据,而后根据指定的数据传输协议进行数据解析获取我们需要的数据。Java语言有已封装好的方法进行基于udp协议的数据交换。以下为关键性代码段。
DatagramSocket ds = null; // 连接对象
DatagramPacket sendDp; // 发送数据包对象
DatagramPacket receiveDp; // 接收数据包对象
finalint PORT = 32500; // 监听端口号
// 建立连接,监听端口
ds = new DatagramSocket(PORT);
// 初始化接收数据
byte[] b = newbyte[1024];
receiveDp = new DatagramPacket(b, b.length);
// 接收
ds.setSoTimeout(3000);
ds.receive(receiveDp);
那么此时接收到的recerveDp即为RFID设备发送过来的数据包,我们要的数据都在其中,而在解析数据之前必须先要了解到数据的解析规则。其中需要注意的是要设置接收超时。否则因为某些原因(比如RFID设备停电,RFID设备服务器ip地址冲突、网络故障等)服务端没有接收到RFID设备发送的数据,线程会在此阻塞,影响了上位机的其它业务工作。
以下为客户端往RFID设备发送数据,一般用于命令控制的发送。
sendDp = new DatagramPacket(bData, bData.length, clientIP,
clientPort);
// 发送
ds.send(sendDp);
TCP/IP通讯协议
在RFID设备和服务端的数据交换中,java语言也同样封装了基于TCP/IP通讯模式的数据交换的方法。
ServerSocket serverSocket = null;
Socket socket = null;
InputStream instream = null;
OutputStream opStream = null;
OutputStreamWriter opWriter = null;
finalint PORT = 32500; // 监听端口号
//通过java封装的类来监听服务器的端口获取客户端发送的数据。
serverSocket = new ServerSocket(PORT);
serverSocket.setSoTimeout(5000);
// 若无客户端发送请求则线程在此阻塞,方法不继续执行
socket = serverSocket.accept();
在等待客户端发送消息过来得时候,若有必要,则必须要设置等待超时,否则会一直阻塞。
instream= socket.getInputStream();
len = instream.read(buffer)) != -1;
在读取的这个方法中read(byte[])方法中,若是在连接成功的过程中,客户端突然与服务端的连接中断,也就是说客户端没有消息发送过来,那么进程会在该处阻塞。可以在read()之前用available()方法进行判断。至于接收到的数据可以使用相应的解析规则进行解析。
4.6 RFID技术应用场景
1 作业数据采集
应用场景适合于车辆、货物、作业任务都可控的业务环境。作业车辆号码和货物安装RFID标签,RFID标签号与作业任务计划已经提前预知且一一绑定对应,RFID标签号就是车辆和货物作业任务的识别码。
仓储的包装盒、货物、托盘上安装RFID标签进行货物出入库、盘点操作等,这些都是比较常规的应用。
2港区资源电子标签化
港区资源,包括作业机械设备、作业机械车辆、人员佩戴安装RFID标签,当设备和人员走过RFID设备后,RFID设备自动读取RFID标签信息,自动上传到RFID管理平台。
- 作业机械和人员定位
定位技术分为两个部分,移动RFID设备定位和移动RFID标签定位。
移动RFID设备定位是指在设备上安装RFID阅读器,在一些特定的场景安装RFID芯片,当RFID读卡器经过RFID芯片时,系统自动获取RFID读卡器所读取的RFID芯片编码,以确定RFID阅读器移动轨迹。
移动RFID标签定位是以RFID芯片经过安装RFID阅读器场景后,RFID阅读器采集到RFID标签信息后上传到系统,以确定RFID芯片移动轨迹。
应用:
通过RFID定位技术对作业指令进行精细化控制,只有当作业机械和人员抵达相应的作业区域,系统才准确下发作业指令,作业机械和人员完成相应作业任务后关闭作业指令交互通道。
通过RFID定位技术实施港口安全管理,如果作业机械RFID设备探测到操作危险距离范围内有人员驻足,作业机械终端自动报警,向作业机械手警示操作危险,或触发短信功能,向作业机械手和管理人员警示操作危险区域和人员。 - 作业机械设备数据采集
作业机械设备数据采集包括油箱存油量、轮胎气压数值、吊臂承重数据等内容。这方面更详细的信息可以查找三一重工技术资料学习。这里可以结合无人机上安装RFID设备进行自动巡检和数据上传。 - 货物存储环境湿度、温度采集
把带有湿度、温度传感器的RFID芯片放置在货物存储空间里,设置采集间隔周期,RFID芯片自动采集数据后上传数据到上位机。 - 海关监管电子围栏
对海关监管区域安装RFID设备,对进出监管区域的集装箱和货物进行区域扫描分析,与移动互联网平台(短信、APP等)进行业务对接,对集装箱和货物进出监管区进行及时提醒和警示。