5.7 KiB
5.7 KiB
RFID程序部署(Linux+串口服务器版) Train_RFID_Linux
一、适用环境
此程序适用于北铁高科的火车车号识别BT110、BT210、BT510以及其他数据格式相同的其他型号。其他型号暂未适配测试,建议先收集数据,验证后使用。
二、串口服务器配置
1、登录
使用浏览器访问串口服务器 192.168.0.7
默认用户名和密码都是 admin
2、修改IP
保存后会重启。大约半分钟后,用修改后的IP重新在浏览器中访问。
3、修改端口参数
注意:串口模式一般为232,非绝对。最好和系统集成部同事核对。
三、RFID程序部署
1、准备程序包
# 运行程序的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、程序部署
# 将程序包放置在服务器上,并在/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、程序参数修改
# 修改 config.yaml
vi /home/storage/Train_RFID_Linux/config/config.yaml
参数内容如下:
# 修改完毕,保存
:wq
# 重启docker
docker restart train_rfid
# 查看日志,确认启动正常
docker logs -f --tail 100 train_rfid
三、调试车号识别主机
1、打开串口服务器“网页转串口”界面
2、发送信息,确认访问主机正常(“@getDelay&”)
注:16进制转换到ASCII字符串,看一下返回的内容。记住返回的数字,后面会用到。
3、敲击磁钢,确认是否有返回值
# 使用铁器,按所需识别的行车轨迹敲打磁钢
# 核对界面上是否存在返回值,并记录
# 依次对返回值进行16进制转换到ASCII字符串
看字符@后面的第一个数字
例如 @8000000& 中的8
# 数字一般为 1、2、4、8 这四个数字。不存在0
# 将得到的数字按先后顺序排列,填写在上文配置文件 config.yaml 中
# 重启 train_rfid 容器
四、特殊情况提前了解
1、RFID主机启动方式
RFID 的主机,会在磁钢被金属触碰,产生信号时触发“功放开启”。只有在“功放开启”状态,才会识别车厢号。
触碰磁钢的金属,可以是铁轨,可以是铁丝,可以是劳保鞋中的铁片。更可以是车轮。
2、RFID主机关闭方式
RFID 的主机,会在没有磁钢触发后的 X 秒后关闭。
此处的 X 就是在 第三章,第2节中所说的数字,即“功放延时时间”。
若在 X 之前重新碰触磁钢,则重新计时。
3、车辆长时间停车,会导致列车识别提前结束
基于上面 1、2 的描述,可想到当火车在 “RFID 天线” 上停车超过 X秒 时,可能会导致 RFID主机 “功放关闭”。
此时程序判断此列火车结束。(实际火车只是停车)
当火车重新启动、运行,则会重新产生一列新车的数据。
(不推荐)非要用RFID解决这个问题的话,可修改“功放延时时间”,将时间放大。
非要用不推荐的办法,大概率会产生新的问题。见下文4
4、两列车合并成一列
当前一列火车在 “RFID 天线” 上离开不足 X秒,就又驶过一列新的火车时,可能会导致 RFID主机尚未 “功放关闭”。
此时程序判断此列火车还是前面那列刚刚离开的火车。
(推荐)此时需修改“功放延时时间”,将时间缩短。
4、修改“功放延时时间”
不同型号的车号识别主机,修改方式不同。
BT210 可从 串口服务器 中的 “网页转串口” 界面 发送 “@setDelay=X” 进行修改。X替换为需要的秒数。
BT510 需从主机上的触控屏上修改。操作简单自己摸索,或咨询厂家。
若不是 北铁高科的 BT210 也不是 BT510 ,直接问厂家。此程序也不见得支持,可能需重新开发。