.. _多功能串口数据记录仪配置参考: ============================ 多功能串口数据记录仪配置参考 ============================ -------------------- 可配置项 -------------------- 1. 通信接口 + rs232 + rs485 + ttl 2. 报警 - 报警方式 + led 指示灯 + buzzer 蜂鸣器 + relay 继电器 - 匹配字节串 ``最长16字节`` 3. 串口通信参数 - 波特率 最大 ``921600`` - 数据位 ``7/8`` - 校验位 ``N/O/E`` - 停止位 ``1/2`` 4. 文件分割 - 分割方式 - size 按大小分割,单位 ``KB`` - time 按时间分割,单位 ``分钟`` - 分割参数 5. 编码方式 - 编码类型 - ascii 字符型记录。 在每帧或每行前,可选择加时间戳 - raw 原始16进制记录。 - convert 将原始16进制变换成2字符ascii字符进行记录 - 是否加时间戳 仅用于 ascii和convert - 是否以'\\r'作为新行标志 仅用于 ascii - 是否以'\\n'作为新行标志 仅用于 ascii 6. 轮询发送 - 发送周期 单位 ``秒`` - 发送字节串 ``最长32个字节`` .. note:: 极限测试数据: 条件:无轮询,无报警 | ascii模式下,921600波特率,每帧32字符,10ms周期定时发送,无数据丢失 | convert模式下,921600波特率,每帧32字符,20ms周期定时发送,无数据丢失 | raw模式下,25600波特率连续发送,无数据丢失 ---------------- 帧定义 ---------------- 对于连续发送的字节流,如果中断超过 ``3.5个字符`` 传输时间,则认为是新的一帧的开始 每接收到一帧数据,模式指示灯闪烁一次 ---------------- 行定义 ---------------- 1. 对于不超过2000个字符的帧,认为是一行 2. 如果一帧内的字符超过2000个,则从2001个字符开始分为2行 3. 如果设置了新行标志,则不按照帧划分,仅在遇到新行标志字符时才划分为新行,除非达到2000字符上限 ---------------- 编码方式 ---------------- 500ms 周期发送字节串 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x30 ^^^^^^^^^^^^^^^ ASCII ^^^^^^^^^^^^^^^ 主要用于记录一般 ``字符日志`` **配置** :带时间戳,CR=false, LF=false 记录文件 2000_01_02 18_29_34.txt 如下 .. code:: [2000-01-02 18:29:34.957] 1234567890 [2000-01-02 18:29:35.453] 1234567890 [2000-01-02 18:29:35.954] 1234567890 [2000-01-02 18:29:36.454] 1234567890 [2000-01-02 18:29:36.954] 1234567890 [2000-01-02 18:29:37.453] 1234567890 [2000-01-02 18:29:37.956] 1234567890 [2000-01-02 18:29:38.453] 1234567890 [2000-01-02 18:29:38.956] 1234567890 [2000-01-02 18:29:39.454] 1234567890 [2000-01-02 18:29:39.953] 1234567890 [2000-01-02 18:29:40.453] 1234567890 [2000-01-02 18:29:40.953] 1234567890 [2000-01-02 18:29:41.456] 1234567890 [2000-01-02 18:29:41.953] 1234567890 [2000-01-02 18:29:42.453] 1234567890 ^^^^^^^^^^^^^^^ RAW ^^^^^^^^^^^^^^^ 主要用于 ``记录原始数据`` 记录文件 2000_01_02 18_33_10.bin 如下 .. code:: 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 ^^^^^^^^^^^^^^^ CONV ^^^^^^^^^^^^^^^ 主要用于 ``调试原始数据`` **配置** :带时间戳 记录文件 2000_01_02 18_37_35.txt 如下 .. code:: [2000-01-02 18:37:35.277] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:35.778] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:36.276] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:36.775] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:37.275] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:37.778] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:38.276] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:38.776] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:39.278] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:39.775] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:40.276] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:40.775] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:41.278] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:41.777] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:42.278] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:42.776] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:43.280] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:43.778] 31 32 33 34 35 36 37 38 39 30 [2000-01-02 18:37:44.277] 31 32 33 34 35 36 37 38 39 30 ------------------------ 配置模式命令 ------------------------ 在配置模式下,可以通过USB模拟出的COM进行配置,配置结果保存于EEPROM。当SD卡中无配置文件config.ini时,使用EEPROM中的配置对 |device| 进行初始化。 使用任意串口调试工具连接并打开串口(38400 8N1),即可使用AT命令配置 |device| 。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 串口参数 AT+S_SERIAL/AT+G_SERIAL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 设置 **AT+S_SERIAL=波特率_数据位_校验位_停止位** | 波特率范围:1200,4800,9600,19200,38400,56000,57600,115200,128000,230400,256000,921600 | 数据为范围:7,8 | 校验位范围:N,E,O | 停止位范围:1,2 举例: AT+S_SERIAL=115200_8_N_1 - 读取 **AT+G_SERIAL=?** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 存储方案 AT+S_STORAGE/AT+G_STORAGE ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 设置 **AT+S_STORAGE=存储模式:标志1[,标志2][,标志3]** | 存储模式:ASCII,RAW,CONV | 标志:TS,CR,LF - TS 每行加时间戳 - CR 以CR为新行标志 - LF 以LF为新行标志 - 读取 **AT+G_STORAGE=?** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件分割方案 AT+S_FILE/AT+G_FILE ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 设置 **AT+S_FILE=分割方式:分割参数** | 分割方式:SIZE,TIME - SIZE 按文件大小分割 单位 KB - TIME 按时间长短分割 单位 分钟 | 分割参数:1 ~ 2^31 - 读取 **AT+G_FILE=?** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 通信接口选择 AT+S_CHANNEL/AT+G_CHANNEL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 设置 **AT+S_CHANNEL=通道** | 通道:RS232,RS485,TTL - 读取 **AT+G_CHANNEL=?** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 报警设置 AT+S_ALARM/AT+G_ALARM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 设置 **AT+S_ALARM=报警方式1[,报警方式2][,报警方式3]@字节串** | 报警方式:BUZZER,LED,RELAY - BUZZER 蜂鸣器 - LED 指示灯 - RELAY 继电器 | 字节串: 0x--[,0x--] 以0x开头的,以英文逗号为分割的连续十六进制字节。 ``最长16个字节`` .. note:: 字节串个数越多,越影响处理性能 如果需要关闭报警功能,可以使用 AT+S_ALARM=@ - 读取 **AT+G_ALARM=?** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 时间设置 AT+S_TIME/AT+G_TIME ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 设置 **AT+S_TIME=时间字符串** | 时间字符串:YYMMDDHHmmss ,按照年月日时分秒的顺序,每项2个字符 - 读取 **AT+G_TIME=?** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 轮询发送 AT+S_SEND/AT+G_SEND ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 设置 **AT+S_SEND=轮询间隔@字节串** | 轮询间隔:0 ~ 2^31 ,单位秒。 如果要关闭轮询功能,间隔可以设置为 0 | 字节串: 0x--[,0x--] 以0x开头的,以英文逗号为分割的连续十六进制字节。 ``最长32个字节`` - 读取 **AT+G_SEND=?** ------------------------ 配置脚本详解 ------------------------ 如果SD卡中存在配置脚本文件 config.ini,那么将以脚本的配置进行初始化。 配置文件是按照windows的系统配置文件的存储文件格式进行组织编写的。具体说明请参考 `ini文件 `_ 。请务必按照正确的格式,否则将导致解析错误。 配置文件最大1024字节。 配置实例: .. code:: ini [channel] channel=rs232 ;rs232,rs485,ttl [alarm] by=led,buzzer,relay match_hex=0x30,0x31,0x32,0x33,0x34 [serial] baudrate=9600 data_bits=8 ;7,8 parity=N ; N,O,E stop_bits=1 ;1,2 [file] splitter=size ;size,time parameter=8000 ;kB,minutes [storage] type=ascii ;raw ,ascii ,convert add_timestamp=true newline_cr=false newline_lf=false [send] send_hex1=1@0x30,0x32,0x33,0x34,0x0d,0x0a send_hex2=2@0x31,0x32,0x33,0x34,0x0d,0x0a send_hex3=3@0x32,0x32,0x33,0x34,0x0d,0x0a send_hex4=4@0x33,0x32,0x33,0x34,0x0d,0x0a 以上配置解读为: - 进行RS232通信接口记录 - 当一帧内遇到字节串“0x30,0x31,0x32,0x33,0x34”时,通过 LED,蜂鸣器,继电器进行报警 - 串口通信参数为: 9600 8N1 - 文件按照大小的方式进行分割,每8000KB新建一个文件 - 记录方式为 ASCII,每行行首增加时间戳,以默认的帧分割行 - |device| 按照 `send_hex1` , `send_hex2` ... 的顺序依次发送十六进制字节。每次发送前延时 @ 符号前的 正整型数值代表的 `秒` 。 .. note:: 脚本配置时, [send] 最多支持32条循环发送,每条最长32个字节 串口命令配置时,仅支持一条,最长32个字节 .. |device| replace:: 多功能串口记录仪