广西计重收费设备接口规范释疑版.docx
- 文档编号:12869571
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:15
- 大小:21.12KB
广西计重收费设备接口规范释疑版.docx
《广西计重收费设备接口规范释疑版.docx》由会员分享,可在线阅读,更多相关《广西计重收费设备接口规范释疑版.docx(15页珍藏版)》请在冰点文库上搜索。
广西计重收费设备接口规范释疑版
红字为疑问
本协议是为了今后Linux下开发而制定,并不是我们设计的,因此可能存在一些不足之处请谅解。
Windows下应该由设备厂家提供动态链接库wtsys_dll.dll给我们调用,参看本文后面的接口。
15.1计重设备
l5.1.1收费车道称重设备与收费车道计算机之间通信物理接口:
标准RS232串行通信口;
15.1.2通信速率:
传输速度:
4800bps/96OObps可选,通过dip开关或仪表设置可选
标书的其他地方是不小于9600,(采用9600即可)
15.1.3数据帧结构:
异步通讯数据结构定义如下:
起始位
数据位
效验位
停止位
1bits
8bits
无效验
1bits
15.1.4从机地址可设置:
称重仪表地址可在0ˉ255间设置。
15.1.5需要采集的信息:
需要采集的信息是一个完整的车辆信息,包括车辆的轴重、轴组重、整车重、轴型、车型、车速、车辆超限标志、时间等信息;
15.1.6信息帧结构:
轴重检测信息采取从机广播方式。
15.1.6.1指令0,从机返回信息,数据流方向:
从机→主机
帧起始标志
(1字节)
从机地址
(1字节)
命令号(1字节)
数据帧长度(1字节)
流水号
缓存车数(1字节)
时间:
年
(2字节)
月
(1字节)
日
(1字节)
时
(1字节)
分
(1字节)
秒
(1字节)
超限标志(1字节)
0×FF
0ˉ255
0
0ˉ255(单位字节)
0ˉ255
2003-65536
1ˉ12
1ˉ31
0ˉ23
0ˉ59
0ˉ59
0:
未超限
1:
超限
速度
(2字节)
加速度
(1字节)
轴数
(1字节)
轴组数
(1字节)
轴组1重量
(2字节)
轴组2重量
(2字节)
……
轴组n重量(2字节)
0ˉ65536
(权值0.1Km/h)
-128ˉ127
0ˉ255
0ˉ255
0ˉ65536
(权值:
10Kg)
0ˉ65536
(权值:
10Kg)
……
0ˉ65536
(权值:
10Kg)
轴组1轴型
(1字节)
轴组2轴型
(1字节)
……
轴组n轴型
(1字节)
1轴与2轴轴间距
(2字节)
2轴与3轴轴间距
(2字节)
……
n-1轴与n轴轴间距(2字节)
……
0ˉ65536;
权值(0.01米)
0ˉ65536;
权值(0.01米)
……
0ˉ65536;
权值(0.01米)
1轴速度(1字节)
……
n轴速度(1字节)
CRC(2字节)
单位0.1Km/h
……
单位0.1Km/h
循环冗余校验
注:
加速度为补码方式,最高位为符号位,例如:
0×FF为-1,最高位为1时,其他7位取反后加1即为实际值,最高位为0时,其十进制值即为实际值。
正常流程是从机发送指令0,主机收到后发送指令0×12(删除),从机删除该辆车信息并回应
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
保留(1字节)
CRC(2字节)
0×FF
0
0×12
0ˉ255(单位字节)
0ˉ255。
循环冗余校验
从机发送指令0,主机不回应,从机每隔5秒重发。
(对,应该这样)
15.1.6.2指令1,从机返回信息,数据流方向:
从机→主机
与指令0返回数据格式相同,称重信息是每个轴的轴重,而不是轴组重。
15.1.6.3对主机指令4(查缓存),从机返回信息,数据流方向:
从机→主机
与指令0返回数据格式相同,帧数据格式如下:
帧起始标志
(1字节)
从机地址(1字节)
命令号
(1字节)
数据帧长度(1字节)
时间:
年(2字节)
月
(1字节)
日(1字节)
时
(1字节)
分
(1字节)
秒
(1字节)
从机数据缓冲区保存的缓存车数
(1字节)
CRC
(2字节)
0×FF
0ˉ255
4
0ˉ255(单位字节)
2003ˉ65536
1ˉ12
1ˉ31
0ˉ23
0ˉ59
0ˉ59
0ˉ255
循环冗余校验
从机数据缓冲区保存的数据量(1字节)是否理解为缓存车数(对)
15.1.6.4对主机指令5(查询),从机返回信息,数据流方向:
从机→主机(每隔5秒钟(时间可设)发送查询结果)
与指令0返回数据格式相同,帧数据格式如下:
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
称重设备状态字(1字节)
CRC(2字节)
0×FF
0
5
0ˉ255(单位字节)
0ˉ255。
循环冗余校验
15.1.6.5指令6(倒车),由从机主动返回信息,数据流方向:
从机→主机。
当车辆倒出收费车道时,称重设备应检测到车辆退出,返回数据帧无车辆信息(从车辆超限标志开始至CRC前一个字节)。
注意,为了防止倒车信息丢失,如果下位机缓冲区中已经没有车辆数据(比如被主机取走并删除了),这时产生倒车信息则下位机应该将倒车信息放在缓冲区发送,直到主机主动删除(这是为了避免产生倒车数据的时候,称重设备恰好和主机失去通信而引起倒车信息丢失)。
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
流水号(1字节)
CRC(2字节)
0xFF
0
6
0~255(单位:
字节)
0~255。
循环冗余校验
此信息的发送采用正常车辆的发送形式:
如果主机没有回应则每隔5秒重发。
如果设备缓冲区中还有数据,则下位机可以内部处理倒车,将该车辆数据从缓冲区中移除(比如主机和下位机失去通信,这时车辆进入车道后,工作人员告知司机设备故障,要求车辆退出)。
帧起始标志
(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
称重设备状态字(1字节)
CRC(2字节)
0×FF
0
6
0ˉ255(单位:
字节)
0ˉ255。
循环冗余校验
该条的文字与框图不符,(从车辆朝鲜标志开始至CRC前一个字节)。
与框图不一致,
15.1.6.6对主机指令0×12(删除),从机返回信息,数据流方向:
从机→主机。
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
流水号(1字节)表示已经删除车辆的流水号
CRC(2字节)
0×FF
0
0×12
0ˉ255(单位字节)
0ˉ255。
循环冗余校验
15.1.6.7从机上电9(从机上电),数据流方向:
从机→主机
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
保留(1字节)
CRC(2字节)
0×FF
0
0×9
0ˉ255(单位字节)
0ˉ255。
循环冗余校验
15.1.6.8从机→主机其他指令定义(格式如上所示)
从机上电0×13(抓拍)数据流方向:
从机→主机
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
保留(1字节)
CRC(2字节)
0×FF
0
0×13
0ˉ255(单位字节)
0ˉ255。
循环冗余校验
0×13(抓拍)?
请再详细!
(请忽略)
0×87线圈触发
0×15年月(各一字节)
0×16日时(各一字节)
0×17分秒(各一字节)
15.1.6.9数据流方向:
从机→主机(定长)(此处有误,应该反过来主机→从机)
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据(2字节)
CRC(2字节)
0×FF
0
0ˉ255
循环冗余校验
从机→主机命令定义(格式如上):
从机→主机命令定义,是否主机→从机(对)
0×66线圈复位
0×4读取子机数据缓冲区车辆数信息
0×5称重设备自检
0×12删除一辆车
0×07同步
0×0a重发
0×14手动收尾
0×55初始化(保留缓存)
0×54初始化(不保留缓存)
b)对主机指令7,从机返回信息,数据流方向:
从机→主机
将存储的车辆数据按使用的指令模式发送(轴组模式或单轴模式)
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据(2字节)
CRC(2字节)
0×FF
0
0ˉ255
第一个决定发送模式,0-轴组模式,1-单轴模式,第二字节为保留
循环冗余校验
c)对主机指令Ox55,从机返回信息
检测状态初始化,保留缓存
d)对主机指令0x54,从机返回信息
检测状态初始化,清除缓存。
e)指令Oxl2数据第一个字节为流水号,第二字节为保留
该流水号是否为下一辆车的流水号?
指令Oxl2与数据第一个字节为流水号,第二字节为保留
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据帧长度(1字节)
保留(1字节)
CRC(2字节)
0×FF
0
0×12
0ˉ255(单位字节)
0ˉ255。
循环冗余校验
矛盾?
该流水号为要删除的车辆流水号
主机发送的指令格式如下:
帧起始标志(1字节)
从机地址(1字节)
命令号(1字节)
数据(2字节)
CRC(2字节)
0×FF
0
0ˉ255
第一个字节为流水号,第二字节为保留
循环冗余校验
15.1.7状态检测
车道主机可以发送称重设备检测状态命令,称重设备在自检后予以回应。
数
据交换过程由上述“主机轮询方式”的命令号5组成。
称重设备状态字定义如下:
O称重设备正常;
1称台传感器故障;
2光栅故障;
4线圈故障;
8轮胎识别器故障;
16通讯故障。
.
注:
当有多种故障时,返回值为各故障值之和;32、64、128暂不定义,留作扩充。
15.1.8轴型字节的描述
该字节高四位表示该轴组的单双信息,1代表双胎,0代表单胎,后四位表示轴型主要表示连轴
低四位的表示形式:
1单轴单胎
2单轴双胎
3双轴单胎
4双轴单双胎
5双轴双胎
6三轴单胎
7三轴双胎
高四位表示单胎均为0,双胎为1,综合表示如下:
单轴单胎Ox01
(1)
单轴双胎Oxll
(2)
双轴单胎Ox03(11)
双轴双胎0x35(22)
双轴单双胎Ox14或(21)
双轴单双胎0x24(12)
三轴单胎Ox06(111)
三轴两单胎一双胎Oxl7或(211)
三轴两单胎一双胎0x27或(121)
三轴两单胎一双胎0x47(112)
三轴一单胎两双胎Ox37或(221)
三轴一单胎两双胎0x57或(212)
三轴一单胎两双胎Ox67(122)
三轴双胎0x77(222)
请提供测试程序(本协议主要是为了将来在Linux下开发而制定,Windows下应该由厂家提供动态库调用wtsys_dll.dll)
附件二:
广西高速公路联网收费系统称重设备接口规范
一、基本要求
一、设备接口程序能够保存多辆车的数据,并且可以根据需要,由应用程序发指令同步数据或者按照保存顺序逐条清除。
二、轴重仪复位时,设备接口程序保存的数据应该不受影响,并且可以继续使用。
三、车辆数据采用先进先出方式存放。
四、厂家采用Windows32Bit动态链接库(DLL)的形式提供开发接口,该DLL内所有函数采用标准API调用格式(farpascal调用)。
动态库名称:
WtSys_Dll.dll。
五、厂家提供的动态链接库必须经过严格的测试,并附有测试程序,测试程序应该包含DLL中所有函数的功能测试。
六、厂家提供的DLL应该能够在Windows98、Windows2000、WindowsXP操作系统下正常使用。
七、所有资源的分配和释放采用谁分配谁释放的原则。
八、车辆完全驶入的时候才将数据放入DLL队列中。
车辆完全退出(倒车)时,也将车辆数据放入队列中,行驶方向指明为“倒车”(参见WtSys_GetData函数说明)。
二、函数接口
1、设置串口
boolWtSys_SetCom(char*Ccomm,intbps)
参数:
char*Ccomm
串口名称(com1,com2),默认为com1;
intbps
传输速率,默认为9600bps;
返回值:
true初始化成功;
false初始化失败。
2、称重仪缓存初始化
boolWtSys_Init(intIniType)
参数:
0清空缓存;
n取缓存中最后n辆车的数据;
返回值:
true成功;
false失败。
说明:
调用此函数时一定要保证称重仪上无车辆通过。
调用该函数取得的缓存中的车辆数据流水号为0,
加速度为0,并且无单轴数据,只有轴组数据。
当IniType大于称重仪缓存中的车辆数,称重仪将
返回缓存中的全部车辆的数据
3、检查设备状态
intWtSys_Test(void)
参数:
无;
返回值:
0轴重仪正常;
1称台传感器故障;
2光栅故障;
4线圈故障;
8轮胎识别器故障;
16通讯故障。
-1系统没有进行初始化或称重仪正在称重,无法应答。
注:
当有多种故障时,返回值为各故障值之和。
4、清除保存的首辆车数据
boolWtSys_ClearOne(void)
参数:
无;
返回值:
true清除成功;
false清除失败。
5、取当前总车数
intWtSys_GetCount(void)
参数:
无;
返回值:
≥0总车数;
-1没有车。
6、取指定序号的车辆总轴组数
intWtSys_AxisCount(intVehicleID)
参数:
intVehicleID缓存的车辆序号(1、2、…),默认为1;
返回值:
≥1总轴数;
-1失败。
7、取指定序号的车辆轴数据
boolWtSys_AxisData(intVehicleID,intAxisID,int*AxisType,long*Weight)
参数:
intVehicleID缓存的车辆序号(1、2、…);
intAxisID轴号(1、2、…);
int*AxisType返回轴型(1-7);
long*Weight返回轴重;
返回值:
true取数据成功;
false取数据失败。
8、取指定序号的车辆整车数据
boolWtSys_GetData(intVehicleID,int*TransNum,long*GrossWeight,int*AxisCount,double*Speed,double*Acceleration,int*Direction)
参数:
intVehicleID缓存的车辆序号(1、2、…);
int*TransNum返回流水号;
long*GrossWeight返回总重;
int*AxisCount返回轴组数;
double*Speed返回速度;
double*Acceleration返回加速度;
int*Direction返回行驶方向0正常行驶1倒车;
返回值:
true取数据成功;
false取数据失败。
9、取指定序号的车辆总单轴数
intWtSys_MonaxialCount(intVehicleID)
参数:
intVehicleID缓存的车辆序号(1、2、…);
返回值:
≥1总单轴数;
-1失败。
10、取指定序号的车辆附加轴数据
boolWtSys_AxisAddData(intVehicleID,intAxisID,long*Bound,long*Overweight)
参数:
intVehicleID缓存的车辆序号(1、2、…);
intAxisID轴号(1、2、…);;
long*Bound返回轴限载值;
Long*Overweight返回轴超限值;
返回值:
true取数据成功;
false取数据失败。
11、取指定序号的车辆单轴数据
boolWtSys_MonaxialData(intVehicleID,intAxisID,double*Wheelbase,long*Weight)
参数:
intVehicleID缓存的车辆序号(1、2、…);
intAxisID轴号;
double*Wheelbase返回轴间距;
long*Weight返回轴重;
返回值:
true取数据成功;
false取数据失败。
12、停止与称重仪的通讯
boolWtSys_Stop(void)
参数:
无
返回值:
true成功;
false失败。
注意,收费程序在进入程序的时候动态加载WtSys_DLL.DLL,在退出程序的时候通过FreeLibrary释放动态库。
收费程序后台线程不停重复如下工作:
1.调用动态库函数取第一辆车信息
2.放入收费系统缓存
3.调用动态库函数删除第一辆车
请厂家在编写动态库的时候要考虑到车辆倒车的时候,动态库的缓存中可能已经为空(被收费程序取走车辆信息并清空),这时候同样需要把倒车(这里指完整的倒车,车辆未完全通过秤台就向后倒车退出车道的情况由下位机内部处理)信息写入动态库缓存,收费程序根据“行驶方向”判断车辆是否倒车。
参看WtSys_GetData函数的返回参数Direction。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广西 收费 设备 接口 规范 释疑