186 lines
5.7 KiB
Markdown
186 lines
5.7 KiB
Markdown
|
||
# RFID程序部署(Linux+串口服务器版) Train_RFID_Linux
|
||
|
||
|
||
### 一、适用环境
|
||
此程序适用于北铁高科的火车车号识别BT110、BT210、BT510以及其他数据格式相同的其他型号。其他型号暂未适配测试,建议先收集数据,验证后使用。
|
||
|
||
### 二、串口服务器配置
|
||
##### 1、登录
|
||
使用浏览器访问串口服务器 `192.168.0.7`
|
||
|
||
默认用户名和密码都是 `admin`
|
||
|
||
##### 2、修改IP
|
||

|
||
|
||
保存后会重启。大约半分钟后,用修改后的IP重新在浏览器中访问。
|
||
|
||
##### 3、修改端口参数
|
||

|
||
|
||
注意:串口模式一般为232,非绝对。最好和系统集成部同事核对。
|
||
|
||

|
||
|
||
|
||
|
||
### 三、RFID程序部署
|
||
##### 1、准备程序包
|
||
```bash
|
||
# 运行程序的docker镜像:
|
||
Train_v2.2.tgz
|
||
|
||
# 程序的配置文件:
|
||
Train_RFID_Linux.zip
|
||
```
|
||

|
||
|
||
|
||
|
||
配置文件目录
|
||
|
||
主要包含 config.ini 文件,用于参数配置
|
||
|
||
日志文件目录
|
||
|
||
程序运行的日志,名为`log.log`。当超出单个文件大小限制时,会备份为 log.log.bak后,重新生成一个log.log;
|
||
|
||
RFID原始数据日志
|
||
|
||
名为`rfid_data.txt`。当一列火车离开后,会重命名为火车离开时的时间,即`YYYY-MM-DD-hh-mm-ss.txt`格式的文件名。
|
||
|
||
|
||
|
||
##### 2、程序部署
|
||
```bash
|
||
|
||
# 将程序包放置在服务器上,并在/home/storage 目录下解压 Train_RFID_Linux.zip 文件
|
||
|
||
# 解压后得到程序的所有配置文件目录 Train_RFID_Linux/
|
||
unzip Train_RFID_Linux.zip
|
||
|
||
# 给 Train_RFID_Linux/ 目录下的可执行文件 train_RFID_Linux 赋予运行权限
|
||
sudo chmod +x train_RFID_Linux
|
||
|
||
# 将可执行文件生成软连接 命名为 train
|
||
ln -s train_RFID_Linux train
|
||
|
||
# 解压 Train_v2.2.tgz 得到 Train_v2.2.tar
|
||
tar -xvzf Train_v2.2.tgz
|
||
|
||
# 将镜像加载到docker 得到 名为 train:2.2 的镜像
|
||
docker load -i Train_v2.2.tar
|
||
|
||
# 运行docker容器(具体内容可能需要微调)
|
||
docker run --name train_rfid --net=host --gpus all -e NVIDIA_VISIBLE_DEVICE=all -v /lib:/lib:ro -v /usr/lib:/usr/lib:ro -v /usr/local:/usr/local:ro -v /usr/src/tensorrt:/usr/src/tensorrt:ro -v /etc/localtime:/etc/localtime -v /home/storage/Train_RFID_Linux:/app:rw --log-opt max-size=100m --log-opt max-file=3 --restart always -itd train:2.2
|
||
```
|
||
|
||
|
||
##### 3、程序参数修改
|
||
```bash
|
||
# 修改 config.yaml
|
||
vi /home/storage/Train_RFID_Linux/config/config.yaml
|
||
```
|
||
参数内容如下:
|
||
|
||

|
||
|
||

|
||
|
||
```bash
|
||
# 修改完毕,保存
|
||
:wq
|
||
|
||
# 重启docker
|
||
docker restart train_rfid
|
||
|
||
# 查看日志,确认启动正常
|
||
docker logs -f --tail 100 train_rfid
|
||
```
|
||
|
||
|
||
### 三、调试车号识别主机
|
||
|
||
|
||
##### 1、打开串口服务器“网页转串口”界面
|
||

|
||
|
||
##### 2、发送信息,确认访问主机正常(“@getDelay&”)
|
||

|
||
|
||
注:16进制转换到ASCII字符串,看一下返回的内容。记住返回的数字,后面会用到。
|
||
|
||
|
||
|
||
##### 3、敲击磁钢,确认是否有返回值
|
||
```bash
|
||
# 使用铁器,按所需识别的行车轨迹敲打磁钢
|
||
|
||
# 核对界面上是否存在返回值,并记录
|
||
|
||
# 依次对返回值进行16进制转换到ASCII字符串
|
||
|
||
看字符@后面的第一个数字
|
||
例如 @8000000& 中的8
|
||
|
||
# 数字一般为 1、2、4、8 这四个数字。不存在0
|
||
|
||
# 将得到的数字按先后顺序排列,填写在上文配置文件 config.yaml 中
|
||
|
||
# 重启 train_rfid 容器
|
||
```
|
||
|
||
|
||
### 四、特殊情况提前了解
|
||
##### 1、RFID主机启动方式
|
||
```bash
|
||
RFID 的主机,会在磁钢被金属触碰,产生信号时触发“功放开启”。只有在“功放开启”状态,才会识别车厢号。
|
||
|
||
触碰磁钢的金属,可以是铁轨,可以是铁丝,可以是劳保鞋中的铁片。更可以是车轮。
|
||
```
|
||
|
||
|
||
##### 2、RFID主机关闭方式
|
||
```bash
|
||
RFID 的主机,会在没有磁钢触发后的 X 秒后关闭。
|
||
此处的 X 就是在 第三章,第2节中所说的数字,即“功放延时时间”。
|
||
|
||
若在 X 之前重新碰触磁钢,则重新计时。
|
||
```
|
||
|
||
|
||
##### 3、车辆长时间停车,会导致列车识别提前结束
|
||
```bash
|
||
基于上面 1、2 的描述,可想到当火车在 “RFID 天线” 上停车超过 X秒 时,可能会导致 RFID主机 “功放关闭”。
|
||
|
||
此时程序判断此列火车结束。(实际火车只是停车)
|
||
|
||
当火车重新启动、运行,则会重新产生一列新车的数据。
|
||
|
||
(不推荐)非要用RFID解决这个问题的话,可修改“功放延时时间”,将时间放大。
|
||
|
||
非要用不推荐的办法,大概率会产生新的问题。见下文4
|
||
```
|
||
|
||
|
||
##### 4、两列车合并成一列
|
||
```bash
|
||
当前一列火车在 “RFID 天线” 上离开不足 X秒,就又驶过一列新的火车时,可能会导致 RFID主机尚未 “功放关闭”。
|
||
|
||
此时程序判断此列火车还是前面那列刚刚离开的火车。
|
||
|
||
(推荐)此时需修改“功放延时时间”,将时间缩短。
|
||
```
|
||
|
||
|
||
##### 4、修改“功放延时时间”
|
||
```bash
|
||
不同型号的车号识别主机,修改方式不同。
|
||
BT210 可从 串口服务器 中的 “网页转串口” 界面 发送 “@setDelay=X” 进行修改。X替换为需要的秒数。
|
||
|
||
BT510 需从主机上的触控屏上修改。操作简单自己摸索,或咨询厂家。
|
||
|
||
若不是 北铁高科的 BT210 也不是 BT510 ,直接问厂家。此程序也不见得支持,可能需重新开发。
|
||
```
|