一、瑞士 keller(科勒)压力传感器
  1. 广播模式:所有从机都会收到上位机信息

    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.

  2. 只有单一从机收到:

    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.

  3. 如下数据格式:

    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.

1.1 初始化设备-询问链接状态命令

每一个方法参数有 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
1.2 查询浮点型压力、温度命令

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
1.3 方法总览
方法代码 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系列(绝压)压力传感器的更多相关文章

  1. 快速入门系列--JMeter压测工具

    今天的年会已过,仍然是空手而归,不过俺坚信能让生活稳定永远都是努力.由于隔壁组负责年会的抢红包项目,因而趁此机会把通过工具模拟高并发的知识补了补,通过和身边大师的交流,总算是对压力测试有了个简要的了解 ...

  2. BA-siemens-symaro传感器简介

    1 传感器的原理 传感器.控制器.执行机构是构成控制系统 3 个要素,传感器的作 用一般用来测量工艺参数,提供给控制器或显示仪表,实现工艺过程的 监测或控制.传感器的类型是按测量参数不同分类的,主要分 ...

  3. pixhawk入门知识

    Pixhawk是一种先进的自动驾驶仪,由PX4开放硬件项目设计和3D机器人制造.它具有来自ST公司先进的处理器和传感器技术,以及NuttX实时操作系统,能够实现惊人的性能,灵活性和可靠性控制任何自主飞 ...

  4. HTTP常见返回代码(HTTP Status codes)的分类和含义

    HTTP错误主要分成三类:用户设备问题.Web服务器问题和连接问题.当客户端向Web服务器发送一个HTTP请求时,服务器都会返回一个响应代码.而这些响应代码主要分成五类. HTTP状态码中定义了5大类 ...

  5. 最近买了个Mac Pro,用起来感觉是去年买了个表

    最近买了个 Mac Pro ,用了两个星期,强烈建议大家不要买 Mac Pro (128G)搞开发,反而建议用同样的价格,我买的是最便宜8千的,去买个带固态硬盘的联想X系列绝对比Pro好. 一.操作方 ...

  6. Intel发6款全新9代i9/i7/i5 CPU:巅峰8核

    在旧金山举办的GDC19活动中,Intel正式发布9代酷睿新品,面向移动平台的H系列标压处理器,定于今年第二季度上市. 换言之,最快4月份我们就能见到搭载后缀H的9代酷睿CPU笔记本(游戏本)等发售了 ...

  7. Hacklab WebIDE在线调试ESP32笔记

    目录 1.什么是Hacklab WebIDE 1.1 优势 1.2 趋势 2. 使用方法 2.1 功能介绍 2.2 编译第一个程序 2.3 搭建esp32的开发环境 2.4 建立开发板与云平台的连接 ...

  8. HDU 4539郑厂长系列故事――排兵布阵(状压DP)

    HDU 4539  郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 //#pragma co ...

  9. linux驱动系列之文件压缩解压小节(转)

    转至网页:http://www.jb51.net/LINUXjishu/43356.html Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通 ...

随机推荐

  1. python 字典转成对象

    database = { "key1": { 'period':999, "data": { 'a':1, 'b':2, } }, "key2&quo ...

  2. Python3+selenium 报错处理:“selenium.common.exceptions.NoAlertPresentException: Message: No alert is active”

    一.说明 在使用python3+selenium写自动升级程序的时侯,碰到一个弹出对话框需要点击确认的场景.弹出的对话框如下图所示. 对于弹框各种资料都说通过switch_to.alert属性获取对话 ...

  3. java中Math类

    Math类 Math类是一个很有用的数学帮助类,使用也非常简单,这个类比较特殊,首先他和String类一样都是用final修饰,所以不能有子类,还有就是它的构造方法是私有的,也就是我们不能通过new的 ...

  4. Java Mockito 笔记

    Mockito 1 Overview 2 Maven 项目初始化 3 示例 3.1 第一个示例 3.2 自动 Mock 3.3 Mock 返回值 3.4 Mock 参数 3.5 自动注入 Mock 对 ...

  5. OpenGL 中的三维纹理操作

    #define _CRT_SECURE_NO_WARNINGS #include <gl/glut.h> #include <stdio.h> #include <std ...

  6. mybatis关联映射多对多

    项目开发中,多对多关系也是非常常见的关系 在数据库中创建表的脚本 table.sql CREATE TABLE tb_user( id INT PRIMARY KEY AUTO_INCREMENT, ...

  7. 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记1)WePY开发环境的安装

    WePY的安装或更新都通过npm进行,全局安装或更新WePY命令行工具,使用以下命令: npm install wepy-cli -g 稍等片刻,成功安装后,即可创建WePY项目. 注意:如果npm安 ...

  8. 汽车行业MES系统在产品追溯方面的应用分析

    一.追溯系统定义及分类 追溯系统是指根据或利用已记录的标识,这种标识对每一批产品都具有唯一性,即标识和被追溯对象间是一一对应关系. 追溯系统早期因先后发生多起食品安全事件,比如1996年英国疯牛病,丹 ...

  9. CRM ORDER SEARCH增强查询条件(已有字段)

    ORDER_H表增强的两个字段,很早了,非AET,非EEWB,所以也加不到标准的搜索界面. GENIL_MODEL_BROWSER找到对应的查询和结果结构,append进字段:ZZZBRAND. 然后 ...

  10. ISO模型学习

    PDU:协议数据单元是指层次之间传递的数据单位 物理层PDU :PDU是数据位 bit数据链路层的PDU是数据帧frame网络层的PUD是数据包 packet传输层的PDU是数据段 segment其他 ...