EI-BISYNCH协议,欧陆2000系列设备读取数据

EI-Bisynch是一种基于ANSI X3.28-2.5 A4标准的专有协议,用于消息框架。尽管其名称中包含"Bisynch",但它实际上是一种基于ASCII的异步协议。数据通过7位数据位、偶校验和1个停止位进行传输。

4.1 术语解释

4.1.1 地址

每个仪器都有一个可配置的地址,由两位数字组成:第一位是"组"编号(0到9),第二位是"单元"编号(0到9)。原则上,这允许使用100个不同的地址(00到99)。然而,在2000系列仪器中,地址00保留用于配置模式,实际可用的地址为01到99。

地址可以通过用户界面设置,具体使用指定的参数。可能需要通过用户界面查看和修改该参数;有关详细说明,请参阅仪器手册。

4.1.2 助记符

EI-Bisynch通过"助记符"识别仪器内的参数。这些通常是特定参数的两位字母缩写。例如:

  • PV:过程变量

  • OP:输出

  • SP:设定点

I-Bisynch消息中使用的ASCII控制字符

控制字符

几个ASCII控制字符在EI-Bisynch消息的框架中被使用。这些字符包括:

十六进制值 名称 用途
02 STX 消息中的数据开始
03 ETX 消息结束
04 EOT 传输序列结束
05 ENQ 请求值
06 ACK 正确认可
15 NAK 负确认可

数据格式

在Bisynch消息中,数据以一系列ASCII可打印字符的形式发送。Series 2000仪器使用两种主要的数据格式:自由格式和十六进制格式。

4.2.1 自由数据格式

从仪器返回的参数值以"自由格式"呈现,长度可变。仪器将值以其前面板上显示的形式返回,不带前导或尾随空格,例如:

  • -99.9

  • 123.4

  • 123(整数值)

注意,尾随的小数点字符会被抑制。任何"符号"必须位于数字本身之前。写入仪器的值可以包含前导和尾随空格、前导或尾随零或符号指示。

这种格式用于几乎所有可通过EI-Bisync获取的2000系列参数,除了少数状态字和主要设置参数,它们使用"十六进制格式"。

注意:由于返回的值长度可变,因此需要使用终止的ETX字符来分隔数据值。除非您在非常有限的数字范围内操作(例如10.0到99.9),否则通常无法对表示值所使用的字符数量做出假设,在这种情况下,所有可能的值将传输4个字符。

4.2.2 十六进制数据格式

这种格式用于少数状态字和主要设置参数。值前面有一个'>'(十六进制3E)字符,通常由4个十六进制字符组成,尽管在写入参数时可以抑制前导零。这些字符表示16位无符号整数的十六进制(基数16)表示。'A'到'F'的大小写表示都是可以接受的,尽管仪器将始终返回大写。例如:

  • 2040 相当于8256十进制

  • ABCD 相当于43981十进制

此格式还与通道9指示符结合使用,以设置仪器的滚动列表。

4.3 从2000系列设备读取数据

要读取数据,需要向仪器发出一个"轮询"消息。该消息的格式如下:

EOTEOT(GID)(GID)(UID)(UID)(CHAN)(C1)(C2)ENQENQ

上述格式中的每一项都表示一个ASCII字符。用粗体显示的方括号中的项是控制字符,用于"框定"消息的起始和结束,它们的值可以参考第4.2节中的表格。括号中的普通字符项具有以下含义:

  • GID:组ID,即仪器地址的第一位数字。例如,地址为12的设备,GID为'1'(16进制为31);地址为1的设备,GID为'0'(16进制为30),地址01与地址1相同。GID被发送两次,作为验证机制。

  • UID:单元ID,即仪器地址的第二位数字。例如,地址为12的设备,UID为'2'(16进制为32);地址为1的设备,UID为'1'(16进制为31)。UID也被发送两次,作为验证机制。

  • CHAN:通道号,可选项。如果使用,发送'1'值表示2000系列的单回路控制器。

  • C1:助记符的第一个字符,用于访问的参数,例如'P'代表过程变量(Process Variable)。

  • C2:助记符的第二个字符,用于访问的参数,例如'V'代表过程变量(Process Variable)。

如果设备正确接收了消息并且助记符有效,它将以以下格式回复:

STXSTX(CHAN)(C1)(C2)<DATA>ETXETX(BCC)

  • CHAN:来自轮询消息的通道号回显,如果使用该字段,则返回该值;否则不返回。

  • C1, C2:来自轮询消息的助记符回显。

  • DATA:参数的值,格式可能是例如 99.9、1.2、-999、>1234 等的显示格式。

  • BCC:这是一个用于数据验证的块校验和。它通过对STX之后、ETX之前的所有字符进行异或(XOR)计算生成。请注意,它的值可能是'EOT',因此在编写协议驱动程序时需要小心,不要将其视为"传输结束"序列。

如果请求的是不存在的助记符,或者该助记符代表未配置的参数,设备将回复单个'EOT'字符。如果没有任何回复,则可能出现以下错误之一:

  • 接线不正确或硬件故障(电缆、PC、RS422/485适配器、设备通信模块)。

  • 设备地址设置错误(PC或设备)。

  • 线路设置错误,应为7个数据位、偶校验、1个停止位(PC)。

  • 波特率设置错误(PC或设备)。

  • 设备检测到奇偶校验错误(可能由线路噪声引起)。

  • 消息格式不正确(PC)。

为确定通信问题的原因,请系统地排查这些可能的原因。

参数读取示例

例如,当从地址为1的设备读取过程变量(PV)时,主设备发送和接收的字符序列如下:

主设备发送:EOTEOT0011PVENQENQ

设备回复:STXSTXPV16.4ETXETX{BCC}

注意,BCC是一个单字符值,在该例子中,其值为16进制的18。

以16进制显示的传输如下:

主设备:04 30 30 31 31 50 56 05

设备:02 50 56 31 36 2E 34 03 18

相关推荐
乌恩大侠11 天前
X波段相控阵雷达开发平台 高等教育 雷达上课
科技·labview·雷达·通信工程
LabVIEW开发24 天前
LabVIEW音频测试分析
音视频·labview·labview知识
LabVIEW开发25 天前
LabVIEW自感现象远程实验平台
labview
LabVIEW开发25 天前
LabVIEW Modbus 主站冗余控制
labview·labview知识
LabVIEW开发1 个月前
LabVIEW的MathScript Node 绘图功能
labview
LabVIEW开发1 个月前
LabVIEW基于 DataSocket从 OPC 服务器读取数据
labview
LabVIEW开发1 个月前
LabVIEW准分子激光器智能控制系统
labview·labview开发案例
LabVIEW开发1 个月前
LabVIEW比例阀性能测试试验台
labview
LabVIEW开发1 个月前
LabVIEW软件开发过程中如何保证软件的质量?
labview
无垠的广袤1 个月前
【萤火工场GD32VW553-IOT开发板】ADC电压的LabVIEW采集
c++·单片机·嵌入式硬件·物联网·labview