- Blog
- 寄存器实验室
寄存器实验室
目标:
寄存器按钮是Alicat设备的重要组成部分。在本实验室中,您应了解什么是寄存器,并熟悉利用RS-232串行终端读取/写入/使用寄存器的方法。
材料:
软件和文件:
- 从https://www.alicat.com/support/software-drivers/#g_tab-0-1下载
- Alicat串行终端
- 串行地址转储
- 从Amble中获取
- 设备编程指南。或:
- DOC-16PLUS编程
- DOC-REV23编程
- 设备编程指南。或:
- 从\\alicatfiles\public\Sales and Marketing\Toolbox中下载寄存器转储比较工具
- 注 – 如尚未下载LabVIEW RTE,则需下载它。可从\\alicatfiles\public\Sales and Marketing\Toolbox\LabVIEW RTE Installer\Volume中下载
- 如在Tucson办公室操作,则下载将耗费很长时间,此部分可稍后完成。
实验室设备:
- 带RS-232的MFC
- USB-MD8-232
理论:
寄存器的核心是与特定位置的数据类型相对应的数值。可存储在寄存器中的数据包括显示选项、皮重设置和校准参数。使用Alicat串行终端,可确保寄存器易于读取和写入。《16 Plus编程指南》中提供了每个寄存器的详细说明。
本实验室中的串行通信通过RS-232完成。RS-232有三根通信数据电缆:发送、接收和接地电缆。数据传输按ASCII编码,并以波特率(每秒脉冲数)设置为一系列1和0。大多数Alicat设备的标准波特率为19200,包括本实验中的设备。尽管RS-232是单一的单元通信,但Alicat可通过编程解决这个问题。为做到这一点,我们从A-Z标记每台设备。在轮询模式下,该标识用于查询数据、读/写寄存器和更改设定点(用于控制器)。在流模式下,该标识将更改为@,所有数据快速流至计算机,而不必编写命令提出请求。即使处于流模式的设备正在发送连续数据,仍可向该设备发出请求并且其可理解请求。
有些寄存器(如寄存器19皮重设置)包括若干个比特位,这些比特位构成整个寄存器值。比特位就像一个切换开/关,以2为基数。1-128比特位是“低比特位”,256-32768比特位是“高比特位”。如将所有单个比特位相加,则任何寄存器的最大值都是65535。寄存器19有几个选项,可通过启用某些比特位“打开”和“关闭”。假设您读取了寄存器19,其值为8704。如需找出切换的比特位,则应减去小于等于当前值的最高比特位,直到获得零。
在本示例中,
8704-8192=512,bit 8192
512-512=0,bit 512
因此,根据《16 Plus编程指南》,该寄存器上的设置将在显示屏上显示体积皮重,并启用体积流量的远程皮重。
有些寄存器(如寄存器20)有7或192这样的“比特位”,它们实际上不是比特位,而是组成数值的几个比特位的组合。一个比特位并不等于一项功能,是比特位的特定组合实现了一项功能。这使寄存器值的解密不太直观,但仍可做到。关键在于知道只有低比特位才会进行这样的组合,提前了解设备配置也有助于了解正在运行的功能。
如何使用串行地址转储:
串行地址转储是一个工具,它将在.txt文件中记录设备上的所有当前寄存器值。更改寄存器时,建议运行此程序以防出错。以下步骤将引导您完成整个流程:
- 从网站下载串行地址转储
- 确定COM端口。在Windows计算机上,可从设备管理器中找到COM端口。查看端口,设备应连接到USB串行端口。如使用COM5,则输入5。
- 确定设备的波特率。前面板:菜单-高级设置-通信设置。您还需要设备标识,您可在相同屏幕上确定该标识。
- 按回车键,运行程序。txt文件应存储在计算机上程序所在的相同文件夹中。
如何使用串行终端/发送串行命令:
串行地址终端用于实际更改寄存器,向Alicat设备发送串行命令。按照以下步骤设置串行终端并发送一些基本命令。
- 从网站下载串行终端。
- 与先前一样,输入COM端口和波特率。假设COM端口是COM5,请输入COM5,而非单独一个数字5。
- 在终端中输入设备标识,然后按回车键。应出现数据字符串;从左到右分别是:单位标识、绝对压力、温度、体积流量、质量流量、设定点、气体。
- 现在输入[Unit ID]s1 <Enter>。将出现相同数据行,设定点更改为1 SLPM(或SCCM,如设备在SCCM中)
- 输入[Unit ID]L <Enter>。现在,气体旁边有一个状态代码,表示前面板已锁定。这也将出现在前面的显示屏上。输入[Unit ID]U撤消此操作。
- 输入[Unit ID]H <Enter>。这是一个覆盖命令,使阀门保持在当前位置(不管设定点如何)。输入[Unit ID]C <Enter>可取消此操作。尝试同时进行显示锁定和阀门固定!
如何读写寄存器:
虽然简单的串行命令很有用,但它们不能执行可从前面板执行的复杂功能,例如更改气体选择。在串行终端中也可更改许多从前面板无法更改的功能。我们使用寄存器从终端操作这些设备设置。假设设备的标识为“M”,如从前面板所见,我们希望使用寄存器将该标识更改为“S”。以下步骤将为您介绍如何通过读写寄存器执行该功能。注:您的设备可能具有标识“A”而非“M”。如有需要,在以下所有命令中将“M”替换为“A”。
- 根据《16 Plus编程指南》确定保存这些数据的寄存器,并找出该寄存器为寄存器17。根据《16 Plus编程指南》,如波特率为19200,则寄存器17的值是字符的ASCII值乘以256。
- 使用命令Mr17 < Enter >读取寄存器17。M为标识,r17指示终端读取寄存器17。我们确定值为19712。
- 现在重写寄存器。“S”的ASCII值为83,因此“S”的寄存器值为83*256=21284。如需更改该寄存器,则输入Mw17=21248。M为标识,w17=21248指示终端将寄存器17写入为21248。
- 输入“S”而非“M”以查看数据。请注意,命令终端实际上不区分大小写。上述命令终端如下图所示:
现在,您已对串行RS232通信和如何使用寄存器有了一定了解,请按照以下程序自行练习寄存器。
程序:
- 如尚未创建,请打开串行地址转储,创建当前寄存器内容的文本文件。关闭串行地址转储以释放COM端口,并打开/连接到串行终端。
- 在《16 Plus编程指南》中查找寄存器0,并从串行终端读取寄存器值。现在,再次读取寄存器,同时按下一个Alicat按钮。寄存器将根据您按下的按钮进行更改!
- 在前显示屏上隐藏温度。根据《16 Plus编程指南》确定执行此功能的寄存器。然后,从终端读取该寄存器,并解密它所使用的比特位。随后,使用计算器将适当的位添加到该值,并用该新值重写寄存器。您会看到温度从屏幕上消失。
- 之前,我们使用串行命令锁定前面板。现在,尝试使用寄存器执行此操作。使用与步骤2相同的过程尝试锁定前面板。
- 尝试使用具有更复杂的位的寄存器。阅读《16 Plus编程指南》中有关寄存器20的内容,您会发现许多所谓的“比特位”并不是真正的比特位。读取串行终端中的寄存器20—您能确定启用了哪些位吗?现在,尝试重写寄存器20,使Alicat处于压力控制模式,然后再次使其处于逆控制模式。现在您获得了背压控制器!
更改设备中的所有这些寄存器后,现在可查看已做出的更改。使用寄存器转储比较工具可轻松比较多个寄存器。下面将为您介绍如何使用该工具:
- 关闭串行终端并打开串行地址转储。
- 获取设备上新寄存器的转储,并将该文件与之前创建的文件加以区分。
- 打开寄存器转储比较工具,通过单击文件路径字段旁边的文件图标上传新旧寄存器。完成此操作后,按下“比较寄存器”按钮。
- 您可看到对每个寄存器所做的更改。
最后一步,再次打开串行终端,复制粘贴原始地址转储的全部内容。现在设备上的一切都已恢复正常。
结论:
寄存器值是串行通信的重要组成部分。虽然有些寄存器的功能可通过前面板访问,但更多功能是设备校准和固有功能的组成部分。
艾里卡特Alicat提供先进的质量流量计、质量流量控制器、压力控制器、压力传感器解决方案。
如需查看或下载产品说明书,请点击Alicat文件中心。