keller PAA-3XX/80794系列(绝压)压力传感器
- keller英文版通讯协议百度网盘:提取码:fusc
广播模式:所有从机都会收到上位机信息
Broadcasting This mode of communication enables the master to transmit a message to all slaves
simultaneously. The master does not receive a reply, however, and is thus unable to check
whether the message has been correctly received by every slave.只有单一从机收到:
Data interchange This mode of communication enables the master to communicate with a single slave. This
normally involves the transmission of two messages: the master transmits a request and
the slave responds to this request. Only the master is permitted to request a response. The
request is received by every slave, but only the selected slave responds. The response
must be received within a stipulated time, otherwise the master will assess the attempt as
failed and must transmit the request again.如下数据格式:
The data are transmitted serially via the bus. The following format applies:
1 start bit
8 data bits (the least significant bit first)
1 stop bit
The parity bit can be set for devices of Class.Group = 5.20
9600 baud or 115’200 Baud (only with devices of Class.GrouThis results in 10 bits (11 bits with active parity bit) per transmission byte.
- 命令字符串格式:
Note on the presentation of messages: Each box presents 1 data byte consisting of 8 bits, unless otherwise stated.
Each message sent by the master possesses the following format:
设备地址 | 方法代码 | 方法参数 | CRC校验 高位 | CRC校验 低位 |
---|---|---|---|---|
DevAddr | 0 Function code | n byte parameters (optional) | CRC16_H | CRC16_L |
FA | 49 | 01 | A1 | A7 |
· DevAddr: Address of the device.
Address 0 is reserved for broadcasting.
Addresses 1...249 can be used for bus mode.
Address 250 is transparent and reserved for non-bus mode. Every device can be contacted with this address.
Addresses 251...255 are reserved for subsequent developments.
· Function code: Function number
A function is selected and executed by the device via the function number. The function number is encoded in 7 bits. Bit 7 is
always 0. The functions are described further below.
· Parameters:
The parameters required by the function (n = 0 .. 6, according to function)
· CRC16: 16-bit checksum
These two check bytes serve to verify the integrity of the received data. If an error is established, the entire message will be
discarded. The principle employed for CRC16 calculation is described in the appendix. The CRC16 standard is applied here.
Note: The length of a message from the master is at least 4 bytes.
每一个方法参数有 0-6 可选,类似modbus协议
Function:48 (16进制为:30)
F48: Initialise devices, whereby the device ID is returned
命令:FA 30 04 43
设备地址 | 方法代码 | 方法参数 | CRC校验 高位 | CRC校验 低位 |
---|---|---|---|---|
FA | 30 | 04 | 43 |
Function:73 (16进制为:49)
F73: Read out current pressure and temperature values in floating-point format
命令:FA 49 01 A1 A7
(还有其他方法根据自己所需数据自己去协议找)
设备地址 | 方法代码 | 方法参数 | CRC校验 高位 | CRC校验 低位 |
---|---|---|---|---|
FA | 49 | 01 | A1 | A7 |
返回数据格式为:
设备地址 | 方法代码 | 方法参数 | CRC校验 高位 | CRC校验 低位 |
---|---|---|---|---|
FA | 49 | 01 | A1 | A7 |
方法代码 | 16进制形式 | 功能描述(英文) | 功能描述(中文) |
---|---|---|---|
F3 | Read out the current pressure and temperature values in MODBUS format | ||
F30 | 1e | Read out scaling values | 读取最大值 |
F31 | 1f | Write scaling values | |
F32 | 20 | Read out configurations | 读取配置 |
F33 | 21 | Write cinfigurations | 写入配置 |
F48 | 30 | Initialise devices, whereby the device ID is returned | 初始化设备,返回设备ID,询问链接 |
F66 | 42 | Programm bus address | 总线地址 |
F69 | 45 | Read out serial number | |
F73 | 49 | Read out current pressure and temperature values in floating-point format | 读取当前浮点型压力、温度数据 |
F74 | 4a | Read out current pressure and temperature values in integer format | 读取当前压力温度整形数据 |
F95 | 5f | Zeroing functions | 归零 |
F100 | 64 | Read out configurations | 读取配置 |
F101 | 65 | Write configurations | 写入配置 |
- 返回数据格式:
其中 B3、B2、B1、B0 一个八个十六进制字符,48 = 32 位,按照IEEE754规则表示的浮点数
其中第0位符号位S:1-9 一共8位(bytes)阶码E 9-32 一共23位表示尾数M 小数位 如:0.xxxxxx
整数位默认省略1,所以最后计算需要(-1)S(1+M)*2E-127
遵循IEEE754 浮点数定义:
IEEE754转化浮点数
- python 现成代码:楼主自己项目里面使用的
def parsePressure(pressure):
"""
压力数据格式为:FA 49 B3 B2 B1 B0 STAT CRC16_H CRC16_L
FA 49 3F 81 61 ee 00 11 6f
解析返回压力,统一返回千帕-kpa,保留7位小数
0:KPA | 1: MPA | 3 PA | 5 bar
:param pressure:
:return:
"""
UNIT = {
"KPa": 1,
"MPa": 1000,
"Pa": 0.001,
"Bar": 100
}
pressure16 = pressure[4:12]
binAll = str(bin(int(pressure16, 16)))[2:]
# binAll = binAll[2:]
data = [x for x in binAll[:-24:-1]]
data.reverse()
binE = binAll[:-23]
E = int(binE, 2) - 127
total = 1
for i, v in enumerate(data):
total = total + int(v) * (2 ** -(i + 1))
pressure = total*(2**E)
return pressure*UNIT["Bar"]
SeriaPort 类为继承serial 模块复写write/read 方法,(pip install pyserial)
from Lib.SerialPort import *
import time
import os
import threading
import binascii
import re
class PressureSensor(object):
"""
压力传感器型号为:keller PAA-3XX/80794(绝压)
协议类型: KELLER protoco (类MODBUS 协议)
Each message sent by the master possesses the following format:
DevAddr | 0 Function code | n byte parameters (optional) |CRC16_H CRC16_L
"""
def __init__(self,com='COM14' ):
self.seria = SerialPort(com,9600)
self.last_str = "FA493F8161ee00116f"
print('PressureSensor初始化成功')
def readPressure(self):
self.seria.Write(bytes.fromhex("FA 49 01 A1 A7"))
pressurestr = str(binascii.b2a_hex(self.seria.Read()).decode())
self.last_str = pressurestr if pressurestr != '' else self.last_str
return self.parsePressure(self.last_str)
def parsePressure(self, pressure):
"""
压力数据格式为:FA 49 B3 B2 B1 B0 STAT CRC16_H CRC16_L
FA 49 3F 81 61 ee 00 11 6f
解析返回压力,统一返回千帕-kpa,保留7位小数
0:KPA | 1: MPA | 3 PA | 5 bar
:param pressure:
:return:
"""
UNIT = {
"KPa": 1,
"MPa": 1000,
"Pa": 0.001,
"Bar": 100
}
pressure16 = pressure[4:12]
binAll = str(bin(int(pressure16, 16)))[2:]
# binAll = binAll[2:]
data = [x for x in binAll[:-24:-1]]
data.reverse()
binE = binAll[:-23]
E = int(binE, 2) - 127
total = 1
for i, v in enumerate(data):
total = total + int(v) * (2 ** -(i + 1))
pressure = total*(2**E)
return pressure*UNIT["Bar"]
keller PAA-3XX/80794系列(绝压)压力传感器的更多相关文章
- 快速入门系列--JMeter压测工具
今天的年会已过,仍然是空手而归,不过俺坚信能让生活稳定永远都是努力.由于隔壁组负责年会的抢红包项目,因而趁此机会把通过工具模拟高并发的知识补了补,通过和身边大师的交流,总算是对压力测试有了个简要的了解 ...
- BA-siemens-symaro传感器简介
1 传感器的原理 传感器.控制器.执行机构是构成控制系统 3 个要素,传感器的作 用一般用来测量工艺参数,提供给控制器或显示仪表,实现工艺过程的 监测或控制.传感器的类型是按测量参数不同分类的,主要分 ...
- pixhawk入门知识
Pixhawk是一种先进的自动驾驶仪,由PX4开放硬件项目设计和3D机器人制造.它具有来自ST公司先进的处理器和传感器技术,以及NuttX实时操作系统,能够实现惊人的性能,灵活性和可靠性控制任何自主飞 ...
- HTTP常见返回代码(HTTP Status codes)的分类和含义
HTTP错误主要分成三类:用户设备问题.Web服务器问题和连接问题.当客户端向Web服务器发送一个HTTP请求时,服务器都会返回一个响应代码.而这些响应代码主要分成五类. HTTP状态码中定义了5大类 ...
- 最近买了个Mac Pro,用起来感觉是去年买了个表
最近买了个 Mac Pro ,用了两个星期,强烈建议大家不要买 Mac Pro (128G)搞开发,反而建议用同样的价格,我买的是最便宜8千的,去买个带固态硬盘的联想X系列绝对比Pro好. 一.操作方 ...
- Intel发6款全新9代i9/i7/i5 CPU:巅峰8核
在旧金山举办的GDC19活动中,Intel正式发布9代酷睿新品,面向移动平台的H系列标压处理器,定于今年第二季度上市. 换言之,最快4月份我们就能见到搭载后缀H的9代酷睿CPU笔记本(游戏本)等发售了 ...
- Hacklab WebIDE在线调试ESP32笔记
目录 1.什么是Hacklab WebIDE 1.1 优势 1.2 趋势 2. 使用方法 2.1 功能介绍 2.2 编译第一个程序 2.3 搭建esp32的开发环境 2.4 建立开发板与云平台的连接 ...
- HDU 4539郑厂长系列故事――排兵布阵(状压DP)
HDU 4539 郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 //#pragma co ...
- linux驱动系列之文件压缩解压小节(转)
转至网页:http://www.jb51.net/LINUXjishu/43356.html Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通 ...
随机推荐
- 逻辑运算符/三元运算符/Scanner
逻辑运算符 &(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或) 注意事项: a:逻辑运算符一般用于连接boolean类型的表达式或 ...
- storm单节点问题(转载)
一.storm nimbus 单节点问题概述 1.storm集群在生产环境部署之后,通常会是如下的结构: 从图中可以看出zookeeper和supervisor都是多节点,任意1个zookeeper节 ...
- 【vue】搭建vue环境以及要安装的所有东西
参考地址: https://www.cnblogs.com/laizhouzhou/p/8027908.html
- .net core mvc启动顺序以及主要部件3-Startup
前面分享了.net core Program类的启动过程已经源代码介绍,这里将继续讲Startup类中的两个约定方法,一个是ConfigureServices,这个方法是用来写我们应用程序所依赖的组件 ...
- Web应用调用.Net Core API
Web应用调用.Net Core API 一.新建Web Application应用: 选择Web Application 新建好之后页面如下: 二.新建Model.新建Model文件夹并建立apiM ...
- CDH5.14.4中的Hue集成HBase
1.进入CDH中的给HBase添加Thrift Server角色实例, 为了方便, 将Thrift Server添加到Hue同一主机 2.HBase Thrift Server中选择主机cm1: 3. ...
- C++ GDI图形设备接口
一.概念 1. GDI:(Graphics Device Interfase)图形设备接口,是一个应用程序与输出设备之间的中介. 一方面,GDI向应用程序提供一个与设备无关的编程环境,另一方面,它又以 ...
- CORS-跨域资源共享 解决跨域问题
1.什么是跨域? a.test.com 和 b.test.com 是两个不同的域,而处于安全机制考虑,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容,但是我们在项目开发时,经常遇到一个页 ...
- JavaWeb第二天--CSS
CSS CSS简述 CSS是什么?有什么作用? CSS(Cascading Style Sheets):层叠样式表. CSS通常称为CSS样式或层叠样式表.主要用于设置HTML页面中的文本内容(字体. ...
- ORACLE数据库导出表,字段名,长度,类型,字段注释,表注释语句
转自:https://www.cnblogs.com/superming/p/11040455.html --数据库导出表,字段名,长度,类型,字段注释,表注释语句 SELECT T1.TABLE_N ...