读取电子千分尺的数据

📅 2026/6/28 4:53:58 👤 编程新知 🏷️ 技术资讯
读取电子千分尺的数据 电子千分之的通信协议01【数字千分尺】一、简介这是一台带有RS232串口接口的高精度电子千分尺。 可以看到它的通讯协议是在拍摄的一张纸上显示着 下面我们通过豆包将协议转换成文本文件。 下面测试一下通过协议来读取这个千分尺的具体数据 为后面测试泵箱的位移做准备。R232串行通信协议通讯协议波特率9600,8N1以通常用得命令“52H” “55H”“53H”为例1单次发送数据数据接收方PC机发送十六进制52H给数显表数显表单次发送数据。数显表收到一个52H发送一组数据当时显示值。2连续发送数据数据接收方PC机发送十六进制55H给数显表数显表连续发送数据以后显示值每有变化即发送。3停止发送数据数显表收到53H时停止发送数据。进入连续发送数据状态后必须发送53H数显表才能停止发送数据。4其它按键定义请见附表。数据格式数据ASCIIASCII码数组格式【X】【符号位】【数值】【数值】【数值】【数值】【数值】【小数点】【数值】【数值】【数值】【空格】【Y】【符号位】【数值】【数值】【数值】【数值】【数值】【小数点】【数值】【数值】【数值】【空格】【Z】【符号位】【数值】【数值】【数值】【数值】【数值】【小数点】【数值】【数值】【数值】【空格】小数点位置不固定随设置的分辨率而变。如X1234.567分辨率1,2,5,10小数点后三位X123.4567分辨率0.10.20.5小数点后四位X12.34567 I/NI 公制 I/MM 公制小数点后五位三、通讯协议测试根据它对应的通讯协议 通过串口发送阿斯克码R对应的数值是16进制52 每发送一次可以接收到千分尺对应的数值。 发送大写字母S对应的阿斯克码数值为16 进制53千分尺停止发送数据。 发送大写字母U对应的阿斯克码数值16进制55 显示的电子纤维尺可以自动发送测量数值 每当数值变化时它便会发送对应的数值变化值。通过Python编程 打开窗口发送大写字母R 然后再从串口读取20个字符。 可以得到数据手册中所注明的返回数值 然后下面再将数值中的数字提取并转换成浮点数 便可以得到电子千分尺的具体数值了。#!/usr/local/bin/python# -*- coding: gbk -*-## TEST1.PY -- by Dr. ZhuoQing 2026-06-27## Note:#fromheadmimport*importserialfrom_astimportOrfromserial.serialutilimportSerialException#------------------------------------------------------------xyzserial.Serial()xyz.baudrate9600xyz.timeout0.05try:xyz.portCOM5except:printf(Set xyz port COM5 error. )try:xyz.open()exceptserial.serialutil.SerialException:printf(Open xyz port COM5 error.)else:printf(Open xyz port COM5 Ok.)#------------------------------------------------------------defxyzread():xyz.write(bR)rxyz.read(20)rsstr(r).split( )[-1].strip()returnfloat(rs)printf(xyzread())#------------------------------------------------------------# END OF FILE : TEST1.PY#※总结 ※本文测试了电子千分尺读取通讯协议 首先利用豆包将它的纸质的说明书转换成具体文字 这样可以留取后面查找使用。 利用Python编程 通过串口将读取的字符串转换成浮点数。 下面我们可以利用这个千分尺来测量泵箱推杆的具体位移了。