# 仓储柜控制系统 --- ## 1.配置文件说明 (SaveData/DefaultConfig.json) 打开Json根据如下说明进行编辑即可,通道门与仓库端软件也有对应的图形化操作。 --- ### 通道门配置说明 `DataOutputDoor` | 数据名称 | 数据说明 | 数据参考 | | ----------- | ------------- | --------------- | | OutputIP | 通道门预留继电器地址 | "192.168.1.201" | | OutputRoute | 通道门预留继电器线路 | 7 | | InputIP | 入口门门磁继电器地址 | "192.168.1.201" | | InputRoute | 入口门门磁继电器线路 | 6 | | AlarmIP | 报警器继电器地址 | "192.168.1.201" | | AlarmRoute | 报警器继电器线路 | 5 | | RfidIP | 通道门Rfid扫描设备地址 | "192.168.1.201" | ### 接口地址配置说明 `DataHttpAddress` | 数据名称 | 数据说明 | 数据参考 | | ------------------------ | ----------- | --------------------------------- | | RequestAddressIn | 存入装备请求地址 | "http://192.168.1.42:5050/api" | | RequestAddressOut | 取出装备请求地址 | "http://192.168.1.42:5050/api" | | RequestAddressOutputDoor | 通道门扫描装备请求地址 | "http://192.168.1.42:5050/api" | | ServerAddress | 本地http服务器地址 | "http://192.168.1.42:6555/index/" | 注:192.168.1.42为本机地址,6555为端口号,请求地址请换成后端接收对应请求的http接口地址。 ### 串口配置说明 `DataSerialPort` | 数据名称 | 数据说明 | 数据参考 | | ---------- | -------------------- | ------ | | SerialPort | 串口编号(设备插入PC后,对应的串口号) | COM5 | | BaudRate | 波特率(如果没有设备更换,此处无需修改) | 115200 | ### 仓库配置说明 `DataAllStorage` | 数据名称 | 数据说明 | 数据参考 | | --------------- | -------------- | --------------------------- | | DataStorageList | 装备柜列表 | Dictionary("装备柜编号",装备柜数据实体) | | "1" | 1号装备柜 | 根据开头的编号决定 | | 装备柜数据实体 | ----- | ---- | | ID | 装备柜编号 | 同编号数据头 | | RFIDTcpIP | 装备柜Rfid扫描器地址 | "192.168.1.116" | | AntennaRoute | 装备柜Rfid扫描器天线编号 | (1-4)之间的任意数字,其他数字默认开启全部天线。 | | PowerTcpIP | 装备柜柜锁继电器地址 | "192.168.1.201" | | PowerRoute | 装备柜柜锁继电器线路 | (0-7)之间的任意数字 | ## 2.http接口说明 地址可通过配置文件进行修改,建议修改格式如下 http://[本机地址]+:+[端口号]/index --- ### 开柜 请求格式:Application-Json 请求数据 | 数据名称 | 数据说明 | 示例 | | ------- | ------------------ | ----------------- | | Storage | 柜门数组,仅存在编号的装备柜可以开柜 | {"Storage":["1"]} | ### 报警 请求格式:Application-Json 请求数据 | 数据名称 | 数据说明 | 示例 | | ---- | ---- | ----------- | | Time | 报警时间 | {"Time":10} | ## 3.控制协议 硬件设备控制仅控制Modbus8路继电器、Rfid串口读写设备、Rfid-TCP-四路天线读写设备。 --- ### 3.1继电器控制协议(Modbus-TCP) ##### Modbus报文格式说明 --- 注:此处仅为拓展说明,如需了解具体协议内容可跳转至 `控制开关` 部分。 报文格式由报文头,协议体组成,使用hex格式的byte数组进行通讯。 【报文头6位】+【协议体n位】 1.【报文头】 报文头由报文ID(4位)+协议长度(2位)组成,报文ID可以用于检查设备是否接收到该数据,协议长度声明本次要发送的长度(长度范围:0-65535) | 报文定义 | 占位长度 | 示例 | | ---- | ---- | ------------------------------- | | 报文ID | 4 | 【0x00,0x00,0x00,0x00】 | | 协议长度 | 2 | 【0x00,0x06】 | | 全部报文 | 6 | 【0x00,0x00,0x00,0x00,0x00,0x06】 | 2.【协议体】 协议体由主机名称(1位),功能码(1位),协议地址(2n位),协议数据(2n位)组成。 | 报文定义 | 占位长度 | 示例 | | ---- | ---- | ----------- | | 主机名称 | 1 | 【0x01】 | | 功能码 | 1 | 【0x06】 | | 协议地址 | 2n | 【0x00,0x01】 | | 协议数据 | 2n | 【0x00,0x01】 | 3.【功能码】简易说明表 | 功能 | 操作类型 | 示例 | 操作数量 | | -------- | ---- | ------ | ----- | | 读线圈寄存器 | 位操作 | 【0x01】 | 单个或多个 | | 读离散输入寄存器 | 位操作 | 【0x02】 | 单个或多个 | | 读保持寄存器 | 字操作 | 【0x03】 | 单个或多个 | | 读输入寄存器 | 字操作 | 【0x04】 | 单个或多个 | | 写单个线圈寄存器 | 位操作 | 【0x05】 | 单个 | | 写单个保持寄存器 | 字操作 | 【0x06】 | 单个 | | 写多个线圈寄存器 | 位操作 | 【0x0F】 | 多个 | | 写多个保持寄存器 | 字操作 | 【0x10】 | 多个 | ##### 控制继电器开关 | 协议名称 | 示例 | | -------- | ----------------------------------------------------------------- | | 打开1路继电器 | 【0x00 0x00 0x00 0x00 0x00 0x06 0x01 0x06 0x00 `0x00` 0x00 `0x01`】 | | 关闭1路继电器 | 【0x00 0x00 0x00 0x00 0x00 0x06 0x01 0x06 0x00 `0x00` 0x00 `0x00`】 | | 操作其他路继电器 | 改变发送地址与值(0=关,1=开) | | 打开8路继电器 | 【0x00 0x00 0x00 0x00 0x00 0x06 0x01 0x06 0x00 `0x07` 0x00 `0x01`】 | | 关闭8路继电器 | 【0x00 0x00 0x00 0x00 0x00 0x06 0x01 0x06 0x00 `0x07` 0x00 `0x00`】 | ##### 查询继电器开关状态 | 协议名称 | 示例 | | ------------- | ----------------------------------------------------------------- | | 读取1-8路继电器开关状态 | 【0x00 0x00 0x00 0x00 0x00 0x06 0x01 0x03 0x00 `0x00` 0x00 `0x08`】 | ### 3.2桌面Rfid读写器控制协议(Rfid-SerialPort) [参考API手册](./DocRes/中科微芯 RFID 读写设备开发指南.NET.4.38.pdf) ### 3.3装备柜Rfid扫描控制协议(Rfid-TCP) [参考API手册](./DocRes/中科微芯 RFID 读写设备开发指南.NET.4.38.pdf)