基于python的温度巡检仪上位机软件


测量与设备 基于 Python 的温度巡检仪上位机软件 陶 进 李 丹 丹 陶 承 万 磊 婉 舜 江 西省 计 量测 试研 究院 南 昌 工 学院 基于 Python 语言设计了一种温度巡检仪的上位机软件 ,实现 RS232 串口数据读取 ,并对数据进行处 理运算 ,最后保存至 word 文档中 。 word 文档模板设计参照 JJ F 1 101 —2003《环境试验设备温度 、湿度校准规范》,数 据 自动保存后可 直接自动打印 ,从而使原本无法实现智能采集 运算的计量标 准仪器具备了 自动数据处理 ,自动生 成原始记录的功能 。 2015 年该温度巡 检仪( 配置该软件 )通过标 准水银温度计的校 准 ,校 准最大误差为 ± 0.1 ℃ , 扩展不确定度达到 O.3℃ (k = 2) ,性能符合 JJF 1 171 —2007《 温度巡回检测仪校准规范》的技术要求 。 Python RS232 自动数据处理 自动生成原始记录 24 基于 Python 的温度巡检仪上位机软件* 陶进 l 李丹丹 l 陶承 2 万磊 l 婉舜 l 周俊 l (1.江西省计量测试研究院,南昌 330022 ;2. 南昌工学院,南昌 330108 ) 摘 要 基于 Python 语言设汁了一种温度巡检仪的上位机软件.实现 RS232 串口数据读取.并对数据进行处 理运算,最后保存至阳时文梢中" word 文档模板设计参照 JJF 1101-2003{ 环境试验设备温度、湿度校准规也 þ ,数 据自动保存后可直接自动打印,从而使原本无法实现智能采集运算的计量标准仪器具备了自动数据处理,自功生 成原始记录的功能。 2015 年该温度巡检仪(配置该软件)通过标准水银温度计的校准.校准最大误差为士 O. I"C , 扩展不确定度达到 O. 3"C ( k= 2) ,性能符合 JJF 1171-2∞7{ 温度巡回检测仪校准规范》的技术要求 n 关键词 Python; RS232 ;自动数据处理;自动生成原始 i己承 doi: 10. 3969/j. i 州1. 10∞ -077 1. 2016.10.07 0 引言 温度巡检系统向前端温度传感器、下位机嵌入 式硬件(温度巡检仪)和上位机电脑软件气部分组 成,具有自动校准、人工校准、自动巡检、手动定检、 巡检通道切换时间及通道有效数可设定等功能,并 且具有良好的二次开发潜力,因此广泛应用于恒温 实验室、冷库、干燥箱、培养箱等环境实验设备的温 度校准工作。江西省计量测试研究院(简称"江两 院")和其他几十家省市计量机构于 2∞3 年起先后 购置了同内某公司研发的 16 通道温度巡检仪,其工 作原理是将巡检仪 16 个通道采集的 Pt100 电阻值 通过串口传输给上位机电脑,由相应软件处理转化 为温度数据显示,检定员将数据记录于写在纸上, 并参照 JJF 110 1 2003 计算处理数据,每份记录手 写起时约 0.5h( 规范要求每台环境试验设备校准时 间为 O. 5h) ,江西院每年 3ω0 台件环境试验设备的 检定量,每年起时约 1500h 。近几年国际上研发出 了可实现不需人工记录运算数据的巡检系统,但价 格是同内产品两借以上,并且由于上位机软件生成 的原始记录不完全符合 JJF 1101 2003 的要求,需 另加较高的软件修改费用。 江西院参照 JJF 门 01 2003 ,以温度巡检仪为 下位机,研发了一款基于 Python 语言的上位机软 件,可直接实现数据自动采集、处理和保存等功能。 本文详细介绍了基于 Python 编写的国内研发的某 * n 两省计 fd 测试研究院院级课题项目(幡H- 2014 第 5 号) . 24 . ?四号温度巡枪仪上位机软件的设计思想、串口通讯 协议、 32 位浮点数据转换方法、Pt loo 电阻值二分比 较查询方法、温度数据处理及 word 模板自动生成, 并且比较了温度巡检仪配备新软件前后的校准数 据和校准不确定度。 1 上位机软件设计 上位机软件设计包含串口设置判定、数据转换 模块、阻值换算模块、数据处理再储模块等 4 个程序 模块。第一程序模块串 U 设置判定模块功能是判 断串口是否打开,串口设置是否正确,若不正确,则 程序报错并且程序自动结束;若正确,程序则进入 第二程序模块数据转换模块,即通过串口向巡检仪 的 9 个通道读取 32 位浮点码(根据 JJF 1101 2003 要求, 0.5h 内读取 9 个通道,每个通道读取 15 次机 器码) ,并自动转换成 10 进制数(经标准电阻箱验 证,此 10 进制数为 Pt100 电阻值数);第三之程序模块 阻值换算模块是将 10 进制电阻值继续进行查表、分 度运算,换算成温度数值,换算完成后进入第四程 序模块数据处理存储模块;数据处理存储模块参照 JJF 1101 2003 ,计算出被检环境试验设备的温度 偏差、温度均匀度和温度波动度,然后将第兰程序 模块、第四程序模块所得温度数据共计 201 个温度 数值存储到规范所要求的 word 文梢模板中 c 程序 设计流程图如阁 l 所坑。 i十世技术 2016. No 10 • False 程序 串 U 设 Ture 数据转 阻值换 数据处理 程序 开始 置判定 换模j夫 算模块 存储模块结束 民I 1 软件流程罔 1. 1 串口通信协议定义 要实现上位机与温度巡检仪的串口通信,需确 定巡检仪向上位机所传字符串的起始位、数据位和 校验位 l ri 由于巡检仪研发小组早已解散,下位机 信息、无法得到,本文使用串口监昕工具 Serial Port Monitor 监听串口的通信数据,解析出起始字符串‘: ∞02003C' ,校验字符串‘ :02021856' ,并将所得字 符串用于 Python 语言环境下的串口定义,实现上下 位机通讯。串口定义完毕,只要串门在开启状态, 申口参数设置准确, Python 主程序 i周用相应模块和 雨数即可读取巡检仪 16 个通道的数据。 1.2 32 位浮点码数 通过对 Serial Port Monitor 所截取数据的反复对 比演算,验证出巡检仪传输给 J-. 位机电脑的机器码 为 IEEE 标准的 32 位浮点码,浮点码转换为 10 进制 数才可进行数据处理,本文以 8F 82 OA 43 为例阐述 转换!原理:浮点码数据记录时高位在后,首先将 8F 82 OA 43 逆序为 43 OA 82 8F( 某高位在前) ,再将其 转化为 1 近制, 010000110000101010∞∞ 10- 10001111 最高位是符号位 O 表示是正值,接下来 8 位是指数位,转换为十进制为 134 再减 127 ,结果为 7 ,右移 7 位变化为∞01010. 100∞01010001111 最 前面添 l 变为 10001010. 100000 10 1000 11 1 1 整数部 分为 10001010 转为十进制 138 ,小数部分 100∞0- 1010001111 其巾 l 对应 2 的- 1 次方,接下来的 O 对应 2 的 -2 次方……用式( 1 )表示: 1 x2 -1 +0 x2 -2 +0 x2 -,1 +0 x2 -4 +…+ 1 x 2 -7 +…+ 1 x 2 - 16 = O. 51 ( 1 ) 整数部分 138 加上小数部分 0.51 结果为 138. 51 0 Python 环境下编程如下: def Transfonn ( self, inData) : #Python32 位浮点码 的实现 digits = ( ( msbin [ 1 ] &OxOl) x 256) + msbin [2 ] a = [2 x x - ( i + 1 ) for i in range( 9) ] b=[(digits> >(8-i))&1 fori inrange(9)J l" = map (lambda x, y : x x y , a , b ) digit_part = sum ( c) 计监技术 2 0\ 6. No 10 | 测量与设备 retum int_part + digit_part 将 32 位浮点码转换为 10 进制数后,通过标准 电阻箱对比口I 发现转换后的 10 进制数为电阻值,要 得到温度值.还需要制作 Ptloo 阻值温度值分度表 进行再次转换〔 1. 3 Pt100 分度查表二分比较查找法 江西院 Pt lO。在 2015 年可标定的温度范围是 -30-200 ℃,参照 Pt100 阻值温度值分度表手册, 制作的阻值温度分度表如下: B = [82. 29 , 84. 27 , 86. 25 , 88. 22 , 90. 19 , 92. 16 , 94. 12 , 96. 09 , 98. 04 , 100. 00 # - 45 - 0 …… 159. 19 , 16 1. 05 , 162.91 , 164.77 , 166.63 , 168.48 , 170.33 , 172. 17 , 174. 02 , 175.86#155 - 200] 表中共 有 50 个数值.程序中采用三分比较查找法,逐步将 阻值范罔缩小,最终将阻值锁定在表格两个值的闭 l泛间之内,根据表格两个值之差对应 5'(; 求出温度 分度系数 k ,进而求出近似温度值.其相应编程如 下: def lookup ( num) : while first < end : #Python 经典二分法程序 mid = ( first + end ) /2 if num > b [ mid ] : first = mid + 1 elif num < h [ mid J : end = mid-l if first = = end , 1. 4 温度数据处理及 word 模板自动生成 软件在将电阻数据转换为温度数据后,参照 JJF 1101 2003 的技术要求计算出温度偏差、温度 波动度、温度均匀度、计算出各项参数后,自动保存 至指定路径的 word 文档巾,等待自动打印,节约人 工成本。 1 )温度偏差计算 lli 6.t" = 1" -1" (2) 式中 : 6.t d 温度偏差,吃; t" 为巾心点 n 次测量的平 均值,
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf