Compare commits

...

1 Commits
V1.2 ... main

Author SHA1 Message Date
zhangwei a787e5d947 更新 README.md 2025-01-20 01:59:39 +00:00
1 changed files with 185 additions and 1 deletions

186
README.md
View File

@ -1 +1,185 @@
Train_RFID_Linux
# RFID程序部署Linux+串口服务器版) Train_RFID_Linux
### 一、适用环境
此程序适用于北铁高科的火车车号识别BT110、BT210、BT510以及其他数据格式相同的其他型号。其他型号暂未适配测试建议先收集数据验证后使用。
### 二、串口服务器配置
##### 1、登录
使用浏览器访问串口服务器 `192.168.0.7`
默认用户名和密码都是 `admin`
##### 2、修改IP
![image](images/LN_q2WYkKzM2wWlMZV_VlrNSoQopsDNOhnD4hlsvO50.png)
保存后会重启。大约半分钟后用修改后的IP重新在浏览器中访问。
##### 3、修改端口参数
![image](images/StR5A-tfn0PrNiS_lua8-aczFGz-S1ztXFFVwKZCo4M.png)
注意串口模式一般为232非绝对。最好和系统集成部同事核对。
![image](images/hxAJan-fkpeAyv-j4g6Vqgk_wq50AKay9grlDwVZ5QQ.png)
### 三、RFID程序部署
##### 1、准备程序包
```bash
# 运行程序的docker镜像
Train_v2.2.tgz
# 程序的配置文件:
Train_RFID_Linux.zip
```
![image](images/dD4CLmPIiLuxj5It_IFk0DXMPOnYKnxiD_0-a7wERW8.png)
配置文件目录
主要包含 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
```
参数内容如下:
![image](images/bcFtXYBLvzTuHfm0utoWk33eCr5JAfnd_NYwnNvC9Ic.png)
![image](images/XYP7HXN8UwUasYEAVWkZkg2ukRTvyNB589NnvEArHpI.png)
```bash
# 修改完毕,保存
:wq
# 重启docker
docker restart train_rfid
# 查看日志,确认启动正常
docker logs -f --tail 100 train_rfid
```
### 三、调试车号识别主机
##### 1、打开串口服务器“网页转串口”界面
![image](images/a7wU_TT_ZlHMtnHhsJ5mIzYjLor4vfuvZra65e-TrEE.png)
##### 2、发送信息确认访问主机正常“@getDelay&”)
![image](images/YpIDL1buyA7HLlT0dQULXlr665ELpaTzit6IhGa3Lgw.png)
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 ,直接问厂家。此程序也不见得支持,可能需重新开发。
```